Re: [net-next PATCH 11/11] net: ravb: Add VLAN checksum support

kernel test robot
2024-10-01T16:47:32Z

Hi Paul,

kernel test robot noticed the following build warnings:

[auto build test WARNING on net-next/main]

url: https://github.com/intel-lab-lkp/linux/commits/Paul-Barker/net-ravb-Factor-out-checksum-offload-enable-bits/20241001-001351
base: net-next/main
patch link: https://lore.kernel.org/r/20240930160845.8520-12-paul%40pbarker.dev
patch subject: [net-next PATCH 11/11] net: ravb: Add VLAN checksum support
config: arc-randconfig-r123-20241001 (https://download.01.org/0day-ci/archive/20241002/202410020057.Z9KJHqVt-lkp@intel.com/config)
compiler: arceb-elf-gcc (GCC) 13.2.0
reproduce: (https://download.01.org/0day-ci/archive/20241002/202410020057.Z9KJHqVt-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202410020057.Z9KJHqVt-lkp@intel.com/

sparse warnings: (new ones prefixed by >>)
>> drivers/net/ethernet/renesas/ravb_main.c:2076:17: sparse: sparse: restricted __be16 degrades to integer
drivers/net/ethernet/renesas/ravb_main.c: note: in included file (through include/linux/mutex.h, include/linux/notifier.h, include/linux/clk.h):
include/linux/list.h:83:21: sparse: sparse: self-comparison always evaluates to true

vim +2076 drivers/net/ethernet/renesas/ravb_main.c

2063
2064 static bool ravb_can_tx_csum_gbeth(struct sk_buff *skb)
2065 {
2066 u16 net_protocol = ntohs(skb->protocol);
2067
2068 /* GbEth IP can calculate the checksum if:
2069 * - there are zero or one VLAN headers with TPID=0x8100
2070 * - the network protocol is IPv4 or IPv6
2071 * - the transport protocol is TCP, UDP or ICMP
2072 * - the packet is not fragmented
2073 */
2074
2075 if (skb_vlan_tag_present(skb) &&
> 2076 (skb->vlan_proto != ETH_P_8021Q || net_protocol == ETH_P_8021Q))
2077 return false;
2078
2079 if (net_protocol == ETH_P_8021Q) {
2080 struct vlan_hdr vhdr, *vh;
2081
2082 vh = skb_header_pointer(skb, ETH_HLEN, sizeof(vhdr), &vhdr);
2083 if (!vh)
2084 return false;
2085
2086 net_protocol = ntohs(vh->h_vlan_encapsulated_proto);
2087 }
2088
2089 switch (net_protocol) {
2090 case ETH_P_IP:
2091 switch (ip_hdr(skb)->protocol) {
2092 case IPPROTO_TCP:
2093 case IPPROTO_UDP:
2094 case IPPROTO_ICMP:
2095 return true;
2096 }
2097 break;
2098
2099 case ETH_P_IPV6:
2100 switch (ipv6_hdr(skb)->nexthdr) {
2101 case IPPROTO_TCP:
2102 case IPPROTO_UDP:
2103 case IPPROTO_ICMPV6:
2104 return true;
2105 }
2106 }
2107
2108 return false;
2109 }
2110

--
0-DAY CI Kernel Test Service