Re: [PATCH] irqchip/stm32-exti: map direct event to irq parent
by kernel test robot
Hi Alexandre,
I love your patch! Perhaps something to improve:
[auto build test WARNING on stm32/stm32-next]
[also build test WARNING on soc/for-next v5.8-rc4 next-20200707]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Alexandre-Torgue/irqchip-stm32-e...
base: https://git.kernel.org/pub/scm/linux/kernel/git/atorgue/stm32.git stm32-next
config: arm-randconfig-s031-20200707 (attached as .config)
compiler: arm-linux-gnueabi-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.2-31-gabbfd661-dirty
# 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__' ARCH=arm
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
In file included from include/linux/build_bug.h:5,
from include/linux/bits.h:23,
from include/linux/bitops.h:5,
from drivers/irqchip/irq-stm32-exti.c:8:
drivers/irqchip/irq-stm32-exti.c: In function 'stm32_exti_h_domain_alloc':
drivers/irqchip/irq-stm32-exti.c:683:23: warning: comparison of unsigned expression >= 0 is always true [-Wtype-limits]
683 | if (desc->irq_parent >= 0) {
| ^~
include/linux/compiler.h:58:52: note: in definition of macro '__trace_if_var'
58 | #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond))
| ^~~~
>> drivers/irqchip/irq-stm32-exti.c:683:2: note: in expansion of macro 'if'
683 | if (desc->irq_parent >= 0) {
| ^~
drivers/irqchip/irq-stm32-exti.c:683:23: warning: comparison of unsigned expression >= 0 is always true [-Wtype-limits]
683 | if (desc->irq_parent >= 0) {
| ^~
include/linux/compiler.h:58:61: note: in definition of macro '__trace_if_var'
58 | #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond))
| ^~~~
>> drivers/irqchip/irq-stm32-exti.c:683:2: note: in expansion of macro 'if'
683 | if (desc->irq_parent >= 0) {
| ^~
drivers/irqchip/irq-stm32-exti.c:683:23: warning: comparison of unsigned expression >= 0 is always true [-Wtype-limits]
683 | if (desc->irq_parent >= 0) {
| ^~
include/linux/compiler.h:69:3: note: in definition of macro '__trace_if_value'
69 | (cond) ? \
| ^~~~
include/linux/compiler.h:56:28: note: in expansion of macro '__trace_if_var'
56 | #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) )
| ^~~~~~~~~~~~~~
>> drivers/irqchip/irq-stm32-exti.c:683:2: note: in expansion of macro 'if'
683 | if (desc->irq_parent >= 0) {
| ^~
vim +/if +683 drivers/irqchip/irq-stm32-exti.c
659
660 static int stm32_exti_h_domain_alloc(struct irq_domain *dm,
661 unsigned int virq,
662 unsigned int nr_irqs, void *data)
663 {
664 struct stm32_exti_host_data *host_data = dm->host_data;
665 struct stm32_exti_chip_data *chip_data;
666 const struct stm32_desc_irq *desc;
667 struct irq_fwspec *fwspec = data;
668 struct irq_fwspec p_fwspec;
669 irq_hw_number_t hwirq;
670 int bank;
671
672 hwirq = fwspec->param[0];
673 bank = hwirq / IRQS_PER_BANK;
674 chip_data = &host_data->chips_data[bank];
675
676
677 desc = stm32_exti_get_desc(host_data->drv_data, hwirq);
678 if (!desc)
679 return -EINVAL;
680
681 irq_domain_set_hwirq_and_chip(dm, virq, hwirq, desc->chip,
682 chip_data);
> 683 if (desc->irq_parent >= 0) {
684 p_fwspec.fwnode = dm->parent->fwnode;
685 p_fwspec.param_count = 3;
686 p_fwspec.param[0] = GIC_SPI;
687 p_fwspec.param[1] = desc->irq_parent;
688 p_fwspec.param[2] = IRQ_TYPE_LEVEL_HIGH;
689
690 return irq_domain_alloc_irqs_parent(dm, virq, 1, &p_fwspec);
691 }
692
693 return 0;
694 }
695
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 2 months
drivers/misc/cxl/flash.c:294:42: sparse: sparse: incorrect type in argument 2 (different address spaces)
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 8882572675c1bb1cc544f4e229a11661f1fc52e4
commit: 670d0a4b10704667765f7d18f7592993d02783aa sparse: use identifiers to define address spaces
date: 4 weeks ago
config: powerpc64-randconfig-s031-20200717 (attached as .config)
compiler: powerpc64-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.2-49-g707c5017-dirty
git checkout 670d0a4b10704667765f7d18f7592993d02783aa
# 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__' ARCH=powerpc64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
sparse warnings: (new ones prefixed by >>)
drivers/misc/cxl/flash.c:95:9: sparse: sparse: cast to restricted __be32
drivers/misc/cxl/flash.c:243:33: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] version @@ got restricted __be16 [usertype] @@
drivers/misc/cxl/flash.c:243:33: sparse: expected unsigned short [usertype] version
drivers/misc/cxl/flash.c:243:33: sparse: got restricted __be16 [usertype]
drivers/misc/cxl/flash.c:244:32: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] vendor @@ got restricted __be16 [usertype] @@
drivers/misc/cxl/flash.c:244:32: sparse: expected unsigned short [usertype] vendor
drivers/misc/cxl/flash.c:244:32: sparse: got restricted __be16 [usertype]
drivers/misc/cxl/flash.c:245:32: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] device @@ got restricted __be16 [usertype] @@
drivers/misc/cxl/flash.c:245:32: sparse: expected unsigned short [usertype] device
drivers/misc/cxl/flash.c:245:32: sparse: got restricted __be16 [usertype]
drivers/misc/cxl/flash.c:246:42: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] subsystem_vendor @@ got restricted __be16 [usertype] @@
drivers/misc/cxl/flash.c:246:42: sparse: expected unsigned short [usertype] subsystem_vendor
drivers/misc/cxl/flash.c:246:42: sparse: got restricted __be16 [usertype]
drivers/misc/cxl/flash.c:247:35: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] subsystem @@ got restricted __be16 [usertype] @@
drivers/misc/cxl/flash.c:247:35: sparse: expected unsigned short [usertype] subsystem
drivers/misc/cxl/flash.c:247:35: sparse: got restricted __be16 [usertype]
drivers/misc/cxl/flash.c:248:38: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned long long [usertype] image_offset @@ got restricted __be64 [usertype] @@
drivers/misc/cxl/flash.c:248:38: sparse: expected unsigned long long [usertype] image_offset
drivers/misc/cxl/flash.c:248:38: sparse: got restricted __be64 [usertype]
drivers/misc/cxl/flash.c:249:38: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned long long [usertype] image_length @@ got restricted __be64 [usertype] @@
drivers/misc/cxl/flash.c:249:38: sparse: expected unsigned long long [usertype] image_length
drivers/misc/cxl/flash.c:249:38: sparse: got restricted __be64 [usertype]
>> drivers/misc/cxl/flash.c:294:42: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const [noderef] __user *from @@ got void *[assigned] from @@
>> drivers/misc/cxl/flash.c:294:42: sparse: expected void const [noderef] __user *from
drivers/misc/cxl/flash.c:294:42: sparse: got void *[assigned] from
drivers/misc/cxl/flash.c:298:33: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned long long [usertype] phys_addr @@ got restricted __be64 [usertype] @@
drivers/misc/cxl/flash.c:298:33: sparse: expected unsigned long long [usertype] phys_addr
drivers/misc/cxl/flash.c:298:33: sparse: got restricted __be64 [usertype]
drivers/misc/cxl/flash.c:299:27: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned long long [usertype] len @@ got restricted __be64 [usertype] @@
drivers/misc/cxl/flash.c:299:27: sparse: expected unsigned long long [usertype] len
drivers/misc/cxl/flash.c:299:27: sparse: got restricted __be64 [usertype]
drivers/misc/cxl/flash.c:301:35: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned long long [usertype] len @@ got restricted __be64 [usertype] @@
drivers/misc/cxl/flash.c:301:35: sparse: expected unsigned long long [usertype] len
drivers/misc/cxl/flash.c:301:35: sparse: got restricted __be64 [usertype]
--
drivers/misc/cxl/guest.c:104:33: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned long long [usertype] phys_addr @@ got restricted __be64 [usertype] @@
drivers/misc/cxl/guest.c:104:33: sparse: expected unsigned long long [usertype] phys_addr
drivers/misc/cxl/guest.c:104:33: sparse: got restricted __be64 [usertype]
drivers/misc/cxl/guest.c:105:27: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned long long [usertype] len @@ got restricted __be64 [usertype] @@
drivers/misc/cxl/guest.c:105:27: sparse: expected unsigned long long [usertype] len
drivers/misc/cxl/guest.c:105:27: sparse: got restricted __be64 [usertype]
drivers/misc/cxl/guest.c:107:35: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned long long [usertype] len @@ got restricted __be64 [usertype] @@
drivers/misc/cxl/guest.c:107:35: sparse: expected unsigned long long [usertype] len
drivers/misc/cxl/guest.c:107:35: sparse: got restricted __be64 [usertype]
>> drivers/misc/cxl/guest.c:439:33: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected unsigned short const volatile [noderef] [usertype] __iomem *addr @@ got unsigned short [usertype] * @@
>> drivers/misc/cxl/guest.c:439:33: sparse: expected unsigned short const volatile [noderef] [usertype] __iomem *addr
drivers/misc/cxl/guest.c:439:33: sparse: got unsigned short [usertype] *
>> drivers/misc/cxl/guest.c:442:33: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected unsigned int const volatile [noderef] [usertype] __iomem *addr @@ got unsigned int * @@
>> drivers/misc/cxl/guest.c:442:33: sparse: expected unsigned int const volatile [noderef] [usertype] __iomem *addr
drivers/misc/cxl/guest.c:442:33: sparse: got unsigned int *
>> drivers/misc/cxl/guest.c:445:33: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected unsigned long long const volatile [noderef] [usertype] __iomem *addr @@ got unsigned long long [usertype] * @@
>> drivers/misc/cxl/guest.c:445:33: sparse: expected unsigned long long const volatile [noderef] [usertype] __iomem *addr
drivers/misc/cxl/guest.c:445:33: sparse: got unsigned long long [usertype] *
drivers/misc/cxl/guest.c:533:23: sparse: sparse: invalid assignment: |=
drivers/misc/cxl/guest.c:533:23: sparse: left side has type restricted __be64
drivers/misc/cxl/guest.c:533:23: sparse: right side has type unsigned long long
drivers/misc/cxl/guest.c:534:23: sparse: sparse: invalid assignment: |=
drivers/misc/cxl/guest.c:534:23: sparse: left side has type restricted __be64
drivers/misc/cxl/guest.c:534:23: sparse: right side has type unsigned long long
drivers/misc/cxl/guest.c:536:31: sparse: sparse: invalid assignment: |=
drivers/misc/cxl/guest.c:536:31: sparse: left side has type restricted __be64
drivers/misc/cxl/guest.c:536:31: sparse: right side has type unsigned long long
drivers/misc/cxl/guest.c:539:23: sparse: sparse: invalid assignment: |=
drivers/misc/cxl/guest.c:539:23: sparse: left side has type restricted __be64
drivers/misc/cxl/guest.c:539:23: sparse: right side has type unsigned long long
drivers/misc/cxl/guest.c:540:23: sparse: sparse: invalid assignment: |=
drivers/misc/cxl/guest.c:540:23: sparse: left side has type restricted __be64
drivers/misc/cxl/guest.c:540:23: sparse: right side has type unsigned long long
drivers/misc/cxl/guest.c:542:31: sparse: sparse: invalid assignment: |=
drivers/misc/cxl/guest.c:542:31: sparse: left side has type restricted __be64
drivers/misc/cxl/guest.c:542:31: sparse: right side has type unsigned long long
drivers/misc/cxl/guest.c:545:31: sparse: sparse: invalid assignment: |=
drivers/misc/cxl/guest.c:545:31: sparse: left side has type restricted __be64
drivers/misc/cxl/guest.c:545:31: sparse: right side has type unsigned long long
drivers/misc/cxl/guest.c:548:31: sparse: sparse: cast from restricted __be64
--
arch/powerpc/platforms/pasemi/dma_lib.c:364:57: sparse: sparse: incorrect type in argument 4 (different base types) @@ expected unsigned long long [usertype] dma_handle @@ got restricted gfp_t @@
arch/powerpc/platforms/pasemi/dma_lib.c:364:57: sparse: expected unsigned long long [usertype] dma_handle
arch/powerpc/platforms/pasemi/dma_lib.c:364:57: sparse: got restricted gfp_t
>> arch/powerpc/platforms/pasemi/dma_lib.c:481:16: sparse: sparse: incorrect type in return expression (different address spaces) @@ expected void * @@ got void [noderef] __iomem *[assigned] ret @@
arch/powerpc/platforms/pasemi/dma_lib.c:481:16: sparse: expected void *
>> arch/powerpc/platforms/pasemi/dma_lib.c:481:16: sparse: got void [noderef] __iomem *[assigned] ret
>> arch/powerpc/platforms/pasemi/dma_lib.c:487:23: sparse: sparse: incorrect type in return expression (different address spaces) @@ expected void * @@ got void [noderef] __iomem * @@
arch/powerpc/platforms/pasemi/dma_lib.c:487:23: sparse: expected void *
>> arch/powerpc/platforms/pasemi/dma_lib.c:487:23: sparse: got void [noderef] __iomem *
>> arch/powerpc/platforms/pasemi/dma_lib.c:524:18: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void [noderef] __iomem *static [toplevel] iob_regs @@ got void * @@
>> arch/powerpc/platforms/pasemi/dma_lib.c:524:18: sparse: expected void [noderef] __iomem *static [toplevel] iob_regs
arch/powerpc/platforms/pasemi/dma_lib.c:524:18: sparse: got void *
>> arch/powerpc/platforms/pasemi/dma_lib.c:533:18: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void [noderef] __iomem *static [toplevel] dma_regs @@ got void * @@
>> arch/powerpc/platforms/pasemi/dma_lib.c:533:18: sparse: expected void [noderef] __iomem *static [toplevel] dma_regs
arch/powerpc/platforms/pasemi/dma_lib.c:533:18: sparse: got void *
>> arch/powerpc/platforms/pasemi/dma_lib.c:546:34: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void [noderef] __iomem * @@ got void * @@
>> arch/powerpc/platforms/pasemi/dma_lib.c:546:34: sparse: expected void [noderef] __iomem *
arch/powerpc/platforms/pasemi/dma_lib.c:546:34: sparse: got void *
arch/powerpc/platforms/pasemi/dma_lib.c:553:34: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void [noderef] __iomem * @@ got void * @@
arch/powerpc/platforms/pasemi/dma_lib.c:553:34: sparse: expected void [noderef] __iomem *
arch/powerpc/platforms/pasemi/dma_lib.c:553:34: sparse: got void *
>> arch/powerpc/platforms/pasemi/dma_lib.c:565:20: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct pasdma_status *static [toplevel] dma_status @@ got void [noderef] __iomem * @@
arch/powerpc/platforms/pasemi/dma_lib.c:565:20: sparse: expected struct pasdma_status *static [toplevel] dma_status
arch/powerpc/platforms/pasemi/dma_lib.c:565:20: sparse: got void [noderef] __iomem *
--
arch/powerpc/platforms/cell/spu_syscalls.c:154:9: sparse: sparse: incompatible types in comparison expression (different address spaces):
>> arch/powerpc/platforms/cell/spu_syscalls.c:154:9: sparse: struct spufs_calls [noderef] __rcu *
arch/powerpc/platforms/cell/spu_syscalls.c:154:9: sparse: struct spufs_calls *
arch/powerpc/platforms/cell/spu_syscalls.c:162:9: sparse: sparse: incompatible types in comparison expression (different address spaces):
arch/powerpc/platforms/cell/spu_syscalls.c:162:9: sparse: struct spufs_calls [noderef] __rcu *
arch/powerpc/platforms/cell/spu_syscalls.c:162:9: sparse: struct spufs_calls *
--
>> arch/powerpc/platforms/cell/spufs/file.c:277:41: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem *d @@ got char * @@
>> arch/powerpc/platforms/cell/spufs/file.c:277:41: sparse: expected void volatile [noderef] __iomem *d
arch/powerpc/platforms/cell/spufs/file.c:277:41: sparse: got char *
>> arch/powerpc/platforms/cell/spufs/file.c:279:48: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const volatile [noderef] __iomem *s @@ got char * @@
>> arch/powerpc/platforms/cell/spufs/file.c:279:48: sparse: expected void const volatile [noderef] __iomem *s
arch/powerpc/platforms/cell/spufs/file.c:279:48: sparse: got char *
arch/powerpc/platforms/cell/spufs/file.c:2442:24: sparse: sparse: incorrect type in return expression (different base types) @@ expected restricted __poll_t @@ got int [assigned] rc @@
arch/powerpc/platforms/cell/spufs/file.c:2442:24: sparse: expected restricted __poll_t
arch/powerpc/platforms/cell/spufs/file.c:2442:24: sparse: got int [assigned] rc
--
>> arch/powerpc/platforms/ps3/gelic_udbg.c:127:53: sparse: sparse: incorrect type in argument 3 (different address spaces) @@ expected void *start @@ got struct debug_block [noderef] __iomem * @@
arch/powerpc/platforms/ps3/gelic_udbg.c:127:53: sparse: expected void *start
>> arch/powerpc/platforms/ps3/gelic_udbg.c:127:53: sparse: got struct debug_block [noderef] __iomem *
>> arch/powerpc/platforms/ps3/gelic_udbg.c:130:17: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void * @@ got struct debug_block [noderef] __iomem * @@
arch/powerpc/platforms/ps3/gelic_udbg.c:130:17: sparse: expected void *
arch/powerpc/platforms/ps3/gelic_udbg.c:130:17: sparse: got struct debug_block [noderef] __iomem *
>> arch/powerpc/platforms/ps3/gelic_udbg.c:132:28: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __be32 static [addressable] [noderef] [toplevel] [usertype] __iomem buf_addr @@ got unsigned long long @@
>> arch/powerpc/platforms/ps3/gelic_udbg.c:132:28: sparse: expected restricted __be32 static [addressable] [noderef] [toplevel] [usertype] __iomem buf_addr
arch/powerpc/platforms/ps3/gelic_udbg.c:132:28: sparse: got unsigned long long
>> arch/powerpc/platforms/ps3/gelic_udbg.c:144:18: sparse: sparse: cast removes address space '__iomem' of expression
>> arch/powerpc/platforms/ps3/gelic_udbg.c:144:15: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct ethhdr [noderef] __iomem *static [toplevel] h_eth @@ got struct ethhdr * @@
>> arch/powerpc/platforms/ps3/gelic_udbg.c:144:15: sparse: expected struct ethhdr [noderef] __iomem *static [toplevel] h_eth
arch/powerpc/platforms/ps3/gelic_udbg.c:144:15: sparse: got struct ethhdr *
>> arch/powerpc/platforms/ps3/gelic_udbg.c:146:28: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected unsigned char [usertype] *addr @@ got unsigned char [noderef] __iomem * @@
arch/powerpc/platforms/ps3/gelic_udbg.c:146:28: sparse: expected unsigned char [usertype] *addr
>> arch/powerpc/platforms/ps3/gelic_udbg.c:146:28: sparse: got unsigned char [noderef] __iomem *
>> arch/powerpc/platforms/ps3/gelic_udbg.c:147:17: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void * @@ got unsigned char [noderef] __iomem ( * )[6] @@
arch/powerpc/platforms/ps3/gelic_udbg.c:147:17: sparse: expected void *
>> arch/powerpc/platforms/ps3/gelic_udbg.c:147:17: sparse: got unsigned char [noderef] __iomem ( * )[6]
>> arch/powerpc/platforms/ps3/gelic_udbg.c:156:31: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __be16 [noderef] [usertype] __iomem h_proto @@ got int @@
>> arch/powerpc/platforms/ps3/gelic_udbg.c:156:31: sparse: expected restricted __be16 [noderef] [usertype] __iomem h_proto
arch/powerpc/platforms/ps3/gelic_udbg.c:156:31: sparse: got int
arch/powerpc/platforms/ps3/gelic_udbg.c:159:27: sparse: sparse: cast removes address space '__iomem' of expression
>> arch/powerpc/platforms/ps3/gelic_udbg.c:159:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct vlan_hdr [noderef] __iomem *static [toplevel] h_vlan @@ got struct vlan_hdr * @@
>> arch/powerpc/platforms/ps3/gelic_udbg.c:159:24: sparse: expected struct vlan_hdr [noderef] __iomem *static [toplevel] h_vlan
arch/powerpc/platforms/ps3/gelic_udbg.c:159:24: sparse: got struct vlan_hdr *
>> arch/powerpc/platforms/ps3/gelic_udbg.c:160:36: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __be16 [noderef] [usertype] __iomem h_vlan_TCI @@ got unsigned long long [addressable] [usertype] vlan_id @@
>> arch/powerpc/platforms/ps3/gelic_udbg.c:160:36: sparse: expected restricted __be16 [noderef] [usertype] __iomem h_vlan_TCI
arch/powerpc/platforms/ps3/gelic_udbg.c:160:36: sparse: got unsigned long long [addressable] [usertype] vlan_id
>> arch/powerpc/platforms/ps3/gelic_udbg.c:161:51: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __be16 [noderef] [usertype] __iomem h_vlan_encapsulated_proto @@ got int @@
>> arch/powerpc/platforms/ps3/gelic_udbg.c:161:51: sparse: expected restricted __be16 [noderef] [usertype] __iomem h_vlan_encapsulated_proto
arch/powerpc/platforms/ps3/gelic_udbg.c:161:51: sparse: got int
arch/powerpc/platforms/ps3/gelic_udbg.c:162:25: sparse: sparse: cast removes address space '__iomem' of expression
>> arch/powerpc/platforms/ps3/gelic_udbg.c:162:22: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct iphdr [noderef] __iomem *static [toplevel] h_ip @@ got struct iphdr * @@
>> arch/powerpc/platforms/ps3/gelic_udbg.c:162:22: sparse: expected struct iphdr [noderef] __iomem *static [toplevel] h_ip
arch/powerpc/platforms/ps3/gelic_udbg.c:162:22: sparse: got struct iphdr *
arch/powerpc/platforms/ps3/gelic_udbg.c:164:31: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __be16 [noderef] [usertype] __iomem h_proto @@ got int @@
arch/powerpc/platforms/ps3/gelic_udbg.c:164:31: sparse: expected restricted __be16 [noderef] [usertype] __iomem h_proto
arch/powerpc/platforms/ps3/gelic_udbg.c:164:31: sparse: got int
arch/powerpc/platforms/ps3/gelic_udbg.c:165:25: sparse: sparse: cast removes address space '__iomem' of expression
arch/powerpc/platforms/ps3/gelic_udbg.c:165:22: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct iphdr [noderef] __iomem *static [toplevel] h_ip @@ got struct iphdr * @@
arch/powerpc/platforms/ps3/gelic_udbg.c:165:22: sparse: expected struct iphdr [noderef] __iomem *static [toplevel] h_ip
arch/powerpc/platforms/ps3/gelic_udbg.c:165:22: sparse: got struct iphdr *
>> arch/powerpc/platforms/ps3/gelic_udbg.c:174:21: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __be32 [noderef] [usertype] __iomem daddr @@ got unsigned int @@
>> arch/powerpc/platforms/ps3/gelic_udbg.c:174:21: sparse: expected restricted __be32 [noderef] [usertype] __iomem daddr
arch/powerpc/platforms/ps3/gelic_udbg.c:174:21: sparse: got unsigned int
arch/powerpc/platforms/ps3/gelic_udbg.c:177:18: sparse: sparse: cast removes address space '__iomem' of expression
>> arch/powerpc/platforms/ps3/gelic_udbg.c:177:15: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct udphdr [noderef] __iomem *static [toplevel] h_udp @@ got struct udphdr * @@
>> arch/powerpc/platforms/ps3/gelic_udbg.c:177:15: sparse: expected struct udphdr [noderef] __iomem *static [toplevel] h_udp
arch/powerpc/platforms/ps3/gelic_udbg.c:177:15: sparse: got struct udphdr *
>> arch/powerpc/platforms/ps3/gelic_udbg.c:178:23: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __be16 [noderef] [usertype] __iomem source @@ got int @@
>> arch/powerpc/platforms/ps3/gelic_udbg.c:178:23: sparse: expected restricted __be16 [noderef] [usertype] __iomem source
arch/powerpc/platforms/ps3/gelic_udbg.c:178:23: sparse: got int
>> arch/powerpc/platforms/ps3/gelic_udbg.c:179:21: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __be16 [noderef] [usertype] __iomem dest @@ got int @@
>> arch/powerpc/platforms/ps3/gelic_udbg.c:179:21: sparse: expected restricted __be16 [noderef] [usertype] __iomem dest
arch/powerpc/platforms/ps3/gelic_udbg.c:179:21: sparse: got int
arch/powerpc/platforms/ps3/gelic_udbg.c:181:25: sparse: sparse: cast removes address space '__iomem' of expression
>> arch/powerpc/platforms/ps3/gelic_udbg.c:181:22: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected char [noderef] __iomem *static [toplevel] pmsg @@ got char * @@
>> arch/powerpc/platforms/ps3/gelic_udbg.c:181:22: sparse: expected char [noderef] __iomem *static [toplevel] pmsg
arch/powerpc/platforms/ps3/gelic_udbg.c:181:22: sparse: got char *
>> arch/powerpc/platforms/ps3/gelic_udbg.c:198:28: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __be32 static [addressable] [noderef] [toplevel] [usertype] __iomem buf_size @@ got int @@
>> arch/powerpc/platforms/ps3/gelic_udbg.c:198:28: sparse: expected restricted __be32 static [addressable] [noderef] [toplevel] [usertype] __iomem buf_size
arch/powerpc/platforms/ps3/gelic_udbg.c:198:28: sparse: got int
>> arch/powerpc/platforms/ps3/gelic_udbg.c:199:23: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __be16 [noderef] [usertype] __iomem tot_len @@ got unsigned long @@
>> arch/powerpc/platforms/ps3/gelic_udbg.c:199:23: sparse: expected restricted __be16 [noderef] [usertype] __iomem tot_len
arch/powerpc/platforms/ps3/gelic_udbg.c:199:23: sparse: got unsigned long
>> arch/powerpc/platforms/ps3/gelic_udbg.c:201:20: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __be16 [noderef] [usertype] __iomem len @@ got unsigned long @@
>> arch/powerpc/platforms/ps3/gelic_udbg.c:201:20: sparse: expected restricted __be16 [noderef] [usertype] __iomem len
arch/powerpc/platforms/ps3/gelic_udbg.c:201:20: sparse: got unsigned long
arch/powerpc/platforms/ps3/gelic_udbg.c:205:14: sparse: sparse: cast removes address space '__iomem' of expression
>> arch/powerpc/platforms/ps3/gelic_udbg.c:208:21: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __sum16 [noderef] [usertype] __iomem check @@ got unsigned int @@
>> arch/powerpc/platforms/ps3/gelic_udbg.c:208:21: sparse: expected restricted __sum16 [noderef] [usertype] __iomem check
arch/powerpc/platforms/ps3/gelic_udbg.c:208:21: sparse: got unsigned int
>> arch/powerpc/platforms/ps3/gelic_udbg.c:210:35: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __be32 static [addressable] [noderef] [toplevel] [usertype] __iomem dmac_cmd_status @@ got unsigned int @@
>> arch/powerpc/platforms/ps3/gelic_udbg.c:210:35: sparse: expected restricted __be32 static [addressable] [noderef] [toplevel] [usertype] __iomem dmac_cmd_status
arch/powerpc/platforms/ps3/gelic_udbg.c:210:35: sparse: got unsigned int
arch/powerpc/platforms/ps3/gelic_udbg.c:219:26: sparse: sparse: restricted __be32 degrades to integer
arch/powerpc/platforms/ps3/gelic_udbg.c:169:9: sparse: sparse: dereference of noderef expression
arch/powerpc/platforms/ps3/gelic_udbg.c:170:9: sparse: sparse: dereference of noderef expression
arch/powerpc/platforms/ps3/gelic_udbg.c:171:9: sparse: sparse: dereference of noderef expression
arch/powerpc/platforms/ps3/gelic_udbg.c:172:9: sparse: sparse: dereference of noderef expression
arch/powerpc/platforms/ps3/gelic_udbg.c:173:9: sparse: sparse: dereference of noderef expression
arch/powerpc/platforms/ps3/gelic_udbg.c:203:9: sparse: sparse: dereference of noderef expression
arch/powerpc/platforms/ps3/gelic_udbg.c:212:9: sparse: sparse: dereference of noderef expression
arch/powerpc/platforms/ps3/gelic_udbg.c:213:9: sparse: sparse: dereference of noderef expression
arch/powerpc/platforms/ps3/gelic_udbg.c:219:17: sparse: sparse: dereference of noderef expression
arch/powerpc/platforms/ps3/gelic_udbg.c:226:15: sparse: sparse: dereference of noderef expression
vim +294 drivers/misc/cxl/flash.c
594ff7d067ca42 Christophe Lombard 2016-03-04 226
594ff7d067ca42 Christophe Lombard 2016-03-04 227 static int handle_image(struct cxl *adapter, int operation,
594ff7d067ca42 Christophe Lombard 2016-03-04 228 long (*fct)(u64, u64, u64, u64 *),
594ff7d067ca42 Christophe Lombard 2016-03-04 229 struct cxl_adapter_image *ai)
594ff7d067ca42 Christophe Lombard 2016-03-04 230 {
594ff7d067ca42 Christophe Lombard 2016-03-04 231 size_t mod, s_copy, len_chunk = 0;
594ff7d067ca42 Christophe Lombard 2016-03-04 232 struct ai_header *header = NULL;
594ff7d067ca42 Christophe Lombard 2016-03-04 233 unsigned int entries = 0, i;
594ff7d067ca42 Christophe Lombard 2016-03-04 234 void *dest, *from;
594ff7d067ca42 Christophe Lombard 2016-03-04 235 int rc = 0, need_header;
594ff7d067ca42 Christophe Lombard 2016-03-04 236
594ff7d067ca42 Christophe Lombard 2016-03-04 237 /* base adapter image header */
594ff7d067ca42 Christophe Lombard 2016-03-04 238 need_header = (ai->flags & CXL_AI_NEED_HEADER);
594ff7d067ca42 Christophe Lombard 2016-03-04 239 if (need_header) {
594ff7d067ca42 Christophe Lombard 2016-03-04 240 header = kzalloc(sizeof(struct ai_header), GFP_KERNEL);
594ff7d067ca42 Christophe Lombard 2016-03-04 241 if (!header)
594ff7d067ca42 Christophe Lombard 2016-03-04 242 return -ENOMEM;
594ff7d067ca42 Christophe Lombard 2016-03-04 243 header->version = cpu_to_be16(1);
594ff7d067ca42 Christophe Lombard 2016-03-04 244 header->vendor = cpu_to_be16(adapter->guest->vendor);
594ff7d067ca42 Christophe Lombard 2016-03-04 245 header->device = cpu_to_be16(adapter->guest->device);
594ff7d067ca42 Christophe Lombard 2016-03-04 246 header->subsystem_vendor = cpu_to_be16(adapter->guest->subsystem_vendor);
594ff7d067ca42 Christophe Lombard 2016-03-04 @247 header->subsystem = cpu_to_be16(adapter->guest->subsystem);
594ff7d067ca42 Christophe Lombard 2016-03-04 248 header->image_offset = cpu_to_be64(CXL_AI_HEADER_SIZE);
594ff7d067ca42 Christophe Lombard 2016-03-04 249 header->image_length = cpu_to_be64(ai->len_image);
594ff7d067ca42 Christophe Lombard 2016-03-04 250 }
594ff7d067ca42 Christophe Lombard 2016-03-04 251
594ff7d067ca42 Christophe Lombard 2016-03-04 252 /* number of entries in the list */
594ff7d067ca42 Christophe Lombard 2016-03-04 253 len_chunk = ai->len_data;
594ff7d067ca42 Christophe Lombard 2016-03-04 254 if (need_header)
594ff7d067ca42 Christophe Lombard 2016-03-04 255 len_chunk += CXL_AI_HEADER_SIZE;
594ff7d067ca42 Christophe Lombard 2016-03-04 256
594ff7d067ca42 Christophe Lombard 2016-03-04 257 entries = len_chunk / CXL_AI_BUFFER_SIZE;
594ff7d067ca42 Christophe Lombard 2016-03-04 258 mod = len_chunk % CXL_AI_BUFFER_SIZE;
594ff7d067ca42 Christophe Lombard 2016-03-04 259 if (mod)
594ff7d067ca42 Christophe Lombard 2016-03-04 260 entries++;
594ff7d067ca42 Christophe Lombard 2016-03-04 261
594ff7d067ca42 Christophe Lombard 2016-03-04 262 if (entries > CXL_AI_MAX_ENTRIES) {
594ff7d067ca42 Christophe Lombard 2016-03-04 263 rc = -EINVAL;
594ff7d067ca42 Christophe Lombard 2016-03-04 264 goto err;
594ff7d067ca42 Christophe Lombard 2016-03-04 265 }
594ff7d067ca42 Christophe Lombard 2016-03-04 266
594ff7d067ca42 Christophe Lombard 2016-03-04 267 /* < -- MAX_CHUNK_SIZE = 4096 * 256 = 1048576 bytes -->
594ff7d067ca42 Christophe Lombard 2016-03-04 268 * chunk 0 ----------------------------------------------------
594ff7d067ca42 Christophe Lombard 2016-03-04 269 * | header | data |
594ff7d067ca42 Christophe Lombard 2016-03-04 270 * ----------------------------------------------------
594ff7d067ca42 Christophe Lombard 2016-03-04 271 * chunk 1 ----------------------------------------------------
594ff7d067ca42 Christophe Lombard 2016-03-04 272 * | data |
594ff7d067ca42 Christophe Lombard 2016-03-04 273 * ----------------------------------------------------
594ff7d067ca42 Christophe Lombard 2016-03-04 274 * ....
594ff7d067ca42 Christophe Lombard 2016-03-04 275 * chunk n ----------------------------------------------------
594ff7d067ca42 Christophe Lombard 2016-03-04 276 * | data |
594ff7d067ca42 Christophe Lombard 2016-03-04 277 * ----------------------------------------------------
594ff7d067ca42 Christophe Lombard 2016-03-04 278 */
594ff7d067ca42 Christophe Lombard 2016-03-04 279 from = (void *) ai->data;
594ff7d067ca42 Christophe Lombard 2016-03-04 280 for (i = 0; i < entries; i++) {
594ff7d067ca42 Christophe Lombard 2016-03-04 281 dest = buffer[i];
594ff7d067ca42 Christophe Lombard 2016-03-04 282 s_copy = CXL_AI_BUFFER_SIZE;
594ff7d067ca42 Christophe Lombard 2016-03-04 283
594ff7d067ca42 Christophe Lombard 2016-03-04 284 if ((need_header) && (i == 0)) {
594ff7d067ca42 Christophe Lombard 2016-03-04 285 /* add adapter image header */
594ff7d067ca42 Christophe Lombard 2016-03-04 286 memcpy(buffer[i], header, sizeof(struct ai_header));
594ff7d067ca42 Christophe Lombard 2016-03-04 287 s_copy = CXL_AI_BUFFER_SIZE - CXL_AI_HEADER_SIZE;
594ff7d067ca42 Christophe Lombard 2016-03-04 288 dest += CXL_AI_HEADER_SIZE; /* image offset */
594ff7d067ca42 Christophe Lombard 2016-03-04 289 }
594ff7d067ca42 Christophe Lombard 2016-03-04 290 if ((i == (entries - 1)) && mod)
594ff7d067ca42 Christophe Lombard 2016-03-04 291 s_copy = mod;
594ff7d067ca42 Christophe Lombard 2016-03-04 292
594ff7d067ca42 Christophe Lombard 2016-03-04 293 /* copy data */
594ff7d067ca42 Christophe Lombard 2016-03-04 @294 if (copy_from_user(dest, from, s_copy))
594ff7d067ca42 Christophe Lombard 2016-03-04 295 goto err;
594ff7d067ca42 Christophe Lombard 2016-03-04 296
594ff7d067ca42 Christophe Lombard 2016-03-04 297 /* fill in the list */
594ff7d067ca42 Christophe Lombard 2016-03-04 298 le[i].phys_addr = cpu_to_be64(virt_to_phys(buffer[i]));
594ff7d067ca42 Christophe Lombard 2016-03-04 299 le[i].len = cpu_to_be64(CXL_AI_BUFFER_SIZE);
594ff7d067ca42 Christophe Lombard 2016-03-04 300 if ((i == (entries - 1)) && mod)
594ff7d067ca42 Christophe Lombard 2016-03-04 301 le[i].len = cpu_to_be64(mod);
594ff7d067ca42 Christophe Lombard 2016-03-04 302 from += s_copy;
594ff7d067ca42 Christophe Lombard 2016-03-04 303 }
594ff7d067ca42 Christophe Lombard 2016-03-04 304 pr_devel("%s (op: %i, need header: %i, entries: %i, token: %#llx)\n",
594ff7d067ca42 Christophe Lombard 2016-03-04 305 __func__, operation, need_header, entries, continue_token);
594ff7d067ca42 Christophe Lombard 2016-03-04 306
594ff7d067ca42 Christophe Lombard 2016-03-04 307 /*
594ff7d067ca42 Christophe Lombard 2016-03-04 308 * download/validate the adapter image to the coherent
594ff7d067ca42 Christophe Lombard 2016-03-04 309 * platform facility
594ff7d067ca42 Christophe Lombard 2016-03-04 310 */
594ff7d067ca42 Christophe Lombard 2016-03-04 311 rc = fct(adapter->guest->handle, virt_to_phys(le), entries,
594ff7d067ca42 Christophe Lombard 2016-03-04 312 &continue_token);
594ff7d067ca42 Christophe Lombard 2016-03-04 313 if (rc == 0) /* success of download/validation operation */
594ff7d067ca42 Christophe Lombard 2016-03-04 314 continue_token = 0;
594ff7d067ca42 Christophe Lombard 2016-03-04 315
594ff7d067ca42 Christophe Lombard 2016-03-04 316 err:
594ff7d067ca42 Christophe Lombard 2016-03-04 317 kfree(header);
594ff7d067ca42 Christophe Lombard 2016-03-04 318
594ff7d067ca42 Christophe Lombard 2016-03-04 319 return rc;
594ff7d067ca42 Christophe Lombard 2016-03-04 320 }
594ff7d067ca42 Christophe Lombard 2016-03-04 321
:::::: The code at line 294 was first introduced by commit
:::::: 594ff7d067ca42676e27e2a7b5dcc0ff039d08ca cxl: Support to flash a new image on the adapter from a guest
:::::: TO: Christophe Lombard <clombard(a)linux.vnet.ibm.com>
:::::: CC: Michael Ellerman <mpe(a)ellerman.id.au>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 2 months
[hch-block:bdi-cleanup 10/15] fs/quota/../internal.h:40:1: error: expected identifier or '(' before '{' token
by kernel test robot
tree: git://git.infradead.org/users/hch/block.git bdi-cleanup
head: d4166729c5bb8f318ebea72507522b5ff1ce1b5f
commit: 174a8905dd7685265ecf01eb3c3a92dbe9b65e5d [10/15] block: move the block device syncing code from fs/sync.c to block_dev.c
config: x86_64-randconfig-c002-20200717 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-14) 9.3.0
reproduce (this is a W=1 build):
git checkout 174a8905dd7685265ecf01eb3c3a92dbe9b65e5d
# save the attached .config to linux build tree
make W=1 ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
In file included from fs/quota/dquot.c:82:
>> fs/quota/../internal.h:40:1: error: expected identifier or '(' before '{' token
40 | {
| ^
fs/quota/../internal.h:39:20: warning: 'fdatawrite_bdevs' declared 'static' but never defined [-Wunused-function]
39 | static inline void fdatawrite_bdevs(void);
| ^~~~~~~~~~~~~~~~
vim +40 fs/quota/../internal.h
34
35 static inline int __sync_blockdev(struct block_device *bdev, int wait)
36 {
37 return 0;
38 }
39 static inline void fdatawrite_bdevs(void);
> 40 {
41 }
42 static inline void sync_bdevs(void)
43 {
44 }
45 static inline int emergency_thaw_bdev(struct super_block *sb)
46 {
47 return 0;
48 }
49 static inline void bd_forget(struct inode *inode)
50 {
51 }
52 #endif /* CONFIG_BLOCK */
53
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 2 months
[lkp] [+861 bytes kernel size regression] [i386-tinyconfig] [aa63af1b08] fs: add mount_setattr()
by kernel test robot
FYI, we noticed a +861 bytes kernel size regression due to commit:
commit: aa63af1b08246bd31b77d056bf1d47f775cecbe2 (fs: add mount_setattr())
https://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux.git mount_setattr
Details as below (size data is obtained by `nm --size-sort vmlinux`):
9573a242: namespace: only take read lock in do_reconfigure_mnt()
aa63af1b: fs: add mount_setattr()
+-------------------------------+----------+----------+-------+
| symbol | 9573a242 | aa63af1b | delta |
+-------------------------------+----------+----------+-------+
| nm.T.__ia32_sys_mount_setattr | 0 | 831 | 831 |
| bzImage | 442464 | 442816 | 352 |
| nm.t.build_attr_flags | 0 | 58 | 58 |
| nm.R.sys_call_table | 1760 | 1764 | 4 |
| nm.R.linux_banner | 151 | 152 | 1 |
| nm.T.__ia32_sys_fsmount | 531 | 498 | -33 |
+-------------------------------+----------+----------+-------+
Thanks
2 years, 2 months
[drm-drm-misc:for-linux-next 10/12] drivers/gpu/drm/ingenic/ingenic-drm-drv.c:239:28: warning: variable 'ipu_state' is uninitialized when used here
by kernel test robot
tree: git://anongit.freedesktop.org/drm/drm-misc for-linux-next
head: a786e8cab152da7ec8b9859da6e77cb59c7fa789
commit: fc1acf317b01083d47228c0d21cfc0764f37a04e [10/12] drm/ingenic: Add support for the IPU
config: s390-randconfig-r014-20200717 (attached as .config)
compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project ed6b578040a85977026c93bf4188f996148f3218)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install s390 cross compiling tool for clang build
# apt-get install binutils-s390x-linux-gnu
git checkout fc1acf317b01083d47228c0d21cfc0764f37a04e
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=s390
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
#define __le32_to_cpu(x) __swab32((__force __u32)(__le32)(x))
^
include/uapi/linux/swab.h:119:21: note: expanded from macro '__swab32'
___constant_swab32(x) : \
^
include/uapi/linux/swab.h:19:12: note: expanded from macro '___constant_swab32'
(((__u32)(x) & (__u32)0x000000ffUL) << 24) | \
^
In file included from drivers/gpu/drm/ingenic/ingenic-drm-drv.c:11:
In file included from include/linux/dma-mapping.h:11:
In file included from include/linux/scatterlist.h:9:
In file included from arch/s390/include/asm/io.h:72:
include/asm-generic/io.h:490:45: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
val = __le32_to_cpu(__raw_readl(PCI_IOBASE + addr));
~~~~~~~~~~ ^
include/uapi/linux/byteorder/big_endian.h:34:59: note: expanded from macro '__le32_to_cpu'
#define __le32_to_cpu(x) __swab32((__force __u32)(__le32)(x))
^
include/uapi/linux/swab.h:119:21: note: expanded from macro '__swab32'
___constant_swab32(x) : \
^
include/uapi/linux/swab.h:20:12: note: expanded from macro '___constant_swab32'
(((__u32)(x) & (__u32)0x0000ff00UL) << 8) | \
^
In file included from drivers/gpu/drm/ingenic/ingenic-drm-drv.c:11:
In file included from include/linux/dma-mapping.h:11:
In file included from include/linux/scatterlist.h:9:
In file included from arch/s390/include/asm/io.h:72:
include/asm-generic/io.h:490:45: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
val = __le32_to_cpu(__raw_readl(PCI_IOBASE + addr));
~~~~~~~~~~ ^
include/uapi/linux/byteorder/big_endian.h:34:59: note: expanded from macro '__le32_to_cpu'
#define __le32_to_cpu(x) __swab32((__force __u32)(__le32)(x))
^
include/uapi/linux/swab.h:119:21: note: expanded from macro '__swab32'
___constant_swab32(x) : \
^
include/uapi/linux/swab.h:21:12: note: expanded from macro '___constant_swab32'
(((__u32)(x) & (__u32)0x00ff0000UL) >> 8) | \
^
In file included from drivers/gpu/drm/ingenic/ingenic-drm-drv.c:11:
In file included from include/linux/dma-mapping.h:11:
In file included from include/linux/scatterlist.h:9:
In file included from arch/s390/include/asm/io.h:72:
include/asm-generic/io.h:490:45: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
val = __le32_to_cpu(__raw_readl(PCI_IOBASE + addr));
~~~~~~~~~~ ^
include/uapi/linux/byteorder/big_endian.h:34:59: note: expanded from macro '__le32_to_cpu'
#define __le32_to_cpu(x) __swab32((__force __u32)(__le32)(x))
^
include/uapi/linux/swab.h:119:21: note: expanded from macro '__swab32'
___constant_swab32(x) : \
^
include/uapi/linux/swab.h:22:12: note: expanded from macro '___constant_swab32'
(((__u32)(x) & (__u32)0xff000000UL) >> 24)))
^
In file included from drivers/gpu/drm/ingenic/ingenic-drm-drv.c:11:
In file included from include/linux/dma-mapping.h:11:
In file included from include/linux/scatterlist.h:9:
In file included from arch/s390/include/asm/io.h:72:
include/asm-generic/io.h:490:45: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
val = __le32_to_cpu(__raw_readl(PCI_IOBASE + addr));
~~~~~~~~~~ ^
include/uapi/linux/byteorder/big_endian.h:34:59: note: expanded from macro '__le32_to_cpu'
#define __le32_to_cpu(x) __swab32((__force __u32)(__le32)(x))
^
include/uapi/linux/swab.h:120:12: note: expanded from macro '__swab32'
__fswab32(x))
^
In file included from drivers/gpu/drm/ingenic/ingenic-drm-drv.c:11:
In file included from include/linux/dma-mapping.h:11:
In file included from include/linux/scatterlist.h:9:
In file included from arch/s390/include/asm/io.h:72:
include/asm-generic/io.h:501:33: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
__raw_writeb(value, PCI_IOBASE + addr);
~~~~~~~~~~ ^
include/asm-generic/io.h:511:46: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
__raw_writew(cpu_to_le16(value), PCI_IOBASE + addr);
~~~~~~~~~~ ^
include/asm-generic/io.h:521:46: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
__raw_writel(cpu_to_le32(value), PCI_IOBASE + addr);
~~~~~~~~~~ ^
include/asm-generic/io.h:609:20: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
readsb(PCI_IOBASE + addr, buffer, count);
~~~~~~~~~~ ^
include/asm-generic/io.h:617:20: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
readsw(PCI_IOBASE + addr, buffer, count);
~~~~~~~~~~ ^
include/asm-generic/io.h:625:20: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
readsl(PCI_IOBASE + addr, buffer, count);
~~~~~~~~~~ ^
include/asm-generic/io.h:634:21: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
writesb(PCI_IOBASE + addr, buffer, count);
~~~~~~~~~~ ^
include/asm-generic/io.h:643:21: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
writesw(PCI_IOBASE + addr, buffer, count);
~~~~~~~~~~ ^
include/asm-generic/io.h:652:21: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
writesl(PCI_IOBASE + addr, buffer, count);
~~~~~~~~~~ ^
>> drivers/gpu/drm/ingenic/ingenic-drm-drv.c:239:28: warning: variable 'ipu_state' is uninitialized when used here [-Wuninitialized]
!(priv->ipu_plane && ipu_state->fb);
^~~~~~~~~
drivers/gpu/drm/ingenic/ingenic-drm-drv.c:208:57: note: initialize the variable 'ipu_state' to silence this warning
struct drm_plane_state *f1_state, *f0_state, *ipu_state;
^
= NULL
21 warnings generated.
vim +/ipu_state +239 drivers/gpu/drm/ingenic/ingenic-drm-drv.c
203
204 static int ingenic_drm_crtc_atomic_check(struct drm_crtc *crtc,
205 struct drm_crtc_state *state)
206 {
207 struct ingenic_drm *priv = drm_crtc_get_priv(crtc);
208 struct drm_plane_state *f1_state, *f0_state, *ipu_state;
209 long rate;
210
211 if (!drm_atomic_crtc_needs_modeset(state))
212 return 0;
213
214 if (state->mode.hdisplay > priv->soc_info->max_width ||
215 state->mode.vdisplay > priv->soc_info->max_height)
216 return -EINVAL;
217
218 rate = clk_round_rate(priv->pix_clk,
219 state->adjusted_mode.clock * 1000);
220 if (rate < 0)
221 return rate;
222
223 if (priv->soc_info->has_osd) {
224 f1_state = drm_atomic_get_plane_state(state->state, &priv->f1);
225 f0_state = drm_atomic_get_plane_state(state->state, &priv->f0);
226
227 if (IS_ENABLED(CONFIG_DRM_INGENIC_IPU) && priv->ipu_plane) {
228 ipu_state = drm_atomic_get_plane_state(state->state, priv->ipu_plane);
229
230 /* IPU and F1 planes cannot be enabled at the same time. */
231 if (f1_state->fb && ipu_state->fb) {
232 dev_dbg(priv->dev, "Cannot enable both F1 and IPU\n");
233 return -EINVAL;
234 }
235 }
236
237 /* If all the planes are disabled, we won't get a VBLANK IRQ */
238 priv->no_vblank = !f1_state->fb && !f0_state->fb &&
> 239 !(priv->ipu_plane && ipu_state->fb);
240 }
241
242 return 0;
243 }
244
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 2 months
Re: [PATCH v2 4/6] cx88: use generic power management
by Hans Verkuil
On 17/07/2020 12:31, Vaibhav Gupta wrote:
> On Fri, Jul 17, 2020 at 12:54:40PM +0530, Vaibhav Gupta wrote:
>> On Fri, Jul 17, 2020 at 03:14:28PM +0800, kernel test robot wrote:
>>> Hi Vaibhav,
>>>
>>> Thank you for the patch! Yet something to improve:
>>>
>>> [auto build test ERROR on linuxtv-media/master]
>>> [also build test ERROR on pci/next v5.8-rc5 next-20200716]
>>> [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/Vaibhav-Gupta/pci-use-generic-po...
>>> base: git://linuxtv.org/media_tree.git master
>>> config: s390-allmodconfig (attached as .config)
>>> compiler: s390-linux-gcc (GCC) 9.3.0
>>> reproduce (this is a W=1 build):
>>> wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
>>> chmod +x ~/bin/make.cross
>>> # save the attached .config to linux build tree
>>> COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=s390
>>>
>>> If you fix the issue, kindly add following tag as appropriate
>>> Reported-by: kernel test robot <lkp(a)intel.com>
>>>
>>> All errors (new ones prefixed by >>):
>>>
>>> drivers/media/pci/cx88/cx88-video.c: In function 'cx8800_suspend':
>>>>> drivers/media/pci/cx88/cx88-video.c:1564:3: error: implicit declaration of function 'stop_video_dma'; did you mean 'start_video_dma'? [-Werror=implicit-function-declaration]
>>> 1564 | stop_video_dma(dev);
>>> | ^~~~~~~~~~~~~~
>>> | start_video_dma
>>> drivers/media/pci/cx88/cx88-video.c: In function 'cx8800_resume':
>>>>> drivers/media/pci/cx88/cx88-video.c:1600:3: error: implicit declaration of function 'restart_video_queue'; did you mean 'start_video_dma'? [-Werror=implicit-function-declaration]
>>> 1600 | restart_video_queue(dev, &dev->vidq);
>>> | ^~~~~~~~~~~~~~~~~~~
>>> | start_video_dma
>>> cc1: some warnings being treated as errors
>>>
>>> vim +1564 drivers/media/pci/cx88/cx88-video.c
>>>
>>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1553
>>> 3bdbfebc5677cf drivers/media/pci/cx88/cx88-video.c Vaibhav Gupta 2020-07-17 1554 static int __maybe_unused cx8800_suspend(struct device *dev_d)
>>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1555 {
>>> 3bdbfebc5677cf drivers/media/pci/cx88/cx88-video.c Vaibhav Gupta 2020-07-17 1556 struct cx8800_dev *dev = dev_get_drvdata(dev_d);
>>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1557 struct cx88_core *core = dev->core;
>>> 5ddfbbb9ca2e74 drivers/media/pci/cx88/cx88-video.c Alexey Khoroshilov 2013-04-13 1558 unsigned long flags;
>>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1559
>>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1560 /* stop video+vbi capture */
>>> 5ddfbbb9ca2e74 drivers/media/pci/cx88/cx88-video.c Alexey Khoroshilov 2013-04-13 1561 spin_lock_irqsave(&dev->slock, flags);
>>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1562 if (!list_empty(&dev->vidq.active)) {
>>> 65bc2fe86e6670 drivers/media/pci/cx88/cx88-video.c Mauro Carvalho Chehab 2016-11-13 1563 pr_info("suspend video\n");
>>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 @1564 stop_video_dma(dev);
>>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1565 }
>>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1566 if (!list_empty(&dev->vbiq.active)) {
>>> 65bc2fe86e6670 drivers/media/pci/cx88/cx88-video.c Mauro Carvalho Chehab 2016-11-13 1567 pr_info("suspend vbi\n");
>>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1568 cx8800_stop_vbi_dma(dev);
>>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1569 }
>>> 5ddfbbb9ca2e74 drivers/media/pci/cx88/cx88-video.c Alexey Khoroshilov 2013-04-13 1570 spin_unlock_irqrestore(&dev->slock, flags);
>>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1571
>>> 13595a51c0da8e drivers/media/video/cx88/cx88-video.c Mauro Carvalho Chehab 2007-10-01 1572 if (core->ir)
>>> 92f4fc10d7ba01 drivers/media/video/cx88/cx88-video.c Mauro Carvalho Chehab 2010-03-31 1573 cx88_ir_stop(core);
>>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1574 /* FIXME -- shutdown device */
>>> e52e98a7eccfb0 drivers/media/video/cx88/cx88-video.c Mauro Carvalho Chehab 2005-09-09 1575 cx88_shutdown(core);
>>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1576
>>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1577 dev->state.disabled = 1;
>>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1578 return 0;
>>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1579 }
>>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1580
>>> 3bdbfebc5677cf drivers/media/pci/cx88/cx88-video.c Vaibhav Gupta 2020-07-17 1581 static int __maybe_unused cx8800_resume(struct device *dev_d)
>>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1582 {
>>> 3bdbfebc5677cf drivers/media/pci/cx88/cx88-video.c Vaibhav Gupta 2020-07-17 1583 struct cx8800_dev *dev = dev_get_drvdata(dev_d);
>>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1584 struct cx88_core *core = dev->core;
>>> 5ddfbbb9ca2e74 drivers/media/pci/cx88/cx88-video.c Alexey Khoroshilov 2013-04-13 1585 unsigned long flags;
>>> 08adb9e20be83b drivers/media/video/cx88/cx88-video.c Mauro Carvalho Chehab 2005-09-09 1586
>>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1587 dev->state.disabled = 0;
>>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1588
>>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1589 /* FIXME: re-initialize hardware */
>>> e52e98a7eccfb0 drivers/media/video/cx88/cx88-video.c Mauro Carvalho Chehab 2005-09-09 1590 cx88_reset(core);
>>> 13595a51c0da8e drivers/media/video/cx88/cx88-video.c Mauro Carvalho Chehab 2007-10-01 1591 if (core->ir)
>>> 92f4fc10d7ba01 drivers/media/video/cx88/cx88-video.c Mauro Carvalho Chehab 2010-03-31 1592 cx88_ir_start(core);
>>> 13595a51c0da8e drivers/media/video/cx88/cx88-video.c Mauro Carvalho Chehab 2007-10-01 1593
>>> 13595a51c0da8e drivers/media/video/cx88/cx88-video.c Mauro Carvalho Chehab 2007-10-01 1594 cx_set(MO_PCI_INTMSK, core->pci_irqmask);
>>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1595
>>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1596 /* restart video+vbi capture */
>>> 5ddfbbb9ca2e74 drivers/media/pci/cx88/cx88-video.c Alexey Khoroshilov 2013-04-13 1597 spin_lock_irqsave(&dev->slock, flags);
>>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1598 if (!list_empty(&dev->vidq.active)) {
>>> 65bc2fe86e6670 drivers/media/pci/cx88/cx88-video.c Mauro Carvalho Chehab 2016-11-13 1599 pr_info("resume video\n");
>>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 @1600 restart_video_queue(dev, &dev->vidq);
>>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1601 }
>>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1602 if (!list_empty(&dev->vbiq.active)) {
>>> 65bc2fe86e6670 drivers/media/pci/cx88/cx88-video.c Mauro Carvalho Chehab 2016-11-13 1603 pr_info("resume vbi\n");
>>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1604 cx8800_restart_vbi_queue(dev, &dev->vbiq);
>>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1605 }
>>> 5ddfbbb9ca2e74 drivers/media/pci/cx88/cx88-video.c Alexey Khoroshilov 2013-04-13 1606 spin_unlock_irqrestore(&dev->slock, flags);
>>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1607
>>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1608 return 0;
>>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1609 }
>>> ^1da177e4c3f41 drivers/media/video/cx88/cx88-video.c Linus Torvalds 2005-04-16 1610
>>>
>>> ---
>>> 0-DAY CI Kernel Test Service, Intel Corporation
>>> https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
>>
>> Got it. Thanks!
>> Fixed in v3.
>>
>> --Vaibhav Gupta
>
> I fixed the error reported, in this v2 patch-series, by Kbuild and floated v3
> in the mailing list.
> But then I got notification from "[linux-media] Patchwork". It has applied my
> v2 patch series. Please use v3.
The message you got should say that is was superseded, not accepted.
I only marked v2 as Superseded, it wasn't applied.
Regards,
Hans
>
> --Vaibhav Gupta
>
2 years, 2 months
Re: [PATCH 1/2] irqchip: imx-intmux: add system PM support
by kernel test robot
Hi Joakim,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on tip/irq/core]
[also build test ERROR on linux/master linus/master v5.8-rc5 next-20200716]
[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/Joakim-Zhang/irqchip-imx-intmux-...
base: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git 8fa88a88d573093868565a1afba43b5ae5b3a316
config: s390-randconfig-r014-20200717 (attached as .config)
compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project ed6b578040a85977026c93bf4188f996148f3218)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install s390 cross compiling tool for clang build
# apt-get install binutils-s390x-linux-gnu
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=s390
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
#define __le32_to_cpu(x) __swab32((__force __u32)(__le32)(x))
^
include/uapi/linux/swab.h:119:21: note: expanded from macro '__swab32'
___constant_swab32(x) : \
^
include/uapi/linux/swab.h:19:12: note: expanded from macro '___constant_swab32'
(((__u32)(x) & (__u32)0x000000ffUL) << 24) | \
^
In file included from drivers/irqchip/irq-imx-intmux.c:49:
In file included from include/linux/irq.h:20:
In file included from include/linux/io.h:13:
In file included from arch/s390/include/asm/io.h:72:
include/asm-generic/io.h:490:45: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
val = __le32_to_cpu(__raw_readl(PCI_IOBASE + addr));
~~~~~~~~~~ ^
include/uapi/linux/byteorder/big_endian.h:34:59: note: expanded from macro '__le32_to_cpu'
#define __le32_to_cpu(x) __swab32((__force __u32)(__le32)(x))
^
include/uapi/linux/swab.h:119:21: note: expanded from macro '__swab32'
___constant_swab32(x) : \
^
include/uapi/linux/swab.h:20:12: note: expanded from macro '___constant_swab32'
(((__u32)(x) & (__u32)0x0000ff00UL) << 8) | \
^
In file included from drivers/irqchip/irq-imx-intmux.c:49:
In file included from include/linux/irq.h:20:
In file included from include/linux/io.h:13:
In file included from arch/s390/include/asm/io.h:72:
include/asm-generic/io.h:490:45: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
val = __le32_to_cpu(__raw_readl(PCI_IOBASE + addr));
~~~~~~~~~~ ^
include/uapi/linux/byteorder/big_endian.h:34:59: note: expanded from macro '__le32_to_cpu'
#define __le32_to_cpu(x) __swab32((__force __u32)(__le32)(x))
^
include/uapi/linux/swab.h:119:21: note: expanded from macro '__swab32'
___constant_swab32(x) : \
^
include/uapi/linux/swab.h:21:12: note: expanded from macro '___constant_swab32'
(((__u32)(x) & (__u32)0x00ff0000UL) >> 8) | \
^
In file included from drivers/irqchip/irq-imx-intmux.c:49:
In file included from include/linux/irq.h:20:
In file included from include/linux/io.h:13:
In file included from arch/s390/include/asm/io.h:72:
include/asm-generic/io.h:490:45: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
val = __le32_to_cpu(__raw_readl(PCI_IOBASE + addr));
~~~~~~~~~~ ^
include/uapi/linux/byteorder/big_endian.h:34:59: note: expanded from macro '__le32_to_cpu'
#define __le32_to_cpu(x) __swab32((__force __u32)(__le32)(x))
^
include/uapi/linux/swab.h:119:21: note: expanded from macro '__swab32'
___constant_swab32(x) : \
^
include/uapi/linux/swab.h:22:12: note: expanded from macro '___constant_swab32'
(((__u32)(x) & (__u32)0xff000000UL) >> 24)))
^
In file included from drivers/irqchip/irq-imx-intmux.c:49:
In file included from include/linux/irq.h:20:
In file included from include/linux/io.h:13:
In file included from arch/s390/include/asm/io.h:72:
include/asm-generic/io.h:490:45: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
val = __le32_to_cpu(__raw_readl(PCI_IOBASE + addr));
~~~~~~~~~~ ^
include/uapi/linux/byteorder/big_endian.h:34:59: note: expanded from macro '__le32_to_cpu'
#define __le32_to_cpu(x) __swab32((__force __u32)(__le32)(x))
^
include/uapi/linux/swab.h:120:12: note: expanded from macro '__swab32'
__fswab32(x))
^
In file included from drivers/irqchip/irq-imx-intmux.c:49:
In file included from include/linux/irq.h:20:
In file included from include/linux/io.h:13:
In file included from arch/s390/include/asm/io.h:72:
include/asm-generic/io.h:501:33: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
__raw_writeb(value, PCI_IOBASE + addr);
~~~~~~~~~~ ^
include/asm-generic/io.h:511:46: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
__raw_writew(cpu_to_le16(value), PCI_IOBASE + addr);
~~~~~~~~~~ ^
include/asm-generic/io.h:521:46: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
__raw_writel(cpu_to_le32(value), PCI_IOBASE + addr);
~~~~~~~~~~ ^
include/asm-generic/io.h:609:20: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
readsb(PCI_IOBASE + addr, buffer, count);
~~~~~~~~~~ ^
include/asm-generic/io.h:617:20: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
readsw(PCI_IOBASE + addr, buffer, count);
~~~~~~~~~~ ^
include/asm-generic/io.h:625:20: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
readsl(PCI_IOBASE + addr, buffer, count);
~~~~~~~~~~ ^
include/asm-generic/io.h:634:21: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
writesb(PCI_IOBASE + addr, buffer, count);
~~~~~~~~~~ ^
include/asm-generic/io.h:643:21: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
writesw(PCI_IOBASE + addr, buffer, count);
~~~~~~~~~~ ^
include/asm-generic/io.h:652:21: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
writesl(PCI_IOBASE + addr, buffer, count);
~~~~~~~~~~ ^
>> drivers/irqchip/irq-imx-intmux.c:240:9: error: no member named 'saved_reg' in 'struct intmux_data'
data->saved_reg = devm_kzalloc(&pdev->dev,
~~~~ ^
drivers/irqchip/irq-imx-intmux.c:243:14: error: no member named 'saved_reg' in 'struct intmux_data'
if (!data->saved_reg)
~~~~ ^
20 warnings and 2 errors generated.
vim +240 drivers/irqchip/irq-imx-intmux.c
198
199 static int imx_intmux_probe(struct platform_device *pdev)
200 {
201 struct device_node *np = pdev->dev.of_node;
202 struct irq_domain *domain;
203 struct intmux_data *data;
204 int channum;
205 int i, ret;
206
207 channum = platform_irq_count(pdev);
208 if (channum == -EPROBE_DEFER) {
209 return -EPROBE_DEFER;
210 } else if (channum > CHAN_MAX_NUM) {
211 dev_err(&pdev->dev, "supports up to %d multiplex channels\n",
212 CHAN_MAX_NUM);
213 return -EINVAL;
214 }
215
216 data = devm_kzalloc(&pdev->dev, sizeof(*data) +
217 channum * sizeof(data->irqchip_data[0]), GFP_KERNEL);
218 if (!data)
219 return -ENOMEM;
220
221 data->regs = devm_platform_ioremap_resource(pdev, 0);
222 if (IS_ERR(data->regs)) {
223 dev_err(&pdev->dev, "failed to initialize reg\n");
224 return PTR_ERR(data->regs);
225 }
226
227 data->ipg_clk = devm_clk_get(&pdev->dev, "ipg");
228 if (IS_ERR(data->ipg_clk)) {
229 ret = PTR_ERR(data->ipg_clk);
230 if (ret != -EPROBE_DEFER)
231 dev_err(&pdev->dev, "failed to get ipg clk: %d\n", ret);
232 return ret;
233 }
234
235 data->channum = channum;
236 raw_spin_lock_init(&data->lock);
237
238 if (IS_ENABLED(CONFIG_PM)) {
239 /* save CHANIER register */
> 240 data->saved_reg = devm_kzalloc(&pdev->dev,
241 sizeof(unsigned int) * channum,
242 GFP_KERNEL);
243 if (!data->saved_reg)
244 return -ENOMEM;
245 }
246
247 ret = clk_prepare_enable(data->ipg_clk);
248 if (ret) {
249 dev_err(&pdev->dev, "failed to enable ipg clk: %d\n", ret);
250 return ret;
251 }
252
253 for (i = 0; i < channum; i++) {
254 data->irqchip_data[i].chanidx = i;
255
256 data->irqchip_data[i].irq = irq_of_parse_and_map(np, i);
257 if (data->irqchip_data[i].irq <= 0) {
258 ret = -EINVAL;
259 dev_err(&pdev->dev, "failed to get irq\n");
260 goto out;
261 }
262
263 domain = irq_domain_add_linear(np, 32, &imx_intmux_domain_ops,
264 &data->irqchip_data[i]);
265 if (!domain) {
266 ret = -ENOMEM;
267 dev_err(&pdev->dev, "failed to create IRQ domain\n");
268 goto out;
269 }
270 data->irqchip_data[i].domain = domain;
271
272 /* disable all interrupt sources of this channel firstly */
273 writel_relaxed(0, data->regs + CHANIER(i));
274
275 irq_set_chained_handler_and_data(data->irqchip_data[i].irq,
276 imx_intmux_irq_handler,
277 &data->irqchip_data[i]);
278 }
279
280 platform_set_drvdata(pdev, data);
281
282 return 0;
283 out:
284 clk_disable_unprepare(data->ipg_clk);
285 return ret;
286 }
287
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 2 months
Re: [PATCH V2 4/6] vhost_vdpa: implement IRQ offloading in vhost_vdpa
by kernel test robot
Hi Zhu,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on vhost/linux-next]
[also build test WARNING on kvm/linux-next linus/master v5.8-rc5 next-20200716]
[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/Zhu-Lingshan/IRQ-offloading-for-...
base: https://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost.git linux-next
config: openrisc-randconfig-r016-20200717 (attached as .config)
compiler: or1k-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=openrisc
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
drivers/vhost/vdpa.c: In function 'vhost_vdpa_setup_vq_irq':
>> drivers/vhost/vdpa.c:122:6: warning: variable 'ret' set but not used [-Wunused-but-set-variable]
122 | int ret;
| ^~~
vim +/ret +122 drivers/vhost/vdpa.c
117
118 static void vhost_vdpa_setup_vq_irq(struct vdpa_device *dev, int qid, int irq)
119 {
120 struct vhost_vdpa *v = vdpa_get_drvdata(dev);
121 struct vhost_virtqueue *vq = &v->vqs[qid];
> 122 int ret;
123
124 spin_lock(&vq->call_ctx.ctx_lock);
125 if (!vq->call_ctx.ctx) {
126 spin_unlock(&vq->call_ctx.ctx_lock);
127 return;
128 }
129
130 vq->call_ctx.producer.token = vq->call_ctx.ctx;
131 vq->call_ctx.producer.irq = irq;
132 ret = irq_bypass_register_producer(&vq->call_ctx.producer);
133 spin_unlock(&vq->call_ctx.ctx_lock);
134 }
135
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 2 months
[lkp] [+879 bytes kernel size regression] [i386-tinyconfig] [9cfa950ace] fs: add mount_setattr()
by kernel test robot
FYI, we noticed a +879 bytes kernel size regression due to commit:
commit: 9cfa950acecdd0c70e0d43d2e1c76dcf4797bb16 (fs: add mount_setattr())
https://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux.git mount_setattr
Details as below (size data is obtained by `nm --size-sort vmlinux`):
9573a242: namespace: only take read lock in do_reconfigure_mnt()
9cfa950a: fs: add mount_setattr()
+-------------------------------+----------+----------+-------+
| symbol | 9573a242 | 9cfa950a | delta |
+-------------------------------+----------+----------+-------+
| nm.T.__ia32_sys_mount_setattr | 0 | 850 | 850 |
| bzImage | 442464 | 442880 | 416 |
| nm.t.build_attr_flags | 0 | 58 | 58 |
| nm.R.sys_call_table | 1760 | 1764 | 4 |
| nm.T.__ia32_sys_fsmount | 531 | 498 | -33 |
+-------------------------------+----------+----------+-------+
Thanks
2 years, 2 months