Replaced pointer arithmetic by using array indexing, and changed
function return type for usbip_alloc_iso_desc_pdu from 'void*' to
'struct usbip_iso_packet_descriptor'.

Signed-off-by: Bart Westgeest <[email protected]>
---
 drivers/staging/usbip/stub_tx.c      |    2 +-
 drivers/staging/usbip/usbip_common.c |   23 ++++++++++-------------
 drivers/staging/usbip/usbip_common.h |    4 +++-
 drivers/staging/usbip/vhci_tx.c      |    2 +-
 4 files changed, 15 insertions(+), 16 deletions(-)

diff --git a/drivers/staging/usbip/stub_tx.c b/drivers/staging/usbip/stub_tx.c
index 023fda3..1c37b5d 100644
--- a/drivers/staging/usbip/stub_tx.c
+++ b/drivers/staging/usbip/stub_tx.c
@@ -166,7 +166,7 @@ static int stub_send_ret_submit(struct stub_device *sdev)
                int ret;
                struct urb *urb = priv->urb;
                struct usbip_header pdu_header;
-               void *iso_buffer = NULL;
+               struct usbip_iso_packet_descriptor *iso_buffer = NULL;
                struct kvec *iov = NULL;
                int iovnum = 0;
 
diff --git a/drivers/staging/usbip/usbip_common.c 
b/drivers/staging/usbip/usbip_common.c
index 57f11f9..ec7a885 100644
--- a/drivers/staging/usbip/usbip_common.c
+++ b/drivers/staging/usbip/usbip_common.c
@@ -639,28 +639,26 @@ static void usbip_pack_iso(struct 
usbip_iso_packet_descriptor *iso,
 }
 
 /* must free buffer */
-void *usbip_alloc_iso_desc_pdu(struct urb *urb, ssize_t *bufflen)
+struct usbip_iso_packet_descriptor*
+usbip_alloc_iso_desc_pdu(struct urb *urb, ssize_t *bufflen)
 {
-       void *buff;
        struct usbip_iso_packet_descriptor *iso;
        int np = urb->number_of_packets;
        ssize_t size = np * sizeof(*iso);
        int i;
 
-       buff = kzalloc(size, GFP_KERNEL);
-       if (!buff)
+       iso = kzalloc(size, GFP_KERNEL);
+       if (!iso)
                return NULL;
 
        for (i = 0; i < np; i++) {
-               iso = buff + (i * sizeof(*iso));
-
-               usbip_pack_iso(iso, &urb->iso_frame_desc[i], 1);
-               usbip_iso_packet_correct_endian(iso, 1);
+               usbip_pack_iso(&iso[i], &urb->iso_frame_desc[i], 1);
+               usbip_iso_packet_correct_endian(&iso[i], 1);
        }
 
        *bufflen = size;
 
-       return buff;
+       return iso;
 }
 EXPORT_SYMBOL_GPL(usbip_alloc_iso_desc_pdu);
 
@@ -703,11 +701,10 @@ int usbip_recv_iso(struct usbip_device *ud, struct urb 
*urb)
                return -EPIPE;
        }
 
+       iso = (struct usbip_iso_packet_descriptor *) buff;
        for (i = 0; i < np; i++) {
-               iso = buff + (i * sizeof(*iso));
-
-               usbip_iso_packet_correct_endian(iso, 0);
-               usbip_pack_iso(iso, &urb->iso_frame_desc[i], 0);
+               usbip_iso_packet_correct_endian(&iso[i], 0);
+               usbip_pack_iso(&iso[i], &urb->iso_frame_desc[i], 0);
                total_length += urb->iso_frame_desc[i].actual_length;
        }
 
diff --git a/drivers/staging/usbip/usbip_common.h 
b/drivers/staging/usbip/usbip_common.h
index 5d89c0f..7e6c543 100644
--- a/drivers/staging/usbip/usbip_common.h
+++ b/drivers/staging/usbip/usbip_common.h
@@ -320,7 +320,9 @@ void usbip_pack_pdu(struct usbip_header *pdu, struct urb 
*urb, int cmd,
                    int pack);
 void usbip_header_correct_endian(struct usbip_header *pdu, int send);
 
-void *usbip_alloc_iso_desc_pdu(struct urb *urb, ssize_t *bufflen);
+struct usbip_iso_packet_descriptor*
+usbip_alloc_iso_desc_pdu(struct urb *urb, ssize_t *bufflen);
+
 /* some members of urb must be substituted before. */
 int usbip_recv_iso(struct usbip_device *ud, struct urb *urb);
 void usbip_pad_iso(struct usbip_device *ud, struct urb *urb);
diff --git a/drivers/staging/usbip/vhci_tx.c b/drivers/staging/usbip/vhci_tx.c
index 9b437e7..b1f0dcd 100644
--- a/drivers/staging/usbip/vhci_tx.c
+++ b/drivers/staging/usbip/vhci_tx.c
@@ -76,7 +76,7 @@ static int vhci_send_cmd_submit(struct vhci_device *vdev)
                int ret;
                struct urb *urb = priv->urb;
                struct usbip_header pdu_header;
-               void *iso_buffer = NULL;
+               struct usbip_iso_packet_descriptor *iso_buffer = NULL;
 
                txsize = 0;
                memset(&pdu_header, 0, sizeof(pdu_header));
-- 
1.7.10.4

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to