From mboxrd@z Thu Jan 1 00:00:00 1970 From: Laurent Pinchart Subject: Re: [PATCH] drm/omap: dss: do not allow devm_kasprintf() to fail Date: Fri, 23 Nov 2018 16:39:59 +0200 Message-ID: <3550363.0Jm6vJdJjr@avalon> References: <1542974495-12387-1-git-send-email-hofrat@osadl.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647]) by gabe.freedesktop.org (Postfix) with ESMTPS id DC9F26E71E for ; Fri, 23 Nov 2018 14:39:40 +0000 (UTC) In-Reply-To: <1542974495-12387-1-git-send-email-hofrat@osadl.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Nicholas Mc Guire Cc: David Airlie , linux-kernel@vger.kernel.org, Sebastian Reichel , dri-devel@lists.freedesktop.org, "Andrew F. Davis" , Peter Ujfalusi , Tomi Valkeinen List-Id: dri-devel@lists.freedesktop.org SGVsbG8gTmljaG9sYXMsCgpPbiBGcmlkYXksIDIzIE5vdmVtYmVyIDIwMTggMTQ6MDE6MzUgRUVU IE5pY2hvbGFzIE1jIEd1aXJlIHdyb3RlOgo+IG9tYXBkc3NfZGlzcGxheV9pbml0KCkgaXMgY2Fs bGVkIGJ5IG11bHRpcGxlIGRyaXZlcnMgYW5kIGRvZXMgbm90IGV4cGVjdAo+IGEgcmV0dXJuIHZh bHVlIHNvIHdpdGhvdXQgY2hhbmdpbmcgYWxsIGNhbGwtc2l0ZXMgdGhlIGxvdy1wcm9iYWJpbGl0 eQo+IGZhaWx1cmUgb2YgZGV2bV9rYXNwcmludGYoKSBjYW4gbm90IGJlIHJlcG9ydGVkIHVwIHRo ZSBjYWxsIHN0YWNrLiBBcwo+IHRoZSBhbW91bnQgYWxsb2NhdGVkIGhlcmUgaXMgdmVyeSBzbWFs bCAoPD0gMTYgYnl0ZXMpIGFuZCBpdCBpcyBhbgo+IGluaXRpYWxpemF0aW9uIGZ1bmN0aW9uIHRo YXQgbW9zdCBsaWtlbHkgd2lsbCBiZSBjYWxsZWQgZHVyaW5nIHN5c3RlbQo+IGluaXRpYWxpemF0 aW9uIGl0IHNob3VsZCBiZSBPSyB0byB1c2UgX19HRlBfTk9GQUlMIGhlcmUgdG8gcHJldmVudAo+ IGRldm1fa2FzcHJpbnRmKCkgZnJvbSByZXR1cm5pbmcgTlVMTC4KPiAKPiBTaWduZWQtb2ZmLWJ5 OiBOaWNob2xhcyBNYyBHdWlyZSA8aG9mcmF0QG9zYWRsLm9yZz4KPiBGaXhlczogMzZjNjFhZTJi NzU1ICgiZHJtL29tYXA6IGRzczogUmVtb3ZlIGRpc3BsYXkgb3JkZXJpbmcgZnJvbQo+IGRzcy9k aXNwbGF5LmMiKQo+IC0tLQo+IAo+IFByb2JsZW0gbG9jYXRlZCB3aXRoIGV4cGVyaW1lbnRhbCBj b2NjaW5lbGxlIHNjcmlwdAo+IAo+IFdoaWxlIHRoZSB1c2Ugb2YgX19HRlBfTk9GQUlMIGlzIHRv IGJlIGxpbWl0ZWQgKHNtYWxsIGluZnJlcXVlbnQKPiBhbGxvY2F0aW9ucykgdGhpcyBjYXNlIGRv ZXMgc2VlbXMgc3VpdGFibGUgYXMgaXQgaXMgcmFyZSBhbmQgc21hbGwKPiAoaW5pdGlhbGl6YXRp b24pIC5BcyBhbGwgdGhlIGN1cnJlbnQgZHJpdmVycyB1c2luZwo+IG9tYXBkc3NfZGlzcGxheV9p bml0KCkgY3VycmVudGx5IHNlZW0gbm90IHRvIGluaXRpYWxpemUgZHNzZGV2LT5uYW1lCj4gcHJp b3IgdG8gY2FsbGluZyBvbWFwZHNzX2Rpc3BsYXlfaW5pdCgpIGFuZCB0aGUgdW5saWtlbHkgZmFp bHVyZQo+IGNhc2UgY2FuIG5vdCBiZSByZWFzb25hYmx5IHJlc3BvbmRlZCAocmV0dXJucyB2b2lk KSBub3QgYWxsb3dpbmcKPiBhIGFsbG9jYXRpb24gZmFpbHVyZSBoZXJlIHNob3VsZCBiZSBhY2Nl cHRhYmxlLgoKR2l2ZW4gdGhhdCBteSBwbGFuIGlzIHRvIGV2ZW50dWFsbHkgZHJvcCBvbWFwZHNz X2Rpc3BsYXlfaW5pdCgpLCB0aGlzIGxvb2tzIApmaW5lIHRvIG1lLgoKQWNrZWQtYnk6IExhdXJl bnQgUGluY2hhcnQgPGxhdXJlbnQucGluY2hhcnRAaWRlYXNvbmJvYXJkLmNvbT4KCj4gUGF0Y2gg d2FzIGNvbXBpbGUgdGVzdGVkIHdpdGg6IG9tYXAycGx1c19kZWZjb25maWcgKGltcGxpZXMgT01B UF9EU1NfQkFTRT1tKQo+IAo+IFBhdGNoIGlzIGFnYWluc3QgNC4yMC1yYzMgKGxvY2FsdmVyc2lv bi1uZXh0IGlzIG5leHQtMjAxODExMjMpCj4gCj4gIGRyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL2Rz cy9kaXNwbGF5LmMgfCAzICsrLQo+ICAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAx IGRlbGV0aW9uKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL2Rz cy9kaXNwbGF5LmMKPiBiL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL2Rzcy9kaXNwbGF5LmMgaW5k ZXggMzRiMmE0ZS4uN2RiZTg3NCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vb21hcGRy bS9kc3MvZGlzcGxheS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vZHNzL2Rpc3Bs YXkuYwo+IEBAIC00NSw3ICs0NSw4IEBAIHZvaWQgb21hcGRzc19kaXNwbGF5X2luaXQoc3RydWN0 IG9tYXBfZHNzX2RldmljZSAqZHNzZGV2KQo+ICAJb2ZfcHJvcGVydHlfcmVhZF9zdHJpbmcoZHNz ZGV2LT5kZXYtPm9mX25vZGUsICJsYWJlbCIsICZkc3NkZXYtPm5hbWUpOwo+IAo+ICAJaWYgKGRz c2Rldi0+bmFtZSA9PSBOVUxMKQo+IC0JCWRzc2Rldi0+bmFtZSA9IGRldm1fa2FzcHJpbnRmKGRz c2Rldi0+ZGV2LCBHRlBfS0VSTkVMLAo+ICsJCWRzc2Rldi0+bmFtZSA9IGRldm1fa2FzcHJpbnRm KGRzc2Rldi0+ZGV2LAo+ICsJCQkJCSAgICAgIEdGUF9LRVJORUwgfCBfX0dGUF9OT0ZBSUwsCj4g IAkJCQkJICAgICAgImRpc3BsYXkldSIsIGlkKTsKPiAgfQo+ICBFWFBPUlRfU1lNQk9MX0dQTChv bWFwZHNzX2Rpc3BsYXlfaW5pdCk7CgotLSAKUmVnYXJkcywKCkxhdXJlbnQgUGluY2hhcnQKCgoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVs IG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.1 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id E349CC43441 for ; Fri, 23 Nov 2018 14:39:42 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id A9563206B2 for ; Fri, 23 Nov 2018 14:39:42 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="ahBtdCAm" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org A9563206B2 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ideasonboard.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2440047AbeKXBYG (ORCPT ); Fri, 23 Nov 2018 20:24:06 -0500 Received: from perceval.ideasonboard.com ([213.167.242.64]:43106 "EHLO perceval.ideasonboard.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2436868AbeKXBYG (ORCPT ); Fri, 23 Nov 2018 20:24:06 -0500 Received: from avalon.localnet (dfj612ybrt5fhg77mgycy-3.rev.dnainternet.fi [IPv6:2001:14ba:21f5:5b00:2e86:4862:ef6a:2804]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id E2E1158E; Fri, 23 Nov 2018 15:39:38 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1542983979; bh=o9/7zYKUZaT0x8iW1PMeteaD9MEdQeIEArRj3YzsDug=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ahBtdCAmmLz9On2p/QT6tI3YTgmmYyPUDHxChmsv6gfh9toBe9fbDhaNmbYiDcTH9 /vztrINAll9IS1G0/+KsdpCmwPwPledIorIH7zunaCXkstCw6V9PcuqQ2QqLoMti/4 +uX4mNA7oyUXxRVs1ykETsbiLFsigT4yn0kFDY00= From: Laurent Pinchart To: Nicholas Mc Guire Cc: Tomi Valkeinen , David Airlie , Sebastian Reichel , Peter Ujfalusi , "Andrew F. Davis" , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH] drm/omap: dss: do not allow devm_kasprintf() to fail Date: Fri, 23 Nov 2018 16:39:59 +0200 Message-ID: <3550363.0Jm6vJdJjr@avalon> Organization: Ideas on Board Oy In-Reply-To: <1542974495-12387-1-git-send-email-hofrat@osadl.org> References: <1542974495-12387-1-git-send-email-hofrat@osadl.org> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hello Nicholas, On Friday, 23 November 2018 14:01:35 EET Nicholas Mc Guire wrote: > omapdss_display_init() is called by multiple drivers and does not expect > a return value so without changing all call-sites the low-probability > failure of devm_kasprintf() can not be reported up the call stack. As > the amount allocated here is very small (<= 16 bytes) and it is an > initialization function that most likely will be called during system > initialization it should be OK to use __GFP_NOFAIL here to prevent > devm_kasprintf() from returning NULL. > > Signed-off-by: Nicholas Mc Guire > Fixes: 36c61ae2b755 ("drm/omap: dss: Remove display ordering from > dss/display.c") > --- > > Problem located with experimental coccinelle script > > While the use of __GFP_NOFAIL is to be limited (small infrequent > allocations) this case does seems suitable as it is rare and small > (initialization) .As all the current drivers using > omapdss_display_init() currently seem not to initialize dssdev->name > prior to calling omapdss_display_init() and the unlikely failure > case can not be reasonably responded (returns void) not allowing > a allocation failure here should be acceptable. Given that my plan is to eventually drop omapdss_display_init(), this looks fine to me. Acked-by: Laurent Pinchart > Patch was compile tested with: omap2plus_defconfig (implies OMAP_DSS_BASE=m) > > Patch is against 4.20-rc3 (localversion-next is next-20181123) > > drivers/gpu/drm/omapdrm/dss/display.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/omapdrm/dss/display.c > b/drivers/gpu/drm/omapdrm/dss/display.c index 34b2a4e..7dbe874 100644 > --- a/drivers/gpu/drm/omapdrm/dss/display.c > +++ b/drivers/gpu/drm/omapdrm/dss/display.c > @@ -45,7 +45,8 @@ void omapdss_display_init(struct omap_dss_device *dssdev) > of_property_read_string(dssdev->dev->of_node, "label", &dssdev->name); > > if (dssdev->name == NULL) > - dssdev->name = devm_kasprintf(dssdev->dev, GFP_KERNEL, > + dssdev->name = devm_kasprintf(dssdev->dev, > + GFP_KERNEL | __GFP_NOFAIL, > "display%u", id); > } > EXPORT_SYMBOL_GPL(omapdss_display_init); -- Regards, Laurent Pinchart