ci starts bisection 2025-07-29 09:02:17.095324545 +0000 UTC m=+59482.061255318 bisecting cause commit starting from ced1b9e0392d981a7317c605b402c06650947a34 building syzkaller on c4a9548758bac1c6dc231afd7543b5e8c5b6a65e ensuring issue is reproducible on original commit ced1b9e0392d981a7317c605b402c06650947a34 testing commit ced1b9e0392d981a7317c605b402c06650947a34 gcc compiler: Debian clang version 20.1.7 (++20250616065708+6146a88f6049-1~exp1~20250616065826.132), Debian LLD 20.1.7 kernel signature: 60bc171762009fff72ac703509c747c863e9ccf9f64d82e55a86df34de68a21b all runs: crashed: WARNING: refcount bug in process_scheduled_works representative crash: WARNING: refcount bug in process_scheduled_works, types: [REFCOUNT_WARNING] check whether we can drop unnecessary instrumentation disabling configs for [hang memleak ubsan kasan locking atomic_sleep], they are not needed testing commit ced1b9e0392d981a7317c605b402c06650947a34 gcc compiler: Debian clang version 20.1.7 (++20250616065708+6146a88f6049-1~exp1~20250616065826.132), Debian LLD 20.1.7 kernel signature: 9e14f1093a4307c3ecc475dfd71a578d02d273d47909033aca197b353885efe8 all runs: crashed: WARNING: refcount bug in process_scheduled_works representative crash: WARNING: refcount bug in process_scheduled_works, types: [REFCOUNT_WARNING] the bug reproduces without the instrumentation disabling configs for [memleak ubsan kasan locking atomic_sleep hang], they are not needed kconfig minimization: base=4095 full=8480 leaves diff=2185 split chunks (needed=false): <2185> split chunk #0 of len 2185 into 5 parts testing without sub-chunk 1/5 disabling configs for [hang memleak ubsan kasan locking atomic_sleep], they are not needed testing commit ced1b9e0392d981a7317c605b402c06650947a34 gcc compiler: Debian clang version 20.1.7 (++20250616065708+6146a88f6049-1~exp1~20250616065826.132), Debian LLD 20.1.7 kernel signature: f47916cb077f4ca7aafb4a64fd7757458491377677b1266cf3df35083c5136af all runs: crashed: WARNING: refcount bug in process_scheduled_works representative crash: WARNING: refcount bug in process_scheduled_works, types: [REFCOUNT_WARNING] the chunk can be dropped testing without sub-chunk 2/5 disabling configs for [ubsan kasan locking atomic_sleep hang memleak], they are not needed testing commit ced1b9e0392d981a7317c605b402c06650947a34 gcc compiler: Debian clang version 20.1.7 (++20250616065708+6146a88f6049-1~exp1~20250616065826.132), Debian LLD 20.1.7 kernel signature: 119642a90520f294080dfd9eeb8d5e515abed982bbe04d2f418f54e0a299027e all runs: OK false negative chance: 0.000 testing without sub-chunk 3/5 disabling configs for [hang memleak ubsan kasan locking atomic_sleep], they are not needed testing commit ced1b9e0392d981a7317c605b402c06650947a34 gcc compiler: Debian clang version 20.1.7 (++20250616065708+6146a88f6049-1~exp1~20250616065826.132), Debian LLD 20.1.7 kernel signature: aa142c037de5045b26c8486dd4949ae84d9057d5def6c4c23b41b7c02b2c3e35 all runs: crashed: WARNING: refcount bug in process_scheduled_works representative crash: WARNING: refcount bug in process_scheduled_works, types: [REFCOUNT_WARNING] the chunk can be dropped testing without sub-chunk 4/5 disabling configs for [memleak ubsan kasan locking atomic_sleep hang], they are not needed testing commit ced1b9e0392d981a7317c605b402c06650947a34 gcc compiler: Debian clang version 20.1.7 (++20250616065708+6146a88f6049-1~exp1~20250616065826.132), Debian LLD 20.1.7 kernel signature: 06e8f4830d2bc932e72fb5931ff8ce67c02aee721505a2f3b696511ff551037a all runs: crashed: WARNING: refcount bug in process_scheduled_works representative crash: WARNING: refcount bug in process_scheduled_works, types: [REFCOUNT_WARNING] the chunk can be dropped testing without sub-chunk 5/5 disabling configs for [ubsan kasan locking atomic_sleep hang memleak], they are not needed testing commit ced1b9e0392d981a7317c605b402c06650947a34 gcc compiler: Debian clang version 20.1.7 (++20250616065708+6146a88f6049-1~exp1~20250616065826.132), Debian LLD 20.1.7 kernel signature: 4f0a68a6b9598e131698f9a45bcdc4651148c8c1887827cbd03bea98bf392d9b all runs: crashed: WARNING: refcount bug in process_scheduled_works representative crash: WARNING: refcount bug in process_scheduled_works, types: [REFCOUNT_WARNING] the chunk can be dropped minimized to 437 configs; suspects: [6LOWPAN ARCH_ENABLE_MEMORY_HOTREMOVE ASUS_WMI BLK_DEV_ZONED CHARGER_BQ24190 CMA COMMON_CLK CYPRESS_FIRMWARE DAMON DAMON_PADDR DAMON_RECLAIM DAMON_VADDR DAX DCA DCB DEBUG_VFS DEFAULT_CODEL DEVICE_MIGRATION DEVICE_PRIVATE DEV_COREDUMP DEV_DAX DLM 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_AUX_BRIDGE DRM_BOCHS DRM_BRIDGE DRM_BUDDY DRM_CIRRUS_QEMU DRM_CLIENT DRM_CLIENT_DEFAULT_FBDEV DRM_CLIENT_LIB DRM_CLIENT_SELECTION DRM_CLIENT_SETUP DRM_DEBUG_MM DRM_DISPLAY_DP_AUX_BUS DRM_DISPLAY_DP_HELPER DRM_DISPLAY_DSC_HELPER DRM_DISPLAY_HDCP_HELPER DRM_DISPLAY_HDMI_HELPER DRM_DISPLAY_HELPER 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_PANEL DRM_PANEL_BRIDGE DRM_PANEL_EDP DRM_PANEL_ORIENTATION_QUIRKS DRM_SIMPLEDRM DRM_SYSFB_HELPER DRM_TTM DRM_TTM_HELPER DRM_UDL DRM_VGEM DRM_VIRTIO_GPU DRM_VIRTIO_GPU_KMS DRM_VKMS DRM_VMWGFX DUMMY DVB_AF9013 DVB_AF9033 DVB_AS102 DVB_AS102_FE DVB_B2C2_FLEXCOP DVB_B2C2_FLEXCOP_USB DVB_CORE DVB_DIB3000MB DVB_DIB3000MC DVB_EC100 DVB_GP8PSK_FE DVB_RTL2830 DVB_RTL2832 DVB_RTL2832_SDR DVB_TEST_DRIVERS DVB_TTUSB_BUDGET DVB_TTUSB_DEC DVB_USB DVB_USB_A800 DVB_USB_AF9005 DVB_USB_AF9005_REMOTE DVB_USB_AF9015 DVB_USB_AF9035 DVB_USB_ANYSEE DVB_USB_AU6610 DVB_USB_AZ6007 DVB_USB_AZ6027 DVB_USB_CE6230 DVB_USB_CINERGY_T2 DVB_USB_CXUSB DVB_USB_CXUSB_ANALOG DVB_USB_DIB0700 DVB_USB_DIB3000MC DVB_USB_DIBUSB_MB DVB_USB_DIBUSB_MC DVB_USB_DIGITV DVB_USB_DTT200U DVB_USB_DTV5100 DVB_USB_DVBSKY DVB_USB_DW2102 DVB_USB_EC168 DVB_USB_GL861 DVB_USB_GP8PSK DVB_USB_LME2510 DVB_USB_M920X DVB_USB_MXL111SF DVB_USB_NOVA_T_USB2 DVB_USB_OPERA1 DVB_USB_PCTV452E DVB_USB_RTL28XXU DVB_USB_TECHNISAT_USB2 DVB_USB_TTUSB2 DVB_USB_UMT_010 DVB_USB_V2 DVB_USB_VP702X DVB_USB_VP7045 DVB_USB_ZD1301 DVB_VIDTV DVB_ZL10353 ECRYPT_FS ECRYPT_FS_MESSAGING EDAC EFS_FS ENCRYPTED_KEYS EQUALIZER EROFS_FS EROFS_FS_POSIX_ACL EROFS_FS_SECURITY EROFS_FS_XATTR EROFS_FS_ZIP EVM EVM_ADD_XATTRS EVM_ATTR_FSUUID EXFAT_FS EXPORTFS_BLOCK_OPS EXT3_FS EXT3_FS_POSIX_ACL EXT3_FS_SECURITY EXTCON EXTCON_INTEL_CHT_WC EXTCON_PTN5150 EXTCON_USBC_TUSB320 F2FS_CHECK_FS F2FS_FAULT_INJECTION F2FS_FS F2FS_FS_COMPRESSION F2FS_FS_LZ4 F2FS_FS_LZ4HC F2FS_FS_LZO F2FS_FS_LZORLE F2FS_FS_POSIX_ACL F2FS_FS_SECURITY F2FS_FS_XATTR F2FS_FS_ZSTD F2FS_STAT_FS FANOTIFY FANOTIFY_ACCESS_PERMISSIONS FB FB_CFB_COPYAREA FB_CFB_FILLRECT FB_CFB_IMAGEBLIT FB_CORE FB_DEFERRED_IO FB_DEVICE FB_IOMEM_FOPS FB_IOMEM_HELPERS FB_NOTIFY FB_SYSMEM_FOPS FB_SYSMEM_HELPERS FB_SYSMEM_HELPERS_DEFERRED FB_SYS_COPYAREA FB_SYS_FILLRECT FB_SYS_IMAGEBLIT FB_TILEBLITTING FB_VESA FB_VGA16 FB_VIRTUAL FDDI FIREWIRE FIREWIRE_NET FIREWIRE_OHCI FIREWIRE_SBP2 FONT_8x16 FONT_8x8 FONT_SUPPORT FRAMEBUFFER_CONSOLE FRAMEBUFFER_CONSOLE_DETECT_PRIMARY FRAMEBUFFER_CONSOLE_ROTATION FS_DAX FS_DAX_PMD FS_ENCRYPTION FS_ENCRYPTION_ALGS FS_STACK FS_VERITY FS_VERITY_BUILTIN_SIGNATURES FTL FUSE_DAX FUSE_FS FW_LOADER_COMPRESS FW_LOADER_PAGED_BUF FW_LOADER_SYSFS FW_LOADER_USER_HELPER FW_LOADER_USER_HELPER_FALLBACK GACT_PROB GARP GENDWARFKSYMS GENERIC_PHY GET_FREE_REGION GFS2_FS GFS2_FS_LOCKING_DLM GNSS GNSS_USB GOOGLE_COREBOOT_TABLE GOOGLE_FIRMWARE GOOGLE_MEMCONSOLE GOOGLE_MEMCONSOLE_COREBOOT GOOGLE_VPD GPIOLIB GPIOLIB_IRQCHIP GPIO_ACPI GPIO_DLN2 GPIO_LJCA GPIO_VIPERBOARD GREENASIA_FF GREYBUS GREYBUS_BRIDGED_PHY GREYBUS_ES2 GREYBUS_HID GREYBUS_USB GTP GUEST_PERF_EVENTS GVE HAS_LTO_CLANG HAVE_ARCH_NODE_DEV_GROUP HAVE_ARCH_USERFAULTFD_MINOR HAVE_ARCH_USERFAULTFD_WP HAVE_BOOTMEM_INFO_NODE HAVE_CLK_PREPARE HAVE_KVM_CPU_RELAX_INTERCEPT HAVE_KVM_DIRTY_RING HAVE_KVM_DIRTY_RING_ACQ_REL HAVE_KVM_DIRTY_RING_TSO HAVE_KVM_IRQCHIP HAVE_KVM_IRQ_BYPASS HAVE_KVM_IRQ_ROUTING HAVE_KVM_MSI HAVE_KVM_NO_POLL HAVE_KVM_PFNCACHE HAVE_KVM_PM_NOTIFIER HAVE_KVM_READONLY_MEM HAVE_SCHED_AVG_IRQ HDLC HDLC_CISCO HDLC_FR HDLC_PPP HDLC_RAW HDLC_RAW_ETH HDLC_X25 HDMI HFSPLUS_FS HFS_FS HID_ACCUTOUCH HID_ACRUX HID_ACRUX_FF HID_ALPS HID_APPLEIR HID_ASUS HID_AUREAL HID_BATTERY_STRENGTH HID_BETOP_FF HID_BIGBEN_FF HID_CMEDIA HID_CORSAIR HID_COUGAR HID_CP2112 HID_CREATIVE_SB0540 HID_DRAGONRISE HID_ELAN HID_ELECOM HID_ELO HID_EMS_FF HID_EVISION HID_FT260 HID_GEMBIRD HID_GFRM HID_GLORIOUS HID_GOOGLE_STADIA_FF HID_GREENASIA HID_GT683R HID_HOLTEK HID_ICADE HID_JABRA HID_KEYTOUCH HID_KYE HID_LCPOWER HID_LED HID_LENOVO HID_LETSKETCH HID_LOGITECH HID_LOGITECH_DJ HID_LOGITECH_HIDPP HID_MACALLY HID_MAGICMOUSE HID_MALTRON HID_MAYFLASH HID_MCP2200 HID_MCP2221 HID_MEGAWORLD_FF HID_MULTITOUCH HID_NTI HID_ORTEK HID_PENMOUNT HID_PICOLCD HID_PICOLCD_BACKLIGHT HID_PICOLCD_CIR HID_PICOLCD_FB HID_PICOLCD_LCD HID_PICOLCD_LEDS HID_PLANTRONICS HID_PRIMAX HID_PRODIKEYS HID_PXRC HID_RAZER HID_RETRODE HID_RMI HID_ROCCAT HID_SAITEK HID_SEMITEK HID_SENSOR_ACCEL_3D HID_SENSOR_ALS HID_SENSOR_CUSTOM_INTEL_HINGE HID_SENSOR_CUSTOM_SENSOR HID_SENSOR_DEVICE_ROTATION HID_SENSOR_GYRO_3D HID_SENSOR_HUB HID_SENSOR_HUMIDITY HID_SENSOR_IIO_COMMON HID_SENSOR_IIO_TRIGGER HID_SENSOR_INCLINOMETER_3D HID_SENSOR_MAGNETOMETER_3D HID_SENSOR_PRESS HID_SENSOR_PROX HID_SENSOR_TEMP HID_SIGMAMICRO HID_SPEEDLINK HID_STEELSERIES HID_THINGM HID_TIVO HID_TOPRE HID_TWINHAN HID_U2FZERO HID_UCLOGIC HID_UDRAW_PS3 HID_VIEWSONIC HID_VIVALDI HID_VIVALDI_COMMON HID_VRC2 HID_WACOM HID_WALTOP HID_WIIMOTE HID_XIAOMI HID_XINMO HID_ZYDACRON HMM_MIRROR HOLTEK_FF HOTPLUG_PCI_PCIE HPET_MMAP HPET_MMAP_DEFAULT HPFS_FS I2C_ALGOBIT I2C_CHARDEV I2C_CP2615 I2C_DESIGNWARE_CORE I2C_DESIGNWARE_PLATFORM I2C_DIOLAN_U2C I2C_DLN2 I2C_HID_ACPI I2C_HID_CORE I2C_HID_OF I2C_LJCA I2C_MUX I2C_MUX_REG I2C_ROBOTFUZZ_OSIF I2C_SI4713 I2C_SLAVE I2C_SLAVE_EEPROM I2C_TINY_USB I2C_VIPERBOARD IEEE802154 IEEE802154_6LOWPAN IEEE802154_ATUSB IEEE802154_DRIVERS IEEE802154_HWSIM IEEE802154_NL802154_EXPERIMENTAL IEEE802154_SOCKET IFB IIO IIO_BUFFER IIO_KFIFO_BUF IIO_TRIGGER IIO_TRIGGERED_BUFFER IKCONFIG IKCONFIG_PROC IMA IMA_APPRAISE IMA_APPRAISE_MODSIG IMA_DEFAULT_HASH_SHA256 IMA_LSM_RULES IMA_MEASURE_ASYMMETRIC_KEYS IMA_NG_TEMPLATE IMA_QUEUE_EARLY_BOOT_KEYS IMA_READ_POLICY IMA_WRITE_POLICY INET6_ESPINTCP INET6_ESP_OFFLOAD INET6_IPCOMP INET6_TUNNEL INET6_XFRM_TUNNEL INET_AH INET_DIAG INET_DIAG_DESTROY INET_ESP INET_ESPINTCP INET_ESP_OFFLOAD INET_IPCOMP INET_MPTCP_DIAG INET_RAW_DIAG INET_SCTP_DIAG INET_TCP_DIAG INET_UDP_DIAG INET_XFRM_TUNNEL INFINIBAND INFINIBAND_ADDR_TRANS INFINIBAND_ADDR_TRANS_CONFIGFS INFINIBAND_IPOIB INFINIBAND_IPOIB_CM INFINIBAND_IPOIB_DEBUG INFINIBAND_ISER INFINIBAND_ON_DEMAND_PAGING INFINIBAND_RTRS INFINIBAND_SRP INFINIBAND_USER_ACCESS INFINIBAND_USER_MAD INFINIBAND_USER_MEM INPUT_ATI_REMOTE2 INPUT_CM109 INPUT_IMS_PCU INPUT_JOYDEV INPUT_KEYSPAN_REMOTE INPUT_LEDS INPUT_MOUSEDEV INPUT_MOUSEDEV_PSAUX INPUT_POWERMATE INPUT_UINPUT INPUT_YEALINK INTEGRITY INTEGRITY_ASYMMETRIC_KEYS INTEGRITY_AUDIT INTEGRITY_SIGNATURE INTEGRITY_TRUSTED_KEYRING INTEL_CHTWC_INT33FE INTEL_IDMA64 INTEL_IOATDMA INTEL_IOMMU_DEFAULT_ON INTEL_IOMMU_SVM INTEL_ISHTP_ECLITE INTEL_ISH_FIRMWARE_DOWNLOADER INTEL_ISH_HID INTEL_SOC_PMIC_CHTWC INTERVAL_TREE_SPAN_ITER IOMMUFD IOMMUFD_DRIVER IOMMUFD_DRIVER_CORE IOMMUFD_TEST IO_URING_ZCRX IP6_NF_MATCH_AH IP6_NF_MATCH_EUI64 IP6_NF_MATCH_FRAG IP6_NF_MATCH_HL IP6_NF_MATCH_MH IP6_NF_MATCH_OPTS IP6_NF_MATCH_RPFILTER IP6_NF_MATCH_RT IP6_NF_MATCH_SRH IP6_NF_NAT IP6_NF_RAW IP6_NF_SECURITY IP6_NF_TARGET_HL IP6_NF_TARGET_MASQUERADE IP6_NF_TARGET_NPT IP6_NF_TARGET_SYNPROXY IPV6_FOU IPV6_FOU_TUNNEL IPV6_GRE IPV6_ILA IPV6_MIP6 IPV6_MROUTE IPV6_MROUTE_MULTIPLE_TABLES IPV6_OPTIMISTIC_DAD IPV6_PIMSM_V2 IPV6_ROUTER_PREF IPV6_ROUTE_INFO IPV6_RPL_LWTUNNEL IPV6_SEG6_BPF IPV6_SEG6_HMAC IPV6_SEG6_LWTUNNEL IPV6_SIT_6RD IP_SCTP IRQ_TIME_ACCOUNTING LAPB LCD_CLASS_DEVICE LEDS_CLASS_MULTICOLOR MAC802154 MEDIA_DIGITAL_TV_SUPPORT MEDIA_RADIO_SUPPORT MEDIA_SDR_SUPPORT MEDIA_SUPPORT MEDIA_TEST_SUPPORT MEDIA_USB_SUPPORT MEMORY_HOTPLUG MEMORY_HOTREMOVE MFD_DLN2 MFD_VIPERBOARD MODVERSIONS MPTCP MTD NETFILTER_ADVANCED NET_ACT_GACT NET_ACT_MIRRED NET_IPGRE_DEMUX NET_SCH_DEFAULT NFT_COMPAT NFT_FWD_NETDEV NF_TABLES NF_TABLES_NETDEV PAGE_POOL RADIO_ADAPTERS RADIO_SI4713 RAS RC_CORE REGULATOR RFKILL SND SOUND STAGING TRANSPARENT_HUGEPAGE TRUSTED_KEYS TYPEC TYPEC_MUX_PI3USB30532 USB_LJCA USB_ROLES_INTEL_XHCI USB_ROLE_SWITCH VIDEO_DEV VIRTIO_FS WAN ZONE_DEVICE] disabling configs for [memleak ubsan kasan locking atomic_sleep hang], they are not needed picked [v6.16 v6.15 v6.14 v6.12 v6.10 v6.8 v6.6 v6.4 v6.1 v5.18 v5.15 v5.12 v5.9 v5.6 v5.3 v5.0 v4.19] out of 39 release tags testing release v6.16 testing commit 038d61fd642278bab63ee8ef722c50d10ab01e8f gcc compiler: Debian clang version 20.1.7 (++20250616065708+6146a88f6049-1~exp1~20250616065826.132), Debian LLD 20.1.7 kernel signature: f12a98dc1a794c0341c6f4560084a4536d68cf280ae867ce96bf782d6404dda1 all runs: OK false negative chance: 0.000 # git bisect start ced1b9e0392d981a7317c605b402c06650947a34 038d61fd642278bab63ee8ef722c50d10ab01e8f Bisecting: 415 revisions left to test after this (roughly 9 steps) [794cbac9c053155754d04231b9365f91ea4ce7d2] Merge tag 'pull-mount' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs testing commit 794cbac9c053155754d04231b9365f91ea4ce7d2 gcc compiler: Debian clang version 20.1.7 (++20250616065708+6146a88f6049-1~exp1~20250616065826.132), Debian LLD 20.1.7 kernel signature: 3d76af4f4b6739b644b8a8dc2fa88eb46a65dfb9a238a8752f590d29e6ed9fac all runs: OK false negative chance: 0.000 # git bisect good 794cbac9c053155754d04231b9365f91ea4ce7d2 Bisecting: 198 revisions left to test after this (roughly 8 steps) [b5d760d53ac2e36825fbbb8d1f54ad9ce6138f7b] Merge tag 'vfs-6.17-rc1.iomap' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs testing commit b5d760d53ac2e36825fbbb8d1f54ad9ce6138f7b gcc compiler: Debian clang version 20.1.7 (++20250616065708+6146a88f6049-1~exp1~20250616065826.132), Debian LLD 20.1.7 kernel signature: 2fedf1e234dc3266c47db74b458108fb1198b3310d973ff60a67ebac3e849014 all runs: OK false negative chance: 0.000 # git bisect good b5d760d53ac2e36825fbbb8d1f54ad9ce6138f7b Bisecting: 102 revisions left to test after this (roughly 7 steps) [5989bfe6ac6bf230c2c84e118c786be0ed4be3f4] block: restore two stage elevator switch while running nr_hw_queue update testing commit 5989bfe6ac6bf230c2c84e118c786be0ed4be3f4 gcc compiler: Debian clang version 20.1.7 (++20250616065708+6146a88f6049-1~exp1~20250616065826.132), Debian LLD 20.1.7 kernel signature: afc29c3823e83cb6be4e355382199314211fc8c57747b59a72aa24128b7d4e09 all runs: crashed: WARNING: refcount bug in process_scheduled_works representative crash: WARNING: refcount bug in process_scheduled_works, types: [REFCOUNT_WARNING] # git bisect bad 5989bfe6ac6bf230c2c84e118c786be0ed4be3f4 Bisecting: 47 revisions left to test after this (roughly 6 steps) [790abe4d77af736e2521ef121fae8c6ed2799773] md: remove/add redundancy group only in level change testing commit 790abe4d77af736e2521ef121fae8c6ed2799773 gcc compiler: Debian clang version 20.1.7 (++20250616065708+6146a88f6049-1~exp1~20250616065826.132), Debian LLD 20.1.7 kernel signature: 56ffff254b9d00ef9e9f03287ab8dcb98ca78b4e1204073ae2b596f27bbabc58 all runs: crashed: WARNING: refcount bug in process_scheduled_works representative crash: WARNING: refcount bug in process_scheduled_works, types: [REFCOUNT_WARNING] # git bisect bad 790abe4d77af736e2521ef121fae8c6ed2799773 Bisecting: 23 revisions left to test after this (roughly 5 steps) [8a8fe42d765bb22cc0e91b053bfebf0fbdec3b5a] ublk: optimize UBLK_IO_REGISTER_IO_BUF on daemon task testing commit 8a8fe42d765bb22cc0e91b053bfebf0fbdec3b5a gcc compiler: Debian clang version 20.1.7 (++20250616065708+6146a88f6049-1~exp1~20250616065826.132), Debian LLD 20.1.7 kernel signature: 88d340c8554503a4708258073e5182f10ebdadb1e7b0ea49c6114fa4299c2f3a all runs: OK false negative chance: 0.000 # git bisect good 8a8fe42d765bb22cc0e91b053bfebf0fbdec3b5a Bisecting: 11 revisions left to test after this (roughly 4 steps) [2fa9c93035e17380cafa897ee1a4d503881a3770] ublk: speed up ublk server exit handling testing commit 2fa9c93035e17380cafa897ee1a4d503881a3770 gcc compiler: Debian clang version 20.1.7 (++20250616065708+6146a88f6049-1~exp1~20250616065826.132), Debian LLD 20.1.7 kernel signature: 7eced4831d8bf556c1aa700d2633f57527fce7801fb61ffec849849757b82104 all runs: OK false negative chance: 0.000 # git bisect good 2fa9c93035e17380cafa897ee1a4d503881a3770 Bisecting: 5 revisions left to test after this (roughly 3 steps) [00c9c9628b49e368d140cfa61d7df9b8922ec2a8] drbd: add missing kref_get in handle_write_conflicts testing commit 00c9c9628b49e368d140cfa61d7df9b8922ec2a8 gcc compiler: Debian clang version 20.1.7 (++20250616065708+6146a88f6049-1~exp1~20250616065826.132), Debian LLD 20.1.7 kernel signature: 4e138b79dc6e90549b862541722ded12c2a31f22958df76842df8303253a265e all runs: OK false negative chance: 0.000 # git bisect good 00c9c9628b49e368d140cfa61d7df9b8922ec2a8 Bisecting: 2 revisions left to test after this (roughly 2 steps) [7e49538288e523427beedd26993d446afef1a6fb] loop: Avoid updating block size under exclusive owner testing commit 7e49538288e523427beedd26993d446afef1a6fb gcc compiler: Debian clang version 20.1.7 (++20250616065708+6146a88f6049-1~exp1~20250616065826.132), Debian LLD 20.1.7 kernel signature: d9f022dbfa839364a72c503361e318d6283bea2bc6acc4a80782c68961e145f1 all runs: OK false negative chance: 0.000 # git bisect good 7e49538288e523427beedd26993d446afef1a6fb Bisecting: 0 revisions left to test after this (roughly 1 step) [5f286f33553d600e6c2fb5a23dd6afcf99b3ebac] md: Don't clear MD_CLOSING until mddev is freed testing commit 5f286f33553d600e6c2fb5a23dd6afcf99b3ebac gcc compiler: Debian clang version 20.1.7 (++20250616065708+6146a88f6049-1~exp1~20250616065826.132), Debian LLD 20.1.7 kernel signature: 37666a52708c422ea05a2a7582d7485c2d6544b0be2507d2e304590c8807e0b3 all runs: crashed: WARNING: refcount bug in process_scheduled_works representative crash: WARNING: refcount bug in process_scheduled_works, types: [REFCOUNT_WARNING] # git bisect bad 5f286f33553d600e6c2fb5a23dd6afcf99b3ebac Bisecting: 0 revisions left to test after this (roughly 0 steps) [9e59d609763f70a992a8f3808dabcce60f14eb5c] md: call del_gendisk in control path testing commit 9e59d609763f70a992a8f3808dabcce60f14eb5c gcc compiler: Debian clang version 20.1.7 (++20250616065708+6146a88f6049-1~exp1~20250616065826.132), Debian LLD 20.1.7 kernel signature: ae2aeb384416120149ad6dba5d607ed34a067ba96f95d446cf3b4ecf40980d63 all runs: crashed: WARNING: refcount bug in process_scheduled_works representative crash: WARNING: refcount bug in process_scheduled_works, types: [REFCOUNT_WARNING] # git bisect bad 9e59d609763f70a992a8f3808dabcce60f14eb5c 9e59d609763f70a992a8f3808dabcce60f14eb5c is the first bad commit commit 9e59d609763f70a992a8f3808dabcce60f14eb5c Author: Xiao Ni Date: Wed Jun 11 15:31:06 2025 +0800 md: call del_gendisk in control path Now del_gendisk and put_disk are called asynchronously in workqueue work. The asynchronous way has a problem that the device node can still exist after mdadm --stop command returns in a short window. So udev rule can open this device node and create the struct mddev in kernel again. So put del_gendisk in control path and still leave put_disk in md_kobj_release to avoid uaf of gendisk. Function del_gendisk can't be called with reconfig_mutex. If it's called with reconfig mutex, a deadlock can happen. del_gendisk waits all sysfs files access to finish and sysfs file access waits reconfig mutex. So put del_gendisk after releasing reconfig mutex. But there is still a window that sysfs can be accessed between mddev_unlock and del_gendisk. So some actions (add disk, change level, .e.g) can happen which lead unexpected results. MD_DELETED is used to resolve this problem. MD_DELETED is set before releasing reconfig mutex and it should be checked for these sysfs access which need reconfig mutex. For sysfs access which don't need reconfig mutex, del_gendisk will wait them to finish. But it doesn't need to do this in function mddev_lock_nointr. There are ten places that call it. * Five of them are in dm raid which we don't need to care. MD_DELETED is only used for md raid. * stop_sync_thread, md_do_sync and md_start_sync are related sync request, and it needs to wait sync thread to finish before stopping an array. * md_ioctl: md_open is called before md_ioctl, so ->openers is added. It will fail to stop the array. So it doesn't need to check MD_DELETED here * md_set_readonly: It needs to call mddev_set_closing_and_sync_blockdev when setting readonly or read_auto. So it will fail to stop the array too because MD_CLOSING is already set. Reviewed-by: Yu Kuai Signed-off-by: Xiao Ni Link: https://lore.kernel.org/linux-raid/20250611073108.25463-2-xni@redhat.com Signed-off-by: Yu Kuai drivers/md/md.c | 33 +++++++++++++++++++++++---------- drivers/md/md.h | 26 ++++++++++++++++++++++++-- 2 files changed, 47 insertions(+), 12 deletions(-) accumulated error probability: 0.00 culprit signature: ae2aeb384416120149ad6dba5d607ed34a067ba96f95d446cf3b4ecf40980d63 parent signature: d9f022dbfa839364a72c503361e318d6283bea2bc6acc4a80782c68961e145f1 revisions tested: 18, total time: 5h45m4.396449838s (build: 2h41m50.458436687s, test: 2h4m2.041473832s) first bad commit: 9e59d609763f70a992a8f3808dabcce60f14eb5c md: call del_gendisk in control path recipients (to): ["linux-kernel@vger.kernel.org" "xni@redhat.com" "yukuai3@huawei.com"] recipients (cc): ["linux-raid@vger.kernel.org" "song@kernel.org" "yukuai3@huawei.com"] crash: WARNING: refcount bug in process_scheduled_works ------------[ cut here ]------------ refcount_t: underflow; use-after-free. WARNING: CPU: 0 PID: 9 at lib/refcount.c:28 refcount_warn_saturate+0xb4/0x140 lib/refcount.c:28 Modules linked in: CPU: 0 UID: 0 PID: 9 Comm: kworker/0:0 Not tainted 6.16.0-rc4-syzkaller #0 PREEMPT(undef) Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 07/12/2025 Workqueue: md_misc mddev_delayed_delete RIP: 0010:refcount_warn_saturate+0xb4/0x140 lib/refcount.c:28 Code: ff 90 0f 0b 90 90 e9 26 83 68 ff cc 80 3d 7f 34 1a 02 00 75 90 c6 05 76 34 1a 02 01 90 48 c7 c7 b1 51 52 83 e8 fd 63 78 ff 90 <0f> 0b 90 90 e9 fe 82 68 ff cc 80 3d 54 34 1a 02 00 0f 85 64 ff ff RSP: 0018:ffffc90000053e00 EFLAGS: 00010246 RAX: bae91aacbeddf400 RBX: ffff888100a8c240 RCX: 0000000000000000 RDX: 0000000000000002 RSI: 00000000ffffdfff RDI: 00000000ffffffff RBP: ffffffff812e7652 R08: 0000000000001fff R09: ffffffff838fcf10 R10: 0000000000005ffd R11: 00000000ffffdfff R12: ffff888101ef1800 R13: ffff888237c2acc0 R14: ffff8881012a8000 R15: ffff888101736448 FS: 0000000000000000(0000) GS:ffff8882b343f000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007f32793b1d58 CR3: 00000000038aa000 CR4: 0000000000350ef0 Call Trace: process_one_work kernel/workqueue.c:3238 [inline] process_scheduled_works+0x314/0x6b0 kernel/workqueue.c:3321 worker_thread+0x1df/0x2f0 kernel/workqueue.c:3402 kthread+0x23f/0x270 kernel/kthread.c:464 ret_from_fork+0x9f/0x1b0 arch/x86/kernel/process.c:148 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245