diff options
| author | Sven Eckelmann <sven@narfation.org> | 2026-07-09 21:26:13 +0200 |
|---|---|---|
| committer | Sven Eckelmann <sven@narfation.org> | 2026-08-05 10:04:36 +0200 |
| commit | 6a30a59e2660afd03c975f1b8eae6a2301161197 (patch) | |
| tree | 219d86dbde8a1ca4582b4567c3c2c2fb3b1683ce /tools/perf/scripts/python | |
| parent | 82bf207f48ebb7a38157f1d91dac884fc9b8cfd8 (diff) | |
batman-adv: mcast: linearize skbuff for packet generation
batadv_mcast_forw_packet() and batadv_mcast_forw_scrape() is not only
called (indirectly) by the unsharing+linearizing batadv_recv_mcast_packet()
handler. When it is called (indirectly) by batadv_mcast_forw_mcsend() then
it will be unshared but not linearized. The SKB_LINEAR_ASSERT() can
therefore cause a fatal BUG().
The linearization should happen during the expansion of the head because
the scrape function can be hit already during the initial
batadv_mcast_forw_mode() selection code:
* batadv_interface_tx
* batadv_mcast_forw_mode
* batadv_mcast_forw_mode_by_count()
* batadv_mcast_forw_push()
-> calls batadv_mcast_forw_expand_head() before everything else
* batadv_mcast_forw_push_tvlvs()
* batadv_mcast_forw_push_dests()
* batadv_mcast_forw_push_adjust_padding()
* batadv_mcast_forw_scrape()
Cc: stable@vger.kernel.org
Reported-by: Sashiko <sashiko-bot@kernel.org>
Fixes: 90039133221e ("batman-adv: mcast: implement multicast packet generation")
Signed-off-by: Sven Eckelmann <sven@narfation.org>
Diffstat (limited to 'tools/perf/scripts/python')
0 files changed, 0 insertions, 0 deletions
