linux/drivers/net/ethernet
Jack Morgenstein 7b8157bedc mlx4_core: Adjustments to Flow Steering activation logic for SR-IOV
Separate flow steering capability detection from the decision to activate.

For the master (and for native), detect the flow steering capability
in mlx4_dev_cap, but activate the appropriate steering type in a new
function choose_flow_steering() based on detected data.

For VFs, activate flow steering based on what was actually activated
by the master, where that info is obtained via QUERY_HCA. This fixes
the current VF detection which is wrongly based on QUERY_DEV_CAP.

Also, for SR-IOV mode, if flow steering may be activated, do so only
if the max number of QPs per rule is sufficient to satisfy one
subscription per VF.  If not, fall back to B0 mode. This is needed to
serve registrations done by L2 network drivers such as mlx4_en and
IPoIB when the network stack attempts to join to multicast groups such
as all-hosts or the IPoIB broadcast group.

Signed-off-by: Jack Morgenstein <jackm@dev.mellanox.co.il>
Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
2012-12-19 11:47:14 -08:00
..
3com drivers/net: fix up function prototypes after __dev* removals 2012-12-07 14:22:22 -05:00
8390 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2012-12-13 12:00:02 -08:00
adaptec drivers/net: fix up function prototypes after __dev* removals 2012-12-07 14:22:22 -05:00
adi bfin_mac: remove __dev* attributes 2012-12-03 11:16:41 -08:00
aeroflex aeroflex: remove __dev* attributes 2012-12-03 11:16:41 -08:00
alteon drivers/net: fix up function prototypes after __dev* removals 2012-12-07 14:22:22 -05:00
amd drivers/net: fix up function prototypes after __dev* removals 2012-12-07 14:22:22 -05:00
apple net/apple: remove __dev* attributes 2012-12-03 11:16:54 -08:00
atheros drivers/net: fix up function prototypes after __dev* removals 2012-12-07 14:22:22 -05:00
broadcom Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2012-12-13 12:00:02 -08:00
brocade bna: Driver Version Updated to 3.1.2.1 2012-12-11 18:25:53 -05:00
cadence net/cadence: remove __dev* attributes 2012-12-03 11:16:54 -08:00
calxeda net: calxedaxgmac: ip align receive buffers 2012-11-07 03:51:14 -05:00
chelsio SCSI misc on 20121212 2012-12-13 19:20:31 -08:00
cirrus
cisco drivers/net: fix up function prototypes after __dev* removals 2012-12-07 14:22:22 -05:00
davicom net: dm9000: use io{read,write}*_rep accessors 2012-12-10 15:46:27 -05:00
dec drivers/net: fix up function prototypes after __dev* removals 2012-12-07 14:22:22 -05:00
dlink Networking: Remove __dev* markings from the networking drivers 2012-12-03 15:35:28 -05:00
emulex drivers/net: fix up function prototypes after __dev* removals 2012-12-07 14:22:22 -05:00
faraday
freescale drivers/net: fix up function prototypes after __dev* removals 2012-12-07 14:22:22 -05:00
fujitsu
hp drivers/net: fix up function prototypes after __dev* removals 2012-12-07 14:22:22 -05:00
i825xx i825xx: remove __dev* attributes 2012-12-03 11:16:12 -08:00
ibm drivers/net: fix up function prototypes after __dev* removals 2012-12-07 14:22:22 -05:00
icplus drivers/net: fix up function prototypes after __dev* removals 2012-12-07 14:22:22 -05:00
intel Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2012-12-13 12:00:02 -08:00
marvell ARM: arm-soc: Updates for Marvell mvebu/kirkwood 2012-12-14 14:54:26 -08:00
mellanox mlx4_core: Adjustments to Flow Steering activation logic for SR-IOV 2012-12-19 11:47:14 -08:00
micrel Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2012-12-13 12:00:02 -08:00
microchip enc28j60: remove __dev* attributes 2012-12-03 11:16:44 -08:00
myricom Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2012-12-13 12:00:02 -08:00
natsemi drivers/net: fix up function prototypes after __dev* removals 2012-12-07 14:22:22 -05:00
neterion drivers/net: fix up function prototypes after __dev* removals 2012-12-07 14:22:22 -05:00
nuvoton nuvoton: remove __dev* attributes 2012-12-03 11:16:44 -08:00
nvidia forcedeth: remove __dev* attributes 2012-12-03 11:16:44 -08:00
nxp lpc_eth: remove __dev* attributes 2012-12-03 11:16:44 -08:00
octeon net/octeon_mgmt: remove __dev* attributes 2012-12-03 11:16:45 -08:00
oki-semi pch_gbe, ptp_pch: Fix the dependency direction between these drivers 2012-11-17 22:11:45 -05:00
packetengines drivers/net: fix up function prototypes after __dev* removals 2012-12-07 14:22:22 -05:00
pasemi net/pasemi: remove __dev* attributes 2012-12-03 11:16:55 -08:00
qlogic drivers/net: fix up function prototypes after __dev* removals 2012-12-07 14:22:22 -05:00
racal
rdc drivers/net: fix up function prototypes after __dev* removals 2012-12-07 14:22:22 -05:00
realtek Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2012-12-12 18:07:07 -08:00
renesas net: sh_eth: Fix a typo - replace regist with register. 2012-11-03 15:37:35 -04:00
seeq seeq: remove __dev* attributes 2012-12-03 11:16:46 -08:00
sfc drivers/net: fix up function prototypes after __dev* removals 2012-12-07 14:22:22 -05:00
sgi drivers/net: fix up function prototypes after __dev* removals 2012-12-07 14:22:22 -05:00
silan drivers/net: fix up function prototypes after __dev* removals 2012-12-07 14:22:22 -05:00
sis drivers/net: fix up function prototypes after __dev* removals 2012-12-07 14:22:22 -05:00
smsc net: smc911x: use io{read,write}*_rep accessors 2012-12-11 12:49:53 -05:00
stmicro drivers/net: fix up function prototypes after __dev* removals 2012-12-07 14:22:22 -05:00
sun drivers/net: fix up function prototypes after __dev* removals 2012-12-07 14:22:22 -05:00
tehuti tehuti: remove __dev* attributes 2012-12-03 11:16:53 -08:00
ti drivers/net: fix up function prototypes after __dev* removals 2012-12-07 14:22:22 -05:00
tile tilegx: request_irq with a non-null device name 2012-11-16 01:40:41 -05:00
toshiba drivers/net: fix up function prototypes after __dev* removals 2012-12-07 14:22:22 -05:00
tundra
via drivers/net: fix up function prototypes after __dev* removals 2012-12-07 14:22:22 -05:00
wiznet net/wiznet: remove __dev* attributes 2012-12-03 11:16:56 -08:00
xilinx net/xilinx: remove __dev* attributes 2012-12-03 11:16:56 -08:00
xircom
xscale ixp4xx_eth: remove __dev* attributes 2012-12-03 11:16:53 -08:00
dnet.c net/ethernet: remove __dev* attributes 2012-12-03 11:16:56 -08:00
dnet.h
ethoc.c net/ethernet: remove __dev* attributes 2012-12-03 11:16:56 -08:00
fealnx.c drivers/net: fix up function prototypes after __dev* removals 2012-12-07 14:22:22 -05:00
jme.c jme: remove __dev* attributes 2012-12-03 11:16:54 -08:00
jme.h
Kconfig
korina.c
lantiq_etop.c net/ethernet: remove __dev* attributes 2012-12-03 11:16:56 -08:00
Makefile
netx-eth.c
s6gmac.c net/ethernet: remove __dev* attributes 2012-12-03 11:16:56 -08:00