mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-30 16:13:54 +08:00
x86: unify __set_fixmap
In both cases, I went with the 32-bit behaviour. Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
parent
944256e00a
commit
7c7e6e07e2
@ -213,18 +213,6 @@ void __init cleanup_highmap(void)
|
||||
}
|
||||
}
|
||||
|
||||
/* NOTE: this is meant to be run only at boot */
|
||||
void __set_fixmap(enum fixed_addresses idx, unsigned long phys, pgprot_t prot)
|
||||
{
|
||||
unsigned long address = __fix_to_virt(idx);
|
||||
|
||||
if (idx >= __end_of_fixed_addresses) {
|
||||
printk(KERN_ERR "Invalid __set_fixmap\n");
|
||||
return;
|
||||
}
|
||||
set_pte_phys(address, phys, prot);
|
||||
}
|
||||
|
||||
static unsigned long __initdata table_start;
|
||||
static unsigned long __meminitdata table_end;
|
||||
|
||||
|
@ -274,3 +274,17 @@ int ptep_clear_flush_young(struct vm_area_struct *vma,
|
||||
|
||||
return young;
|
||||
}
|
||||
|
||||
int fixmaps_set;
|
||||
|
||||
void __set_fixmap (enum fixed_addresses idx, unsigned long phys, pgprot_t flags)
|
||||
{
|
||||
unsigned long address = __fix_to_virt(idx);
|
||||
|
||||
if (idx >= __end_of_fixed_addresses) {
|
||||
BUG();
|
||||
return;
|
||||
}
|
||||
set_pte_pfn(address, phys >> PAGE_SHIFT, flags);
|
||||
fixmaps_set++;
|
||||
}
|
||||
|
@ -145,18 +145,6 @@ static int fixmaps;
|
||||
unsigned long __FIXADDR_TOP = 0xfffff000;
|
||||
EXPORT_SYMBOL(__FIXADDR_TOP);
|
||||
|
||||
void __set_fixmap (enum fixed_addresses idx, unsigned long phys, pgprot_t flags)
|
||||
{
|
||||
unsigned long address = __fix_to_virt(idx);
|
||||
|
||||
if (idx >= __end_of_fixed_addresses) {
|
||||
BUG();
|
||||
return;
|
||||
}
|
||||
set_pte_pfn(address, phys >> PAGE_SHIFT, flags);
|
||||
fixmaps++;
|
||||
}
|
||||
|
||||
/**
|
||||
* reserve_top_address - reserves a hole in the top of kernel address space
|
||||
* @reserve - size of hole to reserve
|
||||
@ -166,7 +154,7 @@ void __set_fixmap (enum fixed_addresses idx, unsigned long phys, pgprot_t flags)
|
||||
*/
|
||||
void reserve_top_address(unsigned long reserve)
|
||||
{
|
||||
BUG_ON(fixmaps > 0);
|
||||
BUG_ON(fixmaps_set > 0);
|
||||
printk(KERN_INFO "Reserving virtual address space above 0x%08x\n",
|
||||
(int)-reserve);
|
||||
__FIXADDR_TOP = -reserve - PAGE_SIZE;
|
||||
|
@ -7,6 +7,8 @@
|
||||
# include "fixmap_64.h"
|
||||
#endif
|
||||
|
||||
extern int fixmaps_set;
|
||||
|
||||
extern void __set_fixmap(enum fixed_addresses idx,
|
||||
unsigned long phys, pgprot_t flags);
|
||||
#define set_fixmap(idx, phys) \
|
||||
|
Loading…
Reference in New Issue
Block a user