@ -1204,7 +1204,7 @@ ar8xxx_sw_set_vid(struct switch_dev *dev, const struct switch_attr *attr,
{
{
struct ar8xxx_priv * priv = swdev_to_ar8xxx ( dev ) ;
struct ar8xxx_priv * priv = swdev_to_ar8xxx ( dev ) ;
if ( val - > port_vlan > = AR8X16_MAX_VLANS )
if ( val - > port_vlan > = dev - > vlans )
return - EINVAL ;
return - EINVAL ;
priv - > vlan_id [ val - > port_vlan ] = val - > value . i ;
priv - > vlan_id [ val - > port_vlan ] = val - > value . i ;
@ -1237,7 +1237,7 @@ ar8xxx_sw_get_ports(struct switch_dev *dev, struct switch_val *val)
u8 ports ;
u8 ports ;
int i ;
int i ;
if ( val - > port_vlan > = AR8X16_MAX_VLANS )
if ( val - > port_vlan > = dev - > vlans )
return - EINVAL ;
return - EINVAL ;
ports = priv - > vlan_table [ val - > port_vlan ] ;
ports = priv - > vlan_table [ val - > port_vlan ] ;
@ -1277,7 +1277,7 @@ ar8xxx_sw_set_ports(struct switch_dev *dev, struct switch_val *val)
/* make sure that an untagged port does not
/* make sure that an untagged port does not
* appear in other vlans */
* appear in other vlans */
for ( j = 0 ; j < AR8X16_MAX_VLANS ; j + + ) {
for ( j = 0 ; j < dev - > vlans ; j + + ) {
if ( j = = val - > port_vlan )
if ( j = = val - > port_vlan )
continue ;
continue ;
priv - > vlan_table [ j ] & = ~ ( 1 < < p - > id ) ;
priv - > vlan_table [ j ] & = ~ ( 1 < < p - > id ) ;
@ -1356,7 +1356,7 @@ ar8xxx_sw_hw_apply(struct switch_dev *dev)
if ( ! priv - > init ) {
if ( ! priv - > init ) {
/* calculate the port destination masks and load vlans
/* calculate the port destination masks and load vlans
* into the vlan translation unit */
* into the vlan translation unit */
for ( j = 0 ; j < AR8X16_MAX_VLANS ; j + + ) {
for ( j = 0 ; j < dev - > vlans ; j + + ) {
u8 vp = priv - > vlan_table [ j ] ;
u8 vp = priv - > vlan_table [ j ] ;
if ( ! vp )
if ( ! vp )
@ -1409,7 +1409,7 @@ ar8xxx_sw_reset_switch(struct switch_dev *dev)
memset ( & priv - > vlan , 0 , sizeof ( struct ar8xxx_priv ) -
memset ( & priv - > vlan , 0 , sizeof ( struct ar8xxx_priv ) -
offsetof ( struct ar8xxx_priv , vlan ) ) ;
offsetof ( struct ar8xxx_priv , vlan ) ) ;
for ( i = 0 ; i < AR8X16_MAX_VLANS ; i + + )
for ( i = 0 ; i < dev - > vlans ; i + + )
priv - > vlan_id [ i ] = i ;
priv - > vlan_id [ i ] = i ;
/* Configure all ports */
/* Configure all ports */