kernel-ark/drivers/net/ethernet
Marcel Apfelbaum 3fc929e2d6 net/mlx4_core: Fix number of EQs used in ICM initialisation
In SRIOV mode, the number of EQs used when computing the total ICM size
was incorrect.

To fix this, we do the following:
1. We add a new structure to mlx4_dev, mlx4_phys_caps, to contain physical HCA
   capabilities.  The PPF uses the phys capabilities when it computes things
   like ICM size.

   The dev_caps structure will then contain the paravirtualized values, making
   bookkeeping much easier in SRIOV mode. We add a structure rather than a
   single parameter because there will be other fields in the phys_caps.

   The first field we add to the mlx4_phys_caps structure is num_phys_eqs.

2. In INIT_HCA, when running in SRIOV mode, the "log_num_eqs" parameter
   passed to the FW is the number of EQs per VF/PF; each function (PF or VF)
   has this number of EQs available.

   However, the total number of EQs which must be allowed for in the ICM is
   (1 << log_num_eqs) * (#VFs + #PFs).  Rather than compute this quantity,
   we allocate ICM space for 1024 EQs (which is the device maximum
   number of EQs, and which is the value we place in the mlx4_phys_caps structure).

   For INIT_HCA, however, we use the per-function number of EQs as described
   above.

Signed-off-by: Marcel Apfelbaum <marcela@dev.mellanox.co.il>
Signed-off-by: Jack Morgenstein <jackm@dev.mellanox.co.il>
Reviewed-by: Or Gerlitz <ogerlitz@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2012-05-31 18:18:16 -04:00
..
3com Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2012-05-22 19:22:50 -07:00
8390 drivers/net: delete all code/drivers depending on CONFIG_MCA 2012-05-17 16:37:41 -04:00
adaptec starfire: remove deprecated options. 2012-04-07 11:45:26 +02:00
adi bfin: Fix build failure due to get_ts_info() changes. 2012-04-06 00:17:50 -04:00
aeroflex
alteon Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
amd Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k 2012-05-21 12:43:54 -07:00
apple
atheros atl1c: remove PHY polling from atl1c_change_mtu 2012-04-30 21:44:16 -04:00
broadcom Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2012-05-22 19:22:50 -07:00
brocade Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2012-05-22 19:22:50 -07:00
cadence net/at91_ether: use gpio_to_irq for phy IRQ line 2012-04-28 21:48:39 -04:00
calxeda
chelsio cxgb4: DB Drop Recovery for RDMA and LLD queues 2012-05-18 13:22:28 -07:00
cirrus cirrus: cs89x0: Remove function prototypes and reorder declarations 2012-05-18 23:48:07 -04:00
cisco drivers/net: Convert compare_ether_addr to ether_addr_equal 2012-05-10 23:33:01 -04:00
davicom dm9000: some coldfire boards need this 2012-05-14 18:40:16 -04:00
dec drivers/net: Convert compare_ether_addr to ether_addr_equal 2012-05-10 23:33:01 -04:00
dlink Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2012-05-07 23:35:40 -04:00
emulex InfiniBand/RDMA changes for the 3.5 merge window: 2012-05-21 17:54:55 -07:00
faraday
freescale arm-soc: clock driver changes 2012-05-26 12:42:29 -07:00
fujitsu drivers/net: delete all code/drivers depending on CONFIG_MCA 2012-05-17 16:37:41 -04:00
hp
i825xx drivers/net: delete all code/drivers depending on CONFIG_MCA 2012-05-17 16:37:41 -04:00
ibm ehea: fix losing of NEQ events when one event occurred early 2012-05-10 22:45:54 -04:00
icplus
intel Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2012-05-20 21:53:04 -04:00
marvell arm-soc: clock driver changes 2012-05-26 12:42:29 -07:00
mellanox net/mlx4_core: Fix number of EQs used in ICM initialisation 2012-05-31 18:18:16 -04:00
micrel Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2012-05-16 22:17:37 -04:00
microchip
myricom myri10ge: stop using net_device.{base_addr, irq}. 2012-04-07 11:58:09 +02:00
natsemi drivers/net: delete all code/drivers depending on CONFIG_MCA 2012-05-17 16:37:41 -04:00
neterion Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2012-04-10 14:30:45 -04:00
nuvoton
nvidia forcedeth: add transmit timestamping support 2012-04-30 21:33:27 -04:00
nxp arm-soc: device tree conversions, part 1 2012-05-22 09:30:52 -07:00
octeon
oki-semi Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2012-05-16 22:17:37 -04:00
packetengines yellowfin: stop using net_device.{base_addr, irq}. 2012-04-07 11:45:26 +02:00
pasemi net/pasemi: fix compiler warning 2012-05-02 20:52:48 -04:00
qlogic Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2012-05-22 19:22:50 -07:00
racal
rdc r6040: Do a Proper deinit at errorpath and also when driver unloads (calling r6040_remove_one) 2012-05-29 22:31:08 -04:00
realtek Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2012-05-22 19:22:50 -07:00
renesas net: sh_eth: fix the rxdesc pointer when rx descriptor empty happens 2012-05-29 17:30:08 -04:00
seeq Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
sfc Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2012-05-16 22:17:37 -04:00
sgi
silan sc92031: stop using net_device.{base_addr, irq} 2012-04-07 11:45:27 +02:00
sis sis900: stop using net_device.{base_addr, irq} and convert to __iomem. 2012-04-07 11:47:18 +02:00
smsc net/smsc911x: Repair broken failure paths 2012-05-30 17:52:16 -04:00
stmicro drivers/net/stmmac: seq_file fix memory leak 2012-05-21 03:37:56 -04:00
sun drivers/net: Convert compare_ether_addr to ether_addr_equal 2012-05-10 23:33:01 -04:00
tehuti Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2012-05-22 19:22:50 -07:00
ti arm-soc: cleanups, part 2 2012-05-26 12:31:49 -07:00
tile drivers/net: Convert compare_ether_addr to ether_addr_equal 2012-05-10 23:33:01 -04:00
toshiba drivers/net: Convert compare_ether_addr to ether_addr_equal 2012-05-10 23:33:01 -04:00
tundra Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
via Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2012-04-10 14:30:45 -04:00
wiznet net: WIZnet drivers: fix possible NULL dereference 2012-04-13 13:34:12 -04:00
xilinx Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2012-04-15 13:19:04 -04:00
xircom Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
xscale net: remove ixp2000 ethernet driver 2012-04-04 18:09:37 -04:00
dnet.c dnet: Support the get_ts_info ethtool method. 2012-04-04 05:28:46 -04:00
dnet.h
ethoc.c
fealnx.c fealnx: Remove unused local label 'out' in netdev_open(). 2012-04-07 09:02:32 -04:00
jme.c
jme.h
Kconfig Ethernet driver for the WIZnet W5300 chip 2012-04-05 01:43:02 -04:00
korina.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
lantiq_etop.c
Makefile Ethernet driver for the WIZnet W5300 chip 2012-04-05 01:43:02 -04:00
mipsnet.c
netx-eth.c
s6gmac.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2012-05-22 19:22:50 -07:00