usb: misc: fix that MDM diag not operate after SSR3

This fixes that MDM diag does not operate after SSR3.
HSIC read buffer should be always released even if MDM crashed.

Change-Id: I673117c491507df6b508538e76afe12106d63688
diff --git a/drivers/usb/misc/diag_bridge.c b/drivers/usb/misc/diag_bridge.c
index 6d5544a..09b3203 100644
--- a/drivers/usb/misc/diag_bridge.c
+++ b/drivers/usb/misc/diag_bridge.c
@@ -96,6 +96,12 @@
 	dev_dbg(&dev->ifc->dev, "%s: status:%d actual:%d\n", __func__,
 			urb->status, urb->actual_length);
 
+	if (cbs && cbs->read_complete_cb)
+		cbs->read_complete_cb(cbs->ctxt,
+			urb->transfer_buffer,
+			urb->transfer_buffer_length,
+			urb->status < 0 ? urb->status : urb->actual_length);
+
 	if (urb->status == -EPROTO) {
 		dev_err(&dev->ifc->dev, "%s: proto error\n", __func__);
 		/* save error so that subsequent read/write returns ENODEV */
@@ -104,12 +110,6 @@
 		return;
 	}
 
-	if (cbs && cbs->read_complete_cb)
-		cbs->read_complete_cb(cbs->ctxt,
-			urb->transfer_buffer,
-			urb->transfer_buffer_length,
-			urb->status < 0 ? urb->status : urb->actual_length);
-
 	dev->bytes_to_host += urb->actual_length;
 	dev->pending_reads--;
 	kref_put(&dev->kref, diag_bridge_delete);