OSDN Git Service

net: ena: move llq configuration from ena_probe to ena_device_init()
authorArthur Kiyanovski <akiyano@amazon.com>
Tue, 21 Jul 2020 13:38:10 +0000 (16:38 +0300)
committerDavid S. Miller <davem@davemloft.net>
Tue, 21 Jul 2020 22:59:04 +0000 (15:59 -0700)
commitc29efeae37077f4bcb2ecd710fc66ca72c43ec79
treea3c8307bc8bbd227fc077b6505f803c720605249
parent0ee60edf4669cd8c466a532c233fcd6281da9892
net: ena: move llq configuration from ena_probe to ena_device_init()

When the ENA device resets to recover from some error state, all LLQ
configuration values are reset to their defaults, because LLQ is
initialized only once during ena_probe().

Changes in this commit:
1. Move the LLQ configuration process into ena_init_device()
which is called from both ena_probe() and ena_restore_device(). This
way, LLQ setup configurations that are different from the default
values will survive resets.

2. Extract the LLQ bar mapping to ena_map_llq_bar(),
and call once in the lifetime of the driver from ena_probe(),
since there is no need to unmap and map the LLQ bar again every reset.

3. Map the LLQ bar if it exists, regardless if initialization of LLQ
placement policy (ENA_ADMIN_PLACEMENT_POLICY_DEV) succeeded
or not. Initialization might fail the first time, falling back to the
ENA_ADMIN_PLACEMENT_POLICY_HOST placement policy, but later succeed
after device reset, in which case the LLQ bar needs to be mapped
already.

Signed-off-by: Sameeh Jubran <sameehj@amazon.com>
Signed-off-by: Arthur Kiyanovski <akiyano@amazon.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/amazon/ena/ena_netdev.c