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

[Xen-changelog] [linux-2.6.18-xen] xen/privcmd: Declare repeatedly used variables just once. Fix types.



# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1263826243 0
# Node ID 0bec29c94ce9ed50d5d77f6e694576efd30e98eb
# Parent  3358caa6b3a3c68845a4e4aa2c8b44e7641cb243
xen/privcmd: Declare repeatedly used variables just once. Fix types.

Signed-off-by: Jan Beulich <jbeulich@xxxxxxxxxx>
---
 drivers/xen/privcmd/privcmd.c |   85 ++++++++++++++++++------------------------
 1 files changed, 38 insertions(+), 47 deletions(-)

diff -r 3358caa6b3a3 -r 0bec29c94ce9 drivers/xen/privcmd/privcmd.c
--- a/drivers/xen/privcmd/privcmd.c     Mon Jan 18 10:46:43 2010 +0000
+++ b/drivers/xen/privcmd/privcmd.c     Mon Jan 18 14:50:43 2010 +0000
@@ -55,8 +55,14 @@ static long privcmd_ioctl(struct file *f
 static long privcmd_ioctl(struct file *file,
                          unsigned int cmd, unsigned long data)
 {
-       int ret = -ENOSYS;
+       long ret;
        void __user *udata = (void __user *) data;
+       unsigned long i, addr, nr, nr_pages;
+       int paged_out;
+       struct mm_struct *mm = current->mm;
+       struct vm_area_struct *vma;
+       LIST_HEAD(pagelist);
+       struct list_head *l, *l2;
 
        switch (cmd) {
        case IOCTL_PRIVCMD_HYPERCALL: {
@@ -65,6 +71,7 @@ static long privcmd_ioctl(struct file *f
                if (copy_from_user(&hypercall, udata, sizeof(hypercall)))
                        return -EFAULT;
 
+               ret = -ENOSYS;
 #if defined(__i386__)
                if (hypercall.op >= (PAGE_SIZE >> 5))
                        break;
@@ -108,16 +115,11 @@ static long privcmd_ioctl(struct file *f
        break;
 
        case IOCTL_PRIVCMD_MMAP: {
-#define MMAP_NR_PER_PAGE (int)((PAGE_SIZE-sizeof(struct 
list_head))/sizeof(privcmd_mmap_entry_t))
+#define MMAP_NR_PER_PAGE \
+       (unsigned long)((PAGE_SIZE - sizeof(*l)) / sizeof(*msg))
                privcmd_mmap_t mmapcmd;
                privcmd_mmap_entry_t *msg;
                privcmd_mmap_entry_t __user *p;
-               struct mm_struct *mm = current->mm;
-               struct vm_area_struct *vma;
-               unsigned long va;
-               int i, rc;
-               LIST_HEAD(pagelist);
-               struct list_head *l,*l2;
 
                if (!is_initial_xendomain())
                        return -EPERM;
@@ -130,9 +132,9 @@ static long privcmd_ioctl(struct file *f
 
                p = mmapcmd.entry;
                for (i = 0; i < mmapcmd.num;) {
-                       int nr = min(mmapcmd.num - i, MMAP_NR_PER_PAGE);
-
-                       rc = -ENOMEM;
+                       nr = min(mmapcmd.num - i, MMAP_NR_PER_PAGE);
+
+                       ret = -ENOMEM;
                        l = (struct list_head *) __get_free_page(GFP_KERNEL);
                        if (l == NULL)
                                goto mmap_out;
@@ -141,7 +143,7 @@ static long privcmd_ioctl(struct file *f
                        list_add_tail(l, &pagelist);
                        msg = (privcmd_mmap_entry_t*)(l + 1);
 
-                       rc = -EFAULT;
+                       ret = -EFAULT;
                        if (copy_from_user(msg, p, nr*sizeof(*msg)))
                                goto mmap_out;
                        i += nr;
@@ -154,47 +156,47 @@ static long privcmd_ioctl(struct file *f
                down_write(&mm->mmap_sem);
 
                vma = find_vma(mm, msg->va);
-               rc = -EINVAL;
+               ret = -EINVAL;
                if (!vma || (msg->va != vma->vm_start))
                        goto mmap_out;
 
-               va = vma->vm_start;
+               addr = vma->vm_start;
 
                i = 0;
                list_for_each(l, &pagelist) {
-                       int nr = i + min(mmapcmd.num - i, MMAP_NR_PER_PAGE);
+                       nr = i + min(mmapcmd.num - i, MMAP_NR_PER_PAGE);
 
                        msg = (privcmd_mmap_entry_t*)(l + 1);
                        while (i<nr) {
 
                                /* Do not allow range to wrap the address 
space. */
                                if ((msg->npages > (LONG_MAX >> PAGE_SHIFT)) ||
-                                   ((unsigned long)(msg->npages << PAGE_SHIFT) 
>= -va))
+                                   (((unsigned long)msg->npages << PAGE_SHIFT) 
>= -addr))
                                        goto mmap_out;
 
                                /* Range chunks must be contiguous in va space. 
*/
-                               if ((msg->va != va) ||
+                               if ((msg->va != addr) ||
                                    ((msg->va+(msg->npages<<PAGE_SHIFT)) > 
vma->vm_end))
                                        goto mmap_out;
 
-                               va += msg->npages << PAGE_SHIFT;
+                               addr += msg->npages << PAGE_SHIFT;
                                msg++;
                                i++;
                        }
                }
 
                if (!enforce_singleshot_mapping(vma, vma->vm_start,
-                                               (va - vma->vm_start) >> 
PAGE_SHIFT))
+                                               (addr - vma->vm_start) >> 
PAGE_SHIFT))
                        goto mmap_out;
 
-               va = vma->vm_start;
+               addr = vma->vm_start;
                i = 0;
                list_for_each(l, &pagelist) {
-                       int nr = i + min(mmapcmd.num - i, MMAP_NR_PER_PAGE);
+                       nr = i + min(mmapcmd.num - i, MMAP_NR_PER_PAGE);
 
                        msg = (privcmd_mmap_entry_t*)(l + 1);
                        while (i < nr) {
-                               if ((rc = direct_remap_pfn_range(
+                               if ((ret = direct_remap_pfn_range(
                                             vma,
                                             msg->va & PAGE_MASK,
                                             msg->mfn,
@@ -203,34 +205,28 @@ static long privcmd_ioctl(struct file *f
                                             mmapcmd.dom)) < 0)
                                        goto mmap_out;
 
-                               va += msg->npages << PAGE_SHIFT;
+                               addr += msg->npages << PAGE_SHIFT;
                                msg++;
                                i++;
                        }
                }
 
-               rc = 0;
+               ret = 0;
 
        mmap_out:
                up_write(&mm->mmap_sem);
                list_for_each_safe(l,l2,&pagelist)
                        free_page((unsigned long)l);
-               ret = rc;
        }
 #undef MMAP_NR_PER_PAGE
        break;
 
        case IOCTL_PRIVCMD_MMAPBATCH: {
-#define MMAPBATCH_NR_PER_PAGE (unsigned long)((PAGE_SIZE-sizeof(struct 
list_head))/sizeof(unsigned long))
+#define MMAPBATCH_NR_PER_PAGE \
+       (unsigned long)((PAGE_SIZE - sizeof(*l)) / sizeof(*mfn))
                privcmd_mmapbatch_t m;
-               struct mm_struct *mm = current->mm;
-               struct vm_area_struct *vma;
                xen_pfn_t __user *p;
-               unsigned long addr, *mfn, nr_pages;
-               int i;
-               LIST_HEAD(pagelist);
-               struct list_head *l, *l2;
-               int paged_out = 0;
+               xen_pfn_t *mfn;
 
                if (!is_initial_xendomain())
                        return -EPERM;
@@ -246,7 +242,7 @@ static long privcmd_ioctl(struct file *f
 
                p = m.arr;
                for (i=0; i<nr_pages; ) {
-                       int nr = min(nr_pages - i, MMAPBATCH_NR_PER_PAGE);
+                       nr = min(nr_pages - i, MMAPBATCH_NR_PER_PAGE);
 
                        ret = -ENOMEM;
                        l = (struct list_head *)__get_free_page(GFP_KERNEL);
@@ -278,13 +274,14 @@ static long privcmd_ioctl(struct file *f
 
                i = 0;
                ret = 0;
+               paged_out = 0;
                list_for_each(l, &pagelist) {
-                       int nr = i + min(nr_pages - i, MMAPBATCH_NR_PER_PAGE);
-                       int rc;
-
+                       nr = i + min(nr_pages - i, MMAPBATCH_NR_PER_PAGE);
                        mfn = (unsigned long *)(l + 1);
 
                        while (i<nr) {
+                               int rc;
+
                                rc = direct_remap_pfn_range(vma, addr & 
PAGE_MASK,
                                                            *mfn, PAGE_SIZE,
                                                            vma->vm_page_prot, 
m.dom);
@@ -311,7 +308,7 @@ static long privcmd_ioctl(struct file *f
                        else
                                ret = 0;
                        list_for_each(l, &pagelist) {
-                               int nr = min(nr_pages - i, 
MMAPBATCH_NR_PER_PAGE);
+                               nr = min(nr_pages - i, MMAPBATCH_NR_PER_PAGE);
                                mfn = (unsigned long *)(l + 1);
                                if (copy_to_user(p, mfn, nr*sizeof(*mfn)))
                                        ret = -EFAULT;
@@ -326,15 +323,9 @@ static long privcmd_ioctl(struct file *f
 
        case IOCTL_PRIVCMD_MMAPBATCH_V2: {
                privcmd_mmapbatch_v2_t m;
-               struct mm_struct *mm = current->mm;
-               struct vm_area_struct *vma;
                const xen_pfn_t __user *p;
                xen_pfn_t *mfn;
-               unsigned long addr, nr_pages;
-               unsigned int i, nr;
-               LIST_HEAD(pagelist);
-               struct list_head *l, *l2;
-               int *err, paged_out;
+               int *err;
 
                if (!is_initial_xendomain())
                        return -EPERM;
@@ -382,14 +373,14 @@ static long privcmd_ioctl(struct file *f
                ret = 0;
                paged_out = 0;
                list_for_each(l, &pagelist) {
-                       int rc;
-
                        nr = i + min(nr_pages - i, MMAPBATCH_NR_PER_PAGE);
                        mfn = (void *)(l + 1);
                        err = (void *)(l + 1);
                        BUILD_BUG_ON(sizeof(*err) > sizeof(*mfn));
 
                        while (i < nr) {
+                               int rc;
+
                                rc = direct_remap_pfn_range(vma, addr & 
PAGE_MASK,
                                                            *mfn, PAGE_SIZE,
                                                            vma->vm_page_prot, 
m.dom);

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

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