diff options
Diffstat (limited to 'drivers/net/ehea/ehea_main.c')
| -rw-r--r-- | drivers/net/ehea/ehea_main.c | 15 | 
1 files changed, 9 insertions, 6 deletions
diff --git a/drivers/net/ehea/ehea_main.c b/drivers/net/ehea/ehea_main.c index f75d3144b8a..cf79cf759e1 100644 --- a/drivers/net/ehea/ehea_main.c +++ b/drivers/net/ehea/ehea_main.c @@ -2688,9 +2688,6 @@ static int ehea_open(struct net_device *dev)  		netif_start_queue(dev);  	} -	init_waitqueue_head(&port->swqe_avail_wq); -	init_waitqueue_head(&port->restart_wq); -  	mutex_unlock(&port->port_lock);  	return ret; @@ -3040,11 +3037,14 @@ static void ehea_rereg_mrs(void)  					if (dev->flags & IFF_UP) {  						mutex_lock(&port->port_lock); -						port_napi_enable(port);  						ret = ehea_restart_qps(dev); -						check_sqs(port); -						if (!ret) +						if (!ret) { +							check_sqs(port); +							port_napi_enable(port);  							netif_wake_queue(dev); +						} else { +							netdev_err(dev, "Unable to restart QPS\n"); +						}  						mutex_unlock(&port->port_lock);  					}  				} @@ -3273,6 +3273,9 @@ struct ehea_port *ehea_setup_single_port(struct ehea_adapter *adapter,  	INIT_WORK(&port->reset_task, ehea_reset_port); +	init_waitqueue_head(&port->swqe_avail_wq); +	init_waitqueue_head(&port->restart_wq); +  	ret = register_netdev(dev);  	if (ret) {  		pr_err("register_netdev failed. ret=%d\n", ret);  |