Skip to contentSkip to conversation

s390: fix Oops when unloading module netiucv

PATCH NAK Frank Pavlic 1 participant 1 message Apr 30, 2007

Subsystems (5)
lore
Share & tools
lore
#0 lore raw

PATCH 4/5 s390: fix Oops when unloading module netiucv

From: Ursula Braun <[email protected]>

don't remove an entry from iucv_connection_list in netiucv_exit(). netiucv_free_netdevice is called anyway, which takes care of entry removal.

---
netiucv.c | 5 +++--

 1 files changed, 3 insertions(+), 2 deletions(-)
drivers/s390/net/netiucv.c +3 -2
index e10e85e..c358764 100644
@@ -1862,12 +1862,14 @@ static void netiucv_remove_connection(struct iucv_connection *conn)
 	write_lock_bh(&iucv_connection_rwlock);
 	list_del_init(&conn->list);
 	write_unlock_bh(&iucv_connection_rwlock);
+	fsm_deltimer(&conn->timer);
+	netiucv_purge_skb_queue(&conn->collect_queue);
 	if (conn->path) {
 		iucv_path_sever(conn->path, iucvMagic);
 		kfree(conn->path);
 		conn->path = NULL;
 	}
-	fsm_deltimer(&conn->timer);
+	netiucv_purge_skb_queue(&conn->commit_queue);
 	kfree_fsm(conn->fsm);
 	kfree_skb(conn->rx_buff);
 	kfree_skb(conn->tx_buff);
@@ -2115,7 +2117,6 @@ static void __exit netiucv_exit(void)
 	while (!list_empty(&iucv_connection_list)) {
 		cp = list_entry(iucv_connection_list.next,
 				struct iucv_connection, list);
-		list_del(&cp->list);
 		ndev = cp->netdev;
 		priv = netdev_priv(ndev);
 		dev = priv->dev;
Signature · 1 line
1.5.1.2