x86, platform: Change is_untracked_pat_range() to bool; cleanup init
- Change is_untracked_pat_range() to return bool. - Clean up the initialization of is_untracked_pat_range() -- by default, we simply point it at is_ISA_range() directly. - Move is_untracked_pat_range to the end of struct x86_platform, since it is the newest field. Signed-off-by: H. Peter Anvin <hpa@zytor.com> Acked-by: Thomas Gleixner <tglx@linutronix.de> Cc: Jack Steiner <steiner@sgi.com> LKML-Reference: <20091119202341.GA4420@sgi.com>
This commit is contained in:
@@ -24,6 +24,4 @@ int io_reserve_memtype(resource_size_t start, resource_size_t end,
|
|||||||
|
|
||||||
void io_free_memtype(resource_size_t start, resource_size_t end);
|
void io_free_memtype(resource_size_t start, resource_size_t end);
|
||||||
|
|
||||||
int default_is_untracked_pat_range(u64 start, u64 end);
|
|
||||||
|
|
||||||
#endif /* _ASM_X86_PAT_H */
|
#endif /* _ASM_X86_PAT_H */
|
||||||
|
@@ -113,16 +113,16 @@ struct x86_cpuinit_ops {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* struct x86_platform_ops - platform specific runtime functions
|
* struct x86_platform_ops - platform specific runtime functions
|
||||||
* @is_untracked_pat_range exclude from PAT logic
|
|
||||||
* @calibrate_tsc: calibrate TSC
|
* @calibrate_tsc: calibrate TSC
|
||||||
* @get_wallclock: get time from HW clock like RTC etc.
|
* @get_wallclock: get time from HW clock like RTC etc.
|
||||||
* @set_wallclock: set time back to HW clock
|
* @set_wallclock: set time back to HW clock
|
||||||
|
* @is_untracked_pat_range exclude from PAT logic
|
||||||
*/
|
*/
|
||||||
struct x86_platform_ops {
|
struct x86_platform_ops {
|
||||||
int (*is_untracked_pat_range)(u64 start, u64 end);
|
|
||||||
unsigned long (*calibrate_tsc)(void);
|
unsigned long (*calibrate_tsc)(void);
|
||||||
unsigned long (*get_wallclock)(void);
|
unsigned long (*get_wallclock)(void);
|
||||||
int (*set_wallclock)(unsigned long nowtime);
|
int (*set_wallclock)(unsigned long nowtime);
|
||||||
|
bool (*is_untracked_pat_range)(u64 start, u64 end);
|
||||||
};
|
};
|
||||||
|
|
||||||
extern struct x86_init_ops x86_init;
|
extern struct x86_init_ops x86_init;
|
||||||
|
@@ -37,12 +37,12 @@ DEFINE_PER_CPU(int, x2apic_extra_bits);
|
|||||||
static enum uv_system_type uv_system_type;
|
static enum uv_system_type uv_system_type;
|
||||||
static u64 gru_start_paddr, gru_end_paddr;
|
static u64 gru_start_paddr, gru_end_paddr;
|
||||||
|
|
||||||
static int is_GRU_range(u64 start, u64 end)
|
static inline bool is_GRU_range(u64 start, u64 end)
|
||||||
{
|
{
|
||||||
return start >= gru_start_paddr && end < gru_end_paddr;
|
return start >= gru_start_paddr && end < gru_end_paddr;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int uv_is_untracked_pat_range(u64 start, u64 end)
|
static bool uv_is_untracked_pat_range(u64 start, u64 end)
|
||||||
{
|
{
|
||||||
return is_ISA_range(start, end) || is_GRU_range(start, end);
|
return is_ISA_range(start, end) || is_GRU_range(start, end);
|
||||||
}
|
}
|
||||||
|
@@ -70,8 +70,8 @@ struct x86_cpuinit_ops x86_cpuinit __cpuinitdata = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
struct x86_platform_ops x86_platform = {
|
struct x86_platform_ops x86_platform = {
|
||||||
.is_untracked_pat_range = default_is_untracked_pat_range,
|
|
||||||
.calibrate_tsc = native_calibrate_tsc,
|
.calibrate_tsc = native_calibrate_tsc,
|
||||||
.get_wallclock = mach_get_cmos_time,
|
.get_wallclock = mach_get_cmos_time,
|
||||||
.set_wallclock = mach_set_rtc_mmss,
|
.set_wallclock = mach_set_rtc_mmss,
|
||||||
|
.is_untracked_pat_range = is_ISA_range,
|
||||||
};
|
};
|
||||||
|
@@ -349,11 +349,6 @@ static int free_ram_pages_type(u64 start, u64 end)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int default_is_untracked_pat_range(u64 start, u64 end)
|
|
||||||
{
|
|
||||||
return is_ISA_range(start, end);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* req_type typically has one of the:
|
* req_type typically has one of the:
|
||||||
* - _PAGE_CACHE_WB
|
* - _PAGE_CACHE_WB
|
||||||
|
Reference in New Issue
Block a user