qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v3 1/4] firmware: introduce sysfs driver for QEM


From: kbuild test robot
Subject: Re: [Qemu-devel] [PATCH v3 1/4] firmware: introduce sysfs driver for QEMU's fw_cfg device
Date: Sun, 4 Oct 2015 09:34:12 +0800
User-agent: Mutt/1.5.23 (2014-03-12)

Hi Gabriel,

[auto build test results on v4.3-rc3 -- if it's inappropriate base, please 
ignore]

reproduce:
        # apt-get install sparse
        make ARCH=x86_64 allmodconfig
        make C=1 CF=-D__CHECK_ENDIAN__


sparse warnings: (new ones prefixed by >>)

   drivers/firmware/qemu_fw_cfg.c:66:25: sparse: constant 0xd00000510 is so big 
it is long
>> drivers/firmware/qemu_fw_cfg.c:95:39: sparse: restricted __be16 degrades to 
>> integer
>> drivers/firmware/qemu_fw_cfg.c:95:58: sparse: restricted __le16 degrades to 
>> integer
>> drivers/firmware/qemu_fw_cfg.c:111:25: sparse: cast to restricted __be32
>> drivers/firmware/qemu_fw_cfg.c:111:25: sparse: cast to restricted __be32
>> drivers/firmware/qemu_fw_cfg.c:111:25: sparse: cast to restricted __be32
>> drivers/firmware/qemu_fw_cfg.c:111:25: sparse: cast to restricted __be32
>> drivers/firmware/qemu_fw_cfg.c:111:25: sparse: cast to restricted __be32
>> drivers/firmware/qemu_fw_cfg.c:111:25: sparse: cast to restricted __be32
>> drivers/firmware/qemu_fw_cfg.c:95:39: sparse: restricted __be16 degrades to 
>> integer
>> drivers/firmware/qemu_fw_cfg.c:95:58: sparse: restricted __le16 degrades to 
>> integer
>> drivers/firmware/qemu_fw_cfg.c:95:39: sparse: restricted __be16 degrades to 
>> integer
>> drivers/firmware/qemu_fw_cfg.c:95:58: sparse: restricted __le16 degrades to 
>> integer
   drivers/firmware/qemu_fw_cfg.c:367:25: sparse: cast to restricted __be32
   drivers/firmware/qemu_fw_cfg.c:367:25: sparse: cast to restricted __be32
   drivers/firmware/qemu_fw_cfg.c:367:25: sparse: cast to restricted __be32
   drivers/firmware/qemu_fw_cfg.c:367:25: sparse: cast to restricted __be32
   drivers/firmware/qemu_fw_cfg.c:367:25: sparse: cast to restricted __be32
   drivers/firmware/qemu_fw_cfg.c:367:25: sparse: cast to restricted __be32
>> drivers/firmware/qemu_fw_cfg.c:368:27: sparse: cast to restricted __be16
>> drivers/firmware/qemu_fw_cfg.c:368:27: sparse: cast to restricted __be16
>> drivers/firmware/qemu_fw_cfg.c:368:27: sparse: cast to restricted __be16
>> drivers/firmware/qemu_fw_cfg.c:368:27: sparse: cast to restricted __be16
>> drivers/firmware/qemu_fw_cfg.c:95:39: sparse: restricted __be16 degrades to 
>> integer
>> drivers/firmware/qemu_fw_cfg.c:95:58: sparse: restricted __le16 degrades to 
>> integer
>> drivers/firmware/qemu_fw_cfg.c:420:22: sparse: cast to restricted __le32

vim +95 drivers/firmware/qemu_fw_cfg.c

    60                  .size = 0x0a,
    61                  .ctrl_offset = 0x08,
    62                  .data_offset = 0x00,
    63                  .is_mmio = true,
    64          }, {
    65                  .name = "fw_cfg MMIO on sun4m",
  > 66                  .base = 0xd00000510,
    67                  .size = 0x03,
    68                  .ctrl_offset = 0x00,
    69                  .data_offset = 0x02,
    70                  .is_mmio = true,
    71          }, {
    72                  .name = "fw_cfg MMIO on ppc/mac",
    73                  .base = 0xf0000510,
    74                  .size = 0x03,
    75                  .ctrl_offset = 0x00,
    76                  .data_offset = 0x02,
    77                  .is_mmio = true,
    78          }, { } /* END */
    79  };
    80  
    81  /* fw_cfg device i/o currently selected option set */
    82  static struct fw_cfg_access *fw_cfg_mode;
    83  
    84  /* fw_cfg device i/o register addresses */
    85  static void __iomem *fw_cfg_dev_base;
    86  static void __iomem *fw_cfg_reg_ctrl;
    87  static void __iomem *fw_cfg_reg_data;
    88  
    89  /* atomic access to fw_cfg device (potentially slow i/o, so using 
mutex) */
    90  static DEFINE_MUTEX(fw_cfg_dev_lock);
    91  
    92  /* pick appropriate endianness for selector key */
    93  static inline u16 fw_cfg_sel_endianness(u16 key)
    94  {
  > 95          return fw_cfg_mode->is_mmio ? cpu_to_be16(key) : 
cpu_to_le16(key);
    96  }
    97  
    98  /* type for fw_cfg "directory scan" visitor/callback function */
    99  typedef int (*fw_cfg_file_callback)(const struct fw_cfg_file *f);
   100  
   101  /* run a given callback on each fw_cfg directory entry */
   102  static int fw_cfg_scan_dir(fw_cfg_file_callback callback)
   103  {
   104          int ret = 0;
   105          u32 count, i;
   106          struct fw_cfg_file f;
   107  
   108          mutex_lock(&fw_cfg_dev_lock);
   109          iowrite16(fw_cfg_sel_endianness(FW_CFG_FILE_DIR), 
fw_cfg_reg_ctrl);
   110          ioread8_rep(fw_cfg_reg_data, &count, sizeof(count));
 > 111          for (i = 0; i < be32_to_cpu(count); i++) {
   112                  ioread8_rep(fw_cfg_reg_data, &f, sizeof(f));
   113                  ret = callback(&f);
   114                  if (ret)

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation



reply via email to

[Prev in Thread] Current Thread [Next in Thread]