linux-stable/drivers/xen
Jia-Ju Bai bb52e3169c xen: xen-pciback: Replace GFP_ATOMIC with GFP_KERNEL in pcistub_init_device
pcistub_init_device() is never called in atomic context.

The call chain ending up at pcistub_init_device() is:
[1] pcistub_init_device() <- pcistub_seize() <- pcistub_probe()
[2] pcistub_init_device() <- pcistub_init_devices_late() <-
	xen_pcibk_init()
pcistub_probe() is only set as ".probe" in struct pci_driver.
xen_pcibk_init() is is only set as a parameter of module_init().
These functions are not called in atomic context.

Despite never getting called from atomic context,
pcistub_init_device() calls kzalloc() with GFP_ATOMIC,
which does not sleep for allocation.
GFP_ATOMIC is not necessary and can be replaced with GFP_KERNEL,
which can sleep and improve the possibility of sucessful allocation.

This is found by a static analysis tool named DCNS written by myself.
And I also manually check it.

Signed-off-by: Jia-Ju Bai <baijiaju1990@gmail.com>
Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
2018-04-16 10:20:12 -04:00
..
events xen/pirq: fix error path cleanup when binding MSIs 2018-02-28 20:20:01 +01:00
xen-pciback xen: xen-pciback: Replace GFP_ATOMIC with GFP_KERNEL in pcistub_init_device 2018-04-16 10:20:12 -04:00
xenbus xen: xenbus_dev_frontend: Verify body of XS_TRANSACTION_END 2018-03-21 08:28:53 -04:00
xenfs License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
acpi.c
arm-device.c Xen: ARM: Zero reserved fields of xatp before making hypervisor call 2017-01-03 10:06:13 -08:00
balloon.c xen/balloon: Mark unallocated host memory as UNUSABLE 2017-12-20 13:16:20 -05:00
biomerge.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
cpu_hotplug.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
dbgp.c
efi.c xen: Implement EFI reset_system callback 2017-05-02 12:06:50 +02:00
evtchn.c vfs: do bulk POLL* -> EPOLL* replacement 2018-02-11 14:34:03 -08:00
fallback.c
features.c
gntalloc.c mm: treewide: remove GFP_TEMPORARY allocation flag 2017-09-13 18:53:16 -07:00
gntdev.c xen/gntdev: Fix partial gntdev_mmap() cleanup 2018-01-10 08:38:44 -05:00
grant-table.c xen/grant-table: Use put_page instead of free_page 2018-02-06 09:55:37 +01:00
Kconfig xen: XEN_ACPI_PROCESSOR is Dom0-only 2017-12-12 09:39:43 -05:00
Makefile xen: features and fixes for v4.15-rc1 2017-11-16 13:06:27 -08:00
manage.c xen/time: do not decrease steal time after live migration on xen 2017-11-02 16:49:41 -04:00
mcelog.c vfs: do bulk POLL* -> EPOLL* replacement 2018-02-11 14:34:03 -08:00
pci.c
pcpu.c
platform-pci.c xen-platform: constify pci_device_id. 2017-08-31 09:45:55 -04:00
preempt.c
privcmd.c xen/privcmd: remove unused variable pageidx 2017-11-08 09:15:28 -05:00
privcmd.h
pvcalls-back.c xen/pvcalls: fix null pointer dereference on map->sock 2018-02-26 17:13:12 +01:00
pvcalls-front.c pvcalls-front: 64-bit align flags 2018-03-01 07:23:36 +01:00
pvcalls-front.h xen: fix poll misannotation 2018-02-01 10:07:32 -05:00
swiotlb-xen.c dma-mapping: move swiotlb arch helpers to a new header 2018-01-10 16:40:54 +01:00
sys-hypervisor.c xen: add sysfs node for hypervisor build id 2017-06-15 08:50:37 +02:00
time.c xen: features and fixes for v4.15-rc1 2017-11-16 13:06:27 -08:00
tmem.c mm, swap, frontswap: fix THP swap if frontswap enabled 2018-02-21 15:35:43 -08:00
xen-acpi-cpuhotplug.c
xen-acpi-memhotplug.c
xen-acpi-pad.c
xen-acpi-processor.c xen/acpi: off by one in read_acpi_id() 2018-03-30 11:30:13 -04:00
xen-balloon.c xen: fix booting ballooned down hvm guest 2017-10-26 08:11:44 -04:00
xen-scsiback.c xen/scsiback: Make TMF processing slightly faster 2017-07-06 22:58:03 -07:00
xen-selfballoon.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
xen-stub.c
xlate_mmu.c Xen: xlate: Use page_to_xen_pfn instead of page_to_pfn 2016-07-06 10:34:42 +01:00