[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20200312215015.69547-1-snelson@pensando.io>
Date: Thu, 12 Mar 2020 14:50:08 -0700
From: Shannon Nelson <snelson@...sando.io>
To: netdev@...r.kernel.org, davem@...emloft.net
Cc: Shannon Nelson <snelson@...sando.io>
Subject: [PATCH net-next 0/7] ionic support for firmware upgrade
The Pensando Distributed Services Card can get firmware upgrades from
the off-host centralized management suite, and can be upgraded without a
host reboot or driver reload. This patchset sets up the support for fw
upgrade in the Linux driver.
When the upgrade begins, the DSC first brings the link down, then stops
the firmware. The driver will notice this and quiesce itself by stopping
the queues and releasing DMA resources, then monitoring for firmware to
start back up. When the upgrade is finished the firmware is restarted
and link is brought up, and the driver rebuilds the queues and restarts
traffic flow. Typical link down time is around 30 seconds.
First we fix up the state machine so that we take the Tx and Rx queues
completely down and back up when we get LINK_DOWN and LINK_UP events.
Next, we attend to a few error handling details. Lastly, we add handling
of the FW reset itself, tearing down and rebuilding the lif internals.
Depending on timing of net updates into net-next, the 4th patch may have a
minor conflict with 905fc4f8a399 ("ionic: fix vf op lock usage")
Shannon Nelson (7):
ionic: tx and rx queues state follows link state
ionic: keep old lif dentry
ionic: ignore eexist on rx filter add
ionic: add a flag for FW in reset
ionic: remove lifs on fw reset
ionic: trigger fw reset response on fw_status
ionic: check for link when link down
.../ethernet/pensando/ionic/ionic_bus_pci.c | 4 +
.../ethernet/pensando/ionic/ionic_debugfs.c | 8 +-
.../net/ethernet/pensando/ionic/ionic_dev.c | 56 +++-
.../net/ethernet/pensando/ionic/ionic_dev.h | 1 +
.../ethernet/pensando/ionic/ionic_ethtool.c | 17 +-
.../net/ethernet/pensando/ionic/ionic_lif.c | 263 +++++++++++++-----
.../net/ethernet/pensando/ionic/ionic_lif.h | 6 +
.../net/ethernet/pensando/ionic/ionic_main.c | 16 +-
8 files changed, 296 insertions(+), 75 deletions(-)
--
2.17.1
Powered by blists - more mailing lists