Re: [patch -rt] make gendev_rel_sem a compat_semaphore

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Crap! I sent this with my kihontech email.  Please respond to this
instead.  I'm still in the process of moving to my new machine, and the
email was messed up.

Thanks,

-- Steve


On Wed, 2005-11-16 at 10:31 -0500, Steven Rostedt wrote:
> Hi Ingo,
> 
> I was getting the following:
> 
> BUG: nonzero lock count 10 at exit time?
>         modprobe: 2972 [ffff81007e1aaf70, 116]
> 
> Call Trace:<ffffffff8014e2db>{printk_task+43} <ffffffff8015040f>{check_no_held_locks+111}
>        <ffffffff80136d3c>{do_exit+3036} <ffffffff80136f5c>{do_group_exit+268}
>        <ffffffff80136f72>{sys_exit_group+18} <ffffffff8011e471>{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 [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux