[linux-nvme:nvme-6.5 26/26] drivers/nvme/host/core.c:3022:55: warning: passing argument 2 of 'bset_mem_set_bit' makes pointer from integer without a cast
kernel test robot
lkp at intel.com
Mon Jun 12 16:05:17 PDT 2023
tree: git://git.infradead.org/nvme.git nvme-6.5
head: 9aa77a0506d6990714c9fbb1c03596cd8e1094c7
commit: 9aa77a0506d6990714c9fbb1c03596cd8e1094c7 [26/26] nvme: skip optional id ctrl csi if it failed
config: m68k-allyesconfig (https://download.01.org/0day-ci/archive/20230613/202306130610.FXxV2Jqp-lkp@intel.com/config)
compiler: m68k-linux-gcc (GCC) 12.3.0
reproduce (this is a W=1 build):
mkdir -p ~/bin
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
git remote add linux-nvme git://git.infradead.org/nvme.git
git fetch --no-tags linux-nvme nvme-6.5
git checkout 9aa77a0506d6990714c9fbb1c03596cd8e1094c7
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.3.0 ~/bin/make.cross W=1 O=build_dir ARCH=m68k olddefconfig
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.3.0 ~/bin/make.cross W=1 O=build_dir ARCH=m68k SHELL=/bin/bash drivers/nvme/
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp at intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202306130610.FXxV2Jqp-lkp@intel.com/
All warnings (new ones prefixed by >>):
In file included from include/linux/thread_info.h:27,
from include/asm-generic/preempt.h:5,
from ./arch/m68k/include/generated/asm/preempt.h:1,
from include/linux/preempt.h:78,
from include/linux/spinlock.h:56,
from include/linux/wait.h:9,
from include/linux/wait_bit.h:8,
from include/linux/fs.h:6,
from include/linux/highmem.h:5,
from include/linux/bvec.h:10,
from include/linux/blk_types.h:10,
from include/linux/blkdev.h:9,
from drivers/nvme/host/core.c:7:
drivers/nvme/host/core.c: In function 'nvme_init_non_mdts_limits':
drivers/nvme/host/core.c:2999:52: warning: passing argument 2 of 'const_test_bit' makes pointer from integer without a cast [-Wint-conversion]
2999 | test_bit(NVME_CTRL_SKIP_ID_CNS_CS, ctrl->flags))
| ~~~~^~~~~~~
| |
| long unsigned int
include/linux/bitops.h:53:24: note: in definition of macro 'bitop'
53 | const##op(nr, addr) : op(nr, addr))
| ^~~~
drivers/nvme/host/core.c:2999:13: note: in expansion of macro 'test_bit'
2999 | test_bit(NVME_CTRL_SKIP_ID_CNS_CS, ctrl->flags))
| ^~~~~~~~
In file included from include/linux/bitops.h:34:
include/asm-generic/bitops/generic-non-atomic.h:166:64: note: expected 'const volatile long unsigned int *' but argument is of type 'long unsigned int'
166 | const_test_bit(unsigned long nr, const volatile unsigned long *addr)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~
drivers/nvme/host/core.c:2999:52: warning: passing argument 2 of 'generic_test_bit' makes pointer from integer without a cast [-Wint-conversion]
2999 | test_bit(NVME_CTRL_SKIP_ID_CNS_CS, ctrl->flags))
| ~~~~^~~~~~~
| |
| long unsigned int
include/linux/bitops.h:53:39: note: in definition of macro 'bitop'
53 | const##op(nr, addr) : op(nr, addr))
| ^~~~
drivers/nvme/host/core.c:2999:13: note: in expansion of macro 'test_bit'
2999 | test_bit(NVME_CTRL_SKIP_ID_CNS_CS, ctrl->flags))
| ^~~~~~~~
include/asm-generic/bitops/generic-non-atomic.h:121:66: note: expected 'const volatile long unsigned int *' but argument is of type 'long unsigned int'
121 | generic_test_bit(unsigned long nr, const volatile unsigned long *addr)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~
In file included from include/linux/bitops.h:68:
>> drivers/nvme/host/core.c:3022:55: warning: passing argument 2 of 'bset_mem_set_bit' makes pointer from integer without a cast [-Wint-conversion]
3022 | set_bit(NVME_CTRL_SKIP_ID_CNS_CS, ctrl->flags);
| ~~~~^~~~~~~
| |
| long unsigned int
arch/m68k/include/asm/bitops.h:64:54: note: in definition of macro 'set_bit'
64 | bset_mem_set_bit(nr, vaddr) : \
| ^~~~~
arch/m68k/include/asm/bitops.h:41:69: note: expected 'volatile long unsigned int *' but argument is of type 'long unsigned int'
41 | static inline void bset_mem_set_bit(int nr, volatile unsigned long *vaddr)
| ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
>> drivers/nvme/host/core.c:3022:55: warning: passing argument 2 of 'bfset_mem_set_bit' makes pointer from integer without a cast [-Wint-conversion]
3022 | set_bit(NVME_CTRL_SKIP_ID_CNS_CS, ctrl->flags);
| ~~~~^~~~~~~
| |
| long unsigned int
arch/m68k/include/asm/bitops.h:65:55: note: in definition of macro 'set_bit'
65 | bfset_mem_set_bit(nr, vaddr))
| ^~~~~
arch/m68k/include/asm/bitops.h:50:70: note: expected 'volatile long unsigned int *' but argument is of type 'long unsigned int'
50 | static inline void bfset_mem_set_bit(int nr, volatile unsigned long *vaddr)
| ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
vim +/bset_mem_set_bit +3022 drivers/nvme/host/core.c
2970
2971 static int nvme_init_non_mdts_limits(struct nvme_ctrl *ctrl)
2972 {
2973 struct nvme_command c = { };
2974 struct nvme_id_ctrl_nvm *id;
2975 int ret;
2976
2977 if (ctrl->oncs & NVME_CTRL_ONCS_DSM) {
2978 ctrl->max_discard_sectors = UINT_MAX;
2979 ctrl->max_discard_segments = NVME_DSM_MAX_RANGES;
2980 } else {
2981 ctrl->max_discard_sectors = 0;
2982 ctrl->max_discard_segments = 0;
2983 }
2984
2985 /*
2986 * Even though NVMe spec explicitly states that MDTS is not applicable
2987 * to the write-zeroes, we are cautious and limit the size to the
2988 * controllers max_hw_sectors value, which is based on the MDTS field
2989 * and possibly other limiting factors.
2990 */
2991 if ((ctrl->oncs & NVME_CTRL_ONCS_WRITE_ZEROES) &&
2992 !(ctrl->quirks & NVME_QUIRK_DISABLE_WRITE_ZEROES))
2993 ctrl->max_zeroes_sectors = ctrl->max_hw_sectors;
2994 else
2995 ctrl->max_zeroes_sectors = 0;
2996
2997 if (ctrl->subsys->subtype != NVME_NQN_NVME ||
2998 nvme_ctrl_limited_cns(ctrl) ||
> 2999 test_bit(NVME_CTRL_SKIP_ID_CNS_CS, ctrl->flags))
3000 return 0;
3001
3002 id = kzalloc(sizeof(*id), GFP_KERNEL);
3003 if (!id)
3004 return -ENOMEM;
3005
3006 c.identify.opcode = nvme_admin_identify;
3007 c.identify.cns = NVME_ID_CNS_CS_CTRL;
3008 c.identify.csi = NVME_CSI_NVM;
3009
3010 ret = nvme_submit_sync_cmd(ctrl->admin_q, &c, id, sizeof(*id));
3011 if (ret)
3012 goto free_data;
3013
3014 if (id->dmrl)
3015 ctrl->max_discard_segments = id->dmrl;
3016 ctrl->dmrsl = le32_to_cpu(id->dmrsl);
3017 if (id->wzsl)
3018 ctrl->max_zeroes_sectors = nvme_mps_to_sectors(ctrl, id->wzsl);
3019
3020 free_data:
3021 if (ret > 0)
> 3022 set_bit(NVME_CTRL_SKIP_ID_CNS_CS, ctrl->flags);
3023 kfree(id);
3024 return ret;
3025 }
3026
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
More information about the Linux-nvme
mailing list