diff options
Diffstat (limited to 'meta-amdfalconx86/recipes-kernel/linux/files/0037-yocto-amd-drm-amdgpu-add-DCE-10-0-register-headers.patch')
-rw-r--r-- | meta-amdfalconx86/recipes-kernel/linux/files/0037-yocto-amd-drm-amdgpu-add-DCE-10-0-register-headers.patch | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/meta-amdfalconx86/recipes-kernel/linux/files/0037-yocto-amd-drm-amdgpu-add-DCE-10-0-register-headers.patch b/meta-amdfalconx86/recipes-kernel/linux/files/0037-yocto-amd-drm-amdgpu-add-DCE-10-0-register-headers.patch new file mode 100644 index 00000000..8535ac98 --- /dev/null +++ b/meta-amdfalconx86/recipes-kernel/linux/files/0037-yocto-amd-drm-amdgpu-add-DCE-10-0-register-headers.patch @@ -0,0 +1,51 @@ +From 704b46b07711e5459ae845bc5ef074dda2473361 Mon Sep 17 00:00:00 2001 +From: Alex Deucher <alexander.deucher@amd.com> +Date: Fri, 17 Apr 2015 10:50:02 -0400 +Subject: drm/amdgpu: Do not directly dereference pointers to BIOS area. + +Use readb() and memcpy_fromio() accessors instead. + +Ported from radeon commit: +f2c9e560b406f2f6b14b345c7da33467dee9cdf2 + +Signed-off-by: Alex Deucher <alexander.deucher@amd.com> +Signed-off-by: Sanjay R Mehta <Sanju.Mehta@amd.com> + +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_bios.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_bios.c +index d938a11..cdcadf8 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_bios.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_bios.c +@@ -75,7 +75,7 @@ static bool igp_read_bios_from_vram(struct amdgpu_device *adev) + + bool amdgpu_read_bios(struct amdgpu_device *adev) + { +- uint8_t __iomem *bios; ++ uint8_t __iomem *bios, val1, val2; + size_t size; + + adev->bios = NULL; +@@ -85,15 +85,19 @@ bool amdgpu_read_bios(struct amdgpu_device *adev) + return false; + } + +- if (size == 0 || bios[0] != 0x55 || bios[1] != 0xaa) { ++ val1 = readb(&bios[0]); ++ val2 = readb(&bios[1]); ++ ++ if (size == 0 || val1 != 0x55 || val2 != 0xaa) { + pci_unmap_rom(adev->pdev, bios); + return false; + } +- adev->bios = kmemdup(bios, size, GFP_KERNEL); ++ adev->bios = kzalloc(size, GFP_KERNEL); + if (adev->bios == NULL) { + pci_unmap_rom(adev->pdev, bios); + return false; + } ++ memcpy_fromio(adev->bios, bios, size); + pci_unmap_rom(adev->pdev, bios); + return true; + } +-- +cgit v0.10.2 + |