Re: [vhost:vhost 22/23] drivers/firmware/qemu_fw_cfg.c:130:36: sparse: incorrect type in initializer (different base types)
On Wed, Feb 14, 2018 at 08:46:46AM +0800, kbuild test robot wrote: > tree: https://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost.git vhost > head: 3d22d7c1190db3209b644b8a13a75a9802b4587f > commit: b3a8771f409b74c42deee28aee3092fc5d2c8dab [22/23] fw_cfg: write > vmcoreinfo details > reproduce: > # apt-get install sparse > git checkout b3a8771f409b74c42deee28aee3092fc5d2c8dab > make ARCH=x86_64 allmodconfig > make C=1 CF=-D__CHECK_ENDIAN__ Please make sure there are no sparse warnings when you build a driver. > > sparse warnings: (new ones prefixed by >>) > >drivers/firmware/qemu_fw_cfg.c:108:28: sparse: cast to restricted __be32 >drivers/firmware/qemu_fw_cfg.c:108:28: sparse: cast to restricted __be32 >drivers/firmware/qemu_fw_cfg.c:108:28: sparse: cast to restricted __be32 >drivers/firmware/qemu_fw_cfg.c:108:28: sparse: cast to restricted __be32 >drivers/firmware/qemu_fw_cfg.c:108:28: sparse: cast to restricted __be32 >drivers/firmware/qemu_fw_cfg.c:108:28: sparse: cast to restricted __be32 > >> drivers/firmware/qemu_fw_cfg.c:130:36: sparse: incorrect type in > >> initializer (different base types) @@ expected unsigned long long address > >> @@ got gned] address @@ >drivers/firmware/qemu_fw_cfg.c:130:36: expected unsigned long long address >drivers/firmware/qemu_fw_cfg.c:130:36: got restricted __be64 >drivers/firmware/qemu_fw_cfg.c:131:27: sparse: incorrect type in > initializer (different base types) @@ expected unsigned int length @@ got ed > int length @@ >drivers/firmware/qemu_fw_cfg.c:131:27: expected unsigned int length >drivers/firmware/qemu_fw_cfg.c:131:27: got restricted __be32 >drivers/firmware/qemu_fw_cfg.c:132:28: sparse: incorrect type in > initializer (different base types) @@ expected unsigned int control @@ got ed > int control @@ >drivers/firmware/qemu_fw_cfg.c:132:28: expected unsigned int control >drivers/firmware/qemu_fw_cfg.c:132:28: got restricted __be32 >drivers/firmware/qemu_fw_cfg.c:142:13: sparse: cast to restricted __be32 >drivers/firmware/qemu_fw_cfg.c:142:13: sparse: cast to restricted __be32 >drivers/firmware/qemu_fw_cfg.c:142:13: sparse: cast to restricted __be32 >drivers/firmware/qemu_fw_cfg.c:142:13: sparse: cast to restricted __be32 >drivers/firmware/qemu_fw_cfg.c:142:13: sparse: cast to restricted __be32 >drivers/firmware/qemu_fw_cfg.c:142:13: sparse: cast to restricted __be32 >drivers/firmware/qemu_fw_cfg.c:96:33: sparse: restricted __be16 degrades > to integer >drivers/firmware/qemu_fw_cfg.c:96:52: sparse: restricted __le16 degrades > to integer >drivers/firmware/qemu_fw_cfg.c:96:33: sparse: restricted __be16 degrades > to integer >drivers/firmware/qemu_fw_cfg.c:96:52: sparse: restricted __le16 degrades > to integer >drivers/firmware/qemu_fw_cfg.c:96:33: sparse: restricted __be16 degrades > to integer >drivers/firmware/qemu_fw_cfg.c:96:52: sparse: restricted __le16 degrades > to integer >drivers/firmware/qemu_fw_cfg.c:96:33: sparse: restricted __be16 degrades > to integer >drivers/firmware/qemu_fw_cfg.c:96:52: sparse: restricted __le16 degrades > to integer >drivers/firmware/qemu_fw_cfg.c:660:17: sparse: cast to restricted __be32 >drivers/firmware/qemu_fw_cfg.c:660:17: sparse: cast to restricted __be32 >drivers/firmware/qemu_fw_cfg.c:660:17: sparse: cast to restricted __be32 >drivers/firmware/qemu_fw_cfg.c:660:17: sparse: cast to restricted __be32 >drivers/firmware/qemu_fw_cfg.c:660:17: sparse: cast to restricted __be32 >drivers/firmware/qemu_fw_cfg.c:660:17: sparse: cast to restricted __be32 >drivers/firmware/qemu_fw_cfg.c:96:33: sparse: restricted __be16 degrades > to integer >drivers/firmware/qemu_fw_cfg.c:96:52: sparse: restricted __le16 degrades > to integer >drivers/firmware/qemu_fw_cfg.c:670:31: sparse: cast to restricted __be32 >drivers/firmware/qemu_fw_cfg.c:670:31: sparse: cast to restricted __be32 >drivers/firmware/qemu_fw_cfg.c:670:31: sparse: cast to restricted __be32 >drivers/firmware/qemu_fw_cfg.c:670:31: sparse: cast to restricted __be32 >drivers/firmware/qemu_fw_cfg.c:670:31: sparse: cast to restricted __be32 >drivers/firmware/qemu_fw_cfg.c:670:31: sparse: cast to restricted __be32 >drivers/firmware/qemu_fw_cfg.c:671:33: sparse: cast to restricted __be16 >drivers/firmware/qemu_fw_cfg.c:671:33: sparse: cast to restricted __be16 >drivers/firmware/qemu_fw_cfg.c:671:33: sparse: cast to restricted __be16 >drivers/firmware/qemu_fw_cfg.c:671:33: sparse: cast to restricted __be16 >drivers/firmware/qemu_fw_cfg.c:96:33: sparse: restricted __be16 degrades > to integer >drivers/firmware/qemu_fw_cfg.c:96:52: sparse: restricted __le16 degrades > to integer >drivers/firmware/qemu_fw_cfg.c:717:22: sparse: cast to restricted __le32 > > vim +130 drivers/firmware/qemu_fw_cfg.c > >103 >104
[vhost:vhost 22/23] drivers/firmware/qemu_fw_cfg.c:130:36: sparse: incorrect type in initializer (different base types)
tree: https://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost.git vhost head: 3d22d7c1190db3209b644b8a13a75a9802b4587f commit: b3a8771f409b74c42deee28aee3092fc5d2c8dab [22/23] fw_cfg: write vmcoreinfo details reproduce: # apt-get install sparse git checkout b3a8771f409b74c42deee28aee3092fc5d2c8dab make ARCH=x86_64 allmodconfig make C=1 CF=-D__CHECK_ENDIAN__ sparse warnings: (new ones prefixed by >>) drivers/firmware/qemu_fw_cfg.c:108:28: sparse: cast to restricted __be32 drivers/firmware/qemu_fw_cfg.c:108:28: sparse: cast to restricted __be32 drivers/firmware/qemu_fw_cfg.c:108:28: sparse: cast to restricted __be32 drivers/firmware/qemu_fw_cfg.c:108:28: sparse: cast to restricted __be32 drivers/firmware/qemu_fw_cfg.c:108:28: sparse: cast to restricted __be32 drivers/firmware/qemu_fw_cfg.c:108:28: sparse: cast to restricted __be32 >> drivers/firmware/qemu_fw_cfg.c:130:36: sparse: incorrect type in initializer >> (different base types) @@ expected unsigned long long address @@ got gned] >> address @@ drivers/firmware/qemu_fw_cfg.c:130:36: expected unsigned long long address drivers/firmware/qemu_fw_cfg.c:130:36: got restricted __be64 drivers/firmware/qemu_fw_cfg.c:131:27: sparse: incorrect type in initializer (different base types) @@ expected unsigned int length @@ got ed int length @@ drivers/firmware/qemu_fw_cfg.c:131:27: expected unsigned int length drivers/firmware/qemu_fw_cfg.c:131:27: got restricted __be32 drivers/firmware/qemu_fw_cfg.c:132:28: sparse: incorrect type in initializer (different base types) @@ expected unsigned int control @@ got ed int control @@ drivers/firmware/qemu_fw_cfg.c:132:28: expected unsigned int control drivers/firmware/qemu_fw_cfg.c:132:28: got restricted __be32 drivers/firmware/qemu_fw_cfg.c:142:13: sparse: cast to restricted __be32 drivers/firmware/qemu_fw_cfg.c:142:13: sparse: cast to restricted __be32 drivers/firmware/qemu_fw_cfg.c:142:13: sparse: cast to restricted __be32 drivers/firmware/qemu_fw_cfg.c:142:13: sparse: cast to restricted __be32 drivers/firmware/qemu_fw_cfg.c:142:13: sparse: cast to restricted __be32 drivers/firmware/qemu_fw_cfg.c:142:13: sparse: cast to restricted __be32 drivers/firmware/qemu_fw_cfg.c:96:33: sparse: restricted __be16 degrades to integer drivers/firmware/qemu_fw_cfg.c:96:52: sparse: restricted __le16 degrades to integer drivers/firmware/qemu_fw_cfg.c:96:33: sparse: restricted __be16 degrades to integer drivers/firmware/qemu_fw_cfg.c:96:52: sparse: restricted __le16 degrades to integer drivers/firmware/qemu_fw_cfg.c:96:33: sparse: restricted __be16 degrades to integer drivers/firmware/qemu_fw_cfg.c:96:52: sparse: restricted __le16 degrades to integer drivers/firmware/qemu_fw_cfg.c:96:33: sparse: restricted __be16 degrades to integer drivers/firmware/qemu_fw_cfg.c:96:52: sparse: restricted __le16 degrades to integer drivers/firmware/qemu_fw_cfg.c:660:17: sparse: cast to restricted __be32 drivers/firmware/qemu_fw_cfg.c:660:17: sparse: cast to restricted __be32 drivers/firmware/qemu_fw_cfg.c:660:17: sparse: cast to restricted __be32 drivers/firmware/qemu_fw_cfg.c:660:17: sparse: cast to restricted __be32 drivers/firmware/qemu_fw_cfg.c:660:17: sparse: cast to restricted __be32 drivers/firmware/qemu_fw_cfg.c:660:17: sparse: cast to restricted __be32 drivers/firmware/qemu_fw_cfg.c:96:33: sparse: restricted __be16 degrades to integer drivers/firmware/qemu_fw_cfg.c:96:52: sparse: restricted __le16 degrades to integer drivers/firmware/qemu_fw_cfg.c:670:31: sparse: cast to restricted __be32 drivers/firmware/qemu_fw_cfg.c:670:31: sparse: cast to restricted __be32 drivers/firmware/qemu_fw_cfg.c:670:31: sparse: cast to restricted __be32 drivers/firmware/qemu_fw_cfg.c:670:31: sparse: cast to restricted __be32 drivers/firmware/qemu_fw_cfg.c:670:31: sparse: cast to restricted __be32 drivers/firmware/qemu_fw_cfg.c:670:31: sparse: cast to restricted __be32 drivers/firmware/qemu_fw_cfg.c:671:33: sparse: cast to restricted __be16 drivers/firmware/qemu_fw_cfg.c:671:33: sparse: cast to restricted __be16 drivers/firmware/qemu_fw_cfg.c:671:33: sparse: cast to restricted __be16 drivers/firmware/qemu_fw_cfg.c:671:33: sparse: cast to restricted __be16 drivers/firmware/qemu_fw_cfg.c:96:33: sparse: restricted __be16 degrades to integer drivers/firmware/qemu_fw_cfg.c:96:52: sparse: restricted __le16 degrades to integer drivers/firmware/qemu_fw_cfg.c:717:22: sparse: cast to restricted __le32 vim +130 drivers/firmware/qemu_fw_cfg.c 103 104 /* qemu fw_cfg device is sync today, but spec says it may become async */ 105 static void fw_cfg_wait_for_control(struct fw_cfg_dma *d) 106 { 107 do { > 108 u32 ctrl = be32_to_cpu(READ_ONCE(d->control)); 109 110 if ((ctrl & ~FW_CFG_DMA_CTL_ERROR) == 0) 111