On 4 August 2015 at 08:58, Robin van der Gracht <robin@xxxxxxxxxxx> wrote: > When requesting a trim for several bytes, everything up to the next > erase-group is erased. This causes data corruption. > > Signed-off-by: Robin van der Gracht <robin@xxxxxxxxxxx> Thanks, applied for next! Kind regards Uffe > --- > drivers/mmc/core/core.c | 5 ++--- > 1 file changed, 2 insertions(+), 3 deletions(-) > > diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c > index 083cade..57edb2a 100644 > --- a/drivers/mmc/core/core.c > +++ b/drivers/mmc/core/core.c > @@ -2227,9 +2227,8 @@ int mmc_erase(struct mmc_card *card, unsigned int from, unsigned int nr, > * and call mmc_do_erase() twice if necessary. This special case is > * identified by the card->eg_boundary flag. > */ > - if ((arg & MMC_TRIM_ARGS) && (card->eg_boundary) && > - (from % card->erase_size)) { > - rem = card->erase_size - (from % card->erase_size); > + rem = card->erase_size - (from % card->erase_size); > + if ((arg & MMC_TRIM_ARGS) && (card->eg_boundary) && (nr > rem)) { > err = mmc_do_erase(card, from, from + rem - 1, arg); > from += rem; > if ((err) || (to <= from)) > -- > 2.1.4 > -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html