Bug ID 939979
Summary EFI runtime services were broken after a hibernate cycle on some old EFI machines
Classification openSUSE
Product openSUSE Distribution
Version 13.2
Hardware Other
OS Other
Status NEW
Severity Normal
Priority P5 - None
Component Kernel
Assignee kernel-maintainers@forge.provo.novell.com
Reporter jlee@suse.com
QA Contact qa-bugs@suse.de
Found By ---
Blocker ---

Found can not accessing efi variables through efivarfs after hibernate resume.
This issue can reproduce on Intel DQ57TM machine and Acer Gateway Z5WT2 UEFI
notebook on my hand:

[  160.007691] BUG: unable to handle kernel paging request at fffffffefcc44e60
[  160.014705] IP: [<ffffffff8146618d>] virt_efi_get_variable+0x5d/0xa0
[  160.021091] PGD 1a0c067 PUD 1370ae063 PMD 1370bd063 PTE 0
[  160.026562] Oops: 0000 [#1] SMP
[  160.029830] Modules linked in: bridge(E) stp(E) llc(E) iscsi_ibft(E)
iscsi_boot_sysfs(E) af_packet(E) nls_iso8859_1(E) nls_cp437(E)
intel_powerclamp(E) coretemp(E) kvm_intel(E) vfat(E) fat(E) kvm(E) iTCO_wdt(
[  160.102481] CPU: 0 PID: 1659 Comm: cat Tainted: G            E   
4.2.0-rc2-default+ #93
[  160.110584] Hardware name: Intel Corp. Intel(R) UDK2010 firmware developer
platform, BIOS SDV.TM.B13 Release Build (CSM Available) 07/03/2013
[  160.123280] task: ffff88013607d380 ti: ffff880136794000 task.ti:
ffff880136794000
[  160.130772] RIP: 0010:[<ffffffff8146618d>]  [<ffffffff8146618d>]
virt_efi_get_variable+0x5d/0xa0
[  160.139590] RSP: 0018:ffff880136797d78  EFLAGS: 00010096
[  160.144910] RAX: fffffffefcc44e18 RBX: 0000000000000092 RCX:
0000000000000000
[  160.152047] RDX: ffff88013647b400 RSI: ffff88013647b000 RDI:
ffff88000009cff8
[  160.159184] RBP: ffff880136797db8 R08: ffff880136797e00 R09:
0000000000000000
[  160.166320] R10: 00007ffecdaf7e30 R11: 0000000000000246 R12:
ffff88013647b000
[  160.173459] R13: ffff88013647b400 R14: 0000000000000000 R15:
ffff880136797e00
[  160.180597] FS:  00007f4bdbbc4700(0000) GS:ffff88013bc00000(0000)
knlGS:0000000000000000
[  160.188691] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[  160.194444] CR2: fffffffefcc44e60 CR3: 00000000b9f7c000 CR4:
00000000000007f0
[  160.201580] Stack:
[  160.203600]  0000000200000002 0000000000000000 ffff880136797e50
ffff88013647b000
[  160.211075]  ffff880136797e00 ffffffff81f5c960 ffff880136797f20
0000000000000fff
[  160.218551]  ffff880136797de8 ffffffff81462325 ffff880136797de8
ffff88013647b000
[  160.226025] Call Trace:
[  160.228486]  [<ffffffff81462325>] efivar_entry_size+0x45/0xe0
[  160.234246]  [<ffffffffa006364a>] efivarfs_file_read+0x3a/0xf0 [efivarfs]
[  160.241043]  [<ffffffff811ca938>] __vfs_read+0x28/0xd0
[  160.246193]  [<ffffffff81260303>] ? security_file_permission+0xa3/0xc0
[  160.252730]  [<ffffffff811cae76>] ? rw_verify_area+0x56/0xe0
[  160.258394]  [<ffffffff811caf86>] vfs_read+0x86/0x130
[  160.263448]  [<ffffffff811cbd86>] SyS_read+0x46/0xa0
[  160.268421]  [<ffffffff81592c6e>] entry_SYSCALL_64_fastpath+0x12/0x71
[  160.274869] Code: 48 89 c3 e8 c6 51 bf ff e8 11 7e ba ff 48 8b 05 8a 45 6c
00 4c 8b 45 c8 4c 89 e6 4c 89 f1 4c 89 ea 48 8b 40 58 4d 89 c1 4d 89 f8 <48> 8b
78 48 31 c0 e8 88 52 bf ff 49 89 c4 e8 00 7f ba ff 48
[  160.294855] RIP  [<ffffffff8146618d>] virt_efi_get_variable+0x5d/0xa0
[  160.301326]  RSP <ffff880136797d78>
[  160.304821] CR2: fffffffefcc44e60
[  160.308144] ---[ end trace b0019dfbfd15b720 ]---
[  160.312999] ------------[ cut here ]------------
[  160.317647] WARNING: CPU: 0 PID: 1383 at arch/x86/kernel/fpu/core.c:41
kernel_fpu_disable+0x38/0x50()
[  160.317693] Modules linked in: bridge(E) stp(E) llc(E) iscsi_ibft(E)
iscsi_boot_sysfs(E) af_packet(E) nls_iso8859_1(E) nls_cp437(E)
intel_powerclamp(E) coretemp(E) kvm_intel(E) vfat(E) fat(E) kvm(E) iTCO_wdt(
[  160.317699] CPU: 0 PID: 1383 Comm: bash Tainted: G      D     E   
4.2.0-rc2-default+ #93
[  160.317701] Hardware name: Intel Corp. Intel(R) UDK2010 firmware developer
platform, BIOS SDV.TM.B13 Release Build (CSM Available) 07/03/2013
[  160.317704]  ffffffff8180618c ffff8800b965bea8 ffffffff8158cb70
0000000000000001
[  160.317707]  0000000000000000 ffff8800b965bee8 ffffffff81064bbc
ffff8800ba651e48
[  160.317709]  ffff88003f5e6440 000000000048140a 0000000002207580
000000000000004c
[  160.317710] Call Trace:
[  160.317718]  [<ffffffff8158cb70>] dump_stack+0x45/0x57
[  160.317727]  [<ffffffff81064bbc>] warn_slowpath_common+0x8c/0xd0
[  160.317729]  [<ffffffff81064cba>] warn_slowpath_null+0x1a/0x20
[  160.317731]  [<ffffffff8100dde8>] kernel_fpu_disable+0x38/0x50
[  160.317734]  [<ffffffff8100e19d>] fpu__restore+0x1d/0x110
[  160.317738]  [<ffffffff81011e03>] ? syscall_trace_leave+0x93/0xf0
[  160.317741]  [<ffffffff81004013>] do_device_not_available+0x33/0x40
[  160.317746]  [<ffffffff8159459e>] device_not_available+0x1e/0x30
[  160.317748] ---[ end trace b0019dfbfd15b721 ]---


Procedure for reproducing issue:
 + Running hibernate, press power button to resume machine.
 + After resumed, running cat or hexdump any efi variable through efivarfs.
e.g.
   cat
/sys/firmware/efi/efivars/SecureBoot-8be4df61-93ca-11d2-aa0d-00e098032b8c
Then got the above kernel oops


You are receiving this mail because: