commit:     437036d1af736c254ed24cae3357fb729a898ddd
Author:     Mike Pagano <mpagano <AT> gentoo <DOT> org>
AuthorDate: Mon Feb  6 12:47:34 2023 +0000
Commit:     Mike Pagano <mpagano <AT> gentoo <DOT> org>
CommitDate: Mon Feb  6 12:47:34 2023 +0000
URL:        https://gitweb.gentoo.org/proj/linux-patches.git/commit/?id=437036d1

Linux patch 5.10.167

Signed-off-by: Mike Pagano <mpagano <AT> gentoo.org>

 0000_README               |   4 +
 1166_linux-5.10.167.patch | 203 ++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 207 insertions(+)

diff --git a/0000_README b/0000_README
index 3bb96c32..99a312cb 100644
--- a/0000_README
+++ b/0000_README
@@ -707,6 +707,10 @@ Patch:  1165_linux-5.10.166.patch
 From:   http://www.kernel.org
 Desc:   Linux 5.10.166
 
+Patch:  1166_linux-5.10.167.patch
+From:   http://www.kernel.org
+Desc:   Linux 5.10.167
+
 Patch:  1500_XATTR_USER_PREFIX.patch
 From:   https://bugs.gentoo.org/show_bug.cgi?id=470644
 Desc:   Support for namespace user.pax.* on tmpfs.

diff --git a/1166_linux-5.10.167.patch b/1166_linux-5.10.167.patch
new file mode 100644
index 00000000..989d3996
--- /dev/null
+++ b/1166_linux-5.10.167.patch
@@ -0,0 +1,203 @@
+diff --git a/Makefile b/Makefile
+index efdfb40a82abb..84b78e657357c 100644
+--- a/Makefile
++++ b/Makefile
+@@ -1,7 +1,7 @@
+ # SPDX-License-Identifier: GPL-2.0
+ VERSION = 5
+ PATCHLEVEL = 10
+-SUBLEVEL = 166
++SUBLEVEL = 167
+ EXTRAVERSION =
+ NAME = Dare mighty things
+ 
+diff --git a/arch/arm/boot/dts/imx53-ppd.dts b/arch/arm/boot/dts/imx53-ppd.dts
+index 006fbd7f54322..54e39db447c4d 100644
+--- a/arch/arm/boot/dts/imx53-ppd.dts
++++ b/arch/arm/boot/dts/imx53-ppd.dts
+@@ -487,7 +487,7 @@
+       scl-gpios = <&gpio3 21 GPIO_ACTIVE_HIGH>;
+       status = "okay";
+ 
+-      i2c-switch@70 {
++      i2c-mux@70 {
+               compatible = "nxp,pca9547";
+               #address-cells = <1>;
+               #size-cells = <0>;
+diff --git a/arch/arm/boot/dts/vf610-zii-dev-rev-b.dts 
b/arch/arm/boot/dts/vf610-zii-dev-rev-b.dts
+index 6f1e0f0d4f0ae..073f5d196ca9b 100644
+--- a/arch/arm/boot/dts/vf610-zii-dev-rev-b.dts
++++ b/arch/arm/boot/dts/vf610-zii-dev-rev-b.dts
+@@ -345,7 +345,7 @@
+ };
+ 
+ &i2c2 {
+-      tca9548@70 {
++      i2c-mux@70 {
+               compatible = "nxp,pca9548";
+               pinctrl-0 = <&pinctrl_i2c_mux_reset>;
+               pinctrl-names = "default";
+diff --git a/arch/arm/boot/dts/vf610-zii-dev-rev-c.dts 
b/arch/arm/boot/dts/vf610-zii-dev-rev-c.dts
+index de79dcfd32e62..ba2001f373158 100644
+--- a/arch/arm/boot/dts/vf610-zii-dev-rev-c.dts
++++ b/arch/arm/boot/dts/vf610-zii-dev-rev-c.dts
+@@ -340,7 +340,7 @@
+ };
+ 
+ &i2c2 {
+-      tca9548@70 {
++      i2c-mux@70 {
+               compatible = "nxp,pca9548";
+               pinctrl-0 = <&pinctrl_i2c_mux_reset>;
+               pinctrl-names = "default";
+diff --git a/arch/arm64/boot/dts/freescale/imx8mq-thor96.dts 
b/arch/arm64/boot/dts/freescale/imx8mq-thor96.dts
+index 5d5aa6537225f..6e6182709d220 100644
+--- a/arch/arm64/boot/dts/freescale/imx8mq-thor96.dts
++++ b/arch/arm64/boot/dts/freescale/imx8mq-thor96.dts
+@@ -339,7 +339,7 @@
+       bus-width = <4>;
+       non-removable;
+       no-sd;
+-      no-emmc;
++      no-mmc;
+       status = "okay";
+ 
+       brcmf: wifi@1 {
+@@ -359,7 +359,7 @@
+       cd-gpios = <&gpio2 12 GPIO_ACTIVE_LOW>;
+       bus-width = <4>;
+       no-sdio;
+-      no-emmc;
++      no-mmc;
+       disable-wp;
+       status = "okay";
+ };
+diff --git a/block/blk-cgroup.c b/block/blk-cgroup.c
+index 484c6b2dd264e..c623632c1cda0 100644
+--- a/block/blk-cgroup.c
++++ b/block/blk-cgroup.c
+@@ -1370,6 +1370,10 @@ retry:
+               list_for_each_entry_reverse(blkg, &q->blkg_list, q_node)
+                       pol->pd_init_fn(blkg->pd[pol->plid]);
+ 
++      if (pol->pd_online_fn)
++              list_for_each_entry_reverse(blkg, &q->blkg_list, q_node)
++                      pol->pd_online_fn(blkg->pd[pol->plid]);
++
+       __set_bit(pol->plid, q->blkcg_pols);
+       ret = 0;
+ 
+diff --git a/drivers/acpi/processor_idle.c b/drivers/acpi/processor_idle.c
+index e5dd87ddc6b34..59781e765e0e2 100644
+--- a/drivers/acpi/processor_idle.c
++++ b/drivers/acpi/processor_idle.c
+@@ -536,10 +536,27 @@ static void wait_for_freeze(void)
+       /* No delay is needed if we are in guest */
+       if (boot_cpu_has(X86_FEATURE_HYPERVISOR))
+               return;
++      /*
++       * Modern (>=Nehalem) Intel systems use ACPI via intel_idle,
++       * not this code.  Assume that any Intel systems using this
++       * are ancient and may need the dummy wait.  This also assumes
++       * that the motivating chipset issue was Intel-only.
++       */
++      if (boot_cpu_data.x86_vendor != X86_VENDOR_INTEL)
++              return;
+ #endif
+-      /* Dummy wait op - must do something useless after P_LVL2 read
+-         because chipsets cannot guarantee that STPCLK# signal
+-         gets asserted in time to freeze execution properly. */
++      /*
++       * Dummy wait op - must do something useless after P_LVL2 read
++       * because chipsets cannot guarantee that STPCLK# signal gets
++       * asserted in time to freeze execution properly
++       *
++       * This workaround has been in place since the original ACPI
++       * implementation was merged, circa 2002.
++       *
++       * If a profile is pointing to this instruction, please first
++       * consider moving your system to a more modern idle
++       * mechanism.
++       */
+       inl(acpi_gbl_FADT.xpm_timer_block.address);
+ }
+ 
+diff --git a/drivers/dma/imx-sdma.c b/drivers/dma/imx-sdma.c
+index 2283dcd8bf91d..6514db824473c 100644
+--- a/drivers/dma/imx-sdma.c
++++ b/drivers/dma/imx-sdma.c
+@@ -1363,10 +1363,12 @@ static struct sdma_desc *sdma_transfer_init(struct 
sdma_channel *sdmac,
+               sdma_config_ownership(sdmac, false, true, false);
+ 
+       if (sdma_load_context(sdmac))
+-              goto err_desc_out;
++              goto err_bd_out;
+ 
+       return desc;
+ 
++err_bd_out:
++      sdma_free_bd(desc);
+ err_desc_out:
+       kfree(desc);
+ err_out:
+diff --git a/kernel/trace/bpf_trace.c b/kernel/trace/bpf_trace.c
+index a9e074769881f..ab4f51716645b 100644
+--- a/kernel/trace/bpf_trace.c
++++ b/kernel/trace/bpf_trace.c
+@@ -1072,6 +1072,9 @@ static int bpf_send_signal_common(u32 sig, enum pid_type 
type)
+               return -EPERM;
+       if (unlikely(!nmi_uaccess_okay()))
+               return -EPERM;
++      /* Task should not be pid=1 to avoid kernel panic. */
++      if (unlikely(is_global_init(current)))
++              return -EPERM;
+ 
+       if (irqs_disabled()) {
+               /* Do an early check on signal validity. Otherwise,
+diff --git a/net/bluetooth/hci_event.c b/net/bluetooth/hci_event.c
+index 954b29605c942..eb111504afc60 100644
+--- a/net/bluetooth/hci_event.c
++++ b/net/bluetooth/hci_event.c
+@@ -4307,6 +4307,19 @@ static void hci_sync_conn_complete_evt(struct hci_dev 
*hdev,
+       struct hci_ev_sync_conn_complete *ev = (void *) skb->data;
+       struct hci_conn *conn;
+ 
++      switch (ev->link_type) {
++      case SCO_LINK:
++      case ESCO_LINK:
++              break;
++      default:
++              /* As per Core 5.3 Vol 4 Part E 7.7.35 (p.2219), Link_Type
++               * for HCI_Synchronous_Connection_Complete is limited to
++               * either SCO or eSCO
++               */
++              bt_dev_err(hdev, "Ignoring connect complete event for invalid 
link type");
++              return;
++      }
++
+       BT_DBG("%s status 0x%2.2x", hdev->name, ev->status);
+ 
+       hci_dev_lock(hdev);
+diff --git a/net/core/skbuff.c b/net/core/skbuff.c
+index 2b12e0730b852..668a9d0fbbc6e 100644
+--- a/net/core/skbuff.c
++++ b/net/core/skbuff.c
+@@ -3688,7 +3688,7 @@ struct sk_buff *skb_segment_list(struct sk_buff *skb,
+ 
+       skb_shinfo(skb)->frag_list = NULL;
+ 
+-      do {
++      while (list_skb) {
+               nskb = list_skb;
+               list_skb = list_skb->next;
+ 
+@@ -3732,8 +3732,7 @@ struct sk_buff *skb_segment_list(struct sk_buff *skb,
+               if (skb_needs_linearize(nskb, features) &&
+                   __skb_linearize(nskb))
+                       goto err_linearize;
+-
+-      } while (list_skb);
++      }
+ 
+       skb->truesize = skb->truesize - delta_truesize;
+       skb->data_len = skb->data_len - delta_len;

Reply via email to