Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751479AbVKPPbk (ORCPT ); Wed, 16 Nov 2005 10:31:40 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1751477AbVKPPbk (ORCPT ); Wed, 16 Nov 2005 10:31:40 -0500 Received: from cpe-24-94-57-164.stny.res.rr.com ([24.94.57.164]:35991 "EHLO gandalf.stny.rr.com") by vger.kernel.org with ESMTP id S1751479AbVKPPbj (ORCPT ); Wed, 16 Nov 2005 10:31:39 -0500 Subject: [patch -rt] make gendev_rel_sem a compat_semaphore From: Steven Rostedt To: Ingo Molnar Cc: LKML Content-Type: text/plain Date: Wed, 16 Nov 2005 10:31:32 -0500 Message-Id: <1132155092.6266.6.camel@localhost.localdomain> Mime-Version: 1.0 X-Mailer: Evolution 2.2.3 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1909 Lines: 51 Hi Ingo, I was getting the following: BUG: nonzero lock count 10 at exit time? modprobe: 2972 [ffff81007e1aaf70, 116] Call Trace:{printk_task+43} {check_no_held_locks+111} {do_exit+3036} {do_group_exit+268} {sys_exit_group+18} {ia32_sysret+0} --------------------------- | preempt count: 00000000 ] | 0-level deep critical section nesting: ---------------------------------------- hdc: ATAPI 40X DVD-ROM DVD-R CD-R/RW drive, 2048kB Cache, UDMA(33) Uniform CD-ROM driver Revision: 3.20 BUG: modprobe/2972, lock held at task exit time! [ffffffff8809fd00] {(struct semaphore *)(&hwif->gendev_rel_sem)} .. held by: modprobe: 2972 [ffff81007e1aaf70, 116] ... acquired at: init_hwif_data+0xaf/0x1a0 [ide_core] [snipped to not be so annoying] Looking into this I see that gendev_rel_sem, which is only used when the device is unregistered, is defined as a semaphore. This patch changes this to be a compat_semaphore. -- Steve Index: linux-2.6.14-rt13/include/linux/ide.h =================================================================== --- linux-2.6.14-rt13.orig/include/linux/ide.h 2005-11-15 11:12:37.000000000 -0500 +++ linux-2.6.14-rt13/include/linux/ide.h 2005-11-16 10:09:10.000000000 -0500 @@ -910,7 +910,7 @@ unsigned sg_mapped : 1; /* sg_table and sg_nents are ready */ struct device gendev; - struct semaphore gendev_rel_sem; /* To deal with device release() */ + struct compat_semaphore gendev_rel_sem; /* To deal with device release() */ void *hwif_data; /* extra hwif data */ - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/