Switch to using devm_ allocation to simplify the error path. Also remove a redundant OOM error message. Signed-off-by: Octavian Purdila <octavian.purdila@xxxxxxxxx> --- drivers/mfd/viperboard.c | 23 +++++++---------------- 1 file changed, 7 insertions(+), 16 deletions(-) diff --git a/drivers/mfd/viperboard.c b/drivers/mfd/viperboard.c index 5f62f4e..0d46d05 100644 --- a/drivers/mfd/viperboard.c +++ b/drivers/mfd/viperboard.c @@ -58,17 +58,14 @@ static int vprbrd_probe(struct usb_interface *interface, int pipe, ret; /* allocate memory for our device state and initialize it */ - vb = kzalloc(sizeof(*vb), GFP_KERNEL); - if (vb == NULL) { - dev_err(&interface->dev, "Out of memory\n"); + vb = devm_kzalloc(&interface->dev, sizeof(*vb), GFP_KERNEL); + if (vb == NULL) return -ENOMEM; - } - vb->buf = kzalloc(sizeof(struct vprbrd_i2c_write_msg), GFP_KERNEL); - if (vb->buf == NULL) { - ret = -ENOMEM; - goto error; - } + vb->buf = devm_kzalloc(&interface->dev, + sizeof(struct vprbrd_i2c_write_msg), GFP_KERNEL); + if (vb->buf == NULL) + return -ENOMEM; mutex_init(&vb->lock); @@ -109,11 +106,7 @@ static int vprbrd_probe(struct usb_interface *interface, return 0; error: - if (vb) { - usb_put_dev(vb->usb_dev); - kfree(vb->buf); - kfree(vb); - } + usb_put_dev(vb->usb_dev); return ret; } @@ -125,8 +118,6 @@ static void vprbrd_disconnect(struct usb_interface *interface) mfd_remove_devices(&interface->dev); usb_set_intfdata(interface, NULL); usb_put_dev(vb->usb_dev); - kfree(vb->buf); - kfree(vb); dev_dbg(&interface->dev, "disconnected\n"); } -- 1.9.1 -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html