aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/pensando/ionic/ionic_main.c
diff options
context:
space:
mode:
authorShannon Nelson <snelson@pensando.io>2021-10-09 11:45:21 -0700
committerDavid S. Miller <davem@davemloft.net>2021-10-10 10:42:47 +0100
commit9b0b6ba6226e02def72e3b6985989c2d6b9c69e2 (patch)
treec514948c5dc764ebe8613965c61517f18bbb46a7 /drivers/net/ethernet/pensando/ionic/ionic_main.c
parentionic: generic filter delete (diff)
downloadlinux-dev-9b0b6ba6226e02def72e3b6985989c2d6b9c69e2.tar.xz
linux-dev-9b0b6ba6226e02def72e3b6985989c2d6b9c69e2.zip
ionic: handle vlan id overflow
Add vlans to the existing rx_filter_sync mechanics currently used for managing mac filters. Older versions of our firmware had no enforced limits on the number of vlans that the LIF could request, but requesting large numbers of vlans caused issues in FW memory management, so an arbitrary limit was added in the FW. The FW now returns -ENOSPC when it hits that limit, which the driver needs to handle. Unfortunately, the FW doesn't advertise the vlan id limit, as it does with mac filters, so the driver won't know the limit until it bumps into it. We'll grab the current vlan id count and use that as the limit from there on and thus prevent getting any more -ENOSPC errors. Just as is done for the mac filters, the device puts the device into promiscuous mode when -ENOSPC is seen for vlan ids, and the driver will track the vlans that aren't synced to the FW. When vlans are removed, the driver will retry the un-synced vlans. If all outstanding vlans are synced, the promiscuous mode will be disabled. Signed-off-by: Shannon Nelson <snelson@pensando.io> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/pensando/ionic/ionic_main.c')
0 files changed, 0 insertions, 0 deletions