linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] softirq/s390: Use the generic local_softirq_pending()
@ 2021-05-24 12:39 Yejune Deng
  2021-05-27  0:06 ` Vasily Gorbik
  2021-05-27 23:11 ` kernel test robot
  0 siblings, 2 replies; 3+ messages in thread
From: Yejune Deng @ 2021-05-24 12:39 UTC (permalink / raw)
  To: hca, gor, borntraeger, tglx, keescook
  Cc: linux-s390, linux-kernel, Yejune Deng

Defined local_softirq_pending_ref macro and get rid of {local, set, or}
_softirq_pending macros. use {local, set, or}_softirq_pending
in <linux/interrupt.h> that rely on per-CPU mutators.

Signed-off-by: Yejune Deng <yejunedeng@gmail.com>
---
 arch/s390/include/asm/hardirq.h | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/arch/s390/include/asm/hardirq.h b/arch/s390/include/asm/hardirq.h
index 58668ff..ea643d6 100644
--- a/arch/s390/include/asm/hardirq.h
+++ b/arch/s390/include/asm/hardirq.h
@@ -13,9 +13,7 @@
 
 #include <asm/lowcore.h>
 
-#define local_softirq_pending() (S390_lowcore.softirq_pending)
-#define set_softirq_pending(x) (S390_lowcore.softirq_pending = (x))
-#define or_softirq_pending(x)  (S390_lowcore.softirq_pending |= (x))
+#define local_softirq_pending_ref  S390_lowcore.softirq_pending
 
 #define __ARCH_IRQ_STAT
 #define __ARCH_IRQ_EXIT_IRQS_DISABLED
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] softirq/s390: Use the generic local_softirq_pending()
  2021-05-24 12:39 [PATCH] softirq/s390: Use the generic local_softirq_pending() Yejune Deng
@ 2021-05-27  0:06 ` Vasily Gorbik
  2021-05-27 23:11 ` kernel test robot
  1 sibling, 0 replies; 3+ messages in thread
From: Vasily Gorbik @ 2021-05-27  0:06 UTC (permalink / raw)
  To: Yejune Deng
  Cc: hca, borntraeger, tglx, keescook, linux-s390, linux-kernel, Yejune Deng

On Mon, May 24, 2021 at 08:39:17PM +0800, Yejune Deng wrote:
> Defined local_softirq_pending_ref macro and get rid of {local, set, or}
> _softirq_pending macros. use {local, set, or}_softirq_pending
> in <linux/interrupt.h> that rely on per-CPU mutators.
> 
> Signed-off-by: Yejune Deng <yejunedeng@gmail.com>
> ---
>  arch/s390/include/asm/hardirq.h | 4 +---
>  1 file changed, 1 insertion(+), 3 deletions(-)
> 
> diff --git a/arch/s390/include/asm/hardirq.h b/arch/s390/include/asm/hardirq.h
> index 58668ff..ea643d6 100644
> --- a/arch/s390/include/asm/hardirq.h
> +++ b/arch/s390/include/asm/hardirq.h
> @@ -13,9 +13,7 @@
>  
>  #include <asm/lowcore.h>
>  
> -#define local_softirq_pending() (S390_lowcore.softirq_pending)
> -#define set_softirq_pending(x) (S390_lowcore.softirq_pending = (x))
> -#define or_softirq_pending(x)  (S390_lowcore.softirq_pending |= (x))
> +#define local_softirq_pending_ref  S390_lowcore.softirq_pending

S390_lowcore is not a per-CPU variable, so it cannot be accessed with
__this_cpu_read/write...

"lowcore" is a kind of hardware "per-CPU" area on s390. Each cpu accessing
first 2 pages at the real address 0 is actually touching pages at the
"absolute" address specified by prefix register of this cpu.


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] softirq/s390: Use the generic local_softirq_pending()
  2021-05-24 12:39 [PATCH] softirq/s390: Use the generic local_softirq_pending() Yejune Deng
  2021-05-27  0:06 ` Vasily Gorbik
@ 2021-05-27 23:11 ` kernel test robot
  1 sibling, 0 replies; 3+ messages in thread
From: kernel test robot @ 2021-05-27 23:11 UTC (permalink / raw)
  To: Yejune Deng, hca, gor, borntraeger, tglx, keescook
  Cc: kbuild-all, linux-s390, linux-kernel, Yejune Deng

[-- Attachment #1: Type: text/plain, Size: 23371 bytes --]

Hi Yejune,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on s390/features]
[also build test WARNING on v5.13-rc3 next-20210527]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/Yejune-Deng/softirq-s390-Use-the-generic-local_softirq_pending/20210524-204051
base:   https://git.kernel.org/pub/scm/linux/kernel/git/s390/linux.git features
config: s390-randconfig-s031-20210527 (attached as .config)
compiler: s390-linux-gcc (GCC) 9.3.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # apt-get install sparse
        # sparse version: v0.6.3-341-g8af24329-dirty
        # https://github.com/0day-ci/linux/commit/f1a79ef6db72f0ee7455c9b2985eba179516b7fd
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Yejune-Deng/softirq-s390-Use-the-generic-local_softirq_pending/20210524-204051
        git checkout f1a79ef6db72f0ee7455c9b2985eba179516b7fd
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' W=1 ARCH=s390 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>


sparse warnings: (new ones prefixed by >>)
>> kernel/softirq.c:379:13: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got unsigned int * @@
   kernel/softirq.c:379:13: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/softirq.c:379:13: sparse:     got unsigned int *
>> kernel/softirq.c:379:13: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got unsigned int * @@
   kernel/softirq.c:379:13: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/softirq.c:379:13: sparse:     got unsigned int *
>> kernel/softirq.c:379:13: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got unsigned int * @@
   kernel/softirq.c:379:13: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/softirq.c:379:13: sparse:     got unsigned int *
>> kernel/softirq.c:379:13: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got unsigned int * @@
   kernel/softirq.c:379:13: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/softirq.c:379:13: sparse:     got unsigned int *
>> kernel/softirq.c:379:13: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got unsigned int * @@
   kernel/softirq.c:379:13: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/softirq.c:379:13: sparse:     got unsigned int *
   kernel/softirq.c:457:19: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got unsigned int * @@
   kernel/softirq.c:457:19: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/softirq.c:457:19: sparse:     got unsigned int *
   kernel/softirq.c:457:19: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got unsigned int * @@
   kernel/softirq.c:457:19: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/softirq.c:457:19: sparse:     got unsigned int *
   kernel/softirq.c:457:19: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got unsigned int * @@
   kernel/softirq.c:457:19: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/softirq.c:457:19: sparse:     got unsigned int *
   kernel/softirq.c:457:19: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got unsigned int * @@
   kernel/softirq.c:457:19: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/softirq.c:457:19: sparse:     got unsigned int *
   kernel/softirq.c:457:19: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got unsigned int * @@
   kernel/softirq.c:457:19: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/softirq.c:457:19: sparse:     got unsigned int *
   kernel/softirq.c:533:19: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got unsigned int * @@
   kernel/softirq.c:533:19: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/softirq.c:533:19: sparse:     got unsigned int *
   kernel/softirq.c:533:19: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got unsigned int * @@
   kernel/softirq.c:533:19: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/softirq.c:533:19: sparse:     got unsigned int *
   kernel/softirq.c:533:19: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got unsigned int * @@
   kernel/softirq.c:533:19: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/softirq.c:533:19: sparse:     got unsigned int *
   kernel/softirq.c:533:19: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got unsigned int * @@
   kernel/softirq.c:533:19: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/softirq.c:533:19: sparse:     got unsigned int *
   kernel/softirq.c:533:19: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got unsigned int * @@
   kernel/softirq.c:533:19: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/softirq.c:533:19: sparse:     got unsigned int *
   kernel/softirq.c:541:9: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got unsigned int * @@
   kernel/softirq.c:541:9: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/softirq.c:541:9: sparse:     got unsigned int *
   kernel/softirq.c:541:9: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got unsigned int * @@
   kernel/softirq.c:541:9: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/softirq.c:541:9: sparse:     got unsigned int *
   kernel/softirq.c:541:9: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got unsigned int * @@
   kernel/softirq.c:541:9: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/softirq.c:541:9: sparse:     got unsigned int *
   kernel/softirq.c:541:9: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got unsigned int * @@
   kernel/softirq.c:541:9: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/softirq.c:541:9: sparse:     got unsigned int *
   kernel/softirq.c:541:9: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got unsigned int * @@
   kernel/softirq.c:541:9: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/softirq.c:541:9: sparse:     got unsigned int *
   kernel/softirq.c:577:19: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got unsigned int * @@
   kernel/softirq.c:577:19: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/softirq.c:577:19: sparse:     got unsigned int *
   kernel/softirq.c:577:19: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got unsigned int * @@
   kernel/softirq.c:577:19: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/softirq.c:577:19: sparse:     got unsigned int *
   kernel/softirq.c:577:19: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got unsigned int * @@
   kernel/softirq.c:577:19: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/softirq.c:577:19: sparse:     got unsigned int *
   kernel/softirq.c:577:19: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got unsigned int * @@
   kernel/softirq.c:577:19: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/softirq.c:577:19: sparse:     got unsigned int *
   kernel/softirq.c:577:19: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got unsigned int * @@
   kernel/softirq.c:577:19: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/softirq.c:577:19: sparse:     got unsigned int *
   kernel/softirq.c:700:9: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got unsigned int * @@
   kernel/softirq.c:700:9: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/softirq.c:700:9: sparse:     got unsigned int *
   kernel/softirq.c:700:9: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got unsigned int * @@
   kernel/softirq.c:700:9: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/softirq.c:700:9: sparse:     got unsigned int *
   kernel/softirq.c:700:9: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got unsigned int * @@
   kernel/softirq.c:700:9: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/softirq.c:700:9: sparse:     got unsigned int *
   kernel/softirq.c:700:9: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got unsigned int * @@
   kernel/softirq.c:700:9: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/softirq.c:700:9: sparse:     got unsigned int *
   kernel/softirq.c:700:9: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got unsigned int * @@
   kernel/softirq.c:700:9: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/softirq.c:700:9: sparse:     got unsigned int *
   kernel/softirq.c:910:16: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got unsigned int * @@
   kernel/softirq.c:910:16: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/softirq.c:910:16: sparse:     got unsigned int *
   kernel/softirq.c:910:16: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got unsigned int * @@
   kernel/softirq.c:910:16: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/softirq.c:910:16: sparse:     got unsigned int *
   kernel/softirq.c:910:16: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got unsigned int * @@
   kernel/softirq.c:910:16: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/softirq.c:910:16: sparse:     got unsigned int *
   kernel/softirq.c:910:16: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got unsigned int * @@
   kernel/softirq.c:910:16: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/softirq.c:910:16: sparse:     got unsigned int *
   kernel/softirq.c:910:16: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got unsigned int * @@
   kernel/softirq.c:910:16: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/softirq.c:910:16: sparse:     got unsigned int *
   kernel/softirq.c:916:13: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got unsigned int * @@
   kernel/softirq.c:916:13: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/softirq.c:916:13: sparse:     got unsigned int *
   kernel/softirq.c:916:13: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got unsigned int * @@
   kernel/softirq.c:916:13: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/softirq.c:916:13: sparse:     got unsigned int *
   kernel/softirq.c:916:13: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got unsigned int * @@
   kernel/softirq.c:916:13: sparse:     expected void const [noderef] __percpu *__vpp_verify
--
>> kernel/smp.c:453:13: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got unsigned int * @@
   kernel/smp.c:453:13: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/smp.c:453:13: sparse:     got unsigned int *
>> kernel/smp.c:453:13: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got unsigned int * @@
   kernel/smp.c:453:13: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/smp.c:453:13: sparse:     got unsigned int *
>> kernel/smp.c:453:13: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got unsigned int * @@
   kernel/smp.c:453:13: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/smp.c:453:13: sparse:     got unsigned int *
>> kernel/smp.c:453:13: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got unsigned int * @@
   kernel/smp.c:453:13: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/smp.c:453:13: sparse:     got unsigned int *
>> kernel/smp.c:453:13: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got unsigned int * @@
   kernel/smp.c:453:13: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/smp.c:453:13: sparse:     got unsigned int *
--
   net/core/dev.c:3308:23: sparse: sparse: incorrect type in argument 4 (different base types) @@     expected restricted __wsum [usertype] csum @@     got unsigned int @@
   net/core/dev.c:3308:23: sparse:     expected restricted __wsum [usertype] csum
   net/core/dev.c:3308:23: sparse:     got unsigned int
   net/core/dev.c:3308:23: sparse: sparse: cast from restricted __wsum
   net/core/dev.c:3308:23: sparse: sparse: incorrect type in argument 4 (different base types) @@     expected restricted __wsum [usertype] csum @@     got unsigned int @@
   net/core/dev.c:3308:23: sparse:     expected restricted __wsum [usertype] csum
   net/core/dev.c:3308:23: sparse:     got unsigned int
   net/core/dev.c:3308:23: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned int [usertype] val @@     got restricted __wsum @@
   net/core/dev.c:3308:23: sparse:     expected unsigned int [usertype] val
   net/core/dev.c:3308:23: sparse:     got restricted __wsum
   net/core/dev.c:3308:23: sparse: sparse: incorrect type in argument 4 (different base types) @@     expected restricted __wsum [usertype] csum @@     got unsigned int @@
   net/core/dev.c:3308:23: sparse:     expected restricted __wsum [usertype] csum
   net/core/dev.c:3308:23: sparse:     got unsigned int
   net/core/dev.c:3308:23: sparse: sparse: cast from restricted __wsum
   net/core/dev.c:3308:23: sparse: sparse: incorrect type in argument 4 (different base types) @@     expected restricted __wsum [usertype] csum @@     got unsigned int @@
   net/core/dev.c:3308:23: sparse:     expected restricted __wsum [usertype] csum
   net/core/dev.c:3308:23: sparse:     got unsigned int
   net/core/dev.c:3308:23: sparse: sparse: cast from restricted __wsum
   net/core/dev.c:3308:23: sparse: sparse: incorrect type in argument 4 (different base types) @@     expected restricted __wsum [usertype] csum @@     got unsigned int @@
   net/core/dev.c:3308:23: sparse:     expected restricted __wsum [usertype] csum
   net/core/dev.c:3308:23: sparse:     got unsigned int
   net/core/dev.c:3308:23: sparse: sparse: cast from restricted __wsum
   net/core/dev.c:3308:23: sparse: sparse: incorrect type in argument 4 (different base types) @@     expected restricted __wsum [usertype] csum @@     got unsigned int @@
   net/core/dev.c:3308:23: sparse:     expected restricted __wsum [usertype] csum
   net/core/dev.c:3308:23: sparse:     got unsigned int
   net/core/dev.c:3308:23: sparse: sparse: cast from restricted __wsum
>> net/core/dev.c:4910:13: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got unsigned int * @@
   net/core/dev.c:4910:13: sparse:     expected void const [noderef] __percpu *__vpp_verify
   net/core/dev.c:4910:13: sparse:     got unsigned int *
>> net/core/dev.c:4910:13: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got unsigned int * @@
   net/core/dev.c:4910:13: sparse:     expected void const [noderef] __percpu *__vpp_verify
   net/core/dev.c:4910:13: sparse:     got unsigned int *
>> net/core/dev.c:4910:13: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got unsigned int * @@
   net/core/dev.c:4910:13: sparse:     expected void const [noderef] __percpu *__vpp_verify
   net/core/dev.c:4910:13: sparse:     got unsigned int *
>> net/core/dev.c:4910:13: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got unsigned int * @@
   net/core/dev.c:4910:13: sparse:     expected void const [noderef] __percpu *__vpp_verify
   net/core/dev.c:4910:13: sparse:     got unsigned int *
>> net/core/dev.c:4910:13: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got unsigned int * @@
   net/core/dev.c:4910:13: sparse:     expected void const [noderef] __percpu *__vpp_verify
   net/core/dev.c:4910:13: sparse:     got unsigned int *
   net/core/dev.c:3807:26: sparse: sparse: context imbalance in '__dev_queue_xmit' - different lock contexts for basic block
   net/core/dev.c:4990:44: sparse: sparse: context imbalance in 'net_tx_action' - unexpected unlock

vim +379 kernel/softirq.c

de30a2b355ea853 Ingo Molnar         2006-07-03  360  
0bd3a173d711857 Peter Zijlstra      2013-11-19  361  void __local_bh_enable_ip(unsigned long ip, unsigned int cnt)
de30a2b355ea853 Ingo Molnar         2006-07-03  362  {
f71b74bca637fca Frederic Weisbecker 2017-11-06  363  	WARN_ON_ONCE(in_irq());
f71b74bca637fca Frederic Weisbecker 2017-11-06  364  	lockdep_assert_irqs_enabled();
3c829c367a1a525 Tim Chen            2006-07-30  365  #ifdef CONFIG_TRACE_IRQFLAGS
0f476b6d91a1395 Johannes Berg       2008-06-18  366  	local_irq_disable();
3c829c367a1a525 Tim Chen            2006-07-30  367  #endif
de30a2b355ea853 Ingo Molnar         2006-07-03  368  	/*
de30a2b355ea853 Ingo Molnar         2006-07-03  369  	 * Are softirqs going to be turned on now:
de30a2b355ea853 Ingo Molnar         2006-07-03  370  	 */
75e1056f5c57050 Venkatesh Pallipadi 2010-10-04  371  	if (softirq_count() == SOFTIRQ_DISABLE_OFFSET)
0d38453c85b426e Peter Zijlstra      2020-03-20  372  		lockdep_softirqs_on(ip);
de30a2b355ea853 Ingo Molnar         2006-07-03  373  	/*
de30a2b355ea853 Ingo Molnar         2006-07-03  374  	 * Keep preemption disabled until we are done with
de30a2b355ea853 Ingo Molnar         2006-07-03  375  	 * softirq processing:
de30a2b355ea853 Ingo Molnar         2006-07-03  376  	 */
91ea62d58bd6618 Peter Zijlstra      2020-12-18  377  	__preempt_count_sub(cnt - 1);
de30a2b355ea853 Ingo Molnar         2006-07-03  378  
0bed698a334766e Frederic Weisbecker 2013-09-05 @379  	if (unlikely(!in_interrupt() && local_softirq_pending())) {
0bed698a334766e Frederic Weisbecker 2013-09-05  380  		/*
0bed698a334766e Frederic Weisbecker 2013-09-05  381  		 * Run softirq if any pending. And do it in its own stack
0bed698a334766e Frederic Weisbecker 2013-09-05  382  		 * as we may be calling this deep in a task call stack already.
0bed698a334766e Frederic Weisbecker 2013-09-05  383  		 */
de30a2b355ea853 Ingo Molnar         2006-07-03  384  		do_softirq();
0bed698a334766e Frederic Weisbecker 2013-09-05  385  	}
de30a2b355ea853 Ingo Molnar         2006-07-03  386  
bdb43806589096a Peter Zijlstra      2013-09-10  387  	preempt_count_dec();
3c829c367a1a525 Tim Chen            2006-07-30  388  #ifdef CONFIG_TRACE_IRQFLAGS
0f476b6d91a1395 Johannes Berg       2008-06-18  389  	local_irq_enable();
3c829c367a1a525 Tim Chen            2006-07-30  390  #endif
de30a2b355ea853 Ingo Molnar         2006-07-03  391  	preempt_check_resched();
de30a2b355ea853 Ingo Molnar         2006-07-03  392  }
0bd3a173d711857 Peter Zijlstra      2013-11-19  393  EXPORT_SYMBOL(__local_bh_enable_ip);
de30a2b355ea853 Ingo Molnar         2006-07-03  394  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 30803 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2021-05-27 23:12 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-05-24 12:39 [PATCH] softirq/s390: Use the generic local_softirq_pending() Yejune Deng
2021-05-27  0:06 ` Vasily Gorbik
2021-05-27 23:11 ` kernel test robot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).