Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753518Ab0ADPrt (ORCPT ); Mon, 4 Jan 2010 10:47:49 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1753094Ab0ADPrr (ORCPT ); Mon, 4 Jan 2010 10:47:47 -0500 Received: from mail-fx0-f225.google.com ([209.85.220.225]:41908 "EHLO mail-fx0-f225.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752524Ab0ADPrq (ORCPT ); Mon, 4 Jan 2010 10:47:46 -0500 DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:cc:content-type; b=n3liiHsGbrBx4nNmX7mjZ0UB8JVCy9RSmmILoUAF2J0RhB+kJ2ijaxCNvV6aowAQyC 49z73fSwyMbhtP6buOatitjxEPQjNVpXe6eDIEgmebj5XNMLQGHnJUWlWthkwsmb1mkA ECzAlFxs1dyCtBq5famdbH7rwb2h1+cVvnkIY= MIME-Version: 1.0 Date: Mon, 4 Jan 2010 16:47:44 +0100 Message-ID: Subject: Oops in uart_resume_port() on resume 2.6.32/33-rc From: Zdenek Kabelac To: Linux Kernel Mailing List Cc: dsaxena@laptop.org, alan@linux.intel.com, gregkh@suse.de Content-Type: text/plain; charset=ISO-8859-1 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3814 Lines: 88 Hi I wanted to trace some oops from i915 module via serial console log and instead I'm getting this oops from resume: BUG: unable to handle kernel NULL pointer dereference at 0000000000000198 IP: [] uart_resume_port+0x1f5/0x270 PGD 1396b6067 PUD 13baf4067 PMD 0 Oops: 0000 [#1] PREEMPT SMP last sysfs file: /sys/power/state CPU 1 Pid: 1909, comm: pm-suspend Not tainted 2.6.33-rc2-00269-g04ca05b #48 6464CTO/6464CTO RIP: 0010:[] [] uart_resume_port+0x1f5/0x270 RSP: 0000:ffff880139df7c98 EFLAGS: 00010246 RAX: 0000000000000000 RBX: ffffffff8248db80 RCX: 0000000000000000 RDX: ffffffff81866c00 RSI: ffffffff8140a713 RDI: ffff880139df7cc0 RBP: ffff880139df7cf8 R08: 0000000000000000 R09: 0000000000000000 R10: 2222222222222222 R11: 2222222222222222 R12: ffff880138968000 R13: ffff880138968150 R14: ffff880139df7c98 R15: ffff88013896dc70 FS: 00007fc83fe3d700(0000) GS:ffff88002c000000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b CR2: 0000000000000198 CR3: 000000013bf1c000 CR4: 00000000000006e0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400 Process pm-suspend (pid: 1909, threadinfo ffff880139df6000, task ffff880138a28000) Stack: 0000000000000000 0000000000000000 0000000000000000 0000000000000000 <0> 0000000000000000 ffff880100000000 ffffffff8248db80 ffffffff81866c60 <0> 0000000000000000 ffffffff8248db80 ffff88013896dc10 ffffffff8163f620 Call Trace: [] serial8250_resume_port+0x86/0xa0 [] serial8250_resume+0x58/0x60 [] platform_legacy_resume+0x24/0x40 [] platform_pm_resume+0x3d/0x50 [] pm_op+0xf3/0x1b0 [] dpm_resume_end+0x129/0x430 [] suspend_devices_and_enter+0x124/0x1a0 [] enter_state+0xda/0xf0 [] state_store+0x99/0x100 [] kobj_attr_store+0x17/0x20 [] sysfs_write_file+0xe6/0x170 [] vfs_write+0xb8/0x1a0 [] sys_write+0x51/0x90 [] system_call_fastpath+0x16/0x1b Code: 84 00 00 00 00 00 31 c0 4c 8d 75 a0 b9 05 00 00 00 4c 89 f7 f3 48 ab c7 07 00 00 00 00 8b 42 44 89 45 a8 85 c0 75 5f 49 8b 04 24 <48> 8b 80 98 01 00 00 48 8b 10 48 89 55 a0 48 8b 50 08 48 89 55 RIP [] uart_resume_port+0x1f5/0x270 RSP CR2: 0000000000000198 ---[ end trace 95c3962d37751a5e ]--- >From my debugger it looks like this: 0000000000003697 mov 0x44(%rdx),%eax 000000000000369a mov %eax,-0x58(%rbp) /* * If that's unset, use the tty termios setting. */ if (termios.c_cflag == 0) 000000000000369d test %eax,%eax 000000000000369f jne 0000000000003700 termios = *state->port.tty->termios; 00000000000036a1 mov (%r12),%rax 00000000000036a5 mov 0x198(%rax),%rax 00000000000036ac mov (%rax),%rdx 00000000000036af mov %rdx,-0x60(%rbp) 00000000000036b3 mov 0x8(%rax),%rdx So I assume it is related to commit: ba15ab0e8de0d4439a91342ad52d55ca9e313f3d which adds access through *state->port.tty->termios without checking for NULL. I'm using T61, 4GB and boot options: console=ttyS0,115200n8 console=tty Zdenek -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/