mbox series

[net,v2,0/2] bareudp: fix several issues

Message ID 20201228152121.24160-1-ap420073@gmail.com
Headers show
Series bareudp: fix several issues | expand

Message

Taehee Yoo Dec. 28, 2020, 3:21 p.m. UTC
This patchset is to fix problems when bareudp is used nestedly.

1. If the NETIF_F_LLTX flag is not set, the lockdep warns about
a possible deadlock scenario when bareudp interfaces are used nestedly.
But, like other tunneling interfaces, bareudp doesn't need xmit lock.
So, it sets NETIF_F_LLTTX.
Lockdep no more warns about a possible deadlock scenario.

2. bareudp interface calculates min_headroom when it sends a packet.
When it calculates min_headroom, it uses the size of struct iphdr even
the ipv6 packet is going to be sent.
It would result in a lack of headroom so eventually occurs kernel panic.

Changelog
v1 -> v2:
 - Change reproducer script in 1/2 patch.
 - Fix reproducer script in 2/2 patch.

Taehee Yoo (2):
  bareudp: set NETIF_F_LLTX flag
  bareudp: Fix use of incorrect min_headroom size

 drivers/net/bareudp.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

Jakub Kicinski Jan. 4, 2021, 9:14 p.m. UTC | #1
On Mon, 28 Dec 2020 15:21:21 +0000 Taehee Yoo wrote:
> This patchset is to fix problems when bareudp is used nestedly.

> 

> 1. If the NETIF_F_LLTX flag is not set, the lockdep warns about

> a possible deadlock scenario when bareudp interfaces are used nestedly.

> But, like other tunneling interfaces, bareudp doesn't need xmit lock.

> So, it sets NETIF_F_LLTTX.

> Lockdep no more warns about a possible deadlock scenario.

> 

> 2. bareudp interface calculates min_headroom when it sends a packet.

> When it calculates min_headroom, it uses the size of struct iphdr even

> the ipv6 packet is going to be sent.

> It would result in a lack of headroom so eventually occurs kernel panic.


Applied, thanks!