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: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <CANn89i+Bt5Coi3YOj2JjX4KWQN4tJJpyYD3EabS274T8bQwjSw@mail.gmail.com>
Date: Mon, 29 Sep 2025 02:49:56 -0700
From: Eric Dumazet <edumazet@...gle.com>
To: kernel test robot <lkp@...el.com>
Cc: oe-kbuild-all@...ts.linux.dev, linux-kernel@...r.kernel.org, 
	Jakub Kicinski <kuba@...nel.org>, Maciej Żenczykowski <maze@...gle.com>, 
	Will Deacon <will@...nel.org>, "Paul E. McKenney" <paulmck@...nel.org>, linux-alpha@...r.kernel.org
Subject: Re: include/net/sock.h:2098:16: sparse: sparse: cast to non-scalar

On Mon, Sep 29, 2025 at 1:58 AM kernel test robot <lkp@...el.com> wrote:
>
> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> head:   e5f0a698b34ed76002dc5cff3804a61c80233a7a
> commit: c51da3f7a161c6822232be832abdffe47eb55b4c net: remove sock_i_uid()
> date:   3 months ago
> config: alpha-randconfig-r122-20250929 (https://download.01.org/0day-ci/archive/20250929/202509291645.fcBIaXMb-lkp@intel.com/config)
> compiler: alpha-linux-gcc (GCC) 15.1.0
> reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250929/202509291645.fcBIaXMb-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/202509291645.fcBIaXMb-lkp@intel.com/
>
> sparse warnings: (new ones prefixed by >>)
>    net/packet/diag.c: note: in included file (through include/linux/sock_diag.h):
> >> include/net/sock.h:2098:16: sparse: sparse: cast to non-scalar
>    include/net/sock.h:2098:16: sparse: sparse: cast from non-scalar
> --
>    net/packet/af_packet.c:1099:13: sparse: sparse: context imbalance in '__packet_lookup_frame_in_block' - different lock contexts for basic block
>    net/packet/af_packet.c:2541:17: sparse: sparse: context imbalance in 'tpacket_rcv' - unexpected unlock
>    net/packet/af_packet.c: note: in included file (through include/net/inet_sock.h, include/net/ip.h):
> >> include/net/sock.h:2098:16: sparse: sparse: cast to non-scalar
>    include/net/sock.h:2098:16: sparse: sparse: cast from non-scalar
>
> vim +2098 include/net/sock.h
>
> ^1da177e4c3f415 Linus Torvalds 2005-04-16  2094
> e84a4927a404f36 Eric Dumazet   2025-06-20  2095  static inline kuid_t sk_uid(const struct sock *sk)
> e84a4927a404f36 Eric Dumazet   2025-06-20  2096  {
> e84a4927a404f36 Eric Dumazet   2025-06-20  2097         /* Paired with WRITE_ONCE() in sockfs_setattr() */
> e84a4927a404f36 Eric Dumazet   2025-06-20 @2098         return READ_ONCE(sk->sk_uid);
> e84a4927a404f36 Eric Dumazet   2025-06-20  2099  }
> e84a4927a404f36 Eric Dumazet   2025-06-20  2100
>
> :::::: The code at line 2098 was first introduced by commit
> :::::: e84a4927a404f369c842c19de93b216627fcc690 net: annotate races around sk->sk_uid
>
> :::::: TO: Eric Dumazet <edumazet@...gle.com>
> :::::: CC: Jakub Kicinski <kuba@...nel.org>
>
> --
> 0-DAY CI Kernel Test Service
> https://github.com/intel/lkp-tests/wiki

This seems an Alpha issue to me ?

I can submit the following fix if there is an agreement.

diff --git a/arch/alpha/include/asm/rwonce.h b/arch/alpha/include/asm/rwonce.h
index 35542bcf92b3a883df353784bcb2d243475ccd91..b6801cd2ace962e11624737ed334a5aeb30478b7
100644
--- a/arch/alpha/include/asm/rwonce.h
+++ b/arch/alpha/include/asm/rwonce.h
@@ -22,10 +22,10 @@
  */
 #define __READ_ONCE(x)                                                 \
 ({                                                                     \
-       __unqual_scalar_typeof(x) __x =                                 \
-               (*(volatile typeof(__x) *)(&(x)));                      \
+       __auto_type __x =                                               \
+               (*(const volatile __unqual_scalar_typeof(x) *)&(x));    \
        mb();                                                           \
-       (typeof(x))__x;                                                 \
+       __x;                                                            \
 })

 #endif /* CONFIG_SMP */

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ