Date: Wed, 16 Jul 2008 19:41:05 +0900 From: Taketo Kabe <kabe@sra-tohoku.co.jp> To: FreeBSD-gnats-submit@FreeBSD.org Cc: kabe@sra-tohoku.co.jp Subject: kern/125675: [PATCH] Add hw.syscons.kbd_suspend new sysctl variable to disable keyboard suspend Message-ID: <080716194105.M0113063@vega.sra-tohoku.jp> Resent-Message-ID: <200807161120.m6GBK1TI034042@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 125675 >Category: kern >Synopsis: [PATCH] Add hw.syscons.kbd_suspend new sysctl variable to disable keyboard suspend >Confidential: no >Severity: non-critical >Priority: medium >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Wed Jul 16 11:20:01 UTC 2008 >Closed-Date: >Last-Modified: >Originator: Taketo Kabe >Release: FreeBSD 7.0-RELEASE-p3 i386 >Organization: >Environment: System: FreeBSD tunnel.local 7.0-RELEASE-p3 FreeBSD 7.0-RELEASE-p3 #2: Wed Jul 16 18:32:37 JST 2008 root@tunnel.local:/usr/obj/usr/src/sys/GENERIC i386 >Description: This patch adds a new sysctl variable, hw.syscons.kbd_suspend to disable suspend by Ctl-Alt-Space/Alt-Break keyboard sequence. Is an suspend counterpart of existing hw.syscons.kbd_debug and hw.syscons.kbd_reboot sysctl variable. The suspend key sequence could be easily misinvoked, especially on non-US input method users using meta keys and space key for various character conversion. Alternative approach: Create your own kbdmap(5) with "susp" function deleted. >How-To-Repeat: >Fix: Patch: This patch adds a new sysctl variable, hw.syscons.kbd_suspend to disable suspend by Ctl-Alt-Space/Alt-Break keyboard sequence. Is an suspend counterpart of existing hw.syscons.kbd_debug and hw.syscons.kbd_reboot sysctl variable. Alternative approach: Create your own kbdmap(5) with "susp" function deleted. diff -Naru sys.70p3/conf/NOTES sys/conf/NOTES --- sys.70p3/conf/NOTES 2007-09-26 21:14:17.000000000 +0000 +++ sys/conf/NOTES 2008-07-16 09:16:01.000000000 +0000 @@ -1350,6 +1350,7 @@ makeoptions SC_DFLT_FONT=cp850 options SC_DISABLE_KDBKEY # disable `debug' key options SC_DISABLE_REBOOT # disable reboot key sequence +options SC_DISABLE_SUSPEND # disable suspend key sequence options SC_HISTORY_SIZE=200 # number of history buffer lines options SC_MOUSE_CHAR=0x3 # char code for text mode mouse cursor options SC_PIXEL_MODE # add support for the raster text mode diff -Naru sys.70p3/conf/options sys/conf/options --- sys.70p3/conf/options 2007-09-23 07:34:23.000000000 +0000 +++ sys/conf/options 2008-07-16 09:00:50.000000000 +0000 @@ -689,6 +689,7 @@ SC_DFLT_FONT opt_syscons.h SC_DISABLE_KDBKEY opt_syscons.h SC_DISABLE_REBOOT opt_syscons.h +SC_DISABLE_SUSPEND opt_syscons.h SC_HISTORY_SIZE opt_syscons.h SC_KERNEL_CONS_ATTR opt_syscons.h SC_KERNEL_CONS_REV_ATTR opt_syscons.h diff -Naru sys.70p3/dev/syscons/syscons.c sys/dev/syscons/syscons.c --- sys.70p3/dev/syscons/syscons.c 2008-01-28 12:49:33.000000000 +0000 +++ sys/dev/syscons/syscons.c 2008-07-16 09:23:13.000000000 +0000 @@ -123,6 +123,10 @@ static int enable_kdbkey = TRUE; /* enable keyboard debug */ #endif +#ifndef SC_DISABLE_SUSPEND +static int enable_suspend = TRUE; /* enable keyboard suspend */ +#endif + static long scrn_blank_time = 0; /* screen saver timeout value */ #ifdef DEV_SPLASH static int scrn_blanked; /* # of blanked screen */ @@ -146,6 +150,10 @@ SYSCTL_INT(_hw_syscons, OID_AUTO, kbd_debug, CTLFLAG_RW|CTLFLAG_SECURE, &enable_kdbkey, 0, "enable keyboard debug"); #endif +#ifndef SC_DISABLE_SUSPEND +SYSCTL_INT(_hw_syscons, OID_AUTO, kbd_suspend, CTLFLAG_RW|CTLFLAG_SECURE, &enable_suspend, + 0, "enable keyboard suspend"); +#endif #if !defined(SC_NO_FONT_LOADING) && defined(SC_DFLT_FONT) #include "font.h" #endif @@ -3366,7 +3374,10 @@ break; case SUSP: - power_pm_suspend(POWER_SLEEP_STATE_SUSPEND); +#ifndef SC_DISABLE_SUSPEND + if (enable_suspend) + power_pm_suspend(POWER_SLEEP_STATE_SUSPEND); +#endif break; case STBY: power_pm_suspend(POWER_SLEEP_STATE_STANDBY); diff -Naru share.70p3/man/man4/syscons.4 share/man/man4/syscons.4 --- share.70p3/man/man4/syscons.4 2006-12-14 16:40:57.000000000 +0000 +++ share/man/man4/syscons.4 2008-07-16 09:13:43.000000000 +0000 @@ -40,6 +40,7 @@ .Cd "options SC_CUT_SPACES2TABS" .Cd "options SC_DISABLE_KDBKEY" .Cd "options SC_DISABLE_REBOOT" +.Cd "options SC_DISABLE_SUSPEND" .Cd "options SC_HISTORY_SIZE=N" .Cd "options SC_MOUSE_CHAR=C" .Cd "options SC_NO_CUTPASTE" @@ -302,6 +303,15 @@ .Xr sysctl 8 variable .Va hw.syscons.kbd_reboot . +.It Dv SC_DISABLE_SUSPEND +This option disables the ``suspend'' key (by default, it is +.Dv Ctl-Alt-Space or Alt-Break ) , +in case suspend does not work properly on your system. +If this option is not defined, this behavior may be controlled at runtime +by the +.Xr sysctl 8 +variable +.Va hw.syscons.kbd_suspend . .It Dv SC_HISTORY_SIZE=N Sets the size of back scroll buffer to .Fa N >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?080716194105.M0113063>