On Mon, 22 Oct 2018 06:04:13 +0000 Yogesh Narayan Gaur <yogeshnarayan.gaur@xxxxxxx> wrote: > - /* Find the matching configuration map */ > - while (SMPT_MAP_ID(smpt[i]) != map_id) { > - if (smpt[i] & SMPT_DESC_END) > - goto out; > + if (map_id_is_valid) > + pr_info("%s:%i map_id=%d\n", __func__, __LINE__, map_id); > + else > + pr_info("%s:%i NO map_id\n", __func__, __LINE__); > + > + for (nmaps = 0; nmaps< smpt_len; nmaps++) { Why did you change this for loop? > + if(!(smpt[nmaps] & SMPT_DESC_TYPE_MAP)) > + continue; > + > + if(!map_id_is_valid) { > + if (nmaps) { With your change in the for () block, this test is no longer valid... Please keep the original patch and patch the if () condition as suggested. > + ret = NULL; > + break; > + } > + > + ret = smpt+nmaps; > + } else if (map_id == SMPT_MAP_ID(smpt[nmaps])) { > + ret = smpt+nmaps; > + break; > + } > + > /* increment the table index to the next map */ > - i += SMPT_MAP_REGION_COUNT(smpt[i]) + 1; > + nmaps += SMPT_MAP_REGION_COUNT(smpt[nmaps]) + 1; > } > > - ret = smpt + i; > /* fall through */ > out: > nor->addr_width = addr_width; ______________________________________________________ Linux MTD discussion mailing list http://lists.infradead.org/mailman/listinfo/linux-mtd/