mirror of
git://nv-tegra.nvidia.com/linux-nv-oot.git
synced 2025-12-22 09:11:26 +03:00
tegra_hv: Use conftest to find if class_attribute function has const type arg
Determine if struct class_attribute function has const type
"struct class_attribute" argument or not.
Modified the argument by change
commit 75a2d4226b5371 ("driver core: class: mark the struct class
for sysfs callbacks as constant") for Linux 6.3
Bug 4346767
Change-Id: I2a36025b23af80761faf1da406481731289eedd2
Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3030734
(cherry picked from commit de4295cfa6)
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3059278
Tested-by: Jonathan Hunter <jonathanh@nvidia.com>
Reviewed-by: Jonathan Hunter <jonathanh@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
This commit is contained in:
committed by
mobile promotions
parent
e997e8ae5a
commit
176a1bff8d
9
Makefile
9
Makefile
@@ -7,15 +7,6 @@ LINUXINCLUDE += -I$(srctree.nvidia-oot)/include
|
|||||||
subdir-ccflags-y += -Werror
|
subdir-ccflags-y += -Werror
|
||||||
subdir-ccflags-y += -Wmissing-prototypes
|
subdir-ccflags-y += -Wmissing-prototypes
|
||||||
|
|
||||||
LINUX_VERSION := $(shell expr $(VERSION) \* 256 + $(PATCHLEVEL))
|
|
||||||
LINUX_VERSION_6_4 := $(shell expr 6 \* 256 + 4)
|
|
||||||
|
|
||||||
# Changes done in Linux 6.4 onwards
|
|
||||||
ifeq ($(shell test $(LINUX_VERSION) -ge $(LINUX_VERSION_6_4); echo $$?),0)
|
|
||||||
# Argument on class attribute callback changed to constant type
|
|
||||||
subdir-ccflags-y += -DNV_CLASS_ATTRIBUTE_STRUCT_HAS_CONST_STRUCT_CLASS_ARG
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(CONFIG_TEGRA_VIRTUALIZATION),y)
|
ifeq ($(CONFIG_TEGRA_VIRTUALIZATION),y)
|
||||||
subdir-ccflags-y += -DCONFIG_TEGRA_VIRTUALIZATION
|
subdir-ccflags-y += -DCONFIG_TEGRA_VIRTUALIZATION
|
||||||
endif
|
endif
|
||||||
|
|||||||
@@ -416,7 +416,7 @@ static void tegra_hv_cleanup(struct tegra_hv_data *hvd)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(NV_CLASS_ATTRIBUTE_STRUCT_HAS_CONST_STRUCT_CLASS_ARG)
|
#if defined(NV_CLASS_ATTRIBUTE_STRUCT_HAS_CONST_STRUCT_CLASS_ATTRIBUTE_ARG)
|
||||||
static ssize_t vmid_show(const struct class *class,
|
static ssize_t vmid_show(const struct class *class,
|
||||||
const struct class_attribute *attr, char *buf)
|
const struct class_attribute *attr, char *buf)
|
||||||
#else
|
#else
|
||||||
|
|||||||
@@ -96,6 +96,7 @@ NV_CONFTEST_FUNCTION_COMPILE_TESTS += block_device_operations_open_has_gendisk_a
|
|||||||
NV_CONFTEST_FUNCTION_COMPILE_TESTS += block_device_operations_release_has_no_mode_arg
|
NV_CONFTEST_FUNCTION_COMPILE_TESTS += block_device_operations_release_has_no_mode_arg
|
||||||
NV_CONFTEST_FUNCTION_COMPILE_TESTS += bus_type_struct_remove_has_int_return_type
|
NV_CONFTEST_FUNCTION_COMPILE_TESTS += bus_type_struct_remove_has_int_return_type
|
||||||
NV_CONFTEST_FUNCTION_COMPILE_TESTS += bus_type_struct_uevent_has_const_dev_arg
|
NV_CONFTEST_FUNCTION_COMPILE_TESTS += bus_type_struct_uevent_has_const_dev_arg
|
||||||
|
NV_CONFTEST_FUNCTION_COMPILE_TESTS += class_attribute_struct_has_const_struct_class_attribute
|
||||||
NV_CONFTEST_FUNCTION_COMPILE_TESTS += class_create_has_no_owner_arg
|
NV_CONFTEST_FUNCTION_COMPILE_TESTS += class_create_has_no_owner_arg
|
||||||
NV_CONFTEST_FUNCTION_COMPILE_TESTS += class_struct_devnode_has_const_dev_arg
|
NV_CONFTEST_FUNCTION_COMPILE_TESTS += class_struct_devnode_has_const_dev_arg
|
||||||
NV_CONFTEST_FUNCTION_COMPILE_TESTS += define_semaphore_has_number_arg
|
NV_CONFTEST_FUNCTION_COMPILE_TESTS += define_semaphore_has_number_arg
|
||||||
|
|||||||
@@ -6604,6 +6604,26 @@ compile_test() {
|
|||||||
compile_check_conftest "$CODE" "NV_BUS_TYPE_STRUCT_UEVENT_HAS_CONST_DEV_ARG" "" "types"
|
compile_check_conftest "$CODE" "NV_BUS_TYPE_STRUCT_UEVENT_HAS_CONST_DEV_ARG" "" "types"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
class_attribute_struct_has_const_struct_class_attribute)
|
||||||
|
#
|
||||||
|
# Determine if struct class_attribute function has const type "struct class_attribute"
|
||||||
|
# argument or not.
|
||||||
|
#
|
||||||
|
# Modified the argument by change commit 75a2d4226b5371 ("driver core: class: mark
|
||||||
|
# the struct class for sysfs callbacks as constant") for Linux 6.3
|
||||||
|
#
|
||||||
|
CODE="
|
||||||
|
#include <linux/device/class.h>
|
||||||
|
static ssize_t show_cb(struct class *class, struct class_attribute *attr, char *buf) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
static struct class_attribute ca = {
|
||||||
|
.show = show_cb,
|
||||||
|
};"
|
||||||
|
|
||||||
|
compile_check_conftest "$CODE" "NV_CLASS_ATTRIBUTE_STRUCT_HAS_CONST_STRUCT_CLASS_ATTRIBUTE_ARG" "" "functions"
|
||||||
|
;;
|
||||||
|
|
||||||
class_create_has_no_owner_arg)
|
class_create_has_no_owner_arg)
|
||||||
#
|
#
|
||||||
# Determine if the class_create() function has the 'owner' argument.
|
# Determine if the class_create() function has the 'owner' argument.
|
||||||
|
|||||||
Reference in New Issue
Block a user