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

[dm-devel] [PATCH] trivial fix to dm-emc.c




Here's a trivial fix to the emc hardware
handler module. The old code memset the hardware handler
structure to zero AFTER it had initialized the structure's
spinlock field to SPIN_LOCK_UNLOCKED.  The new patch moves the
memset into the hardware handler allocator.

The old code would probably only have a problem if someone
ran with spinlock debugging enabled, in which case SPIN_LOCK_UNLOCKED
contains the value SPINLOCK_MAGIC.

I have no emc hardware to test this change.  However it does compile.

Dave Olien


diff -ur linux-2.6.11-rc3-udm2-original/drivers/md/dm-emc.c linux-2.6.11-rc3-udm2-emc/drivers/md/dm-emc.c
--- linux-2.6.11-rc3-udm2-original/drivers/md/dm-emc.c	2005-03-03 13:40:55.000000000 -0800
+++ linux-2.6.11-rc3-udm2-emc/drivers/md/dm-emc.c	2005-03-03 13:44:38.000000000 -0800
@@ -227,6 +227,7 @@
 	struct emc_handler *h = kmalloc(sizeof(*h), GFP_KERNEL);
 
 	if (h) {
+		memset(h, 0, sizeof(*h));
 		h->lock = SPIN_LOCK_UNLOCKED;
 	}
 
@@ -263,8 +264,6 @@
 	if (!h)
 		return -ENOMEM;
 	
-	memset(h, 0, sizeof(*h));
-	
 	hwh->context = h;
 	
 	if ((h->short_trespass = short_trespass))


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