@@ -3118,7 +3118,7 @@ static void ixgbe_setup_psrtype(struct ixgbe_adapter *adapter)
3118
3118
psrtype |= 1 << 29 ;
3119
3119
3120
3120
for (p = 0 ; p < adapter -> num_rx_pools ; p ++ )
3121
- IXGBE_WRITE_REG (hw , IXGBE_PSRTYPE (adapter -> num_vfs + p ),
3121
+ IXGBE_WRITE_REG (hw , IXGBE_PSRTYPE (VMDQ_P ( p ) ),
3122
3122
psrtype );
3123
3123
}
3124
3124
@@ -3135,12 +3135,12 @@ static void ixgbe_configure_virtualization(struct ixgbe_adapter *adapter)
3135
3135
vmdctl = IXGBE_READ_REG (hw , IXGBE_VT_CTL );
3136
3136
vmdctl |= IXGBE_VMD_CTL_VMDQ_EN ;
3137
3137
vmdctl &= ~IXGBE_VT_CTL_POOL_MASK ;
3138
- vmdctl |= ( adapter -> num_vfs << IXGBE_VT_CTL_POOL_SHIFT ) ;
3138
+ vmdctl |= VMDQ_P ( 0 ) << IXGBE_VT_CTL_POOL_SHIFT ;
3139
3139
vmdctl |= IXGBE_VT_CTL_REPLEN ;
3140
3140
IXGBE_WRITE_REG (hw , IXGBE_VT_CTL , vmdctl );
3141
3141
3142
- vf_shift = adapter -> num_vfs % 32 ;
3143
- reg_offset = (adapter -> num_vfs >= 32 ) ? 1 : 0 ;
3142
+ vf_shift = VMDQ_P ( 0 ) % 32 ;
3143
+ reg_offset = (VMDQ_P ( 0 ) >= 32 ) ? 1 : 0 ;
3144
3144
3145
3145
/* Enable only the PF's pool for Tx/Rx */
3146
3146
IXGBE_WRITE_REG (hw , IXGBE_VFRE (reg_offset ), (~0 ) << vf_shift );
@@ -3150,7 +3150,7 @@ static void ixgbe_configure_virtualization(struct ixgbe_adapter *adapter)
3150
3150
IXGBE_WRITE_REG (hw , IXGBE_PFDTXGSWC , IXGBE_PFDTXGSWC_VT_LBEN );
3151
3151
3152
3152
/* Map PF MAC address in RAR Entry 0 to first pool following VFs */
3153
- hw -> mac .ops .set_vmdq (hw , 0 , adapter -> num_vfs );
3153
+ hw -> mac .ops .set_vmdq (hw , 0 , VMDQ_P ( 0 ) );
3154
3154
3155
3155
/*
3156
3156
* Set up VF register offsets for selected VT Mode,
@@ -3310,10 +3310,9 @@ static int ixgbe_vlan_rx_add_vid(struct net_device *netdev, u16 vid)
3310
3310
{
3311
3311
struct ixgbe_adapter * adapter = netdev_priv (netdev );
3312
3312
struct ixgbe_hw * hw = & adapter -> hw ;
3313
- int pool_ndx = adapter -> num_vfs ;
3314
3313
3315
3314
/* add VID to filter table */
3316
- hw -> mac .ops .set_vfta (& adapter -> hw , vid , pool_ndx , true);
3315
+ hw -> mac .ops .set_vfta (& adapter -> hw , vid , VMDQ_P ( 0 ) , true);
3317
3316
set_bit (vid , adapter -> active_vlans );
3318
3317
3319
3318
return 0 ;
@@ -3323,10 +3322,9 @@ static int ixgbe_vlan_rx_kill_vid(struct net_device *netdev, u16 vid)
3323
3322
{
3324
3323
struct ixgbe_adapter * adapter = netdev_priv (netdev );
3325
3324
struct ixgbe_hw * hw = & adapter -> hw ;
3326
- int pool_ndx = adapter -> num_vfs ;
3327
3325
3328
3326
/* remove VID from filter table */
3329
- hw -> mac .ops .set_vfta (& adapter -> hw , vid , pool_ndx , false);
3327
+ hw -> mac .ops .set_vfta (& adapter -> hw , vid , VMDQ_P ( 0 ) , false);
3330
3328
clear_bit (vid , adapter -> active_vlans );
3331
3329
3332
3330
return 0 ;
@@ -3444,7 +3442,6 @@ static int ixgbe_write_uc_addr_list(struct net_device *netdev)
3444
3442
{
3445
3443
struct ixgbe_adapter * adapter = netdev_priv (netdev );
3446
3444
struct ixgbe_hw * hw = & adapter -> hw ;
3447
- unsigned int vfn = adapter -> num_vfs ;
3448
3445
unsigned int rar_entries = IXGBE_MAX_PF_MACVLANS ;
3449
3446
int count = 0 ;
3450
3447
@@ -3462,7 +3459,7 @@ static int ixgbe_write_uc_addr_list(struct net_device *netdev)
3462
3459
if (!rar_entries )
3463
3460
break ;
3464
3461
hw -> mac .ops .set_rar (hw , rar_entries -- , ha -> addr ,
3465
- vfn , IXGBE_RAH_AV );
3462
+ VMDQ_P ( 0 ) , IXGBE_RAH_AV );
3466
3463
count ++ ;
3467
3464
}
3468
3465
}
@@ -3536,12 +3533,14 @@ void ixgbe_set_rx_mode(struct net_device *netdev)
3536
3533
vmolr |= IXGBE_VMOLR_ROPE ;
3537
3534
}
3538
3535
3539
- if (adapter -> num_vfs ) {
3536
+ if (adapter -> num_vfs )
3540
3537
ixgbe_restore_vf_multicasts (adapter );
3541
- vmolr |= IXGBE_READ_REG (hw , IXGBE_VMOLR (adapter -> num_vfs )) &
3538
+
3539
+ if (hw -> mac .type != ixgbe_mac_82598EB ) {
3540
+ vmolr |= IXGBE_READ_REG (hw , IXGBE_VMOLR (VMDQ_P (0 ))) &
3542
3541
~(IXGBE_VMOLR_MPE | IXGBE_VMOLR_ROMPE |
3543
3542
IXGBE_VMOLR_ROPE );
3544
- IXGBE_WRITE_REG (hw , IXGBE_VMOLR (adapter -> num_vfs ), vmolr );
3543
+ IXGBE_WRITE_REG (hw , IXGBE_VMOLR (VMDQ_P ( 0 ) ), vmolr );
3545
3544
}
3546
3545
3547
3546
/* This is useful for sniffing bad packets. */
@@ -4120,8 +4119,7 @@ void ixgbe_reset(struct ixgbe_adapter *adapter)
4120
4119
clear_bit (__IXGBE_IN_SFP_INIT , & adapter -> state );
4121
4120
4122
4121
/* reprogram the RAR[0] in case user changed it. */
4123
- hw -> mac .ops .set_rar (hw , 0 , hw -> mac .addr , adapter -> num_vfs ,
4124
- IXGBE_RAH_AV );
4122
+ hw -> mac .ops .set_rar (hw , 0 , hw -> mac .addr , VMDQ_P (0 ), IXGBE_RAH_AV );
4125
4123
}
4126
4124
4127
4125
/**
@@ -6445,8 +6443,7 @@ static int ixgbe_set_mac(struct net_device *netdev, void *p)
6445
6443
memcpy (netdev -> dev_addr , addr -> sa_data , netdev -> addr_len );
6446
6444
memcpy (hw -> mac .addr , addr -> sa_data , netdev -> addr_len );
6447
6445
6448
- hw -> mac .ops .set_rar (hw , 0 , hw -> mac .addr , adapter -> num_vfs ,
6449
- IXGBE_RAH_AV );
6446
+ hw -> mac .ops .set_rar (hw , 0 , hw -> mac .addr , VMDQ_P (0 ), IXGBE_RAH_AV );
6450
6447
6451
6448
return 0 ;
6452
6449
}
0 commit comments