Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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>

authored by

Bart Westgeest and committed by
Greg Kroah-Hartman
36ac9b05 a297ad93

+15 -16
+1 -1
drivers/staging/usbip/stub_tx.c
··· 166 166 int ret; 167 167 struct urb *urb = priv->urb; 168 168 struct usbip_header pdu_header; 169 - void *iso_buffer = NULL; 169 + struct usbip_iso_packet_descriptor *iso_buffer = NULL; 170 170 struct kvec *iov = NULL; 171 171 int iovnum = 0; 172 172
+10 -13
drivers/staging/usbip/usbip_common.c
··· 639 639 } 640 640 641 641 /* must free buffer */ 642 - void *usbip_alloc_iso_desc_pdu(struct urb *urb, ssize_t *bufflen) 642 + struct usbip_iso_packet_descriptor* 643 + usbip_alloc_iso_desc_pdu(struct urb *urb, ssize_t *bufflen) 643 644 { 644 - void *buff; 645 645 struct usbip_iso_packet_descriptor *iso; 646 646 int np = urb->number_of_packets; 647 647 ssize_t size = np * sizeof(*iso); 648 648 int i; 649 649 650 - buff = kzalloc(size, GFP_KERNEL); 651 - if (!buff) 650 + iso = kzalloc(size, GFP_KERNEL); 651 + if (!iso) 652 652 return NULL; 653 653 654 654 for (i = 0; i < np; i++) { 655 - iso = buff + (i * sizeof(*iso)); 656 - 657 - usbip_pack_iso(iso, &urb->iso_frame_desc[i], 1); 658 - usbip_iso_packet_correct_endian(iso, 1); 655 + usbip_pack_iso(&iso[i], &urb->iso_frame_desc[i], 1); 656 + usbip_iso_packet_correct_endian(&iso[i], 1); 659 657 } 660 658 661 659 *bufflen = size; 662 660 663 - return buff; 661 + return iso; 664 662 } 665 663 EXPORT_SYMBOL_GPL(usbip_alloc_iso_desc_pdu); 666 664 ··· 701 703 return -EPIPE; 702 704 } 703 705 706 + iso = (struct usbip_iso_packet_descriptor *) buff; 704 707 for (i = 0; i < np; i++) { 705 - iso = buff + (i * sizeof(*iso)); 706 - 707 - usbip_iso_packet_correct_endian(iso, 0); 708 - usbip_pack_iso(iso, &urb->iso_frame_desc[i], 0); 708 + usbip_iso_packet_correct_endian(&iso[i], 0); 709 + usbip_pack_iso(&iso[i], &urb->iso_frame_desc[i], 0); 709 710 total_length += urb->iso_frame_desc[i].actual_length; 710 711 } 711 712
+3 -1
drivers/staging/usbip/usbip_common.h
··· 320 320 int pack); 321 321 void usbip_header_correct_endian(struct usbip_header *pdu, int send); 322 322 323 - void *usbip_alloc_iso_desc_pdu(struct urb *urb, ssize_t *bufflen); 323 + struct usbip_iso_packet_descriptor* 324 + usbip_alloc_iso_desc_pdu(struct urb *urb, ssize_t *bufflen); 325 + 324 326 /* some members of urb must be substituted before. */ 325 327 int usbip_recv_iso(struct usbip_device *ud, struct urb *urb); 326 328 void usbip_pad_iso(struct usbip_device *ud, struct urb *urb);
+1 -1
drivers/staging/usbip/vhci_tx.c
··· 76 76 int ret; 77 77 struct urb *urb = priv->urb; 78 78 struct usbip_header pdu_header; 79 - void *iso_buffer = NULL; 79 + struct usbip_iso_packet_descriptor *iso_buffer = NULL; 80 80 81 81 txsize = 0; 82 82 memset(&pdu_header, 0, sizeof(pdu_header));