linux-stable/drivers
Oliver O'Halloran 6426aaa60c libnvdimm: Fix altmap reservation size calculation
commit 07464e8836 upstream.

Libnvdimm reserves the first 8K of pfn and devicedax namespaces to
store a superblock describing the namespace. This 8K reservation
is contained within the altmap area which the kernel uses for the
vmemmap backing for the pages within the namespace. The altmap
allows for some pages at the start of the altmap area to be reserved
and that mechanism is used to protect the superblock from being
re-used as vmemmap backing.

The number of PFNs to reserve is calculated using:

	PHYS_PFN(SZ_8K)

Which is implemented as:

 #define PHYS_PFN(x) ((unsigned long)((x) >> PAGE_SHIFT))

So on systems where PAGE_SIZE is greater than 8K the reservation
size is truncated to zero and the superblock area is re-used as
vmemmap backing. As a result all the namespace information stored
in the superblock (i.e. if it's a PFN or DAX namespace) is lost
and the namespace needs to be re-created to get access to the
contents.

This patch fixes this by using PFN_UP() rather than PHYS_PFN() to ensure
that at least one page is reserved. On systems with a 4K pages size this
patch should have no effect.

Cc: stable@vger.kernel.org
Cc: Dan Williams <dan.j.williams@intel.com>
Fixes: ac515c084b ("libnvdimm, pmem, pfn: move pfn setup to the core")
Signed-off-by: Oliver O'Halloran <oohall@gmail.com>
Reviewed-by: Vishal Verma <vishal.l.verma@intel.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-03-23 14:35:18 +01:00
..
accessibility
acpi ACPI: NUMA: Use correct type for printing addresses on i386-PAE 2019-02-20 10:20:48 +01:00
amba
android binder: fix race that allows malicious free of live buffer 2018-12-05 19:41:26 +01:00
ata sata_rcar: fix deferred probing 2019-02-12 19:46:03 +01:00
atm atm: he: fix sign-extension overflow on large shift 2019-02-27 10:08:05 +01:00
auxdisplay auxdisplay: ht16k33: fix potential user-after-free on module unload 2019-03-23 14:35:13 +01:00
base driver core: Postpone DMA tear-down until after devres release 2019-03-13 14:03:23 -07:00
bcma
block floppy: check_events callback should not return a negative number 2019-03-23 14:35:12 +01:00
bluetooth Bluetooth: btbcm: Add entry for BCM4335C0 UART bluetooth 2018-11-13 11:14:54 -08:00
bus bus: arm-cci: remove unnecessary unreachable() 2018-12-01 09:42:49 +01:00
cdrom gdrom: fix a memory leak bug 2019-02-12 19:46:09 +01:00
char applicom: Fix potential Spectre v1 vulnerabilities 2019-03-13 14:03:10 -07:00
clk clk: sunxi: A31: Fix wrong AHB gate number 2019-03-23 14:35:13 +01:00
clocksource clocksource/drivers/integrator-ap: Add missing of_node_put() 2019-01-26 09:37:05 +01:00
connector
cpufreq cpufreq: Use struct kobj_attribute instead of struct global_attr 2019-03-13 14:03:06 -07:00
cpuidle cpuidle: big.LITTLE: fix refcount leak 2019-02-12 19:46:03 +01:00
crypto crypto: rockchip - update new iv to device in multiple operations 2019-03-23 14:35:10 +01:00
dax
dca
devfreq
dio
dma dmaengine: dmatest: Abort test in case of mapping error 2019-03-13 14:03:21 -07:00
dma-buf
edac EDAC, skx_edac: Fix logical channel intermediate decoding 2018-11-13 11:15:06 -08:00
eisa
extcon extcon: Release locking when sending the notification of connector state 2018-09-09 19:55:56 +02:00
firewire
firmware iscsi_ibft: Fix missing break in switch statement 2019-03-13 14:03:22 -07:00
fmc
fpga fpga: altera-cvp: Fix registration for CvP incapable devices 2019-02-12 19:45:58 +01:00
fsi
gpio gpio: vf610: Mask all GPIO interrupts 2019-03-13 14:03:13 -07:00
gpu gpu: ipu-v3: Fix CSI offsets for imx53 2019-03-23 14:35:11 +01:00
hid HID: debug: fix the ring buffer implementation 2019-02-15 08:09:13 +01:00
hsi
hv Drivers: hv: vmbus: Check for ring when getting debug info 2019-01-31 08:13:44 +01:00
hwmon hwmon: (tmp421) Correct the misspelling of the tmp442 compatible attribute in OF device ID table 2019-02-27 10:08:05 +01:00
hwspinlock
hwtracing stm class: Prevent division by zero 2019-03-23 14:35:17 +01:00
i2c i2c: bcm2835: Clear current buffer pointers and counts after a transfer 2019-03-23 14:35:13 +01:00
ide ide: pmac: add of_node_put() 2018-12-21 14:13:14 +01:00
idle
iio iio: adc: exynos-adc: Fix NULL pointer exception on unbind 2019-03-23 14:35:09 +01:00
infiniband IB/{hfi1, qib}: Fix WC.byte_len calculation for UD_SEND_WITH_IMM 2019-03-13 14:03:11 -07:00
input Input: st-keyscan - fix potential zalloc NULL dereference 2019-03-23 14:35:13 +01:00
iommu iommu/amd: Fix IOMMU page flush when detach device from a domain 2019-03-13 14:03:12 -07:00
ipack
irqchip irqchip/mmp: Only touch the PJ4 IRQ & FIQ bits on enable/disable 2019-03-13 14:03:20 -07:00
isdn isdn: avm: Fix string plus integer warning from Clang 2019-02-27 10:08:06 +01:00
leds leds: lp5523: fix a missing check of return value of lp55xx_read 2019-02-27 10:08:05 +01:00
lightnvm lightnvm: pblk: fix two sleep-in-atomic-context bugs 2018-11-13 11:14:52 -08:00
macintosh macintosh/via-pmu: Add missing mmio accessors 2018-09-19 22:43:41 +02:00
mailbox mailbox: bcm-flexrm-mailbox: Fix FlexRM ring flush timeout issue 2019-03-23 14:35:15 +01:00
mcb
md It's wrong to add len to sector_nr in raid10 reshape twice 2019-03-19 13:13:25 +01:00
media media: videobuf2-v4l2: drop WARN_ON in vb2_warn_zero_bytesused() 2019-03-23 14:35:17 +01:00
memory
memstick memstick: Prevent memstick host from getting runtime suspended during card detection 2019-02-12 19:46:04 +01:00
message
mfd mfd: mc13xxx: Fix a missing check of a register-read failure 2019-02-27 10:08:03 +01:00
misc eeprom: at24: add support for 24c2048 2019-02-20 10:20:44 +01:00
mmc mmc: sdhci-esdhc-imx: correct the fix of ERR004536 2019-03-05 17:58:02 +01:00
mtd mtd: rawnand: gpmi: fix MX28 bus master lockup problem 2019-02-15 08:09:11 +01:00
mux
net net: set static variable an initial value in atl2_probe() 2019-03-23 14:35:17 +01:00
nfc NFC: nfcmrvl_uart: fix OF child-node lookup 2018-12-01 09:42:54 +01:00
ntb
nubus
nvdimm libnvdimm: Fix altmap reservation size calculation 2019-03-23 14:35:18 +01:00
nvme nvme-pci: use the same attributes when freeing host_mem_desc_bufs. 2019-02-20 10:20:50 +01:00
nvmem nvmem: Don't let a NULL cell_id for nvmem_cell_get() crash us 2018-08-24 13:09:14 +02:00
of OF: properties: add missing of_node_put 2019-01-23 08:09:49 +01:00
oprofile
parisc
parport parport: sunbpp: fix error return code 2018-09-26 08:38:12 +02:00
pci switchtec: Fix SWITCHTEC_IOCTL_EVENT_IDX_ALL flags overwrite 2019-02-12 19:46:04 +01:00
pcmcia pcmcia: Implement CLKRUN protocol disabling for Ricoh bridges 2018-11-13 11:14:46 -08:00
perf arm64: perf: Reject stand-alone CHAIN events for PMUv3 2018-10-18 09:16:24 +02:00
phy phy: tegra: remove redundant self assignment of 'map' 2019-02-27 10:08:09 +01:00
pinctrl pinctrl: meson: meson8b: fix the sdxc_a data 1..3 pins 2019-03-23 14:35:14 +01:00
platform platform/x86: Fix unmet dependency warning for SAMSUNG_Q10 2019-03-13 14:03:15 -07:00
pnp
power power: supply: olpc_battery: correct the temperature units 2019-01-13 10:01:07 +01:00
powercap
pps
ps3
ptp ptp: Fix pass zero to ERR_PTR() in ptp_clock_register 2019-02-12 19:45:59 +01:00
pwm pwm: meson: Fix mux clock names 2018-09-15 09:45:27 +02:00
rapidio
ras
regulator regulator: fix crash caused by null driver data 2018-10-03 17:00:55 -07:00
remoteproc
reset reset: make device_reset_optional() really optional 2018-12-08 13:03:40 +01:00
rpmsg rpmsg: smd: fix memory leak on channel create 2018-11-13 11:15:12 -08:00
rtc rtc: m41t80: Correct alarm month range with RTC reads 2019-01-09 17:14:52 +01:00
s390 s390/dasd: fix using offset into zero size array error 2019-03-23 14:35:11 +01:00
sbus drivers/sbus/char: add of_node_put() 2018-12-21 14:13:13 +01:00
scsi scsi: libiscsi: Fix race between iscsi_xmit_task and iscsi_complete_task 2019-03-23 14:35:14 +01:00
sfi
sh
sn
soc soc: fsl: qbman: avoid race in clearing QMan interrupt 2019-03-13 14:03:19 -07:00
spi spi: bcm2835: Unbreak the build of esoteric configs 2019-01-09 17:14:53 +01:00
spmi
ssb
staging staging: android: ion: fix sys heap pool's gfp_flags 2019-03-13 14:03:07 -07:00
target scsi: target: use consistent left-aligned ASCII INQUIRY data 2019-01-26 09:37:03 +01:00
tc TC: Set DMA masks for devices 2018-11-13 11:15:11 -08:00
tee
thermal drivers: thermal: int340x_thermal: Fix sysfs race condition 2019-03-05 17:58:00 +01:00
thunderbolt
tty serial: fsl_lpuart: fix maximum acceptable baud rate with over-sampling 2019-03-05 17:58:00 +01:00
uio Revert "uio: use request_threaded_irq instead" 2019-02-15 08:09:14 +01:00
usb usb: phy: fix link errors 2019-03-13 14:03:20 -07:00
uwb uwb: hwa-rc: fix memory leak at probe 2018-10-03 17:00:46 -07:00
vfio
vhost vhost/vsock: fix vhost vsock cid hashing inconsistent 2019-03-19 13:13:25 +01:00
video fbdev: fbcon: Fix unregister crash when more than one framebuffer 2019-02-12 19:46:07 +01:00
virt
virtio virtio_balloon: fix increment of vb->num_pfns in fill_balloon() 2018-10-13 09:27:30 +02:00
vlynq
vme
w1 w1: omap-hdq: fix missing bus unregister at removal 2018-11-13 11:15:09 -08:00
watchdog watchdog: renesas_wdt: don't set divider while watchdog is running 2019-02-12 19:46:03 +01:00
xen xen/pvcalls: remove set but not used variable 'intf' 2019-02-27 10:08:03 +01:00
zorro
Kconfig
Makefile