Skip to content

Commit

Permalink
mtd: do not use mtd->get_unmapped_area directly
Browse files Browse the repository at this point in the history
Remove direct usage of mtd->get_unmapped_area. Instead, just call
'mtd_get_unmapped_area()' which will return -EOPNOTSUPP if the function
is not implemented and test for this error code.

Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
  • Loading branch information
Artem Bityutskiy authored and David Woodhouse committed Jan 9, 2012
1 parent 1093447 commit cd62127
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 20 deletions.
26 changes: 11 additions & 15 deletions drivers/mtd/mtdchar.c
Original file line number Diff line number Diff line change
Expand Up @@ -1124,25 +1124,21 @@ static unsigned long mtdchar_get_unmapped_area(struct file *file,
{
struct mtd_file_info *mfi = file->private_data;
struct mtd_info *mtd = mfi->mtd;
unsigned long offset;
int ret;

if (mtd->get_unmapped_area) {
unsigned long offset;

if (addr != 0)
return (unsigned long) -EINVAL;

if (len > mtd->size || pgoff >= (mtd->size >> PAGE_SHIFT))
return (unsigned long) -EINVAL;
if (addr != 0)
return (unsigned long) -EINVAL;

offset = pgoff << PAGE_SHIFT;
if (offset > mtd->size - len)
return (unsigned long) -EINVAL;
if (len > mtd->size || pgoff >= (mtd->size >> PAGE_SHIFT))
return (unsigned long) -EINVAL;

return mtd_get_unmapped_area(mtd, len, offset, flags);
}
offset = pgoff << PAGE_SHIFT;
if (offset > mtd->size - len)
return (unsigned long) -EINVAL;

/* can't map directly */
return (unsigned long) -ENOSYS;
ret = mtd_get_unmapped_area(mtd, len, offset, flags);
return ret == -EOPNOTSUPP ? -ENOSYS : ret;
}
#endif

Expand Down
6 changes: 1 addition & 5 deletions drivers/mtd/mtdconcat.c
Original file line number Diff line number Diff line change
Expand Up @@ -726,11 +726,7 @@ static unsigned long concat_get_unmapped_area(struct mtd_info *mtd,
if (offset + len > subdev->size)
return (unsigned long) -EINVAL;

if (subdev->get_unmapped_area)
return mtd_get_unmapped_area(subdev, len, offset,
flags);

break;
return mtd_get_unmapped_area(subdev, len, offset, flags);
}

return (unsigned long) -ENOSYS;
Expand Down
2 changes: 2 additions & 0 deletions include/linux/mtd/mtd.h
Original file line number Diff line number Diff line change
Expand Up @@ -280,6 +280,8 @@ static inline unsigned long mtd_get_unmapped_area(struct mtd_info *mtd,
unsigned long offset,
unsigned long flags)
{
if (!mtd->get_unmapped_area)
return -EOPNOTSUPP;
return mtd->get_unmapped_area(mtd, len, offset, flags);
}

Expand Down

0 comments on commit cd62127

Please sign in to comment.