aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@suse.de>2009-03-03 19:44:13 -0500
committerGreg Kroah-Hartman <gregkh@suse.de>2009-03-24 19:20:36 -0400
commit16e2e5f634f86ccda18366967c4e592eb61bc9cc (patch)
treec736a81517e929559c83cc5eb9fb6f4d04458571
parent7ea0a2bcfe40b1c525e63e931b7142ab22b64269 (diff)
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>
-rw-r--r--drivers/usb/gadget/dummy_hcd.c2
-rw-r--r--drivers/usb/host/isp116x-hcd.c2
-rw-r--r--drivers/usb/host/r8a66597-hcd.c2
-rw-r--r--drivers/usb/host/sl811-hcd.c4
-rw-r--r--drivers/usb/misc/ftdi-elan.c6
-rw-r--r--include/linux/usb.h2
6 files changed, 9 insertions, 9 deletions
diff --git a/drivers/usb/gadget/dummy_hcd.c b/drivers/usb/gadget/dummy_hcd.c
index 3b42888b72f8..a56b24d305f8 100644
--- a/drivers/usb/gadget/dummy_hcd.c
+++ b/drivers/usb/gadget/dummy_hcd.c
@@ -1437,7 +1437,7 @@ restart:
1437 } 1437 }
1438 if (urb->transfer_buffer_length > 1) 1438 if (urb->transfer_buffer_length > 1)
1439 buf [1] = 0; 1439 buf [1] = 0;
1440 urb->actual_length = min (2, 1440 urb->actual_length = min_t(u32, 2,
1441 urb->transfer_buffer_length); 1441 urb->transfer_buffer_length);
1442 value = 0; 1442 value = 0;
1443 status = 0; 1443 status = 0;
diff --git a/drivers/usb/host/isp116x-hcd.c b/drivers/usb/host/isp116x-hcd.c
index 4dda31b26892..a2b305477afe 100644
--- a/drivers/usb/host/isp116x-hcd.c
+++ b/drivers/usb/host/isp116x-hcd.c
@@ -772,7 +772,7 @@ static int isp116x_urb_enqueue(struct usb_hcd *hcd,
772 break; 772 break;
773 case PIPE_INTERRUPT: 773 case PIPE_INTERRUPT:
774 urb->interval = ep->period; 774 urb->interval = ep->period;
775 ep->length = min((int)ep->maxpacket, 775 ep->length = min_t(u32, ep->maxpacket,
776 urb->transfer_buffer_length); 776 urb->transfer_buffer_length);
777 777
778 /* urb submitted for already existing endpoint */ 778 /* urb submitted for already existing endpoint */
diff --git a/drivers/usb/host/r8a66597-hcd.c b/drivers/usb/host/r8a66597-hcd.c
index 5e942d94aebe..713f4cf0b0dd 100644
--- a/drivers/usb/host/r8a66597-hcd.c
+++ b/drivers/usb/host/r8a66597-hcd.c
@@ -1394,7 +1394,7 @@ static void packet_write(struct r8a66597 *r8a66597, u16 pipenum)
1394 (int)urb->iso_frame_desc[td->iso_cnt].length); 1394 (int)urb->iso_frame_desc[td->iso_cnt].length);
1395 } else { 1395 } else {
1396 buf = (u16 *)(urb->transfer_buffer + urb->actual_length); 1396 buf = (u16 *)(urb->transfer_buffer + urb->actual_length);
1397 size = min((int)bufsize, 1397 size = min_t(u32, bufsize,
1398 urb->transfer_buffer_length - urb->actual_length); 1398 urb->transfer_buffer_length - urb->actual_length);
1399 } 1399 }
1400 1400
diff --git a/drivers/usb/host/sl811-hcd.c b/drivers/usb/host/sl811-hcd.c
index e106e9d48d4a..a949259f18b9 100644
--- a/drivers/usb/host/sl811-hcd.c
+++ b/drivers/usb/host/sl811-hcd.c
@@ -230,7 +230,7 @@ static void in_packet(
230 writeb(usb_pipedevice(urb->pipe), data_reg); 230 writeb(usb_pipedevice(urb->pipe), data_reg);
231 231
232 sl811_write(sl811, bank + SL11H_HOSTCTLREG, control); 232 sl811_write(sl811, bank + SL11H_HOSTCTLREG, control);
233 ep->length = min((int)len, 233 ep->length = min_t(u32, len,
234 urb->transfer_buffer_length - urb->actual_length); 234 urb->transfer_buffer_length - urb->actual_length);
235 PACKET("IN%s/%d qh%p len%d\n", ep->nak_count ? "/retry" : "", 235 PACKET("IN%s/%d qh%p len%d\n", ep->nak_count ? "/retry" : "",
236 !!usb_gettoggle(urb->dev, ep->epnum, 0), ep, len); 236 !!usb_gettoggle(urb->dev, ep->epnum, 0), ep, len);
@@ -255,7 +255,7 @@ static void out_packet(
255 buf = urb->transfer_buffer + urb->actual_length; 255 buf = urb->transfer_buffer + urb->actual_length;
256 prefetch(buf); 256 prefetch(buf);
257 257
258 len = min((int)ep->maxpacket, 258 len = min_t(u32, ep->maxpacket,
259 urb->transfer_buffer_length - urb->actual_length); 259 urb->transfer_buffer_length - urb->actual_length);
260 260
261 if (!(control & SL11H_HCTLMASK_ISOCH) 261 if (!(control & SL11H_HCTLMASK_ISOCH)
diff --git a/drivers/usb/misc/ftdi-elan.c b/drivers/usb/misc/ftdi-elan.c
index 79a7668ef264..9d0675ed0d4c 100644
--- a/drivers/usb/misc/ftdi-elan.c
+++ b/drivers/usb/misc/ftdi-elan.c
@@ -1568,7 +1568,7 @@ static int ftdi_elan_edset_input(struct usb_ftdi *ftdi, u8 ed_number,
1568 struct u132_target *target = &ftdi->target[ed]; 1568 struct u132_target *target = &ftdi->target[ed];
1569 struct u132_command *command = &ftdi->command[ 1569 struct u132_command *command = &ftdi->command[
1570 COMMAND_MASK & ftdi->command_next]; 1570 COMMAND_MASK & ftdi->command_next];
1571 int remaining_length = urb->transfer_buffer_length - 1571 u32 remaining_length = urb->transfer_buffer_length -
1572 urb->actual_length; 1572 urb->actual_length;
1573 command->header = 0x82 | (ed << 5); 1573 command->header = 0x82 | (ed << 5);
1574 if (remaining_length == 0) { 1574 if (remaining_length == 0) {
@@ -1702,7 +1702,7 @@ static int ftdi_elan_edset_output(struct usb_ftdi *ftdi, u8 ed_number,
1702 | (address << 0); 1702 | (address << 0);
1703 command->width = usb_maxpacket(urb->dev, urb->pipe, 1703 command->width = usb_maxpacket(urb->dev, urb->pipe,
1704 usb_pipeout(urb->pipe)); 1704 usb_pipeout(urb->pipe));
1705 command->follows = min(1024, 1705 command->follows = min_t(u32, 1024,
1706 urb->transfer_buffer_length - 1706 urb->transfer_buffer_length -
1707 urb->actual_length); 1707 urb->actual_length);
1708 command->value = 0; 1708 command->value = 0;
@@ -1766,7 +1766,7 @@ static int ftdi_elan_edset_single(struct usb_ftdi *ftdi, u8 ed_number,
1766 mutex_lock(&ftdi->u132_lock); 1766 mutex_lock(&ftdi->u132_lock);
1767 command_size = ftdi->command_next - ftdi->command_head; 1767 command_size = ftdi->command_next - ftdi->command_head;
1768 if (command_size < COMMAND_SIZE) { 1768 if (command_size < COMMAND_SIZE) {
1769 int remaining_length = urb->transfer_buffer_length - 1769 u32 remaining_length = urb->transfer_buffer_length -
1770 urb->actual_length; 1770 urb->actual_length;
1771 struct u132_target *target = &ftdi->target[ed]; 1771 struct u132_target *target = &ftdi->target[ed];
1772 struct u132_command *command = &ftdi->command[ 1772 struct u132_command *command = &ftdi->command[
diff --git a/include/linux/usb.h b/include/linux/usb.h
index 0c05ff621192..db8808e05a2a 100644
--- a/include/linux/usb.h
+++ b/include/linux/usb.h
@@ -1177,7 +1177,7 @@ struct urb {
1177 unsigned int transfer_flags; /* (in) URB_SHORT_NOT_OK | ...*/ 1177 unsigned int transfer_flags; /* (in) URB_SHORT_NOT_OK | ...*/
1178 void *transfer_buffer; /* (in) associated data buffer */ 1178 void *transfer_buffer; /* (in) associated data buffer */
1179 dma_addr_t transfer_dma; /* (in) dma addr for transfer_buffer */ 1179 dma_addr_t transfer_dma; /* (in) dma addr for transfer_buffer */
1180 int transfer_buffer_length; /* (in) data buffer length */ 1180 u32 transfer_buffer_length; /* (in) data buffer length */
1181 int actual_length; /* (return) actual transfer length */ 1181 int actual_length; /* (return) actual transfer length */
1182 unsigned char *setup_packet; /* (in) setup packet (control only) */ 1182 unsigned char *setup_packet; /* (in) setup packet (control only) */
1183 dma_addr_t setup_dma; /* (in) dma addr for setup_packet */ 1183 dma_addr_t setup_dma; /* (in) dma addr for setup_packet */