Skip to content

Commit 6626734

Browse files
rmurphy-armmszyprow
authored andcommitted
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: Robin Murphy <robin.murphy@arm.com> Acked-by: David Hildenbrand (Red Hat) <david@kernel.org> Acked-by: Mike Rapoport (Microsoft) <rppt@kernel.org> Tested-by: Vladimir Kondratiev <vladimir.kondratiev@mobileye.com> Reviewed-by: Baoquan He <bhe@redhat.com> Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> Link: https://lore.kernel.org/r/bd002d2351074e57be1ca08f03f333debac658fb.1768230104.git.robin.murphy@arm.com
1 parent b31ac41 commit 6626734

2 files changed

Lines changed: 7 additions & 10 deletions

File tree

include/linux/mmzone.h

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1648,14 +1648,15 @@ static inline int is_highmem(const struct zone *zone)
16481648
return is_highmem_idx(zone_idx(zone));
16491649
}
16501650

1651-
#ifdef CONFIG_ZONE_DMA
1652-
bool has_managed_dma(void);
1653-
#else
1651+
bool has_managed_zone(enum zone_type zone);
16541652
static inline bool has_managed_dma(void)
16551653
{
1654+
#ifdef CONFIG_ZONE_DMA
1655+
return has_managed_zone(ZONE_DMA);
1656+
#else
16561657
return false;
1657-
}
16581658
#endif
1659+
}
16591660

16601661

16611662
#ifndef CONFIG_NUMA

mm/page_alloc.c

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7418,20 +7418,16 @@ bool put_page_back_buddy(struct page *page)
74187418
}
74197419
#endif
74207420

7421-
#ifdef CONFIG_ZONE_DMA
7422-
bool has_managed_dma(void)
7421+
bool has_managed_zone(enum zone_type zone)
74237422
{
74247423
struct pglist_data *pgdat;
74257424

74267425
for_each_online_pgdat(pgdat) {
7427-
struct zone *zone = &pgdat->node_zones[ZONE_DMA];
7428-
7429-
if (managed_zone(zone))
7426+
if (managed_zone(&pgdat->node_zones[zone]))
74307427
return true;
74317428
}
74327429
return false;
74337430
}
7434-
#endif /* CONFIG_ZONE_DMA */
74357431

74367432
#ifdef CONFIG_UNACCEPTED_MEMORY
74377433

0 commit comments

Comments
 (0)