Re: [PATCH] net: erspan: set lltx to avoid sch_direct_xmit deadlock

From: Paolo Abeni

Date: Thu Jul 09 2026 - 04:22:20 EST


On 7/9/26 8:56 AM, Yun Zhou wrote:
> erspan_xmit() re-enters the network stack via ip_tunnel_xmit(), causing
> nested acquisition of _xmit_lock on the underlay device while already
> holding the ERSPAN device's _xmit_lock. Both are ARPHRD_ETHER and share
> the same lockdep class, creating an ABBA deadlock:
>
> sch_direct_xmit [lock erspan] -> erspan_xmit -> ip_tunnel_xmit ->
> ip_output -> __dev_queue_xmit -> sch_direct_xmit [lock underlay]
>
> Set dev->lltx = true so HARD_TX_LOCK() skips the spinlock for ERSPAN.
> This is safe as erspan_xmit() has no shared mutable state: o_seqno is
> atomic, stats use atomic_long_inc, and dst_cache is per-CPU. GRETAP,
> the sibling device with identical xmit structure, already sets lltx.
>
> Closes: https://syzkaller.appspot.com/bug?extid=9bda1b9fbb7fbdf9b62b
> Reported-by: syzbot+9bda1b9fbb7fbdf9b62b@xxxxxxxxxxxxxxxxxxxxxxxxx
> Fixes: 84e54fe0a5ea ("gre: introduce native tunnel support for ERSPAN")
> Signed-off-by: Yun Zhou <yun.zhou@xxxxxxxxxxxxx>
So this is actually a v2 of:

20260630183702.170798-2-hemendranaik@xxxxxxxxx/20260630183702.170798-2-hemendranaik@xxxxxxxxx/

right?

please have a look at:

https://elixir.bootlin.com/linux/v7.1/source/Documentation/process/maintainer-netdev.rst#L434

any kind of re-submission matters, no matter how trivial is the reason.

/P