# likely signedness bug in drm and nvidia drivers

- From: Rasmus Villemoes \<linux@rasmusvillemoes.dk\>
- Date: 2015-07-20 20:46:51 
- List: linux-fbdev
- Page: https://ratatoskr.run/linux-fbdev/2015/07/9084121
- Thread: https://ratatoskr.run/linux-fbdev/2015/07/9084121/t.md

```text
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
```
