Message ID | 20220726082114.891853-1-peter.suti@streamunlimited.com (mailing list archive) |
---|---|
State | Handled Elsewhere |
Headers | show |
Series | staging: fbtft: core: set smem_len before fb_deferred_io_init call | expand |
Thanks for the patch. On Tue, Jul 26, 2022 at 10:21:13AM +0200, Peter Suti wrote: > fb_deferred_io_init depends on smem_len being filled > to be able to initialize the virtual page lists since > commit 856082f021a2 ("fbdev: defio: fix the pagelist corruption") > This code has changed since then so the patch needs to be updated. The patch is still necessary but the bug will look different now because there was a WARN_ON() added. Currently the commit message does not say how this bug looks like to the user. Also the use a Fixes tag. Something like this: The fbtft_framebuffer_alloc() calls fb_deferred_io_init() before initializing info->fix.smem_len. It is set to zero by the framebuffer_alloc() function. It will trigger a WARN_ON() at the start of fb_deferred_io_init() and the function will not do anything. Fixes: 856082f021a2 ("fbdev: defio: fix the pagelist corruption") Signed-off-by: Make sure you CC the original author (Chuansheng Liu) so they can review the bug fix. Google used to give good guides for how to send a v2 patch but now the first page is just useless. :/ regards, dan carpenter > Signed-off-by: Peter Suti <peter.suti@streamunlimited.com> > --- > drivers/staging/fbtft/fbtft-core.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/staging/fbtft/fbtft-core.c b/drivers/staging/fbtft/fbtft-core.c > index 9c4d797e7ae4..4137c1a51e1b 100644 > --- a/drivers/staging/fbtft/fbtft-core.c > +++ b/drivers/staging/fbtft/fbtft-core.c > @@ -656,7 +656,6 @@ struct fb_info *fbtft_framebuffer_alloc(struct fbtft_display *display, > fbdefio->delay = HZ / fps; > fbdefio->sort_pagelist = true; > fbdefio->deferred_io = fbtft_deferred_io; > - fb_deferred_io_init(info); > > snprintf(info->fix.id, sizeof(info->fix.id), "%s", dev->driver->name); > info->fix.type = FB_TYPE_PACKED_PIXELS; > @@ -667,6 +666,7 @@ struct fb_info *fbtft_framebuffer_alloc(struct fbtft_display *display, > info->fix.line_length = width * bpp / 8; > info->fix.accel = FB_ACCEL_NONE; > info->fix.smem_len = vmem_size; > + fb_deferred_io_init(info); > > info->var.rotate = pdata->rotate; > info->var.xres = width; > -- > 2.25.1 >
diff --git a/drivers/staging/fbtft/fbtft-core.c b/drivers/staging/fbtft/fbtft-core.c index 9c4d797e7ae4..4137c1a51e1b 100644 --- a/drivers/staging/fbtft/fbtft-core.c +++ b/drivers/staging/fbtft/fbtft-core.c @@ -656,7 +656,6 @@ struct fb_info *fbtft_framebuffer_alloc(struct fbtft_display *display, fbdefio->delay = HZ / fps; fbdefio->sort_pagelist = true; fbdefio->deferred_io = fbtft_deferred_io; - fb_deferred_io_init(info); snprintf(info->fix.id, sizeof(info->fix.id), "%s", dev->driver->name); info->fix.type = FB_TYPE_PACKED_PIXELS; @@ -667,6 +666,7 @@ struct fb_info *fbtft_framebuffer_alloc(struct fbtft_display *display, info->fix.line_length = width * bpp / 8; info->fix.accel = FB_ACCEL_NONE; info->fix.smem_len = vmem_size; + fb_deferred_io_init(info); info->var.rotate = pdata->rotate; info->var.xres = width;
fb_deferred_io_init depends on smem_len being filled to be able to initialize the virtual page lists since commit 856082f021a2 ("fbdev: defio: fix the pagelist corruption") Signed-off-by: Peter Suti <peter.suti@streamunlimited.com> --- drivers/staging/fbtft/fbtft-core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)