likely signedness bug in drm and nvidia drivers
Rasmus Villemoes
linux at rasmusvillemoes.dk
Mon Jul 20 13:46:47 PDT 2015
Hi,
The files
drivers/gpu/drm/nouveau/nv50_fbcon.c
drivers/gpu/drm/nouveau/nvc0_fbcon.c
drivers/video/fbdev/nvidia/nv_accel.c
all contain a right-shift of ~0 (aka -1) - just grep for '~0 >>'. gcc
always does arithmetic right shift of signed types, which means that the
result is always -1 again [type promotion/conversion doesn't kick in
until after the shift subexpression has been evaluated], independent of
the second operand. I can hardly believe that is intended (the result is
used as a mask, which thus consists of all 1s). If these are indeed
bugs, the patch is obvious (just make the literal an unsigned 0).
Rasmus
More information about the dri-devel
mailing list