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 | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/drivers/mfd/viperboard.c b/drivers/mfd/viperboard.c index 5f62f4e..57fac1d 100644 --- a/drivers/mfd/viperboard.c +++ b/drivers/mfd/viperboard.c @@ -53,18 +53,16 @@ static int vprbrd_probe(struct usb_interface *interface, const struct usb_device_id *id) { struct vprbrd *vb; - u16 version = 0; 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); + vb->buf = devm_kzalloc(&interface->dev, + sizeof(struct vprbrd_i2c_write_msg), GFP_KERNEL); if (vb->buf == NULL) { ret = -ENOMEM; goto error; @@ -109,11 +107,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 +119,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