Hi Klaus, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on hch-configfs/for-next] [also build test WARNING on linus/master v6.1 next-20221208] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Klaus-Jensen/nvme-pci-fix-doorbell-buffer-value-endianness/20221212-230406 base: git://git.infradead.org/users/hch/configfs.git for-next patch link: https://lore.kernel.org/r/20221212150243.41283-1-its%40irrelevant.dk patch subject: [PATCH] nvme-pci: fix doorbell buffer value endianness config: microblaze-randconfig-s041-20221211 compiler: microblaze-linux-gcc (GCC) 12.1.0 reproduce: wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # apt-get install sparse # sparse version: v0.6.4-39-gce1a6720-dirty # https://github.com/intel-lab-lkp/linux/commit/1909d9281256482585e9ba9a34bd284684dfe6a1 git remote add linux-review https://github.com/intel-lab-lkp/linux git fetch --no-tags linux-review Klaus-Jensen/nvme-pci-fix-doorbell-buffer-value-endianness/20221212-230406 git checkout 1909d9281256482585e9ba9a34bd284684dfe6a1 # save the config file mkdir build_dir && cp config build_dir/.config COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=microblaze SHELL=/bin/bash drivers/nvme/host/ If you fix the issue, kindly add following tag where applicable | Reported-by: kernel test robot sparse warnings: (new ones prefixed by >>) >> drivers/nvme/host/pci.c:355:29: sparse: sparse: cast to restricted __le32 >> drivers/nvme/host/pci.c:356:27: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] @@ got restricted __le32 [usertype] @@ drivers/nvme/host/pci.c:356:27: sparse: expected unsigned int [usertype] drivers/nvme/host/pci.c:356:27: sparse: got restricted __le32 [usertype] drivers/nvme/host/pci.c:366:29: sparse: sparse: cast to restricted __le32 vim +355 drivers/nvme/host/pci.c 341 342 /* Update dbbuf and return true if an MMIO is required */ 343 static bool nvme_dbbuf_update_and_check_event(u16 value, u32 *dbbuf_db, 344 volatile u32 *dbbuf_ei) 345 { 346 if (dbbuf_db) { 347 u16 old_value, event_idx; 348 349 /* 350 * Ensure that the queue is written before updating 351 * the doorbell in memory 352 */ 353 wmb(); 354 > 355 old_value = le32_to_cpu(*dbbuf_db); > 356 *dbbuf_db = cpu_to_le32(value); 357 358 /* 359 * Ensure that the doorbell is updated before reading the event 360 * index from memory. The controller needs to provide similar 361 * ordering to ensure the envent index is updated before reading 362 * the doorbell. 363 */ 364 mb(); 365 366 event_idx = le32_to_cpu(*dbbuf_ei); 367 368 if (!nvme_dbbuf_need_event(event_idx, value, old_value)) 369 return false; 370 } 371 372 return true; 373 } 374 -- 0-DAY CI Kernel Test Service https://01.org/lkp