forked from mirrors/linux
		
	USB: make transfer_buffer_lengths in struct urb field u32
Roel Kluin pointed out that transfer_buffer_lengths in struct urb was declared as an 'int'. This patch changes this field to be 'u32' to prevent any potential negative conversion and comparison errors. This triggered a few compiler warning messages when these fields were being used with the min macro, so they have also been fixed up in this patch. Cc: Roel Kluin <roel.kluin@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
		
							parent
							
								
									7ea0a2bcfe
								
							
						
					
					
						commit
						16e2e5f634
					
				
					 6 changed files with 9 additions and 9 deletions
				
			
		| 
						 | 
					@ -1437,7 +1437,7 @@ static void dummy_timer (unsigned long _dum)
 | 
				
			||||||
					}
 | 
										}
 | 
				
			||||||
					if (urb->transfer_buffer_length > 1)
 | 
										if (urb->transfer_buffer_length > 1)
 | 
				
			||||||
						buf [1] = 0;
 | 
											buf [1] = 0;
 | 
				
			||||||
					urb->actual_length = min (2,
 | 
										urb->actual_length = min_t(u32, 2,
 | 
				
			||||||
						urb->transfer_buffer_length);
 | 
											urb->transfer_buffer_length);
 | 
				
			||||||
					value = 0;
 | 
										value = 0;
 | 
				
			||||||
					status = 0;
 | 
										status = 0;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -772,7 +772,7 @@ static int isp116x_urb_enqueue(struct usb_hcd *hcd,
 | 
				
			||||||
		break;
 | 
							break;
 | 
				
			||||||
	case PIPE_INTERRUPT:
 | 
						case PIPE_INTERRUPT:
 | 
				
			||||||
		urb->interval = ep->period;
 | 
							urb->interval = ep->period;
 | 
				
			||||||
		ep->length = min((int)ep->maxpacket,
 | 
							ep->length = min_t(u32, ep->maxpacket,
 | 
				
			||||||
				 urb->transfer_buffer_length);
 | 
									 urb->transfer_buffer_length);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		/* urb submitted for already existing endpoint */
 | 
							/* urb submitted for already existing endpoint */
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1394,7 +1394,7 @@ static void packet_write(struct r8a66597 *r8a66597, u16 pipenum)
 | 
				
			||||||
			   (int)urb->iso_frame_desc[td->iso_cnt].length);
 | 
								   (int)urb->iso_frame_desc[td->iso_cnt].length);
 | 
				
			||||||
	} else {
 | 
						} else {
 | 
				
			||||||
		buf = (u16 *)(urb->transfer_buffer + urb->actual_length);
 | 
							buf = (u16 *)(urb->transfer_buffer + urb->actual_length);
 | 
				
			||||||
		size = min((int)bufsize,
 | 
							size = min_t(u32, bufsize,
 | 
				
			||||||
			   urb->transfer_buffer_length - urb->actual_length);
 | 
								   urb->transfer_buffer_length - urb->actual_length);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -230,7 +230,7 @@ static void in_packet(
 | 
				
			||||||
	writeb(usb_pipedevice(urb->pipe), data_reg);
 | 
						writeb(usb_pipedevice(urb->pipe), data_reg);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	sl811_write(sl811, bank + SL11H_HOSTCTLREG, control);
 | 
						sl811_write(sl811, bank + SL11H_HOSTCTLREG, control);
 | 
				
			||||||
	ep->length = min((int)len,
 | 
						ep->length = min_t(u32, len,
 | 
				
			||||||
			urb->transfer_buffer_length - urb->actual_length);
 | 
								urb->transfer_buffer_length - urb->actual_length);
 | 
				
			||||||
	PACKET("IN%s/%d qh%p len%d\n", ep->nak_count ? "/retry" : "",
 | 
						PACKET("IN%s/%d qh%p len%d\n", ep->nak_count ? "/retry" : "",
 | 
				
			||||||
			!!usb_gettoggle(urb->dev, ep->epnum, 0), ep, len);
 | 
								!!usb_gettoggle(urb->dev, ep->epnum, 0), ep, len);
 | 
				
			||||||
| 
						 | 
					@ -255,7 +255,7 @@ static void out_packet(
 | 
				
			||||||
	buf = urb->transfer_buffer + urb->actual_length;
 | 
						buf = urb->transfer_buffer + urb->actual_length;
 | 
				
			||||||
	prefetch(buf);
 | 
						prefetch(buf);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	len = min((int)ep->maxpacket,
 | 
						len = min_t(u32, ep->maxpacket,
 | 
				
			||||||
			urb->transfer_buffer_length - urb->actual_length);
 | 
								urb->transfer_buffer_length - urb->actual_length);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (!(control & SL11H_HCTLMASK_ISOCH)
 | 
						if (!(control & SL11H_HCTLMASK_ISOCH)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1568,7 +1568,7 @@ static int ftdi_elan_edset_input(struct usb_ftdi *ftdi, u8 ed_number,
 | 
				
			||||||
                        struct u132_target *target = &ftdi->target[ed];
 | 
					                        struct u132_target *target = &ftdi->target[ed];
 | 
				
			||||||
                        struct u132_command *command = &ftdi->command[
 | 
					                        struct u132_command *command = &ftdi->command[
 | 
				
			||||||
                                COMMAND_MASK & ftdi->command_next];
 | 
					                                COMMAND_MASK & ftdi->command_next];
 | 
				
			||||||
                        int remaining_length = urb->transfer_buffer_length -
 | 
					                        u32 remaining_length = urb->transfer_buffer_length -
 | 
				
			||||||
                                urb->actual_length;
 | 
					                                urb->actual_length;
 | 
				
			||||||
                        command->header = 0x82 | (ed << 5);
 | 
					                        command->header = 0x82 | (ed << 5);
 | 
				
			||||||
                        if (remaining_length == 0) {
 | 
					                        if (remaining_length == 0) {
 | 
				
			||||||
| 
						 | 
					@ -1702,7 +1702,7 @@ static int ftdi_elan_edset_output(struct usb_ftdi *ftdi, u8 ed_number,
 | 
				
			||||||
                                | (address << 0);
 | 
					                                | (address << 0);
 | 
				
			||||||
                        command->width = usb_maxpacket(urb->dev, urb->pipe,
 | 
					                        command->width = usb_maxpacket(urb->dev, urb->pipe,
 | 
				
			||||||
                                usb_pipeout(urb->pipe));
 | 
					                                usb_pipeout(urb->pipe));
 | 
				
			||||||
                        command->follows = min(1024,
 | 
					                        command->follows = min_t(u32, 1024,
 | 
				
			||||||
                                urb->transfer_buffer_length -
 | 
					                                urb->transfer_buffer_length -
 | 
				
			||||||
                                urb->actual_length);
 | 
					                                urb->actual_length);
 | 
				
			||||||
                        command->value = 0;
 | 
					                        command->value = 0;
 | 
				
			||||||
| 
						 | 
					@ -1766,7 +1766,7 @@ static int ftdi_elan_edset_single(struct usb_ftdi *ftdi, u8 ed_number,
 | 
				
			||||||
                mutex_lock(&ftdi->u132_lock);
 | 
					                mutex_lock(&ftdi->u132_lock);
 | 
				
			||||||
                command_size = ftdi->command_next - ftdi->command_head;
 | 
					                command_size = ftdi->command_next - ftdi->command_head;
 | 
				
			||||||
                if (command_size < COMMAND_SIZE) {
 | 
					                if (command_size < COMMAND_SIZE) {
 | 
				
			||||||
                        int remaining_length = urb->transfer_buffer_length -
 | 
					                        u32 remaining_length = urb->transfer_buffer_length -
 | 
				
			||||||
                                urb->actual_length;
 | 
					                                urb->actual_length;
 | 
				
			||||||
                        struct u132_target *target = &ftdi->target[ed];
 | 
					                        struct u132_target *target = &ftdi->target[ed];
 | 
				
			||||||
                        struct u132_command *command = &ftdi->command[
 | 
					                        struct u132_command *command = &ftdi->command[
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1177,7 +1177,7 @@ struct urb {
 | 
				
			||||||
	unsigned int transfer_flags;	/* (in) URB_SHORT_NOT_OK | ...*/
 | 
						unsigned int transfer_flags;	/* (in) URB_SHORT_NOT_OK | ...*/
 | 
				
			||||||
	void *transfer_buffer;		/* (in) associated data buffer */
 | 
						void *transfer_buffer;		/* (in) associated data buffer */
 | 
				
			||||||
	dma_addr_t transfer_dma;	/* (in) dma addr for transfer_buffer */
 | 
						dma_addr_t transfer_dma;	/* (in) dma addr for transfer_buffer */
 | 
				
			||||||
	int transfer_buffer_length;	/* (in) data buffer length */
 | 
						u32 transfer_buffer_length;	/* (in) data buffer length */
 | 
				
			||||||
	int actual_length;		/* (return) actual transfer length */
 | 
						int actual_length;		/* (return) actual transfer length */
 | 
				
			||||||
	unsigned char *setup_packet;	/* (in) setup packet (control only) */
 | 
						unsigned char *setup_packet;	/* (in) setup packet (control only) */
 | 
				
			||||||
	dma_addr_t setup_dma;		/* (in) dma addr for setup_packet */
 | 
						dma_addr_t setup_dma;		/* (in) dma addr for setup_packet */
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue