]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
4.9-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 7 Nov 2020 15:52:04 +0000 (16:52 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 7 Nov 2020 15:52:04 +0000 (16:52 +0100)
added patches:
alsa-usb-audio-add-implicit-feedback-quirk-for-qu-16.patch
fonts-replace-discarded-const-qualifier.patch
kthread_worker-prevent-queuing-delayed-work-from-timer_fn-when-it-is-being-canceled.patch

queue-4.9/alsa-usb-audio-add-implicit-feedback-quirk-for-qu-16.patch [new file with mode: 0644]
queue-4.9/fonts-replace-discarded-const-qualifier.patch [new file with mode: 0644]
queue-4.9/kthread_worker-prevent-queuing-delayed-work-from-timer_fn-when-it-is-being-canceled.patch [new file with mode: 0644]
queue-4.9/series

diff --git a/queue-4.9/alsa-usb-audio-add-implicit-feedback-quirk-for-qu-16.patch b/queue-4.9/alsa-usb-audio-add-implicit-feedback-quirk-for-qu-16.patch
new file mode 100644 (file)
index 0000000..8b6cc9e
--- /dev/null
@@ -0,0 +1,32 @@
+From 0938ecae432e7ac8b01080c35dd81d50a1e43033 Mon Sep 17 00:00:00 2001
+From: "Geoffrey D. Bennett" <g@b4.vu>
+Date: Wed, 4 Nov 2020 22:27:17 +1030
+Subject: ALSA: usb-audio: Add implicit feedback quirk for Qu-16
+
+From: Geoffrey D. Bennett <g@b4.vu>
+
+commit 0938ecae432e7ac8b01080c35dd81d50a1e43033 upstream.
+
+This patch fixes audio distortion on playback for the Allen&Heath
+Qu-16.
+
+Signed-off-by: Geoffrey D. Bennett <g@b4.vu>
+Cc: <stable@vger.kernel.org>
+Link: https://lore.kernel.org/r/20201104115717.GA19046@b4.vu
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ sound/usb/pcm.c |    1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/sound/usb/pcm.c
++++ b/sound/usb/pcm.c
+@@ -332,6 +332,7 @@ static int set_sync_ep_implicit_fb_quirk
+       switch (subs->stream->chip->usb_id) {
+       case USB_ID(0x0763, 0x2030): /* M-Audio Fast Track C400 */
+       case USB_ID(0x0763, 0x2031): /* M-Audio Fast Track C600 */
++      case USB_ID(0x22f0, 0x0006): /* Allen&Heath Qu-16 */
+               ep = 0x81;
+               iface = usb_ifnum_to_if(dev, 3);
diff --git a/queue-4.9/fonts-replace-discarded-const-qualifier.patch b/queue-4.9/fonts-replace-discarded-const-qualifier.patch
new file mode 100644 (file)
index 0000000..0bae0bd
--- /dev/null
@@ -0,0 +1,171 @@
+From 9522750c66c689b739e151fcdf895420dc81efc0 Mon Sep 17 00:00:00 2001
+From: Lee Jones <lee.jones@linaro.org>
+Date: Mon, 2 Nov 2020 13:32:42 -0500
+Subject: Fonts: Replace discarded const qualifier
+
+From: Lee Jones <lee.jones@linaro.org>
+
+commit 9522750c66c689b739e151fcdf895420dc81efc0 upstream.
+
+Commit 6735b4632def ("Fonts: Support FONT_EXTRA_WORDS macros for built-in
+fonts") introduced the following error when building rpc_defconfig (only
+this build appears to be affected):
+
+ `acorndata_8x8' referenced in section `.text' of arch/arm/boot/compressed/ll_char_wr.o:
+    defined in discarded section `.data' of arch/arm/boot/compressed/font.o
+ `acorndata_8x8' referenced in section `.data.rel.ro' of arch/arm/boot/compressed/font.o:
+    defined in discarded section `.data' of arch/arm/boot/compressed/font.o
+ make[3]: *** [/scratch/linux/arch/arm/boot/compressed/Makefile:191: arch/arm/boot/compressed/vmlinux] Error 1
+ make[2]: *** [/scratch/linux/arch/arm/boot/Makefile:61: arch/arm/boot/compressed/vmlinux] Error 2
+ make[1]: *** [/scratch/linux/arch/arm/Makefile:317: zImage] Error 2
+
+The .data section is discarded at link time.  Reinstating acorndata_8x8 as
+const ensures it is still available after linking.  Do the same for the
+other 12 built-in fonts as well, for consistency purposes.
+
+Cc: <stable@vger.kernel.org>
+Cc: Russell King <linux@armlinux.org.uk>
+Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Fixes: 6735b4632def ("Fonts: Support FONT_EXTRA_WORDS macros for built-in fonts")
+Signed-off-by: Lee Jones <lee.jones@linaro.org>
+Co-developed-by: Peilin Ye <yepeilin.cs@gmail.com>
+Signed-off-by: Peilin Ye <yepeilin.cs@gmail.com>
+Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
+Link: https://patchwork.freedesktop.org/patch/msgid/20201102183242.2031659-1-yepeilin.cs@gmail.com
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ lib/fonts/font_10x18.c     |    2 +-
+ lib/fonts/font_6x10.c      |    2 +-
+ lib/fonts/font_6x11.c      |    2 +-
+ lib/fonts/font_7x14.c      |    2 +-
+ lib/fonts/font_8x16.c      |    2 +-
+ lib/fonts/font_8x8.c       |    2 +-
+ lib/fonts/font_acorn_8x8.c |    2 +-
+ lib/fonts/font_mini_4x6.c  |    2 +-
+ lib/fonts/font_pearl_8x8.c |    2 +-
+ lib/fonts/font_sun12x22.c  |    2 +-
+ lib/fonts/font_sun8x16.c   |    2 +-
+ 11 files changed, 11 insertions(+), 11 deletions(-)
+
+--- a/lib/fonts/font_10x18.c
++++ b/lib/fonts/font_10x18.c
+@@ -7,7 +7,7 @@
+ #define FONTDATAMAX 9216
+-static struct font_data fontdata_10x18 = {
++static const struct font_data fontdata_10x18 = {
+       { 0, 0, FONTDATAMAX, 0 }, {
+       /* 0 0x00 '^@' */
+       0x00, 0x00, /* 0000000000 */
+--- a/lib/fonts/font_6x10.c
++++ b/lib/fonts/font_6x10.c
+@@ -2,7 +2,7 @@
+ #define FONTDATAMAX 2560
+-static struct font_data fontdata_6x10 = {
++static const struct font_data fontdata_6x10 = {
+       { 0, 0, FONTDATAMAX, 0 }, {
+       /* 0 0x00 '^@' */
+       0x00, /* 00000000 */
+--- a/lib/fonts/font_6x11.c
++++ b/lib/fonts/font_6x11.c
+@@ -8,7 +8,7 @@
+ #define FONTDATAMAX (11*256)
+-static struct font_data fontdata_6x11 = {
++static const struct font_data fontdata_6x11 = {
+       { 0, 0, FONTDATAMAX, 0 }, {
+       /* 0 0x00 '^@' */
+       0x00, /* 00000000 */
+--- a/lib/fonts/font_7x14.c
++++ b/lib/fonts/font_7x14.c
+@@ -7,7 +7,7 @@
+ #define FONTDATAMAX 3584
+-static struct font_data fontdata_7x14 = {
++static const struct font_data fontdata_7x14 = {
+       { 0, 0, FONTDATAMAX, 0 }, {
+       /* 0 0x00 '^@' */
+       0x00, /* 0000000 */
+--- a/lib/fonts/font_8x16.c
++++ b/lib/fonts/font_8x16.c
+@@ -9,7 +9,7 @@
+ #define FONTDATAMAX 4096
+-static struct font_data fontdata_8x16 = {
++static const struct font_data fontdata_8x16 = {
+       { 0, 0, FONTDATAMAX, 0 }, {
+       /* 0 0x00 '^@' */
+       0x00, /* 00000000 */
+--- a/lib/fonts/font_8x8.c
++++ b/lib/fonts/font_8x8.c
+@@ -8,7 +8,7 @@
+ #define FONTDATAMAX 2048
+-static struct font_data fontdata_8x8 = {
++static const struct font_data fontdata_8x8 = {
+       { 0, 0, FONTDATAMAX, 0 }, {
+       /* 0 0x00 '^@' */
+       0x00, /* 00000000 */
+--- a/lib/fonts/font_acorn_8x8.c
++++ b/lib/fonts/font_acorn_8x8.c
+@@ -4,7 +4,7 @@
+ #define FONTDATAMAX 2048
+-static struct font_data acorndata_8x8 = {
++static const struct font_data acorndata_8x8 = {
+ { 0, 0, FONTDATAMAX, 0 }, {
+ /* 00 */  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* ^@ */
+ /* 01 */  0x7e, 0x81, 0xa5, 0x81, 0xbd, 0x99, 0x81, 0x7e, /* ^A */
+--- a/lib/fonts/font_mini_4x6.c
++++ b/lib/fonts/font_mini_4x6.c
+@@ -43,7 +43,7 @@ __END__;
+ #define FONTDATAMAX 1536
+-static struct font_data fontdata_mini_4x6 = {
++static const struct font_data fontdata_mini_4x6 = {
+       { 0, 0, FONTDATAMAX, 0 }, {
+       /*{*/
+               /*   Char 0: ' '  */
+--- a/lib/fonts/font_pearl_8x8.c
++++ b/lib/fonts/font_pearl_8x8.c
+@@ -13,7 +13,7 @@
+ #define FONTDATAMAX 2048
+-static struct font_data fontdata_pearl8x8 = {
++static const struct font_data fontdata_pearl8x8 = {
+    { 0, 0, FONTDATAMAX, 0 }, {
+    /* 0 0x00 '^@' */
+    0x00, /* 00000000 */
+--- a/lib/fonts/font_sun12x22.c
++++ b/lib/fonts/font_sun12x22.c
+@@ -2,7 +2,7 @@
+ #define FONTDATAMAX 11264
+-static struct font_data fontdata_sun12x22 = {
++static const struct font_data fontdata_sun12x22 = {
+       { 0, 0, FONTDATAMAX, 0 }, {
+       /* 0 0x00 '^@' */
+       0x00, 0x00, /* 000000000000 */
+--- a/lib/fonts/font_sun8x16.c
++++ b/lib/fonts/font_sun8x16.c
+@@ -2,7 +2,7 @@
+ #define FONTDATAMAX 4096
+-static struct font_data fontdata_sun8x16 = {
++static const struct font_data fontdata_sun8x16 = {
+ { 0, 0, FONTDATAMAX, 0 }, {
+ /* */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ /* */ 0x00,0x00,0x7e,0x81,0xa5,0x81,0x81,0xbd,0x99,0x81,0x81,0x7e,0x00,0x00,0x00,0x00,
diff --git a/queue-4.9/kthread_worker-prevent-queuing-delayed-work-from-timer_fn-when-it-is-being-canceled.patch b/queue-4.9/kthread_worker-prevent-queuing-delayed-work-from-timer_fn-when-it-is-being-canceled.patch
new file mode 100644 (file)
index 0000000..5c89c9c
--- /dev/null
@@ -0,0 +1,48 @@
+From 6993d0fdbee0eb38bfac350aa016f65ad11ed3b1 Mon Sep 17 00:00:00 2001
+From: Zqiang <qiang.zhang@windriver.com>
+Date: Sun, 1 Nov 2020 17:07:53 -0800
+Subject: kthread_worker: prevent queuing delayed work from timer_fn when it is being canceled
+
+From: Zqiang <qiang.zhang@windriver.com>
+
+commit 6993d0fdbee0eb38bfac350aa016f65ad11ed3b1 upstream.
+
+There is a small race window when a delayed work is being canceled and
+the work still might be queued from the timer_fn:
+
+       CPU0                                            CPU1
+kthread_cancel_delayed_work_sync()
+   __kthread_cancel_work_sync()
+     __kthread_cancel_work()
+        work->canceling++;
+                                             kthread_delayed_work_timer_fn()
+                                                  kthread_insert_work();
+
+BUG: kthread_insert_work() should not get called when work->canceling is
+set.
+
+Signed-off-by: Zqiang <qiang.zhang@windriver.com>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
+Reviewed-by: Petr Mladek <pmladek@suse.com>
+Acked-by: Tejun Heo <tj@kernel.org>
+Cc: <stable@vger.kernel.org>
+Link: https://lkml.kernel.org/r/20201014083030.16895-1-qiang.zhang@windriver.com
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ kernel/kthread.c |    3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+--- a/kernel/kthread.c
++++ b/kernel/kthread.c
+@@ -828,7 +828,8 @@ void kthread_delayed_work_timer_fn(unsig
+       /* Move the work from worker->delayed_work_list. */
+       WARN_ON_ONCE(list_empty(&work->node));
+       list_del_init(&work->node);
+-      kthread_insert_work(worker, work, &worker->work_list);
++      if (!work->canceling)
++              kthread_insert_work(worker, work, &worker->work_list);
+       spin_unlock(&worker->lock);
+ }
index fe3e8b4555af94d42cbd7d9b148b03dd5a9cce7f..a976ee410b77c38fa0ebaa065cda9689222d5c9a 100644 (file)
@@ -93,3 +93,6 @@ xen-events-don-t-use-chip_data-for-legacy-irqs.patch
 tipc-fix-use-after-free-in-tipc_bcast_get_mode.patch
 gianfar-replace-skb_realloc_headroom-with-skb_cow_head-for-ptp.patch
 gianfar-account-for-tx-ptp-timestamp-in-the-skb-headroom.patch
+fonts-replace-discarded-const-qualifier.patch
+alsa-usb-audio-add-implicit-feedback-quirk-for-qu-16.patch
+kthread_worker-prevent-queuing-delayed-work-from-timer_fn-when-it-is-being-canceled.patch