]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
drop a bunch of asoc meson patches in 5.15 and older based on review
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 15 May 2024 07:52:23 +0000 (09:52 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 15 May 2024 07:52:23 +0000 (09:52 +0200)
16 files changed:
queue-4.19/asoc-meson-axg-tdm-interface-fix-formatters-in-trigg.patch [deleted file]
queue-4.19/asoc-meson-axg-tdm-interface-manage-formatters-in-tr.patch [deleted file]
queue-4.19/series
queue-5.10/asoc-meson-axg-card-fix-nonatomic-links.patch [deleted file]
queue-5.10/asoc-meson-axg-card-make-links-nonatomic.patch [deleted file]
queue-5.10/asoc-meson-axg-tdm-interface-fix-formatters-in-trigg.patch [deleted file]
queue-5.10/asoc-meson-axg-tdm-interface-manage-formatters-in-tr.patch [deleted file]
queue-5.10/series
queue-5.15/asoc-meson-axg-card-fix-nonatomic-links.patch [deleted file]
queue-5.15/asoc-meson-axg-tdm-interface-fix-formatters-in-trigg.patch [deleted file]
queue-5.15/series
queue-5.4/asoc-meson-axg-card-fix-nonatomic-links.patch [deleted file]
queue-5.4/asoc-meson-axg-card-make-links-nonatomic.patch [deleted file]
queue-5.4/asoc-meson-axg-tdm-interface-fix-formatters-in-trigg.patch [deleted file]
queue-5.4/asoc-meson-axg-tdm-interface-manage-formatters-in-tr.patch [deleted file]
queue-5.4/series

diff --git a/queue-4.19/asoc-meson-axg-tdm-interface-fix-formatters-in-trigg.patch b/queue-4.19/asoc-meson-axg-tdm-interface-fix-formatters-in-trigg.patch
deleted file mode 100644 (file)
index b9ca5d4..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-From fd62d604c951959773031004e5447146abc041c9 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 21 Apr 2022 17:57:24 +0200
-Subject: ASoC: meson: axg-tdm-interface: Fix formatters in trigger"
-
-From: Neil Armstrong <narmstrong@baylibre.com>
-
-[ Upstream commit c26830b6c5c534d273ce007eb33d5a2d2ad4e969 ]
-
-This reverts commit bf5e4887eeddb48480568466536aa08ec7f179a5 because
-the following and required commit e138233e56e9829e65b6293887063a1a3ccb2d68
-causes the following system crash when using audio:
- BUG: sleeping function called from invalid context at kernel/locking/mutex.c:282
-
-Fixes: bf5e4887eeddb4848056846 ("ASoC: meson: axg-tdm-interface: manage formatters in trigger")
-Reported-by: Dmitry Shmidt <dimitrysh@google.com>
-Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
-Acked-by: Jerome Brunet <jbrunet@baylibre.com>
-Link: https://lore.kernel.org/r/20220421155725.2589089-1-narmstrong@baylibre.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/soc/meson/axg-tdm-interface.c | 26 +++++---------------------
- 1 file changed, 5 insertions(+), 21 deletions(-)
-
-diff --git a/sound/soc/meson/axg-tdm-interface.c b/sound/soc/meson/axg-tdm-interface.c
-index 05d63cd7ac8ba..2a7ea41fc49e5 100644
---- a/sound/soc/meson/axg-tdm-interface.c
-+++ b/sound/soc/meson/axg-tdm-interface.c
-@@ -343,29 +343,13 @@ static int axg_tdm_iface_hw_free(struct snd_pcm_substream *substream,
-       return 0;
- }
--static int axg_tdm_iface_trigger(struct snd_pcm_substream *substream,
--                               int cmd,
-+static int axg_tdm_iface_prepare(struct snd_pcm_substream *substream,
-                                struct snd_soc_dai *dai)
- {
--      struct axg_tdm_stream *ts =
--              snd_soc_dai_get_dma_data(dai, substream);
--
--      switch (cmd) {
--      case SNDRV_PCM_TRIGGER_START:
--      case SNDRV_PCM_TRIGGER_RESUME:
--      case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
--              axg_tdm_stream_start(ts);
--              break;
--      case SNDRV_PCM_TRIGGER_SUSPEND:
--      case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
--      case SNDRV_PCM_TRIGGER_STOP:
--              axg_tdm_stream_stop(ts);
--              break;
--      default:
--              return -EINVAL;
--      }
-+      struct axg_tdm_stream *ts = snd_soc_dai_get_dma_data(dai, substream);
--      return 0;
-+      /* Force all attached formatters to update */
-+      return axg_tdm_stream_reset(ts);
- }
- static int axg_tdm_iface_remove_dai(struct snd_soc_dai *dai)
-@@ -405,8 +389,8 @@ static const struct snd_soc_dai_ops axg_tdm_iface_ops = {
-       .set_fmt        = axg_tdm_iface_set_fmt,
-       .startup        = axg_tdm_iface_startup,
-       .hw_params      = axg_tdm_iface_hw_params,
-+      .prepare        = axg_tdm_iface_prepare,
-       .hw_free        = axg_tdm_iface_hw_free,
--      .trigger        = axg_tdm_iface_trigger,
- };
- /* TDM Backend DAIs */
--- 
-2.43.0
-
diff --git a/queue-4.19/asoc-meson-axg-tdm-interface-manage-formatters-in-tr.patch b/queue-4.19/asoc-meson-axg-tdm-interface-manage-formatters-in-tr.patch
deleted file mode 100644 (file)
index 4227963..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-From 0e7fe499b43e8f378c3a0adf2ebbb4fc91c18a20 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 20 Oct 2021 13:42:17 +0200
-Subject: ASoC: meson: axg-tdm-interface: manage formatters in trigger
-
-From: Jerome Brunet <jbrunet@baylibre.com>
-
-[ Upstream commit bf5e4887eeddb48480568466536aa08ec7f179a5 ]
-
-So far, the formatters have been reset/enabled using the .prepare()
-callback. This was done in this callback because walking the formatters use
-a mutex so it could not be done in .trigger(), which is atomic by default.
-
-It turns out there is a problem on capture path of the AXG series.
-The FIFO may get out of sync with the TDM decoder if the IP are not enabled
-in a specific order. The FIFO must be enabled before the formatter starts
-producing data. IOW, we must deal with FE before the BE. The .prepare()
-callback is called on the BEs before the FE so it is not OK for the AXG.
-
-The .trigger() callback order can be configured, and it deals with the FE
-before the BEs by default. To solve our problem, we just need to start and
-stop the formatters from the .trigger() callback. It is OK do so now that
-the links have been made 'nonatomic' in the card driver.
-
-Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
-Link: https://lore.kernel.org/r/20211020114217.133153-3-jbrunet@baylibre.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/soc/meson/axg-tdm-interface.c | 26 +++++++++++++++++++++-----
- 1 file changed, 21 insertions(+), 5 deletions(-)
-
-diff --git a/sound/soc/meson/axg-tdm-interface.c b/sound/soc/meson/axg-tdm-interface.c
-index 2a7ea41fc49e5..05d63cd7ac8ba 100644
---- a/sound/soc/meson/axg-tdm-interface.c
-+++ b/sound/soc/meson/axg-tdm-interface.c
-@@ -343,13 +343,29 @@ static int axg_tdm_iface_hw_free(struct snd_pcm_substream *substream,
-       return 0;
- }
--static int axg_tdm_iface_prepare(struct snd_pcm_substream *substream,
-+static int axg_tdm_iface_trigger(struct snd_pcm_substream *substream,
-+                               int cmd,
-                                struct snd_soc_dai *dai)
- {
--      struct axg_tdm_stream *ts = snd_soc_dai_get_dma_data(dai, substream);
-+      struct axg_tdm_stream *ts =
-+              snd_soc_dai_get_dma_data(dai, substream);
-+
-+      switch (cmd) {
-+      case SNDRV_PCM_TRIGGER_START:
-+      case SNDRV_PCM_TRIGGER_RESUME:
-+      case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
-+              axg_tdm_stream_start(ts);
-+              break;
-+      case SNDRV_PCM_TRIGGER_SUSPEND:
-+      case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
-+      case SNDRV_PCM_TRIGGER_STOP:
-+              axg_tdm_stream_stop(ts);
-+              break;
-+      default:
-+              return -EINVAL;
-+      }
--      /* Force all attached formatters to update */
--      return axg_tdm_stream_reset(ts);
-+      return 0;
- }
- static int axg_tdm_iface_remove_dai(struct snd_soc_dai *dai)
-@@ -389,8 +405,8 @@ static const struct snd_soc_dai_ops axg_tdm_iface_ops = {
-       .set_fmt        = axg_tdm_iface_set_fmt,
-       .startup        = axg_tdm_iface_startup,
-       .hw_params      = axg_tdm_iface_hw_params,
--      .prepare        = axg_tdm_iface_prepare,
-       .hw_free        = axg_tdm_iface_hw_free,
-+      .trigger        = axg_tdm_iface_trigger,
- };
- /* TDM Backend DAIs */
--- 
-2.43.0
-
index 60095e367216963984e83a52d7cc4b3d15974724..e0b9253ae65cec2c68075eb78bc0a234e854130a 100644 (file)
@@ -14,7 +14,6 @@ s390-mm-fix-clearing-storage-keys-for-huge-pages.patch
 bna-ensure-the-copied-buf-is-nul-terminated.patch
 nsh-restore-skb-protocol-data-mac_header-for-outer-h.patch
 net-l2tp-drop-flow-hash-on-forward.patch
-asoc-meson-axg-tdm-interface-manage-formatters-in-tr.patch
 net-dsa-mv88e6xxx-add-number-of-macs-in-the-atu.patch
 net-dsa-mv88e6xxx-fix-number-of-databases-for-88e614.patch
 net-bridge-fix-multicast-to-unicast-with-fraglist-gs.patch
@@ -41,7 +40,6 @@ gpio-wcove-use-enotsupp-consistently.patch
 gpio-crystalcove-use-enotsupp-consistently.patch
 fs-9p-drop-inodes-immediately-on-non-.l-too.patch
 net-usb-qmi_wwan-support-rolling-modules.patch
-asoc-meson-axg-tdm-interface-fix-formatters-in-trigg.patch
 tcp-remove-redundant-check-on-tskb.patch
 tcp-defer-shutdown-send_shutdown-for-tcp_syn_recv-so.patch
 tcp-use-refcount_inc_not_zero-in-tcp_twsk_unique.patch
diff --git a/queue-5.10/asoc-meson-axg-card-fix-nonatomic-links.patch b/queue-5.10/asoc-meson-axg-card-fix-nonatomic-links.patch
deleted file mode 100644 (file)
index 19710c9..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-From 657196199cee56dfe4fdfa5ead06d439b1d19e39 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 21 Apr 2022 17:57:25 +0200
-Subject: ASoC: meson: axg-card: Fix nonatomic links
-
-From: Neil Armstrong <narmstrong@baylibre.com>
-
-[ Upstream commit 0c9b152c72e53016e96593bdbb8cffe2176694b9 ]
-
-This commit e138233e56e9829e65b6293887063a1a3ccb2d68 causes the
-following system crash when using audio on G12A/G12B & SM1 systems:
-
- BUG: sleeping function called from invalid context at kernel/locking/mutex.c:282
-  in_atomic(): 1, irqs_disabled(): 128, non_block: 0, pid: 0, name: swapper/0
- preempt_count: 10001, expected: 0
- RCU nest depth: 0, expected: 0
- Preemption disabled at:
- schedule_preempt_disabled+0x20/0x2c
-
- mutex_lock+0x24/0x60
- _snd_pcm_stream_lock_irqsave+0x20/0x3c
- snd_pcm_period_elapsed+0x24/0xa4
- axg_fifo_pcm_irq_block+0x64/0xdc
- __handle_irq_event_percpu+0x104/0x264
- handle_irq_event+0x48/0xb4
- ...
- start_kernel+0x3f0/0x484
- __primary_switched+0xc0/0xc8
-
-Revert this commit until the crash is fixed.
-
-Fixes: e138233e56e9829e65b6 ("ASoC: meson: axg-card: make links nonatomic")
-Reported-by: Dmitry Shmidt <dimitrysh@google.com>
-Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
-Acked-by: Jerome Brunet <jbrunet@baylibre.com>
-Link: https://lore.kernel.org/r/20220421155725.2589089-2-narmstrong@baylibre.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/soc/meson/axg-card.c | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/sound/soc/meson/axg-card.c b/sound/soc/meson/axg-card.c
-index cbbaa55d92a66..2b77010c2c5ce 100644
---- a/sound/soc/meson/axg-card.c
-+++ b/sound/soc/meson/axg-card.c
-@@ -320,7 +320,6 @@ static int axg_card_add_link(struct snd_soc_card *card, struct device_node *np,
-       dai_link->cpus = cpu;
-       dai_link->num_cpus = 1;
--      dai_link->nonatomic = true;
-       ret = meson_card_parse_dai(card, np, &dai_link->cpus->of_node,
-                                  &dai_link->cpus->dai_name);
--- 
-2.43.0
-
diff --git a/queue-5.10/asoc-meson-axg-card-make-links-nonatomic.patch b/queue-5.10/asoc-meson-axg-card-make-links-nonatomic.patch
deleted file mode 100644 (file)
index efb66d1..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-From bad1b472293169ece1716e3a5b2630945e6331ef Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 20 Oct 2021 13:42:16 +0200
-Subject: ASoC: meson: axg-card: make links nonatomic
-
-From: Jerome Brunet <jbrunet@baylibre.com>
-
-[ Upstream commit e138233e56e9829e65b6293887063a1a3ccb2d68 ]
-
-Non atomic operations need to be performed in the trigger callback
-of the TDM interfaces. Those are BEs but what matters is the nonatomic
-flag of the FE in the DPCM context. Just set nonatomic for everything so,
-at least, it is clear.
-
-Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
-Link: https://lore.kernel.org/r/20211020114217.133153-2-jbrunet@baylibre.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/soc/meson/axg-card.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/sound/soc/meson/axg-card.c b/sound/soc/meson/axg-card.c
-index 2b77010c2c5ce..cbbaa55d92a66 100644
---- a/sound/soc/meson/axg-card.c
-+++ b/sound/soc/meson/axg-card.c
-@@ -320,6 +320,7 @@ static int axg_card_add_link(struct snd_soc_card *card, struct device_node *np,
-       dai_link->cpus = cpu;
-       dai_link->num_cpus = 1;
-+      dai_link->nonatomic = true;
-       ret = meson_card_parse_dai(card, np, &dai_link->cpus->of_node,
-                                  &dai_link->cpus->dai_name);
--- 
-2.43.0
-
diff --git a/queue-5.10/asoc-meson-axg-tdm-interface-fix-formatters-in-trigg.patch b/queue-5.10/asoc-meson-axg-tdm-interface-fix-formatters-in-trigg.patch
deleted file mode 100644 (file)
index 81274df..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-From 1a7018bebe25c6a7e10a44ba31b5e7702947474f Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 21 Apr 2022 17:57:24 +0200
-Subject: ASoC: meson: axg-tdm-interface: Fix formatters in trigger"
-
-From: Neil Armstrong <narmstrong@baylibre.com>
-
-[ Upstream commit c26830b6c5c534d273ce007eb33d5a2d2ad4e969 ]
-
-This reverts commit bf5e4887eeddb48480568466536aa08ec7f179a5 because
-the following and required commit e138233e56e9829e65b6293887063a1a3ccb2d68
-causes the following system crash when using audio:
- BUG: sleeping function called from invalid context at kernel/locking/mutex.c:282
-
-Fixes: bf5e4887eeddb4848056846 ("ASoC: meson: axg-tdm-interface: manage formatters in trigger")
-Reported-by: Dmitry Shmidt <dimitrysh@google.com>
-Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
-Acked-by: Jerome Brunet <jbrunet@baylibre.com>
-Link: https://lore.kernel.org/r/20220421155725.2589089-1-narmstrong@baylibre.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/soc/meson/axg-tdm-interface.c | 26 +++++---------------------
- 1 file changed, 5 insertions(+), 21 deletions(-)
-
-diff --git a/sound/soc/meson/axg-tdm-interface.c b/sound/soc/meson/axg-tdm-interface.c
-index f5145902360de..60d132ab1ab78 100644
---- a/sound/soc/meson/axg-tdm-interface.c
-+++ b/sound/soc/meson/axg-tdm-interface.c
-@@ -362,29 +362,13 @@ static int axg_tdm_iface_hw_free(struct snd_pcm_substream *substream,
-       return 0;
- }
--static int axg_tdm_iface_trigger(struct snd_pcm_substream *substream,
--                               int cmd,
-+static int axg_tdm_iface_prepare(struct snd_pcm_substream *substream,
-                                struct snd_soc_dai *dai)
- {
--      struct axg_tdm_stream *ts =
--              snd_soc_dai_get_dma_data(dai, substream);
--
--      switch (cmd) {
--      case SNDRV_PCM_TRIGGER_START:
--      case SNDRV_PCM_TRIGGER_RESUME:
--      case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
--              axg_tdm_stream_start(ts);
--              break;
--      case SNDRV_PCM_TRIGGER_SUSPEND:
--      case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
--      case SNDRV_PCM_TRIGGER_STOP:
--              axg_tdm_stream_stop(ts);
--              break;
--      default:
--              return -EINVAL;
--      }
-+      struct axg_tdm_stream *ts = snd_soc_dai_get_dma_data(dai, substream);
--      return 0;
-+      /* Force all attached formatters to update */
-+      return axg_tdm_stream_reset(ts);
- }
- static int axg_tdm_iface_remove_dai(struct snd_soc_dai *dai)
-@@ -424,8 +408,8 @@ static const struct snd_soc_dai_ops axg_tdm_iface_ops = {
-       .set_fmt        = axg_tdm_iface_set_fmt,
-       .startup        = axg_tdm_iface_startup,
-       .hw_params      = axg_tdm_iface_hw_params,
-+      .prepare        = axg_tdm_iface_prepare,
-       .hw_free        = axg_tdm_iface_hw_free,
--      .trigger        = axg_tdm_iface_trigger,
- };
- /* TDM Backend DAIs */
--- 
-2.43.0
-
diff --git a/queue-5.10/asoc-meson-axg-tdm-interface-manage-formatters-in-tr.patch b/queue-5.10/asoc-meson-axg-tdm-interface-manage-formatters-in-tr.patch
deleted file mode 100644 (file)
index c9453f4..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-From aedbfd21870fe60f3f71ae3a248934913763512d Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 20 Oct 2021 13:42:17 +0200
-Subject: ASoC: meson: axg-tdm-interface: manage formatters in trigger
-
-From: Jerome Brunet <jbrunet@baylibre.com>
-
-[ Upstream commit bf5e4887eeddb48480568466536aa08ec7f179a5 ]
-
-So far, the formatters have been reset/enabled using the .prepare()
-callback. This was done in this callback because walking the formatters use
-a mutex so it could not be done in .trigger(), which is atomic by default.
-
-It turns out there is a problem on capture path of the AXG series.
-The FIFO may get out of sync with the TDM decoder if the IP are not enabled
-in a specific order. The FIFO must be enabled before the formatter starts
-producing data. IOW, we must deal with FE before the BE. The .prepare()
-callback is called on the BEs before the FE so it is not OK for the AXG.
-
-The .trigger() callback order can be configured, and it deals with the FE
-before the BEs by default. To solve our problem, we just need to start and
-stop the formatters from the .trigger() callback. It is OK do so now that
-the links have been made 'nonatomic' in the card driver.
-
-Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
-Link: https://lore.kernel.org/r/20211020114217.133153-3-jbrunet@baylibre.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/soc/meson/axg-tdm-interface.c | 26 +++++++++++++++++++++-----
- 1 file changed, 21 insertions(+), 5 deletions(-)
-
-diff --git a/sound/soc/meson/axg-tdm-interface.c b/sound/soc/meson/axg-tdm-interface.c
-index 60d132ab1ab78..f5145902360de 100644
---- a/sound/soc/meson/axg-tdm-interface.c
-+++ b/sound/soc/meson/axg-tdm-interface.c
-@@ -362,13 +362,29 @@ static int axg_tdm_iface_hw_free(struct snd_pcm_substream *substream,
-       return 0;
- }
--static int axg_tdm_iface_prepare(struct snd_pcm_substream *substream,
-+static int axg_tdm_iface_trigger(struct snd_pcm_substream *substream,
-+                               int cmd,
-                                struct snd_soc_dai *dai)
- {
--      struct axg_tdm_stream *ts = snd_soc_dai_get_dma_data(dai, substream);
-+      struct axg_tdm_stream *ts =
-+              snd_soc_dai_get_dma_data(dai, substream);
-+
-+      switch (cmd) {
-+      case SNDRV_PCM_TRIGGER_START:
-+      case SNDRV_PCM_TRIGGER_RESUME:
-+      case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
-+              axg_tdm_stream_start(ts);
-+              break;
-+      case SNDRV_PCM_TRIGGER_SUSPEND:
-+      case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
-+      case SNDRV_PCM_TRIGGER_STOP:
-+              axg_tdm_stream_stop(ts);
-+              break;
-+      default:
-+              return -EINVAL;
-+      }
--      /* Force all attached formatters to update */
--      return axg_tdm_stream_reset(ts);
-+      return 0;
- }
- static int axg_tdm_iface_remove_dai(struct snd_soc_dai *dai)
-@@ -408,8 +424,8 @@ static const struct snd_soc_dai_ops axg_tdm_iface_ops = {
-       .set_fmt        = axg_tdm_iface_set_fmt,
-       .startup        = axg_tdm_iface_startup,
-       .hw_params      = axg_tdm_iface_hw_params,
--      .prepare        = axg_tdm_iface_prepare,
-       .hw_free        = axg_tdm_iface_hw_free,
-+      .trigger        = axg_tdm_iface_trigger,
- };
- /* TDM Backend DAIs */
--- 
-2.43.0
-
index 1cee550c27b157a235d1400e5ad9d60761e115df..db59adf219808ade1024883601d61d081cf72f7e 100644 (file)
@@ -28,8 +28,6 @@ net-qede-sanitize-rc-in-qede_add_tc_flower_fltr.patch
 net-qede-use-return-from-qede_parse_flow_attr-for-fl.patch
 net-qede-use-return-from-qede_parse_flow_attr-for-fl.patch-32632
 net-qede-use-return-from-qede_parse_actions.patch
-asoc-meson-axg-card-make-links-nonatomic.patch
-asoc-meson-axg-tdm-interface-manage-formatters-in-tr.patch
 asoc-fix-7-8-spaces-indentation-in-kconfig.patch
 asoc-meson-cards-select-snd_dynamic_minors.patch
 cxgb4-properly-lock-tx-queue-for-the-selftest.patch
@@ -70,8 +68,6 @@ clk-don-t-hold-prepare_lock-when-calling-kref_put.patch
 fs-9p-drop-inodes-immediately-on-non-.l-too.patch
 drm-nouveau-dp-don-t-probe-edp-ports-twice-harder.patch
 net-usb-qmi_wwan-support-rolling-modules.patch
-asoc-meson-axg-card-fix-nonatomic-links.patch
-asoc-meson-axg-tdm-interface-fix-formatters-in-trigg.patch
 xfrm-preserve-vlan-tags-for-transport-mode-software-.patch
 tcp-defer-shutdown-send_shutdown-for-tcp_syn_recv-so.patch
 tcp-use-refcount_inc_not_zero-in-tcp_twsk_unique.patch
diff --git a/queue-5.15/asoc-meson-axg-card-fix-nonatomic-links.patch b/queue-5.15/asoc-meson-axg-card-fix-nonatomic-links.patch
deleted file mode 100644 (file)
index 94b4302..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-From 196e54ec5e43481fa366a62d764e0b6e27e899e2 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 21 Apr 2022 17:57:25 +0200
-Subject: ASoC: meson: axg-card: Fix nonatomic links
-
-From: Neil Armstrong <narmstrong@baylibre.com>
-
-[ Upstream commit 0c9b152c72e53016e96593bdbb8cffe2176694b9 ]
-
-This commit e138233e56e9829e65b6293887063a1a3ccb2d68 causes the
-following system crash when using audio on G12A/G12B & SM1 systems:
-
- BUG: sleeping function called from invalid context at kernel/locking/mutex.c:282
-  in_atomic(): 1, irqs_disabled(): 128, non_block: 0, pid: 0, name: swapper/0
- preempt_count: 10001, expected: 0
- RCU nest depth: 0, expected: 0
- Preemption disabled at:
- schedule_preempt_disabled+0x20/0x2c
-
- mutex_lock+0x24/0x60
- _snd_pcm_stream_lock_irqsave+0x20/0x3c
- snd_pcm_period_elapsed+0x24/0xa4
- axg_fifo_pcm_irq_block+0x64/0xdc
- __handle_irq_event_percpu+0x104/0x264
- handle_irq_event+0x48/0xb4
- ...
- start_kernel+0x3f0/0x484
- __primary_switched+0xc0/0xc8
-
-Revert this commit until the crash is fixed.
-
-Fixes: e138233e56e9829e65b6 ("ASoC: meson: axg-card: make links nonatomic")
-Reported-by: Dmitry Shmidt <dimitrysh@google.com>
-Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
-Acked-by: Jerome Brunet <jbrunet@baylibre.com>
-Link: https://lore.kernel.org/r/20220421155725.2589089-2-narmstrong@baylibre.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/soc/meson/axg-card.c | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/sound/soc/meson/axg-card.c b/sound/soc/meson/axg-card.c
-index cbbaa55d92a66..2b77010c2c5ce 100644
---- a/sound/soc/meson/axg-card.c
-+++ b/sound/soc/meson/axg-card.c
-@@ -320,7 +320,6 @@ static int axg_card_add_link(struct snd_soc_card *card, struct device_node *np,
-       dai_link->cpus = cpu;
-       dai_link->num_cpus = 1;
--      dai_link->nonatomic = true;
-       ret = meson_card_parse_dai(card, np, &dai_link->cpus->of_node,
-                                  &dai_link->cpus->dai_name);
--- 
-2.43.0
-
diff --git a/queue-5.15/asoc-meson-axg-tdm-interface-fix-formatters-in-trigg.patch b/queue-5.15/asoc-meson-axg-tdm-interface-fix-formatters-in-trigg.patch
deleted file mode 100644 (file)
index 30984a1..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-From eb2cd42efa1a3c0c8cab97605f0b7afadb47d14c Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 21 Apr 2022 17:57:24 +0200
-Subject: ASoC: meson: axg-tdm-interface: Fix formatters in trigger"
-
-From: Neil Armstrong <narmstrong@baylibre.com>
-
-[ Upstream commit c26830b6c5c534d273ce007eb33d5a2d2ad4e969 ]
-
-This reverts commit bf5e4887eeddb48480568466536aa08ec7f179a5 because
-the following and required commit e138233e56e9829e65b6293887063a1a3ccb2d68
-causes the following system crash when using audio:
- BUG: sleeping function called from invalid context at kernel/locking/mutex.c:282
-
-Fixes: bf5e4887eeddb4848056846 ("ASoC: meson: axg-tdm-interface: manage formatters in trigger")
-Reported-by: Dmitry Shmidt <dimitrysh@google.com>
-Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
-Acked-by: Jerome Brunet <jbrunet@baylibre.com>
-Link: https://lore.kernel.org/r/20220421155725.2589089-1-narmstrong@baylibre.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/soc/meson/axg-tdm-interface.c | 26 +++++---------------------
- 1 file changed, 5 insertions(+), 21 deletions(-)
-
-diff --git a/sound/soc/meson/axg-tdm-interface.c b/sound/soc/meson/axg-tdm-interface.c
-index f5145902360de..60d132ab1ab78 100644
---- a/sound/soc/meson/axg-tdm-interface.c
-+++ b/sound/soc/meson/axg-tdm-interface.c
-@@ -362,29 +362,13 @@ static int axg_tdm_iface_hw_free(struct snd_pcm_substream *substream,
-       return 0;
- }
--static int axg_tdm_iface_trigger(struct snd_pcm_substream *substream,
--                               int cmd,
-+static int axg_tdm_iface_prepare(struct snd_pcm_substream *substream,
-                                struct snd_soc_dai *dai)
- {
--      struct axg_tdm_stream *ts =
--              snd_soc_dai_get_dma_data(dai, substream);
--
--      switch (cmd) {
--      case SNDRV_PCM_TRIGGER_START:
--      case SNDRV_PCM_TRIGGER_RESUME:
--      case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
--              axg_tdm_stream_start(ts);
--              break;
--      case SNDRV_PCM_TRIGGER_SUSPEND:
--      case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
--      case SNDRV_PCM_TRIGGER_STOP:
--              axg_tdm_stream_stop(ts);
--              break;
--      default:
--              return -EINVAL;
--      }
-+      struct axg_tdm_stream *ts = snd_soc_dai_get_dma_data(dai, substream);
--      return 0;
-+      /* Force all attached formatters to update */
-+      return axg_tdm_stream_reset(ts);
- }
- static int axg_tdm_iface_remove_dai(struct snd_soc_dai *dai)
-@@ -424,8 +408,8 @@ static const struct snd_soc_dai_ops axg_tdm_iface_ops = {
-       .set_fmt        = axg_tdm_iface_set_fmt,
-       .startup        = axg_tdm_iface_startup,
-       .hw_params      = axg_tdm_iface_hw_params,
-+      .prepare        = axg_tdm_iface_prepare,
-       .hw_free        = axg_tdm_iface_hw_free,
--      .trigger        = axg_tdm_iface_trigger,
- };
- /* TDM Backend DAIs */
--- 
-2.43.0
-
index b42b7d54713ab56dc20ff861c8b4730c3437d8c0..733083ec4311fb45b4ca354eb68c6ad6c5f07baf 100644 (file)
@@ -97,8 +97,6 @@ bpf-sockmap-handle-fin-correctly.patch
 bpf-sockmap-convert-schedule_work-into-delayed_work.patch
 bpf-sockmap-reschedule-is-now-done-through-backlog.patch
 bpf-sockmap-improved-check-for-empty-queue.patch
-asoc-meson-axg-card-fix-nonatomic-links.patch
-asoc-meson-axg-tdm-interface-fix-formatters-in-trigg.patch
 qibfs-fix-dentry-leak.patch
 xfrm-preserve-vlan-tags-for-transport-mode-software-.patch
 arm-9381-1-kasan-clear-stale-stack-poison.patch
diff --git a/queue-5.4/asoc-meson-axg-card-fix-nonatomic-links.patch b/queue-5.4/asoc-meson-axg-card-fix-nonatomic-links.patch
deleted file mode 100644 (file)
index 96084a3..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-From 103f41e5e68957d251c876b0a90aa710a968b369 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 21 Apr 2022 17:57:25 +0200
-Subject: ASoC: meson: axg-card: Fix nonatomic links
-
-From: Neil Armstrong <narmstrong@baylibre.com>
-
-[ Upstream commit 0c9b152c72e53016e96593bdbb8cffe2176694b9 ]
-
-This commit e138233e56e9829e65b6293887063a1a3ccb2d68 causes the
-following system crash when using audio on G12A/G12B & SM1 systems:
-
- BUG: sleeping function called from invalid context at kernel/locking/mutex.c:282
-  in_atomic(): 1, irqs_disabled(): 128, non_block: 0, pid: 0, name: swapper/0
- preempt_count: 10001, expected: 0
- RCU nest depth: 0, expected: 0
- Preemption disabled at:
- schedule_preempt_disabled+0x20/0x2c
-
- mutex_lock+0x24/0x60
- _snd_pcm_stream_lock_irqsave+0x20/0x3c
- snd_pcm_period_elapsed+0x24/0xa4
- axg_fifo_pcm_irq_block+0x64/0xdc
- __handle_irq_event_percpu+0x104/0x264
- handle_irq_event+0x48/0xb4
- ...
- start_kernel+0x3f0/0x484
- __primary_switched+0xc0/0xc8
-
-Revert this commit until the crash is fixed.
-
-Fixes: e138233e56e9829e65b6 ("ASoC: meson: axg-card: make links nonatomic")
-Reported-by: Dmitry Shmidt <dimitrysh@google.com>
-Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
-Acked-by: Jerome Brunet <jbrunet@baylibre.com>
-Link: https://lore.kernel.org/r/20220421155725.2589089-2-narmstrong@baylibre.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/soc/meson/axg-card.c | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/sound/soc/meson/axg-card.c b/sound/soc/meson/axg-card.c
-index 36a004192b562..7126344017fa6 100644
---- a/sound/soc/meson/axg-card.c
-+++ b/sound/soc/meson/axg-card.c
-@@ -568,7 +568,6 @@ static int axg_card_add_link(struct snd_soc_card *card, struct device_node *np,
-       dai_link->cpus = cpu;
-       dai_link->num_cpus = 1;
--      dai_link->nonatomic = true;
-       ret = axg_card_parse_dai(card, np, &dai_link->cpus->of_node,
-                                &dai_link->cpus->dai_name);
--- 
-2.43.0
-
diff --git a/queue-5.4/asoc-meson-axg-card-make-links-nonatomic.patch b/queue-5.4/asoc-meson-axg-card-make-links-nonatomic.patch
deleted file mode 100644 (file)
index 69ba5ed..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-From e7dd4a4a477117acab24a7ef08e9ae0f8715238b Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 20 Oct 2021 13:42:16 +0200
-Subject: ASoC: meson: axg-card: make links nonatomic
-
-From: Jerome Brunet <jbrunet@baylibre.com>
-
-[ Upstream commit e138233e56e9829e65b6293887063a1a3ccb2d68 ]
-
-Non atomic operations need to be performed in the trigger callback
-of the TDM interfaces. Those are BEs but what matters is the nonatomic
-flag of the FE in the DPCM context. Just set nonatomic for everything so,
-at least, it is clear.
-
-Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
-Link: https://lore.kernel.org/r/20211020114217.133153-2-jbrunet@baylibre.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/soc/meson/axg-card.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/sound/soc/meson/axg-card.c b/sound/soc/meson/axg-card.c
-index 7126344017fa6..36a004192b562 100644
---- a/sound/soc/meson/axg-card.c
-+++ b/sound/soc/meson/axg-card.c
-@@ -568,6 +568,7 @@ static int axg_card_add_link(struct snd_soc_card *card, struct device_node *np,
-       dai_link->cpus = cpu;
-       dai_link->num_cpus = 1;
-+      dai_link->nonatomic = true;
-       ret = axg_card_parse_dai(card, np, &dai_link->cpus->of_node,
-                                &dai_link->cpus->dai_name);
--- 
-2.43.0
-
diff --git a/queue-5.4/asoc-meson-axg-tdm-interface-fix-formatters-in-trigg.patch b/queue-5.4/asoc-meson-axg-tdm-interface-fix-formatters-in-trigg.patch
deleted file mode 100644 (file)
index f253965..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-From 90b64d88b3ffa59ecf6e28b96437ab3421c05f6e Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 21 Apr 2022 17:57:24 +0200
-Subject: ASoC: meson: axg-tdm-interface: Fix formatters in trigger"
-
-From: Neil Armstrong <narmstrong@baylibre.com>
-
-[ Upstream commit c26830b6c5c534d273ce007eb33d5a2d2ad4e969 ]
-
-This reverts commit bf5e4887eeddb48480568466536aa08ec7f179a5 because
-the following and required commit e138233e56e9829e65b6293887063a1a3ccb2d68
-causes the following system crash when using audio:
- BUG: sleeping function called from invalid context at kernel/locking/mutex.c:282
-
-Fixes: bf5e4887eeddb4848056846 ("ASoC: meson: axg-tdm-interface: manage formatters in trigger")
-Reported-by: Dmitry Shmidt <dimitrysh@google.com>
-Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
-Acked-by: Jerome Brunet <jbrunet@baylibre.com>
-Link: https://lore.kernel.org/r/20220421155725.2589089-1-narmstrong@baylibre.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/soc/meson/axg-tdm-interface.c | 26 +++++---------------------
- 1 file changed, 5 insertions(+), 21 deletions(-)
-
-diff --git a/sound/soc/meson/axg-tdm-interface.c b/sound/soc/meson/axg-tdm-interface.c
-index dc2fe9e2baadd..34aff050caf25 100644
---- a/sound/soc/meson/axg-tdm-interface.c
-+++ b/sound/soc/meson/axg-tdm-interface.c
-@@ -351,29 +351,13 @@ static int axg_tdm_iface_hw_free(struct snd_pcm_substream *substream,
-       return 0;
- }
--static int axg_tdm_iface_trigger(struct snd_pcm_substream *substream,
--                               int cmd,
-+static int axg_tdm_iface_prepare(struct snd_pcm_substream *substream,
-                                struct snd_soc_dai *dai)
- {
--      struct axg_tdm_stream *ts =
--              snd_soc_dai_get_dma_data(dai, substream);
--
--      switch (cmd) {
--      case SNDRV_PCM_TRIGGER_START:
--      case SNDRV_PCM_TRIGGER_RESUME:
--      case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
--              axg_tdm_stream_start(ts);
--              break;
--      case SNDRV_PCM_TRIGGER_SUSPEND:
--      case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
--      case SNDRV_PCM_TRIGGER_STOP:
--              axg_tdm_stream_stop(ts);
--              break;
--      default:
--              return -EINVAL;
--      }
-+      struct axg_tdm_stream *ts = snd_soc_dai_get_dma_data(dai, substream);
--      return 0;
-+      /* Force all attached formatters to update */
-+      return axg_tdm_stream_reset(ts);
- }
- static int axg_tdm_iface_remove_dai(struct snd_soc_dai *dai)
-@@ -413,8 +397,8 @@ static const struct snd_soc_dai_ops axg_tdm_iface_ops = {
-       .set_fmt        = axg_tdm_iface_set_fmt,
-       .startup        = axg_tdm_iface_startup,
-       .hw_params      = axg_tdm_iface_hw_params,
-+      .prepare        = axg_tdm_iface_prepare,
-       .hw_free        = axg_tdm_iface_hw_free,
--      .trigger        = axg_tdm_iface_trigger,
- };
- /* TDM Backend DAIs */
--- 
-2.43.0
-
diff --git a/queue-5.4/asoc-meson-axg-tdm-interface-manage-formatters-in-tr.patch b/queue-5.4/asoc-meson-axg-tdm-interface-manage-formatters-in-tr.patch
deleted file mode 100644 (file)
index 78ecc36..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-From bd47aa017fbf8cc0dd54f1f8013caabe04878dc4 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 20 Oct 2021 13:42:17 +0200
-Subject: ASoC: meson: axg-tdm-interface: manage formatters in trigger
-
-From: Jerome Brunet <jbrunet@baylibre.com>
-
-[ Upstream commit bf5e4887eeddb48480568466536aa08ec7f179a5 ]
-
-So far, the formatters have been reset/enabled using the .prepare()
-callback. This was done in this callback because walking the formatters use
-a mutex so it could not be done in .trigger(), which is atomic by default.
-
-It turns out there is a problem on capture path of the AXG series.
-The FIFO may get out of sync with the TDM decoder if the IP are not enabled
-in a specific order. The FIFO must be enabled before the formatter starts
-producing data. IOW, we must deal with FE before the BE. The .prepare()
-callback is called on the BEs before the FE so it is not OK for the AXG.
-
-The .trigger() callback order can be configured, and it deals with the FE
-before the BEs by default. To solve our problem, we just need to start and
-stop the formatters from the .trigger() callback. It is OK do so now that
-the links have been made 'nonatomic' in the card driver.
-
-Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
-Link: https://lore.kernel.org/r/20211020114217.133153-3-jbrunet@baylibre.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/soc/meson/axg-tdm-interface.c | 26 +++++++++++++++++++++-----
- 1 file changed, 21 insertions(+), 5 deletions(-)
-
-diff --git a/sound/soc/meson/axg-tdm-interface.c b/sound/soc/meson/axg-tdm-interface.c
-index 34aff050caf25..dc2fe9e2baadd 100644
---- a/sound/soc/meson/axg-tdm-interface.c
-+++ b/sound/soc/meson/axg-tdm-interface.c
-@@ -351,13 +351,29 @@ static int axg_tdm_iface_hw_free(struct snd_pcm_substream *substream,
-       return 0;
- }
--static int axg_tdm_iface_prepare(struct snd_pcm_substream *substream,
-+static int axg_tdm_iface_trigger(struct snd_pcm_substream *substream,
-+                               int cmd,
-                                struct snd_soc_dai *dai)
- {
--      struct axg_tdm_stream *ts = snd_soc_dai_get_dma_data(dai, substream);
-+      struct axg_tdm_stream *ts =
-+              snd_soc_dai_get_dma_data(dai, substream);
-+
-+      switch (cmd) {
-+      case SNDRV_PCM_TRIGGER_START:
-+      case SNDRV_PCM_TRIGGER_RESUME:
-+      case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
-+              axg_tdm_stream_start(ts);
-+              break;
-+      case SNDRV_PCM_TRIGGER_SUSPEND:
-+      case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
-+      case SNDRV_PCM_TRIGGER_STOP:
-+              axg_tdm_stream_stop(ts);
-+              break;
-+      default:
-+              return -EINVAL;
-+      }
--      /* Force all attached formatters to update */
--      return axg_tdm_stream_reset(ts);
-+      return 0;
- }
- static int axg_tdm_iface_remove_dai(struct snd_soc_dai *dai)
-@@ -397,8 +413,8 @@ static const struct snd_soc_dai_ops axg_tdm_iface_ops = {
-       .set_fmt        = axg_tdm_iface_set_fmt,
-       .startup        = axg_tdm_iface_startup,
-       .hw_params      = axg_tdm_iface_hw_params,
--      .prepare        = axg_tdm_iface_prepare,
-       .hw_free        = axg_tdm_iface_hw_free,
-+      .trigger        = axg_tdm_iface_trigger,
- };
- /* TDM Backend DAIs */
--- 
-2.43.0
-
index f1b917579222b8bcfd159c187cfc5850ded1f1c9..35ccb2ac3c72ffcc0ac0750761d5a118511749d0 100644 (file)
@@ -23,8 +23,6 @@ bna-ensure-the-copied-buf-is-nul-terminated.patch
 nsh-restore-skb-protocol-data-mac_header-for-outer-h.patch
 net-l2tp-drop-flow-hash-on-forward.patch
 net-qede-use-return-from-qede_parse_flow_attr-for-fl.patch
-asoc-meson-axg-card-make-links-nonatomic.patch
-asoc-meson-axg-tdm-interface-manage-formatters-in-tr.patch
 net-dsa-mv88e6xxx-add-number-of-macs-in-the-atu.patch
 net-dsa-mv88e6xxx-fix-number-of-databases-for-88e614.patch
 net-bridge-fix-multicast-to-unicast-with-fraglist-gs.patch
@@ -57,8 +55,6 @@ clk-don-t-hold-prepare_lock-when-calling-kref_put.patch
 fs-9p-drop-inodes-immediately-on-non-.l-too.patch
 net-usb-qmi_wwan-support-rolling-modules.patch
 pinctrl-mediatek-fix-fallback-call-path.patch
-asoc-meson-axg-card-fix-nonatomic-links.patch
-asoc-meson-axg-tdm-interface-fix-formatters-in-trigg.patch
 xfrm-preserve-vlan-tags-for-transport-mode-software-.patch
 tcp-defer-shutdown-send_shutdown-for-tcp_syn_recv-so.patch
 tcp-use-refcount_inc_not_zero-in-tcp_twsk_unique.patch