drivers: Fix MODULE_IMPORT_NS for Linux v6.13

In Linux v6.13, commit cdd30ebb1b9f ("module: Convert symbol namespace
to string literal") updated the MODULE_IMPORT_NS macro to take a string
literal as an argument in Linux v6.13. Use conftest to detect if
MODULE_IMPORT_NS takes a string literal as an argument and update the
various drivers accordingly.

Bug 4991705

Change-Id: I8f34860648965dc2334e2916d5404522510778ff
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3263798
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: Brad Griffis <bgriffis@nvidia.com>
GVS: buildbot_gerritrpt <buildbot_gerritrpt@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
This commit is contained in:
Jon Hunter
2024-12-04 13:07:10 +00:00
parent 66ddf2ba6f
commit ff48ee63b1
11 changed files with 49 additions and 9 deletions

View File

@@ -3,7 +3,7 @@
* NVIDIA Tegra DRM GEM helper functions * NVIDIA Tegra DRM GEM helper functions
* *
* Copyright (C) 2012 Sascha Hauer, Pengutronix * Copyright (C) 2012 Sascha Hauer, Pengutronix
* Copyright (C) 2013-2023 NVIDIA CORPORATION, All rights reserved. * Copyright (C) 2013-2024 NVIDIA CORPORATION, All rights reserved.
* *
* Based on the GEM/CMA helpers * Based on the GEM/CMA helpers
* *
@@ -24,7 +24,11 @@
#include "drm.h" #include "drm.h"
#include "gem.h" #include "gem.h"
#if defined(NV_MODULE_IMPORT_NS_CALLS_STRINGIFY)
MODULE_IMPORT_NS(DMA_BUF); MODULE_IMPORT_NS(DMA_BUF);
#else
MODULE_IMPORT_NS("DMA_BUF");
#endif
static unsigned int sg_dma_count_chunks(struct scatterlist *sgl, unsigned int nents) static unsigned int sg_dma_count_chunks(struct scatterlist *sgl, unsigned int nents)
{ {

View File

@@ -2385,6 +2385,10 @@ static void __exit capture_isp_exit(void)
module_init(capture_isp_init); module_init(capture_isp_init);
module_exit(capture_isp_exit); module_exit(capture_isp_exit);
#if defined(NV_MODULE_IMPORT_NS_CALLS_STRINGIFY)
MODULE_IMPORT_NS(DMA_BUF); MODULE_IMPORT_NS(DMA_BUF);
#else
MODULE_IMPORT_NS("DMA_BUF");
#endif
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("tegra capture-isp driver"); MODULE_DESCRIPTION("tegra capture-isp driver");

View File

@@ -1791,6 +1791,10 @@ static void __exit capture_vi_exit(void)
module_init(capture_vi_init); module_init(capture_vi_init);
module_exit(capture_vi_exit); module_exit(capture_vi_exit);
#if defined(NV_MODULE_IMPORT_NS_CALLS_STRINGIFY)
MODULE_IMPORT_NS(DMA_BUF); MODULE_IMPORT_NS(DMA_BUF);
#else
MODULE_IMPORT_NS("DMA_BUF");
#endif
MODULE_DESCRIPTION("tegra fusa-capture driver"); MODULE_DESCRIPTION("tegra fusa-capture driver");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: GPL-2.0-only // SPDX-License-Identifier: GPL-2.0-only
// Copyright (c) 2022-2023, NVIDIA CORPORATION & AFFILIATES. All rights reserved. // SPDX-FileCopyrightText: Copyright (c) 2022-2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
#define pr_fmt(fmt) "nvscic2c-pcie: vmap-pin: " fmt #define pr_fmt(fmt) "nvscic2c-pcie: vmap-pin: " fmt
@@ -380,4 +380,8 @@ err:
return ret; return ret;
} }
#if defined(NV_MODULE_IMPORT_NS_CALLS_STRINGIFY)
MODULE_IMPORT_NS(DMA_BUF); MODULE_IMPORT_NS(DMA_BUF);
#else
MODULE_IMPORT_NS("DMA_BUF");
#endif

View File

@@ -1,5 +1,5 @@
// SPDX-License-Identifier: GPL-2.0-only // SPDX-License-Identifier: GPL-2.0-only
/* Copyright (c) 2019-2024, NVIDIA CORPORATION. All rights reserved */ // SPDX-FileCopyrightText: Copyright (c) 2019-2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
#include "ether_linux.h" #include "ether_linux.h"
#ifdef MACSEC_SUPPORT #ifdef MACSEC_SUPPORT
@@ -4179,4 +4179,8 @@ void ether_sysfs_unregister(struct ether_priv_data *pdata)
MODULE_AUTHOR("NVIDIA Corporation"); MODULE_AUTHOR("NVIDIA Corporation");
MODULE_DESCRIPTION("Mac/Macsec Sysfs driver"); MODULE_DESCRIPTION("Mac/Macsec Sysfs driver");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
#if defined(NV_MODULE_IMPORT_NS_CALLS_STRINGIFY)
MODULE_IMPORT_NS(CRYPTO_INTERNAL); MODULE_IMPORT_NS(CRYPTO_INTERNAL);
#else
MODULE_IMPORT_NS("CRYPTO_INTERNAL");
#endif

View File

@@ -550,7 +550,11 @@ static struct platform_driver fsicom_client = {
module_platform_driver(fsicom_client); module_platform_driver(fsicom_client);
#if defined(NV_MODULE_IMPORT_NS_CALLS_STRINGIFY)
MODULE_IMPORT_NS(DMA_BUF); MODULE_IMPORT_NS(DMA_BUF);
#else
MODULE_IMPORT_NS("DMA_BUF");
#endif
MODULE_DESCRIPTION("FSI-CCPLEX-COM driver"); MODULE_DESCRIPTION("FSI-CCPLEX-COM driver");
MODULE_AUTHOR("Prashant Shaw <pshaw@nvidia.com>"); MODULE_AUTHOR("Prashant Shaw <pshaw@nvidia.com>");
MODULE_LICENSE("GPL v2"); MODULE_LICENSE("GPL v2");

View File

@@ -1372,6 +1372,10 @@ static void __exit nvdla_exit(void)
module_exit(nvdla_exit); module_exit(nvdla_exit);
#endif #endif
#if defined(NV_MODULE_IMPORT_NS_CALLS_STRINGIFY)
MODULE_IMPORT_NS(DMA_BUF); MODULE_IMPORT_NS(DMA_BUF);
#else
MODULE_IMPORT_NS("DMA_BUF");
#endif
MODULE_AUTHOR("Shridhar Rasal <srasal@nvidia.com>"); MODULE_AUTHOR("Shridhar Rasal <srasal@nvidia.com>");
MODULE_LICENSE("GPL v2"); MODULE_LICENSE("GPL v2");

View File

@@ -1826,5 +1826,9 @@ static void __exit nvpva_exit(void)
module_exit(nvpva_exit); module_exit(nvpva_exit);
#endif #endif
#if defined(NV_MODULE_IMPORT_NS_CALLS_STRINGIFY)
MODULE_IMPORT_NS(DMA_BUF); MODULE_IMPORT_NS(DMA_BUF);
#else
MODULE_IMPORT_NS("DMA_BUF");
#endif
MODULE_LICENSE("GPL v2"); MODULE_LICENSE("GPL v2");

View File

@@ -483,7 +483,11 @@ static void __exit nvmap_exit_driver(void)
nvmap_dev = NULL; nvmap_dev = NULL;
} }
module_exit(nvmap_exit_driver); module_exit(nvmap_exit_driver);
#if defined(NV_MODULE_IMPORT_NS_CALLS_STRINGIFY)
MODULE_IMPORT_NS(DMA_BUF); MODULE_IMPORT_NS(DMA_BUF);
#else
MODULE_IMPORT_NS("DMA_BUF");
#endif
MODULE_DESCRIPTION("NvMap: Nvidia Tegra Memory Management Driver"); MODULE_DESCRIPTION("NvMap: Nvidia Tegra Memory Management Driver");
MODULE_AUTHOR("Ketan Patil <ketanp@nvidia.com>"); MODULE_AUTHOR("Ketan Patil <ketanp@nvidia.com>");
MODULE_AUTHOR("Ashish Mhetre <amhetre@nvidia.com>"); MODULE_AUTHOR("Ashish Mhetre <amhetre@nvidia.com>");

View File

@@ -150,7 +150,7 @@ NV_CONFTEST_FUNCTION_COMPILE_TESTS += kthread_complete_and_exit
NV_CONFTEST_FUNCTION_COMPILE_TESTS += mii_bus_struct_has_read_c45 NV_CONFTEST_FUNCTION_COMPILE_TESTS += mii_bus_struct_has_read_c45
NV_CONFTEST_FUNCTION_COMPILE_TESTS += mii_bus_struct_has_write_c45 NV_CONFTEST_FUNCTION_COMPILE_TESTS += mii_bus_struct_has_write_c45
NV_CONFTEST_FUNCTION_COMPILE_TESTS += media_entity_remote_pad NV_CONFTEST_FUNCTION_COMPILE_TESTS += media_entity_remote_pad
NV_CONFTEST_FUNCTION_COMPILE_TESTS += module_import_ns_macro NV_CONFTEST_FUNCTION_COMPILE_TESTS += module_import_ns_calls_stringify
NV_CONFTEST_FUNCTION_COMPILE_TESTS += msi_get_virq NV_CONFTEST_FUNCTION_COMPILE_TESTS += msi_get_virq
NV_CONFTEST_FUNCTION_COMPILE_TESTS += netif_set_tso_max_size NV_CONFTEST_FUNCTION_COMPILE_TESTS += netif_set_tso_max_size
NV_CONFTEST_FUNCTION_COMPILE_TESTS += netif_napi_add_weight NV_CONFTEST_FUNCTION_COMPILE_TESTS += netif_napi_add_weight

View File

@@ -7633,18 +7633,22 @@ compile_test() {
compile_check_conftest "$CODE" "NV_MII_BUS_STRUCT_HAS_WRITE_C45" "" "types" compile_check_conftest "$CODE" "NV_MII_BUS_STRUCT_HAS_WRITE_C45" "" "types"
;; ;;
module_import_ns_macro) module_import_ns_calls_stringify)
# #
# Determine if the MODULE_IMPORT_NS macro present. # Determine if the MODULE_IMPORT_NS macro takes a string literal as
# an argument.
#
# Commit cdd30ebb1b9f ("module: Convert symbol namespace to string
# literal") updated the symbol namespace macros to take a string
# literal as an argument and removes the call to __stringify from
# within the macro for Linux v6.13.
# #
# Added in commit 80140a81f7f833 ("module.h: simplify MODULE_IMPORT_NS")
# in Linux 5.18.
CODE=" CODE="
#include <linux/module.h> #include <linux/module.h>
MODULE_IMPORT_NS(DMA_BUF); MODULE_IMPORT_NS(DMA_BUF);
" "
compile_check_conftest "$CODE" "NV_MODULE_IMPORT_NS_PRESENT" "" "types" compile_check_conftest "$CODE" "NV_MODULE_IMPORT_NS_CALLS_STRINGIFY" "" "types"
;; ;;
no_llseek) no_llseek)