| From ccfa00c3c3ac6eaa679e646d7b6973f08c4c499f Mon Sep 17 00:00:00 2001 |
| From: Colin Ian King <colin.king@canonical.com> |
| Date: Tue, 7 Jan 2020 12:39:01 +0000 |
| Subject: [PATCH] usb: ohci-da8xx: ensure error return on variable error is set |
| |
| commit ba9b40810bb43e6bf73b395012b98633c03f7f59 upstream. |
| |
| Currently when an error occurs when calling devm_gpiod_get_optional or |
| calling gpiod_to_irq it causes an uninitialized error return in variable |
| 'error' to be returned. Fix this by ensuring the error variable is set |
| from da8xx_ohci->oc_gpio and oc_irq. |
| |
| Thanks to Dan Carpenter for spotting the uninitialized error in the |
| gpiod_to_irq failure case. |
| |
| Addresses-Coverity: ("Uninitialized scalar variable") |
| Fixes: d193abf1c913 ("usb: ohci-da8xx: add vbus and overcurrent gpios") |
| Signed-off-by: Colin Ian King <colin.king@canonical.com> |
| Cc: stable <stable@vger.kernel.org> |
| Acked-by: Alan Stern <stern@rowland.harvard.edu> |
| Link: https://lore.kernel.org/r/20200107123901.101190-1-colin.king@canonical.com |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/drivers/usb/host/ohci-da8xx.c b/drivers/usb/host/ohci-da8xx.c |
| index 38183ac438c6..1371b0c249ec 100644 |
| --- a/drivers/usb/host/ohci-da8xx.c |
| +++ b/drivers/usb/host/ohci-da8xx.c |
| @@ -415,13 +415,17 @@ static int ohci_da8xx_probe(struct platform_device *pdev) |
| } |
| |
| da8xx_ohci->oc_gpio = devm_gpiod_get_optional(dev, "oc", GPIOD_IN); |
| - if (IS_ERR(da8xx_ohci->oc_gpio)) |
| + if (IS_ERR(da8xx_ohci->oc_gpio)) { |
| + error = PTR_ERR(da8xx_ohci->oc_gpio); |
| goto err; |
| + } |
| |
| if (da8xx_ohci->oc_gpio) { |
| oc_irq = gpiod_to_irq(da8xx_ohci->oc_gpio); |
| - if (oc_irq < 0) |
| + if (oc_irq < 0) { |
| + error = oc_irq; |
| goto err; |
| + } |
| |
| error = devm_request_threaded_irq(dev, oc_irq, NULL, |
| ohci_da8xx_oc_thread, IRQF_TRIGGER_RISING | |
| -- |
| 2.7.4 |
| |