aboutsummaryrefslogtreecommitdiffstats
path: root/linux-2.6-xen-sparse
diff options
context:
space:
mode:
authorkaf24@localhost.localdomain <kaf24@localhost.localdomain>2006-11-11 01:40:16 +0000
committerkaf24@localhost.localdomain <kaf24@localhost.localdomain>2006-11-11 01:40:16 +0000
commit2fb11436696664b01b06f54224ca2843820424e1 (patch)
tree180f858ade053b27858787fd4f88ca5255639f90 /linux-2.6-xen-sparse
parent6ab4f311ed263ae99c13d22da11bf5ea14f9b137 (diff)
downloadxen-2fb11436696664b01b06f54224ca2843820424e1.tar.gz
xen-2fb11436696664b01b06f54224ca2843820424e1.tar.bz2
xen-2fb11436696664b01b06f54224ca2843820424e1.zip
[PRIVCMD] Fix build warning when sizeof(long) > sizeof(int).
Original patch from Jimi Xenidis <jimix@watson.ibm.com> Signed-off-by: Keir Fraser <keir@xensource.com>
Diffstat (limited to 'linux-2.6-xen-sparse')
-rw-r--r--linux-2.6-xen-sparse/drivers/xen/privcmd/privcmd.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/linux-2.6-xen-sparse/drivers/xen/privcmd/privcmd.c b/linux-2.6-xen-sparse/drivers/xen/privcmd/privcmd.c
index 860e5f9ec9..d159e4ac74 100644
--- a/linux-2.6-xen-sparse/drivers/xen/privcmd/privcmd.c
+++ b/linux-2.6-xen-sparse/drivers/xen/privcmd/privcmd.c
@@ -165,7 +165,7 @@ static int privcmd_ioctl(struct inode *inode, struct file *file,
struct mm_struct *mm = current->mm;
struct vm_area_struct *vma;
xen_pfn_t __user *p;
- unsigned long addr, mfn;
+ unsigned long addr, mfn, nr_pages;
int i;
if (!is_initial_xendomain())
@@ -174,7 +174,8 @@ static int privcmd_ioctl(struct inode *inode, struct file *file,
if (copy_from_user(&m, udata, sizeof(m)))
return -EFAULT;
- if ((m.num <= 0) || (m.num > (LONG_MAX >> PAGE_SHIFT)))
+ nr_pages = m.num;
+ if ((m.num <= 0) || (nr_pages > (LONG_MAX >> PAGE_SHIFT)))
return -EINVAL;
down_read(&mm->mmap_sem);
@@ -182,8 +183,7 @@ static int privcmd_ioctl(struct inode *inode, struct file *file,
vma = find_vma(mm, m.addr);
if (!vma ||
(m.addr != vma->vm_start) ||
- ((m.addr + ((unsigned long)m.num<<PAGE_SHIFT)) !=
- vma->vm_end) ||
+ ((m.addr + (nr_pages << PAGE_SHIFT)) != vma->vm_end) ||
!privcmd_enforce_singleshot_mapping(vma)) {
up_read(&mm->mmap_sem);
return -EINVAL;
@@ -191,7 +191,7 @@ static int privcmd_ioctl(struct inode *inode, struct file *file,
p = m.arr;
addr = m.addr;
- for (i = 0; i < m.num; i++, addr += PAGE_SIZE, p++) {
+ for (i = 0; i < nr_pages; i++, addr += PAGE_SIZE, p++) {
if (get_user(mfn, p)) {
up_read(&mm->mmap_sem);
return -EFAULT;