Messages in this thread Patch in this message | | | From | Duncan Sands <> | Subject | Re: [linux-usb-devel] Re: [PATCH 1/9] USB usbfs: take a reference to the usb device | Date | Fri, 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/
| |