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:
Stefano Stabellini committed 2012-10-17 16:43:53 +01:00
1 parent e7a527e100
commit abf06ea91d
8 files changed
+29 -10

No files matched your search

+9 -3
View File
@@ -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;
+4 -1
View File
@@ -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))
+7 -3
View File
@@ -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;
+3 -1
View File
@@ -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
+3 -1
View File
@@ -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);
+1
View File
@@ -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"
+1
View File
@@ -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)
{
+1 -1
View File
@@ -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 = &current->mc_state;
unsigned int i;
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.