All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] block: reduce spin_lock critical region
@ 2011-05-20  2:43 Eduardo Silva
  0 siblings, 0 replies; only message in thread
From: Eduardo Silva @ 2011-05-20  2:43 UTC (permalink / raw)
  To: Mike Miller; +Cc: iss_storagedev, linux-kernel

the critical region is originally composed by a conditional plus
a memory copy, the memory copy routine don't need protection.
Moving the memcpy() outside the conditional also help to fix the
16 compiler warning messages generated in __u8 sn[16] def.

Signed-off-by: Eduardo Silva <edsiper@gmail.com>
---
 drivers/block/cciss.c |   19 +++++++++----------
 1 files changed, 9 insertions(+), 10 deletions(-)

diff --git a/drivers/block/cciss.c b/drivers/block/cciss.c
index 9bf1398..199b35e 100644
--- a/drivers/block/cciss.c
+++ b/drivers/block/cciss.c
@@ -621,20 +621,19 @@ static ssize_t dev_show_unique_id(struct device *dev,
 	spin_lock_irqsave(&h->lock, flags);
 	if (h->busy_configuring)
 		ret = -EBUSY;
-	else
-		memcpy(sn, drv->serial_no, sizeof(sn));
 	spin_unlock_irqrestore(&h->lock, flags);
 
 	if (ret)
 		return ret;
-	else
-		return snprintf(buf, 16 * 2 + 2,
-				"%02X%02X%02X%02X%02X%02X%02X%02X"
-				"%02X%02X%02X%02X%02X%02X%02X%02X\n",
-				sn[0], sn[1], sn[2], sn[3],
-				sn[4], sn[5], sn[6], sn[7],
-				sn[8], sn[9], sn[10], sn[11],
-				sn[12], sn[13], sn[14], sn[15]);
+
+	memcpy(sn, drv->serial_no, sizeof(sn));
+	return snprintf(buf, 16 * 2 + 2,
+			"%02X%02X%02X%02X%02X%02X%02X%02X"
+			"%02X%02X%02X%02X%02X%02X%02X%02X\n",
+			sn[0], sn[1], sn[2], sn[3],
+			sn[4], sn[5], sn[6], sn[7],
+			sn[8], sn[9], sn[10], sn[11],
+			sn[12], sn[13], sn[14], sn[15]);
 }
 static DEVICE_ATTR(unique_id, S_IRUGO, dev_show_unique_id, NULL);
 
-- 
1.7.4.1




^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2011-05-20  2:43 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-05-20  2:43 [PATCH] block: reduce spin_lock critical region Eduardo Silva

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.