Re: Oops in make_class_name in 2.6.22.1 on Fedora

From: Chuck Ebbert
Date: Mon Oct 22 2007 - 18:07:17 EST


On 09/11/2007 11:11 AM, Alan Stern wrote:
>>>
>>> I do not seem to be able to find an answer, sorry.
>>> Do you happen to remember if this was fixed after 2.6.22.1:
>>>
>>> localhost kernel: EIP is at make_class_name+0x27/0x7a
>>> localhost kernel: [<c05586f1>] class_device_del+0x97/0x119
>>> localhost kernel: [<c055877b>] class_device_unregister+0x8/0x10
>>> localhost kernel: [<e08735f4>] __scsi_remove_device+0x1d/0x60 [scsi_mod]
>>> localhost kernel: [<e08711ae>] scsi_forget_host+0x2d/0x4a [scsi_mod]
>>> localhost kernel: [<e086c49c>] scsi_remove_host+0x65/0xd5 [scsi_mod]
>>> localhost kernel: [<e0e76775>] storage_disconnect+0xe/0x16 [usb_storage]
>>> localhost kernel: [<c056f8b8>] usb_unbind_interface+0x44/0x85
>>> localhost kernel: [<c0557df7>] __device_release_driver+0x6e/0x8b
>>>
>>> Obviously a known bug but all I see is users reporting it. In my case
>>> it's this:
>>> https://bugzilla.redhat.com/show_bug.cgi?id=253424
>>> I saw Alan giving it a try here:
>>> http://lkml.org/lkml/2007/7/12/259
>> I think this was a scsi problem that has been fixed, but don't really
>> remember the exact commit.
>
> Yes. There are some bugs in the SCSI async-scanning code, and there is
> a patch to fix them:
>
> http://git.kernel.org/?p=linux/kernel/git/jejb/scsi-misc-2.6.git;a=commit;h=a93a091df8232fad60867d41fbc3be855a0b78f2
>
> It is scheduled for 2.6.24. For now, people can work around the bug by
> disabling CONFIG_SCSI_SCAN_ASYNC.
>

The bug still happens with that patch applied and CONFIG_SCSI_SCAN_ASYNC
enabled. In the marked line, class_dev->class->name is NULL and this causes
the oops in make_class_name().


static void remove_deprecated_class_device_links(struct class_device *class_dev)
{
char *class_name;

if (!class_dev->dev)
return;

===>> class_name = make_class_name(class_dev->class->name, &class_dev->kobj);
if (class_name)
sysfs_remove_link(&class_dev->dev->kobj, class_name);
kfree(class_name);
}

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