Commit 9d1dcdf
x86/mm: Return correct level from lookup_address() if pte is none
Currently, lookup_address() returns two things:
1. A "pte_t" (which might be a p[g4um]d_t)
2. The 'level' of the page tables where the "pte_t" was found
(returned via a pointer)
If no pte_t is found, 'level' is essentially garbage.
Always fill out the level. For NULL "pte_t"s, fill in the level where
the p*d_none() entry was found mirroring the "found" behavior.
Always filling out the level allows using lookup_address() to precisely skip
over holes when walking kernel page tables.
Add one more entry into enum pg_level to indicate the size of the VA
covered by one PGD entry in 5-level paging mode.
Update comments for lookup_address() and lookup_address_in_pgd() to
reflect changes in the interface.
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
Reviewed-by: Rick Edgecombe <rick.p.edgecombe@intel.com>
Reviewed-by: Baoquan He <bhe@redhat.com>
Reviewed-by: Dave Hansen <dave.hansen@intel.com>
Tested-by: Tao Liu <ltao@redhat.com>
Link: https://lore.kernel.org/r/20240614095904.1345461-9-kirill.shutemov@linux.intel.com1 parent 99c5c4c commit 9d1dcdf
2 files changed
Lines changed: 11 additions & 11 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
549 | 549 | | |
550 | 550 | | |
551 | 551 | | |
| 552 | + | |
552 | 553 | | |
553 | 554 | | |
554 | 555 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
662 | 662 | | |
663 | 663 | | |
664 | 664 | | |
665 | | - | |
666 | | - | |
| 665 | + | |
| 666 | + | |
| 667 | + | |
667 | 668 | | |
668 | 669 | | |
669 | 670 | | |
| |||
672 | 673 | | |
673 | 674 | | |
674 | 675 | | |
675 | | - | |
| 676 | + | |
676 | 677 | | |
677 | 678 | | |
678 | 679 | | |
679 | 680 | | |
680 | 681 | | |
681 | 682 | | |
| 683 | + | |
682 | 684 | | |
683 | 685 | | |
684 | 686 | | |
685 | 687 | | |
686 | 688 | | |
687 | 689 | | |
688 | 690 | | |
689 | | - | |
690 | 691 | | |
691 | 692 | | |
692 | 693 | | |
| 694 | + | |
693 | 695 | | |
694 | 696 | | |
695 | 697 | | |
696 | 698 | | |
697 | 699 | | |
698 | 700 | | |
699 | 701 | | |
700 | | - | |
701 | 702 | | |
702 | 703 | | |
703 | 704 | | |
| 705 | + | |
704 | 706 | | |
705 | 707 | | |
706 | 708 | | |
707 | 709 | | |
708 | 710 | | |
709 | 711 | | |
710 | 712 | | |
711 | | - | |
712 | 713 | | |
713 | 714 | | |
714 | 715 | | |
| 716 | + | |
715 | 717 | | |
716 | 718 | | |
717 | 719 | | |
718 | | - | |
719 | | - | |
720 | 720 | | |
721 | 721 | | |
722 | 722 | | |
| |||
736 | 736 | | |
737 | 737 | | |
738 | 738 | | |
739 | | - | |
740 | | - | |
741 | | - | |
| 739 | + | |
| 740 | + | |
742 | 741 | | |
743 | 742 | | |
744 | 743 | | |
| |||
0 commit comments