From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753636AbdBHQqT (ORCPT ); Wed, 8 Feb 2017 11:46:19 -0500 Received: from protonic.xs4all.nl ([83.163.252.89]:2163 "EHLO protonic.xs4all.nl" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751618AbdBHQqP (ORCPT ); Wed, 8 Feb 2017 11:46:15 -0500 Date: Wed, 8 Feb 2017 17:12:31 +0100 From: Robin van der Gracht To: Dmitry Torokhov Cc: Miguel Ojeda Sandonis , linux-kernel@vger.kernel.org, Greg Kroah-Hartman , Linus Walleij Subject: Re: [PATCH 1/3] auxdisplay: ht16k33: do not try to free fbdev Message-ID: <20170208171231.0e47a315@erd979> In-Reply-To: <20170131205438.7531-1-dmitry.torokhov@gmail.com> References: <20170131205438.7531-1-dmitry.torokhov@gmail.com> Organization: Protonic Holland X-Mailer: Claws Mail 3.13.2 (GTK+ 2.24.30; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, 31 Jan 2017 12:54:36 -0800 Dmitry Torokhov wrote: > 'fbdev' is allocated as part of larger ht16k33_priv structure; trying to > free it will cause troubles. > > Signed-off-by: Dmitry Torokhov > --- > > Note that the patches have not been tried on a real hardware. > > I am pretty confident in #1 and #3, but #2 is larger and it would be great > if someone with hardware tried running it before it gets applied. > > Thanks! > > drivers/auxdisplay/ht16k33.c | 4 +--- > 1 file changed, 1 insertion(+), 3 deletions(-) > > diff --git a/drivers/auxdisplay/ht16k33.c b/drivers/auxdisplay/ht16k33.c > index eeb323f56c07..f2f304b3f061 100644 > --- a/drivers/auxdisplay/ht16k33.c > +++ b/drivers/auxdisplay/ht16k33.c > @@ -378,7 +378,7 @@ static int ht16k33_probe(struct i2c_client *client, > fbdev->buffer = (unsigned char *) get_zeroed_page(GFP_KERNEL); > if (!fbdev->buffer) { > err = -ENOMEM; > - goto err_free_fbdev; > + goto err_destroy_wq; > } > > fbdev->cache = devm_kmalloc(&client->dev, HT16K33_FB_SIZE, GFP_KERNEL); > @@ -510,8 +510,6 @@ static int ht16k33_probe(struct i2c_client *client, > framebuffer_release(fbdev->info); > err_fbdev_buffer: > free_page((unsigned long) fbdev->buffer); > -err_free_fbdev: > - kfree(fbdev); > err_destroy_wq: > destroy_workqueue(priv->workqueue); > Acked-by: Robin van der Gracht