tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: b791d1bdf9212d944d749a5c7ff6febdba241771 commit: 26ad340e582d3d5958ed8456a1911d79cfb567b4 can: kvaser_pciefd: Add driver for Kvaser PCIEcan devices date: 11 months ago config: m68k-randconfig-s032-20200612 (attached as .config) compiler: m68k-linux-gcc (GCC) 9.3.0 reproduce: # apt-get install sparse # sparse version: v0.6.1-250-g42323db3-dirty git checkout 26ad340e582d3d5958ed8456a1911d79cfb567b4 # save the attached .config to linux build tree make W=1 C=1 ARCH=m68k CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot sparse warnings: (new ones prefixed by >>) >> drivers/net/can/kvaser_pciefd.c:801:17: sparse: sparse: cast removes address space '' of expression drivers/net/can/kvaser_pciefd.c:805:17: sparse: sparse: cast removes address space '' of expression arch/m68k/include/asm/io_no.h:77:24: sparse: sparse: cast removes address space '' of expression arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast removes address space '' of expression arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32 arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast removes address space '' of expression arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32 arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast removes address space '' of expression arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32 arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast removes address space '' of expression arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32 arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast removes address space '' of expression arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32 arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast removes address space '' of expression arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32 arch/m68k/include/asm/io_no.h:77:24: sparse: sparse: cast removes address space '' of expression arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast removes address space '' of expression arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32 arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast removes address space '' of expression arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32 arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast removes address space '' of expression arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32 arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast removes address space '' of expression arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32 arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast removes address space '' of expression arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32 arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast removes address space '' of expression arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32 arch/m68k/include/asm/io_no.h:77:24: sparse: sparse: cast removes address space '' of expression arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast removes address space '' of expression arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32 arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast removes address space '' of expression arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32 arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast removes address space '' of expression arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32 arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast removes address space '' of expression arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32 arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast removes address space '' of expression arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32 arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast removes address space '' of expression arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32 arch/m68k/include/asm/io_no.h:77:24: sparse: sparse: cast removes address space '' of expression arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast removes address space '' of expression arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32 arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast removes address space '' of expression arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32 arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast removes address space '' of expression arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32 arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast removes address space '' of expression arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32 arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast removes address space '' of expression arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32 arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast removes address space '' of expression arch/m68k/include/asm/io_no.h:78:16: sparse: sparse: cast to restricted __le32 vim +801 drivers/net/can/kvaser_pciefd.c 764 765 static netdev_tx_t kvaser_pciefd_start_xmit(struct sk_buff *skb, 766 struct net_device *netdev) 767 { 768 struct kvaser_pciefd_can *can = netdev_priv(netdev); 769 unsigned long irq_flags; 770 struct kvaser_pciefd_tx_packet packet; 771 int nwords; 772 u8 count; 773 774 if (can_dropped_invalid_skb(netdev, skb)) 775 return NETDEV_TX_OK; 776 777 nwords = kvaser_pciefd_prepare_tx_packet(&packet, can, skb); 778 779 spin_lock_irqsave(&can->echo_lock, irq_flags); 780 781 /* Prepare and save echo skb in internal slot */ 782 can_put_echo_skb(skb, netdev, can->echo_idx); 783 784 /* Move echo index to the next slot */ 785 can->echo_idx = (can->echo_idx + 1) % can->can.echo_skb_max; 786 787 /* Write header to fifo */ 788 iowrite32(packet.header[0], 789 can->reg_base + KVASER_PCIEFD_KCAN_FIFO_REG); 790 iowrite32(packet.header[1], 791 can->reg_base + KVASER_PCIEFD_KCAN_FIFO_REG); 792 793 if (nwords) { 794 u32 data_last = ((u32 *)packet.data)[nwords - 1]; 795 796 /* Write data to fifo, except last word */ 797 iowrite32_rep(can->reg_base + 798 KVASER_PCIEFD_KCAN_FIFO_REG, packet.data, 799 nwords - 1); 800 /* Write last word to end of fifo */ > 801 __raw_writel(data_last, can->reg_base + 802 KVASER_PCIEFD_KCAN_FIFO_LAST_REG); 803 } else { 804 /* Complete write to fifo */ 805 __raw_writel(0, can->reg_base + 806 KVASER_PCIEFD_KCAN_FIFO_LAST_REG); 807 } 808 809 count = ioread32(can->reg_base + KVASER_PCIEFD_KCAN_TX_NPACKETS_REG); 810 /* No room for a new message, stop the queue until at least one 811 * successful transmit 812 */ 813 if (count >= KVASER_PCIEFD_CAN_TX_MAX_COUNT || 814 can->can.echo_skb[can->echo_idx]) 815 netif_stop_queue(netdev); 816 817 spin_unlock_irqrestore(&can->echo_lock, irq_flags); 818 819 return NETDEV_TX_OK; 820 } 821 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org