aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/s390/net/qeth_l2_main.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/s390/net/qeth_l2_main.c')
-rw-r--r--drivers/s390/net/qeth_l2_main.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/s390/net/qeth_l2_main.c b/drivers/s390/net/qeth_l2_main.c
index f108d4b44605..a43de2f9bcac 100644
--- a/drivers/s390/net/qeth_l2_main.c
+++ b/drivers/s390/net/qeth_l2_main.c
@@ -369,6 +369,8 @@ static void qeth_l2_stop_card(struct qeth_card *card, int recovery_mode)
369 qeth_clear_cmd_buffers(&card->read); 369 qeth_clear_cmd_buffers(&card->read);
370 qeth_clear_cmd_buffers(&card->write); 370 qeth_clear_cmd_buffers(&card->write);
371 } 371 }
372
373 flush_workqueue(card->event_wq);
372} 374}
373 375
374static int qeth_l2_process_inbound_buffer(struct qeth_card *card, 376static int qeth_l2_process_inbound_buffer(struct qeth_card *card,
@@ -801,6 +803,8 @@ static void qeth_l2_remove_device(struct ccwgroup_device *cgdev)
801 803
802 if (cgdev->state == CCWGROUP_ONLINE) 804 if (cgdev->state == CCWGROUP_ONLINE)
803 qeth_l2_set_offline(cgdev); 805 qeth_l2_set_offline(cgdev);
806
807 cancel_work_sync(&card->close_dev_work);
804 if (qeth_netdev_is_registered(card->dev)) 808 if (qeth_netdev_is_registered(card->dev))
805 unregister_netdev(card->dev); 809 unregister_netdev(card->dev);
806} 810}
@@ -1434,7 +1438,7 @@ static void qeth_bridge_state_change(struct qeth_card *card,
1434 data->card = card; 1438 data->card = card;
1435 memcpy(&data->qports, qports, 1439 memcpy(&data->qports, qports,
1436 sizeof(struct qeth_sbp_state_change) + extrasize); 1440 sizeof(struct qeth_sbp_state_change) + extrasize);
1437 queue_work(qeth_wq, &data->worker); 1441 queue_work(card->event_wq, &data->worker);
1438} 1442}
1439 1443
1440struct qeth_bridge_host_data { 1444struct qeth_bridge_host_data {
@@ -1506,7 +1510,7 @@ static void qeth_bridge_host_event(struct qeth_card *card,
1506 data->card = card; 1510 data->card = card;
1507 memcpy(&data->hostevs, hostevs, 1511 memcpy(&data->hostevs, hostevs,
1508 sizeof(struct qeth_ipacmd_addr_change) + extrasize); 1512 sizeof(struct qeth_ipacmd_addr_change) + extrasize);
1509 queue_work(qeth_wq, &data->worker); 1513 queue_work(card->event_wq, &data->worker);
1510} 1514}
1511 1515
1512/* SETBRIDGEPORT support; sending commands */ 1516/* SETBRIDGEPORT support; sending commands */