UBSAN warning in r100: shift exponent 255 is too large for 32-bit type 'int'

From: Meelis Roos
Date: Fri Apr 22 2016 - 16:07:36 EST


I turned on UBSAN on most of my test machines and one of the warnings it
gives comes from r100. This in 4.6-rc4, on 32-bit P4.

[ 8.829702] [drm] radeon kernel modesetting enabled.
[ 8.832094] [drm] initializing kernel modesetting (RV100 0x1002:0x5159 0x2023:0x148C).
[ 8.832279] [drm] register mmio base: 0xFF8F0000
[ 8.832415] [drm] register mmio size: 65536
[ 8.833002] agpgart-intel 0000:00:00.0: AGP 2.0 bridge
[ 8.833151] agpgart-intel 0000:00:00.0: putting AGP V2 device into 4x mode
[ 8.833308] radeon 0000:01:00.0: putting AGP V2 device into 4x mode
[ 8.833493] radeon 0000:01:00.0: GTT: 256M 0xE0000000 - 0xEFFFFFFF
[ 8.833646] radeon 0000:01:00.0: VRAM: 128M 0x00000000D0000000 - 0x00000000D7FFFFFF (32M used)
[ 8.833879] [drm] Detected VRAM RAM=128M, BAR=128M
[ 8.834009] [drm] RAM width 64bits DDR
[ 8.834900] [TTM] Zone kernel: Available graphics memory: 447748 kiB
[ 8.835048] [TTM] Initializing pool allocator
[ 8.835243] [drm] radeon: 32M of VRAM memory ready
[ 8.835392] [drm] radeon: 256M of GTT memory ready.
[ 8.856768] radeon 0000:01:00.0: WB disabled
[ 8.856929] radeon 0000:01:00.0: fence driver on ring 0 use gpu addr 0x00000000e0000000 and cpu addr 0xf87a6000
[ 8.857184] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[ 8.857316] [drm] Driver supports precise vblank timestamp query.
[ 8.857492] [drm] radeon: irq initialized.
[ 8.857624] [drm] Loading R100 Microcode
[ 8.912500] [drm] radeon: ring at 0x00000000E0001000
[ 8.912682] [drm] ring test succeeded in 1 usecs
[ 8.913066] [drm] ib test succeeded in 0 usecs
[ 8.914805] [drm] No TV DAC info found in BIOS
[ 8.915175] [drm] Radeon Display Connectors
[ 8.915308] [drm] Connector 0:
[ 8.915438] [drm] VGA-1
[ 8.915566] [drm] DDC: 0x60 0x60 0x60 0x60 0x60 0x60 0x60 0x60
[ 8.915697] [drm] Encoders:
[ 8.915825] [drm] CRT1: INTERNAL_DAC1
[ 8.915956] [drm] Connector 1:
[ 8.916120] [drm] DVI-I-1
[ 8.916248] [drm] HPD1
[ 8.916376] [drm] DDC: 0x64 0x64 0x64 0x64 0x64 0x64 0x64 0x64
[ 8.916506] [drm] Encoders:
[ 8.916633] [drm] CRT2: INTERNAL_DAC2
[ 8.916762] [drm] DFP1: INTERNAL_TMDS1
[ 8.916891] [drm] Connector 2:
[ 8.917019] [drm] SVIDEO-1
[ 8.917148] [drm] Encoders:
[ 8.917276] [drm] TV1: INTERNAL_DAC2
[ 8.917423] ================================================================================
[ 8.917559] UBSAN: Undefined behaviour in drivers/gpu/drm/radeon/r100.c:595:15
[ 8.917694] shift exponent 255 is too large for 32-bit type 'int'
[ 8.917830] CPU: 0 PID: 222 Comm: systemd-udevd Not tainted 4.6.0-rc4-00124-g5f44abd #127
[ 8.917964] Hardware name: MicroLink /D850MV , BIOS MV85010A.86A.0067.P24.0304081124 04/08/2003
[ 8.918190] 00000000 c12243f0 f8e2a6e4 c12249cc f8e2a6b4 00000001 00000202 00353532
[ 8.918644] 00000237 00000246 00000246 00000006 00000000 00010246 0000001c 00000006
[ 8.919098] c17f6842 00000031 c10749c7 00000000 00000000 00000246 00000002 f4a02800
[ 8.919552] Call Trace:
[ 8.919694] [<c12243f0>] ? ubsan_epilogue+0x8/0x23
[ 8.919831] [<c12249cc>] ? __ubsan_handle_shift_out_of_bounds+0xd5/0xdd
[ 8.919970] [<c10749c7>] ? vprintk_emit+0x37a/0x390
[ 8.920103] [<f8d17a90>] ? r100_hpd_init+0x72/0xb7 [radeon]
[ 8.920103] [<f8d0c019>] ? radeon_modeset_init+0x753/0xe7b [radeon]
[ 8.920103] [<f8ce1441>] ? radeon_driver_load_kms+0xd8/0x196 [radeon]
[ 8.920103] [<f8a02eee>] ? drm_dev_register+0x75/0xad [drm]
[ 8.920103] [<f8a058f1>] ? drm_get_pci_dev+0x11d/0x23e [drm]
[ 8.920103] [<c12305b5>] ? pci_device_probe+0x9f/0xee
[ 8.920103] [<c12bf8cf>] ? driver_probe_device+0x149/0x271
[ 8.920103] [<c12bfa7d>] ? __driver_attach+0x86/0xa1
[ 8.920103] [<c12bdbf3>] ? bus_for_each_dev+0x47/0x5a
[ 8.920103] [<c12bf14a>] ? driver_attach+0x24/0x27
[ 8.920103] [<c12bf9f7>] ? driver_probe_device+0x271/0x271
[ 8.920103] [<c12bee64>] ? bus_add_driver+0xed/0x1db
[ 8.920103] [<f8933000>] ? 0xf8933000
[ 8.920103] [<c12c0356>] ? driver_register+0x9a/0xcb
[ 8.920103] [<c10004c9>] ? do_one_initcall+0x159/0x1d9
[ 8.920103] [<c10b24b8>] ? __free_one_page+0x1a1/0x369
[ 8.920103] [<c10e4ced>] ? kernel_poison_pages+0x10/0xc4
[ 8.920103] [<c10b1d72>] ? free_pages_prepare+0x1f7/0x21c
[ 8.920103] [<c10e8169>] ? kmem_cache_alloc+0xa2/0xd6
[ 8.920103] [<c10abacb>] ? do_init_module+0x17/0x21a
[ 8.920103] [<c10abb2a>] ? do_init_module+0x76/0x21a
[ 8.920103] [<c109756d>] ? load_module+0x1b28/0x206a
[ 8.920103] [<c1097bd0>] ? SyS_finit_module+0x71/0x79
[ 8.920103] [<c10016af>] ? do_fast_syscall_32+0xd9/0x111
[ 8.920103] [<c13eb6d7>] ? sysenter_past_esp+0x40/0x6a
[ 8.920103] ================================================================================
[ 8.973156] radeon 0000:01:00.0: No connectors reported connected with modes
[ 8.973319] [drm] Cannot find any crtc or sizes - going 1024x768
[ 8.978947] [drm] fb mappable at 0xD0040000
[ 8.979078] [drm] vram apper at 0xD0000000
[ 8.979208] [drm] size 786432
[ 8.979335] [drm] fb depth is 8
[ 8.979462] [drm] pitch is 1024
[ 8.979895] fbcon: radeondrmfb (fb0) is primary device
[ 8.988343] Console: switching to colour frame buffer device 128x48
[ 8.998095] radeon 0000:01:00.0: fb0: radeondrmfb frame buffer device
[ 8.998181] [drm] Initialized radeon 2.43.0 20080528 for 0000:01:00.0 on minor 0

--
Meelis Roos (mroos@xxxxxxxx)