Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6
* 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6: [IA64] xen: fix xen_get_eflags. [IA64] ia64/pv_ops/pv_cpu_ops: fix _IA64_REG_IP case. [IA64] remove duplicate include iommu.h [IA64] use mprintk instead of printk, in ia64_mca_modify_original_stack [IA64] Rationalize kernel mode alignment checking
This commit is contained in:
commit
906430a99e
|
@ -226,7 +226,7 @@ extern long ia64_cmpxchg_called_with_bad_pointer (void);
|
||||||
/************************************************/
|
/************************************************/
|
||||||
#define ia64_ssm IA64_INTRINSIC_MACRO(ssm)
|
#define ia64_ssm IA64_INTRINSIC_MACRO(ssm)
|
||||||
#define ia64_rsm IA64_INTRINSIC_MACRO(rsm)
|
#define ia64_rsm IA64_INTRINSIC_MACRO(rsm)
|
||||||
#define ia64_getreg IA64_INTRINSIC_API(getreg)
|
#define ia64_getreg IA64_INTRINSIC_MACRO(getreg)
|
||||||
#define ia64_setreg IA64_INTRINSIC_API(setreg)
|
#define ia64_setreg IA64_INTRINSIC_API(setreg)
|
||||||
#define ia64_set_rr IA64_INTRINSIC_API(set_rr)
|
#define ia64_set_rr IA64_INTRINSIC_API(set_rr)
|
||||||
#define ia64_get_rr IA64_INTRINSIC_API(get_rr)
|
#define ia64_get_rr IA64_INTRINSIC_API(get_rr)
|
||||||
|
|
|
@ -78,6 +78,19 @@ extern unsigned long ia64_native_getreg_func(int regnum);
|
||||||
ia64_native_rsm(mask); \
|
ia64_native_rsm(mask); \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
|
/* returned ip value should be the one in the caller,
|
||||||
|
* not in __paravirt_getreg() */
|
||||||
|
#define paravirt_getreg(reg) \
|
||||||
|
({ \
|
||||||
|
unsigned long res; \
|
||||||
|
BUILD_BUG_ON(!__builtin_constant_p(reg)); \
|
||||||
|
if ((reg) == _IA64_REG_IP) \
|
||||||
|
res = ia64_native_getreg(_IA64_REG_IP); \
|
||||||
|
else \
|
||||||
|
res = pv_cpu_ops.getreg(reg); \
|
||||||
|
res; \
|
||||||
|
})
|
||||||
|
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
* replacement of hand written assembly codes.
|
* replacement of hand written assembly codes.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -499,6 +499,7 @@ GLOBAL_ENTRY(prefetch_stack)
|
||||||
END(prefetch_stack)
|
END(prefetch_stack)
|
||||||
|
|
||||||
GLOBAL_ENTRY(kernel_execve)
|
GLOBAL_ENTRY(kernel_execve)
|
||||||
|
rum psr.ac
|
||||||
mov r15=__NR_execve // put syscall number in place
|
mov r15=__NR_execve // put syscall number in place
|
||||||
break __BREAK_SYSCALL
|
break __BREAK_SYSCALL
|
||||||
br.ret.sptk.many rp
|
br.ret.sptk.many rp
|
||||||
|
|
|
@ -260,7 +260,7 @@ start_ap:
|
||||||
* Switch into virtual mode:
|
* Switch into virtual mode:
|
||||||
*/
|
*/
|
||||||
movl r16=(IA64_PSR_IT|IA64_PSR_IC|IA64_PSR_DT|IA64_PSR_RT|IA64_PSR_DFH|IA64_PSR_BN \
|
movl r16=(IA64_PSR_IT|IA64_PSR_IC|IA64_PSR_DT|IA64_PSR_RT|IA64_PSR_DFH|IA64_PSR_BN \
|
||||||
|IA64_PSR_DI)
|
|IA64_PSR_DI|IA64_PSR_AC)
|
||||||
;;
|
;;
|
||||||
mov cr.ipsr=r16
|
mov cr.ipsr=r16
|
||||||
movl r17=1f
|
movl r17=1f
|
||||||
|
|
|
@ -1139,7 +1139,7 @@ ia64_mca_modify_original_stack(struct pt_regs *regs,
|
||||||
return previous_current;
|
return previous_current;
|
||||||
|
|
||||||
no_mod:
|
no_mod:
|
||||||
printk(KERN_INFO "cpu %d, %s %s, original stack not modified\n",
|
mprintk(KERN_INFO "cpu %d, %s %s, original stack not modified\n",
|
||||||
smp_processor_id(), type, msg);
|
smp_processor_id(), type, msg);
|
||||||
return previous_current;
|
return previous_current;
|
||||||
}
|
}
|
||||||
|
|
|
@ -130,7 +130,7 @@ ia64_native_getreg_func(int regnum)
|
||||||
unsigned long res = -1;
|
unsigned long res = -1;
|
||||||
switch (regnum) {
|
switch (regnum) {
|
||||||
CASE_GET_REG(GP);
|
CASE_GET_REG(GP);
|
||||||
CASE_GET_REG(IP);
|
/*CASE_GET_REG(IP);*/ /* returned ip value shouldn't be constant */
|
||||||
CASE_GET_REG(PSR);
|
CASE_GET_REG(PSR);
|
||||||
CASE_GET_REG(TP);
|
CASE_GET_REG(TP);
|
||||||
CASE_GET_REG(SP);
|
CASE_GET_REG(SP);
|
||||||
|
|
|
@ -19,7 +19,6 @@
|
||||||
#include <linux/kernel.h>
|
#include <linux/kernel.h>
|
||||||
|
|
||||||
#include <asm/page.h>
|
#include <asm/page.h>
|
||||||
#include <asm/iommu.h>
|
|
||||||
|
|
||||||
dma_addr_t bad_dma_address __read_mostly;
|
dma_addr_t bad_dma_address __read_mostly;
|
||||||
EXPORT_SYMBOL(bad_dma_address);
|
EXPORT_SYMBOL(bad_dma_address);
|
||||||
|
|
|
@ -58,7 +58,7 @@ __HCALL2(xen_set_rr, HYPERPRIVOP_SET_RR)
|
||||||
__HCALL2(xen_set_kr, HYPERPRIVOP_SET_KR)
|
__HCALL2(xen_set_kr, HYPERPRIVOP_SET_KR)
|
||||||
|
|
||||||
#ifdef CONFIG_IA32_SUPPORT
|
#ifdef CONFIG_IA32_SUPPORT
|
||||||
__HCALL1(xen_get_eflag, HYPERPRIVOP_GET_EFLAG)
|
__HCALL0(xen_get_eflag, HYPERPRIVOP_GET_EFLAG)
|
||||||
__HCALL1(xen_set_eflag, HYPERPRIVOP_SET_EFLAG) // refer SDM vol1 3.1.8
|
__HCALL1(xen_set_eflag, HYPERPRIVOP_SET_EFLAG) // refer SDM vol1 3.1.8
|
||||||
#endif /* CONFIG_IA32_SUPPORT */
|
#endif /* CONFIG_IA32_SUPPORT */
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue