Commit 36ac9b05 authored by Bart Westgeest's avatar Bart Westgeest Committed by Greg Kroah-Hartman

staging: usbip: replaced pointer arithmetic, and strongly type function return.

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: default avatarBart Westgeest <bart@elbrys.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent a297ad93
...@@ -166,7 +166,7 @@ static int stub_send_ret_submit(struct stub_device *sdev) ...@@ -166,7 +166,7 @@ static int stub_send_ret_submit(struct stub_device *sdev)
int ret; int ret;
struct urb *urb = priv->urb; struct urb *urb = priv->urb;
struct usbip_header pdu_header; struct usbip_header pdu_header;
void *iso_buffer = NULL; struct usbip_iso_packet_descriptor *iso_buffer = NULL;
struct kvec *iov = NULL; struct kvec *iov = NULL;
int iovnum = 0; int iovnum = 0;
......
...@@ -639,28 +639,26 @@ static void usbip_pack_iso(struct usbip_iso_packet_descriptor *iso, ...@@ -639,28 +639,26 @@ static void usbip_pack_iso(struct usbip_iso_packet_descriptor *iso,
} }
/* must free buffer */ /* 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; struct usbip_iso_packet_descriptor *iso;
int np = urb->number_of_packets; int np = urb->number_of_packets;
ssize_t size = np * sizeof(*iso); ssize_t size = np * sizeof(*iso);
int i; int i;
buff = kzalloc(size, GFP_KERNEL); iso = kzalloc(size, GFP_KERNEL);
if (!buff) if (!iso)
return NULL; return NULL;
for (i = 0; i < np; i++) { for (i = 0; i < np; i++) {
iso = buff + (i * sizeof(*iso)); usbip_pack_iso(&iso[i], &urb->iso_frame_desc[i], 1);
usbip_iso_packet_correct_endian(&iso[i], 1);
usbip_pack_iso(iso, &urb->iso_frame_desc[i], 1);
usbip_iso_packet_correct_endian(iso, 1);
} }
*bufflen = size; *bufflen = size;
return buff; return iso;
} }
EXPORT_SYMBOL_GPL(usbip_alloc_iso_desc_pdu); EXPORT_SYMBOL_GPL(usbip_alloc_iso_desc_pdu);
...@@ -703,11 +701,10 @@ int usbip_recv_iso(struct usbip_device *ud, struct urb *urb) ...@@ -703,11 +701,10 @@ int usbip_recv_iso(struct usbip_device *ud, struct urb *urb)
return -EPIPE; return -EPIPE;
} }
iso = (struct usbip_iso_packet_descriptor *) buff;
for (i = 0; i < np; i++) { for (i = 0; i < np; i++) {
iso = buff + (i * sizeof(*iso)); usbip_iso_packet_correct_endian(&iso[i], 0);
usbip_pack_iso(&iso[i], &urb->iso_frame_desc[i], 0);
usbip_iso_packet_correct_endian(iso, 0);
usbip_pack_iso(iso, &urb->iso_frame_desc[i], 0);
total_length += urb->iso_frame_desc[i].actual_length; total_length += urb->iso_frame_desc[i].actual_length;
} }
......
...@@ -320,7 +320,9 @@ void usbip_pack_pdu(struct usbip_header *pdu, struct urb *urb, int cmd, ...@@ -320,7 +320,9 @@ void usbip_pack_pdu(struct usbip_header *pdu, struct urb *urb, int cmd,
int pack); int pack);
void usbip_header_correct_endian(struct usbip_header *pdu, int send); 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. */ /* some members of urb must be substituted before. */
int usbip_recv_iso(struct usbip_device *ud, struct urb *urb); int usbip_recv_iso(struct usbip_device *ud, struct urb *urb);
void usbip_pad_iso(struct usbip_device *ud, struct urb *urb); void usbip_pad_iso(struct usbip_device *ud, struct urb *urb);
......
...@@ -76,7 +76,7 @@ static int vhci_send_cmd_submit(struct vhci_device *vdev) ...@@ -76,7 +76,7 @@ static int vhci_send_cmd_submit(struct vhci_device *vdev)
int ret; int ret;
struct urb *urb = priv->urb; struct urb *urb = priv->urb;
struct usbip_header pdu_header; struct usbip_header pdu_header;
void *iso_buffer = NULL; struct usbip_iso_packet_descriptor *iso_buffer = NULL;
txsize = 0; txsize = 0;
memset(&pdu_header, 0, sizeof(pdu_header)); memset(&pdu_header, 0, sizeof(pdu_header));
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment