Re: [mmotm:master 47/137] htmldocs: mm/memblock.c:1261: warning: Function parameter or member 'out_spfn' not described in '__next_mem_pfn_range_in_zone'

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

 



Hi Alex,

On Sat, Nov 17, 2018 at 10:26:25AM +0800, kbuild test robot wrote:
> tree:   git://git.cmpxchg.org/linux-mmotm.git master
> head:   4de8d18fa38298433f161f8780b5e1b0f01a8c17
> commit: 711bb3ee3832a764cb2ea03e97b7183b938e1f6c [47/137] mm: implement new zone specific memblock iterator
> reproduce: make htmldocs
> 
> All warnings (new ones prefixed by >>):
> 
>    WARNING: convert(1) not found, for SVG to PDF conversion install ImageMagick (https://www.imagemagick.org)
>    mm/memblock.c:1261: warning: Excess function parameter 'out_start' description in '__next_mem_pfn_range_in_zone'
>    mm/memblock.c:1261: warning: Excess function parameter 'out_end' description in '__next_mem_pfn_range_in_zone'
> >> mm/memblock.c:1261: warning: Function parameter or member 'out_spfn' not described in '__next_mem_pfn_range_in_zone'
> >> mm/memblock.c:1261: warning: Function parameter or member 'out_epfn' not described in '__next_mem_pfn_range_in_zone'
>    mm/memblock.c:1261: warning: Excess function parameter 'out_start' description in '__next_mem_pfn_range_in_zone'
>    mm/memblock.c:1261: warning: Excess function parameter 'out_end' description in '__next_mem_pfn_range_in_zone'

Can you please fix those?
 
> vim +1261 mm/memblock.c
> 
>   1211	
>   1212	/**
>   1213	 * memblock_set_node - set node ID on memblock regions
>   1214	 * @base: base of area to set node ID for
>   1215	 * @size: size of area to set node ID for
>   1216	 * @type: memblock type to set node ID for
>   1217	 * @nid: node ID to set
>   1218	 *
>   1219	 * Set the nid of memblock @type regions in [@base, @base + @size) to @nid.
>   1220	 * Regions which cross the area boundaries are split as necessary.
>   1221	 *
>   1222	 * Return:
>   1223	 * 0 on success, -errno on failure.
>   1224	 */
>   1225	int __init_memblock memblock_set_node(phys_addr_t base, phys_addr_t size,
>   1226					      struct memblock_type *type, int nid)
>   1227	{
>   1228		int start_rgn, end_rgn;
>   1229		int i, ret;
>   1230	
>   1231		ret = memblock_isolate_range(type, base, size, &start_rgn, &end_rgn);
>   1232		if (ret)
>   1233			return ret;
>   1234	
>   1235		for (i = start_rgn; i < end_rgn; i++)
>   1236			memblock_set_region_node(&type->regions[i], nid);
>   1237	
>   1238		memblock_merge_regions(type);
>   1239		return 0;
>   1240	}
>   1241	#endif /* CONFIG_HAVE_MEMBLOCK_NODE_MAP */
>   1242	#ifdef CONFIG_DEFERRED_STRUCT_PAGE_INIT
>   1243	/**
>   1244	 * __next_mem_pfn_range_in_zone - iterator for for_each_*_range_in_zone()
>   1245	 *
>   1246	 * @idx: pointer to u64 loop variable
>   1247	 * @zone: zone in which all of the memory blocks reside
>   1248	 * @out_start: ptr to ulong for start pfn of the range, can be %NULL
>   1249	 * @out_end: ptr to ulong for end pfn of the range, can be %NULL
>   1250	 *
>   1251	 * This function is meant to be a zone/pfn specific wrapper for the
>   1252	 * for_each_mem_range type iterators. Specifically they are used in the
>   1253	 * deferred memory init routines and as such we were duplicating much of
>   1254	 * this logic throughout the code. So instead of having it in multiple
>   1255	 * locations it seemed like it would make more sense to centralize this to
>   1256	 * one new iterator that does everything they need.
>   1257	 */
>   1258	void __init_memblock
>   1259	__next_mem_pfn_range_in_zone(u64 *idx, struct zone *zone,
>   1260				     unsigned long *out_spfn, unsigned long *out_epfn)
> > 1261	{
>   1262		int zone_nid = zone_to_nid(zone);
>   1263		phys_addr_t spa, epa;
>   1264		int nid;
>   1265	
>   1266		__next_mem_range(idx, zone_nid, MEMBLOCK_NONE,
>   1267				 &memblock.memory, &memblock.reserved,
>   1268				 &spa, &epa, &nid);
>   1269	
>   1270		while (*idx != ULLONG_MAX) {
>   1271			unsigned long epfn = PFN_DOWN(epa);
>   1272			unsigned long spfn = PFN_UP(spa);
>   1273	
>   1274			/*
>   1275			 * Verify the end is at least past the start of the zone and
>   1276			 * that we have at least one PFN to initialize.
>   1277			 */
>   1278			if (zone->zone_start_pfn < epfn && spfn < epfn) {
>   1279				/* if we went too far just stop searching */
>   1280				if (zone_end_pfn(zone) <= spfn)
>   1281					break;
>   1282	
>   1283				if (out_spfn)
>   1284					*out_spfn = max(zone->zone_start_pfn, spfn);
>   1285				if (out_epfn)
>   1286					*out_epfn = min(zone_end_pfn(zone), epfn);
>   1287	
>   1288				return;
>   1289			}
>   1290	
>   1291			__next_mem_range(idx, zone_nid, MEMBLOCK_NONE,
>   1292					 &memblock.memory, &memblock.reserved,
>   1293					 &spa, &epa, &nid);
>   1294		}
>   1295	
>   1296		/* signal end of iteration */
>   1297		*idx = ULLONG_MAX;
>   1298		if (out_spfn)
>   1299			*out_spfn = ULONG_MAX;
>   1300		if (out_epfn)
>   1301			*out_epfn = 0;
>   1302	}
>   1303	
> 
> ---
> 0-DAY kernel test infrastructure                Open Source Technology Center
> https://lists.01.org/pipermail/kbuild-all                   Intel Corporation



-- 
Sincerely yours,
Mike.




[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