All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: kbuild@lists.01.org
Subject: [linux-next:master 10191/10581] mm/memremap.c:270 pagemap_range() warn: missing error code 'error'
Date: Sat, 13 Feb 2021 05:19:45 +0800	[thread overview]
Message-ID: <202102130541.wktw7nRa-lkp@intel.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 12134 bytes --]

CC: kbuild-all(a)lists.01.org
CC: Linux Memory Management List <linux-mm@kvack.org>
TO: Anshuman Khandual <anshuman.khandual@arm.com>
CC: David Hildenbrand <david@redhat.com>
CC: Oscar Salvador <osalvador@suse.de>
CC: Andrew Morton <akpm@linux-foundation.org>
CC: Linux Memory Management List <linux-mm@kvack.org>

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
:::::: branch date: 34 hours ago
:::::: commit date: 2 days ago
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

24917f6b1041a7 kernel/memremap.c Christoph Hellwig 2019-06-26  219  
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, &params->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;
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  }
b7b3c01b191596 mm/memremap.c     Dan Williams      2020-10-13  331  

---
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: 37889 bytes --]

             reply	other threads:[~2021-02-12 21:19 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-02-12 21:19 kernel test robot [this message]
2021-02-15 12:40 [linux-next:master 10191/10581] mm/memremap.c:270 pagemap_range() warn: missing error code 'error' Dan Carpenter
2021-02-15 12:40 ` Dan Carpenter
2021-02-15 12:40 ` Dan Carpenter
2021-02-18 22:29 ` Andrew Morton
2021-02-18 22:29   ` 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=202102130541.wktw7nRa-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=kbuild@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.