ci starts bisection 2024-09-27 22:49:08.093759626 +0000 UTC m=+31572.238366582 bisecting fixing commit since 90d35da658da8cff0d4ecbb5113f5fac9d00eb72 building syzkaller on f39a7eed7e2634a9f836f1922833d4b4d5b0f770 ensuring issue is reproducible on original commit 90d35da658da8cff0d4ecbb5113f5fac9d00eb72 testing commit 90d35da658da8cff0d4ecbb5113f5fac9d00eb72 gcc compiler: gcc (Debian 12.2.0-14) 12.2.0, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: de782e900e44f66ba8d71808d75a1eec470e27edd4b530027337c088e8ae6fff all runs: crashed: possible deadlock in hfsplus_file_extend representative crash: possible deadlock in hfsplus_file_extend, types: [LOCKDEP] check whether we can drop unnecessary instrumentation disabling configs for [BUG KASAN ATOMIC_SLEEP HANG LEAK UBSAN], they are not needed testing commit 90d35da658da8cff0d4ecbb5113f5fac9d00eb72 gcc compiler: gcc (Debian 12.2.0-14) 12.2.0, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: 6099d3549d8f04e025d4281906e1749a25f49fe92852f5ea4aafb30e984f6e07 all runs: crashed: possible deadlock in hfsplus_file_extend representative crash: possible deadlock in hfsplus_file_extend, types: [LOCKDEP] the bug reproduces without the instrumentation disabling configs for [HANG LEAK UBSAN BUG KASAN ATOMIC_SLEEP], they are not needed kconfig minimization: base=4046 full=7962 leaves diff=2012 split chunks (needed=false): <2012> split chunk #0 of len 2012 into 5 parts testing without sub-chunk 1/5 disabling configs for [BUG KASAN ATOMIC_SLEEP HANG LEAK UBSAN], they are not needed testing commit 90d35da658da8cff0d4ecbb5113f5fac9d00eb72 gcc compiler: gcc (Debian 12.2.0-14) 12.2.0, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: deed7eb0ac276a76e5485c17412c97ac9be45abe84d18c572572a978ae0478dc all runs: crashed: possible deadlock in hfsplus_file_extend representative crash: possible deadlock in hfsplus_file_extend, types: [LOCKDEP] the chunk can be dropped testing without sub-chunk 2/5 disabling configs for [LEAK UBSAN BUG KASAN ATOMIC_SLEEP HANG], they are not needed testing commit 90d35da658da8cff0d4ecbb5113f5fac9d00eb72 gcc compiler: gcc (Debian 12.2.0-14) 12.2.0, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: d06d07248cf254d966b811dbf08665dac52b6fd931f9679315978d5448274c4d all runs: OK false negative chance: 0.000 testing without sub-chunk 3/5 disabling configs for [ATOMIC_SLEEP HANG LEAK UBSAN BUG KASAN], they are not needed testing commit 90d35da658da8cff0d4ecbb5113f5fac9d00eb72 gcc compiler: gcc (Debian 12.2.0-14) 12.2.0, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: 5dcf131121351b53a68f0ed1a57f8c8fe2bb721da2ff685e53a1a2c47346aaeb all runs: crashed: possible deadlock in hfsplus_file_extend representative crash: possible deadlock in hfsplus_file_extend, types: [LOCKDEP] the chunk can be dropped testing without sub-chunk 4/5 disabling configs for [KASAN ATOMIC_SLEEP HANG LEAK UBSAN BUG], they are not needed testing commit 90d35da658da8cff0d4ecbb5113f5fac9d00eb72 gcc compiler: gcc (Debian 12.2.0-14) 12.2.0, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: e3402edeb412abc7f3a81e5866c525241ffcec0bc332461c4bdb50cc4b8b4b13 run #0: failed: failed to run command in VM: broken console: Permission denied (publickey) run #1: crashed: possible deadlock in hfsplus_file_extend run #2: crashed: possible deadlock in hfsplus_file_extend run #3: crashed: possible deadlock in hfsplus_file_extend run #4: crashed: possible deadlock in hfsplus_file_extend run #5: crashed: possible deadlock in hfsplus_file_extend run #6: crashed: possible deadlock in hfsplus_file_extend run #7: crashed: possible deadlock in hfsplus_file_extend run #8: crashed: possible deadlock in hfsplus_file_extend run #9: crashed: possible deadlock in hfsplus_file_extend representative crash: possible deadlock in hfsplus_file_extend, types: [LOCKDEP] the chunk can be dropped testing without sub-chunk 5/5 disabling configs for [UBSAN BUG KASAN ATOMIC_SLEEP HANG LEAK], they are not needed testing commit 90d35da658da8cff0d4ecbb5113f5fac9d00eb72 gcc compiler: gcc (Debian 12.2.0-14) 12.2.0, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: 4115d7dc7f96c69d481a0bd505838b1f8fbab774e2979acc2b8b8d88019cee5a all runs: crashed: possible deadlock in hfsplus_file_extend representative crash: possible deadlock in hfsplus_file_extend, types: [LOCKDEP] the chunk can be dropped minimized to 403 configs; suspects: [6LOWPAN ARCH_ENABLE_MEMORY_HOTREMOVE ASUS_WMI CC_HAS_ASM_GOTO_OUTPUT CMA COMMON_CLK DAX DLM DRM DRM_BRIDGE DRM_FBDEV_EMULATION DRM_GEM_SHMEM_HELPER 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_TTM DRM_TTM_HELPER DRM_UDL DRM_VGEM DRM_VIRTIO_GPU DRM_VIRTIO_GPU_KMS DRM_VKMS DRM_VMWGFX DRM_VRAM_HELPER 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_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 EEPROM_93CX6 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 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_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 GCC11_NO_ARRAY_BOUNDS GCC_ASM_GOTO_OUTPUT_WORKAROUND GENERIC_PHY GET_FREE_REGION GFS2_FS GFS2_FS_LOCKING_DLM GOOGLE_COREBOOT_TABLE GOOGLE_FIRMWARE GOOGLE_MEMCONSOLE GOOGLE_MEMCONSOLE_COREBOOT GOOGLE_VPD GPIOLIB GPIOLIB_IRQCHIP GPIO_ACPI GPIO_DLN2 GPIO_VIPERBOARD GREENASIA_FF GREYBUS GREYBUS_BRIDGED_PHY GREYBUS_ES2 GREYBUS_HID GREYBUS_USB GTP GUEST_PERF_EVENTS GVE HAVE_ARCH_NODE_DEV_GROUP HAVE_ARCH_USERFAULTFD_MINOR HAVE_ARCH_USERFAULTFD_WP HAVE_BOOTMEM_INFO_NODE HAVE_CLK_PREPARE HAVE_FAST_GUP 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_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_CMEDIA HID_CORSAIR HID_CP2112 HID_ELECOM HID_ELO HID_EMS_FF HID_GEMBIRD HID_GFRM HID_GREENASIA HID_GT683R HID_HOLTEK HID_ICADE HID_KEYTOUCH HID_KYE HID_LCPOWER HID_LED HID_LENOVO HID_LOGITECH_DJ HID_LOGITECH_HIDPP HID_MAGICMOUSE HID_MAYFLASH 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_RETRODE HID_RMI HID_ROCCAT HID_SAITEK HID_SENSOR_ACCEL_3D HID_SENSOR_ALS 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_SPEEDLINK HID_STEELSERIES HID_THINGM HID_TIVO HID_TWINHAN HID_UCLOGIC HID_UDRAW_PS3 HID_WACOM HID_WALTOP HID_WIIMOTE HID_XINMO HID_ZYDACRON HMM_MIRROR HOLTEK_FF HOTPLUG_PCI_PCIE HPET_MMAP HPET_MMAP_DEFAULT HPFS_FS I2C_ALGOBIT I2C_CHARDEV I2C_DESIGNWARE_CORE I2C_DESIGNWARE_PLATFORM I2C_DIOLAN_U2C I2C_DLN2 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_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_DCCP_DIAG 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_IDMA64 INTEL_IOATDMA INTEL_IOMMU_DEFAULT_ON INTEL_IOMMU_SVM INTEL_ISH_HID INTEL_SOC_PMIC_CHTWC INTERVAL_TREE_SPAN_ITER IOMMUFD IOMMUFD_DRIVER IOMMUFD_TEST 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_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 IPV6_SUBTREES IPV6_TUNNEL IPV6_VTI IPVLAN IPVLAN_L3S IPVTAP IP_DCCP IP_DCCP_CCID3 IP_DCCP_TFRC_LIB IP_FIB_TRIE_STATS IP_MROUTE_MULTIPLE_TABLES IP_NF_ARPFILTER IP_NF_ARPTABLES IP_NF_ARP_MANGLE IP_NF_MATCH_AH IP_NF_MATCH_ECN IP_NF_MATCH_RPFILTER IP_NF_MATCH_TTL IP_NF_RAW IP_NF_SECURITY IP_NF_TARGET_ECN IP_NF_TARGET_NETMAP IP_NF_TARGET_REDIRECT IP_NF_TARGET_SYNPROXY IP_NF_TARGET_TTL IP_ROUTE_CLASSID IP_SCTP IP_SET IP_SET_BITMAP_IP IP_SET_BITMAP_IPMAC IP_SET_BITMAP_PORT IP_SET_HASH_IP IP_SET_HASH_IPMAC IP_SET_HASH_IPMARK IP_SET_HASH_IPPORT IP_SET_HASH_IPPORTIP IP_SET_HASH_IPPORTNET IP_SET_HASH_MAC IP_SET_HASH_NET IP_SET_HASH_NETIFACE IP_SET_HASH_NETNET IP_SET_HASH_NETPORT IP_SET_HASH_NETPORTNET IP_SET_LIST_SET IP_VS IP_VS_DH IP_VS_FO IP_VS_FTP IP_VS_IPV6 IP_VS_LBLC IP_VS_LBLCR IP_VS_LC IP_VS_MH IP_VS_NFCT IP_VS_NQ IP_VS_OVF IP_VS_PE_SIP IP_VS_PROTO_AH IP_VS_PROTO_AH_ESP IP_VS_PROTO_ESP IP_VS_PROTO_SCTP IP_VS_PROTO_TCP IP_VS_PROTO_UDP IP_VS_RR IRQ_TIME_ACCOUNTING LAPB LCD_CLASS_DEVICE 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 MPTCP MTD NETFILTER_ADVANCED NET_ACT_GACT NET_ACT_MIRRED NET_IPGRE_DEMUX NFT_FWD_NETDEV NF_TABLES NF_TABLES_NETDEV RADIO_ADAPTERS RADIO_SI4713 RAS RC_CORE RFKILL SND SOUND STAGING TRANSPARENT_HUGEPAGE VIDEO_DEV VIRTIO_FS WAN ZONE_DEVICE] disabling configs for [HANG LEAK UBSAN BUG KASAN ATOMIC_SLEEP], they are not needed testing current HEAD ad46e8f95e931e113cb98253daf6d443ac244cde testing commit ad46e8f95e931e113cb98253daf6d443ac244cde gcc compiler: gcc (Debian 12.2.0-14) 12.2.0, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: ce49b908356056a5686bbfc49f10f71f183d18294c3bed2f371703f4fcfa3252 all runs: OK false negative chance: 0.000 # git bisect start ad46e8f95e931e113cb98253daf6d443ac244cde 90d35da658da8cff0d4ecbb5113f5fac9d00eb72 Bisecting: 28700 revisions left to test after this (roughly 15 steps) [00a8c352dd7581961fd0f284c6fc1a17b370d0f4] Merge tag 'hardening-v6.10-rc2-take2' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux determine whether the revision contains the guilty commit revision 90d35da658da8cff0d4ecbb5113f5fac9d00eb72 crashed and is reachable testing commit 00a8c352dd7581961fd0f284c6fc1a17b370d0f4 gcc compiler: gcc (Debian 12.2.0-14) 12.2.0, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: e30801fdb46035bd887bc8be2664f842ec932fa4b4217514bed0e2bca3b23b8b all runs: crashed: possible deadlock in hfsplus_file_extend representative crash: possible deadlock in hfsplus_file_extend, types: [LOCKDEP] # git bisect good 00a8c352dd7581961fd0f284c6fc1a17b370d0f4 Bisecting: 14349 revisions left to test after this (roughly 14 steps) [f9bcc61ad1fbe7dbc6bdd71d31254e429100a009] Merge tag 'uml-for-linus-6.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/uml/linux determine whether the revision contains the guilty commit revision 90d35da658da8cff0d4ecbb5113f5fac9d00eb72 crashed and is reachable testing commit f9bcc61ad1fbe7dbc6bdd71d31254e429100a009 gcc compiler: gcc (Debian 12.2.0-14) 12.2.0, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: 35abedd6df5b957f41d1a772e8e2065f1faf34dbb3118ef96a061c7a739da32b all runs: OK false negative chance: 0.000 # git bisect bad f9bcc61ad1fbe7dbc6bdd71d31254e429100a009 Bisecting: 7300 revisions left to test after this (roughly 13 steps) [0ffb8a4c96e55ecf0e572aec1a0220af3da84e22] Merge tag 'devicetree-for-6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux determine whether the revision contains the guilty commit revision 90d35da658da8cff0d4ecbb5113f5fac9d00eb72 crashed and is reachable testing commit 0ffb8a4c96e55ecf0e572aec1a0220af3da84e22 gcc compiler: gcc (Debian 12.2.0-14) 12.2.0, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: aedf21fa69706d2ef52eb34aa95c9aa579e735bac8f9c4de8d5191a1ab434e06 all runs: OK false negative chance: 0.000 # git bisect bad 0ffb8a4c96e55ecf0e572aec1a0220af3da84e22 Bisecting: 3525 revisions left to test after this (roughly 12 steps) [cd9b6f4795e7002fa2fb51e6d172294e28453df3] Merge tag 'for-net-next-2024-07-15' of git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth-next determine whether the revision contains the guilty commit revision 90d35da658da8cff0d4ecbb5113f5fac9d00eb72 crashed and is reachable testing commit cd9b6f4795e7002fa2fb51e6d172294e28453df3 gcc compiler: gcc (Debian 12.2.0-14) 12.2.0, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: 9a833fa613a0d149893050ee98db634430e1784358f75a62a435be2fde5a709e all runs: crashed: possible deadlock in hfsplus_file_extend representative crash: possible deadlock in hfsplus_file_extend, types: [LOCKDEP] # git bisect good cd9b6f4795e7002fa2fb51e6d172294e28453df3 Bisecting: 2161 revisions left to test after this (roughly 11 steps) [cc0f7c3f97bc6e888bf4be28a9da9dbd3735d2b4] Merge tag 'soc-drivers-6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc determine whether the revision contains the guilty commit revision 90d35da658da8cff0d4ecbb5113f5fac9d00eb72 crashed and is reachable testing commit cc0f7c3f97bc6e888bf4be28a9da9dbd3735d2b4 gcc compiler: gcc (Debian 12.2.0-14) 12.2.0, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: 1e9a94d1c9c976d64fd95a1532da7d2463694b895cbcf971f75d552a8b7a7f08 all runs: OK false negative chance: 0.000 # git bisect bad cc0f7c3f97bc6e888bf4be28a9da9dbd3735d2b4 Bisecting: 681 revisions left to test after this (roughly 9 steps) [cdf471c348c1200ca243775b4b8d6eaa6d7f3979] Merge tag 'tag-chrome-platform-firmware-for-v6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/chrome-platform/linux determine whether the revision contains the guilty commit revision 90d35da658da8cff0d4ecbb5113f5fac9d00eb72 crashed and is reachable testing commit cdf471c348c1200ca243775b4b8d6eaa6d7f3979 gcc compiler: gcc (Debian 12.2.0-14) 12.2.0, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: 15e70b596b359363de890180b60c6ca56ef63a8c18563064a3e99c5f8ac1d221 all runs: OK false negative chance: 0.000 # git bisect bad cdf471c348c1200ca243775b4b8d6eaa6d7f3979 Bisecting: 254 revisions left to test after this (roughly 8 steps) [3e7819886281e077e82006fe4804b0d6b0f5643b] Merge tag 'for-6.11/block-20240710' of git://git.kernel.dk/linux determine whether the revision contains the guilty commit revision 90d35da658da8cff0d4ecbb5113f5fac9d00eb72 crashed and is reachable testing commit 3e7819886281e077e82006fe4804b0d6b0f5643b gcc compiler: gcc (Debian 12.2.0-14) 12.2.0, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: 51824546e756814673d5482994330c6ebcbfcebe479a947b862da12f3d5c4b41 all runs: OK false negative chance: 0.000 # git bisect bad 3e7819886281e077e82006fe4804b0d6b0f5643b Bisecting: 212 revisions left to test after this (roughly 8 steps) [3a56e241732975c2c1247047ddbfc0ac6f6a4905] Merge tag 'for-6.11/io_uring-20240714' of git://git.kernel.dk/linux determine whether the revision contains the guilty commit revision 00a8c352dd7581961fd0f284c6fc1a17b370d0f4 crashed and is reachable testing commit 3a56e241732975c2c1247047ddbfc0ac6f6a4905 gcc compiler: gcc (Debian 12.2.0-14) 12.2.0, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: fab2dc37f769962ff43ddc6ab2999138b7fcb1c3896e2d4ee5d53eb4710c18f4 all runs: OK false negative chance: 0.000 # git bisect bad 3a56e241732975c2c1247047ddbfc0ac6f6a4905 Bisecting: 102 revisions left to test after this (roughly 7 steps) [7d156879ffd6c48428c2f46d5c2b4b80d9c9ee79] Merge tag 'vfs-6.11.module.description' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs determine whether the revision contains the guilty commit revision 90d35da658da8cff0d4ecbb5113f5fac9d00eb72 crashed and is reachable testing commit 7d156879ffd6c48428c2f46d5c2b4b80d9c9ee79 gcc compiler: gcc (Debian 12.2.0-14) 12.2.0, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: ec38655ae7fe698c5dd1d7d6bc5d1e326b58beaa64af0263052aa04532651ee8 all runs: OK false negative chance: 0.000 # git bisect bad 7d156879ffd6c48428c2f46d5c2b4b80d9c9ee79 Bisecting: 58 revisions left to test after this (roughly 6 steps) [2ffd45da0b06b26f30480584de7c660d84b2d7dc] Merge tag 'drm-fixes-2024-07-12' of https://gitlab.freedesktop.org/drm/kernel determine whether the revision contains the guilty commit revision 90d35da658da8cff0d4ecbb5113f5fac9d00eb72 crashed and is reachable testing commit 2ffd45da0b06b26f30480584de7c660d84b2d7dc gcc compiler: gcc (Debian 12.2.0-14) 12.2.0, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: dae06e1ebcbda0aaf102648ee4cfe22623f93848db0cae2274c58b8f182e9af4 all runs: crashed: possible deadlock in hfsplus_file_extend representative crash: possible deadlock in hfsplus_file_extend, types: [LOCKDEP] # git bisect good 2ffd45da0b06b26f30480584de7c660d84b2d7dc Bisecting: 30 revisions left to test after this (roughly 5 steps) [b051320d6ab8cfdd77a48ef4e563584cd7681d2d] Merge tag 'vfs-6.11.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs determine whether the revision contains the guilty commit revision 2ffd45da0b06b26f30480584de7c660d84b2d7dc crashed and is reachable testing commit b051320d6ab8cfdd77a48ef4e563584cd7681d2d gcc compiler: gcc (Debian 12.2.0-14) 12.2.0, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: 90f14c973492619a0ba8533c8b2e5ed2db612e8e45c6ee1bc344a84ef4e580b9 all runs: OK false negative chance: 0.000 # git bisect bad b051320d6ab8cfdd77a48ef4e563584cd7681d2d Bisecting: 13 revisions left to test after this (roughly 4 steps) [be4edd1642ee205ed7bbf66edc0453b1be1fb8d7] hfsplus: fix to avoid false alarm of circular locking determine whether the revision contains the guilty commit revision 90d35da658da8cff0d4ecbb5113f5fac9d00eb72 crashed and is reachable testing commit be4edd1642ee205ed7bbf66edc0453b1be1fb8d7 gcc compiler: gcc (Debian 12.2.0-14) 12.2.0, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: e3abfafbfd0c8a7984ce459b95f3276f6c42104f019ee7fe393d9b5505c45fdb all runs: OK false negative chance: 0.000 # git bisect bad be4edd1642ee205ed7bbf66edc0453b1be1fb8d7 Bisecting: 6 revisions left to test after this (roughly 3 steps) [992f03ff8661bb0427f1db59c283f3fa63182b09] readdir: Add missing quote in macro comment determine whether the revision contains the guilty commit revision 90d35da658da8cff0d4ecbb5113f5fac9d00eb72 crashed and is reachable testing commit 992f03ff8661bb0427f1db59c283f3fa63182b09 gcc compiler: gcc (Debian 12.2.0-14) 12.2.0, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: 38a02de7c01beee55c9ace67a3ce8e2d09b4df14043eadd307d2f3a8692cff41 all runs: crashed: possible deadlock in hfsplus_file_extend representative crash: possible deadlock in hfsplus_file_extend, types: [LOCKDEP] # git bisect good 992f03ff8661bb0427f1db59c283f3fa63182b09 Bisecting: 3 revisions left to test after this (roughly 2 steps) [969ce92da3112e05d1a70c344f8740a85e933f2e] vfs: stop using user_path_at_empty in do_readlinkat determine whether the revision contains the guilty commit revision 90d35da658da8cff0d4ecbb5113f5fac9d00eb72 crashed and is reachable testing commit 969ce92da3112e05d1a70c344f8740a85e933f2e gcc compiler: gcc (Debian 12.2.0-14) 12.2.0, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: 1f9f0b7f48482cca3e95fd1b92d5137ea970226da4d2ecf65d50f8952f4e714c all runs: crashed: possible deadlock in hfsplus_file_extend representative crash: possible deadlock in hfsplus_file_extend, types: [LOCKDEP] # git bisect good 969ce92da3112e05d1a70c344f8740a85e933f2e Bisecting: 1 revision left to test after this (roughly 1 step) [d4f50ea957cab6ea940cc072a142b1e964a10ee6] vfs: shave a branch in getname_flags determine whether the revision contains the guilty commit revision 969ce92da3112e05d1a70c344f8740a85e933f2e crashed and is reachable testing commit d4f50ea957cab6ea940cc072a142b1e964a10ee6 gcc compiler: gcc (Debian 12.2.0-14) 12.2.0, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: 08ac4dbe361cbbe3f8f7d3a9fa8960d956986efa07cc4398c9995fc25d8ed2b1 all runs: crashed: possible deadlock in hfsplus_file_extend representative crash: possible deadlock in hfsplus_file_extend, types: [LOCKDEP] # git bisect good d4f50ea957cab6ea940cc072a142b1e964a10ee6 Bisecting: 0 revisions left to test after this (roughly 0 steps) [deebbd505c7bf8913451095c3ac9dcec39c7a025] Improve readability of copy_tree determine whether the revision contains the guilty commit revision 969ce92da3112e05d1a70c344f8740a85e933f2e crashed and is reachable testing commit deebbd505c7bf8913451095c3ac9dcec39c7a025 gcc compiler: gcc (Debian 12.2.0-14) 12.2.0, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: bddb722eb8b6eb449e14b71a10e3df8467ebe29367b845cd4698974bb21f4594 all runs: crashed: possible deadlock in hfsplus_file_extend representative crash: possible deadlock in hfsplus_file_extend, types: [LOCKDEP] # git bisect good deebbd505c7bf8913451095c3ac9dcec39c7a025 be4edd1642ee205ed7bbf66edc0453b1be1fb8d7 is the first bad commit commit be4edd1642ee205ed7bbf66edc0453b1be1fb8d7 Author: Chao Yu Date: Fri Jun 7 22:23:04 2024 +0800 hfsplus: fix to avoid false alarm of circular locking Syzbot report potential ABBA deadlock as below: loop0: detected capacity change from 0 to 1024 ====================================================== WARNING: possible circular locking dependency detected 6.9.0-syzkaller-10323-g8f6a15f095a6 #0 Not tainted ------------------------------------------------------ syz-executor171/5344 is trying to acquire lock: ffff88807cb980b0 (&tree->tree_lock){+.+.}-{3:3}, at: hfsplus_file_truncate+0x811/0xb50 fs/hfsplus/extents.c:595 but task is already holding lock: ffff88807a930108 (&HFSPLUS_I(inode)->extents_lock){+.+.}-{3:3}, at: hfsplus_file_truncate+0x2da/0xb50 fs/hfsplus/extents.c:576 which lock already depends on the new lock. the existing dependency chain (in reverse order) is: -> #1 (&HFSPLUS_I(inode)->extents_lock){+.+.}-{3:3}: lock_acquire+0x1ed/0x550 kernel/locking/lockdep.c:5754 __mutex_lock_common kernel/locking/mutex.c:608 [inline] __mutex_lock+0x136/0xd70 kernel/locking/mutex.c:752 hfsplus_file_extend+0x21b/0x1b70 fs/hfsplus/extents.c:457 hfsplus_bmap_reserve+0x105/0x4e0 fs/hfsplus/btree.c:358 hfsplus_rename_cat+0x1d0/0x1050 fs/hfsplus/catalog.c:456 hfsplus_rename+0x12e/0x1c0 fs/hfsplus/dir.c:552 vfs_rename+0xbdb/0xf00 fs/namei.c:4887 do_renameat2+0xd94/0x13f0 fs/namei.c:5044 __do_sys_rename fs/namei.c:5091 [inline] __se_sys_rename fs/namei.c:5089 [inline] __x64_sys_rename+0x86/0xa0 fs/namei.c:5089 do_syscall_x64 arch/x86/entry/common.c:52 [inline] do_syscall_64+0xf5/0x240 arch/x86/entry/common.c:83 entry_SYSCALL_64_after_hwframe+0x77/0x7f -> #0 (&tree->tree_lock){+.+.}-{3:3}: check_prev_add kernel/locking/lockdep.c:3134 [inline] check_prevs_add kernel/locking/lockdep.c:3253 [inline] validate_chain+0x18cb/0x58e0 kernel/locking/lockdep.c:3869 __lock_acquire+0x1346/0x1fd0 kernel/locking/lockdep.c:5137 lock_acquire+0x1ed/0x550 kernel/locking/lockdep.c:5754 __mutex_lock_common kernel/locking/mutex.c:608 [inline] __mutex_lock+0x136/0xd70 kernel/locking/mutex.c:752 hfsplus_file_truncate+0x811/0xb50 fs/hfsplus/extents.c:595 hfsplus_setattr+0x1ce/0x280 fs/hfsplus/inode.c:265 notify_change+0xb9d/0xe70 fs/attr.c:497 do_truncate+0x220/0x310 fs/open.c:65 handle_truncate fs/namei.c:3308 [inline] do_open fs/namei.c:3654 [inline] path_openat+0x2a3d/0x3280 fs/namei.c:3807 do_filp_open+0x235/0x490 fs/namei.c:3834 do_sys_openat2+0x13e/0x1d0 fs/open.c:1406 do_sys_open fs/open.c:1421 [inline] __do_sys_creat fs/open.c:1497 [inline] __se_sys_creat fs/open.c:1491 [inline] __x64_sys_creat+0x123/0x170 fs/open.c:1491 do_syscall_x64 arch/x86/entry/common.c:52 [inline] do_syscall_64+0xf5/0x240 arch/x86/entry/common.c:83 entry_SYSCALL_64_after_hwframe+0x77/0x7f other info that might help us debug this: Possible unsafe locking scenario: CPU0 CPU1 ---- ---- lock(&HFSPLUS_I(inode)->extents_lock); lock(&tree->tree_lock); lock(&HFSPLUS_I(inode)->extents_lock); lock(&tree->tree_lock); This is a false alarm as tree_lock mutex are different, one is from sbi->cat_tree, and another is from sbi->ext_tree: Thread A Thread B - hfsplus_rename - hfsplus_rename_cat - hfs_find_init - mutext_lock(cat_tree->tree_lock) - hfsplus_setattr - hfsplus_file_truncate - mutex_lock(hip->extents_lock) - hfs_find_init - mutext_lock(ext_tree->tree_lock) - hfs_bmap_reserve - hfsplus_file_extend - mutex_lock(hip->extents_lock) So, let's call mutex_lock_nested for tree_lock mutex lock, and pass correct lock class for it. Fixes: 31651c607151 ("hfsplus: avoid deadlock on file truncation") Reported-by: syzbot+6030b3b1b9bf70e538c4@syzkaller.appspotmail.com Closes: https://lore.kernel.org/linux-fsdevel/000000000000e37a4005ef129563@google.com Cc: Ernesto A. Fernández Signed-off-by: Chao Yu Link: https://lore.kernel.org/r/20240607142304.455441-1-chao@kernel.org Signed-off-by: Christian Brauner fs/hfsplus/bfind.c | 15 ++------------- fs/hfsplus/extents.c | 9 ++++++--- fs/hfsplus/hfsplus_fs.h | 21 +++++++++++++++++++++ 3 files changed, 29 insertions(+), 16 deletions(-) accumulated error probability: 0.00 culprit signature: e3abfafbfd0c8a7984ce459b95f3276f6c42104f019ee7fe393d9b5505c45fdb parent signature: bddb722eb8b6eb449e14b71a10e3df8467ebe29367b845cd4698974bb21f4594 revisions tested: 24, total time: 4h25m32.087897454s (build: 1h54m59.917284711s, test: 2h16m5.432654181s) first good commit: be4edd1642ee205ed7bbf66edc0453b1be1fb8d7 hfsplus: fix to avoid false alarm of circular locking recipients (to): ["brauner@kernel.org" "chao@kernel.org" "linux-fsdevel@vger.kernel.org"] recipients (cc): ["brauner@kernel.org" "chao@kernel.org" "josef@toxicpanda.com" "linux-kernel@vger.kernel.org" "viro@zeniv.linux.org.uk" "willy@infradead.org"]