SHA256
1
0
forked from pool/systemd
Dr. Werner Fink 2016-04-05 07:09:23 +00:00 committed by Git OBS Bridge
parent 1cf5a078c2
commit 8e0a3dcdb4
2 changed files with 14 additions and 13 deletions

View File

@ -134,7 +134,7 @@ Index: systemd-228/src/vconsole/vconsole-setup.c
"COMPOSETABLE", &vc_compose_table, "COMPOSETABLE", &vc_compose_table,
NULL); NULL);
if (r < 0 && r != -ENOENT) if (r < 0 && r != -ENOENT)
@@ -421,6 +428,35 @@ int main(int argc, char **argv) { @@ -421,6 +428,30 @@ int main(int argc, char **argv) {
disable_capslock = vc_kbd_disable_caps_lock && disable_capslock = vc_kbd_disable_caps_lock &&
strcasecmp(vc_kbd_disable_caps_lock, "YES") == 0; strcasecmp(vc_kbd_disable_caps_lock, "YES") == 0;
@ -144,33 +144,28 @@ Index: systemd-228/src/vconsole/vconsole-setup.c
+ int _cleanup_close_ fdmem; + int _cleanup_close_ fdmem;
+ char c; + char c;
+ +
+ errno = 0;
+ fdmem = open ("/dev/mem", O_RDONLY); + fdmem = open ("/dev/mem", O_RDONLY);
+ if (fdmem < 0) { + if (fdmem < 0)
+ log_warning_errno(errno, "Failed to open /dev/mem: %m");
+ goto finish; + goto finish;
+ }
+ +
+ if (lseek(fdmem, BIOS_DATA_AREA + BDA_KEYBOARD_STATUS_FLAGS_4, SEEK_SET) == (off_t) -1) { + if (lseek(fdmem, BIOS_DATA_AREA + BDA_KEYBOARD_STATUS_FLAGS_4, SEEK_SET) == (off_t) -1)
+ log_warning_errno(errno, "Failed to seek /dev/mem: %m");
+ goto finish; + goto finish;
+ }
+ +
+ if (read(fdmem, &c, sizeof(char)) == -1) { + if (read(fdmem, &c, sizeof(char)) == -1)
+ log_warning_errno(errno, "Failed to read /dev/mem: %m");
+ goto finish; + goto finish;
+ }
+ +
+ if (c & BDA_KSF4_NUMLOCK_MASK) + if (c & BDA_KSF4_NUMLOCK_MASK)
+ numlock = true; + numlock = true;
+ finish: + finish:
+ if (fdmem >= 0) + if (errno)
+ close(fdmem); + log_warning_errno(errno, "Failed to read /dev/mem: %m");
+ } + }
+#endif /* x86 */ +#endif /* x86 */
#endif /* HAVE_SYSV_COMPAT */ #endif /* HAVE_SYSV_COMPAT */
r = parse_env_file("/etc/vconsole.conf", NEWLINE, r = parse_env_file("/etc/vconsole.conf", NEWLINE,
@@ -456,6 +492,10 @@ int main(int argc, char **argv) { @@ -456,6 +487,10 @@ int main(int argc, char **argv) {
font_ok = font_load_and_wait(vc, vc_font, vc_font_map, vc_font_unimap) > 0; font_ok = font_load_and_wait(vc, vc_font, vc_font_map, vc_font_unimap) > 0;
keyboard_ok = keyboard_load_and_wait(vc, vc_keymap, vc_keymap_toggle, keyboard_ok = keyboard_load_and_wait(vc, vc_keymap, vc_keymap_toggle,
utf8, disable_capslock) > 0; utf8, disable_capslock) > 0;

View File

@ -1,3 +1,9 @@
-------------------------------------------------------------------
Tue Apr 5 07:08:39 UTC 2016 - werner@suse.de
- Fix patch patch handle-numlock-value-in-etc-sysconfig-keyboard.patch
that is do not close a file descriptor twice (boo#973907)
------------------------------------------------------------------- -------------------------------------------------------------------
Sat Mar 26 15:59:36 UTC 2016 - jengelh@inai.de Sat Mar 26 15:59:36 UTC 2016 - jengelh@inai.de