greybus: es2: fix memory leak in probe error path

In case a bulk-in transfer-buffer allocation failed during probe, we'd
currently leak the corresponding URB.

Signed-off-by: Johan Hovold <johan@hovoldconsulting.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
diff --git a/drivers/staging/greybus/es2.c b/drivers/staging/greybus/es2.c
index 7f46f2a..8803bc9 100644
--- a/drivers/staging/greybus/es2.c
+++ b/drivers/staging/greybus/es2.c
@@ -1623,6 +1623,8 @@
 				retval = -ENOMEM;
 				goto error;
 			}
+			cport_in->urb[i] = urb;
+
 			buffer = kmalloc(ES2_GBUF_MSG_SIZE_MAX, GFP_KERNEL);
 			if (!buffer) {
 				retval = -ENOMEM;
@@ -1634,7 +1636,7 @@
 							  cport_in->endpoint),
 					  buffer, ES2_GBUF_MSG_SIZE_MAX,
 					  cport_in_callback, hd);
-			cport_in->urb[i] = urb;
+
 			cport_in->buffer[i] = buffer;
 		}
 	}
@@ -1649,6 +1651,8 @@
 			retval = -ENOMEM;
 			goto error;
 		}
+		es2->arpc_urb[i] = urb;
+
 		buffer = kmalloc(ARPC_IN_SIZE_MAX, GFP_KERNEL);
 		if (!buffer) {
 			retval = -ENOMEM;
@@ -1661,7 +1665,6 @@
 				  buffer, ARPC_IN_SIZE_MAX,
 				  arpc_in_callback, es2);
 
-		es2->arpc_urb[i] = urb;
 		es2->arpc_buffer[i] = buffer;
 	}