diff options
Diffstat (limited to 'drivers/net/ethernet/broadcom/cnic.c')
| -rw-r--r-- | drivers/net/ethernet/broadcom/cnic.c | 10 | 
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/net/ethernet/broadcom/cnic.c b/drivers/net/ethernet/broadcom/cnic.c index df8c30d1a52..149a3a03849 100644 --- a/drivers/net/ethernet/broadcom/cnic.c +++ b/drivers/net/ethernet/broadcom/cnic.c @@ -4816,6 +4816,8 @@ static int cnic_start_bnx2_hw(struct cnic_dev *dev)  		return err;  	} +	ethdev->drv_state |= CNIC_DRV_STATE_HANDLES_IRQ; +  	return 0;  } @@ -5136,6 +5138,7 @@ static int cnic_start_bnx2x_hw(struct cnic_dev *dev)  	if (ret)  		return ret; +	ethdev->drv_state |= CNIC_DRV_STATE_HANDLES_IRQ;  	return 0;  } @@ -5387,6 +5390,7 @@ static void cnic_stop_hw(struct cnic_dev *dev)  		}  		cnic_shutdown_rings(dev);  		cp->stop_cm(dev); +		cp->ethdev->drv_state &= ~CNIC_DRV_STATE_HANDLES_IRQ;  		clear_bit(CNIC_F_CNIC_UP, &dev->flags);  		RCU_INIT_POINTER(cp->ulp_ops[CNIC_ULP_L4], NULL);  		synchronize_rcu(); @@ -5421,11 +5425,9 @@ static struct cnic_dev *cnic_alloc_dev(struct net_device *dev,  	alloc_size = sizeof(struct cnic_dev) + sizeof(struct cnic_local); -	cdev = kzalloc(alloc_size , GFP_KERNEL); -	if (cdev == NULL) { -		netdev_err(dev, "allocate dev struct failure\n"); +	cdev = kzalloc(alloc_size, GFP_KERNEL); +	if (cdev == NULL)  		return NULL; -	}  	cdev->netdev = dev;  	cdev->cnic_priv = (char *)cdev + sizeof(struct cnic_dev);  |