lkml.org 
[lkml]   [2004]   [Apr]   [30]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
FromDuncan Sands <>
SubjectRe: [linux-usb-devel] Re: [PATCH 1/9] USB usbfs: take a reference to the usb device
DateFri, 30 Apr 2004 11:04:24 +0200
On Tuesday 27 April 2004 10:58, Oliver Neukum wrote:
> Am Dienstag, 27. April 2004 00:14 schrieb Greg KH:
> > On Mon, Apr 26, 2004 at 04:05:17PM +0200, Duncan Sands wrote:
> > > diff -Nru a/drivers/usb/core/devio.c b/drivers/usb/core/devio.c
> > > --- a/drivers/usb/core/devio.c	Mon Apr 26 13:48:28 2004
> > > +++ b/drivers/usb/core/devio.c	Mon Apr 26 13:48:28 2004
> > > @@ -350,8 +350,8 @@
> > >  	 * all pending I/O requests; 2.6 does that.
> > >  	 */
> > >
> > > -	if (ifnum < 8*sizeof(ps->ifclaimed))
> > > -		clear_bit(ifnum, &ps->ifclaimed);
> > > +	BUG_ON(ifnum >= 8*sizeof(ps->ifclaimed));
> >
> > I've changed that to a WARN_ON().  Yeah, writing over memory is bad, but
> > oopsing is worse.  Let's be a bit nicer than that.
>
> You aren't nice that way. An oops has localised consequences. Scribbling
> over memory can cause anything.

Hi Greg, if won't accept a BUG_ON, how about the following?

--- usb-2.6/drivers/usb/core/devio.c.orig	2004-04-30 11:36:17.000000000 +0200
+++ usb-2.6/drivers/usb/core/devio.c	2004-04-30 12:01:37.000000000 +0200
@@ -350,8 +350,11 @@
 	 * all pending I/O requests; 2.6 does that.
 	 */
 
-	WARN_ON(ifnum >= 8*sizeof(ps->ifclaimed));
-	clear_bit(ifnum, &ps->ifclaimed);
+	if (likely(ifnum < 8*sizeof(ps->ifclaimed)))
+		clear_bit(ifnum, &ps->ifclaimed);
+	else
+		warn("interface number %u out of range", ifnum);
+
 	usb_set_intfdata (intf, NULL);
 
 	/* force async requests to complete */
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/
\
 
 \ /
  Last update: 2005-03-22 13:02    [W:1.136 / U:0.020 seconds]
©2003-2008 Jasper Spaans