Received: by 2002:a05:6a10:af89:0:0:0:0 with SMTP id iu9csp1229404pxb; Fri, 21 Jan 2022 12:51:01 -0800 (PST) X-Google-Smtp-Source: ABdhPJxdUK951nhyNYU1hQ9y7ypaL3T8tlIYO6EGtZOEw9F6Y7ap5dukrhy5z+hZa7shltlg9oNg X-Received: by 2002:a63:5d0e:: with SMTP id r14mr4216019pgb.110.1642798260991; Fri, 21 Jan 2022 12:51:00 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642798260; cv=none; d=google.com; s=arc-20160816; b=ly+RZIM62/XbLUg8VTJN13y6wvtUQpHdQ+nYVE33sHCtTGch9lPp1+z8Z+CEWcz1HT c+4k2eq1E3zkgvbAkF/k6begqGtdii/AgTaZ6DDG7tU7+Zz7f1wa9GfR6ns9Bvu0+XPA pEtovz8J5W11JeK7MUikFa9JZJWlk9spvqvBHNPiqwvZ3U9MxfS2dDDHU4QaaJwRr4lL q7Qlg2bajom3uDvP7nnQbOap6hXIq2FlxioBjqPqYTBcN4xEhFxf0tMowPvb0SyHLlT6 t8jU10QZTGXSULthc9TiiA9JsUV5VkxMJKf/03a7DaNBA0LpcRRW4/Jgnp4kIKdYiGXA RjlQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from; bh=2/3cm1xcLvPHm/p5US35hEOdLwZentMZcL04a9lzZKM=; b=GoU5JhrnEKx+niZPI2Kcg5J4hrHyap+GLynME5S1knJKNFybY2c6h+Zpu1p+go+YC1 FwX6fXQdhe9dzjV8R2dunmO8t/zzwEm+RHvf0mfWV5g4ZrKHyucbkYVJ2WuB8L9I40Sc iq+7gZHgp2HWm0IpHPo8tYMhlyUJHjs4OGvIR2N5FLUnUCEQA17v3iv7Bqluf8wu0MUS JfT8Z/RmrgRV4IbyRhRtsHsXnNBHJJyiNOo7jJUJS7/2w1yfZon8PvVkUtoBbPq9v0Ny CN92XbiI6a/7Bv3fTj0xbi2q12/wUFJ+xzmsVUzhb4VhBaTEejYX6gp84IS5MZC9Vwp5 ipqA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id kx1si6459750pjb.28.2022.01.21.12.50.52; Fri, 21 Jan 2022 12:51:00 -0800 (PST) Received-SPF: pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1357919AbiATAv1 (ORCPT + 70 others); Wed, 19 Jan 2022 19:51:27 -0500 Received: from relay11.mail.gandi.net ([217.70.178.231]:41075 "EHLO relay11.mail.gandi.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1357906AbiATAv0 (ORCPT ); Wed, 19 Jan 2022 19:51:26 -0500 Received: (Authenticated sender: miquel.raynal@bootlin.com) by mail.gandi.net (Postfix) with ESMTPSA id 4F6AF100002; Thu, 20 Jan 2022 00:51:23 +0000 (UTC) From: Miquel Raynal To: Alexander Aring , Stefan Schmidt , linux-wpan@vger.kernel.org Cc: "David S. Miller" , Jakub Kicinski , netdev@vger.kernel.org, linux-wireless@vger.kernel.org, David Girault , Romuald Despres , Frederic Blain , Nicolas Schodet , Thomas Petazzoni , Miquel Raynal Subject: [wpan-next 00/14] ieee802154: Synchronous Tx API Date: Thu, 20 Jan 2022 01:51:08 +0100 Message-Id: <20220120005122.309104-1-miquel.raynal@bootlin.com> X-Mailer: git-send-email 2.27.0 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org The idea here is to provide a fully synchronous Tx API and also be able to be sure that a transfer as finished. This will be used later by another series. The first patches create an error helper and then use it in order to have only two "end of transmission" helpers that are always called. Then, a bit of cleanup regarding the naming and the locations of certain peaces of code is done. Finally, we create a hot and a slow path, add the necessary logic to be able to track ongoing transfers and when the queue must be kept on hold, until we finally create a helper to stop emitting after the last transfer, which we then use to create a synchronous MLME API. (Caution: I haven't fully tested that part yet, but as Alexander and me are on very different time slots I prefer to provide this tonight and eventually fix it tomorrow) Miquel Raynal (14): net: ieee802154: Move the logic restarting the queue upon transmission net: mac802154: Create a transmit error helper net: ieee802154: at86rf230: Call _xmit_error() when a transmission fails net: ieee802154: atusb: Call _xmit_error() when a transmission fails net: ieee802154: ca8210: Call _xmit_error() when a transmission fails net: mac802154: Stop exporting ieee802154_wake/stop_queue() net: mac802154: Rename the synchronous xmit worker net: mac802154: Rename the main tx_work struct net: mac802154: Follow the count of ongoing transmissions net: mac802154: Hold the transmit queue when relevant net: mac802154: Create a hot tx path net: mac802154: Add a warning in the hot path net: mac802154: Introduce a tx queue flushing mechanism net: mac802154: Introduce a synchronous API for MLME commands drivers/net/ieee802154/at86rf230.c | 3 +- drivers/net/ieee802154/atusb.c | 4 +-- drivers/net/ieee802154/ca8210.c | 12 ++++---- include/net/cfg802154.h | 5 ++++ include/net/mac802154.h | 37 +++++++---------------- net/ieee802154/core.c | 1 + net/mac802154/cfg.c | 5 ++-- net/mac802154/ieee802154_i.h | 35 ++++++++++++++++++++-- net/mac802154/main.c | 2 +- net/mac802154/tx.c | 48 +++++++++++++++++++++++++----- net/mac802154/util.c | 34 ++++++++++++++++++--- 11 files changed, 132 insertions(+), 54 deletions(-) -- 2.27.0