CC: [email protected]
CC: Linux Memory Management List <[email protected]>
TO: Anshuman Khandual <[email protected]>
CC: David Hildenbrand <[email protected]>
CC: Oscar Salvador <[email protected]>
CC: Andrew Morton <[email protected]>
CC: Linux Memory Management List <[email protected]>

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 <[email protected]>
Reported-by: Dan Carpenter <[email protected]>

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/[email protected]

Attachment: .config.gz
Description: application/gzip

_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to