From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mario Kleiner Subject: Re: [PATCH 18/28] drm: avoid uninitialized timestamp use in wait_vblank Date: Tue, 18 Oct 2016 01:47:24 +0200 Message-ID: <374ecb85-dfff-ecc4-99ee-dba5ccbc169f@gmail.com> References: <20161017220342.1627073-1-arnd@arndb.de> <20161017221355.1861551-6-arnd@arndb.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mail-lf0-x243.google.com (mail-lf0-x243.google.com [IPv6:2a00:1450:4010:c07::243]) by gabe.freedesktop.org (Postfix) with ESMTPS id 85A946E035 for ; Mon, 17 Oct 2016 23:47:28 +0000 (UTC) Received: by mail-lf0-x243.google.com with SMTP id x23so23569813lfi.1 for ; Mon, 17 Oct 2016 16:47:28 -0700 (PDT) In-Reply-To: <20161017221355.1861551-6-arnd@arndb.de> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Arnd Bergmann , David Airlie Cc: Gustavo Padovan , Daniel Vetter , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, Matthew Auld , Alex Deucher , Dave Airlie , Linus Torvalds List-Id: dri-devel@lists.freedesktop.org T24gMTAvMTgvMjAxNiAxMjoxMyBBTSwgQXJuZCBCZXJnbWFubiB3cm90ZToKPiBnY2Mgd2FybnMg YWJvdXQgdGhlIHRpbWVzdGFtcCBpbiBkcm1fd2FpdF92YmxhbmsgYmVpbmcgcG9zc2libHkKPiB1 c2VkIHdpdGhvdXQgYW4gaW5pdGlhbGl6YXRpb246Cj4KPiBkcml2ZXJzL2dwdS9kcm0vZHJtX2ly cS5jOiBJbiBmdW5jdGlvbiAnZHJtX2NydGNfc2VuZF92YmxhbmtfZXZlbnQnOgo+IGRyaXZlcnMv Z3B1L2RybS9kcm1faXJxLmM6OTkyOjI0OiBlcnJvcjogJ25vdy50dl91c2VjJyBtYXkgYmUgdXNl ZCB1bmluaXRpYWxpemVkIGluIHRoaXMgZnVuY3Rpb24gWy1XZXJyb3I9bWF5YmUtdW5pbml0aWFs aXplZF0KPiBkcml2ZXJzL2dwdS9kcm0vZHJtX2lycS5jOjEwNjk6MTc6IG5vdGU6ICdub3cudHZf dXNlYycgd2FzIGRlY2xhcmVkIGhlcmUKPiBkcml2ZXJzL2dwdS9kcm0vZHJtX2lycS5jOjk5MToy MzogZXJyb3I6ICdub3cudHZfc2VjJyBtYXkgYmUgdXNlZCB1bmluaXRpYWxpemVkIGluIHRoaXMg ZnVuY3Rpb24gWy1XZXJyb3I9bWF5YmUtdW5pbml0aWFsaXplZF0KPgo+IFRoaXMgY2FuIGhhcHBl biBpZiBkcm1fdmJsYW5rX2NvdW50X2FuZF90aW1lKCkgcmV0dXJucyAwIGluIGl0cwo+IGVycm9y IHBhdGguIFRvIHNhbml0aXplIHRoZSBlcnJvciBjYXNlLCBJJ20gY2hhbmdpbmcgdGhhdCBmdW5j dGlvbgo+IHRvIHJldHVybiBhIHplcm8gdGltZXN0YW1wIHdoZW4gaXQgZmFpbHMuCj4KPiBGaXhl czogZTZhZTg2ODdhODdiICgiZHJtOiBpZGlvdC1wcm9vZiB2YmxhbmsiKQo+IFJldmlld2VkLWJ5 OiBEYXZpZCBIZXJybWFubiA8ZGguaGVycm1hbm5AZ21haWwuY29tPgo+IENjOiBSb2IgQ2xhcmsg PHJvYmRjbGFya0BnbWFpbC5jb20+Cj4gQ2M6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJA ZmZ3bGwuY2g+Cj4gU2lnbmVkLW9mZi1ieTogQXJuZCBCZXJnbWFubiA8YXJuZEBhcm5kYi5kZT4K PiAtLS0KPiBGaXJzdCBzdWJtaXR0ZWQgaW4gSmFudWFyeSAyMDE2LCBzZWNvbmQgc3VibWlzc2lv biBpbiBGZWJydWFyeSwKPiB0aGUgcGF0Y2ggaXMgc3RpbGwgcmVxdWlyZWQuCj4KPiAgZHJpdmVy cy9ncHUvZHJtL2RybV9pcnEuYyB8IDQgKysrLQo+ICAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRp b25zKCspLCAxIGRlbGV0aW9uKC0pCj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2Ry bV9pcnEuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1faXJxLmMKPiBpbmRleCBiOTY5YTY0Li40OGE2 MTY3IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1faXJxLmMKPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vZHJtX2lycS5jCj4gQEAgLTk1Miw4ICs5NTIsMTAgQEAgc3RhdGljIHUzMiBk cm1fdmJsYW5rX2NvdW50X2FuZF90aW1lKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVk IGludCBwaXBlLAo+ICAJdTMyIHZibGFua19jb3VudDsKPiAgCXVuc2lnbmVkIGludCBzZXE7Cj4K PiAtCWlmIChXQVJOX09OKHBpcGUgPj0gZGV2LT5udW1fY3J0Y3MpKQo+ICsJaWYgKFdBUk5fT04o cGlwZSA+PSBkZXYtPm51bV9jcnRjcykpIHsKPiArCQkqdmJsYW5rdGltZSA9IChzdHJ1Y3QgdGlt ZXZhbCkgeyAwIH07Cj4gIAkJcmV0dXJuIDA7Cj4gKwl9Cj4KPiAgCWRvIHsKPiAgCQlzZXEgPSBy ZWFkX3NlcWJlZ2luKCZ2YmxhbmstPnNlcWxvY2spOwo+CgpMb29rcyBnb29kIHRvIG1lLgoKUmV2 aWV3ZWQtYnk6IE1hcmlvIEtsZWluZXIgPG1hcmlvLmtsZWluZXIuZGVAZ21haWwuY29tPgoKLW1h cmlvCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1k ZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934692AbcJQXrj (ORCPT ); Mon, 17 Oct 2016 19:47:39 -0400 Received: from mail-lf0-f65.google.com ([209.85.215.65]:35753 "EHLO mail-lf0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S934292AbcJQXr2 (ORCPT ); Mon, 17 Oct 2016 19:47:28 -0400 Subject: Re: [PATCH 18/28] drm: avoid uninitialized timestamp use in wait_vblank To: Arnd Bergmann , David Airlie References: <20161017220342.1627073-1-arnd@arndb.de> <20161017221355.1861551-6-arnd@arndb.de> Cc: Linus Torvalds , linux-kernel@vger.kernel.org, Rob Clark , Daniel Vetter , Dave Airlie , =?UTF-8?B?VmlsbGUgU3lyasOkbMOk?= , Alex Deucher , Gustavo Padovan , Matthew Auld , dri-devel@lists.freedesktop.org From: Mario Kleiner Message-ID: <374ecb85-dfff-ecc4-99ee-dba5ccbc169f@gmail.com> Date: Tue, 18 Oct 2016 01:47:24 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.3.0 MIME-Version: 1.0 In-Reply-To: <20161017221355.1861551-6-arnd@arndb.de> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 10/18/2016 12:13 AM, Arnd Bergmann wrote: > gcc warns about the timestamp in drm_wait_vblank being possibly > used without an initialization: > > drivers/gpu/drm/drm_irq.c: In function 'drm_crtc_send_vblank_event': > drivers/gpu/drm/drm_irq.c:992:24: error: 'now.tv_usec' may be used uninitialized in this function [-Werror=maybe-uninitialized] > drivers/gpu/drm/drm_irq.c:1069:17: note: 'now.tv_usec' was declared here > drivers/gpu/drm/drm_irq.c:991:23: error: 'now.tv_sec' may be used uninitialized in this function [-Werror=maybe-uninitialized] > > This can happen if drm_vblank_count_and_time() returns 0 in its > error path. To sanitize the error case, I'm changing that function > to return a zero timestamp when it fails. > > Fixes: e6ae8687a87b ("drm: idiot-proof vblank") > Reviewed-by: David Herrmann > Cc: Rob Clark > Cc: Daniel Vetter > Signed-off-by: Arnd Bergmann > --- > First submitted in January 2016, second submission in February, > the patch is still required. > > drivers/gpu/drm/drm_irq.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/drm_irq.c b/drivers/gpu/drm/drm_irq.c > index b969a64..48a6167 100644 > --- a/drivers/gpu/drm/drm_irq.c > +++ b/drivers/gpu/drm/drm_irq.c > @@ -952,8 +952,10 @@ static u32 drm_vblank_count_and_time(struct drm_device *dev, unsigned int pipe, > u32 vblank_count; > unsigned int seq; > > - if (WARN_ON(pipe >= dev->num_crtcs)) > + if (WARN_ON(pipe >= dev->num_crtcs)) { > + *vblanktime = (struct timeval) { 0 }; > return 0; > + } > > do { > seq = read_seqbegin(&vblank->seqlock); > Looks good to me. Reviewed-by: Mario Kleiner -mario