On Wed, Mar 12, 2014 at 10:24:21AM +0900, Nobuhiro Iwamatsu wrote: > Register for the device are mapped in uio_mmap_physical(). > In this case, it might not be the same as the size of VMA always.
Why wouldn't this be the case? > This uses PAGE_ALIGN to memory size, fix the check of the memory size > to be mapped. > > Signed-off-by: Nobuhiro Iwamatsu <nobuhiro.iwamatsu...@renesas.com> > --- > drivers/uio/uio.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/uio/uio.c b/drivers/uio/uio.c > index a673e5b..e371f5a 100644 > --- a/drivers/uio/uio.c > +++ b/drivers/uio/uio.c > @@ -655,7 +655,7 @@ static int uio_mmap_physical(struct vm_area_struct *vma) > > if (mem->addr & ~PAGE_MASK) > return -ENODEV; > - if (vma->vm_end - vma->vm_start > mem->size) > + if (vma->vm_end - vma->vm_start > PAGE_ALIGN(mem->size)) You just increased the size for the check, that seems wrong. Why wouldn't mem->size be correct here? What hardware is failing for this with a valid size and end/start addresses? thanks, greg k-h -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/