diff options
-rw-r--r-- | main/linux-grsec/APKBUILD | 4 | ||||
-rw-r--r-- | main/linux-grsec/x86-setup-When-restoring-the-screen-update-boot_params-screen_info.patch | 48 |
2 files changed, 51 insertions, 1 deletions
diff --git a/main/linux-grsec/APKBUILD b/main/linux-grsec/APKBUILD index c2fa87917a..48464c1060 100644 --- a/main/linux-grsec/APKBUILD +++ b/main/linux-grsec/APKBUILD @@ -4,7 +4,7 @@ _flavor=grsec pkgname=linux-${_flavor} pkgver=2.6.32.15 _kernver=2.6.32 -pkgrel=1 +pkgrel=2 pkgdesc="Linux kernel with grsecurity" url=http://grsecurity.net depends="mkinitfs linux-firmware" @@ -32,6 +32,7 @@ source="ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-$_kernver.tar.bz2 0018-xfrm-Fix-crashes-in-xfrm_lookup.patch xfrm-fix-policy-unreferencing-on-larval-drop.patch r8169-fix-random-mdio_write-failures.patch + x86-setup-When-restoring-the-screen-update-boot_params-screen_info.patch kernelconfig.x86 " subpackages="$pkgname-dev linux-firmware:firmware" @@ -159,4 +160,5 @@ c09b82b89a49ba2a3836a0bc3a3312f4 0015-xfrm-cache-bundles-instead-of-policies-fo 45a676c7a1759fec60b724d557b4e295 0018-xfrm-Fix-crashes-in-xfrm_lookup.patch c7e606c11c05ff03012b21c3fe0ece47 xfrm-fix-policy-unreferencing-on-larval-drop.patch ce4a74190febe13713bab1b886dd5bee r8169-fix-random-mdio_write-failures.patch +a1bcf76870b63a4a4035a8948fb758e2 x86-setup-When-restoring-the-screen-update-boot_params-screen_info.patch 442d7174a9755ed7bba22ebd4918bbe5 kernelconfig.x86" diff --git a/main/linux-grsec/x86-setup-When-restoring-the-screen-update-boot_params-screen_info.patch b/main/linux-grsec/x86-setup-When-restoring-the-screen-update-boot_params-screen_info.patch new file mode 100644 index 0000000000..a4f94d7fa4 --- /dev/null +++ b/main/linux-grsec/x86-setup-When-restoring-the-screen-update-boot_params-screen_info.patch @@ -0,0 +1,48 @@ +From f1f6baf8f1df29be38003089787e378567ce0086 Mon Sep 17 00:00:00 2001 +From: H. Peter Anvin <hpa@zytor.com> +Date: Wed, 17 Feb 2010 18:32:06 -0800 +Subject: [PATCH] x86, setup: When restoring the screen, update boot_params.screen_info + +When we restore the screen content after a mode change, we return the +cursor to its former position. However, we need to also update +boot_params.screen_info accordingly, so that the decompression code +knows where on the screen the cursor is. Just in case the video BIOS +does something extra screwy, read the cursor position back from the +BIOS instead of relying on it doing the right thing. + +While we're at it, make sure we cap the cursor position to the new +screen coordinates. + +Reported-by: Wim Osterholt <wim@djo.tudelft.nl> +Bugzilla-Reference: http://bugzilla.kernel.org/show_bug.cgi?id=15329 +Signed-off-by: H. Peter Anvin <hpa@zytor.com> +--- + arch/x86/boot/video.c | 7 +++++++ + 1 files changed, 7 insertions(+), 0 deletions(-) + +diff --git a/arch/x86/boot/video.c b/arch/x86/boot/video.c +index f767164..43eda28 100644 +--- a/arch/x86/boot/video.c ++++ b/arch/x86/boot/video.c +@@ -298,11 +298,18 @@ static void restore_screen(void) + } + + /* Restore cursor position */ ++ if (saved.curx >= xs) ++ saved.curx = xs-1; ++ if (saved.cury >= ys) ++ saved.cury = ys-1; ++ + initregs(&ireg); + ireg.ah = 0x02; /* Set cursor position */ + ireg.dh = saved.cury; + ireg.dl = saved.curx; + intcall(0x10, &ireg, NULL); ++ ++ store_cursor_position(); + } + + void set_video(void) +-- +1.7.1 + |