linux_dsm_epyc7002/drivers/net/ethernet/qlogic
Rahul Verma 1558296251 qed: Don't use main-ptt in unrelated flows
In order to access HW registers driver needs to acquire a PTT entry
[mapping between bar memory and internal chip address].
Since acquiring PTT entries could fail [at least in theory] as their
number is finite and other flows can hold them, we reserve special PTT
entries for 'important' enough flows - ones we want to guarantee that
would not be susceptible to such issues.

One such special entry is the 'main' PTT which is meant to be used in
flows such as chip initialization and de-initialization.
However, there are other flows that are also using that same entry
for their own purpose, and might run concurrently with the original
flows [notice that for most cases using the main-ptt by mistake, such
a race is still impossible, at least today].

This patch re-organizes the various functions that currently use the
main_ptt in one of two ways:

  - If a function shouldn't use the main_ptt it starts acquiring and
    releasing it's own PTT entry and use it instead. Notice if those
    functions previously couldn't fail, they now can [as acquisition
    might fail].

  - Change the prototypes so that the main_ptt would be received as
    a parameter [instead of explicitly accessing it].
    This prevents the future risk of adding codes that introduces new
    use-cases for flows using the main_ptt, ones that might be in race
    with the actual 'main' flows.

Signed-off-by: Rahul Verma <Rahul.Verma@cavium.com>
Signed-off-by: Yuval Mintz <Yuval.Mintz@cavium.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-04-06 14:26:31 -07:00
..
netxen netxen_nic: remove redundant check if retries is zero 2017-03-15 15:04:08 -07:00
qed qed: Don't use main-ptt in unrelated flows 2017-04-06 14:26:31 -07:00
qede qed*: Add support for QL41xxx adapters 2017-03-14 11:43:30 -07:00
qlcnic scripts/spelling.txt: add "partiton" pattern and fix typo instances 2017-02-27 18:43:46 -08:00
qlge qlge: avoid format string exposure in workqueue 2017-04-06 13:37:21 -07:00
Kconfig qed: Add support for hardware offloaded FCoE. 2017-02-19 18:10:42 -05:00
Makefile qede: Add basic Network driver 2015-10-27 19:34:47 -07:00
qla3xxx.c net: qlogic: qla3xxx: use new api ethtool_{get|set}_link_ksettings 2017-02-20 10:27:17 -05:00
qla3xxx.h