aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/s390/net/netiucv.c
diff options
context:
space:
mode:
authorUrsula Braun <braunu@de.ibm.com>2007-06-20 07:01:30 -0400
committerJeff Garzik <jeff@garzik.org>2007-06-20 19:12:42 -0400
commit651bbc6224a95eb5bf0ccf6ecd61fc244b38d1f5 (patch)
tree3fba78b80b3e80b4c41a7fc560bcc57a9c852139 /drivers/s390/net/netiucv.c
parentdc5bc0cabd1003b4fa358f0d54dfdc46585efb57 (diff)
s390: don't call iucv_path_connect from tasklet context
net/iucv/iucv.c creates the requirement for iucv_path_connect not to be called from tasklet context anymore. An extra checking is added in case of a failing netiucv_tx to fulfil this requirement for netiucv. Signed-off-by: Ursula Braun <braunu@de.ibm.com> Signed-off-by: Frank Pavlic <fpavlic@de.ibm.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers/s390/net/netiucv.c')
-rw-r--r--drivers/s390/net/netiucv.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/s390/net/netiucv.c b/drivers/s390/net/netiucv.c
index c358764f3264..648ee132cda4 100644
--- a/drivers/s390/net/netiucv.c
+++ b/drivers/s390/net/netiucv.c
@@ -1315,7 +1315,8 @@ static int netiucv_tx(struct sk_buff *skb, struct net_device *dev)
1315 * and throw away packet. 1315 * and throw away packet.
1316 */ 1316 */
1317 if (fsm_getstate(privptr->fsm) != DEV_STATE_RUNNING) { 1317 if (fsm_getstate(privptr->fsm) != DEV_STATE_RUNNING) {
1318 fsm_event(privptr->fsm, DEV_EVENT_START, dev); 1318 if (!in_atomic())
1319 fsm_event(privptr->fsm, DEV_EVENT_START, dev);
1319 dev_kfree_skb(skb); 1320 dev_kfree_skb(skb);
1320 privptr->stats.tx_dropped++; 1321 privptr->stats.tx_dropped++;
1321 privptr->stats.tx_errors++; 1322 privptr->stats.tx_errors++;