mirror-linux/drivers
Peter Xu 5b198b4759 mm/dax: dump start address in fault handler
Patch series "mm/mprotect: Fix dax puds", v5.

Dax supports pud pages for a while, but mprotect on puds was missing since
the start.  This series tries to fix that by providing pud handling in
mprotect().  The goal is to add more types of pud mappings like hugetlb or
pfnmaps.  This series paves way for it by fixing known pud entries.

Considering nobody reported this until when I looked at those other types
of pud mappings, I am thinking maybe it doesn't need to be a fix for
stable and this may not need to be backported.  I would guess whoever
cares about mprotect() won't care 1G dax puds yet, vice versa.  I hope
fixing that in new kernels would be fine, but I'm open to suggestions.

There're a few small things changed to teach mprotect work on PUDs.  E.g. 
it will need to start with dropping NUMA_HUGE_PTE_UPDATES which may stop
making sense when there can be more than one type of huge pte.  OTOH,
we'll also need to push the mmu notifiers from pmd to pud layers, which
might need some attention but so far I think it's safe.  For such details,
please refer to each patch's commit message.

The mprotect() pud process should be straightforward, as I kept it as
simple as possible.  There's no NUMA handled as dax simply doesn't support
that.  There's also no userfault involvements as file memory (even if work
with userfault-wp async mode) will need to split a pud, so pud entry
doesn't need to yet know userfault's existance (but hugetlb entries will;
that's also for later).


This patch (of 7):

Currently the dax fault handler dumps the vma range when dynamic debugging
enabled.  That's mostly not useful.  Dump the (aligned) address instead
with the order info.

Link: https://lkml.kernel.org/r/20240812181225.1360970-1-peterx@redhat.com
Link: https://lkml.kernel.org/r/20240812181225.1360970-2-peterx@redhat.com
Signed-off-by: Peter Xu <peterx@redhat.com>
Acked-by: David Hildenbrand <david@redhat.com>
Cc: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Christophe Leroy <christophe.leroy@csgroup.eu>
Cc: Dan Williams <dan.j.williams@intel.com>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: Dave Jiang <dave.jiang@intel.com>
Cc: David Rientjes <rientjes@google.com>
Cc: "Edgecombe, Rick P" <rick.p.edgecombe@intel.com>
Cc: Hugh Dickins <hughd@google.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Kirill A. Shutemov <kirill@shutemov.name>
Cc: Matthew Wilcox <willy@infradead.org>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Nicholas Piggin <npiggin@gmail.com>
Cc: Oscar Salvador <osalvador@suse.de>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Rik van Riel <riel@surriel.com>
Cc: Sean Christopherson <seanjc@google.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Vlastimil Babka <vbabka@suse.cz>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2024-09-01 20:26:08 -07:00
..
accel
accessibility treewide: remove unnecessary <linux/version.h> inclusion 2024-08-12 18:36:44 +09:00
acpi ACPI: video: Add backlight=native quirk for Dell OptiPlex 7760 AIO 2024-08-19 15:58:52 +02:00
amba
android
ata ata: pata_macio: Use WARN instead of BUG 2024-08-21 14:33:23 +09:00
atm atm: idt77252: prevent use after free in dequeue_rx() 2024-08-12 10:41:44 +01:00
auxdisplay
base
bcma
block
bluetooth Bluetooth: btnxpuart: Fix random crash seen while removing driver 2024-08-23 15:56:04 -04:00
bus
cache
cdrom
cdx
char tpm: ibmvtpm: Call tpm2_sessions_init() to initialize session support 2024-08-27 21:11:44 +03:00
clk
clocksource
comedi
connector
counter
cpufreq cpufreq/amd-pstate-ut: Don't check for highest perf matching on prefcore 2024-08-23 11:07:58 -05:00
cpuidle
crypto
cxl cxl/pci: Get AER capability address from RCRB only for RCH dport 2024-08-09 15:13:07 -07:00
dax mm/dax: dump start address in fault handler 2024-09-01 20:26:08 -07:00
dca
devfreq
dio
dma dmaengine: dw-edma: Do not enable watermark interrupts for HDMA 2024-08-28 18:40:17 +05:30
dma-buf
dpll
edac
eisa
extcon
firewire
firmware mm: rework accept memory helpers 2024-09-01 20:26:07 -07:00
fpga
fsi
gnss
gpio gpio: mlxbf3: Support shutdown() function 2024-08-10 21:35:16 +02:00
gpu mm: kvmalloc: align kvrealloc() with krealloc() 2024-09-01 20:25:44 -07:00
greybus
hid hid-for-linus-2024081901 2024-08-19 11:02:13 -07:00
hsi
hte
hv
hwmon hwmon: (pt5161l) Fix invalid temperature reading 2024-08-26 20:58:05 -07:00
hwspinlock
hwtracing
i2c i2c: tegra: Do not mark ACPI devices as irq safe 2024-08-15 00:22:28 +02:00
i3c
idle
iio
infiniband
input Input updates for v6.11-rc5 2024-08-31 15:32:38 +12:00
interconnect
iommu IOMMU Fixes for Linux v6.11-rc5 2024-08-31 06:11:34 +12:00
ipack
irqchip irqchip/riscv-aplic: Retrigger MSI interrupt on source configuration 2024-08-10 10:42:04 +02:00
isdn
leds
macintosh
mailbox
mcb
md block-6.11-20240824 2024-08-16 14:03:31 -07:00
media media fixes for v6.11-rc4 2024-08-15 10:23:19 -07:00
memory
memstick
message
mfd
misc Char/Misc fixes for 6.11-rc4 2024-08-18 10:16:34 -07:00
mmc mmc: mmc_test: Fix NULL dereference on allocation failure 2024-08-20 13:47:36 +02:00
most
mtd
mux
net Regressions: 2024-08-28 16:54:45 -07:00
nfc nfc: pn533: Add poll mod list filling check 2024-08-29 12:08:44 +02:00
ntb
nubus
nvdimm nvdimm/pmem: Set dax flag for all 'PFN_MAP' cases 2024-08-09 14:29:58 -05:00
nvme nvme: Remove unused field 2024-08-22 13:28:40 -07:00
nvmem
of A revert for a previous TTM commit causing stuttering, 3 fixes for 2024-08-30 11:28:11 +10:00
opp
parisc
parport
pci pci-v6.11-fixes-2 2024-08-31 14:54:11 +12:00
pcmcia
peci
perf
phy phy: xilinx: phy-zynqmp: Fix SGMII linkup failure on resume 2024-08-05 21:46:58 +05:30
pinctrl pinctrl: rockchip: correct RK3328 iomux width flag for GPIO2-B pins 2024-08-24 16:39:51 +02:00
platform platform-drivers-x86 for v6.11-5 2024-08-29 07:12:02 +12:00
pmdomain pmdomain: imx: wait SSAR when i.MX93 power domain on 2024-08-15 12:47:09 +02:00
pnp
power power sequencing fixes for v6.11-rc6 2024-09-01 09:07:44 +12:00
powercap
pps
ps3
ptp
pwm
rapidio
ras
regulator
remoteproc
reset
rpmsg
rtc
s390 s390 updates for 6.11-rc5 2024-08-25 12:05:23 +12:00
sbus
scsi SCSI fixes on 20240831 2024-09-01 07:00:38 +12:00
sh
siox
slimbus
soc Qualcomm driver fixes for v6.11 2024-08-28 20:27:39 +00:00
soundwire soundwire: stream: fix programming slave ports for non-continous port maps 2024-08-17 22:55:05 +05:30
spi spi: pxa2xx: Move PM runtime handling to the glue drivers 2024-08-22 13:34:06 +01:00
spmi
ssb
staging Kbuild fixes for v6.11 (2nd) 2024-08-23 07:43:15 +08:00
target
tc
tee
thermal thermal: of: Fix OF node leak in of_thermal_zone_find() error paths 2024-08-22 20:58:49 +02:00
thunderbolt thunderbolt: Mark XDomain as unplugged when router is removed 2024-08-06 08:01:10 +03:00
tty Revert "serial: 8250_omap: Set the console genpd always on if no console suspend" 2024-08-15 07:22:10 +02:00
ufs scsi: ufs: qcom: Add UFSHCD_QUIRK_BROKEN_LSDBS_CAP for SM8550 SoC 2024-08-16 21:09:17 -04:00
uio
usb USB fixes for 6.11-rc6 2024-09-01 07:06:28 +12:00
vdpa
vfio
vhost virtio: bugfix 2024-08-06 10:58:28 -07:00
video video/aperture: optionally match the device in sysfb_disable() 2024-08-26 19:14:48 -04:00
virt
virtio
w1
watchdog
xen
zorro
Kconfig
Makefile