[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