[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] [IA64] MCA support - fix timer issue, log size issue, and limit logs to dom0
# HG changeset patch # User awilliam@xxxxxxxxxxx # Node ID cef0cc0a3236f425e377fe97ee8846adfb6cbd4e # Parent 22e58b2b0b451f3fec0611de61361b0dc12606b0 [IA64] MCA support - fix timer issue, log size issue, and limit logs to dom0 Signed-off-by: Yutaka Ezaki <yutaka.ezaki@xxxxxxxxxxxxxx> Signed-off-by: Masaki Kanno <kanno.masaki@xxxxxxxxxxxxxx> Signed-off-by: Kazuhiro Suzuki <kaz@xxxxxxxxxxxxxx> --- linux-2.6-xen-sparse/include/asm-ia64/sal.h | 8 ++++---- xen/arch/ia64/linux-xen/mca.c | 10 ++++++++++ xen/arch/ia64/xen/fw_emul.c | 7 +++++-- 3 files changed, 19 insertions(+), 6 deletions(-) diff -r 22e58b2b0b45 -r cef0cc0a3236 linux-2.6-xen-sparse/include/asm-ia64/sal.h --- a/linux-2.6-xen-sparse/include/asm-ia64/sal.h Sun Oct 29 09:27:26 2006 -0700 +++ b/linux-2.6-xen-sparse/include/asm-ia64/sal.h Wed Nov 15 11:34:31 2006 -0700 @@ -699,16 +699,16 @@ ia64_sal_get_state_info (u64 sal_info_ty struct ia64_sal_retval isrv; #ifdef CONFIG_XEN if (is_running_on_xen()) { - struct xencomm_mini xc_area[2]; - int nbr_area = 2; struct xencomm_handle *desc; - if (xencomm_create_mini(xc_area, &nbr_area, sal_info, - ia64_sal_get_state_info_size(sal_info_type), &desc)) + if (xencomm_create(sal_info, + ia64_sal_get_state_info_size(sal_info_type), + &desc, GFP_KERNEL)) return 0; SAL_CALL_REENTRANT(isrv, SAL_GET_STATE_INFO, sal_info_type, 0, desc, 0, 0, 0, 0); + xencomm_free(desc); } else #endif SAL_CALL_REENTRANT(isrv, SAL_GET_STATE_INFO, sal_info_type, 0, diff -r 22e58b2b0b45 -r cef0cc0a3236 xen/arch/ia64/linux-xen/mca.c --- a/xen/arch/ia64/linux-xen/mca.c Sun Oct 29 09:27:26 2006 -0700 +++ b/xen/arch/ia64/linux-xen/mca.c Wed Nov 15 11:34:31 2006 -0700 @@ -117,6 +117,12 @@ extern void setup_vector (unsigned int v #endif static ia64_mc_info_t ia64_mc_info; + +#ifdef XEN +#define jiffies NOW() +#undef HZ +#define HZ 1000000000UL +#endif #define MAX_CPE_POLL_INTERVAL (15*60*HZ) /* 15 minutes */ #define MIN_CPE_POLL_INTERVAL (2*60*HZ) /* 2 minutes */ @@ -1388,7 +1394,11 @@ ia64_mca_cpe_int_caller(int cpe_irq, voi ia64_mca_cpe_int_caller(int cpe_irq, void *arg, struct pt_regs *ptregs) { static int start_count = -1; +#ifdef XEN + static unsigned long poll_time = MIN_CPE_POLL_INTERVAL; +#else static int poll_time = MIN_CPE_POLL_INTERVAL; +#endif unsigned int cpuid; cpuid = smp_processor_id(); diff -r 22e58b2b0b45 -r cef0cc0a3236 xen/arch/ia64/xen/fw_emul.c --- a/xen/arch/ia64/xen/fw_emul.c Sun Oct 29 09:27:26 2006 -0700 +++ b/xen/arch/ia64/xen/fw_emul.c Wed Nov 15 11:34:31 2006 -0700 @@ -205,7 +205,7 @@ sal_emulator (long index, unsigned long } break; case SAL_GET_STATE_INFO: - { + if (current->domain == dom0) { sal_queue_entry_t *e; unsigned long flags; struct smp_call_args_t arg; @@ -274,13 +274,16 @@ sal_emulator (long index, unsigned long spin_unlock_irqrestore(&sal_queue_lock, flags); xfree(e); } + } else { + status = IA64_SAL_NO_INFORMATION_AVAILABLE; + r9 = 0; } break; case SAL_GET_STATE_INFO_SIZE: r9 = ia64_sal_get_state_info_size(in1); break; case SAL_CLEAR_STATE_INFO: - { + if (current->domain == dom0) { sal_queue_entry_t *e; unsigned long flags; struct smp_call_args_t arg; _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |