summaryrefslogtreecommitdiffstats
path: root/drivers/net/irda
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2011-01-18 16:28:31 -0800
committerDavid S. Miller <davem@davemloft.net>2011-01-18 16:28:31 -0800
commita5db219f4cf9f67995eabd53b81a1232c82f5852 (patch)
tree5fffcb7ebd543b39468822963f9190fe6bf41bff /drivers/net/irda
parentc56eb8fb6dccb83d9fe62fd4dc00c834de9bc470 (diff)
parentff76015f3bdfbc482c723cb4f2559cef84d178ca (diff)
downloadop-kernel-dev-a5db219f4cf9f67995eabd53b81a1232c82f5852.zip
op-kernel-dev-a5db219f4cf9f67995eabd53b81a1232c82f5852.tar.gz
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Diffstat (limited to 'drivers/net/irda')
-rw-r--r--drivers/net/irda/sh_irda.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/drivers/net/irda/sh_irda.c b/drivers/net/irda/sh_irda.c
index 9e3f4f5..4488bd5 100644
--- a/drivers/net/irda/sh_irda.c
+++ b/drivers/net/irda/sh_irda.c
@@ -635,7 +635,7 @@ static int sh_irda_hard_xmit(struct sk_buff *skb, struct net_device *ndev)
ret = sh_irda_set_baudrate(self, speed);
if (ret < 0)
- return ret;
+ goto sh_irda_hard_xmit_end;
self->tx_buff.len = 0;
if (skb->len) {
@@ -652,11 +652,21 @@ static int sh_irda_hard_xmit(struct sk_buff *skb, struct net_device *ndev)
sh_irda_write(self, IRTFLR, self->tx_buff.len);
sh_irda_write(self, IRTCTR, ARMOD | TE);
- }
+ } else
+ goto sh_irda_hard_xmit_end;
dev_kfree_skb(skb);
return 0;
+
+sh_irda_hard_xmit_end:
+ sh_irda_set_baudrate(self, 9600);
+ netif_wake_queue(self->ndev);
+ sh_irda_rcv_ctrl(self, 1);
+ dev_kfree_skb(skb);
+
+ return ret;
+
}
static int sh_irda_ioctl(struct net_device *ndev, struct ifreq *ifreq, int cmd)
OpenPOWER on IntegriCloud