Refcount leak for a used of-node in the grf-init.

-----BEGIN PGP SIGNATURE-----
 
 iQFEBAABCAAuFiEE7v+35S2Q1vLNA3Lx86Z5yZzRHYEFAmKD9OcQHGhlaWtvQHNu
 dGVjaC5kZQAKCRDzpnnJnNEdgZDNB/9QBkDadcTEzn1GpRDZb8b4tpBrBiyYzNEl
 458EpbcqHi40HejXq4ZlzdniyZtl1eeRGd76aXpmc5azHPK+DhjvChKfhV+YWi/y
 aTJtLIreZEZuu3TH74PVrHr81sj+5TuZBVat5M3/dGNzIEkTm6CsiM07U9h2f5sD
 uktLk1aUioC5DRMxHCrEtmZmsiQT/uukwwiNVckuSjiRRlVlTd1NFzKqggs1yqNh
 TSQ3d/vnl1C+nw7ErwludYVtkUiVpoShKQp8GCvAMXo4aPuxEnto87UvOsdbibJW
 Xp8R/NuoE7W+iXLvwg4AuHS27/8oyJfxIt2PDA1Cw57A1oumtVeG
 =fSY+
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmKRMmQACgkQmmx57+YA
 GNmu6w/+JD6MYF81WZEUosKh7qOjfuLMAsJvjAV/x3ibYHIM7NBF6PwarDqAN5Z7
 QNNGDK4kVF5IJBWHohWVk0YhR8JKkwWSFlaGJxwRTRGoKEfK3aAH5en5yCrxDRRO
 Vsft5DT2fxELhE2bD8VweqPrKibH6nKUwadfAzWLdKBFFITU/lv2hDU4HL+ett0t
 Rlppu2lu674iWD18W8q8ozpZArchgQ76vW2ZfYoq8vNVY1B6WxjmdGKw9brMBqaM
 dd03tEJ1qaL8j6eO91GfEHGWm8+rL5QLTILNSZ9ma/vg/RaXyn18VCuuU+hG06DK
 aLsplf7GXNxcR/QVWEeT9vUCzGCQAr9EGyZ33qgmZv/bBhfTQOcGuE76SKxbn/6I
 eBFFPoM9dHtk2GM3qhTARHa4UqSWD6lfFGD0NhDBpVVHUN3N4RFXVuoOradz2Oj3
 DvBRyysYmkVzGOzHaqCjRz0A08Gms6U1KwHt0+4Fwf0kcs+zdvLS7mkVHOF5LuVY
 5XVgp+Z8eZtOH1utoC8/bXcGymi2ij8GHZ5PCG3piYalriTuvZExZThnKzpcMQ4A
 HVmfMJ9oroUArmgzbEHGBWSR8QQa6OCEoRHPj9gJGaKaTqNJTybNxhlk58qI7twP
 EfJ7MGQlpE6dRcAuL1tVD0CqFyGEO7pMwUNDLY0ltD7gMOYDA5k=
 =qzen
 -----END PGP SIGNATURE-----

Merge tag 'v5.19-rockchip-drivers2' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into arm/late

Refcount leak for a used of-node in the grf-init.

* tag 'v5.19-rockchip-drivers2' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip:
  soc: rockchip: Fix refcount leak in rockchip_grf_init

Link: https://lore.kernel.org/r/4541398.Icojqenx9y@phil
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
Arnd Bergmann 2022-05-27 22:19:46 +02:00
commit 4a4e81ddb8
1 changed files with 2 additions and 0 deletions

View File

@ -165,12 +165,14 @@ static int __init rockchip_grf_init(void)
return -ENODEV; return -ENODEV;
if (!match || !match->data) { if (!match || !match->data) {
pr_err("%s: missing grf data\n", __func__); pr_err("%s: missing grf data\n", __func__);
of_node_put(np);
return -EINVAL; return -EINVAL;
} }
grf_info = match->data; grf_info = match->data;
grf = syscon_node_to_regmap(np); grf = syscon_node_to_regmap(np);
of_node_put(np);
if (IS_ERR(grf)) { if (IS_ERR(grf)) {
pr_err("%s: could not get grf syscon\n", __func__); pr_err("%s: could not get grf syscon\n", __func__);
return PTR_ERR(grf); return PTR_ERR(grf);