On Sun, 25 Mar 2007 23:02:21 +0400 Alexey Dobriyan <[EMAIL PROTECTED]> wrote:
> Some drivers do register_chrdev() before lock or semaphore used in > corresponding file_operations is initialized. > > Signed-off-by: Alexey Dobriyan <[EMAIL PROTECTED]> > --- > > drivers/block/aoe/aoechr.c | 4 ++-- > drivers/char/tb0219.c | 4 ++-- > 2 files changed, 4 insertions(+), 4 deletions(-) > > --- a/drivers/block/aoe/aoechr.c > +++ b/drivers/block/aoe/aoechr.c > @@ -246,13 +246,13 @@ aoechr_init(void) > { > int n, i; > > + sema_init(&emsgs_sema, 0); > + spin_lock_init(&emsgs_lock); > n = register_chrdev(AOE_MAJOR, "aoechr", &aoe_fops); > if (n < 0) { > printk(KERN_ERR "aoe: can't register char device\n"); > return n; > } > - sema_init(&emsgs_sema, 0); > - spin_lock_init(&emsgs_lock); > aoe_class = class_create(THIS_MODULE, "aoe"); > if (IS_ERR(aoe_class)) { > unregister_chrdev(AOE_MAJOR, "aoechr"); > --- a/drivers/char/tb0219.c > +++ b/drivers/char/tb0219.c > @@ -287,6 +287,8 @@ static int __devinit tb0219_probe(struct > { > int retval; > > + spin_lock_init(&tb0219_lock); > + > if (request_mem_region(TB0219_START, TB0219_SIZE, "TB0219") == NULL) > return -EBUSY; > > @@ -304,8 +306,6 @@ static int __devinit tb0219_probe(struct > return retval; > } > > - spin_lock_init(&tb0219_lock); > - > old_machine_restart = _machine_restart; > _machine_restart = tb0219_restart; > These locks can and should be initialised at compile-time. - 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/