Re: [PATCH 5.10 35/38] rtnetlink: Fix missing error code in rtnl_bridge_notify()

From: Alexander Tsoy
Date: Sat Jun 19 2021 - 09:07:05 EST


В Сб, 19/06/2021 в 08:45 +0200, Greg Kroah-Hartman пишет:
> On Sat, Jun 19, 2021 at 02:58:28AM +0300, Alexander Tsoy wrote:
> > В Ср, 16/06/2021 в 17:33 +0200, Greg Kroah-Hartman пишет:
> > > From: Jiapeng Chong <jiapeng.chong@xxxxxxxxxxxxxxxxx>
> > >
> > > [ Upstream commit a8db57c1d285c758adc7fb43d6e2bad2554106e1 ]
> > >
> > > The error code is missing in this code scenario, add the error code
> > > '-EINVAL' to the return value 'err'.
> > >
> > > Eliminate the follow smatch warning:
> > >
> > > net/core/rtnetlink.c:4834 rtnl_bridge_notify() warn: missing error
> > > code
> > > 'err'.
> >
> > This patch breaks systemd-resolved. It is 100% reproducible on two of
> > my systems, but there are also systems where I cannot reproduce it.
> > The
> > problem manifests itself as SERVFAIL on every DNS query.
> >
> > Just reverting this patch from 5.10.45 fixes the problem for me.
>
> Is Linus's tree also broken for you?  It should be reverted there
> first.

Looks like this patch was reverted in Linus's tree:
d2e381c4963663bca6f30c3b996fa4dbafe8fcb5 (rtnetlink: Fix regression in
bridge VLAN configuration)


Also after some investigation I think my problem was actually with
NetworkManager as systemd-networkd + systemd-resolved works fine.

$ grep ^dns /etc/NetworkManager/NetworkManager.conf
dns=systemd-resolved

with this patch:

$ resolvectl
...
Link 4 (eno1)
Current Scopes: none
Protocols: +DefaultRoute +LLMNR -mDNS -DNSOverTLS
DNSSEC=no/unsupported
DNS Servers: 192.168.1.1 fd9f:5696:250c::1
DNS Domain: lan

with this patch reverted:

$ resolvectl
...
Link 4 (eno1)
Current Scopes: DNS LLMNR/IPv4 LLMNR/IPv6
Protocols: +DefaultRoute +LLMNR -mDNS -DNSOverTLS
DNSSEC=no/unsupported
Current DNS Server: 192.168.1.1
DNS Servers: 192.168.1.1 fd9f:5696:250c::1
DNS Domain: lan