Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

s390/char : Rename EBCDIC keymap variables

The Linux Virtual Terminal (VT) layer provides a default keymap
which is compiled when VT layer is enabled. But at the same time
we are also compiling the EBCDIC keymap and this causes the linker
to complain.

So let's rename the EBCDIC keymap variables to prevent linker
conflict.

Signed-off-by: Farhan Ali <alifm@linux.vnet.ibm.com>
Acked-by: Christian Borntraeger <borntraeger@de.ibm.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Message-Id: <f670a2698d2372e1e990c48a29334ffe894804b1.1519315352.git.alifm@linux.vnet.ibm.com>
Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>

authored by

Farhan Ali and committed by
Martin Schwidefsky
aa0f2dd4 0a3994f9

+60 -47
+33 -31
drivers/s390/char/defkeymap.c
··· 9 9 #include <linux/kbd_kern.h> 10 10 #include <linux/kbd_diacr.h> 11 11 12 - u_short plain_map[NR_KEYS] = { 12 + #include "keyboard.h" 13 + 14 + u_short ebc_plain_map[NR_KEYS] = { 13 15 0xf000, 0xf000, 0xf000, 0xf000, 0xf000, 0xf000, 0xf000, 0xf000, 14 16 0xf000, 0xf000, 0xf000, 0xf000, 0xf000, 0xf000, 0xf000, 0xf000, 15 17 0xf000, 0xf000, 0xf000, 0xf000, 0xf000, 0xf000, 0xf000, 0xf000, ··· 87 85 0xf20a, 0xf108, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 88 86 }; 89 87 90 - ushort *key_maps[MAX_NR_KEYMAPS] = { 91 - plain_map, shift_map, NULL, NULL, 88 + ushort *ebc_key_maps[MAX_NR_KEYMAPS] = { 89 + ebc_plain_map, shift_map, NULL, NULL, 92 90 ctrl_map, shift_ctrl_map, NULL, 93 91 }; 94 92 95 - unsigned int keymap_count = 4; 93 + unsigned int ebc_keymap_count = 4; 96 94 97 95 98 96 /* ··· 101 99 * the default and allocate dynamically in chunks of 512 bytes. 102 100 */ 103 101 104 - char func_buf[] = { 102 + char ebc_func_buf[] = { 105 103 '\033', '[', '[', 'A', 0, 106 104 '\033', '[', '[', 'B', 0, 107 105 '\033', '[', '[', 'C', 0, ··· 125 123 }; 126 124 127 125 128 - char *funcbufptr = func_buf; 129 - int funcbufsize = sizeof(func_buf); 130 - int funcbufleft = 0; /* space left */ 126 + char *ebc_funcbufptr = ebc_func_buf; 127 + int ebc_funcbufsize = sizeof(ebc_func_buf); 128 + int ebc_funcbufleft = 0; /* space left */ 131 129 132 - char *func_table[MAX_NR_FUNC] = { 133 - func_buf + 0, 134 - func_buf + 5, 135 - func_buf + 10, 136 - func_buf + 15, 137 - func_buf + 20, 138 - func_buf + 25, 139 - func_buf + 31, 140 - func_buf + 37, 141 - func_buf + 43, 142 - func_buf + 49, 143 - func_buf + 55, 144 - func_buf + 61, 145 - func_buf + 67, 146 - func_buf + 73, 147 - func_buf + 79, 148 - func_buf + 85, 149 - func_buf + 91, 150 - func_buf + 97, 151 - func_buf + 103, 152 - func_buf + 109, 130 + char *ebc_func_table[MAX_NR_FUNC] = { 131 + ebc_func_buf + 0, 132 + ebc_func_buf + 5, 133 + ebc_func_buf + 10, 134 + ebc_func_buf + 15, 135 + ebc_func_buf + 20, 136 + ebc_func_buf + 25, 137 + ebc_func_buf + 31, 138 + ebc_func_buf + 37, 139 + ebc_func_buf + 43, 140 + ebc_func_buf + 49, 141 + ebc_func_buf + 55, 142 + ebc_func_buf + 61, 143 + ebc_func_buf + 67, 144 + ebc_func_buf + 73, 145 + ebc_func_buf + 79, 146 + ebc_func_buf + 85, 147 + ebc_func_buf + 91, 148 + ebc_func_buf + 97, 149 + ebc_func_buf + 103, 150 + ebc_func_buf + 109, 153 151 NULL, 154 152 }; 155 153 156 - struct kbdiacruc accent_table[MAX_DIACR] = { 154 + struct kbdiacruc ebc_accent_table[MAX_DIACR] = { 157 155 {'^', 'c', 0003}, {'^', 'd', 0004}, 158 156 {'^', 'z', 0032}, {'^', 0012, 0000}, 159 157 }; 160 158 161 - unsigned int accent_table_size = 4; 159 + unsigned int ebc_accent_table_size = 4;
+16 -16
drivers/s390/char/keyboard.c
··· 54 54 kbd = kzalloc(sizeof(struct kbd_data), GFP_KERNEL); 55 55 if (!kbd) 56 56 goto out; 57 - kbd->key_maps = kzalloc(sizeof(key_maps), GFP_KERNEL); 57 + kbd->key_maps = kzalloc(sizeof(ebc_key_maps), GFP_KERNEL); 58 58 if (!kbd->key_maps) 59 59 goto out_kbd; 60 - for (i = 0; i < ARRAY_SIZE(key_maps); i++) { 61 - if (key_maps[i]) { 62 - kbd->key_maps[i] = kmemdup(key_maps[i], 60 + for (i = 0; i < ARRAY_SIZE(ebc_key_maps); i++) { 61 + if (ebc_key_maps[i]) { 62 + kbd->key_maps[i] = kmemdup(ebc_key_maps[i], 63 63 sizeof(u_short) * NR_KEYS, 64 64 GFP_KERNEL); 65 65 if (!kbd->key_maps[i]) 66 66 goto out_maps; 67 67 } 68 68 } 69 - kbd->func_table = kzalloc(sizeof(func_table), GFP_KERNEL); 69 + kbd->func_table = kzalloc(sizeof(ebc_func_table), GFP_KERNEL); 70 70 if (!kbd->func_table) 71 71 goto out_maps; 72 - for (i = 0; i < ARRAY_SIZE(func_table); i++) { 73 - if (func_table[i]) { 74 - kbd->func_table[i] = kstrdup(func_table[i], 72 + for (i = 0; i < ARRAY_SIZE(ebc_func_table); i++) { 73 + if (ebc_func_table[i]) { 74 + kbd->func_table[i] = kstrdup(ebc_func_table[i], 75 75 GFP_KERNEL); 76 76 if (!kbd->func_table[i]) 77 77 goto out_func; ··· 81 81 kzalloc(sizeof(fn_handler_fn *) * NR_FN_HANDLER, GFP_KERNEL); 82 82 if (!kbd->fn_handler) 83 83 goto out_func; 84 - kbd->accent_table = kmemdup(accent_table, 84 + kbd->accent_table = kmemdup(ebc_accent_table, 85 85 sizeof(struct kbdiacruc) * MAX_DIACR, 86 86 GFP_KERNEL); 87 87 if (!kbd->accent_table) 88 88 goto out_fn_handler; 89 - kbd->accent_table_size = accent_table_size; 89 + kbd->accent_table_size = ebc_accent_table_size; 90 90 return kbd; 91 91 92 92 out_fn_handler: 93 93 kfree(kbd->fn_handler); 94 94 out_func: 95 - for (i = 0; i < ARRAY_SIZE(func_table); i++) 95 + for (i = 0; i < ARRAY_SIZE(ebc_func_table); i++) 96 96 kfree(kbd->func_table[i]); 97 97 kfree(kbd->func_table); 98 98 out_maps: 99 - for (i = 0; i < ARRAY_SIZE(key_maps); i++) 99 + for (i = 0; i < ARRAY_SIZE(ebc_key_maps); i++) 100 100 kfree(kbd->key_maps[i]); 101 101 kfree(kbd->key_maps); 102 102 out_kbd: ··· 112 112 113 113 kfree(kbd->accent_table); 114 114 kfree(kbd->fn_handler); 115 - for (i = 0; i < ARRAY_SIZE(func_table); i++) 115 + for (i = 0; i < ARRAY_SIZE(ebc_func_table); i++) 116 116 kfree(kbd->func_table[i]); 117 117 kfree(kbd->func_table); 118 - for (i = 0; i < ARRAY_SIZE(key_maps); i++) 118 + for (i = 0; i < ARRAY_SIZE(ebc_key_maps); i++) 119 119 kfree(kbd->key_maps[i]); 120 120 kfree(kbd->key_maps); 121 121 kfree(kbd); ··· 131 131 int i, j, k; 132 132 133 133 memset(ascebc, 0x40, 256); 134 - for (i = 0; i < ARRAY_SIZE(key_maps); i++) { 134 + for (i = 0; i < ARRAY_SIZE(ebc_key_maps); i++) { 135 135 keymap = kbd->key_maps[i]; 136 136 if (!keymap) 137 137 continue; ··· 158 158 int i, j, k; 159 159 160 160 memset(ebcasc, ' ', 256); 161 - for (i = 0; i < ARRAY_SIZE(key_maps); i++) { 161 + for (i = 0; i < ARRAY_SIZE(ebc_key_maps); i++) { 162 162 keymap = kbd->key_maps[i]; 163 163 if (!keymap) 164 164 continue;
+11
drivers/s390/char/keyboard.h
··· 14 14 15 15 struct kbd_data; 16 16 17 + extern int ebc_funcbufsize, ebc_funcbufleft; 18 + extern char *ebc_func_table[MAX_NR_FUNC]; 19 + extern char ebc_func_buf[]; 20 + extern char *ebc_funcbufptr; 21 + extern unsigned int ebc_keymap_count; 22 + 23 + extern struct kbdiacruc ebc_accent_table[]; 24 + extern unsigned int ebc_accent_table_size; 25 + extern unsigned short *ebc_key_maps[MAX_NR_KEYMAPS]; 26 + extern unsigned short ebc_plain_map[NR_KEYS]; 27 + 17 28 typedef void (fn_handler_fn)(struct kbd_data *); 18 29 19 30 /*