Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2332c9ae authored by Kenneth W Chen's avatar Kenneth W Chen Committed by Tony Luck
Browse files

[IA64] fix ia64 is_hugepage_only_range



fix is_hugepage_only_range() definition to be "overlaps"
instead of "within architectural restricted hugetlb address
range".  Simplify the ia64 specific code that used to use
is_hugepage_only_range() to just check which region the
address is in.

Signed-off-by: default avatarKen Chen <kenneth.w.chen@intel.com>
Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
parent 1c2e0275
Loading
Loading
Loading
Loading
+3 −4
Original line number Diff line number Diff line
@@ -113,8 +113,7 @@ void hugetlb_free_pgd_range(struct mmu_gather **tlb,
			unsigned long floor, unsigned long ceiling)
{
	/*
	 * This is called only when is_hugepage_only_range(addr,),
	 * and it follows that is_hugepage_only_range(end,) also.
	 * This is called to free hugetlb page tables.
	 *
	 * The offset of these addresses from the base of the hugetlb
	 * region must be scaled down by HPAGE_SIZE/PAGE_SIZE so that
@@ -126,9 +125,9 @@ void hugetlb_free_pgd_range(struct mmu_gather **tlb,

	addr = htlbpage_to_page(addr);
	end  = htlbpage_to_page(end);
	if (is_hugepage_only_range(tlb->mm, floor, HPAGE_SIZE))
	if (REGION_NUMBER(floor) == RGN_HPAGE)
		floor = htlbpage_to_page(floor);
	if (is_hugepage_only_range(tlb->mm, ceiling, HPAGE_SIZE))
	if (REGION_NUMBER(ceiling) == RGN_HPAGE)
		ceiling = htlbpage_to_page(ceiling);

	free_pgd_range(tlb, addr, end, floor, ceiling);
+1 −1
Original line number Diff line number Diff line
@@ -149,7 +149,7 @@ typedef union ia64_va {
				 | (REGION_OFFSET(x) >> (HPAGE_SHIFT-PAGE_SHIFT)))
# define HUGETLB_PAGE_ORDER	(HPAGE_SHIFT - PAGE_SHIFT)
# define is_hugepage_only_range(mm, addr, len)		\
	 (REGION_NUMBER(addr) == RGN_HPAGE &&	\
	 (REGION_NUMBER(addr) == RGN_HPAGE ||	\
	  REGION_NUMBER((addr)+(len)-1) == RGN_HPAGE)
extern unsigned int hpage_shift;
#endif