ci2 starts bisection 2025-01-20 08:14:14.92495196 +0000 UTC m=+197255.563630937 bisecting fixing commit since 563edd786f0a115e983594efe6b0ae26fb7678fa building syzkaller on d3ccff6372e07c6aabd02b5da419aa6492b5f0ad ensuring issue is reproducible on original commit 563edd786f0a115e983594efe6b0ae26fb7678fa testing commit 563edd786f0a115e983594efe6b0ae26fb7678fa gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: 690960563bf3205b881f2688f854b62c120b5a93b9114649a8d029f44f847a28 run #0: crashed: KASAN: use-after-free Read in cpu_map_enqueue run #1: crashed: KASAN: use-after-free Read in cpu_map_enqueue run #2: crashed: KASAN: use-after-free Read in cpu_map_enqueue run #3: crashed: KASAN: use-after-free Read in cpu_map_enqueue run #4: crashed: KASAN: use-after-free Read in cpu_map_enqueue run #5: crashed: KASAN: use-after-free Read in cpu_map_enqueue run #6: crashed: KASAN: use-after-free Read in cpu_map_enqueue run #7: crashed: KASAN: use-after-free Read in cpu_map_enqueue run #8: crashed: KASAN: use-after-free Read in cpu_map_enqueue run #9: crashed: KASAN: use-after-free Read in cpu_map_enqueue run #10: crashed: KASAN: use-after-free Read in cpu_map_enqueue run #11: crashed: KASAN: use-after-free Read in cpu_map_enqueue run #12: crashed: KASAN: use-after-free Read in cpu_map_enqueue run #13: crashed: KASAN: use-after-free Read in cpu_map_enqueue run #14: crashed: KASAN: use-after-free Read in cpu_map_enqueue run #15: crashed: KASAN: use-after-free Read in cpu_map_enqueue run #16: OK run #17: OK run #18: crashed: KASAN: use-after-free Read in cpu_map_enqueue run #19: OK representative crash: KASAN: use-after-free Read in cpu_map_enqueue, types: [KASAN] check whether we can drop unnecessary instrumentation disabling configs for [HANG LEAK UBSAN BUG LOCKDEP ATOMIC_SLEEP], they are not needed testing commit 563edd786f0a115e983594efe6b0ae26fb7678fa gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: be4e8c214af59838b09fdeca6da8d84b339961f9198f866c4ef406f63ad813a1 run #0: crashed: KASAN: use-after-free Read in cpu_map_enqueue run #1: crashed: KASAN: use-after-free Read in cpu_map_enqueue run #2: crashed: KASAN: use-after-free Read in cpu_map_enqueue run #3: crashed: KASAN: use-after-free Read in cpu_map_enqueue run #4: crashed: KASAN: use-after-free Read in cpu_map_enqueue run #5: crashed: KASAN: use-after-free Read in cpu_map_enqueue run #6: crashed: KASAN: use-after-free Read in cpu_map_enqueue run #7: crashed: KASAN: use-after-free Read in cpu_map_enqueue run #8: crashed: KASAN: use-after-free Read in cpu_map_enqueue run #9: OK representative crash: KASAN: use-after-free Read in cpu_map_enqueue, types: [KASAN] the bug reproduces without the instrumentation disabling configs for [LEAK UBSAN BUG LOCKDEP ATOMIC_SLEEP HANG], they are not needed kconfig minimization: base=3824 full=7500 leaves diff=2069 split chunks (needed=false): <2069> split chunk #0 of len 2069 into 5 parts testing without sub-chunk 1/5 disabling configs for [LOCKDEP ATOMIC_SLEEP HANG LEAK UBSAN BUG], they are not needed testing commit 563edd786f0a115e983594efe6b0ae26fb7678fa gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: 7c5cc5a70ba8d048281a2aa359a1e551dd28353a0c1b8a08cce513f2fbe92fde all runs: OK false negative chance: 0.000 testing without sub-chunk 2/5 disabling configs for [LOCKDEP ATOMIC_SLEEP HANG LEAK UBSAN BUG], they are not needed testing commit 563edd786f0a115e983594efe6b0ae26fb7678fa gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: 2eb72db582228b1cc7d5a24c0d9010592229a764b892b322c0501321a6a50edd run #0: crashed: KASAN: use-after-free Read in cpu_map_enqueue run #1: crashed: KASAN: use-after-free Read in cpu_map_enqueue run #2: crashed: KASAN: use-after-free Read in cpu_map_enqueue run #3: crashed: KASAN: use-after-free Read in cpu_map_enqueue run #4: crashed: KASAN: use-after-free Read in cpu_map_enqueue run #5: crashed: KASAN: use-after-free Read in cpu_map_enqueue run #6: crashed: KASAN: use-after-free Read in cpu_map_enqueue run #7: OK run #8: OK run #9: OK representative crash: KASAN: use-after-free Read in cpu_map_enqueue, types: [KASAN] the chunk can be dropped testing without sub-chunk 3/5 disabling configs for [LOCKDEP ATOMIC_SLEEP HANG LEAK UBSAN BUG], they are not needed testing commit 563edd786f0a115e983594efe6b0ae26fb7678fa gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: 972a4788cd3ff6c13ab9d56a2acb8357a87da9a46dc513c239aa66aa45f1e744 all runs: crashed: KASAN: use-after-free Read in cpu_map_enqueue representative crash: KASAN: use-after-free Read in cpu_map_enqueue, types: [KASAN] the chunk can be dropped testing without sub-chunk 4/5 disabling configs for [LEAK UBSAN BUG LOCKDEP ATOMIC_SLEEP HANG], they are not needed testing commit 563edd786f0a115e983594efe6b0ae26fb7678fa gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: bbea0d7076eb4d57996fc72712953a69bd8b0fc9f7759de44f563b0e156a89f1 all runs: crashed: KASAN: use-after-free Read in cpu_map_enqueue representative crash: KASAN: use-after-free Read in cpu_map_enqueue, types: [KASAN] the chunk can be dropped testing without sub-chunk 5/5 disabling configs for [LOCKDEP ATOMIC_SLEEP HANG LEAK UBSAN BUG], they are not needed testing commit 563edd786f0a115e983594efe6b0ae26fb7678fa gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: 0ff730a73c29bc619cccd18dcfca4e7b2f8363e851c647f47d6e8636532dfb15 run #0: crashed: KASAN: use-after-free Read in cpu_map_enqueue run #1: crashed: KASAN: use-after-free Read in cpu_map_enqueue run #2: crashed: KASAN: use-after-free Read in cpu_map_enqueue run #3: crashed: KASAN: use-after-free Read in cpu_map_enqueue run #4: crashed: KASAN: use-after-free Read in cpu_map_enqueue run #5: crashed: KASAN: use-after-free Read in cpu_map_enqueue run #6: crashed: KASAN: use-after-free Read in cpu_map_enqueue run #7: crashed: KASAN: use-after-free Read in cpu_map_enqueue run #8: crashed: general protection fault in bq_flush_to_queue run #9: crashed: KASAN: use-after-free Read in cpu_map_enqueue representative crash: KASAN: use-after-free Read in cpu_map_enqueue, types: [KASAN] the chunk can be dropped minimized to 414 configs; suspects: [6LOWPAN 6LOWPAN_GHC_EXT_HDR_DEST 6LOWPAN_GHC_EXT_HDR_FRAG 6LOWPAN_GHC_EXT_HDR_HOP 6LOWPAN_GHC_EXT_HDR_ROUTE 6LOWPAN_GHC_ICMPV6 6LOWPAN_GHC_UDP 6LOWPAN_NHC 6LOWPAN_NHC_DEST 6LOWPAN_NHC_FRAGMENT 6LOWPAN_NHC_HOP 6LOWPAN_NHC_IPV6 6LOWPAN_NHC_MOBILITY 6LOWPAN_NHC_ROUTING 6LOWPAN_NHC_UDP 6PACK 842_COMPRESS 842_DECOMPRESS 9P_FSCACHE 9P_FS_POSIX_ACL 9P_FS_SECURITY ACORN_PARTITION ACORN_PARTITION_ADFS ACORN_PARTITION_CUMANA ACORN_PARTITION_EESOX ACORN_PARTITION_ICS ACORN_PARTITION_POWERTEC ACORN_PARTITION_RISCIX ACPI_NFIT ACPI_PLATFORM_PROFILE ADFS_FS AFFS_FS AFS_FS AFS_FSCACHE AF_KCM AF_RXRPC AF_RXRPC_IPV6 AIX_PARTITION AMD_SFH_HID AMIGA_PARTITION ANDROID_BINDERFS ANDROID_BINDER_IPC ANON_VMA_NAME APERTURE_HELPERS APPLE_MFI_FASTCHARGE AR5523 ARCH_ENABLE_MEMORY_HOTREMOVE ARCH_ENABLE_THP_MIGRATION ASM_MODVERSIONS ASUS_TF103C_DOCK ASYNC_CORE ASYNC_MEMCPY ASYNC_PQ ASYNC_RAID6_RECOV ASYNC_TX_DMA ASYNC_XOR ATARI_PARTITION ATA_GENERIC ATA_OVER_ETH ATH10K ATH10K_CE ATH10K_PCI ATH10K_USB ATH11K ATH6KL ATH6KL_USB ATH9K ATH9K_AHB ATH9K_BTCOEX_SUPPORT ATH9K_CHANNEL_CONTEXT ATH9K_COMMON ATH9K_COMMON_DEBUG ATH9K_COMMON_SPECTRAL ATH9K_DEBUGFS ATH9K_DYNACK ATH9K_HTC ATH9K_HTC_DEBUGFS ATH9K_HW ATH9K_PCI ATH9K_PCOEM ATH9K_RFKILL ATH_COMMON ATM ATM_BR2684 ATM_CLIP ATM_DRIVERS ATM_LANE ATM_MPOA ATM_TCP AUXILIARY_BUS AX25 AX25_DAMA_SLAVE AX88796B_PHY BAREUDP BATMAN_ADV BATMAN_ADV_BATMAN_V BATMAN_ADV_BLA BATMAN_ADV_DAT BATMAN_ADV_MCAST BATMAN_ADV_NC BCACHE BCMA BCMA_HOST_PCI_POSSIBLE BEFS_FS BFQ_CGROUP_DEBUG BFQ_GROUP_IOSCHED BFS_FS BIG_KEYS BLK_CGROUP_RWSTAT BLK_DEBUG_FS_ZONED BLK_DEV_BSGLIB BLK_DEV_INTEGRITY BLK_DEV_INTEGRITY_T10 BLK_DEV_NBD BLK_DEV_NULL_BLK BLK_DEV_NULL_BLK_FAULT_INJECTION BLK_DEV_NVME BLK_DEV_PMEM BLK_DEV_RAM BLK_DEV_RNBD BLK_DEV_RNBD_CLIENT BLK_DEV_THROTTLING BLK_DEV_ZONED BLK_ICQ BLK_INLINE_ENCRYPTION BLK_INLINE_ENCRYPTION_FALLBACK BLK_MQ_RDMA BLK_WBT BLK_WBT_MQ BONDING BOOT_VESA_SUPPORT BPF_EVENTS BPF_JIT BPF_JIT_ALWAYS_ON BPF_JIT_DEFAULT_ON BPF_LSM BPF_PRELOAD BPF_PRELOAD_UMD BPF_STREAM_PARSER BPF_SYSCALL BPQETHER BRIDGE BRIDGE_CFM BRIDGE_EBT_802_3 BRIDGE_EBT_AMONG BRIDGE_EBT_ARP BRIDGE_EBT_ARPREPLY BRIDGE_EBT_BROUTE BRIDGE_EBT_DNAT BRIDGE_EBT_IP BRIDGE_EBT_IP6 BRIDGE_EBT_LIMIT BRIDGE_EBT_LOG BRIDGE_EBT_MARK BRIDGE_EBT_MARK_T BRIDGE_EBT_NFLOG BRIDGE_EBT_PKTTYPE BRIDGE_EBT_REDIRECT BRIDGE_EBT_SNAT BRIDGE_EBT_STP BRIDGE_EBT_T_FILTER BRIDGE_EBT_T_NAT BRIDGE_EBT_VLAN BRIDGE_IGMP_SNOOPING BRIDGE_MRP BRIDGE_NF_EBTABLES BRIDGE_VLAN_FILTERING BSD_DISKLABEL BSD_PROCESS_ACCT_V3 BT BTRFS_ASSERT BTRFS_FS BTRFS_FS_POSIX_ACL BTRFS_FS_REF_VERIFY BTT BT_6LOWPAN BT_ATH3K BT_BCM BT_BNEP BT_BNEP_MC_FILTER BT_BNEP_PROTO_FILTER BT_BREDR BT_CMTP BT_HCIBCM203X BT_HCIBFUSB BT_HCIBPA10X BT_HCIBTUSB BT_HCIBTUSB_AUTOSUSPEND BT_HCIBTUSB_BCM BT_HCIBTUSB_MTK BT_HCIBTUSB_RTL BT_HCIUART BT_HCIUART_3WIRE BT_HCIUART_AG6XX BT_HCIUART_BCSP BT_HCIUART_H4 BT_HCIUART_LL BT_HCIUART_MRVL BT_HCIUART_QCA BT_HCIUART_SERDEV BT_HCIVHCI BT_HIDP BT_HS BT_INTEL BT_LE BT_LEDS BT_MSFTEXT BT_MTK BT_QCA BT_RFCOMM BT_RFCOMM_TTY BT_RTL CACHEFILES CAIF CAIF_DEBUG CAIF_DRIVERS CAIF_NETDEV CAIF_TTY CAIF_USB CAIF_VIRTIO CAN CAN_8DEV_USB CAN_BCM CAN_CALC_BITTIMING CAN_DEV CAN_EMS_USB CAN_ESD_USB CAN_ETAS_ES58X CAN_GS_USB CAN_GW CAN_IFI_CANFD CAN_ISOTP CAN_J1939 CAN_KVASER_USB CAN_MCBA_USB CAN_NETLINK CAN_PEAK_USB CAN_RAW CAN_SLCAN CAN_UCAN CAN_VCAN CAN_VXCAN CAPI_TRACE CARL9170 CARL9170_HWRNG CARL9170_LEDS CARL9170_WPC CEC_CORE CEPH_FS CEPH_FSCACHE CEPH_FS_POSIX_ACL CEPH_LIB CEPH_LIB_USE_DNS_RESOLVER CFG80211 CFG80211_CRDA_SUPPORT CFG80211_DEBUGFS CFG80211_DEFAULT_PS CFG80211_REQUIRE_SIGNED_REGDB CFG80211_USE_KERNEL_REGDB_KEYS CFG80211_WEXT CFS_BANDWIDTH CGROUP_BPF CHARGER_ISP1704 CHR_DEV_ST CIFS CIFS_ALLOW_INSECURE_LEGACY CIFS_DEBUG CIFS_DFS_UPCALL CIFS_FSCACHE CIFS_POSIX CIFS_SMB_DIRECT CIFS_SWN_UPCALL CIFS_UPCALL CIFS_XATTR CLS_U32_MARK CLS_U32_PERF CMA CMA_SIZE_SEL_MBYTES CMDLINE_PARTITION COMEDI COMEDI_DT9812 COMEDI_NI_USB6501 COMEDI_USBDUX COMEDI_USBDUXFAST COMEDI_USBDUXSIGMA COMEDI_USB_DRIVERS COMEDI_VMK80XX COMPAT_NETLINK_MESSAGES COUNTER CRAMFS CRAMFS_BLOCKDEV CRAMFS_MTD CRC4 CRC64 CRC64_ROCKSOFT CRC7 CRC8 CRC_ITU_T CRC_T10DIF CRYPTO_ADIANTUM CRYPTO_AEGIS128 CRYPTO_AEGIS128_AESNI_SSE2 CRYPTO_AES_NI_INTEL CRYPTO_AES_TI CRYPTO_ANSI_CPRNG CRYPTO_ANUBIS CRYPTO_ARC4 CRYPTO_ARCH_HAVE_LIB_BLAKE2S CRYPTO_ARCH_HAVE_LIB_CHACHA CRYPTO_ARCH_HAVE_LIB_CURVE25519 CRYPTO_ARCH_HAVE_LIB_POLY1305 CRYPTO_ARIA CRYPTO_ARIA_AESNI_AVX_X86_64 CRYPTO_BLAKE2B CRYPTO_BLAKE2S_X86 CRYPTO_BLOWFISH CRYPTO_BLOWFISH_COMMON CRYPTO_BLOWFISH_X86_64 CRYPTO_CAMELLIA CRYPTO_CAMELLIA_AESNI_AVX2_X86_64 CRYPTO_CAMELLIA_AESNI_AVX_X86_64 CRYPTO_CAMELLIA_X86_64 CRYPTO_CAST5 CRYPTO_CAST5_AVX_X86_64 CRYPTO_CAST6 CRYPTO_CAST6_AVX_X86_64 CRYPTO_CAST_COMMON CRYPTO_CHACHA20 CRYPTO_CHACHA20POLY1305 CRYPTO_CHACHA20_X86_64 CRYPTO_CRC32 CRYPTO_CRC32C_INTEL CRYPTO_CRC32_PCLMUL CRYPTO_CRC64_ROCKSOFT CRYPTO_CRCT10DIF CRYPTO_CRCT10DIF_PCLMUL CRYPTO_CRYPTD CRYPTO_CTS CRYPTO_CURVE25519 CRYPTO_CURVE25519_X86 CRYPTO_DEFLATE CRYPTO_DES CRYPTO_DES3_EDE_X86_64 CRYPTO_DEV_CCP CRYPTO_DEV_CCP_DD CRYPTO_DEV_PADLOCK CRYPTO_DEV_PADLOCK_AES CRYPTO_DEV_PADLOCK_SHA CRYPTO_DEV_QAT CRYPTO_DEV_QAT_C3XXX CRYPTO_DEV_QAT_C3XXXVF CRYPTO_DEV_QAT_C62X CRYPTO_DEV_QAT_C62XVF CRYPTO_DEV_QAT_DH895xCC CRYPTO_DEV_QAT_DH895xCCVF CRYPTO_DEV_VIRTIO CRYPTO_DH CRYPTO_DRBG_CTR CRYPTO_DRBG_HASH CRYPTO_ECB CRYPTO_ECC CRYPTO_ECDH CRYPTO_ECRDSA CRYPTO_ENGINE CRYPTO_ESSIV CRYPTO_FCRYPT CRYPTO_GHASH_CLMUL_NI_INTEL CRYPTO_HCTR2 CRYPTO_KDF800108_CTR CRYPTO_KEYWRAP CRYPTO_KHAZAD CRYPTO_KPP CRYPTO_LIB_ARC4 CRYPTO_LIB_CHACHA CRYPTO_LIB_CHACHA20POLY1305 CRYPTO_LIB_CHACHA_GENERIC CRYPTO_LIB_CURVE25519 CRYPTO_LIB_CURVE25519_GENERIC CRYPTO_LIB_DES CRYPTO_LIB_POLY1305 CRYPTO_LIB_POLY1305_GENERIC CRYPTO_LRW CRYPTO_MICHAEL_MIC CRYPTO_NHPOLY1305 CRYPTO_NHPOLY1305_AVX2 CRYPTO_NHPOLY1305_SSE2 CRYPTO_PCBC CRYPTO_PCRYPT CRYPTO_POLY1305 CRYPTO_POLY1305_X86_64 CRYPTO_POLYVAL CRYPTO_POLYVAL_CLMUL_NI CRYPTO_RMD160 CRYPTO_SEED CRYPTO_SERPENT CRYPTO_SERPENT_AVX2_X86_64 CRYPTO_SERPENT_AVX_X86_64 CRYPTO_SERPENT_SSE2_X86_64 CRYPTO_SHA1_SSSE3 CRYPTO_SHA256_SSSE3 CRYPTO_SHA3 CRYPTO_SHA512_SSSE3 CRYPTO_SIMD CRYPTO_SM2 CRYPTO_SM3 CRYPTO_SM3_AVX_X86_64 CRYPTO_SM4 CRYPTO_SM4_AESNI_AVX2_X86_64 CRYPTO_SM4_AESNI_AVX_X86_64 CRYPTO_SM4_GENERIC CRYPTO_STREEBOG CRYPTO_TEA CRYPTO_TWOFISH CRYPTO_TWOFISH_AVX_X86_64 CRYPTO_TWOFISH_COMMON CRYPTO_TWOFISH_X86_64 CRYPTO_TWOFISH_X86_64_3WAY CRYPTO_USER CRYPTO_USER_API CRYPTO_USER_API_AEAD CRYPTO_USER_API_ENABLE_OBSOLETE CRYPTO_USER_API_HASH CRYPTO_USER_API_RNG CRYPTO_USER_API_SKCIPHER CRYPTO_VMAC CRYPTO_WP512 CRYPTO_XCBC CRYPTO_XCTR CRYPTO_XTS CRYPTO_XXHASH CUSE CYPRESS_FIRMWARE DAMON DAMON_DBGFS DAMON_PADDR DAMON_RECLAIM DAMON_VADDR DAX DCA DCB DEFAULT_PFIFO_FAST DEVICE_MIGRATION DEVICE_PRIVATE DEV_COREDUMP DEV_DAX DIMLIB DLN2_ADC DMABUF_HEAPS DMABUF_HEAPS_CMA DMABUF_HEAPS_SYSTEM DMABUF_MOVE_NOTIFY DMA_CMA DMA_ENGINE_RAID DM_AUDIT DM_BIO_PRISON DM_BUFIO DM_CACHE DM_CACHE_SMQ DM_CLONE DM_CRYPT DM_FLAKEY DM_INTEGRITY DM_MULTIPATH DM_MULTIPATH_QL DM_MULTIPATH_ST DM_PERSISTENT_DATA DM_RAID DM_SNAPSHOT DM_THIN_PROVISIONING DM_UEVENT DM_VERITY DM_VERITY_FEC DM_WRITECACHE DM_ZONED DRAGONRISE_FF DRM DRM_BOCHS DRM_BRIDGE DRM_BUDDY DRM_CIRRUS_QEMU DRM_DEBUG_MM DRM_DISPLAY_DP_HELPER DRM_DISPLAY_HDCP_HELPER DRM_DISPLAY_HDMI_HELPER DRM_DISPLAY_HELPER DRM_DP_AUX_BUS DRM_DP_AUX_CHARDEV DRM_FBDEV_EMULATION DRM_GEM_SHMEM_HELPER DRM_GM12U320 DRM_GUD DRM_I915 DRM_I915_CAPTURE_ERROR DRM_I915_COMPRESS_ERROR DRM_I915_USERPTR DRM_KMS_HELPER DRM_MIPI_DSI DRM_NOMODESET DRM_PANEL_BRIDGE ENCRYPTED_KEYS FB FSCACHE FUSE_FS GPIOLIB HAMRADIO HID_DRAGONRISE IIO INFINIBAND INFINIBAND_ADDR_TRANS INFINIBAND_RTRS_CLIENT IOSCHED_BFQ ISDN ISDN_CAPI LIBNVDIMM MAC80211 MAC80211_LEDS MEDIA_SUPPORT MEMORY_HOTPLUG MEMORY_HOTREMOVE MFD_DLN2 MTD NET_CLS_U32 NET_SCH_DEFAULT PARTITION_ADVANCED RFKILL SERIAL_DEV_BUS TLS TLS_DEVICE TRANSPARENT_HUGEPAGE TRUSTED_KEYS USB_GADGET USB_PHY VLAN_8021Q WANT_COMPAT_NETLINK_MESSAGES WEXT_CORE WIRELESS WIRELESS_EXT WLAN WLAN_VENDOR_ATH X86_X32_ABI ZONE_DEVICE] disabling configs for [ATOMIC_SLEEP HANG LEAK UBSAN BUG LOCKDEP], they are not needed determining the merge base between 563edd786f0a115e983594efe6b0ae26fb7678fa and ffd294d346d185b70e28b1a28abe367bbfe53c04 830b3c68c1fb1e9176028d02ef86f3cf76aa2476/Linux 6.1 is a merge base, check if it has the bug testing commit 830b3c68c1fb1e9176028d02ef86f3cf76aa2476 gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: 04d93948a28833fb60fd18cc91fdb0703a0b62346fbfd8dcdac44851258610ca run #0: crashed: KASAN: use-after-free Read in cpu_map_enqueue run #1: crashed: KASAN: use-after-free Read in cpu_map_enqueue run #2: crashed: KASAN: use-after-free Read in cpu_map_enqueue run #3: OK run #4: OK run #5: OK run #6: OK run #7: OK run #8: OK run #9: OK representative crash: KASAN: use-after-free Read in cpu_map_enqueue, types: [KASAN] testing current HEAD ffd294d346d185b70e28b1a28abe367bbfe53c04 testing commit ffd294d346d185b70e28b1a28abe367bbfe53c04 gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: 69c9f28d7430b36a8b174116862587c2e3e3787368d437bff7f4022194a6cf14 all runs: OK false negative chance: 0.000 # git bisect start ffd294d346d185b70e28b1a28abe367bbfe53c04 830b3c68c1fb1e9176028d02ef86f3cf76aa2476 Bisecting: 93149 revisions left to test after this (roughly 17 steps) [be3ca57cfb777ad820c6659d52e60bbdd36bf5ff] Merge tag 'media/v6.7-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media determine whether the revision contains the guilty commit revision 830b3c68c1fb1e9176028d02ef86f3cf76aa2476 crashed and is reachable testing commit be3ca57cfb777ad820c6659d52e60bbdd36bf5ff gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: 0025e9becc26b7bdd445ce1d72d6b2d74b1f7e2ae8de4b9199a76ad2383bb567 all runs: crashed: KASAN: slab-use-after-free Read in cpu_map_enqueue representative crash: KASAN: slab-use-after-free Read in cpu_map_enqueue, types: [KASAN] # git bisect good be3ca57cfb777ad820c6659d52e60bbdd36bf5ff Bisecting: 46538 revisions left to test after this (roughly 16 steps) [5f16eb0549ab502906fb2a10147dad4b9dc185c4] Merge tag 'char-misc-6.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc determine whether the revision contains the guilty commit revision be3ca57cfb777ad820c6659d52e60bbdd36bf5ff crashed and is reachable testing commit 5f16eb0549ab502906fb2a10147dad4b9dc185c4 gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: 579966ff88d5c6b698571fc0ece5b7dc7d7a0abb564064abfc06b161d6dff7fd all runs: crashed: KASAN: slab-use-after-free Read in cpu_map_enqueue representative crash: KASAN: slab-use-after-free Read in cpu_map_enqueue, types: [KASAN] # git bisect good 5f16eb0549ab502906fb2a10147dad4b9dc185c4 Bisecting: 23263 revisions left to test after this (roughly 15 steps) [3a7101e9b27fe97240c2fd430c71e61262447dd1] Merge tag 'powerpc-6.12-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux determine whether the revision contains the guilty commit revision 830b3c68c1fb1e9176028d02ef86f3cf76aa2476 crashed and is reachable testing commit 3a7101e9b27fe97240c2fd430c71e61262447dd1 gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: ef53487e0141766424fd81b2e8f9a5468030ccaf6e871ba9cee39fee29e7d031 all runs: OK false negative chance: 0.000 # git bisect bad 3a7101e9b27fe97240c2fd430c71e61262447dd1 Bisecting: 11651 revisions left to test after this (roughly 14 steps) [661fb4e68cf62bf52eacfcd9b3b0d93fe4260c5b] Merge tag 'for-6.11/dm-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm determine whether the revision contains the guilty commit revision 830b3c68c1fb1e9176028d02ef86f3cf76aa2476 crashed and is reachable testing commit 661fb4e68cf62bf52eacfcd9b3b0d93fe4260c5b gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: 484866a1d1050007af62a13b9cbb367400e5d47c7077ecc0564135a71506e69d all runs: OK false negative chance: 0.000 # git bisect bad 661fb4e68cf62bf52eacfcd9b3b0d93fe4260c5b Bisecting: 6269 revisions left to test after this (roughly 13 steps) [0434dbe32053d07d658165be681505120c6b1abc] Merge tag 'linux_kselftest-next-6.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest determine whether the revision contains the guilty commit revision 830b3c68c1fb1e9176028d02ef86f3cf76aa2476 crashed and is reachable testing commit 0434dbe32053d07d658165be681505120c6b1abc gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: 023df7ab4fa881e26d393c2a6473a280cfcf597889c8b46b365ec8139e2e01a3 all runs: crashed: KASAN: slab-use-after-free Read in cpu_map_enqueue representative crash: KASAN: slab-use-after-free Read in cpu_map_enqueue, types: [KASAN] # git bisect good 0434dbe32053d07d658165be681505120c6b1abc Bisecting: 3473 revisions left to test after this (roughly 12 steps) [280e36f0d5b997173d014c07484c03a7f7750668] nsfs: use cleanup guard determine whether the revision contains the guilty commit revision be3ca57cfb777ad820c6659d52e60bbdd36bf5ff crashed and is reachable testing commit 280e36f0d5b997173d014c07484c03a7f7750668 gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: 02e5efa04b3cae08d7a9249e62b4fc7b0cf4c4d2266a032204484a3c6dbd9699 all runs: OK false negative chance: 0.000 # git bisect bad 280e36f0d5b997173d014c07484c03a7f7750668 Bisecting: 1323 revisions left to test after this (roughly 11 steps) [80ab5445da623540ea6303740015dd0210a06dc8] Merge tag 'wireless-next-2024-07-11' of git://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless-next determine whether the revision contains the guilty commit revision 830b3c68c1fb1e9176028d02ef86f3cf76aa2476 crashed and is reachable testing commit 80ab5445da623540ea6303740015dd0210a06dc8 gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: 95beaf49dd6bfb861e478e7d305e80cb606c45b0294e1362e6ca25a93259e7ac all runs: OK false negative chance: 0.000 # git bisect bad 80ab5445da623540ea6303740015dd0210a06dc8 Bisecting: 735 revisions left to test after this (roughly 10 steps) [ebad6d0334793f16a16e5320182f665292a31e0c] net/ipv4: Use nested-BH locking for ipv4_tcp_sk. determine whether the revision contains the guilty commit revision 830b3c68c1fb1e9176028d02ef86f3cf76aa2476 crashed and is reachable testing commit ebad6d0334793f16a16e5320182f665292a31e0c gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: 0d253c8ccaaf13821185d9c477e4f90d91f3e1e68c48c0c6ec74e16800d8c535 all runs: crashed: KASAN: slab-use-after-free Read in cpu_map_enqueue representative crash: KASAN: slab-use-after-free Read in cpu_map_enqueue, types: [KASAN] # git bisect good ebad6d0334793f16a16e5320182f665292a31e0c Bisecting: 367 revisions left to test after this (roughly 9 steps) [e0ee68a8bef9cf27e324a017691ee64b235c310e] selftests: net: ksft: interrupt cleanly on KeyboardInterrupt determine whether the revision contains the guilty commit revision 5f16eb0549ab502906fb2a10147dad4b9dc185c4 crashed and is reachable testing commit e0ee68a8bef9cf27e324a017691ee64b235c310e gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: 0157bd27ab93e89f00da91481c008a76cde9b2bd1737dc7e7ebcde46d42226ad all runs: OK false negative chance: 0.000 # git bisect bad e0ee68a8bef9cf27e324a017691ee64b235c310e Bisecting: 183 revisions left to test after this (roughly 8 steps) [f9a83965d40ef162bab1e3af338523b8da69cb82] can: rcar_canfd: Remove superfluous parentheses in address calculations determine whether the revision contains the guilty commit revision 830b3c68c1fb1e9176028d02ef86f3cf76aa2476 crashed and is reachable testing commit f9a83965d40ef162bab1e3af338523b8da69cb82 gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: ec39a07e66fdb4ae29f29a44c8202eeca30ea0657981202b444488c5d236910b all runs: OK false negative chance: 0.000 # git bisect bad f9a83965d40ef162bab1e3af338523b8da69cb82 Bisecting: 91 revisions left to test after this (roughly 7 steps) [e3f637b35f5d8a8031bfe2f60ffae7acd7e7f96c] wifi: iwlwifi: fix kernel-doc in iwl-fh.h determine whether the revision contains the guilty commit revision 830b3c68c1fb1e9176028d02ef86f3cf76aa2476 crashed and is reachable testing commit e3f637b35f5d8a8031bfe2f60ffae7acd7e7f96c gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: 2ab3773bd30de6ca22f588b6ecb0888c566ed78962f26ecf2e0bbe99f385481c all runs: crashed: KASAN: slab-use-after-free Read in cpu_map_enqueue representative crash: KASAN: slab-use-after-free Read in cpu_map_enqueue, types: [KASAN] # git bisect good e3f637b35f5d8a8031bfe2f60ffae7acd7e7f96c Bisecting: 45 revisions left to test after this (roughly 6 steps) [a425a973e9ceb13914ab5a790f8f22b10f3d6612] Merge branch 'gve-add-flow-steering-support' determine whether the revision contains the guilty commit revision 830b3c68c1fb1e9176028d02ef86f3cf76aa2476 crashed and is reachable testing commit a425a973e9ceb13914ab5a790f8f22b10f3d6612 gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: b66ef7dfa6b01d8482fc1ba87d0cfc2d136d95252a3487d5b63409636cb9745f all runs: OK false negative chance: 0.000 # git bisect bad a425a973e9ceb13914ab5a790f8f22b10f3d6612 Bisecting: 22 revisions left to test after this (roughly 5 steps) [759cc793ebfc2d1a02f357ae97e5dcdcd63f758f] net: macb: queue tie-off or disable during WOL suspend determine whether the revision contains the guilty commit revision be3ca57cfb777ad820c6659d52e60bbdd36bf5ff crashed and is reachable testing commit 759cc793ebfc2d1a02f357ae97e5dcdcd63f758f gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: ae22e0177b147ce2cd65fb7f78348919fe7856517daf73d286cd92ab68ffc21a all runs: OK false negative chance: 0.000 # git bisect bad 759cc793ebfc2d1a02f357ae97e5dcdcd63f758f Bisecting: 11 revisions left to test after this (roughly 4 steps) [3955802f160b5c61ac00d7e54da8d746f2e4a2d5] af_unix: Define locking order for unix_table_double_lock(). determine whether the revision contains the guilty commit revision 5f16eb0549ab502906fb2a10147dad4b9dc185c4 crashed and is reachable testing commit 3955802f160b5c61ac00d7e54da8d746f2e4a2d5 gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: f51bafa7b9e43ae432054f8291e6a6a0916b28859beb795feb389e7baf620375 all runs: OK false negative chance: 0.000 # git bisect bad 3955802f160b5c61ac00d7e54da8d746f2e4a2d5 Bisecting: 5 revisions left to test after this (roughly 3 steps) [3414adbd6a6ad3702d0bdc49081ee7c9e9e1c600] lwt: Don't disable migration prio invoking BPF. determine whether the revision contains the guilty commit revision 830b3c68c1fb1e9176028d02ef86f3cf76aa2476 crashed and is reachable testing commit 3414adbd6a6ad3702d0bdc49081ee7c9e9e1c600 gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: 5d44119099e2c6c5c9d2689cc2562da79192ac22fba01848e01ceaa5286f9929 all runs: crashed: KASAN: slab-use-after-free Read in cpu_map_enqueue representative crash: KASAN: slab-use-after-free Read in cpu_map_enqueue, types: [KASAN] # git bisect good 3414adbd6a6ad3702d0bdc49081ee7c9e9e1c600 Bisecting: 2 revisions left to test after this (roughly 2 steps) [401cb7dae8130fd34eb84648e02ab4c506df7d5e] net: Reference bpf_redirect_info via task_struct on PREEMPT_RT. determine whether the revision contains the guilty commit revision ebad6d0334793f16a16e5320182f665292a31e0c crashed and is reachable testing commit 401cb7dae8130fd34eb84648e02ab4c506df7d5e gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: 775838ca0378d5161119d324762a7e24ff2014f1fc568506cf2071a96204cf87 all runs: OK false negative chance: 0.000 # git bisect bad 401cb7dae8130fd34eb84648e02ab4c506df7d5e Bisecting: 0 revisions left to test after this (roughly 1 step) [78f520b7bbe579438dfc202226b3dac5607d8c7f] net: Use nested-BH locking for bpf_scratchpad. determine whether the revision contains the guilty commit revision ebad6d0334793f16a16e5320182f665292a31e0c crashed and is reachable testing commit 78f520b7bbe579438dfc202226b3dac5607d8c7f gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: 3c5500bf9fa808028deb630f92aa1014c5dce09e54ec76866aadca99559a5cc1 all runs: crashed: KASAN: slab-use-after-free Read in cpu_map_enqueue representative crash: KASAN: slab-use-after-free Read in cpu_map_enqueue, types: [KASAN] # git bisect good 78f520b7bbe579438dfc202226b3dac5607d8c7f 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: 775838ca0378d5161119d324762a7e24ff2014f1fc568506cf2071a96204cf87 parent signature: 3c5500bf9fa808028deb630f92aa1014c5dce09e54ec76866aadca99559a5cc1 reproducer is flaky (1.00 repro chance estimate) revisions tested: 26, total time: 7h5m16.397639537s (build: 3h4m14.51502131s, test: 3h40m24.815570303s) first good 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): []