Re: [PATCH 1/2] usb-serial : fix the nousb oops

From: Dave Young
Date: Tue Feb 03 2009 - 20:10:34 EST


remove wgreathouse@xxxxxxxx in cc-list because this mail will be
rejected by the smva.com email server.

On Wed, Feb 4, 2009 at 7:58 AM, Greg KH <greg@xxxxxxxxx> wrote:
> On Mon, Feb 02, 2009 at 09:43:04AM +0800, Dave Young wrote:
>> On Sun, Feb 1, 2009 at 11:51 PM, Greg KH <greg@xxxxxxxxx> wrote:
>> > On Sun, Feb 01, 2009 at 06:53:23PM +0800, Dave Young wrote:
>> >>
>> >> In case with "nousb" booting, serial drivers will trigger kernel oops.
>> >
>> > They will? What is the oops message?
>>
>> Yes, they will, at lease I saw usb_serial/aircable/ftdi_sio oops. I
>> will manage to copy the oops message later.
>>
>> >
>> >> Here add usb_disabled() check in usb_serial_init and usb_serial_register
>> >
>> > This is odd, is it something new? Why is usb-serial the only driver
>> > that needs such a thing?
>>
>> No, it is not new thing. usb serial drivers normally call
>> usb_serial_register first, then usb_register, usb_register will fail
>> due to "nousb" checking, but usb_serial_register no.
>
> But as usb_register will fail, shouldn't they properly back out and no
> oopses happen? This sounds like a simple fix to the drivers that are
> failing here, not changing the usb-serial core.

Hi greg

I think all usb serial drivers which call usb_serial_register will
oops, so IMHO usb core should be fixed.

I think maybe you missed my another reply, copy the content here again.

---
hand copy part of the oops message:

BUG: unable to handle kernel NULL pointer dereference at 00000001
IP: [<c0527636>] kset_find_obj+0x3b/0x5c
*pde = 00000000
Oops: 0000 [#1] SMP

[snip...]

EIP is at kset_find_obj+0x3b/0x5c
EAX:00000001

[snip...]

Call Trace:
driver_register
destruct_tty_driver
usb_serial_bus_register
usb_serial_register
aircable_init
_stext
aircable_init
restore_nocheck_notrace
pci_arch_init

[snip...]

Actually, after the usb_serial_init failed, the usb_serial_bus_type
will be unregistered.

So when serial dirvers call usb_serial_register (then
usb_serial_bus_register, and then driver_register), due to the bus
kset already unregistered kernel will oops.
---

>
> And this should only be an issue if you build your drivers into the
> kernel, right?

Yes.

>
> thanks,
>
> greg k-h
>



--
Regards
dave
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/