Re: [PATCH] net: neterion: vxge: reduce stack usage in VXGE_COMPLETE_VPATH_TX
by kernel test robot
Hi Bixuan,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on sparc-next/master]
[also build test WARNING on net-next/master net/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/Bixuan-Cui/net-neterion-vxge-red...
base: https://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next.git master
config: s390-allyesconfig (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 warnings (new ones prefixed by >>):
91 | #define this_cpu_add_8(pcp, val) arch_this_cpu_add(pcp, val, "laag", "agsi", long)
| ^~~~~~~~~~~~~~~~~
include/linux/percpu-defs.h:380:11: note: in expansion of macro 'this_cpu_add_8'
380 | case 8: stem##8(variable, __VA_ARGS__);break; \
| ^~~~
include/linux/percpu-defs.h:509:33: note: in expansion of macro '__pcpu_size_call'
509 | #define this_cpu_add(pcp, val) __pcpu_size_call(this_cpu_add_, pcp, val)
| ^~~~~~~~~~~~~~~~
include/linux/percpu-defs.h:519:33: note: in expansion of macro 'this_cpu_add'
519 | #define this_cpu_sub(pcp, val) this_cpu_add(pcp, -(typeof(pcp))(val))
| ^~~~~~~~~~~~
include/linux/percpu-defs.h:521:28: note: in expansion of macro 'this_cpu_sub'
521 | #define this_cpu_dec(pcp) this_cpu_sub(pcp, 1)
| ^~~~~~~~~~~~
include/net/sch_generic.h:872:2: note: in expansion of macro 'this_cpu_dec'
872 | this_cpu_dec(sch->cpu_qstats->qlen);
| ^~~~~~~~~~~~
include/net/sch_generic.h: In function 'qdisc_qstats_cpu_requeues_inc':
arch/s390/include/asm/percpu.h:74:21: warning: comparison is always true due to limited range of data type [-Wtype-limits]
74 | ((szcast)val__ > -129) && ((szcast)val__ < 128)) { \
| ^
arch/s390/include/asm/percpu.h:91:34: note: in expansion of macro 'arch_this_cpu_add'
91 | #define this_cpu_add_8(pcp, val) arch_this_cpu_add(pcp, val, "laag", "agsi", long)
| ^~~~~~~~~~~~~~~~~
include/linux/percpu-defs.h:380:11: note: in expansion of macro 'this_cpu_add_8'
380 | case 8: stem##8(variable, __VA_ARGS__);break; \
| ^~~~
include/linux/percpu-defs.h:509:33: note: in expansion of macro '__pcpu_size_call'
509 | #define this_cpu_add(pcp, val) __pcpu_size_call(this_cpu_add_, pcp, val)
| ^~~~~~~~~~~~~~~~
include/linux/percpu-defs.h:520:28: note: in expansion of macro 'this_cpu_add'
520 | #define this_cpu_inc(pcp) this_cpu_add(pcp, 1)
| ^~~~~~~~~~~~
include/net/sch_generic.h:877:2: note: in expansion of macro 'this_cpu_inc'
877 | this_cpu_inc(sch->cpu_qstats->requeues);
| ^~~~~~~~~~~~
include/net/sch_generic.h: In function 'qdisc_qstats_cpu_drop':
arch/s390/include/asm/percpu.h:74:21: warning: comparison is always true due to limited range of data type [-Wtype-limits]
74 | ((szcast)val__ > -129) && ((szcast)val__ < 128)) { \
| ^
arch/s390/include/asm/percpu.h:91:34: note: in expansion of macro 'arch_this_cpu_add'
91 | #define this_cpu_add_8(pcp, val) arch_this_cpu_add(pcp, val, "laag", "agsi", long)
| ^~~~~~~~~~~~~~~~~
include/linux/percpu-defs.h:380:11: note: in expansion of macro 'this_cpu_add_8'
380 | case 8: stem##8(variable, __VA_ARGS__);break; \
| ^~~~
include/linux/percpu-defs.h:509:33: note: in expansion of macro '__pcpu_size_call'
509 | #define this_cpu_add(pcp, val) __pcpu_size_call(this_cpu_add_, pcp, val)
| ^~~~~~~~~~~~~~~~
include/linux/percpu-defs.h:520:28: note: in expansion of macro 'this_cpu_add'
520 | #define this_cpu_inc(pcp) this_cpu_add(pcp, 1)
| ^~~~~~~~~~~~
include/net/sch_generic.h:902:2: note: in expansion of macro 'this_cpu_inc'
902 | this_cpu_inc(sch->cpu_qstats->drops);
| ^~~~~~~~~~~~
include/net/sch_generic.h: In function 'qdisc_update_stats_at_enqueue':
arch/s390/include/asm/percpu.h:74:21: warning: comparison is always true due to limited range of data type [-Wtype-limits]
74 | ((szcast)val__ > -129) && ((szcast)val__ < 128)) { \
| ^
arch/s390/include/asm/percpu.h:91:34: note: in expansion of macro 'arch_this_cpu_add'
91 | #define this_cpu_add_8(pcp, val) arch_this_cpu_add(pcp, val, "laag", "agsi", long)
| ^~~~~~~~~~~~~~~~~
include/linux/percpu-defs.h:380:11: note: in expansion of macro 'this_cpu_add_8'
380 | case 8: stem##8(variable, __VA_ARGS__);break; \
| ^~~~
include/linux/percpu-defs.h:509:33: note: in expansion of macro '__pcpu_size_call'
509 | #define this_cpu_add(pcp, val) __pcpu_size_call(this_cpu_add_, pcp, val)
| ^~~~~~~~~~~~~~~~
include/net/sch_generic.h:1101:3: note: in expansion of macro 'this_cpu_add'
1101 | this_cpu_add(sch->cpu_qstats->backlog, pkt_len);
| ^~~~~~~~~~~~
include/net/sch_generic.h: In function 'mini_qdisc_qstats_cpu_drop':
arch/s390/include/asm/percpu.h:74:21: warning: comparison is always true due to limited range of data type [-Wtype-limits]
74 | ((szcast)val__ > -129) && ((szcast)val__ < 128)) { \
| ^
arch/s390/include/asm/percpu.h:91:34: note: in expansion of macro 'arch_this_cpu_add'
91 | #define this_cpu_add_8(pcp, val) arch_this_cpu_add(pcp, val, "laag", "agsi", long)
| ^~~~~~~~~~~~~~~~~
include/linux/percpu-defs.h:380:11: note: in expansion of macro 'this_cpu_add_8'
380 | case 8: stem##8(variable, __VA_ARGS__);break; \
| ^~~~
include/linux/percpu-defs.h:509:33: note: in expansion of macro '__pcpu_size_call'
509 | #define this_cpu_add(pcp, val) __pcpu_size_call(this_cpu_add_, pcp, val)
| ^~~~~~~~~~~~~~~~
include/linux/percpu-defs.h:520:28: note: in expansion of macro 'this_cpu_add'
520 | #define this_cpu_inc(pcp) this_cpu_add(pcp, 1)
| ^~~~~~~~~~~~
include/net/sch_generic.h:1270:2: note: in expansion of macro 'this_cpu_inc'
1270 | this_cpu_inc(miniq->cpu_qstats->drops);
| ^~~~~~~~~~~~
drivers/net/ethernet/neterion/vxge/vxge-main.c: In function 'VXGE_COMPLETE_VPATH_TX':
drivers/net/ethernet/neterion/vxge/vxge-main.c:103:19: error: conflicting types for 'completed'
103 | struct sk_buff **completed;
| ^~~~~~~~~
drivers/net/ethernet/neterion/vxge/vxge-main.c:102:18: note: previous declaration of 'completed' was here
102 | struct sk_buff *completed[NR_SKB_COMPLETED];
| ^~~~~~~~~
drivers/net/ethernet/neterion/vxge/vxge-main.c:126:2: error: implicit declaration of function 'free' [-Werror=implicit-function-declaration]
126 | free(completed);
| ^~~~
>> drivers/net/ethernet/neterion/vxge/vxge-main.c:126:2: warning: incompatible implicit declaration of built-in function 'free'
drivers/net/ethernet/neterion/vxge/vxge-main.c:60:1: note: include '<stdlib.h>' or provide a declaration of 'free'
59 | #include "vxge-main.h"
+++ |+#include <stdlib.h>
60 | #include "vxge-reg.h"
cc1: some warnings being treated as errors
vim +/free +126 drivers/net/ethernet/neterion/vxge/vxge-main.c
96
97 static inline void VXGE_COMPLETE_VPATH_TX(struct vxge_fifo *fifo)
98 {
99 struct sk_buff **skb_ptr = NULL;
100 struct sk_buff **temp;
101 #define NR_SKB_COMPLETED 128
102 struct sk_buff *completed[NR_SKB_COMPLETED];
103 struct sk_buff **completed;
104 int more;
105
106 completed = kcalloc(NR_SKB_COMPLETED, sizeof(*completed),
107 GFP_KERNEL);
108 if (!completed)
109 return;
110
111 do {
112 more = 0;
113 skb_ptr = completed;
114
115 if (__netif_tx_trylock(fifo->txq)) {
116 vxge_hw_vpath_poll_tx(fifo->handle, &skb_ptr,
117 NR_SKB_COMPLETED, &more);
118 __netif_tx_unlock(fifo->txq);
119 }
120
121 /* free SKBs */
122 for (temp = completed; temp != skb_ptr; temp++)
123 dev_consume_skb_irq(*temp);
124 } while (more);
125
> 126 free(completed);
127 }
128
---
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 vhost next 10/10] vdpa/mlx5: Add VDPA driver for supported mlx5 devices
by kernel test robot
Hi Eli,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on next-20200715]
url: https://github.com/0day-ci/linux/commits/Eli-Cohen/VDPA-support-for-Mella...
base: ca0e494af5edb59002665bf12871e94b4163a257
config: i386-allyesconfig (attached as .config)
compiler: gcc-9 (Debian 9.3.0-14) 9.3.0
reproduce (this is a W=1 build):
# save the attached .config to linux build tree
make W=1 ARCH=i386
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All error/warnings (new ones prefixed by >>):
>> drivers/vdpa/mlx5/net/main.c:7:10: fatal error: mlx5_vdpa_ifc.h: No such file or directory
7 | #include "mlx5_vdpa_ifc.h"
| ^~~~~~~~~~~~~~~~~
compilation terminated.
--
| ^~~~~~~~~~~~~
include/linux/mlx5/device.h:56:43: note: in expansion of macro '__mlx5_bit_sz'
56 | #define __mlx5_dw_bit_off(typ, fld) (32 - __mlx5_bit_sz(typ, fld) - (__mlx5_bit_off(typ, fld) & 0x1f))
| ^~~~~~~~~~~~~
include/linux/mlx5/device.h:58:60: note: in expansion of macro '__mlx5_dw_bit_off'
58 | #define __mlx5_dw_mask(typ, fld) (__mlx5_mask(typ, fld) << __mlx5_dw_bit_off(typ, fld))
| ^~~~~~~~~~~~~~~~~
include/linux/mlx5/device.h:78:10: note: in expansion of macro '__mlx5_dw_mask'
78 | (~__mlx5_dw_mask(typ, fld))) | (((_v) & __mlx5_mask(typ, fld)) \
| ^~~~~~~~~~~~~~
drivers/vdpa/mlx5/net/mlx5_vnet.c:1192:2: note: in expansion of macro 'MLX5_SET'
1192 | MLX5_SET(rqtc, rqtc, list_q_type, MLX5_RQTC_LIST_Q_TYPE_VIRTIO_NET_Q);
| ^~~~~~~~
include/linux/compiler_types.h:135:35: error: 'struct mlx5_ifc_rqtc_bits' has no member named 'list_q_type'
135 | #define __compiler_offsetof(a, b) __builtin_offsetof(a, b)
| ^~~~~~~~~~~~~~~~~~
include/uapi/linux/swab.h:115:54: note: in definition of macro '__swab32'
115 | #define __swab32(x) (__u32)__builtin_bswap32((__u32)(x))
| ^
include/linux/byteorder/generic.h:94:21: note: in expansion of macro '__cpu_to_be32'
94 | #define cpu_to_be32 __cpu_to_be32
| ^~~~~~~~~~~~~
include/linux/stddef.h:17:32: note: in expansion of macro '__compiler_offsetof'
17 | #define offsetof(TYPE, MEMBER) __compiler_offsetof(TYPE, MEMBER)
| ^~~~~~~~~~~~~~~~~~~
include/linux/mlx5/device.h:51:35: note: in expansion of macro 'offsetof'
51 | #define __mlx5_bit_off(typ, fld) (offsetof(struct mlx5_ifc_##typ##_bits, fld))
| ^~~~~~~~
include/linux/mlx5/device.h:56:70: note: in expansion of macro '__mlx5_bit_off'
56 | #define __mlx5_dw_bit_off(typ, fld) (32 - __mlx5_bit_sz(typ, fld) - (__mlx5_bit_off(typ, fld) & 0x1f))
| ^~~~~~~~~~~~~~
include/linux/mlx5/device.h:58:60: note: in expansion of macro '__mlx5_dw_bit_off'
58 | #define __mlx5_dw_mask(typ, fld) (__mlx5_mask(typ, fld) << __mlx5_dw_bit_off(typ, fld))
| ^~~~~~~~~~~~~~~~~
include/linux/mlx5/device.h:78:10: note: in expansion of macro '__mlx5_dw_mask'
78 | (~__mlx5_dw_mask(typ, fld))) | (((_v) & __mlx5_mask(typ, fld)) \
| ^~~~~~~~~~~~~~
drivers/vdpa/mlx5/net/mlx5_vnet.c:1192:2: note: in expansion of macro 'MLX5_SET'
1192 | MLX5_SET(rqtc, rqtc, list_q_type, MLX5_RQTC_LIST_Q_TYPE_VIRTIO_NET_Q);
| ^~~~~~~~
include/linux/mlx5/device.h:50:57: error: 'struct mlx5_ifc_rqtc_bits' has no member named 'list_q_type'
50 | #define __mlx5_bit_sz(typ, fld) sizeof(__mlx5_nullp(typ)->fld)
| ^~
include/uapi/linux/swab.h:115:54: note: in definition of macro '__swab32'
115 | #define __swab32(x) (__u32)__builtin_bswap32((__u32)(x))
| ^
include/linux/byteorder/generic.h:94:21: note: in expansion of macro '__cpu_to_be32'
94 | #define cpu_to_be32 __cpu_to_be32
| ^~~~~~~~~~~~~
include/linux/mlx5/device.h:57:47: note: in expansion of macro '__mlx5_bit_sz'
57 | #define __mlx5_mask(typ, fld) ((u32)((1ull << __mlx5_bit_sz(typ, fld)) - 1))
| ^~~~~~~~~~~~~
include/linux/mlx5/device.h:78:48: note: in expansion of macro '__mlx5_mask'
78 | (~__mlx5_dw_mask(typ, fld))) | (((_v) & __mlx5_mask(typ, fld)) \
| ^~~~~~~~~~~
drivers/vdpa/mlx5/net/mlx5_vnet.c:1192:2: note: in expansion of macro 'MLX5_SET'
1192 | MLX5_SET(rqtc, rqtc, list_q_type, MLX5_RQTC_LIST_Q_TYPE_VIRTIO_NET_Q);
| ^~~~~~~~
include/linux/mlx5/device.h:50:57: error: 'struct mlx5_ifc_rqtc_bits' has no member named 'list_q_type'
50 | #define __mlx5_bit_sz(typ, fld) sizeof(__mlx5_nullp(typ)->fld)
| ^~
include/uapi/linux/swab.h:115:54: note: in definition of macro '__swab32'
115 | #define __swab32(x) (__u32)__builtin_bswap32((__u32)(x))
| ^
include/linux/byteorder/generic.h:94:21: note: in expansion of macro '__cpu_to_be32'
94 | #define cpu_to_be32 __cpu_to_be32
| ^~~~~~~~~~~~~
include/linux/mlx5/device.h:56:43: note: in expansion of macro '__mlx5_bit_sz'
56 | #define __mlx5_dw_bit_off(typ, fld) (32 - __mlx5_bit_sz(typ, fld) - (__mlx5_bit_off(typ, fld) & 0x1f))
| ^~~~~~~~~~~~~
include/linux/mlx5/device.h:79:11: note: in expansion of macro '__mlx5_dw_bit_off'
79 | << __mlx5_dw_bit_off(typ, fld))); \
| ^~~~~~~~~~~~~~~~~
drivers/vdpa/mlx5/net/mlx5_vnet.c:1192:2: note: in expansion of macro 'MLX5_SET'
1192 | MLX5_SET(rqtc, rqtc, list_q_type, MLX5_RQTC_LIST_Q_TYPE_VIRTIO_NET_Q);
| ^~~~~~~~
include/linux/compiler_types.h:135:35: error: 'struct mlx5_ifc_rqtc_bits' has no member named 'list_q_type'
135 | #define __compiler_offsetof(a, b) __builtin_offsetof(a, b)
| ^~~~~~~~~~~~~~~~~~
include/uapi/linux/swab.h:115:54: note: in definition of macro '__swab32'
115 | #define __swab32(x) (__u32)__builtin_bswap32((__u32)(x))
| ^
include/linux/byteorder/generic.h:94:21: note: in expansion of macro '__cpu_to_be32'
94 | #define cpu_to_be32 __cpu_to_be32
| ^~~~~~~~~~~~~
include/linux/stddef.h:17:32: note: in expansion of macro '__compiler_offsetof'
17 | #define offsetof(TYPE, MEMBER) __compiler_offsetof(TYPE, MEMBER)
| ^~~~~~~~~~~~~~~~~~~
include/linux/mlx5/device.h:51:35: note: in expansion of macro 'offsetof'
51 | #define __mlx5_bit_off(typ, fld) (offsetof(struct mlx5_ifc_##typ##_bits, fld))
| ^~~~~~~~
include/linux/mlx5/device.h:56:70: note: in expansion of macro '__mlx5_bit_off'
56 | #define __mlx5_dw_bit_off(typ, fld) (32 - __mlx5_bit_sz(typ, fld) - (__mlx5_bit_off(typ, fld) & 0x1f))
| ^~~~~~~~~~~~~~
include/linux/mlx5/device.h:79:11: note: in expansion of macro '__mlx5_dw_bit_off'
79 | << __mlx5_dw_bit_off(typ, fld))); \
| ^~~~~~~~~~~~~~~~~
drivers/vdpa/mlx5/net/mlx5_vnet.c:1192:2: note: in expansion of macro 'MLX5_SET'
1192 | MLX5_SET(rqtc, rqtc, list_q_type, MLX5_RQTC_LIST_Q_TYPE_VIRTIO_NET_Q);
| ^~~~~~~~
>> drivers/vdpa/mlx5/net/mlx5_vnet.c:1171:6: warning: variable 'acutal_rqt' set but not used [-Wunused-but-set-variable]
1171 | int acutal_rqt;
| ^~~~~~~~~~
In file included from include/linux/swab.h:5,
from include/uapi/linux/byteorder/little_endian.h:13,
from include/linux/byteorder/little_endian.h:5,
from arch/x86/include/uapi/asm/byteorder.h:5,
from include/asm-generic/bitops/le.h:6,
from arch/x86/include/asm/bitops.h:395,
from include/linux/bitops.h:29,
from include/linux/kernel.h:12,
from include/linux/vdpa.h:5,
from drivers/vdpa/mlx5/net/mlx5_vnet.c:4:
drivers/vdpa/mlx5/net/mlx5_vnet.c: In function 'mlx5_vdpa_get_features':
include/linux/compiler_types.h:135:35: error: 'struct mlx5_ifc_device_virtio_emulation_cap_bits' has no member named 'device_features_bits_mask'
135 | #define __compiler_offsetof(a, b) __builtin_offsetof(a, b)
| ^~~~~~~~~~~~~~~~~~
include/uapi/linux/swab.h:115:54: note: in definition of macro '__swab32'
115 | #define __swab32(x) (__u32)__builtin_bswap32((__u32)(x))
| ^
include/linux/byteorder/generic.h:95:21: note: in expansion of macro '__be32_to_cpu'
95 | #define be32_to_cpu __be32_to_cpu
| ^~~~~~~~~~~~~
include/linux/stddef.h:17:32: note: in expansion of macro '__compiler_offsetof'
17 | #define offsetof(TYPE, MEMBER) __compiler_offsetof(TYPE, MEMBER)
| ^~~~~~~~~~~~~~~~~~~
include/linux/mlx5/device.h:51:35: note: in expansion of macro 'offsetof'
51 | #define __mlx5_bit_off(typ, fld) (offsetof(struct mlx5_ifc_##typ##_bits, fld))
| ^~~~~~~~
include/linux/mlx5/device.h:53:34: note: in expansion of macro '__mlx5_bit_off'
53 | #define __mlx5_dw_off(typ, fld) (__mlx5_bit_off(typ, fld) / 32)
| ^~~~~~~~~~~~~~
include/linux/mlx5/device.h:96:1: note: in expansion of macro '__mlx5_dw_off'
96 | __mlx5_dw_off(typ, fld))) >> __mlx5_dw_bit_off(typ, fld)) & \
| ^~~~~~~~~~~~~
include/linux/mlx5/device.h:1364:2: note: in expansion of macro 'MLX5_GET'
1364 | MLX5_GET(device_virtio_emulation_cap, \
| ^~~~~~~~
drivers/vdpa/mlx5/net/mlx5_vnet.c:1469:17: note: in expansion of macro 'MLX5_CAP_DEV_VDPA_EMULATION'
1469 | dev_features = MLX5_CAP_DEV_VDPA_EMULATION(mvdev->mdev, device_features_bits_mask);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from include/linux/mlx5/qp.h:36,
from drivers/vdpa/mlx5/net/mlx5_vnet.c:7:
include/linux/mlx5/device.h:50:57: error: 'struct mlx5_ifc_device_virtio_emulation_cap_bits' has no member named 'device_features_bits_mask'
50 | #define __mlx5_bit_sz(typ, fld) sizeof(__mlx5_nullp(typ)->fld)
| ^~
include/linux/mlx5/device.h:56:43: note: in expansion of macro '__mlx5_bit_sz'
56 | #define __mlx5_dw_bit_off(typ, fld) (32 - __mlx5_bit_sz(typ, fld) - (__mlx5_bit_off(typ, fld) & 0x1f))
| ^~~~~~~~~~~~~
include/linux/mlx5/device.h:96:30: note: in expansion of macro '__mlx5_dw_bit_off'
96 | __mlx5_dw_off(typ, fld))) >> __mlx5_dw_bit_off(typ, fld)) & \
| ^~~~~~~~~~~~~~~~~
include/linux/mlx5/device.h:1364:2: note: in expansion of macro 'MLX5_GET'
1364 | MLX5_GET(device_virtio_emulation_cap, \
| ^~~~~~~~
drivers/vdpa/mlx5/net/mlx5_vnet.c:1469:17: note: in expansion of macro 'MLX5_CAP_DEV_VDPA_EMULATION'
1469 | dev_features = MLX5_CAP_DEV_VDPA_EMULATION(mvdev->mdev, device_features_bits_mask);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from <command-line>:
include/linux/compiler_types.h:135:35: error: 'struct mlx5_ifc_device_virtio_emulation_cap_bits' has no member named 'device_features_bits_mask'
135 | #define __compiler_offsetof(a, b) __builtin_offsetof(a, b)
| ^~~~~~~~~~~~~~~~~~
include/linux/stddef.h:17:32: note: in expansion of macro '__compiler_offsetof'
17 | #define offsetof(TYPE, MEMBER) __compiler_offsetof(TYPE, MEMBER)
| ^~~~~~~~~~~~~~~~~~~
include/linux/mlx5/device.h:51:35: note: in expansion of macro 'offsetof'
51 | #define __mlx5_bit_off(typ, fld) (offsetof(struct mlx5_ifc_##typ##_bits, fld))
| ^~~~~~~~
include/linux/mlx5/device.h:56:70: note: in expansion of macro '__mlx5_bit_off'
56 | #define __mlx5_dw_bit_off(typ, fld) (32 - __mlx5_bit_sz(typ, fld) - (__mlx5_bit_off(typ, fld) & 0x1f))
| ^~~~~~~~~~~~~~
include/linux/mlx5/device.h:96:30: note: in expansion of macro '__mlx5_dw_bit_off'
96 | __mlx5_dw_off(typ, fld))) >> __mlx5_dw_bit_off(typ, fld)) & \
| ^~~~~~~~~~~~~~~~~
include/linux/mlx5/device.h:1364:2: note: in expansion of macro 'MLX5_GET'
1364 | MLX5_GET(device_virtio_emulation_cap, \
| ^~~~~~~~
drivers/vdpa/mlx5/net/mlx5_vnet.c:1469:17: note: in expansion of macro 'MLX5_CAP_DEV_VDPA_EMULATION'
1469 | dev_features = MLX5_CAP_DEV_VDPA_EMULATION(mvdev->mdev, device_features_bits_mask);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from include/linux/mlx5/qp.h:36,
from drivers/vdpa/mlx5/net/mlx5_vnet.c:7:
include/linux/mlx5/device.h:50:57: error: 'struct mlx5_ifc_device_virtio_emulation_cap_bits' has no member named 'device_features_bits_mask'
50 | #define __mlx5_bit_sz(typ, fld) sizeof(__mlx5_nullp(typ)->fld)
| ^~
include/linux/mlx5/device.h:57:47: note: in expansion of macro '__mlx5_bit_sz'
57 | #define __mlx5_mask(typ, fld) ((u32)((1ull << __mlx5_bit_sz(typ, fld)) - 1))
| ^~~~~~~~~~~~~
include/linux/mlx5/device.h:97:1: note: in expansion of macro '__mlx5_mask'
97 | __mlx5_mask(typ, fld))
| ^~~~~~~~~~~
include/linux/mlx5/device.h:1364:2: note: in expansion of macro 'MLX5_GET'
1364 | MLX5_GET(device_virtio_emulation_cap, \
| ^~~~~~~~
drivers/vdpa/mlx5/net/mlx5_vnet.c:1469:17: note: in expansion of macro 'MLX5_CAP_DEV_VDPA_EMULATION'
1469 | dev_features = MLX5_CAP_DEV_VDPA_EMULATION(mvdev->mdev, device_features_bits_mask);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from include/linux/swab.h:5,
from include/uapi/linux/byteorder/little_endian.h:13,
from include/linux/byteorder/little_endian.h:5,
from arch/x86/include/uapi/asm/byteorder.h:5,
vim +7 drivers/vdpa/mlx5/net/main.c
3
4 #include <linux/module.h>
5 #include <linux/mlx5/driver.h>
6 #include <linux/mlx5/device.h>
> 7 #include "mlx5_vdpa_ifc.h"
8 #include "mlx5_vnet.h"
9
---
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 vhost next 08/10] vdpa/mlx5: Add support library for mlx5 VDPA implementation
by kernel test robot
Hi Eli,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on next-20200715]
url: https://github.com/0day-ci/linux/commits/Eli-Cohen/VDPA-support-for-Mella...
base: ca0e494af5edb59002665bf12871e94b4163a257
config: mips-allyesconfig (attached as .config)
compiler: mips-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=mips
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 include/linux/mlx5/driver.h:52,
from drivers/vdpa/mlx5/core/resources.c:4:
drivers/vdpa/mlx5/core/resources.c: In function 'create_uctx':
>> include/linux/mlx5/device.h:65:36: error: invalid application of 'sizeof' to incomplete type 'struct mlx5_ifc_create_uctx_out_bits'
65 | #define MLX5_ST_SZ_DW(typ) (sizeof(struct mlx5_ifc_##typ##_bits) / 32)
| ^~~~~~
drivers/vdpa/mlx5/core/resources.c:52:10: note: in expansion of macro 'MLX5_ST_SZ_DW'
52 | u32 out[MLX5_ST_SZ_DW(create_uctx_out)] = {};
| ^~~~~~~~~~~~~
>> drivers/vdpa/mlx5/core/resources.c:52:44: error: empty scalar initializer
52 | u32 out[MLX5_ST_SZ_DW(create_uctx_out)] = {};
| ^
drivers/vdpa/mlx5/core/resources.c:52:44: note: (near initialization for 'out')
In file included from include/linux/byteorder/big_endian.h:5,
from arch/mips/include/uapi/asm/byteorder.h:13,
from arch/mips/include/asm/bitops.h:20,
from include/linux/bitops.h:29,
from include/linux/kernel.h:12,
from include/linux/mlx5/driver.h:36,
from drivers/vdpa/mlx5/core/resources.c:4:
>> include/linux/compiler_types.h:135:35: error: invalid use of undefined type 'struct mlx5_ifc_create_uctx_out_bits'
135 | #define __compiler_offsetof(a, b) __builtin_offsetof(a, b)
| ^~~~~~~~~~~~~~~~~~
include/uapi/linux/byteorder/big_endian.h:40:51: note: in definition of macro '__be32_to_cpu'
40 | #define __be32_to_cpu(x) ((__force __u32)(__be32)(x))
| ^
include/linux/stddef.h:17:32: note: in expansion of macro '__compiler_offsetof'
17 | #define offsetof(TYPE, MEMBER) __compiler_offsetof(TYPE, MEMBER)
| ^~~~~~~~~~~~~~~~~~~
include/linux/mlx5/device.h:51:35: note: in expansion of macro 'offsetof'
51 | #define __mlx5_bit_off(typ, fld) (offsetof(struct mlx5_ifc_##typ##_bits, fld))
| ^~~~~~~~
include/linux/mlx5/device.h:53:34: note: in expansion of macro '__mlx5_bit_off'
53 | #define __mlx5_dw_off(typ, fld) (__mlx5_bit_off(typ, fld) / 32)
| ^~~~~~~~~~~~~~
include/linux/mlx5/device.h:96:1: note: in expansion of macro '__mlx5_dw_off'
96 | __mlx5_dw_off(typ, fld))) >> __mlx5_dw_bit_off(typ, fld)) & \
| ^~~~~~~~~~~~~
drivers/vdpa/mlx5/core/resources.c:72:10: note: in expansion of macro 'MLX5_GET'
72 | *uid = MLX5_GET(create_uctx_out, out, uid);
| ^~~~~~~~
In file included from include/linux/mlx5/driver.h:52,
from drivers/vdpa/mlx5/core/resources.c:4:
>> include/linux/mlx5/device.h:50:57: error: dereferencing pointer to incomplete type 'struct mlx5_ifc_create_uctx_out_bits'
50 | #define __mlx5_bit_sz(typ, fld) sizeof(__mlx5_nullp(typ)->fld)
| ^~
include/linux/mlx5/device.h:56:43: note: in expansion of macro '__mlx5_bit_sz'
56 | #define __mlx5_dw_bit_off(typ, fld) (32 - __mlx5_bit_sz(typ, fld) - (__mlx5_bit_off(typ, fld) & 0x1f))
| ^~~~~~~~~~~~~
include/linux/mlx5/device.h:96:30: note: in expansion of macro '__mlx5_dw_bit_off'
96 | __mlx5_dw_off(typ, fld))) >> __mlx5_dw_bit_off(typ, fld)) & \
| ^~~~~~~~~~~~~~~~~
drivers/vdpa/mlx5/core/resources.c:72:10: note: in expansion of macro 'MLX5_GET'
72 | *uid = MLX5_GET(create_uctx_out, out, uid);
| ^~~~~~~~
In file included from <command-line>:
>> include/linux/compiler_types.h:135:35: error: invalid use of undefined type 'struct mlx5_ifc_create_uctx_out_bits'
135 | #define __compiler_offsetof(a, b) __builtin_offsetof(a, b)
| ^~~~~~~~~~~~~~~~~~
include/linux/stddef.h:17:32: note: in expansion of macro '__compiler_offsetof'
17 | #define offsetof(TYPE, MEMBER) __compiler_offsetof(TYPE, MEMBER)
| ^~~~~~~~~~~~~~~~~~~
include/linux/mlx5/device.h:51:35: note: in expansion of macro 'offsetof'
51 | #define __mlx5_bit_off(typ, fld) (offsetof(struct mlx5_ifc_##typ##_bits, fld))
| ^~~~~~~~
include/linux/mlx5/device.h:56:70: note: in expansion of macro '__mlx5_bit_off'
56 | #define __mlx5_dw_bit_off(typ, fld) (32 - __mlx5_bit_sz(typ, fld) - (__mlx5_bit_off(typ, fld) & 0x1f))
| ^~~~~~~~~~~~~~
include/linux/mlx5/device.h:96:30: note: in expansion of macro '__mlx5_dw_bit_off'
96 | __mlx5_dw_off(typ, fld))) >> __mlx5_dw_bit_off(typ, fld)) & \
| ^~~~~~~~~~~~~~~~~
drivers/vdpa/mlx5/core/resources.c:72:10: note: in expansion of macro 'MLX5_GET'
72 | *uid = MLX5_GET(create_uctx_out, out, uid);
| ^~~~~~~~
drivers/vdpa/mlx5/core/resources.c:52:6: warning: unused variable 'out' [-Wunused-variable]
52 | u32 out[MLX5_ST_SZ_DW(create_uctx_out)] = {};
| ^~~
In file included from include/linux/mlx5/driver.h:52,
from drivers/vdpa/mlx5/core/resources.c:4:
drivers/vdpa/mlx5/core/resources.c: In function 'destroy_uctx':
>> include/linux/mlx5/device.h:65:36: error: invalid application of 'sizeof' to incomplete type 'struct mlx5_ifc_destroy_uctx_out_bits'
65 | #define MLX5_ST_SZ_DW(typ) (sizeof(struct mlx5_ifc_##typ##_bits) / 32)
| ^~~~~~
drivers/vdpa/mlx5/core/resources.c:79:10: note: in expansion of macro 'MLX5_ST_SZ_DW'
79 | u32 out[MLX5_ST_SZ_DW(destroy_uctx_out)] = {};
| ^~~~~~~~~~~~~
drivers/vdpa/mlx5/core/resources.c:79:45: error: empty scalar initializer
79 | u32 out[MLX5_ST_SZ_DW(destroy_uctx_out)] = {};
| ^
drivers/vdpa/mlx5/core/resources.c:79:45: note: (near initialization for 'out')
drivers/vdpa/mlx5/core/resources.c:79:6: warning: unused variable 'out' [-Wunused-variable]
79 | u32 out[MLX5_ST_SZ_DW(destroy_uctx_out)] = {};
| ^~~
drivers/vdpa/mlx5/core/resources.c: At top level:
drivers/vdpa/mlx5/core/resources.c:184:5: warning: no previous prototype for 'mlx5_vdpa_create_mkey' [-Wmissing-prototypes]
184 | int mlx5_vdpa_create_mkey(struct mlx5_vdpa_dev *mvdev, struct mlx5_core_mkey *mkey, u32 *in,
| ^~~~~~~~~~~~~~~~~~~~~
In file included from <command-line>:
drivers/vdpa/mlx5/core/resources.c: In function 'mlx5_vdpa_create_mkey':
>> include/linux/compiler_types.h:135:35: error: 'struct mlx5_ifc_create_mkey_in_bits' has no member named 'uid'
135 | #define __compiler_offsetof(a, b) __builtin_offsetof(a, b)
| ^~~~~~~~~~~~~~~~~~
include/linux/stddef.h:17:32: note: in expansion of macro '__compiler_offsetof'
17 | #define offsetof(TYPE, MEMBER) __compiler_offsetof(TYPE, MEMBER)
| ^~~~~~~~~~~~~~~~~~~
include/linux/mlx5/device.h:51:35: note: in expansion of macro 'offsetof'
51 | #define __mlx5_bit_off(typ, fld) (offsetof(struct mlx5_ifc_##typ##_bits, fld))
| ^~~~~~~~
include/linux/mlx5/device.h:53:34: note: in expansion of macro '__mlx5_bit_off'
53 | #define __mlx5_dw_off(typ, fld) (__mlx5_bit_off(typ, fld) / 32)
| ^~~~~~~~~~~~~~
include/linux/mlx5/device.h:76:20: note: in expansion of macro '__mlx5_dw_off'
76 | *((__be32 *)(p) + __mlx5_dw_off(typ, fld)) = \
| ^~~~~~~~~~~~~
drivers/vdpa/mlx5/core/resources.c:193:2: note: in expansion of macro 'MLX5_SET'
193 | MLX5_SET(create_mkey_in, in, uid, mvdev->res.uid);
| ^~~~~~~~
In file included from include/linux/byteorder/big_endian.h:5,
from arch/mips/include/uapi/asm/byteorder.h:13,
from arch/mips/include/asm/bitops.h:20,
from include/linux/bitops.h:29,
from include/linux/kernel.h:12,
from include/linux/mlx5/driver.h:36,
from drivers/vdpa/mlx5/core/resources.c:4:
>> include/linux/compiler_types.h:135:35: error: 'struct mlx5_ifc_create_mkey_in_bits' has no member named 'uid'
135 | #define __compiler_offsetof(a, b) __builtin_offsetof(a, b)
| ^~~~~~~~~~~~~~~~~~
include/uapi/linux/byteorder/big_endian.h:39:51: note: in definition of macro '__cpu_to_be32'
39 | #define __cpu_to_be32(x) ((__force __be32)(__u32)(x))
| ^
include/linux/byteorder/generic.h:95:21: note: in expansion of macro '__be32_to_cpu'
95 | #define be32_to_cpu __be32_to_cpu
| ^~~~~~~~~~~~~
include/linux/stddef.h:17:32: note: in expansion of macro '__compiler_offsetof'
17 | #define offsetof(TYPE, MEMBER) __compiler_offsetof(TYPE, MEMBER)
| ^~~~~~~~~~~~~~~~~~~
include/linux/mlx5/device.h:51:35: note: in expansion of macro 'offsetof'
51 | #define __mlx5_bit_off(typ, fld) (offsetof(struct mlx5_ifc_##typ##_bits, fld))
| ^~~~~~~~
include/linux/mlx5/device.h:53:34: note: in expansion of macro '__mlx5_bit_off'
53 | #define __mlx5_dw_off(typ, fld) (__mlx5_bit_off(typ, fld) / 32)
| ^~~~~~~~~~~~~~
include/linux/mlx5/device.h:77:45: note: in expansion of macro '__mlx5_dw_off'
77 | cpu_to_be32((be32_to_cpu(*((__be32 *)(p) + __mlx5_dw_off(typ, fld))) & \
| ^~~~~~~~~~~~~
drivers/vdpa/mlx5/core/resources.c:193:2: note: in expansion of macro 'MLX5_SET'
193 | MLX5_SET(create_mkey_in, in, uid, mvdev->res.uid);
| ^~~~~~~~
>> include/linux/mlx5/device.h:50:57: error: 'struct mlx5_ifc_create_mkey_in_bits' has no member named 'uid'
50 | #define __mlx5_bit_sz(typ, fld) sizeof(__mlx5_nullp(typ)->fld)
| ^~
include/uapi/linux/byteorder/big_endian.h:39:51: note: in definition of macro '__cpu_to_be32'
39 | #define __cpu_to_be32(x) ((__force __be32)(__u32)(x))
| ^
include/linux/mlx5/device.h:57:47: note: in expansion of macro '__mlx5_bit_sz'
57 | #define __mlx5_mask(typ, fld) ((u32)((1ull << __mlx5_bit_sz(typ, fld)) - 1))
| ^~~~~~~~~~~~~
include/linux/mlx5/device.h:58:35: note: in expansion of macro '__mlx5_mask'
58 | #define __mlx5_dw_mask(typ, fld) (__mlx5_mask(typ, fld) << __mlx5_dw_bit_off(typ, fld))
| ^~~~~~~~~~~
include/linux/mlx5/device.h:78:10: note: in expansion of macro '__mlx5_dw_mask'
78 | (~__mlx5_dw_mask(typ, fld))) | (((_v) & __mlx5_mask(typ, fld)) \
| ^~~~~~~~~~~~~~
drivers/vdpa/mlx5/core/resources.c:193:2: note: in expansion of macro 'MLX5_SET'
193 | MLX5_SET(create_mkey_in, in, uid, mvdev->res.uid);
| ^~~~~~~~
>> include/linux/mlx5/device.h:50:57: error: 'struct mlx5_ifc_create_mkey_in_bits' has no member named 'uid'
50 | #define __mlx5_bit_sz(typ, fld) sizeof(__mlx5_nullp(typ)->fld)
| ^~
include/uapi/linux/byteorder/big_endian.h:39:51: note: in definition of macro '__cpu_to_be32'
39 | #define __cpu_to_be32(x) ((__force __be32)(__u32)(x))
| ^
include/linux/mlx5/device.h:56:43: note: in expansion of macro '__mlx5_bit_sz'
56 | #define __mlx5_dw_bit_off(typ, fld) (32 - __mlx5_bit_sz(typ, fld) - (__mlx5_bit_off(typ, fld) & 0x1f))
| ^~~~~~~~~~~~~
include/linux/mlx5/device.h:58:60: note: in expansion of macro '__mlx5_dw_bit_off'
58 | #define __mlx5_dw_mask(typ, fld) (__mlx5_mask(typ, fld) << __mlx5_dw_bit_off(typ, fld))
| ^~~~~~~~~~~~~~~~~
include/linux/mlx5/device.h:78:10: note: in expansion of macro '__mlx5_dw_mask'
78 | (~__mlx5_dw_mask(typ, fld))) | (((_v) & __mlx5_mask(typ, fld)) \
| ^~~~~~~~~~~~~~
drivers/vdpa/mlx5/core/resources.c:193:2: note: in expansion of macro 'MLX5_SET'
193 | MLX5_SET(create_mkey_in, in, uid, mvdev->res.uid);
| ^~~~~~~~
>> include/linux/compiler_types.h:135:35: error: 'struct mlx5_ifc_create_mkey_in_bits' has no member named 'uid'
135 | #define __compiler_offsetof(a, b) __builtin_offsetof(a, b)
| ^~~~~~~~~~~~~~~~~~
include/uapi/linux/byteorder/big_endian.h:39:51: note: in definition of macro '__cpu_to_be32'
39 | #define __cpu_to_be32(x) ((__force __be32)(__u32)(x))
| ^
include/linux/stddef.h:17:32: note: in expansion of macro '__compiler_offsetof'
17 | #define offsetof(TYPE, MEMBER) __compiler_offsetof(TYPE, MEMBER)
| ^~~~~~~~~~~~~~~~~~~
include/linux/mlx5/device.h:51:35: note: in expansion of macro 'offsetof'
51 | #define __mlx5_bit_off(typ, fld) (offsetof(struct mlx5_ifc_##typ##_bits, fld))
| ^~~~~~~~
include/linux/mlx5/device.h:56:70: note: in expansion of macro '__mlx5_bit_off'
56 | #define __mlx5_dw_bit_off(typ, fld) (32 - __mlx5_bit_sz(typ, fld) - (__mlx5_bit_off(typ, fld) & 0x1f))
| ^~~~~~~~~~~~~~
include/linux/mlx5/device.h:58:60: note: in expansion of macro '__mlx5_dw_bit_off'
58 | #define __mlx5_dw_mask(typ, fld) (__mlx5_mask(typ, fld) << __mlx5_dw_bit_off(typ, fld))
| ^~~~~~~~~~~~~~~~~
include/linux/mlx5/device.h:78:10: note: in expansion of macro '__mlx5_dw_mask'
78 | (~__mlx5_dw_mask(typ, fld))) | (((_v) & __mlx5_mask(typ, fld)) \
| ^~~~~~~~~~~~~~
drivers/vdpa/mlx5/core/resources.c:193:2: note: in expansion of macro 'MLX5_SET'
193 | MLX5_SET(create_mkey_in, in, uid, mvdev->res.uid);
| ^~~~~~~~
>> include/linux/mlx5/device.h:50:57: error: 'struct mlx5_ifc_create_mkey_in_bits' has no member named 'uid'
50 | #define __mlx5_bit_sz(typ, fld) sizeof(__mlx5_nullp(typ)->fld)
| ^~
include/uapi/linux/byteorder/big_endian.h:39:51: note: in definition of macro '__cpu_to_be32'
39 | #define __cpu_to_be32(x) ((__force __be32)(__u32)(x))
| ^
include/linux/mlx5/device.h:57:47: note: in expansion of macro '__mlx5_bit_sz'
57 | #define __mlx5_mask(typ, fld) ((u32)((1ull << __mlx5_bit_sz(typ, fld)) - 1))
| ^~~~~~~~~~~~~
include/linux/mlx5/device.h:78:48: note: in expansion of macro '__mlx5_mask'
78 | (~__mlx5_dw_mask(typ, fld))) | (((_v) & __mlx5_mask(typ, fld)) \
| ^~~~~~~~~~~
drivers/vdpa/mlx5/core/resources.c:193:2: note: in expansion of macro 'MLX5_SET'
193 | MLX5_SET(create_mkey_in, in, uid, mvdev->res.uid);
| ^~~~~~~~
>> include/linux/mlx5/device.h:50:57: error: 'struct mlx5_ifc_create_mkey_in_bits' has no member named 'uid'
50 | #define __mlx5_bit_sz(typ, fld) sizeof(__mlx5_nullp(typ)->fld)
| ^~
include/uapi/linux/byteorder/big_endian.h:39:51: note: in definition of macro '__cpu_to_be32'
39 | #define __cpu_to_be32(x) ((__force __be32)(__u32)(x))
| ^
include/linux/mlx5/device.h:56:43: note: in expansion of macro '__mlx5_bit_sz'
56 | #define __mlx5_dw_bit_off(typ, fld) (32 - __mlx5_bit_sz(typ, fld) - (__mlx5_bit_off(typ, fld) & 0x1f))
| ^~~~~~~~~~~~~
include/linux/mlx5/device.h:79:11: note: in expansion of macro '__mlx5_dw_bit_off'
79 | << __mlx5_dw_bit_off(typ, fld))); \
| ^~~~~~~~~~~~~~~~~
drivers/vdpa/mlx5/core/resources.c:193:2: note: in expansion of macro 'MLX5_SET'
193 | MLX5_SET(create_mkey_in, in, uid, mvdev->res.uid);
| ^~~~~~~~
>> include/linux/compiler_types.h:135:35: error: 'struct mlx5_ifc_create_mkey_in_bits' has no member named 'uid'
135 | #define __compiler_offsetof(a, b) __builtin_offsetof(a, b)
| ^~~~~~~~~~~~~~~~~~
include/uapi/linux/byteorder/big_endian.h:39:51: note: in definition of macro '__cpu_to_be32'
39 | #define __cpu_to_be32(x) ((__force __be32)(__u32)(x))
| ^
include/linux/stddef.h:17:32: note: in expansion of macro '__compiler_offsetof'
17 | #define offsetof(TYPE, MEMBER) __compiler_offsetof(TYPE, MEMBER)
| ^~~~~~~~~~~~~~~~~~~
include/linux/mlx5/device.h:51:35: note: in expansion of macro 'offsetof'
51 | #define __mlx5_bit_off(typ, fld) (offsetof(struct mlx5_ifc_##typ##_bits, fld))
| ^~~~~~~~
include/linux/mlx5/device.h:56:70: note: in expansion of macro '__mlx5_bit_off'
56 | #define __mlx5_dw_bit_off(typ, fld) (32 - __mlx5_bit_sz(typ, fld) - (__mlx5_bit_off(typ, fld) & 0x1f))
| ^~~~~~~~~~~~~~
include/linux/mlx5/device.h:79:11: note: in expansion of macro '__mlx5_dw_bit_off'
79 | << __mlx5_dw_bit_off(typ, fld))); \
| ^~~~~~~~~~~~~~~~~
drivers/vdpa/mlx5/core/resources.c:193:2: note: in expansion of macro 'MLX5_SET'
193 | MLX5_SET(create_mkey_in, in, uid, mvdev->res.uid);
| ^~~~~~~~
drivers/vdpa/mlx5/core/resources.c: At top level:
drivers/vdpa/mlx5/core/resources.c:208:5: warning: no previous prototype for 'mlx5_vdpa_destroy_mkey' [-Wmissing-prototypes]
208 | int mlx5_vdpa_destroy_mkey(struct mlx5_vdpa_dev *mvdev, struct mlx5_core_mkey *mkey)
| ^~~~~~~~~~~~~~~~~~~~~~
In file included from <command-line>:
drivers/vdpa/mlx5/core/resources.c: In function 'mlx5_vdpa_destroy_mkey':
>> include/linux/compiler_types.h:135:35: error: 'struct mlx5_ifc_destroy_mkey_in_bits' has no member named 'uid'
135 | #define __compiler_offsetof(a, b) __builtin_offsetof(a, b)
| ^~~~~~~~~~~~~~~~~~
include/linux/stddef.h:17:32: note: in expansion of macro '__compiler_offsetof'
17 | #define offsetof(TYPE, MEMBER) __compiler_offsetof(TYPE, MEMBER)
| ^~~~~~~~~~~~~~~~~~~
include/linux/mlx5/device.h:51:35: note: in expansion of macro 'offsetof'
51 | #define __mlx5_bit_off(typ, fld) (offsetof(struct mlx5_ifc_##typ##_bits, fld))
| ^~~~~~~~
include/linux/mlx5/device.h:53:34: note: in expansion of macro '__mlx5_bit_off'
53 | #define __mlx5_dw_off(typ, fld) (__mlx5_bit_off(typ, fld) / 32)
| ^~~~~~~~~~~~~~
include/linux/mlx5/device.h:76:20: note: in expansion of macro '__mlx5_dw_off'
76 | *((__be32 *)(p) + __mlx5_dw_off(typ, fld)) = \
| ^~~~~~~~~~~~~
drivers/vdpa/mlx5/core/resources.c:212:2: note: in expansion of macro 'MLX5_SET'
212 | MLX5_SET(destroy_mkey_in, in, uid, mvdev->res.uid);
| ^~~~~~~~
In file included from include/linux/byteorder/big_endian.h:5,
from arch/mips/include/uapi/asm/byteorder.h:13,
from arch/mips/include/asm/bitops.h:20,
from include/linux/bitops.h:29,
from include/linux/kernel.h:12,
from include/linux/mlx5/driver.h:36,
from drivers/vdpa/mlx5/core/resources.c:4:
>> include/linux/compiler_types.h:135:35: error: 'struct mlx5_ifc_destroy_mkey_in_bits' has no member named 'uid'
135 | #define __compiler_offsetof(a, b) __builtin_offsetof(a, b)
| ^~~~~~~~~~~~~~~~~~
include/uapi/linux/byteorder/big_endian.h:39:51: note: in definition of macro '__cpu_to_be32'
39 | #define __cpu_to_be32(x) ((__force __be32)(__u32)(x))
| ^
include/linux/byteorder/generic.h:95:21: note: in expansion of macro '__be32_to_cpu'
95 | #define be32_to_cpu __be32_to_cpu
| ^~~~~~~~~~~~~
include/linux/stddef.h:17:32: note: in expansion of macro '__compiler_offsetof'
17 | #define offsetof(TYPE, MEMBER) __compiler_offsetof(TYPE, MEMBER)
| ^~~~~~~~~~~~~~~~~~~
include/linux/mlx5/device.h:51:35: note: in expansion of macro 'offsetof'
51 | #define __mlx5_bit_off(typ, fld) (offsetof(struct mlx5_ifc_##typ##_bits, fld))
| ^~~~~~~~
include/linux/mlx5/device.h:53:34: note: in expansion of macro '__mlx5_bit_off'
53 | #define __mlx5_dw_off(typ, fld) (__mlx5_bit_off(typ, fld) / 32)
| ^~~~~~~~~~~~~~
include/linux/mlx5/device.h:77:45: note: in expansion of macro '__mlx5_dw_off'
77 | cpu_to_be32((be32_to_cpu(*((__be32 *)(p) + __mlx5_dw_off(typ, fld))) & \
| ^~~~~~~~~~~~~
drivers/vdpa/mlx5/core/resources.c:212:2: note: in expansion of macro 'MLX5_SET'
212 | MLX5_SET(destroy_mkey_in, in, uid, mvdev->res.uid);
| ^~~~~~~~
>> include/linux/mlx5/device.h:50:57: error: 'struct mlx5_ifc_destroy_mkey_in_bits' has no member named 'uid'
50 | #define __mlx5_bit_sz(typ, fld) sizeof(__mlx5_nullp(typ)->fld)
| ^~
include/uapi/linux/byteorder/big_endian.h:39:51: note: in definition of macro '__cpu_to_be32'
39 | #define __cpu_to_be32(x) ((__force __be32)(__u32)(x))
| ^
include/linux/mlx5/device.h:57:47: note: in expansion of macro '__mlx5_bit_sz'
57 | #define __mlx5_mask(typ, fld) ((u32)((1ull << __mlx5_bit_sz(typ, fld)) - 1))
| ^~~~~~~~~~~~~
include/linux/mlx5/device.h:58:35: note: in expansion of macro '__mlx5_mask'
58 | #define __mlx5_dw_mask(typ, fld) (__mlx5_mask(typ, fld) << __mlx5_dw_bit_off(typ, fld))
| ^~~~~~~~~~~
include/linux/mlx5/device.h:78:10: note: in expansion of macro '__mlx5_dw_mask'
78 | (~__mlx5_dw_mask(typ, fld))) | (((_v) & __mlx5_mask(typ, fld)) \
| ^~~~~~~~~~~~~~
drivers/vdpa/mlx5/core/resources.c:212:2: note: in expansion of macro 'MLX5_SET'
212 | MLX5_SET(destroy_mkey_in, in, uid, mvdev->res.uid);
| ^~~~~~~~
>> include/linux/mlx5/device.h:50:57: error: 'struct mlx5_ifc_destroy_mkey_in_bits' has no member named 'uid'
50 | #define __mlx5_bit_sz(typ, fld) sizeof(__mlx5_nullp(typ)->fld)
| ^~
include/uapi/linux/byteorder/big_endian.h:39:51: note: in definition of macro '__cpu_to_be32'
39 | #define __cpu_to_be32(x) ((__force __be32)(__u32)(x))
| ^
include/linux/mlx5/device.h:56:43: note: in expansion of macro '__mlx5_bit_sz'
56 | #define __mlx5_dw_bit_off(typ, fld) (32 - __mlx5_bit_sz(typ, fld) - (__mlx5_bit_off(typ, fld) & 0x1f))
| ^~~~~~~~~~~~~
include/linux/mlx5/device.h:58:60: note: in expansion of macro '__mlx5_dw_bit_off'
58 | #define __mlx5_dw_mask(typ, fld) (__mlx5_mask(typ, fld) << __mlx5_dw_bit_off(typ, fld))
| ^~~~~~~~~~~~~~~~~
include/linux/mlx5/device.h:78:10: note: in expansion of macro '__mlx5_dw_mask'
78 | (~__mlx5_dw_mask(typ, fld))) | (((_v) & __mlx5_mask(typ, fld)) \
| ^~~~~~~~~~~~~~
drivers/vdpa/mlx5/core/resources.c:212:2: note: in expansion of macro 'MLX5_SET'
212 | MLX5_SET(destroy_mkey_in, in, uid, mvdev->res.uid);
| ^~~~~~~~
>> include/linux/compiler_types.h:135:35: error: 'struct mlx5_ifc_destroy_mkey_in_bits' has no member named 'uid'
135 | #define __compiler_offsetof(a, b) __builtin_offsetof(a, b)
| ^~~~~~~~~~~~~~~~~~
include/uapi/linux/byteorder/big_endian.h:39:51: note: in definition of macro '__cpu_to_be32'
39 | #define __cpu_to_be32(x) ((__force __be32)(__u32)(x))
| ^
include/linux/stddef.h:17:32: note: in expansion of macro '__compiler_offsetof'
17 | #define offsetof(TYPE, MEMBER) __compiler_offsetof(TYPE, MEMBER)
| ^~~~~~~~~~~~~~~~~~~
include/linux/mlx5/device.h:51:35: note: in expansion of macro 'offsetof'
51 | #define __mlx5_bit_off(typ, fld) (offsetof(struct mlx5_ifc_##typ##_bits, fld))
| ^~~~~~~~
include/linux/mlx5/device.h:56:70: note: in expansion of macro '__mlx5_bit_off'
56 | #define __mlx5_dw_bit_off(typ, fld) (32 - __mlx5_bit_sz(typ, fld) - (__mlx5_bit_off(typ, fld) & 0x1f))
| ^~~~~~~~~~~~~~
include/linux/mlx5/device.h:58:60: note: in expansion of macro '__mlx5_dw_bit_off'
58 | #define __mlx5_dw_mask(typ, fld) (__mlx5_mask(typ, fld) << __mlx5_dw_bit_off(typ, fld))
| ^~~~~~~~~~~~~~~~~
include/linux/mlx5/device.h:78:10: note: in expansion of macro '__mlx5_dw_mask'
78 | (~__mlx5_dw_mask(typ, fld))) | (((_v) & __mlx5_mask(typ, fld)) \
| ^~~~~~~~~~~~~~
drivers/vdpa/mlx5/core/resources.c:212:2: note: in expansion of macro 'MLX5_SET'
212 | MLX5_SET(destroy_mkey_in, in, uid, mvdev->res.uid);
| ^~~~~~~~
>> include/linux/mlx5/device.h:50:57: error: 'struct mlx5_ifc_destroy_mkey_in_bits' has no member named 'uid'
50 | #define __mlx5_bit_sz(typ, fld) sizeof(__mlx5_nullp(typ)->fld)
| ^~
include/uapi/linux/byteorder/big_endian.h:39:51: note: in definition of macro '__cpu_to_be32'
39 | #define __cpu_to_be32(x) ((__force __be32)(__u32)(x))
| ^
include/linux/mlx5/device.h:57:47: note: in expansion of macro '__mlx5_bit_sz'
57 | #define __mlx5_mask(typ, fld) ((u32)((1ull << __mlx5_bit_sz(typ, fld)) - 1))
| ^~~~~~~~~~~~~
include/linux/mlx5/device.h:78:48: note: in expansion of macro '__mlx5_mask'
78 | (~__mlx5_dw_mask(typ, fld))) | (((_v) & __mlx5_mask(typ, fld)) \
| ^~~~~~~~~~~
drivers/vdpa/mlx5/core/resources.c:212:2: note: in expansion of macro 'MLX5_SET'
212 | MLX5_SET(destroy_mkey_in, in, uid, mvdev->res.uid);
| ^~~~~~~~
include/linux/mlx5/device.h:50:57: error: 'struct mlx5_ifc_destroy_mkey_in_bits' has no member named 'uid'
50 | #define __mlx5_bit_sz(typ, fld) sizeof(__mlx5_nullp(typ)->fld)
| ^~
include/uapi/linux/byteorder/big_endian.h:39:51: note: in definition of macro '__cpu_to_be32'
39 | #define __cpu_to_be32(x) ((__force __be32)(__u32)(x))
| ^
include/linux/mlx5/device.h:56:43: note: in expansion of macro '__mlx5_bit_sz'
56 | #define __mlx5_dw_bit_off(typ, fld) (32 - __mlx5_bit_sz(typ, fld) - (__mlx5_bit_off(typ, fld) & 0x1f))
| ^~~~~~~~~~~~~
include/linux/mlx5/device.h:79:11: note: in expansion of macro '__mlx5_dw_bit_off'
79 | << __mlx5_dw_bit_off(typ, fld))); \
| ^~~~~~~~~~~~~~~~~
drivers/vdpa/mlx5/core/resources.c:212:2: note: in expansion of macro 'MLX5_SET'
212 | MLX5_SET(destroy_mkey_in, in, uid, mvdev->res.uid);
| ^~~~~~~~
include/linux/compiler_types.h:135:35: error: 'struct mlx5_ifc_destroy_mkey_in_bits' has no member named 'uid'
135 | #define __compiler_offsetof(a, b) __builtin_offsetof(a, b)
| ^~~~~~~~~~~~~~~~~~
include/uapi/linux/byteorder/big_endian.h:39:51: note: in definition of macro '__cpu_to_be32'
39 | #define __cpu_to_be32(x) ((__force __be32)(__u32)(x))
| ^
include/linux/stddef.h:17:32: note: in expansion of macro '__compiler_offsetof'
17 | #define offsetof(TYPE, MEMBER) __compiler_offsetof(TYPE, MEMBER)
| ^~~~~~~~~~~~~~~~~~~
include/linux/mlx5/device.h:51:35: note: in expansion of macro 'offsetof'
51 | #define __mlx5_bit_off(typ, fld) (offsetof(struct mlx5_ifc_##typ##_bits, fld))
| ^~~~~~~~
include/linux/mlx5/device.h:56:70: note: in expansion of macro '__mlx5_bit_off'
56 | #define __mlx5_dw_bit_off(typ, fld) (32 - __mlx5_bit_sz(typ, fld) - (__mlx5_bit_off(typ, fld) & 0x1f))
| ^~~~~~~~~~~~~~
include/linux/mlx5/device.h:79:11: note: in expansion of macro '__mlx5_dw_bit_off'
79 | << __mlx5_dw_bit_off(typ, fld))); \
| ^~~~~~~~~~~~~~~~~
drivers/vdpa/mlx5/core/resources.c:212:2: note: in expansion of macro 'MLX5_SET'
212 | MLX5_SET(destroy_mkey_in, in, uid, mvdev->res.uid);
| ^~~~~~~~
vim +52 drivers/vdpa/mlx5/core/resources.c
49
50 static int create_uctx(struct mlx5_vdpa_dev *mvdev, u16 *uid)
51 {
> 52 u32 out[MLX5_ST_SZ_DW(create_uctx_out)] = {};
53 int inlen;
54 void *in;
55 int err;
56
57 /* 0 means not supported */
58 if (!MLX5_CAP_GEN(mvdev->mdev, log_max_uctx))
59 return -EOPNOTSUPP;
60
61 inlen = MLX5_ST_SZ_BYTES(create_uctx_in);
62 in = kzalloc(inlen, GFP_KERNEL);
63 if (!in)
64 return -ENOMEM;
65
66 MLX5_SET(create_uctx_in, in, opcode, MLX5_CMD_OP_CREATE_UCTX);
67 MLX5_SET(create_uctx_in, in, uctx.cap, MLX5_UCTX_CAP_RAW_TX);
68
69 err = mlx5_cmd_exec(mvdev->mdev, in, inlen, out, sizeof(out));
70 kfree(in);
71 if (!err)
72 *uid = MLX5_GET(create_uctx_out, out, uid);
73
74 return err;
75 }
76
---
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 vhost next 09/10] vdpa/mlx5: Add shared memory registration code
by kernel test robot
Hi Eli,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on next-20200715]
url: https://github.com/0day-ci/linux/commits/Eli-Cohen/VDPA-support-for-Mella...
base: ca0e494af5edb59002665bf12871e94b4163a257
config: i386-allyesconfig (attached as .config)
compiler: gcc-9 (Debian 9.3.0-14) 9.3.0
reproduce (this is a W=1 build):
# save the attached .config to linux build tree
make W=1 ARCH=i386
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 >>):
include/linux/mlx5/device.h:56:43: note: in expansion of macro '__mlx5_bit_sz'
56 | #define __mlx5_dw_bit_off(typ, fld) (32 - __mlx5_bit_sz(typ, fld) - (__mlx5_bit_off(typ, fld) & 0x1f))
| ^~~~~~~~~~~~~
include/linux/mlx5/device.h:58:60: note: in expansion of macro '__mlx5_dw_bit_off'
58 | #define __mlx5_dw_mask(typ, fld) (__mlx5_mask(typ, fld) << __mlx5_dw_bit_off(typ, fld))
| ^~~~~~~~~~~~~~~~~
include/linux/mlx5/device.h:78:10: note: in expansion of macro '__mlx5_dw_mask'
78 | (~__mlx5_dw_mask(typ, fld))) | (((_v) & __mlx5_mask(typ, fld)) \
| ^~~~~~~~~~~~~~
drivers/vdpa/mlx5/core/mr.c:194:2: note: in expansion of macro 'MLX5_SET'
194 | MLX5_SET(create_mkey_in, in, uid, mvdev->res.uid);
| ^~~~~~~~
include/linux/compiler_types.h:135:35: error: 'struct mlx5_ifc_create_mkey_in_bits' has no member named 'uid'
135 | #define __compiler_offsetof(a, b) __builtin_offsetof(a, b)
| ^~~~~~~~~~~~~~~~~~
include/uapi/linux/swab.h:115:54: note: in definition of macro '__swab32'
115 | #define __swab32(x) (__u32)__builtin_bswap32((__u32)(x))
| ^
include/linux/byteorder/generic.h:94:21: note: in expansion of macro '__cpu_to_be32'
94 | #define cpu_to_be32 __cpu_to_be32
| ^~~~~~~~~~~~~
include/linux/stddef.h:17:32: note: in expansion of macro '__compiler_offsetof'
17 | #define offsetof(TYPE, MEMBER) __compiler_offsetof(TYPE, MEMBER)
| ^~~~~~~~~~~~~~~~~~~
include/linux/mlx5/device.h:51:35: note: in expansion of macro 'offsetof'
51 | #define __mlx5_bit_off(typ, fld) (offsetof(struct mlx5_ifc_##typ##_bits, fld))
| ^~~~~~~~
include/linux/mlx5/device.h:56:70: note: in expansion of macro '__mlx5_bit_off'
56 | #define __mlx5_dw_bit_off(typ, fld) (32 - __mlx5_bit_sz(typ, fld) - (__mlx5_bit_off(typ, fld) & 0x1f))
| ^~~~~~~~~~~~~~
include/linux/mlx5/device.h:58:60: note: in expansion of macro '__mlx5_dw_bit_off'
58 | #define __mlx5_dw_mask(typ, fld) (__mlx5_mask(typ, fld) << __mlx5_dw_bit_off(typ, fld))
| ^~~~~~~~~~~~~~~~~
include/linux/mlx5/device.h:78:10: note: in expansion of macro '__mlx5_dw_mask'
78 | (~__mlx5_dw_mask(typ, fld))) | (((_v) & __mlx5_mask(typ, fld)) \
| ^~~~~~~~~~~~~~
drivers/vdpa/mlx5/core/mr.c:194:2: note: in expansion of macro 'MLX5_SET'
194 | MLX5_SET(create_mkey_in, in, uid, mvdev->res.uid);
| ^~~~~~~~
include/linux/mlx5/device.h:50:57: error: 'struct mlx5_ifc_create_mkey_in_bits' has no member named 'uid'
50 | #define __mlx5_bit_sz(typ, fld) sizeof(__mlx5_nullp(typ)->fld)
| ^~
include/uapi/linux/swab.h:115:54: note: in definition of macro '__swab32'
115 | #define __swab32(x) (__u32)__builtin_bswap32((__u32)(x))
| ^
include/linux/byteorder/generic.h:94:21: note: in expansion of macro '__cpu_to_be32'
94 | #define cpu_to_be32 __cpu_to_be32
| ^~~~~~~~~~~~~
include/linux/mlx5/device.h:57:47: note: in expansion of macro '__mlx5_bit_sz'
57 | #define __mlx5_mask(typ, fld) ((u32)((1ull << __mlx5_bit_sz(typ, fld)) - 1))
| ^~~~~~~~~~~~~
include/linux/mlx5/device.h:78:48: note: in expansion of macro '__mlx5_mask'
78 | (~__mlx5_dw_mask(typ, fld))) | (((_v) & __mlx5_mask(typ, fld)) \
| ^~~~~~~~~~~
drivers/vdpa/mlx5/core/mr.c:194:2: note: in expansion of macro 'MLX5_SET'
194 | MLX5_SET(create_mkey_in, in, uid, mvdev->res.uid);
| ^~~~~~~~
include/linux/mlx5/device.h:50:57: error: 'struct mlx5_ifc_create_mkey_in_bits' has no member named 'uid'
50 | #define __mlx5_bit_sz(typ, fld) sizeof(__mlx5_nullp(typ)->fld)
| ^~
include/uapi/linux/swab.h:115:54: note: in definition of macro '__swab32'
115 | #define __swab32(x) (__u32)__builtin_bswap32((__u32)(x))
| ^
include/linux/byteorder/generic.h:94:21: note: in expansion of macro '__cpu_to_be32'
94 | #define cpu_to_be32 __cpu_to_be32
| ^~~~~~~~~~~~~
include/linux/mlx5/device.h:56:43: note: in expansion of macro '__mlx5_bit_sz'
56 | #define __mlx5_dw_bit_off(typ, fld) (32 - __mlx5_bit_sz(typ, fld) - (__mlx5_bit_off(typ, fld) & 0x1f))
| ^~~~~~~~~~~~~
include/linux/mlx5/device.h:79:11: note: in expansion of macro '__mlx5_dw_bit_off'
79 | << __mlx5_dw_bit_off(typ, fld))); \
| ^~~~~~~~~~~~~~~~~
drivers/vdpa/mlx5/core/mr.c:194:2: note: in expansion of macro 'MLX5_SET'
194 | MLX5_SET(create_mkey_in, in, uid, mvdev->res.uid);
| ^~~~~~~~
include/linux/compiler_types.h:135:35: error: 'struct mlx5_ifc_create_mkey_in_bits' has no member named 'uid'
135 | #define __compiler_offsetof(a, b) __builtin_offsetof(a, b)
| ^~~~~~~~~~~~~~~~~~
include/uapi/linux/swab.h:115:54: note: in definition of macro '__swab32'
115 | #define __swab32(x) (__u32)__builtin_bswap32((__u32)(x))
| ^
include/linux/byteorder/generic.h:94:21: note: in expansion of macro '__cpu_to_be32'
94 | #define cpu_to_be32 __cpu_to_be32
| ^~~~~~~~~~~~~
include/linux/stddef.h:17:32: note: in expansion of macro '__compiler_offsetof'
17 | #define offsetof(TYPE, MEMBER) __compiler_offsetof(TYPE, MEMBER)
| ^~~~~~~~~~~~~~~~~~~
include/linux/mlx5/device.h:51:35: note: in expansion of macro 'offsetof'
51 | #define __mlx5_bit_off(typ, fld) (offsetof(struct mlx5_ifc_##typ##_bits, fld))
| ^~~~~~~~
include/linux/mlx5/device.h:56:70: note: in expansion of macro '__mlx5_bit_off'
56 | #define __mlx5_dw_bit_off(typ, fld) (32 - __mlx5_bit_sz(typ, fld) - (__mlx5_bit_off(typ, fld) & 0x1f))
| ^~~~~~~~~~~~~~
include/linux/mlx5/device.h:79:11: note: in expansion of macro '__mlx5_dw_bit_off'
79 | << __mlx5_dw_bit_off(typ, fld))); \
| ^~~~~~~~~~~~~~~~~
drivers/vdpa/mlx5/core/mr.c:194:2: note: in expansion of macro 'MLX5_SET'
194 | MLX5_SET(create_mkey_in, in, uid, mvdev->res.uid);
| ^~~~~~~~
drivers/vdpa/mlx5/core/mr.c: At top level:
>> drivers/vdpa/mlx5/core/mr.c:414:5: warning: no previous prototype for 'mlx5_vdpa_create_mr' [-Wmissing-prototypes]
414 | int mlx5_vdpa_create_mr(struct mlx5_vdpa_dev *mvdev, struct vhost_iotlb *iotlb)
| ^~~~~~~~~~~~~~~~~~~
>> drivers/vdpa/mlx5/core/mr.c:425:6: warning: no previous prototype for 'mlx5_vdpa_destroy_mr' [-Wmissing-prototypes]
425 | void mlx5_vdpa_destroy_mr(struct mlx5_vdpa_dev *mvdev)
| ^~~~~~~~~~~~~~~~~~~~
vim +/mlx5_vdpa_create_mr +414 drivers/vdpa/mlx5/core/mr.c
413
> 414 int mlx5_vdpa_create_mr(struct mlx5_vdpa_dev *mvdev, struct vhost_iotlb *iotlb)
415 {
416 struct mlx5_vdpa_mr *mr = &mvdev->mr;
417 int err;
418
419 mutex_lock(&mr->mkey_mtx);
420 err = _mlx5_vdpa_create_mr(mvdev, iotlb);
421 mutex_unlock(&mr->mkey_mtx);
422 return err;
423 }
424
> 425 void mlx5_vdpa_destroy_mr(struct mlx5_vdpa_dev *mvdev)
426 {
427 struct mlx5_vdpa_mr *mr = &mvdev->mr;
428 struct mlx5_vdpa_direct_mr *dmr;
429 struct mlx5_vdpa_direct_mr *n;
430
431 mutex_lock(&mr->mkey_mtx);
432 if (!mr->initialized)
433 goto out;
434
435 destroy_indirect_key(mvdev, mr);
436 list_for_each_entry_safe_reverse(dmr, n, &mr->head, list) {
437 list_del_init(&dmr->list);
438 unmap_direct_mr(mvdev, dmr);
439 kfree(dmr);
440 }
441 memset(mr, 0, sizeof(*mr));
442 mr->initialized = false;
443 out:
444 mutex_unlock(&mr->mkey_mtx);
445 }
446
---
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 bpf-next v2 3/6] bpf: support attaching freplace programs to multiple attach points
by Dan Carpenter
Hi Toke,
url: https://github.com/0day-ci/linux/commits/Toke-H-iland-J-rgensen/bpf-Suppo...
base: https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git master
config: x86_64-randconfig-m001-20200715 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-14) 9.3.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
Reported-by: Dan Carpenter <dan.carpenter(a)oracle.com>
New smatch warnings:
kernel/bpf/verifier.c:10900 bpf_check_attach_target() error: we previously assumed 'tgt_prog' could be null (see line 10772)
Old smatch warnings:
include/linux/bpf_verifier.h:351 bpf_verifier_log_needed() error: we previously assumed 'log' could be null (see line 350)
# https://github.com/0day-ci/linux/commit/cc8571ec751a3a6065838e0b15105f8be...
git remote add linux-review https://github.com/0day-ci/linux
git remote update linux-review
git checkout cc8571ec751a3a6065838e0b15105f8be0ced6fe
vim +/tgt_prog +10900 kernel/bpf/verifier.c
c2d0f6ffe7709e Toke Høiland-Jørgensen 2020-07-15 10734 int bpf_check_attach_target(struct bpf_verifier_log *log,
c2d0f6ffe7709e Toke Høiland-Jørgensen 2020-07-15 10735 const struct bpf_prog *prog,
c2d0f6ffe7709e Toke Høiland-Jørgensen 2020-07-15 10736 const struct bpf_prog *tgt_prog,
c2d0f6ffe7709e Toke Høiland-Jørgensen 2020-07-15 10737 u32 btf_id,
c2d0f6ffe7709e Toke Høiland-Jørgensen 2020-07-15 10738 struct btf_func_model *fmodel,
c2d0f6ffe7709e Toke Høiland-Jørgensen 2020-07-15 10739 long *tgt_addr,
c2d0f6ffe7709e Toke Høiland-Jørgensen 2020-07-15 10740 const char **tgt_name,
c2d0f6ffe7709e Toke Høiland-Jørgensen 2020-07-15 10741 const struct btf_type **tgt_type)
38207291604401 Martin KaFai Lau 2019-10-24 10742 {
be8704ff07d237 Alexei Starovoitov 2020-01-20 10743 bool prog_extension = prog->type == BPF_PROG_TYPE_EXT;
f1b9509c2fb0ef Alexei Starovoitov 2019-10-30 10744 const char prefix[] = "btf_trace_";
5b92a28aae4dd0 Alexei Starovoitov 2019-11-14 10745 int ret = 0, subprog = -1, i;
38207291604401 Martin KaFai Lau 2019-10-24 10746 const struct btf_type *t;
5b92a28aae4dd0 Alexei Starovoitov 2019-11-14 10747 bool conservative = true;
38207291604401 Martin KaFai Lau 2019-10-24 10748 const char *tname;
5b92a28aae4dd0 Alexei Starovoitov 2019-11-14 10749 struct btf *btf;
c2d0f6ffe7709e Toke Høiland-Jørgensen 2020-07-15 10750 long addr = 0;
38207291604401 Martin KaFai Lau 2019-10-24 10751
f1b9509c2fb0ef Alexei Starovoitov 2019-10-30 10752 if (!btf_id) {
e33243ff1dd2cb Toke Høiland-Jørgensen 2020-07-15 10753 bpf_log(log, "Tracing programs must provide btf_id\n");
f1b9509c2fb0ef Alexei Starovoitov 2019-10-30 10754 return -EINVAL;
f1b9509c2fb0ef Alexei Starovoitov 2019-10-30 10755 }
5b92a28aae4dd0 Alexei Starovoitov 2019-11-14 10756 btf = bpf_prog_get_target_btf(prog);
5b92a28aae4dd0 Alexei Starovoitov 2019-11-14 10757 if (!btf) {
e33243ff1dd2cb Toke Høiland-Jørgensen 2020-07-15 10758 bpf_log(log,
5b92a28aae4dd0 Alexei Starovoitov 2019-11-14 10759 "FENTRY/FEXIT program can only be attached to another program annotated with BTF\n");
5b92a28aae4dd0 Alexei Starovoitov 2019-11-14 10760 return -EINVAL;
5b92a28aae4dd0 Alexei Starovoitov 2019-11-14 10761 }
5b92a28aae4dd0 Alexei Starovoitov 2019-11-14 10762 t = btf_type_by_id(btf, btf_id);
38207291604401 Martin KaFai Lau 2019-10-24 10763 if (!t) {
e33243ff1dd2cb Toke Høiland-Jørgensen 2020-07-15 10764 bpf_log(log, "attach_btf_id %u is invalid\n", btf_id);
38207291604401 Martin KaFai Lau 2019-10-24 10765 return -EINVAL;
38207291604401 Martin KaFai Lau 2019-10-24 10766 }
5b92a28aae4dd0 Alexei Starovoitov 2019-11-14 10767 tname = btf_name_by_offset(btf, t->name_off);
f1b9509c2fb0ef Alexei Starovoitov 2019-10-30 10768 if (!tname) {
e33243ff1dd2cb Toke Høiland-Jørgensen 2020-07-15 10769 bpf_log(log, "attach_btf_id %u doesn't have a name\n", btf_id);
f1b9509c2fb0ef Alexei Starovoitov 2019-10-30 10770 return -EINVAL;
f1b9509c2fb0ef Alexei Starovoitov 2019-10-30 10771 }
5b92a28aae4dd0 Alexei Starovoitov 2019-11-14 @10772 if (tgt_prog) {
5b92a28aae4dd0 Alexei Starovoitov 2019-11-14 10773 struct bpf_prog_aux *aux = tgt_prog->aux;
5b92a28aae4dd0 Alexei Starovoitov 2019-11-14 10774
5b92a28aae4dd0 Alexei Starovoitov 2019-11-14 10775 for (i = 0; i < aux->func_info_cnt; i++)
5b92a28aae4dd0 Alexei Starovoitov 2019-11-14 10776 if (aux->func_info[i].type_id == btf_id) {
5b92a28aae4dd0 Alexei Starovoitov 2019-11-14 10777 subprog = i;
5b92a28aae4dd0 Alexei Starovoitov 2019-11-14 10778 break;
5b92a28aae4dd0 Alexei Starovoitov 2019-11-14 10779 }
5b92a28aae4dd0 Alexei Starovoitov 2019-11-14 10780 if (subprog == -1) {
e33243ff1dd2cb Toke Høiland-Jørgensen 2020-07-15 10781 bpf_log(log, "Subprog %s doesn't exist\n", tname);
5b92a28aae4dd0 Alexei Starovoitov 2019-11-14 10782 return -EINVAL;
5b92a28aae4dd0 Alexei Starovoitov 2019-11-14 10783 }
5b92a28aae4dd0 Alexei Starovoitov 2019-11-14 10784 conservative = aux->func_info_aux[subprog].unreliable;
be8704ff07d237 Alexei Starovoitov 2020-01-20 10785 if (prog_extension) {
be8704ff07d237 Alexei Starovoitov 2020-01-20 10786 if (conservative) {
e33243ff1dd2cb Toke Høiland-Jørgensen 2020-07-15 10787 bpf_log(log,
be8704ff07d237 Alexei Starovoitov 2020-01-20 10788 "Cannot replace static functions\n");
be8704ff07d237 Alexei Starovoitov 2020-01-20 10789 return -EINVAL;
be8704ff07d237 Alexei Starovoitov 2020-01-20 10790 }
be8704ff07d237 Alexei Starovoitov 2020-01-20 10791 if (!prog->jit_requested) {
e33243ff1dd2cb Toke Høiland-Jørgensen 2020-07-15 10792 bpf_log(log,
be8704ff07d237 Alexei Starovoitov 2020-01-20 10793 "Extension programs should be JITed\n");
be8704ff07d237 Alexei Starovoitov 2020-01-20 10794 return -EINVAL;
be8704ff07d237 Alexei Starovoitov 2020-01-20 10795 }
be8704ff07d237 Alexei Starovoitov 2020-01-20 10796 }
be8704ff07d237 Alexei Starovoitov 2020-01-20 10797 if (!tgt_prog->jited) {
e33243ff1dd2cb Toke Høiland-Jørgensen 2020-07-15 10798 bpf_log(log, "Can attach to only JITed progs\n");
be8704ff07d237 Alexei Starovoitov 2020-01-20 10799 return -EINVAL;
be8704ff07d237 Alexei Starovoitov 2020-01-20 10800 }
be8704ff07d237 Alexei Starovoitov 2020-01-20 10801 if (tgt_prog->type == prog->type) {
be8704ff07d237 Alexei Starovoitov 2020-01-20 10802 /* Cannot fentry/fexit another fentry/fexit program.
be8704ff07d237 Alexei Starovoitov 2020-01-20 10803 * Cannot attach program extension to another extension.
be8704ff07d237 Alexei Starovoitov 2020-01-20 10804 * It's ok to attach fentry/fexit to extension program.
be8704ff07d237 Alexei Starovoitov 2020-01-20 10805 */
e33243ff1dd2cb Toke Høiland-Jørgensen 2020-07-15 10806 bpf_log(log, "Cannot recursively attach\n");
be8704ff07d237 Alexei Starovoitov 2020-01-20 10807 return -EINVAL;
be8704ff07d237 Alexei Starovoitov 2020-01-20 10808 }
be8704ff07d237 Alexei Starovoitov 2020-01-20 10809 if (tgt_prog->type == BPF_PROG_TYPE_TRACING &&
be8704ff07d237 Alexei Starovoitov 2020-01-20 10810 prog_extension &&
be8704ff07d237 Alexei Starovoitov 2020-01-20 10811 (tgt_prog->expected_attach_type == BPF_TRACE_FENTRY ||
be8704ff07d237 Alexei Starovoitov 2020-01-20 10812 tgt_prog->expected_attach_type == BPF_TRACE_FEXIT)) {
be8704ff07d237 Alexei Starovoitov 2020-01-20 10813 /* Program extensions can extend all program types
be8704ff07d237 Alexei Starovoitov 2020-01-20 10814 * except fentry/fexit. The reason is the following.
be8704ff07d237 Alexei Starovoitov 2020-01-20 10815 * The fentry/fexit programs are used for performance
be8704ff07d237 Alexei Starovoitov 2020-01-20 10816 * analysis, stats and can be attached to any program
be8704ff07d237 Alexei Starovoitov 2020-01-20 10817 * type except themselves. When extension program is
be8704ff07d237 Alexei Starovoitov 2020-01-20 10818 * replacing XDP function it is necessary to allow
be8704ff07d237 Alexei Starovoitov 2020-01-20 10819 * performance analysis of all functions. Both original
be8704ff07d237 Alexei Starovoitov 2020-01-20 10820 * XDP program and its program extension. Hence
be8704ff07d237 Alexei Starovoitov 2020-01-20 10821 * attaching fentry/fexit to BPF_PROG_TYPE_EXT is
be8704ff07d237 Alexei Starovoitov 2020-01-20 10822 * allowed. If extending of fentry/fexit was allowed it
be8704ff07d237 Alexei Starovoitov 2020-01-20 10823 * would be possible to create long call chain
be8704ff07d237 Alexei Starovoitov 2020-01-20 10824 * fentry->extension->fentry->extension beyond
be8704ff07d237 Alexei Starovoitov 2020-01-20 10825 * reasonable stack size. Hence extending fentry is not
be8704ff07d237 Alexei Starovoitov 2020-01-20 10826 * allowed.
be8704ff07d237 Alexei Starovoitov 2020-01-20 10827 */
e33243ff1dd2cb Toke Høiland-Jørgensen 2020-07-15 10828 bpf_log(log, "Cannot extend fentry/fexit\n");
be8704ff07d237 Alexei Starovoitov 2020-01-20 10829 return -EINVAL;
be8704ff07d237 Alexei Starovoitov 2020-01-20 10830 }
5b92a28aae4dd0 Alexei Starovoitov 2019-11-14 10831 } else {
be8704ff07d237 Alexei Starovoitov 2020-01-20 10832 if (prog_extension) {
e33243ff1dd2cb Toke Høiland-Jørgensen 2020-07-15 10833 bpf_log(log, "Cannot replace kernel functions\n");
be8704ff07d237 Alexei Starovoitov 2020-01-20 10834 return -EINVAL;
be8704ff07d237 Alexei Starovoitov 2020-01-20 10835 }
5b92a28aae4dd0 Alexei Starovoitov 2019-11-14 10836 }
f1b9509c2fb0ef Alexei Starovoitov 2019-10-30 10837
f1b9509c2fb0ef Alexei Starovoitov 2019-10-30 10838 switch (prog->expected_attach_type) {
f1b9509c2fb0ef Alexei Starovoitov 2019-10-30 10839 case BPF_TRACE_RAW_TP:
5b92a28aae4dd0 Alexei Starovoitov 2019-11-14 10840 if (tgt_prog) {
e33243ff1dd2cb Toke Høiland-Jørgensen 2020-07-15 10841 bpf_log(log,
5b92a28aae4dd0 Alexei Starovoitov 2019-11-14 10842 "Only FENTRY/FEXIT progs are attachable to another BPF prog\n");
5b92a28aae4dd0 Alexei Starovoitov 2019-11-14 10843 return -EINVAL;
5b92a28aae4dd0 Alexei Starovoitov 2019-11-14 10844 }
38207291604401 Martin KaFai Lau 2019-10-24 10845 if (!btf_type_is_typedef(t)) {
e33243ff1dd2cb Toke Høiland-Jørgensen 2020-07-15 10846 bpf_log(log, "attach_btf_id %u is not a typedef\n",
38207291604401 Martin KaFai Lau 2019-10-24 10847 btf_id);
38207291604401 Martin KaFai Lau 2019-10-24 10848 return -EINVAL;
38207291604401 Martin KaFai Lau 2019-10-24 10849 }
f1b9509c2fb0ef Alexei Starovoitov 2019-10-30 10850 if (strncmp(prefix, tname, sizeof(prefix) - 1)) {
e33243ff1dd2cb Toke Høiland-Jørgensen 2020-07-15 10851 bpf_log(log, "attach_btf_id %u points to wrong type name %s\n",
38207291604401 Martin KaFai Lau 2019-10-24 10852 btf_id, tname);
38207291604401 Martin KaFai Lau 2019-10-24 10853 return -EINVAL;
38207291604401 Martin KaFai Lau 2019-10-24 10854 }
38207291604401 Martin KaFai Lau 2019-10-24 10855 tname += sizeof(prefix) - 1;
5b92a28aae4dd0 Alexei Starovoitov 2019-11-14 10856 t = btf_type_by_id(btf, t->type);
38207291604401 Martin KaFai Lau 2019-10-24 10857 if (!btf_type_is_ptr(t))
38207291604401 Martin KaFai Lau 2019-10-24 10858 /* should never happen in valid vmlinux build */
38207291604401 Martin KaFai Lau 2019-10-24 10859 return -EINVAL;
5b92a28aae4dd0 Alexei Starovoitov 2019-11-14 10860 t = btf_type_by_id(btf, t->type);
38207291604401 Martin KaFai Lau 2019-10-24 10861 if (!btf_type_is_func_proto(t))
38207291604401 Martin KaFai Lau 2019-10-24 10862 /* should never happen in valid vmlinux build */
38207291604401 Martin KaFai Lau 2019-10-24 10863 return -EINVAL;
38207291604401 Martin KaFai Lau 2019-10-24 10864
c2d0f6ffe7709e Toke Høiland-Jørgensen 2020-07-15 10865 break;
15d83c4d7cef5c Yonghong Song 2020-05-09 10866 case BPF_TRACE_ITER:
15d83c4d7cef5c Yonghong Song 2020-05-09 10867 if (!btf_type_is_func(t)) {
e33243ff1dd2cb Toke Høiland-Jørgensen 2020-07-15 10868 bpf_log(log, "attach_btf_id %u is not a function\n",
15d83c4d7cef5c Yonghong Song 2020-05-09 10869 btf_id);
15d83c4d7cef5c Yonghong Song 2020-05-09 10870 return -EINVAL;
15d83c4d7cef5c Yonghong Song 2020-05-09 10871 }
15d83c4d7cef5c Yonghong Song 2020-05-09 10872 t = btf_type_by_id(btf, t->type);
15d83c4d7cef5c Yonghong Song 2020-05-09 10873 if (!btf_type_is_func_proto(t))
15d83c4d7cef5c Yonghong Song 2020-05-09 10874 return -EINVAL;
c2d0f6ffe7709e Toke Høiland-Jørgensen 2020-07-15 10875 ret = btf_distill_func_proto(log, btf, t, tname, fmodel);
c2d0f6ffe7709e Toke Høiland-Jørgensen 2020-07-15 10876 if (ret)
15d83c4d7cef5c Yonghong Song 2020-05-09 10877 return ret;
c2d0f6ffe7709e Toke Høiland-Jørgensen 2020-07-15 10878 break;
be8704ff07d237 Alexei Starovoitov 2020-01-20 10879 default:
be8704ff07d237 Alexei Starovoitov 2020-01-20 10880 if (!prog_extension)
be8704ff07d237 Alexei Starovoitov 2020-01-20 10881 return -EINVAL;
be8704ff07d237 Alexei Starovoitov 2020-01-20 10882 /* fallthrough */
ae24082331d9bb KP Singh 2020-03-04 10883 case BPF_MODIFY_RETURN:
9e4e01dfd3254c KP Singh 2020-03-29 10884 case BPF_LSM_MAC:
fec56f5890d93f Alexei Starovoitov 2019-11-14 10885 case BPF_TRACE_FENTRY:
fec56f5890d93f Alexei Starovoitov 2019-11-14 10886 case BPF_TRACE_FEXIT:
fec56f5890d93f Alexei Starovoitov 2019-11-14 10887 if (!btf_type_is_func(t)) {
e33243ff1dd2cb Toke Høiland-Jørgensen 2020-07-15 10888 bpf_log(log, "attach_btf_id %u is not a function\n",
fec56f5890d93f Alexei Starovoitov 2019-11-14 10889 btf_id);
fec56f5890d93f Alexei Starovoitov 2019-11-14 10890 return -EINVAL;
fec56f5890d93f Alexei Starovoitov 2019-11-14 10891 }
be8704ff07d237 Alexei Starovoitov 2020-01-20 10892 if (prog_extension &&
e33243ff1dd2cb Toke Høiland-Jørgensen 2020-07-15 10893 btf_check_type_match(log, prog, btf, t))
be8704ff07d237 Alexei Starovoitov 2020-01-20 10894 return -EINVAL;
5b92a28aae4dd0 Alexei Starovoitov 2019-11-14 10895 t = btf_type_by_id(btf, t->type);
fec56f5890d93f Alexei Starovoitov 2019-11-14 10896 if (!btf_type_is_func_proto(t))
fec56f5890d93f Alexei Starovoitov 2019-11-14 10897 return -EINVAL;
c2d0f6ffe7709e Toke Høiland-Jørgensen 2020-07-15 10898
cc8571ec751a3a Toke Høiland-Jørgensen 2020-07-15 10899 if ((prog->aux->tgt_prog_type &&
cc8571ec751a3a Toke Høiland-Jørgensen 2020-07-15 @10900 prog->aux->tgt_prog_type != tgt_prog->type) ||
^^^^^^^^^^^^^^
cc8571ec751a3a Toke Høiland-Jørgensen 2020-07-15 10901 (prog->aux->tgt_attach_type &&
cc8571ec751a3a Toke Høiland-Jørgensen 2020-07-15 10902 prog->aux->tgt_attach_type != tgt_prog->expected_attach_type))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Not checked.
cc8571ec751a3a Toke Høiland-Jørgensen 2020-07-15 10903 return -EINVAL;
cc8571ec751a3a Toke Høiland-Jørgensen 2020-07-15 10904
c2d0f6ffe7709e Toke Høiland-Jørgensen 2020-07-15 10905 if (tgt_prog && conservative)
5b92a28aae4dd0 Alexei Starovoitov 2019-11-14 10906 t = NULL;
c2d0f6ffe7709e Toke Høiland-Jørgensen 2020-07-15 10907
c2d0f6ffe7709e Toke Høiland-Jørgensen 2020-07-15 10908 ret = btf_distill_func_proto(log, btf, t, tname, fmodel);
fec56f5890d93f Alexei Starovoitov 2019-11-14 10909 if (ret < 0)
c2d0f6ffe7709e Toke Høiland-Jørgensen 2020-07-15 10910 return ret;
c2d0f6ffe7709e Toke Høiland-Jørgensen 2020-07-15 10911
5b92a28aae4dd0 Alexei Starovoitov 2019-11-14 10912 if (tgt_prog) {
e9eeec58c992c4 Yonghong Song 2019-12-04 10913 if (subprog == 0)
e9eeec58c992c4 Yonghong Song 2019-12-04 10914 addr = (long) tgt_prog->bpf_func;
e9eeec58c992c4 Yonghong Song 2019-12-04 10915 else
5b92a28aae4dd0 Alexei Starovoitov 2019-11-14 10916 addr = (long) tgt_prog->aux->func[subprog]->bpf_func;
5b92a28aae4dd0 Alexei Starovoitov 2019-11-14 10917 } else {
fec56f5890d93f Alexei Starovoitov 2019-11-14 10918 addr = kallsyms_lookup_name(tname);
fec56f5890d93f Alexei Starovoitov 2019-11-14 10919 if (!addr) {
e33243ff1dd2cb Toke Høiland-Jørgensen 2020-07-15 10920 bpf_log(log,
fec56f5890d93f Alexei Starovoitov 2019-11-14 10921 "The address of function %s cannot be found\n",
fec56f5890d93f Alexei Starovoitov 2019-11-14 10922 tname);
c2d0f6ffe7709e Toke Høiland-Jørgensen 2020-07-15 10923 return -ENOENT;
fec56f5890d93f Alexei Starovoitov 2019-11-14 10924 }
5b92a28aae4dd0 Alexei Starovoitov 2019-11-14 10925 }
c2d0f6ffe7709e Toke Høiland-Jørgensen 2020-07-15 10926 break;
c2d0f6ffe7709e Toke Høiland-Jørgensen 2020-07-15 10927 }
18644cec714aab Alexei Starovoitov 2020-05-28 10928
c2d0f6ffe7709e Toke Høiland-Jørgensen 2020-07-15 10929 *tgt_addr = addr;
c2d0f6ffe7709e Toke Høiland-Jørgensen 2020-07-15 10930 if (tgt_name)
c2d0f6ffe7709e Toke Høiland-Jørgensen 2020-07-15 10931 *tgt_name = tname;
c2d0f6ffe7709e Toke Høiland-Jørgensen 2020-07-15 10932 if (tgt_type)
c2d0f6ffe7709e Toke Høiland-Jørgensen 2020-07-15 10933 *tgt_type = t;
c2d0f6ffe7709e Toke Høiland-Jørgensen 2020-07-15 10934 return 0;
18644cec714aab Alexei Starovoitov 2020-05-28 10935 }
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 2 months
drivers/pci/controller/pci-v3-semi.c:808:2-9: line 808 is redundant because platform_get_irq() already prints an error (fwd)
by Julia Lawall
Unneeded warning message on failure of platform_get_irq.
julia
---------- Forwarded message ----------
Date: Thu, 16 Jul 2020 08:05:55 +0800
From: kernel test robot <lkp(a)intel.com>
To: kbuild(a)lists.01.org
Cc: lkp(a)intel.com, Julia Lawall <julia.lawall(a)lip6.fr>
Subject: drivers/pci/controller/pci-v3-semi.c:808:2-9: line 808 is redundant
because platform_get_irq() already prints an error
CC: kbuild-all(a)lists.01.org
CC: linux-kernel(a)vger.kernel.org
TO: YueHaibing <yuehaibing(a)huawei.com>
CC: "Greg Kroah-Hartman" <gregkh(a)linuxfoundation.org>
CC: Stephen Boyd <swboyd(a)chromium.org>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: e9919e11e219eaa5e8041b7b1a196839143e9125
commit: ca7ce5a2710ad2a57bf7d0c4c712590bb69a5e1c coccinelle: platform_get_irq: Fix parse error
date: 10 months ago
:::::: branch date: 2 days ago
:::::: commit date: 10 months ago
config: arm-randconfig-c021-20200715 (attached as .config)
compiler: arm-linux-gnueabi-gcc (GCC) 9.3.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
Reported-by: Julia Lawall <julia.lawall(a)lip6.fr>
coccinelle warnings: (new ones prefixed by >>)
>> drivers/pci/controller/pci-v3-semi.c:808:2-9: line 808 is redundant because platform_get_irq() already prints an error
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit...
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git remote update linus
git checkout ca7ce5a2710ad2a57bf7d0c4c712590bb69a5e1c
vim +808 drivers/pci/controller/pci-v3-semi.c
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 730
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 731 static int v3_pci_probe(struct platform_device *pdev)
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 732 {
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 733 struct device *dev = &pdev->dev;
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 734 struct device_node *np = dev->of_node;
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 735 resource_size_t io_base;
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 736 struct resource *regs;
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 737 struct resource_entry *win;
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 738 struct v3_pci *v3;
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 739 struct pci_host_bridge *host;
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 740 struct clk *clk;
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 741 u16 val;
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 742 int irq;
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 743 int ret;
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 744 LIST_HEAD(res);
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 745
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 746 host = pci_alloc_host_bridge(sizeof(*v3));
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 747 if (!host)
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 748 return -ENOMEM;
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 749
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 750 host->dev.parent = dev;
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 751 host->ops = &v3_pci_ops;
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 752 host->busnr = 0;
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 753 host->msi = NULL;
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 754 host->map_irq = of_irq_parse_and_map_pci;
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 755 host->swizzle_irq = pci_common_swizzle;
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 756 v3 = pci_host_bridge_priv(host);
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 757 host->sysdata = v3;
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 758 v3->dev = dev;
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 759
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 760 /* Get and enable host clock */
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 761 clk = devm_clk_get(dev, NULL);
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 762 if (IS_ERR(clk)) {
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 763 dev_err(dev, "clock not found\n");
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 764 return PTR_ERR(clk);
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 765 }
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 766 ret = clk_prepare_enable(clk);
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 767 if (ret) {
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 768 dev_err(dev, "unable to enable clock\n");
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 769 return ret;
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 770 }
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 771
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 772 regs = platform_get_resource(pdev, IORESOURCE_MEM, 0);
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 773 v3->base = devm_ioremap_resource(dev, regs);
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 774 if (IS_ERR(v3->base))
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 775 return PTR_ERR(v3->base);
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 776 /*
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 777 * The hardware has a register with the physical base address
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 778 * of the V3 controller itself, verify that this is the same
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 779 * as the physical memory we've remapped it from.
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 780 */
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 781 if (readl(v3->base + V3_LB_IO_BASE) != (regs->start >> 16))
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 782 dev_err(dev, "V3_LB_IO_BASE = %08x but device is @%pR\n",
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 783 readl(v3->base + V3_LB_IO_BASE), regs);
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 784
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 785 /* Configuration space is 16MB directly mapped */
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 786 regs = platform_get_resource(pdev, IORESOURCE_MEM, 1);
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 787 if (resource_size(regs) != SZ_16M) {
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 788 dev_err(dev, "config mem is not 16MB!\n");
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 789 return -EINVAL;
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 790 }
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 791 v3->config_mem = regs->start;
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 792 v3->config_base = devm_ioremap_resource(dev, regs);
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 793 if (IS_ERR(v3->config_base))
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 794 return PTR_ERR(v3->config_base);
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 795
5bd51b35c7cbbc9 drivers/pci/host/pci-v3-semi.c Jan Kiszka 2018-05-15 796 ret = devm_of_pci_get_host_bridge_resources(dev, 0, 0xff, &res,
055f87a2a336409 drivers/pci/host/pci-v3-semi.c Jan Kiszka 2018-05-15 797 &io_base);
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 798 if (ret)
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 799 return ret;
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 800
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 801 ret = devm_request_pci_bus_resources(dev, &res);
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 802 if (ret)
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 803 return ret;
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 804
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 805 /* Get and request error IRQ resource */
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 806 irq = platform_get_irq(pdev, 0);
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 807 if (irq <= 0) {
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 @808 dev_err(dev, "unable to obtain PCIv3 error IRQ\n");
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 809 return -ENODEV;
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 810 }
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 811 ret = devm_request_irq(dev, irq, v3_irq, 0,
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 812 "PCIv3 error", v3);
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 813 if (ret < 0) {
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 814 dev_err(dev,
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 815 "unable to request PCIv3 error IRQ %d (%d)\n",
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 816 irq, ret);
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 817 return ret;
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 818 }
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 819
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 820 /*
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 821 * Unlock V3 registers, but only if they were previously locked.
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 822 */
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 823 if (readw(v3->base + V3_SYSTEM) & V3_SYSTEM_M_LOCK)
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 824 writew(V3_SYSTEM_UNLOCK, v3->base + V3_SYSTEM);
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 825
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 826 /* Disable all slave access while we set up the windows */
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 827 val = readw(v3->base + V3_PCI_CMD);
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 828 val &= ~(PCI_COMMAND_IO | PCI_COMMAND_MEMORY | PCI_COMMAND_MASTER);
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 829 writew(val, v3->base + V3_PCI_CMD);
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 830
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 831 /* Put the PCI bus into reset */
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 832 val = readw(v3->base + V3_SYSTEM);
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 833 val &= ~V3_SYSTEM_M_RST_OUT;
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 834 writew(val, v3->base + V3_SYSTEM);
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 835
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 836 /* Retry until we're ready */
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 837 val = readw(v3->base + V3_PCI_CFG);
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 838 val |= V3_PCI_CFG_M_RETRY_EN;
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 839 writew(val, v3->base + V3_PCI_CFG);
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 840
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 841 /* Set up the local bus protocol */
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 842 val = readw(v3->base + V3_LB_CFG);
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 843 val |= V3_LB_CFG_LB_BE_IMODE; /* Byte enable input */
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 844 val |= V3_LB_CFG_LB_BE_OMODE; /* Byte enable output */
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 845 val &= ~V3_LB_CFG_LB_ENDIAN; /* Little endian */
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 846 val &= ~V3_LB_CFG_LB_PPC_RDY; /* TODO: when using on PPC403Gx, set to 1 */
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 847 writew(val, v3->base + V3_LB_CFG);
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 848
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 849 /* Enable the PCI bus master */
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 850 val = readw(v3->base + V3_PCI_CMD);
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 851 val |= PCI_COMMAND_MASTER;
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 852 writew(val, v3->base + V3_PCI_CMD);
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 853
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 854 /* Get the I/O and memory ranges from DT */
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 855 resource_list_for_each_entry(win, &res) {
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 856 ret = v3_pci_setup_resource(v3, io_base, host, win);
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 857 if (ret) {
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 858 dev_err(dev, "error setting up resources\n");
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 859 return ret;
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 860 }
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 861 }
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 862 ret = v3_pci_parse_map_dma_ranges(v3, np);
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 863 if (ret)
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 864 return ret;
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 865
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 866 /*
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 867 * Disable PCI to host IO cycles, enable I/O buffers @3.3V,
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 868 * set AD_LOW0 to 1 if one of the LB_MAP registers choose
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 869 * to use this (should be unused).
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 870 */
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 871 writel(0x00000000, v3->base + V3_PCI_IO_BASE);
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 872 val = V3_PCI_CFG_M_IO_REG_DIS | V3_PCI_CFG_M_IO_DIS |
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 873 V3_PCI_CFG_M_EN3V | V3_PCI_CFG_M_AD_LOW0;
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 874 /*
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 875 * DMA read and write from PCI bus commands types
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 876 */
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 877 val |= V3_PCI_CFG_TYPE_DEFAULT << V3_PCI_CFG_M_RTYPE_SHIFT;
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 878 val |= V3_PCI_CFG_TYPE_DEFAULT << V3_PCI_CFG_M_WTYPE_SHIFT;
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 879 writew(val, v3->base + V3_PCI_CFG);
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 880
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 881 /*
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 882 * Set the V3 FIFO such that writes have higher priority than
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 883 * reads, and local bus write causes local bus read fifo flush
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 884 * on aperture 1. Same for PCI.
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 885 */
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 886 writew(V3_FIFO_PRIO_LB_RD1_FLUSH_AP1 |
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 887 V3_FIFO_PRIO_LB_RD0_FLUSH_AP1 |
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 888 V3_FIFO_PRIO_PCI_RD1_FLUSH_AP1 |
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 889 V3_FIFO_PRIO_PCI_RD0_FLUSH_AP1,
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 890 v3->base + V3_FIFO_PRIORITY);
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 891
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 892
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 893 /*
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 894 * Clear any error interrupts, and enable parity and write error
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 895 * interrupts
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 896 */
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 897 writeb(0, v3->base + V3_LB_ISTAT);
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 898 val = readw(v3->base + V3_LB_CFG);
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 899 val |= V3_LB_CFG_LB_LB_INT;
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 900 writew(val, v3->base + V3_LB_CFG);
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 901 writeb(V3_LB_ISTAT_PCI_WR | V3_LB_ISTAT_PCI_PERR,
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 902 v3->base + V3_LB_IMASK);
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 903
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 904 /* Special Integrator initialization */
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 905 if (of_device_is_compatible(np, "arm,integrator-ap-pci")) {
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 906 ret = v3_integrator_init(v3);
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 907 if (ret)
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 908 return ret;
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 909 }
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 910
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 911 /* Post-init: enable PCI memory and invalidate (master already on) */
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 912 val = readw(v3->base + V3_PCI_CMD);
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 913 val |= PCI_COMMAND_MEMORY | PCI_COMMAND_INVALIDATE;
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 914 writew(val, v3->base + V3_PCI_CMD);
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 915
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 916 /* Clear pending interrupts */
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 917 writeb(0, v3->base + V3_LB_ISTAT);
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 918 /* Read or write errors and parity errors cause interrupts */
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 919 writeb(V3_LB_ISTAT_PCI_RD | V3_LB_ISTAT_PCI_WR | V3_LB_ISTAT_PCI_PERR,
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 920 v3->base + V3_LB_IMASK);
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 921
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 922 /* Take the PCI bus out of reset so devices can initialize */
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 923 val = readw(v3->base + V3_SYSTEM);
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 924 val |= V3_SYSTEM_M_RST_OUT;
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 925 writew(val, v3->base + V3_SYSTEM);
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 926
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 927 /*
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 928 * Re-lock the system register.
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 929 */
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 930 val = readw(v3->base + V3_SYSTEM);
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 931 val |= V3_SYSTEM_M_LOCK;
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 932 writew(val, v3->base + V3_SYSTEM);
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 933
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 934 list_splice_init(&res, &host->windows);
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 935 ret = pci_scan_root_bus_bridge(host);
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 936 if (ret) {
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 937 dev_err(dev, "failed to register host: %d\n", ret);
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 938 return ret;
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 939 }
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 940 v3->bus = host->bus;
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 941
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 942 pci_bus_assign_resources(v3->bus);
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 943 pci_bus_add_devices(v3->bus);
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 944
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 945 return 0;
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 946 }
68a15eb7bd0cf18 drivers/pci/host/pci-v3-semi.c Linus Walleij 2017-09-26 947
:::::: The code at line 808 was first introduced by commit
:::::: 68a15eb7bd0cf180eb214c79aa4e1662c5eeb97c PCI: v3-semi: Add V3 Semiconductor PCI host driver
:::::: TO: Linus Walleij <linus.walleij(a)linaro.org>
:::::: CC: Bjorn Helgaas <bhelgaas(a)google.com>
---
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 v3 3/7] drivers: thermal: tsens: add ipq8064 support
by kernel test robot
Hi Ansuel,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on robh/for-next]
[also build test ERROR on clk/clk-next linus/master v5.8-rc5 next-20200715]
[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/Ansuel-Smith/Add-support-for-ipq...
base: https://git.kernel.org/pub/scm/linux/kernel/git/robh/linux.git for-next
config: x86_64-allyesconfig (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 x86_64 cross compiling tool for clang build
# apt-get install binutils-x86-64-linux-gnu
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross 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 >>):
drivers/thermal/qcom/tsens.c:385:13: warning: no previous prototype for function 'tsens_critical_irq_thread' [-Wmissing-prototypes]
irqreturn_t tsens_critical_irq_thread(int irq, void *data)
^
drivers/thermal/qcom/tsens.c:385:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
irqreturn_t tsens_critical_irq_thread(int irq, void *data)
^
static
drivers/thermal/qcom/tsens.c:455:13: warning: no previous prototype for function 'tsens_irq_thread' [-Wmissing-prototypes]
irqreturn_t tsens_irq_thread(int irq, void *data)
^
drivers/thermal/qcom/tsens.c:455:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
irqreturn_t tsens_irq_thread(int irq, void *data)
^
static
drivers/thermal/qcom/tsens.c:523:5: warning: no previous prototype for function 'tsens_set_trips' [-Wmissing-prototypes]
int tsens_set_trips(void *_sensor, int low, int high)
^
drivers/thermal/qcom/tsens.c:523:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
int tsens_set_trips(void *_sensor, int low, int high)
^
static
drivers/thermal/qcom/tsens.c:560:5: warning: no previous prototype for function 'tsens_enable_irq' [-Wmissing-prototypes]
int tsens_enable_irq(struct tsens_priv *priv)
^
drivers/thermal/qcom/tsens.c:560:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
int tsens_enable_irq(struct tsens_priv *priv)
^
static
drivers/thermal/qcom/tsens.c:573:6: warning: no previous prototype for function 'tsens_disable_irq' [-Wmissing-prototypes]
void tsens_disable_irq(struct tsens_priv *priv)
^
drivers/thermal/qcom/tsens.c:573:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void tsens_disable_irq(struct tsens_priv *priv)
^
static
>> drivers/thermal/qcom/tsens.c:911:12: error: use of undeclared identifier 'data_8060'; did you mean 'data_8960'?
.data = &data_8060,
^~~~~~~~~
data_8960
drivers/thermal/qcom/tsens.h:585:31: note: 'data_8960' declared here
extern struct tsens_plat_data data_8960;
^
>> drivers/thermal/qcom/tsens.c:912:4: error: expected '}'
} {
^
drivers/thermal/qcom/tsens.c:896:50: note: to match this '{'
static const struct of_device_id tsens_table[] = {
^
5 warnings and 2 errors generated.
vim +911 drivers/thermal/qcom/tsens.c
895
896 static const struct of_device_id tsens_table[] = {
897 {
898 .compatible = "qcom,msm8916-tsens",
899 .data = &data_8916,
900 }, {
901 .compatible = "qcom,msm8974-tsens",
902 .data = &data_8974,
903 }, {
904 .compatible = "qcom,msm8976-tsens",
905 .data = &data_8976,
906 }, {
907 .compatible = "qcom,msm8996-tsens",
908 .data = &data_8996,
909 }, {
910 .compatible = "qcom,ipq8064-tsens",
> 911 .data = &data_8060,
> 912 } {
913 .compatible = "qcom,tsens-v1",
914 .data = &data_tsens_v1,
915 }, {
916 .compatible = "qcom,tsens-v2",
917 .data = &data_tsens_v2,
918 },
919 {}
920 };
921 MODULE_DEVICE_TABLE(of, tsens_table);
922
---
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 v6 5/5] remoteproc: Add initial zynqmp R5 remoteproc driver
by kernel test robot
Hi Ben,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on linus/master]
[also build test WARNING on v5.8-rc5 next-20200715]
[cannot apply to xlnx/master remoteproc/for-next rpmsg/for-next]
[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/Ben-Levinsky/Provide-basic-drive...
base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git e9919e11e219eaa5e8041b7b1a196839143e9125
config: arm64-allyesconfig (attached as .config)
compiler: aarch64-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=arm64
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/remoteproc/zynqmp_r5_remoteproc.c:267:25: warning: no previous prototype for 'handle_tcm_parsing' [-Wmissing-prototypes]
267 | struct rproc_mem_entry *handle_tcm_parsing(struct device *dev,
| ^~~~~~~~~~~~~~~~~~
drivers/remoteproc/zynqmp_r5_remoteproc.c: In function 'handle_tcm_parsing':
>> drivers/remoteproc/zynqmp_r5_remoteproc.c:286:10: warning: returning 'int' from a function with return type 'struct rproc_mem_entry *' makes pointer from integer without a cast [-Wint-conversion]
286 | return -EINVAL;
| ^
drivers/remoteproc/zynqmp_r5_remoteproc.c:293:10: warning: returning 'int' from a function with return type 'struct rproc_mem_entry *' makes pointer from integer without a cast [-Wint-conversion]
293 | return -EINVAL;
| ^
drivers/remoteproc/zynqmp_r5_remoteproc.c:298:10: warning: returning 'int' from a function with return type 'struct rproc_mem_entry *' makes pointer from integer without a cast [-Wint-conversion]
298 | return -ENOMEM;
| ^
drivers/remoteproc/zynqmp_r5_remoteproc.c:317:10: warning: returning 'int' from a function with return type 'struct rproc_mem_entry *' makes pointer from integer without a cast [-Wint-conversion]
317 | return -ENOMEM;
| ^
vim +/handle_tcm_parsing +267 drivers/remoteproc/zynqmp_r5_remoteproc.c
263
264 /*
265 * TCM needs mapping to R5 relative address and xilinx platform mgmt call
266 */
> 267 struct rproc_mem_entry *handle_tcm_parsing(struct device *dev,
268 struct reserved_mem *rmem,
269 struct device_node *node,
270 int lookup_idx)
271 {
272 void *va;
273 dma_addr_t dma;
274 resource_size_t size;
275 int ret;
276 u32 pnode_id;
277 struct resource rsc;
278 struct rproc_mem_entry *mem;
279
280 pnode_id = tcm_addr_to_pnode[lookup_idx][1];
281 ret = zynqmp_pm_request_node(pnode_id,
282 ZYNQMP_PM_CAPABILITY_ACCESS, 0,
283 ZYNQMP_PM_REQUEST_ACK_BLOCKING);
284 if (ret < 0) {
285 dev_err(dev, "failed to request power node: %u\n", pnode_id);
> 286 return -EINVAL;
287 }
288
289 ret = of_address_to_resource(node, 0, &rsc);
290 if (ret < 0) {
291 dev_err(dev, "failed to get resource of memory %s",
292 of_node_full_name(node));
293 return -EINVAL;
294 }
295 size = resource_size(&rsc);
296 va = devm_ioremap_wc(dev, rsc.start, size);
297 if (!va)
298 return -ENOMEM;
299
300 /* zero out tcm base address */
301 if (rsc.start & 0xffe00000) {
302 /* R5 can't see anything past 0xfffff so wipe it */
303 rsc.start &= 0x000fffff;
304 /*
305 * handle tcm banks 1 a and b (0xffe9000 and
306 * 0xffeb0000)
307 */
308 if (rsc.start & 0x80000)
309 rsc.start -= 0x90000;
310 }
311
312 dma = (dma_addr_t)rsc.start;
313 mem = rproc_mem_entry_init(dev, va, dma, (int)size, rsc.start,
314 NULL, zynqmp_r5_mem_release,
315 rsc.name);
316 if (!mem)
317 return -ENOMEM;
318
319 return mem;
320 }
321
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 2 months
[linux-next:master 7932/8137] drivers/gpu/drm/ttm/ttm_bo_util.c:256:40: sparse: sparse: incorrect type in argument 1 (different address spaces)
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head: ca0e494af5edb59002665bf12871e94b4163a257
commit: a49aa36fa7b54dbdb9274a6d146597bf05d59882 [7932/8137] iomap: constify ioreadX() iomem argument (as in generic implementation)
config: alpha-randconfig-s031-20200715 (attached as .config)
compiler: alpha-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 a49aa36fa7b54dbdb9274a6d146597bf05d59882
# 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=alpha
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/gpu/drm/ttm/ttm_bo_util.c:219:30: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *[assigned] addr @@ got void [noderef] __iomem * @@
drivers/gpu/drm/ttm/ttm_bo_util.c:219:30: sparse: expected void *[assigned] addr
drivers/gpu/drm/ttm/ttm_bo_util.c:219:30: sparse: got void [noderef] __iomem *
drivers/gpu/drm/ttm/ttm_bo_util.c:221:30: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *[assigned] addr @@ got void [noderef] __iomem * @@
drivers/gpu/drm/ttm/ttm_bo_util.c:221:30: sparse: expected void *[assigned] addr
drivers/gpu/drm/ttm/ttm_bo_util.c:221:30: sparse: got void [noderef] __iomem *
drivers/gpu/drm/ttm/ttm_bo_util.c:241:25: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void *virtual @@
drivers/gpu/drm/ttm/ttm_bo_util.c:241:25: sparse: expected void volatile [noderef] __iomem *addr
drivers/gpu/drm/ttm/ttm_bo_util.c:241:25: sparse: got void *virtual
>> drivers/gpu/drm/ttm/ttm_bo_util.c:256:40: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got unsigned int [usertype] * @@
drivers/gpu/drm/ttm/ttm_bo_util.c:256:40: sparse: expected void const [noderef] __iomem *addr
drivers/gpu/drm/ttm/ttm_bo_util.c:256:40: sparse: got unsigned int [usertype] *
drivers/gpu/drm/ttm/ttm_bo_util.c:256:49: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got unsigned int [usertype] * @@
drivers/gpu/drm/ttm/ttm_bo_util.c:256:49: sparse: expected void [noderef] __iomem *addr
drivers/gpu/drm/ttm/ttm_bo_util.c:256:49: sparse: got unsigned int [usertype] *
drivers/gpu/drm/ttm/ttm_bo_util.c:275:28: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const volatile [noderef] __iomem * @@ got void *[assigned] src @@
drivers/gpu/drm/ttm/ttm_bo_util.c:275:28: sparse: expected void const volatile [noderef] __iomem *
drivers/gpu/drm/ttm/ttm_bo_util.c:275:28: sparse: got void *[assigned] src
drivers/gpu/drm/ttm/ttm_bo_util.c:297:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem * @@ got void *[assigned] dst @@
drivers/gpu/drm/ttm/ttm_bo_util.c:297:21: sparse: expected void volatile [noderef] __iomem *
drivers/gpu/drm/ttm/ttm_bo_util.c:297:21: sparse: got void *[assigned] dst
drivers/gpu/drm/ttm/ttm_bo_util.c:344:27: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void *[addressable] new_iomap @@
drivers/gpu/drm/ttm/ttm_bo_util.c:344:27: sparse: expected void volatile [noderef] __iomem *addr
drivers/gpu/drm/ttm/ttm_bo_util.c:344:27: sparse: got void *[addressable] new_iomap
drivers/gpu/drm/ttm/ttm_bo_util.c:516:38: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *virtual @@ got void [noderef] __iomem * @@
drivers/gpu/drm/ttm/ttm_bo_util.c:516:38: sparse: expected void *virtual
drivers/gpu/drm/ttm/ttm_bo_util.c:516:38: sparse: got void [noderef] __iomem *
drivers/gpu/drm/ttm/ttm_bo_util.c:519:38: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *virtual @@ got void [noderef] __iomem * @@
drivers/gpu/drm/ttm/ttm_bo_util.c:519:38: sparse: expected void *virtual
drivers/gpu/drm/ttm/ttm_bo_util.c:519:38: sparse: got void [noderef] __iomem *
drivers/gpu/drm/ttm/ttm_bo_util.c:608:28: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void *virtual @@
drivers/gpu/drm/ttm/ttm_bo_util.c:608:28: sparse: expected void volatile [noderef] __iomem *addr
drivers/gpu/drm/ttm/ttm_bo_util.c:608:28: sparse: got void *virtual
--
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c:104:58: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c:104:58: sparse: expected void [noderef] __iomem *addr
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c:104:58: sparse: got void *
>> drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c:110:58: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void * @@
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c:110:58: sparse: expected void const [noderef] __iomem *addr
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c:110:58: sparse: got void *
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c:157:25: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void *[assigned] emap @@
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c:157:25: sparse: expected void volatile [noderef] __iomem *addr
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c:157:25: sparse: got void *[assigned] emap
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c:174:19: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *map @@ got void [noderef] __iomem * @@
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c:174:19: sparse: expected void *map
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c:174:19: sparse: got void [noderef] __iomem *
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c:225:28: sparse: sparse: incorrect type in return expression (different address spaces) @@ expected void [noderef] __iomem * @@ got void *map @@
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c:225:28: sparse: expected void [noderef] __iomem *
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c:225:28: sparse: got void *map
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c:233:28: sparse: sparse: incorrect type in return expression (different address spaces) @@ expected void [noderef] __iomem * @@ got void *map @@
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c:233:28: sparse: expected void [noderef] __iomem *
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c:233:28: sparse: got void *map
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c:240:21: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void [noderef] __iomem *map @@ got void *map @@
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c:240:21: sparse: expected void [noderef] __iomem *map
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c:240:21: sparse: got void *map
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c:327:25: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void *[assigned] map @@
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c:327:25: sparse: expected void volatile [noderef] __iomem *addr
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c:327:25: sparse: got void *[assigned] map
--
drivers/scsi/mvumi.c:81:52: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem * @@ got void * @@
drivers/scsi/mvumi.c:81:52: sparse: expected void [noderef] __iomem *
drivers/scsi/mvumi.c:81:52: sparse: got void *
drivers/scsi/mvumi.c:90:39: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void * @@ got void [noderef] __iomem * @@
drivers/scsi/mvumi.c:90:39: sparse: expected void *
drivers/scsi/mvumi.c:90:39: sparse: got void [noderef] __iomem *
drivers/scsi/mvumi.c:210:34: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] baseaddr_l @@ got restricted __le32 [usertype] @@
drivers/scsi/mvumi.c:210:34: sparse: expected unsigned int [usertype] baseaddr_l
drivers/scsi/mvumi.c:210:34: sparse: got restricted __le32 [usertype]
drivers/scsi/mvumi.c:211:34: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] baseaddr_h @@ got restricted __le32 [usertype] @@
drivers/scsi/mvumi.c:211:34: sparse: expected unsigned int [usertype] baseaddr_h
drivers/scsi/mvumi.c:211:34: sparse: got restricted __le32 [usertype]
drivers/scsi/mvumi.c:213:17: sparse: sparse: invalid assignment: |=
drivers/scsi/mvumi.c:213:17: sparse: left side has type unsigned int
drivers/scsi/mvumi.c:213:17: sparse: right side has type restricted __le32
drivers/scsi/mvumi.c:213:17: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] size @@ got restricted __le32 [usertype] @@
drivers/scsi/mvumi.c:213:17: sparse: expected unsigned int [usertype] size
drivers/scsi/mvumi.c:213:17: sparse: got restricted __le32 [usertype]
drivers/scsi/mvumi.c:242:26: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] baseaddr_l @@ got restricted __le32 [usertype] @@
drivers/scsi/mvumi.c:242:26: sparse: expected unsigned int [usertype] baseaddr_l
drivers/scsi/mvumi.c:242:26: sparse: got restricted __le32 [usertype]
drivers/scsi/mvumi.c:243:26: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] baseaddr_h @@ got restricted __le32 [usertype] @@
drivers/scsi/mvumi.c:243:26: sparse: expected unsigned int [usertype] baseaddr_h
drivers/scsi/mvumi.c:243:26: sparse: got restricted __le32 [usertype]
drivers/scsi/mvumi.c:245:9: sparse: sparse: invalid assignment: |=
drivers/scsi/mvumi.c:245:9: sparse: left side has type unsigned int
drivers/scsi/mvumi.c:245:9: sparse: right side has type restricted __le32
drivers/scsi/mvumi.c:245:9: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] size @@ got restricted __le32 [usertype] @@
drivers/scsi/mvumi.c:245:9: sparse: expected unsigned int [usertype] size
drivers/scsi/mvumi.c:245:9: sparse: got restricted __le32 [usertype]
>> drivers/scsi/mvumi.c:407:40: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void *inb_read_pointer @@
>> drivers/scsi/mvumi.c:407:40: sparse: expected void const [noderef] __iomem *addr
drivers/scsi/mvumi.c:407:40: sparse: got void *inb_read_pointer
>> drivers/scsi/mvumi.c:429:30: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void *ib_shadow @@
drivers/scsi/mvumi.c:429:30: sparse: expected void const [noderef] __iomem *addr
drivers/scsi/mvumi.c:429:30: sparse: got void *ib_shadow
drivers/scsi/mvumi.c:458:31: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *ib_shadow @@
drivers/scsi/mvumi.c:458:31: sparse: expected void [noderef] __iomem *addr
drivers/scsi/mvumi.c:458:31: sparse: got void *ib_shadow
drivers/scsi/mvumi.c:459:48: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *inb_write_pointer @@
drivers/scsi/mvumi.c:459:48: sparse: expected void [noderef] __iomem *addr
drivers/scsi/mvumi.c:459:48: sparse: got void *inb_write_pointer
>> drivers/scsi/mvumi.c:496:41: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void *outb_copy_pointer @@
drivers/scsi/mvumi.c:496:41: sparse: expected void const [noderef] __iomem *addr
drivers/scsi/mvumi.c:496:41: sparse: got void *outb_copy_pointer
>> drivers/scsi/mvumi.c:497:48: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void *ob_shadow @@
drivers/scsi/mvumi.c:497:48: sparse: expected void const [noderef] __iomem *addr
drivers/scsi/mvumi.c:497:48: sparse: got void *ob_shadow
>> drivers/scsi/mvumi.c:516:33: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void *outb_read_pointer @@
drivers/scsi/mvumi.c:516:33: sparse: expected void const [noderef] __iomem *addr
drivers/scsi/mvumi.c:516:33: sparse: got void *outb_read_pointer
drivers/scsi/mvumi.c:517:33: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void *outb_copy_pointer @@
drivers/scsi/mvumi.c:517:33: sparse: expected void const [noderef] __iomem *addr
drivers/scsi/mvumi.c:517:33: sparse: got void *outb_copy_pointer
drivers/scsi/mvumi.c:578:42: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *outb_read_pointer @@
drivers/scsi/mvumi.c:578:42: sparse: expected void [noderef] __iomem *addr
drivers/scsi/mvumi.c:578:42: sparse: got void *outb_read_pointer
drivers/scsi/mvumi.c:585:26: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *enpointa_mask_reg @@
drivers/scsi/mvumi.c:585:26: sparse: expected void [noderef] __iomem *addr
drivers/scsi/mvumi.c:585:26: sparse: got void *enpointa_mask_reg
>> drivers/scsi/mvumi.c:586:26: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void *arm_to_pciea_msg1 @@
drivers/scsi/mvumi.c:586:26: sparse: expected void const [noderef] __iomem *addr
drivers/scsi/mvumi.c:586:26: sparse: got void *arm_to_pciea_msg1
drivers/scsi/mvumi.c:589:40: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *pciea_to_arm_drbl_reg @@
drivers/scsi/mvumi.c:589:40: sparse: expected void [noderef] __iomem *addr
drivers/scsi/mvumi.c:589:40: sparse: got void *pciea_to_arm_drbl_reg
>> drivers/scsi/mvumi.c:1281:28: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void *arm_to_pciea_drbl_reg @@
drivers/scsi/mvumi.c:1281:28: sparse: expected void const [noderef] __iomem *addr
drivers/scsi/mvumi.c:1281:28: sparse: got void *arm_to_pciea_drbl_reg
drivers/scsi/mvumi.c:1282:28: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *arm_to_pciea_drbl_reg @@
drivers/scsi/mvumi.c:1282:28: sparse: expected void [noderef] __iomem *addr
drivers/scsi/mvumi.c:1282:28: sparse: got void *arm_to_pciea_drbl_reg
drivers/scsi/mvumi.c:1284:48: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *arm_to_pciea_mask_reg @@
drivers/scsi/mvumi.c:1284:48: sparse: expected void [noderef] __iomem *addr
drivers/scsi/mvumi.c:1284:48: sparse: got void *arm_to_pciea_mask_reg
>> drivers/scsi/mvumi.c:1285:28: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void *enpointa_mask_reg @@
drivers/scsi/mvumi.c:1285:28: sparse: expected void const [noderef] __iomem *addr
drivers/scsi/mvumi.c:1285:28: sparse: got void *enpointa_mask_reg
drivers/scsi/mvumi.c:1286:28: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *enpointa_mask_reg @@
drivers/scsi/mvumi.c:1286:28: sparse: expected void [noderef] __iomem *addr
drivers/scsi/mvumi.c:1286:28: sparse: got void *enpointa_mask_reg
drivers/scsi/mvumi.c:612:26: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *enpointa_mask_reg @@
drivers/scsi/mvumi.c:612:26: sparse: expected void [noderef] __iomem *addr
drivers/scsi/mvumi.c:612:26: sparse: got void *enpointa_mask_reg
drivers/scsi/mvumi.c:613:28: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void *arm_to_pciea_msg1 @@
drivers/scsi/mvumi.c:613:28: sparse: expected void const [noderef] __iomem *addr
drivers/scsi/mvumi.c:613:28: sparse: got void *arm_to_pciea_msg1
drivers/scsi/mvumi.c:615:46: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *pciea_to_arm_drbl_reg @@
drivers/scsi/mvumi.c:615:46: sparse: expected void [noderef] __iomem *addr
drivers/scsi/mvumi.c:615:46: sparse: got void *pciea_to_arm_drbl_reg
drivers/scsi/mvumi.c:624:36: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void *arm_to_pciea_msg1 @@
drivers/scsi/mvumi.c:624:36: sparse: expected void const [noderef] __iomem *addr
drivers/scsi/mvumi.c:624:36: sparse: got void *arm_to_pciea_msg1
drivers/scsi/mvumi.c:670:32: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *reset_enable @@
drivers/scsi/mvumi.c:670:32: sparse: expected void [noderef] __iomem *addr
drivers/scsi/mvumi.c:670:32: sparse: got void *reset_enable
drivers/scsi/mvumi.c:671:34: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *reset_request @@
drivers/scsi/mvumi.c:671:34: sparse: expected void [noderef] __iomem *addr
drivers/scsi/mvumi.c:671:34: sparse: got void *reset_request
drivers/scsi/mvumi.c:673:35: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *reset_enable @@
drivers/scsi/mvumi.c:673:35: sparse: expected void [noderef] __iomem *addr
drivers/scsi/mvumi.c:673:35: sparse: got void *reset_enable
drivers/scsi/mvumi.c:674:35: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *reset_request @@
drivers/scsi/mvumi.c:674:35: sparse: expected void [noderef] __iomem *addr
drivers/scsi/mvumi.c:674:35: sparse: got void *reset_request
>> drivers/scsi/mvumi.c:1100:36: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void *arm_to_pciea_msg0 @@
drivers/scsi/mvumi.c:1100:36: sparse: expected void const [noderef] __iomem *addr
drivers/scsi/mvumi.c:1100:36: sparse: got void *arm_to_pciea_msg0
drivers/scsi/mvumi.c:1115:52: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *pciea_to_arm_msg1 @@
drivers/scsi/mvumi.c:1115:52: sparse: expected void [noderef] __iomem *addr
drivers/scsi/mvumi.c:1115:52: sparse: got void *pciea_to_arm_msg1
drivers/scsi/mvumi.c:1116:39: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *pciea_to_arm_msg0 @@
drivers/scsi/mvumi.c:1116:39: sparse: expected void [noderef] __iomem *addr
drivers/scsi/mvumi.c:1116:39: sparse: got void *pciea_to_arm_msg0
drivers/scsi/mvumi.c:1117:47: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *pciea_to_arm_drbl_reg @@
drivers/scsi/mvumi.c:1117:47: sparse: expected void [noderef] __iomem *addr
drivers/scsi/mvumi.c:1117:47: sparse: got void *pciea_to_arm_drbl_reg
drivers/scsi/mvumi.c:1122:45: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *pciea_to_arm_msg1 @@
drivers/scsi/mvumi.c:1122:45: sparse: expected void [noderef] __iomem *addr
drivers/scsi/mvumi.c:1122:45: sparse: got void *pciea_to_arm_msg1
drivers/scsi/mvumi.c:1124:45: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *arm_to_pciea_msg1 @@
drivers/scsi/mvumi.c:1124:45: sparse: expected void [noderef] __iomem *addr
drivers/scsi/mvumi.c:1124:45: sparse: got void *arm_to_pciea_msg1
drivers/scsi/mvumi.c:1127:39: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *pciea_to_arm_msg0 @@
drivers/scsi/mvumi.c:1127:39: sparse: expected void [noderef] __iomem *addr
drivers/scsi/mvumi.c:1127:39: sparse: got void *pciea_to_arm_msg0
drivers/scsi/mvumi.c:1128:47: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *pciea_to_arm_drbl_reg @@
drivers/scsi/mvumi.c:1128:47: sparse: expected void [noderef] __iomem *addr
drivers/scsi/mvumi.c:1128:47: sparse: got void *pciea_to_arm_drbl_reg
drivers/scsi/mvumi.c:1168:39: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *pciea_to_arm_msg0 @@
drivers/scsi/mvumi.c:1168:39: sparse: expected void [noderef] __iomem *addr
drivers/scsi/mvumi.c:1168:39: sparse: got void *pciea_to_arm_msg0
drivers/scsi/mvumi.c:1169:47: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *pciea_to_arm_drbl_reg @@
drivers/scsi/mvumi.c:1169:47: sparse: expected void [noderef] __iomem *addr
drivers/scsi/mvumi.c:1169:47: sparse: got void *pciea_to_arm_drbl_reg
drivers/scsi/mvumi.c:1174:36: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void *enpointa_mask_reg @@
drivers/scsi/mvumi.c:1174:36: sparse: expected void const [noderef] __iomem *addr
drivers/scsi/mvumi.c:1174:36: sparse: got void *enpointa_mask_reg
drivers/scsi/mvumi.c:1176:36: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *enpointa_mask_reg @@
drivers/scsi/mvumi.c:1176:36: sparse: expected void [noderef] __iomem *addr
drivers/scsi/mvumi.c:1176:36: sparse: got void *enpointa_mask_reg
drivers/scsi/mvumi.c:1177:50: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *ib_shadow @@
drivers/scsi/mvumi.c:1177:50: sparse: expected void [noderef] __iomem *addr
drivers/scsi/mvumi.c:1177:50: sparse: got void *ib_shadow
drivers/scsi/mvumi.c:1180:45: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *inb_aval_count_basel @@
drivers/scsi/mvumi.c:1180:45: sparse: expected void [noderef] __iomem *addr
drivers/scsi/mvumi.c:1180:45: sparse: got void *inb_aval_count_basel
drivers/scsi/mvumi.c:1182:45: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *inb_aval_count_baseh @@
drivers/scsi/mvumi.c:1182:45: sparse: expected void [noderef] __iomem *addr
drivers/scsi/mvumi.c:1182:45: sparse: got void *inb_aval_count_baseh
drivers/scsi/mvumi.c:1188:61: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *ob_shadow @@
drivers/scsi/mvumi.c:1188:61: sparse: expected void [noderef] __iomem *addr
drivers/scsi/mvumi.c:1188:61: sparse: got void *ob_shadow
drivers/scsi/mvumi.c:1190:61: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *outb_copy_basel @@
drivers/scsi/mvumi.c:1190:61: sparse: expected void [noderef] __iomem *addr
drivers/scsi/mvumi.c:1190:61: sparse: got void *outb_copy_basel
drivers/scsi/mvumi.c:1192:61: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *outb_copy_baseh @@
drivers/scsi/mvumi.c:1192:61: sparse: expected void [noderef] __iomem *addr
drivers/scsi/mvumi.c:1192:61: sparse: got void *outb_copy_baseh
drivers/scsi/mvumi.c:1244:34: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void *arm_to_pciea_msg1 @@
drivers/scsi/mvumi.c:1244:34: sparse: expected void const [noderef] __iomem *addr
drivers/scsi/mvumi.c:1244:34: sparse: got void *arm_to_pciea_msg1
drivers/scsi/mvumi.c:1248:51: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *pciea_to_arm_drbl_reg @@
drivers/scsi/mvumi.c:1248:51: sparse: expected void [noderef] __iomem *addr
drivers/scsi/mvumi.c:1248:51: sparse: got void *pciea_to_arm_drbl_reg
drivers/scsi/mvumi.c:1256:42: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void *arm_to_pciea_msg1 @@
drivers/scsi/mvumi.c:1256:42: sparse: expected void const [noderef] __iomem *addr
drivers/scsi/mvumi.c:1256:42: sparse: got void *arm_to_pciea_msg1
drivers/scsi/mvumi.c:1849:35: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] src_low_addr @@ got restricted __le32 [usertype] @@
drivers/scsi/mvumi.c:1849:35: sparse: expected unsigned int [usertype] src_low_addr
drivers/scsi/mvumi.c:1849:35: sparse: got restricted __le32 [usertype]
drivers/scsi/mvumi.c:1851:36: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] src_high_addr @@ got restricted __le32 [usertype] @@
drivers/scsi/mvumi.c:1851:36: sparse: expected unsigned int [usertype] src_high_addr
drivers/scsi/mvumi.c:1851:36: sparse: got restricted __le32 [usertype]
drivers/scsi/mvumi.c:1903:48: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *arm_to_pciea_mask_reg @@
drivers/scsi/mvumi.c:1903:48: sparse: expected void [noderef] __iomem *addr
drivers/scsi/mvumi.c:1903:48: sparse: got void *arm_to_pciea_mask_reg
drivers/scsi/mvumi.c:1904:29: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void *enpointa_mask_reg @@
drivers/scsi/mvumi.c:1904:29: sparse: expected void const [noderef] __iomem *addr
drivers/scsi/mvumi.c:1904:29: sparse: got void *enpointa_mask_reg
drivers/scsi/mvumi.c:1906:29: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *enpointa_mask_reg @@
drivers/scsi/mvumi.c:1906:29: sparse: expected void [noderef] __iomem *addr
drivers/scsi/mvumi.c:1906:29: sparse: got void *enpointa_mask_reg
drivers/scsi/mvumi.c:1918:26: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *arm_to_pciea_mask_reg @@
drivers/scsi/mvumi.c:1918:26: sparse: expected void [noderef] __iomem *addr
drivers/scsi/mvumi.c:1918:26: sparse: got void *arm_to_pciea_mask_reg
drivers/scsi/mvumi.c:1919:29: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void *enpointa_mask_reg @@
drivers/scsi/mvumi.c:1919:29: sparse: expected void const [noderef] __iomem *addr
drivers/scsi/mvumi.c:1919:29: sparse: got void *enpointa_mask_reg
drivers/scsi/mvumi.c:1922:29: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *enpointa_mask_reg @@
drivers/scsi/mvumi.c:1922:29: sparse: expected void [noderef] __iomem *addr
drivers/scsi/mvumi.c:1922:29: sparse: got void *enpointa_mask_reg
>> drivers/scsi/mvumi.c:1931:31: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void *main_int_cause_reg @@
drivers/scsi/mvumi.c:1931:31: sparse: expected void const [noderef] __iomem *addr
drivers/scsi/mvumi.c:1931:31: sparse: got void *main_int_cause_reg
>> drivers/scsi/mvumi.c:1935:36: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void *outb_isr_cause @@
drivers/scsi/mvumi.c:1935:36: sparse: expected void const [noderef] __iomem *addr
drivers/scsi/mvumi.c:1935:36: sparse: got void *outb_isr_cause
drivers/scsi/mvumi.c:1939:61: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *outb_isr_cause @@
drivers/scsi/mvumi.c:1939:61: sparse: expected void [noderef] __iomem *addr
drivers/scsi/mvumi.c:1939:61: sparse: got void *outb_isr_cause
drivers/scsi/mvumi.c:1945:53: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *outb_isr_cause @@
drivers/scsi/mvumi.c:1945:53: sparse: expected void [noderef] __iomem *addr
drivers/scsi/mvumi.c:1945:53: sparse: got void *outb_isr_cause
drivers/scsi/mvumi.c:1951:36: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void *outb_isr_cause @@
drivers/scsi/mvumi.c:1951:36: sparse: expected void const [noderef] __iomem *addr
drivers/scsi/mvumi.c:1951:36: sparse: got void *outb_isr_cause
drivers/scsi/mvumi.c:1953:61: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *outb_isr_cause @@
drivers/scsi/mvumi.c:1953:61: sparse: expected void [noderef] __iomem *addr
drivers/scsi/mvumi.c:1953:61: sparse: got void *outb_isr_cause
drivers/scsi/mvumi.c:1956:43: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void *arm_to_pciea_drbl_reg @@
drivers/scsi/mvumi.c:1956:43: sparse: expected void const [noderef] __iomem *addr
drivers/scsi/mvumi.c:1956:43: sparse: got void *arm_to_pciea_drbl_reg
drivers/scsi/mvumi.c:1958:51: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *arm_to_pciea_drbl_reg @@
drivers/scsi/mvumi.c:1958:51: sparse: expected void [noderef] __iomem *addr
drivers/scsi/mvumi.c:1958:51: sparse: got void *arm_to_pciea_drbl_reg
drivers/scsi/mvumi.c:1975:37: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void *arm_to_pciea_drbl_reg @@
drivers/scsi/mvumi.c:1975:37: sparse: expected void const [noderef] __iomem *addr
drivers/scsi/mvumi.c:1975:37: sparse: got void *arm_to_pciea_drbl_reg
drivers/scsi/mvumi.c:1977:45: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *arm_to_pciea_drbl_reg @@
drivers/scsi/mvumi.c:1977:45: sparse: expected void [noderef] __iomem *addr
drivers/scsi/mvumi.c:1977:45: sparse: got void *arm_to_pciea_drbl_reg
--
drivers/spi/spi-lp8841-rtc.c:112:41: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void *iomem @@
drivers/spi/spi-lp8841-rtc.c:112:41: sparse: expected void volatile [noderef] __iomem *addr
drivers/spi/spi-lp8841-rtc.c:112:41: sparse: got void *iomem
drivers/spi/spi-lp8841-rtc.c:121:41: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void *iomem @@
drivers/spi/spi-lp8841-rtc.c:121:41: sparse: expected void volatile [noderef] __iomem *addr
drivers/spi/spi-lp8841-rtc.c:121:41: sparse: got void *iomem
drivers/spi/spi-lp8841-rtc.c:143:33: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void *iomem @@
drivers/spi/spi-lp8841-rtc.c:143:33: sparse: expected void volatile [noderef] __iomem *addr
drivers/spi/spi-lp8841-rtc.c:143:33: sparse: got void *iomem
drivers/spi/spi-lp8841-rtc.c:147:41: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void *iomem @@
drivers/spi/spi-lp8841-rtc.c:147:41: sparse: expected void volatile [noderef] __iomem *addr
drivers/spi/spi-lp8841-rtc.c:147:41: sparse: got void *iomem
drivers/spi/spi-lp8841-rtc.c:209:21: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *iomem @@ got void [noderef] __iomem * @@
drivers/spi/spi-lp8841-rtc.c:209:21: sparse: expected void *iomem
drivers/spi/spi-lp8841-rtc.c:209:21: sparse: got void [noderef] __iomem *
drivers/spi/spi-lp8841-rtc.c:57:33: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void *iomem @@
drivers/spi/spi-lp8841-rtc.c:57:33: sparse: expected void volatile [noderef] __iomem *addr
drivers/spi/spi-lp8841-rtc.c:57:33: sparse: got void *iomem
>> drivers/spi/spi-lp8841-rtc.c:63:28: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void *iomem @@
>> drivers/spi/spi-lp8841-rtc.c:63:28: sparse: expected void const [noderef] __iomem *addr
drivers/spi/spi-lp8841-rtc.c:63:28: sparse: got void *iomem
drivers/spi/spi-lp8841-rtc.c:47:33: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void *iomem @@
drivers/spi/spi-lp8841-rtc.c:47:33: sparse: expected void volatile [noderef] __iomem *addr
drivers/spi/spi-lp8841-rtc.c:47:33: sparse: got void *iomem
drivers/spi/spi-lp8841-rtc.c:47:33: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void *iomem @@
drivers/spi/spi-lp8841-rtc.c:47:33: sparse: expected void volatile [noderef] __iomem *addr
drivers/spi/spi-lp8841-rtc.c:47:33: sparse: got void *iomem
drivers/spi/spi-lp8841-rtc.c:57:33: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void *iomem @@
drivers/spi/spi-lp8841-rtc.c:57:33: sparse: expected void volatile [noderef] __iomem *addr
drivers/spi/spi-lp8841-rtc.c:57:33: sparse: got void *iomem
>> drivers/spi/spi-lp8841-rtc.c:63:28: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void *iomem @@
>> drivers/spi/spi-lp8841-rtc.c:63:28: sparse: expected void const [noderef] __iomem *addr
drivers/spi/spi-lp8841-rtc.c:63:28: sparse: got void *iomem
drivers/spi/spi-lp8841-rtc.c:47:33: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void *iomem @@
drivers/spi/spi-lp8841-rtc.c:47:33: sparse: expected void volatile [noderef] __iomem *addr
drivers/spi/spi-lp8841-rtc.c:47:33: sparse: got void *iomem
drivers/spi/spi-lp8841-rtc.c:47:33: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void *iomem @@
drivers/spi/spi-lp8841-rtc.c:47:33: sparse: expected void volatile [noderef] __iomem *addr
drivers/spi/spi-lp8841-rtc.c:47:33: sparse: got void *iomem
--
>> drivers/net/ethernet/renesas/sh_eth.c:885:37: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void * @@
>> drivers/net/ethernet/renesas/sh_eth.c:885:37: sparse: expected void const [noderef] __iomem *addr
drivers/net/ethernet/renesas/sh_eth.c:885:37: sparse: got void *
drivers/net/ethernet/renesas/sh_eth.c:886:37: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void * @@
drivers/net/ethernet/renesas/sh_eth.c:886:37: sparse: expected void const [noderef] __iomem *addr
drivers/net/ethernet/renesas/sh_eth.c:886:37: sparse: got void *
drivers/net/ethernet/renesas/sh_eth.c:893:37: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void * @@
drivers/net/ethernet/renesas/sh_eth.c:893:37: sparse: expected void [noderef] __iomem *addr
drivers/net/ethernet/renesas/sh_eth.c:893:37: sparse: got void *
drivers/net/ethernet/renesas/sh_eth.c:894:37: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void * @@
drivers/net/ethernet/renesas/sh_eth.c:894:37: sparse: expected void [noderef] __iomem *addr
drivers/net/ethernet/renesas/sh_eth.c:894:37: sparse: got void *
>> drivers/net/ethernet/renesas/sh_eth.c:1167:31: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void *addr @@
drivers/net/ethernet/renesas/sh_eth.c:1167:31: sparse: expected void const [noderef] __iomem *addr
drivers/net/ethernet/renesas/sh_eth.c:1167:31: sparse: got void *addr
drivers/net/ethernet/renesas/sh_eth.c:1172:31: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void *addr @@
drivers/net/ethernet/renesas/sh_eth.c:1172:31: sparse: expected void [noderef] __iomem *addr
drivers/net/ethernet/renesas/sh_eth.c:1172:31: sparse: got void *addr
drivers/net/ethernet/renesas/sh_eth.c:1195:33: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got void *addr @@
drivers/net/ethernet/renesas/sh_eth.c:1195:33: sparse: expected void const [noderef] __iomem *addr
drivers/net/ethernet/renesas/sh_eth.c:1195:33: sparse: got void *addr
drivers/net/ethernet/renesas/sh_eth.c:1225:43: sparse: sparse: restricted __le32 degrades to integer
drivers/net/ethernet/renesas/sh_eth.c:1230:17: sparse: sparse: cast to restricted __le32
drivers/net/ethernet/renesas/sh_eth.c:1235:25: sparse: sparse: cast to restricted __le32
drivers/net/ethernet/renesas/sh_eth.c:1235:25: sparse: sparse: cast to restricted __le32
drivers/net/ethernet/renesas/sh_eth.c:1243:32: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] status @@ got restricted __le32 [usertype] @@
drivers/net/ethernet/renesas/sh_eth.c:1243:32: sparse: expected unsigned int [usertype] status
drivers/net/ethernet/renesas/sh_eth.c:1243:32: sparse: got restricted __le32 [usertype]
drivers/net/ethernet/renesas/sh_eth.c:1245:40: sparse: sparse: invalid assignment: |=
drivers/net/ethernet/renesas/sh_eth.c:1245:40: sparse: left side has type unsigned int
drivers/net/ethernet/renesas/sh_eth.c:1245:40: sparse: right side has type restricted __le32
drivers/net/ethernet/renesas/sh_eth.c:1249:49: sparse: sparse: cast to restricted __le32
drivers/net/ethernet/renesas/sh_eth.c:1266:33: sparse: sparse: cast to restricted __le32
drivers/net/ethernet/renesas/sh_eth.c:1342:29: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] len @@ got restricted __le32 [usertype] @@
drivers/net/ethernet/renesas/sh_eth.c:1342:29: sparse: expected unsigned int [usertype] len
drivers/net/ethernet/renesas/sh_eth.c:1342:29: sparse: got restricted __le32 [usertype]
drivers/net/ethernet/renesas/sh_eth.c:1343:30: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] addr @@ got restricted __le32 [usertype] @@
drivers/net/ethernet/renesas/sh_eth.c:1343:30: sparse: expected unsigned int [usertype] addr
drivers/net/ethernet/renesas/sh_eth.c:1343:30: sparse: got restricted __le32 [usertype]
drivers/net/ethernet/renesas/sh_eth.c:1344:32: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] status @@ got restricted __le32 [usertype] @@
drivers/net/ethernet/renesas/sh_eth.c:1344:32: sparse: expected unsigned int [usertype] status
drivers/net/ethernet/renesas/sh_eth.c:1344:32: sparse: got restricted __le32 [usertype]
drivers/net/ethernet/renesas/sh_eth.c:1358:32: sparse: sparse: invalid assignment: |=
drivers/net/ethernet/renesas/sh_eth.c:1358:32: sparse: left side has type unsigned int
drivers/net/ethernet/renesas/sh_eth.c:1358:32: sparse: right side has type restricted __le32
drivers/net/ethernet/renesas/sh_eth.c:1366:32: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] status @@ got restricted __le32 [usertype] @@
drivers/net/ethernet/renesas/sh_eth.c:1366:32: sparse: expected unsigned int [usertype] status
drivers/net/ethernet/renesas/sh_eth.c:1366:32: sparse: got restricted __le32 [usertype]
drivers/net/ethernet/renesas/sh_eth.c:1367:29: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] len @@ got restricted __le32 [usertype] @@
drivers/net/ethernet/renesas/sh_eth.c:1367:29: sparse: expected unsigned int [usertype] len
drivers/net/ethernet/renesas/sh_eth.c:1367:29: sparse: got restricted __le32 [usertype]
drivers/net/ethernet/renesas/sh_eth.c:1376:24: sparse: sparse: invalid assignment: |=
drivers/net/ethernet/renesas/sh_eth.c:1376:24: sparse: left side has type unsigned int
drivers/net/ethernet/renesas/sh_eth.c:1376:24: sparse: right side has type restricted __le32
drivers/net/ethernet/renesas/sh_eth.c:1528:40: sparse: sparse: invalid assignment: &=
drivers/net/ethernet/renesas/sh_eth.c:1528:40: sparse: left side has type unsigned int
drivers/net/ethernet/renesas/sh_eth.c:1528:40: sparse: right side has type restricted __le32
drivers/net/ethernet/renesas/sh_eth.c:1585:35: sparse: sparse: restricted __le32 degrades to integer
drivers/net/ethernet/renesas/sh_eth.c:1588:31: sparse: sparse: cast to restricted __le32
drivers/net/ethernet/renesas/sh_eth.c:1589:27: sparse: sparse: cast to restricted __le32
drivers/net/ethernet/renesas/sh_eth.c:1627:36: sparse: sparse: cast to restricted __le32
drivers/net/ethernet/renesas/sh_eth.c:1658:29: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] len @@ got restricted __le32 [usertype] @@
drivers/net/ethernet/renesas/sh_eth.c:1658:29: sparse: expected unsigned int [usertype] len
drivers/net/ethernet/renesas/sh_eth.c:1658:29: sparse: got restricted __le32 [usertype]
drivers/net/ethernet/renesas/sh_eth.c:1674:38: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] addr @@ got restricted __le32 [usertype] @@
drivers/net/ethernet/renesas/sh_eth.c:1674:38: sparse: expected unsigned int [usertype] addr
drivers/net/ethernet/renesas/sh_eth.c:1674:38: sparse: got restricted __le32 [usertype]
drivers/net/ethernet/renesas/sh_eth.c:1678:40: sparse: sparse: invalid assignment: |=
drivers/net/ethernet/renesas/sh_eth.c:1678:40: sparse: left side has type unsigned int
drivers/net/ethernet/renesas/sh_eth.c:1678:40: sparse: right side has type restricted __le32
drivers/net/ethernet/renesas/sh_eth.c:1681:40: sparse: sparse: invalid assignment: |=
drivers/net/ethernet/renesas/sh_eth.c:1681:40: sparse: left side has type unsigned int
drivers/net/ethernet/renesas/sh_eth.c:1681:40: sparse: right side has type restricted __le32
drivers/net/ethernet/renesas/sh_eth.c:2458:32: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] status @@ got restricted __le32 [usertype] @@
drivers/net/ethernet/renesas/sh_eth.c:2458:32: sparse: expected unsigned int [usertype] status
drivers/net/ethernet/renesas/sh_eth.c:2458:32: sparse: got restricted __le32 [usertype]
drivers/net/ethernet/renesas/sh_eth.c:2459:30: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] addr @@ got restricted __le32 [usertype] @@
drivers/net/ethernet/renesas/sh_eth.c:2459:30: sparse: expected unsigned int [usertype] addr
drivers/net/ethernet/renesas/sh_eth.c:2459:30: sparse: got restricted __le32 [usertype]
drivers/net/ethernet/renesas/sh_eth.c:2510:22: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] addr @@ got restricted __le32 [usertype] @@
drivers/net/ethernet/renesas/sh_eth.c:2510:22: sparse: expected unsigned int [usertype] addr
drivers/net/ethernet/renesas/sh_eth.c:2510:22: sparse: got restricted __le32 [usertype]
drivers/net/ethernet/renesas/sh_eth.c:2511:22: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] len @@ got restricted __le32 [usertype] @@
drivers/net/ethernet/renesas/sh_eth.c:2511:22: sparse: expected unsigned int [usertype] len
drivers/net/ethernet/renesas/sh_eth.c:2511:22: sparse: got restricted __le32 [usertype]
drivers/net/ethernet/renesas/sh_eth.c:2515:32: sparse: sparse: invalid assignment: |=
drivers/net/ethernet/renesas/sh_eth.c:2515:32: sparse: left side has type unsigned int
drivers/net/ethernet/renesas/sh_eth.c:2515:32: sparse: right side has type restricted __le32
drivers/net/ethernet/renesas/sh_eth.c:2517:32: sparse: sparse: invalid assignment: |=
drivers/net/ethernet/renesas/sh_eth.c:2517:32: sparse: left side has type unsigned int
drivers/net/ethernet/renesas/sh_eth.c:2517:32: sparse: right side has type restricted __le32
drivers/net/ethernet/renesas/sh_eth.c:3042:23: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *addr @@ got void [noderef] __iomem * @@
drivers/net/ethernet/renesas/sh_eth.c:3042:23: sparse: expected void *addr
drivers/net/ethernet/renesas/sh_eth.c:3042:23: sparse: got void [noderef] __iomem *
--
>> drivers/mailbox/bcm-pdc-mailbox.c:682:28: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __iomem *addr @@ got unsigned int * @@
>> drivers/mailbox/bcm-pdc-mailbox.c:682:28: sparse: expected void const [noderef] __iomem *addr
drivers/mailbox/bcm-pdc-mailbox.c:682:28: sparse: got unsigned int *
drivers/mailbox/bcm-pdc-mailbox.c:792:42: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got unsigned int * @@
drivers/mailbox/bcm-pdc-mailbox.c:792:42: sparse: expected void [noderef] __iomem *addr
drivers/mailbox/bcm-pdc-mailbox.c:792:42: sparse: got unsigned int *
drivers/mailbox/bcm-pdc-mailbox.c:793:42: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got unsigned int * @@
drivers/mailbox/bcm-pdc-mailbox.c:793:42: sparse: expected void [noderef] __iomem *addr
drivers/mailbox/bcm-pdc-mailbox.c:793:42: sparse: got unsigned int *
drivers/mailbox/bcm-pdc-mailbox.c:1031:32: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got unsigned int * @@
drivers/mailbox/bcm-pdc-mailbox.c:1031:32: sparse: expected void [noderef] __iomem *addr
drivers/mailbox/bcm-pdc-mailbox.c:1031:32: sparse: got unsigned int *
drivers/mailbox/bcm-pdc-mailbox.c:1033:20: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got unsigned int * @@
drivers/mailbox/bcm-pdc-mailbox.c:1033:20: sparse: expected void [noderef] __iomem *addr
drivers/mailbox/bcm-pdc-mailbox.c:1033:20: sparse: got unsigned int *
drivers/mailbox/bcm-pdc-mailbox.c:1034:23: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got unsigned int * @@
drivers/mailbox/bcm-pdc-mailbox.c:1034:23: sparse: expected void [noderef] __iomem *addr
drivers/mailbox/bcm-pdc-mailbox.c:1034:23: sparse: got unsigned int *
drivers/mailbox/bcm-pdc-mailbox.c:1035:23: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got unsigned int * @@
drivers/mailbox/bcm-pdc-mailbox.c:1035:23: sparse: expected void [noderef] __iomem *addr
drivers/mailbox/bcm-pdc-mailbox.c:1035:23: sparse: got unsigned int *
drivers/mailbox/bcm-pdc-mailbox.c:1039:20: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got unsigned int * @@
drivers/mailbox/bcm-pdc-mailbox.c:1039:20: sparse: expected void [noderef] __iomem *addr
drivers/mailbox/bcm-pdc-mailbox.c:1039:20: sparse: got unsigned int *
drivers/mailbox/bcm-pdc-mailbox.c:1041:20: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got unsigned int * @@
drivers/mailbox/bcm-pdc-mailbox.c:1041:20: sparse: expected void [noderef] __iomem *addr
drivers/mailbox/bcm-pdc-mailbox.c:1041:20: sparse: got unsigned int *
drivers/mailbox/bcm-pdc-mailbox.c:1044:20: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got unsigned int * @@
drivers/mailbox/bcm-pdc-mailbox.c:1044:20: sparse: expected void [noderef] __iomem *addr
drivers/mailbox/bcm-pdc-mailbox.c:1044:20: sparse: got unsigned int *
drivers/mailbox/bcm-pdc-mailbox.c:1046:20: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got unsigned int * @@
drivers/mailbox/bcm-pdc-mailbox.c:1046:20: sparse: expected void [noderef] __iomem *addr
drivers/mailbox/bcm-pdc-mailbox.c:1046:20: sparse: got unsigned int *
drivers/mailbox/bcm-pdc-mailbox.c:1049:48: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got unsigned int * @@
drivers/mailbox/bcm-pdc-mailbox.c:1049:48: sparse: expected void [noderef] __iomem *addr
drivers/mailbox/bcm-pdc-mailbox.c:1049:48: sparse: got unsigned int *
drivers/mailbox/bcm-pdc-mailbox.c:1051:20: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got unsigned int * @@
drivers/mailbox/bcm-pdc-mailbox.c:1051:20: sparse: expected void [noderef] __iomem *addr
drivers/mailbox/bcm-pdc-mailbox.c:1051:20: sparse: got unsigned int *
drivers/mailbox/bcm-pdc-mailbox.c:1058:48: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got unsigned int * @@
drivers/mailbox/bcm-pdc-mailbox.c:1058:48: sparse: expected void [noderef] __iomem *addr
drivers/mailbox/bcm-pdc-mailbox.c:1058:48: sparse: got unsigned int *
drivers/mailbox/bcm-pdc-mailbox.c:1062:63: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got unsigned int * @@
drivers/mailbox/bcm-pdc-mailbox.c:1062:63: sparse: expected void [noderef] __iomem *addr
drivers/mailbox/bcm-pdc-mailbox.c:1062:63: sparse: got unsigned int *
drivers/mailbox/bcm-pdc-mailbox.c:1068:48: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got unsigned int * @@
drivers/mailbox/bcm-pdc-mailbox.c:1068:48: sparse: expected void [noderef] __iomem *addr
drivers/mailbox/bcm-pdc-mailbox.c:1068:48: sparse: got unsigned int *
drivers/mailbox/bcm-pdc-mailbox.c:1072:48: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got unsigned int * @@
drivers/mailbox/bcm-pdc-mailbox.c:1072:48: sparse: expected void [noderef] __iomem *addr
drivers/mailbox/bcm-pdc-mailbox.c:1072:48: sparse: got unsigned int *
drivers/mailbox/bcm-pdc-mailbox.c:1296:23: sparse: sparse: cast removes address space '__iomem' of expression
drivers/mailbox/bcm-pdc-mailbox.c:1298:16: sparse: sparse: cast removes address space '__iomem' of expression
drivers/mailbox/bcm-pdc-mailbox.c:1301:16: sparse: sparse: cast removes address space '__iomem' of expression
drivers/mailbox/bcm-pdc-mailbox.c:1308:27: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got unsigned int * @@
drivers/mailbox/bcm-pdc-mailbox.c:1308:27: sparse: expected void [noderef] __iomem *addr
drivers/mailbox/bcm-pdc-mailbox.c:1308:27: sparse: got unsigned int *
drivers/mailbox/bcm-pdc-mailbox.c:1313:32: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got unsigned int * @@
drivers/mailbox/bcm-pdc-mailbox.c:1313:32: sparse: expected void [noderef] __iomem *addr
drivers/mailbox/bcm-pdc-mailbox.c:1313:32: sparse: got unsigned int *
drivers/mailbox/bcm-pdc-mailbox.c:1316:20: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got unsigned int * @@
drivers/mailbox/bcm-pdc-mailbox.c:1316:20: sparse: expected void [noderef] __iomem *addr
drivers/mailbox/bcm-pdc-mailbox.c:1316:20: sparse: got unsigned int *
drivers/mailbox/bcm-pdc-mailbox.c:1319:23: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got unsigned int * @@
drivers/mailbox/bcm-pdc-mailbox.c:1319:23: sparse: expected void [noderef] __iomem *addr
drivers/mailbox/bcm-pdc-mailbox.c:1319:23: sparse: got unsigned int *
drivers/mailbox/bcm-pdc-mailbox.c:1320:23: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got unsigned int * @@
drivers/mailbox/bcm-pdc-mailbox.c:1320:23: sparse: expected void [noderef] __iomem *addr
drivers/mailbox/bcm-pdc-mailbox.c:1320:23: sparse: got unsigned int *
drivers/mailbox/bcm-pdc-mailbox.c:1337:32: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got unsigned int * @@
drivers/mailbox/bcm-pdc-mailbox.c:1337:32: sparse: expected void [noderef] __iomem *addr
drivers/mailbox/bcm-pdc-mailbox.c:1337:32: sparse: got unsigned int *
drivers/mailbox/bcm-pdc-mailbox.c:1339:20: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got unsigned int * @@
drivers/mailbox/bcm-pdc-mailbox.c:1339:20: sparse: expected void [noderef] __iomem *addr
drivers/mailbox/bcm-pdc-mailbox.c:1339:20: sparse: got unsigned int *
drivers/mailbox/bcm-pdc-mailbox.c:558:22: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] addrlow @@ got restricted __le32 [usertype] @@
drivers/mailbox/bcm-pdc-mailbox.c:558:22: sparse: expected unsigned int [usertype] addrlow
drivers/mailbox/bcm-pdc-mailbox.c:558:22: sparse: got restricted __le32 [usertype]
drivers/mailbox/bcm-pdc-mailbox.c:559:23: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] addrhigh @@ got restricted __le32 [usertype] @@
drivers/mailbox/bcm-pdc-mailbox.c:559:23: sparse: expected unsigned int [usertype] addrhigh
drivers/mailbox/bcm-pdc-mailbox.c:559:23: sparse: got restricted __le32 [usertype]
drivers/mailbox/bcm-pdc-mailbox.c:560:20: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] ctrl1 @@ got restricted __le32 [usertype] @@
drivers/mailbox/bcm-pdc-mailbox.c:560:20: sparse: expected unsigned int [usertype] ctrl1
drivers/mailbox/bcm-pdc-mailbox.c:560:20: sparse: got restricted __le32 [usertype]
drivers/mailbox/bcm-pdc-mailbox.c:561:20: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] ctrl2 @@ got restricted __le32 [usertype] @@
drivers/mailbox/bcm-pdc-mailbox.c:561:20: sparse: expected unsigned int [usertype] ctrl2
drivers/mailbox/bcm-pdc-mailbox.c:561:20: sparse: got restricted __le32 [usertype]
drivers/mailbox/bcm-pdc-mailbox.c:558:22: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] addrlow @@ got restricted __le32 [usertype] @@
drivers/mailbox/bcm-pdc-mailbox.c:558:22: sparse: expected unsigned int [usertype] addrlow
drivers/mailbox/bcm-pdc-mailbox.c:558:22: sparse: got restricted __le32 [usertype]
drivers/mailbox/bcm-pdc-mailbox.c:559:23: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] addrhigh @@ got restricted __le32 [usertype] @@
drivers/mailbox/bcm-pdc-mailbox.c:559:23: sparse: expected unsigned int [usertype] addrhigh
drivers/mailbox/bcm-pdc-mailbox.c:559:23: sparse: got restricted __le32 [usertype]
drivers/mailbox/bcm-pdc-mailbox.c:560:20: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] ctrl1 @@ got restricted __le32 [usertype] @@
drivers/mailbox/bcm-pdc-mailbox.c:560:20: sparse: expected unsigned int [usertype] ctrl1
drivers/mailbox/bcm-pdc-mailbox.c:560:20: sparse: got restricted __le32 [usertype]
drivers/mailbox/bcm-pdc-mailbox.c:561:20: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] ctrl2 @@ got restricted __le32 [usertype] @@
drivers/mailbox/bcm-pdc-mailbox.c:561:20: sparse: expected unsigned int [usertype] ctrl2
drivers/mailbox/bcm-pdc-mailbox.c:561:20: sparse: got restricted __le32 [usertype]
drivers/mailbox/bcm-pdc-mailbox.c:530:22: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] addrlow @@ got restricted __le32 [usertype] @@
drivers/mailbox/bcm-pdc-mailbox.c:530:22: sparse: expected unsigned int [usertype] addrlow
drivers/mailbox/bcm-pdc-mailbox.c:530:22: sparse: got restricted __le32 [usertype]
vim +256 drivers/gpu/drm/ttm/ttm_bo_util.c
ba4e7d973dd09b Thomas Hellstrom 2009-06-10 246
ba4e7d973dd09b Thomas Hellstrom 2009-06-10 247 static int ttm_copy_io_page(void *dst, void *src, unsigned long page)
ba4e7d973dd09b Thomas Hellstrom 2009-06-10 248 {
ba4e7d973dd09b Thomas Hellstrom 2009-06-10 249 uint32_t *dstP =
ba4e7d973dd09b Thomas Hellstrom 2009-06-10 250 (uint32_t *) ((unsigned long)dst + (page << PAGE_SHIFT));
ba4e7d973dd09b Thomas Hellstrom 2009-06-10 251 uint32_t *srcP =
ba4e7d973dd09b Thomas Hellstrom 2009-06-10 252 (uint32_t *) ((unsigned long)src + (page << PAGE_SHIFT));
ba4e7d973dd09b Thomas Hellstrom 2009-06-10 253
ba4e7d973dd09b Thomas Hellstrom 2009-06-10 254 int i;
ba4e7d973dd09b Thomas Hellstrom 2009-06-10 255 for (i = 0; i < PAGE_SIZE / sizeof(uint32_t); ++i)
ba4e7d973dd09b Thomas Hellstrom 2009-06-10 @256 iowrite32(ioread32(srcP++), dstP++);
ba4e7d973dd09b Thomas Hellstrom 2009-06-10 257 return 0;
ba4e7d973dd09b Thomas Hellstrom 2009-06-10 258 }
ba4e7d973dd09b Thomas Hellstrom 2009-06-10 259
:::::: The code at line 256 was first introduced by commit
:::::: ba4e7d973dd09b66912ac4c0856add8b0703a997 drm: Add the TTM GPU memory manager subsystem.
:::::: TO: Thomas Hellstrom <thellstrom(a)vmware.com>
:::::: CC: Dave Airlie <airlied(a)redhat.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 2 months