This patch fixes the mtd device size calculation when there is no gpio defined. The previous size calculation could return values lower than those defined on the 'reg' field of the Device Tree, rasing 'attempt to access beyond end of device' errors during device access. Signed-off-by: Victor Fusco <victor@xxxxxxxxxx> --- drivers/mtd/maps/physmap-core.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/drivers/mtd/maps/physmap-core.c b/drivers/mtd/maps/physmap-core.c index 8f7f966fa9a7..27cc6ac01ea8 100644 --- a/drivers/mtd/maps/physmap-core.c +++ b/drivers/mtd/maps/physmap-core.c @@ -520,17 +520,19 @@ static int physmap_flash_probe(struct platform_device *dev) if (!info->maps[i].phys) info->maps[i].phys = res->start; - info->win_order = get_bitmask_order(resource_size(res)) - 1; - info->maps[i].size = BIT(info->win_order + - (info->gpios ? - info->gpios->ndescs : 0)); - info->maps[i].map_priv_1 = (unsigned long)dev; if (info->gpios) { + info->win_order = get_bitmask_order(resource_size(res)) - 1; + info->maps[i].size = BIT(info->win_order + + info->gpios->ndescs); + err = physmap_addr_gpios_map_init(&info->maps[i]); if (err) goto err_out; + } else { + info->maps[i].size = resource_size(res); + } #ifdef CONFIG_MTD_COMPLEX_MAPPINGS base-commit: 5076190daded2197f62fe92cf69674488be44175 -- 2.17.1 ______________________________________________________ Linux MTD discussion mailing list http://lists.infradead.org/mailman/listinfo/linux-mtd/