Messages in this thread Patch in this message | | | From | "Ed L. Cashin" <> | Subject | [PATCH] aoe: initialize locking structures before registering char devices | Date | Wed, 26 Dec 2007 15:25:21 -0500 |
| |
This patch was made against 2.6.24-rc6-mm1.
In March 2007, Alexey Dobriyan suggested this change, which eliminates a race after register_chardev has been called but the locking primitives protecting the error messages ring buffer have not yet been initialized.
The initialization could happen at compile time, but that would leave aoe as the only user of __DECLARE_SEMAPHORE_GENERIC.
Signed-off-by: Ed L. Cashin <ecashin@coraid.com> --- drivers/block/aoe/aoechr.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/block/aoe/aoechr.c b/drivers/block/aoe/aoechr.c index e8e60e7..2620073 100644 --- a/drivers/block/aoe/aoechr.c +++ b/drivers/block/aoe/aoechr.c @@ -259,13 +259,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"); -- 1.5.3.4
| |