ci starts bisection 2025-01-16 05:09:38.692008091 +0000 UTC m=+29245.343722099 bisecting fixing commit since f03359bca01bf4372cf2c118cd9a987a5951b1c8 building syzkaller on 375d4445a31b220afd91f42a7aa1b610d689a897 ensuring issue is reproducible on original commit f03359bca01bf4372cf2c118cd9a987a5951b1c8 testing commit f03359bca01bf4372cf2c118cd9a987a5951b1c8 gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: 45da9e9ca5055d71af163288a31e5fb7c0c843a3db104660d050f72cd340a3d5 run #0: crashed: general protection fault in __pte_offset_map_lock run #1: crashed: general protection fault in __pte_offset_map_lock run #2: crashed: general protection fault in __pte_offset_map_lock run #3: crashed: general protection fault in __pte_offset_map_lock run #4: crashed: general protection fault in __pte_offset_map_lock run #5: crashed: general protection fault in __pte_offset_map_lock run #6: crashed: general protection fault in __pte_offset_map_lock run #7: crashed: general protection fault in __pte_offset_map_lock run #8: crashed: general protection fault in __pte_offset_map_lock run #9: crashed: general protection fault in __pte_offset_map_lock run #10: crashed: general protection fault in __pte_offset_map_lock run #11: crashed: general protection fault in __pte_offset_map_lock run #12: crashed: general protection fault in __pte_offset_map_lock run #13: crashed: general protection fault in __pte_offset_map_lock run #14: crashed: general protection fault in __pte_offset_map_lock run #15: OK run #16: OK run #17: crashed: general protection fault in __pte_offset_map_lock run #18: OK run #19: crashed: general protection fault in __pte_offset_map_lock representative crash: general protection fault in __pte_offset_map_lock, types: [UNKNOWN] check whether we can drop unnecessary instrumentation disabling configs for [KASAN LOCKDEP ATOMIC_SLEEP HANG LEAK UBSAN BUG], they are not needed testing commit f03359bca01bf4372cf2c118cd9a987a5951b1c8 gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: 5a48e1959169e778ac0349939f204e7a7c2dbe0072439fd52e8440c6b011698a all runs: crashed: BUG: unable to handle kernel NULL pointer dereference in __pte_offset_map_lock representative crash: BUG: unable to handle kernel NULL pointer dereference in __pte_offset_map_lock, types: [UNKNOWN] the bug reproduces without the instrumentation disabling configs for [ATOMIC_SLEEP HANG LEAK UBSAN BUG KASAN LOCKDEP], they are not needed kconfig minimization: base=4045 full=8007 leaves diff=2001 split chunks (needed=false): <2001> split chunk #0 of len 2001 into 5 parts testing without sub-chunk 1/5 disabling configs for [HANG LEAK UBSAN BUG KASAN LOCKDEP ATOMIC_SLEEP], they are not needed testing commit f03359bca01bf4372cf2c118cd9a987a5951b1c8 gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: 7ec5795dd1e8effa1c1d6ad3716fe4fa1ea54b428d1f205b57ee78cb3fcc4834 all runs: crashed: BUG: unable to handle kernel NULL pointer dereference in __pte_offset_map_lock representative crash: BUG: unable to handle kernel NULL pointer dereference in __pte_offset_map_lock, types: [UNKNOWN] the chunk can be dropped testing without sub-chunk 2/5 disabling configs for [UBSAN BUG KASAN LOCKDEP ATOMIC_SLEEP HANG LEAK], they are not needed testing commit f03359bca01bf4372cf2c118cd9a987a5951b1c8 gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: 16c82efbf4d36f7df3a4bcdc40564bebfd52945bc68f7f30675e752ef12ae0d5 all runs: crashed: BUG: unable to handle kernel NULL pointer dereference in __pte_offset_map_lock representative crash: BUG: unable to handle kernel NULL pointer dereference in __pte_offset_map_lock, types: [UNKNOWN] the chunk can be dropped testing without sub-chunk 3/5 disabling configs for [UBSAN BUG KASAN LOCKDEP ATOMIC_SLEEP HANG LEAK], they are not needed testing commit f03359bca01bf4372cf2c118cd9a987a5951b1c8 gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: 8a4c0de88e57dcd660ce2502502abf42fc4f3e15a05d96258ec0ae3d6f3b47f4 run #0: crashed: BUG: unable to handle kernel NULL pointer dereference in __pte_offset_map_lock run #1: crashed: BUG: unable to handle kernel NULL pointer dereference in __pte_offset_map_lock run #2: crashed: BUG: unable to handle kernel NULL pointer dereference in __pte_offset_map_lock run #3: crashed: BUG: unable to handle kernel NULL pointer dereference in __pte_offset_map_lock run #4: crashed: BUG: unable to handle kernel NULL pointer dereference in __pte_offset_map_lock run #5: crashed: BUG: unable to handle kernel NULL pointer dereference in __pte_offset_map_lock run #6: crashed: BUG: unable to handle kernel NULL pointer dereference in __pte_offset_map_lock run #7: crashed: BUG: unable to handle kernel NULL pointer dereference in __pte_offset_map_lock run #8: crashed: BUG: unable to handle kernel NULL pointer dereference in __pte_offset_map_lock run #9: OK representative crash: BUG: unable to handle kernel NULL pointer dereference in __pte_offset_map_lock, types: [UNKNOWN] the chunk can be dropped testing without sub-chunk 4/5 disabling configs for [ATOMIC_SLEEP HANG LEAK UBSAN BUG KASAN LOCKDEP], they are not needed testing commit f03359bca01bf4372cf2c118cd9a987a5951b1c8 gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: 3111afe567ec6141bb8a2a14e82948cc7da15e6c3a122f55705f01e345e1b79c all runs: OK false negative chance: 0.000 testing without sub-chunk 5/5 disabling configs for [HANG LEAK UBSAN BUG KASAN LOCKDEP ATOMIC_SLEEP], they are not needed testing commit f03359bca01bf4372cf2c118cd9a987a5951b1c8 gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: aa6fe543be7dbc60615f4da1cc17a527a34ffc1949559debefe03488592d0cfd all runs: crashed: BUG: unable to handle kernel NULL pointer dereference in __pte_offset_map_lock representative crash: BUG: unable to handle kernel NULL pointer dereference in __pte_offset_map_lock, types: [UNKNOWN] the chunk can be dropped minimized to 401 configs; suspects: [AF_RXRPC ARCH_ENABLE_MEMORY_HOTREMOVE ATM AX25 CFG80211 CMA DAX DLM DVB_CORE ENCRYPTED_KEYS EXTCON GENEVE GPIOLIB HAMRADIO HAVE_CLK HID_SENSOR_HUB HID_SMARTJOYPLUS HID_THRUSTMASTER IIO INFINIBAND INFINIBAND_ADDR_TRANS INFINIBAND_IPOIB INFINIBAND_USER_ACCESS INFINIBAND_VIRT_DMA INPUT_TABLET INPUT_TOUCHSCREEN IP_SCTP L2TP LIBNVDIMM MEDIA_COMMON_OPTIONS MEDIA_DIGITAL_TV_SUPPORT MEDIA_RADIO_SUPPORT MEDIA_SDR_SUPPORT MEDIA_SUPPORT MEDIA_USB_SUPPORT MEMORY_HOTPLUG MEMORY_HOTREMOVE MFD_DLN2 MFD_RETU MMC MTD MTD_UBI NETFILTER_CONNCOUNT NET_IPGRE NET_IPGRE_DEMUX NFS_V4_1 NILFS2_FS NLMON NLS_CODEPAGE_1250 NLS_CODEPAGE_1251 NLS_CODEPAGE_737 NLS_CODEPAGE_775 NLS_CODEPAGE_850 NLS_CODEPAGE_852 NLS_CODEPAGE_855 NLS_CODEPAGE_857 NLS_CODEPAGE_860 NLS_CODEPAGE_861 NLS_CODEPAGE_862 NLS_CODEPAGE_863 NLS_CODEPAGE_864 NLS_CODEPAGE_865 NLS_CODEPAGE_866 NLS_CODEPAGE_869 NLS_CODEPAGE_874 NLS_CODEPAGE_932 NLS_CODEPAGE_936 NLS_CODEPAGE_949 NLS_CODEPAGE_950 NLS_ISO8859_13 NLS_ISO8859_14 NLS_ISO8859_15 NLS_ISO8859_2 NLS_ISO8859_3 NLS_ISO8859_4 NLS_ISO8859_5 NLS_ISO8859_6 NLS_ISO8859_7 NLS_ISO8859_8 NLS_ISO8859_9 NLS_KOI8_R NLS_KOI8_U NLS_MAC_CELTIC NLS_MAC_CENTEURO NLS_MAC_CROATIAN NLS_MAC_CYRILLIC NLS_MAC_GAELIC NLS_MAC_GREEK NLS_MAC_ICELAND NLS_MAC_INUIT NLS_MAC_ROMAN NLS_MAC_ROMANIAN NLS_MAC_TURKISH NLS_UCS2_UTILS NOP_USB_XCEIV NOZOMI NTFS3_FS NTFS3_FS_POSIX_ACL NTFS3_LZX_XPRESS NULL_TTY NUMA_BALANCING NUMA_BALANCING_DEFAULT_ENABLED NUMA_EMU NUMA_KEEP_MEMINFO NVDIMM_DAX NVDIMM_KEYS NVDIMM_PFN NVME_CORE NVME_FABRICS NVME_FC NVME_MULTIPATH NVME_RDMA NVME_TARGET NVME_TARGET_FC NVME_TARGET_FCLOOP NVME_TARGET_LOOP NVME_TARGET_RDMA NVME_TARGET_TCP NVME_TCP N_GSM N_HDLC OCFS2_DEBUG_FS OCFS2_FS OCFS2_FS_O2CB OCFS2_FS_STATS OCFS2_FS_USERSPACE_CLUSTER OF_GPIO OF_PMEM OMFS_FS OPENVSWITCH OPENVSWITCH_GENEVE OPENVSWITCH_GRE OPENVSWITCH_VXLAN ORANGEFS_FS OSF_PARTITION OVERLAY_FS OVERLAY_FS_DEBUG OVERLAY_FS_INDEX OVERLAY_FS_REDIRECT_ALWAYS_FOLLOW OVERLAY_FS_REDIRECT_DIR PACKET_DIAG PAGE_IDLE_FLAG PAGE_POOL PAGE_REPORTING PAHOLE_HAS_BTF_TAG PAHOLE_HAS_LANG_EXCLUDE PAHOLE_HAS_SPLIT_BTF PARPORT PARPORT_NOT_PC PARTITION_ADVANCED PCCARD PCCARD_NONSTATIC PCIEAER PCI_ENDPOINT PCI_IOV PCMCIA PCMCIA_LOAD_CIS PERCPU_STATS PERSISTENT_KEYRINGS PHONET PHYLINK PHY_CPCAP_USB PHY_QCOM_USB_HS PHY_QCOM_USB_HSIC PHY_SAMSUNG_USB2 PHY_TUSB1210 PKCS7_TEST_KEY PKCS8_PRIVATE_KEY_PARSER PM_CLK PNFS_BLOCK PNFS_FILE_LAYOUT PNFS_FLEXFILE_LAYOUT PPP PPPOATM PPPOE PPPOE_HASH_BITS_4 PPPOL2TP PPP_ASYNC PPP_BSDCOMP PPP_DEFLATE PPP_FILTER PPP_MPPE PPP_MULTILINK PPP_SYNC_TTY PPTP PREEMPT PREEMPT_NOTIFIERS PROC_CHILDREN PSI PSTORE PSTORE_COMPRESS QCOM_QMI_HELPERS QNX4FS_FS QNX6FS_FS QRTR QRTR_TUN R8712U RADIO_ADAPTERS RADIO_SHARK RADIO_SHARK2 RADIO_TEA575X RAID6_PQ RAID_ATTRS RC_ATI_REMOTE RC_CORE RC_DEVICES RDMA_RXE RDMA_SIW RDS RDS_RDMA RDS_TCP READ_ONLY_THP_FOR_FS REALTEK_AUTOPM REED_SOLOMON REED_SOLOMON_DEC8 REGMAP REGMAP_I2C REGMAP_IRQ REGMAP_MMIO REGMAP_SPI REGULATOR REGULATOR_TWL4030 REISERFS_FS REISERFS_FS_POSIX_ACL REISERFS_FS_SECURITY REISERFS_FS_XATTR REISERFS_PROC_INFO RESET_CONTROLLER RFKILL RFKILL_INPUT RFKILL_LEDS RMI4_2D_SENSOR RMI4_CORE RMI4_F03 RMI4_F03_SERIO RMI4_F11 RMI4_F12 RMI4_F30 ROMFS_BACKED_BY_BOTH ROMFS_FS ROMFS_ON_BLOCK ROMFS_ON_MTD ROSE RTC_DRV_HID_SENSOR_TIME RXKAD SCHED_CORE SCREEN_INFO SCSI_FC_ATTRS SCSI_HPSA SCSI_ISCSI_ATTRS SCSI_LOGGING SCSI_NETLINK SCSI_SAS_ATA SCSI_SAS_ATTRS SCSI_SAS_LIBSAS SCSI_SCAN_ASYNC SCSI_SRP_ATTRS SCTP_COOKIE_HMAC_MD5 SCTP_COOKIE_HMAC_SHA1 SCTP_DEFAULT_COOKIE_HMAC_MD5 SECONDARY_TRUSTED_KEYRING SECURITY_INFINIBAND SECURITY_NETWORK_XFRM SERIAL_DEV_BUS SERIAL_DEV_CTRL_TTYPORT SERIAL_MCTRL_GPIO SGI_PARTITION SIGNATURE SIGNED_PE_FILE_VERIFICATION SLHC SLIP SLIP_COMPRESSED SLIP_MODE_SLIP6 SLIP_SMART SMARTJOYPLUS_FF SMBFS SMC SMC_DIAG SMSC_PHY SMS_SIANO_MDTV SMS_SIANO_RC SMS_USB_DRV SND SND_ALOOP SND_BCD2000 SND_CTL_FAST_LOOKUP SND_CTL_LED SND_DEBUG SND_DMA_SGBUF SND_DRIVERS SND_DUMMY SND_DYNAMIC_MINORS SND_HDA SND_HDA_CODEC_ANALOG SND_HDA_CODEC_CA0110 SND_HDA_CODEC_CA0132 SND_HDA_CODEC_CIRRUS SND_HDA_CODEC_CMEDIA SND_HDA_CODEC_CONEXANT SND_HDA_CODEC_HDMI SND_HDA_CODEC_REALTEK SND_HDA_CODEC_SI3054 SND_HDA_CODEC_SIGMATEL SND_HDA_CODEC_VIA SND_HDA_COMPONENT SND_HDA_CORE SND_HDA_GENERIC SND_HDA_GENERIC_LEDS SND_HDA_HWDEP SND_HDA_I915 SND_HDA_INPUT_BEEP SND_HDA_INTEL SND_HDA_PATCH_LOADER SND_HDA_RECONFIG SND_HDA_SCODEC_COMPONENT SND_HRTIMER SND_HWDEP SND_INTEL_DSP_CONFIG SND_INTEL_NHLT SND_INTEL_SOUNDWIRE_ACPI SND_JACK SND_JACK_INPUT_DEV SND_MIXER_OSS SND_OSSEMUL SND_PCI SND_PCM SND_PCMCIA SND_PCM_OSS SND_PCM_OSS_PLUGINS SND_PCM_TIMER SND_PCM_XRUN_DEBUG SND_PROC_FS SND_RAWMIDI SND_SEQUENCER SND_SEQUENCER_OSS SND_SEQ_DEVICE SND_SEQ_DUMMY SND_SEQ_HRTIMER_DEFAULT SND_SEQ_MIDI SND_SEQ_MIDI_EVENT SND_SEQ_VIRMIDI SND_SOC SND_SOC_I2C_AND_SPI SND_SUPPORT_OLD_API SND_TIMER SND_USB SND_USB_6FIRE SND_USB_AUDIO SND_USB_AUDIO_USE_MEDIA_CONTROLLER SND_USB_CAIAQ SND_USB_CAIAQ_INPUT SND_USB_HIFACE SND_USB_LINE6 SND_USB_POD SND_USB_PODHD SND_USB_TONEPORT SND_USB_UA101 SND_USB_US122L SND_USB_USX2Y SND_USB_VARIAX SND_VERBOSE_PROCFS SND_VIRMIDI SND_VIRTIO SND_VMASTER SND_X86 SOCK_VALIDATE_XMIT SOLARIS_X86_PARTITION SONY_FF SOUND SOUNDWIRE SOUND_OSS_CORE SOUND_OSS_CORE_PRECLAIM SPI SPI_DLN2 SPI_DYNAMIC SPI_MASTER SQUASHFS SQUASHFS_4K_DEVBLK_SIZE SQUASHFS_COMPILE_DECOMP_SINGLE SQUASHFS_DECOMP_SINGLE SQUASHFS_FILE_DIRECT SQUASHFS_LZ4 SQUASHFS_LZO SQUASHFS_XATTR SQUASHFS_XZ SQUASHFS_ZLIB SQUASHFS_ZSTD SSB SSB_PCIHOST_POSSIBLE SSB_PCMCIAHOST_POSSIBLE SSB_SDIOHOST_POSSIBLE STAGING STP STREAM_PARSER SUNRPC_BACKCHANNEL SUN_PARTITION SW_SYNC SYSFB SYSV68_PARTITION SYSV_FS TABLET_USB_ACECAD TABLET_USB_AIPTEK TABLET_USB_HANWANG TABLET_USB_KBTAB TABLET_USB_PEGASUS TAHVO_USB TAHVO_USB_HOST_BY_DEFAULT TASKS_TRACE_RCU TCG_CRB TCG_TIS TCG_TIS_CORE TCG_TPM TCP_CONG_BBR TCP_CONG_BIC TCP_CONG_CDG TCP_CONG_DCTCP TCP_CONG_HSTCP TCP_CONG_HTCP TCP_CONG_HYBLA TCP_CONG_ILLINOIS TCP_CONG_LP TCP_CONG_NV TCP_CONG_SCALABLE TCP_CONG_VEGAS TCP_CONG_VENO TCP_CONG_WESTWOOD TCP_CONG_YEAH TEXTSEARCH TEXTSEARCH_BM TEXTSEARCH_FSM TEXTSEARCH_KMP THERMAL_NETLINK THP_SWAP THRUSTMASTER_FF TIPC TIPC_CRYPTO TIPC_DIAG TIPC_MEDIA_IB TIPC_MEDIA_UDP TLS TLS_TOE TMPFS_QUOTA TOUCHSCREEN_SUR40 TOUCHSCREEN_USB_3M TOUCHSCREEN_USB_COMPOSITE TOUCHSCREEN_USB_DMC_TSC10 TOUCHSCREEN_USB_E2I TOUCHSCREEN_USB_EASYTOUCH TOUCHSCREEN_USB_EGALAX TOUCHSCREEN_USB_ELO TOUCHSCREEN_USB_ETT_TC45USB TOUCHSCREEN_USB_ETURBO TOUCHSCREEN_USB_GENERAL_TOUCH TOUCHSCREEN_USB_GOTOP TOUCHSCREEN_USB_GUNZE TOUCHSCREEN_USB_IDEALTEK TOUCHSCREEN_USB_IRTOUCH TOUCHSCREEN_USB_ITM TOUCHSCREEN_USB_JASTEC TOUCHSCREEN_USB_NEXIO TOUCHSCREEN_USB_PANJIT TOUCHSCREEN_USB_ZYTRONIC TRANSPARENT_HUGEPAGE TRANSPARENT_HUGEPAGE_MADVISE TTPCI_EEPROM TTY_PRINTK TUN_VNET_CROSS_LE TWL4030_CORE TYPEC TYPEC_FUSB302 TYPEC_TCPCI TYPEC_TCPM TYPEC_TPS6598X TYPEC_UCSI UBIFS_ATIME_SUPPORT UBIFS_FS UBIFS_FS_ADVANCED_COMPR UBIFS_FS_LZO UBIFS_FS_SECURITY UBIFS_FS_XATTR UBIFS_FS_ZLIB UBIFS_FS_ZSTD UCSI_ACPI UDF_FS UDMABUF UFS_FS UFS_FS_WRITE UHID ULTRIX_PARTITION UNICODE UNIXWARE_DISKLABEL UNIX_DIAG USB4 USB4_NET USBIP_CORE USBIP_HOST USBIP_VHCI_HCD USBIP_VUDC USBPCWATCHDOG USB_ACM USB_ADUTUX USB_AIRSPY USB_ALI_M5632 USB_AN2720 USB_APPLEDISPLAY USB_ARMLINUX USB_BDC_UDC USB_BELKIN USB_C67X00_HCD USB_CATC USB_CDC_PHONET USB_CHAOSKEY USB_CHIPIDEA USB_CHIPIDEA_HOST USB_CHIPIDEA_PCI USB_CHIPIDEA_UDC USB_CONFIGFS USB_CONFIGFS_ACM USB_CONFIGFS_ECM USB_CONFIGFS_ECM_SUBSET USB_CONFIGFS_EEM USB_CONFIGFS_F_FS USB_CONFIGFS_F_HID USB_DWC2 USB_GADGET USB_MUSB_HDRC USB_NET_CDC_SUBSET USB_ROLE_SWITCH USB_STORAGE_REALTEK USB_ULPI_BUS USB_USBNET VIDEO_DEV VXLAN WIRELESS WLAN ZONE_DEVICE] disabling configs for [LEAK UBSAN BUG KASAN LOCKDEP ATOMIC_SLEEP HANG], they are not needed testing current HEAD 619f0b6fad524f08d493a98d55bac9ab8895e3a6 testing commit 619f0b6fad524f08d493a98d55bac9ab8895e3a6 gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: 0a8677555f5005884af892532e952f4fd520560ea9f3de14ecfd01755d6b4dd2 all runs: OK false negative chance: 0.000 # git bisect start 619f0b6fad524f08d493a98d55bac9ab8895e3a6 f03359bca01bf4372cf2c118cd9a987a5951b1c8 Bisecting: 29323 revisions left to test after this (roughly 15 steps) [003729a1e5c4ddaebb228a429e8cc5b90ddbab6e] Merge tag 'imx-dt64-6.12' of https://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into soc/dt determine whether the revision contains the guilty commit revision f03359bca01bf4372cf2c118cd9a987a5951b1c8 crashed and is reachable testing commit 003729a1e5c4ddaebb228a429e8cc5b90ddbab6e gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: 0bc0c79239c70aaf6f43211bb07cd443176b4ee474352d5b7fb7ee8014b85b3b all runs: crashed: BUG: unable to handle kernel NULL pointer dereference in __pte_offset_map_lock representative crash: BUG: unable to handle kernel NULL pointer dereference in __pte_offset_map_lock, types: [UNKNOWN] # git bisect good 003729a1e5c4ddaebb228a429e8cc5b90ddbab6e Bisecting: 14662 revisions left to test after this (roughly 14 steps) [269ce3bd62e8ad83dadc80a2f755a799697ca4a3] Merge tag 'drm-fixes-2024-11-02' of https://gitlab.freedesktop.org/drm/kernel determine whether the revision contains the guilty commit revision f03359bca01bf4372cf2c118cd9a987a5951b1c8 crashed and is reachable testing commit 269ce3bd62e8ad83dadc80a2f755a799697ca4a3 gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: c3fbcb3e87434f386b8e79434b930f920d250f51c8d8b99ff5a8a815129830b1 all runs: OK false negative chance: 0.000 # git bisect bad 269ce3bd62e8ad83dadc80a2f755a799697ca4a3 Bisecting: 6809 revisions left to test after this (roughly 13 steps) [de848da12f752170c2ebe114804a985314fd5a6a] Merge tag 'drm-next-2024-09-19' of https://gitlab.freedesktop.org/drm/kernel determine whether the revision contains the guilty commit revision 003729a1e5c4ddaebb228a429e8cc5b90ddbab6e crashed and is reachable testing commit de848da12f752170c2ebe114804a985314fd5a6a gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: bbd39bc899d5e47f67454c313dd23aed98556fdbf95e6f1e8d49f7e429746e0a all runs: crashed: BUG: unable to handle kernel NULL pointer dereference in __pte_offset_map_lock representative crash: BUG: unable to handle kernel NULL pointer dereference in __pte_offset_map_lock, types: [UNKNOWN] # git bisect good de848da12f752170c2ebe114804a985314fd5a6a Bisecting: 3397 revisions left to test after this (roughly 12 steps) [684a64bf32b6e488004e0ad7f0d7e922798f65b6] Merge tag 'nfs-for-6.12-1' of git://git.linux-nfs.org/projects/anna/linux-nfs determine whether the revision contains the guilty commit revision f03359bca01bf4372cf2c118cd9a987a5951b1c8 crashed and is reachable testing commit 684a64bf32b6e488004e0ad7f0d7e922798f65b6 gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: a3010174b751fa624a16f5821db66691525b93699e9a7c71a888ea38514a14bb all runs: crashed: BUG: unable to handle kernel NULL pointer dereference in __pte_offset_map_lock representative crash: BUG: unable to handle kernel NULL pointer dereference in __pte_offset_map_lock, types: [UNKNOWN] # git bisect good 684a64bf32b6e488004e0ad7f0d7e922798f65b6 Bisecting: 1702 revisions left to test after this (roughly 11 steps) [6cca11958870b9b1d64933ffe1a4c11b0e6e6bbb] Merge tag 'pull-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs determine whether the revision contains the guilty commit revision f03359bca01bf4372cf2c118cd9a987a5951b1c8 crashed and is reachable testing commit 6cca11958870b9b1d64933ffe1a4c11b0e6e6bbb gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: cb95def8e06a792e8c9180be1ac05c3fbe034a82bd3a7191601a632236a677d9 all runs: crashed: BUG: unable to handle kernel NULL pointer dereference in __pte_offset_map_lock representative crash: BUG: unable to handle kernel NULL pointer dereference in __pte_offset_map_lock, types: [UNKNOWN] # git bisect good 6cca11958870b9b1d64933ffe1a4c11b0e6e6bbb Bisecting: 830 revisions left to test after this (roughly 10 steps) [5d97dde4d5f751858390b557729a1a12210024c1] Merge tag 'drm-fixes-2024-10-18' of https://gitlab.freedesktop.org/drm/kernel determine whether the revision contains the guilty commit revision f03359bca01bf4372cf2c118cd9a987a5951b1c8 crashed and is reachable testing commit 5d97dde4d5f751858390b557729a1a12210024c1 gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: dbb3d71e4f36bb712ca73f3aabe1392e66f9f250a61d4384586f79ed79c5bae2 all runs: OK false negative chance: 0.000 # git bisect bad 5d97dde4d5f751858390b557729a1a12210024c1 Bisecting: 411 revisions left to test after this (roughly 9 steps) [1d227fcc72223cbdd34d0ce13541cbaab5e0d72f] Merge tag 'net-6.12-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net determine whether the revision contains the guilty commit revision f03359bca01bf4372cf2c118cd9a987a5951b1c8 crashed and is reachable testing commit 1d227fcc72223cbdd34d0ce13541cbaab5e0d72f gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: a3538037a15ed31e3315e21c64e852d51b195e6bdbc125111cb920b5ce3bf77c all runs: crashed: BUG: unable to handle kernel NULL pointer dereference in __pte_offset_map_lock representative crash: BUG: unable to handle kernel NULL pointer dereference in __pte_offset_map_lock, types: [UNKNOWN] # git bisect good 1d227fcc72223cbdd34d0ce13541cbaab5e0d72f Bisecting: 205 revisions left to test after this (roughly 8 steps) [c964ced7726294d40913f2127c3f185a92cb4a41] Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma determine whether the revision contains the guilty commit revision 6cca11958870b9b1d64933ffe1a4c11b0e6e6bbb crashed and is reachable testing commit c964ced7726294d40913f2127c3f185a92cb4a41 gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: 2098de452514c6a7ae61bcc6f773d3bcc4b340f24cb27b83a603fd186b31c751 all runs: crashed: BUG: unable to handle kernel NULL pointer dereference in __pte_offset_map_lock representative crash: BUG: unable to handle kernel NULL pointer dereference in __pte_offset_map_lock, types: [UNKNOWN] # git bisect good c964ced7726294d40913f2127c3f185a92cb4a41 Bisecting: 104 revisions left to test after this (roughly 7 steps) [d4b82e5808241239cb3ae2bff5a6c6767ea976cb] Merge tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux determine whether the revision contains the guilty commit revision f03359bca01bf4372cf2c118cd9a987a5951b1c8 crashed and is reachable testing commit d4b82e5808241239cb3ae2bff5a6c6767ea976cb gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: 181b20ca1560b4932aa3243cbd6a2fd32a78f724a7345c04a97606f28b49d30e all runs: crashed: BUG: unable to handle kernel NULL pointer dereference in __pte_offset_map_lock representative crash: BUG: unable to handle kernel NULL pointer dereference in __pte_offset_map_lock, types: [UNKNOWN] # git bisect good d4b82e5808241239cb3ae2bff5a6c6767ea976cb Bisecting: 51 revisions left to test after this (roughly 6 steps) [75aa74d52f43e75d0beb20572f98529071b700e5] Merge tag 'iommu-fixes-v6.12-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/iommu/linux determine whether the revision contains the guilty commit revision f03359bca01bf4372cf2c118cd9a987a5951b1c8 crashed and is reachable testing commit 75aa74d52f43e75d0beb20572f98529071b700e5 gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: d984a93ad0c7a79427cf853e5d6163d9c255f98689ba88f3dbdebfc54ae7b6ac all runs: OK false negative chance: 0.000 # git bisect bad 75aa74d52f43e75d0beb20572f98529071b700e5 Bisecting: 26 revisions left to test after this (roughly 5 steps) [b130ba4a6259f6b64d8af15e9e7ab1e912bcb7ad] mm/mglru: only clear kswapd_failures if reclaimable determine whether the revision contains the guilty commit revision 684a64bf32b6e488004e0ad7f0d7e922798f65b6 crashed and is reachable testing commit b130ba4a6259f6b64d8af15e9e7ab1e912bcb7ad gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: 086345ae24ba7801ea35a5fd95ac7a7152e2b201826b55c880110470a1602e0b all runs: OK false negative chance: 0.000 # git bisect bad b130ba4a6259f6b64d8af15e9e7ab1e912bcb7ad Bisecting: 12 revisions left to test after this (roughly 4 steps) [2d6a1c835685de3b0c8e8dc871f60f4ef92ab01a] mm/damon/tests/sysfs-kunit.h: fix memory leak in damon_sysfs_test_add_targets() determine whether the revision contains the guilty commit revision de848da12f752170c2ebe114804a985314fd5a6a crashed and is reachable testing commit 2d6a1c835685de3b0c8e8dc871f60f4ef92ab01a gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: 3e30e7f7e2aaf216eda3323ab2c0f1231a4056dd4d4b7c2ff9fde777c9fd61bd all runs: OK false negative chance: 0.000 # git bisect bad 2d6a1c835685de3b0c8e8dc871f60f4ef92ab01a Bisecting: 6 revisions left to test after this (roughly 3 steps) [8f3ce3d996bf1e2f8474ec3ddabdb8765c19e6ea] mm: percpu: increase PERCPU_DYNAMIC_SIZE_SHIFT on certain builds. determine whether the revision contains the guilty commit revision 003729a1e5c4ddaebb228a429e8cc5b90ddbab6e crashed and is reachable testing commit 8f3ce3d996bf1e2f8474ec3ddabdb8765c19e6ea gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: 16d21a8fe46af365fc46602d905332a1c760925fec1b8131758194261684e039 all runs: crashed: BUG: unable to handle kernel NULL pointer dereference in __pte_offset_map_lock representative crash: BUG: unable to handle kernel NULL pointer dereference in __pte_offset_map_lock, types: [UNKNOWN] # git bisect good 8f3ce3d996bf1e2f8474ec3ddabdb8765c19e6ea Bisecting: 3 revisions left to test after this (roughly 2 steps) [5778ace04e6f07043f1564bc9b47b1098608cfdd] fs/proc: fix build with GCC 15 due to -Werror=unterminated-string-initialization determine whether the revision contains the guilty commit revision 8f3ce3d996bf1e2f8474ec3ddabdb8765c19e6ea crashed and is reachable testing commit 5778ace04e6f07043f1564bc9b47b1098608cfdd gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: 937dae55398a846eb1ae909d17ad35744df74727f9d3adb591a920200b002b83 all runs: OK false negative chance: 0.000 # git bisect bad 5778ace04e6f07043f1564bc9b47b1098608cfdd Bisecting: 0 revisions left to test after this (roughly 1 step) [dc783ba4b9df3fb3e76e968b2cbeb9960069263c] lib: alloc_tag_module_unload must wait for pending kfree_rcu calls determine whether the revision contains the guilty commit revision de848da12f752170c2ebe114804a985314fd5a6a crashed and is reachable testing commit dc783ba4b9df3fb3e76e968b2cbeb9960069263c gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: 0c1171ae97234a16f6011a58070e59aa2bf08d55f086310bfca8101c145ef6eb all runs: OK false negative chance: 0.000 # git bisect bad dc783ba4b9df3fb3e76e968b2cbeb9960069263c Bisecting: 0 revisions left to test after this (roughly 0 steps) [6fa1066fc5d00cb9f1b0e83b7ff6ef98d26ba2aa] mm/mremap: fix move_normal_pmd/retract_page_tables race determine whether the revision contains the guilty commit revision 8f3ce3d996bf1e2f8474ec3ddabdb8765c19e6ea crashed and is reachable testing commit 6fa1066fc5d00cb9f1b0e83b7ff6ef98d26ba2aa gcc compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40 kernel signature: 68772184bd49ea4dd9cd8cd3320abee676b1301982ad83358d9413d26da366ee all runs: OK false negative chance: 0.000 # git bisect bad 6fa1066fc5d00cb9f1b0e83b7ff6ef98d26ba2aa 6fa1066fc5d00cb9f1b0e83b7ff6ef98d26ba2aa is the first bad commit commit 6fa1066fc5d00cb9f1b0e83b7ff6ef98d26ba2aa Author: Jann Horn Date: Mon Oct 7 23:42:04 2024 +0200 mm/mremap: fix move_normal_pmd/retract_page_tables race In mremap(), move_page_tables() looks at the type of the PMD entry and the specified address range to figure out by which method the next chunk of page table entries should be moved. At that point, the mmap_lock is held in write mode, but no rmap locks are held yet. For PMD entries that point to page tables and are fully covered by the source address range, move_pgt_entry(NORMAL_PMD, ...) is called, which first takes rmap locks, then does move_normal_pmd(). move_normal_pmd() takes the necessary page table locks at source and destination, then moves an entire page table from the source to the destination. The problem is: The rmap locks, which protect against concurrent page table removal by retract_page_tables() in the THP code, are only taken after the PMD entry has been read and it has been decided how to move it. So we can race as follows (with two processes that have mappings of the same tmpfs file that is stored on a tmpfs mount with huge=advise); note that process A accesses page tables through the MM while process B does it through the file rmap: process A process B ========= ========= mremap mremap_to move_vma move_page_tables get_old_pmd alloc_new_pmd *** PREEMPT *** madvise(MADV_COLLAPSE) do_madvise madvise_walk_vmas madvise_vma_behavior madvise_collapse hpage_collapse_scan_file collapse_file retract_page_tables i_mmap_lock_read(mapping) pmdp_collapse_flush i_mmap_unlock_read(mapping) move_pgt_entry(NORMAL_PMD, ...) take_rmap_locks move_normal_pmd drop_rmap_locks When this happens, move_normal_pmd() can end up creating bogus PMD entries in the line `pmd_populate(mm, new_pmd, pmd_pgtable(pmd))`. The effect depends on arch-specific and machine-specific details; on x86, you can end up with physical page 0 mapped as a page table, which is likely exploitable for user->kernel privilege escalation. Fix the race by letting process B recheck that the PMD still points to a page table after the rmap locks have been taken. Otherwise, we bail and let the caller fall back to the PTE-level copying path, which will then bail immediately at the pmd_none() check. Bug reachability: Reaching this bug requires that you can create shmem/file THP mappings - anonymous THP uses different code that doesn't zap stuff under rmap locks. File THP is gated on an experimental config flag (CONFIG_READ_ONLY_THP_FOR_FS), so on normal distro kernels you need shmem THP to hit this bug. As far as I know, getting shmem THP normally requires that you can mount your own tmpfs with the right mount flags, which would require creating your own user+mount namespace; though I don't know if some distros maybe enable shmem THP by default or something like that. Bug impact: This issue can likely be used for user->kernel privilege escalation when it is reachable. Link: https://lkml.kernel.org/r/20241007-move_normal_pmd-vs-collapse-fix-2-v1-1-5ead9631f2ea@google.com Fixes: 1d65b771bc08 ("mm/khugepaged: retract_page_tables() without mmap or vma lock") Signed-off-by: Jann Horn Signed-off-by: David Hildenbrand Co-developed-by: David Hildenbrand Closes: https://project-zero.issues.chromium.org/371047675 Acked-by: Qi Zheng Reviewed-by: Lorenzo Stoakes Cc: Hugh Dickins Cc: Joel Fernandes Cc: Matthew Wilcox Cc: Signed-off-by: Andrew Morton mm/mremap.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) accumulated error probability: 0.00 culprit signature: 68772184bd49ea4dd9cd8cd3320abee676b1301982ad83358d9413d26da366ee parent signature: 16d21a8fe46af365fc46602d905332a1c760925fec1b8131758194261684e039 revisions tested: 24, total time: 6h51m12.10380887s (build: 3h26m18.444225773s, test: 3h0m2.568166886s) first good commit: 6fa1066fc5d00cb9f1b0e83b7ff6ef98d26ba2aa mm/mremap: fix move_normal_pmd/retract_page_tables race recipients (to): ["akpm@linux-foundation.org" "david@redhat.com" "jannh@google.com" "lorenzo.stoakes@oracle.com" "zhengqi.arch@bytedance.com"] recipients (cc): []