Re: [BUG ?] kmalloc() with GFP_KERNEL while holding spinlock ?

From: Johannes Weiner
Date: Wed May 28 2008 - 23:59:47 EST


Hi,

Li Zefan <lizf@xxxxxxxxxxxxxx> writes:

> I noticed the following issue in the code:
>
> in drivers/ata/libata-acpi.c:
>
> static void ata_acpi_handle_hotplug(struct ata_port *ap, struct ata_device *dev,
> u32 event)
> {
> ...
> spin_lock_irqsave(ap->lock, flags);
> ...
>
> if (dev) {
> if (dev->sdev)
> kobj = &dev->sdev->sdev_gendev.kobj;
> } else
> kobj = &ap->dev->kobj;
>
> if (kobj) {
> sprintf(event_string, "BAY_EVENT=%d", event);
> kobject_uevent_env(kobj, KOBJ_CHANGE, envp);
> }
>
> spin_unlock_irqrestore(ap->lock, flags);
> ...
> }
>
> and kobject_uevent_env() calls kzalloc(..., GFP_KERNEL);

Fixed by commit ae6c23c4e1ec9720b99e1e6850fe47c6c7fddbb3 "Fixups to ATA
ACPI hotplug" by Matthew Garrett.

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