Josh Boyer wrote: > On 6/30/06, Angelos Manousarides wrote:: > >>The code in mtdpart.c does not propagate erase region information to the >>slave device. I have ckeched with the git repository online and it is >>still the same. Here is the code I am talking about, it is the only reference >>in regions in mtdpard.c: >> >> if (master->numeraseregions>1) { >> /* Deal with variable erase size stuff */ >> int i; >> struct mtd_erase_region_info *regions = master->eraseregions; >> >> /* Find the first erase regions which is part of this partition. */ >> for (i=0; i < master->numeraseregions && slave->offset >= regions[i].offset; i++) >> ; >> >> for (i--; i < master->numeraseregions && slave->offset + slave->mtd.size > regions[i].offset; i++) { >> if (slave->mtd.erasesize < regions[i].erasesize) { >> slave->mtd.erasesize = regions[i].erasesize; >> } >> } >> } else { >> /* Single erase size */ >> slave->mtd.erasesize = master->erasesize; >> } >> >>I have changed this to allocate slave->mtd.eraseregions and set >>slave->mtd.numeraseregions properly. >> >>If this is not needed, then definately I am missing something here. > > > It should really only make a difference if a partition actually spans > two different erase regions. And even then I'm not sure it really > matters much. But I suppose there is nothing bad about doing it > correctly. Here is the patch. Identation sucks, but it sucked in the original file as well. -- Angelos Manousaridis