linux/drivers/net/ethernet/intel/i40e
Filip Sadowski 03ce7b1d23 i40e: Fix permission check for VF MAC filters
When VF requests adding of MAC filters the checking is done against number
of already present MAC filters not adding them at the same time. It makes
it possible to add a bunch of filters at once possibly exceeding
acceptable limit of I40E_VC_MAX_MAC_ADDR_PER_VF filters.

This happens because when checking vf->num_mac, we do not check how many
filters are being requested at once. Modify the check function to ensure
that it knows how many filters are being requested. This allows the
check to ensure that the total number of filters in a single request
does not cause us to go over the limit.

Additionally, move the check to within the lock to ensure that the
vf->num_mac is checked while holding the lock to maintain consistency.
We could have simply moved the call to i40e_vf_check_permission to
within the loop, but this could cause a request to be non-atomic, and
add some but not all the addresses, while reporting an error code. We
want to avoid this behavior so that users are not confused about which
filters have or have not been added.

Signed-off-by: Filip Sadowski <filip.sadowski@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
2018-03-14 12:23:11 -07:00
..
i40e_adminq_cmd.h i40e: link_down_on_close private flag support 2018-02-26 11:48:06 -08:00
i40e_adminq.c i40e: cleanup unnecessary parens 2018-01-26 13:23:28 -08:00
i40e_adminq.h i40e: reduce wait time for adminq command completion 2017-04-19 17:38:25 -07:00
i40e_alloc.h
i40e_client.c i40e: Disable iWARP VSI PETCP_ENA flag on netdev down events 2018-01-23 11:29:19 -08:00
i40e_client.h i40e: Disable iWARP VSI PETCP_ENA flag on netdev down events 2018-01-23 11:29:19 -08:00
i40e_common.c i40e: Display LLDP information on vSphere Web Client 2018-01-26 13:23:11 -08:00
i40e_dcb_nl.c
i40e_dcb.c i40e: Support firmware CEE DCB UP to TC map re-definition 2017-06-20 18:17:10 -07:00
i40e_dcb.h
i40e_debugfs.c i40e: don't leak memory addresses 2018-02-13 11:40:10 -08:00
i40e_devids.h i40e: Add support for 25G devices 2016-12-06 20:59:43 -08:00
i40e_diag.c i40e: make const array patterns static, reduces object code size 2017-10-13 14:23:57 -07:00
i40e_diag.h
i40e_ethtool.c i40e: link_down_on_close private flag support 2018-02-26 11:48:06 -08:00
i40e_hmc.c
i40e_hmc.h
i40e_lan_hmc.c
i40e_lan_hmc.h
i40e_main.c i40e: Cleanup i40e_vlan_rx_register 2018-03-14 12:22:21 -07:00
i40e_nvm.c i40e/i40evf: Enable NVMUpdate to retrieve AdminQ and add preservation flags for NVM update 2018-01-23 11:29:19 -08:00
i40e_osdep.h i40e: Drop FCoE code from core driver files 2017-03-27 16:47:43 -07:00
i40e_prototype.h i40e: Display LLDP information on vSphere Web Client 2018-01-26 13:23:11 -08:00
i40e_ptp.c locking/atomics: COCCINELLE/treewide: Convert trivial ACCESS_ONCE() patterns to READ_ONCE()/WRITE_ONCE() 2017-10-25 11:01:08 +02:00
i40e_register.h i40e: fix incorrect register definition 2017-10-06 08:11:31 -07:00
i40e_status.h i40e: Add returning AQ critical error to SW 2018-01-26 13:22:56 -08:00
i40e_trace.h i40e/i40evf: Add tracepoints 2017-04-19 16:47:31 -07:00
i40e_txrx.c i40e/i40evf: use SW variables for hang detection 2018-02-26 12:33:27 -08:00
i40e_txrx.h i40e/i40evf: use SW variables for hang detection 2018-02-26 12:33:27 -08:00
i40e_type.h i40e: Enable ADq and create queue channel/s on VF 2018-02-14 09:43:22 -08:00
i40e_virtchnl_pf.c i40e: Fix permission check for VF MAC filters 2018-03-14 12:23:11 -07:00
i40e_virtchnl_pf.h i40e: Add and delete cloud filter 2018-02-14 09:43:22 -08:00
i40e.h i40e: Add and delete cloud filter 2018-02-14 09:43:22 -08:00
Makefile i40e/i40evf: Add tracepoints 2017-04-19 16:47:31 -07:00