Re: [PATCH 2/2] dmaengine: dma: Add Hiedma Controller v310 Device Driver
by kernel test robot
Hi Dongjiu,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on vkoul-dmaengine/next]
[also build test WARNING on robh/for-next pza/reset/next v5.10-rc3 next-20201113]
[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/Dongjiu-Geng/dt-bindings-dma-Add...
base: https://git.kernel.org/pub/scm/linux/kernel/git/vkoul/dmaengine.git next
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
# https://github.com/0day-ci/linux/commit/bafd07a67a5daf6eefedcd050312e9ee3...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Dongjiu-Geng/dt-bindings-dma-Add-DT-bindings-for-HiSilicon-Hiedma-Controller/20201114-001353
git checkout bafd07a67a5daf6eefedcd050312e9ee307c255a
# 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/dma/hiedmacv310.c:144:6: warning: no previous prototype for 'dump_lli' [-Wmissing-prototypes]
144 | void dump_lli(u64 *llis_vaddr, unsigned int num)
| ^~~~~~~~
drivers/dma/hiedmacv310.c: In function 'hiedmac_pause_phy_chan':
>> drivers/dma/hiedmacv310.c:527:28: warning: suggest braces around empty body in an 'if' statement [-Wempty-body]
527 | phychan->id, timeout);
| ^
drivers/dma/hiedmacv310.c: At top level:
>> drivers/dma/hiedmacv310.c:650:23: warning: no previous prototype for 'hiedmac_init_tsf_desc' [-Wmissing-prototypes]
650 | struct transfer_desc *hiedmac_init_tsf_desc(struct dma_chan *chan,
| ^~~~~~~~~~~~~~~~~~~~~
>> drivers/dma/hiedmacv310.c:1088:6: warning: no previous prototype for 'handle_irq' [-Wmissing-prototypes]
1088 | bool handle_irq(struct hiedmacv310_driver_data *hiedmac, int chan_id)
| ^~~~~~~~~~
>> drivers/dma/hiedmacv310.c:1210:6: warning: no previous prototype for 'hiedmac_free_virt_channels' [-Wmissing-prototypes]
1210 | void hiedmac_free_virt_channels(struct dma_device *dmadev)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
vim +/dump_lli +144 drivers/dma/hiedmacv310.c
142
143 #else
> 144 void dump_lli(u64 *llis_vaddr, unsigned int num)
145 {
146 }
147 #endif
148
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 10 months
[android-goldfish:android-3.18 349/362] drivers/staging/wlan-ng/p80211netdev.c:235:41: sparse: sparse: cast to restricted __le16
by kernel test robot
tree: https://android.googlesource.com/kernel/goldfish android-3.18
head: 145dffbee46bf9294a60c79e32c2397b27a6853e
commit: a6cb2a3ff14ca4b576a826eddd79006fcfc9f1b2 [349/362] staging: wlan-ng: add missing byte order conversion
config: x86_64-randconfig-s021-20201103 (attached as .config)
compiler: gcc-5 (Ubuntu 5.5.0-12ubuntu1) 5.5.0 20171010
reproduce:
# apt-get install sparse
# sparse version: v0.6.3-107-gaf3512a6-dirty
git remote add android-goldfish https://android.googlesource.com/kernel/goldfish
git fetch --no-tags android-goldfish android-3.18
git checkout a6cb2a3ff14ca4b576a826eddd79006fcfc9f1b2
# save the attached .config to linux build tree
make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=x86_64
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/staging/wlan-ng/p80211netdev.c:361:24: sparse: sparse: restricted __be16 degrades to integer
drivers/staging/wlan-ng/p80211netdev.c:372:16: sparse: sparse: restricted __be16 degrades to integer
>> drivers/staging/wlan-ng/p80211netdev.c:235:41: sparse: sparse: cast to restricted __le16
In file included from drivers/staging/wlan-ng/p80211netdev.c:54:0:
include/linux/sched.h:1067:42: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
const struct sched_group_energy * const(*sched_domain_energy_f)(int cpu);
^
arch/x86/include/asm/bitops.h: Assembler messages:
arch/x86/include/asm/bitops.h:211: Warning: no instruction mnemonic suffix given and no register operands; using default for `bts'
vim +235 drivers/staging/wlan-ng/p80211netdev.c
220
221 /**
222 * p80211_convert_to_ether - conversion from 802.11 frame to ethernet frame
223 * @wlandev: pointer to WLAN device
224 * @skb: pointer to socket buffer
225 *
226 * Returns: 0 if conversion succeeded
227 * CONV_TO_ETHER_FAILED if conversion failed
228 * CONV_TO_ETHER_SKIPPED if frame is ignored
229 */
230 static int p80211_convert_to_ether(wlandevice_t *wlandev, struct sk_buff *skb)
231 {
232 struct p80211_hdr_a3 *hdr;
233
234 hdr = (struct p80211_hdr_a3 *) skb->data;
> 235 if (p80211_rx_typedrop(wlandev, le16_to_cpu(hdr->fc)))
236 return CONV_TO_ETHER_SKIPPED;
237
238 /* perform mcast filtering: allow my local address through but reject
239 * anything else that isn't multicast
240 */
241 if (wlandev->netdev->flags & IFF_ALLMULTI) {
242 if (!ether_addr_equal_unaligned(wlandev->netdev->dev_addr,
243 hdr->a1)) {
244 if (!is_multicast_ether_addr(hdr->a1))
245 return CONV_TO_ETHER_SKIPPED;
246 }
247 }
248
249 if (skb_p80211_to_ether(wlandev, wlandev->ethconv, skb) == 0) {
250 skb->dev->last_rx = jiffies;
251 wlandev->netdev->stats.rx_packets++;
252 wlandev->netdev->stats.rx_bytes += skb->len;
253 netif_rx_ni(skb);
254 return 0;
255 }
256
257 netdev_dbg(wlandev->netdev, "p80211_convert_to_ether failed.\n");
258 return CONV_TO_ETHER_FAILED;
259 }
260
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 10 months
[hverkuil-media:for-v5.11g 2/6] include/asm-generic/ioctl.h:13:25: error: array type has incomplete element type 'struct v4l2_buffer32_time32'
by kernel test robot
tree: git://linuxtv.org/hverkuil/media_tree.git for-v5.11g
head: 8b1bad443e65afcd03657b01aec8722f2d7fa61e
commit: 2eed9c4fd4573a8149760a79dcfdcf80a6396012 [2/6] v4l2-compat-ioctl32.c: add missing #ifdef CONFIG_COMPAT_32BIT_TIMEs
config: mips-randconfig-m031-20201113 (attached as .config)
compiler: mips64el-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
git remote add hverkuil-media git://linuxtv.org/hverkuil/media_tree.git
git fetch --no-tags hverkuil-media for-v5.11g
git checkout 2eed9c4fd4573a8149760a79dcfdcf80a6396012
# 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/asm-generic/ioctl.h:5,
from arch/mips/include/uapi/asm/ioctl.h:26,
from arch/mips/include/uapi/asm/sockios.h:14,
from arch/mips/include/uapi/asm/socket.h:14,
from arch/mips/include/asm/socket.h:12,
from include/linux/socket.h:6,
from include/linux/compat.h:15,
from drivers/media/v4l2-core/v4l2-compat-ioctl32.c:17:
drivers/media/v4l2-core/v4l2-compat-ioctl32.c: In function 'v4l2_compat_get_array_args':
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:856:49: error: invalid application of 'sizeof' to incomplete type 'struct v4l2_buffer32_time32'
856 | #define VIDIOC_QUERYBUF32_TIME32 _IOWR('V', 9, struct v4l2_buffer32_time32)
| ^~~~~~
include/uapi/asm-generic/ioctl.h:73:5: note: in definition of macro '_IOC'
73 | ((size) << _IOC_SIZESHIFT))
| ^~~~
include/uapi/asm-generic/ioctl.h:88:68: note: in expansion of macro '_IOC_TYPECHECK'
88 | #define _IOWR(type,nr,size) _IOC(_IOC_READ|_IOC_WRITE,(type),(nr),(_IOC_TYPECHECK(size)))
| ^~~~~~~~~~~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:856:34: note: in expansion of macro '_IOWR'
856 | #define VIDIOC_QUERYBUF32_TIME32 _IOWR('V', 9, struct v4l2_buffer32_time32)
| ^~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:1062:7: note: in expansion of macro 'VIDIOC_QUERYBUF32_TIME32'
1062 | case VIDIOC_QUERYBUF32_TIME32:
| ^~~~~~~~~~~~~~~~~~~~~~~~
>> include/asm-generic/ioctl.h:13:25: error: array type has incomplete element type 'struct v4l2_buffer32_time32'
13 | ((sizeof(t) == sizeof(t[1]) && \
| ^
include/uapi/asm-generic/ioctl.h:73:5: note: in definition of macro '_IOC'
73 | ((size) << _IOC_SIZESHIFT))
| ^~~~
include/uapi/asm-generic/ioctl.h:88:68: note: in expansion of macro '_IOC_TYPECHECK'
88 | #define _IOWR(type,nr,size) _IOC(_IOC_READ|_IOC_WRITE,(type),(nr),(_IOC_TYPECHECK(size)))
| ^~~~~~~~~~~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:856:34: note: in expansion of macro '_IOWR'
856 | #define VIDIOC_QUERYBUF32_TIME32 _IOWR('V', 9, struct v4l2_buffer32_time32)
| ^~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:1062:7: note: in expansion of macro 'VIDIOC_QUERYBUF32_TIME32'
1062 | case VIDIOC_QUERYBUF32_TIME32:
| ^~~~~~~~~~~~~~~~~~~~~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:856:49: error: invalid application of 'sizeof' to incomplete type 'struct v4l2_buffer32_time32'
856 | #define VIDIOC_QUERYBUF32_TIME32 _IOWR('V', 9, struct v4l2_buffer32_time32)
| ^~~~~~
include/uapi/asm-generic/ioctl.h:73:5: note: in definition of macro '_IOC'
73 | ((size) << _IOC_SIZESHIFT))
| ^~~~
include/uapi/asm-generic/ioctl.h:88:68: note: in expansion of macro '_IOC_TYPECHECK'
88 | #define _IOWR(type,nr,size) _IOC(_IOC_READ|_IOC_WRITE,(type),(nr),(_IOC_TYPECHECK(size)))
| ^~~~~~~~~~~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:856:34: note: in expansion of macro '_IOWR'
856 | #define VIDIOC_QUERYBUF32_TIME32 _IOWR('V', 9, struct v4l2_buffer32_time32)
| ^~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:1062:7: note: in expansion of macro 'VIDIOC_QUERYBUF32_TIME32'
1062 | case VIDIOC_QUERYBUF32_TIME32:
| ^~~~~~~~~~~~~~~~~~~~~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:856:49: error: invalid application of 'sizeof' to incomplete type 'struct v4l2_buffer32_time32'
856 | #define VIDIOC_QUERYBUF32_TIME32 _IOWR('V', 9, struct v4l2_buffer32_time32)
| ^~~~~~
include/uapi/asm-generic/ioctl.h:73:5: note: in definition of macro '_IOC'
73 | ((size) << _IOC_SIZESHIFT))
| ^~~~
include/uapi/asm-generic/ioctl.h:88:68: note: in expansion of macro '_IOC_TYPECHECK'
88 | #define _IOWR(type,nr,size) _IOC(_IOC_READ|_IOC_WRITE,(type),(nr),(_IOC_TYPECHECK(size)))
| ^~~~~~~~~~~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:856:34: note: in expansion of macro '_IOWR'
856 | #define VIDIOC_QUERYBUF32_TIME32 _IOWR('V', 9, struct v4l2_buffer32_time32)
| ^~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:1062:7: note: in expansion of macro 'VIDIOC_QUERYBUF32_TIME32'
1062 | case VIDIOC_QUERYBUF32_TIME32:
| ^~~~~~~~~~~~~~~~~~~~~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:860:45: error: invalid application of 'sizeof' to incomplete type 'struct v4l2_buffer32_time32'
860 | #define VIDIOC_QBUF32_TIME32 _IOWR('V', 15, struct v4l2_buffer32_time32)
| ^~~~~~
include/uapi/asm-generic/ioctl.h:73:5: note: in definition of macro '_IOC'
73 | ((size) << _IOC_SIZESHIFT))
| ^~~~
include/uapi/asm-generic/ioctl.h:88:68: note: in expansion of macro '_IOC_TYPECHECK'
88 | #define _IOWR(type,nr,size) _IOC(_IOC_READ|_IOC_WRITE,(type),(nr),(_IOC_TYPECHECK(size)))
| ^~~~~~~~~~~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:860:30: note: in expansion of macro '_IOWR'
860 | #define VIDIOC_QBUF32_TIME32 _IOWR('V', 15, struct v4l2_buffer32_time32)
| ^~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:1063:7: note: in expansion of macro 'VIDIOC_QBUF32_TIME32'
1063 | case VIDIOC_QBUF32_TIME32:
| ^~~~~~~~~~~~~~~~~~~~
>> include/asm-generic/ioctl.h:13:25: error: array type has incomplete element type 'struct v4l2_buffer32_time32'
13 | ((sizeof(t) == sizeof(t[1]) && \
| ^
include/uapi/asm-generic/ioctl.h:73:5: note: in definition of macro '_IOC'
73 | ((size) << _IOC_SIZESHIFT))
| ^~~~
include/uapi/asm-generic/ioctl.h:88:68: note: in expansion of macro '_IOC_TYPECHECK'
88 | #define _IOWR(type,nr,size) _IOC(_IOC_READ|_IOC_WRITE,(type),(nr),(_IOC_TYPECHECK(size)))
| ^~~~~~~~~~~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:860:30: note: in expansion of macro '_IOWR'
860 | #define VIDIOC_QBUF32_TIME32 _IOWR('V', 15, struct v4l2_buffer32_time32)
| ^~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:1063:7: note: in expansion of macro 'VIDIOC_QBUF32_TIME32'
1063 | case VIDIOC_QBUF32_TIME32:
| ^~~~~~~~~~~~~~~~~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:860:45: error: invalid application of 'sizeof' to incomplete type 'struct v4l2_buffer32_time32'
860 | #define VIDIOC_QBUF32_TIME32 _IOWR('V', 15, struct v4l2_buffer32_time32)
| ^~~~~~
include/uapi/asm-generic/ioctl.h:73:5: note: in definition of macro '_IOC'
73 | ((size) << _IOC_SIZESHIFT))
| ^~~~
include/uapi/asm-generic/ioctl.h:88:68: note: in expansion of macro '_IOC_TYPECHECK'
88 | #define _IOWR(type,nr,size) _IOC(_IOC_READ|_IOC_WRITE,(type),(nr),(_IOC_TYPECHECK(size)))
| ^~~~~~~~~~~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:860:30: note: in expansion of macro '_IOWR'
860 | #define VIDIOC_QBUF32_TIME32 _IOWR('V', 15, struct v4l2_buffer32_time32)
| ^~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:1063:7: note: in expansion of macro 'VIDIOC_QBUF32_TIME32'
1063 | case VIDIOC_QBUF32_TIME32:
| ^~~~~~~~~~~~~~~~~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:860:45: error: invalid application of 'sizeof' to incomplete type 'struct v4l2_buffer32_time32'
860 | #define VIDIOC_QBUF32_TIME32 _IOWR('V', 15, struct v4l2_buffer32_time32)
| ^~~~~~
include/uapi/asm-generic/ioctl.h:73:5: note: in definition of macro '_IOC'
73 | ((size) << _IOC_SIZESHIFT))
| ^~~~
include/uapi/asm-generic/ioctl.h:88:68: note: in expansion of macro '_IOC_TYPECHECK'
88 | #define _IOWR(type,nr,size) _IOC(_IOC_READ|_IOC_WRITE,(type),(nr),(_IOC_TYPECHECK(size)))
| ^~~~~~~~~~~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:860:30: note: in expansion of macro '_IOWR'
860 | #define VIDIOC_QBUF32_TIME32 _IOWR('V', 15, struct v4l2_buffer32_time32)
| ^~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:1063:7: note: in expansion of macro 'VIDIOC_QBUF32_TIME32'
1063 | case VIDIOC_QBUF32_TIME32:
| ^~~~~~~~~~~~~~~~~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:862:46: error: invalid application of 'sizeof' to incomplete type 'struct v4l2_buffer32_time32'
862 | #define VIDIOC_DQBUF32_TIME32 _IOWR('V', 17, struct v4l2_buffer32_time32)
| ^~~~~~
include/uapi/asm-generic/ioctl.h:73:5: note: in definition of macro '_IOC'
73 | ((size) << _IOC_SIZESHIFT))
| ^~~~
include/uapi/asm-generic/ioctl.h:88:68: note: in expansion of macro '_IOC_TYPECHECK'
88 | #define _IOWR(type,nr,size) _IOC(_IOC_READ|_IOC_WRITE,(type),(nr),(_IOC_TYPECHECK(size)))
| ^~~~~~~~~~~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:862:31: note: in expansion of macro '_IOWR'
862 | #define VIDIOC_DQBUF32_TIME32 _IOWR('V', 17, struct v4l2_buffer32_time32)
| ^~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:1064:7: note: in expansion of macro 'VIDIOC_DQBUF32_TIME32'
1064 | case VIDIOC_DQBUF32_TIME32:
| ^~~~~~~~~~~~~~~~~~~~~
>> include/asm-generic/ioctl.h:13:25: error: array type has incomplete element type 'struct v4l2_buffer32_time32'
13 | ((sizeof(t) == sizeof(t[1]) && \
| ^
include/uapi/asm-generic/ioctl.h:73:5: note: in definition of macro '_IOC'
73 | ((size) << _IOC_SIZESHIFT))
| ^~~~
include/uapi/asm-generic/ioctl.h:88:68: note: in expansion of macro '_IOC_TYPECHECK'
88 | #define _IOWR(type,nr,size) _IOC(_IOC_READ|_IOC_WRITE,(type),(nr),(_IOC_TYPECHECK(size)))
| ^~~~~~~~~~~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:862:31: note: in expansion of macro '_IOWR'
862 | #define VIDIOC_DQBUF32_TIME32 _IOWR('V', 17, struct v4l2_buffer32_time32)
| ^~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:1064:7: note: in expansion of macro 'VIDIOC_DQBUF32_TIME32'
1064 | case VIDIOC_DQBUF32_TIME32:
| ^~~~~~~~~~~~~~~~~~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:862:46: error: invalid application of 'sizeof' to incomplete type 'struct v4l2_buffer32_time32'
862 | #define VIDIOC_DQBUF32_TIME32 _IOWR('V', 17, struct v4l2_buffer32_time32)
| ^~~~~~
include/uapi/asm-generic/ioctl.h:73:5: note: in definition of macro '_IOC'
73 | ((size) << _IOC_SIZESHIFT))
| ^~~~
include/uapi/asm-generic/ioctl.h:88:68: note: in expansion of macro '_IOC_TYPECHECK'
88 | #define _IOWR(type,nr,size) _IOC(_IOC_READ|_IOC_WRITE,(type),(nr),(_IOC_TYPECHECK(size)))
| ^~~~~~~~~~~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:862:31: note: in expansion of macro '_IOWR'
862 | #define VIDIOC_DQBUF32_TIME32 _IOWR('V', 17, struct v4l2_buffer32_time32)
| ^~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:1064:7: note: in expansion of macro 'VIDIOC_DQBUF32_TIME32'
1064 | case VIDIOC_DQBUF32_TIME32:
| ^~~~~~~~~~~~~~~~~~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:862:46: error: invalid application of 'sizeof' to incomplete type 'struct v4l2_buffer32_time32'
862 | #define VIDIOC_DQBUF32_TIME32 _IOWR('V', 17, struct v4l2_buffer32_time32)
| ^~~~~~
include/uapi/asm-generic/ioctl.h:73:5: note: in definition of macro '_IOC'
73 | ((size) << _IOC_SIZESHIFT))
| ^~~~
include/uapi/asm-generic/ioctl.h:88:68: note: in expansion of macro '_IOC_TYPECHECK'
88 | #define _IOWR(type,nr,size) _IOC(_IOC_READ|_IOC_WRITE,(type),(nr),(_IOC_TYPECHECK(size)))
| ^~~~~~~~~~~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:862:31: note: in expansion of macro '_IOWR'
862 | #define VIDIOC_DQBUF32_TIME32 _IOWR('V', 17, struct v4l2_buffer32_time32)
| ^~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:1064:7: note: in expansion of macro 'VIDIOC_DQBUF32_TIME32'
1064 | case VIDIOC_DQBUF32_TIME32:
| ^~~~~~~~~~~~~~~~~~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:875:52: error: invalid application of 'sizeof' to incomplete type 'struct v4l2_buffer32_time32'
875 | #define VIDIOC_PREPARE_BUF32_TIME32 _IOWR('V', 93, struct v4l2_buffer32_time32)
| ^~~~~~
include/uapi/asm-generic/ioctl.h:73:5: note: in definition of macro '_IOC'
73 | ((size) << _IOC_SIZESHIFT))
| ^~~~
include/uapi/asm-generic/ioctl.h:88:68: note: in expansion of macro '_IOC_TYPECHECK'
88 | #define _IOWR(type,nr,size) _IOC(_IOC_READ|_IOC_WRITE,(type),(nr),(_IOC_TYPECHECK(size)))
| ^~~~~~~~~~~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:875:37: note: in expansion of macro '_IOWR'
875 | #define VIDIOC_PREPARE_BUF32_TIME32 _IOWR('V', 93, struct v4l2_buffer32_time32)
| ^~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:1065:7: note: in expansion of macro 'VIDIOC_PREPARE_BUF32_TIME32'
1065 | case VIDIOC_PREPARE_BUF32_TIME32:
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
>> include/asm-generic/ioctl.h:13:25: error: array type has incomplete element type 'struct v4l2_buffer32_time32'
13 | ((sizeof(t) == sizeof(t[1]) && \
| ^
include/uapi/asm-generic/ioctl.h:73:5: note: in definition of macro '_IOC'
73 | ((size) << _IOC_SIZESHIFT))
| ^~~~
include/uapi/asm-generic/ioctl.h:88:68: note: in expansion of macro '_IOC_TYPECHECK'
88 | #define _IOWR(type,nr,size) _IOC(_IOC_READ|_IOC_WRITE,(type),(nr),(_IOC_TYPECHECK(size)))
| ^~~~~~~~~~~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:875:37: note: in expansion of macro '_IOWR'
875 | #define VIDIOC_PREPARE_BUF32_TIME32 _IOWR('V', 93, struct v4l2_buffer32_time32)
| ^~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:1065:7: note: in expansion of macro 'VIDIOC_PREPARE_BUF32_TIME32'
1065 | case VIDIOC_PREPARE_BUF32_TIME32:
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:875:52: error: invalid application of 'sizeof' to incomplete type 'struct v4l2_buffer32_time32'
875 | #define VIDIOC_PREPARE_BUF32_TIME32 _IOWR('V', 93, struct v4l2_buffer32_time32)
| ^~~~~~
include/uapi/asm-generic/ioctl.h:73:5: note: in definition of macro '_IOC'
73 | ((size) << _IOC_SIZESHIFT))
| ^~~~
include/uapi/asm-generic/ioctl.h:88:68: note: in expansion of macro '_IOC_TYPECHECK'
88 | #define _IOWR(type,nr,size) _IOC(_IOC_READ|_IOC_WRITE,(type),(nr),(_IOC_TYPECHECK(size)))
| ^~~~~~~~~~~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:875:37: note: in expansion of macro '_IOWR'
875 | #define VIDIOC_PREPARE_BUF32_TIME32 _IOWR('V', 93, struct v4l2_buffer32_time32)
| ^~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:1065:7: note: in expansion of macro 'VIDIOC_PREPARE_BUF32_TIME32'
1065 | case VIDIOC_PREPARE_BUF32_TIME32:
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:875:52: error: invalid application of 'sizeof' to incomplete type 'struct v4l2_buffer32_time32'
875 | #define VIDIOC_PREPARE_BUF32_TIME32 _IOWR('V', 93, struct v4l2_buffer32_time32)
| ^~~~~~
include/uapi/asm-generic/ioctl.h:73:5: note: in definition of macro '_IOC'
73 | ((size) << _IOC_SIZESHIFT))
| ^~~~
include/uapi/asm-generic/ioctl.h:88:68: note: in expansion of macro '_IOC_TYPECHECK'
88 | #define _IOWR(type,nr,size) _IOC(_IOC_READ|_IOC_WRITE,(type),(nr),(_IOC_TYPECHECK(size)))
| ^~~~~~~~~~~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:875:37: note: in expansion of macro '_IOWR'
875 | #define VIDIOC_PREPARE_BUF32_TIME32 _IOWR('V', 93, struct v4l2_buffer32_time32)
| ^~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:1065:7: note: in expansion of macro 'VIDIOC_PREPARE_BUF32_TIME32'
1065 | case VIDIOC_PREPARE_BUF32_TIME32:
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c: In function 'v4l2_compat_put_array_args':
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:856:49: error: invalid application of 'sizeof' to incomplete type 'struct v4l2_buffer32_time32'
856 | #define VIDIOC_QUERYBUF32_TIME32 _IOWR('V', 9, struct v4l2_buffer32_time32)
| ^~~~~~
include/uapi/asm-generic/ioctl.h:73:5: note: in definition of macro '_IOC'
73 | ((size) << _IOC_SIZESHIFT))
| ^~~~
include/uapi/asm-generic/ioctl.h:88:68: note: in expansion of macro '_IOC_TYPECHECK'
88 | #define _IOWR(type,nr,size) _IOC(_IOC_READ|_IOC_WRITE,(type),(nr),(_IOC_TYPECHECK(size)))
| ^~~~~~~~~~~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:856:34: note: in expansion of macro '_IOWR'
856 | #define VIDIOC_QUERYBUF32_TIME32 _IOWR('V', 9, struct v4l2_buffer32_time32)
| ^~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:1152:7: note: in expansion of macro 'VIDIOC_QUERYBUF32_TIME32'
1152 | case VIDIOC_QUERYBUF32_TIME32:
| ^~~~~~~~~~~~~~~~~~~~~~~~
>> include/asm-generic/ioctl.h:13:25: error: array type has incomplete element type 'struct v4l2_buffer32_time32'
13 | ((sizeof(t) == sizeof(t[1]) && \
| ^
include/uapi/asm-generic/ioctl.h:73:5: note: in definition of macro '_IOC'
73 | ((size) << _IOC_SIZESHIFT))
| ^~~~
include/uapi/asm-generic/ioctl.h:88:68: note: in expansion of macro '_IOC_TYPECHECK'
88 | #define _IOWR(type,nr,size) _IOC(_IOC_READ|_IOC_WRITE,(type),(nr),(_IOC_TYPECHECK(size)))
| ^~~~~~~~~~~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:856:34: note: in expansion of macro '_IOWR'
856 | #define VIDIOC_QUERYBUF32_TIME32 _IOWR('V', 9, struct v4l2_buffer32_time32)
| ^~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:1152:7: note: in expansion of macro 'VIDIOC_QUERYBUF32_TIME32'
1152 | case VIDIOC_QUERYBUF32_TIME32:
| ^~~~~~~~~~~~~~~~~~~~~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:856:49: error: invalid application of 'sizeof' to incomplete type 'struct v4l2_buffer32_time32'
856 | #define VIDIOC_QUERYBUF32_TIME32 _IOWR('V', 9, struct v4l2_buffer32_time32)
| ^~~~~~
include/uapi/asm-generic/ioctl.h:73:5: note: in definition of macro '_IOC'
73 | ((size) << _IOC_SIZESHIFT))
| ^~~~
include/uapi/asm-generic/ioctl.h:88:68: note: in expansion of macro '_IOC_TYPECHECK'
88 | #define _IOWR(type,nr,size) _IOC(_IOC_READ|_IOC_WRITE,(type),(nr),(_IOC_TYPECHECK(size)))
| ^~~~~~~~~~~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:856:34: note: in expansion of macro '_IOWR'
856 | #define VIDIOC_QUERYBUF32_TIME32 _IOWR('V', 9, struct v4l2_buffer32_time32)
| ^~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:1152:7: note: in expansion of macro 'VIDIOC_QUERYBUF32_TIME32'
1152 | case VIDIOC_QUERYBUF32_TIME32:
| ^~~~~~~~~~~~~~~~~~~~~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:856:49: error: invalid application of 'sizeof' to incomplete type 'struct v4l2_buffer32_time32'
856 | #define VIDIOC_QUERYBUF32_TIME32 _IOWR('V', 9, struct v4l2_buffer32_time32)
| ^~~~~~
include/uapi/asm-generic/ioctl.h:73:5: note: in definition of macro '_IOC'
73 | ((size) << _IOC_SIZESHIFT))
| ^~~~
include/uapi/asm-generic/ioctl.h:88:68: note: in expansion of macro '_IOC_TYPECHECK'
88 | #define _IOWR(type,nr,size) _IOC(_IOC_READ|_IOC_WRITE,(type),(nr),(_IOC_TYPECHECK(size)))
| ^~~~~~~~~~~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:856:34: note: in expansion of macro '_IOWR'
856 | #define VIDIOC_QUERYBUF32_TIME32 _IOWR('V', 9, struct v4l2_buffer32_time32)
| ^~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:1152:7: note: in expansion of macro 'VIDIOC_QUERYBUF32_TIME32'
1152 | case VIDIOC_QUERYBUF32_TIME32:
| ^~~~~~~~~~~~~~~~~~~~~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:860:45: error: invalid application of 'sizeof' to incomplete type 'struct v4l2_buffer32_time32'
860 | #define VIDIOC_QBUF32_TIME32 _IOWR('V', 15, struct v4l2_buffer32_time32)
| ^~~~~~
include/uapi/asm-generic/ioctl.h:73:5: note: in definition of macro '_IOC'
73 | ((size) << _IOC_SIZESHIFT))
| ^~~~
include/uapi/asm-generic/ioctl.h:88:68: note: in expansion of macro '_IOC_TYPECHECK'
88 | #define _IOWR(type,nr,size) _IOC(_IOC_READ|_IOC_WRITE,(type),(nr),(_IOC_TYPECHECK(size)))
| ^~~~~~~~~~~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:860:30: note: in expansion of macro '_IOWR'
860 | #define VIDIOC_QBUF32_TIME32 _IOWR('V', 15, struct v4l2_buffer32_time32)
| ^~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:1153:7: note: in expansion of macro 'VIDIOC_QBUF32_TIME32'
1153 | case VIDIOC_QBUF32_TIME32:
| ^~~~~~~~~~~~~~~~~~~~
>> include/asm-generic/ioctl.h:13:25: error: array type has incomplete element type 'struct v4l2_buffer32_time32'
13 | ((sizeof(t) == sizeof(t[1]) && \
| ^
include/uapi/asm-generic/ioctl.h:73:5: note: in definition of macro '_IOC'
73 | ((size) << _IOC_SIZESHIFT))
| ^~~~
include/uapi/asm-generic/ioctl.h:88:68: note: in expansion of macro '_IOC_TYPECHECK'
88 | #define _IOWR(type,nr,size) _IOC(_IOC_READ|_IOC_WRITE,(type),(nr),(_IOC_TYPECHECK(size)))
| ^~~~~~~~~~~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:860:30: note: in expansion of macro '_IOWR'
860 | #define VIDIOC_QBUF32_TIME32 _IOWR('V', 15, struct v4l2_buffer32_time32)
| ^~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:1153:7: note: in expansion of macro 'VIDIOC_QBUF32_TIME32'
1153 | case VIDIOC_QBUF32_TIME32:
| ^~~~~~~~~~~~~~~~~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:860:45: error: invalid application of 'sizeof' to incomplete type 'struct v4l2_buffer32_time32'
860 | #define VIDIOC_QBUF32_TIME32 _IOWR('V', 15, struct v4l2_buffer32_time32)
| ^~~~~~
include/uapi/asm-generic/ioctl.h:73:5: note: in definition of macro '_IOC'
73 | ((size) << _IOC_SIZESHIFT))
| ^~~~
include/uapi/asm-generic/ioctl.h:88:68: note: in expansion of macro '_IOC_TYPECHECK'
88 | #define _IOWR(type,nr,size) _IOC(_IOC_READ|_IOC_WRITE,(type),(nr),(_IOC_TYPECHECK(size)))
| ^~~~~~~~~~~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:860:30: note: in expansion of macro '_IOWR'
860 | #define VIDIOC_QBUF32_TIME32 _IOWR('V', 15, struct v4l2_buffer32_time32)
| ^~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:1153:7: note: in expansion of macro 'VIDIOC_QBUF32_TIME32'
1153 | case VIDIOC_QBUF32_TIME32:
| ^~~~~~~~~~~~~~~~~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:860:45: error: invalid application of 'sizeof' to incomplete type 'struct v4l2_buffer32_time32'
860 | #define VIDIOC_QBUF32_TIME32 _IOWR('V', 15, struct v4l2_buffer32_time32)
| ^~~~~~
include/uapi/asm-generic/ioctl.h:73:5: note: in definition of macro '_IOC'
73 | ((size) << _IOC_SIZESHIFT))
| ^~~~
include/uapi/asm-generic/ioctl.h:88:68: note: in expansion of macro '_IOC_TYPECHECK'
88 | #define _IOWR(type,nr,size) _IOC(_IOC_READ|_IOC_WRITE,(type),(nr),(_IOC_TYPECHECK(size)))
| ^~~~~~~~~~~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:860:30: note: in expansion of macro '_IOWR'
860 | #define VIDIOC_QBUF32_TIME32 _IOWR('V', 15, struct v4l2_buffer32_time32)
| ^~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:1153:7: note: in expansion of macro 'VIDIOC_QBUF32_TIME32'
1153 | case VIDIOC_QBUF32_TIME32:
| ^~~~~~~~~~~~~~~~~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:862:46: error: invalid application of 'sizeof' to incomplete type 'struct v4l2_buffer32_time32'
862 | #define VIDIOC_DQBUF32_TIME32 _IOWR('V', 17, struct v4l2_buffer32_time32)
| ^~~~~~
include/uapi/asm-generic/ioctl.h:73:5: note: in definition of macro '_IOC'
73 | ((size) << _IOC_SIZESHIFT))
| ^~~~
include/uapi/asm-generic/ioctl.h:88:68: note: in expansion of macro '_IOC_TYPECHECK'
88 | #define _IOWR(type,nr,size) _IOC(_IOC_READ|_IOC_WRITE,(type),(nr),(_IOC_TYPECHECK(size)))
| ^~~~~~~~~~~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:862:31: note: in expansion of macro '_IOWR'
862 | #define VIDIOC_DQBUF32_TIME32 _IOWR('V', 17, struct v4l2_buffer32_time32)
| ^~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:1154:7: note: in expansion of macro 'VIDIOC_DQBUF32_TIME32'
1154 | case VIDIOC_DQBUF32_TIME32:
| ^~~~~~~~~~~~~~~~~~~~~
>> include/asm-generic/ioctl.h:13:25: error: array type has incomplete element type 'struct v4l2_buffer32_time32'
13 | ((sizeof(t) == sizeof(t[1]) && \
| ^
include/uapi/asm-generic/ioctl.h:73:5: note: in definition of macro '_IOC'
73 | ((size) << _IOC_SIZESHIFT))
| ^~~~
include/uapi/asm-generic/ioctl.h:88:68: note: in expansion of macro '_IOC_TYPECHECK'
88 | #define _IOWR(type,nr,size) _IOC(_IOC_READ|_IOC_WRITE,(type),(nr),(_IOC_TYPECHECK(size)))
| ^~~~~~~~~~~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:862:31: note: in expansion of macro '_IOWR'
862 | #define VIDIOC_DQBUF32_TIME32 _IOWR('V', 17, struct v4l2_buffer32_time32)
| ^~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:1154:7: note: in expansion of macro 'VIDIOC_DQBUF32_TIME32'
1154 | case VIDIOC_DQBUF32_TIME32:
| ^~~~~~~~~~~~~~~~~~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:862:46: error: invalid application of 'sizeof' to incomplete type 'struct v4l2_buffer32_time32'
862 | #define VIDIOC_DQBUF32_TIME32 _IOWR('V', 17, struct v4l2_buffer32_time32)
| ^~~~~~
include/uapi/asm-generic/ioctl.h:73:5: note: in definition of macro '_IOC'
73 | ((size) << _IOC_SIZESHIFT))
| ^~~~
include/uapi/asm-generic/ioctl.h:88:68: note: in expansion of macro '_IOC_TYPECHECK'
88 | #define _IOWR(type,nr,size) _IOC(_IOC_READ|_IOC_WRITE,(type),(nr),(_IOC_TYPECHECK(size)))
| ^~~~~~~~~~~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:862:31: note: in expansion of macro '_IOWR'
862 | #define VIDIOC_DQBUF32_TIME32 _IOWR('V', 17, struct v4l2_buffer32_time32)
| ^~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:1154:7: note: in expansion of macro 'VIDIOC_DQBUF32_TIME32'
1154 | case VIDIOC_DQBUF32_TIME32:
| ^~~~~~~~~~~~~~~~~~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:862:46: error: invalid application of 'sizeof' to incomplete type 'struct v4l2_buffer32_time32'
862 | #define VIDIOC_DQBUF32_TIME32 _IOWR('V', 17, struct v4l2_buffer32_time32)
| ^~~~~~
include/uapi/asm-generic/ioctl.h:73:5: note: in definition of macro '_IOC'
73 | ((size) << _IOC_SIZESHIFT))
| ^~~~
include/uapi/asm-generic/ioctl.h:88:68: note: in expansion of macro '_IOC_TYPECHECK'
88 | #define _IOWR(type,nr,size) _IOC(_IOC_READ|_IOC_WRITE,(type),(nr),(_IOC_TYPECHECK(size)))
| ^~~~~~~~~~~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:862:31: note: in expansion of macro '_IOWR'
862 | #define VIDIOC_DQBUF32_TIME32 _IOWR('V', 17, struct v4l2_buffer32_time32)
| ^~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:1154:7: note: in expansion of macro 'VIDIOC_DQBUF32_TIME32'
1154 | case VIDIOC_DQBUF32_TIME32:
| ^~~~~~~~~~~~~~~~~~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:875:52: error: invalid application of 'sizeof' to incomplete type 'struct v4l2_buffer32_time32'
875 | #define VIDIOC_PREPARE_BUF32_TIME32 _IOWR('V', 93, struct v4l2_buffer32_time32)
| ^~~~~~
include/uapi/asm-generic/ioctl.h:73:5: note: in definition of macro '_IOC'
73 | ((size) << _IOC_SIZESHIFT))
| ^~~~
include/uapi/asm-generic/ioctl.h:88:68: note: in expansion of macro '_IOC_TYPECHECK'
88 | #define _IOWR(type,nr,size) _IOC(_IOC_READ|_IOC_WRITE,(type),(nr),(_IOC_TYPECHECK(size)))
| ^~~~~~~~~~~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:875:37: note: in expansion of macro '_IOWR'
875 | #define VIDIOC_PREPARE_BUF32_TIME32 _IOWR('V', 93, struct v4l2_buffer32_time32)
| ^~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:1155:7: note: in expansion of macro 'VIDIOC_PREPARE_BUF32_TIME32'
1155 | case VIDIOC_PREPARE_BUF32_TIME32:
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
>> include/asm-generic/ioctl.h:13:25: error: array type has incomplete element type 'struct v4l2_buffer32_time32'
13 | ((sizeof(t) == sizeof(t[1]) && \
| ^
include/uapi/asm-generic/ioctl.h:73:5: note: in definition of macro '_IOC'
73 | ((size) << _IOC_SIZESHIFT))
| ^~~~
include/uapi/asm-generic/ioctl.h:88:68: note: in expansion of macro '_IOC_TYPECHECK'
88 | #define _IOWR(type,nr,size) _IOC(_IOC_READ|_IOC_WRITE,(type),(nr),(_IOC_TYPECHECK(size)))
| ^~~~~~~~~~~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:875:37: note: in expansion of macro '_IOWR'
875 | #define VIDIOC_PREPARE_BUF32_TIME32 _IOWR('V', 93, struct v4l2_buffer32_time32)
| ^~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:1155:7: note: in expansion of macro 'VIDIOC_PREPARE_BUF32_TIME32'
1155 | case VIDIOC_PREPARE_BUF32_TIME32:
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:875:52: error: invalid application of 'sizeof' to incomplete type 'struct v4l2_buffer32_time32'
875 | #define VIDIOC_PREPARE_BUF32_TIME32 _IOWR('V', 93, struct v4l2_buffer32_time32)
| ^~~~~~
include/uapi/asm-generic/ioctl.h:73:5: note: in definition of macro '_IOC'
73 | ((size) << _IOC_SIZESHIFT))
| ^~~~
include/uapi/asm-generic/ioctl.h:88:68: note: in expansion of macro '_IOC_TYPECHECK'
88 | #define _IOWR(type,nr,size) _IOC(_IOC_READ|_IOC_WRITE,(type),(nr),(_IOC_TYPECHECK(size)))
| ^~~~~~~~~~~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:875:37: note: in expansion of macro '_IOWR'
875 | #define VIDIOC_PREPARE_BUF32_TIME32 _IOWR('V', 93, struct v4l2_buffer32_time32)
| ^~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:1155:7: note: in expansion of macro 'VIDIOC_PREPARE_BUF32_TIME32'
1155 | case VIDIOC_PREPARE_BUF32_TIME32:
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:875:52: error: invalid application of 'sizeof' to incomplete type 'struct v4l2_buffer32_time32'
875 | #define VIDIOC_PREPARE_BUF32_TIME32 _IOWR('V', 93, struct v4l2_buffer32_time32)
| ^~~~~~
include/uapi/asm-generic/ioctl.h:73:5: note: in definition of macro '_IOC'
73 | ((size) << _IOC_SIZESHIFT))
| ^~~~
include/uapi/asm-generic/ioctl.h:88:68: note: in expansion of macro '_IOC_TYPECHECK'
88 | #define _IOWR(type,nr,size) _IOC(_IOC_READ|_IOC_WRITE,(type),(nr),(_IOC_TYPECHECK(size)))
| ^~~~~~~~~~~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:875:37: note: in expansion of macro '_IOWR'
875 | #define VIDIOC_PREPARE_BUF32_TIME32 _IOWR('V', 93, struct v4l2_buffer32_time32)
| ^~~~~
drivers/media/v4l2-core/v4l2-compat-ioctl32.c:1155:7: note: in expansion of macro 'VIDIOC_PREPARE_BUF32_TIME32'
1155 | case VIDIOC_PREPARE_BUF32_TIME32:
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
vim +13 include/asm-generic/ioctl.h
af4cd3fe4cfa75 Brian Gerst 2006-01-09 6
d55875f5d52c06 Hans Verkuil 2014-06-06 7 #ifdef __CHECKER__
d55875f5d52c06 Hans Verkuil 2014-06-06 8 #define _IOC_TYPECHECK(t) (sizeof(t))
d55875f5d52c06 Hans Verkuil 2014-06-06 9 #else
af4cd3fe4cfa75 Brian Gerst 2006-01-09 10 /* provoke compile error for invalid uses of size argument */
af4cd3fe4cfa75 Brian Gerst 2006-01-09 11 extern unsigned int __invalid_size_argument_for_IOC;
af4cd3fe4cfa75 Brian Gerst 2006-01-09 12 #define _IOC_TYPECHECK(t) \
af4cd3fe4cfa75 Brian Gerst 2006-01-09 @13 ((sizeof(t) == sizeof(t[1]) && \
af4cd3fe4cfa75 Brian Gerst 2006-01-09 14 sizeof(t) < (1 << _IOC_SIZEBITS)) ? \
af4cd3fe4cfa75 Brian Gerst 2006-01-09 15 sizeof(t) : __invalid_size_argument_for_IOC)
d55875f5d52c06 Hans Verkuil 2014-06-06 16 #endif
d55875f5d52c06 Hans Verkuil 2014-06-06 17
:::::: The code at line 13 was first introduced by commit
:::::: af4cd3fe4cfa75ca74f8d8622867371289043a8d [PATCH] Generic ioctl.h
:::::: TO: Brian Gerst <bgerst(a)didntduck.org>
:::::: CC: Linus Torvalds <torvalds(a)g5.osdl.org>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 10 months
[drm-drm-misc:for-linux-next 986/990] drivers/gpu/drm/drm_atomic_uapi.c:342:23-26: ERROR: crtc is NULL but dereferenced. (fwd)
by Julia Lawall
Hello,
The dereference on line 342 does not look correct.
julia
---------- Forwarded message ----------
Date: Sun, 15 Nov 2020 10:58: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>,
Elena Reshetova <elena.reshetova(a)intel.com>
Subject: [drm-drm-misc:for-linux-next 986/990]
drivers/gpu/drm/drm_atomic_uapi.c:342:23-26: ERROR: crtc is NULL but
dereferenced.
CC: kbuild-all(a)lists.01.org
TO: Simon Ser <contact(a)emersion.fr>
CC: Sam Ravnborg <sam(a)ravnborg.org>
CC: Daniel Vetter <daniel.vetter(a)ffwll.ch>
tree: git://anongit.freedesktop.org/drm/drm-misc for-linux-next
head: 5933baa36e267e480bec59a752579c7581b0b2f5
commit: e3aae683e861a987d3d7dca593aaff93ac001bcb [986/990] drm: convert drm_atomic_uapi.c to new debug helpers
:::::: branch date: 7 hours ago
:::::: commit date: 13 hours ago
config: microblaze-randconfig-c004-20201115 (attached as .config)
compiler: microblaze-linux-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/gpu/drm/drm_atomic_uapi.c:342:23-26: ERROR: crtc is NULL but dereferenced.
vim +342 drivers/gpu/drm/drm_atomic_uapi.c
72fdb40c1a4b48f Daniel Vetter 2018-09-05 290
72fdb40c1a4b48f Daniel Vetter 2018-09-05 291 /**
42240c90e3b03de Thierry Reding 2019-12-06 292 * drm_atomic_set_crtc_for_connector - set CRTC for connector
72fdb40c1a4b48f Daniel Vetter 2018-09-05 293 * @conn_state: atomic state object for the connector
42240c90e3b03de Thierry Reding 2019-12-06 294 * @crtc: CRTC to use for the connector
72fdb40c1a4b48f Daniel Vetter 2018-09-05 295 *
42240c90e3b03de Thierry Reding 2019-12-06 296 * Changing the assigned CRTC for a connector requires us to grab the lock and
42240c90e3b03de Thierry Reding 2019-12-06 297 * state for the new CRTC, as needed. This function takes care of all these
72fdb40c1a4b48f Daniel Vetter 2018-09-05 298 * details besides updating the pointer in the state object itself.
72fdb40c1a4b48f Daniel Vetter 2018-09-05 299 *
72fdb40c1a4b48f Daniel Vetter 2018-09-05 300 * Returns:
72fdb40c1a4b48f Daniel Vetter 2018-09-05 301 * 0 on success or can fail with -EDEADLK or -ENOMEM. When the error is EDEADLK
72fdb40c1a4b48f Daniel Vetter 2018-09-05 302 * then the w/w mutex code has detected a deadlock and the entire atomic
72fdb40c1a4b48f Daniel Vetter 2018-09-05 303 * sequence must be restarted. All other errors are fatal.
72fdb40c1a4b48f Daniel Vetter 2018-09-05 304 */
72fdb40c1a4b48f Daniel Vetter 2018-09-05 305 int
72fdb40c1a4b48f Daniel Vetter 2018-09-05 306 drm_atomic_set_crtc_for_connector(struct drm_connector_state *conn_state,
72fdb40c1a4b48f Daniel Vetter 2018-09-05 307 struct drm_crtc *crtc)
72fdb40c1a4b48f Daniel Vetter 2018-09-05 308 {
72fdb40c1a4b48f Daniel Vetter 2018-09-05 309 struct drm_connector *connector = conn_state->connector;
72fdb40c1a4b48f Daniel Vetter 2018-09-05 310 struct drm_crtc_state *crtc_state;
72fdb40c1a4b48f Daniel Vetter 2018-09-05 311
72fdb40c1a4b48f Daniel Vetter 2018-09-05 312 if (conn_state->crtc == crtc)
72fdb40c1a4b48f Daniel Vetter 2018-09-05 313 return 0;
72fdb40c1a4b48f Daniel Vetter 2018-09-05 314
72fdb40c1a4b48f Daniel Vetter 2018-09-05 315 if (conn_state->crtc) {
72fdb40c1a4b48f Daniel Vetter 2018-09-05 316 crtc_state = drm_atomic_get_new_crtc_state(conn_state->state,
72fdb40c1a4b48f Daniel Vetter 2018-09-05 317 conn_state->crtc);
72fdb40c1a4b48f Daniel Vetter 2018-09-05 318
72fdb40c1a4b48f Daniel Vetter 2018-09-05 319 crtc_state->connector_mask &=
72fdb40c1a4b48f Daniel Vetter 2018-09-05 320 ~drm_connector_mask(conn_state->connector);
72fdb40c1a4b48f Daniel Vetter 2018-09-05 321
72fdb40c1a4b48f Daniel Vetter 2018-09-05 322 drm_connector_put(conn_state->connector);
72fdb40c1a4b48f Daniel Vetter 2018-09-05 323 conn_state->crtc = NULL;
72fdb40c1a4b48f Daniel Vetter 2018-09-05 324 }
72fdb40c1a4b48f Daniel Vetter 2018-09-05 325
72fdb40c1a4b48f Daniel Vetter 2018-09-05 326 if (crtc) {
72fdb40c1a4b48f Daniel Vetter 2018-09-05 327 crtc_state = drm_atomic_get_crtc_state(conn_state->state, crtc);
72fdb40c1a4b48f Daniel Vetter 2018-09-05 328 if (IS_ERR(crtc_state))
72fdb40c1a4b48f Daniel Vetter 2018-09-05 329 return PTR_ERR(crtc_state);
72fdb40c1a4b48f Daniel Vetter 2018-09-05 330
72fdb40c1a4b48f Daniel Vetter 2018-09-05 331 crtc_state->connector_mask |=
72fdb40c1a4b48f Daniel Vetter 2018-09-05 332 drm_connector_mask(conn_state->connector);
72fdb40c1a4b48f Daniel Vetter 2018-09-05 333
72fdb40c1a4b48f Daniel Vetter 2018-09-05 334 drm_connector_get(conn_state->connector);
72fdb40c1a4b48f Daniel Vetter 2018-09-05 335 conn_state->crtc = crtc;
72fdb40c1a4b48f Daniel Vetter 2018-09-05 336
e3aae683e861a98 Simon Ser 2020-11-11 337 drm_dbg_atomic(crtc->dev,
e3aae683e861a98 Simon Ser 2020-11-11 338 "Link [CONNECTOR:%d:%s] state %p to [CRTC:%d:%s]\n",
72fdb40c1a4b48f Daniel Vetter 2018-09-05 339 connector->base.id, connector->name,
72fdb40c1a4b48f Daniel Vetter 2018-09-05 340 conn_state, crtc->base.id, crtc->name);
72fdb40c1a4b48f Daniel Vetter 2018-09-05 341 } else {
e3aae683e861a98 Simon Ser 2020-11-11 @342 drm_dbg_atomic(crtc->dev,
e3aae683e861a98 Simon Ser 2020-11-11 343 "Link [CONNECTOR:%d:%s] state %p to [NOCRTC]\n",
72fdb40c1a4b48f Daniel Vetter 2018-09-05 344 connector->base.id, connector->name,
72fdb40c1a4b48f Daniel Vetter 2018-09-05 345 conn_state);
72fdb40c1a4b48f Daniel Vetter 2018-09-05 346 }
72fdb40c1a4b48f Daniel Vetter 2018-09-05 347
72fdb40c1a4b48f Daniel Vetter 2018-09-05 348 return 0;
72fdb40c1a4b48f Daniel Vetter 2018-09-05 349 }
72fdb40c1a4b48f Daniel Vetter 2018-09-05 350 EXPORT_SYMBOL(drm_atomic_set_crtc_for_connector);
72fdb40c1a4b48f Daniel Vetter 2018-09-05 351
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 10 months
Re: [PATCH v1] drivers: make struct device_driver::remove return void
by kernel test robot
Hi "Uwe,
I love your patch! Yet something to improve:
[auto build test ERROR on 407ab579637ced6dc32cfb2295afb7259cca4b22]
url: https://github.com/0day-ci/linux/commits/Uwe-Kleine-K-nig/drivers-make-st...
base: 407ab579637ced6dc32cfb2295afb7259cca4b22
config: mips-randconfig-p002-20201110 (attached as .config)
compiler: mipsel-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
# https://github.com/0day-ci/linux/commit/b836c14181cf5aab71cd870732f724378...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Uwe-Kleine-K-nig/drivers-make-struct-device_driver-remove-return-void/20201110-230939
git checkout b836c14181cf5aab71cd870732f72437811ab228
# 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 >>):
>> drivers/net/fddi/defza.c:1551:13: error: initialization of 'void (*)(struct device *)' from incompatible pointer type 'int (*)(struct device *)' [-Werror=incompatible-pointer-types]
1551 | .remove = fza_remove,
| ^~~~~~~~~~
drivers/net/fddi/defza.c:1551:13: note: (near initialization for 'fza_driver.driver.remove')
cc1: some warnings being treated as errors
--
>> drivers/video/fbdev/tgafb.c:138:14: error: initialization of 'void (*)(struct device *)' from incompatible pointer type 'int (*)(struct device *)' [-Werror=incompatible-pointer-types]
138 | .remove = tgafb_tc_unregister,
| ^~~~~~~~~~~~~~~~~~~
drivers/video/fbdev/tgafb.c:138:14: note: (near initialization for 'tgafb_tc_driver.driver.remove')
drivers/video/fbdev/tgafb.c: In function 'tgafb_clut_imageblit':
drivers/video/fbdev/tgafb.c:840:16: warning: variable 'regs_base' set but not used [-Wunused-but-set-variable]
840 | void __iomem *regs_base, *fb_base;
| ^~~~~~~~~
cc1: some warnings being treated as errors
--
>> drivers/video/fbdev/pmag-aa-fb.c:281:13: error: initialization of 'void (*)(struct device *)' from incompatible pointer type 'int (*)(struct device *)' [-Werror=incompatible-pointer-types]
281 | .remove = pmagaafb_remove,
| ^~~~~~~~~~~~~~~
drivers/video/fbdev/pmag-aa-fb.c:281:13: note: (near initialization for 'pmagaafb_driver.driver.remove')
cc1: some warnings being treated as errors
--
>> drivers/video/fbdev/pmag-ba-fb.c:271:13: error: initialization of 'void (*)(struct device *)' from incompatible pointer type 'int (*)(struct device *)' [-Werror=incompatible-pointer-types]
271 | .remove = pmagbafb_remove,
| ^~~~~~~~~~~~~~~
drivers/video/fbdev/pmag-ba-fb.c:271:13: note: (near initialization for 'pmagbafb_driver.driver.remove')
cc1: some warnings being treated as errors
--
>> drivers/video/fbdev/pmagb-b-fb.c:389:13: error: initialization of 'void (*)(struct device *)' from incompatible pointer type 'int (*)(struct device *)' [-Werror=incompatible-pointer-types]
389 | .remove = pmagbbfb_remove,
| ^~~~~~~~~~~~~~~
drivers/video/fbdev/pmagb-b-fb.c:389:13: note: (near initialization for 'pmagbbfb_driver.driver.remove')
cc1: some warnings being treated as errors
--
>> drivers/net/ethernet/amd/declance.c:1330:13: error: initialization of 'void (*)(struct device *)' from incompatible pointer type 'int (*)(struct device *)' [-Werror=incompatible-pointer-types]
1330 | .remove = dec_lance_tc_remove,
| ^~~~~~~~~~~~~~~~~~~
drivers/net/ethernet/amd/declance.c:1330:13: note: (near initialization for 'dec_lance_tc_driver.driver.remove')
cc1: some warnings being treated as errors
vim +1551 drivers/net/fddi/defza.c
61414f5ec9834df Maciej W. Rozycki 2018-10-09 1544
61414f5ec9834df Maciej W. Rozycki 2018-10-09 1545 static struct tc_driver fza_driver = {
61414f5ec9834df Maciej W. Rozycki 2018-10-09 1546 .id_table = fza_tc_table,
61414f5ec9834df Maciej W. Rozycki 2018-10-09 1547 .driver = {
61414f5ec9834df Maciej W. Rozycki 2018-10-09 1548 .name = "defza",
61414f5ec9834df Maciej W. Rozycki 2018-10-09 1549 .bus = &tc_bus_type,
61414f5ec9834df Maciej W. Rozycki 2018-10-09 1550 .probe = fza_probe,
61414f5ec9834df Maciej W. Rozycki 2018-10-09 @1551 .remove = fza_remove,
61414f5ec9834df Maciej W. Rozycki 2018-10-09 1552 },
61414f5ec9834df Maciej W. Rozycki 2018-10-09 1553 };
61414f5ec9834df Maciej W. Rozycki 2018-10-09 1554
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 10 months
[kvm:queue 40/54] arch/x86/kvm/../../../virt/kvm/eventfd.c:198:23: error: passing argument 1 of 'eventfd_ctx_do_read' from incompatible pointer type
by kernel test robot
tree: https://git.kernel.org/pub/scm/virt/kvm/kvm.git queue
head: 3539292abae0518a1d5bee996174d88014865134
commit: 43814676588fa6f849e6ad0ddb4195c8b9fc6030 [40/54] kvm/eventfd: Drain events from eventfd in irqfd_wakeup()
config: x86_64-allyesconfig (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
reproduce (this is a W=1 build):
# https://git.kernel.org/pub/scm/virt/kvm/kvm.git/commit/?id=43814676588fa6...
git remote add kvm https://git.kernel.org/pub/scm/virt/kvm/kvm.git
git fetch --no-tags kvm queue
git checkout 43814676588fa6f849e6ad0ddb4195c8b9fc6030
# save the attached .config to linux build tree
make W=1 ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
arch/x86/kvm/../../../virt/kvm/eventfd.c: In function 'irqfd_wakeup':
>> arch/x86/kvm/../../../virt/kvm/eventfd.c:198:23: error: passing argument 1 of 'eventfd_ctx_do_read' from incompatible pointer type [-Werror=incompatible-pointer-types]
198 | eventfd_ctx_do_read(&irqfd->eventfd, &cnt);
| ^~~~~~~~~~~~~~~
| |
| struct eventfd_ctx **
In file included from arch/x86/kvm/../../../virt/kvm/eventfd.c:21:
include/linux/eventfd.h:44:46: note: expected 'struct eventfd_ctx *' but argument is of type 'struct eventfd_ctx **'
44 | void eventfd_ctx_do_read(struct eventfd_ctx *ctx, __u64 *cnt);
| ~~~~~~~~~~~~~~~~~~~~^~~
cc1: some warnings being treated as errors
vim +/eventfd_ctx_do_read +198 arch/x86/kvm/../../../virt/kvm/eventfd.c
180
181 /*
182 * Called with wqh->lock held and interrupts disabled
183 */
184 static int
185 irqfd_wakeup(wait_queue_entry_t *wait, unsigned mode, int sync, void *key)
186 {
187 struct kvm_kernel_irqfd *irqfd =
188 container_of(wait, struct kvm_kernel_irqfd, wait);
189 __poll_t flags = key_to_poll(key);
190 struct kvm_kernel_irq_routing_entry irq;
191 struct kvm *kvm = irqfd->kvm;
192 unsigned seq;
193 int idx;
194 int ret = 0;
195
196 if (flags & EPOLLIN) {
197 u64 cnt;
> 198 eventfd_ctx_do_read(&irqfd->eventfd, &cnt);
199
200 idx = srcu_read_lock(&kvm->irq_srcu);
201 do {
202 seq = read_seqcount_begin(&irqfd->irq_entry_sc);
203 irq = irqfd->irq_entry;
204 } while (read_seqcount_retry(&irqfd->irq_entry_sc, seq));
205 /* An event has been signaled, inject an interrupt */
206 if (kvm_arch_set_irq_inatomic(&irq, kvm,
207 KVM_USERSPACE_IRQ_SOURCE_ID, 1,
208 false) == -EWOULDBLOCK)
209 schedule_work(&irqfd->inject);
210 srcu_read_unlock(&kvm->irq_srcu, idx);
211 ret = 1;
212 }
213
214 if (flags & EPOLLHUP) {
215 /* The eventfd is closing, detach from KVM */
216 unsigned long iflags;
217
218 spin_lock_irqsave(&kvm->irqfds.lock, iflags);
219
220 /*
221 * We must check if someone deactivated the irqfd before
222 * we could acquire the irqfds.lock since the item is
223 * deactivated from the KVM side before it is unhooked from
224 * the wait-queue. If it is already deactivated, we can
225 * simply return knowing the other side will cleanup for us.
226 * We cannot race against the irqfd going away since the
227 * other side is required to acquire wqh->lock, which we hold
228 */
229 if (irqfd_is_active(irqfd))
230 irqfd_deactivate(irqfd);
231
232 spin_unlock_irqrestore(&kvm->irqfds.lock, iflags);
233 }
234
235 return ret;
236 }
237
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 10 months
[linux-stable-rc:linux-4.14.y 9865/9999] kernel/trace/blktrace.c:360:12: sparse: sparse: incorrect type in assignment (different address spaces)
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-4.14.y
head: 4f68020fef1c6cf1b680ffb6481ac41379283ea3
commit: 7a35c8cbf2522e4f45d266dca95dacc71cf412ed [9865/9999] blktrace: Protect q->blk_trace with RCU
config: arc-randconfig-s031-20201111 (attached as .config)
compiler: arceb-elf-gcc (GCC) 9.3.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# apt-get install sparse
# sparse version: v0.6.3-107-gaf3512a6-dirty
# https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.gi...
git remote add linux-stable-rc https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git
git fetch --no-tags linux-stable-rc linux-4.14.y
git checkout 7a35c8cbf2522e4f45d266dca95dacc71cf412ed
# 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=arc
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 >>)"
>> kernel/trace/blktrace.c:360:12: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct blk_trace *bt @@ got struct blk_trace [noderef] <asn:4> *[assigned] old_val @@
kernel/trace/blktrace.c:360:12: sparse: expected struct blk_trace *bt
>> kernel/trace/blktrace.c:360:12: sparse: got struct blk_trace [noderef] <asn:4> *[assigned] old_val
kernel/trace/blktrace.c:1025:50: sparse: sparse: incorrect type in argument 7 (different base types) @@ expected int error @@ got restricted blk_status_t [usertype] bi_status @@
kernel/trace/blktrace.c:1025:50: sparse: expected int error
kernel/trace/blktrace.c:1025:50: sparse: got restricted blk_status_t [usertype] bi_status
kernel/trace/blktrace.c:1063:68: sparse: sparse: incorrect type in argument 7 (different base types) @@ expected int error @@ got restricted blk_status_t [usertype] bi_status @@
kernel/trace/blktrace.c:1063:68: sparse: expected int error
kernel/trace/blktrace.c:1063:68: sparse: got restricted blk_status_t [usertype] bi_status
kernel/trace/blktrace.c:1286:16: sparse: sparse: cast to restricted __be64
kernel/trace/blktrace.c:1293:32: sparse: sparse: incorrect type in initializer (different base types) @@ expected unsigned long long [usertype] sector_from @@ got restricted __be64 const [usertype] sector_from @@
kernel/trace/blktrace.c:1293:32: sparse: expected unsigned long long [usertype] sector_from
kernel/trace/blktrace.c:1293:32: sparse: got restricted __be64 const [usertype] sector_from
kernel/trace/blktrace.c:1295:24: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __be32 [usertype] device_from @@ got unsigned int [usertype] @@
kernel/trace/blktrace.c:1295:24: sparse: expected restricted __be32 [usertype] device_from
kernel/trace/blktrace.c:1295:24: sparse: got unsigned int [usertype]
kernel/trace/blktrace.c:1296:24: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __be32 [usertype] device_to @@ got unsigned int [usertype] @@
kernel/trace/blktrace.c:1296:24: sparse: expected restricted __be32 [usertype] device_to
kernel/trace/blktrace.c:1296:24: sparse: got unsigned int [usertype]
kernel/trace/blktrace.c:1297:26: sparse: sparse: cast to restricted __be64
kernel/trace/blktrace.c:1297:24: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __be64 [usertype] sector_from @@ got unsigned long long [usertype] @@
kernel/trace/blktrace.c:1297:24: sparse: expected restricted __be64 [usertype] sector_from
kernel/trace/blktrace.c:1297:24: sparse: got unsigned long long [usertype]
kernel/trace/blktrace.c:1430:26: sparse: sparse: restricted __be32 degrades to integer
kernel/trace/blktrace.c:1430:48: sparse: sparse: restricted __be32 degrades to integer
kernel/trace/blktrace.c:1431:27: sparse: sparse: cast from restricted __be64
kernel/trace/blktrace.c:1655:12: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct blk_trace *bt @@ got struct blk_trace [noderef] <asn:4> *[assigned] old_val @@
kernel/trace/blktrace.c:1655:12: sparse: expected struct blk_trace *bt
kernel/trace/blktrace.c:1655:12: sparse: got struct blk_trace [noderef] <asn:4> *[assigned] old_val
In file included from include/linux/workqueue.h:9,
from include/linux/rhashtable.h:26,
from include/linux/ipc.h:7,
from include/uapi/linux/sem.h:5,
from include/linux/sem.h:9,
from include/linux/sched.h:15,
from include/linux/blkdev.h:5,
from kernel/trace/blktrace.c:19:
include/linux/timer.h: In function 'timer_setup':
include/linux/timer.h:179:23: warning: cast between incompatible function types from 'void (*)(struct timer_list *)' to 'void (*)(long unsigned int)' [-Wcast-function-type]
179 | __setup_timer(timer, (TIMER_FUNC_TYPE)callback,
| ^
include/linux/timer.h:144:25: note: in definition of macro '__setup_timer'
144 | (_timer)->function = (_fn); 44- | ^~~
kernel/trace/blktrace.c: In function '__trace_note_message':
kernel/trace/blktrace.c:158:63: warning: parameter 'blkcg' set but not used [-Wunused-but-set-parameter]
158 | void __trace_note_message(struct blk_trace *bt, struct blkcg *blkcg,
| ~~~~~~~~~~~~~~^~~~~
kernel/trace/blktrace.c: In function 'blk_trace_ioctl':
kernel/trace/blktrace.c:740:9: warning: this statement may fall through [-Wimplicit-fallthrough=]
740 | start = 1;
| ~~~~~~^~~
kernel/trace/blktrace.c:741:2: note: here
741 | case BLKTRACESTOP:
| ^~~~
vim +360 kernel/trace/blktrace.c
2056a782f8e7e65 block/blktrace.c Jens Axboe 2006-03-23 355
b390c22c0bc7582 kernel/trace/blktrace.c Jens Axboe 2017-11-05 356 static int __blk_trace_remove(struct request_queue *q)
2056a782f8e7e65 block/blktrace.c Jens Axboe 2006-03-23 357 {
2056a782f8e7e65 block/blktrace.c Jens Axboe 2006-03-23 358 struct blk_trace *bt;
2056a782f8e7e65 block/blktrace.c Jens Axboe 2006-03-23 359
2056a782f8e7e65 block/blktrace.c Jens Axboe 2006-03-23 @360 bt = xchg(&q->blk_trace, NULL);
2056a782f8e7e65 block/blktrace.c Jens Axboe 2006-03-23 361 if (!bt)
2056a782f8e7e65 block/blktrace.c Jens Axboe 2006-03-23 362 return -EINVAL;
2056a782f8e7e65 block/blktrace.c Jens Axboe 2006-03-23 363
5554720482a6317 kernel/trace/blktrace.c Li Zefan 2009-03-25 364 if (bt->trace_state != Blktrace_running)
2056a782f8e7e65 block/blktrace.c Jens Axboe 2006-03-23 365 blk_trace_cleanup(bt);
2056a782f8e7e65 block/blktrace.c Jens Axboe 2006-03-23 366
2056a782f8e7e65 block/blktrace.c Jens Axboe 2006-03-23 367 return 0;
2056a782f8e7e65 block/blktrace.c Jens Axboe 2006-03-23 368 }
b390c22c0bc7582 kernel/trace/blktrace.c Jens Axboe 2017-11-05 369
:::::: The code at line 360 was first introduced by commit
:::::: 2056a782f8e7e65fd4bfd027506b4ce1c5e9ccd4 [PATCH] Block queue IO tracing support (blktrace) as of 2006-03-23
:::::: TO: Jens Axboe <axboe(a)suse.de>
:::::: CC: Jens Axboe <axboe(a)suse.de>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 10 months