Hibernate can oops in resume on Arrandale CPUs
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
linux (Ubuntu) |
Fix Released
|
High
|
Colin Ian King | ||
Karmic |
Fix Released
|
Undecided
|
Unassigned | ||
Lucid |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
Binary package hint: linux-source-2.6.31
When resuming from hibernate on Arrandale CPUs, the restoring of the kernel image causes an oops. This always seems to occur on the final 4K of a 4M boundary, such as at address 0xc03ff000. The oops can be worked around by using kernel parameter "mem=nopentium" to stop using mixed 4M/4K pages or disabling the kernel from being restored into 4M pages (just force the use of 4K pages). The oops occurs in the following code:
00000043 <copy_loop>:
43: 85 d2 test %edx,%edx
45: 74 11 je 58 <done>
47: 8b 32 mov (%edx),%esi
49: 8b 7a 04 mov 0x4(%edx),%edi
4c: b9 00 04 00 00 mov $0x400,%ecx
51: f3 a5 rep movsl %ds:(%esi)
53: 8b 52 08 mov 0x8(%edx),%edx
56: eb eb jmp 43 <copy_loop>
This can also be fixed by an appropriate TLB flush.
Changed in linux (Ubuntu): | |
importance: | Undecided → High |
status: | New → In Progress |
assignee: | nobody → Colin King (colin-king) |
tags: | added: karmic |
Changed in linux (Ubuntu): | |
status: | In Progress → Fix Committed |
tags: |
added: verification-done removed: verification-needed |
Discussed with Intel. We now have a patch (https:/ /patchwork. kernel. org/patch/ 83694/) that will hit post rc1 and will backport this once it hits upstream.