From: kbuild test robot <lkp@intel.com>
To: Jakob Unterwurzacher <jakob.unterwurzacher@theobroma-systems.com>
Cc: kbuild-all@01.org, jakob.unterwurzacher@theobroma-systems.com,
Martin Elshuber <martin.elshuber@theobroma-systems.com>,
Philipp Tomsich <philipp.tomsich@theobroma-systems.com>,
Wolfgang Grandegger <wg@grandegger.com>,
Marc Kleine-Budde <mkl@pengutronix.de>,
linux-can@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2 1/1] can: ucan: add driver for Theobroma Systems UCAN devices
Date: Fri, 16 Mar 2018 20:14:15 +0800 [thread overview]
Message-ID: <201803161925.uZhtkT5m%fengguang.wu@intel.com> (raw)
In-Reply-To: <20180313173520.21257-2-jakob.unterwurzacher@theobroma-systems.com>
Hi Jakob,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on linus/master]
[also build test WARNING on v4.16-rc5]
[cannot apply to next-20180316]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
url: https://github.com/0day-ci/linux/commits/Jakob-Unterwurzacher/can-ucan-add-driver-for-Theobroma-Systems-UCAN-devices/20180316-111528
reproduce:
# apt-get install sparse
make ARCH=x86_64 allmodconfig
make C=1 CF=-D__CHECK_ENDIAN__
sparse warnings: (new ones prefixed by >>)
>> drivers/net/can/usb/ucan.c:406:25: sparse: incorrect type in argument 5 (different base types) @@ expected unsigned short [unsigned] [usertype] value @@ got short [unsigned] [usertype] value @@
drivers/net/can/usb/ucan.c:406:25: expected unsigned short [unsigned] [usertype] value
drivers/net/can/usb/ucan.c:406:25: got restricted __le16 [usertype] <noident>
drivers/net/can/usb/ucan.c:425:25: sparse: incorrect type in argument 5 (different base types) @@ expected unsigned short [unsigned] [usertype] value @@ got short [unsigned] [usertype] value @@
drivers/net/can/usb/ucan.c:425:25: expected unsigned short [unsigned] [usertype] value
drivers/net/can/usb/ucan.c:425:25: got restricted __le16 [usertype] <noident>
>> drivers/net/can/usb/ucan.c:444:30: sparse: cast to restricted __le32
drivers/net/can/usb/ucan.c:452:30: sparse: cast to restricted __le32
drivers/net/can/usb/ucan.c:453:30: sparse: cast to restricted __le32
>> drivers/net/can/usb/ucan.c:454:30: sparse: cast to restricted __le16
drivers/net/can/usb/ucan.c:456:21: sparse: cast to restricted __le16
drivers/net/can/usb/ucan.c:559:15: sparse: cast to restricted __le16
drivers/net/can/usb/ucan.c:568:17: sparse: cast to restricted __le32
drivers/net/can/usb/ucan.c:582:22: sparse: cast to restricted __le32
drivers/net/can/usb/ucan.c:622:19: sparse: cast to restricted __le16
>> drivers/net/can/usb/ucan.c:681:44: sparse: incorrect type in argument 2 (different base types) @@ expected unsigned long [unsigned] [usertype] size @@ got d long [unsigned] [usertype] size @@
drivers/net/can/usb/ucan.c:681:44: expected unsigned long [unsigned] [usertype] size
drivers/net/can/usb/ucan.c:681:44: got restricted __le16 [usertype] wMaxPacketSize
drivers/net/can/usb/ucan.c:698:44: sparse: incorrect type in argument 2 (different base types) @@ expected unsigned long [unsigned] [usertype] size @@ got d long [unsigned] [usertype] size @@
drivers/net/can/usb/ucan.c:698:44: expected unsigned long [unsigned] [usertype] size
drivers/net/can/usb/ucan.c:698:44: got restricted __le16 [usertype] wMaxPacketSize
drivers/net/can/usb/ucan.c:728:23: sparse: cast to restricted __le16
drivers/net/can/usb/ucan.c:746:25: sparse: cast to restricted __le16
>> drivers/net/can/usb/ucan.c:772:36: sparse: incorrect type in argument 5 (different base types) @@ expected int [signed] buffer_length @@ got restricted __le1int [signed] buffer_length @@
drivers/net/can/usb/ucan.c:772:36: expected int [signed] buffer_length
drivers/net/can/usb/ucan.c:772:36: got restricted __le16 [usertype] wMaxPacketSize
drivers/net/can/usb/ucan.c:784:54: sparse: incorrect type in argument 2 (different base types) @@ expected unsigned long [unsigned] [usertype] size @@ got d long [unsigned] [usertype] size @@
drivers/net/can/usb/ucan.c:784:54: expected unsigned long [unsigned] [usertype] size
drivers/net/can/usb/ucan.c:784:54: got restricted __le16 [usertype] wMaxPacketSize
drivers/net/can/usb/ucan.c:842:62: sparse: incorrect type in argument 2 (different base types) @@ expected unsigned long [unsigned] [usertype] size @@ got d long [unsigned] [usertype] size @@
drivers/net/can/usb/ucan.c:842:62: expected unsigned long [unsigned] [usertype] size
drivers/net/can/usb/ucan.c:842:62: got restricted __le16 [usertype] wMaxPacketSize
drivers/net/can/usb/ucan.c:866:61: sparse: incorrect type in argument 2 (different base types) @@ expected unsigned long [unsigned] [usertype] size @@ got d long [unsigned] [usertype] size @@
drivers/net/can/usb/ucan.c:866:61: expected unsigned long [unsigned] [usertype] size
drivers/net/can/usb/ucan.c:866:61: got restricted __le16 [usertype] wMaxPacketSize
drivers/net/can/usb/ucan.c:880:44: sparse: incorrect type in argument 5 (different base types) @@ expected int [signed] buffer_length @@ got restricted __le1int [signed] buffer_length @@
drivers/net/can/usb/ucan.c:880:44: expected int [signed] buffer_length
drivers/net/can/usb/ucan.c:880:44: got restricted __le16 [usertype] wMaxPacketSize
>> drivers/net/can/usb/ucan.c:968:44: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [unsigned] [usertype] mode @@ got short [unsigned] [usertype] mode @@
drivers/net/can/usb/ucan.c:968:44: expected unsigned short [unsigned] [usertype] mode
drivers/net/can/usb/ucan.c:968:44: got restricted __le16 [usertype] <noident>
>> drivers/net/can/usb/ucan.c:1051:27: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [unsigned] [usertype] id @@ got ed int [unsigned] [usertype] id @@
drivers/net/can/usb/ucan.c:1051:27: expected unsigned int [unsigned] [usertype] id
drivers/net/can/usb/ucan.c:1051:27: got restricted __le32 [usertype] <noident>
>> drivers/net/can/usb/ucan.c:1063:16: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [unsigned] [usertype] len @@ got short [unsigned] [usertype] len @@
drivers/net/can/usb/ucan.c:1063:16: expected unsigned short [unsigned] [usertype] len
drivers/net/can/usb/ucan.c:1063:16: got restricted __le16 [usertype] <noident>
>> drivers/net/can/usb/ucan.c:1212:31: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [unsigned] [usertype] tq @@ got ed int [unsigned] [usertype] tq @@
drivers/net/can/usb/ucan.c:1212:31: expected unsigned int [unsigned] [usertype] tq
drivers/net/can/usb/ucan.c:1212:31: got restricted __le32 [usertype] <noident>
>> drivers/net/can/usb/ucan.c:1213:32: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [unsigned] [usertype] brp @@ got short [unsigned] [usertype] brp @@
drivers/net/can/usb/ucan.c:1213:32: expected unsigned short [unsigned] [usertype] brp
drivers/net/can/usb/ucan.c:1213:32: got restricted __le16 [usertype] <noident>
>> drivers/net/can/usb/ucan.c:1214:41: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [unsigned] [usertype] sample_point @@ got short [unsigned] [usertype] sample_point @@
drivers/net/can/usb/ucan.c:1214:41: expected unsigned short [unsigned] [usertype] sample_point
drivers/net/can/usb/ucan.c:1214:41: got restricted __le32 [usertype] <noident>
>> drivers/net/can/usb/ucan.c:1334:18: sparse: restricted __le16 degrades to integer
drivers/net/can/usb/ucan.c:1338:19: sparse: restricted __le16 degrades to integer
drivers/net/can/usb/ucan.c:1372:31: sparse: incorrect type in argument 5 (different base types) @@ expected unsigned short [unsigned] [usertype] value @@ got short [unsigned] [usertype] value @@
drivers/net/can/usb/ucan.c:1372:31: expected unsigned short [unsigned] [usertype] value
drivers/net/can/usb/ucan.c:1372:31: got restricted __le16 [usertype] <noident>
drivers/net/can/usb/ucan.c:1392:17: sparse: cast to restricted __le32
drivers/net/can/usb/ucan.c:1412:31: sparse: incorrect type in argument 5 (different base types) @@ expected unsigned short [unsigned] [usertype] value @@ got short [unsigned] [usertype] value @@
drivers/net/can/usb/ucan.c:1412:31: expected unsigned short [unsigned] [usertype] value
drivers/net/can/usb/ucan.c:1412:31: got restricted __le16 [usertype] <noident>
vim +406 drivers/net/can/usb/ucan.c
393
394 static int ucan_ctrl_command_out(struct ucan_priv *up,
395 u8 cmd,
396 u16 subcmd,
397 size_t datalen)
398 {
399 if (datalen > sizeof(union ucan_ctl_payload))
400 return -ENOMEM;
401
402 return usb_control_msg(up->udev,
403 usb_sndctrlpipe(up->udev, 0),
404 cmd,
405 USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_INTERFACE,
> 406 cpu_to_le16(subcmd),
407 up->intf_index,
408 up->ctl_msg_buffer,
409 datalen,
410 UCAN_USB_CTL_PIPE_TIMEOUT);
411 }
412
413 static int ucan_device_request_in(struct ucan_priv *up,
414 u8 cmd,
415 u16 subcmd,
416 size_t datalen)
417 {
418 if (datalen > sizeof(union ucan_ctl_payload))
419 return -ENOMEM;
420
421 return usb_control_msg(up->udev,
422 usb_rcvctrlpipe(up->udev, 0),
423 cmd,
424 USB_DIR_IN | USB_TYPE_VENDOR | USB_RECIP_DEVICE,
425 cpu_to_le16(subcmd),
426 0,
427 up->ctl_msg_buffer,
428 datalen,
429 UCAN_USB_CTL_PIPE_TIMEOUT);
430 }
431
432 /* Parse the device information structure reported by the device and
433 * setup private variables accordingly
434 */
435 static void ucan_parse_device_info(struct ucan_priv *up,
436 struct ucan_ctl_cmd_device_info
437 *ctl_cmd_device_info)
438 {
439 struct can_bittiming_const *bittiming =
440 &up->device_info.bittiming_const;
441 u16 ctrlmodes;
442
443 /* store the data */
> 444 up->can.clock.freq = le32_to_cpu(ctl_cmd_device_info->freq);
445 up->device_info.tx_fifo = ctl_cmd_device_info->tx_fifo;
446 strcpy(bittiming->name, "ucan");
447 bittiming->tseg1_min = ctl_cmd_device_info->tseg1_min;
448 bittiming->tseg1_max = ctl_cmd_device_info->tseg1_max;
449 bittiming->tseg2_min = ctl_cmd_device_info->tseg2_min;
450 bittiming->tseg2_max = ctl_cmd_device_info->tseg2_max;
451 bittiming->sjw_max = ctl_cmd_device_info->sjw_max;
452 bittiming->brp_min = le32_to_cpu(ctl_cmd_device_info->brp_min);
453 bittiming->brp_max = le32_to_cpu(ctl_cmd_device_info->brp_max);
> 454 bittiming->brp_inc = le16_to_cpu(ctl_cmd_device_info->brp_inc);
455
456 ctrlmodes = le16_to_cpu(ctl_cmd_device_info->ctrlmodes);
457
458 up->can.ctrlmode_supported = 0;
459
460 if (ctrlmodes & UCAN_MODE_LOOPBACK)
461 up->can.ctrlmode_supported |= CAN_CTRLMODE_LOOPBACK;
462 if (ctrlmodes & UCAN_MODE_SILENT)
463 up->can.ctrlmode_supported |= CAN_CTRLMODE_LISTENONLY;
464 if (ctrlmodes & UCAN_MODE_3_SAMPLES)
465 up->can.ctrlmode_supported |= CAN_CTRLMODE_3_SAMPLES;
466 if (ctrlmodes & UCAN_MODE_ONE_SHOT)
467 up->can.ctrlmode_supported |= CAN_CTRLMODE_ONE_SHOT;
468 if (ctrlmodes & UCAN_MODE_BERR_REPORT)
469 up->can.ctrlmode_supported |= CAN_CTRLMODE_BERR_REPORTING;
470 }
471
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
next prev parent reply other threads:[~2018-03-16 12:15 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-03-13 17:35 [PATCH v2 0/1] can: ucan: add driver for Theobroma Systems UCAN devices Jakob Unterwurzacher
2018-03-13 17:35 ` [PATCH v2 1/1] " Jakob Unterwurzacher
2018-03-13 17:44 ` Marc Kleine-Budde
2018-03-13 17:53 ` Jakob Unterwurzacher
2018-03-13 17:56 ` Marc Kleine-Budde
2018-03-14 7:51 ` Marc Kleine-Budde
2018-03-14 9:09 ` Jakob Unterwurzacher
2018-03-14 9:36 ` rx_packets/bytes stats for error frames (was: Re: [PATCH v2 1/1] can: ucan: add driver for Theobroma Systems UCAN devices) Marc Kleine-Budde
2018-03-14 9:46 ` rx_packets/bytes stats for error frames Wolfgang Grandegger
2018-03-14 9:57 ` Jakob Unterwurzacher
2018-03-14 9:11 ` [PATCH v2 1/1] can: ucan: add driver for Theobroma Systems UCAN devices Wolfgang Grandegger
2018-03-14 9:14 ` Jakob Unterwurzacher
2018-03-14 9:17 ` Wolfgang Grandegger
2018-03-14 9:21 ` Jakob Unterwurzacher
2018-03-14 9:25 ` Wolfgang Grandegger
2018-03-14 9:48 ` Jakob Unterwurzacher
2018-03-14 10:04 ` Wolfgang Grandegger
2018-03-14 10:19 ` Jakob Unterwurzacher
2018-03-14 19:07 ` Jakob Unterwurzacher
2018-03-15 6:58 ` Wolfgang Grandegger
2018-03-16 7:01 ` kbuild test robot
2018-03-16 12:14 ` kbuild test robot [this message]
2018-03-13 17:40 ` [PATCH v2 0/1] Open questions Jakob Unterwurzacher
[not found] ` <06378497-1ACE-4333-810F-4E3E4706CCD5@theobroma-systems.com>
2018-03-13 17:48 ` Jakob Unterwurzacher
2018-03-13 17:48 ` Marc Kleine-Budde
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=201803161925.uZhtkT5m%fengguang.wu@intel.com \
--to=lkp@intel.com \
--cc=jakob.unterwurzacher@theobroma-systems.com \
--cc=kbuild-all@01.org \
--cc=linux-can@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=martin.elshuber@theobroma-systems.com \
--cc=mkl@pengutronix.de \
--cc=philipp.tomsich@theobroma-systems.com \
--cc=wg@grandegger.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).