Re: Kernel OOPS in usb_submit_urb in drivers/usb/core/urb.c

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, 27 Jul 2012, Damjan wrote:

> > No, that's not right at all, for a couple of reasons.
> >
> > First, &ep->desc is the address of a member of a structure.  Even if ep
> > itself were null, &ep->desc would not be NULL unless desc happened to
> > be the first member of the ep structure (it is now, but there's no
> > guarantee that it always will be).  Probably you really meant to test
> > ep instead of &ep->desc.
> 
> Maybe I read the kernel OOPS wrong. Was &ep->desc NULL or not?

It's hard to tell from the information in the oops.  You'd have to get 
an assembly listing of usb_submit_urb() and figure out what source code 
statement corresponds to offset 0x75 in the object code.

Why did you originally think the problem was in the usb_endpoint_type 
function call?

> Also there's a check for a NULL ep 9 lines above this code, so I guess 
> ep was not NULL.

Right.  But apparently _something_ was NULL.

> > Second, ep will never be NULL if the system is working correctly.  If
> > it is NULL then the caller is buggy.  We don't want to paper over bugs
> > in drivers; we want to find them and fix them.
> 
> Maybe BUG_ON or something?

An oops is about as good as a BUG_ON.  In fact it's better, because it 
won't crash the whole machine.

Alan Stern

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux