FAILED: patch "[PATCH] s390/qeth: fix notification for pending buffers during" failed to apply to 5.4-stable tree
Subsystems (4)
[email protected]
maintainerThe patch below does not apply to the 5.4-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From 7eefda7f353ef86ad82a2dc8329e8a3538c08ab6 Mon Sep 17 00:00:00 2001
From: Julian Wiedmann <[email protected]>
Date: Tue, 9 Mar 2021 17:52:21 +0100
Subject: [PATCH] s390/qeth: fix notification for pending buffers during
teardown
The cited commit reworked the state machine for pending TX buffers. In qeth_iqd_tx_complete() it turned PENDING into a transient state, and uses NEED_QAOB for buffers that get parked while waiting for their QAOB completion.
But it missed to adjust the check in qeth_tx_complete_buf(). So if qeth_tx_complete_pending_bufs() is called during teardown to drain the parked TX buffers, we no longer raise a notification for af_iucv.
Instead of updating the checked state, just move this code into qeth_tx_complete_pending_bufs() itself. This also gets rid of the special-case in the common TX completion path.
drivers/s390/net/qeth_core_main.c +3 -3
@@ -1390,9 +1390,6 @@ static void qeth_tx_complete_buf(struct qeth_qdio_out_buffer *buf, bool error,struct qeth_qdio_out_q *queue = buf->q;struct sk_buff *skb; -if (atomic_read (&buf->state) ==QETH_QDIO_BUF_PENDING ) -qeth_notify_skbs (queue, buf,TX_NOTIFY_GENERALERROR ); -/* Empty buffer? */ if (buf->next_element_to_fill ==0 )return ;
@@ -1465,6 +1462,9 @@ static void qeth_tx_complete_pending_bufs(struct qeth_card *card,QETH_CARD_TEXT (card,5 ,"fp" );QETH_CARD_TEXT_ (card,5 ,"%lx" , (long ) buf); +if (drain) +qeth_notify_skbs (queue, buf, +TX_NOTIFY_GENERALERROR );qeth_tx_complete_buf (buf, drain,0 );list_del (&buf->list_entry);