* [kbusch:dma-register 3/4] drivers/nvme/host/pci.c:1802:41: sparse: sparse: shift too big (4096) for type int
@ 2022-07-25 16:58 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2022-07-25 16:58 UTC (permalink / raw)
To: kbuild
[-- Attachment #1: Type: text/plain, Size: 9111 bytes --]
::::::
:::::: Manual check reason: "low confidence static check warning: drivers/nvme/host/pci.c:1802:41: sparse: sparse: shift too big (4096) for type int"
::::::
CC: kbuild-all(a)lists.01.org
BCC: lkp(a)intel.com
CC: linux-kernel(a)vger.kernel.org
TO: Keith Busch <kbusch@kernel.org>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/kbusch/linux.git dma-register
head: 9de6909fed20955193275bbf9c75ccc85553b7d8
commit: 50a6f6bb876e20cc10372a5b8315924a493f6bf7 [3/4] big-endian and page_size fixes
:::::: branch date: 6 days ago
:::::: commit date: 6 days ago
config: alpha-randconfig-s052-20220718 (https://download.01.org/0day-ci/archive/20220724/202207242331.8kkEmYBi-lkp(a)intel.com/config)
compiler: alpha-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://git.kernel.org/pub/scm/linux/kernel/git/kbusch/linux.git/commit/?id=50a6f6bb876e20cc10372a5b8315924a493f6bf7
git remote add kbusch https://git.kernel.org/pub/scm/linux/kernel/git/kbusch/linux.git
git fetch --no-tags kbusch dma-register
git checkout 50a6f6bb876e20cc10372a5b8315924a493f6bf7
# 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=alpha SHELL=/bin/bash drivers/nvme/host/
If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp@intel.com>
sparse warnings: (new ones prefixed by >>)
drivers/nvme/host/pci.c:1837:17: sparse: sparse: incorrect type in argument 2 (different base types) @@ expected unsigned long long [usertype] addr @@ got restricted __le64 [usertype] @@
drivers/nvme/host/pci.c:1837:17: sparse: expected unsigned long long [usertype] addr
drivers/nvme/host/pci.c:1837:17: sparse: got restricted __le64 [usertype]
drivers/nvme/host/pci.c: note: in included file:
include/linux/blk-mq.h:1064:39: sparse: sparse: Using plain integer as NULL pointer
include/linux/blk-mq.h:1064:39: sparse: sparse: Using plain integer as NULL pointer
include/linux/blk-mq.h:1064:39: sparse: sparse: Using plain integer as NULL pointer
>> drivers/nvme/host/pci.c:1802:41: sparse: sparse: shift too big (4096) for type int
drivers/nvme/host/pci.c:1826:49: sparse: sparse: shift too big (4096) for type int
drivers/nvme/host/pci.c:1849:45: sparse: sparse: shift too big (4096) for type int
vim +1802 drivers/nvme/host/pci.c
b60503ba432b16f drivers/block/nvme.c Matthew Wilcox 2011-01-20 1782
8c38d1fa715ef4c drivers/nvme/host/pci.c Keith Busch 2022-07-18 1783 #ifdef CONFIG_HAS_DMA
8c38d1fa715ef4c drivers/nvme/host/pci.c Keith Busch 2022-07-18 1784 /*
8c38d1fa715ef4c drivers/nvme/host/pci.c Keith Busch 2022-07-18 1785 * Important: bvec must be describing a virtually contiguous buffer.
8c38d1fa715ef4c drivers/nvme/host/pci.c Keith Busch 2022-07-18 1786 */
d129ef7beb2bf9b drivers/nvme/host/pci.c Keith Busch 2022-07-18 1787 static void *nvme_pci_dma_map(struct request_queue *q,
8c38d1fa715ef4c drivers/nvme/host/pci.c Keith Busch 2022-07-18 1788 struct bio_vec *bvec, int nr_vecs)
8c38d1fa715ef4c drivers/nvme/host/pci.c Keith Busch 2022-07-18 1789 {
8c38d1fa715ef4c drivers/nvme/host/pci.c Keith Busch 2022-07-18 1790 struct nvme_ns *ns = q->queuedata;
8c38d1fa715ef4c drivers/nvme/host/pci.c Keith Busch 2022-07-18 1791 struct nvme_dev *dev = to_nvme_dev(ns->ctrl);
8c38d1fa715ef4c drivers/nvme/host/pci.c Keith Busch 2022-07-18 1792 struct nvme_dma_mapping *mapping;
50a6f6bb876e20c drivers/nvme/host/pci.c Keith Busch 2022-07-18 1793 int i, j, k, size, ret = -ENOMEM;
8c38d1fa715ef4c drivers/nvme/host/pci.c Keith Busch 2022-07-18 1794
8c38d1fa715ef4c drivers/nvme/host/pci.c Keith Busch 2022-07-18 1795 if (!nr_vecs)
d129ef7beb2bf9b drivers/nvme/host/pci.c Keith Busch 2022-07-18 1796 return ERR_PTR(-EINVAL);
8c38d1fa715ef4c drivers/nvme/host/pci.c Keith Busch 2022-07-18 1797
8c38d1fa715ef4c drivers/nvme/host/pci.c Keith Busch 2022-07-18 1798 mapping = kzalloc(sizeof(*mapping), GFP_KERNEL);
8c38d1fa715ef4c drivers/nvme/host/pci.c Keith Busch 2022-07-18 1799 if (!mapping)
d129ef7beb2bf9b drivers/nvme/host/pci.c Keith Busch 2022-07-18 1800 return ERR_PTR(-ENOMEM);
8c38d1fa715ef4c drivers/nvme/host/pci.c Keith Busch 2022-07-18 1801
50a6f6bb876e20c drivers/nvme/host/pci.c Keith Busch 2022-07-18 @1802 nr_vecs = nr_vecs << (PAGE_SIZE - NVME_CTRL_PAGE_SIZE);
8c38d1fa715ef4c drivers/nvme/host/pci.c Keith Busch 2022-07-18 1803 size = nr_vecs * sizeof(*mapping->prps);
8c38d1fa715ef4c drivers/nvme/host/pci.c Keith Busch 2022-07-18 1804 mapping->prps = dma_alloc_coherent(dev->dev, size,
8c38d1fa715ef4c drivers/nvme/host/pci.c Keith Busch 2022-07-18 1805 &mapping->prp_dma_addr, GFP_KERNEL);
8c38d1fa715ef4c drivers/nvme/host/pci.c Keith Busch 2022-07-18 1806 if (!mapping->prps)
8c38d1fa715ef4c drivers/nvme/host/pci.c Keith Busch 2022-07-18 1807 goto free_mapping;
8c38d1fa715ef4c drivers/nvme/host/pci.c Keith Busch 2022-07-18 1808
50a6f6bb876e20c drivers/nvme/host/pci.c Keith Busch 2022-07-18 1809 for (i = 0, j = 0; i < nr_vecs; i++) {
8c38d1fa715ef4c drivers/nvme/host/pci.c Keith Busch 2022-07-18 1810 struct bio_vec *bv = bvec + i;
8c38d1fa715ef4c drivers/nvme/host/pci.c Keith Busch 2022-07-18 1811 dma_addr_t dma_addr;
8c38d1fa715ef4c drivers/nvme/host/pci.c Keith Busch 2022-07-18 1812
8c38d1fa715ef4c drivers/nvme/host/pci.c Keith Busch 2022-07-18 1813 if (i == 0)
8c38d1fa715ef4c drivers/nvme/host/pci.c Keith Busch 2022-07-18 1814 mapping->offset = bv->bv_offset;
8c38d1fa715ef4c drivers/nvme/host/pci.c Keith Busch 2022-07-18 1815 else if (bv->bv_offset) {
8c38d1fa715ef4c drivers/nvme/host/pci.c Keith Busch 2022-07-18 1816 ret = -EINVAL;
8c38d1fa715ef4c drivers/nvme/host/pci.c Keith Busch 2022-07-18 1817 goto err;
8c38d1fa715ef4c drivers/nvme/host/pci.c Keith Busch 2022-07-18 1818 }
8c38d1fa715ef4c drivers/nvme/host/pci.c Keith Busch 2022-07-18 1819
50a6f6bb876e20c drivers/nvme/host/pci.c Keith Busch 2022-07-18 1820 dma_addr = dma_map_bvec(dev->dev, bv, 0, 0);
8c38d1fa715ef4c drivers/nvme/host/pci.c Keith Busch 2022-07-18 1821 if (dma_mapping_error(dev->dev, dma_addr)) {
8c38d1fa715ef4c drivers/nvme/host/pci.c Keith Busch 2022-07-18 1822 ret = -EIO;
8c38d1fa715ef4c drivers/nvme/host/pci.c Keith Busch 2022-07-18 1823 goto err;
8c38d1fa715ef4c drivers/nvme/host/pci.c Keith Busch 2022-07-18 1824 }
50a6f6bb876e20c drivers/nvme/host/pci.c Keith Busch 2022-07-18 1825
50a6f6bb876e20c drivers/nvme/host/pci.c Keith Busch 2022-07-18 1826 for (j = 0; j < 1 << (PAGE_SIZE - NVME_CTRL_PAGE_SIZE); j++)
50a6f6bb876e20c drivers/nvme/host/pci.c Keith Busch 2022-07-18 1827 mapping->prps[k++] = cpu_to_le64(dma_addr);
8c38d1fa715ef4c drivers/nvme/host/pci.c Keith Busch 2022-07-18 1828 }
8c38d1fa715ef4c drivers/nvme/host/pci.c Keith Busch 2022-07-18 1829
8c38d1fa715ef4c drivers/nvme/host/pci.c Keith Busch 2022-07-18 1830 get_device(dev->dev);
d129ef7beb2bf9b drivers/nvme/host/pci.c Keith Busch 2022-07-18 1831 return mapping;
8c38d1fa715ef4c drivers/nvme/host/pci.c Keith Busch 2022-07-18 1832
8c38d1fa715ef4c drivers/nvme/host/pci.c Keith Busch 2022-07-18 1833 err:
8c38d1fa715ef4c drivers/nvme/host/pci.c Keith Busch 2022-07-18 1834 while (--i >= 0) {
8c38d1fa715ef4c drivers/nvme/host/pci.c Keith Busch 2022-07-18 1835 struct bio_vec *bv = bvec + i;
8c38d1fa715ef4c drivers/nvme/host/pci.c Keith Busch 2022-07-18 1836
8c38d1fa715ef4c drivers/nvme/host/pci.c Keith Busch 2022-07-18 1837 dma_unmap_page(dev->dev, mapping->prps[i], bv->bv_len, 0);
8c38d1fa715ef4c drivers/nvme/host/pci.c Keith Busch 2022-07-18 1838 }
8c38d1fa715ef4c drivers/nvme/host/pci.c Keith Busch 2022-07-18 1839
8c38d1fa715ef4c drivers/nvme/host/pci.c Keith Busch 2022-07-18 1840 dma_free_coherent(dev->dev, size, (void *)mapping->prps,
8c38d1fa715ef4c drivers/nvme/host/pci.c Keith Busch 2022-07-18 1841 mapping->prp_dma_addr);
8c38d1fa715ef4c drivers/nvme/host/pci.c Keith Busch 2022-07-18 1842 free_mapping:
8c38d1fa715ef4c drivers/nvme/host/pci.c Keith Busch 2022-07-18 1843 kfree(mapping);
d129ef7beb2bf9b drivers/nvme/host/pci.c Keith Busch 2022-07-18 1844 return ERR_PTR(ret);
8c38d1fa715ef4c drivers/nvme/host/pci.c Keith Busch 2022-07-18 1845 }
8c38d1fa715ef4c drivers/nvme/host/pci.c Keith Busch 2022-07-18 1846
--
0-DAY CI Kernel Test Service
https://01.org/lkp
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2022-07-25 16:58 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-07-25 16:58 [kbusch:dma-register 3/4] drivers/nvme/host/pci.c:1802:41: sparse: sparse: shift too big (4096) for type int kernel test robot
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.