gigaset: remove pointless locking
Remove pointless taking of spinlock around reading a single pointer-sized or smaller variable. Signed-off-by: Tilman Schmidt <tilman@imap.cc> Acked-by: Karsten Keil <kkeil@suse.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
f438d914b2
commit
4d1ff58224
|
@ -1936,14 +1936,7 @@ static int gigaset_write_room(struct cardstate *cs)
|
||||||
*/
|
*/
|
||||||
static int gigaset_chars_in_buffer(struct cardstate *cs)
|
static int gigaset_chars_in_buffer(struct cardstate *cs)
|
||||||
{
|
{
|
||||||
unsigned long flags;
|
return cs->cmdbytes;
|
||||||
unsigned bytes;
|
|
||||||
|
|
||||||
spin_lock_irqsave(&cs->cmdlock, flags);
|
|
||||||
bytes = cs->cmdbytes;
|
|
||||||
spin_unlock_irqrestore(&cs->cmdlock, flags);
|
|
||||||
|
|
||||||
return bytes;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* gigaset_brkchars
|
/* gigaset_brkchars
|
||||||
|
|
|
@ -109,13 +109,9 @@ EXPORT_SYMBOL_GPL(gigaset_skb_sent);
|
||||||
static int command_from_LL(isdn_ctrl *cntrl)
|
static int command_from_LL(isdn_ctrl *cntrl)
|
||||||
{
|
{
|
||||||
struct cardstate *cs = gigaset_get_cs_by_id(cntrl->driver);
|
struct cardstate *cs = gigaset_get_cs_by_id(cntrl->driver);
|
||||||
//isdn_ctrl response;
|
|
||||||
//unsigned long flags;
|
|
||||||
struct bc_state *bcs;
|
struct bc_state *bcs;
|
||||||
int retval = 0;
|
int retval = 0;
|
||||||
struct setup_parm *sp;
|
struct setup_parm *sp;
|
||||||
unsigned param;
|
|
||||||
unsigned long flags;
|
|
||||||
|
|
||||||
gigaset_debugdrivers();
|
gigaset_debugdrivers();
|
||||||
|
|
||||||
|
@ -162,12 +158,8 @@ static int command_from_LL(isdn_ctrl *cntrl)
|
||||||
}
|
}
|
||||||
*sp = cntrl->parm.setup;
|
*sp = cntrl->parm.setup;
|
||||||
|
|
||||||
spin_lock_irqsave(&cs->lock, flags);
|
if (!gigaset_add_event(cs, &bcs->at_state, EV_DIAL, sp,
|
||||||
param = bcs->at_state.seq_index;
|
bcs->at_state.seq_index, NULL)) {
|
||||||
spin_unlock_irqrestore(&cs->lock, flags);
|
|
||||||
|
|
||||||
if (!gigaset_add_event(cs, &bcs->at_state, EV_DIAL, sp, param,
|
|
||||||
NULL)) {
|
|
||||||
//FIXME what should we do?
|
//FIXME what should we do?
|
||||||
kfree(sp);
|
kfree(sp);
|
||||||
gigaset_free_channel(bcs);
|
gigaset_free_channel(bcs);
|
||||||
|
|
|
@ -19,15 +19,9 @@
|
||||||
static ssize_t show_cidmode(struct device *dev,
|
static ssize_t show_cidmode(struct device *dev,
|
||||||
struct device_attribute *attr, char *buf)
|
struct device_attribute *attr, char *buf)
|
||||||
{
|
{
|
||||||
int ret;
|
|
||||||
unsigned long flags;
|
|
||||||
struct cardstate *cs = dev_get_drvdata(dev);
|
struct cardstate *cs = dev_get_drvdata(dev);
|
||||||
|
|
||||||
spin_lock_irqsave(&cs->lock, flags);
|
return sprintf(buf, "%u\n", cs->cidmode);
|
||||||
ret = sprintf(buf, "%u\n", cs->cidmode);
|
|
||||||
spin_unlock_irqrestore(&cs->lock, flags);
|
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static ssize_t set_cidmode(struct device *dev, struct device_attribute *attr,
|
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 cardstate *cs = (struct cardstate *) data;
|
||||||
struct bc_state *bcs = &cs->bcs[0]; /* only one channel */
|
struct bc_state *bcs = &cs->bcs[0]; /* only one channel */
|
||||||
struct cmdbuf_t *cb;
|
struct cmdbuf_t *cb;
|
||||||
unsigned long flags;
|
|
||||||
int again;
|
int again;
|
||||||
|
|
||||||
gig_dbg(DEBUG_OUTPUT, "modem_fill");
|
gig_dbg(DEBUG_OUTPUT, "modem_fill");
|
||||||
|
@ -323,9 +322,7 @@ static void gigaset_modem_fill(unsigned long data)
|
||||||
do {
|
do {
|
||||||
again = 0;
|
again = 0;
|
||||||
if (!bcs->tx_skb) { /* no skb is being sent */
|
if (!bcs->tx_skb) { /* no skb is being sent */
|
||||||
spin_lock_irqsave(&cs->cmdlock, flags);
|
|
||||||
cb = cs->cmdbuf;
|
cb = cs->cmdbuf;
|
||||||
spin_unlock_irqrestore(&cs->cmdlock, flags);
|
|
||||||
if (cb) { /* commands to send? */
|
if (cb) { /* commands to send? */
|
||||||
gig_dbg(DEBUG_OUTPUT, "modem_fill: cb");
|
gig_dbg(DEBUG_OUTPUT, "modem_fill: cb");
|
||||||
if (send_cb(cs, cb) < 0) {
|
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)
|
static int gigaset_write_room(struct cardstate *cs)
|
||||||
{
|
{
|
||||||
unsigned long flags;
|
|
||||||
unsigned bytes;
|
unsigned bytes;
|
||||||
|
|
||||||
spin_lock_irqsave(&cs->cmdlock, flags);
|
|
||||||
bytes = cs->cmdbytes;
|
bytes = cs->cmdbytes;
|
||||||
spin_unlock_irqrestore(&cs->cmdlock, flags);
|
|
||||||
|
|
||||||
return bytes < IF_WRITEBUF ? IF_WRITEBUF - bytes : 0;
|
return bytes < IF_WRITEBUF ? IF_WRITEBUF - bytes : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue