Commit 6626734d authored by Robin Murphy's avatar Robin Murphy Committed by Marek Szyprowski
Browse files

mm_zone: Generalise has_managed_dma()



It would be useful to be able to check for potential DMA pages beyond
just ZONE_DMA - generalise the existing has_managed_dma() function to
allow checking other zones too.

Signed-off-by: default avatarRobin Murphy <robin.murphy@arm.com>
Acked-by: default avatarDavid Hildenbrand (Red Hat) <david@kernel.org>
Acked-by: default avatarMike Rapoport (Microsoft) <rppt@kernel.org>
Tested-by: default avatarVladimir Kondratiev <vladimir.kondratiev@mobileye.com>
Reviewed-by: default avatarBaoquan He <bhe@redhat.com>
Signed-off-by: default avatarMarek Szyprowski <m.szyprowski@samsung.com>
Link: https://lore.kernel.org/r/bd002d2351074e57be1ca08f03f333debac658fb.1768230104.git.robin.murphy@arm.com
parent b31ac41b
Loading
Loading
Loading
Loading
+5 −4
Original line number Diff line number Diff line
@@ -1648,14 +1648,15 @@ static inline int is_highmem(const struct zone *zone)
	return is_highmem_idx(zone_idx(zone));
}

#ifdef CONFIG_ZONE_DMA
bool has_managed_dma(void);
#else
bool has_managed_zone(enum zone_type zone);
static inline bool has_managed_dma(void)
{
#ifdef CONFIG_ZONE_DMA
	return has_managed_zone(ZONE_DMA);
#else
	return false;
}
#endif
}


#ifndef CONFIG_NUMA
+2 −6
Original line number Diff line number Diff line
@@ -7418,20 +7418,16 @@ bool put_page_back_buddy(struct page *page)
}
#endif

#ifdef CONFIG_ZONE_DMA
bool has_managed_dma(void)
bool has_managed_zone(enum zone_type zone)
{
	struct pglist_data *pgdat;

	for_each_online_pgdat(pgdat) {
		struct zone *zone = &pgdat->node_zones[ZONE_DMA];

		if (managed_zone(zone))
		if (managed_zone(&pgdat->node_zones[zone]))
			return true;
	}
	return false;
}
#endif /* CONFIG_ZONE_DMA */

#ifdef CONFIG_UNACCEPTED_MEMORY