linux-stable/drivers/misc
Souptick Joarder 4f86b0d956 misc: mic: scif: Fix error handling path
[ Upstream commit a81072a9c0 ]

Inside __scif_pin_pages(), when map_flags != SCIF_MAP_KERNEL it
will call pin_user_pages_fast() to map nr_pages. However,
pin_user_pages_fast() might fail with a return value -ERRNO.

The return value is stored in pinned_pages->nr_pages. which in
turn is passed to unpin_user_pages(), which expects
pinned_pages->nr_pages >=0, else disaster.

Fix this by assigning pinned_pages->nr_pages to 0 if
pin_user_pages_fast() returns -ERRNO.

Fixes: ba612aa8b4 ("misc: mic: SCIF memory registration and unregistration")
Cc: John Hubbard <jhubbard@nvidia.com>
Cc: Ira Weiny <ira.weiny@intel.com>
Cc: Dan Carpenter <dan.carpenter@oracle.com>
Reviewed-by: John Hubbard <jhubbard@nvidia.com>
Signed-off-by: Souptick Joarder <jrdr.linux@gmail.com>
Link: https://lore.kernel.org/r/1600570295-29546-1-git-send-email-jrdr.linux@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2020-10-29 09:07:06 +01:00
..
altera-stapl altera-stapl: altera_get_note: prevent write beyond end of 'key' 2020-04-02 16:34:14 +02:00
c2port
cb710
cxl cxl: Fix kobject memleak 2020-08-21 09:48:08 +02:00
echo misc: echo: Remove unnecessary parentheses and simplify check for zero 2020-04-24 08:00:51 +02:00
eeprom eeprom: at24: make spd world-readable again 2019-08-06 19:05:28 +02:00
genwqe misc: genwqe: should return proper error value. 2019-11-20 18:00:40 +01:00
ibmasm
lis3lv02d
mei mei: bus: don't clean driver pointer 2020-07-22 09:22:27 +02:00
mic misc: mic: scif: Fix error handling path 2020-10-29 09:07:06 +01:00
sgi-gru
sgi-xp misc: sgi-xp: Properly initialize buf in xpc_get_rsvd_page_pa 2020-01-27 14:46:36 +01:00
ti-st
vmw_vmci VMCI: check return value of get_user_pages_fast() for errors 2020-10-29 09:07:04 +01:00
ad525x_dpot-i2c.c
ad525x_dpot-spi.c
ad525x_dpot.c
ad525x_dpot.h
apds990x.c
apds9802als.c
aspeed-lpc-ctrl.c
aspeed-lpc-snoop.c
atmel-ssc.c misc: atmel-ssc: lock with mutex instead of spinlock 2020-07-22 09:22:28 +02:00
atmel_tclib.c
bh1770glc.c
cs5535-mfgpt.c
ds1682.c
dummy-irq.c
enclosure.c scsi: enclosure: Fix stale device oops with hot replug 2020-01-17 19:45:47 +01:00
fsa9480.c
hmc6352.c
hpilo.c
hpilo.h
ics932s401.c
ioc4.c
isl29003.c
isl29020.c
Kconfig
kgdbts.c misc: kgdbts: Fix restrict error 2019-11-20 18:00:39 +01:00
lattice-ecp3-config.c
lkdtm.h lkdtm: Add tests for NULL pointer dereference 2019-04-20 09:15:06 +02:00
lkdtm_bugs.c
lkdtm_core.c lkdtm: Add tests for NULL pointer dereference 2019-04-20 09:15:06 +02:00
lkdtm_heap.c
lkdtm_perms.c lkdtm: Add tests for NULL pointer dereference 2019-04-20 09:15:06 +02:00
lkdtm_refcount.c
lkdtm_rodata.c
lkdtm_usercopy.c
Makefile lkdtm: support llvm-objcopy 2019-08-16 10:13:47 +02:00
pch_phub.c
pci_endpoint_test.c misc: pci_endpoint_test: Fix to support > 10 pci-endpoint-test devices 2020-04-13 10:34:24 +02:00
phantom.c
pti.c
qcom-coincell.c
spear13xx_pcie_gadget.c
sram-exec.c
sram.c
sram.h
ti_dac7512.c
tifm_7xx1.c
tifm_core.c
tsl2550.c
vexpress-syscfg.c
vmw_balloon.c