[PATCH] gigaset: remove pointless locking

Tilman Schmidt <[email protected]>
Newsgroups gmane.linux.usb.devel,gmane.linux.kernel,gmane.linux.isdn.i4l.devel
Message-ID <[email protected]>
From: Tilman Schmidt <[email protected]>

Remove pointless taking of spinlock around reading a single pointer-sized
or smaller variable.

Signed-off-by: Tilman Schmidt <[email protected]>
---

 drivers/isdn/gigaset/bas-gigaset.c |    9 +--------
 drivers/isdn/gigaset/i4l.c         |   12 ++----------
 drivers/isdn/gigaset/proc.c        |    8 +-------
 drivers/isdn/gigaset/usb-gigaset.c |    7 -------
 4 files changed, 4 insertions(+), 32 deletions(-)

diff -rupNX dont-diff linux-2.6.22-orig/drivers/isdn/gigaset/bas-gigaset.c linux-2.6.22-work/drivers/isdn/gigaset/bas-gigaset.c
--- linux-2.6.22-orig/drivers/isdn/gigaset/bas-gigaset.c	2007-02-01 01:24:38.000000000 +0100
+++ linux-2.6.22-work/drivers/isdn/gigaset/bas-gigaset.c	2007-02-05 15:46:14.000000000 +0100
@@ -1936,14 +1936,7 @@ static int gigaset_write_room(struct car
  */
 static int gigaset_chars_in_buffer(struct cardstate *cs)
 {
-	unsigned long flags;
-	unsigned bytes;
-
-	spin_lock_irqsave(&cs->cmdlock, flags);
-	bytes = cs->cmdbytes;
-	spin_unlock_irqrestore(&cs->cmdlock, flags);
-
-	return bytes;
+	return cs->cmdbytes;
 }
 
 /* gigaset_brkchars
diff -rupNX dont-diff linux-2.6.22-orig/drivers/isdn/gigaset/i4l.c linux-2.6.22-work/drivers/isdn/gigaset/i4l.c
--- linux-2.6.22-orig/drivers/isdn/gigaset/i4l.c	2006-11-29 22:57:37.000000000 +0100
+++ linux-2.6.22-work/drivers/isdn/gigaset/i4l.c	2007-02-05 15:46:12.000000000 +0100
@@ -109,13 +109,9 @@ EXPORT_SYMBOL_GPL(gigaset_skb_sent);
 static int command_from_LL(isdn_ctrl *cntrl)
 {
 	struct cardstate *cs = gigaset_get_cs_by_id(cntrl->driver);
-	//isdn_ctrl response;
-	//unsigned long flags;
 	struct bc_state *bcs;
 	int retval = 0;
 	struct setup_parm *sp;
-	unsigned param;
-	unsigned long flags;
 
 	gigaset_debugdrivers();
 
@@ -162,12 +158,8 @@ static int command_from_LL(isdn_ctrl *cn
 		}
 		*sp = cntrl->parm.setup;
 
-		spin_lock_irqsave(&cs->lock, flags);
-		param = bcs->at_state.seq_index;
-		spin_unlock_irqrestore(&cs->lock, flags);
-
-		if (!gigaset_add_event(cs, &bcs->at_state, EV_DIAL, sp, param,
-				       NULL)) {
+		if (!gigaset_add_event(cs, &bcs->at_state, EV_DIAL, sp,
+				       bcs->at_state.seq_index, NULL)) {
 			//FIXME what should we do?
 			kfree(sp);
 			gigaset_free_channel(bcs);
diff -rupNX dont-diff linux-2.6.22-orig/drivers/isdn/gigaset/proc.c linux-2.6.22-work/drivers/isdn/gigaset/proc.c
--- linux-2.6.22-orig/drivers/isdn/gigaset/proc.c	2007-02-01 01:23:54.000000000 +0100
+++ linux-2.6.22-work/drivers/isdn/gigaset/proc.c	2007-02-05 16:16:16.000000000 +0100
@@ -19,15 +19,9 @@
 static ssize_t show_cidmode(struct device *dev,
 			    struct device_attribute *attr, char *buf)
 {
-	int ret;
-	unsigned long flags;
 	struct cardstate *cs = dev_get_drvdata(dev);
 
-	spin_lock_irqsave(&cs->lock, flags);
-	ret = sprintf(buf, "%u\n", cs->cidmode);
-	spin_unlock_irqrestore(&cs->lock, flags);
-
-	return ret;
+	return sprintf(buf, "%u\n", cs->cidmode);
 }
 
 static ssize_t set_cidmode(struct device *dev, struct device_attribute *attr,
diff -rupNX dont-diff linux-2.6.22-orig/drivers/isdn/gigaset/usb-gigaset.c linux-2.6.22-work/drivers/isdn/gigaset/usb-gigaset.c
--- linux-2.6.22-orig/drivers/isdn/gigaset/usb-gigaset.c	2007-02-01 01:23:54.000000000 +0100
+++ linux-2.6.22-work/drivers/isdn/gigaset/usb-gigaset.c	2007-02-05 17:28:47.000000000 +0100
@@ -310,7 +310,6 @@ static void gigaset_modem_fill(unsigned 
 	struct cardstate *cs = (struct cardstate *) data;
 	struct bc_state *bcs = &cs->bcs[0]; /* only one channel */
 	struct cmdbuf_t *cb;
-	unsigned long flags;
 	int again;
 
 	gig_dbg(DEBUG_OUTPUT, "modem_fill");
@@ -323,9 +322,7 @@ static void gigaset_modem_fill(unsigned 
 	do {
 		again = 0;
 		if (!bcs->tx_skb) { /* no skb is being sent */
-			spin_lock_irqsave(&cs->cmdlock, flags);
 			cb = cs->cmdbuf;
-			spin_unlock_irqrestore(&cs->cmdlock, flags);
 			if (cb) { /* commands to send? */
 				gig_dbg(DEBUG_OUTPUT, "modem_fill: cb");
 				if (send_cb(cs, cb) < 0) {
@@ -546,13 +543,9 @@ static int gigaset_write_cmd(struct card
 
 static int gigaset_write_room(struct cardstate *cs)
 {
-	unsigned long flags;
 	unsigned bytes;
 
-	spin_lock_irqsave(&cs->cmdlock, flags);
 	bytes = cs->cmdbytes;
-	spin_unlock_irqrestore(&cs->cmdlock, flags);
-
 	return bytes < IF_WRITEBUF ? IF_WRITEBUF - bytes : 0;
 }
 

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/
_______________________________________________
[email protected]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.