Hi, On Sun, Mar 01, 2015 at 11:27:55PM +0100, Thomas Niederprüm wrote: > It makes sense to use vmalloc to allocate the video buffer since it has to be > page aligned memory for using it with mmap. Also deffered io seems buggy in > combination with kmalloc'ed memory (crash on unloading the module). > > Signed-off-by: Thomas Niederprüm > --- > drivers/video/fbdev/ssd1307fb.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/video/fbdev/ssd1307fb.c b/drivers/video/fbdev/ssd1307fb.c > index 61e0ce8..25dd08d 100644 > --- a/drivers/video/fbdev/ssd1307fb.c > +++ b/drivers/video/fbdev/ssd1307fb.c > @@ -11,6 +11,7 @@ > #include > #include > #include > +#include > #include > #include > #include > @@ -489,7 +490,7 @@ static int ssd1307fb_probe(struct i2c_client *client, > > vmem_size = par->width * par->height / 8; > > - vmem = devm_kzalloc(&client->dev, vmem_size, GFP_KERNEL); > + vmem = vzalloc(vmem_size); > if (!vmem) { > dev_err(&client->dev, "Couldn't allocate graphical memory.\n"); > ret = -ENOMEM; > @@ -559,6 +560,7 @@ panel_init_error: > par->ops->remove(par); > reset_oled_error: > fb_deferred_io_cleanup(info); > + vfree(vmem); > fb_alloc_error: > framebuffer_release(info); > return ret; Don't you need the vfree in the remove too? Maxime -- Maxime Ripard, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com