@@ -1750,6 +1750,7 @@ static int ca8210_async_xmit_complete(
u8 status)
{
struct ca8210_priv *priv = hw->priv;
+ bool ifs_handling = true;
if (priv->nextmsduhandle != msduhandle) {
dev_err(
@@ -1770,10 +1771,8 @@ static int ca8210_async_xmit_complete(
"Link transmission unsuccessful, status = %d\n",
status
);
- if (status != MAC_TRANSACTION_OVERFLOW) {
- ieee802154_wake_queue(priv->hw);
- return 0;
- }
+ if (status != MAC_TRANSACTION_OVERFLOW)
+ ifs_handling = false;
}
ieee802154_xmit_complete(priv->hw, priv->tx_skb, true);
ieee802154_xmit_complete() is the right helper to call when a transmission is over. The fact that it completed or not is not really a question, but drivers must tell the core that the completion is over, even if it was canceled. Do not call ieee802154_wake_queue() manually, in order to let full control of this task to the core. Here the two paths are equivalent of calling *_xmit_complete() with its ifs_handling parameter set to true or false, so let's use it instead of open coding it. Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> --- drivers/net/ieee802154/ca8210.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-)