[mmotm:master 42/152] mm/page_alloc.c:1602:18: error: 'struct zone' has no member named 'node'; did you mean 'name'?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



tree:   git://git.cmpxchg.org/linux-mmotm.git master
head:   745388a34645dd2b69f5e7115ad47fea7a218726
commit: cb9cc5caafb2b2ad1db9742432754913d36f9cec [42/152] mm: initialize pages on demand during boot
config: x86_64-randconfig-a0-02221139 (attached as .config)
compiler: gcc-7 (Debian 7.3.0-1) 7.3.0
reproduce:
        git checkout cb9cc5caafb2b2ad1db9742432754913d36f9cec
        # save the attached .config to linux build tree
        make ARCH=x86_64 

Note: the mmotm/master HEAD 745388a34645dd2b69f5e7115ad47fea7a218726 builds fine.
      It only hurts bisectibility.

All errors (new ones prefixed by >>):

   mm/page_alloc.c: In function 'deferred_grow_zone':
>> mm/page_alloc.c:1602:18: error: 'struct zone' has no member named 'node'; did you mean 'name'?
     int nid = zone->node;
                     ^~~~
                     name

vim +1602 mm/page_alloc.c

  1583	
  1584	/*
  1585	 * If this zone has deferred pages, try to grow it by initializing enough
  1586	 * deferred pages to satisfy the allocation specified by order, rounded up to
  1587	 * the nearest PAGES_PER_SECTION boundary.  So we're adding memory in increments
  1588	 * of SECTION_SIZE bytes by initializing struct pages in increments of
  1589	 * PAGES_PER_SECTION * sizeof(struct page) bytes.
  1590	 *
  1591	 * Return true when zone was grown by at least number of pages specified by
  1592	 * order. Otherwise return false.
  1593	 *
  1594	 * Note: We use noinline because this function is needed only during boot, and
  1595	 * it is called from a __ref function _deferred_grow_zone. This way we are
  1596	 * making sure that it is not inlined into permanent text section.
  1597	 */
  1598	static noinline bool __init
  1599	deferred_grow_zone(struct zone *zone, unsigned int order)
  1600	{
  1601		int zid = zone_idx(zone);
> 1602		int nid = zone->node;
  1603		pg_data_t *pgdat = NODE_DATA(nid);
  1604		unsigned long nr_pages_needed = ALIGN(1 << order, PAGES_PER_SECTION);
  1605		unsigned long nr_pages = 0;
  1606		unsigned long first_init_pfn, first_deferred_pfn, spfn, epfn, t, flags;
  1607		phys_addr_t spa, epa;
  1608		u64 i;
  1609	
  1610		/* Only the last zone may have deferred pages */
  1611		if (zone_end_pfn(zone) != pgdat_end_pfn(pgdat))
  1612			return false;
  1613	
  1614		spin_lock_irqsave(&deferred_zone_grow_lock, flags);
  1615		/*
  1616		 * Bail if we raced with another thread that disabled on demand
  1617		 * initialization.
  1618		 */
  1619		if (!static_branch_unlikely(&deferred_pages)) {
  1620			spin_unlock_irqrestore(&deferred_zone_grow_lock, flags);
  1621			return false;
  1622		}
  1623	
  1624		first_deferred_pfn = pgdat->first_deferred_pfn;
  1625		first_init_pfn = max(zone->zone_start_pfn, first_deferred_pfn);
  1626	
  1627		if (first_init_pfn >= pgdat_end_pfn(pgdat)) {
  1628			spin_unlock_irqrestore(&deferred_zone_grow_lock, flags);
  1629			return false;
  1630		}
  1631	
  1632		for_each_free_mem_range(i, nid, MEMBLOCK_NONE, &spa, &epa, NULL) {
  1633			spfn = max_t(unsigned long, first_init_pfn, PFN_UP(spa));
  1634			epfn = min_t(unsigned long, zone_end_pfn(zone), PFN_DOWN(epa));
  1635	
  1636			while (spfn < epfn && nr_pages < nr_pages_needed) {
  1637				t = ALIGN(spfn + PAGES_PER_SECTION, PAGES_PER_SECTION);
  1638				first_deferred_pfn = min(t, epfn);
  1639				nr_pages += deferred_init_pages(nid, zid, spfn,
  1640								first_deferred_pfn);
  1641				spfn = first_deferred_pfn;
  1642			}
  1643	
  1644			if (nr_pages >= nr_pages_needed)
  1645				break;
  1646		}
  1647	
  1648		for_each_free_mem_range(i, nid, MEMBLOCK_NONE, &spa, &epa, NULL) {
  1649			spfn = max_t(unsigned long, first_init_pfn, PFN_UP(spa));
  1650			epfn = min_t(unsigned long, first_deferred_pfn, PFN_DOWN(epa));
  1651			deferred_free_pages(nid, zid, spfn, epfn);
  1652	
  1653			if (first_deferred_pfn == epfn)
  1654				break;
  1655		}
  1656		pgdat->first_deferred_pfn = first_deferred_pfn;
  1657		spin_unlock_irqrestore(&deferred_zone_grow_lock, flags);
  1658	
  1659		return nr_pages >= nr_pages_needed;
  1660	}
  1661	

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Attachment: .config.gz
Description: application/gzip


[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux