1
0
Fork 0
mirror of synced 2025-03-06 20:59:54 +01:00
linux/drivers/gpu/drm/nouveau
Nick Lopez 1b777d4d9e drm/nouveau: fix off by one in BIOS boundary checking
Bounds checking when parsing init scripts embedded in the BIOS reject
access to the last byte. This causes driver initialization to fail on
Apple eMac's with GeForce 2 MX GPUs, leaving the system with no working
console.

This is probably only seen on OpenFirmware machines like PowerPC Macs
because the BIOS image provided by OF is only the used parts of the ROM,
not a power-of-two blocks read from PCI directly so PCs always have
empty bytes at the end that are never accessed.

Signed-off-by: Nick Lopez <github@glowingmonkey.org>
Fixes: 4d4e9907ff ("drm/nouveau/bios: guard against out-of-bounds accesses to image")
Cc: <stable@vger.kernel.org> # v4.10+
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20220122081906.2633061-1-github@glowingmonkey.org
2022-01-31 22:47:53 +01:00
..
dispnv04 drm/nouveau/kms/nv04: use vzalloc for nv04_display 2021-11-12 23:46:04 +01:00
dispnv50 Merge drm/drm-next into drm-misc-next 2021-11-18 09:36:39 +01:00
include Merge drm/drm-next into drm-misc-next 2021-11-18 09:36:39 +01:00
nvif drm/nouveau: rip out nvkm_client.super 2021-08-18 19:00:15 +10:00
nvkm drm/nouveau: fix off by one in BIOS boundary checking 2022-01-31 22:47:53 +01:00
Kbuild drm/nouveau/bo: split buffer move functions into their own source files 2020-07-24 18:50:56 +10:00
Kconfig drm/gem: Use struct dma_buf_map in GEM vmap ops and convert GEM backends 2020-11-09 09:19:24 +01:00
nouveau_abi16.c drm/nouveau: rip out nvkm_client.super 2021-08-18 19:00:15 +10:00
nouveau_abi16.h
nouveau_acpi.c nouveau: ACPI: Use the ACPI_COMPANION() macro directly 2021-10-26 15:48:49 +02:00
nouveau_acpi.h drm/nouveau/bios: move ACPI _ROM handling 2020-05-22 11:13:49 +10:00
nouveau_backlight.c drm/nouveau/kms/nv50-: Explicitly check DPCD backlights for aux enable/brightness 2021-11-17 17:36:47 -05:00
nouveau_bios.c drm/nouveau: Remove unused variable ret 2021-11-12 23:46:04 +01:00
nouveau_bios.h
nouveau_bo.c drm-misc-next for 5.16: 2021-11-05 13:50:15 +10:00
nouveau_bo.h drm/ttm: device naming cleanup 2021-01-21 14:51:45 +01:00
nouveau_bo0039.c Merge drm/drm-next into drm-misc-next 2020-08-12 20:42:08 +02:00
nouveau_bo74c1.c Merge drm/drm-next into drm-misc-next 2020-08-12 20:42:08 +02:00
nouveau_bo85b5.c Merge drm/drm-next into drm-misc-next 2020-08-12 20:42:08 +02:00
nouveau_bo90b5.c Merge drm/drm-next into drm-misc-next 2020-08-12 20:42:08 +02:00
nouveau_bo5039.c Merge drm/drm-next into drm-misc-next 2020-08-12 20:42:08 +02:00
nouveau_bo9039.c Merge drm/drm-next into drm-misc-next 2020-08-12 20:42:08 +02:00
nouveau_boa0b5.c Merge drm/drm-next into drm-misc-next 2020-08-12 20:42:08 +02:00
nouveau_chan.c drm/nouveau/ga102-: support ttm buffer moves via copy engine 2021-10-06 11:05:45 +02:00
nouveau_chan.h drm/nouveau: interop with new push macros 2020-07-24 18:50:56 +10:00
nouveau_connector.c drm pull for 5.14-rc1 2021-07-01 12:53:43 -07:00
nouveau_connector.h drm/nouveau/kms/nv50-: Add basic DPCD backlight support for nouveau 2021-06-09 13:35:56 -04:00
nouveau_crtc.h
nouveau_debugfs.c drm/nouveau/debugfs: fix file release memory leak 2021-10-06 11:12:29 +02:00
nouveau_debugfs.h drm: convert .debugfs_init() hook to return void. 2020-03-18 17:53:28 +01:00
nouveau_display.c drm/nouveau/kms: delete an useless function call in nouveau_framebuffer_new() 2021-11-12 23:46:05 +01:00
nouveau_display.h drm/nouveau: Use drm_gem_ttm_dumb_map_offset() 2021-04-11 20:15:13 +02:00
nouveau_dma.c drm/nouveau/fbcon: convert imageblit() to new push macros 2020-07-24 18:50:56 +10:00
nouveau_dma.h drm/nouveau/fence: use NVIDIA's headers for sync() 2020-07-24 18:51:04 +10:00
nouveau_dmem.c mm/migrate.c: remove MIGRATE_PFN_LOCKED 2021-11-11 09:34:35 -08:00
nouveau_dmem.h drm pull for 5.8-rc1 2020-06-02 15:04:15 -07:00
nouveau_dp.c drm/nouveau/kms/nv50-: Fix clock checking algorithm in nv50_dp_mode_valid() 2020-10-30 09:34:13 +10:00
nouveau_drm.c drm: Move nomodeset kernel parameter to the DRM subsystem 2021-11-27 13:52:22 +01:00
nouveau_drv.h drm/nouveau: Add a dedicated mutex for the clients list 2021-11-04 12:29:07 +01:00
nouveau_encoder.h drm/nouveau/kms/nv50-: Add basic DPCD backlight support for nouveau 2021-06-09 13:35:56 -04:00
nouveau_fbcon.c drm/ttm: rename bo->mem and make it a pointer 2021-06-02 11:07:25 +02:00
nouveau_fbcon.h drm/nouveau/kms: Move struct nouveau_framebuffer.vma to struct nouveau_fbdev 2020-05-22 11:11:14 +10:00
nouveau_fence.c drm for 5.17-rc1 2022-01-10 12:58:46 -08:00
nouveau_fence.h drm/nouveau: signal pending fences when channel has been killed 2020-01-29 15:49:47 +10:00
nouveau_gem.c Removed the TTM Huge Page functionnality to address a crash, a timeout 2021-11-11 08:14:19 +10:00
nouveau_gem.h drm/gem: Use struct dma_buf_map in GEM vmap ops and convert GEM backends 2020-11-09 09:19:24 +01:00
nouveau_hwmon.c drm/nouveau: use NULL for pointer assignment. 2020-01-15 10:49:59 +10:00
nouveau_hwmon.h
nouveau_ioc32.c
nouveau_ioctl.h
nouveau_led.c
nouveau_led.h
nouveau_mem.c drm/nouveau: rip out nvkm_client.super 2021-08-18 19:00:15 +10:00
nouveau_mem.h drm/ttm: flip the switch for driver allocated resources v2 2021-06-04 15:16:46 +02:00
nouveau_nvif.c drm/nouveau: rip out nvkm_client.super 2021-08-18 19:00:15 +10:00
nouveau_platform.c drm/nouveau/gr/gk20a: move MODULE_FIRMWARE firmware definitions 2020-05-22 11:13:49 +10:00
nouveau_platform.h
nouveau_prime.c drm/nouveau: wait for moving fence after pinning v2 2021-06-22 15:29:03 +02:00
nouveau_reg.h
nouveau_sgdma.c drm/ttm: remove ttm_tt_destroy_common v2 2021-08-23 13:54:55 +02:00
nouveau_svm.c drm next/fixes for 5.16-rc1 2021-11-12 12:11:07 -08:00
nouveau_svm.h nouveau/svm: use the new migration invalidation 2020-07-28 16:20:33 -03:00
nouveau_ttm.c swiotlb: Update is_swiotlb_active to add a struct device argument 2021-07-13 20:04:41 -04:00
nouveau_ttm.h drm/nouveau: Implement mmap as GEM object function 2021-05-26 20:56:33 +02:00
nouveau_usif.c drm/nouveau: block a bunch of classes from userspace 2021-08-18 19:00:13 +10:00
nouveau_usif.h
nouveau_vga.c vgaarb: don't pass a cookie to vga_client_register 2021-07-21 10:29:10 +02:00
nouveau_vga.h
nouveau_vmm.c drm/ttm: rename bo->mem and make it a pointer 2021-06-02 11:07:25 +02:00
nouveau_vmm.h
nv04_fbcon.c drm/nouveau/fbcon: convert copyarea() to new push macros 2020-07-24 18:50:56 +10:00
nv04_fence.c drm/nouveau/fence: convert emit() to new push macros 2020-07-24 18:50:58 +10:00
nv10_fence.c drm/nouveau/fence: use NVIDIA's headers for read() 2020-07-24 18:51:04 +10:00
nv10_fence.h
nv17_fence.c drm/ttm: rename bo->mem and make it a pointer 2021-06-02 11:07:25 +02:00
nv50_display.h
nv50_fbcon.c drm/nouveau/fbcon/nv50-: use NVIDIA's headers for fillrect() 2020-07-24 18:51:04 +10:00
nv50_fence.c drm/ttm: rename bo->mem and make it a pointer 2021-06-02 11:07:25 +02:00
nv84_fence.c drm/nouveau/ga102-: support ttm buffer moves via copy engine 2021-10-06 11:05:45 +02:00
nvc0_fbcon.c drm/nouveau/fbcon/nv50-: use NVIDIA's headers for fillrect() 2020-07-24 18:51:04 +10:00
nvc0_fence.c drm/nouveau/fence: use NVIDIA's headers for sync() 2020-07-24 18:51:04 +10:00