int st5481_isoc_flatten(struct urb *urb) 
static int st5481_isoc_flatten(struct urb *urb) 
int st5481_isoc_flatten(struct urb *urb){	struct usb_iso_packet_descriptor *pipd,*pend;	unsigned char *src,*dst;	unsigned int len;		if (urb->status < 0) {		return urb->status;	}	for (pipd = &urb->iso_frame_desc[0],		     pend = &urb->iso_frame_desc[urb->number_of_packets],		     dst = urb->transfer_buffer; 	     pipd < pend; 	     pipd++) {				if (pipd->status < 0) {			return (pipd->status);		}			len = pipd->actual_length;		pipd->actual_length = 0;		src = urb->transfer_buffer+pipd->offset;		if (src != dst) {			// Need to copy since isoc buffers not full			while (len--) {				*dst++ = *src++;			}					} else {			// No need to copy, just update destination buffer			dst += len;		}	}	// Return size of flattened buffer	return (dst - (unsigned char *)urb->transfer_buffer);}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/672c3fd9069e5a138f9d4afc9aeb5aa34aacce32/st5481_usb.c/buggy/drivers/isdn/hisax/st5481_usb.c