# git rev-parse -q --verify 7ed2632ec7d72e926b9e8bcc9ad1bb0cd37274bf^{commit} 7ed2632ec7d72e926b9e8bcc9ad1bb0cd37274bf already have revision, skipping fetch # git checkout -q -f -B kisskb 7ed2632ec7d72e926b9e8bcc9ad1bb0cd37274bf # git clean -qxdf # < git log -1 # commit 7ed2632ec7d72e926b9e8bcc9ad1bb0cd37274bf # Author: Fedor Pchelkin # Date: Sun Jan 14 00:33:45 2024 +0300 # # drm/ttm: fix ttm pool initialization for no-dma-device drivers # # 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: b0a7ce53d494 ("drm/ttm: Schedule delayed_delete worker closer") # Signed-off-by: Fedor Pchelkin # Reviewed-by: Christian König # Reported-by: Steven Rostedt # Cc: Rajneesh Bhardwaj # Cc: Felix Kuehling # Signed-off-by: Linus Torvalds # < /opt/cross/kisskb/korg/gcc-11.3.0-nolibc/riscv64-linux/bin/riscv64-linux-gcc --version # < /opt/cross/kisskb/korg/gcc-11.3.0-nolibc/riscv64-linux/bin/riscv64-linux-ld --version # < git log --format=%s --max-count=1 7ed2632ec7d72e926b9e8bcc9ad1bb0cd37274bf # make -s -j 40 ARCH=riscv O=/kisskb/build/linus_rv32_defconfig_riscv-gcc11 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-11.3.0-nolibc/riscv64-linux/bin/riscv64-linux- rv32_defconfig Using .config as base Merging /kisskb/src/arch/riscv/configs/32-bit.config Value of CONFIG_PORTABLE is redefined by fragment /kisskb/src/arch/riscv/configs/32-bit.config: Previous value: CONFIG_PORTABLE=y New value: # CONFIG_PORTABLE is not set Value of CONFIG_NONPORTABLE is redefined by fragment /kisskb/src/arch/riscv/configs/32-bit.config: Previous value: # CONFIG_NONPORTABLE is not set New value: CONFIG_NONPORTABLE=y # # merged configuration written to .config (needs make) # .config:6302:warning: override: ARCH_RV32I changes choice state # < make -s -j 40 ARCH=riscv O=/kisskb/build/linus_rv32_defconfig_riscv-gcc11 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-11.3.0-nolibc/riscv64-linux/bin/riscv64-linux- help # make -s -j 40 ARCH=riscv O=/kisskb/build/linus_rv32_defconfig_riscv-gcc11 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-11.3.0-nolibc/riscv64-linux/bin/riscv64-linux- olddefconfig # make -s -j 40 ARCH=riscv O=/kisskb/build/linus_rv32_defconfig_riscv-gcc11 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-11.3.0-nolibc/riscv64-linux/bin/riscv64-linux- Completed OK # rm -rf /kisskb/build/linus_rv32_defconfig_riscv-gcc11 # Build took: 0:01:40.480365