Bug 45181

Summary: Kernel 3.5 OOPS on i915 DRM in skip_spaces()
Product: Drivers Reporter: Kris Karas (bugs-a21)
Component: Video(DRI - Intel)Assignee: drivers_video-dri-intel (drivers_video-dri-intel)
Status: RESOLVED CODE_FIX    
Severity: normal CC: ade05fr, ben, daniel, florian
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 3.5 Subsystem:
Regression: Yes Bisected commit-id:
Attachments: i915 Log output and subsequent OOPS
Result of bisecting kernel, showing patch information
The .config from kernel 3.5
Working patch from Ben Widawsky

Description Kris Karas 2012-07-27 00:59:50 UTC
Created attachment 76191 [details]
i915 Log output and subsequent OOPS

Ben Widawsky added a patch that went into the 3.5 mainline kernel that adds sysfs entries for the i915/DRM driver.  Unfortunately, that patches causes the kernel to OOPS in the function skip_spaces().

I bisected to locate the patch, details of which are attached, along with the oops log itself.  CC'ing the patch author too.

Hardware: Dell OptiPlex 990
CPU: Intel Core i7-2600
i915 variant: Intel Corporation Second Generation Core Processor Family
              Integrated Graphics Controller (rev 09)
Comment 1 Kris Karas 2012-07-27 01:01:48 UTC
Created attachment 76201 [details]
Result of bisecting kernel, showing patch information
Comment 2 Daniel Vetter 2012-07-27 05:20:02 UTC
Please attach your kernel .config, too.
Comment 3 Kris Karas 2012-07-27 18:30:51 UTC
Created attachment 76271 [details]
The .config from kernel 3.5

OK, attaching the .config to the bug report.

I neglected to mention (in case it is not obvious) that the bug occurs at the same time on every boot, with the same stack trace.  I switched the i915 from a built-in to a loadable module, which allows the kernel to boot into a minimally functional state without triggering a panic.
Comment 4 Daniel Vetter 2012-08-05 18:33:57 UTC
Pardon the delay, I've been on vacation a bit. I'll look at your .config shortly. But first to confirm: When you build i915 as a module (and then load it), does the kernel still oops or does it only oops when you build i915 compiled-in?
Comment 5 Daniel Vetter 2012-08-05 19:01:41 UTC
*** Bug 45361 has been marked as a duplicate of this bug. ***
Comment 6 Ben Widawsky 2012-08-06 01:09:08 UTC
Do you have CONFIG_PM set?

I think this is the issue which was mentioned here:
http://lists.freedesktop.org/archives/intel-gfx/2012-July/018594.html

Unfortunately the original poster seems to have gone away without satisfying my request. Can you see if this patch fixes the problem If this patch works, I'll submit another patch with what I want. The patch should apply to drm-intel-fixes.
Comment 7 Kris Karas 2012-08-06 17:12:35 UTC
Created attachment 76901 [details]
Working patch from Ben Widawsky

No problem on the delay.  :-)

Indeed, I do not have CONFIG_PM set (no suspend/hibernate) as this is a server that is effectively never powered off.

Ben, your patch works just fine!  No OOPSen on module load, and no panic on boot with i915 built-in.

FWIW, I'm attaching the patch Ben mentioned above, for convenience.
Comment 8 Kris Karas 2012-08-06 17:15:29 UTC
Marking this as resolved; I've tested the patch as module and as built-in, with modeset=0 and modeset=1 (moot, but for completeness) and it works fine.
Comment 9 Florian Mickler 2012-08-20 21:55:05 UTC
A patch referencing this bug report has been merged in Linux v3.6-rc2:

commit 5ab3633d6907018b0b830a720e877c3884d679c3
Author: Hunt Xu <mhuntxu@gmail.com>
Date:   Sun Jul 1 03:45:07 2012 +0000

    drm/i915: make rc6 in sysfs functions conditional
Comment 10 Florian Mickler 2012-10-15 20:46:03 UTC
A patch referencing a commit referencing this bug report has been merged in Linux v3.7-rc1:

commit 8c3f929b6147e142efc58d5d03dc6fa703b14a5d
Author: Ben Widawsky <ben@bwidawsk.net>
Date:   Sun Sep 2 00:24:40 2012 -0700

    drm/i915: Enable some sysfs stuff without CONFIG_PM