On Wed, Mar 15, 2023 at 12:05:42PM +0100, Markus Schneider-Pargmann wrote: > The current implementation uses the workqueue for peripheral chips to > submit work. Only a single work item is queued and used at any time. > > To be able to keep more than one transmit in flight at a time, prepare > the workqueue to support multiple transmits at the same time. > > Each work item now has a separate storage for a skb and a pointer to > cdev. This assures that each workitem can be processed individually. > > The workqueue is replaced by an ordered workqueue which makes sure that > only a single worker processes the items queued on the workqueue. Also > items are ordered by the order they were enqueued. This removes most of > the concurrency the workqueue normally offers. It is not necessary for > this driver. > > The cleanup functions have to be adopted a bit to handle this new > mechanism. > > Signed-off-by: Markus Schneider-Pargmann <msp@xxxxxxxxxxxx> Reviewed-by: Simon Horman <simon.horman@xxxxxxxxxxxx>