usbip_udbg("CMD_UNLINK: seq %u\n", pdu->u.cmd_unlink.seqnum);
                break;
        case USBIP_RET_SUBMIT:
-               usbip_udbg("RET_SUBMIT: st %d al %u sf %d ec %d\n",
+               usbip_udbg("RET_SUBMIT: st %d al %u sf %d #p %d ec %d\n",
                                pdu->u.ret_submit.status,
                                pdu->u.ret_submit.actual_length,
                                pdu->u.ret_submit.start_frame,
+                               pdu->u.ret_submit.number_of_packets,
                                pdu->u.ret_submit.error_count);
        case USBIP_RET_UNLINK:
                usbip_udbg("RET_UNLINK: status %d\n", pdu->u.ret_unlink.status);
                rpdu->status            = urb->status;
                rpdu->actual_length     = urb->actual_length;
                rpdu->start_frame       = urb->start_frame;
+               rpdu->number_of_packets = urb->number_of_packets;
                rpdu->error_count       = urb->error_count;
        } else {
                /* vhci_rx.c */
                urb->status             = rpdu->status;
                urb->actual_length      = rpdu->actual_length;
                urb->start_frame        = rpdu->start_frame;
+               urb->number_of_packets = rpdu->number_of_packets;
                urb->error_count        = rpdu->error_count;
        }
 }
                cpu_to_be32s(&pdu->status);
                cpu_to_be32s(&pdu->actual_length);
                cpu_to_be32s(&pdu->start_frame);
+               cpu_to_be32s(&pdu->number_of_packets);
                cpu_to_be32s(&pdu->error_count);
        } else {
                be32_to_cpus(&pdu->status);
                be32_to_cpus(&pdu->actual_length);
                be32_to_cpus(&pdu->start_frame);
+               cpu_to_be32s(&pdu->number_of_packets);
                be32_to_cpus(&pdu->error_count);
        }
 }