mirror of
https://github.com/torvalds/linux.git
synced 2025-11-03 10:10:33 +02:00
The QXL driver doesn't use any device for DMA mappings or allocations so
dev_to_node() will panic inside ttm_device_init() on NUMA systems:
general protection fault, probably for non-canonical address 0xdffffc000000007a: 0000 [#1] PREEMPT SMP KASAN NOPTI
KASAN: null-ptr-deref in range [0x00000000000003d0-0x00000000000003d7]
CPU: 1 PID: 1 Comm: swapper/0 Not tainted 6.7.0+ #9
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.2-3-gd478f380-rebuilt.opensuse.org 04/01/2014
RIP: 0010:ttm_device_init+0x10e/0x340
Call Trace:
qxl_ttm_init+0xaa/0x310
qxl_device_init+0x1071/0x2000
qxl_pci_probe+0x167/0x3f0
local_pci_probe+0xe1/0x1b0
pci_device_probe+0x29d/0x790
really_probe+0x251/0x910
__driver_probe_device+0x1ea/0x390
driver_probe_device+0x4e/0x2e0
__driver_attach+0x1e3/0x600
bus_for_each_dev+0x12d/0x1c0
bus_add_driver+0x25a/0x590
driver_register+0x15c/0x4b0
qxl_pci_driver_init+0x67/0x80
do_one_initcall+0xf5/0x5d0
kernel_init_freeable+0x637/0xb10
kernel_init+0x1c/0x2e0
ret_from_fork+0x48/0x80
ret_from_fork_asm+0x1b/0x30
RIP: 0010:ttm_device_init+0x10e/0x340
Fall back to NUMA_NO_NODE if there is no device for DMA.
Found by Linux Verification Center (linuxtesting.org).
Fixes:
|
||
|---|---|---|
| .. | ||
| amd | ||
| arm | ||
| armada | ||
| aspeed | ||
| ast | ||
| atmel-hlcdc | ||
| bridge | ||
| ci | ||
| display | ||
| etnaviv | ||
| exynos | ||
| fsl-dcu | ||
| gma500 | ||
| gud | ||
| hisilicon | ||
| hyperv | ||
| i2c | ||
| i915 | ||
| imagination | ||
| imx | ||
| ingenic | ||
| kmb | ||
| lib | ||
| lima | ||
| logicvc | ||
| loongson | ||
| mcde | ||
| mediatek | ||
| meson | ||
| mgag200 | ||
| msm | ||
| mxsfb | ||
| nouveau | ||
| omapdrm | ||
| panel | ||
| panfrost | ||
| pl111 | ||
| qxl | ||
| radeon | ||
| renesas | ||
| rockchip | ||
| scheduler | ||
| solomon | ||
| sprd | ||
| sti | ||
| stm | ||
| sun4i | ||
| tegra | ||
| tests | ||
| tidss | ||
| tilcdc | ||
| tiny | ||
| ttm | ||
| tve200 | ||
| udl | ||
| v3d | ||
| vboxvideo | ||
| vc4 | ||
| vgem | ||
| virtio | ||
| vkms | ||
| vmwgfx | ||
| xe | ||
| xen | ||
| xlnx | ||
| drm_aperture.c | ||
| drm_atomic.c | ||
| drm_atomic_helper.c | ||
| drm_atomic_state_helper.c | ||
| drm_atomic_uapi.c | ||
| drm_auth.c | ||
| drm_blend.c | ||
| drm_bridge.c | ||
| drm_bridge_connector.c | ||
| drm_buddy.c | ||
| drm_cache.c | ||
| drm_client.c | ||
| drm_client_modeset.c | ||
| drm_color_mgmt.c | ||
| drm_connector.c | ||
| drm_crtc.c | ||
| drm_crtc_helper.c | ||
| drm_crtc_helper_internal.h | ||
| drm_crtc_internal.h | ||
| drm_damage_helper.c | ||
| drm_debugfs.c | ||
| drm_debugfs_crc.c | ||
| drm_displayid.c | ||
| drm_drv.c | ||
| drm_dumb_buffers.c | ||
| drm_edid.c | ||
| drm_edid_load.c | ||
| drm_eld.c | ||
| drm_encoder.c | ||
| drm_encoder_slave.c | ||
| drm_exec.c | ||
| drm_fb_dma_helper.c | ||
| drm_fb_helper.c | ||
| drm_fbdev_dma.c | ||
| drm_fbdev_generic.c | ||
| drm_file.c | ||
| drm_flip_work.c | ||
| drm_format_helper.c | ||
| drm_fourcc.c | ||
| drm_framebuffer.c | ||
| drm_gem.c | ||
| drm_gem_atomic_helper.c | ||
| drm_gem_dma_helper.c | ||
| drm_gem_framebuffer_helper.c | ||
| drm_gem_shmem_helper.c | ||
| drm_gem_ttm_helper.c | ||
| drm_gem_vram_helper.c | ||
| drm_gpuvm.c | ||
| drm_internal.h | ||
| drm_ioc32.c | ||
| drm_ioctl.c | ||
| drm_kms_helper_common.c | ||
| drm_lease.c | ||
| drm_managed.c | ||
| drm_mipi_dbi.c | ||
| drm_mipi_dsi.c | ||
| drm_mm.c | ||
| drm_mode_config.c | ||
| drm_mode_object.c | ||
| drm_modes.c | ||
| drm_modeset_helper.c | ||
| drm_modeset_lock.c | ||
| drm_of.c | ||
| drm_panel.c | ||
| drm_panel_orientation_quirks.c | ||
| drm_pci.c | ||
| drm_plane.c | ||
| drm_plane_helper.c | ||
| drm_prime.c | ||
| drm_print.c | ||
| drm_privacy_screen.c | ||
| drm_privacy_screen_x86.c | ||
| drm_probe_helper.c | ||
| drm_property.c | ||
| drm_rect.c | ||
| drm_self_refresh_helper.c | ||
| drm_simple_kms_helper.c | ||
| drm_suballoc.c | ||
| drm_syncobj.c | ||
| drm_sysfs.c | ||
| drm_trace.h | ||
| drm_trace_points.c | ||
| drm_vblank.c | ||
| drm_vblank_work.c | ||
| drm_vma_manager.c | ||
| drm_writeback.c | ||
| Kconfig | ||
| Makefile | ||