Re: [Intel-gfx] include/drm/i915_drm.h:96: possible bad bitmask ?

From: Dave Gordon
Date: Tue Aug 09 2016 - 12:01:27 EST


On 09/08/16 03:59, Dave Airlie wrote:
On 8 August 2016 at 19:40, Daniel Vetter <daniel@xxxxxxxx> wrote:
On Mon, Aug 08, 2016 at 10:31:32AM +0100, David Binderman wrote:
Hello there,

Recent versions of gcc say this:

include/drm/i915_drm.h:96:34: warning: result of â65535 << 20â
requires 37 bits to represent, but âintâ only has 32 bits
[-Wshift-overflow=]

Source code is

#define INTEL_BSM_MASK (0xFFFF << 20)

Maybe something like

#define INTEL_BSM_MASK (0xFFFFUL<< 20)

might be better.

Yup. Care to bake this into a patch (with s-o-b and everything per
Documentation/SubmittingPatches) so I can apply it?

Why would you want to apply a clearly incorrect patch :-)

INTEL_BSM_MASK is used in one place, on a 32-bit number

I'm not sure what it needs to be, but a 64-bit number it doesn't.

Dave.

I found two uses, but in both cases it's masking a value read
from a 32-bit PCI register, so it can just be (-(1 << 20)).

.Dave.