Previous review comments have suggested [1],[2] that this driver needs to rework how queue resources are managed and reconfigured so that we don't do a full driver reset and to better handle potential allocation failures. This patchset is intended to address those comments.
The first few patches clean some general issues and simplify some of the memory structures. The last 4 patches specifically address queue parameter changes without a full ionic_stop()/ionic_open(). [1] https://lore.kernel.org/netdev/20200706103305.182bd...@kicinski-fedora-pc1c0hjn.dhcp.thefacebook.com/ [2] https://lore.kernel.org/netdev/20200724.194417.2151242753657227232.da...@davemloft.net/ v3: use PTR_ALIGN without typecast fix up Neel's attribution v2: use PTR_ALIGN recovery if netif_set_real_num_tx/rx_queues fails less racy queue bring up after reconfig common-ize the reconfig queue stop and start Shannon Nelson (12): ionic: set MTU floor at ETH_MIN_MTU ionic: fix up a couple of debug strings ionic: use kcalloc for new arrays ionic: remove lif list concept ionic: rework and simplify handling of the queue stats block ionic: clean up unnecessary non-static functions ionic: reduce contiguous memory allocation requirement ionic: use index not pointer for queue tracking ionic: change mtu without full queue rebuild ionic: change the descriptor ring length without full reset ionic: change queue count with no reset ionic: pull reset_queues into tx_timeout handler drivers/net/ethernet/pensando/ionic/ionic.h | 4 +- .../ethernet/pensando/ionic/ionic_bus_pci.c | 32 +- .../ethernet/pensando/ionic/ionic_debugfs.c | 29 +- .../net/ethernet/pensando/ionic/ionic_dev.c | 46 +- .../net/ethernet/pensando/ionic/ionic_dev.h | 49 +- .../ethernet/pensando/ionic/ionic_devlink.c | 2 +- .../ethernet/pensando/ionic/ionic_ethtool.c | 127 ++- .../net/ethernet/pensando/ionic/ionic_lif.c | 785 +++++++++++------- .../net/ethernet/pensando/ionic/ionic_lif.h | 94 ++- .../net/ethernet/pensando/ionic/ionic_main.c | 26 +- .../net/ethernet/pensando/ionic/ionic_stats.c | 48 +- .../net/ethernet/pensando/ionic/ionic_txrx.c | 82 +- 12 files changed, 790 insertions(+), 534 deletions(-) -- 2.17.1