mac802154: Send beacons using the MLME Tx path
authorMiquel Raynal <miquel.raynal@bootlin.com>
Tue, 14 Feb 2023 13:50:33 +0000 (14:50 +0100)
committerStefan Schmidt <stefan@datenfreihafen.org>
Sat, 18 Feb 2023 15:44:53 +0000 (16:44 +0100)
commit1375e3ba9d773f2dbac96ebddfdd0d160276ca40
tree127339b391bab4a0e043e9e44975206fc051c23c
parent1edecbd0bd45c9c899e0f82b123342f28423468c
mac802154: Send beacons using the MLME Tx path

Using ieee802154_subif_start_xmit() to bypass the net queue when
sending beacons is broken because it does not acquire the
HARD_TX_LOCK(), hence not preventing datagram buffers to be smashed by
beacons upon contention situation. Using the mlme_tx helper is not the
best fit either but at least it is not buggy and has little-to-no
performance hit. More details are given in the comment explaining this
choice in the code.

Fixes: 3accf4762734 ("mac802154: Handle basic beaconing")
Reported-by: Alexander Aring <aahringo@redhat.com>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Link: https://lore.kernel.org/r/20230214135035.1202471-5-miquel.raynal@bootlin.com
Signed-off-by: Stefan Schmidt <stefan@datenfreihafen.org>
net/mac802154/scan.c