lkml.org 
[lkml]   [2004]   [Apr]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
SubjectRe: [linux-usb-devel] Re: [PATCH 1/9] USB usbfs: take a reference to the usb device
Date
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 14:02    [from the cache]
©2003-2014 Jasper Spaans. hosted at Digital Ocean