On Thu, May 15, 2008 at 05:01:01PM +0800, Dave Young wrote: > > The classes are different here, first sdev_class, then sg_sysfs_class Oh ... right. I misread scsi_register_interface as class_register_interface. > Greg, what about using mutex_lock_nested to silence lockdep? They are > the only usage of class->mutex out of class.c I don't see how we prove that, for example, you can never take the sg_sysfs_class mutex and then take the sdev_class mutex. There aren't /that/ many classes in the kernel (my laptop has 33 in /sys/class). How about we make each (sysfs) class its own (lockdep) class? That way we let lockdep do its job rather than telling it "nah, you're all right, this is good". I don't have a copy of the sem->mutex conversion to hand, but I imagine you want to do something like: - Add a struct lock_class_key to struct class - In drivers/base/class.c use __mutex_init instead of mutex_init I think that should be enough ... -- Intel are signing my paycheques ... these opinions are still mine "Bill, look, we understand that you're interested in selling us this operating system, but compare it to ours. We can't possibly take such a retrograde step." -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html