Martin & others:
the following bug is still with us. What's the deal?
The matter is clear, calling dst_link_failure from an
interrupt is illegal (and pointless).
I have a separate patch which adds carrier control to ctc
according to DaveM's suggestions, but let's at least fix
the bug first.
-- Pete
diff -ur -X dontdiff linux-2.6.0-test4/drivers/s390/net/ctcmain.c
linux-2.6.0-test4-s390/drivers/s390/net/ctcmain.c
--- linux-2.6.0-test4/drivers/s390/net/ctcmain.c 2003-08-24
14:24:50.000000000 -0700
+++ linux-2.6.0-test4-s390/drivers/s390/net/ctcmain.c 2003-08-24
14:53:25.000000000 -0700
@@ -2441,14 +2441,12 @@
/**
* If channels are not running, try to restart them
- * notify anybody about a link failure and throw
- * away packet.
+ * and throw away packet.
*/
if (fsm_getstate(privptr->fsm) != DEV_STATE_RUNNING) {
fsm_event(privptr->fsm, DEV_EVENT_START, dev);
if (privptr->protocol == CTC_PROTO_LINUX_TTY)
return -EBUSY;
- dst_link_failure(skb);
dev_kfree_skb(skb);
privptr->stats.tx_dropped++;
privptr->stats.tx_errors++;
diff -ur -X dontdiff linux-2.6.0-test4/drivers/s390/net/netiucv.c
linux-2.6.0-test4-s390/drivers/s390/net/netiucv.c
--- linux-2.6.0-test4/drivers/s390/net/netiucv.c 2003-08-24
14:24:50.000000000 -0700
+++ linux-2.6.0-test4-s390/drivers/s390/net/netiucv.c 2003-08-24
14:51:10.000000000 -0700
@@ -1195,12 +1195,10 @@
/**
* If connection is not running, try to restart it
- * notify anybody about a link failure and throw
- * away packet.
+ * and throw away packet.
*/
if (fsm_getstate(privptr->fsm) != DEV_STATE_RUNNING) {
fsm_event(privptr->fsm, DEV_EVENT_START, dev);
- dst_link_failure(skb);
dev_kfree_skb(skb);
privptr->stats.tx_dropped++;
privptr->stats.tx_errors++;
|