From: Al Viro <viro@parcelfarce.linux.theplanet.co.uk>

This got caught by gcc on 64bit boxen - IMGSIZE is size_t and that means
range not covered by that of signed 64bit, so we get an unsigned type for
IMGSIZE-*ppos.  On 32bit boxen IMGSIZE-*ppos ends up being loff_t, so the
warning gets silenced.  

Signed-off-by: Andrew Morton <akpm@osdl.org>
---

 25-akpm/drivers/usb/misc/idmouse.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletion(-)

diff -puN drivers/usb/misc/idmouse.c~idmouse-min-fix drivers/usb/misc/idmouse.c
--- 25/drivers/usb/misc/idmouse.c~idmouse-min-fix	2005-01-27 00:42:53.729345672 -0800
+++ 25-akpm/drivers/usb/misc/idmouse.c	2005-01-27 00:42:53.733345064 -0800
@@ -296,7 +296,8 @@ static ssize_t idmouse_read(struct file 
 		return 0;
 	}
 
-	count = min ((loff_t)count, IMGSIZE - (*ppos));
+	if (count > IMGSIZE - *ppos)
+		count = IMGSIZE - *ppos;
 
 	if (copy_to_user (buffer, dev->bulk_in_buffer + *ppos, count)) {
 		result = -EFAULT;
_