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

From: Li Zefan
Date: Wed May 28 2008 - 23:23:56 EST


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