Hi Kazuhiro.
ia64_sal_get_state_info() can be called in interrupt context
so that GFP_KERNEL shouldn't be used.
irq_safe argument of ia64_log_get() should be checked?
On Wed, Nov 08, 2006 at 07:24:16PM +0900, SUZUKI Kazuhiro wrote:
> --- a/linux-2.6-xen-sparse/include/asm-ia64/sal.h 2006-09-13
> 03:02:10.000000000 +0900
> +++ b/linux-2.6-xen-sparse/include/asm-ia64/sal.h 2006-11-08
> 16:02:49.000000000 +0900
> @@ -42,6 +42,9 @@
> #include <asm/pal.h>
> #include <asm/system.h>
> #include <asm/fpu.h>
> +#ifdef CONFIG_XEN
> +#include <asm/xen/xencomm.h>
> +#endif
>
> extern spinlock_t sal_lock;
>
> @@ -686,10 +689,28 @@
> /* Get the processor and platform information logged by SAL with respect to
> the machine
> * state at the time of the MCAs, INITs, CMCs, or CPEs.
> */
> +#ifdef CONFIG_XEN
> +static inline u64 ia64_sal_get_state_info_size (u64 sal_info_type);
> +#endif
> +
> static inline u64
> ia64_sal_get_state_info (u64 sal_info_type, u64 *sal_info)
> {
> struct ia64_sal_retval isrv;
> +#ifdef CONFIG_XEN
> + if (is_running_on_xen()) {
> + struct xencomm_handle *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,
> sal_info, 0, 0, 0, 0);
> if (isrv.status)
--
yamahata
_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ia64-devel
|