| From 3f4a958e73c02d7b209dc83456c71c292c2f146e Mon Sep 17 00:00:00 2001 |
| From: Yu Kuai <yukuai3@huawei.com> |
| Date: Tue, 21 Jul 2020 21:47:18 +0800 |
| Subject: [PATCH] MIPS: OCTEON: add missing put_device() call in |
| dwc3_octeon_device_init() |
| |
| commit e8b9fc10f2615b9a525fce56981e40b489528355 upstream. |
| |
| if of_find_device_by_node() succeed, dwc3_octeon_device_init() doesn't have |
| a corresponding put_device(). Thus add put_device() to fix the exception |
| handling for this function implementation. |
| |
| Fixes: 93e502b3c2d4 ("MIPS: OCTEON: Platform support for OCTEON III USB controller") |
| Signed-off-by: Yu Kuai <yukuai3@huawei.com> |
| Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/arch/mips/cavium-octeon/octeon-usb.c b/arch/mips/cavium-octeon/octeon-usb.c |
| index 1f730ded5224..5ab29c18aacd 100644 |
| --- a/arch/mips/cavium-octeon/octeon-usb.c |
| +++ b/arch/mips/cavium-octeon/octeon-usb.c |
| @@ -517,6 +517,7 @@ static int __init dwc3_octeon_device_init(void) |
| |
| res = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
| if (res == NULL) { |
| + put_device(&pdev->dev); |
| dev_err(&pdev->dev, "No memory resources\n"); |
| return -ENXIO; |
| } |
| @@ -528,8 +529,10 @@ static int __init dwc3_octeon_device_init(void) |
| * know the difference. |
| */ |
| base = devm_ioremap_resource(&pdev->dev, res); |
| - if (IS_ERR(base)) |
| + if (IS_ERR(base)) { |
| + put_device(&pdev->dev); |
| return PTR_ERR(base); |
| + } |
| |
| mutex_lock(&dwc3_octeon_clocks_mutex); |
| dwc3_octeon_clocks_start(&pdev->dev, (u64)base); |
| -- |
| 2.27.0 |
| |