Apple SoC driver updates for 6.18

Two small fixes:
 - mailbox: Stop leaking a reference to the mbox platform device during
   lookup
 - sart: drop device reference after lookup since it's no longer used
   afterwards
 
 Signed-off-by: Sven Peter <sven@kernel.org>
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQS3vz815OHsEaWy0u9EEX0kKnUe6QUCaSdsTAAKCRBEEX0kKnUe
 6Q3TAP9LzbLNHLFbDgCQXRRU5Qb5RxakNQ6o6eoyJP2I4C16SwEA0PChp6r/yH7I
 US56W3mTG3vlJKag472fLyDmZITkFw0=
 =9YPH
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmkoyaMACgkQmmx57+YA
 GNln3A/9E7TppsITh3vRzMhHUanabw6Lsy0K/kg0oUx9YWa4fRRqtqbO2sI6L+ch
 M9jb0PKXFEbZzpNN67fYBG/f0sSSkhjUEAUiJD1irrXtDcOPAnm5Mx1FlentnE/u
 P1Y/Jr0unCQ9Qur6u35soUs4+QUhlDnTmTYRHP27zoPoaynziW2Uhz+GbZoqZ4Ty
 PrCEu3h0qZZU4JaFeQo3tn1Z3g72UqMFfIFGyOZpsg6mMBfrus6FTn5BAGc7OHtq
 73spyb56/6T8R7YRPfFB2VgrP6ndbQN1GY4vKQ2tdpA9VUybXJoidmtgJj9kw5pp
 1Q7c5TscgElgLnl9xA8hU7V0O0eYMB2JsHD80lNDEn0wn3/6GiUSWayqrSgqMBTN
 1eD6NXnHpg8WhZWW0jiSGrGi2x5o/JkLw4XrmIxp6kKrNXyrjuRHZOm23dYUBEsx
 M2yQZGrgBhlMb0v6EqKc/AcxIr+Vs8L+OHaIGbrb1Jx4V9Hz+QrRwuO/pDbTwxTc
 ssaTAf5dKoqQO63dtmdNPkwh7PHBxXdo3CDeHgAqMiQ7cEutmw3QQi2ik0sPtar9
 phcX2bjwYdzbWaorp/k0CVQAF0N/2wjYJYXsBAJiczFweagfiii5vZOYkrFH31vy
 8FWq0kRoIt+HZF8Y/j/AjNnLLJ6iCmaowoanYplRxw1F4W6oFgQ=
 =Mjfk
 -----END PGP SIGNATURE-----

Merge tag 'apple-soc-drivers-6.19' of https://git.kernel.org/pub/scm/linux/kernel/git/sven/linux into soc/drivers-late

Apple SoC driver updates for 6.18

Two small fixes:
- mailbox: Stop leaking a reference to the mbox platform device during
  lookup
- sart: drop device reference after lookup since it's no longer used
  afterwards

Signed-off-by: Sven Peter <sven@kernel.org>

* tag 'apple-soc-drivers-6.19' of https://git.kernel.org/pub/scm/linux/kernel/git/sven/linux:
  soc: apple: sart: drop device reference after lookup
  soc: apple: mailbox: fix device leak on lookup

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
Arnd Bergmann 2025-11-27 22:58:57 +01:00
commit aa3294ff41
2 changed files with 13 additions and 15 deletions

View File

@ -302,11 +302,18 @@ struct apple_mbox *apple_mbox_get(struct device *dev, int index)
return ERR_PTR(-EPROBE_DEFER);
mbox = platform_get_drvdata(pdev);
if (!mbox)
return ERR_PTR(-EPROBE_DEFER);
if (!mbox) {
mbox = ERR_PTR(-EPROBE_DEFER);
goto out_put_pdev;
}
if (!device_link_add(dev, &pdev->dev, DL_FLAG_AUTOREMOVE_CONSUMER))
return ERR_PTR(-ENODEV);
if (!device_link_add(dev, &pdev->dev, DL_FLAG_AUTOREMOVE_CONSUMER)) {
mbox = ERR_PTR(-ENODEV);
goto out_put_pdev;
}
out_put_pdev:
put_device(&pdev->dev);
return mbox;
}

View File

@ -214,17 +214,11 @@ static int apple_sart_probe(struct platform_device *pdev)
return 0;
}
static void apple_sart_put_device(void *dev)
{
put_device(dev);
}
struct apple_sart *devm_apple_sart_get(struct device *dev)
{
struct device_node *sart_node;
struct platform_device *sart_pdev;
struct apple_sart *sart;
int ret;
sart_node = of_parse_phandle(dev->of_node, "apple,sart", 0);
if (!sart_node)
@ -242,14 +236,11 @@ struct apple_sart *devm_apple_sart_get(struct device *dev)
return ERR_PTR(-EPROBE_DEFER);
}
ret = devm_add_action_or_reset(dev, apple_sart_put_device,
&sart_pdev->dev);
if (ret)
return ERR_PTR(ret);
device_link_add(dev, &sart_pdev->dev,
DL_FLAG_PM_RUNTIME | DL_FLAG_AUTOREMOVE_SUPPLIER);
put_device(&sart_pdev->dev);
return sart;
}
EXPORT_SYMBOL_GPL(devm_apple_sart_get);