Commit dcef5cad authored by Julian Wiedmann's avatar Julian Wiedmann Committed by David S. Miller

s390/qeth: remove driver-wide workqueue

The qeth-wide workqueue is now only used by a single caller to schedule
close_dev work. Just put it on a system queue instead.
Signed-off-by: default avatarJulian Wiedmann <jwi@linux.ibm.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent bf42d40b
...@@ -74,8 +74,6 @@ static void qeth_notify_skbs(struct qeth_qdio_out_q *queue, ...@@ -74,8 +74,6 @@ static void qeth_notify_skbs(struct qeth_qdio_out_q *queue,
static void qeth_release_skbs(struct qeth_qdio_out_buffer *buf); static void qeth_release_skbs(struct qeth_qdio_out_buffer *buf);
static int qeth_init_qdio_out_buf(struct qeth_qdio_out_q *, int); static int qeth_init_qdio_out_buf(struct qeth_qdio_out_q *, int);
static struct workqueue_struct *qeth_wq;
int qeth_card_hw_is_reachable(struct qeth_card *card) int qeth_card_hw_is_reachable(struct qeth_card *card)
{ {
return (card->state == CARD_STATE_SOFTSETUP) || return (card->state == CARD_STATE_SOFTSETUP) ||
...@@ -92,12 +90,6 @@ static void qeth_close_dev_handler(struct work_struct *work) ...@@ -92,12 +90,6 @@ static void qeth_close_dev_handler(struct work_struct *work)
ccwgroup_set_offline(card->gdev); ccwgroup_set_offline(card->gdev);
} }
static void qeth_close_dev(struct qeth_card *card)
{
QETH_CARD_TEXT(card, 2, "cldevsubm");
queue_work(qeth_wq, &card->close_dev_work);
}
static const char *qeth_get_cardname(struct qeth_card *card) static const char *qeth_get_cardname(struct qeth_card *card)
{ {
if (card->info.guestlan) { if (card->info.guestlan) {
...@@ -634,7 +626,7 @@ static struct qeth_ipa_cmd *qeth_check_ipa_data(struct qeth_card *card, ...@@ -634,7 +626,7 @@ static struct qeth_ipa_cmd *qeth_check_ipa_data(struct qeth_card *card,
dev_err(&card->gdev->dev, dev_err(&card->gdev->dev,
"Interface %s is down because the adjacent port is no longer in reflective relay mode\n", "Interface %s is down because the adjacent port is no longer in reflective relay mode\n",
QETH_CARD_IFNAME(card)); QETH_CARD_IFNAME(card));
qeth_close_dev(card); schedule_work(&card->close_dev_work);
} else { } else {
dev_warn(&card->gdev->dev, dev_warn(&card->gdev->dev,
"The link for interface %s on CHPID 0x%X failed\n", "The link for interface %s on CHPID 0x%X failed\n",
...@@ -6265,12 +6257,6 @@ static int __init qeth_core_init(void) ...@@ -6265,12 +6257,6 @@ static int __init qeth_core_init(void)
pr_info("loading core functions\n"); pr_info("loading core functions\n");
qeth_wq = create_singlethread_workqueue("qeth_wq");
if (!qeth_wq) {
rc = -ENOMEM;
goto out_err;
}
rc = qeth_register_dbf_views(); rc = qeth_register_dbf_views();
if (rc) if (rc)
goto dbf_err; goto dbf_err;
...@@ -6312,8 +6298,6 @@ static int __init qeth_core_init(void) ...@@ -6312,8 +6298,6 @@ static int __init qeth_core_init(void)
register_err: register_err:
qeth_unregister_dbf_views(); qeth_unregister_dbf_views();
dbf_err: dbf_err:
destroy_workqueue(qeth_wq);
out_err:
pr_err("Initializing the qeth device driver failed\n"); pr_err("Initializing the qeth device driver failed\n");
return rc; return rc;
} }
...@@ -6321,7 +6305,6 @@ static int __init qeth_core_init(void) ...@@ -6321,7 +6305,6 @@ static int __init qeth_core_init(void)
static void __exit qeth_core_exit(void) static void __exit qeth_core_exit(void)
{ {
qeth_clear_dbf_list(); qeth_clear_dbf_list();
destroy_workqueue(qeth_wq);
ccwgroup_driver_unregister(&qeth_core_ccwgroup_driver); ccwgroup_driver_unregister(&qeth_core_ccwgroup_driver);
ccw_driver_unregister(&qeth_ccw_driver); ccw_driver_unregister(&qeth_ccw_driver);
kmem_cache_destroy(qeth_qdio_outbuf_cache); kmem_cache_destroy(qeth_qdio_outbuf_cache);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment