tree: https://github.com/Xilinx/linux-xlnx master head: 2c67a02cdd8efb00e679c5ae3ffe25d3fa710840 commit: de3781f35f90e5be2a97842fcb6924526119ba0b [11365/12191] net: macb: Use WOL via ARP config: microblaze-randconfig-s031-20210505 (attached as .config) compiler: microblaze-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.3-341-g8af24329-dirty # https://github.com/Xilinx/linux-xlnx/commit/de3781f35f90e5be2a97842fcb6924526119ba0b git remote add xlnx https://github.com/Xilinx/linux-xlnx git fetch --no-tags xlnx master git checkout de3781f35f90e5be2a97842fcb6924526119ba0b # 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__' W=1 ARCH=microblaze If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot sparse warnings: (new ones prefixed by >>) drivers/net/ethernet/cadence/macb_main.c:278:16: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] bottom @@ got restricted __le32 [usertype] @@ drivers/net/ethernet/cadence/macb_main.c:278:16: sparse: expected unsigned int [usertype] bottom drivers/net/ethernet/cadence/macb_main.c:278:16: sparse: got restricted __le32 [usertype] drivers/net/ethernet/cadence/macb_main.c:280:13: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] top @@ got restricted __le16 [usertype] @@ drivers/net/ethernet/cadence/macb_main.c:280:13: sparse: expected unsigned short [usertype] top drivers/net/ethernet/cadence/macb_main.c:280:13: sparse: got restricted __le16 [usertype] drivers/net/ethernet/cadence/macb_main.c:3091:39: sparse: sparse: restricted __be32 degrades to integer drivers/net/ethernet/cadence/macb_main.c:3096:39: sparse: sparse: restricted __be32 degrades to integer drivers/net/ethernet/cadence/macb_main.c:3101:40: sparse: sparse: restricted __be16 degrades to integer drivers/net/ethernet/cadence/macb_main.c:3101:69: sparse: sparse: restricted __be16 degrades to integer drivers/net/ethernet/cadence/macb_main.c:3123:20: sparse: sparse: restricted __be32 degrades to integer drivers/net/ethernet/cadence/macb_main.c:3127:20: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [assigned] [usertype] w0 @@ got restricted __be32 [usertype] ip4src @@ drivers/net/ethernet/cadence/macb_main.c:3127:20: sparse: expected unsigned int [assigned] [usertype] w0 drivers/net/ethernet/cadence/macb_main.c:3127:20: sparse: got restricted __be32 [usertype] ip4src drivers/net/ethernet/cadence/macb_main.c:3137:20: sparse: sparse: restricted __be32 degrades to integer drivers/net/ethernet/cadence/macb_main.c:3141:20: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [assigned] [usertype] w0 @@ got restricted __be32 [usertype] ip4dst @@ drivers/net/ethernet/cadence/macb_main.c:3141:20: sparse: expected unsigned int [assigned] [usertype] w0 drivers/net/ethernet/cadence/macb_main.c:3141:20: sparse: got restricted __be32 [usertype] ip4dst drivers/net/ethernet/cadence/macb_main.c:3151:21: sparse: sparse: restricted __be16 degrades to integer drivers/net/ethernet/cadence/macb_main.c:3151:50: sparse: sparse: restricted __be16 degrades to integer drivers/net/ethernet/cadence/macb_main.c:3157:30: sparse: sparse: restricted __be16 degrades to integer drivers/net/ethernet/cadence/macb_main.c:3158:30: sparse: sparse: restricted __be16 degrades to integer drivers/net/ethernet/cadence/macb_main.c:3165:36: sparse: sparse: restricted __be16 degrades to integer drivers/net/ethernet/cadence/macb_main.c:3166:38: sparse: sparse: restricted __be16 degrades to integer drivers/net/ethernet/cadence/macb_main.c:3169:38: sparse: sparse: restricted __be16 degrades to integer drivers/net/ethernet/cadence/macb_main.c:3205:9: sparse: sparse: cast from restricted __be32 drivers/net/ethernet/cadence/macb_main.c:3205:9: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int [usertype] val @@ got restricted __be32 [usertype] ip4src @@ drivers/net/ethernet/cadence/macb_main.c:3205:9: sparse: expected unsigned int [usertype] val drivers/net/ethernet/cadence/macb_main.c:3205:9: sparse: got restricted __be32 [usertype] ip4src drivers/net/ethernet/cadence/macb_main.c:3205:9: sparse: sparse: cast from restricted __be32 drivers/net/ethernet/cadence/macb_main.c:3205:9: sparse: sparse: cast from restricted __be32 drivers/net/ethernet/cadence/macb_main.c:3205:9: sparse: sparse: cast from restricted __be32 drivers/net/ethernet/cadence/macb_main.c:3205:9: sparse: sparse: cast from restricted __be32 drivers/net/ethernet/cadence/macb_main.c:3205:9: sparse: sparse: cast from restricted __be32 drivers/net/ethernet/cadence/macb_main.c:3205:9: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int [usertype] val @@ got restricted __be32 [usertype] ip4dst @@ drivers/net/ethernet/cadence/macb_main.c:3205:9: sparse: expected unsigned int [usertype] val drivers/net/ethernet/cadence/macb_main.c:3205:9: sparse: got restricted __be32 [usertype] ip4dst drivers/net/ethernet/cadence/macb_main.c:3205:9: sparse: sparse: cast from restricted __be32 drivers/net/ethernet/cadence/macb_main.c:3205:9: sparse: sparse: cast from restricted __be32 drivers/net/ethernet/cadence/macb_main.c:3205:9: sparse: sparse: cast from restricted __be32 drivers/net/ethernet/cadence/macb_main.c:3205:9: sparse: sparse: cast from restricted __be32 drivers/net/ethernet/cadence/macb_main.c:3205:9: sparse: sparse: cast from restricted __be16 drivers/net/ethernet/cadence/macb_main.c:3205:9: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned short [usertype] val @@ got restricted __be16 [usertype] psrc @@ drivers/net/ethernet/cadence/macb_main.c:3205:9: sparse: expected unsigned short [usertype] val drivers/net/ethernet/cadence/macb_main.c:3205:9: sparse: got restricted __be16 [usertype] psrc drivers/net/ethernet/cadence/macb_main.c:3205:9: sparse: sparse: cast from restricted __be16 drivers/net/ethernet/cadence/macb_main.c:3205:9: sparse: sparse: cast from restricted __be16 drivers/net/ethernet/cadence/macb_main.c:3205:9: sparse: sparse: cast from restricted __be16 drivers/net/ethernet/cadence/macb_main.c:3205:9: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned short [usertype] val @@ got restricted __be16 [usertype] pdst @@ drivers/net/ethernet/cadence/macb_main.c:3205:9: sparse: expected unsigned short [usertype] val drivers/net/ethernet/cadence/macb_main.c:3205:9: sparse: got restricted __be16 [usertype] pdst drivers/net/ethernet/cadence/macb_main.c:3205:9: sparse: sparse: cast from restricted __be16 drivers/net/ethernet/cadence/macb_main.c:3205:9: sparse: sparse: cast from restricted __be16 drivers/net/ethernet/cadence/macb_main.c:3258:25: sparse: sparse: cast from restricted __be32 drivers/net/ethernet/cadence/macb_main.c:3258:25: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int [usertype] val @@ got restricted __be32 [usertype] ip4src @@ drivers/net/ethernet/cadence/macb_main.c:3258:25: sparse: expected unsigned int [usertype] val drivers/net/ethernet/cadence/macb_main.c:3258:25: sparse: got restricted __be32 [usertype] ip4src drivers/net/ethernet/cadence/macb_main.c:3258:25: sparse: sparse: cast from restricted __be32 drivers/net/ethernet/cadence/macb_main.c:3258:25: sparse: sparse: cast from restricted __be32 drivers/net/ethernet/cadence/macb_main.c:3258:25: sparse: sparse: cast from restricted __be32 drivers/net/ethernet/cadence/macb_main.c:3258:25: sparse: sparse: cast from restricted __be32 drivers/net/ethernet/cadence/macb_main.c:3258:25: sparse: sparse: cast from restricted __be32 drivers/net/ethernet/cadence/macb_main.c:3258:25: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int [usertype] val @@ got restricted __be32 [usertype] ip4dst @@ drivers/net/ethernet/cadence/macb_main.c:3258:25: sparse: expected unsigned int [usertype] val drivers/net/ethernet/cadence/macb_main.c:3258:25: sparse: got restricted __be32 [usertype] ip4dst drivers/net/ethernet/cadence/macb_main.c:3258:25: sparse: sparse: cast from restricted __be32 drivers/net/ethernet/cadence/macb_main.c:3258:25: sparse: sparse: cast from restricted __be32 drivers/net/ethernet/cadence/macb_main.c:3258:25: sparse: sparse: cast from restricted __be32 drivers/net/ethernet/cadence/macb_main.c:3258:25: sparse: sparse: cast from restricted __be32 drivers/net/ethernet/cadence/macb_main.c:3258:25: sparse: sparse: cast from restricted __be16 drivers/net/ethernet/cadence/macb_main.c:3258:25: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned short [usertype] val @@ got restricted __be16 [usertype] psrc @@ drivers/net/ethernet/cadence/macb_main.c:3258:25: sparse: expected unsigned short [usertype] val drivers/net/ethernet/cadence/macb_main.c:3258:25: sparse: got restricted __be16 [usertype] psrc drivers/net/ethernet/cadence/macb_main.c:3258:25: sparse: sparse: cast from restricted __be16 drivers/net/ethernet/cadence/macb_main.c:3258:25: sparse: sparse: cast from restricted __be16 drivers/net/ethernet/cadence/macb_main.c:3258:25: sparse: sparse: cast from restricted __be16 drivers/net/ethernet/cadence/macb_main.c:3258:25: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned short [usertype] val @@ got restricted __be16 [usertype] pdst @@ drivers/net/ethernet/cadence/macb_main.c:3258:25: sparse: expected unsigned short [usertype] val drivers/net/ethernet/cadence/macb_main.c:3258:25: sparse: got restricted __be16 [usertype] pdst drivers/net/ethernet/cadence/macb_main.c:3258:25: sparse: sparse: cast from restricted __be16 drivers/net/ethernet/cadence/macb_main.c:3258:25: sparse: sparse: cast from restricted __be16 >> drivers/net/ethernet/cadence/macb_main.c:4724:58: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int const [usertype] *p @@ got restricted __be32 [noderef] __rcu * @@ drivers/net/ethernet/cadence/macb_main.c:4724:58: sparse: expected unsigned int const [usertype] *p drivers/net/ethernet/cadence/macb_main.c:4724:58: sparse: got restricted __be32 [noderef] __rcu * drivers/net/ethernet/cadence/macb_main.c:4724:41: sparse: sparse: restricted __be32 degrades to integer drivers/net/ethernet/cadence/macb_main.c: note: in included file (through arch/microblaze/include/asm/io.h, include/linux/io.h): include/asm-generic/io.h:267:16: sparse: sparse: cast to restricted __le32 include/asm-generic/io.h:299:22: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int [usertype] value @@ got restricted __le32 [usertype] @@ include/asm-generic/io.h:299:22: sparse: expected unsigned int [usertype] value include/asm-generic/io.h:299:22: sparse: got restricted __le32 [usertype] include/asm-generic/io.h:267:16: sparse: sparse: cast to restricted __le32 include/asm-generic/io.h:267:16: sparse: sparse: cast to restricted __le32 drivers/net/ethernet/cadence/macb_main.c:4724:50: sparse: sparse: dereference of noderef expression drivers/net/ethernet/cadence/macb_main.c:4724:50: sparse: sparse: dereference of noderef expression vim +4724 drivers/net/ethernet/cadence/macb_main.c 4681 4682 static int __maybe_unused macb_suspend(struct device *dev) 4683 { 4684 struct net_device *netdev = dev_get_drvdata(dev); 4685 struct macb *bp = netdev_priv(netdev); 4686 struct macb_queue *queue = bp->queues; 4687 unsigned long flags; 4688 unsigned int q; 4689 u32 ctrl, arpipmask; 4690 4691 if (!netif_running(netdev)) 4692 return 0; 4693 4694 if (device_may_wakeup(&bp->dev->dev)) { 4695 spin_lock_irqsave(&bp->lock, flags); 4696 ctrl = macb_readl(bp, NCR); 4697 ctrl &= ~(MACB_BIT(TE) | MACB_BIT(RE)); 4698 macb_writel(bp, NCR, ctrl); 4699 /* Tie off RX queues */ 4700 for (q = 0, queue = bp->queues; q < bp->num_queues; 4701 ++q, ++queue) { 4702 queue_writel(queue, RBQP, 4703 lower_32_bits(bp->rx_ring_tieoff_dma)); 4704 } 4705 ctrl = macb_readl(bp, NCR); 4706 ctrl |= MACB_BIT(RE); 4707 macb_writel(bp, NCR, ctrl); 4708 gem_writel(bp, NCFGR, gem_readl(bp, NCFGR) & ~MACB_BIT(NBC)); 4709 macb_writel(bp, TSR, -1); 4710 macb_writel(bp, RSR, -1); 4711 macb_readl(bp, ISR); 4712 if (bp->caps & MACB_CAPS_ISR_CLEAR_ON_WRITE) 4713 macb_writel(bp, ISR, -1); 4714 4715 /* Enable WOL (Q0 only) and disable all other interrupts */ 4716 macb_writel(bp, IER, MACB_BIT(WOL)); 4717 for (q = 1, queue = bp->queues; q < bp->num_queues; 4718 ++q, ++queue) { 4719 queue_writel(queue, IDR, bp->rx_intr_mask | 4720 MACB_TX_INT_FLAGS | 4721 MACB_BIT(HRESP)); 4722 } 4723 > 4724 arpipmask = cpu_to_be32p(&bp->dev->ip_ptr->ifa_list->ifa_local) 4725 & 0xFFFF; 4726 gem_writel(bp, WOL, MACB_BIT(ARP) | arpipmask); 4727 spin_unlock_irqrestore(&bp->lock, flags); 4728 enable_irq_wake(bp->queues[0].irq); 4729 netif_device_detach(netdev); 4730 for (q = 0, queue = bp->queues; q < bp->num_queues; 4731 ++q, ++queue) 4732 napi_disable(&queue->napi); 4733 } 4734 4735 netif_device_detach(netdev); 4736 for (q = 0, queue = bp->queues; q < bp->num_queues; 4737 ++q, ++queue) 4738 napi_disable(&queue->napi); 4739 4740 if (!device_may_wakeup(&bp->dev->dev)) { 4741 rtnl_lock(); 4742 phylink_stop(bp->phylink); 4743 rtnl_unlock(); 4744 spin_lock_irqsave(&bp->lock, flags); 4745 macb_reset_hw(bp); 4746 spin_unlock_irqrestore(&bp->lock, flags); 4747 } 4748 4749 if (!(bp->caps & MACB_CAPS_USRIO_DISABLED)) 4750 bp->pm_data.usrio = macb_or_gem_readl(bp, USRIO); 4751 4752 if (netdev->hw_features & NETIF_F_NTUPLE) 4753 bp->pm_data.scrt2 = gem_readl_n(bp, ETHT, SCRT2_ETHT); 4754 4755 if (bp->ptp_info) 4756 bp->ptp_info->ptp_remove(netdev); 4757 if (!device_may_wakeup(dev)) 4758 pm_runtime_force_suspend(dev); 4759 4760 return 0; 4761 } 4762 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org