diff options
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.patch | 48 |
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 + |