All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ross Lagerwall <ross.lagerwall@citrix.com>
To: linux-kernel@vger.kernel.org
Cc: linux-acpi@vger.kernel.org, linux-efi@vger.kernel.org,
	"Rafael J. Wysocki" <rjw@rjwysocki.net>,
	Len Brown <lenb@kernel.org>, Tony Luck <tony.luck@intel.com>,
	Borislav Petkov <bp@alien8.de>, Huang Ying <ying.huang@intel.com>,
	Ross Lagerwall <ross.lagerwall@citrix.com>
Subject: [PATCH 0/2] Fix crash in cper_estatus_check()
Date: Tue, 22 Jan 2019 16:09:10 +0000	[thread overview]
Message-ID: <20190122160912.27312-1-ross.lagerwall@citrix.com> (raw)

I recently encountered a crash in cper_estatus_check() when called by
bert_init(). Patches follow to fix the problem. Note that I cannot fully
test the patches since the hardware error record on that machine has
been cleared.

The crash log:

[  125.666350] BUG: unable to handle kernel paging request at ffffc9004046d02c
[  125.666503] PGD 1f6dce067 P4D 1f6dce067 PUD 1e6532067 PMD 1e3d11067 PTE 0
[  125.666696] Oops: 0000 [#1] SMP KASAN NOPTI
[  125.666837] CPU: 7 PID: 1 Comm: swapper/0 Not tainted 4.19.0+0 #1
[  125.666983] Hardware name: Dell Inc. PowerEdge M520/0DW6GX, BIOS 1.8.6 08/30/2013
[  125.667171] RIP: e030:cper_estatus_check+0x7e/0xf0
[  125.667315] Code: 41 29 c5 48 98 48 01 c3 48 89 d8 4c 29 e0 48 39 e8 7d 4a 48 8d 7b 18 be 04 00 00 00 e8 bb 6f 9f ff 48 8d 7b 14 be 02 00 00 00 <44> 8b 73 18 e8 a9 6f 9f ff 0f b6 4b 15 44 89 ee 66 83 f9 03 19 d2
[  125.667554] RSP: e02b:ffff8881e65efce0 EFLAGS: 00010246
[  125.667699] RAX: fffff5200808da06 RBX: ffffc9004046d014 RCX: ffffffff8192bf25
[  125.667849] RDX: 0000000000000000 RSI: 0000000000000002 RDI: ffffc9004046d028
[  125.668009] RBP: 0000000000000700 R08: fffff5200808da06 R09: fffff5200808da06
[  125.668207] R10: 0000000000000001 R11: fffff5200808da05 R12: ffffc9004046cc14
[  125.668358] R13: 0000000000000300 R14: 00000000000000c0 R15: ffffc9004046cc00
[  125.668519] FS:  0000000000000000(0000) GS:ffff8881e77c0000(0000) knlGS:0000000000000000
[  125.668698] CS:  e033 DS: 0000 ES: 0000 CR0: 0000000080050033
[  125.668844] CR2: ffffc9004046d02c CR3: 000000000260c000 CR4: 0000000000042660
[  125.668999] Call Trace:
[  125.669139]  bert_init+0x21c/0x362
[  125.669279]  ? setup_bert_disable+0x12/0x12
[  125.669420]  ? pci_get_dev_by_id+0x57/0x70
[  125.669560]  ? pci_get_device+0x86/0xc0
[  125.669738]  ? pci_create_sysfs_dev_files+0x1a6/0x330
[  125.669883]  ? setup_bert_disable+0x12/0x12
[  125.670026]  ? set_debug_rodata+0x11/0x11
[  125.670166]  ? do_one_initcall+0x8b/0x253
[  125.670306]  do_one_initcall+0x8b/0x253
[  125.670447]  ? perf_trace_initcall_level+0x250/0x250
[  125.670592]  ? __wake_up_common+0x140/0x1d0
[  125.670736]  ? kasan_unpoison_shadow+0x30/0x40
[  125.670879]  ? kasan_unpoison_shadow+0x30/0x40
[  125.671023]  ? set_debug_rodata+0x11/0x11
[  125.671164]  kernel_init_freeable+0x269/0x304
[  125.671346]  ? rest_init+0xc0/0xc0
[  125.671485]  kernel_init+0xf/0x130
[  125.671623]  ? rest_init+0xc0/0xc0
[  125.671761]  ? rest_init+0xc0/0xc0
[  125.671901]  ret_from_fork+0x35/0x40
[  125.672063] Modules linked in:
[  125.672201] CR2: ffffc9004046d02c
[  125.672349] ---[ end trace a17cd87742b2c49e ]---
[  125.683693] RIP: e030:cper_estatus_check+0x7e/0xf0
[  125.683840] Code: 41 29 c5 48 98 48 01 c3 48 89 d8 4c 29 e0 48 39 e8 7d 4a 48 8d 7b 18 be 04 00 00 00 e8 bb 6f 9f ff 48 8d 7b 14 be 02 00 00 00 <44> 8b 73 18 e8 a9 6f 9f ff 0f b6 4b 15 44 89 ee 66 83 f9 03 19 d2
[  125.684103] RSP: e02b:ffff8881e65efce0 EFLAGS: 00010246
[  125.684247] RAX: fffff5200808da06 RBX: ffffc9004046d014 RCX: ffffffff8192bf25
[  125.684397] RDX: 0000000000000000 RSI: 0000000000000002 RDI: ffffc9004046d028
[  125.684548] RBP: 0000000000000700 R08: fffff5200808da06 R09: fffff5200808da06
[  125.684699] R10: 0000000000000001 R11: fffff5200808da05 R12: ffffc9004046cc14
[  125.684850] R13: 0000000000000300 R14: 00000000000000c0 R15: ffffc9004046cc00
[  125.685009] FS:  0000000000000000(0000) GS:ffff8881e77c0000(0000) knlGS:0000000000000000
[  125.685224] CS:  e033 DS: 0000 ES: 0000 CR0: 0000000080050033
[  125.685371] CR2: ffffc9004046d02c CR3: 000000000260c000 CR4: 0000000000042660
[  125.685566] Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000009

Thanks,

Ross Lagerwall (2):
  acpi/apei: Avoid possible OOB when accessing BERT region
  efi/cper: Avoid possible OOB when checking generic data block

 drivers/acpi/apei/bert.c    | 23 ++++++++++-------------
 drivers/firmware/efi/cper.c | 10 ++++++----
 2 files changed, 16 insertions(+), 17 deletions(-)

-- 
2.17.2

WARNING: multiple messages have this Message-ID (diff)
From: Ross Lagerwall <ross.lagerwall@citrix.com>
To: <linux-kernel@vger.kernel.org>
Cc: <linux-acpi@vger.kernel.org>, <linux-efi@vger.kernel.org>,
	"Rafael J. Wysocki" <rjw@rjwysocki.net>,
	Len Brown <lenb@kernel.org>, Tony Luck <tony.luck@intel.com>,
	Borislav Petkov <bp@alien8.de>, Huang Ying <ying.huang@intel.com>,
	Ross Lagerwall <ross.lagerwall@citrix.com>
Subject: [PATCH 0/2] Fix crash in cper_estatus_check()
Date: Tue, 22 Jan 2019 16:09:10 +0000	[thread overview]
Message-ID: <20190122160912.27312-1-ross.lagerwall@citrix.com> (raw)

I recently encountered a crash in cper_estatus_check() when called by
bert_init(). Patches follow to fix the problem. Note that I cannot fully
test the patches since the hardware error record on that machine has
been cleared.

The crash log:

[  125.666350] BUG: unable to handle kernel paging request at ffffc9004046d02c
[  125.666503] PGD 1f6dce067 P4D 1f6dce067 PUD 1e6532067 PMD 1e3d11067 PTE 0
[  125.666696] Oops: 0000 [#1] SMP KASAN NOPTI
[  125.666837] CPU: 7 PID: 1 Comm: swapper/0 Not tainted 4.19.0+0 #1
[  125.666983] Hardware name: Dell Inc. PowerEdge M520/0DW6GX, BIOS 1.8.6 08/30/2013
[  125.667171] RIP: e030:cper_estatus_check+0x7e/0xf0
[  125.667315] Code: 41 29 c5 48 98 48 01 c3 48 89 d8 4c 29 e0 48 39 e8 7d 4a 48 8d 7b 18 be 04 00 00 00 e8 bb 6f 9f ff 48 8d 7b 14 be 02 00 00 00 <44> 8b 73 18 e8 a9 6f 9f ff 0f b6 4b 15 44 89 ee 66 83 f9 03 19 d2
[  125.667554] RSP: e02b:ffff8881e65efce0 EFLAGS: 00010246
[  125.667699] RAX: fffff5200808da06 RBX: ffffc9004046d014 RCX: ffffffff8192bf25
[  125.667849] RDX: 0000000000000000 RSI: 0000000000000002 RDI: ffffc9004046d028
[  125.668009] RBP: 0000000000000700 R08: fffff5200808da06 R09: fffff5200808da06
[  125.668207] R10: 0000000000000001 R11: fffff5200808da05 R12: ffffc9004046cc14
[  125.668358] R13: 0000000000000300 R14: 00000000000000c0 R15: ffffc9004046cc00
[  125.668519] FS:  0000000000000000(0000) GS:ffff8881e77c0000(0000) knlGS:0000000000000000
[  125.668698] CS:  e033 DS: 0000 ES: 0000 CR0: 0000000080050033
[  125.668844] CR2: ffffc9004046d02c CR3: 000000000260c000 CR4: 0000000000042660
[  125.668999] Call Trace:
[  125.669139]  bert_init+0x21c/0x362
[  125.669279]  ? setup_bert_disable+0x12/0x12
[  125.669420]  ? pci_get_dev_by_id+0x57/0x70
[  125.669560]  ? pci_get_device+0x86/0xc0
[  125.669738]  ? pci_create_sysfs_dev_files+0x1a6/0x330
[  125.669883]  ? setup_bert_disable+0x12/0x12
[  125.670026]  ? set_debug_rodata+0x11/0x11
[  125.670166]  ? do_one_initcall+0x8b/0x253
[  125.670306]  do_one_initcall+0x8b/0x253
[  125.670447]  ? perf_trace_initcall_level+0x250/0x250
[  125.670592]  ? __wake_up_common+0x140/0x1d0
[  125.670736]  ? kasan_unpoison_shadow+0x30/0x40
[  125.670879]  ? kasan_unpoison_shadow+0x30/0x40
[  125.671023]  ? set_debug_rodata+0x11/0x11
[  125.671164]  kernel_init_freeable+0x269/0x304
[  125.671346]  ? rest_init+0xc0/0xc0
[  125.671485]  kernel_init+0xf/0x130
[  125.671623]  ? rest_init+0xc0/0xc0
[  125.671761]  ? rest_init+0xc0/0xc0
[  125.671901]  ret_from_fork+0x35/0x40
[  125.672063] Modules linked in:
[  125.672201] CR2: ffffc9004046d02c
[  125.672349] ---[ end trace a17cd87742b2c49e ]---
[  125.683693] RIP: e030:cper_estatus_check+0x7e/0xf0
[  125.683840] Code: 41 29 c5 48 98 48 01 c3 48 89 d8 4c 29 e0 48 39 e8 7d 4a 48 8d 7b 18 be 04 00 00 00 e8 bb 6f 9f ff 48 8d 7b 14 be 02 00 00 00 <44> 8b 73 18 e8 a9 6f 9f ff 0f b6 4b 15 44 89 ee 66 83 f9 03 19 d2
[  125.684103] RSP: e02b:ffff8881e65efce0 EFLAGS: 00010246
[  125.684247] RAX: fffff5200808da06 RBX: ffffc9004046d014 RCX: ffffffff8192bf25
[  125.684397] RDX: 0000000000000000 RSI: 0000000000000002 RDI: ffffc9004046d028
[  125.684548] RBP: 0000000000000700 R08: fffff5200808da06 R09: fffff5200808da06
[  125.684699] R10: 0000000000000001 R11: fffff5200808da05 R12: ffffc9004046cc14
[  125.684850] R13: 0000000000000300 R14: 00000000000000c0 R15: ffffc9004046cc00
[  125.685009] FS:  0000000000000000(0000) GS:ffff8881e77c0000(0000) knlGS:0000000000000000
[  125.685224] CS:  e033 DS: 0000 ES: 0000 CR0: 0000000080050033
[  125.685371] CR2: ffffc9004046d02c CR3: 000000000260c000 CR4: 0000000000042660
[  125.685566] Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000009

Thanks,

Ross Lagerwall (2):
  acpi/apei: Avoid possible OOB when accessing BERT region
  efi/cper: Avoid possible OOB when checking generic data block

 drivers/acpi/apei/bert.c    | 23 ++++++++++-------------
 drivers/firmware/efi/cper.c | 10 ++++++----
 2 files changed, 16 insertions(+), 17 deletions(-)

-- 
2.17.2


             reply	other threads:[~2019-01-22 16:09 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-01-22 16:09 Ross Lagerwall [this message]
2019-01-22 16:09 ` [PATCH 0/2] Fix crash in cper_estatus_check() Ross Lagerwall
2019-01-22 16:09 ` [PATCH 1/2] acpi/apei: Avoid possible OOB when accessing BERT region Ross Lagerwall
2019-01-22 16:09   ` Ross Lagerwall
2019-01-22 16:09 ` [PATCH 2/2] efi/cper: Avoid possible OOB when checking generic data block Ross Lagerwall
2019-01-22 16:09   ` Ross Lagerwall
2019-01-23 11:54   ` Borislav Petkov
2019-01-28 10:04     ` Ross Lagerwall
2019-01-28 10:04       ` Ross Lagerwall

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190122160912.27312-1-ross.lagerwall@citrix.com \
    --to=ross.lagerwall@citrix.com \
    --cc=bp@alien8.de \
    --cc=lenb@kernel.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-efi@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rjw@rjwysocki.net \
    --cc=tony.luck@intel.com \
    --cc=ying.huang@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.