From: Dan Carpenter <dan.carpenter@oracle.com>
To: kbuild@lists.01.org, Anshuman Khandual <anshuman.khandual@arm.com>
Cc: lkp@intel.com, kbuild-all@lists.01.org,
Linux Memory Management List <linux-mm@kvack.org>,
David Hildenbrand <david@redhat.com>,
Oscar Salvador <osalvador@suse.de>,
Andrew Morton <akpm@linux-foundation.org>
Subject: [linux-next:master 10191/10581] mm/memremap.c:270 pagemap_range() warn: missing error code 'error'
Date: Mon, 15 Feb 2021 15:40:53 +0300 [thread overview]
Message-ID: <20210215124053.GJ2087@kadam> (raw)
[-- Attachment #1: Type: text/plain, Size: 11495 bytes --]
tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head: 671176b0016c80b3943cb5387312c886aba3308d
commit: 719fa3d6ddb50d3035c713c27feeae8b249eb586 [10191/10581] mm/memory_hotplug: prevalidate the address range being added with platform
config: x86_64-randconfig-m001-20210211 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
smatch warnings:
mm/memremap.c:270 pagemap_range() warn: missing error code 'error'
vim +/error +270 mm/memremap.c
b7b3c01b191596 mm/memremap.c Dan Williams 2020-10-13 220 static int pagemap_range(struct dev_pagemap *pgmap, struct mhp_params *params,
b7b3c01b191596 mm/memremap.c Dan Williams 2020-10-13 221 int range_id, int nid)
41e94a851304f7 kernel/memremap.c Christoph Hellwig 2015-08-17 222 {
719fa3d6ddb50d mm/memremap.c Anshuman Khandual 2021-02-09 223 const bool is_private = pgmap->type == MEMORY_DEVICE_PRIVATE;
b7b3c01b191596 mm/memremap.c Dan Williams 2020-10-13 224 struct range *range = &pgmap->ranges[range_id];
966cf44f637e6a kernel/memremap.c Alexander Duyck 2018-10-26 225 struct dev_pagemap *conflict_pgmap;
6869b7b206595a kernel/memremap.c Christoph Hellwig 2019-08-18 226 int error, is_ram;
a95c90f1e2c253 kernel/memremap.c Dan Williams 2018-12-28 227
b7b3c01b191596 mm/memremap.c Dan Williams 2020-10-13 228 if (WARN_ONCE(pgmap_altmap(pgmap) && range_id > 0,
b7b3c01b191596 mm/memremap.c Dan Williams 2020-10-13 229 "altmap not supported for multiple ranges\n"))
b7b3c01b191596 mm/memremap.c Dan Williams 2020-10-13 230 return -EINVAL;
f6a55e1a3fe6b3 kernel/memremap.c Christoph Hellwig 2019-06-26 231
a4574f63edc6f7 mm/memremap.c Dan Williams 2020-10-13 232 conflict_pgmap = get_dev_pagemap(PHYS_PFN(range->start), NULL);
15d36fecd0bdc7 kernel/memremap.c Dave Jiang 2018-07-26 233 if (conflict_pgmap) {
6869b7b206595a kernel/memremap.c Christoph Hellwig 2019-08-18 234 WARN(1, "Conflicting mapping in same section\n");
15d36fecd0bdc7 kernel/memremap.c Dave Jiang 2018-07-26 235 put_dev_pagemap(conflict_pgmap);
b7b3c01b191596 mm/memremap.c Dan Williams 2020-10-13 236 return -ENOMEM;
15d36fecd0bdc7 kernel/memremap.c Dave Jiang 2018-07-26 237 }
15d36fecd0bdc7 kernel/memremap.c Dave Jiang 2018-07-26 238
a4574f63edc6f7 mm/memremap.c Dan Williams 2020-10-13 239 conflict_pgmap = get_dev_pagemap(PHYS_PFN(range->end), NULL);
15d36fecd0bdc7 kernel/memremap.c Dave Jiang 2018-07-26 240 if (conflict_pgmap) {
6869b7b206595a kernel/memremap.c Christoph Hellwig 2019-08-18 241 WARN(1, "Conflicting mapping in same section\n");
15d36fecd0bdc7 kernel/memremap.c Dave Jiang 2018-07-26 242 put_dev_pagemap(conflict_pgmap);
b7b3c01b191596 mm/memremap.c Dan Williams 2020-10-13 243 return -ENOMEM;
15d36fecd0bdc7 kernel/memremap.c Dave Jiang 2018-07-26 244 }
15d36fecd0bdc7 kernel/memremap.c Dave Jiang 2018-07-26 245
a4574f63edc6f7 mm/memremap.c Dan Williams 2020-10-13 246 is_ram = region_intersects(range->start, range_len(range),
d37a14bb5fed13 kernel/memremap.c Linus Torvalds 2016-03-14 247 IORESOURCE_SYSTEM_RAM, IORES_DESC_NONE);
41e94a851304f7 kernel/memremap.c Christoph Hellwig 2015-08-17 248
06489cfbd915ff kernel/memremap.c Dan Williams 2018-12-28 249 if (is_ram != REGION_DISJOINT) {
a4574f63edc6f7 mm/memremap.c Dan Williams 2020-10-13 250 WARN_ONCE(1, "attempted on %s region %#llx-%#llx\n",
a4574f63edc6f7 mm/memremap.c Dan Williams 2020-10-13 251 is_ram == REGION_MIXED ? "mixed" : "ram",
a4574f63edc6f7 mm/memremap.c Dan Williams 2020-10-13 252 range->start, range->end);
b7b3c01b191596 mm/memremap.c Dan Williams 2020-10-13 253 return -ENXIO;
41e94a851304f7 kernel/memremap.c Christoph Hellwig 2015-08-17 254 }
41e94a851304f7 kernel/memremap.c Christoph Hellwig 2015-08-17 255
a4574f63edc6f7 mm/memremap.c Dan Williams 2020-10-13 256 error = xa_err(xa_store_range(&pgmap_array, PHYS_PFN(range->start),
a4574f63edc6f7 mm/memremap.c Dan Williams 2020-10-13 257 PHYS_PFN(range->end), pgmap, GFP_KERNEL));
9476df7d80dfc4 kernel/memremap.c Dan Williams 2016-01-15 258 if (error)
b7b3c01b191596 mm/memremap.c Dan Williams 2020-10-13 259 return error;
9476df7d80dfc4 kernel/memremap.c Dan Williams 2016-01-15 260
41e94a851304f7 kernel/memremap.c Christoph Hellwig 2015-08-17 261 if (nid < 0)
7eff93b7c99f5d kernel/memremap.c Dan Williams 2015-10-05 262 nid = numa_mem_id();
41e94a851304f7 kernel/memremap.c Christoph Hellwig 2015-08-17 263
b7b3c01b191596 mm/memremap.c Dan Williams 2020-10-13 264 error = track_pfn_remap(NULL, ¶ms->pgprot, PHYS_PFN(range->start), 0,
a4574f63edc6f7 mm/memremap.c Dan Williams 2020-10-13 265 range_len(range));
9049771f7d5490 kernel/memremap.c Dan Williams 2016-09-07 266 if (error)
9049771f7d5490 kernel/memremap.c Dan Williams 2016-09-07 267 goto err_pfn_remap;
9049771f7d5490 kernel/memremap.c Dan Williams 2016-09-07 268
719fa3d6ddb50d mm/memremap.c Anshuman Khandual 2021-02-09 269 if (!mhp_range_allowed(range->start, range_len(range), !is_private))
719fa3d6ddb50d mm/memremap.c Anshuman Khandual 2021-02-09 @270 goto err_pfn_remap;
"error = -EINVAL;"
719fa3d6ddb50d mm/memremap.c Anshuman Khandual 2021-02-09 271
f931ab479dd24c kernel/memremap.c Dan Williams 2017-01-10 272 mem_hotplug_begin();
69324b8f48339d kernel/memremap.c Dan Williams 2018-12-28 273
69324b8f48339d kernel/memremap.c Dan Williams 2018-12-28 274 /*
69324b8f48339d kernel/memremap.c Dan Williams 2018-12-28 275 * For device private memory we call add_pages() as we only need to
69324b8f48339d kernel/memremap.c Dan Williams 2018-12-28 276 * allocate and initialize struct page for the device memory. More-
69324b8f48339d kernel/memremap.c Dan Williams 2018-12-28 277 * over the device memory is un-accessible thus we do not want to
69324b8f48339d kernel/memremap.c Dan Williams 2018-12-28 278 * create a linear mapping for the memory like arch_add_memory()
69324b8f48339d kernel/memremap.c Dan Williams 2018-12-28 279 * would do.
69324b8f48339d kernel/memremap.c Dan Williams 2018-12-28 280 *
69324b8f48339d kernel/memremap.c Dan Williams 2018-12-28 281 * For all other device memory types, which are accessible by
69324b8f48339d kernel/memremap.c Dan Williams 2018-12-28 282 * the CPU, we do want the linear mapping and thus use
69324b8f48339d kernel/memremap.c Dan Williams 2018-12-28 283 * arch_add_memory().
69324b8f48339d kernel/memremap.c Dan Williams 2018-12-28 284 */
719fa3d6ddb50d mm/memremap.c Anshuman Khandual 2021-02-09 285 if (is_private) {
a4574f63edc6f7 mm/memremap.c Dan Williams 2020-10-13 286 error = add_pages(nid, PHYS_PFN(range->start),
b7b3c01b191596 mm/memremap.c Dan Williams 2020-10-13 287 PHYS_PFN(range_len(range)), params);
69324b8f48339d kernel/memremap.c Dan Williams 2018-12-28 288 } else {
a4574f63edc6f7 mm/memremap.c Dan Williams 2020-10-13 289 error = kasan_add_zero_shadow(__va(range->start), range_len(range));
0207df4fa1a869 kernel/memremap.c Andrey Ryabinin 2018-08-17 290 if (error) {
0207df4fa1a869 kernel/memremap.c Andrey Ryabinin 2018-08-17 291 mem_hotplug_done();
0207df4fa1a869 kernel/memremap.c Andrey Ryabinin 2018-08-17 292 goto err_kasan;
0207df4fa1a869 kernel/memremap.c Andrey Ryabinin 2018-08-17 293 }
0207df4fa1a869 kernel/memremap.c Andrey Ryabinin 2018-08-17 294
a4574f63edc6f7 mm/memremap.c Dan Williams 2020-10-13 295 error = arch_add_memory(nid, range->start, range_len(range),
b7b3c01b191596 mm/memremap.c Dan Williams 2020-10-13 296 params);
69324b8f48339d kernel/memremap.c Dan Williams 2018-12-28 297 }
69324b8f48339d kernel/memremap.c Dan Williams 2018-12-28 298
69324b8f48339d kernel/memremap.c Dan Williams 2018-12-28 299 if (!error) {
69324b8f48339d kernel/memremap.c Dan Williams 2018-12-28 300 struct zone *zone;
69324b8f48339d kernel/memremap.c Dan Williams 2018-12-28 301
69324b8f48339d kernel/memremap.c Dan Williams 2018-12-28 302 zone = &NODE_DATA(nid)->node_zones[ZONE_DEVICE];
a4574f63edc6f7 mm/memremap.c Dan Williams 2020-10-13 303 move_pfn_range_to_zone(zone, PHYS_PFN(range->start),
d882c0067d99d0 mm/memremap.c David Hildenbrand 2020-10-15 304 PHYS_PFN(range_len(range)), params->altmap,
d882c0067d99d0 mm/memremap.c David Hildenbrand 2020-10-15 305 MIGRATE_MOVABLE);
69324b8f48339d kernel/memremap.c Dan Williams 2018-12-28 306 }
69324b8f48339d kernel/memremap.c Dan Williams 2018-12-28 307
f931ab479dd24c kernel/memremap.c Dan Williams 2017-01-10 308 mem_hotplug_done();
9476df7d80dfc4 kernel/memremap.c Dan Williams 2016-01-15 309 if (error)
9476df7d80dfc4 kernel/memremap.c Dan Williams 2016-01-15 310 goto err_add_memory;
41e94a851304f7 kernel/memremap.c Christoph Hellwig 2015-08-17 311
d77a117e6871ff kernel/memremap.c Dan Williams 2016-03-09 312 /*
966cf44f637e6a kernel/memremap.c Alexander Duyck 2018-10-26 313 * Initialization of the pages has been deferred until now in order
966cf44f637e6a kernel/memremap.c Alexander Duyck 2018-10-26 314 * to allow us to do the work while not holding the hotplug lock.
d77a117e6871ff kernel/memremap.c Dan Williams 2016-03-09 315 */
966cf44f637e6a kernel/memremap.c Alexander Duyck 2018-10-26 316 memmap_init_zone_device(&NODE_DATA(nid)->node_zones[ZONE_DEVICE],
a4574f63edc6f7 mm/memremap.c Dan Williams 2020-10-13 317 PHYS_PFN(range->start),
a4574f63edc6f7 mm/memremap.c Dan Williams 2020-10-13 318 PHYS_PFN(range_len(range)), pgmap);
b7b3c01b191596 mm/memremap.c Dan Williams 2020-10-13 319 percpu_ref_get_many(pgmap->ref, pfn_end(pgmap, range_id)
b7b3c01b191596 mm/memremap.c Dan Williams 2020-10-13 320 - pfn_first(pgmap, range_id));
b7b3c01b191596 mm/memremap.c Dan Williams 2020-10-13 321 return 0;
9476df7d80dfc4 kernel/memremap.c Dan Williams 2016-01-15 322
9476df7d80dfc4 kernel/memremap.c Dan Williams 2016-01-15 323 err_add_memory:
a4574f63edc6f7 mm/memremap.c Dan Williams 2020-10-13 324 kasan_remove_zero_shadow(__va(range->start), range_len(range));
0207df4fa1a869 kernel/memremap.c Andrey Ryabinin 2018-08-17 325 err_kasan:
a4574f63edc6f7 mm/memremap.c Dan Williams 2020-10-13 326 untrack_pfn(NULL, PHYS_PFN(range->start), range_len(range));
9049771f7d5490 kernel/memremap.c Dan Williams 2016-09-07 327 err_pfn_remap:
a4574f63edc6f7 mm/memremap.c Dan Williams 2020-10-13 328 pgmap_array_delete(range);
b7b3c01b191596 mm/memremap.c Dan Williams 2020-10-13 329 return error;
b7b3c01b191596 mm/memremap.c Dan Williams 2020-10-13 330 }
---
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: 37889 bytes --]
next reply other threads:[~2021-02-15 12:41 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-02-15 12:40 Dan Carpenter [this message]
2021-02-18 22:29 ` [linux-next:master 10191/10581] mm/memremap.c:270 pagemap_range() warn: missing error code 'error' Andrew Morton
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=20210215124053.GJ2087@kadam \
--to=dan.carpenter@oracle.com \
--cc=akpm@linux-foundation.org \
--cc=anshuman.khandual@arm.com \
--cc=david@redhat.com \
--cc=kbuild-all@lists.01.org \
--cc=kbuild@lists.01.org \
--cc=linux-mm@kvack.org \
--cc=lkp@intel.com \
--cc=osalvador@suse.de \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).