From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755376AbYE2DXj (ORCPT ); Wed, 28 May 2008 23:23:39 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1752049AbYE2DX3 (ORCPT ); Wed, 28 May 2008 23:23:29 -0400 Received: from cn.fujitsu.com ([222.73.24.84]:51173 "EHLO song.cn.fujitsu.com" rhost-flags-OK-FAIL-OK-OK) by vger.kernel.org with ESMTP id S1751379AbYE2DX2 (ORCPT ); Wed, 28 May 2008 23:23:28 -0400 Message-ID: <483E2156.9020108@cn.fujitsu.com> Date: Thu, 29 May 2008 11:21:58 +0800 From: Li Zefan User-Agent: Thunderbird 2.0.0.9 (X11/20071115) MIME-Version: 1.0 To: Jeff Garzik CC: Tejun Heo , LKML , linux-ide@vger.kernel.org Subject: [BUG ?] kmalloc() with GFP_KERNEL while holding spinlock ? Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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);