ibmveth: Ethtool set queue support
authorNick Child <nnac123@linux.ibm.com>
Wed, 28 Sep 2022 21:43:50 +0000 (16:43 -0500)
committerDavid S. Miller <davem@davemloft.net>
Fri, 30 Sep 2022 11:40:22 +0000 (12:40 +0100)
commit10c2aba89cc0535b23ebc795f44b8b8b16785ec9
tree72916a2a12bfbef50ffc6279d9cff8dba09ee54d
parentd926793c1de96e4e519b5489fe5be95a470c175f
ibmveth: Ethtool set queue support

Implement channel management functions to allow dynamic addition and
removal of transmit queues. The `ethtool --show-channels` and
`ethtool --set-channels` commands can be used to get and set the
number of queues, respectively. Allow the ability to add as many
transmit queues as available processors but never allow more than the
hard maximum of 16. The number of receive queues is one and cannot be
modified.

Depending on whether the requested number of queues is larger or
smaller than the current value, either allocate or free long term
buffers. Since long term buffer construction and destruction can
occur in two different areas, from either channel set requests or
device open/close, define functions for performing this work. If
allocation of a new buffer fails, then attempt to revert back to the
previous number of queues.

Signed-off-by: Nick Child <nnac123@linux.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/ibm/ibmveth.c