mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-28 10:41:38 -04:00
Merge git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6: [IA64] update memory attribute aliasing documentation & test cases [IA64] fail mmaps that span areas with incompatible attributes [IA64] allow WB /sys/.../legacy_mem mmaps [IA64] make ioremap avoid unsupported attributes [IA64] rename ioremap variables to match i386 [IA64] relax per-cpu TLB requirement to DTC [IA64] remove per-cpu ia64_phys_stacked_size_p8 [IA64] Fix example error injection program [IA64] Itanium MC Error Injection Tool: pal_mc_error_inject() interface [IA64] Itanium MC Error Injection Tool: Makefile changes [IA64] Itanium MC Error Injection Tool: Driver sysfs interface [IA64] Itanium MC Error Injection Tool: Doc and sample application [IA64] Itanium MC Error Injection Tool: Kernel configuration
This commit is contained in:
commit
a989705c4c
24 changed files with 1861 additions and 106 deletions
|
|
@ -103,6 +103,16 @@ name:
|
|||
# define FSYS_RETURN br.ret.sptk.many b6
|
||||
#endif
|
||||
|
||||
/*
|
||||
* If physical stack register size is different from DEF_NUM_STACK_REG,
|
||||
* dynamically patch the kernel for correct size.
|
||||
*/
|
||||
.section ".data.patch.phys_stack_reg", "a"
|
||||
.previous
|
||||
#define LOAD_PHYS_STACK_REG_SIZE(reg) \
|
||||
[1:] adds reg=IA64_NUM_PHYS_STACK_REG*8+8,r0; \
|
||||
.xdata4 ".data.patch.phys_stack_reg", 1b-.
|
||||
|
||||
/*
|
||||
* Up until early 2004, use of .align within a function caused bad unwind info.
|
||||
* TEXT_ALIGN(n) expands into ".align n" if a fixed GAS is available or into nothing
|
||||
|
|
|
|||
|
|
@ -421,11 +421,7 @@ __writeq (unsigned long val, volatile void __iomem *addr)
|
|||
|
||||
extern void __iomem * ioremap(unsigned long offset, unsigned long size);
|
||||
extern void __iomem * ioremap_nocache (unsigned long offset, unsigned long size);
|
||||
|
||||
static inline void
|
||||
iounmap (volatile void __iomem *addr)
|
||||
{
|
||||
}
|
||||
extern void iounmap (volatile void __iomem *addr);
|
||||
|
||||
/* Use normal IO mappings for DMI */
|
||||
#define dmi_ioremap ioremap
|
||||
|
|
|
|||
|
|
@ -29,8 +29,7 @@
|
|||
*/
|
||||
#define IA64_TR_KERNEL 0 /* itr0, dtr0: maps kernel image (code & data) */
|
||||
#define IA64_TR_PALCODE 1 /* itr1: maps PALcode as required by EFI */
|
||||
#define IA64_TR_PERCPU_DATA 1 /* dtr1: percpu data */
|
||||
#define IA64_TR_CURRENT_STACK 2 /* dtr2: maps kernel's memory- & register-stacks */
|
||||
#define IA64_TR_CURRENT_STACK 1 /* dtr1: maps kernel's memory- & register-stacks */
|
||||
|
||||
/* Processor status register bits: */
|
||||
#define IA64_PSR_BE_BIT 1
|
||||
|
|
|
|||
|
|
@ -89,6 +89,8 @@
|
|||
#define PAL_GET_PSTATE_TYPE_AVGNORESET 2
|
||||
#define PAL_GET_PSTATE_TYPE_INSTANT 3
|
||||
|
||||
#define PAL_MC_ERROR_INJECT 276 /* Injects processor error or returns injection capabilities */
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
|
||||
#include <linux/types.h>
|
||||
|
|
@ -1235,6 +1237,37 @@ ia64_pal_mc_error_info (u64 info_index, u64 type_index, u64 *size, u64 *error_in
|
|||
return iprv.status;
|
||||
}
|
||||
|
||||
/* Injects the requested processor error or returns info on
|
||||
* supported injection capabilities for current processor implementation
|
||||
*/
|
||||
static inline s64
|
||||
ia64_pal_mc_error_inject_phys (u64 err_type_info, u64 err_struct_info,
|
||||
u64 err_data_buffer, u64 *capabilities, u64 *resources)
|
||||
{
|
||||
struct ia64_pal_retval iprv;
|
||||
PAL_CALL_PHYS_STK(iprv, PAL_MC_ERROR_INJECT, err_type_info,
|
||||
err_struct_info, err_data_buffer);
|
||||
if (capabilities)
|
||||
*capabilities= iprv.v0;
|
||||
if (resources)
|
||||
*resources= iprv.v1;
|
||||
return iprv.status;
|
||||
}
|
||||
|
||||
static inline s64
|
||||
ia64_pal_mc_error_inject_virt (u64 err_type_info, u64 err_struct_info,
|
||||
u64 err_data_buffer, u64 *capabilities, u64 *resources)
|
||||
{
|
||||
struct ia64_pal_retval iprv;
|
||||
PAL_CALL_STK(iprv, PAL_MC_ERROR_INJECT, err_type_info,
|
||||
err_struct_info, err_data_buffer);
|
||||
if (capabilities)
|
||||
*capabilities= iprv.v0;
|
||||
if (resources)
|
||||
*resources= iprv.v1;
|
||||
return iprv.status;
|
||||
}
|
||||
|
||||
/* Inform PALE_CHECK whether a machine check is expected so that PALE_CHECK willnot
|
||||
* attempt to correct any expected machine checks.
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@ extern void ia64_patch_imm60 (u64 insn_addr, u64 val); /* patch "brl" w/ip-rel
|
|||
|
||||
extern void ia64_patch_mckinley_e9 (unsigned long start, unsigned long end);
|
||||
extern void ia64_patch_vtop (unsigned long start, unsigned long end);
|
||||
extern void ia64_patch_phys_stack_reg(unsigned long val);
|
||||
extern void ia64_patch_gate (void);
|
||||
|
||||
#endif /* _ASM_IA64_PATCH_H */
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@
|
|||
#include <asm/ptrace.h>
|
||||
#include <asm/ustack.h>
|
||||
|
||||
#define IA64_NUM_PHYS_STACK_REG 96
|
||||
#define IA64_NUM_DBG_REGS 8
|
||||
|
||||
#define DEFAULT_MAP_BASE __IA64_UL_CONST(0x2000000000000000)
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@
|
|||
extern char __per_cpu_start[], __per_cpu_end[], __phys_per_cpu_start[];
|
||||
extern char __start___vtop_patchlist[], __end___vtop_patchlist[];
|
||||
extern char __start___mckinley_e9_bundles[], __end___mckinley_e9_bundles[];
|
||||
extern char __start___phys_stack_reg_patchlist[], __end___phys_stack_reg_patchlist[];
|
||||
extern char __start_gate_section[];
|
||||
extern char __start_gate_mckinley_e9_patchlist[], __end_gate_mckinley_e9_patchlist[];
|
||||
extern char __start_gate_vtop_patchlist[], __end_gate_vtop_patchlist[];
|
||||
|
|
|
|||
Loading…
Reference in a new issue