From: kernel test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: Re: [PATCH 2/2] memremap: remove support for external pgmap refcounts
Date: Sun, 14 Nov 2021 08:13:31 +0800 [thread overview]
Message-ID: <202111140805.aWjwRFla-lkp@intel.com> (raw)
In-Reply-To: <20211019073641.2323410-3-hch@lst.de>
[-- Attachment #1: Type: text/plain, Size: 8176 bytes --]
Hi Christoph,
I love your patch! Yet something to improve:
[auto build test ERROR on linus/master]
[also build test ERROR on nvdimm/libnvdimm-for-next]
[cannot apply to hnaz-mm/master v5.15 next-20211112]
[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]
url: https://github.com/0day-ci/linux/commits/Christoph-Hellwig/nvdimm-pmem-stop-using-q_usage_count-as-external-pgmap-refcount/20211019-163725
base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 519d81956ee277b4419c723adfb154603c2565ba
config: x86_64-allyesconfig (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce (this is a W=1 build):
# https://github.com/0day-ci/linux/commit/52278e5e6fc46f4d71f00c7e068331769b456d19
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Christoph-Hellwig/nvdimm-pmem-stop-using-q_usage_count-as-external-pgmap-refcount/20211019-163725
git checkout 52278e5e6fc46f4d71f00c7e068331769b456d19
# save the attached .config to linux build tree
mkdir build_dir
make W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash
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/pci/p2pdma.c: In function 'pci_p2pdma_add_resource':
>> drivers/pci/p2pdma.c:222:9: error: incompatible type for argument 6 of 'gen_pool_add_owner'
222 | pgmap->ref);
| ~~~~~^~~~~
| |
| struct percpu_ref
In file included from drivers/pci/p2pdma.c:16:
include/linux/genalloc.h:99:22: note: expected 'void *' but argument is of type 'struct percpu_ref'
99 | size_t, int, void *);
| ^~~~~~
vim +/gen_pool_add_owner +222 drivers/pci/p2pdma.c
52916982af48d9 Logan Gunthorpe 2018-10-04 160
52916982af48d9 Logan Gunthorpe 2018-10-04 161 /**
52916982af48d9 Logan Gunthorpe 2018-10-04 162 * pci_p2pdma_add_resource - add memory for use as p2p memory
52916982af48d9 Logan Gunthorpe 2018-10-04 163 * @pdev: the device to add the memory to
52916982af48d9 Logan Gunthorpe 2018-10-04 164 * @bar: PCI BAR to add
52916982af48d9 Logan Gunthorpe 2018-10-04 165 * @size: size of the memory to add, may be zero to use the whole BAR
52916982af48d9 Logan Gunthorpe 2018-10-04 166 * @offset: offset into the PCI BAR
52916982af48d9 Logan Gunthorpe 2018-10-04 167 *
52916982af48d9 Logan Gunthorpe 2018-10-04 168 * The memory will be given ZONE_DEVICE struct pages so that it may
52916982af48d9 Logan Gunthorpe 2018-10-04 169 * be used with any DMA request.
52916982af48d9 Logan Gunthorpe 2018-10-04 170 */
52916982af48d9 Logan Gunthorpe 2018-10-04 171 int pci_p2pdma_add_resource(struct pci_dev *pdev, int bar, size_t size,
52916982af48d9 Logan Gunthorpe 2018-10-04 172 u64 offset)
52916982af48d9 Logan Gunthorpe 2018-10-04 173 {
a6e6fe6549f609 Logan Gunthorpe 2019-08-12 174 struct pci_p2pdma_pagemap *p2p_pgmap;
52916982af48d9 Logan Gunthorpe 2018-10-04 175 struct dev_pagemap *pgmap;
ae21f835a5bda0 Eric Dumazet 2021-07-01 176 struct pci_p2pdma *p2pdma;
52916982af48d9 Logan Gunthorpe 2018-10-04 177 void *addr;
52916982af48d9 Logan Gunthorpe 2018-10-04 178 int error;
52916982af48d9 Logan Gunthorpe 2018-10-04 179
52916982af48d9 Logan Gunthorpe 2018-10-04 180 if (!(pci_resource_flags(pdev, bar) & IORESOURCE_MEM))
52916982af48d9 Logan Gunthorpe 2018-10-04 181 return -EINVAL;
52916982af48d9 Logan Gunthorpe 2018-10-04 182
52916982af48d9 Logan Gunthorpe 2018-10-04 183 if (offset >= pci_resource_len(pdev, bar))
52916982af48d9 Logan Gunthorpe 2018-10-04 184 return -EINVAL;
52916982af48d9 Logan Gunthorpe 2018-10-04 185
52916982af48d9 Logan Gunthorpe 2018-10-04 186 if (!size)
52916982af48d9 Logan Gunthorpe 2018-10-04 187 size = pci_resource_len(pdev, bar) - offset;
52916982af48d9 Logan Gunthorpe 2018-10-04 188
52916982af48d9 Logan Gunthorpe 2018-10-04 189 if (size + offset > pci_resource_len(pdev, bar))
52916982af48d9 Logan Gunthorpe 2018-10-04 190 return -EINVAL;
52916982af48d9 Logan Gunthorpe 2018-10-04 191
52916982af48d9 Logan Gunthorpe 2018-10-04 192 if (!pdev->p2pdma) {
52916982af48d9 Logan Gunthorpe 2018-10-04 193 error = pci_p2pdma_setup(pdev);
52916982af48d9 Logan Gunthorpe 2018-10-04 194 if (error)
52916982af48d9 Logan Gunthorpe 2018-10-04 195 return error;
52916982af48d9 Logan Gunthorpe 2018-10-04 196 }
52916982af48d9 Logan Gunthorpe 2018-10-04 197
a6e6fe6549f609 Logan Gunthorpe 2019-08-12 198 p2p_pgmap = devm_kzalloc(&pdev->dev, sizeof(*p2p_pgmap), GFP_KERNEL);
a6e6fe6549f609 Logan Gunthorpe 2019-08-12 199 if (!p2p_pgmap)
52916982af48d9 Logan Gunthorpe 2018-10-04 200 return -ENOMEM;
a6e6fe6549f609 Logan Gunthorpe 2019-08-12 201
a6e6fe6549f609 Logan Gunthorpe 2019-08-12 202 pgmap = &p2p_pgmap->pgmap;
a4574f63edc6f7 Dan Williams 2020-10-13 203 pgmap->range.start = pci_resource_start(pdev, bar) + offset;
a4574f63edc6f7 Dan Williams 2020-10-13 204 pgmap->range.end = pgmap->range.start + size - 1;
b7b3c01b191596 Dan Williams 2020-10-13 205 pgmap->nr_range = 1;
52916982af48d9 Logan Gunthorpe 2018-10-04 206 pgmap->type = MEMORY_DEVICE_PCI_P2PDMA;
a6e6fe6549f609 Logan Gunthorpe 2019-08-12 207
0afea3814358c9 Logan Gunthorpe 2019-08-12 208 p2p_pgmap->provider = pdev;
a6e6fe6549f609 Logan Gunthorpe 2019-08-12 209 p2p_pgmap->bus_offset = pci_bus_address(pdev, bar) -
977196b8c5b20b Logan Gunthorpe 2018-10-04 210 pci_resource_start(pdev, bar);
52916982af48d9 Logan Gunthorpe 2018-10-04 211
52916982af48d9 Logan Gunthorpe 2018-10-04 212 addr = devm_memremap_pages(&pdev->dev, pgmap);
52916982af48d9 Logan Gunthorpe 2018-10-04 213 if (IS_ERR(addr)) {
52916982af48d9 Logan Gunthorpe 2018-10-04 214 error = PTR_ERR(addr);
50f44ee7248ad2 Dan Williams 2019-06-13 215 goto pgmap_free;
52916982af48d9 Logan Gunthorpe 2018-10-04 216 }
52916982af48d9 Logan Gunthorpe 2018-10-04 217
ae21f835a5bda0 Eric Dumazet 2021-07-01 218 p2pdma = rcu_dereference_protected(pdev->p2pdma, 1);
ae21f835a5bda0 Eric Dumazet 2021-07-01 219 error = gen_pool_add_owner(p2pdma->pool, (unsigned long)addr,
52916982af48d9 Logan Gunthorpe 2018-10-04 220 pci_bus_address(pdev, bar) + offset,
a4574f63edc6f7 Dan Williams 2020-10-13 221 range_len(&pgmap->range), dev_to_node(&pdev->dev),
d0b3517dbcf3f6 Christoph Hellwig 2019-06-26 @222 pgmap->ref);
52916982af48d9 Logan Gunthorpe 2018-10-04 223 if (error)
e615a191216e3f Dan Williams 2019-06-13 224 goto pages_free;
52916982af48d9 Logan Gunthorpe 2018-10-04 225
a4574f63edc6f7 Dan Williams 2020-10-13 226 pci_info(pdev, "added peer-to-peer DMA memory %#llx-%#llx\n",
a4574f63edc6f7 Dan Williams 2020-10-13 227 pgmap->range.start, pgmap->range.end);
52916982af48d9 Logan Gunthorpe 2018-10-04 228
52916982af48d9 Logan Gunthorpe 2018-10-04 229 return 0;
52916982af48d9 Logan Gunthorpe 2018-10-04 230
e615a191216e3f Dan Williams 2019-06-13 231 pages_free:
e615a191216e3f Dan Williams 2019-06-13 232 devm_memunmap_pages(&pdev->dev, pgmap);
52916982af48d9 Logan Gunthorpe 2018-10-04 233 pgmap_free:
d0b3517dbcf3f6 Christoph Hellwig 2019-06-26 234 devm_kfree(&pdev->dev, pgmap);
52916982af48d9 Logan Gunthorpe 2018-10-04 235 return error;
52916982af48d9 Logan Gunthorpe 2018-10-04 236 }
52916982af48d9 Logan Gunthorpe 2018-10-04 237 EXPORT_SYMBOL_GPL(pci_p2pdma_add_resource);
52916982af48d9 Logan Gunthorpe 2018-10-04 238
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 64945 bytes --]
next prev parent reply other threads:[~2021-11-14 0:13 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-10-19 7:36 fix a pmem regression due to drain the block queue in del_gendisk Christoph Hellwig
2021-10-19 7:36 ` [PATCH 1/2] nvdimm/pmem: stop using q_usage_count as external pgmap refcount Christoph Hellwig
2021-10-19 7:36 ` [PATCH 2/2] memremap: remove support for external pgmap refcounts Christoph Hellwig
2021-10-21 13:40 ` Adam Borowski
2021-10-22 5:55 ` Christoph Hellwig
2021-10-22 8:52 ` Adam Borowski
2021-10-22 15:43 ` Dan Williams
2021-10-26 1:42 ` Dan Williams
2021-10-26 5:53 ` Christoph Hellwig
2021-10-26 17:34 ` Dan Williams
2021-11-06 5:35 ` kernel test robot
2021-11-06 5:35 ` kernel test robot
2021-11-14 0:13 ` kernel test robot [this message]
2021-10-20 6:38 ` fix a pmem regression due to drain the block queue in del_gendisk Yi Zhang
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=202111140805.aWjwRFla-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.