The UBI device reference is dropped but then the device is used as a
parameter of ubi_err. The bug is introduced in changing ubi_err's
behavior. The old ubi_err does not require a UBI device as its first
parameter, but the new one does.
Fixes: 32608703310 ("UBI: Extend UBI layer debug/messaging capabilities")
Signed-off-by: Pan Bian <[email protected]>
---
drivers/mtd/ubi/kapi.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/mtd/ubi/kapi.c b/drivers/mtd/ubi/kapi.c
index e9e9ecb..0b8f0c4 100644
--- a/drivers/mtd/ubi/kapi.c
+++ b/drivers/mtd/ubi/kapi.c
@@ -227,9 +227,9 @@ struct ubi_volume_desc *ubi_open_volume(int ubi_num, int vol_id, int mode)
out_free:
kfree(desc);
out_put_ubi:
- ubi_put_device(ubi);
ubi_err(ubi, "cannot open device %d, volume %d, error %d",
ubi_num, vol_id, err);
+ ubi_put_device(ubi);
return ERR_PTR(err);
}
EXPORT_SYMBOL_GPL(ubi_open_volume);
--
2.7.4
On Wed, 28 Nov 2018 11:20:03 +0800
Pan Bian <[email protected]> wrote:
> The UBI device reference is dropped but then the device is used as a
> parameter of ubi_err. The bug is introduced in changing ubi_err's
> behavior. The old ubi_err does not require a UBI device as its first
> parameter, but the new one does.
>
> Fixes: 32608703310 ("UBI: Extend UBI layer debug/messaging capabilities")
>
Unnecessary blank line here.
> Signed-off-by: Pan Bian <[email protected]>
Reviewed-by: Boris Brezillon <[email protected]>
> ---
> drivers/mtd/ubi/kapi.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/mtd/ubi/kapi.c b/drivers/mtd/ubi/kapi.c
> index e9e9ecb..0b8f0c4 100644
> --- a/drivers/mtd/ubi/kapi.c
> +++ b/drivers/mtd/ubi/kapi.c
> @@ -227,9 +227,9 @@ struct ubi_volume_desc *ubi_open_volume(int ubi_num, int vol_id, int mode)
> out_free:
> kfree(desc);
> out_put_ubi:
> - ubi_put_device(ubi);
> ubi_err(ubi, "cannot open device %d, volume %d, error %d",
> ubi_num, vol_id, err);
> + ubi_put_device(ubi);
> return ERR_PTR(err);
> }
> EXPORT_SYMBOL_GPL(ubi_open_volume);