提交 4d1ff582 编写于 作者: T Tilman Schmidt 提交者: Linus Torvalds

gigaset: remove pointless locking

Remove pointless taking of spinlock around reading a single pointer-sized
or smaller variable.
Signed-off-by: NTilman Schmidt <tilman@imap.cc>
Acked-by: NKarsten Keil <kkeil@suse.de>
Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
上级 f438d914
......@@ -1936,14 +1936,7 @@ static int gigaset_write_room(struct cardstate *cs)
*/
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
......
......@@ -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 *cntrl)
}
*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);
......
......@@ -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,
......
......@@ -310,7 +310,6 @@ static void gigaset_modem_fill(unsigned long data)
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 long data)
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 cardstate *cs, const unsigned char *buf,
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;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册