On Sun, 21 Feb 2016 10:53:03 +0100 Richard Weinberger <[email protected]> wrote:
> ubi_start_leb_change() alloctes too few bytes. > ubi_more_leb_change_data() will write up to req->upd_bytes + > ubi->min_io_size bytes. > > Cc: [email protected] > Signed-off-by: Richard Weinberger <[email protected]> Reviewed-by: Boris Brezillon <[email protected]> > --- > drivers/mtd/ubi/upd.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/mtd/ubi/upd.c b/drivers/mtd/ubi/upd.c > index cfeaf0f..b7901ce 100644 > --- a/drivers/mtd/ubi/upd.c > +++ b/drivers/mtd/ubi/upd.c > @@ -193,7 +193,7 @@ int ubi_start_leb_change(struct ubi_device *ubi, struct > ubi_volume *vol, > vol->changing_leb = 1; > vol->ch_lnum = req->lnum; > > - vol->upd_buf = vmalloc(req->bytes); > + vol->upd_buf = vmalloc(ALIGN((int)req->bytes, ubi->min_io_size)); > if (!vol->upd_buf) > return -ENOMEM; > -- Boris Brezillon, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com

