summaryrefslogtreecommitdiffstats
path: root/drivers/vme/vme.c
diff options
context:
space:
mode:
authorTony Lindgren2015-07-06 14:33:17 +0200
committerTony Lindgren2015-07-06 14:33:17 +0200
commitae745302c0a3e2b5b768690f631fc14db44467e7 (patch)
tree1db4d210a7419286b447dc09fa7400a561d55f42 /drivers/vme/vme.c
parentARM: OMAP2+: Remove unnessary return statement from the void function, omap2_... (diff)
parentARM: dts: am4372.dtsi: disable rfbi (diff)
downloadkernel-qcow2-linux-ae745302c0a3e2b5b768690f631fc14db44467e7.tar.gz
kernel-qcow2-linux-ae745302c0a3e2b5b768690f631fc14db44467e7.tar.xz
kernel-qcow2-linux-ae745302c0a3e2b5b768690f631fc14db44467e7.zip
Merge branch 'fixes-rc1' into omap-for-v4.2/fixes
Diffstat (limited to 'drivers/vme/vme.c')
-rw-r--r--drivers/vme/vme.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/drivers/vme/vme.c b/drivers/vme/vme.c
index 6bab2c4ed77c..56708915ebbe 100644
--- a/drivers/vme/vme.c
+++ b/drivers/vme/vme.c
@@ -177,8 +177,8 @@ size_t vme_get_size(struct vme_resource *resource)
}
EXPORT_SYMBOL(vme_get_size);
-static int vme_check_window(u32 aspace, unsigned long long vme_base,
- unsigned long long size)
+int vme_check_window(u32 aspace, unsigned long long vme_base,
+ unsigned long long size)
{
int retval = 0;
@@ -199,10 +199,8 @@ static int vme_check_window(u32 aspace, unsigned long long vme_base,
retval = -EFAULT;
break;
case VME_A64:
- /*
- * Any value held in an unsigned long long can be used as the
- * base
- */
+ if ((size != 0) && (vme_base > U64_MAX + 1 - size))
+ retval = -EFAULT;
break;
case VME_CRCSR:
if (((vme_base + size) > VME_CRCSR_MAX) ||
@@ -223,6 +221,7 @@ static int vme_check_window(u32 aspace, unsigned long long vme_base,
return retval;
}
+EXPORT_SYMBOL(vme_check_window);
/*
* Request a slave image with specific attributes, return some unique