[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAB_54W6bJ5oV1pTX03-xWaFohdyxrjy2WSa2kxp3rBzLqSo=UA@mail.gmail.com>
Date: Wed, 12 Jan 2022 18:16:11 -0500
From: Alexander Aring <alex.aring@...il.com>
To: Miquel Raynal <miquel.raynal@...tlin.com>
Cc: Stefan Schmidt <stefan@...enfreihafen.org>,
linux-wpan - ML <linux-wpan@...r.kernel.org>,
"David S. Miller" <davem@...emloft.net>,
Jakub Kicinski <kuba@...nel.org>,
"open list:NETWORKING [GENERAL]" <netdev@...r.kernel.org>,
Michael Hennerich <michael.hennerich@...log.com>,
Harry Morris <h.morris@...coda.com>,
Varka Bhadram <varkabhadram@...il.com>,
Xue Liu <liuxuenetmail@...il.com>, Alan Ott <alan@...nal11.us>,
David Girault <david.girault@...vo.com>,
Romuald Despres <romuald.despres@...vo.com>,
Frederic Blain <frederic.blain@...vo.com>,
Nicolas Schodet <nico@...fr.eu.org>,
Thomas Petazzoni <thomas.petazzoni@...tlin.com>,
"linux-wireless@...r.kernel.org Wireless"
<linux-wireless@...r.kernel.org>
Subject: Re: [wpan-next v2 23/27] net: mac802154: Add support for active scans
Hi,
On Wed, 12 Jan 2022 at 12:34, Miquel Raynal <miquel.raynal@...tlin.com> wrote:
...
> +static int mac802154_scan_send_beacon_req_locked(struct ieee802154_local *local)
> +{
> + struct sk_buff *skb;
> + int ret;
> +
> + lockdep_assert_held(&local->scan_lock);
> +
> + skb = alloc_skb(IEEE802154_BEACON_REQ_SKB_SZ, GFP_KERNEL);
> + if (!skb)
> + return -ENOBUFS;
> +
> + ret = ieee802154_beacon_req_push(skb, &local->beacon_req);
> + if (ret) {
> + kfree_skb(skb);
> + return ret;
> + }
> +
> + return drv_xmit_async(local, skb);
I think you need to implement a sync transmit handling here. And what
I mean is not using dryv_xmit_sync() (It is a long story and should
not be used, it's just that the driver is allowed to call bus api
functions which can sleep). We don't have such a function yet (but I
think it can be implemented), you should wait until the transmission
is done. If we don't wait we fill framebuffers on the hardware while
the hardware is transmitting the framebuffer which is... bad.
Please implement it so that we have a synchronous api above the
asynchronous transmit api.
- Alex
Powered by blists - more mailing lists