mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-06 06:21:31 +00:00
x86: EFI_PAGE_SHIFT fix
Make x86 EFI code works when EFI_PAGE_SHIFT != PAGE_SHIFT. The memrage_efi_to_native() provided in this patch can be used on other EFI platform such as IA64 too. This patch has been tested on Intel x86_64 platform with EFI 64/32 firmware. Signed-off-by: Huang Ying <ying.huang@intel.com> Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
This commit is contained in:
parent
f8dfd5ed14
commit
4a3575fd43
3 changed files with 26 additions and 11 deletions
|
@ -18,6 +18,7 @@
|
|||
#include <linux/proc_fs.h>
|
||||
#include <linux/rtc.h>
|
||||
#include <linux/ioport.h>
|
||||
#include <linux/pfn.h>
|
||||
|
||||
#include <asm/page.h>
|
||||
#include <asm/system.h>
|
||||
|
@ -394,4 +395,10 @@ struct efi_generic_dev_path {
|
|||
u16 length;
|
||||
} __attribute ((packed));
|
||||
|
||||
static inline void memrange_efi_to_native(u64 *addr, u64 *npages)
|
||||
{
|
||||
*npages = PFN_UP(*addr + (*npages<<EFI_PAGE_SHIFT)) - PFN_DOWN(*addr);
|
||||
*addr &= PAGE_MASK;
|
||||
}
|
||||
|
||||
#endif /* _LINUX_EFI_H */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue