linux/drivers/net/ethernet
Preethi Banala eb0208ec42 ice: Split irq_tracker into sw_irq_tracker and hw_irq_tracker
For the PF driver, when mapping interrupts to queues, we need to request
IRQs from the kernel and we also have to allocate interrupts from
the device.

Similarly, when the VF driver (iavf.ko) initializes, it requests the kernel
IRQs that it needs but it can't directly allocate interrupts in the device.
Instead, it sends a mailbox message to the ice driver, which then allocates
interrupts in the device on the VF driver's behalf.

Currently both these cases end up having to reserve entries in
pf->irq_tracker but irq_tracker itself is sized based on how many vectors
the PF driver needs. Under the right circumstances, the VF driver can fail
to get entries in irq_tracker, which will result in the VF driver failing
probe.

To fix this, sw_irq_tracker and hw_irq_tracker are introduced. The
sw_irq_tracker tracks only the PF's IRQ request and doesn't play any
role in VF init. hw_irq_tracker represents the device's interrupt space.
When interrupts have to be allocated in the device for either PF or VF,
hw_irq_tracker will be looked up to see if the device has run out of
interrupts.

Signed-off-by: Preethi Banala <preethi.banala@intel.com>
Signed-off-by: Anirudh Venkataramanan <anirudh.venkataramanan@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
2018-10-02 07:16:19 -07:00
..
3com net: prevent ISA drivers from building on PPC32 2018-07-22 11:12:29 -07:00
8390 net: ethernet: Use phy_set_max_speed() to limit advertised speed 2018-09-12 20:24:20 -07:00
adaptec net: adaptec: Replace mdelay() with msleep() in starfire_init_one() 2018-07-26 21:24:23 -07:00
aeroflex net: ethernet: Use phy_set_max_speed() to limit advertised speed 2018-09-12 20:24:20 -07:00
agere net: ethernet: Use phy_set_max_speed() to limit advertised speed 2018-09-12 20:24:20 -07:00
alacritech net: ethernet: slicoss: remove duplicated include from slic.h 2018-09-18 19:57:40 -07:00
allwinner net: ethernet: Use phy_set_max_speed() to limit advertised speed 2018-09-12 20:24:20 -07:00
alteon alteon: acenic: mark expected switch fall-through 2018-08-07 17:54:19 -07:00
altera net: ethernet: Use phy_set_max_speed() to limit advertised speed 2018-09-12 20:24:20 -07:00
amazon net: ethernet: remove redundant include 2018-09-18 20:07:27 -07:00
amd net: ethernet: xgbe: expand PHY_GBIT_FEAUTRES 2018-10-01 22:55:36 -07:00
apm net: ethernet: Add helper to determine if pause configuration is supported 2018-09-12 20:24:21 -07:00
apple net: apple: fix return type of ndo_start_xmit function 2018-09-21 19:15:15 -07:00
aquantia net: aquantia: Make function aq_fw1x_set_power() static 2018-09-28 10:25:11 -07:00
arc
atheros atl1: remove set but not used variable 'advertising' 2018-09-19 23:10:07 -07:00
aurora net: ethernet: Add helper for set_pauseparam for Asym Pause 2018-09-12 20:24:21 -07:00
broadcom net: systemport: Add software counters to track reallocations 2018-10-01 23:11:53 -07:00
brocade bna: Remove unnecessary self assignment 2018-09-21 19:02:05 -07:00
cadence net: macb: Clean 64b dma addresses if they are not detected 2018-09-25 10:33:06 -07:00
calxeda Merge 4.18-rc5 into char-misc-next 2018-07-16 09:04:54 +02:00
cavium net: liquidio: list usage cleanup 2018-09-26 10:12:10 -07:00
chelsio net: cxgb3_main: remove redundant null pointer check before kfree_skb 2018-09-21 09:04:37 -07:00
cirrus net: cirrus: fix return type of ndo_start_xmit function 2018-09-21 19:15:14 -07:00
cisco net: cisco: enic: Replace GFP_ATOMIC with GFP_KERNEL 2018-08-04 13:08:06 -07:00
cortina net: ethernet: Add helper for MACs which support asym pause 2018-09-12 20:24:21 -07:00
davicom
dec net: tulip: de4x5: mark expected switch fall-throughs 2018-08-07 17:54:19 -07:00
dlink
emulex be2net: Fix memory leak in be_cmd_get_profile_config() 2018-09-05 08:07:55 -07:00
ezchip
faraday net: faraday: fix return type of ndo_start_xmit function 2018-09-26 10:18:08 -07:00
freescale net: phy: Add helper for advertise to lcl value 2018-10-01 22:55:36 -07:00
fujitsu
hisilicon net: hns3: Add support for enable/disable flow director 2018-10-01 22:57:45 -07:00
hp net: hp100: fix always-true check for link up state 2018-09-17 07:55:19 -07:00
huawei net-next: hinic: fix a problem in free_tx_poll() 2018-08-08 09:46:08 -07:00
i825xx net: i825xx: fix return type of ndo_start_xmit function 2018-09-21 19:15:15 -07:00
ibm Merge ra.kernel.org:/pub/scm/linux/kernel/git/davem/net 2018-09-25 10:35:29 -07:00
intel ice: Split irq_tracker into sw_irq_tracker and hw_irq_tracker 2018-10-02 07:16:19 -07:00
marvell net: phy: Replace phy driver features u32 with link_mode bitmap 2018-10-01 22:55:36 -07:00
mediatek net: phy: Add helper for advertise to lcl value 2018-10-01 22:55:36 -07:00
mellanox net/mlx5: Cache the system image guid 2018-10-01 11:32:47 -07:00
micrel net: micrel: fix return type of ndo_start_xmit function 2018-09-21 19:11:39 -07:00
microchip Merge ra.kernel.org:/pub/scm/linux/kernel/git/davem/net 2018-09-18 09:33:27 -07:00
moxa
mscc Merge ra.kernel.org:/pub/scm/linux/kernel/git/davem/net 2018-09-25 10:35:29 -07:00
myricom
natsemi
neterion net: neterion: vxge: Remove unnecessary parentheses 2018-09-21 19:00:09 -07:00
netronome nfp: warn on experimental TLV types 2018-10-01 22:49:30 -07:00
ni net: nixge: Address compiler warnings when building for i386 2018-10-01 22:48:08 -07:00
nuvoton
nvidia net: nvidia: forcedeth: Replace GFP_ATOMIC with GFP_KERNEL in nv_probe() 2018-07-27 13:45:14 -07:00
nxp net: ethernet: Use phy_set_max_speed() to limit advertised speed 2018-09-12 20:24:20 -07:00
oki-semi
packetengines
pasemi
qlogic qed: fix spelling mistake "b_cb_registred" -> "b_cb_registered" 2018-09-28 11:15:11 -07:00
qualcomm net: qca_spi: Introduce write register verification 2018-09-24 12:26:06 -07:00
rdc net: ethernet: Use phy_set_max_speed() to limit advertised speed 2018-09-12 20:24:20 -07:00
realtek Merge ra.kernel.org:/pub/scm/linux/kernel/git/davem/net 2018-09-25 10:35:29 -07:00
renesas Merge ra.kernel.org:/pub/scm/linux/kernel/git/davem/net 2018-09-25 10:35:29 -07:00
rocker
samsung net: ethernet: Use phy_set_max_speed() to limit advertised speed 2018-09-12 20:24:20 -07:00
seeq net: seeq: fix return type of ndo_start_xmit function 2018-09-21 19:15:14 -07:00
sfc net: sfc: falcon: mark expected switch fall-through 2018-08-07 17:54:21 -07:00
sgi net: sgi: fix return type of ndo_start_xmit function 2018-09-21 19:15:14 -07:00
silan
sis
smsc net: smsc: fix return type of ndo_start_xmit function 2018-09-26 10:15:17 -07:00
socionext net: phy: Add helper for advertise to lcl value 2018-10-01 22:55:36 -07:00
stmicro Merge ra.kernel.org:/pub/scm/linux/kernel/git/davem/net 2018-09-25 10:35:29 -07:00
sun net: sun: fix return type of ndo_start_xmit function 2018-09-19 21:17:58 -07:00
synopsys net: ethernet: Use existing define with polynomial 2018-07-27 19:16:37 +08:00
tehuti
ti net: ti: Use FIELD_SIZEOF directly instead of reimplementing its function 2018-09-19 20:58:05 -07:00
toshiba net: toshiba: remove a redundant local variable 'index_specified' 2018-09-19 23:08:36 -07:00
tundra
via
wiznet net: wiznet: fix return type of ndo_start_xmit function 2018-09-21 19:15:15 -07:00
xilinx net: xilinx: fix return type of ndo_start_xmit function 2018-09-19 21:17:58 -07:00
xircom
xscale
dnet.c net: ethernet: Add helper for MACs which support asym pause 2018-09-12 20:24:21 -07:00
dnet.h
ec_bhf.c
ethoc.c net: ethernet: Use phy_set_max_speed() to limit advertised speed 2018-09-12 20:24:20 -07:00
fealnx.c
jme.c net: jme: Replace mdelay() with msleep() and usleep_range() in jme_wait_link() 2018-07-27 13:45:14 -07:00
jme.h
Kconfig net: lantiq: Add Lantiq / Intel VRX200 Ethernet driver 2018-09-13 08:14:33 -07:00
korina.c
lantiq_etop.c MIPS: lantiq: Do not enable IRQs in dma open 2018-09-13 08:14:33 -07:00
lantiq_xrx200.c net: lantiq: lantiq_xrx200: Move clock prepare to probe function 2018-09-17 08:12:11 -07:00
Makefile net: lantiq: Add Lantiq / Intel VRX200 Ethernet driver 2018-09-13 08:14:33 -07:00
netx-eth.c