aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/mtd/mtdchar.c2
-rw-r--r--drivers/mtd/mtdconcat.c4
-rw-r--r--drivers/mtd/mtdpart.c3
-rw-r--r--fs/romfs/mmap-nommu.c2
-rw-r--r--include/linux/mtd/mtd.h18
5 files changed, 18 insertions, 11 deletions
diff --git a/drivers/mtd/mtdchar.c b/drivers/mtd/mtdchar.c
index 41d64ff4c25..c51f04a00af 100644
--- a/drivers/mtd/mtdchar.c
+++ b/drivers/mtd/mtdchar.c
@@ -1135,7 +1135,7 @@ static unsigned long mtdchar_get_unmapped_area(struct file *file,
1135 if (offset > mtd->size - len) 1135 if (offset > mtd->size - len)
1136 return (unsigned long) -EINVAL; 1136 return (unsigned long) -EINVAL;
1137 1137
1138 return mtd->get_unmapped_area(mtd, len, offset, flags); 1138 return mtd_get_unmapped_area(mtd, len, offset, flags);
1139 } 1139 }
1140 1140
1141 /* can't map directly */ 1141 /* can't map directly */
diff --git a/drivers/mtd/mtdconcat.c b/drivers/mtd/mtdconcat.c
index 76123bd4931..b3895cf20bb 100644
--- a/drivers/mtd/mtdconcat.c
+++ b/drivers/mtd/mtdconcat.c
@@ -726,8 +726,8 @@ static unsigned long concat_get_unmapped_area(struct mtd_info *mtd,
726 return (unsigned long) -EINVAL; 726 return (unsigned long) -EINVAL;
727 727
728 if (subdev->get_unmapped_area) 728 if (subdev->get_unmapped_area)
729 return subdev->get_unmapped_area(subdev, len, offset, 729 return mtd_get_unmapped_area(subdev, len, offset,
730 flags); 730 flags);
731 731
732 break; 732 break;
733 } 733 }
diff --git a/drivers/mtd/mtdpart.c b/drivers/mtd/mtdpart.c
index b09624a5497..55a9cb544fc 100644
--- a/drivers/mtd/mtdpart.c
+++ b/drivers/mtd/mtdpart.c
@@ -108,8 +108,7 @@ static unsigned long part_get_unmapped_area(struct mtd_info *mtd,
108 struct mtd_part *part = PART(mtd); 108 struct mtd_part *part = PART(mtd);
109 109
110 offset += part->offset; 110 offset += part->offset;
111 return part->master->get_unmapped_area(part->master, len, offset, 111 return mtd_get_unmapped_area(part->master, len, offset, flags);
112 flags);
113} 112}
114 113
115static int part_read_oob(struct mtd_info *mtd, loff_t from, 114static int part_read_oob(struct mtd_info *mtd, loff_t from,
diff --git a/fs/romfs/mmap-nommu.c b/fs/romfs/mmap-nommu.c
index eed99428f10..d5168e8e7dc 100644
--- a/fs/romfs/mmap-nommu.c
+++ b/fs/romfs/mmap-nommu.c
@@ -53,7 +53,7 @@ static unsigned long romfs_get_unmapped_area(struct file *file,
53 if (offset > mtd->size - len) 53 if (offset > mtd->size - len)
54 return (unsigned long) -EINVAL; 54 return (unsigned long) -EINVAL;
55 55
56 return mtd->get_unmapped_area(mtd, len, offset, flags); 56 return mtd_get_unmapped_area(mtd, len, offset, flags);
57 } 57 }
58 58
59cant_map_directly: 59cant_map_directly:
diff --git a/include/linux/mtd/mtd.h b/include/linux/mtd/mtd.h
index a7d22b7fcb4..f38e8276b40 100644
--- a/include/linux/mtd/mtd.h
+++ b/include/linux/mtd/mtd.h
@@ -178,11 +178,6 @@ struct mtd_info {
178 int (*point) (struct mtd_info *mtd, loff_t from, size_t len, 178 int (*point) (struct mtd_info *mtd, loff_t from, size_t len,
179 size_t *retlen, void **virt, resource_size_t *phys); 179 size_t *retlen, void **virt, resource_size_t *phys);
180 void (*unpoint) (struct mtd_info *mtd, loff_t from, size_t len); 180 void (*unpoint) (struct mtd_info *mtd, loff_t from, size_t len);
181
182 /* Allow NOMMU mmap() to directly map the device (if not NULL)
183 * - return the address to which the offset maps
184 * - return -ENOSYS to indicate refusal to do the mapping
185 */
186 unsigned long (*get_unmapped_area) (struct mtd_info *mtd, 181 unsigned long (*get_unmapped_area) (struct mtd_info *mtd,
187 unsigned long len, 182 unsigned long len,
188 unsigned long offset, 183 unsigned long offset,
@@ -293,6 +288,19 @@ static inline void mtd_unpoint(struct mtd_info *mtd, loff_t from, size_t len)
293 return mtd->unpoint(mtd, from, len); 288 return mtd->unpoint(mtd, from, len);
294} 289}
295 290
291/*
292 * Allow NOMMU mmap() to directly map the device (if not NULL)
293 * - return the address to which the offset maps
294 * - return -ENOSYS to indicate refusal to do the mapping
295 */
296static inline unsigned long mtd_get_unmapped_area(struct mtd_info *mtd,
297 unsigned long len,
298 unsigned long offset,
299 unsigned long flags)
300{
301 return mtd->get_unmapped_area(mtd, len, offset, flags);
302}
303
296static inline struct mtd_info *dev_to_mtd(struct device *dev) 304static inline struct mtd_info *dev_to_mtd(struct device *dev)
297{ 305{
298 return dev ? dev_get_drvdata(dev) : NULL; 306 return dev ? dev_get_drvdata(dev) : NULL;