X-Git-Url: http://pilppa.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=drivers%2Fnet%2Fhamradio%2Fmkiss.c;h=30c9b3b0d1319fe0c18b4906594748ee3ddaa6e0;hb=5f3b28781cbc030351e2fa0712602afbea592aae;hp=803a3bdea0af5f1e36d02055157f55107aff7c87;hpb=4937ce87959629d31e9b09cf5bdf1e12a305c805;p=linux-2.6-omap-h63xx.git diff --git a/drivers/net/hamradio/mkiss.c b/drivers/net/hamradio/mkiss.c index 803a3bdea0a..30c9b3b0d13 100644 --- a/drivers/net/hamradio/mkiss.c +++ b/drivers/net/hamradio/mkiss.c @@ -289,7 +289,6 @@ static void ax_bump(struct mkiss *ax) *ax->rbuff &= ~0x20; } } - spin_unlock_bh(&ax->buflock); count = ax->rcount; @@ -297,17 +296,17 @@ static void ax_bump(struct mkiss *ax) printk(KERN_ERR "mkiss: %s: memory squeeze, dropping packet.\n", ax->dev->name); ax->stats.rx_dropped++; + spin_unlock_bh(&ax->buflock); return; } - spin_lock_bh(&ax->buflock); memcpy(skb_put(skb,count), ax->rbuff, count); - spin_unlock_bh(&ax->buflock); skb->protocol = ax25_type_trans(skb, ax->dev); netif_rx(skb); ax->dev->last_rx = jiffies; ax->stats.rx_packets++; ax->stats.rx_bytes += count; + spin_unlock_bh(&ax->buflock); } static void kiss_unesc(struct mkiss *ax, unsigned char s) @@ -821,7 +820,7 @@ static void mkiss_close(struct tty_struct *tty) tty->disc_data = NULL; write_unlock(&disc_data_lock); - if (ax == 0) + if (!ax) return; /*