From: kernel test robot <lkp@intel.com>
To: oe-kbuild@lists.linux.dev
Cc: lkp@intel.com, Dan Carpenter <error27@gmail.com>
Subject: [jgunthorpe:iommu_pt_arm64 20/38] drivers/iommu/generic_pt/fmt/../iommu_pt.h:952 armv8_map_range() warn: impossible condition '(paddr > 18446744073709551615) => (0-u64max > u64max)'
Date: Fri, 28 Aug 2026 14:11:15 +0800 [thread overview]
Message-ID: <202608281308.9WHVYBuC-lkp@intel.com> (raw)
BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
TO: Jason Gunthorpe <jgg@nvidia.com>
tree: https://github.com/jgunthorpe/linux iommu_pt_arm64
head: c8e2bfb14a9e9ecdcccf303888f6b388a5fee9b1
commit: 27b050d135df207da32c5c1c476b206cc5fb7053 [20/38] iommupt/armv8: Implement the iommu specific components
:::::: branch date: 4 days ago
:::::: commit date: 4 days ago
config: arm-randconfig-r072-20260827 (https://download.01.org/0day-ci/archive/20260828/202608281308.9WHVYBuC-lkp@intel.com/config)
compiler: arm-linux-gnueabi-gcc (GCC) 10.5.0
smatch: v0.5.0-9187-g5189e3fb
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@intel.com>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202608281308.9WHVYBuC-lkp@intel.com/
smatch warnings:
drivers/iommu/generic_pt/fmt/../iommu_pt.h:952 armv8_map_range() warn: impossible condition '(paddr > 18446744073709551615) => (0-u64max > u64max)'
vim +952 drivers/iommu/generic_pt/fmt/../iommu_pt.h
dcd6a011a8d523 Jason Gunthorpe 2025-11-04 929
d6c65b0fd6218b Jason Gunthorpe 2026-02-27 930 static int NS(map_range)(struct pt_iommu *iommu_table, dma_addr_t iova,
d6c65b0fd6218b Jason Gunthorpe 2026-02-27 931 phys_addr_t paddr, dma_addr_t len, unsigned int prot,
d6c65b0fd6218b Jason Gunthorpe 2026-02-27 932 gfp_t gfp, size_t *mapped)
dcd6a011a8d523 Jason Gunthorpe 2025-11-04 933 {
dcd6a011a8d523 Jason Gunthorpe 2025-11-04 934 pt_vaddr_t pgsize_bitmap = iommu_table->domain.pgsize_bitmap;
dcd6a011a8d523 Jason Gunthorpe 2025-11-04 935 struct pt_common *common = common_from_iommu(iommu_table);
dcd6a011a8d523 Jason Gunthorpe 2025-11-04 936 struct iommu_iotlb_gather iotlb_gather;
dcd6a011a8d523 Jason Gunthorpe 2025-11-04 937 struct pt_iommu_map_args map = {
dcd6a011a8d523 Jason Gunthorpe 2025-11-04 938 .iotlb_gather = &iotlb_gather,
dcd6a011a8d523 Jason Gunthorpe 2025-11-04 939 .oa = paddr,
dcd6a011a8d523 Jason Gunthorpe 2025-11-04 940 };
dcd6a011a8d523 Jason Gunthorpe 2025-11-04 941 bool single_page = false;
dcd6a011a8d523 Jason Gunthorpe 2025-11-04 942 struct pt_range range;
dcd6a011a8d523 Jason Gunthorpe 2025-11-04 943 int ret;
dcd6a011a8d523 Jason Gunthorpe 2025-11-04 944
dcd6a011a8d523 Jason Gunthorpe 2025-11-04 945 iommu_iotlb_gather_init(&iotlb_gather);
dcd6a011a8d523 Jason Gunthorpe 2025-11-04 946
dcd6a011a8d523 Jason Gunthorpe 2025-11-04 947 if (WARN_ON(!(prot & (IOMMU_READ | IOMMU_WRITE))))
dcd6a011a8d523 Jason Gunthorpe 2025-11-04 948 return -EINVAL;
dcd6a011a8d523 Jason Gunthorpe 2025-11-04 949
dcd6a011a8d523 Jason Gunthorpe 2025-11-04 950 /* Check the paddr doesn't exceed what the table can store */
dcd6a011a8d523 Jason Gunthorpe 2025-11-04 951 if ((sizeof(pt_oaddr_t) < sizeof(paddr) &&
dcd6a011a8d523 Jason Gunthorpe 2025-11-04 @952 (pt_vaddr_t)paddr > PT_VADDR_MAX) ||
dcd6a011a8d523 Jason Gunthorpe 2025-11-04 953 (common->max_oasz_lg2 != PT_VADDR_MAX_LG2 &&
dcd6a011a8d523 Jason Gunthorpe 2025-11-04 954 oalog2_div(paddr, common->max_oasz_lg2)))
dcd6a011a8d523 Jason Gunthorpe 2025-11-04 955 return -ERANGE;
dcd6a011a8d523 Jason Gunthorpe 2025-11-04 956
dcd6a011a8d523 Jason Gunthorpe 2025-11-04 957 ret = pt_iommu_set_prot(common, &map.attrs, prot);
dcd6a011a8d523 Jason Gunthorpe 2025-11-04 958 if (ret)
dcd6a011a8d523 Jason Gunthorpe 2025-11-04 959 return ret;
dcd6a011a8d523 Jason Gunthorpe 2025-11-04 960 map.attrs.gfp = gfp;
dcd6a011a8d523 Jason Gunthorpe 2025-11-04 961
dcd6a011a8d523 Jason Gunthorpe 2025-11-04 962 ret = make_range_no_check(common, &range, iova, len);
dcd6a011a8d523 Jason Gunthorpe 2025-11-04 963 if (ret)
dcd6a011a8d523 Jason Gunthorpe 2025-11-04 964 return ret;
dcd6a011a8d523 Jason Gunthorpe 2025-11-04 965
dcd6a011a8d523 Jason Gunthorpe 2025-11-04 966 /* Calculate target page size and level for the leaves */
8ef3f77c440005 Jason Gunthorpe 2026-05-12 967 if (pt_has_system_page_size(common) && len == PAGE_SIZE &&
8ef3f77c440005 Jason Gunthorpe 2026-05-12 968 likely(pgsize_bitmap & PAGE_SIZE)) {
dcd6a011a8d523 Jason Gunthorpe 2025-11-04 969 if (log2_mod(iova | paddr, PAGE_SHIFT))
dcd6a011a8d523 Jason Gunthorpe 2025-11-04 970 return -ENXIO;
dcd6a011a8d523 Jason Gunthorpe 2025-11-04 971 map.leaf_pgsize_lg2 = PAGE_SHIFT;
dcd6a011a8d523 Jason Gunthorpe 2025-11-04 972 map.leaf_level = 0;
d6c65b0fd6218b Jason Gunthorpe 2026-02-27 973 map.num_leaves = 1;
dcd6a011a8d523 Jason Gunthorpe 2025-11-04 974 single_page = true;
dcd6a011a8d523 Jason Gunthorpe 2025-11-04 975 } else {
dcd6a011a8d523 Jason Gunthorpe 2025-11-04 976 map.leaf_pgsize_lg2 = pt_compute_best_pgsize(
dcd6a011a8d523 Jason Gunthorpe 2025-11-04 977 pgsize_bitmap, range.va, range.last_va, paddr);
dcd6a011a8d523 Jason Gunthorpe 2025-11-04 978 if (!map.leaf_pgsize_lg2)
dcd6a011a8d523 Jason Gunthorpe 2025-11-04 979 return -ENXIO;
dcd6a011a8d523 Jason Gunthorpe 2025-11-04 980 map.leaf_level =
dcd6a011a8d523 Jason Gunthorpe 2025-11-04 981 pt_pgsz_lg2_to_level(common, map.leaf_pgsize_lg2);
d6c65b0fd6218b Jason Gunthorpe 2026-02-27 982 map.num_leaves = pt_pgsz_count(pgsize_bitmap, range.va,
d6c65b0fd6218b Jason Gunthorpe 2026-02-27 983 range.last_va, paddr,
d6c65b0fd6218b Jason Gunthorpe 2026-02-27 984 map.leaf_pgsize_lg2);
dcd6a011a8d523 Jason Gunthorpe 2025-11-04 985 }
dcd6a011a8d523 Jason Gunthorpe 2025-11-04 986
dcd6a011a8d523 Jason Gunthorpe 2025-11-04 987 ret = check_map_range(iommu_table, &range, &map);
dcd6a011a8d523 Jason Gunthorpe 2025-11-04 988 if (ret)
dcd6a011a8d523 Jason Gunthorpe 2025-11-04 989 return ret;
dcd6a011a8d523 Jason Gunthorpe 2025-11-04 990
dcd6a011a8d523 Jason Gunthorpe 2025-11-04 991 PT_WARN_ON(map.leaf_level > range.top_level);
dcd6a011a8d523 Jason Gunthorpe 2025-11-04 992
efa03dab7ce4ed Jason Gunthorpe 2025-10-23 993 ret = do_map(&range, common, single_page, &map);
dcd6a011a8d523 Jason Gunthorpe 2025-11-04 994
dcd6a011a8d523 Jason Gunthorpe 2025-11-04 995 /*
dcd6a011a8d523 Jason Gunthorpe 2025-11-04 996 * Table levels were freed and replaced with large items, flush any walk
dcd6a011a8d523 Jason Gunthorpe 2025-11-04 997 * cache that may refer to the freed levels.
dcd6a011a8d523 Jason Gunthorpe 2025-11-04 998 */
dcd6a011a8d523 Jason Gunthorpe 2025-11-04 999 if (!iommu_pages_list_empty(&iotlb_gather.freelist))
dcd6a011a8d523 Jason Gunthorpe 2025-11-04 1000 iommu_iotlb_sync(&iommu_table->domain, &iotlb_gather);
dcd6a011a8d523 Jason Gunthorpe 2025-11-04 1001
dcd6a011a8d523 Jason Gunthorpe 2025-11-04 1002 /* Bytes successfully mapped */
dcd6a011a8d523 Jason Gunthorpe 2025-11-04 1003 PT_WARN_ON(!ret && map.oa - paddr != len);
dcd6a011a8d523 Jason Gunthorpe 2025-11-04 1004 *mapped += map.oa - paddr;
dcd6a011a8d523 Jason Gunthorpe 2025-11-04 1005 return ret;
dcd6a011a8d523 Jason Gunthorpe 2025-11-04 1006 }
dcd6a011a8d523 Jason Gunthorpe 2025-11-04 1007
:::::: The code at line 952 was first introduced by commit
:::::: dcd6a011a8d523a114af2360a8753de5bd60c139 iommupt: Add map_pages op
:::::: TO: Jason Gunthorpe <jgg@nvidia.com>
:::::: CC: Joerg Roedel <joerg.roedel@amd.com>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
next reply other threads:[~2026-08-28 6:11 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-28 6:11 kernel test robot [this message]
-- strict thread matches above, loose matches on Subject: below --
2026-08-27 19:38 [jgunthorpe:iommu_pt_arm64 20/38] drivers/iommu/generic_pt/fmt/../iommu_pt.h:952 armv8_map_range() warn: impossible condition '(paddr > 18446744073709551615) => (0-u64max > u64max)' kernel test robot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202608281308.9WHVYBuC-lkp@intel.com \
--to=lkp@intel.com \
--cc=error27@gmail.com \
--cc=oe-kbuild@lists.linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.