All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Michael S. Tsirkin" <mst@redhat.com>
To: kbuild test robot <fengguang.wu@intel.com>
Cc: "Marc-André Lureau" <marcandre.lureau@redhat.com>,
	kbuild-all@01.org, kvm@vger.kernel.org,
	virtualization@lists.linux-foundation.org,
	netdev@vger.kernel.org
Subject: Re: [vhost:vhost 22/23] drivers/firmware/qemu_fw_cfg.c:130:36: sparse: incorrect type in initializer (different base types)
Date: Wed, 14 Feb 2018 03:31:58 +0200	[thread overview]
Message-ID: <20180214033131-mutt-send-email-mst@kernel.org> (raw)
In-Reply-To: <201802140843.NMqq2jAs%fengguang.wu@intel.com>

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 <noident>
>    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 <noident>
>    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				return;
>    112	
>    113			usleep_range(50, 100);
>    114		} while (true);
>    115	}
>    116	
>    117	static ssize_t fw_cfg_dma_transfer(void *address, u32 length, u32 control)
>    118	{
>    119		phys_addr_t dma;
>    120		struct fw_cfg_dma *d = NULL;
>    121		ssize_t ret = length;
>    122	
>    123		d = kmalloc(sizeof(*d), GFP_KERNEL);
>    124		if (!d) {
>    125			ret = -ENOMEM;
>    126			goto end;
>    127		}
>    128	
>    129		*d = (struct fw_cfg_dma) {
>  > 130			.address = address ? cpu_to_be64(virt_to_phys(address)) : 0,
>    131			.length = cpu_to_be32(length),
>    132			.control = cpu_to_be32(control)
>    133		};
>    134	
>    135		dma = virt_to_phys(d);
>    136	
>    137		iowrite32be((u64)dma >> 32, fw_cfg_reg_dma);
>    138		iowrite32be(dma, fw_cfg_reg_dma + 4);
>    139	
>    140		fw_cfg_wait_for_control(d);
>    141	
>    142		if (be32_to_cpu(READ_ONCE(d->control)) & FW_CFG_DMA_CTL_ERROR) {
>    143			ret = -EIO;
>    144		}
>    145	
>    146	end:
>    147		kfree(d);
>    148	
>    149		return ret;
>    150	}
>    151	
> 
> ---
> 0-DAY kernel test infrastructure                Open Source Technology Center
> https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

  parent reply	other threads:[~2018-02-14  1:32 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-02-14  0:46 [vhost:vhost 22/23] drivers/firmware/qemu_fw_cfg.c:130:36: sparse: incorrect type in initializer (different base types) kbuild test robot
2018-02-14  1:31 ` Michael S. Tsirkin
2018-02-14  1:31 ` Michael S. Tsirkin [this message]
  -- strict thread matches above, loose matches on Subject: below --
2018-02-14  0:46 kbuild test robot

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=20180214033131-mutt-send-email-mst@kernel.org \
    --to=mst@redhat.com \
    --cc=fengguang.wu@intel.com \
    --cc=kbuild-all@01.org \
    --cc=kvm@vger.kernel.org \
    --cc=marcandre.lureau@redhat.com \
    --cc=netdev@vger.kernel.org \
    --cc=virtualization@lists.linux-foundation.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.