Re: [PATCH v2 4/4] scsi: ufs: Enable writing config descriptor
From: kbuild test robot
Date: Fri Jun 15 2018 - 17:34:01 EST
Hi Evan,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on mkp-scsi/for-next]
[also build test WARNING on next-20180615]
[cannot apply to scsi/for-next v4.17]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
url: https://github.com/0day-ci/linux/commits/Evan-Green/Enable-UFS-provisioning-via-Linux/20180616-050548
base: https://git.kernel.org/pub/scm/linux/kernel/git/mkp/scsi.git for-next
config: x86_64-randconfig-x016-201823 (attached as .config)
compiler: gcc-7 (Debian 7.3.0-16) 7.3.0
reproduce:
# save the attached .config to linux build tree
make ARCH=x86_64
Note: it may well be a FALSE warning. FWIW you are at least aware of it now.
http://gcc.gnu.org/wiki/Better_Uninitialized_Warnings
All warnings (new ones prefixed by >>):
include/linux/huge_mm.h:230:34: sparse: constant 0xffffea0000000000 is so big it is unsigned long
include/linux/mm.h:533:24: sparse: constant 0xffffc90000000000 is so big it is unsigned long
include/linux/mm.h:533:48: sparse: constant 0xffffc90000000000 is so big it is unsigned long
include/linux/mm.h:624:29: sparse: constant 0xffffea0000000000 is so big it is unsigned long
include/linux/mm.h:1098:16: sparse: constant 0xffffea0000000000 is so big it is unsigned long
include/linux/mm.h:1796:27: sparse: constant 0xffffea0000000000 is so big it is unsigned long
include/linux/mm.h:1888:16: sparse: constant 0xffffea0000000000 is so big it is unsigned long
include/linux/scatterlist.h:151:25: sparse: constant 0xffffea0000000000 is so big it is unsigned long
include/linux/scatterlist.h:236:16: sparse: constant 0xffffea0000000000 is so big it is unsigned long
include/linux/scatterlist.h:387:16: sparse: constant 0xffffea0000000000 is so big it is unsigned long
include/linux/scatterlist.h:387:16: sparse: constant 0xffffea0000000000 is so big it is unsigned long
include/linux/dma-mapping.h:235:35: sparse: constant 0xffffea0000000000 is so big it is unsigned long
include/linux/dma-mapping.h:238:33: sparse: constant 0xffffea0000000000 is so big it is unsigned long
include/linux/highmem.h:51:16: sparse: constant 0xffffea0000000000 is so big it is unsigned long
include/linux/blkdev.h:1721:14: sparse: constant 0xffffea0000000000 is so big it is unsigned long
include/linux/blkdev.h:1721:14: sparse: constant 0xffffea0000000000 is so big it is unsigned long
include/linux/blkdev.h:1723:14: sparse: constant 0xffffea0000000000 is so big it is unsigned long
include/linux/blkdev.h:1723:14: sparse: constant 0xffffea0000000000 is so big it is unsigned long
drivers/scsi/ufs/ufs-sysfs.c:897:1: sparse: symbol 'dev_attr_current_power_mode' was not declared. Should it be static?
drivers/scsi/ufs/ufs-sysfs.c:900:1: sparse: symbol 'dev_attr_bkops_status' was not declared. Should it be static?
drivers/scsi/ufs/ufs-sysfs.c:901:1: sparse: symbol 'dev_attr_purge_status' was not declared. Should it be static?
drivers/scsi/ufs/ufs-sysfs.c:909:1: sparse: symbol 'dev_attr_ffu_status' was not declared. Should it be static?
drivers/scsi/ufs/ufs-sysfs.c:910:1: sparse: symbol 'dev_attr_psa_state' was not declared. Should it be static?
drivers/scsi/ufs/ufs-sysfs.c:911:1: sparse: symbol 'dev_attr_psa_data_size' was not declared. Should it be static?
drivers/scsi/ufs/ufs-sysfs.c: In function 'ufs_cfg_attr_store':
>> drivers/scsi/ufs/ufs-sysfs.c:296:6: warning: 'valueptr' may be used uninitialized in this function [-Wmaybe-uninitialized]
ret = ufshcd_rw_desc_param(hba, UPIU_QUERY_OPCODE_WRITE_DESC, desc_id,
~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
desc_index, param_offset,
~~~~~~~~~~~~~~~~~~~~~~~~~
valueptr, width);
~~~~~~~~~~~~~~~~
drivers/scsi/ufs/ufs-sysfs.c:269:6: note: 'valueptr' was declared here
u8 *valueptr;
^~~~~~~~
vim +/valueptr +296 drivers/scsi/ufs/ufs-sysfs.c
254
255 static ssize_t ufs_sysfs_write_desc_param(struct ufs_hba *hba,
256 enum desc_idn desc_id,
257 u8 desc_index,
258 u8 param_offset,
259 const char *buf,
260 ssize_t buf_size,
261 u8 width)
262 {
263 int ret;
264 unsigned long long value;
265 u8 value8;
266 __be16 value16;
267 __be32 value32;
268 __be64 value64;
269 u8 *valueptr;
270
271 if (kstrtoull(buf, 0, &value))
272 return -EINVAL;
273
274 switch (width) {
275 case 1:
276 value8 = (u8)value;
277 valueptr = &value8;
278 break;
279
280 case 2:
281 value16 = cpu_to_be16(value);
282 valueptr = (u8 *)&value16;
283 break;
284
285 case 4:
286 value32 = cpu_to_be32(value);
287 valueptr = (u8 *)&value32;
288 break;
289
290 case 8:
291 value64 = cpu_to_be64(value);
292 valueptr = (u8 *)&value64;
293 break;
294 }
295
> 296 ret = ufshcd_rw_desc_param(hba, UPIU_QUERY_OPCODE_WRITE_DESC, desc_id,
297 desc_index, param_offset,
298 valueptr, width);
299 if (ret)
300 return -EINVAL;
301
302 return buf_size;
303 }
304
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
Attachment:
.config.gz
Description: application/gzip