OSDN Git Service
(root)
/
uclinux-h8
/
linux.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
7fb4a3a
)
drm/i915: don't reference null pointer at i915_sink_crc
author
Paulo Zanoni
<paulo.r.zanoni@intel.com>
Thu, 13 Feb 2014 19:51:33 +0000
(17:51 -0200)
committer
Daniel Vetter
<daniel.vetter@ffwll.ch>
Thu, 13 Feb 2014 21:33:28 +0000
(22:33 +0100)
Reproducible by runtime suspending a Haswell machine with eDP + HDMI
outputs connected.
[ 209.600086] [drm:i915_runtime_suspend], Suspending device
[ 209.688435] BUG: unable to handle kernel NULL pointer dereference at
0000000000000060
[ 209.688500] IP: [<
ffffffffa0109d4e
>] i915_sink_crc+0x6e/0xf0 [i915]
[ 209.688577] PGD
36aba067
PUD
35d7f067
PMD 0
[ 209.688613] Oops: 0000 [#1] SMP
[ 209.688641] Modules linked in: fuse ip6table_filter ip6_tables ebtable_nat ebtables iTCO_wdt iTCO_vendor_support x86_pkg_temp_thermal coretemp microcode serio_raw e1000e pcspkr i2c_i801 ptp mei_me mei lpc_ich mfd_core pps_core dm_crypt i915 i2c_algo_bit crc32_pclmul drm_kms_helper crc32c_intel drm ghash_clmulni_intel video
[ 209.688893] CPU: 1 PID: 1797 Comm: pm_pc8 Not tainted 3.13.0+ #118
[ 209.688937] Hardware name: Intel Corporation Shark Bay Client platform/WhiteTip Mountain 1, BIOS HSWLPTU1.86C.0133.R00.
1309172123
09/17/2013
[ 209.689023] task:
ffff88007fb4b690
ti:
ffff88007d9d2000
task.ti:
ffff88007d9d2000
[ 209.689074] RIP: 0010:[<
ffffffffa0109d4e
>] [<
ffffffffa0109d4e
>] i915_sink_crc+0x6e/0xf0 [i915]
[ 209.689169] RSP: 0018:
ffff88007d9d3e68
EFLAGS:
00010246
[ 209.689205] RAX:
0000000000000000
RBX:
ffff880036a03478
RCX:
ffff8800366c9770
[ 209.689252] RDX:
ffff88014325cf38
RSI:
ffff88007fb4bd08
RDI:
ffff88007fb4b690
[ 209.689299] RBP:
ffff88007d9d3e98
R08:
0000000000000000
R09:
0000000000000000
[ 209.689346] R10:
0000000000000001
R11:
0000000000000000
R12:
ffff8800366c9148
[ 209.689393] R13:
00000000ffffffed
R14:
ffff88007d9d3f50
R15:
ffff880036a03478
[ 209.689441] FS:
00007f5a74bc29c0
(0000) GS:
ffff88014f240000
(0000) knlGS:
0000000000000000
[ 209.689494] CS: 0010 DS: 0000 ES: 0000 CR0:
0000000080050033
[ 209.689533] CR2:
0000000000000060
CR3:
0000000079d7e000
CR4:
00000000001407e0
[ 209.689580] Stack:
[ 209.689594]
0000000000001000
ffff880146083980
ffff880146083980
0000000000000000
[ 209.689649]
ffff880146083980
0000000000000001
ffff88007d9d3f00
ffffffff811d0744
[ 209.689702]
0000000000000046
00007fff7949fe20
ffff880036a034b8
0000000000000080
[ 209.689756] Call Trace:
[ 209.689778] [<
ffffffff811d0744
>] seq_read+0x164/0x3e0
[ 209.689816] [<
ffffffff811ab165
>] vfs_read+0x95/0x160
[ 209.689851] [<
ffffffff811abc79
>] SyS_read+0x49/0xa0
[ 209.689888] [<
ffffffff810ef64c
>] ? __audit_syscall_entry+0x9c/0xf0
[ 209.689933] [<
ffffffff81659412
>] system_call_fastpath+0x16/0x1b
Testcase: igt/pm_pc8 (do a full run, it will fail at the debugfs-read subtest)
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
[danvet: Flip around NULL check for robustness.]
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/i915_debugfs.c
patch
|
blob
|
history
diff --git
a/drivers/gpu/drm/i915/i915_debugfs.c
b/drivers/gpu/drm/i915/i915_debugfs.c
index
b737583
..
d90a707
100644
(file)
--- a/
drivers/gpu/drm/i915/i915_debugfs.c
+++ b/
drivers/gpu/drm/i915/i915_debugfs.c
@@
-1937,6
+1937,9
@@
static int i915_sink_crc(struct seq_file *m, void *data)
if (connector->base.dpms != DRM_MODE_DPMS_ON)
continue;
+ if (!connector->base.encoder)
+ continue;
+
encoder = to_intel_encoder(connector->base.encoder);
if (encoder->type != INTEL_OUTPUT_EDP)
continue;