@@ -74,34 +74,15 @@ static void qeth_notify_skbs(struct qeth_qdio_out_q *queue,
7474static void qeth_release_skbs (struct qeth_qdio_out_buffer * buf );
7575static int qeth_init_qdio_out_buf (struct qeth_qdio_out_q * , int );
7676
77- static struct workqueue_struct * qeth_wq ;
78-
79- int qeth_card_hw_is_reachable (struct qeth_card * card )
80- {
81- return (card -> state == CARD_STATE_SOFTSETUP ) ||
82- (card -> state == CARD_STATE_UP );
83- }
84- EXPORT_SYMBOL_GPL (qeth_card_hw_is_reachable );
85-
8677static void qeth_close_dev_handler (struct work_struct * work )
8778{
8879 struct qeth_card * card ;
8980
9081 card = container_of (work , struct qeth_card , close_dev_work );
9182 QETH_CARD_TEXT (card , 2 , "cldevhdl" );
92- rtnl_lock ();
93- dev_close (card -> dev );
94- rtnl_unlock ();
9583 ccwgroup_set_offline (card -> gdev );
9684}
9785
98- void qeth_close_dev (struct qeth_card * card )
99- {
100- QETH_CARD_TEXT (card , 2 , "cldevsubm" );
101- queue_work (qeth_wq , & card -> close_dev_work );
102- }
103- EXPORT_SYMBOL_GPL (qeth_close_dev );
104-
10586static const char * qeth_get_cardname (struct qeth_card * card )
10687{
10788 if (card -> info .guestlan ) {
@@ -265,8 +246,7 @@ int qeth_realloc_buffer_pool(struct qeth_card *card, int bufcnt)
265246{
266247 QETH_CARD_TEXT (card , 2 , "realcbp" );
267248
268- if ((card -> state != CARD_STATE_DOWN ) &&
269- (card -> state != CARD_STATE_RECOVER ))
249+ if (card -> state != CARD_STATE_DOWN )
270250 return - EPERM ;
271251
272252 /* TODO: steel/add buffers from/to a running card's buffer pool (?) */
@@ -639,7 +619,7 @@ static struct qeth_ipa_cmd *qeth_check_ipa_data(struct qeth_card *card,
639619 dev_err (& card -> gdev -> dev ,
640620 "Interface %s is down because the adjacent port is no longer in reflective relay mode\n" ,
641621 QETH_CARD_IFNAME (card ));
642- qeth_close_dev ( card );
622+ schedule_work ( & card -> close_dev_work );
643623 } else {
644624 dev_warn (& card -> gdev -> dev ,
645625 "The link for interface %s on CHPID 0x%X failed\n" ,
@@ -3479,8 +3459,7 @@ int qeth_configure_cq(struct qeth_card *card, enum qeth_cq cq)
34793459 goto out ;
34803460 }
34813461
3482- if (card -> state != CARD_STATE_DOWN &&
3483- card -> state != CARD_STATE_RECOVER ) {
3462+ if (card -> state != CARD_STATE_DOWN ) {
34843463 rc = -1 ;
34853464 goto out ;
34863465 }
@@ -6220,7 +6199,6 @@ void qeth_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats)
62206199 stats -> tx_bytes += queue -> stats .tx_bytes ;
62216200 stats -> tx_errors += queue -> stats .tx_errors ;
62226201 stats -> tx_dropped += queue -> stats .tx_dropped ;
6223- stats -> tx_carrier_errors += queue -> stats .tx_carrier_errors ;
62246202 }
62256203}
62266204EXPORT_SYMBOL_GPL (qeth_get_stats64 );
@@ -6230,16 +6208,11 @@ int qeth_open(struct net_device *dev)
62306208 struct qeth_card * card = dev -> ml_priv ;
62316209
62326210 QETH_CARD_TEXT (card , 4 , "qethopen" );
6233- if (card -> state == CARD_STATE_UP )
6234- return 0 ;
6235- if (card -> state != CARD_STATE_SOFTSETUP )
6236- return - ENODEV ;
62376211
62386212 if (qdio_stop_irq (CARD_DDEV (card ), 0 ) < 0 )
62396213 return - EIO ;
62406214
62416215 card -> data .state = CH_STATE_UP ;
6242- card -> state = CARD_STATE_UP ;
62436216 netif_start_queue (dev );
62446217
62456218 napi_enable (& card -> napi );
@@ -6257,10 +6230,7 @@ int qeth_stop(struct net_device *dev)
62576230
62586231 QETH_CARD_TEXT (card , 4 , "qethstop" );
62596232 netif_tx_disable (dev );
6260- if (card -> state == CARD_STATE_UP ) {
6261- card -> state = CARD_STATE_SOFTSETUP ;
6262- napi_disable (& card -> napi );
6263- }
6233+ napi_disable (& card -> napi );
62646234 return 0 ;
62656235}
62666236EXPORT_SYMBOL_GPL (qeth_stop );
@@ -6271,12 +6241,6 @@ static int __init qeth_core_init(void)
62716241
62726242 pr_info ("loading core functions\n" );
62736243
6274- qeth_wq = create_singlethread_workqueue ("qeth_wq" );
6275- if (!qeth_wq ) {
6276- rc = - ENOMEM ;
6277- goto out_err ;
6278- }
6279-
62806244 rc = qeth_register_dbf_views ();
62816245 if (rc )
62826246 goto dbf_err ;
@@ -6318,16 +6282,13 @@ static int __init qeth_core_init(void)
63186282register_err :
63196283 qeth_unregister_dbf_views ();
63206284dbf_err :
6321- destroy_workqueue (qeth_wq );
6322- out_err :
63236285 pr_err ("Initializing the qeth device driver failed\n" );
63246286 return rc ;
63256287}
63266288
63276289static void __exit qeth_core_exit (void )
63286290{
63296291 qeth_clear_dbf_list ();
6330- destroy_workqueue (qeth_wq );
63316292 ccwgroup_driver_unregister (& qeth_core_ccwgroup_driver );
63326293 ccw_driver_unregister (& qeth_ccw_driver );
63336294 kmem_cache_destroy (qeth_qdio_outbuf_cache );
0 commit comments