aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2140-drm-amdgpu-virt-don-t-dereference-undefined-module-s.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2140-drm-amdgpu-virt-don-t-dereference-undefined-module-s.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2140-drm-amdgpu-virt-don-t-dereference-undefined-module-s.patch48
1 files changed, 48 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2140-drm-amdgpu-virt-don-t-dereference-undefined-module-s.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2140-drm-amdgpu-virt-don-t-dereference-undefined-module-s.patch
new file mode 100644
index 00000000..49ded8fa
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2140-drm-amdgpu-virt-don-t-dereference-undefined-module-s.patch
@@ -0,0 +1,48 @@
+From 51e9882da3afaedc42c178b08797c549ba118549 Mon Sep 17 00:00:00 2001
+From: Arnd Bergmann <arnd@arndb.de>
+Date: Thu, 2 Nov 2017 12:25:39 +0100
+Subject: [PATCH 2140/4131] drm/amdgpu/virt: don't dereference undefined
+ 'module' struct
+
+Accessing the THIS_MODULE directly is only possible when modules
+are enabled, otherwise we get a build failure:
+
+drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c: In function 'amdgpu_virt_init_data_exchange':
+drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c:331:20: error: dereferencing pointer to incomplete type 'struct module'
+
+Further, THIS_MODULE is NULL when the driver is built-in, so the
+code would likely cause a NULL pointer dereference.
+
+This adds an #ifdef check to avoid the compile-time error, plus
+a NULL pointer check before dereferencing THIS_MODULE. It might
+be better to find a way to avoid using the module version
+altogether.
+
+Fixes: 2dc8f81e4f82 ("drm/amdgpu: SR-IOV data exchange between PF&VF")
+Signed-off-by: Arnd Bergmann <arnd@arndb.de>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+Reviewed-by: Harry Wentland <harry.wentland@amd.com>
+Reviewed-By: Xiangliang Yu <Xiangliang.Yu@amd.com>
+---
+ drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c
+index f791518..9a73918 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c
+@@ -350,9 +350,11 @@ void amdgpu_virt_init_data_exchange(struct amdgpu_device *adev)
+ sizeof(amdgim_vf2pf_info));
+ AMDGPU_FW_VRAM_VF2PF_READ(adev, driver_version,
+ &str);
++#ifdef MODULE
+ if (THIS_MODULE->version != NULL)
+ strcpy(str, THIS_MODULE->version);
+ else
++#endif
+ strcpy(str, "N/A");
+ AMDGPU_FW_VRAM_VF2PF_WRITE(adev, driver_cert,
+ 0);
+--
+2.7.4
+