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  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <202501100021.rFUCRD3l-lkp@intel.com>
Date: Fri, 10 Jan 2025 00:21:36 +0800
From: kernel test robot <lkp@...el.com>
To: Philo Lu <lulie@...ux.alibaba.com>, netdev@...r.kernel.org
Cc: oe-kbuild-all@...ts.linux.dev, willemdebruijn.kernel@...il.com,
	davem@...emloft.net, dsahern@...nel.org, edumazet@...gle.com,
	kuba@...nel.org, pabeni@...hat.com, horms@...nel.org
Subject: Re: [PATCH net] udp: Make rehash4 independent in udp_lib_rehash()

Hi Philo,

kernel test robot noticed the following build errors:

[auto build test ERROR on net/main]

url:    https://github.com/intel-lab-lkp/linux/commits/Philo-Lu/udp-Make-rehash4-independent-in-udp_lib_rehash/20250108-194559
base:   net/main
patch link:    https://lore.kernel.org/r/20250108114321.128249-1-lulie%40linux.alibaba.com
patch subject: [PATCH net] udp: Make rehash4 independent in udp_lib_rehash()
config: openrisc-randconfig-r073-20250109 (https://download.01.org/0day-ci/archive/20250110/202501100021.rFUCRD3l-lkp@intel.com/config)
compiler: or1k-linux-gcc (GCC) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250110/202501100021.rFUCRD3l-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@...el.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202501100021.rFUCRD3l-lkp@intel.com/

All error/warnings (new ones prefixed by >>):

   net/ipv4/udp.c: In function 'udp_lib_rehash':
>> net/ipv4/udp.c:2187:58: error: 'struct udp_sock' has no member named 'udp_lrpa_hash'
    2187 |                                                udp_sk(sk)->udp_lrpa_hash);
         |                                                          ^~
   net/ipv4/udp.c:2189:35: error: 'struct udp_sock' has no member named 'udp_lrpa_hash'
    2189 |                         udp_sk(sk)->udp_lrpa_hash = newhash4;
         |                                   ^~
>> net/ipv4/udp.c:2194:69: error: 'struct udp_sock' has no member named 'udp_lrpa_node'
    2194 |                                 hlist_nulls_del_init_rcu(&udp_sk(sk)->udp_lrpa_node);
         |                                                                     ^~
   net/ipv4/udp.c:2199:69: error: 'struct udp_sock' has no member named 'udp_lrpa_node'
    2199 |                                 hlist_nulls_add_head_rcu(&udp_sk(sk)->udp_lrpa_node,
         |                                                                     ^~
   net/ipv4/udp.c: At top level:
>> net/ipv4/udp.c:491:13: warning: 'udp_rehash4' defined but not used [-Wunused-function]
     491 | static void udp_rehash4(struct udp_table *udptable, struct sock *sk,
         |             ^~~~~~~~~~~


vim +2187 net/ipv4/udp.c

  2140	
  2141	/*
  2142	 * inet_rcv_saddr was changed, we must rehash secondary hash
  2143	 */
  2144	void udp_lib_rehash(struct sock *sk, u16 newhash, u16 newhash4)
  2145	{
  2146		if (sk_hashed(sk)) {
  2147			struct udp_hslot *hslot, *hslot2, *nhslot2, *hslot4, *nhslot4;
  2148			struct udp_table *udptable = udp_get_table_prot(sk);
  2149	
  2150			hslot = udp_hashslot(udptable, sock_net(sk),
  2151					     udp_sk(sk)->udp_port_hash);
  2152			hslot2 = udp_hashslot2(udptable, udp_sk(sk)->udp_portaddr_hash);
  2153			nhslot2 = udp_hashslot2(udptable, newhash);
  2154			udp_sk(sk)->udp_portaddr_hash = newhash;
  2155	
  2156			if (hslot2 != nhslot2 ||
  2157			    rcu_access_pointer(sk->sk_reuseport_cb)) {
  2158				/* we must lock primary chain too */
  2159				spin_lock_bh(&hslot->lock);
  2160				if (rcu_access_pointer(sk->sk_reuseport_cb))
  2161					reuseport_detach_sock(sk);
  2162	
  2163				if (hslot2 != nhslot2) {
  2164					spin_lock(&hslot2->lock);
  2165					hlist_del_init_rcu(&udp_sk(sk)->udp_portaddr_node);
  2166					hslot2->count--;
  2167					spin_unlock(&hslot2->lock);
  2168	
  2169					spin_lock(&nhslot2->lock);
  2170					hlist_add_head_rcu(&udp_sk(sk)->udp_portaddr_node,
  2171								 &nhslot2->head);
  2172					nhslot2->count++;
  2173					spin_unlock(&nhslot2->lock);
  2174				}
  2175	
  2176				spin_unlock_bh(&hslot->lock);
  2177			}
  2178	
  2179			/* Now process hash4 if necessary:
  2180			 * (1) update hslot4;
  2181			 * (2) update hslot2->hash4_cnt.
  2182			 * Note that hslot2/hslot4 should be checked separately, as
  2183			 * either of them may change with the other unchanged.
  2184			 */
  2185			if (udp_hashed4(sk)) {
  2186				hslot4 = udp_hashslot4(udptable,
> 2187						       udp_sk(sk)->udp_lrpa_hash);
  2188				nhslot4 = udp_hashslot4(udptable, newhash4);
  2189				udp_sk(sk)->udp_lrpa_hash = newhash4;
  2190	
  2191				spin_lock_bh(&hslot->lock);
  2192				if (hslot4 != nhslot4) {
  2193					spin_lock(&hslot4->lock);
> 2194					hlist_nulls_del_init_rcu(&udp_sk(sk)->udp_lrpa_node);
  2195					hslot4->count--;
  2196					spin_unlock(&hslot4->lock);
  2197	
  2198					spin_lock(&nhslot4->lock);
  2199					hlist_nulls_add_head_rcu(&udp_sk(sk)->udp_lrpa_node,
  2200								 &nhslot4->nulls_head);
  2201					nhslot4->count++;
  2202					spin_unlock(&nhslot4->lock);
  2203				}
  2204	
  2205				if (hslot2 != nhslot2) {
  2206					spin_lock(&hslot2->lock);
  2207					udp_hash4_dec(hslot2);
  2208					spin_unlock(&hslot2->lock);
  2209	
  2210					spin_lock(&nhslot2->lock);
  2211					udp_hash4_inc(nhslot2);
  2212					spin_unlock(&nhslot2->lock);
  2213				}
  2214				spin_unlock_bh(&hslot->lock);
  2215			}
  2216		}
  2217	}
  2218	EXPORT_SYMBOL(udp_lib_rehash);
  2219	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ