From: kernel test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: [android-common:android-4.19-stable 9069/9999] drivers/iommu/io-pgtable-arm.c:666:20: error: implicit declaration of function 'iommu_pgsize'
Date: Tue, 23 Jun 2020 01:30:17 +0800 [thread overview]
Message-ID: <202006230114.pgcUp2mx%lkp@intel.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 9526 bytes --]
Hi Swathi,
FYI, the error/warning still remains.
tree: https://android.googlesource.com/kernel/common android-4.19-stable
head: f69cc0ed2fca72b2388037e10daac94b0473739c
commit: 27de1978c331d4e7571a5d0187ef1802d65dbf65 [9069/9999] ANDROID: GKI: iommu/io-pgtable-arm: LPAE related updates by vendor
config: x86_64-randconfig-a016-20200622 (attached as .config)
compiler: clang version 11.0.0 (https://github.com/llvm/llvm-project 1d4c87335d5236ea1f35937e1014980ba961ae34)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install x86_64 cross compiling tool for clang build
# apt-get install binutils-x86-64-linux-gnu
git checkout 27de1978c331d4e7571a5d0187ef1802d65dbf65
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
drivers/iommu/io-pgtable-arm.c:312:16: error: implicit declaration of function 'io_pgtable_alloc_pages_exact' [-Werror,-Wimplicit-function-declaration]
void *pages = io_pgtable_alloc_pages_exact(cfg, cookie, size,
^
drivers/iommu/io-pgtable-arm.c:312:8: warning: incompatible integer to pointer conversion initializing 'void *' with an expression of type 'int' [-Wint-conversion]
void *pages = io_pgtable_alloc_pages_exact(cfg, cookie, size,
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/iommu/io-pgtable-arm.c:337:2: error: implicit declaration of function 'io_pgtable_free_pages_exact' [-Werror,-Wimplicit-function-declaration]
io_pgtable_free_pages_exact(cfg, cookie, pages, size);
^
drivers/iommu/io-pgtable-arm.c:337:2: note: did you mean 'io_pgtable_alloc_pages_exact'?
drivers/iommu/io-pgtable-arm.c:312:16: note: 'io_pgtable_alloc_pages_exact' declared here
void *pages = io_pgtable_alloc_pages_exact(cfg, cookie, size,
^
drivers/iommu/io-pgtable-arm.c:347:2: error: implicit declaration of function 'io_pgtable_free_pages_exact' [-Werror,-Wimplicit-function-declaration]
io_pgtable_free_pages_exact(cfg, cookie, pages, size);
^
drivers/iommu/io-pgtable-arm.c:572:19: error: use of undeclared identifier 'IOMMU_USE_UPSTREAM_HINT'
else if (prot & IOMMU_USE_UPSTREAM_HINT)
^
drivers/iommu/io-pgtable-arm.c:575:19: error: use of undeclared identifier 'IOMMU_USE_LLC_NWA'
else if (prot & IOMMU_USE_LLC_NWA)
^
>> drivers/iommu/io-pgtable-arm.c:666:20: error: implicit declaration of function 'iommu_pgsize' [-Werror,-Wimplicit-function-declaration]
size_t pgsize = iommu_pgsize(
^
drivers/iommu/io-pgtable-arm.c:767:9: error: implicit declaration of function 'iommu_pgsize' [-Werror,-Wimplicit-function-declaration]
size = iommu_pgsize(data->iop.cfg.pgsize_bitmap, iova, size);
^
drivers/iommu/io-pgtable-arm.c:901:19: error: implicit declaration of function 'iommu_pgsize' [-Werror,-Wimplicit-function-declaration]
size_to_unmap = iommu_pgsize(data->iop.cfg.pgsize_bitmap, iova,
^
drivers/iommu/io-pgtable-arm.c:1095:4: error: field designator 'map_sg' does not refer to any field in type 'struct io_pgtable_ops'
.map_sg = arm_lpae_map_sg,
^
drivers/iommu/io-pgtable-arm.c:1098:4: error: field designator 'is_iova_coherent' does not refer to any field in type 'struct io_pgtable_ops'
.is_iova_coherent = arm_lpae_is_iova_coherent,
^
drivers/iommu/io-pgtable-arm.c:1099:4: error: field designator 'iova_to_pte' does not refer to any field in type 'struct io_pgtable_ops'; did you mean 'iova_to_phys'?
.iova_to_pte = arm_lpae_iova_get_pte,
^~~~~~~~~~~
iova_to_phys
include/linux/io-pgtable.h:132:16: note: 'iova_to_phys' declared here
phys_addr_t (*iova_to_phys)(struct io_pgtable_ops *ops,
^
drivers/iommu/io-pgtable-arm.c:1113:8: error: use of undeclared identifier 'IO_PGTABLE_QUIRK_QCOM_USE_UPSTREAM_HINT'
| IO_PGTABLE_QUIRK_QCOM_USE_UPSTREAM_HINT
^
drivers/iommu/io-pgtable-arm.c:1114:8: error: use of undeclared identifier 'IO_PGTABLE_QUIRK_QSMMUV500_NON_SHAREABLE'
| IO_PGTABLE_QUIRK_QSMMUV500_NON_SHAREABLE
^
drivers/iommu/io-pgtable-arm.c:1115:8: error: use of undeclared identifier 'IO_PGTABLE_QUIRK_QCOM_USE_LLC_NWA'
| IO_PGTABLE_QUIRK_QCOM_USE_LLC_NWA))
^
drivers/iommu/io-pgtable-arm.c:1127:26: error: use of undeclared identifier 'IO_PGTABLE_QUIRK_QCOM_USE_UPSTREAM_HINT'
else if ((cfg->quirks & IO_PGTABLE_QUIRK_QCOM_USE_UPSTREAM_HINT) &&
^
drivers/iommu/io-pgtable-arm.c:1128:18: error: use of undeclared identifier 'IO_PGTABLE_QUIRK_QSMMUV500_NON_SHAREABLE'
(cfg->quirks & IO_PGTABLE_QUIRK_QSMMUV500_NON_SHAREABLE))
^
drivers/iommu/io-pgtable-arm.c:1132:25: error: use of undeclared identifier 'IO_PGTABLE_QUIRK_QCOM_USE_UPSTREAM_HINT'
else if (cfg->quirks & IO_PGTABLE_QUIRK_QCOM_USE_UPSTREAM_HINT)
^
drivers/iommu/io-pgtable-arm.c:1136:26: error: use of undeclared identifier 'IO_PGTABLE_QUIRK_QCOM_USE_LLC_NWA'
else if ((cfg->quirks & IO_PGTABLE_QUIRK_QCOM_USE_LLC_NWA) &&
^
drivers/iommu/io-pgtable-arm.c:1137:18: error: use of undeclared identifier 'IO_PGTABLE_QUIRK_QSMMUV500_NON_SHAREABLE'
(cfg->quirks & IO_PGTABLE_QUIRK_QSMMUV500_NON_SHAREABLE))
^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
1 warning and 20 errors generated.
vim +/iommu_pgsize +666 drivers/iommu/io-pgtable-arm.c
625
626 static int arm_lpae_map_sg(struct io_pgtable_ops *ops, unsigned long iova,
627 struct scatterlist *sg, unsigned int nents,
628 int iommu_prot, size_t *size)
629 {
630 struct arm_lpae_io_pgtable *data = io_pgtable_ops_to_data(ops);
631 arm_lpae_iopte *ptep = data->pgd;
632 int lvl = ARM_LPAE_START_LVL(data);
633 arm_lpae_iopte prot;
634 struct scatterlist *s;
635 size_t mapped = 0;
636 int i;
637 int ret = -EINVAL;
638 unsigned int min_pagesz;
639 struct io_pgtable_cfg *cfg = &data->iop.cfg;
640 struct map_state ms;
641
642 /* If no access, then nothing to do */
643 if (!(iommu_prot & (IOMMU_READ | IOMMU_WRITE)))
644 goto out_err;
645
646 prot = arm_lpae_prot_to_pte(data, iommu_prot);
647
648 min_pagesz = 1 << __ffs(cfg->pgsize_bitmap);
649
650 memset(&ms, 0, sizeof(ms));
651
652 for_each_sg(sg, s, nents, i) {
653 phys_addr_t phys = page_to_phys(sg_page(s)) + s->offset;
654 size_t size = s->length;
655
656 /*
657 * We are mapping on IOMMU page boundaries, so offset within
658 * the page must be 0. However, the IOMMU may support pages
659 * smaller than PAGE_SIZE, so s->offset may still represent
660 * an offset of that boundary within the CPU page.
661 */
662 if (!IS_ALIGNED(s->offset, min_pagesz))
663 goto out_err;
664
665 while (size) {
> 666 size_t pgsize = iommu_pgsize(
667 cfg->pgsize_bitmap, iova | phys, size);
668
669 if (ms.pgtable && (iova < ms.iova_end)) {
670 arm_lpae_iopte *ptep = ms.pgtable +
671 ARM_LPAE_LVL_IDX(iova, MAP_STATE_LVL,
672 data);
673 arm_lpae_init_pte(
674 data, iova, phys, prot, MAP_STATE_LVL,
675 ptep, ms.prev_pgtable, false);
676 ms.num_pte++;
677 } else {
678 ret = __arm_lpae_map(data, iova, phys, pgsize,
679 prot, lvl, ptep, NULL, &ms);
680 if (ret)
681 goto out_err;
682 }
683
684 iova += pgsize;
685 mapped += pgsize;
686 phys += pgsize;
687 size -= pgsize;
688 }
689 }
690
691 if (ms.pgtable)
692 pgtable_dma_sync_single_for_device(cfg,
693 __arm_lpae_dma_addr(ms.pte_start),
694 ms.num_pte * sizeof(*ms.pte_start),
695 DMA_TO_DEVICE);
696
697 /*
698 * Synchronise all PTE updates for the new mapping before there's
699 * a chance for anything to kick off a table walk for the new iova.
700 */
701 wmb();
702
703 return mapped;
704
705 out_err:
706 /* Return the size of the partial mapping so that they can be undone */
707 *size = mapped;
708 return ret;
709 }
710
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 33882 bytes --]
reply other threads:[~2020-06-22 17:30 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
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=202006230114.pgcUp2mx%lkp@intel.com \
--to=lkp@intel.com \
--cc=kbuild-all@lists.01.org \
/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.