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

From: Dave Young
Date: Mon Feb 02 2009 - 05:11:50 EST


On Mon, Feb 2, 2009 at 9:43 AM, Dave Young <hidave.darkstar@xxxxxxxxx> 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.

I can not copy the oops message, so I just hand copy something here:

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.

>
>>
>>> 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.
>
>>
>> confused,
>>
>> greg k-h
>>
>
>
>
> --
> Regards
> dave
>



--
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/