mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 10:11:27 +01:00
xen: more XEN_GUEST_HANDLE_PARAM substitutions
More substitutions in this patch, not as obvious as the ones in the previous patch. Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com> Signed-off-by: Ian Campbell <ian.campbell@citrix.com> Acked-by: Keir Fraser <keir@xen.org> Committed-by: Ian Campbell <ian.campbell@citrix.com>
This commit is contained in:
1 parent
e7a527e100
commit
abf06ea91d
8 files changed
+29
-10
No files matched your search
+9
-3
@@ -2913,7 +2913,9 @@ long do_mmuext_op(
|
||||
{
|
||||
cpumask_t pmask;
|
||||
|
||||
if ( unlikely(vcpumask_to_pcpumask(d, op.arg2.vcpumask, &pmask)) )
|
||||
if ( unlikely(vcpumask_to_pcpumask(d,
|
||||
guest_handle_to_param(op.arg2.vcpumask, const_void),
|
||||
&pmask)) )
|
||||
{
|
||||
okay = 0;
|
||||
break;
|
||||
@@ -4195,6 +4197,7 @@ static int handle_iomem_range(unsigned long s, unsigned long e, void *p)
|
||||
if ( s > ctxt->s )
|
||||
{
|
||||
e820entry_t ent;
|
||||
XEN_GUEST_HANDLE_PARAM(e820entry_t) buffer_param;
|
||||
XEN_GUEST_HANDLE(e820entry_t) buffer;
|
||||
|
||||
if ( ctxt->n + 1 >= ctxt->map.nr_entries )
|
||||
@@ -4202,7 +4205,8 @@ static int handle_iomem_range(unsigned long s, unsigned long e, void *p)
|
||||
ent.addr = (uint64_t)ctxt->s << PAGE_SHIFT;
|
||||
ent.size = (uint64_t)(s - ctxt->s) << PAGE_SHIFT;
|
||||
ent.type = E820_RESERVED;
|
||||
buffer = guest_handle_cast(ctxt->map.buffer, e820entry_t);
|
||||
buffer_param = guest_handle_cast(ctxt->map.buffer, e820entry_t);
|
||||
buffer = guest_handle_from_param(buffer_param, e820entry_t);
|
||||
if ( __copy_to_guest_offset(buffer, ctxt->n, &ent, 1) )
|
||||
return -EFAULT;
|
||||
ctxt->n++;
|
||||
@@ -4499,6 +4503,7 @@ long arch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg)
|
||||
{
|
||||
struct memory_map_context ctxt;
|
||||
XEN_GUEST_HANDLE(e820entry_t) buffer;
|
||||
XEN_GUEST_HANDLE_PARAM(e820entry_t) buffer_param;
|
||||
unsigned int i;
|
||||
|
||||
if ( !IS_PRIV(current->domain) )
|
||||
@@ -4513,7 +4518,8 @@ long arch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg)
|
||||
if ( ctxt.map.nr_entries < e820.nr_map + 1 )
|
||||
return -EINVAL;
|
||||
|
||||
buffer = guest_handle_cast(ctxt.map.buffer, e820entry_t);
|
||||
buffer_param = guest_handle_cast(ctxt.map.buffer, e820entry_t);
|
||||
buffer = guest_handle_from_param(buffer_param, e820entry_t);
|
||||
if ( !guest_handle_okay(buffer, ctxt.map.nr_entries) )
|
||||
return -EFAULT;
|
||||
|
||||
|
||||
@@ -74,8 +74,11 @@ dump_guest_backtrace(struct vcpu *vcpu, const struct frame_head *head,
|
||||
}
|
||||
else
|
||||
{
|
||||
XEN_GUEST_HANDLE(const_frame_head_t) guest_head =
|
||||
XEN_GUEST_HANDLE(const_frame_head_t) guest_head;
|
||||
XEN_GUEST_HANDLE_PARAM(const_frame_head_t) guest_head_param =
|
||||
const_guest_handle_from_ptr(head, frame_head_t);
|
||||
guest_head = guest_handle_from_param(guest_head_param,
|
||||
const_frame_head_t);
|
||||
|
||||
/* Also check accessibility of one struct frame_head beyond */
|
||||
if (!guest_handle_okay(guest_head, 2))
|
||||
|
||||
@@ -61,7 +61,7 @@ long cpu_down_helper(void *data);
|
||||
long core_parking_helper(void *data);
|
||||
uint32_t get_cur_idle_nums(void);
|
||||
|
||||
ret_t do_platform_op(XEN_GUEST_HANDLE(xen_platform_op_t) u_xenpf_op)
|
||||
ret_t do_platform_op(XEN_GUEST_HANDLE_PARAM(xen_platform_op_t) u_xenpf_op)
|
||||
{
|
||||
ret_t ret = 0;
|
||||
struct xen_platform_op curop, *op = &curop;
|
||||
@@ -186,7 +186,9 @@ ret_t do_platform_op(XEN_GUEST_HANDLE(xen_platform_op_t) u_xenpf_op)
|
||||
}
|
||||
}
|
||||
|
||||
ret = microcode_update(data, op->u.microcode.length);
|
||||
ret = microcode_update(
|
||||
guest_handle_to_param(data, const_void),
|
||||
op->u.microcode.length);
|
||||
spin_unlock(&vcpu_alloc_lock);
|
||||
}
|
||||
break;
|
||||
@@ -454,7 +456,9 @@ ret_t do_platform_op(XEN_GUEST_HANDLE(xen_platform_op_t) u_xenpf_op)
|
||||
XEN_GUEST_HANDLE(uint32) pdc;
|
||||
|
||||
guest_from_compat_handle(pdc, op->u.set_pminfo.u.pdc);
|
||||
ret = acpi_set_pdc_bits(op->u.set_pminfo.id, pdc);
|
||||
ret = acpi_set_pdc_bits(
|
||||
op->u.set_pminfo.id,
|
||||
guest_handle_to_param(pdc, uint32));
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
@@ -57,10 +57,12 @@ static int copy_from_compat_state(xen_processor_cx_t *xen_state,
|
||||
{
|
||||
#define XLAT_processor_cx_HNDL_dp(_d_, _s_) do { \
|
||||
XEN_GUEST_HANDLE(compat_processor_csd_t) dps; \
|
||||
XEN_GUEST_HANDLE_PARAM(xen_processor_csd_t) dps_param; \
|
||||
if ( unlikely(!compat_handle_okay((_s_)->dp, (_s_)->dpcnt)) ) \
|
||||
return -EFAULT; \
|
||||
guest_from_compat_handle(dps, (_s_)->dp); \
|
||||
(_d_)->dp = guest_handle_cast(dps, xen_processor_csd_t); \
|
||||
dps_param = guest_handle_cast(dps, xen_processor_csd_t); \
|
||||
(_d_)->dp = guest_handle_from_param(dps_param, xen_processor_csd_t); \
|
||||
} while (0)
|
||||
XLAT_processor_cx(xen_state, state);
|
||||
#undef XLAT_processor_cx_HNDL_dp
|
||||
|
||||
@@ -45,10 +45,12 @@ compat_set_px_pminfo(uint32_t cpu, struct compat_processor_performance *perf)
|
||||
|
||||
#define XLAT_processor_performance_HNDL_states(_d_, _s_) do { \
|
||||
XEN_GUEST_HANDLE(compat_processor_px_t) states; \
|
||||
XEN_GUEST_HANDLE_PARAM(xen_processor_px_t) states_t; \
|
||||
if ( unlikely(!compat_handle_okay((_s_)->states, (_s_)->state_count)) ) \
|
||||
return -EFAULT; \
|
||||
guest_from_compat_handle(states, (_s_)->states); \
|
||||
(_d_)->states = guest_handle_cast(states, xen_processor_px_t); \
|
||||
states_t = guest_handle_cast(states, xen_processor_px_t); \
|
||||
(_d_)->states = guest_handle_from_param(states_t, xen_processor_px_t); \
|
||||
} while (0)
|
||||
|
||||
XLAT_processor_performance(xen_perf, perf);
|
||||
|
||||
@@ -38,6 +38,7 @@ CHECK_pf_pcpu_version;
|
||||
|
||||
#define COMPAT
|
||||
#define _XEN_GUEST_HANDLE(t) XEN_GUEST_HANDLE(t)
|
||||
#define _XEN_GUEST_HANDLE_PARAM(t) XEN_GUEST_HANDLE_PARAM(t)
|
||||
typedef int ret_t;
|
||||
|
||||
#include "../platform_hypercall.c"
|
||||
|
||||
@@ -25,6 +25,7 @@ DEFINE_XEN_GUEST_HANDLE(multicall_entry_compat_t);
|
||||
#define call compat_call
|
||||
#define do_multicall(l, n) compat_multicall(_##l, n)
|
||||
#define _XEN_GUEST_HANDLE(t) XEN_GUEST_HANDLE(t)
|
||||
#define _XEN_GUEST_HANDLE_PARAM(t) XEN_GUEST_HANDLE(t)
|
||||
|
||||
static void __trace_multicall_call(multicall_entry_t *call)
|
||||
{
|
||||
|
||||
@@ -35,7 +35,7 @@ static void trace_multicall_call(multicall_entry_t *call)
|
||||
|
||||
ret_t
|
||||
do_multicall(
|
||||
XEN_GUEST_HANDLE(multicall_entry_t) call_list, unsigned int nr_calls)
|
||||
XEN_GUEST_HANDLE_PARAM(multicall_entry_t) call_list, unsigned int nr_calls)
|
||||
{
|
||||
struct mc_state *mcs = ¤t->mc_state;
|
||||
unsigned int i;
|
||||
|
||||