@@ -1647,20 +1647,17 @@ static long
gnttab_setup_table(
XEN_GUEST_HANDLE_PARAM(gnttab_setup_table_t) uop, unsigned int count)
{
+ struct vcpu *curr = current;
struct gnttab_setup_table op;
struct domain *d = NULL;
struct grant_table *gt;
- int i;
- xen_pfn_t gmfn;
+ unsigned int i;
if ( count != 1 )
return -EINVAL;
- if ( unlikely(copy_from_guest(&op, uop, 1) != 0) )
- {
- gdprintk(XENLOG_INFO, "Fault while reading gnttab_setup_table_t.\n");
+ if ( unlikely(copy_from_guest(&op, uop, 1)) )
return -EFAULT;
- }
if ( unlikely(op.nr_frames > max_grant_frames) )
{
@@ -1677,12 +1674,11 @@ gnttab_setup_table(
d = rcu_lock_domain_by_any_id(op.dom);
if ( d == NULL )
{
- gdprintk(XENLOG_INFO, "Bad domid %d.\n", op.dom);
op.status = GNTST_bad_domain;
goto out;
}
- if ( xsm_grant_setup(XSM_TARGET, current->domain, d) )
+ if ( xsm_grant_setup(XSM_TARGET, curr->domain, d) )
{
op.status = GNTST_permission_denied;
goto out;
@@ -1709,9 +1705,11 @@ gnttab_setup_table(
op.status = GNTST_okay;
for ( i = 0; i < op.nr_frames; i++ )
{
- gmfn = gnttab_shared_gmfn(d, gt, i);
+ xen_pfn_t gmfn = gnttab_shared_gmfn(d, gt, i);
+
/* Grant tables cannot be shared */
BUG_ON(SHARED_M2P(gmfn));
+
if ( __copy_to_guest_offset(op.frame_list, i, &gmfn, 1) )
op.status = GNTST_bad_virt_addr;
}
Drop pointless debugging messages, and reduce variable scope. Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com> --- CC: George Dunlap <George.Dunlap@eu.citrix.com> CC: Jan Beulich <JBeulich@suse.com> CC: Stefano Stabellini <sstabellini@kernel.org> CC: Tim Deegan <tim@xen.org> CC: Wei Liu <wei.liu2@citrix.com> --- xen/common/grant_table.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-)