lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Sat, 9 Apr 2022 11:04:45 +0000 From: Vladimir Oltean <vladimir.oltean@....com> To: kernel test robot <lkp@...el.com> CC: "netdev@...r.kernel.org" <netdev@...r.kernel.org>, "llvm@...ts.linux.dev" <llvm@...ts.linux.dev>, "kbuild-all@...ts.01.org" <kbuild-all@...ts.01.org>, Jakub Kicinski <kuba@...nel.org>, Florian Fainelli <f.fainelli@...il.com>, Andrew Lunn <andrew@...n.ch>, Vivien Didelot <vivien.didelot@...il.com>, Vladimir Oltean <olteanv@...il.com>, "UNGLinuxDriver@...rochip.com" <UNGLinuxDriver@...rochip.com>, Paolo Abeni <pabeni@...hat.com>, Roopa Prabhu <roopa@...dia.com>, Nikolay Aleksandrov <razor@...ckwall.org>, Jiri Pirko <jiri@...dia.com>, Ido Schimmel <idosch@...dia.com>, Tobias Waldekranz <tobias@...dekranz.com>, Mattias Forsblad <mattias.forsblad@...il.com> Subject: Re: [PATCH net-next 6/6] net: bridge: avoid uselessly making offloaded ports promiscuous On Sat, Apr 09, 2022 at 06:17:15PM +0800, kernel test robot wrote: > >> net/bridge/br_if.c:145:10: error: no member named 'offload_count' in 'struct net_bridge_port' > if (p->offload_count) { > ~ ^ > 130 /* When a port is added or removed or when certain port flags > 131 * change, this function is called to automatically manage > 132 * promiscuity setting of all the bridge ports. We are always called > 133 * under RTNL so can skip using rcu primitives. > 134 */ > 135 void br_manage_promisc(struct net_bridge *br) > 136 { > 137 struct net_bridge_port *p; > 138 > 139 list_for_each_entry(p, &br->port_list, list) { > 140 /* Offloaded ports have a separate address database for > 141 * forwarding, which is managed through switchdev and not > 142 * through dev_uc_add(), so the promiscuous concept makes no > 143 * sense for them. Avoid updating promiscuity in that case. > 144 */ > > 145 if (p->offload_count) { Good point. Please imagine there's a static inline nbp_get_offload_count() that returns 0 when CONFIG_NET_SWITCHDEV=n. I'll address this for v2. > 146 br_port_clear_promisc(p); > 147 continue; > 148 } > 149 > 150 /* If bridge is promiscuous, unconditionally place all ports > 151 * in promiscuous mode too. This allows the bridge device to > 152 * locally receive all unknown traffic. > 153 */ > 154 if (br->dev->flags & IFF_PROMISC) { > 155 br_port_set_promisc(p); > 156 continue; > 157 } > 158 > 159 /* If vlan filtering is disabled, place all ports in > 160 * promiscuous mode. > 161 */ > 162 if (!br_vlan_enabled(br->dev)) { > 163 br_port_set_promisc(p); > 164 continue; > 165 } > 166 > 167 /* If the number of auto-ports is <= 1, then all other ports > 168 * will have their output configuration statically specified > 169 * through fdbs. Since ingress on the auto-port becomes > 170 * forwarding/egress to other ports and egress configuration is > 171 * statically known, we can say that ingress configuration of > 172 * the auto-port is also statically known. > 173 * This lets us disable promiscuous mode and write this config > 174 * to hw. > 175 */ > 176 if (br->auto_cnt == 0 || > 177 (br->auto_cnt == 1 && br_auto_port(p))) > 178 br_port_clear_promisc(p); > 179 else > 180 br_port_set_promisc(p); > 181 } > 182 } > 183
Powered by blists - more mailing lists