diff options
Diffstat (limited to 'drivers/net/ethernet/intel/ice/ice_main.c')
| -rw-r--r-- | drivers/net/ethernet/intel/ice/ice_main.c | 8 | 
1 files changed, 7 insertions, 1 deletions
| diff --git a/drivers/net/ethernet/intel/ice/ice_main.c b/drivers/net/ethernet/intel/ice/ice_main.c index 0d6c143f6653..06fa93e597fb 100644 --- a/drivers/net/ethernet/intel/ice/ice_main.c +++ b/drivers/net/ethernet/intel/ice/ice_main.c @@ -4224,6 +4224,9 @@ ice_probe(struct pci_dev *pdev, const struct pci_device_id __always_unused *ent)  	if (!pf)  		return -ENOMEM; +	/* initialize Auxiliary index to invalid value */ +	pf->aux_idx = -1; +  	/* set up for high or low DMA */  	err = dma_set_mask_and_coherent(dev, DMA_BIT_MASK(64));  	if (err) @@ -4615,7 +4618,8 @@ static void ice_remove(struct pci_dev *pdev)  	ice_aq_cancel_waiting_tasks(pf);  	ice_unplug_aux_dev(pf); -	ida_free(&ice_aux_ida, pf->aux_idx); +	if (pf->aux_idx >= 0) +		ida_free(&ice_aux_ida, pf->aux_idx);  	set_bit(ICE_DOWN, pf->state);  	mutex_destroy(&(&pf->hw)->fdir_fltr_lock); @@ -5016,6 +5020,8 @@ static const struct pci_device_id ice_pci_tbl[] = {  	{ PCI_VDEVICE(INTEL, ICE_DEV_ID_E810C_BACKPLANE), 0 },  	{ PCI_VDEVICE(INTEL, ICE_DEV_ID_E810C_QSFP), 0 },  	{ PCI_VDEVICE(INTEL, ICE_DEV_ID_E810C_SFP), 0 }, +	{ PCI_VDEVICE(INTEL, ICE_DEV_ID_E810_XXV_BACKPLANE), 0 }, +	{ PCI_VDEVICE(INTEL, ICE_DEV_ID_E810_XXV_QSFP), 0 },  	{ PCI_VDEVICE(INTEL, ICE_DEV_ID_E810_XXV_SFP), 0 },  	{ PCI_VDEVICE(INTEL, ICE_DEV_ID_E823C_BACKPLANE), 0 },  	{ PCI_VDEVICE(INTEL, ICE_DEV_ID_E823C_QSFP), 0 }, |