From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Thompson Date: Tue, 21 Jul 2015 08:56:07 +0000 Subject: Re: likely signedness bug in drm and nvidia drivers Message-Id: <55AE0927.1060604@linaro.org> List-Id: References: <87fv4io8ug.fsf@rasmusvillemoes.dk> In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: Ilia Mirkin , Rasmus Villemoes Cc: linux-fbdev@vger.kernel.org, Tomi Valkeinen , Ben Skeggs , "dri-devel@lists.freedesktop.org" On 21/07/15 03:44, Ilia Mirkin wrote: > I think you're right. The intent is to mask off the bits above> bits_per_pixel. So if bits_per_pixel is 24, the mask would be> 0xff000000. If it's 16, then the mask would be 0xffff0000. If it's 32,> then the mask is 0.> > In reality, bits_per_pixel is almost exclusively 32, which will end up> with a mask of 0 (note that the shift result is inverted at the end).> So for the majority case, there's not bug... just a useless operation.> > I took a look at linux/bitops.h, and there's nothing particularly> great there. GENMASK, I guess, but it's not quite right. Just> switching to 0U should be fine there. I really don't see GENMASK() isn't quite right. Try: uint32_t mask = GENMASK(32, info->var.bits_per_pixel); Versus: uint32_t mask = ~(~0u >> (32 - info->var.bits_per_pixel)); For me, the GENMASK() is obvious whilst the later takes a good bit of mental decoding. Daniel. From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Thompson Subject: Re: likely signedness bug in drm and nvidia drivers Date: Tue, 21 Jul 2015 09:56:07 +0100 Message-ID: <55AE0927.1060604@linaro.org> References: <87fv4io8ug.fsf@rasmusvillemoes.dk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wg0-f52.google.com (mail-wg0-f52.google.com [74.125.82.52]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6D8B26E917 for ; Tue, 21 Jul 2015 01:56:10 -0700 (PDT) Received: by wgav7 with SMTP id v7so84827941wga.2 for ; Tue, 21 Jul 2015 01:56:08 -0700 (PDT) In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Ilia Mirkin , Rasmus Villemoes Cc: linux-fbdev@vger.kernel.org, Tomi Valkeinen , Ben Skeggs , "dri-devel@lists.freedesktop.org" List-Id: dri-devel@lists.freedesktop.org T24gMjEvMDcvMTUgMDM6NDQsIElsaWEgTWlya2luIHdyb3RlOgogPiBJIHRoaW5rIHlvdSdyZSBy aWdodC4gVGhlIGludGVudCBpcyB0byBtYXNrIG9mZiB0aGUgYml0cyBhYm92ZT4gCmJpdHNfcGVy X3BpeGVsLiBTbyBpZiBiaXRzX3Blcl9waXhlbCBpcyAyNCwgdGhlIG1hc2sgd291bGQgYmU+IAow eGZmMDAwMDAwLiBJZiBpdCdzIDE2LCB0aGVuIHRoZSBtYXNrIHdvdWxkIGJlIDB4ZmZmZjAwMDAu IElmIGl0J3MgMzIsPiAKdGhlbiB0aGUgbWFzayBpcyAwLj4gPiBJbiByZWFsaXR5LCBiaXRzX3Bl cl9waXhlbCBpcyBhbG1vc3QgZXhjbHVzaXZlbHkgCjMyLCB3aGljaCB3aWxsIGVuZCB1cD4gd2l0 aCBhIG1hc2sgb2YgMCAobm90ZSB0aGF0IHRoZSBzaGlmdCByZXN1bHQgaXMgCmludmVydGVkIGF0 IHRoZSBlbmQpLj4gU28gZm9yIHRoZSBtYWpvcml0eSBjYXNlLCB0aGVyZSdzIG5vdCBidWcuLi4g anVzdCAKYSB1c2VsZXNzIG9wZXJhdGlvbi4+ID4gSSB0b29rIGEgbG9vayBhdCBsaW51eC9iaXRv cHMuaCwgYW5kIHRoZXJlJ3MgCm5vdGhpbmcgcGFydGljdWxhcmx5PiBncmVhdCB0aGVyZS4gR0VO TUFTSywgSSBndWVzcywgYnV0IGl0J3Mgbm90IHF1aXRlIApyaWdodC4gSnVzdD4gc3dpdGNoaW5n IHRvIDBVIHNob3VsZCBiZSBmaW5lIHRoZXJlLgpJIHJlYWxseSBkb24ndCBzZWUgR0VOTUFTSygp IGlzbid0IHF1aXRlIHJpZ2h0LgoKVHJ5OgoKdWludDMyX3QgbWFzayA9IEdFTk1BU0soMzIsIGlu Zm8tPnZhci5iaXRzX3Blcl9waXhlbCk7CgpWZXJzdXM6Cgp1aW50MzJfdCBtYXNrID0gfih+MHUg Pj4gKDMyIC0gaW5mby0+dmFyLmJpdHNfcGVyX3BpeGVsKSk7CgpGb3IgbWUsIHRoZSBHRU5NQVNL KCkgaXMgb2J2aW91cyB3aGlsc3QgdGhlIGxhdGVyIHRha2VzIGEgZ29vZCBiaXQgb2YgCm1lbnRh bCBkZWNvZGluZy4KCgpEYW5pZWwuCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v ZHJpLWRldmVsCg==