diff options
| author | Mark Brown <broonie@kernel.org> | 2017-08-21 23:48:37 +0300 | 
|---|---|---|
| committer | Mark Brown <broonie@kernel.org> | 2017-08-21 23:48:37 +0300 | 
| commit | f13db334bf7b68b0086d04ab6a51517ba41123b4 (patch) | |
| tree | 1ce74e775b64e9804aa5bbece3cdc94fd309912b /drivers/net/ethernet/ibm/ibmvnic.c | |
| parent | eb59d73cb535ba32df928f210fb9a8529bf465c0 (diff) | |
| parent | b47b91c8504c62f95ddff2876620d68697927bd4 (diff) | |
| download | linux-f13db334bf7b68b0086d04ab6a51517ba41123b4.tar.xz | |
Merge branch 'topic/msm8916' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-const
Diffstat (limited to 'drivers/net/ethernet/ibm/ibmvnic.c')
| -rw-r--r-- | drivers/net/ethernet/ibm/ibmvnic.c | 15 | 
1 files changed, 14 insertions, 1 deletions
diff --git a/drivers/net/ethernet/ibm/ibmvnic.c b/drivers/net/ethernet/ibm/ibmvnic.c index a3e694679635..c45e8e3b82d3 100644 --- a/drivers/net/ethernet/ibm/ibmvnic.c +++ b/drivers/net/ethernet/ibm/ibmvnic.c @@ -111,6 +111,7 @@ static void send_request_map(struct ibmvnic_adapter *, dma_addr_t, __be32, u8);  static void send_request_unmap(struct ibmvnic_adapter *, u8);  static void send_login(struct ibmvnic_adapter *adapter);  static void send_cap_queries(struct ibmvnic_adapter *adapter); +static int init_sub_crqs(struct ibmvnic_adapter *);  static int init_sub_crq_irqs(struct ibmvnic_adapter *adapter);  static int ibmvnic_init(struct ibmvnic_adapter *);  static void release_crq_queue(struct ibmvnic_adapter *); @@ -651,6 +652,7 @@ static int ibmvnic_login(struct net_device *netdev)  	struct ibmvnic_adapter *adapter = netdev_priv(netdev);  	unsigned long timeout = msecs_to_jiffies(30000);  	struct device *dev = &adapter->vdev->dev; +	int rc;  	do {  		if (adapter->renegotiate) { @@ -664,6 +666,18 @@ static int ibmvnic_login(struct net_device *netdev)  				dev_err(dev, "Capabilities query timeout\n");  				return -1;  			} +			rc = init_sub_crqs(adapter); +			if (rc) { +				dev_err(dev, +					"Initialization of SCRQ's failed\n"); +				return -1; +			} +			rc = init_sub_crq_irqs(adapter); +			if (rc) { +				dev_err(dev, +					"Initialization of SCRQ's irqs failed\n"); +				return -1; +			}  		}  		reinit_completion(&adapter->init_done); @@ -3004,7 +3018,6 @@ static void handle_request_cap_rsp(union ibmvnic_crq *crq,  			 *req_value,  			 (long int)be64_to_cpu(crq->request_capability_rsp.  					       number), name); -		release_sub_crqs(adapter);  		*req_value = be64_to_cpu(crq->request_capability_rsp.number);  		ibmvnic_send_req_caps(adapter, 1);  		return;  | 
