linux-sg2042/drivers
Dan Williams fce86ff580 mm/huge_memory: fix vmf_insert_pfn_{pmd, pud}() crash, handle unaligned addresses
Starting with c6f3c5ee40 ("mm/huge_memory.c: fix modifying of page
protection by insert_pfn_pmd()") vmf_insert_pfn_pmd() internally calls
pmdp_set_access_flags().  That helper enforces a pmd aligned @address
argument via VM_BUG_ON() assertion.

Update the implementation to take a 'struct vm_fault' argument directly
and apply the address alignment fixup internally to fix crash signatures
like:

    kernel BUG at arch/x86/mm/pgtable.c:515!
    invalid opcode: 0000 [#1] SMP NOPTI
    CPU: 51 PID: 43713 Comm: java Tainted: G           OE     4.19.35 #1
    [..]
    RIP: 0010:pmdp_set_access_flags+0x48/0x50
    [..]
    Call Trace:
     vmf_insert_pfn_pmd+0x198/0x350
     dax_iomap_fault+0xe82/0x1190
     ext4_dax_huge_fault+0x103/0x1f0
     ? __switch_to_asm+0x40/0x70
     __handle_mm_fault+0x3f6/0x1370
     ? __switch_to_asm+0x34/0x70
     ? __switch_to_asm+0x40/0x70
     handle_mm_fault+0xda/0x200
     __do_page_fault+0x249/0x4f0
     do_page_fault+0x32/0x110
     ? page_fault+0x8/0x30
     page_fault+0x1e/0x30

Link: http://lkml.kernel.org/r/155741946350.372037.11148198430068238140.stgit@dwillia2-desk3.amr.corp.intel.com
Fixes: c6f3c5ee40 ("mm/huge_memory.c: fix modifying of page protection by insert_pfn_pmd()")
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Reported-by: Piotr Balcer <piotr.balcer@intel.com>
Tested-by: Yan Ma <yan.ma@intel.com>
Tested-by: Pankaj Gupta <pagupta@redhat.com>
Reviewed-by: Matthew Wilcox <willy@infradead.org>
Reviewed-by: Jan Kara <jack@suse.cz>
Reviewed-by: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
Cc: Chandan Rajendra <chandan@linux.ibm.com>
Cc: Souptick Joarder <jrdr.linux@gmail.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2019-05-14 09:47:44 -07:00
..
accessibility
acpi IOMMU Updates for Linux v5.2 2019-05-13 09:23:18 -04:00
amba
android Char/Misc patches for 5.2-rc1 - part 2 2019-05-07 13:39:22 -07:00
ata
atm
auxdisplay
base Driver core/kobject patches for 5.2-rc1 2019-05-07 13:01:40 -07:00
bcma
block Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2019-05-07 22:03:58 -07:00
bluetooth Bluetooth: hci_qca: Rename STATE_<flags> to QCA_<flags> 2019-05-05 19:34:00 +02:00
bus
cdrom
char Some minor cleanups for the IPMI driver. 2019-05-08 10:34:17 -07:00
clk Merge branch 'clk-parent-rewrite-1' into clk-next 2019-05-07 11:46:13 -07:00
clocksource Kbuild updates for v5.2 2019-05-08 12:25:12 -07:00
connector
counter
cpufreq Printk changes for 5.2 2019-05-07 09:18:12 -07:00
cpuidle
crypto Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 2019-05-06 20:15:06 -07:00
dax mm/huge_memory: fix vmf_insert_pfn_{pmd, pud}() crash, handle unaligned addresses 2019-05-14 09:47:44 -07:00
dca
devfreq
dio
dma dmaengine updates for v5.2-rc1 2019-05-09 08:51:45 -07:00
dma-buf drm pull request for 5.2 2019-05-08 21:35:19 -07:00
edac Merge branch 'ras-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2019-05-06 19:54:57 -07:00
eisa
extcon Char/Misc patches for 5.2-rc1 - part 2 2019-05-07 13:39:22 -07:00
firewire stream_open related patches for Linux 5.2 2019-05-07 12:15:13 -07:00
firmware Char/Misc patches for 5.2-rc1 - part 2 2019-05-07 13:39:22 -07:00
fmc
fpga
fsi
gnss Char/Misc patches for 5.2-rc1 - part 2 2019-05-07 13:39:22 -07:00
gpio This is the bulk of the GPIO changes for the v5.2 kernel cycle: 2019-05-11 10:54:43 -04:00
gpu drm pull request for 5.2 2019-05-08 21:35:19 -07:00
hid stream_open related patches for Linux 5.2 2019-05-07 12:15:13 -07:00
hsi
hv
hwmon stream_open related patches for Linux 5.2 2019-05-07 12:15:13 -07:00
hwspinlock
hwtracing Char/Misc patches for 5.2-rc1 - part 2 2019-05-07 13:39:22 -07:00
i2c Merge branch 'i2c/for-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux 2019-05-09 14:41:55 -07:00
i3c * Fix a shift wrap bug in the core 2019-05-07 08:50:40 -07:00
ide ide: officially deprecated the legacy IDE driver 2019-05-08 16:47:23 -07:00
idle
iio Staging / IIO driver patches for 5.2-rc1 2019-05-07 13:31:29 -07:00
infiniband 5.2 Merge Window pull request 2019-05-09 09:02:46 -07:00
input *: convert stream-like files from nonseekable_open -> stream_open 2019-05-06 17:46:41 +03:00
interconnect
iommu IOMMU Updates for Linux v5.2 2019-05-13 09:23:18 -04:00
ipack
irqchip Driver core/kobject patches for 5.2-rc1 2019-05-07 13:01:40 -07:00
isdn Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2019-05-07 22:03:58 -07:00
leds LED updates for 5.2-rc1. 2019-05-07 18:02:51 -07:00
lightnvm
macintosh
mailbox - New driver: Armada 37xx mailbox controller 2019-05-10 12:55:16 -04:00
mcb
md for-5.2/block-20190507 2019-05-07 18:14:36 -07:00
media drm pull request for 5.2 2019-05-08 21:35:19 -07:00
memory This pull request contains the following changes for MTD: 2019-05-12 17:57:52 -04:00
memstick MMC core: 2019-05-07 12:56:19 -07:00
message
mfd dmaengine updates for v5.2-rc1 2019-05-09 08:51:45 -07:00
misc powerpc updates for 5.2 2019-05-10 05:29:27 -07:00
mmc MMC core: 2019-05-07 12:56:19 -07:00
mtd This pull request contains the following changes for UBI/UBIFS 2019-05-12 18:16:31 -04:00
mux
net Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2019-05-09 17:00:51 -07:00
nfc Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2019-05-07 22:03:58 -07:00
ntb
nubus
nvdimm for-5.2/block-20190507 2019-05-07 18:14:36 -07:00
nvme SCSI misc on 20190507 2019-05-08 10:12:46 -07:00
nvmem
of Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2019-05-07 22:03:58 -07:00
opp
oprofile
parisc parisc: Skip registering LED when running in QEMU 2019-05-03 23:47:39 +02:00
parport DMA mapping updates for 5.2 2019-05-09 08:40:55 -07:00
pci stream_open related patches for Linux 5.2 2019-05-07 12:15:13 -07:00
pcmcia
perf
phy USB/PHY patches for 5.2-rc1 2019-05-08 10:03:52 -07:00
pinctrl This is the bulk of the GPIO changes for the v5.2 kernel cycle: 2019-05-11 10:54:43 -04:00
platform chrome platform changes for v5.2 2019-05-12 07:00:21 -04:00
pnp
power Power Supply Fixes for 5.1 cycle 2019-05-01 14:57:23 -07:00
powercap
pps
ps3
ptp ptp_qoriq: fix NULL access if ptp dt node missing 2019-05-09 09:19:26 -07:00
pwm pwm: Changes for v5.2-rc1 2019-05-10 12:57:15 -04:00
rapidio
ras
regulator Merge branch 'regulator-5.2' into regulator-next 2019-05-06 22:52:14 +09:00
remoteproc
reset
rpmsg
rtc chrome platform changes for v5.2 2019-05-12 07:00:21 -04:00
s390 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2019-05-07 22:03:58 -07:00
sbus docs: sparc: convert to ReST 2019-05-08 17:13:35 -07:00
scsi SCSI misc on 20190507 2019-05-08 10:12:46 -07:00
sfi
sh
siox
slimbus
sn
soc soc: sunxi: Fix missing dependency on REGMAP_MMIO 2019-04-30 17:55:08 +02:00
soundwire
spi dmaengine updates for v5.2-rc1 2019-05-09 08:51:45 -07:00
spmi
ssb Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2019-05-07 22:03:58 -07:00
staging drm pull request for 5.2 2019-05-08 21:35:19 -07:00
target SCSI misc on 20190507 2019-05-08 10:12:46 -07:00
tc
tee
thermal
thunderbolt Char/Misc patches for 5.2-rc1 - part 2 2019-05-07 13:39:22 -07:00
tty dmaengine updates for v5.2-rc1 2019-05-09 08:51:45 -07:00
uio
usb drm pull request for 5.2 2019-05-08 21:35:19 -07:00
uwb
vfio IOMMU Updates for Linux v5.2 2019-05-13 09:23:18 -04:00
vhost
video fbdev changes for v5.2: 2019-05-10 12:59:51 -04:00
virt
virtio
visorbus
vlynq
vme
w1 Char/Misc patches for 5.2-rc1 - part 2 2019-05-07 13:39:22 -07:00
watchdog linux-watchdog 5.2-rc1 tag 2019-05-13 09:20:42 -04:00
xen Merge branch 'stable/for-linus-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/swiotlb 2019-05-07 18:45:27 -07:00
zorro
Kconfig
Makefile