Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4d1ff582 authored by Tilman Schmidt's avatar Tilman Schmidt Committed by Linus Torvalds
Browse files

gigaset: remove pointless locking



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

Signed-off-by: default avatarTilman Schmidt <tilman@imap.cc>
Acked-by: default avatarKarsten Keil <kkeil@suse.de>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent f438d914
Loading
Loading
Loading
Loading
+1 −8
Original line number Diff line number Diff line
@@ -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
+2 −10
Original line number Diff line number Diff line
@@ -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);
+1 −7
Original line number Diff line number Diff line
@@ -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,
+0 −7
Original line number Diff line number Diff line
@@ -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;
}