Message ID | ef2b9576350bba4c8e05e669e9535e9e2a415763.1650551719.git.christophe.jaillet@wanadoo.fr (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | bus: sunxi-rsb: Fix the return value of sunxi_rsb_device_create() | expand |
On 4/21/22 9:35 AM, Christophe JAILLET wrote: > This code is really spurious. > It always returns an ERR_PTR, even when err is known to be 0 and calls > put_device() after a successful device_register() call. > > It is likely that the return statement in the normal path is missing. > Add 'return rdev;' to fix it. Thanks for the patch. This definitely looks to be the case. > Fixes: d787dcdb9c8f ("bus: sunxi-rsb: Add driver for Allwinner Reduced Serial Bus") > Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr> Reviewed-by: Samuel Holland <samuel@sholland.org> Tested-by: Samuel Holland <samuel@sholland.org>
Dne sobota, 23. april 2022 ob 21:39:45 CEST je Samuel Holland napisal(a): > On 4/21/22 9:35 AM, Christophe JAILLET wrote: > > This code is really spurious. > > It always returns an ERR_PTR, even when err is known to be 0 and calls > > put_device() after a successful device_register() call. > > > > It is likely that the return statement in the normal path is missing. > > Add 'return rdev;' to fix it. > > Thanks for the patch. This definitely looks to be the case. > > > Fixes: d787dcdb9c8f ("bus: sunxi-rsb: Add driver for Allwinner Reduced Serial Bus") > > Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr> > > Reviewed-by: Samuel Holland <samuel@sholland.org> > Tested-by: Samuel Holland <samuel@sholland.org> > Applied to sunxi/fixes-for-5.18, thanks! Best regards, Jernej
diff --git a/drivers/bus/sunxi-rsb.c b/drivers/bus/sunxi-rsb.c index 4566e730ef2b..60b082fe2ed0 100644 --- a/drivers/bus/sunxi-rsb.c +++ b/drivers/bus/sunxi-rsb.c @@ -227,6 +227,8 @@ static struct sunxi_rsb_device *sunxi_rsb_device_create(struct sunxi_rsb *rsb, dev_dbg(&rdev->dev, "device %s registered\n", dev_name(&rdev->dev)); + return rdev; + err_device_add: put_device(&rdev->dev);
This code is really spurious. It always returns an ERR_PTR, even when err is known to be 0 and calls put_device() after a successful device_register() call. It is likely that the return statement in the normal path is missing. Add 'return rdev;' to fix it. Fixes: d787dcdb9c8f ("bus: sunxi-rsb: Add driver for Allwinner Reduced Serial Bus") Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr> --- This patch is completely speculative and compile tested only. --- drivers/bus/sunxi-rsb.c | 2 ++ 1 file changed, 2 insertions(+)