[MTD][NOR] Add physical address to point() method
Adding the ability to get a physical address from point() in addition to virtual address. This physical address is required for XIP of userspace code from flash. Signed-off-by: Jared Hulbert <jaredeh@gmail.com> Reviewed-by: Jörn Engel <joern@logfs.org> Acked-by: Nicolas Pitre <nico@cam.org> Acked-by: Greg Ungerer <gerg@uclinux.org> Signed-off-by: David Woodhouse <dwmw2@infradead.org>
This commit is contained in:
committed by
David Woodhouse
parent
27c72b040c
commit
a98889f3d8
@ -63,10 +63,11 @@ static int check_node_data(struct jffs2_sb_info *c, struct jffs2_tmp_dnode_info
|
||||
/* TODO: instead, incapsulate point() stuff to jffs2_flash_read(),
|
||||
* adding and jffs2_flash_read_end() interface. */
|
||||
if (c->mtd->point) {
|
||||
err = c->mtd->point(c->mtd, ofs, len, &retlen, &buffer);
|
||||
err = c->mtd->point(c->mtd, ofs, len, &retlen,
|
||||
(void **)&buffer, NULL);
|
||||
if (!err && retlen < len) {
|
||||
JFFS2_WARNING("MTD point returned len too short: %zu instead of %u.\n", retlen, tn->csize);
|
||||
c->mtd->unpoint(c->mtd, buffer, ofs, retlen);
|
||||
c->mtd->unpoint(c->mtd, ofs, retlen);
|
||||
} else if (err)
|
||||
JFFS2_WARNING("MTD point failed: error code %d.\n", err);
|
||||
else
|
||||
@ -100,7 +101,7 @@ static int check_node_data(struct jffs2_sb_info *c, struct jffs2_tmp_dnode_info
|
||||
kfree(buffer);
|
||||
#ifndef __ECOS
|
||||
else
|
||||
c->mtd->unpoint(c->mtd, buffer, ofs, len);
|
||||
c->mtd->unpoint(c->mtd, ofs, len);
|
||||
#endif
|
||||
|
||||
if (crc != tn->data_crc) {
|
||||
@ -136,7 +137,7 @@ free_out:
|
||||
kfree(buffer);
|
||||
#ifndef __ECOS
|
||||
else
|
||||
c->mtd->unpoint(c->mtd, buffer, ofs, len);
|
||||
c->mtd->unpoint(c->mtd, ofs, len);
|
||||
#endif
|
||||
return err;
|
||||
}
|
||||
|
Reference in New Issue
Block a user