ci starts bisection 2024-07-07 15:44:43.556363688 +0000 UTC m=+113644.508578354 bisecting cause commit starting from 0b58e108042b0ed28a71cd7edf5175999955b233 building syzkaller on bc4ebbb5bf84ebb005a6746d61df58528c02e85f ensuring issue is reproducible on original commit 0b58e108042b0ed28a71cd7edf5175999955b233 testing commit 0b58e108042b0ed28a71cd7edf5175999955b233 gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: c92bae9c09328cebe3c8047059a0a8223b1e47748e41a2d8be8e95d1a22f1ffb all runs: crashed: stack segment fault in cpu_map_redirect representative crash: stack segment fault in cpu_map_redirect, types: [UNKNOWN] check whether we can drop unnecessary instrumentation disabling configs for [LOCKDEP ATOMIC_SLEEP HANG LEAK UBSAN BUG KASAN], they are not needed testing commit 0b58e108042b0ed28a71cd7edf5175999955b233 gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: c819f5d92af26a5c270121e8ddbce61402817bd27fb3e0d0e441878ece3029c9 all runs: crashed: BUG: unable to handle kernel NULL pointer dereference in cpu_map_redirect representative crash: BUG: unable to handle kernel NULL pointer dereference in cpu_map_redirect, types: [UNKNOWN] the bug reproduces without the instrumentation disabling configs for [HANG LEAK UBSAN BUG KASAN LOCKDEP ATOMIC_SLEEP], they are not needed kconfig minimization: base=3998 full=8081 leaves diff=2014 split chunks (needed=false): <2014> split chunk #0 of len 2014 into 5 parts testing without sub-chunk 1/5 disabling configs for [LEAK UBSAN BUG KASAN LOCKDEP ATOMIC_SLEEP HANG], they are not needed testing commit 0b58e108042b0ed28a71cd7edf5175999955b233 gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: 4c183f97f51d54b21416bc70303324f0257a186d0a36212449e488d514f4b9f4 all runs: crashed: BUG: unable to handle kernel NULL pointer dereference in cpu_map_redirect representative crash: BUG: unable to handle kernel NULL pointer dereference in cpu_map_redirect, types: [UNKNOWN] the chunk can be dropped testing without sub-chunk 2/5 disabling configs for [LEAK UBSAN BUG KASAN LOCKDEP ATOMIC_SLEEP HANG], they are not needed testing commit 0b58e108042b0ed28a71cd7edf5175999955b233 gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: 0b773153cee9eec6df0cd85725a41ffcdc4fbdec314d9c2755453c86fbf191c6 all runs: crashed: BUG: unable to handle kernel NULL pointer dereference in cpu_map_redirect representative crash: BUG: unable to handle kernel NULL pointer dereference in cpu_map_redirect, types: [UNKNOWN] the chunk can be dropped testing without sub-chunk 3/5 disabling configs for [BUG KASAN LOCKDEP ATOMIC_SLEEP HANG LEAK UBSAN], they are not needed testing commit 0b58e108042b0ed28a71cd7edf5175999955b233 gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: 60107f011eaebdea6231ca42ee6c4570136845dba5413870694938dd4480232e all runs: crashed: BUG: unable to handle kernel NULL pointer dereference in cpu_map_redirect representative crash: BUG: unable to handle kernel NULL pointer dereference in cpu_map_redirect, types: [UNKNOWN] the chunk can be dropped testing without sub-chunk 4/5 disabling configs for [HANG LEAK UBSAN BUG KASAN LOCKDEP ATOMIC_SLEEP], they are not needed testing commit 0b58e108042b0ed28a71cd7edf5175999955b233 gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: d1f1b92a0559ff121fe18f7021a6cb4d4a3b4b7febc57cd6a76a8b80139fe0ee all runs: crashed: BUG: unable to handle kernel NULL pointer dereference in cpu_map_redirect representative crash: BUG: unable to handle kernel NULL pointer dereference in cpu_map_redirect, types: [UNKNOWN] the chunk can be dropped testing without sub-chunk 5/5 disabling configs for [UBSAN BUG KASAN LOCKDEP ATOMIC_SLEEP HANG LEAK], they are not needed testing commit 0b58e108042b0ed28a71cd7edf5175999955b233 gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: d8c2104bf61dfde938275893bf77e7ec587f857e40b8f555b0077f918fea427e all runs: OK false negative chance: 0.000 minimized to 402 configs; suspects: [ARCH_ENABLE_MEMORY_HOTREMOVE ATM BCMA BLK_DEV_ZONED BPF_SYSCALL CARDBUS CFG80211 CFG80211_WEXT CMA COMMON_CLK CONTIG_ALLOC CRYPTO_842 CRYPTO_LZ4 CRYPTO_LZ4HC CRYPTO_ZSTD DVB_CORE EXTCON FB GPIOLIB HID_ZEROPLUS I2C_MUX IIO IOMMUFD IRQ_REMAP KVM KVM_INTEL LIBNVDIMM MEDIA_ANALOG_TV_SUPPORT MEDIA_CAMERA_SUPPORT MEDIA_CEC_SUPPORT MEDIA_CONTROLLER MEDIA_DIGITAL_TV_SUPPORT MEDIA_RADIO_SUPPORT MEDIA_SDR_SUPPORT MEDIA_SUPPORT MEDIA_TEST_SUPPORT MEDIA_USB_SUPPORT MEMORY_HOTPLUG MEMORY_HOTREMOVE MFD_VIPERBOARD PARPORT PCCARD PCMCIA PHONET RADIO_ADAPTERS RADIO_SI470X RADIO_SI4713 RC_CORE RFKILL SND SOUND SPI SSB TAP TARGET_CORE TUN USB_AMD5536UDC USB_ATM USB_CONFIGFS USB_CONFIGFS_ECM_SUBSET USB_CONFIGFS_EEM USB_CONFIGFS_F_FS USB_CONFIGFS_F_HID USB_CONFIGFS_F_LB_SS USB_CONFIGFS_F_MIDI USB_CONFIGFS_F_PRINTER USB_CONFIGFS_F_TCM USB_CONFIGFS_F_UAC1 USB_CONFIGFS_F_UAC1_LEGACY USB_CONFIGFS_F_UAC2 USB_CONFIGFS_F_UVC USB_CONFIGFS_MASS_STORAGE USB_CONFIGFS_NCM USB_CONFIGFS_OBEX USB_CONFIGFS_PHONET USB_CONFIGFS_RNDIS USB_CONFIGFS_SERIAL USB_CXACRU USB_CYPRESS_CY7C63 USB_CYTHERM USB_DSBR USB_DUMMY_HCD USB_DWC2 USB_DWC2_HOST USB_DWC2_PCI USB_DWC3 USB_DWC3_GADGET USB_DWC3_OF_SIMPLE USB_DWC3_PCI USB_DWC3_ULPI USB_DYNAMIC_MINORS USB_EG20T USB_EHCI_HCD_PLATFORM USB_EHCI_ROOT_HUB_TT USB_EHSET_TEST_FIXTURE USB_EMI26 USB_EMI62 USB_EPSON2888 USB_EZUSB_FX2 USB_FEW_INIT_RETRIES USB_F_ACM USB_F_ECM USB_F_EEM USB_F_FS USB_F_HID USB_F_MASS_STORAGE USB_F_MIDI USB_F_NCM USB_F_OBEX USB_F_PHONET USB_F_PRINTER USB_F_RNDIS USB_F_SERIAL USB_F_SS_LB USB_F_SUBSET USB_F_TCM USB_F_UAC1 USB_F_UAC1_LEGACY USB_F_UAC2 USB_F_UVC USB_GADGET USB_GADGETFS USB_GADGET_DEBUG_FILES USB_GADGET_DEBUG_FS USB_GL860 USB_GOKU USB_GPIO_VBUS USB_GR_UDC USB_GSPCA USB_GSPCA_BENQ USB_GSPCA_CONEX USB_GSPCA_CPIA1 USB_GSPCA_DTCS033 USB_GSPCA_ETOMS USB_GSPCA_FINEPIX USB_GSPCA_JEILINJ USB_GSPCA_JL2005BCD USB_GSPCA_KINECT USB_GSPCA_KONICA USB_GSPCA_MARS USB_GSPCA_MR97310A USB_GSPCA_NW80X USB_GSPCA_OV519 USB_GSPCA_OV534 USB_GSPCA_OV534_9 USB_GSPCA_PAC207 USB_GSPCA_PAC7302 USB_GSPCA_PAC7311 USB_GSPCA_SE401 USB_GSPCA_SN9C2028 USB_GSPCA_SN9C20X USB_GSPCA_SONIXB USB_GSPCA_SONIXJ USB_GSPCA_SPCA1528 USB_GSPCA_SPCA500 USB_GSPCA_SPCA501 USB_GSPCA_SPCA505 USB_GSPCA_SPCA506 USB_GSPCA_SPCA508 USB_GSPCA_SPCA561 USB_GSPCA_SQ905 USB_GSPCA_SQ905C USB_GSPCA_SQ930X USB_GSPCA_STK014 USB_GSPCA_STK1135 USB_GSPCA_STV0680 USB_GSPCA_SUNPLUS USB_GSPCA_T613 USB_GSPCA_TOPRO USB_GSPCA_TOUPTEK USB_GSPCA_TV8532 USB_GSPCA_VC032X USB_GSPCA_VICAM USB_GSPCA_XIRLINK_CIT USB_GSPCA_ZC3XX USB_HACKRF USB_HCD_BCMA USB_HCD_SSB USB_HSIC_USB3503 USB_HSIC_USB4604 USB_HSO USB_HUB_USB251XB USB_IDMOUSE USB_IOWARRIOR USB_IPHETH USB_ISIGHTFW USB_ISP116X_HCD USB_ISP1301 USB_ISP1760 USB_ISP1760_DUAL_ROLE USB_ISP1760_HCD USB_ISP1761_UDC USB_KAWETH USB_KC2190 USB_KEENE USB_LAN78XX USB_LCD USB_LD USB_LEDS_TRIGGER_USBPORT USB_LED_TRIG USB_LEGOTOWER USB_LIBCOMPOSITE USB_LINK_LAYER_TEST USB_M5602 USB_MA901 USB_MAX3421_HCD USB_MDC800 USB_MICROTEK USB_MR800 USB_MSI2500 USB_MUSB_DUAL_ROLE USB_MUSB_HDRC USB_MV_U3D USB_MV_UDC USB_NET2272 USB_NET2272_DMA USB_NET2280 USB_NET_AX88179_178A USB_NET_AX8817X USB_NET_CDCETHER USB_NET_CDC_EEM USB_NET_CDC_MBIM USB_NET_CDC_NCM USB_NET_CDC_SUBSET USB_NET_CDC_SUBSET_ENABLE USB_NET_CH9200 USB_NET_CX82310_ETH USB_NET_DM9601 USB_NET_GL620A USB_NET_HUAWEI_CDC_NCM USB_NET_INT51X1 USB_NET_KALMIA USB_NET_MCS7830 USB_NET_NET1080 USB_NET_PLUSB USB_NET_QMI_WWAN USB_NET_RNDIS_HOST USB_NET_SMSC75XX USB_NET_SMSC95XX USB_NET_SR9700 USB_NET_SR9800 USB_NET_ZAURUS USB_OHCI_HCD_PLATFORM USB_OTG USB_OTG_FSM USB_OXU210HP_HCD USB_PEGASUS USB_PULSE8_CEC USB_PWC USB_PWC_INPUT_EVDEV USB_PXA27X USB_R8A66597 USB_R8A66597_HCD USB_RAINSHADOW_CEC USB_RAREMONO USB_RAW_GADGET USB_RTL8150 USB_RTL8152 USB_RTL8153_ECM USB_S2255 USB_SERIAL USB_SERIAL_AIRCABLE USB_SERIAL_ARK3116 USB_SERIAL_BELKIN USB_SERIAL_CH341 USB_SERIAL_CONSOLE USB_SERIAL_CP210X USB_SERIAL_CYBERJACK USB_SERIAL_CYPRESS_M8 USB_SERIAL_DEBUG USB_SERIAL_DIGI_ACCELEPORT USB_SERIAL_EDGEPORT USB_SERIAL_EDGEPORT_TI USB_SERIAL_EMPEG USB_SERIAL_F81232 USB_SERIAL_F8153X USB_SERIAL_FTDI_SIO USB_SERIAL_GARMIN USB_SERIAL_GENERIC USB_SERIAL_IPAQ USB_SERIAL_IPW USB_SERIAL_IR USB_SERIAL_IUU USB_SERIAL_KEYSPAN USB_SERIAL_KEYSPAN_PDA USB_SERIAL_KLSI USB_SERIAL_KOBIL_SCT USB_SERIAL_MCT_U232 USB_SERIAL_METRO USB_SERIAL_MOS7715_PARPORT USB_SERIAL_MOS7720 USB_SERIAL_MOS7840 USB_SERIAL_MXUPORT USB_SERIAL_NAVMAN USB_SERIAL_OMNINET USB_SERIAL_OPTICON USB_SERIAL_OPTION USB_SERIAL_OTI6858 USB_SERIAL_PL2303 USB_SERIAL_QCAUX USB_SERIAL_QT2 USB_SERIAL_QUALCOMM USB_SERIAL_SAFE USB_SERIAL_SIERRAWIRELESS USB_SERIAL_SIMPLE USB_SERIAL_SPCP8X5 USB_SERIAL_SSU100 USB_SERIAL_SYMBOL USB_SERIAL_TI USB_SERIAL_UPD78F0730 USB_SERIAL_VISOR USB_SERIAL_WHITEHEAT USB_SERIAL_WISHBONE USB_SERIAL_WWAN USB_SERIAL_XR USB_SERIAL_XSENS_MT USB_SEVSEG USB_SI470X USB_SI4713 USB_SIERRA_NET USB_SISUSBVGA USB_SL811_CS USB_SL811_HCD USB_SL811_HCD_ISO USB_SNP_CORE USB_SPEEDTOUCH USB_STORAGE_ALAUDA USB_STORAGE_CYPRESS_ATACB USB_STORAGE_DATAFAB USB_STORAGE_ENE_UB6250 USB_STORAGE_FREECOM USB_STORAGE_ISD200 USB_STORAGE_JUMPSHOT USB_STORAGE_KARMA USB_STORAGE_ONETOUCH USB_STORAGE_SDDR09 USB_STORAGE_SDDR55 USB_STORAGE_USBAT USB_STV06XX USB_TEST USB_TMC USB_TRANCEVIBRATOR USB_UAS USB_UEAGLEATM USB_ULPI_BUS USB_USBNET USB_USS720 USB_U_AUDIO USB_U_ETHER USB_U_SERIAL USB_VIDEO_CLASS USB_VIDEO_CLASS_INPUT_EVDEV USB_VL600 USB_WDM USB_XHCI_DBGCAP USB_XHCI_PLATFORM USB_XUSBATM USB_YUREX USERFAULTFD USERIO USERMODE_DRIVER USER_RETURN_NOTIFIER UVC_COMMON U_SERIAL_CONSOLE V4L2_MEM2MEM_DEV V4L_TEST_DRIVERS VALIDATE_FS_PARSER VDPA VDPA_SIM VDPA_SIM_BLOCK VDPA_SIM_NET VDPA_USER VDSO_GETRANDOM VETH VFIO VFIO_DEVICE_CDEV VFIO_PCI VFIO_PCI_CORE VFIO_PCI_INTX VFIO_PCI_MMAP VFIO_VIRQFD VGASTATE VHOST VHOST_CROSS_ENDIAN_LEGACY VHOST_IOTLB VHOST_NET VHOST_RING VHOST_TASK VHOST_VDPA VHOST_VSOCK VIDEO VIDEOBUF2_CORE VIDEOBUF2_DMA_CONTIG VIDEOBUF2_DMA_SG VIDEOBUF2_MEMOPS VIDEOBUF2_V4L2 VIDEOBUF2_VMALLOC VIDEOMODE_HELPERS VIDEO_AU0828 VIDEO_AU0828_RC VIDEO_AU0828_V4L2 VIDEO_CS53L32A VIDEO_CX231XX VIDEO_CX231XX_ALSA VIDEO_CX231XX_DVB VIDEO_CX231XX_RC VIDEO_CX2341X VIDEO_CX25840 VIDEO_DEV VIDEO_EM28XX VIDEO_EM28XX_ALSA VIDEO_EM28XX_DVB VIDEO_EM28XX_RC VIDEO_EM28XX_V4L2 VIDEO_GO7007 VIDEO_GO7007_LOADER VIDEO_GO7007_USB VIDEO_GO7007_USB_S2250_BOARD VIDEO_HDPVR VIDEO_MSP3400 VIDEO_PVRUSB2 VIDEO_PVRUSB2_DVB VIDEO_PVRUSB2_SYSFS VIDEO_SAA711X VIDEO_STK1160 VIDEO_TUNER VIDEO_TVEEPROM VIDEO_USBTV VIDEO_V4L2_I2C VIDEO_V4L2_SUBDEV_API VIDEO_V4L2_TPG VIDEO_VICODEC VIDEO_VIM2M VIDEO_VIMC VIDEO_VIVID VIDEO_VIVID_CEC VIDEO_WM8775 VIPERBOARD_ADC VIRTIO_BALLOON VIRTIO_DMA_SHARED_BUFFER VIRTIO_MEM VIRTIO_MMIO VIRTIO_MMIO_CMDLINE_DEVICES VIRTIO_PMEM VIRTIO_VDPA VIRTIO_VSOCKETS VIRTIO_VSOCKETS_COMMON VIRT_WIFI VLAN_8021Q VLAN_8021Q_GVRP VLAN_8021Q_MVRP VMAP_PFN VMWARE_VMCI VMXNET3 VP_VDPA VSOCKETS VSOCKETS_DIAG VSOCKETS_LOOPBACK VSOCKMON VT_HW_CONSOLE_BINDING VXFS_FS WANT_DEV_COREDUMP WEXT_CORE WEXT_PRIV WEXT_PROC WIREGUARD WIRELESS WIRELESS_EXT WLAN WLAN_VENDOR_ADMTEK WLAN_VENDOR_PURELIFI WLAN_VENDOR_SILABS X86_SGX X86_SGX_KVM X86_USER_SHADOW_STACK X86_X2APIC X86_X32_ABI XDP_SOCKETS XDP_SOCKETS_DIAG XFRM_ESPINTCP XFRM_INTERFACE XFRM_IPCOMP XFRM_MIGRATE XFRM_OFFLOAD XFRM_STATISTICS XFRM_SUB_POLICY XFRM_USER_COMPAT XFS_FS XFS_POSIX_ACL XFS_QUOTA XFS_RT XOR_BLOCKS YENTA YENTA_ENE_TUNE YENTA_O2 YENTA_RICOH YENTA_TI YENTA_TOSHIBA ZEROPLUS_FF ZLIB_DEFLATE ZONEFS_FS ZPOOL ZRAM ZRAM_DEF_COMP_LZORLE ZSMALLOC ZSTD_COMPRESS ZSWAP ZSWAP_COMPRESSOR_DEFAULT_LZO ZSWAP_DEFAULT_ON ZSWAP_SHRINKER_DEFAULT_ON ZSWAP_ZPOOL_DEFAULT_ZSMALLOC] disabling configs for [LOCKDEP ATOMIC_SLEEP HANG LEAK UBSAN BUG KASAN], they are not needed picked [v6.9 v6.8 v6.7 v6.5 v6.3 v6.1 v5.19 v5.17 v5.14 v5.11 v5.8 v5.5 v5.2 v4.20 v4.19] out of 32 release tags testing release v6.9 testing commit a38297e3fb012ddfa7ce0321a7e5a8daeb1872b6 gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: 6c5456fb4c1cf24bbdf05f50f8022f9294363d0f6fc92103a50ad2a137977390 all runs: OK false negative chance: 0.000 # git bisect start 0b58e108042b0ed28a71cd7edf5175999955b233 a38297e3fb012ddfa7ce0321a7e5a8daeb1872b6 Bisecting: 12252 revisions left to test after this (roughly 14 steps) [f1f9984fdc5e37303d7180ff7a85dfecb8e57e85] Merge tag 'riscv-for-linus-6.10-mw2' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux testing commit f1f9984fdc5e37303d7180ff7a85dfecb8e57e85 gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: 70abe2f6c064f7cbee4a4ec519982bf678e916d58f9f5756d40becaaa1bdff58 all runs: OK false negative chance: 0.000 # git bisect good f1f9984fdc5e37303d7180ff7a85dfecb8e57e85 Bisecting: 5706 revisions left to test after this (roughly 13 steps) [f34d6635752c0240cc3408f4ed25301d5a090a9f] Merge branch 'main' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next.git testing commit f34d6635752c0240cc3408f4ed25301d5a090a9f gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: 8ad6ef53f26d87eb9859ded852db072c5c92c820a010cb69c1773c7b8aacd53b all runs: crashed: BUG: unable to handle kernel NULL pointer dereference in cpu_map_redirect representative crash: BUG: unable to handle kernel NULL pointer dereference in cpu_map_redirect, types: [UNKNOWN] # git bisect bad f34d6635752c0240cc3408f4ed25301d5a090a9f Bisecting: 3387 revisions left to test after this (roughly 12 steps) [6f9cfb254035df3c5733d0eeb8dda55307882a96] Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap.git testing commit 6f9cfb254035df3c5733d0eeb8dda55307882a96 gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: e737ed61647a0b78e01570360e4c8bb9bab285311fa557f70c5680dcdb7869bd all runs: OK false negative chance: 0.000 # git bisect good 6f9cfb254035df3c5733d0eeb8dda55307882a96 Bisecting: 1764 revisions left to test after this (roughly 11 steps) [4893f488df2d5f10ec8893202bf8110d94f24dce] Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/printk/linux.git testing commit 4893f488df2d5f10ec8893202bf8110d94f24dce gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: 25ea547093bce35d57fd492ce8f794d6134cb686e858427cd16d5c1f5ae95b0d all runs: OK false negative chance: 0.000 # git bisect good 4893f488df2d5f10ec8893202bf8110d94f24dce Bisecting: 859 revisions left to test after this (roughly 10 steps) [56bf02c26a362a270c7f12f1e36aeced95bc2287] Merge tag 'wireless-next-2024-06-27' of git://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless-next testing commit 56bf02c26a362a270c7f12f1e36aeced95bc2287 gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: f6edbdbf5e6ab1e28bb4082276a787c8907d7a7bbca5a690e0ec0279a372f21a all runs: crashed: BUG: unable to handle kernel NULL pointer dereference in cpu_map_redirect representative crash: BUG: unable to handle kernel NULL pointer dereference in cpu_map_redirect, types: [UNKNOWN] # git bisect bad 56bf02c26a362a270c7f12f1e36aeced95bc2287 Bisecting: 468 revisions left to test after this (roughly 9 steps) [93d4e8bb3f137e8037a65ea96f175f81c25c50e5] Merge tag 'wireless-next-2024-06-07' of git://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless-next testing commit 93d4e8bb3f137e8037a65ea96f175f81c25c50e5 gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: ff76e522ab015f23b526e1d634f274a8bbb4cd368d2c61607f26cc99ec5ebde6 all runs: OK false negative chance: 0.000 # git bisect good 93d4e8bb3f137e8037a65ea96f175f81c25c50e5 Bisecting: 234 revisions left to test after this (roughly 8 steps) [a0c6359df6c70f0754728e5353e828967910575b] Merge branch 'bnxt_en-netdev_queue_mgmt_ops' testing commit a0c6359df6c70f0754728e5353e828967910575b gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: 39cf6ddf4f47517df17d4c75aaf76480c3a5a4f18977251c196c0b286bad3faa all runs: OK false negative chance: 0.000 # git bisect good a0c6359df6c70f0754728e5353e828967910575b Bisecting: 117 revisions left to test after this (roughly 7 steps) [dd2a0ff554082f6972b6cc6ea8f9d67e123e054e] net: tn40xx: add basic Tx handling testing commit dd2a0ff554082f6972b6cc6ea8f9d67e123e054e gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: a8ecf86c6cbd98c8c36c4f27867d08e9686038bf845447d5b0071e1f9f0e37c7 all runs: crashed: BUG: unable to handle kernel NULL pointer dereference in cpu_map_redirect representative crash: BUG: unable to handle kernel NULL pointer dereference in cpu_map_redirect, types: [UNKNOWN] # git bisect bad dd2a0ff554082f6972b6cc6ea8f9d67e123e054e Bisecting: 57 revisions left to test after this (roughly 6 steps) [84562f9953ec5f91a4922baa2bd4f2d4f64fac31] Merge branch '100GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/next-queue testing commit 84562f9953ec5f91a4922baa2bd4f2d4f64fac31 gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: e0f8874273f4144604029c06112fbd55ea2e4dffb714d7d593282e146e9797a1 all runs: OK false negative chance: 0.000 # git bisect good 84562f9953ec5f91a4922baa2bd4f2d4f64fac31 Bisecting: 28 revisions left to test after this (roughly 5 steps) [7e7c714a36a5b10e391168e7e8145060e041ea12] Merge branch 'af_unix-remove-spin_lock_nested-and-convert-to-lock_cmp_fn' testing commit 7e7c714a36a5b10e391168e7e8145060e041ea12 gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: 005b3501f190a68c6a2672f521b42b2b3261a17528cb6b436872a67c8e1916b5 all runs: crashed: BUG: unable to handle kernel NULL pointer dereference in cpu_map_redirect representative crash: BUG: unable to handle kernel NULL pointer dereference in cpu_map_redirect, types: [UNKNOWN] # git bisect bad 7e7c714a36a5b10e391168e7e8145060e041ea12 Bisecting: 14 revisions left to test after this (roughly 4 steps) [78f520b7bbe579438dfc202226b3dac5607d8c7f] net: Use nested-BH locking for bpf_scratchpad. testing commit 78f520b7bbe579438dfc202226b3dac5607d8c7f gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: b2a1070fa07954dbceb89333c77a9bcecdd68033454d4f2c1c7c62c06d592294 all runs: OK false negative chance: 0.000 # git bisect good 78f520b7bbe579438dfc202226b3dac5607d8c7f Bisecting: 7 revisions left to test after this (roughly 3 steps) [98f706de445b464f25220360210a4bcb9cc6c41a] af_unix: Define locking order for U_LOCK_SECOND in unix_stream_connect(). testing commit 98f706de445b464f25220360210a4bcb9cc6c41a gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: d3531c08adb3802a4818ae989d113906bf65b950ba0af5fecb03f7e112009d9e all runs: crashed: BUG: unable to handle kernel NULL pointer dereference in cpu_map_redirect representative crash: BUG: unable to handle kernel NULL pointer dereference in cpu_map_redirect, types: [UNKNOWN] # git bisect bad 98f706de445b464f25220360210a4bcb9cc6c41a Bisecting: 3 revisions left to test after this (roughly 2 steps) [bf2468f9afba8001c7432d104756a5dd3537bc76] Merge branch 'locking-introduce-nested-bh-locking' testing commit bf2468f9afba8001c7432d104756a5dd3537bc76 gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: bda4e9ce8b93f5f8423dd96f6a5da8dd4af65fac99128a5a92ac6c8be87d8e7f all runs: crashed: BUG: unable to handle kernel NULL pointer dereference in cpu_map_redirect representative crash: BUG: unable to handle kernel NULL pointer dereference in cpu_map_redirect, types: [UNKNOWN] # git bisect bad bf2468f9afba8001c7432d104756a5dd3537bc76 Bisecting: 0 revisions left to test after this (roughly 1 step) [3f9fe37d9e16a6cfd5f4d1f536686ea71db3196f] net: Move per-CPU flush-lists to bpf_net_context on PREEMPT_RT. testing commit 3f9fe37d9e16a6cfd5f4d1f536686ea71db3196f gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: d7a907d827be76c7ec652bc1c834cb2ab7b51ee514ac503430a5282f51ac3f96 all runs: crashed: BUG: unable to handle kernel NULL pointer dereference in cpu_map_redirect representative crash: BUG: unable to handle kernel NULL pointer dereference in cpu_map_redirect, types: [UNKNOWN] # git bisect bad 3f9fe37d9e16a6cfd5f4d1f536686ea71db3196f Bisecting: 0 revisions left to test after this (roughly 0 steps) [401cb7dae8130fd34eb84648e02ab4c506df7d5e] net: Reference bpf_redirect_info via task_struct on PREEMPT_RT. testing commit 401cb7dae8130fd34eb84648e02ab4c506df7d5e gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: 791c566a86abbaa2b6f38c039d8933de459b6e72c66b1dbc80ca44a59adbfc57 all runs: crashed: BUG: unable to handle kernel NULL pointer dereference in cpu_map_redirect representative crash: BUG: unable to handle kernel NULL pointer dereference in cpu_map_redirect, types: [UNKNOWN] # git bisect bad 401cb7dae8130fd34eb84648e02ab4c506df7d5e 401cb7dae8130fd34eb84648e02ab4c506df7d5e is the first bad commit commit 401cb7dae8130fd34eb84648e02ab4c506df7d5e Author: Sebastian Andrzej Siewior Date: Thu Jun 20 15:22:04 2024 +0200 net: Reference bpf_redirect_info via task_struct on PREEMPT_RT. The XDP redirect process is two staged: - bpf_prog_run_xdp() is invoked to run a eBPF program which inspects the packet and makes decisions. While doing that, the per-CPU variable bpf_redirect_info is used. - Afterwards xdp_do_redirect() is invoked and accesses bpf_redirect_info and it may also access other per-CPU variables like xskmap_flush_list. At the very end of the NAPI callback, xdp_do_flush() is invoked which does not access bpf_redirect_info but will touch the individual per-CPU lists. The per-CPU variables are only used in the NAPI callback hence disabling bottom halves is the only protection mechanism. Users from preemptible context (like cpu_map_kthread_run()) explicitly disable bottom halves for protections reasons. Without locking in local_bh_disable() on PREEMPT_RT this data structure requires explicit locking. PREEMPT_RT has forced-threaded interrupts enabled and every NAPI-callback runs in a thread. If each thread has its own data structure then locking can be avoided. Create a struct bpf_net_context which contains struct bpf_redirect_info. Define the variable on stack, use bpf_net_ctx_set() to save a pointer to it, bpf_net_ctx_clear() removes it again. The bpf_net_ctx_set() may nest. For instance a function can be used from within NET_RX_SOFTIRQ/ net_rx_action which uses bpf_net_ctx_set() and NET_TX_SOFTIRQ which does not. Therefore only the first invocations updates the pointer. Use bpf_net_ctx_get_ri() as a wrapper to retrieve the current struct bpf_redirect_info. The returned data structure is zero initialized to ensure nothing is leaked from stack. This is done on first usage of the struct. bpf_net_ctx_set() sets bpf_redirect_info::kern_flags to 0 to note that initialisation is required. First invocation of bpf_net_ctx_get_ri() will memset() the data structure and update bpf_redirect_info::kern_flags. bpf_redirect_info::nh is excluded from memset because it is only used once BPF_F_NEIGH is set which also sets the nh member. The kern_flags is moved past nh to exclude it from memset. The pointer to bpf_net_context is saved task's task_struct. Using always the bpf_net_context approach has the advantage that there is almost zero differences between PREEMPT_RT and non-PREEMPT_RT builds. Cc: Andrii Nakryiko Cc: Eduard Zingerman Cc: Hao Luo Cc: Jiri Olsa Cc: John Fastabend Cc: KP Singh Cc: Martin KaFai Lau Cc: Song Liu Cc: Stanislav Fomichev Cc: Yonghong Song Acked-by: Alexei Starovoitov Acked-by: Jesper Dangaard Brouer Reviewed-by: Toke Høiland-Jørgensen Signed-off-by: Sebastian Andrzej Siewior Link: https://patch.msgid.link/20240620132727.660738-15-bigeasy@linutronix.de Signed-off-by: Jakub Kicinski include/linux/filter.h | 56 +++++++++++++++++++++++++++++++++++++++++--------- include/linux/sched.h | 3 +++ kernel/bpf/cpumap.c | 3 +++ kernel/bpf/devmap.c | 9 +++++++- kernel/fork.c | 1 + net/bpf/test_run.c | 11 +++++++++- net/core/dev.c | 29 +++++++++++++++++++++++++- net/core/filter.c | 44 +++++++++++---------------------------- net/core/lwt_bpf.c | 3 +++ 9 files changed, 114 insertions(+), 45 deletions(-) accumulated error probability: 0.00 culprit signature: 791c566a86abbaa2b6f38c039d8933de459b6e72c66b1dbc80ca44a59adbfc57 parent signature: b2a1070fa07954dbceb89333c77a9bcecdd68033454d4f2c1c7c62c06d592294 revisions tested: 23, total time: 9h30m36.942305982s (build: 5h49m21.237413933s, test: 3h16m48.526613884s) first bad commit: 401cb7dae8130fd34eb84648e02ab4c506df7d5e net: Reference bpf_redirect_info via task_struct on PREEMPT_RT. recipients (to): ["ast@kernel.org" "bigeasy@linutronix.de" "hawk@kernel.org" "kuba@kernel.org" "toke@redhat.com"] recipients (cc): [] crash: BUG: unable to handle kernel NULL pointer dereference in cpu_map_redirect BUG: kernel NULL pointer dereference, address: 0000000000000038 #PF: supervisor read access in kernel mode #PF: error_code(0x0000) - not-present page PGD 8000000112c49067 P4D 8000000112c49067 PUD 112fe2067 PMD 0 Oops: Oops: 0000 [#1] PREEMPT SMP PTI CPU: 1 PID: 3311 Comm: syz.0.15 Not tainted 6.10.0-rc4-syzkaller #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 06/07/2024 RIP: 0010:bpf_net_ctx_get_ri include/linux/filter.h:782 [inline] RIP: 0010:__bpf_xdp_redirect_map include/linux/filter.h:1631 [inline] RIP: 0010:cpu_map_redirect+0x17/0xc0 kernel/bpf/cpumap.c:645 Code: 44 00 00 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 f3 0f 1e fa 48 89 d0 65 48 8b 0c 25 80 fe 02 00 48 8b 89 90 16 00 00 <8b> 51 38 f6 c2 02 75 2c c7 41 20 00 00 00 00 48 c7 41 18 00 00 00 RSP: 0018:ffffc900001abc30 EFLAGS: 00010246 RAX: 0000000000000008 RBX: ffffc90000f350b8 RCX: 0000000000000000 RDX: 0000000000000008 RSI: 00000000001abce0 RDI: ffff888112b85e00 RBP: ffffc900001abcf8 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: ffffffff81334e50 R12: ffffc900001abc60 R13: 0000000000000022 R14: 0000000000000140 R15: 0000000000000000 FS: 00007fbc1cc1c6c0(0000) GS:ffff888237d00000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000000000000038 CR3: 0000000119cca000 CR4: 00000000003506f0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 Call Trace: ___bpf_prog_run+0x5f6/0x2280 kernel/bpf/core.c:2012 __bpf_prog_run32+0xbb/0xe0 kernel/bpf/core.c:2253 bpf_dispatcher_nop_func include/linux/bpf.h:1243 [inline] __bpf_prog_run include/linux/filter.h:691 [inline] bpf_prog_run_xdp include/net/xdp.h:514 [inline] tun_build_skb drivers/net/tun.c:1711 [inline] tun_get_user+0x4a8/0x12c0 drivers/net/tun.c:1819 tun_chr_write_iter+0x5a/0xc0 drivers/net/tun.c:2048 new_sync_write fs/read_write.c:497 [inline] vfs_write+0x2fc/0x490 fs/read_write.c:590 ksys_write+0x70/0xe0 fs/read_write.c:643 do_syscall_x64 arch/x86/entry/common.c:52 [inline] do_syscall_64+0x8d/0x1a0 arch/x86/entry/common.c:83 entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7fbc1d19175f Code: 89 54 24 18 48 89 74 24 10 89 7c 24 08 e8 29 8c 02 00 48 8b 54 24 18 48 8b 74 24 10 41 89 c0 8b 7c 24 08 b8 01 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 31 44 89 c7 48 89 44 24 08 e8 7c 8c 02 00 48 RSP: 002b:00007fbc1cc1c010 EFLAGS: 00000293 ORIG_RAX: 0000000000000001 RAX: ffffffffffffffda RBX: 00007fbc1d320f60 RCX: 00007fbc1d19175f RDX: 0000000000000022 RSI: 0000000020000a40 RDI: 00000000000000c8 RBP: 00007fbc1d201aa1 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000022 R11: 0000000000000293 R12: 0000000000000000 R13: 000000000000000b R14: 00007fbc1d320f60 R15: 00007fff7cdfae58 Modules linked in: CR2: 0000000000000038 ---[ end trace 0000000000000000 ]--- RIP: 0010:bpf_net_ctx_get_ri include/linux/filter.h:782 [inline] RIP: 0010:__bpf_xdp_redirect_map include/linux/filter.h:1631 [inline] RIP: 0010:cpu_map_redirect+0x17/0xc0 kernel/bpf/cpumap.c:645 Code: 44 00 00 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 f3 0f 1e fa 48 89 d0 65 48 8b 0c 25 80 fe 02 00 48 8b 89 90 16 00 00 <8b> 51 38 f6 c2 02 75 2c c7 41 20 00 00 00 00 48 c7 41 18 00 00 00 RSP: 0018:ffffc900001abc30 EFLAGS: 00010246 RAX: 0000000000000008 RBX: ffffc90000f350b8 RCX: 0000000000000000 RDX: 0000000000000008 RSI: 00000000001abce0 RDI: ffff888112b85e00 RBP: ffffc900001abcf8 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: ffffffff81334e50 R12: ffffc900001abc60 R13: 0000000000000022 R14: 0000000000000140 R15: 0000000000000000 FS: 00007fbc1cc1c6c0(0000) GS:ffff888237d00000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000000000000038 CR3: 0000000119cca000 CR4: 00000000003506f0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 ---------------- Code disassembly (best guess): 0: 44 00 00 add %r8b,(%rax) 3: 90 nop 4: 90 nop 5: 90 nop 6: 90 nop 7: 90 nop 8: 90 nop 9: 90 nop a: 90 nop b: 90 nop c: 90 nop d: 90 nop e: 90 nop f: 90 nop 10: 90 nop 11: 90 nop 12: 90 nop 13: f3 0f 1e fa endbr64 17: 48 89 d0 mov %rdx,%rax 1a: 65 48 8b 0c 25 80 fe mov %gs:0x2fe80,%rcx 21: 02 00 23: 48 8b 89 90 16 00 00 mov 0x1690(%rcx),%rcx * 2a: 8b 51 38 mov 0x38(%rcx),%edx <-- trapping instruction 2d: f6 c2 02 test $0x2,%dl 30: 75 2c jne 0x5e 32: c7 41 20 00 00 00 00 movl $0x0,0x20(%rcx) 39: 48 rex.W 3a: c7 .byte 0xc7 3b: 41 18 00 sbb %al,(%r8)