mirror of
https://github.com/torvalds/linux.git
synced 2025-12-07 20:06:24 +00:00
soc: apple: mailbox: fix device leak on lookup
Make sure to drop the reference taken to the mbox platform device when
looking up its driver data.
Note that holding a reference to a device does not prevent its driver
data from going away so there is no point in keeping the reference.
Fixes: 6e1457fcad ("soc: apple: mailbox: Add ASC/M3 mailbox driver")
Cc: stable@vger.kernel.org # 6.8
Signed-off-by: Johan Hovold <johan@kernel.org>
Reviewed-by: Neal Gompa <neal@gompa.dev>
Signed-off-by: Sven Peter <sven@kernel.org>
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user