diff options
author | Dave Young <dyoung@redhat.com> | 2014-05-01 21:15:48 +0800 |
---|---|---|
committer | Matt Fleming <matt.fleming@intel.com> | 2014-05-03 06:39:06 +0100 |
commit | 5f35eb0e29ca26da82febe49d7698dbeb8882ea0 (patch) | |
tree | 6f98a3b3ef40a3ec8d35867f1e5668349b0a8d81 /kernel/task_work.c | |
parent | 47514c996fac5e6f13ef3a4c5e23f1c5cffabb7b (diff) | |
download | op-kernel-dev-5f35eb0e29ca26da82febe49d7698dbeb8882ea0.zip op-kernel-dev-5f35eb0e29ca26da82febe49d7698dbeb8882ea0.tar.gz |
x86/efi: earlyprintk=efi,keep fix
earlyprintk=efi,keep will cause kernel hangs while freeing initmem like
below:
VFS: Mounted root (ext4 filesystem) readonly on device 254:2.
devtmpfs: mounted
Freeing unused kernel memory: 880K (ffffffff817d4000 - ffffffff818b0000)
It is caused by efi earlyprintk use __init function which will be freed
later. Such as early_efi_write is marked as __init, also it will use
early_ioremap which is init function as well.
To fix this issue, I added early initcall early_efi_map_fb which maps
the whole efi fb for later use. OTOH, adding a wrapper function
early_efi_map which calls early_ioremap before ioremap is available.
With this patch applied efi boot ok with earlyprintk=efi,keep console=efi
Signed-off-by: Dave Young <dyoung@redhat.com>
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
Diffstat (limited to 'kernel/task_work.c')
0 files changed, 0 insertions, 0 deletions