On Wed, Jan 3, 2024 at 9:10 PM Vladimir Oltean olteanv@gmail.com wrote:
On Tue, Jan 02, 2024 at 05:27:15PM +0100, Romain Gantois wrote:
+/* Check if ethertype will trigger IP
- header checks/COE in hardware
- */
+static inline bool stmmac_has_ip_ethertype(struct sk_buff *skb) +{
__be16 proto = eth_header_parse_protocol(skb);
return (proto == htons(ETH_P_IP)) || (proto == htons(ETH_P_IPV6)) ||
(proto == htons(ETH_P_8021Q));
proto == htons(ETH_P_8021Q) means that the skb has an IP EtherType? What if an IP header does not follow after the VLAN header?
It's probably best to do like I do here: https://lore.kernel.org/netdev/20240102-new-gemini-ethernet-regression-v5-2-...
+ if (ethertype == ETH_P_8021Q) + ethertype = ntohs(__vlan_get_protocol(skb, htons(ethertype), NULL));
Yours, Linus Walleij