linux/drivers/net/ethernet
Jacob Keller f808c5dbcd fm10k: fix multi-bit VLAN update requests from VF
The VF uses a multi-bit update request to clear unused VLANs whenever it
resets. However, an accident in a previous refector broke multi-bit
updates for VFs, due to misreading a comment in fm10k_vf.c and
attempting to reduce code duplication. The problem occurs because
a multi-bit request has a non-zero length, and the PF would simply drop
any request with the upper 16 bits set.

We can't simply remove the check of the upper 16 bits and the call to
fm10k_iov_select vid, because this would remove the checks for default
VID and for ensuring no other VLANs can be enabled except pf_vid when it
has been set. To resolve that issue, this revision uses the
iov_select_vid when we have a single-bit update, and denies any
multi-bit update when the VLAN was administratively set by the PF. This
should be ok since the PF properly updates VLAN_TABLE when it assigns
the PF vid. This ensures that requests to add or remove the PF vid work
as expected, but a rogue VF could not use the multi-bit update as
a loophole to attempt receiving traffic on other VLANs.

Reported-by: Ngai-Mint Kwan <ngai-mint.kwan@intel.com>
Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
Tested-by: Krishneil Singh <Krishneil.k.singh@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
2016-04-13 20:06:55 -07:00
..
3com Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-03-08 12:34:12 -05:00
8390 pcnet_cs: add new id 2016-02-16 16:06:13 -05:00
adaptec
adi net: bfin_mac: Use phy_find_first() instead of open-coding it 2016-01-11 00:00:34 -05:00
aeroflex mdio: Move allocation of interrupts into core 2016-01-07 14:31:26 -05:00
agere et131x: check return value of dma_alloc_coherent 2016-02-17 23:32:05 -05:00
allwinner
alteon
altera net: eth: altera: do not free array priv->mdio->irq 2016-03-06 22:59:18 -05:00
amd net: relax setup_tc ndo op handle restriction 2016-03-03 16:25:15 -05:00
apm drivers: net: xgene: Add support for multiple queues 2016-02-17 22:08:34 -05:00
apple
arc net: arc: trivial: cleanup the emac driver 2016-03-16 19:28:01 -04:00
atheros ethernet/atl1c: remove left over dead code 2016-03-02 15:00:55 -05:00
aurora net: ethernet: nb8800: support fixed-link DT node 2016-02-24 11:32:11 -05:00
broadcom bnxt_en: Fix ethtool -a reporting. 2016-03-30 19:01:33 -04:00
brocade bna: fix list corruption 2016-03-01 15:19:43 -05:00
cadence net: macb: Only call GPIO functions if there is a valid GPIO 2016-03-28 11:39:16 -04:00
calxeda
cavium netdev: Move octeon/octeon_mgmt driver to cavium directory. 2016-03-18 18:25:30 -04:00
chelsio cxgb4: Stop Rx Queues before freeing it up 2016-04-11 12:21:39 -04:00
cirrus
cisco cisco: enic: Update logging macros and uses 2016-03-11 15:07:48 -05:00
davicom net: ethernet: davicom: fix devicetree irq resource 2016-02-21 22:40:49 -05:00
dec net: tulip: Use setup_timer() 2016-02-25 16:51:04 -05:00
dlink
emulex Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-03-08 12:34:12 -05:00
ezchip net: ezchip: adapt driver to little endian architecture 2016-03-03 17:20:08 -05:00
faraday net: ethernet: faraday: Use phy_find_first() instead of open coding it 2016-01-10 22:05:30 -05:00
freescale fec: Do not access unexisting register in Coldfire 2016-03-31 16:04:05 -04:00
fujitsu fmvj18x_cs: fix incorrect indexing of dev->dev_addr[] when copying the MAC address 2016-02-21 22:08:43 -05:00
hisilicon Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-04-01 20:03:33 -05:00
hp net: hp100: remove unnecessary #ifdefs 2016-01-29 20:33:38 -08:00
i825xx
ibm ibmveth: check return of skb_linearize in ibmveth_start_xmit 2016-03-07 14:38:52 -05:00
intel fm10k: fix multi-bit VLAN update requests from VF 2016-04-13 20:06:55 -07:00
marvell net: mvneta: fix changing MTU when using per-cpu processing 2016-04-01 15:16:37 -04:00
mediatek net: mediatek: fix checking for NULL instead of IS_ERR() in .probe 2016-03-23 13:49:13 -04:00
mellanox Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-03-23 23:25:14 -07:00
micrel ethernet: micrel: fix some error codes 2016-03-18 19:39:54 -04:00
microchip
moxa net: moxa: fix an error code 2016-03-03 17:17:14 -05:00
myricom
natsemi natsemi: add checks for dma mapping errors 2015-12-19 12:58:46 -05:00
neterion net: vxge: avoid unused function warnings 2016-01-29 20:33:39 -08:00
netronome asm-generic: remove old nonatomic-io wrapper files 2016-03-01 22:25:17 +01:00
nuvoton treewide: Fix typo in printk 2016-02-15 11:18:22 +01:00
nvidia forcedeth: Use setup_timer() 2016-02-25 16:51:05 -05:00
nxp net: lpc_eth: Remove unused variables 2016-01-10 22:50:14 -05:00
oki-semi net: Rename NETIF_F_ALL_CSUM to NETIF_F_CSUM_MASK 2015-12-15 16:50:08 -05:00
packetengines
pasemi pasemi_mac: Replace LRO with GRO 2016-02-17 16:15:45 -05:00
qlogic qed: initialize return rc to avoid returning garbage 2016-03-30 15:48:15 -04:00
qualcomm net: qca_spi: clear IFF_TX_SKB_SHARING 2016-02-25 16:12:15 -05:00
rdc mdio: Move allocation of interrupts into core 2016-01-07 14:31:26 -05:00
realtek r8169:Remove unnecessary phy reset for pcie nic when setting link spped. 2016-03-13 22:32:44 -04:00
renesas net: ethernet: renesas: ravb_main: test clock rate to avoid division by 0 2016-04-13 22:36:28 -04:00
rocker rocker: move ageing_time from struct rocker to struct ofdpa 2016-03-12 20:11:13 -05:00
samsung net: sxgbe: fix error paths in sxgbe_platform_probe() 2016-03-27 22:39:22 -04:00
seeq
sfc net: relax setup_tc ndo op handle restriction 2016-03-03 16:25:15 -05:00
sgi
silan
sis
smsc net: smc911x: avoid unused variable warnings 2016-03-21 11:26:12 -04:00
stmicro net: stmmac: socfgpa: Ensure emac bit set in System Manger for PTP 2016-04-10 23:44:21 -04:00
sun Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2016-03-19 10:05:34 -07:00
synopsys dwc_eth_qos: do phy_start before resetting hardware 2016-03-02 14:57:15 -05:00
tehuti
ti net: relax setup_tc ndo op handle restriction 2016-03-03 16:25:15 -05:00
tile tilepro: use to_delayed_work 2016-01-04 16:07:16 -05:00
toshiba PCI: Remove includes of asm/pci-bridge.h 2016-02-05 16:29:28 -06:00
tundra
via
wiznet
xilinx phy: Add an mdio_device structure 2016-01-07 14:31:26 -05:00
xircom
xscale
dnet.c mdio: Move allocation of interrupts into core 2016-01-07 14:31:26 -05:00
dnet.h
ec_bhf.c
ethoc.c net/ethoc: do not free array priv->mdio->irq 2016-03-06 22:58:51 -05:00
fealnx.c
jme.c jme: Fix device PM wakeup API usage 2016-03-07 15:39:45 -05:00
jme.h
Kconfig netdev: Move octeon/octeon_mgmt driver to cavium directory. 2016-03-18 18:25:30 -04:00
korina.c
lantiq_etop.c net: lantiq_etop.c: Use helper to find first phy 2016-01-10 18:03:47 -05:00
Makefile netdev: Move octeon/octeon_mgmt driver to cavium directory. 2016-03-18 18:25:30 -04:00
netx-eth.c