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: Bart Westgeest <bart@elbrys.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
a297ad936e
commit
36ac9b055f
@@ -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,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* 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)
|
|||||||
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,
|
|||||||
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)
|
|||||||
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));
|
||||||
|
Reference in New Issue
Block a user