mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
x86/vga: fix mapping of the VGA text buffer
The call to ioremap_wc() in video_init() will always fail, because video_init() is called ahead of vm_init_type(), and so the underlying __vmap() call will fail to allocate the linear address space. Fix by reverting to the previous behavior and use __va() for the VGA text buffer, as it's below the 1MB boundary, and thus always mapped in the directmap. Fixes:81d195c6c0('x86: introduce ioremap_wc()') Signed-off-by: Roger Pau Monné <roger.pau@citrix.com> Reviewed-by: Jan Beulich <jbeulich@suse.com> master commit:1ca5f69e35master date: 2025-03-20 17:16:10 +0100
This commit is contained in:
1 parent
1a2b76c9bc
commit
d033cbdaaf
1 file changed
+1
-2
@@ -71,7 +71,7 @@ void __init video_init(void)
|
||||
{
|
||||
case XEN_VGATYPE_TEXT_MODE_3:
|
||||
if ( page_is_ram_type(paddr_to_pfn(0xB8000), RAM_TYPE_CONVENTIONAL) ||
|
||||
((video = ioremap_wc(0xB8000, 0x8000)) == NULL) )
|
||||
((video = __va(0xB8000)) == NULL) )
|
||||
return;
|
||||
outw(0x200a, 0x3d4); /* disable cursor */
|
||||
columns = vga_console_info.u.text_mode_3.columns;
|
||||
@@ -158,7 +158,6 @@ void __init video_endboot(void)
|
||||
if ( !vgacon_keep )
|
||||
{
|
||||
memset(video, 0, columns * lines * 2);
|
||||
iounmap(video);
|
||||
video = ZERO_BLOCK_PTR;
|
||||
}
|
||||
break;
|
||||
|
||||