aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/xen/xen-pciback/pci_stub.c
diff options
context:
space:
mode:
authorJia-Ju Bai <baijiaju1990@gmail.com>2018-04-09 23:03:36 +0800
committerBoris Ostrovsky <boris.ostrovsky@oracle.com>2018-04-16 10:19:52 -0400
commitcc5cd5079699c7831fdc58e74352736706c3df3c (patch)
tree3233467e63072bdcc82d3d2d1d76b1f83823c29d /drivers/xen/xen-pciback/pci_stub.c
parentxen/pvh: Indicate XENFEAT_linux_rsdp_unrestricted to Xen (diff)
downloadlinux-dev-cc5cd5079699c7831fdc58e74352736706c3df3c.tar.xz
linux-dev-cc5cd5079699c7831fdc58e74352736706c3df3c.zip
xen: xen-pciback: Replace GFP_ATOMIC with GFP_KERNEL in pcistub_probe
pcistub_probe() is never called in atomic context. This function is only set as ".probe" in struct pci_driver. Despite never getting called from atomic context, pcistub_probe() calls kmalloc() 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>
Diffstat (limited to '')
-rw-r--r--drivers/xen/xen-pciback/pci_stub.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/xen/xen-pciback/pci_stub.c b/drivers/xen/xen-pciback/pci_stub.c
index 9e480fdebe1f..95e6ddd7c402 100644
--- a/drivers/xen/xen-pciback/pci_stub.c
+++ b/drivers/xen/xen-pciback/pci_stub.c
@@ -577,7 +577,7 @@ static int pcistub_probe(struct pci_dev *dev, const struct pci_device_id *id)
}
if (!match) {
- pci_dev_id = kmalloc(sizeof(*pci_dev_id), GFP_ATOMIC);
+ pci_dev_id = kmalloc(sizeof(*pci_dev_id), GFP_KERNEL);
if (!pci_dev_id) {
err = -ENOMEM;
goto out;