Message ID | 1437835063-58407-2-git-send-email-eastyjr@gmail.com |
---|---|
State | Rejected |
Headers | show |
On 25 July 2015 at 16:37, Joseph East <eastyjr@gmail.com> wrote: > --- You didn't describe your change, you didn't signed off the patch. > drivers/mtd/bcm47xxpart.c | 12 ++++++++++++ > 1 file changed, 12 insertions(+) > > diff --git a/drivers/mtd/bcm47xxpart.c b/drivers/mtd/bcm47xxpart.c > index c0720c1..55a1462 100644 > --- a/drivers/mtd/bcm47xxpart.c > +++ b/drivers/mtd/bcm47xxpart.c > @@ -95,6 +95,7 @@ static int bcm47xxpart_parse(struct mtd_info *master, > int trx_part = -1; > int last_trx_part = -1; > int possible_nvram_sizes[] = { 0x8000, 0xF000, 0x10000, }; > + bool found_nvram = false; > > /* > * Some really old flashes (like AT45DB*) had smaller erasesize-s, but > @@ -288,12 +289,23 @@ static int bcm47xxpart_parse(struct mtd_info *master, > if (buf[0] == NVRAM_HEADER) { > bcm47xxpart_add_part(&parts[curr_part++], "nvram", > master->size - blocksize, 0); > + found_nvram = true; > break; > } > } > > kfree(buf); > > + if (!found_nvram) { > + pr_warning("Cannot find a nvram partition, reserving last two blocks\n"); > + bcm47xxpart_add_part(&parts[curr_part++], "nvram_guess", > + master->size - blocksize * 2, MTD_WRITEABLE); > + for (i = 0; i < curr_part; i++) { > + if (parts[i].size + parts[i].offset == master->size) > + parts[i].offset -= blocksize * 2; > + } > + } > + I'm not asking "what for", because it should be in a commit message. Waiting for it. One problem I can see: it won't work well on devices with multiple flashes. Is it expected for NVRAM to be located only on a one flash memory.
On 25 July 2015 at 16:37, Joseph East <eastyjr@gmail.com> wrote: > --- > drivers/mtd/bcm47xxpart.c | 12 ++++++++++++ > 1 file changed, 12 insertions(+) Wait... this change seems identical to Hauke's patch. So are you resending somebodys patch pretending its your own? Nack.
diff --git a/drivers/mtd/bcm47xxpart.c b/drivers/mtd/bcm47xxpart.c index c0720c1..55a1462 100644 --- a/drivers/mtd/bcm47xxpart.c +++ b/drivers/mtd/bcm47xxpart.c @@ -95,6 +95,7 @@ static int bcm47xxpart_parse(struct mtd_info *master, int trx_part = -1; int last_trx_part = -1; int possible_nvram_sizes[] = { 0x8000, 0xF000, 0x10000, }; + bool found_nvram = false; /* * Some really old flashes (like AT45DB*) had smaller erasesize-s, but @@ -288,12 +289,23 @@ static int bcm47xxpart_parse(struct mtd_info *master, if (buf[0] == NVRAM_HEADER) { bcm47xxpart_add_part(&parts[curr_part++], "nvram", master->size - blocksize, 0); + found_nvram = true; break; } } kfree(buf); + if (!found_nvram) { + pr_warning("Cannot find a nvram partition, reserving last two blocks\n"); + bcm47xxpart_add_part(&parts[curr_part++], "nvram_guess", + master->size - blocksize * 2, MTD_WRITEABLE); + for (i = 0; i < curr_part; i++) { + if (parts[i].size + parts[i].offset == master->size) + parts[i].offset -= blocksize * 2; + } + } + /* * Assume that partitions end at the beginning of the one they are * followed by.