diary/Nagura/2016-11-11
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[diary/Nagura]]
791日
・linux 4.4.31
linux 4.4.31リリースいただいたので早速~
~
vd_unicon-kernel-20160116-4.4.patch~
~
# cat drivers/tty/vt/vt.c.rej~
--- drivers/tty/vt/vt.c 2016-01-11 08:01:32.000000000 +...
+++ drivers/tty/vt/vt.c 2016-01-16 14:22:52.000000000 +...
@@ -957,12 +1043,19 @@ static int vc_do_resize(struct t...
if (new_cols == vc->vc_cols && new_rows == vc->...
return 0;~
~
+#ifdef CONFIG_UNICON~
+ newscreen = kmalloc(new_screen_size*2, GFP_USER...
+#else~
newscreen = kmalloc(new_screen_size, GFP_USER);~
+#endif~
if (!newscreen)~
return -ENOMEM;~
~
old_rows = vc->vc_rows;~
old_row_size = vc->vc_size_row;~
+#ifdef CONFIG_UNICON~
+ old_screen_size = vc->vc_screenbuf_size;~
+#endif~
~
err = resize_screen(vc, new_cols, new_rows, use...
if (err) {~
~
http://lkml.iu.edu/hypermail/linux/kernel/1611.1/02476....
をもそもそもそ~
ここのようだ?~
~
diff --git a/drivers/tty/vt/vt.c b/drivers/tty/vt/vt.c~
index 136ebaaa9cc0..5ab54ef4f304 100644~
--- a/drivers/tty/vt/vt.c~
+++ b/drivers/tty/vt/vt.c~
@@ -872,10 +872,15 @@ static int vc_do_resize(struct tt...
if (new_cols == vc->vc_cols && new_rows == vc->vc_rows)~
return 0;~
~
+ if (new_screen_size > (4 << 20))~
+ return -EINVAL;~
newscreen = kmalloc(new_screen_size, GFP_USER);~
if (!newscreen)~
return -ENOMEM;~
~
+ if (vc == sel_cons)~
+ clear_selection();~
+~
old_rows = vc->vc_rows;~
old_row_size = vc->vc_size_row;~
~
@@ -1173,7 +1178,7 @@ static void csi_J(struct vc_data ...
break;~
case 3: /* erase scroll-back buffer (and whole display)...
scr_memsetw(vc->vc_screenbuf, vc->vc_video_erase_char,~
- vc->vc_screenbuf_size >> 1);~
+ vc->vc_screenbuf_size);~
set_origin(vc);~
if (CON_IS_VISIBLE(vc))~
update_screen(vc);~
vt.cに手をいれていただいたようだ~
ひさしぶりにパッチをやってみなけりゃ。~
#comment
終了行:
[[diary/Nagura]]
791日
・linux 4.4.31
linux 4.4.31リリースいただいたので早速~
~
vd_unicon-kernel-20160116-4.4.patch~
~
# cat drivers/tty/vt/vt.c.rej~
--- drivers/tty/vt/vt.c 2016-01-11 08:01:32.000000000 +...
+++ drivers/tty/vt/vt.c 2016-01-16 14:22:52.000000000 +...
@@ -957,12 +1043,19 @@ static int vc_do_resize(struct t...
if (new_cols == vc->vc_cols && new_rows == vc->...
return 0;~
~
+#ifdef CONFIG_UNICON~
+ newscreen = kmalloc(new_screen_size*2, GFP_USER...
+#else~
newscreen = kmalloc(new_screen_size, GFP_USER);~
+#endif~
if (!newscreen)~
return -ENOMEM;~
~
old_rows = vc->vc_rows;~
old_row_size = vc->vc_size_row;~
+#ifdef CONFIG_UNICON~
+ old_screen_size = vc->vc_screenbuf_size;~
+#endif~
~
err = resize_screen(vc, new_cols, new_rows, use...
if (err) {~
~
http://lkml.iu.edu/hypermail/linux/kernel/1611.1/02476....
をもそもそもそ~
ここのようだ?~
~
diff --git a/drivers/tty/vt/vt.c b/drivers/tty/vt/vt.c~
index 136ebaaa9cc0..5ab54ef4f304 100644~
--- a/drivers/tty/vt/vt.c~
+++ b/drivers/tty/vt/vt.c~
@@ -872,10 +872,15 @@ static int vc_do_resize(struct tt...
if (new_cols == vc->vc_cols && new_rows == vc->vc_rows)~
return 0;~
~
+ if (new_screen_size > (4 << 20))~
+ return -EINVAL;~
newscreen = kmalloc(new_screen_size, GFP_USER);~
if (!newscreen)~
return -ENOMEM;~
~
+ if (vc == sel_cons)~
+ clear_selection();~
+~
old_rows = vc->vc_rows;~
old_row_size = vc->vc_size_row;~
~
@@ -1173,7 +1178,7 @@ static void csi_J(struct vc_data ...
break;~
case 3: /* erase scroll-back buffer (and whole display)...
scr_memsetw(vc->vc_screenbuf, vc->vc_video_erase_char,~
- vc->vc_screenbuf_size >> 1);~
+ vc->vc_screenbuf_size);~
set_origin(vc);~
if (CON_IS_VISIBLE(vc))~
update_screen(vc);~
vt.cに手をいれていただいたようだ~
ひさしぶりにパッチをやってみなけりゃ。~
#comment
ページ名: