[Intel-gfx] commit 440fd52 drm/mm: Support 4GiB and larger ranges oops on 32bit kernel

Krzysztof Kolasa kkolasa at winsoft.pl
Sun Mar 15 12:22:36 PDT 2015


Problem solved and tested:

[PATCH] drm/mm: Fix support 4 GiB and larger ranges

bad argument if(tmp)... in check_free_hole

fix oops: kernel BUG at drivers/gpu/drm/drm_mm.c:305!

Signed-off-by: Krzysztof Kolasa <kkolasa at winsoft.pl>
---
 drivers/gpu/drm/drm_mm.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/drm_mm.c b/drivers/gpu/drm/drm_mm.c
index 7fc6f8b..1134526 100644
--- a/drivers/gpu/drm/drm_mm.c
+++ b/drivers/gpu/drm/drm_mm.c
@@ -403,7 +403,7 @@ static int check_free_hole(u64 start, u64 end, u64 size, unsigned alignment)
         unsigned rem;
 
         rem = do_div(tmp, alignment);
-        if (tmp)
+        if (rem)
             start += alignment - rem;
     }
 
-- 
2.3.3.dirty

On 11.03.2015 09:13, Chris Wilson wrote:
> [cc'ing lists]
>
> On Tue, Mar 10, 2015 at 07:17:22PM +0100, Krzysztof Kolasa wrote:
>> System ( 32bit, Intel 945GM ) hangs after some short time, oops:
>>
>> ------------[ cut here ]------------
>> kernel BUG at drivers/gpu/drm/drm_mm.c:305!
>> invalid opcode: 0000 [#1] SMP
>> Modules linked in: arc4 md4 cfg80211 8192cu(O) pci_stub vboxpci(O)
>> vboxnetadp(O) vboxnetflt(O) vboxdrv(O) snd_hda_codec_si3054
>> snd_hda_codec_realtek snd_hda_codec_generic snd_hda_intel
>> snd_hda_controller snd_hda_codec snd_hwdep snd_pcm microcode
>> snd_seq_midi snd_seq_midi_event snd_rawmidi joydev serio_raw snd_seq
>> snd_timer snd_seq_device rfcomm bnep bluetooth i915 snd lpc_ich
>> drm_kms_helper soundcore drm i2c_algo_bit parport_pc ppdev video
>> mac_hid coretemp lp parport nls_utf8 cifs usb_storage psmouse
>> 8139too 8139cp mii
>> CPU: 0 PID: 1165 Comm: Xorg Tainted: G           O
>> 4.0.0-rc3-winsoft-x86+ #11
>> Hardware name: FUJITSU SIEMENS AMILO Pro Edition V3405        /AMILO
>> Pro Edition V3405        , BIOS R01-B0E    03/20/2007
>> task: f64e0db0 ti: f4566000 task.ti: f4566000
>> EIP: 0060:[<f88c7d62>] EFLAGS: 00213206 CPU: 0
>> EIP is at drm_mm_insert_node_in_range_generic+0x432/0x4d0 [drm]
>> EAX: 01000000 EBX: 00c78000 ECX: f6d4c908 EDX: 00000000
>> ESI: f6d4c900 EDI: f6d4c900 EBP: f4567c78 ESP: f4567bf8
>> DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
>> CR0: 8005003b CR2: b4a02000 CR3: 345f2000 CR4: 000007f0
>> Stack:
>>  f4567c64 00000000 00800000 00000000 00800000 f6d4c900 ffffffff f4882700
>>  00000000 00000000 00000000 00a88000 00000000 10000000 00478000 00000000
>>  00000000 00000000 00000000 00f00000 00000000 00000000 00000000 f472c33c
>> Call Trace:
>>  [<f8b2634e>] i915_gem_object_pin_view+0x3ce/0x840 [i915]
>>  [<f8b1f601>] ? i915_gem_obj_lookup_or_create_vma_view+0x41/0x160 [i915]
>>  [<f8b196d2>] i915_gem_execbuffer_reserve_vma.isra.11+0x62/0x100 [i915]
>>  [<f8b19a01>] i915_gem_execbuffer_reserve+0x291/0x2e0 [i915]
>>  [<f8b1a340>] i915_gem_do_execbuffer.isra.16+0x4f0/0xd10 [i915]
>>  [<c1189430>] ? poll_select_copy_remaining+0x100/0x100
>>  [<c116a8fd>] ? __kmalloc+0x4d/0x190
>>  [<f8b1bbdb>] i915_gem_execbuffer2+0x8b/0x2c0 [i915]
>>  [<f8b1bb50>] ? i915_gem_execbuffer+0x4e0/0x4e0 [i915]
>>  [<f88bffa7>] drm_ioctl+0x1b7/0x510 [drm]
>>  [<f8b1bb50>] ? i915_gem_execbuffer+0x4e0/0x4e0 [i915]
>>  [<c10aac52>] ? ktime_get_ts64+0x52/0x1a0
>>  [<f88bfdf0>] ? drm_getmap+0xb0/0xb0 [drm]
>>  [<c11888ea>] do_vfs_ioctl+0x30a/0x530
>>  [<c1305626>] ? _copy_to_user+0x26/0x30
>>  [<c10aac52>] ? ktime_get_ts64+0x52/0x1a0
>>  [<c1190ee2>] ? __fget_light+0x22/0x60
>>  [<c1188b70>] SyS_ioctl+0x60/0x90
>>  [<c1630ec8>] sysenter_do_call+0x12/0x12
>> Code: ff ff 3b 55 e8 8d 74 26 00 77 10 73 04 0f 0b 66 90 3b 45 e4 90
>> 8d 74 26 00 72 f2 8b 75 94 03 46 20 13 56 24 3b 55 f0 72 0d 76 06
>> <0f> 0b 8d 74 26 00 3b 45 ec 77 f5 39 55 c4 77 10 73 04 0f 0b 66
>> EIP: [<f88c7d62>] drm_mm_insert_node_in_range_generic+0x432/0x4d0
>> [drm] SS:ESP 0068:f4567bf8
>> ---[ end trace 4648f53699b9eb32 ]---
>>
>> after revert commit 440fd52 system working OK
>>
>> Krzysztof
>>



More information about the Intel-gfx mailing list