aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexey Khoroshilov <khoroshilov@ispras.ru>2014-12-05 16:28:01 -0500
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2015-01-12 08:04:12 -0500
commitc4277e9ea70431aea0fecebb8bb9a3fbc27d074e (patch)
tree95f44b60792c6b0fd74f451c722dcf5f0cbf9971
parent5de61e7aa1ba9ac3c7edbea375da2bc8eb1a89ae (diff)
uio/uio_pci_generic: don't return zero on failure path in probe()
If uio_register_device() fails in probe(), it breaks off initialization, deallocates all resources, but returns zero. The patch adds proper error code propagation. Found by Linux Driver Verification project (linuxtesting.org). Signed-off-by: Alexey Khoroshilov <khoroshilov@ispras.ru> Acked-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/uio/uio_pci_generic.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/uio/uio_pci_generic.c b/drivers/uio/uio_pci_generic.c
index 077ae12269ce..d0b508b68f3c 100644
--- a/drivers/uio/uio_pci_generic.c
+++ b/drivers/uio/uio_pci_generic.c
@@ -91,7 +91,8 @@ static int probe(struct pci_dev *pdev,
91 gdev->info.handler = irqhandler; 91 gdev->info.handler = irqhandler;
92 gdev->pdev = pdev; 92 gdev->pdev = pdev;
93 93
94 if (uio_register_device(&pdev->dev, &gdev->info)) 94 err = uio_register_device(&pdev->dev, &gdev->info);
95 if (err)
95 goto err_register; 96 goto err_register;
96 pci_set_drvdata(pdev, gdev); 97 pci_set_drvdata(pdev, gdev);
97 98