From 2f6e28eff95eb1673d239b25d4fc4e8a2f08a8f5 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Thu, 1 Dec 2022 09:11:09 +0100 Subject: [PATCH] drop speakup patches from 5.10 and 5.15 Not relevant --- queue-5.10/series | 2 - ...-generate-speakupmap.h-automatically.patch | 563 ------------------ ...lace-utils-u_char-with-unsigned-char.patch | 46 -- queue-5.15/series | 2 - ...-generate-speakupmap.h-automatically.patch | 563 ------------------ ...lace-utils-u_char-with-unsigned-char.patch | 46 -- 6 files changed, 1222 deletions(-) delete mode 100644 queue-5.10/speakup-generate-speakupmap.h-automatically.patch delete mode 100644 queue-5.10/speakup-replace-utils-u_char-with-unsigned-char.patch delete mode 100644 queue-5.15/speakup-generate-speakupmap.h-automatically.patch delete mode 100644 queue-5.15/speakup-replace-utils-u_char-with-unsigned-char.patch diff --git a/queue-5.10/series b/queue-5.10/series index 764035b9bbd..8b0f5b3d672 100644 --- a/queue-5.10/series +++ b/queue-5.10/series @@ -6,8 +6,6 @@ bridge-switchdev-fix-memory-leaks-when-changing-vlan.patch drm-display-don-t-assume-dual-mode-adaptors-support-.patch nvme-add-a-bogus-subsystem-nqn-quirk-for-micron-mtfd.patch nvme-pci-add-nvme_quirk_bogus_nid-for-micron-nitro.patch -speakup-generate-speakupmap.h-automatically.patch -speakup-replace-utils-u_char-with-unsigned-char.patch iio-ms5611-simplify-io-callback-parameters.patch iio-pressure-ms5611-fixed-value-compensation-bug.patch ceph-do-not-update-snapshot-context-when-there-is-no.patch diff --git a/queue-5.10/speakup-generate-speakupmap.h-automatically.patch b/queue-5.10/speakup-generate-speakupmap.h-automatically.patch deleted file mode 100644 index b3065e33a24..00000000000 --- a/queue-5.10/speakup-generate-speakupmap.h-automatically.patch +++ /dev/null @@ -1,563 +0,0 @@ -From 07e6e8258190d72818dd94a516e32ccdebc92041 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Sun, 12 Jun 2022 19:22:44 +0200 -Subject: speakup: Generate speakupmap.h automatically - -From: Samuel Thibault - -[ Upstream commit 6646b95aab5f62c049f1416a3801dec5432c348b ] - -speakupmap.h was not actually intended to be source code, speakupmap.map -is. - -This resurrects the makemapdata.c and genmap.c tools to generate -speakupmap.h automatically from the input and speakup headers, and the -speakupmap.map keyboard mapping source file. - -Signed-off-by: Samuel Thibault -Link: https://lore.kernel.org/r/20220515230358.ikwt2kspiwvv5cf4@begin -Signed-off-by: Greg Kroah-Hartman -Stable-dep-of: 92ca969ff881 ("speakup: replace utils' u_char with unsigned char") -Signed-off-by: Sasha Levin ---- - drivers/accessibility/speakup/.gitignore | 4 + - drivers/accessibility/speakup/Makefile | 28 ++++ - drivers/accessibility/speakup/genmap.c | 162 ++++++++++++++++++++ - drivers/accessibility/speakup/makemapdata.c | 125 +++++++++++++++ - drivers/accessibility/speakup/speakupmap.h | 66 -------- - drivers/accessibility/speakup/utils.h | 102 ++++++++++++ - 6 files changed, 421 insertions(+), 66 deletions(-) - create mode 100644 drivers/accessibility/speakup/.gitignore - create mode 100644 drivers/accessibility/speakup/genmap.c - create mode 100644 drivers/accessibility/speakup/makemapdata.c - delete mode 100644 drivers/accessibility/speakup/speakupmap.h - create mode 100644 drivers/accessibility/speakup/utils.h - -diff --git a/drivers/accessibility/speakup/.gitignore b/drivers/accessibility/speakup/.gitignore -new file mode 100644 -index 000000000000..ac084679fea7 ---- /dev/null -+++ b/drivers/accessibility/speakup/.gitignore -@@ -0,0 +1,4 @@ -+/makemapdata -+/mapdata.h -+/genmap -+/speakupmap.h -diff --git a/drivers/accessibility/speakup/Makefile b/drivers/accessibility/speakup/Makefile -index 6e4bfac8af65..ba69b0803d42 100644 ---- a/drivers/accessibility/speakup/Makefile -+++ b/drivers/accessibility/speakup/Makefile -@@ -30,3 +30,31 @@ speakup-y := \ - thread.o \ - varhandlers.o - speakup-$(CONFIG_SPEAKUP_SERIALIO) += serialio.o -+ -+ -+clean-files := mapdata.h speakupmap.h -+ -+ -+# Generate mapdata.h from headers -+hostprogs += makemapdata -+makemapdata-objs := makemapdata.o -+ -+quiet_cmd_mkmap = MKMAP $@ -+ cmd_mkmap = TOPDIR=$(srctree) $(obj)/makemapdata > $@ -+ -+$(obj)/mapdata.h: $(obj)/makemapdata -+ $(call cmd,mkmap) -+ -+ -+# Generate speakupmap.h from mapdata.h -+hostprogs += genmap -+genmap-objs := genmap.o -+$(obj)/genmap.o: $(obj)/mapdata.h -+ -+quiet_cmd_genmap = GENMAP $@ -+ cmd_genmap = $(obj)/genmap $< > $@ -+ -+$(obj)/speakupmap.h: $(src)/speakupmap.map $(obj)/genmap -+ $(call cmd,genmap) -+ -+$(obj)/main.o: $(obj)/speakupmap.h -diff --git a/drivers/accessibility/speakup/genmap.c b/drivers/accessibility/speakup/genmap.c -new file mode 100644 -index 000000000000..0125000e00d9 ---- /dev/null -+++ b/drivers/accessibility/speakup/genmap.c -@@ -0,0 +1,162 @@ -+// SPDX-License-Identifier: GPL-2.0+ -+/* genmap.c -+ * originally written by: Kirk Reiser. -+ * -+ ** Copyright (C) 2002 Kirk Reiser. -+ * Copyright (C) 2003 David Borowski. -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include "utils.h" -+ -+struct st_key_init { -+ char *name; -+ int value, shift; -+}; -+ -+static unsigned char key_data[MAXKEYVAL][16], *kp; -+ -+#include "mapdata.h" -+ -+static const char delims[] = "\t\n "; -+static char *cp; -+static int map_ver = 119; /* an arbitrary number so speakup can check */ -+static int shift_table[17]; -+static int max_states = 1, flags; -+/* flags reserved for later, maybe for individual console maps */ -+ -+static int get_shift_value(int state) -+{ -+ int i; -+ -+ for (i = 0; shift_table[i] != state; i++) { -+ if (shift_table[i] == -1) { -+ if (i >= 16) -+ oops("too many shift states", NULL); -+ shift_table[i] = state; -+ max_states = i+1; -+ break; -+ } -+ } -+ return i; -+} -+ -+int -+main(int argc, char *argv[]) -+{ -+ int value, shift_state, i, spk_val = 0, lock_val = 0; -+ int max_key_used = 0, num_keys_used = 0; -+ struct st_key *this; -+ struct st_key_init *p_init; -+ char buffer[256]; -+ -+ bzero(key_table, sizeof(key_table)); -+ bzero(key_data, sizeof(key_data)); -+ -+ shift_table[0] = 0; -+ for (i = 1; i <= 16; i++) -+ shift_table[i] = -1; -+ -+ if (argc < 2) { -+ fputs("usage: genmap filename\n", stderr); -+ exit(1); -+ } -+ -+ for (p_init = init_key_data; p_init->name[0] != '.'; p_init++) -+ add_key(p_init->name, p_init->value, p_init->shift); -+ -+ open_input(NULL, argv[1]); -+ while (fgets(buffer, sizeof(buffer), infile)) { -+ lc++; -+ value = shift_state = 0; -+ -+ cp = strtok(buffer, delims); -+ if (*cp == '#') -+ continue; -+ -+ while (cp) { -+ if (*cp == '=') -+ break; -+ this = find_key(cp); -+ if (this == NULL) -+ oops("unknown key/modifier", cp); -+ if (this->shift == is_shift) { -+ if (value) -+ oops("modifiers must come first", cp); -+ shift_state += this->value; -+ } else if (this->shift == is_input) -+ value = this->value; -+ else -+ oops("bad modifier or key", cp); -+ cp = strtok(0, delims); -+ } -+ if (!cp) -+ oops("no = found", NULL); -+ -+ cp = strtok(0, delims); -+ if (!cp) -+ oops("no speakup function after =", NULL); -+ -+ this = find_key(cp); -+ if (this == NULL || this->shift != is_spk) -+ oops("invalid speakup function", cp); -+ -+ i = get_shift_value(shift_state); -+ if (key_data[value][i]) { -+ while (--cp > buffer) -+ if (!*cp) -+ *cp = ' '; -+ oops("two functions on same key combination", cp); -+ } -+ key_data[value][i] = (char)this->value; -+ if (value > max_key_used) -+ max_key_used = value; -+ } -+ fclose(infile); -+ -+ this = find_key("spk_key"); -+ if (this) -+ spk_val = this->value; -+ -+ this = find_key("spk_lock"); -+ if (this) -+ lock_val = this->value; -+ -+ for (lc = 1; lc <= max_key_used; lc++) { -+ kp = key_data[lc]; -+ if (!memcmp(key_data[0], kp, 16)) -+ continue; -+ num_keys_used++; -+ for (i = 0; i < max_states; i++) { -+ if (kp[i] != spk_val && kp[i] != lock_val) -+ continue; -+ shift_state = shift_table[i]; -+ if (shift_state&16) -+ continue; -+ shift_state = get_shift_value(shift_state+16); -+ kp[shift_state] = kp[i]; -+ /* fill in so we can process the key up, as spk bit will be set */ -+ } -+ } -+ -+ printf("\t%d, %d, %d,\n\t", map_ver, num_keys_used, max_states); -+ for (i = 0; i < max_states; i++) -+ printf("%d, ", shift_table[i]); -+ printf("%d,", flags); -+ for (lc = 1; lc <= max_key_used; lc++) { -+ kp = key_data[lc]; -+ if (!memcmp(key_data[0], kp, 16)) -+ continue; -+ printf("\n\t%d,", lc); -+ for (i = 0; i < max_states; i++) -+ printf(" %d,", (unsigned int)kp[i]); -+ } -+ printf("\n\t0, %d\n", map_ver); -+ -+ exit(0); -+} -diff --git a/drivers/accessibility/speakup/makemapdata.c b/drivers/accessibility/speakup/makemapdata.c -new file mode 100644 -index 000000000000..81db9ebf1fff ---- /dev/null -+++ b/drivers/accessibility/speakup/makemapdata.c -@@ -0,0 +1,125 @@ -+// SPDX-License-Identifier: GPL-2.0+ -+/* makemapdata.c -+ * originally written by: Kirk Reiser. -+ * -+ ** Copyright (C) 2002 Kirk Reiser. -+ * Copyright (C) 2003 David Borowski. -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include "utils.h" -+ -+static char buffer[256]; -+ -+static int get_define(void) -+{ -+ char *c; -+ -+ while (fgets(buffer, sizeof(buffer)-1, infile)) { -+ lc++; -+ if (strncmp(buffer, "#define", 7)) -+ continue; -+ c = buffer + 7; -+ while (*c == ' ' || *c == '\t') -+ c++; -+ def_name = c; -+ while (*c && *c != ' ' && *c != '\t' && *c != '\n') -+ c++; -+ if (!*c || *c == '\n') -+ continue; -+ *c++ = '\0'; -+ while (*c == ' ' || *c == '\t' || *c == '(') -+ c++; -+ def_val = c; -+ while (*c && *c != '\n' && *c != ')') -+ c++; -+ *c++ = '\0'; -+ return 1; -+ } -+ fclose(infile); -+ infile = 0; -+ return 0; -+} -+ -+int -+main(int argc, char *argv[]) -+{ -+ int value, i; -+ struct st_key *this; -+ const char *dir_name; -+ char *cp; -+ -+ dir_name = getenv("TOPDIR"); -+ if (!dir_name) -+ dir_name = "."; -+ bzero(key_table, sizeof(key_table)); -+ add_key("shift", 1, is_shift); -+ add_key("altgr", 2, is_shift); -+ add_key("ctrl", 4, is_shift); -+ add_key("alt", 8, is_shift); -+ add_key("spk", 16, is_shift); -+ add_key("double", 32, is_shift); -+ -+ open_input(dir_name, "include/linux/input.h"); -+ while (get_define()) { -+ if (strncmp(def_name, "KEY_", 4)) -+ continue; -+ value = atoi(def_val); -+ if (value > 0 && value < MAXKEYVAL) -+ add_key(def_name, value, is_input); -+ } -+ -+ open_input(dir_name, "include/uapi/linux/input-event-codes.h"); -+ while (get_define()) { -+ if (strncmp(def_name, "KEY_", 4)) -+ continue; -+ value = atoi(def_val); -+ if (value > 0 && value < MAXKEYVAL) -+ add_key(def_name, value, is_input); -+ } -+ -+ open_input(dir_name, "drivers/accessibility/speakup/spk_priv_keyinfo.h"); -+ while (get_define()) { -+ if (strlen(def_val) > 5) { -+ //if (def_val[0] == '(') -+ // def_val++; -+ cp = strchr(def_val, '+'); -+ if (!cp) -+ continue; -+ if (cp[-1] == ' ') -+ cp[-1] = '\0'; -+ *cp++ = '\0'; -+ this = find_key(def_val); -+ while (*cp == ' ') -+ cp++; -+ if (!this || *cp < '0' || *cp > '9') -+ continue; -+ value = this->value+atoi(cp); -+ } else if (!strncmp(def_val, "0x", 2)) -+ sscanf(def_val+2, "%x", &value); -+ else if (*def_val >= '0' && *def_val <= '9') -+ value = atoi(def_val); -+ else -+ continue; -+ add_key(def_name, value, is_spk); -+ } -+ -+ printf("struct st_key_init init_key_data[] = {\n"); -+ for (i = 0; i < HASHSIZE; i++) { -+ this = &key_table[i]; -+ if (!this->name) -+ continue; -+ do { -+ printf("\t{ \"%s\", %d, %d, },\n", this->name, this->value, this->shift); -+ this = this->next; -+ } while (this); -+ } -+ printf("\t{ \".\", 0, 0 }\n};\n"); -+ -+ exit(0); -+} -diff --git a/drivers/accessibility/speakup/speakupmap.h b/drivers/accessibility/speakup/speakupmap.h -deleted file mode 100644 -index c60d7339b89a..000000000000 ---- a/drivers/accessibility/speakup/speakupmap.h -+++ /dev/null -@@ -1,66 +0,0 @@ --/* SPDX-License-Identifier: GPL-2.0 */ -- 119, 62, 6, -- 0, 16, 20, 17, 32, 48, 0, -- 2, 0, 78, 0, 0, 0, 0, -- 3, 0, 79, 0, 0, 0, 0, -- 4, 0, 76, 0, 0, 0, 0, -- 5, 0, 77, 0, 0, 0, 0, -- 6, 0, 74, 0, 0, 0, 0, -- 7, 0, 75, 0, 0, 0, 0, -- 9, 0, 5, 46, 0, 0, 0, -- 10, 0, 4, 0, 0, 0, 0, -- 11, 0, 0, 1, 0, 0, 0, -- 12, 0, 27, 0, 33, 0, 0, -- 19, 0, 47, 0, 0, 0, 0, -- 21, 0, 29, 17, 0, 0, 0, -- 22, 0, 15, 0, 0, 0, 0, -- 23, 0, 14, 0, 0, 0, 28, -- 24, 0, 16, 0, 0, 0, 0, -- 25, 0, 30, 18, 0, 0, 0, -- 28, 0, 3, 26, 0, 0, 0, -- 35, 0, 31, 0, 0, 0, 0, -- 36, 0, 12, 0, 0, 0, 0, -- 37, 0, 11, 0, 0, 0, 22, -- 38, 0, 13, 0, 0, 0, 0, -- 39, 0, 32, 7, 0, 0, 0, -- 40, 0, 23, 0, 0, 0, 0, -- 44, 0, 44, 0, 0, 0, 0, -- 49, 0, 24, 0, 0, 0, 0, -- 50, 0, 9, 19, 6, 0, 0, -- 51, 0, 8, 0, 0, 0, 36, -- 52, 0, 10, 20, 0, 0, 0, -- 53, 0, 25, 0, 0, 0, 0, -- 55, 46, 1, 0, 0, 0, 0, -- 58, 128, 128, 0, 0, 0, 0, -- 59, 0, 45, 0, 0, 0, 0, -- 60, 0, 40, 0, 0, 0, 0, -- 61, 0, 41, 0, 0, 0, 0, -- 62, 0, 42, 0, 0, 0, 0, -- 63, 0, 34, 0, 0, 0, 0, -- 64, 0, 35, 0, 0, 0, 0, -- 65, 0, 37, 0, 0, 0, 0, -- 66, 0, 38, 0, 0, 0, 0, -- 67, 0, 66, 0, 39, 0, 0, -- 68, 0, 67, 0, 0, 0, 0, -- 71, 15, 19, 0, 0, 0, 0, -- 72, 14, 29, 0, 0, 28, 0, -- 73, 16, 17, 0, 0, 0, 0, -- 74, 27, 33, 0, 0, 0, 0, -- 75, 12, 31, 0, 0, 0, 0, -- 76, 11, 21, 0, 0, 22, 0, -- 77, 13, 32, 0, 0, 0, 0, -- 78, 23, 43, 0, 0, 0, 0, -- 79, 9, 20, 0, 0, 0, 0, -- 80, 8, 30, 0, 0, 36, 0, -- 81, 10, 18, 0, 0, 0, 0, -- 82, 128, 128, 0, 0, 0, 0, -- 83, 24, 25, 0, 0, 0, 0, -- 87, 0, 68, 0, 0, 0, 0, -- 88, 0, 69, 0, 0, 0, 0, -- 96, 3, 26, 0, 0, 0, 0, -- 98, 4, 5, 0, 0, 0, 0, -- 99, 2, 0, 0, 0, 0, 0, -- 104, 0, 6, 0, 0, 0, 0, -- 109, 0, 7, 0, 0, 0, 0, -- 125, 128, 128, 0, 0, 0, 0, -- 0, 119 -diff --git a/drivers/accessibility/speakup/utils.h b/drivers/accessibility/speakup/utils.h -new file mode 100644 -index 000000000000..4bf2ee8ac246 ---- /dev/null -+++ b/drivers/accessibility/speakup/utils.h -@@ -0,0 +1,102 @@ -+/* SPDX-License-Identifier: GPL-2.0+ */ -+/* utils.h -+ * originally written by: Kirk Reiser. -+ * -+ ** Copyright (C) 2002 Kirk Reiser. -+ * Copyright (C) 2003 David Borowski. -+ */ -+ -+#include -+ -+#define MAXKEYS 512 -+#define MAXKEYVAL 160 -+#define HASHSIZE 101 -+#define is_shift -3 -+#define is_spk -2 -+#define is_input -1 -+ -+struct st_key { -+ char *name; -+ struct st_key *next; -+ int value, shift; -+}; -+ -+struct st_key key_table[MAXKEYS]; -+struct st_key *extra_keys = key_table+HASHSIZE; -+char *def_name, *def_val; -+FILE *infile; -+int lc; -+ -+char filename[256]; -+ -+static inline void open_input(const char *dir_name, const char *name) -+{ -+ if (dir_name) -+ snprintf(filename, sizeof(filename), "%s/%s", dir_name, name); -+ else -+ snprintf(filename, sizeof(filename), "%s", name); -+ infile = fopen(filename, "r"); -+ if (infile == 0) { -+ fprintf(stderr, "can't open %s\n", filename); -+ exit(1); -+ } -+ lc = 0; -+} -+ -+static inline int oops(const char *msg, const char *info) -+{ -+ if (info == NULL) -+ info = ""; -+ fprintf(stderr, "error: file %s line %d\n", filename, lc); -+ fprintf(stderr, "%s %s\n", msg, info); -+ exit(1); -+} -+ -+static inline struct st_key *hash_name(char *name) -+{ -+ u_char *pn = (u_char *)name; -+ int hash = 0; -+ -+ while (*pn) { -+ hash = (hash * 17) & 0xfffffff; -+ if (isupper(*pn)) -+ *pn = tolower(*pn); -+ hash += (int)*pn; -+ pn++; -+ } -+ hash %= HASHSIZE; -+ return &key_table[hash]; -+} -+ -+static inline struct st_key *find_key(char *name) -+{ -+ struct st_key *this = hash_name(name); -+ -+ while (this) { -+ if (this->name && !strcmp(name, this->name)) -+ return this; -+ this = this->next; -+ } -+ return this; -+} -+ -+static inline struct st_key *add_key(char *name, int value, int shift) -+{ -+ struct st_key *this = hash_name(name); -+ -+ if (extra_keys-key_table >= MAXKEYS) -+ oops("out of key table space, enlarge MAXKEYS", NULL); -+ if (this->name != NULL) { -+ while (this->next) { -+ if (!strcmp(name, this->name)) -+ oops("attempt to add duplicate key", name); -+ this = this->next; -+ } -+ this->next = extra_keys++; -+ this = this->next; -+ } -+ this->name = strdup(name); -+ this->value = value; -+ this->shift = shift; -+ return this; -+} --- -2.35.1 - diff --git a/queue-5.10/speakup-replace-utils-u_char-with-unsigned-char.patch b/queue-5.10/speakup-replace-utils-u_char-with-unsigned-char.patch deleted file mode 100644 index ecb40f5e86a..00000000000 --- a/queue-5.10/speakup-replace-utils-u_char-with-unsigned-char.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 2837a523b2a53ba04d17c49cfdda1f3078429a9b Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Mon, 17 Oct 2022 15:09:36 +0700 -Subject: speakup: replace utils' u_char with unsigned char -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -From: Đoàn Trần Công Danh - -[ Upstream commit 92ca969ff8815f3feef2645199bd39bf594e5eeb ] - -drivers/accessibility/speakup/utils.h will be used to compile host tool -to generate metadata. - -"u_char" is a non-standard type, which is defined to "unsigned char" -on glibc but not defined by some libc, e.g. musl. - -Let's replace "u_char" with "unsigned char" - -Signed-off-by: Đoàn Trần Công Danh -Reviewed-by: Samuel Thibault -Cc: stable -Link: https://lore.kernel.org/r/b75743026aaee2d81efe3d7f2e8fa47f7d0b8ea7.1665736571.git.congdanhqx@gmail.com -Signed-off-by: Greg Kroah-Hartman -Signed-off-by: Sasha Levin ---- - drivers/accessibility/speakup/utils.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/drivers/accessibility/speakup/utils.h b/drivers/accessibility/speakup/utils.h -index 4bf2ee8ac246..4ce9a12f7664 100644 ---- a/drivers/accessibility/speakup/utils.h -+++ b/drivers/accessibility/speakup/utils.h -@@ -54,7 +54,7 @@ static inline int oops(const char *msg, const char *info) - - static inline struct st_key *hash_name(char *name) - { -- u_char *pn = (u_char *)name; -+ unsigned char *pn = (unsigned char *)name; - int hash = 0; - - while (*pn) { --- -2.35.1 - diff --git a/queue-5.15/series b/queue-5.15/series index 9618de15752..99366e1b6de 100644 --- a/queue-5.15/series +++ b/queue-5.15/series @@ -17,8 +17,6 @@ nvme-pci-add-nvme_quirk_bogus_nid-for-micron-nitro.patch nvme-pci-disable-namespace-identifiers-for-the-maxio.patch nvme-pci-disable-write-zeroes-on-various-kingston-ss.patch nvme-pci-add-nvme_quirk_bogus_nid-for-netac-nv7000.patch -speakup-generate-speakupmap.h-automatically.patch -speakup-replace-utils-u_char-with-unsigned-char.patch iio-ms5611-simplify-io-callback-parameters.patch iio-pressure-ms5611-fixed-value-compensation-bug.patch ceph-do-not-update-snapshot-context-when-there-is-no.patch diff --git a/queue-5.15/speakup-generate-speakupmap.h-automatically.patch b/queue-5.15/speakup-generate-speakupmap.h-automatically.patch deleted file mode 100644 index 002f79200a1..00000000000 --- a/queue-5.15/speakup-generate-speakupmap.h-automatically.patch +++ /dev/null @@ -1,563 +0,0 @@ -From df1e815b9659494d9dd19bf4b2f22be3e22b99c9 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Sun, 12 Jun 2022 19:22:44 +0200 -Subject: speakup: Generate speakupmap.h automatically - -From: Samuel Thibault - -[ Upstream commit 6646b95aab5f62c049f1416a3801dec5432c348b ] - -speakupmap.h was not actually intended to be source code, speakupmap.map -is. - -This resurrects the makemapdata.c and genmap.c tools to generate -speakupmap.h automatically from the input and speakup headers, and the -speakupmap.map keyboard mapping source file. - -Signed-off-by: Samuel Thibault -Link: https://lore.kernel.org/r/20220515230358.ikwt2kspiwvv5cf4@begin -Signed-off-by: Greg Kroah-Hartman -Stable-dep-of: 92ca969ff881 ("speakup: replace utils' u_char with unsigned char") -Signed-off-by: Sasha Levin ---- - drivers/accessibility/speakup/.gitignore | 4 + - drivers/accessibility/speakup/Makefile | 28 ++++ - drivers/accessibility/speakup/genmap.c | 162 ++++++++++++++++++++ - drivers/accessibility/speakup/makemapdata.c | 125 +++++++++++++++ - drivers/accessibility/speakup/speakupmap.h | 66 -------- - drivers/accessibility/speakup/utils.h | 102 ++++++++++++ - 6 files changed, 421 insertions(+), 66 deletions(-) - create mode 100644 drivers/accessibility/speakup/.gitignore - create mode 100644 drivers/accessibility/speakup/genmap.c - create mode 100644 drivers/accessibility/speakup/makemapdata.c - delete mode 100644 drivers/accessibility/speakup/speakupmap.h - create mode 100644 drivers/accessibility/speakup/utils.h - -diff --git a/drivers/accessibility/speakup/.gitignore b/drivers/accessibility/speakup/.gitignore -new file mode 100644 -index 000000000000..ac084679fea7 ---- /dev/null -+++ b/drivers/accessibility/speakup/.gitignore -@@ -0,0 +1,4 @@ -+/makemapdata -+/mapdata.h -+/genmap -+/speakupmap.h -diff --git a/drivers/accessibility/speakup/Makefile b/drivers/accessibility/speakup/Makefile -index 6e4bfac8af65..ba69b0803d42 100644 ---- a/drivers/accessibility/speakup/Makefile -+++ b/drivers/accessibility/speakup/Makefile -@@ -30,3 +30,31 @@ speakup-y := \ - thread.o \ - varhandlers.o - speakup-$(CONFIG_SPEAKUP_SERIALIO) += serialio.o -+ -+ -+clean-files := mapdata.h speakupmap.h -+ -+ -+# Generate mapdata.h from headers -+hostprogs += makemapdata -+makemapdata-objs := makemapdata.o -+ -+quiet_cmd_mkmap = MKMAP $@ -+ cmd_mkmap = TOPDIR=$(srctree) $(obj)/makemapdata > $@ -+ -+$(obj)/mapdata.h: $(obj)/makemapdata -+ $(call cmd,mkmap) -+ -+ -+# Generate speakupmap.h from mapdata.h -+hostprogs += genmap -+genmap-objs := genmap.o -+$(obj)/genmap.o: $(obj)/mapdata.h -+ -+quiet_cmd_genmap = GENMAP $@ -+ cmd_genmap = $(obj)/genmap $< > $@ -+ -+$(obj)/speakupmap.h: $(src)/speakupmap.map $(obj)/genmap -+ $(call cmd,genmap) -+ -+$(obj)/main.o: $(obj)/speakupmap.h -diff --git a/drivers/accessibility/speakup/genmap.c b/drivers/accessibility/speakup/genmap.c -new file mode 100644 -index 000000000000..0125000e00d9 ---- /dev/null -+++ b/drivers/accessibility/speakup/genmap.c -@@ -0,0 +1,162 @@ -+// SPDX-License-Identifier: GPL-2.0+ -+/* genmap.c -+ * originally written by: Kirk Reiser. -+ * -+ ** Copyright (C) 2002 Kirk Reiser. -+ * Copyright (C) 2003 David Borowski. -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include "utils.h" -+ -+struct st_key_init { -+ char *name; -+ int value, shift; -+}; -+ -+static unsigned char key_data[MAXKEYVAL][16], *kp; -+ -+#include "mapdata.h" -+ -+static const char delims[] = "\t\n "; -+static char *cp; -+static int map_ver = 119; /* an arbitrary number so speakup can check */ -+static int shift_table[17]; -+static int max_states = 1, flags; -+/* flags reserved for later, maybe for individual console maps */ -+ -+static int get_shift_value(int state) -+{ -+ int i; -+ -+ for (i = 0; shift_table[i] != state; i++) { -+ if (shift_table[i] == -1) { -+ if (i >= 16) -+ oops("too many shift states", NULL); -+ shift_table[i] = state; -+ max_states = i+1; -+ break; -+ } -+ } -+ return i; -+} -+ -+int -+main(int argc, char *argv[]) -+{ -+ int value, shift_state, i, spk_val = 0, lock_val = 0; -+ int max_key_used = 0, num_keys_used = 0; -+ struct st_key *this; -+ struct st_key_init *p_init; -+ char buffer[256]; -+ -+ bzero(key_table, sizeof(key_table)); -+ bzero(key_data, sizeof(key_data)); -+ -+ shift_table[0] = 0; -+ for (i = 1; i <= 16; i++) -+ shift_table[i] = -1; -+ -+ if (argc < 2) { -+ fputs("usage: genmap filename\n", stderr); -+ exit(1); -+ } -+ -+ for (p_init = init_key_data; p_init->name[0] != '.'; p_init++) -+ add_key(p_init->name, p_init->value, p_init->shift); -+ -+ open_input(NULL, argv[1]); -+ while (fgets(buffer, sizeof(buffer), infile)) { -+ lc++; -+ value = shift_state = 0; -+ -+ cp = strtok(buffer, delims); -+ if (*cp == '#') -+ continue; -+ -+ while (cp) { -+ if (*cp == '=') -+ break; -+ this = find_key(cp); -+ if (this == NULL) -+ oops("unknown key/modifier", cp); -+ if (this->shift == is_shift) { -+ if (value) -+ oops("modifiers must come first", cp); -+ shift_state += this->value; -+ } else if (this->shift == is_input) -+ value = this->value; -+ else -+ oops("bad modifier or key", cp); -+ cp = strtok(0, delims); -+ } -+ if (!cp) -+ oops("no = found", NULL); -+ -+ cp = strtok(0, delims); -+ if (!cp) -+ oops("no speakup function after =", NULL); -+ -+ this = find_key(cp); -+ if (this == NULL || this->shift != is_spk) -+ oops("invalid speakup function", cp); -+ -+ i = get_shift_value(shift_state); -+ if (key_data[value][i]) { -+ while (--cp > buffer) -+ if (!*cp) -+ *cp = ' '; -+ oops("two functions on same key combination", cp); -+ } -+ key_data[value][i] = (char)this->value; -+ if (value > max_key_used) -+ max_key_used = value; -+ } -+ fclose(infile); -+ -+ this = find_key("spk_key"); -+ if (this) -+ spk_val = this->value; -+ -+ this = find_key("spk_lock"); -+ if (this) -+ lock_val = this->value; -+ -+ for (lc = 1; lc <= max_key_used; lc++) { -+ kp = key_data[lc]; -+ if (!memcmp(key_data[0], kp, 16)) -+ continue; -+ num_keys_used++; -+ for (i = 0; i < max_states; i++) { -+ if (kp[i] != spk_val && kp[i] != lock_val) -+ continue; -+ shift_state = shift_table[i]; -+ if (shift_state&16) -+ continue; -+ shift_state = get_shift_value(shift_state+16); -+ kp[shift_state] = kp[i]; -+ /* fill in so we can process the key up, as spk bit will be set */ -+ } -+ } -+ -+ printf("\t%d, %d, %d,\n\t", map_ver, num_keys_used, max_states); -+ for (i = 0; i < max_states; i++) -+ printf("%d, ", shift_table[i]); -+ printf("%d,", flags); -+ for (lc = 1; lc <= max_key_used; lc++) { -+ kp = key_data[lc]; -+ if (!memcmp(key_data[0], kp, 16)) -+ continue; -+ printf("\n\t%d,", lc); -+ for (i = 0; i < max_states; i++) -+ printf(" %d,", (unsigned int)kp[i]); -+ } -+ printf("\n\t0, %d\n", map_ver); -+ -+ exit(0); -+} -diff --git a/drivers/accessibility/speakup/makemapdata.c b/drivers/accessibility/speakup/makemapdata.c -new file mode 100644 -index 000000000000..81db9ebf1fff ---- /dev/null -+++ b/drivers/accessibility/speakup/makemapdata.c -@@ -0,0 +1,125 @@ -+// SPDX-License-Identifier: GPL-2.0+ -+/* makemapdata.c -+ * originally written by: Kirk Reiser. -+ * -+ ** Copyright (C) 2002 Kirk Reiser. -+ * Copyright (C) 2003 David Borowski. -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include "utils.h" -+ -+static char buffer[256]; -+ -+static int get_define(void) -+{ -+ char *c; -+ -+ while (fgets(buffer, sizeof(buffer)-1, infile)) { -+ lc++; -+ if (strncmp(buffer, "#define", 7)) -+ continue; -+ c = buffer + 7; -+ while (*c == ' ' || *c == '\t') -+ c++; -+ def_name = c; -+ while (*c && *c != ' ' && *c != '\t' && *c != '\n') -+ c++; -+ if (!*c || *c == '\n') -+ continue; -+ *c++ = '\0'; -+ while (*c == ' ' || *c == '\t' || *c == '(') -+ c++; -+ def_val = c; -+ while (*c && *c != '\n' && *c != ')') -+ c++; -+ *c++ = '\0'; -+ return 1; -+ } -+ fclose(infile); -+ infile = 0; -+ return 0; -+} -+ -+int -+main(int argc, char *argv[]) -+{ -+ int value, i; -+ struct st_key *this; -+ const char *dir_name; -+ char *cp; -+ -+ dir_name = getenv("TOPDIR"); -+ if (!dir_name) -+ dir_name = "."; -+ bzero(key_table, sizeof(key_table)); -+ add_key("shift", 1, is_shift); -+ add_key("altgr", 2, is_shift); -+ add_key("ctrl", 4, is_shift); -+ add_key("alt", 8, is_shift); -+ add_key("spk", 16, is_shift); -+ add_key("double", 32, is_shift); -+ -+ open_input(dir_name, "include/linux/input.h"); -+ while (get_define()) { -+ if (strncmp(def_name, "KEY_", 4)) -+ continue; -+ value = atoi(def_val); -+ if (value > 0 && value < MAXKEYVAL) -+ add_key(def_name, value, is_input); -+ } -+ -+ open_input(dir_name, "include/uapi/linux/input-event-codes.h"); -+ while (get_define()) { -+ if (strncmp(def_name, "KEY_", 4)) -+ continue; -+ value = atoi(def_val); -+ if (value > 0 && value < MAXKEYVAL) -+ add_key(def_name, value, is_input); -+ } -+ -+ open_input(dir_name, "drivers/accessibility/speakup/spk_priv_keyinfo.h"); -+ while (get_define()) { -+ if (strlen(def_val) > 5) { -+ //if (def_val[0] == '(') -+ // def_val++; -+ cp = strchr(def_val, '+'); -+ if (!cp) -+ continue; -+ if (cp[-1] == ' ') -+ cp[-1] = '\0'; -+ *cp++ = '\0'; -+ this = find_key(def_val); -+ while (*cp == ' ') -+ cp++; -+ if (!this || *cp < '0' || *cp > '9') -+ continue; -+ value = this->value+atoi(cp); -+ } else if (!strncmp(def_val, "0x", 2)) -+ sscanf(def_val+2, "%x", &value); -+ else if (*def_val >= '0' && *def_val <= '9') -+ value = atoi(def_val); -+ else -+ continue; -+ add_key(def_name, value, is_spk); -+ } -+ -+ printf("struct st_key_init init_key_data[] = {\n"); -+ for (i = 0; i < HASHSIZE; i++) { -+ this = &key_table[i]; -+ if (!this->name) -+ continue; -+ do { -+ printf("\t{ \"%s\", %d, %d, },\n", this->name, this->value, this->shift); -+ this = this->next; -+ } while (this); -+ } -+ printf("\t{ \".\", 0, 0 }\n};\n"); -+ -+ exit(0); -+} -diff --git a/drivers/accessibility/speakup/speakupmap.h b/drivers/accessibility/speakup/speakupmap.h -deleted file mode 100644 -index c60d7339b89a..000000000000 ---- a/drivers/accessibility/speakup/speakupmap.h -+++ /dev/null -@@ -1,66 +0,0 @@ --/* SPDX-License-Identifier: GPL-2.0 */ -- 119, 62, 6, -- 0, 16, 20, 17, 32, 48, 0, -- 2, 0, 78, 0, 0, 0, 0, -- 3, 0, 79, 0, 0, 0, 0, -- 4, 0, 76, 0, 0, 0, 0, -- 5, 0, 77, 0, 0, 0, 0, -- 6, 0, 74, 0, 0, 0, 0, -- 7, 0, 75, 0, 0, 0, 0, -- 9, 0, 5, 46, 0, 0, 0, -- 10, 0, 4, 0, 0, 0, 0, -- 11, 0, 0, 1, 0, 0, 0, -- 12, 0, 27, 0, 33, 0, 0, -- 19, 0, 47, 0, 0, 0, 0, -- 21, 0, 29, 17, 0, 0, 0, -- 22, 0, 15, 0, 0, 0, 0, -- 23, 0, 14, 0, 0, 0, 28, -- 24, 0, 16, 0, 0, 0, 0, -- 25, 0, 30, 18, 0, 0, 0, -- 28, 0, 3, 26, 0, 0, 0, -- 35, 0, 31, 0, 0, 0, 0, -- 36, 0, 12, 0, 0, 0, 0, -- 37, 0, 11, 0, 0, 0, 22, -- 38, 0, 13, 0, 0, 0, 0, -- 39, 0, 32, 7, 0, 0, 0, -- 40, 0, 23, 0, 0, 0, 0, -- 44, 0, 44, 0, 0, 0, 0, -- 49, 0, 24, 0, 0, 0, 0, -- 50, 0, 9, 19, 6, 0, 0, -- 51, 0, 8, 0, 0, 0, 36, -- 52, 0, 10, 20, 0, 0, 0, -- 53, 0, 25, 0, 0, 0, 0, -- 55, 46, 1, 0, 0, 0, 0, -- 58, 128, 128, 0, 0, 0, 0, -- 59, 0, 45, 0, 0, 0, 0, -- 60, 0, 40, 0, 0, 0, 0, -- 61, 0, 41, 0, 0, 0, 0, -- 62, 0, 42, 0, 0, 0, 0, -- 63, 0, 34, 0, 0, 0, 0, -- 64, 0, 35, 0, 0, 0, 0, -- 65, 0, 37, 0, 0, 0, 0, -- 66, 0, 38, 0, 0, 0, 0, -- 67, 0, 66, 0, 39, 0, 0, -- 68, 0, 67, 0, 0, 0, 0, -- 71, 15, 19, 0, 0, 0, 0, -- 72, 14, 29, 0, 0, 28, 0, -- 73, 16, 17, 0, 0, 0, 0, -- 74, 27, 33, 0, 0, 0, 0, -- 75, 12, 31, 0, 0, 0, 0, -- 76, 11, 21, 0, 0, 22, 0, -- 77, 13, 32, 0, 0, 0, 0, -- 78, 23, 43, 0, 0, 0, 0, -- 79, 9, 20, 0, 0, 0, 0, -- 80, 8, 30, 0, 0, 36, 0, -- 81, 10, 18, 0, 0, 0, 0, -- 82, 128, 128, 0, 0, 0, 0, -- 83, 24, 25, 0, 0, 0, 0, -- 87, 0, 68, 0, 0, 0, 0, -- 88, 0, 69, 0, 0, 0, 0, -- 96, 3, 26, 0, 0, 0, 0, -- 98, 4, 5, 0, 0, 0, 0, -- 99, 2, 0, 0, 0, 0, 0, -- 104, 0, 6, 0, 0, 0, 0, -- 109, 0, 7, 0, 0, 0, 0, -- 125, 128, 128, 0, 0, 0, 0, -- 0, 119 -diff --git a/drivers/accessibility/speakup/utils.h b/drivers/accessibility/speakup/utils.h -new file mode 100644 -index 000000000000..4bf2ee8ac246 ---- /dev/null -+++ b/drivers/accessibility/speakup/utils.h -@@ -0,0 +1,102 @@ -+/* SPDX-License-Identifier: GPL-2.0+ */ -+/* utils.h -+ * originally written by: Kirk Reiser. -+ * -+ ** Copyright (C) 2002 Kirk Reiser. -+ * Copyright (C) 2003 David Borowski. -+ */ -+ -+#include -+ -+#define MAXKEYS 512 -+#define MAXKEYVAL 160 -+#define HASHSIZE 101 -+#define is_shift -3 -+#define is_spk -2 -+#define is_input -1 -+ -+struct st_key { -+ char *name; -+ struct st_key *next; -+ int value, shift; -+}; -+ -+struct st_key key_table[MAXKEYS]; -+struct st_key *extra_keys = key_table+HASHSIZE; -+char *def_name, *def_val; -+FILE *infile; -+int lc; -+ -+char filename[256]; -+ -+static inline void open_input(const char *dir_name, const char *name) -+{ -+ if (dir_name) -+ snprintf(filename, sizeof(filename), "%s/%s", dir_name, name); -+ else -+ snprintf(filename, sizeof(filename), "%s", name); -+ infile = fopen(filename, "r"); -+ if (infile == 0) { -+ fprintf(stderr, "can't open %s\n", filename); -+ exit(1); -+ } -+ lc = 0; -+} -+ -+static inline int oops(const char *msg, const char *info) -+{ -+ if (info == NULL) -+ info = ""; -+ fprintf(stderr, "error: file %s line %d\n", filename, lc); -+ fprintf(stderr, "%s %s\n", msg, info); -+ exit(1); -+} -+ -+static inline struct st_key *hash_name(char *name) -+{ -+ u_char *pn = (u_char *)name; -+ int hash = 0; -+ -+ while (*pn) { -+ hash = (hash * 17) & 0xfffffff; -+ if (isupper(*pn)) -+ *pn = tolower(*pn); -+ hash += (int)*pn; -+ pn++; -+ } -+ hash %= HASHSIZE; -+ return &key_table[hash]; -+} -+ -+static inline struct st_key *find_key(char *name) -+{ -+ struct st_key *this = hash_name(name); -+ -+ while (this) { -+ if (this->name && !strcmp(name, this->name)) -+ return this; -+ this = this->next; -+ } -+ return this; -+} -+ -+static inline struct st_key *add_key(char *name, int value, int shift) -+{ -+ struct st_key *this = hash_name(name); -+ -+ if (extra_keys-key_table >= MAXKEYS) -+ oops("out of key table space, enlarge MAXKEYS", NULL); -+ if (this->name != NULL) { -+ while (this->next) { -+ if (!strcmp(name, this->name)) -+ oops("attempt to add duplicate key", name); -+ this = this->next; -+ } -+ this->next = extra_keys++; -+ this = this->next; -+ } -+ this->name = strdup(name); -+ this->value = value; -+ this->shift = shift; -+ return this; -+} --- -2.35.1 - diff --git a/queue-5.15/speakup-replace-utils-u_char-with-unsigned-char.patch b/queue-5.15/speakup-replace-utils-u_char-with-unsigned-char.patch deleted file mode 100644 index ed9647d5948..00000000000 --- a/queue-5.15/speakup-replace-utils-u_char-with-unsigned-char.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 0a1e1c44176ae95beec745ee2f6b3bcec2862716 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Mon, 17 Oct 2022 15:09:36 +0700 -Subject: speakup: replace utils' u_char with unsigned char -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -From: Đoàn Trần Công Danh - -[ Upstream commit 92ca969ff8815f3feef2645199bd39bf594e5eeb ] - -drivers/accessibility/speakup/utils.h will be used to compile host tool -to generate metadata. - -"u_char" is a non-standard type, which is defined to "unsigned char" -on glibc but not defined by some libc, e.g. musl. - -Let's replace "u_char" with "unsigned char" - -Signed-off-by: Đoàn Trần Công Danh -Reviewed-by: Samuel Thibault -Cc: stable -Link: https://lore.kernel.org/r/b75743026aaee2d81efe3d7f2e8fa47f7d0b8ea7.1665736571.git.congdanhqx@gmail.com -Signed-off-by: Greg Kroah-Hartman -Signed-off-by: Sasha Levin ---- - drivers/accessibility/speakup/utils.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/drivers/accessibility/speakup/utils.h b/drivers/accessibility/speakup/utils.h -index 4bf2ee8ac246..4ce9a12f7664 100644 ---- a/drivers/accessibility/speakup/utils.h -+++ b/drivers/accessibility/speakup/utils.h -@@ -54,7 +54,7 @@ static inline int oops(const char *msg, const char *info) - - static inline struct st_key *hash_name(char *name) - { -- u_char *pn = (u_char *)name; -+ unsigned char *pn = (unsigned char *)name; - int hash = 0; - - while (*pn) { --- -2.35.1 - -- 2.47.3