[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH RFC] xen: arm: Log a warning message when a deprecated hypercall is used



>>> On 20.01.15 at 11:52, <ian.campbell@xxxxxxxxxx> wrote:
> RFC since I'm not sure how extreme our reaction ought to be here, e.g.
> I considered domain_crash() or even panic() when in a debug build. A
> XENLOG_DEBUG message is about the most benign of the options.

And I think it shouldn't be more than that in the first round. We
may want to consider logging a message on x86 too, but of
course only optionally depending on a command line option.

> --- a/xen/arch/arm/traps.c
> +++ b/xen/arch/arm/traps.c
> @@ -1148,6 +1148,22 @@ die:
>  }
>  #endif
>  
> +static register_t do_deprecated_hypercall(void)
> +{
> +    struct cpu_user_regs *regs = guest_cpu_user_regs();
> +    const register_t op =
> +#ifdef CONFIG_ARM_64
> +        !is_32bit_domain(current->domain) ?
> +            regs->x16
> +        :
> +#endif
> +            regs->r12;
> +
> +    gdprintk(XENLOG_DEBUG, "%pv: deprecated hypercall %ld\n",
> +             current, (unsigned long)op);

If this was x86 code, I'd complain about the cast...

> @@ -1167,15 +1183,29 @@ typedef struct {
>          .fn = (arm_hypercall_fn_t) &do_arm_ ## _name,                \
>          .nr_args = _nr_args,                                         \
>      }
> +/*
> + * Only use this for hypercalls which were deprecated (i.e. replaced
> + * by something else) before Xen on ARM was created, i.e. *not* for
> + * hypercalls which are simply not yet used on ARM.
> + */
> +#define HYPERCALL_DEPRECATED(_name, _nr_args)                   \
> +    [ __HYPERVISOR_##_name ] = {                                \
> +        .fn = (arm_hypercall_fn_t) &do_deprecated_hypercall,    \

... and the redundant &.

Jan


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.