mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-01-19 09:16:06 +07:00
[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: Ken Chen <kenneth.w.chen@intel.com> Signed-off-by: Tony Luck <tony.luck@intel.com>
This commit is contained in:
parent
1c2e02750b
commit
2332c9ae79
@ -113,8 +113,7 @@ void hugetlb_free_pgd_range(struct mmu_gather **tlb,
|
|||||||
unsigned long floor, unsigned long ceiling)
|
unsigned long floor, unsigned long ceiling)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* This is called only when is_hugepage_only_range(addr,),
|
* This is called to free hugetlb page tables.
|
||||||
* and it follows that is_hugepage_only_range(end,) also.
|
|
||||||
*
|
*
|
||||||
* The offset of these addresses from the base of the hugetlb
|
* The offset of these addresses from the base of the hugetlb
|
||||||
* region must be scaled down by HPAGE_SIZE/PAGE_SIZE so that
|
* 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);
|
addr = htlbpage_to_page(addr);
|
||||||
end = htlbpage_to_page(end);
|
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);
|
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);
|
ceiling = htlbpage_to_page(ceiling);
|
||||||
|
|
||||||
free_pgd_range(tlb, addr, end, floor, ceiling);
|
free_pgd_range(tlb, addr, end, floor, ceiling);
|
||||||
|
@ -149,7 +149,7 @@ typedef union ia64_va {
|
|||||||
| (REGION_OFFSET(x) >> (HPAGE_SHIFT-PAGE_SHIFT)))
|
| (REGION_OFFSET(x) >> (HPAGE_SHIFT-PAGE_SHIFT)))
|
||||||
# define HUGETLB_PAGE_ORDER (HPAGE_SHIFT - PAGE_SHIFT)
|
# define HUGETLB_PAGE_ORDER (HPAGE_SHIFT - PAGE_SHIFT)
|
||||||
# define is_hugepage_only_range(mm, addr, len) \
|
# 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)
|
REGION_NUMBER((addr)+(len)-1) == RGN_HPAGE)
|
||||||
extern unsigned int hpage_shift;
|
extern unsigned int hpage_shift;
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user