From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 18/28] drm: avoid uninitialized timestamp use in wait_vblank Date: Tue, 18 Oct 2016 09:46:02 +0200 Message-ID: <20161018074602.GY20761@phenom.ffwll.local> References: <20161017220342.1627073-1-arnd@arndb.de> <20161017221355.1861551-6-arnd@arndb.de> <374ecb85-dfff-ecc4-99ee-dba5ccbc169f@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-lf0-x242.google.com (mail-lf0-x242.google.com [IPv6:2a00:1450:4010:c07::242]) by gabe.freedesktop.org (Postfix) with ESMTPS id 74A616E3BE for ; Tue, 18 Oct 2016 07:46:07 +0000 (UTC) Received: by mail-lf0-x242.google.com with SMTP id l131so1276276lfl.0 for ; Tue, 18 Oct 2016 00:46:07 -0700 (PDT) Content-Disposition: inline In-Reply-To: <374ecb85-dfff-ecc4-99ee-dba5ccbc169f@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Mario Kleiner Cc: Arnd Bergmann , Daniel Vetter , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Gustavo Padovan , Matthew Auld , Alex Deucher , Dave Airlie , Linus Torvalds List-Id: dri-devel@lists.freedesktop.org T24gVHVlLCBPY3QgMTgsIDIwMTYgYXQgMDE6NDc6MjRBTSArMDIwMCwgTWFyaW8gS2xlaW5lciB3 cm90ZToKPiBPbiAxMC8xOC8yMDE2IDEyOjEzIEFNLCBBcm5kIEJlcmdtYW5uIHdyb3RlOgo+ID4g Z2NjIHdhcm5zIGFib3V0IHRoZSB0aW1lc3RhbXAgaW4gZHJtX3dhaXRfdmJsYW5rIGJlaW5nIHBv c3NpYmx5Cj4gPiB1c2VkIHdpdGhvdXQgYW4gaW5pdGlhbGl6YXRpb246Cj4gPiAKPiA+IGRyaXZl cnMvZ3B1L2RybS9kcm1faXJxLmM6IEluIGZ1bmN0aW9uICdkcm1fY3J0Y19zZW5kX3ZibGFua19l dmVudCc6Cj4gPiBkcml2ZXJzL2dwdS9kcm0vZHJtX2lycS5jOjk5MjoyNDogZXJyb3I6ICdub3cu dHZfdXNlYycgbWF5IGJlIHVzZWQgdW5pbml0aWFsaXplZCBpbiB0aGlzIGZ1bmN0aW9uIFstV2Vy cm9yPW1heWJlLXVuaW5pdGlhbGl6ZWRdCj4gPiBkcml2ZXJzL2dwdS9kcm0vZHJtX2lycS5jOjEw Njk6MTc6IG5vdGU6ICdub3cudHZfdXNlYycgd2FzIGRlY2xhcmVkIGhlcmUKPiA+IGRyaXZlcnMv Z3B1L2RybS9kcm1faXJxLmM6OTkxOjIzOiBlcnJvcjogJ25vdy50dl9zZWMnIG1heSBiZSB1c2Vk IHVuaW5pdGlhbGl6ZWQgaW4gdGhpcyBmdW5jdGlvbiBbLVdlcnJvcj1tYXliZS11bmluaXRpYWxp emVkXQo+ID4gCj4gPiBUaGlzIGNhbiBoYXBwZW4gaWYgZHJtX3ZibGFua19jb3VudF9hbmRfdGlt ZSgpIHJldHVybnMgMCBpbiBpdHMKPiA+IGVycm9yIHBhdGguIFRvIHNhbml0aXplIHRoZSBlcnJv ciBjYXNlLCBJJ20gY2hhbmdpbmcgdGhhdCBmdW5jdGlvbgo+ID4gdG8gcmV0dXJuIGEgemVybyB0 aW1lc3RhbXAgd2hlbiBpdCBmYWlscy4KPiA+IAo+ID4gRml4ZXM6IGU2YWU4Njg3YTg3YiAoImRy bTogaWRpb3QtcHJvb2YgdmJsYW5rIikKPiA+IFJldmlld2VkLWJ5OiBEYXZpZCBIZXJybWFubiA8 ZGguaGVycm1hbm5AZ21haWwuY29tPgo+ID4gQ2M6IFJvYiBDbGFyayA8cm9iZGNsYXJrQGdtYWls LmNvbT4KPiA+IENjOiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNoPgo+ID4g U2lnbmVkLW9mZi1ieTogQXJuZCBCZXJnbWFubiA8YXJuZEBhcm5kYi5kZT4KPiA+IC0tLQo+ID4g Rmlyc3Qgc3VibWl0dGVkIGluIEphbnVhcnkgMjAxNiwgc2Vjb25kIHN1Ym1pc3Npb24gaW4gRmVi cnVhcnksCj4gPiB0aGUgcGF0Y2ggaXMgc3RpbGwgcmVxdWlyZWQuCgpIbSwgc29ycnkgSSBtaXNz ZWQgdGhhdC4KCj4gPiAgZHJpdmVycy9ncHUvZHJtL2RybV9pcnEuYyB8IDQgKysrLQo+ID4gIDEg ZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKPiA+IAo+ID4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1faXJxLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJt X2lycS5jCj4gPiBpbmRleCBiOTY5YTY0Li40OGE2MTY3IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2RybV9pcnEuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9pcnEuYwo+ ID4gQEAgLTk1Miw4ICs5NTIsMTAgQEAgc3RhdGljIHUzMiBkcm1fdmJsYW5rX2NvdW50X2FuZF90 aW1lKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlLAo+ID4gIAl1MzIg dmJsYW5rX2NvdW50Owo+ID4gIAl1bnNpZ25lZCBpbnQgc2VxOwo+ID4gCj4gPiAtCWlmIChXQVJO X09OKHBpcGUgPj0gZGV2LT5udW1fY3J0Y3MpKQo+ID4gKwlpZiAoV0FSTl9PTihwaXBlID49IGRl di0+bnVtX2NydGNzKSkgewo+ID4gKwkJKnZibGFua3RpbWUgPSAoc3RydWN0IHRpbWV2YWwpIHsg MCB9Owo+ID4gIAkJcmV0dXJuIDA7Cj4gPiArCX0KPiA+IAo+ID4gIAlkbyB7Cj4gPiAgCQlzZXEg PSByZWFkX3NlcWJlZ2luKCZ2YmxhbmstPnNlcWxvY2spOwo+ID4gCj4gCj4gTG9va3MgZ29vZCB0 byBtZS4KPiAKPiBSZXZpZXdlZC1ieTogTWFyaW8gS2xlaW5lciA8bWFyaW8ua2xlaW5lci5kZUBn bWFpbC5jb20+CgpBcHBsaWVkIHRvIGRybS1taXNjLCB0aGFua3MuCi1EYW5pZWwKLS0gCkRhbmll bCBWZXR0ZXIKU29mdHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBvcmF0aW9uCmh0dHA6Ly9ibG9n LmZmd2xsLmNoCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758789AbcJRHqP (ORCPT ); Tue, 18 Oct 2016 03:46:15 -0400 Received: from mail-lf0-f65.google.com ([209.85.215.65]:36132 "EHLO mail-lf0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752020AbcJRHqH (ORCPT ); Tue, 18 Oct 2016 03:46:07 -0400 Date: Tue, 18 Oct 2016 09:46:02 +0200 From: Daniel Vetter To: Mario Kleiner Cc: Arnd Bergmann , David Airlie , Linus Torvalds , linux-kernel@vger.kernel.org, Rob Clark , Daniel Vetter , Dave Airlie , Ville =?iso-8859-1?Q?Syrj=E4l=E4?= , Alex Deucher , Gustavo Padovan , Matthew Auld , dri-devel@lists.freedesktop.org Subject: Re: [PATCH 18/28] drm: avoid uninitialized timestamp use in wait_vblank Message-ID: <20161018074602.GY20761@phenom.ffwll.local> Mail-Followup-To: Mario Kleiner , Arnd Bergmann , David Airlie , Linus Torvalds , linux-kernel@vger.kernel.org, Rob Clark , Dave Airlie , Ville =?iso-8859-1?Q?Syrj=E4l=E4?= , Alex Deucher , Gustavo Padovan , Matthew Auld , dri-devel@lists.freedesktop.org References: <20161017220342.1627073-1-arnd@arndb.de> <20161017221355.1861551-6-arnd@arndb.de> <374ecb85-dfff-ecc4-99ee-dba5ccbc169f@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <374ecb85-dfff-ecc4-99ee-dba5ccbc169f@gmail.com> X-Operating-System: Linux phenom 4.6.0-1-amd64 User-Agent: Mutt/1.6.0 (2016-04-01) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Oct 18, 2016 at 01:47:24AM +0200, Mario Kleiner wrote: > 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. Hm, sorry I missed that. > > 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 Applied to drm-misc, thanks. -Daniel -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch