diff --git a/drivers/misc/nvsciipc/nvsciipc.c b/drivers/misc/nvsciipc/nvsciipc.c index 27e25525..aae900d2 100644 --- a/drivers/misc/nvsciipc/nvsciipc.c +++ b/drivers/misc/nvsciipc/nvsciipc.c @@ -84,11 +84,20 @@ NvSciError NvSciIpcEndpointValidateAuthTokenLinuxCurrent( } f = fdget((int)authToken); +#if defined(NV_FD_EMPTY_PRESENT) /* Linux v6.12 */ + if (fd_empty(f)) { +#else if (!f.file) { +#endif ERR("invalid auth token\n"); return NvSciError_BadParameter; } + +#if defined(NV_FD_FILE_PRESENT) /* Linux v6.12 */ + filp = fd_file(f); +#else filp = f.file; +#endif devlen = strlen(filp->f_path.dentry->d_name.name); #if DEBUG_VALIDATE_TOKEN diff --git a/scripts/conftest/Makefile b/scripts/conftest/Makefile index b4e4544b..ab973f34 100644 --- a/scripts/conftest/Makefile +++ b/scripts/conftest/Makefile @@ -126,6 +126,8 @@ NV_CONFTEST_FUNCTION_COMPILE_TESTS += ethtool_kernel_ethtool_ts_info_struct_pres NV_CONFTEST_FUNCTION_COMPILE_TESTS += ethtool_ops_get_set_coalesce_has_coal_and_extack_args NV_CONFTEST_FUNCTION_COMPILE_TESTS += ethtool_ops_get_set_ringparam_has_ringparam_and_extack_args NV_CONFTEST_FUNCTION_COMPILE_TESTS += ethtool_ops_get_set_rxfh_has_rxfh_param_args +NV_CONFTEST_FUNCTION_COMPILE_TESTS += fd_empty +NV_CONFTEST_FUNCTION_COMPILE_TESTS += fd_file NV_CONFTEST_FUNCTION_COMPILE_TESTS += folio_entire_mapcount NV_CONFTEST_FUNCTION_COMPILE_TESTS += genpd_xlate_t_has_const_of_phandle_args NV_CONFTEST_FUNCTION_COMPILE_TESTS += get_file_rcu_has_double_ptr_file_arg diff --git a/scripts/conftest/conftest.sh b/scripts/conftest/conftest.sh index 65e148f7..63a25776 100755 --- a/scripts/conftest/conftest.sh +++ b/scripts/conftest/conftest.sh @@ -7246,6 +7246,40 @@ compile_test() { "NV_ETHTOOL_OPS_GET_SET_RXFH_HAS_RXFH_PARAM_ARGS" "" "types" ;; + fd_empty) + # + # Determine if macro fd_empty() is present. + # + # Added by commit 88a2f6468d01 ("struct fd: representation change") + # in Linux v6.12. + # + CODE=" + #include + void conftest(void) + { + fd_empty(); + }" + + compile_check_conftest "$CODE" "NV_FD_EMPTY_PRESENT" "" "functions" + ;; + + fd_file) + # + # Determine if macro fd_file() is present. + # + # Added by commit 88a2f6468d01 ("struct fd: representation change") + # in Linux v6.12. + # + CODE=" + #include + void conftest(void) + { + fd_file(); + }" + + compile_check_conftest "$CODE" "NV_FD_FILE_PRESENT" "" "functions" + ;; + folio_entire_mapcount) # # Determine if function folio_entire_mapcount() is present.