]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
4.14-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 21 Oct 2023 09:17:16 +0000 (11:17 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 21 Oct 2023 09:17:16 +0000 (11:17 +0200)
added patches:
acpi-irq-fix-incorrect-return-value-in-acpi_register_gsi.patch
mmc-core-capture-correct-oemid-bits-for-emmc-cards.patch
revert-pinctrl-avoid-unsafe-code-pattern-in-find_pinctrl.patch

queue-4.14/acpi-irq-fix-incorrect-return-value-in-acpi_register_gsi.patch [new file with mode: 0644]
queue-4.14/mmc-core-capture-correct-oemid-bits-for-emmc-cards.patch [new file with mode: 0644]
queue-4.14/revert-pinctrl-avoid-unsafe-code-pattern-in-find_pinctrl.patch [new file with mode: 0644]
queue-4.14/series
queue-4.14/sky2-make-sure-there-is-at-least-one-frag_addr-avail.patch

diff --git a/queue-4.14/acpi-irq-fix-incorrect-return-value-in-acpi_register_gsi.patch b/queue-4.14/acpi-irq-fix-incorrect-return-value-in-acpi_register_gsi.patch
new file mode 100644 (file)
index 0000000..0700798
--- /dev/null
@@ -0,0 +1,48 @@
+From 0c21a18d5d6c6a73d098fb9b4701572370942df9 Mon Sep 17 00:00:00 2001
+From: Sunil V L <sunilvl@ventanamicro.com>
+Date: Mon, 16 Oct 2023 22:39:39 +0530
+Subject: ACPI: irq: Fix incorrect return value in acpi_register_gsi()
+
+From: Sunil V L <sunilvl@ventanamicro.com>
+
+commit 0c21a18d5d6c6a73d098fb9b4701572370942df9 upstream.
+
+acpi_register_gsi() should return a negative value in case of failure.
+
+Currently, it returns the return value from irq_create_fwspec_mapping().
+However, irq_create_fwspec_mapping() returns 0 for failure. Fix the
+issue by returning -EINVAL if irq_create_fwspec_mapping() returns zero.
+
+Fixes: d44fa3d46079 ("ACPI: Add support for ResourceSource/IRQ domain mapping")
+Cc: 4.11+ <stable@vger.kernel.org> # 4.11+
+Signed-off-by: Sunil V L <sunilvl@ventanamicro.com>
+[ rjw: Rename a new local variable ]
+Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/acpi/irq.c |    7 ++++++-
+ 1 file changed, 6 insertions(+), 1 deletion(-)
+
+--- a/drivers/acpi/irq.c
++++ b/drivers/acpi/irq.c
+@@ -55,6 +55,7 @@ int acpi_register_gsi(struct device *dev
+                     int polarity)
+ {
+       struct irq_fwspec fwspec;
++      unsigned int irq;
+       if (WARN_ON(!acpi_gsi_domain_id)) {
+               pr_warn("GSI: No registered irqchip, giving up\n");
+@@ -66,7 +67,11 @@ int acpi_register_gsi(struct device *dev
+       fwspec.param[1] = acpi_dev_get_irq_type(trigger, polarity);
+       fwspec.param_count = 2;
+-      return irq_create_fwspec_mapping(&fwspec);
++      irq = irq_create_fwspec_mapping(&fwspec);
++      if (!irq)
++              return -EINVAL;
++
++      return irq;
+ }
+ EXPORT_SYMBOL_GPL(acpi_register_gsi);
diff --git a/queue-4.14/mmc-core-capture-correct-oemid-bits-for-emmc-cards.patch b/queue-4.14/mmc-core-capture-correct-oemid-bits-for-emmc-cards.patch
new file mode 100644 (file)
index 0000000..3916f52
--- /dev/null
@@ -0,0 +1,39 @@
+From 84ee19bffc9306128cd0f1c650e89767079efeff Mon Sep 17 00:00:00 2001
+From: Avri Altman <avri.altman@wdc.com>
+Date: Wed, 27 Sep 2023 10:15:00 +0300
+Subject: mmc: core: Capture correct oemid-bits for eMMC cards
+
+From: Avri Altman <avri.altman@wdc.com>
+
+commit 84ee19bffc9306128cd0f1c650e89767079efeff upstream.
+
+The OEMID is an 8-bit binary number rather than 16-bit as the current code
+parses for. The OEMID occupies bits [111:104] in the CID register, see the
+eMMC spec JESD84-B51 paragraph 7.2.3. It seems that the 16-bit comes from
+the legacy MMC specs (v3.31 and before).
+
+Let's fix the parsing by simply move to use 8-bit instead of 16-bit. This
+means we ignore the impact on some of those old MMC cards that may be out
+there, but on the other hand this shouldn't be a problem as the OEMID seems
+not be an important feature for these cards.
+
+Signed-off-by: Avri Altman <avri.altman@wdc.com>
+Cc: stable@vger.kernel.org
+Link: https://lore.kernel.org/r/20230927071500.1791882-1-avri.altman@wdc.com
+Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/mmc/core/mmc.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/mmc/core/mmc.c
++++ b/drivers/mmc/core/mmc.c
+@@ -98,7 +98,7 @@ static int mmc_decode_cid(struct mmc_car
+       case 3: /* MMC v3.1 - v3.3 */
+       case 4: /* MMC v4 */
+               card->cid.manfid        = UNSTUFF_BITS(resp, 120, 8);
+-              card->cid.oemid         = UNSTUFF_BITS(resp, 104, 16);
++              card->cid.oemid         = UNSTUFF_BITS(resp, 104, 8);
+               card->cid.prod_name[0]  = UNSTUFF_BITS(resp, 96, 8);
+               card->cid.prod_name[1]  = UNSTUFF_BITS(resp, 88, 8);
+               card->cid.prod_name[2]  = UNSTUFF_BITS(resp, 80, 8);
diff --git a/queue-4.14/revert-pinctrl-avoid-unsafe-code-pattern-in-find_pinctrl.patch b/queue-4.14/revert-pinctrl-avoid-unsafe-code-pattern-in-find_pinctrl.patch
new file mode 100644 (file)
index 0000000..ffb3728
--- /dev/null
@@ -0,0 +1,77 @@
+From 62140a1e4dec4594d5d1e1d353747bf2ef434e8b Mon Sep 17 00:00:00 2001
+From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
+Date: Tue, 17 Oct 2023 17:18:06 +0300
+Subject: Revert "pinctrl: avoid unsafe code pattern in find_pinctrl()"
+
+From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
+
+commit 62140a1e4dec4594d5d1e1d353747bf2ef434e8b upstream.
+
+The commit breaks MMC enumeration on the Intel Merrifield
+plaform.
+
+Before:
+[   36.439057] mmc0: SDHCI controller on PCI [0000:00:01.0] using ADMA
+[   36.450924] mmc2: SDHCI controller on PCI [0000:00:01.3] using ADMA
+[   36.459355] mmc1: SDHCI controller on PCI [0000:00:01.2] using ADMA
+[   36.706399] mmc0: new DDR MMC card at address 0001
+[   37.058972] mmc2: new ultra high speed DDR50 SDIO card at address 0001
+[   37.278977] mmcblk0: mmc0:0001 H4G1d 3.64 GiB
+[   37.297300]  mmcblk0: p1 p2 p3 p4 p5 p6 p7 p8 p9 p10
+
+After:
+[   36.436704] mmc2: SDHCI controller on PCI [0000:00:01.3] using ADMA
+[   36.436720] mmc1: SDHCI controller on PCI [0000:00:01.0] using ADMA
+[   36.463685] mmc0: SDHCI controller on PCI [0000:00:01.2] using ADMA
+[   36.720627] mmc1: new DDR MMC card at address 0001
+[   37.068181] mmc2: new ultra high speed DDR50 SDIO card at address 0001
+[   37.279998] mmcblk1: mmc1:0001 H4G1d 3.64 GiB
+[   37.302670]  mmcblk1: p1 p2 p3 p4 p5 p6 p7 p8 p9 p10
+
+This reverts commit c153a4edff6ab01370fcac8e46f9c89cca1060c2.
+
+Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
+Link: https://lore.kernel.org/r/20231017141806.535191-1-andriy.shevchenko@linux.intel.com
+Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/pinctrl/core.c |   16 +++++++---------
+ 1 file changed, 7 insertions(+), 9 deletions(-)
+
+--- a/drivers/pinctrl/core.c
++++ b/drivers/pinctrl/core.c
+@@ -973,20 +973,17 @@ static int add_setting(struct pinctrl *p
+ static struct pinctrl *find_pinctrl(struct device *dev)
+ {
+-      struct pinctrl *entry, *p = NULL;
++      struct pinctrl *p;
+       mutex_lock(&pinctrl_list_mutex);
+-
+-      list_for_each_entry(entry, &pinctrl_list, node) {
+-              if (entry->dev == dev) {
+-                      p = entry;
+-                      kref_get(&p->users);
+-                      break;
++      list_for_each_entry(p, &pinctrl_list, node)
++              if (p->dev == dev) {
++                      mutex_unlock(&pinctrl_list_mutex);
++                      return p;
+               }
+-      }
+       mutex_unlock(&pinctrl_list_mutex);
+-      return p;
++      return NULL;
+ }
+ static void pinctrl_free(struct pinctrl *p, bool inlist);
+@@ -1095,6 +1092,7 @@ struct pinctrl *pinctrl_get(struct devic
+       p = find_pinctrl(dev);
+       if (p) {
+               dev_dbg(dev, "obtain a copy of previously claimed pinctrl\n");
++              kref_get(&p->users);
+               return p;
+       }
index 3eb25de1ec3b13bca4441fe8ecb5704451e8fbd1..71c0550ecddea3473169a207babef510503b165e 100644 (file)
@@ -52,3 +52,6 @@ bluetooth-hci_core-fix-build-warnings.patch
 wifi-mac80211-allow-transmitting-eapol-frames-with-t.patch
 wifi-cfg80211-avoid-leaking-stack-data-into-trace.patch
 sky2-make-sure-there-is-at-least-one-frag_addr-avail.patch
+mmc-core-capture-correct-oemid-bits-for-emmc-cards.patch
+revert-pinctrl-avoid-unsafe-code-pattern-in-find_pinctrl.patch
+acpi-irq-fix-incorrect-return-value-in-acpi_register_gsi.patch
index cbb1c943f0d639f1d55f931395d7af086e710680..95cb0df6680c8db9d9202e284cc2cd874dd37e0e 100644 (file)
@@ -52,11 +52,9 @@ Reviewed-by: Gustavo A. R. Silva <gustavoars@kernel.org>
 Signed-off-by: David S. Miller <davem@davemloft.net>
 Signed-off-by: Sasha Levin <sashal@kernel.org>
 ---
- drivers/net/ethernet/marvell/sky2.h | 2 +-
+ drivers/net/ethernet/marvell/sky2.h |    2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
-diff --git a/drivers/net/ethernet/marvell/sky2.h b/drivers/net/ethernet/marvell/sky2.h
-index b02b6523083ce..99451585a45f2 100644
 --- a/drivers/net/ethernet/marvell/sky2.h
 +++ b/drivers/net/ethernet/marvell/sky2.h
 @@ -2201,7 +2201,7 @@ struct rx_ring_info {
@@ -68,6 +66,3 @@ index b02b6523083ce..99451585a45f2 100644
  };
  
  enum flow_control {
--- 
-2.40.1
-