MIPS: OCTEON: add put_device() after of_find_device_by_node()
authorYe Guojin <ye.guojin@zte.com.cn>
Tue, 16 Nov 2021 08:10:51 +0000 (08:10 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 27 Jan 2022 09:54:23 +0000 (10:54 +0100)
[ Upstream commit 858779df1c0787d3fec827fb705708df9ebdb15b ]

This was found by coccicheck:
./arch/mips/cavium-octeon/octeon-platform.c, 332, 1-7, ERROR missing
put_device; call of_find_device_by_node on line 324, but without a
corresponding object release within this function.
./arch/mips/cavium-octeon/octeon-platform.c, 395, 1-7, ERROR missing
put_device; call of_find_device_by_node on line 387, but without a
corresponding object release within this function.
./arch/mips/cavium-octeon/octeon-usb.c, 512, 3-9, ERROR missing
put_device; call of_find_device_by_node on line 515, but without a
corresponding object release within this function.
./arch/mips/cavium-octeon/octeon-usb.c, 543, 1-7, ERROR missing
put_device; call of_find_device_by_node on line 515, but without a
corresponding object release within this function.

Reported-by: Zeal Robot <zealci@zte.com.cn>
Signed-off-by: Ye Guojin <ye.guojin@zte.com.cn>
Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
arch/mips/cavium-octeon/octeon-platform.c
arch/mips/cavium-octeon/octeon-usb.c

index d56e9b9d2e434d72ec1c8ed398dd70dac8e7b6e0..a994022e32c9f0ee0ed4f91612d5fbd26071e218 100644 (file)
@@ -328,6 +328,7 @@ static int __init octeon_ehci_device_init(void)
 
        pd->dev.platform_data = &octeon_ehci_pdata;
        octeon_ehci_hw_start(&pd->dev);
+       put_device(&pd->dev);
 
        return ret;
 }
@@ -391,6 +392,7 @@ static int __init octeon_ohci_device_init(void)
 
        pd->dev.platform_data = &octeon_ohci_pdata;
        octeon_ohci_hw_start(&pd->dev);
+       put_device(&pd->dev);
 
        return ret;
 }
index 950e6c6e862973b421393f9afcc02f9fdb1f3f0f..fa87e5aa1811d8876713e048d4ccc2fd8e89fd57 100644 (file)
@@ -544,6 +544,7 @@ static int __init dwc3_octeon_device_init(void)
                        devm_iounmap(&pdev->dev, base);
                        devm_release_mem_region(&pdev->dev, res->start,
                                                resource_size(res));
+                       put_device(&pdev->dev);
                }
        } while (node != NULL);