Date: Thu, 4 Jul 2024 21:20:49 -0300
From: =?utf-8?Q?=C3=81gatha?= Isabelle Chris Moreira Guedes <code@agatha.dev>
To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>, 
	Luis Chamberlain <mcgrof@kernel.org>, linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org, 
	linux-modules@vger.kernel.org
Cc: Uwe =?utf-8?Q?Kleine-K=C3=B6nig?= <u.kleine-koenig@baylibre.com>, 
	Dan Carpenter <dan.carpenter@linaro.org>, patch-reply@agatha.dev
Subject: [PATCH v2] init: staging: Fix missing warning/taint on builtin code
Message-ID: <n5plxnkubcnbuyv7l24i4cwsauh4odwk6g5yiys6oiiwj3i34r@izcjggvv2om2>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha512;
	protocol="application/pgp-signature"; boundary="joaqmbrrn46rr3ud"
Content-Disposition: inline
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1268552
Newsgroups: org.kernel.vger.linux-kernel,dev.linux.lists.linux-staging,org.kernel.vger.linux-modules
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail


--joaqmbrrn46rr3ud
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

Fix the absence of warning message and kernel tainting when initializing
drivers from the `drivers/staging` subtree from initcalls (when
configured as built-in).

When such a driver is built as module and the module is loaded, the
`load_module()` function taints the kernel to signal code of unknown
quality is loaded, and produces a warning like this:

[    8.076352] rts5208: module is from the staging directory, the
quality is unknown, you have been warned.

The same behaviour is absent, however, when a staging driver is compiled
as built-in on the kernel image, since loading it happens through
initcalls and not through load_module().

This might prevent relevant information of being available on a bug
report (i.e. on a panic log) among other possible problems.

NOTES:
- The patch is written in such a way that all non-staging drivers are
  kept the way they were, except for staging drivers built with
  `-DSTAGING_CODE`.
- Since it changes some macros related to clang LTO as well, I tested it
  and it works properly in kernels compiled with both clang and gcc.
- Some `checkpatch.pl` errors, warnings and checks (with `--strict`) are
  present. Some were already there, some I introduced but I think
  they're unavoidable. Some IMHO don=B4t make sense at all, I think they
  would apply for most regular macros but initcall macros are just way
  different.

Signed-off-by: =C1gatha Isabelle Chris Moreira Guedes <code@agatha.dev>
---
CHANGELOG
v2:
- Changed the way we hook into the initcalls as suggested by Uwe, and
  moved the logic from `include/linux/module.h` to
  `include/linux/init.h`.
- Adjusted accordingly to work with both GCC and clang with
  `CONFIG_LTO_CLANG=3Dy`, since some init scripts required that.
- Fixed the missing space pointed out by Dan & other minor string
  details.
- Changed the subject, since it became somewhat more of an init thing
  than a staging thing.

 drivers/staging/Makefile |  2 ++
 include/linux/init.h     | 76 ++++++++++++++++++++++++++++++++++------
 init/main.c              | 20 +++++++++++
 kernel/module/main.c     |  4 +--
 4 files changed, 88 insertions(+), 14 deletions(-)

diff --git a/drivers/staging/Makefile b/drivers/staging/Makefile
index 5390879b5d1b..7cea13436426 100644
--- a/drivers/staging/Makefile
+++ b/drivers/staging/Makefile
@@ -1,6 +1,8 @@
 # SPDX-License-Identifier: GPL-2.0
 # Makefile for staging directory
=20
+subdir-ccflags-y +=3D -DSTAGING_CODE
+
 obj-y				+=3D media/
 obj-$(CONFIG_FB_OLPC_DCON)	+=3D olpc_dcon/
 obj-$(CONFIG_RTL8192E)		+=3D rtl8192e/
diff --git a/include/linux/init.h b/include/linux/init.h
index 58cef4c2e59a..c7afee978b42 100644
--- a/include/linux/init.h
+++ b/include/linux/init.h
@@ -188,6 +188,8 @@ extern struct module __this_module;
=20
 #ifndef __ASSEMBLY__
=20
+extern void staging_taint(const char *code_id, bool module);
+
 /*
  * initcalls are now grouped by functionality into separate
  * subsections. Ordering inside the subsections is determined
@@ -220,6 +222,14 @@ extern struct module __this_module;
 	__PASTE(__,						\
 	__PASTE(__iid, id))))
=20
+#define __define_stub_fn(___stub, fn, __taintcall)		\
+	int __init ___stub(void);				\
+	int __init ___stub(void)				\
+	{							\
+		__taintcall();					\
+		return fn();					\
+	}							\
+
 #ifdef CONFIG_LTO_CLANG
 /*
  * With LTO, the compiler doesn't necessarily obey link order for
@@ -230,31 +240,75 @@ extern struct module __this_module;
 #define __initcall_section(__sec, __iid)			\
 	#__sec ".init.." #__iid
=20
+#define ___define_initcall_stub(__stub, fn, __taintcall)	\
+	__define_stub_fn(__stub, fn, __taintcall)		\
+	__ADDRESSABLE(__stub)
+#else
+#define __initcall_section(__sec, __iid)			\
+	#__sec ".init"
+
+#define ___define_initcall_stub(__stub, fn, __taintcall)	\
+	__ADDRESSABLE(fn)
+#endif /* CONFIG_LTO_CLANG */
+
+#ifdef STAGING_CODE
+
 /*
  * With LTO, the compiler can rename static functions to avoid
  * global naming collisions. We use a global stub function for
  * initcalls to create a stable symbol name whose address can be
  * taken in inline assembly when PREL32 relocations are used.
+ *
+ * Moreover, when there's staging code, regardless of LTO, we
+ * need to wrap the function inside a new one to taint the
+ * kernel and warn about it in the log. So we need this special
+ * symbol name for the wrapper regardless of that.
  */
 #define __initcall_stub(fn, __iid, id)				\
 	__initcall_name(initstub, __iid, id)
=20
+#define __staging_taint_fn()					\
+	staging_taint(KBUILD_MODNAME, false)
+
+#ifdef CONFIG_LTO_CLANG
+
 #define __define_initcall_stub(__stub, fn)			\
-	int __init __stub(void);				\
-	int __init __stub(void)					\
-	{ 							\
-		return fn();					\
-	}							\
-	__ADDRESSABLE(__stub)
-#else
-#define __initcall_section(__sec, __iid)			\
-	#__sec ".init"
+	___define_initcall_stub(__stub, fn, __staging_taint_fn)
+
+#else /* no CONFIG_LTO_CLANG */
+
+#define __define_initcall_stub(_stub, fn)			\
+	__define_stub_fn(_stub, fn, __staging_taint_fn)		\
+	__ADDRESSABLE(_stub)
+
+#endif /* CONFIG_LTO_CLANG */
+
+#else /* no STAGING_CODE */
+
+#ifdef CONFIG_LTO_CLANG
+
+/*
+ * Same case as before, it's not staging code but there's LTO
+ */
+#define __initcall_stub(fn, __iid, id)				\
+	__initcall_name(initstub, __iid, id)
=20
+#else /* no CONFIG_LTO_CLANG*/
+
+/* For no LTO outside staging code, the vast majority of drivers
+ * can just be built with their regular symbol names as they
+ * just have been built all the time
+ */
 #define __initcall_stub(fn, __iid, id)	fn
=20
+#endif /* CONFIG_LTO_CLANG */
+
+#define __staging_taint_fn()
+
 #define __define_initcall_stub(__stub, fn)			\
-	__ADDRESSABLE(fn)
-#endif
+	___define_initcall_stub(__stub, fn, __staging_taint_fn)
+
+#endif /* STAGING_CODE */
=20
 #ifdef CONFIG_HAVE_ARCH_PREL32_RELOCATIONS
 #define ____define_initcall(fn, __stub, __name, __sec)		\
diff --git a/init/main.c b/init/main.c
index 206acdde51f5..a297675dd397 100644
--- a/init/main.c
+++ b/init/main.c
@@ -1602,3 +1602,23 @@ static noinline void __init kernel_init_freeable(voi=
d)
=20
 	integrity_load_keys();
 }
+
+#ifdef CONFIG_STAGING
+/**
+ * staging_init_taint() - We need to taint the kernel whenever staging code
+ * is initialized (from built-in drivers) or loaded (as modules) and issue
+ * a warning the first time it happens.
+ */
+void staging_taint(const char *code_id, bool module)
+{
+	char *code_type =3D module ? "module" : "builtin driver";
+
+	pr_warn("%s %s: The kernel contains code from staging directory"
+		", the quality is unknown, you have been warned.\n",
+		code_type, code_id);
+
+	add_taint(TAINT_CRAP, LOCKDEP_STILL_OK);
+}
+EXPORT_SYMBOL(staging_taint);
+
+#endif /* CONFIG_STAGING */
diff --git a/kernel/module/main.c b/kernel/module/main.c
index d18a94b973e1..d7d33336ab43 100644
--- a/kernel/module/main.c
+++ b/kernel/module/main.c
@@ -2039,9 +2039,7 @@ static void module_augment_kernel_taints(struct modul=
e *mod, struct load_info *i
 	check_modinfo_retpoline(mod, info);
=20
 	if (get_modinfo(info, "staging")) {
-		add_taint_module(mod, TAINT_CRAP, LOCKDEP_STILL_OK);
-		pr_warn("%s: module is from the staging directory, the quality "
-			"is unknown, you have been warned.\n", mod->name);
+		staging_taint(mod->name, true);
 	}
=20
 	if (is_livepatch_module(mod)) {
--=20
2.45.2


--joaqmbrrn46rr3ud
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----

iHUEABYKAB0WIQQMdxNgKl/8Z+5yuVT3jE4VBgsOTAUCZoc8WAAKCRD3jE4VBgsO
TAv9AP4gR/WH9Mpl8+MCf19elx1EHvHiMwTuH/+P+ipUxsAR0gD/TS7Hk98Kqzb/
PnHqZnRxEka6FUZIyEUy419SnxBXHwY=
=E+nt
-----END PGP SIGNATURE-----

--joaqmbrrn46rr3ud--
.

Date: Fri, 5 Jul 2024 08:35:11 +0800
From: kernel test robot <lkp@intel.com>
To: Suren Baghdasaryan <surenb@google.com>
Cc: llvm@lists.linux.dev, oe-kbuild-all@lists.linux.dev,
	linux-kernel@vger.kernel.org,
	Andrew Morton <akpm@linux-foundation.org>,
	Linux Memory Management List <linux-mm@kvack.org>
Subject: mm/slub.c:2077:1: error: unused function 'prepare_slab_obj_exts_hook'
Message-ID: <202407050845.zNONqauD-lkp@intel.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1268554 org.kvack.linux-mm:202667
Newsgroups: org.kernel.vger.linux-kernel,dev.linux.lists.llvm,dev.linux.lists.oe-kbuild-all,org.kvack.linux-mm
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   661e504db04c6b7278737ee3a9116738536b4ed4
commit: b4601d096aac8ed26afa88ef8b249975b0530ca1 mm/slab: fix 'variable obj_exts set but not used' warning
date:   10 days ago
config: x86_64-sof-customedconfig-amd-defconfig (https://download.01.org/0day-ci/archive/20240705/202407050845.zNONqauD-lkp@intel.com/config)
compiler: clang version 18.1.5 (https://github.com/llvm/llvm-project 617a15a9eac96088ae5e9134248d8236e34b91b1)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240705/202407050845.zNONqauD-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202407050845.zNONqauD-lkp@intel.com/

All errors (new ones prefixed by >>):

>> mm/slub.c:2077:1: error: unused function 'prepare_slab_obj_exts_hook' [-Werror,-Wunused-function]
    2077 | prepare_slab_obj_exts_hook(struct kmem_cache *s, gfp_t flags, void *p)
         | ^~~~~~~~~~~~~~~~~~~~~~~~~~
   1 error generated.


vim +/prepare_slab_obj_exts_hook +2077 mm/slub.c

0bedcc66d2a43a Vlastimil Babka    2023-10-03  2075  
4b8736964640fe Suren Baghdasaryan 2024-03-21  2076  static inline struct slabobj_ext *
4b8736964640fe Suren Baghdasaryan 2024-03-21 @2077  prepare_slab_obj_exts_hook(struct kmem_cache *s, gfp_t flags, void *p)
3450a0e5a6fc4c Vlastimil Babka    2023-11-13  2078  {
4b8736964640fe Suren Baghdasaryan 2024-03-21  2079  	return NULL;
4b8736964640fe Suren Baghdasaryan 2024-03-21  2080  }
3450a0e5a6fc4c Vlastimil Babka    2023-11-13  2081  

:::::: The code at line 2077 was first introduced by commit
:::::: 4b8736964640fe160724e7135dc62883bddcdace mm/slab: add allocation accounting into slab allocation and free paths

:::::: TO: Suren Baghdasaryan <surenb@google.com>
:::::: CC: Andrew Morton <akpm@linux-foundation.org>

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
.

From: Nobuaki Tsunashima <nobuaki.tsunashima@infineon.com>
To: Marcel Holtmann <marcel@holtmann.org>, Luiz Augusto von Dentz
	<luiz.dentz@gmail.com>
CC: <linux-bluetooth@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
	"Nobuaki Tsunashima" <Nobuaki.Tsunashima@infineon.com>
Subject: [PATCH v5] Bluetooth: btbcm: Apply HCI_QUIRK_BROKEN_READ_TRANSMIT_POWER to CYW4373
Date: Fri, 5 Jul 2024 10:15:25 +0900
Message-ID: <20240705011525.402650-1-nobuaki.tsunashima@infineon.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1268573
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-bluetooth
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

From: Nobuaki Tsunashima <Nobuaki.Tsunashima@infineon.com>

CYW4373 ROM FW has an issue that it claims LE_Read_Transmit_Power command
as supported in a response of Read_Local_Supported_Command command but
rejects the LE_Read_Transmit_Power command with "Unknown HCI Command"
status. Because Bluetooth driver of kernel 5.11 added sending the
LE_Read_Transmit_Power command in initialize phase, hci up fails due to the
issue.

Especially in USB i/f case, it would be difficult to download patch FW that
includes its fix unless hci is up.

The driver already contains infrastructure to apply the quirk for the
issue, but currently it only supports DMI based matching. Add support to
match by chip id and baseline FW version to detect CYW4373 ROM FW build
in generic system.

Fixes: 7c395ea521e6 ("Bluetooth: Query LE tx power on startup")
Signed-off-by: Nobuaki Tsunashima <Nobuaki.Tsunashima@infineon.com>
---
V4 -> V5: Use skb_pull_data() to access skb->data as safer manner.
V3 -> V4: Fix a few coding style warnings and refine comments for clarify.
V2 -> V3: Fix a few coding style warnings and change the subject as more specific.
V1 -> V2: Fix several coding style warnings.

 drivers/bluetooth/btbcm.c | 41 +++++++++++++++++++++++++++++++++++++--
 drivers/bluetooth/btusb.c |  4 ++++
 2 files changed, 43 insertions(+), 2 deletions(-)

diff --git a/drivers/bluetooth/btbcm.c b/drivers/bluetooth/btbcm.c
index 0a5445ac5e1b..dd7262a8dc8e 100644
--- a/drivers/bluetooth/btbcm.c
+++ b/drivers/bluetooth/btbcm.c
@@ -437,16 +437,53 @@ static const struct dmi_system_id disable_broken_read_transmit_power[] = {
 	{ }
 };
 
+struct bcm_chip_version_table {
+	u8 chip_id;			/* Chip ID */
+	u16 baseline;		/* Baseline version of patch FW */
+};
+#define BCM_ROMFW_BASELINE_NUM	0xFFFF
+static const struct bcm_chip_version_table disable_broken_read_transmit_power_by_chip_ver[] = {
+	{ 0x87, BCM_ROMFW_BASELINE_NUM }		/* CYW4373/4373E */
+};
+static bool btbcm_is_disable_broken_read_tx_power_by_chip_ver(u8 chip_id, u16 baseline)
+{
+	int i;
+	size_t table_size = ARRAY_SIZE(disable_broken_read_transmit_power_by_chip_ver);
+	const struct bcm_chip_version_table *entry =
+						&disable_broken_read_transmit_power_by_chip_ver[0];
+
+	for (i = 0 ; i < table_size ; i++, entry++)	{
+		if ((chip_id == entry->chip_id) && (baseline == entry->baseline))
+			return true;
+	}
+
+	return false;
+}
+
 static int btbcm_read_info(struct hci_dev *hdev)
 {
 	struct sk_buff *skb;
+	u8 *chip_id;
+	u16 *baseline;
 
 	/* Read Verbose Config Version Info */
 	skb = btbcm_read_verbose_config(hdev);
 	if (IS_ERR(skb))
 		return PTR_ERR(skb);
-
-	bt_dev_info(hdev, "BCM: chip id %u", skb->data[1]);
+	skb_pull_data(skb, 1);
+	chip_id = skb_pull_data(skb, sizeof(*chip_id));
+	skb_pull_data(skb, 1);
+	baseline = skb_pull_data(skb, sizeof(*baseline));
+
+	if (chip_id) {
+		bt_dev_info(hdev, "BCM: chip id %u", *chip_id);
+
+		if (baseline) {
+			/* Check Chip ID and disable broken Read LE Min/Max Tx Power */
+			if (btbcm_is_disable_broken_read_tx_power_by_chip_ver(*chip_id, *baseline))
+				set_bit(HCI_QUIRK_BROKEN_READ_TRANSMIT_POWER, &hdev->quirks);
+		}
+	}
 	kfree_skb(skb);
 
 	return 0;
diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
index d31edad7a056..52561c8d8828 100644
--- a/drivers/bluetooth/btusb.c
+++ b/drivers/bluetooth/btusb.c
@@ -142,6 +142,10 @@ static const struct usb_device_id btusb_table[] = {
 	{ USB_VENDOR_AND_INTERFACE_INFO(0x04ca, 0xff, 0x01, 0x01),
 	  .driver_info = BTUSB_BCM_PATCHRAM },
 
+	/* Cypress devices with vendor specific id */
+	{ USB_VENDOR_AND_INTERFACE_INFO(0x04b4, 0xff, 0x01, 0x01),
+	  .driver_info = BTUSB_BCM_PATCHRAM },
+
 	/* Broadcom devices with vendor specific id */
 	{ USB_VENDOR_AND_INTERFACE_INFO(0x0a5c, 0xff, 0x01, 0x01),
 	  .driver_info = BTUSB_BCM_PATCHRAM },
-- 
2.25.1

.

From: Tianyang Zhang <zhangtianyang@loongson.cn>
To: chenhuacai@kernel.org,
	kernel@xen0n.name,
	corbet@lwn.net,
	alexs@kernel.org,
	siyanteng@loongson.cn
Cc: loongarch@lists.linux.dev,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	Tianyang Zhang <zhangtianyang@loongson.cn>
Subject: [PATCH 1/2] docs: Add advanced extended IRQ model description
Date: Fri,  5 Jul 2024 09:41:44 +0800
Message-Id: <20240705014144.14750-1-zhangtianyang@loongson.cn>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1268593
Newsgroups: org.kernel.vger.linux-kernel,dev.linux.lists.loongarch,org.kernel.vger.linux-doc
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

From 3C6000, Loongarch began to support advanced extended
interrupt mode, in which each CPU has an independent interrupt
vector number.This will enhance the architecture's ability
to support modern devices

Signed-off-by: Tianyang Zhang <zhangtianyang@loongson.cn>
---
 .../arch/loongarch/irq-chip-model.rst         | 33 +++++++++++++++++
 .../zh_CN/arch/loongarch/irq-chip-model.rst   | 37 +++++++++++++++++--
 2 files changed, 67 insertions(+), 3 deletions(-)

diff --git a/Documentation/arch/loongarch/irq-chip-model.rst b/Documentation/arch/loongarch/irq-chip-model.rst
index 7988f4192363..369df16b48d0 100644
--- a/Documentation/arch/loongarch/irq-chip-model.rst
+++ b/Documentation/arch/loongarch/irq-chip-model.rst
@@ -85,6 +85,39 @@ to CPUINTC directly::
     | Devices |
     +---------+
 
+Advanced Extended IRQ model
+===========================
+
+In this model, IPI (Inter-Processor Interrupt) and CPU Local Timer interrupt go
+to CPUINTC directly, CPU UARTS interrupts go to LIOINTC, MSI interrupts go to AVEC,
+and then go to CPUINTC, Other devices interrupts go to PCH-PIC/PCH-LPC and gathered
+by EIOINTC, and then go to CPUINTC directly::
+
+ +-----+     +--------------------------+     +-------+
+ | IPI | --> |           CPUINTC        | <-- | Timer |
+ +-----+     +--------------------------+     +-------+
+              ^        ^             ^
+              |        |             |
+      +--------+  +---------+ +---------+     +-------+
+      | AVEC   |  | EIOINTC | | LIOINTC | <-- | UARTs |
+      +--------+  +---------+ +---------+     +-------+
+           ^            ^
+           |            |
+         +---------+  +---------+
+         | PCH-MSI |  | PCH-PIC |
+         +---------+  +---------+
+            ^          ^       ^
+            |          |       |
+    +---------+ +---------+ +---------+
+    | Devices | | PCH-LPC | | Devices |
+    +---------+ +---------+ +---------+
+                     ^
+                     |
+                +---------+
+                | Devices |
+                +---------+
+
+
 ACPI-related definitions
 ========================
 
diff --git a/Documentation/translations/zh_CN/arch/loongarch/irq-chip-model.rst b/Documentation/translations/zh_CN/arch/loongarch/irq-chip-model.rst
index f1e9ab18206c..15965e191cd1 100644
--- a/Documentation/translations/zh_CN/arch/loongarch/irq-chip-model.rst
+++ b/Documentation/translations/zh_CN/arch/loongarch/irq-chip-model.rst
@@ -9,9 +9,8 @@
 LoongArch的IRQ芯片模型（层级关系）
 ==================================
 
-目前，基于LoongArch的处理器（如龙芯3A5000）只能与LS7A芯片组配合工作。LoongArch计算机
-中的中断控制器（即IRQ芯片）包括CPUINTC（CPU Core Interrupt Controller）、LIOINTC（
-Legacy I/O Interrupt Controller）、EIOINTC（Extended I/O Interrupt Controller）、
+LoongArch计算机中的中断控制器（即IRQ芯片）包括CPUINTC（CPU Core Interrupt Controller）、
+LIOINTC（Legacy I/O Interrupt Controller）、EIOINTC（Extended I/O Interrupt Controller）、
 HTVECINTC（Hyper-Transport Vector Interrupt Controller）、PCH-PIC（LS7A芯片组的主中
 断控制器）、PCH-LPC（LS7A芯片组的LPC中断控制器）和PCH-MSI（MSI中断控制器）。
 
@@ -87,6 +86,38 @@ PCH-LPC/PCH-MSI，然后被EIOINTC统一收集，再直接到达CPUINTC::
     | Devices |
     +---------+
 
+高级扩展IRQ模型
+=======================
+
+在这种模型里面，IPI（Inter-Processor Interrupt）和CPU本地时钟中断直接发送到CPUINTC，
+CPU串口（UARTs）中断发送到LIOINTC，MSI中断发送到AVEC，而后通过AVEC送达CPUINTC，而
+其他所有设备的中断则分别发送到所连接的PCH-PIC/PCH-LPC，然后由EIOINTC统一收集，再直
+接到达CPUINTC::
+
+ +-----+     +--------------------------+     +-------+
+ | IPI | --> |           CPUINTC        | <-- | Timer |
+ +-----+     +--------------------------+     +-------+
+              ^        ^             ^
+              |        |             |
+      +--------+  +---------+ +---------+     +-------+
+      | AVEC   |  | EIOINTC | | LIOINTC | <-- | UARTs |
+      +--------+  +---------+ +---------+     +-------+
+              ^        ^
+              |        |
+      +---------+  +-------------+
+      | PCH-MSI |  |   PCH-PIC   |
+      +---------+  +-------------+
+            ^          ^       ^
+            |          |       |
+    +---------+ +---------+ +---------+
+    | Devices | | PCH-LPC | | Devices |
+    +---------+ +---------+ +---------+
+                     ^
+                     |
+                +---------+
+                | Devices |
+                +---------+
+
 ACPI相关的定义
 ==============
 
-- 
2.20.1

.

From: Tianyang Zhang <zhangtianyang@loongson.cn>
To: chenhuacai@kernel.org,
	kernel@xen0n.name,
	corbet@lwn.net,
	alexs@kernel.org,
	siyanteng@loongson.cn
Cc: loongarch@lists.linux.dev,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	Tianyang Zhang <zhangtianyang@loongson.cn>
Subject: [PATCH V2 1/2][RESEND] docs: Add advanced extended IRQ model description
Date: Fri,  5 Jul 2024 09:48:35 +0800
Message-Id: <20240705014835.15931-1-zhangtianyang@loongson.cn>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1268595
Newsgroups: org.kernel.vger.linux-kernel,dev.linux.lists.loongarch,org.kernel.vger.linux-doc
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

From 3C6000, Loongarch began to support advanced extended
interrupt mode, in which each CPU has an independent interrupt
vector number.This will enhance the architecture's ability
to support modern devices

Signed-off-by: Tianyang Zhang <zhangtianyang@loongson.cn>
---
 .../arch/loongarch/irq-chip-model.rst         | 33 +++++++++++++++++
 .../zh_CN/arch/loongarch/irq-chip-model.rst   | 37 +++++++++++++++++--
 2 files changed, 67 insertions(+), 3 deletions(-)

diff --git a/Documentation/arch/loongarch/irq-chip-model.rst b/Documentation/arch/loongarch/irq-chip-model.rst
index 7988f4192363..a90c78c8e5bb 100644
--- a/Documentation/arch/loongarch/irq-chip-model.rst
+++ b/Documentation/arch/loongarch/irq-chip-model.rst
@@ -85,6 +85,39 @@ to CPUINTC directly::
     | Devices |
     +---------+
 
+Advanced Extended IRQ model
+===========================
+
+In this model, IPI (Inter-Processor Interrupt) and CPU Local Timer interrupt go
+to CPUINTC directly, CPU UARTS interrupts go to LIOINTC, PCH-MSI interrupts go to AVEC,
+and then go to CPUINTC, Other devices interrupts go to PCH-PIC/PCH-LPC and gathered
+by EIOINTC, and then go to CPUINTC directly::
+
+ +-----+     +--------------------------+     +-------+
+ | IPI | --> |           CPUINTC        | <-- | Timer |
+ +-----+     +--------------------------+     +-------+
+              ^        ^             ^
+              |        |             |
+      +--------+  +---------+ +---------+     +-------+
+      | AVEC   |  | EIOINTC | | LIOINTC | <-- | UARTs |
+      +--------+  +---------+ +---------+     +-------+
+           ^            ^
+           |            |
+         +---------+  +---------+
+         | PCH-MSI |  | PCH-PIC |
+         +---------+  +---------+
+            ^          ^       ^
+            |          |       |
+    +---------+ +---------+ +---------+
+    | Devices | | PCH-LPC | | Devices |
+    +---------+ +---------+ +---------+
+                     ^
+                     |
+                +---------+
+                | Devices |
+                +---------+
+
+
 ACPI-related definitions
 ========================
 
diff --git a/Documentation/translations/zh_CN/arch/loongarch/irq-chip-model.rst b/Documentation/translations/zh_CN/arch/loongarch/irq-chip-model.rst
index f1e9ab18206c..b54567380c90 100644
--- a/Documentation/translations/zh_CN/arch/loongarch/irq-chip-model.rst
+++ b/Documentation/translations/zh_CN/arch/loongarch/irq-chip-model.rst
@@ -9,9 +9,8 @@
 LoongArch的IRQ芯片模型（层级关系）
 ==================================
 
-目前，基于LoongArch的处理器（如龙芯3A5000）只能与LS7A芯片组配合工作。LoongArch计算机
-中的中断控制器（即IRQ芯片）包括CPUINTC（CPU Core Interrupt Controller）、LIOINTC（
-Legacy I/O Interrupt Controller）、EIOINTC（Extended I/O Interrupt Controller）、
+LoongArch计算机中的中断控制器（即IRQ芯片）包括CPUINTC（CPU Core Interrupt Controller）、
+LIOINTC（Legacy I/O Interrupt Controller）、EIOINTC（Extended I/O Interrupt Controller）、
 HTVECINTC（Hyper-Transport Vector Interrupt Controller）、PCH-PIC（LS7A芯片组的主中
 断控制器）、PCH-LPC（LS7A芯片组的LPC中断控制器）和PCH-MSI（MSI中断控制器）。
 
@@ -87,6 +86,38 @@ PCH-LPC/PCH-MSI，然后被EIOINTC统一收集，再直接到达CPUINTC::
     | Devices |
     +---------+
 
+高级扩展IRQ模型
+=======================
+
+在这种模型里面，IPI（Inter-Processor Interrupt）和CPU本地时钟中断直接发送到CPUINTC，
+CPU串口（UARTs）中断发送到LIOINTC，PCH-MSI中断发送到AVEC，而后通过AVEC送达CPUINTC，而
+其他所有设备的中断则分别发送到所连接的PCH-PIC/PCH-LPC，然后由EIOINTC统一收集，再直
+接到达CPUINTC::
+
+ +-----+     +--------------------------+     +-------+
+ | IPI | --> |           CPUINTC        | <-- | Timer |
+ +-----+     +--------------------------+     +-------+
+              ^        ^             ^
+              |        |             |
+      +--------+  +---------+ +---------+     +-------+
+      | AVEC   |  | EIOINTC | | LIOINTC | <-- | UARTs |
+      +--------+  +---------+ +---------+     +-------+
+              ^        ^
+              |        |
+      +---------+  +-------------+
+      | PCH-MSI |  |   PCH-PIC   |
+      +---------+  +-------------+
+            ^          ^       ^
+            |          |       |
+    +---------+ +---------+ +---------+
+    | Devices | | PCH-LPC | | Devices |
+    +---------+ +---------+ +---------+
+                     ^
+                     |
+                +---------+
+                | Devices |
+                +---------+
+
 ACPI相关的定义
 ==============
 
-- 
2.20.1

.

From: Tianyang Zhang <zhangtianyang@loongson.cn>
To: chenhuacai@kernel.org,
	kernel@xen0n.name,
	tglx@linutronix.de,
	jiaxun.yang@flygoat.com,
	gaoliang@loongson.cn,
	wangliupu@loongson.cn,
	lvjianmin@loongson.cn,
	zhangtianyang@loongson.cn,
	yijun@loongson.cn,
	mhocko@suse.com,
	akpm@linux-foundation.org,
	dianders@chromium.org,
	maobibo@loongson.cn,
	xry111@xry111.site,
	zhaotianrui@loongson.cn,
	nathan@kernel.org,
	yangtiezhu@loongson.cn,
	zhoubinbin@loongson.cn
Cc: loongarch@lists.linux.dev,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: [PATCH V2 2/2] LoongArch: Add AVEC irqchip support
Date: Fri,  5 Jul 2024 09:53:15 +0800
Message-Id: <20240705015315.16541-1-zhangtianyang@loongson.cn>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1268601
Newsgroups: org.kernel.vger.linux-kernel,dev.linux.lists.loongarch,org.kernel.vger.linux-doc
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Introduce the advanced extended interrupt controllers. This feature will
allow each core to have 256 independent interrupt vectors and MSI
interrupts can be independently routed to any vector on any CPU.

Co-developed-by: Jianmin Lv <lvjianmin@loongson.cn>
Signed-off-by: Jianmin Lv <lvjianmin@loongson.cn>
Co-developed-by: Liupu Wang <wangliupu@loongson.cn>
Signed-off-by: Liupu Wang <wangliupu@loongson.cn>
Co-developed-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Tianyang Zhang <zhangtianyang@loongson.cn>
---
 arch/loongarch/Kconfig                    |   1 +
 arch/loongarch/include/asm/cpu-features.h |   1 +
 arch/loongarch/include/asm/cpu.h          |   2 +
 arch/loongarch/include/asm/hw_irq.h       |  10 +
 arch/loongarch/include/asm/irq.h          |  12 +-
 arch/loongarch/include/asm/loongarch.h    |  20 +-
 arch/loongarch/include/asm/smp.h          |   2 +
 arch/loongarch/kernel/cpu-probe.c         |   3 +-
 arch/loongarch/kernel/smp.c               |   5 +
 drivers/irqchip/Makefile                  |   2 +-
 drivers/irqchip/irq-loongarch-avec.c      | 440 ++++++++++++++++++++++
 drivers/irqchip/irq-loongarch-cpu.c       |   4 +-
 drivers/irqchip/irq-loongson-eiointc.c    |   3 +
 drivers/irqchip/irq-loongson-pch-msi.c    |  43 ++-
 14 files changed, 538 insertions(+), 10 deletions(-)
 create mode 100644 drivers/irqchip/irq-loongarch-avec.c

Changes log:
V0->V1:
	1.Modified some formats and declarations
	2.Removed kmalloc/kfree when adding affinity related data to pending_list,
 	  and used moving tag to replace the original behavior
	3.Adjusted the process that enables AVEC interrupts, now it is at the end of all processes
	4.Removed CPUHP related callbacks, now irq_matrix_online/irq_matrix_offline is completed in start_secondary/loongson_cpu_disable
	5.Adjusted compatibility issues for CONFIG_ACPI
	6.About question:
	> irr = csr_read64(LOONGARCH_CSR_IRR0 + vector / 64);
	> should be good enough, no? 
	csr_read64 was built-in as __csrrd_d, it doesn't seem to support variables as parameters 
	>>>>
	drivers/irqchip/irq-loongarch-avec.c: In function ‘complete_irq_moving’:
	./arch/loongarch/include/asm/loongarch.h:164:25: error: invalid argument to built-in function
	  164 | #define csr_read64(reg) __csrrd_d(reg)
	      |                         ^~~~~~~~~
	drivers/irqchip/irq-loongarch-avec.c:170:23: note: in expansion of macro ‘csr_read64’
	  170 |                 irr = csr_read64(LOONGARCH_CSR_IRR_BASE + vector / VECTORS_PER_REG);
	      |                       ^~~~~~~~~~
	>>>>
	So we have temporarily retained the previous implementation.

V1->V2:
	Fixed up coding style. Made on/offline functions void
	Added compatibility when CONFIG_SMP is turned off

diff --git a/arch/loongarch/Kconfig b/arch/loongarch/Kconfig
index e38139c576ee..a66e49b5a68c 100644
--- a/arch/loongarch/Kconfig
+++ b/arch/loongarch/Kconfig
@@ -83,6 +83,7 @@ config LOONGARCH
 	select GENERIC_ENTRY
 	select GENERIC_GETTIMEOFDAY
 	select GENERIC_IOREMAP if !ARCH_IOREMAP
+	select GENERIC_IRQ_MATRIX_ALLOCATOR
 	select GENERIC_IRQ_MULTI_HANDLER
 	select GENERIC_IRQ_PROBE
 	select GENERIC_IRQ_SHOW
diff --git a/arch/loongarch/include/asm/cpu-features.h b/arch/loongarch/include/asm/cpu-features.h
index 2eafe6a6aca8..16a716f88a5c 100644
--- a/arch/loongarch/include/asm/cpu-features.h
+++ b/arch/loongarch/include/asm/cpu-features.h
@@ -65,5 +65,6 @@
 #define cpu_has_guestid		cpu_opt(LOONGARCH_CPU_GUESTID)
 #define cpu_has_hypervisor	cpu_opt(LOONGARCH_CPU_HYPERVISOR)
 #define cpu_has_ptw		cpu_opt(LOONGARCH_CPU_PTW)
+#define cpu_has_avecint		cpu_opt(LOONGARCH_CPU_AVECINT)
 
 #endif /* __ASM_CPU_FEATURES_H */
diff --git a/arch/loongarch/include/asm/cpu.h b/arch/loongarch/include/asm/cpu.h
index 48b9f7168bcc..843f9c4ec980 100644
--- a/arch/loongarch/include/asm/cpu.h
+++ b/arch/loongarch/include/asm/cpu.h
@@ -99,6 +99,7 @@ enum cpu_type_enum {
 #define CPU_FEATURE_GUESTID		24	/* CPU has GuestID feature */
 #define CPU_FEATURE_HYPERVISOR		25	/* CPU has hypervisor (running in VM) */
 #define CPU_FEATURE_PTW			26	/* CPU has hardware page table walker */
+#define CPU_FEATURE_AVECINT		27	/* CPU has avec interrupt */
 
 #define LOONGARCH_CPU_CPUCFG		BIT_ULL(CPU_FEATURE_CPUCFG)
 #define LOONGARCH_CPU_LAM		BIT_ULL(CPU_FEATURE_LAM)
@@ -127,5 +128,6 @@ enum cpu_type_enum {
 #define LOONGARCH_CPU_GUESTID		BIT_ULL(CPU_FEATURE_GUESTID)
 #define LOONGARCH_CPU_HYPERVISOR	BIT_ULL(CPU_FEATURE_HYPERVISOR)
 #define LOONGARCH_CPU_PTW		BIT_ULL(CPU_FEATURE_PTW)
+#define LOONGARCH_CPU_AVECINT		BIT_ULL(CPU_FEATURE_AVECINT)
 
 #endif /* _ASM_CPU_H */
diff --git a/arch/loongarch/include/asm/hw_irq.h b/arch/loongarch/include/asm/hw_irq.h
index af4f4e8fbd85..772692e765c0 100644
--- a/arch/loongarch/include/asm/hw_irq.h
+++ b/arch/loongarch/include/asm/hw_irq.h
@@ -9,6 +9,16 @@
 
 extern atomic_t irq_err_count;
 
+/*
+ * 256 vectors Map:
+ *
+ * 0 - 15: mapping legacy IPs, e.g. IP0-12.
+ * 16 - 255: mapping a vector for external IRQ.
+ *
+ */
+#define NR_VECTORS		256
+#define IRQ_MATRIX_BITS		NR_VECTORS
+#define NR_LEGACY_VECTORS	16
 /*
  * interrupt-retrigger: NOP for now. This may not be appropriate for all
  * machines, we'll see ...
diff --git a/arch/loongarch/include/asm/irq.h b/arch/loongarch/include/asm/irq.h
index 480418bc5071..cf3b635a9b86 100644
--- a/arch/loongarch/include/asm/irq.h
+++ b/arch/loongarch/include/asm/irq.h
@@ -65,7 +65,7 @@ extern struct acpi_vector_group msi_group[MAX_IO_PICS];
 #define LOONGSON_LPC_LAST_IRQ		(LOONGSON_LPC_IRQ_BASE + 15)
 
 #define LOONGSON_CPU_IRQ_BASE		16
-#define LOONGSON_CPU_LAST_IRQ		(LOONGSON_CPU_IRQ_BASE + 14)
+#define LOONGSON_CPU_LAST_IRQ		(LOONGSON_CPU_IRQ_BASE + 15)
 
 #define LOONGSON_PCH_IRQ_BASE		64
 #define LOONGSON_PCH_ACPI_IRQ		(LOONGSON_PCH_IRQ_BASE + 47)
@@ -101,6 +101,16 @@ int pch_msi_acpi_init(struct irq_domain *parent,
 					struct acpi_madt_msi_pic *acpi_pchmsi);
 int pch_pic_acpi_init(struct irq_domain *parent,
 					struct acpi_madt_bio_pic *acpi_pchpic);
+
+#ifdef CONFIG_ACPI
+int __init pch_msi_acpi_init_v2(struct irq_domain *parent,
+		struct acpi_madt_msi_pic *pch_msi_entry);
+int __init loongarch_avec_acpi_init(struct irq_domain *parent);
+void complete_irq_moving(void);
+void loongarch_avec_offline_cpu(unsigned int cpu);
+void loongarch_avec_online_cpu(unsigned int cpu);
+#endif
+
 int find_pch_pic(u32 gsi);
 struct fwnode_handle *get_pch_msi_handle(int pci_segment);
 
diff --git a/arch/loongarch/include/asm/loongarch.h b/arch/loongarch/include/asm/loongarch.h
index eb09adda54b7..16a910359977 100644
--- a/arch/loongarch/include/asm/loongarch.h
+++ b/arch/loongarch/include/asm/loongarch.h
@@ -72,7 +72,6 @@
 #define  CPUCFG1_RPLV			BIT(23)
 #define  CPUCFG1_HUGEPG			BIT(24)
 #define  CPUCFG1_CRC32			BIT(25)
-#define  CPUCFG1_MSGINT			BIT(26)
 
 #define LOONGARCH_CPUCFG2		0x2
 #define  CPUCFG2_FP			BIT(0)
@@ -252,8 +251,8 @@
 #define  CSR_ESTAT_EXC_WIDTH		6
 #define  CSR_ESTAT_EXC			(_ULCAST_(0x3f) << CSR_ESTAT_EXC_SHIFT)
 #define  CSR_ESTAT_IS_SHIFT		0
-#define  CSR_ESTAT_IS_WIDTH		14
-#define  CSR_ESTAT_IS			(_ULCAST_(0x3fff) << CSR_ESTAT_IS_SHIFT)
+#define  CSR_ESTAT_IS_WIDTH		15
+#define  CSR_ESTAT_IS			(_ULCAST_(0x7fff) << CSR_ESTAT_IS_SHIFT)
 
 #define LOONGARCH_CSR_ERA		0x6	/* ERA */
 
@@ -999,10 +998,18 @@
 #define CSR_FWPC_SKIP_SHIFT		16
 #define CSR_FWPC_SKIP			(_ULCAST_(1) << CSR_FWPC_SKIP_SHIFT)
 
+#define LOONGARCH_CSR_IRR0		0xa0
+#define LOONGARCH_CSR_IRR1		0xa1
+#define LOONGARCH_CSR_IRR2		0xa2
+#define LOONGARCH_CSR_IRR3		0xa3
+#define LOONGARCH_CSR_IRR_BASE		LOONGARCH_CSR_IRR0
+
+#define	LOONGARCH_CSR_ILR		0xa4
+
 /*
  * CSR_ECFG IM
  */
-#define ECFG0_IM		0x00001fff
+#define ECFG0_IM		0x00005fff
 #define ECFGB_SIP0		0
 #define ECFGF_SIP0		(_ULCAST_(1) << ECFGB_SIP0)
 #define ECFGB_SIP1		1
@@ -1045,6 +1052,7 @@
 #define  IOCSRF_EIODECODE		BIT_ULL(9)
 #define  IOCSRF_FLATMODE		BIT_ULL(10)
 #define  IOCSRF_VM			BIT_ULL(11)
+#define  IOCSRF_AVEC			BIT_ULL(15)
 
 #define LOONGARCH_IOCSR_VENDOR		0x10
 
@@ -1055,6 +1063,7 @@
 #define LOONGARCH_IOCSR_MISC_FUNC	0x420
 #define  IOCSR_MISC_FUNC_TIMER_RESET	BIT_ULL(21)
 #define  IOCSR_MISC_FUNC_EXT_IOI_EN	BIT_ULL(48)
+#define  IOCSR_MISC_FUNC_AVEC_EN	BIT_ULL(51)
 
 #define LOONGARCH_IOCSR_CPUTEMP		0x428
 
@@ -1375,9 +1384,10 @@ __BUILD_CSR_OP(tlbidx)
 #define INT_TI		11	/* Timer */
 #define INT_IPI		12
 #define INT_NMI		13
+#define INT_AVEC	14
 
 /* ExcCodes corresponding to interrupts */
-#define EXCCODE_INT_NUM		(INT_NMI + 1)
+#define EXCCODE_INT_NUM		(INT_AVEC + 1)
 #define EXCCODE_INT_START	64
 #define EXCCODE_INT_END		(EXCCODE_INT_START + EXCCODE_INT_NUM - 1)
 
diff --git a/arch/loongarch/include/asm/smp.h b/arch/loongarch/include/asm/smp.h
index 278700cfee88..2399004596a3 100644
--- a/arch/loongarch/include/asm/smp.h
+++ b/arch/loongarch/include/asm/smp.h
@@ -69,9 +69,11 @@ extern int __cpu_logical_map[NR_CPUS];
 #define ACTION_BOOT_CPU	0
 #define ACTION_RESCHEDULE	1
 #define ACTION_CALL_FUNCTION	2
+#define ACTION_CLEAR_VECT	3
 #define SMP_BOOT_CPU		BIT(ACTION_BOOT_CPU)
 #define SMP_RESCHEDULE		BIT(ACTION_RESCHEDULE)
 #define SMP_CALL_FUNCTION	BIT(ACTION_CALL_FUNCTION)
+#define SMP_CLEAR_VECT		BIT(ACTION_CLEAR_VECT)
 
 struct secondary_data {
 	unsigned long stack;
diff --git a/arch/loongarch/kernel/cpu-probe.c b/arch/loongarch/kernel/cpu-probe.c
index 55320813ee08..3b2e72e8f9bd 100644
--- a/arch/loongarch/kernel/cpu-probe.c
+++ b/arch/loongarch/kernel/cpu-probe.c
@@ -106,7 +106,6 @@ static void cpu_probe_common(struct cpuinfo_loongarch *c)
 		elf_hwcap |= HWCAP_LOONGARCH_CRC32;
 	}
 
-
 	config = read_cpucfg(LOONGARCH_CPUCFG2);
 	if (config & CPUCFG2_LAM) {
 		c->options |= LOONGARCH_CPU_LAM;
@@ -176,6 +175,8 @@ static void cpu_probe_common(struct cpuinfo_loongarch *c)
 		c->options |= LOONGARCH_CPU_EIODECODE;
 	if (config & IOCSRF_VM)
 		c->options |= LOONGARCH_CPU_HYPERVISOR;
+	if (config & IOCSRF_AVEC)
+		c->options |= LOONGARCH_CPU_AVECINT;
 
 	config = csr_read32(LOONGARCH_CSR_ASID);
 	config = (config & CSR_ASID_BIT) >> CSR_ASID_BIT_SHIFT;
diff --git a/arch/loongarch/kernel/smp.c b/arch/loongarch/kernel/smp.c
index 0dfe2388ef41..6dfedef306f3 100644
--- a/arch/loongarch/kernel/smp.c
+++ b/arch/loongarch/kernel/smp.c
@@ -234,6 +234,9 @@ static irqreturn_t loongson_ipi_interrupt(int irq, void *dev)
 		per_cpu(irq_stat, cpu).ipi_irqs[IPI_CALL_FUNCTION]++;
 	}
 
+	if (action & SMP_CLEAR_VECT)
+		complete_irq_moving();
+
 	return IRQ_HANDLED;
 }
 
@@ -388,6 +391,7 @@ int loongson_cpu_disable(void)
 	irq_migrate_all_off_this_cpu();
 	clear_csr_ecfg(ECFG0_IM);
 	local_irq_restore(flags);
+	loongarch_avec_offline_cpu(cpu);
 	local_flush_tlb_all();
 
 	return 0;
@@ -566,6 +570,7 @@ asmlinkage void start_secondary(void)
 	 * early is dangerous.
 	 */
 	WARN_ON_ONCE(!irqs_disabled());
+	loongarch_avec_online_cpu(cpu);
 	loongson_smp_finish();
 
 	cpu_startup_entry(CPUHP_AP_ONLINE_IDLE);
diff --git a/drivers/irqchip/Makefile b/drivers/irqchip/Makefile
index 2df72b7b165b..de091a9f7c88 100644
--- a/drivers/irqchip/Makefile
+++ b/drivers/irqchip/Makefile
@@ -110,7 +110,7 @@ obj-$(CONFIG_LS1X_IRQ)			+= irq-ls1x.o
 obj-$(CONFIG_TI_SCI_INTR_IRQCHIP)	+= irq-ti-sci-intr.o
 obj-$(CONFIG_TI_SCI_INTA_IRQCHIP)	+= irq-ti-sci-inta.o
 obj-$(CONFIG_TI_PRUSS_INTC)		+= irq-pruss-intc.o
-obj-$(CONFIG_IRQ_LOONGARCH_CPU)		+= irq-loongarch-cpu.o
+obj-$(CONFIG_IRQ_LOONGARCH_CPU)		+= irq-loongarch-cpu.o irq-loongarch-avec.o
 obj-$(CONFIG_LOONGSON_LIOINTC)		+= irq-loongson-liointc.o
 obj-$(CONFIG_LOONGSON_EIOINTC)		+= irq-loongson-eiointc.o
 obj-$(CONFIG_LOONGSON_HTPIC)		+= irq-loongson-htpic.o
diff --git a/drivers/irqchip/irq-loongarch-avec.c b/drivers/irqchip/irq-loongarch-avec.c
new file mode 100644
index 000000000000..81dbccbea5a2
--- /dev/null
+++ b/drivers/irqchip/irq-loongarch-avec.c
@@ -0,0 +1,440 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2020-2024 Loongson Technologies, Inc.
+ */
+
+#include <linux/cpuhotplug.h>
+#include <linux/init.h>
+#include <linux/interrupt.h>
+#include <linux/irq.h>
+#include <linux/irqchip.h>
+#include <linux/irqchip/chained_irq.h>
+#include <linux/irqdomain.h>
+#include <linux/kernel.h>
+#include <linux/msi.h>
+#include <linux/radix-tree.h>
+#include <linux/spinlock.h>
+
+#include <asm/loongarch.h>
+#include <asm/setup.h>
+
+#define VECTORS_PER_REG		64
+#define ILR_INVALID_MASK	0x80000000UL
+#define ILR_VECTOR_MASK		0xffUL
+#define AVEC_MSG_OFFSET		0x100000
+
+static phys_addr_t msi_base_v2;
+static DEFINE_PER_CPU(struct irq_desc * [NR_VECTORS], irq_map);
+
+#ifdef CONFIG_SMP
+struct pending_list {
+	struct list_head	head;
+};
+
+static DEFINE_PER_CPU(struct pending_list, pending_list);
+#endif
+
+struct loongarch_avec_chip {
+	struct fwnode_handle	*fwnode;
+	struct irq_domain	*domain;
+	struct irq_matrix	*vector_matrix;
+	raw_spinlock_t		lock;
+};
+
+static struct loongarch_avec_chip loongarch_avec;
+
+struct loongarch_avec_data {
+	struct list_head	entry;
+	unsigned int		cpu;
+	unsigned int		vec;
+	unsigned int		prev_cpu;
+	unsigned int		prev_vec;
+	unsigned int		moving		: 1,
+				managed		: 1;
+};
+
+static struct cpumask intersect_mask;
+
+static int assign_irq_vector(struct irq_data *irqd, const struct cpumask *dest,
+			     unsigned int *cpu)
+{
+	return irq_matrix_alloc(loongarch_avec.vector_matrix, dest, false, cpu);
+}
+
+static inline void loongarch_avec_ack_irq(struct irq_data *d)
+{
+}
+
+static inline void loongarch_avec_unmask_irq(struct irq_data *d)
+{
+}
+
+static inline void loongarch_avec_mask_irq(struct irq_data *d)
+{
+}
+
+#ifdef CONFIG_SMP
+static inline void pending_list_init(int cpu)
+{
+	struct pending_list *plist = per_cpu_ptr(&pending_list, cpu);
+
+	INIT_LIST_HEAD(&plist->head);
+}
+
+static void loongarch_avec_sync(struct loongarch_avec_data *adata)
+{
+	struct pending_list *plist;
+
+	if (cpu_online(adata->prev_cpu)) {
+		plist = per_cpu_ptr(&pending_list, adata->prev_cpu);
+		list_add_tail(&adata->entry, &plist->head);
+		adata->moving = true;
+		mp_ops.send_ipi_single(adata->prev_cpu, ACTION_CLEAR_VECT);
+	}
+}
+
+static int loongarch_avec_set_affinity(struct irq_data *data, const struct cpumask *dest,
+				       bool force)
+{
+	struct loongarch_avec_data *adata;
+	unsigned int cpu, vector;
+	unsigned long flags;
+	int ret;
+
+	raw_spin_lock_irqsave(&loongarch_avec.lock, flags);
+	adata = irq_data_get_irq_chip_data(data);
+
+	if (adata->vec && cpu_online(adata->cpu) && cpumask_test_cpu(adata->cpu, dest)) {
+		raw_spin_unlock_irqrestore(&loongarch_avec.lock, flags);
+		return 0;
+	}
+	if (adata->moving)
+		return -EBUSY;
+
+	cpumask_and(&intersect_mask, dest, cpu_online_mask);
+
+	ret = assign_irq_vector(data, &intersect_mask, &cpu);
+	if (ret < 0) {
+		raw_spin_unlock_irqrestore(&loongarch_avec.lock, flags);
+		return ret;
+	}
+	vector = ret;
+	adata->cpu = cpu;
+	adata->vec = vector;
+	per_cpu_ptr(irq_map, adata->cpu)[adata->vec] = irq_data_to_desc(data);
+	loongarch_avec_sync(adata);
+
+	raw_spin_unlock_irqrestore(&loongarch_avec.lock, flags);
+	irq_data_update_effective_affinity(data, cpumask_of(cpu));
+
+	return IRQ_SET_MASK_OK;
+}
+
+void complete_irq_moving(void)
+{
+	struct pending_list *plist = this_cpu_ptr(&pending_list);
+	struct loongarch_avec_data *adata, *tmp;
+	int cpu, vector, bias;
+	u64 irr;
+
+	raw_spin_lock(&loongarch_avec.lock);
+
+	list_for_each_entry_safe(adata, tmp, &plist->head, entry) {
+		cpu = adata->prev_cpu;
+		vector = adata->prev_vec;
+		bias = vector / VECTORS_PER_REG;
+		switch (bias) {
+		case 0:
+			irr = csr_read64(LOONGARCH_CSR_IRR0);
+		case 1:
+			irr = csr_read64(LOONGARCH_CSR_IRR1);
+		case 2:
+			irr = csr_read64(LOONGARCH_CSR_IRR2);
+		case 3:
+			irr = csr_read64(LOONGARCH_CSR_IRR3);
+		}
+
+		if (irr & (1UL << (vector % VECTORS_PER_REG))) {
+			mp_ops.send_ipi_single(cpu, ACTION_CLEAR_VECT);
+			continue;
+		}
+		list_del(&adata->entry);
+		irq_matrix_free(loongarch_avec.vector_matrix, cpu, vector, adata->managed);
+		this_cpu_write(irq_map[vector], NULL);
+		adata->prev_cpu = adata->cpu;
+		adata->prev_vec = adata->vec;
+		adata->moving = 0;
+	}
+	raw_spin_unlock(&loongarch_avec.lock);
+}
+
+void loongarch_avec_offline_cpu(unsigned int cpu)
+{
+	struct pending_list *plist = per_cpu_ptr(&pending_list, cpu);
+	unsigned long flags;
+
+	if (!loongarch_avec.vector_matrix)
+		return;
+
+	raw_spin_lock_irqsave(&loongarch_avec.lock, flags);
+	if (list_empty(&plist->head))
+		irq_matrix_offline(loongarch_avec.vector_matrix);
+	else
+		pr_warn("cpu %d advanced extioi is busy\n", cpu);
+	raw_spin_unlock_irqrestore(&loongarch_avec.lock, flags);
+}
+
+void loongarch_avec_online_cpu(unsigned int cpu)
+{
+	unsigned long flags;
+
+	if (!loongarch_avec.vector_matrix)
+		return;
+
+	raw_spin_lock_irqsave(&loongarch_avec.lock, flags);
+
+	irq_matrix_online(loongarch_avec.vector_matrix);
+
+	pending_list_init(cpu);
+
+	raw_spin_unlock_irqrestore(&loongarch_avec.lock, flags);
+}
+
+#else
+#define loongarch_avec_set_affinity		NULL
+#endif
+
+static void loongarch_avec_compose_msg(struct irq_data *d,
+		struct msi_msg *msg)
+{
+	struct loongarch_avec_data *avec_data;
+
+	avec_data = irq_data_get_irq_chip_data(d);
+
+	msg->address_hi = 0xfd;
+	msg->address_lo = ((avec_data->vec & 0xff) << 4) |
+			  ((cpu_logical_map(avec_data->cpu & 0xffff)) << 12);
+	msg->data = 0x0;
+
+}
+
+static struct irq_chip loongarch_avec_controller = {
+	.name			= "AVECINTC",
+	.irq_ack		= loongarch_avec_ack_irq,
+	.irq_mask		= loongarch_avec_mask_irq,
+	.irq_unmask		= loongarch_avec_unmask_irq,
+	.irq_set_affinity	= loongarch_avec_set_affinity,
+	.irq_compose_msi_msg	= loongarch_avec_compose_msg,
+};
+
+static void loongarch_avec_dispatch(struct irq_desc *desc)
+{
+	struct irq_chip *chip = irq_desc_get_chip(desc);
+	unsigned long vector;
+	struct irq_desc *d;
+
+	chained_irq_enter(chip, desc);
+	vector = csr_read64(LOONGARCH_CSR_ILR);
+	if (vector & ILR_INVALID_MASK)
+		return;
+
+	vector &= ILR_VECTOR_MASK;
+
+	d = this_cpu_read(irq_map[vector]);
+	if (d) {
+		generic_handle_irq_desc(d);
+	} else {
+		pr_warn("IRQ ERROR:Unexpected irq  occur on cpu %d[vector %ld]\n",
+			smp_processor_id(), vector);
+	}
+
+	chained_irq_exit(chip, desc);
+}
+
+static int loongarch_avec_alloc(struct irq_domain *domain, unsigned int virq,
+				unsigned int nr_irqs, void *arg)
+{
+	struct loongarch_avec_data *adata;
+	struct irq_data *irqd;
+	unsigned int cpu, vector, i, ret;
+	unsigned long flags;
+
+	raw_spin_lock_irqsave(&loongarch_avec.lock, flags);
+	for (i = 0; i < nr_irqs; i++) {
+		irqd = irq_domain_get_irq_data(domain, virq + i);
+		adata = kzalloc(sizeof(*adata), GFP_KERNEL);
+		if (!adata) {
+			raw_spin_unlock_irqrestore(&loongarch_avec.lock, flags);
+			return -ENOMEM;
+		}
+		ret = assign_irq_vector(irqd, cpu_online_mask, &cpu);
+		if (ret < 0) {
+			raw_spin_unlock_irqrestore(&loongarch_avec.lock, flags);
+			return ret;
+		}
+		vector = ret;
+		adata->prev_cpu = adata->cpu = cpu;
+		adata->prev_vec = adata->vec = vector;
+		adata->managed = irqd_affinity_is_managed(irqd);
+		irq_domain_set_info(domain, virq + i, virq + i, &loongarch_avec_controller,
+				adata, handle_edge_irq, NULL, NULL);
+		adata->moving = 0;
+		irqd_set_single_target(irqd);
+		irqd_set_affinity_on_activate(irqd);
+
+		per_cpu_ptr(irq_map, adata->cpu)[adata->vec] = irq_data_to_desc(irqd);
+	}
+	raw_spin_unlock_irqrestore(&loongarch_avec.lock, flags);
+
+	return 0;
+}
+
+static void clear_free_vector(struct irq_data *irqd)
+{
+	struct loongarch_avec_data *adata = irq_data_get_irq_chip_data(irqd);
+	bool managed = irqd_affinity_is_managed(irqd);
+
+	per_cpu(irq_map, adata->cpu)[adata->vec] = NULL;
+	irq_matrix_free(loongarch_avec.vector_matrix, adata->cpu, adata->vec, managed);
+	adata->cpu = 0;
+	adata->vec = 0;
+#ifdef CONFIG_SMP
+	if (!adata->moving)
+		return;
+
+	per_cpu(irq_map, adata->prev_cpu)[adata->prev_vec] = 0;
+	irq_matrix_free(loongarch_avec.vector_matrix, adata->prev_cpu,
+			adata->prev_vec, adata->managed);
+	adata->prev_vec = 0;
+	adata->prev_cpu = 0;
+	adata->moving = 0;
+	list_del_init(&adata->entry);
+#endif
+}
+
+static void loongarch_avec_free(struct irq_domain *domain, unsigned int virq,
+		unsigned int nr_irqs)
+{
+	struct irq_data *d;
+	unsigned long flags;
+	unsigned int i;
+
+	raw_spin_lock_irqsave(&loongarch_avec.lock, flags);
+	for (i = 0; i < nr_irqs; i++) {
+		d = irq_domain_get_irq_data(domain, virq + i);
+		if (d) {
+			clear_free_vector(d);
+			irq_domain_reset_irq_data(d);
+
+		}
+	}
+
+	raw_spin_unlock_irqrestore(&loongarch_avec.lock, flags);
+}
+
+static const struct irq_domain_ops loongarch_avec_domain_ops = {
+	.alloc		= loongarch_avec_alloc,
+	.free		= loongarch_avec_free,
+};
+
+static int __init irq_matrix_init(void)
+{
+	int i;
+
+	loongarch_avec.vector_matrix = irq_alloc_matrix(NR_VECTORS, 0, NR_VECTORS - 1);
+	if (!loongarch_avec.vector_matrix)
+		return -ENOMEM;
+	for (i = 0; i < NR_LEGACY_VECTORS; i++)
+		irq_matrix_assign_system(loongarch_avec.vector_matrix, i, false);
+
+	irq_matrix_online(loongarch_avec.vector_matrix);
+
+	return 0;
+}
+
+static int __init loongarch_avec_init(struct irq_domain *parent)
+{
+	int ret = 0, parent_irq;
+	unsigned long tmp;
+
+	raw_spin_lock_init(&loongarch_avec.lock);
+
+	loongarch_avec.fwnode = irq_domain_alloc_named_fwnode("CORE_AVEC");
+	if (!loongarch_avec.fwnode) {
+		pr_err("Unable to allocate domain handle\n");
+		ret = -ENOMEM;
+		goto out;
+	}
+
+	loongarch_avec.domain = irq_domain_create_tree(loongarch_avec.fwnode,
+			&loongarch_avec_domain_ops, NULL);
+	if (!loongarch_avec.domain) {
+		pr_err("core-vec: cannot create IRQ domain\n");
+		ret = -ENOMEM;
+		goto out_free_handle;
+	}
+
+	parent_irq = irq_create_mapping(parent, INT_AVEC);
+	if (!parent_irq) {
+		pr_err("Failed to mapping hwirq\n");
+		ret = -EINVAL;
+		goto out_remove_domain;
+	}
+	irq_set_chained_handler_and_data(parent_irq, loongarch_avec_dispatch, NULL);
+
+	ret = irq_matrix_init();
+	if (ret) {
+		pr_err("Failed to init irq matrix\n");
+		goto out_free_matrix;
+	}
+#ifdef CONFIG_SMP
+	pending_list_init(0);
+#endif
+	tmp = iocsr_read64(LOONGARCH_IOCSR_MISC_FUNC);
+	tmp |= IOCSR_MISC_FUNC_AVEC_EN;
+	iocsr_write64(tmp, LOONGARCH_IOCSR_MISC_FUNC);
+
+	return ret;
+
+out_free_matrix:
+	kfree(loongarch_avec.vector_matrix);
+out_remove_domain:
+	irq_domain_remove(loongarch_avec.domain);
+out_free_handle:
+	irq_domain_free_fwnode(loongarch_avec.fwnode);
+out:
+	return ret;
+}
+
+static int __init pch_msi_parse_madt(union acpi_subtable_headers *header,
+				     const unsigned long end)
+{
+	struct acpi_madt_msi_pic *pchmsi_entry = (struct acpi_madt_msi_pic *)header;
+
+	msi_base_v2 = pchmsi_entry->msg_address - AVEC_MSG_OFFSET;
+	return pch_msi_acpi_init_v2(loongarch_avec.domain, pchmsi_entry);
+}
+
+static inline int __init acpi_cascade_irqdomain_init(void)
+{
+	return acpi_table_parse_madt(ACPI_MADT_TYPE_MSI_PIC, pch_msi_parse_madt, 1);
+}
+
+int __init loongarch_avec_acpi_init(struct irq_domain *parent)
+{
+	int ret = 0;
+
+	ret = loongarch_avec_init(parent);
+	if (ret) {
+		pr_err("Failed to init irq domain\n");
+		return ret;
+	}
+
+	ret = acpi_cascade_irqdomain_init();
+	if (ret) {
+		pr_err("Failed to cascade IRQ domain\n");
+		return ret;
+	}
+
+	return ret;
+}
diff --git a/drivers/irqchip/irq-loongarch-cpu.c b/drivers/irqchip/irq-loongarch-cpu.c
index 9d8f2c406043..1ecac59925c6 100644
--- a/drivers/irqchip/irq-loongarch-cpu.c
+++ b/drivers/irqchip/irq-loongarch-cpu.c
@@ -138,7 +138,9 @@ static int __init acpi_cascade_irqdomain_init(void)
 	if (r < 0)
 		return r;
 
-	return 0;
+	if (cpu_has_avecint)
+		r = loongarch_avec_acpi_init(irq_domain);
+	return r;
 }
 
 static int __init cpuintc_acpi_init(union acpi_subtable_headers *header,
diff --git a/drivers/irqchip/irq-loongson-eiointc.c b/drivers/irqchip/irq-loongson-eiointc.c
index c7ddebf312ad..1f9a30488137 100644
--- a/drivers/irqchip/irq-loongson-eiointc.c
+++ b/drivers/irqchip/irq-loongson-eiointc.c
@@ -359,6 +359,9 @@ static int __init acpi_cascade_irqdomain_init(void)
 	if (r < 0)
 		return r;
 
+	if (cpu_has_avecint)
+		return 0;
+
 	r = acpi_table_parse_madt(ACPI_MADT_TYPE_MSI_PIC, pch_msi_parse_madt, 1);
 	if (r < 0)
 		return r;
diff --git a/drivers/irqchip/irq-loongson-pch-msi.c b/drivers/irqchip/irq-loongson-pch-msi.c
index dd4d699170f4..1926857f9a41 100644
--- a/drivers/irqchip/irq-loongson-pch-msi.c
+++ b/drivers/irqchip/irq-loongson-pch-msi.c
@@ -16,7 +16,6 @@
 #include <linux/slab.h>
 
 static int nr_pics;
-
 struct pch_msi_data {
 	struct mutex	msi_map_lock;
 	phys_addr_t	doorbell;
@@ -100,6 +99,17 @@ static struct irq_chip middle_irq_chip = {
 	.irq_compose_msi_msg	= pch_msi_compose_msi_msg,
 };
 
+static struct irq_chip pch_msi_irq_chip_v2 = {
+	.name			= "MSI",
+	.irq_ack		= irq_chip_ack_parent,
+};
+
+static struct msi_domain_info pch_msi_domain_info_v2 = {
+	.flags		= MSI_FLAG_USE_DEF_DOM_OPS | MSI_FLAG_USE_DEF_CHIP_OPS |
+			MSI_FLAG_MULTI_PCI_MSI | MSI_FLAG_PCI_MSIX,
+	.chip	= &pch_msi_irq_chip_v2,
+};
+
 static int pch_msi_parent_domain_alloc(struct irq_domain *domain,
 					unsigned int virq, int hwirq)
 {
@@ -268,6 +278,9 @@ struct fwnode_handle *get_pch_msi_handle(int pci_segment)
 {
 	int i;
 
+	if (cpu_has_avecint)
+		return pch_msi_handle[0];
+
 	for (i = 0; i < MAX_IO_PICS; i++) {
 		if (msi_group[i].pci_segment == pci_segment)
 			return pch_msi_handle[i];
@@ -289,4 +302,32 @@ int __init pch_msi_acpi_init(struct irq_domain *parent,
 
 	return ret;
 }
+
+int __init pch_msi_acpi_init_v2(struct irq_domain *parent,
+		struct acpi_madt_msi_pic *msi_entry)
+{
+	struct irq_domain *msi_domain;
+
+	if (pch_msi_handle[0])
+		return 0;
+
+	pch_msi_handle[0] = irq_domain_alloc_named_fwnode("msipic-v2");
+	if (!pch_msi_handle[0]) {
+		pr_err("Unable to allocate domain handle\n");
+		kfree(pch_msi_handle[0]);
+		return -ENOMEM;
+	}
+
+	msi_domain = pci_msi_create_irq_domain(pch_msi_handle[0],
+			&pch_msi_domain_info_v2,
+			parent);
+	if (!msi_domain) {
+		pr_err("Failed to create PCI MSI domain\n");
+		kfree(pch_msi_handle[0]);
+		return -ENOMEM;
+	}
+
+	pr_info("IRQ domain MSIPIC-V2 init done.\n");
+	return 0;
+}
 #endif
-- 
2.20.1

.

From: Sunyeal Hong <sunyeal.hong@samsung.com>
To: Krzysztof Kozlowski <krzk@kernel.org>, Sylwester Nawrocki
	<s.nawrocki@samsung.com>, Chanwoo Choi <cw00.choi@samsung.com>, Alim Akhtar
	<alim.akhtar@samsung.com>, Michael Turquette <mturquette@baylibre.com>,
	Stephen Boyd <sboyd@kernel.org>
Cc: linux-samsung-soc@vger.kernel.org, linux-clk@vger.kernel.org,
	linux-kernel@vger.kernel.org, Sunyeal Hong <sunyeal.hong@samsung.com>
Subject: [PATCH 0/5] initial clock support for exynosauto v920 SoC
Date: Fri,  5 Jul 2024 11:11:05 +0900
Message-ID: <20240705021110.2495344-1-sunyeal.hong@samsung.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain; charset="utf-8"
References: <CGME20240705021114epcas2p4bad9380e73d2681aabc6074905e112ab@epcas2p4.samsung.com>
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1268613
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-clk,org.kernel.vger.linux-samsung-soc
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

This patchset adds initial clock driver support for Exynos Auto v920 SoC.
This driver uses HW Auto Clock gating. So all gate clocks did not register.

Below CMU blocks are supported in this patchset and remains will be
implemented later.

- CMU_TOP
- CMU_PERIC0

Sunyeal Hong (5):
  dt-bindings: clock: add Exynos Auto v920 SoC CMU bindings
  dt-bindings: clock: add clock binding definitions for Exynos Auto v920
  arm64: dts: exynos: add initial CMU clock nodes in Exynos Auto v920
  clk: samsung: clk-pll: Add support for pll_531x
  clk: samsung: add top clock support for Exynos Auto v920 SoC

 .../clock/samsung,exynosautov920-clock.yaml   |  115 ++
 .../arm64/boot/dts/exynos/exynosautov920.dtsi |   40 +-
 drivers/clk/samsung/Makefile                  |    1 +
 drivers/clk/samsung/clk-exynosautov920.c      | 1176 +++++++++++++++++
 drivers/clk/samsung/clk-pll.c                 |   45 +
 drivers/clk/samsung/clk-pll.h                 |    1 +
 .../clock/samsung,exynosautov920.h            |  191 +++
 7 files changed, 1556 insertions(+), 13 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/clock/samsung,exynosautov920-clock.yaml
 create mode 100644 drivers/clk/samsung/clk-exynosautov920.c
 create mode 100644 include/dt-bindings/clock/samsung,exynosautov920.h

-- 
2.43.2

.

From: Chris Packham <chris.packham@alliedtelesis.co.nz>
To: tglx@linutronix.de,
	robh@kernel.org,
	krzk+dt@kernel.org,
	conor+dt@kernel.org,
	tsbogend@alpha.franken.de,
	daniel.lezcano@linaro.org,
	paulburton@kernel.org,
	peterz@infradead.org,
	mail@birger-koblitz.de,
	bert@biot.com,
	john@phrozen.org,
	sander@svanheule.net
Cc: linux-kernel@vger.kernel.org,
	devicetree@vger.kernel.org,
	linux-mips@vger.kernel.org,
	kabel@kernel.org,
	ericwouds@gmail.com,
	Chris Packham <chris.packham@alliedtelesis.co.nz>
Subject: [PATCH v4 0/9] mips: Support for RTL9302C
Date: Fri,  5 Jul 2024 14:15:11 +1200
Message-ID: <20240705021520.2737568-1-chris.packham@alliedtelesis.co.nz>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1268625
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-mips
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

This series adds basic support for the RTL9302C reference board. Currentl=
y the
focus is on the CPU block stuff. I hope to get around to the DSA switch d=
river
eventually but this is a small start that lets me boot a mainline kernel =
on the
board I have. I initialiy started with code from openwrt but have paired =
it
down to just the clocksource driver and devicetree.

The first two patches in this series are fixing some complaints from make
dtbs_check for some existing realtek dts files. They can be applied on th=
eir
own if desired.

Chris Packham (9):
  mips: dts: realtek: use "serial" instead of "uart" in node name
  mips: dts: realtek: add device_type property to cpu node
  dt-bindings: vendor-prefixes: Add Cameo Communications
  dt-bindings: mips: realtek: Add rtl930x-soc compatible
  dt-bindings: timer: Add schema for realtek,otto-timer
  dt-bindings: interrupt-controller: realtek,rtl-intc: Add rtl9300-intc
  clocksource: realtek: Add timer driver for rtl-otto platforms
  mips: generic: add fdt fixup for Realtek reference board
  mips: dts: realtek: Add RTL9302C board

 .../realtek,rtl-intc.yaml                     |  20 +-
 .../devicetree/bindings/mips/realtek-rtl.yaml |   4 +
 .../bindings/timer/realtek,otto-timer.yaml    |  63 ++++
 .../devicetree/bindings/vendor-prefixes.yaml  |   2 +
 arch/mips/boot/dts/realtek/Makefile           |   1 +
 .../cameo-rtl9302c-2x-rtl8224-2xge.dts        |  73 +++++
 arch/mips/boot/dts/realtek/rtl838x.dtsi       |   1 +
 arch/mips/boot/dts/realtek/rtl83xx.dtsi       |   4 +-
 arch/mips/boot/dts/realtek/rtl930x.dtsi       |  79 +++++
 arch/mips/generic/Makefile                    |   1 +
 arch/mips/generic/board-realtek.c             |  79 +++++
 drivers/clocksource/Kconfig                   |  10 +
 drivers/clocksource/Makefile                  |   1 +
 drivers/clocksource/timer-rtl-otto.c          | 291 ++++++++++++++++++
 include/linux/cpuhotplug.h                    |   1 +
 15 files changed, 627 insertions(+), 3 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/timer/realtek,otto-=
timer.yaml
 create mode 100644 arch/mips/boot/dts/realtek/cameo-rtl9302c-2x-rtl8224-=
2xge.dts
 create mode 100644 arch/mips/boot/dts/realtek/rtl930x.dtsi
 create mode 100644 arch/mips/generic/board-realtek.c
 create mode 100644 drivers/clocksource/timer-rtl-otto.c

--=20
2.45.2

.

From: Nicolas Pitre <nico@fluxnic.net>
To: Arnd Bergmann <arnd@arndb.de>,
	Russell King <linux@armlinux.org.uk>
Cc: Nicolas Pitre <npitre@baylibre.com>,
	linux-arch@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: [PATCH 0/2] do_div() with constant divisor simplification
Date: Thu,  4 Jul 2024 22:20:27 -0400
Message-ID: <20240705022334.1378363-1-nico@fluxnic.net>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1268635
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-arch
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

While working on mul_u64_u64_div_u64() improvements I realized that there
is a better way to perform a 64x64->128 bits multiplication that doesn't
involve any conditionals to handle overflows. It even produces equivalent
or better code than the provided ARM assembly alternative.

And the best part is:

 arch/arm/include/asm/div64.h |  52 -----------------
 include/asm-generic/div64.h  | 105 +++++++++++------------------------
 2 files changed, 31 insertions(+), 126 deletions(-)
.

From: Tao Zou <wodemia@linux.alibaba.com>
To: Alex Shi <alexs@kernel.org>,
	Yanteng Si <siyanteng@loongson.cn>,
	Jonathan Corbet <corbet@lwn.net>
Cc: Tao Zou <wodemia@linux.alibaba.com>,
	linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: [PATCH v1] zh_CN/admin-guide: one typo fix
Date: Fri,  5 Jul 2024 10:28:41 +0800
Message-Id: <20240705022842.51451-1-wodemia@linux.alibaba.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1268640
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-doc
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Fix one chinese typo error.

Signed-off-by: Tao Zou <wodemia@linux.alibaba.com>
---
The previous translation patch v4 has already been appied, and the changes from v4 to v5 were missed.
This patch is one typofix, and includes the changes from v4 to v5.
 
 Documentation/translations/zh_CN/admin-guide/numastat.rst | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Documentation/translations/zh_CN/admin-guide/numastat.rst b/Documentation/translations/zh_CN/admin-guide/numastat.rst
index c0f54d9a6b05..4d9817b91870 100644
--- a/Documentation/translations/zh_CN/admin-guide/numastat.rst
+++ b/Documentation/translations/zh_CN/admin-guide/numastat.rst
@@ -13,7 +13,7 @@ Numa策略命中/未命中统计
 
 所有数据的单位都是页面。巨页有独立的计数器。
 
-numa_hit、numa_miss和numa_foreign计数器反应了进程是否能够在他们偏好的节点上分配内存。
+numa_hit、numa_miss和numa_foreign计数器反映了进程是否能够在他们偏好的节点上分配内存。
 如果进程成功在偏好的节点上分配内存则在偏好的节点上增加numa_hit计数，否则在偏好的节点上增
 加numa_foreign计数同时在实际内存分配的节点上增加numa_miss计数。
 
-- 
2.39.3 (Apple Git-146)

.

From: En-Wei Wu <en-wei.wu@canonical.com>
To: johannes@sipsolutions.net,
	kvalo@kernel.org,
	edumazet@google.com,
	davem@davemloft.net,
	en-wei.wu@canonical.com,
	linux-wireless@vger.kernel.org,
	linux-kernel@vger.kernel.org
Cc: rickywu0421@gmail.com,
	syzbot+d6eb9cee2885ec06f5e3@syzkaller.appspotmail.com
Subject: [PATCH v2] wifi: virt_wifi: avoid reporting connection success with wrong SSID
Date: Fri,  5 Jul 2024 10:37:56 +0800
Message-ID: <20240705023756.10954-1-en-wei.wu@canonical.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1268643 org.kernel.vger.linux-wireless:85718
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-wireless
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

When user issues a connection with a different SSID than the one
virt_wifi has advertised, the __cfg80211_connect_result() will
trigger the warning: WARN_ON(bss_not_found).

The issue is because the connection code in virt_wifi does not
check the SSID from user space (it only checks the BSSID), and
virt_wifi will call cfg80211_connect_result() with WLAN_STATUS_SUCCESS
even if the SSID is different from the one virt_wifi has advertised.
Eventually cfg80211 won't be able to find the cfg80211_bss and generate
the warning.

Fixed it by checking the SSID (from user space) in the connection code.

Fixes: c7cdba31ed8b ("mac80211-next: rtnetlink wifi simulation device")
Reported-by: syzbot+d6eb9cee2885ec06f5e3@syzkaller.appspotmail.com
Signed-off-by: En-Wei Wu <en-wei.wu@canonical.com>
---
Changes in v2:
	- adjust coding style
	- remove unnecessary debug message
---

 drivers/net/wireless/virtual/virt_wifi.c | 19 ++++++++++++++++---
 1 file changed, 16 insertions(+), 3 deletions(-)

diff --git a/drivers/net/wireless/virtual/virt_wifi.c b/drivers/net/wireless/virtual/virt_wifi.c
index 6a84ec58d618..d2271a7644a0 100644
--- a/drivers/net/wireless/virtual/virt_wifi.c
+++ b/drivers/net/wireless/virtual/virt_wifi.c
@@ -136,6 +136,8 @@ static struct ieee80211_supported_band band_5ghz = {
 /* Assigned at module init. Guaranteed locally-administered and unicast. */
 static u8 fake_router_bssid[ETH_ALEN] __ro_after_init = {};
 
+#define VIRT_WIFI_SSID "VirtWifi"
+
 static void virt_wifi_inform_bss(struct wiphy *wiphy)
 {
 	u64 tsf = div_u64(ktime_get_boottime_ns(), 1000);
@@ -146,8 +148,8 @@ static void virt_wifi_inform_bss(struct wiphy *wiphy)
 		u8 ssid[8];
 	} __packed ssid = {
 		.tag = WLAN_EID_SSID,
-		.len = 8,
-		.ssid = "VirtWifi",
+		.len = strlen(VIRT_WIFI_SSID),
+		.ssid = VIRT_WIFI_SSID,
 	};
 
 	informed_bss = cfg80211_inform_bss(wiphy, &channel_5ghz,
@@ -213,6 +215,8 @@ struct virt_wifi_netdev_priv {
 	struct net_device *upperdev;
 	u32 tx_packets;
 	u32 tx_failed;
+	u32 connect_requested_ssid_len;
+	u8 connect_requested_ssid[IEEE80211_MAX_SSID_LEN];
 	u8 connect_requested_bss[ETH_ALEN];
 	bool is_up;
 	bool is_connected;
@@ -229,6 +233,12 @@ static int virt_wifi_connect(struct wiphy *wiphy, struct net_device *netdev,
 	if (priv->being_deleted || !priv->is_up)
 		return -EBUSY;
 
+	if (!sme->ssid)
+		return -EINVAL;
+
+	priv->connect_requested_ssid_len = sme->ssid_len;
+	memcpy(priv->connect_requested_ssid, sme->ssid, sme->ssid_len);
+
 	could_schedule = schedule_delayed_work(&priv->connect, HZ * 2);
 	if (!could_schedule)
 		return -EBUSY;
@@ -252,12 +262,15 @@ static void virt_wifi_connect_complete(struct work_struct *work)
 		container_of(work, struct virt_wifi_netdev_priv, connect.work);
 	u8 *requested_bss = priv->connect_requested_bss;
 	bool right_addr = ether_addr_equal(requested_bss, fake_router_bssid);
+	bool right_ssid = priv->connect_requested_ssid_len == strlen(VIRT_WIFI_SSID) &&
+			  !memcmp(priv->connect_requested_ssid, VIRT_WIFI_SSID,
+				  priv->connect_requested_ssid_len);
 	u16 status = WLAN_STATUS_SUCCESS;
 
 	if (is_zero_ether_addr(requested_bss))
 		requested_bss = NULL;
 
-	if (!priv->is_up || (requested_bss && !right_addr))
+	if (!priv->is_up || (requested_bss && !right_addr) || !right_ssid)
 		status = WLAN_STATUS_UNSPECIFIED_FAILURE;
 	else
 		priv->is_connected = true;
-- 
2.43.0

.

From: Xianglai Li <lixianglai@loongson.cn>
To: linux-kernel@vger.kernel.org
Cc: Bibo Mao <maobibo@loongson.cn>,
	Huacai Chen <chenhuacai@kernel.org>,
	kvm@vger.kernel.org,
	loongarch@lists.linux.dev,
	Min Zhou <zhoumin@loongson.cn>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Tianrui Zhao <zhaotianrui@loongson.cn>,
	WANG Xuerui <kernel@xen0n.name>,
	Xianglai li <lixianglai@loongson.cn>
Subject: [PATCH 00/11] Added Interrupt controller emulation for loongarch kvm
Date: Fri,  5 Jul 2024 10:38:43 +0800
Message-Id: <20240705023854.1005258-1-lixianglai@loongson.cn>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1268653
Newsgroups: org.kernel.vger.linux-kernel,dev.linux.lists.loongarch,org.kernel.vger.kvm
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Before this, the interrupt controller simulation has been completed
in the user mode program. In order to reduce the loss caused by frequent
switching of the virtual machine monitor from kernel mode to user mode
when the guest accesses the interrupt controller, we add the interrupt
controller simulation in kvm.


The following is a virtual machine simulation diagram of interrupted
connections:
  +-----+    +---------+     +-------+
  | IPI |--> | CPUINTC | <-- | Timer |
  +-----+    +---------+     +-------+
                 ^
                 |
           +---------+
           | EIOINTC |
           +---------+
            ^       ^
            |       |
     +---------+ +---------+
     | PCH-PIC | | PCH-MSI |
     +---------+ +---------+
       ^      ^          ^
       |      |          |
+--------+ +---------+ +---------+
| UARTs  | | Devices | | Devices |
+--------+ +---------+ +---------+

In this series of patches, we mainly realized the simulation of
IPI EXTIOI PCH-PIC interrupt controller.

The simulation of IPI EXTIOI PCH-PIC interrupt controller mainly
completes the creation simulation of the interrupt controller,
the register address space read and write simulation,
and the interface with user mode to obtain and set the interrupt
controller state for the preservation,
recovery and migration of virtual machines.

IPI simulation implementation reference:
https://github.com/loongson/LoongArch-Documentation/tree/main/docs/Loongson-3A5000-usermanual-EN/inter-processor-interrupts-and-communication

EXTIOI simulation implementation reference:
https://github.com/loongson/LoongArch-Documentation/tree/main/docs/Loongson-3A5000-usermanual-EN/io-interrupts/extended-io-interrupts

PCH-PIC simulation implementation reference:
https://github.com/loongson/LoongArch-Documentation/blob/main/docs/Loongson-7A1000-usermanual-EN/interrupt-controller.adoc

For PCH-MSI, we used irqfd mechanism to send the interrupt signal
generated by user state to kernel state and then to EXTIOI without
maintaining PCH-MSI state in kernel state.

Cc: Bibo Mao <maobibo@loongson.cn> 
Cc: Huacai Chen <chenhuacai@kernel.org> 
Cc: kvm@vger.kernel.org 
Cc: loongarch@lists.linux.dev 
Cc: Min Zhou <zhoumin@loongson.cn> 
Cc: Paolo Bonzini <pbonzini@redhat.com> 
Cc: Tianrui Zhao <zhaotianrui@loongson.cn> 
Cc: WANG Xuerui <kernel@xen0n.name> 
Cc: Xianglai li <lixianglai@loongson.cn> 

Xianglai Li (11):
  LoongArch: KVM: Add iocsr and mmio bus simulation in kernel
  LoongArch: KVM: Add IPI device support
  LoongArch: KVM: Add IPI read and write function
  LoongArch: KVM: Add IPI user mode read and write function
  LoongArch: KVM: Add EXTIOI device support
  LoongArch: KVM: Add EXTIOI read and write functions
  LoongArch: KVM: Add EXTIOI user mode read and write functions
  LoongArch: KVM: Add PCHPIC device support
  LoongArch: KVM: Add PCHPIC read and write functions
  LoongArch: KVM: Add PCHPIC user mode read and write functions
  LoongArch: KVM: Add irqfd support

 arch/loongarch/include/asm/kvm_extioi.h  |  95 +++
 arch/loongarch/include/asm/kvm_host.h    |  30 +
 arch/loongarch/include/asm/kvm_ipi.h     |  52 ++
 arch/loongarch/include/asm/kvm_pch_pic.h |  61 ++
 arch/loongarch/include/uapi/asm/kvm.h    |   9 +
 arch/loongarch/kvm/Kconfig               |   3 +
 arch/loongarch/kvm/Makefile              |   4 +
 arch/loongarch/kvm/exit.c                |  69 +-
 arch/loongarch/kvm/intc/extioi.c         | 783 +++++++++++++++++++++++
 arch/loongarch/kvm/intc/ipi.c            | 539 ++++++++++++++++
 arch/loongarch/kvm/intc/pch_pic.c        | 538 ++++++++++++++++
 arch/loongarch/kvm/irqfd.c               |  87 +++
 arch/loongarch/kvm/main.c                |  19 +-
 arch/loongarch/kvm/vcpu.c                |   3 +
 arch/loongarch/kvm/vm.c                  |  53 +-
 include/linux/kvm_host.h                 |   1 +
 include/uapi/linux/kvm.h                 |   8 +
 17 files changed, 2332 insertions(+), 22 deletions(-)
 create mode 100644 arch/loongarch/include/asm/kvm_extioi.h
 create mode 100644 arch/loongarch/include/asm/kvm_ipi.h
 create mode 100644 arch/loongarch/include/asm/kvm_pch_pic.h
 create mode 100644 arch/loongarch/kvm/intc/extioi.c
 create mode 100644 arch/loongarch/kvm/intc/ipi.c
 create mode 100644 arch/loongarch/kvm/intc/pch_pic.c
 create mode 100644 arch/loongarch/kvm/irqfd.c


base-commit: afcd48134c58d6af45fb3fdb648f1260b20f2326
-- 
2.39.1

.

Date: Fri, 5 Jul 2024 10:57:00 +0800
From: kernel test robot <lkp@intel.com>
To: "Paul E. McKenney" <paulmck@kernel.org>
Cc: oe-kbuild-all@lists.linux.dev, linux-kernel@vger.kernel.org
Subject: [paulmck-rcu:dev.2024.07.04a 51/60] kernel/rcu/tasks.h:2048:13:
 warning: 'test_rcu_tasks_callback' defined but not used
Message-ID: <202407051058.MZAxjsJZ-lkp@intel.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1268666
Newsgroups: org.kernel.vger.linux-kernel,dev.linux.lists.oe-kbuild-all
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git dev.2024.07.04a
head:   eb325da54c0ff3147fa6dc7be2a313f45715f904
commit: 9bd3378dd10ba24793a049b5c71f87e01ddb3b51 [51/60] rcu-tasks: Remove RCU Tasks Rude asynchronous APIs
config: i386-buildonly-randconfig-002-20240705 (https://download.01.org/0day-ci/archive/20240705/202407051058.MZAxjsJZ-lkp@intel.com/config)
compiler: gcc-9 (Ubuntu 9.5.0-4ubuntu2) 9.5.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240705/202407051058.MZAxjsJZ-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202407051058.MZAxjsJZ-lkp@intel.com/

All warnings (new ones prefixed by >>):

   In file included from kernel/rcu/update.c:656:
>> kernel/rcu/tasks.h:2048:13: warning: 'test_rcu_tasks_callback' defined but not used [-Wunused-function]
    2048 | static void test_rcu_tasks_callback(struct rcu_head *rhp)
         |             ^~~~~~~~~~~~~~~~~~~~~~~
   In file included from kernel/rcu/update.c:656:
>> kernel/rcu/tasks.h:399:13: warning: 'rcu_barrier_tasks_generic' defined but not used [-Wunused-function]
     399 | static void rcu_barrier_tasks_generic(struct rcu_tasks *rtp)
         |             ^~~~~~~~~~~~~~~~~~~~~~~~~


vim +/test_rcu_tasks_callback +2048 kernel/rcu/tasks.h

bfba7ed084f8ab Uladzislau Rezki (Sony  2020-12-09  2047) 
bfba7ed084f8ab Uladzislau Rezki (Sony  2020-12-09 @2048) static void test_rcu_tasks_callback(struct rcu_head *rhp)
bfba7ed084f8ab Uladzislau Rezki (Sony  2020-12-09  2049) {
bfba7ed084f8ab Uladzislau Rezki (Sony  2020-12-09  2050) 	struct rcu_tasks_test_desc *rttd =
bfba7ed084f8ab Uladzislau Rezki (Sony  2020-12-09  2051) 		container_of(rhp, struct rcu_tasks_test_desc, rh);
bfba7ed084f8ab Uladzislau Rezki (Sony  2020-12-09  2052) 
bfba7ed084f8ab Uladzislau Rezki (Sony  2020-12-09  2053) 	pr_info("Callback from %s invoked.\n", rttd->name);
bfba7ed084f8ab Uladzislau Rezki (Sony  2020-12-09  2054) 
1cf1144e8473e8 Paul E. McKenney        2022-06-07  2055  	rttd->notrun = false;
bfba7ed084f8ab Uladzislau Rezki (Sony  2020-12-09  2056) }
bfba7ed084f8ab Uladzislau Rezki (Sony  2020-12-09  2057) 

:::::: The code at line 2048 was first introduced by commit
:::::: bfba7ed084f8ab0269a5a1d2f51b07865456c334 rcu-tasks: Add RCU-tasks self tests

:::::: TO: Uladzislau Rezki (Sony) <urezki@gmail.com>
:::::: CC: Paul E. McKenney <paulmck@kernel.org>

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
.

From: Elliot Ayrey <elliot.ayrey@alliedtelesis.co.nz>
To: davem@davemloft.net
Cc: Elliot Ayrey <elliot.ayrey@alliedtelesis.co.nz>,
	Roopa Prabhu <roopa@nvidia.com>,
	Nikolay Aleksandrov <razor@blackwall.org>,
	Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>,
	Paolo Abeni <pabeni@redhat.com>,
	Tobias Waldekranz <tobias@waldekranz.com>,
	bridge@lists.linux.dev,
	netdev@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: [PATCH net] net: bridge: mst: Check vlan state for egress decision
Date: Fri,  5 Jul 2024 15:00:40 +1200
Message-ID: <20240705030041.1248472-1-elliot.ayrey@alliedtelesis.co.nz>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1268669 org.kernel.vger.netdev:355711
Newsgroups: org.kernel.vger.linux-kernel,dev.linux.lists.bridge,org.kernel.vger.netdev
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

If a port is blocking in the common instance but forwarding in an MST
instance, traffic egressing the bridge will be dropped because the
state of the common instance is overriding that of the MST instance.

Fix this by temporarily forcing the port state to forwarding when in
MST mode to allow checking the vlan state via br_allowed_egress().
This is similar to what happens in br_handle_frame_finish() when
checking ingress traffic, which was introduced in the change below.

Fixes: ec7328b59176 ("net: bridge: mst: Multiple Spanning Tree (MST) mode=
")
Signed-off-by: Elliot Ayrey <elliot.ayrey@alliedtelesis.co.nz>
---
 net/bridge/br_forward.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/net/bridge/br_forward.c b/net/bridge/br_forward.c
index d97064d460dc..911b37a38a32 100644
--- a/net/bridge/br_forward.c
+++ b/net/bridge/br_forward.c
@@ -22,10 +22,16 @@ static inline int should_deliver(const struct net_bri=
dge_port *p,
 				 const struct sk_buff *skb)
 {
 	struct net_bridge_vlan_group *vg;
+	u8 state;
+
+	if (br_mst_is_enabled(p->br))
+		state =3D BR_STATE_FORWARDING;
+	else
+		state =3D p->state;
=20
 	vg =3D nbp_vlan_group_rcu(p);
 	return ((p->flags & BR_HAIRPIN_MODE) || skb->dev !=3D p->dev) &&
-		p->state =3D=3D BR_STATE_FORWARDING && br_allowed_egress(vg, skb) &&
+		state =3D=3D BR_STATE_FORWARDING && br_allowed_egress(vg, skb) &&
 		nbp_switchdev_allowed_egress(p, skb) &&
 		!br_skb_isolated(p, skb);
 }
.

From: Jiaxun Yang <jiaxun.yang@flygoat.com>
Subject: [PATCH 0/3] LoongArch: CPU parallel bring up
Date: Fri, 05 Jul 2024 11:29:36 +0800
Message-Id: <20240705-loongarch-hotplug-v1-0-67d9c4709aa9@flygoat.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
To: Thomas Gleixner <tglx@linutronix.de>, 
 Peter Zijlstra <peterz@infradead.org>, Huacai Chen <chenhuacai@kernel.org>, 
 WANG Xuerui <kernel@xen0n.name>
Cc: linux-kernel@vger.kernel.org, loongarch@lists.linux.dev, 
 Jiaxun Yang <jiaxun.yang@flygoat.com>
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1268673
Newsgroups: org.kernel.vger.linux-kernel,dev.linux.lists.loongarch
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Hi all,

This series implemented CPU parallel bring up for LoongArch.

Being the first non-x86 arch enabling that we need to fix some
infra in patch 1 and 2, then implement everything in patch 3.

Please review.
Thanks

Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
---
Jiaxun Yang (3):
      cpu/hotplug: Make HOTPLUG_PARALLEL independent of HOTPLUG_SMT
      cpu/hotplug: Weak fallback for arch_cpuhp_init_parallel_bringup
      LoongArch: SMP: Implement parallel CPU bring up

 arch/loongarch/Kconfig              |  1 +
 arch/loongarch/include/asm/smp.h    |  6 ------
 arch/loongarch/kernel/asm-offsets.c | 10 ----------
 arch/loongarch/kernel/head.S        |  7 ++++---
 arch/loongarch/kernel/smp.c         | 35 +++++++----------------------------
 kernel/cpu.c                        |  9 +++++++++
 6 files changed, 21 insertions(+), 47 deletions(-)
---
base-commit: 82e4255305c554b0bb18b7ccf2db86041b4c8b6e
change-id: 20240704-loongarch-hotplug-3f8826b88a43

Best regards,
-- 
Jiaxun Yang <jiaxun.yang@flygoat.com>

.

X-MD-Sfrom: kunyu@nfschina.com
X-MD-SrcIP: 219.141.250.2
From: Li kunyu <kunyu@nfschina.com>
To: mark.rutland@arm.com,
	maz@kernel.org,
	daniel.lezcano@linaro.org,
	tglx@linutronix.de
Cc: linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org,
	Li kunyu <kunyu@nfschina.com>
Subject: [PATCH] =?UTF-8?q?clocksource:=20arm=5Farch=5Ftimer:=20Remove=20u?= =?UTF-8?q?nnecessary=20=E2=80=980=E2=80=99=20values=20from=20irq?=
Date: Fri,  5 Jul 2024 12:07:29 +0800
Message-Id: <20240705040729.21961-1-kunyu@nfschina.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1268685
Newsgroups: org.kernel.vger.linux-kernel,org.infradead.lists.linux-arm-kernel
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

irq is assigned first, so it does not need to initialize the assignment.

Signed-off-by: Li kunyu <kunyu@nfschina.com>
---
 drivers/clocksource/arm_arch_timer.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/clocksource/arm_arch_timer.c b/drivers/clocksource/arm_arch_timer.c
index 5bb43cc1a8df..aeafc74181f0 100644
--- a/drivers/clocksource/arm_arch_timer.c
+++ b/drivers/clocksource/arm_arch_timer.c
@@ -1556,7 +1556,7 @@ static int __init
 arch_timer_mem_frame_register(struct arch_timer_mem_frame *frame)
 {
 	void __iomem *base;
-	int ret, irq = 0;
+	int ret, irq;
 
 	if (arch_timer_mem_use_virtual)
 		irq = frame->virt_irq;
-- 
2.18.2

.

From: Thorsten Blum <thorsten.blum@toblux.com>
To: jikos@kernel.org,
	bentiss@kernel.org
Cc: linux-input@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	Thorsten Blum <thorsten.blum@toblux.com>
Subject: [PATCH] HID: hid-steam: Fix typo in goto label
Date: Fri,  5 Jul 2024 06:54:59 +0200
Message-ID: <20240705045458.65108-2-thorsten.blum@toblux.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1268691
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-input
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

s/stream/steam/

Signed-off-by: Thorsten Blum <thorsten.blum@toblux.com>
---
 drivers/hid/hid-steam.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/hid/hid-steam.c b/drivers/hid/hid-steam.c
index f166188c21ec..a765a48c0ab5 100644
--- a/drivers/hid/hid-steam.c
+++ b/drivers/hid/hid-steam.c
@@ -1267,7 +1267,7 @@ static int steam_probe(struct hid_device *hdev,
 	steam->client_hdev = steam_create_client_hid(hdev);
 	if (IS_ERR(steam->client_hdev)) {
 		ret = PTR_ERR(steam->client_hdev);
-		goto err_stream_unregister;
+		goto err_steam_unregister;
 	}
 	steam->client_hdev->driver_data = steam;
 
@@ -1279,7 +1279,7 @@ static int steam_probe(struct hid_device *hdev,
 
 err_destroy:
 	hid_destroy_device(steam->client_hdev);
-err_stream_unregister:
+err_steam_unregister:
 	if (steam->connected)
 		steam_unregister(steam);
 err_hw_close:
-- 
2.45.2

.

X-MD-Sfrom: kunyu@nfschina.com
X-MD-SrcIP: 219.141.250.2
From: Li kunyu <kunyu@nfschina.com>
To: patrice.chotard@foss.st.com,
	daniel.lezcano@linaro.org,
	tglx@linutronix.de
Cc: linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org,
	Li kunyu <kunyu@nfschina.com>
Subject: [PATCH] =?UTF-8?q?clocksource:=20arm=5Fglobal=5Ftimer:=20Remove?= =?UTF-8?q?=20unnecessary=20=E2=80=980=E2=80=99=20values=20from=20err?=
Date: Fri,  5 Jul 2024 13:21:59 +0800
Message-Id: <20240705052159.22235-1-kunyu@nfschina.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1268697
Newsgroups: org.kernel.vger.linux-kernel,org.infradead.lists.linux-arm-kernel
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

err is assigned first, so it does not need to initialize the assignment.

Signed-off-by: Li kunyu <kunyu@nfschina.com>
---
 drivers/clocksource/arm_global_timer.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/clocksource/arm_global_timer.c b/drivers/clocksource/arm_global_timer.c
index ab1c8c2b66b8..a05cfaab5f84 100644
--- a/drivers/clocksource/arm_global_timer.c
+++ b/drivers/clocksource/arm_global_timer.c
@@ -343,7 +343,7 @@ static int __init global_timer_of_register(struct device_node *np)
 {
 	struct clk *gt_clk;
 	static unsigned long gt_clk_rate;
-	int err = 0;
+	int err;
 
 	/*
 	 * In A9 r2p0 the comparators for each processor with the global timer
-- 
2.18.2

.

From: Xianwei Zhao via B4 Relay <devnull+xianwei.zhao.amlogic.com@kernel.org>
Date: Fri, 05 Jul 2024 13:39:16 +0800
Subject: [PATCH] arm64: dts: amlogic: enable some device nodes for S4
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20240705-s4_node-v1-1-646ca7ac4f09@amlogic.com>
To: Rob Herring <robh@kernel.org>, Krzysztof Kozlowski <krzk+dt@kernel.org>, 
 Conor Dooley <conor+dt@kernel.org>, 
 Neil Armstrong <neil.armstrong@linaro.org>, 
 Kevin Hilman <khilman@baylibre.com>, Jerome Brunet <jbrunet@baylibre.com>, 
 Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Cc: devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, 
 linux-amlogic@lists.infradead.org, linux-kernel@vger.kernel.org, 
 Xianwei Zhao <xianwei.zhao@amlogic.com>
X-Original-From: Xianwei Zhao <xianwei.zhao@amlogic.com>
Reply-To: xianwei.zhao@amlogic.com
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1268699
Newsgroups: org.kernel.vger.linux-kernel,org.infradead.lists.linux-amlogic,org.infradead.lists.linux-arm-kernel,org.kernel.feeds.b4-sent,org.kernel.vger.linux-devicetree
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

From: Xianwei Zhao <xianwei.zhao@amlogic.com>

Enable some device nodes for AQ222 base S4, including
SD, regulator and ethnernet node.

Signed-off-by: Xianwei Zhao <xianwei.zhao@amlogic.com>
---
 .../boot/dts/amlogic/meson-s4-s805x2-aq222.dts     | 146 +++++++++++++++++++++
 arch/arm64/boot/dts/amlogic/meson-s4.dtsi          | 128 ++++++++++++++++++
 2 files changed, 274 insertions(+)

diff --git a/arch/arm64/boot/dts/amlogic/meson-s4-s805x2-aq222.dts b/arch/arm64/boot/dts/amlogic/meson-s4-s805x2-aq222.dts
index 983caddc409c..2ab685d9bd1d 100644
--- a/arch/arm64/boot/dts/amlogic/meson-s4-s805x2-aq222.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-s4-s805x2-aq222.dts
@@ -34,6 +34,112 @@ secmon_reserved: secmon@5000000 {
 			no-map;
 		};
 	};
+
+	sdio_32k: sdio-32k {
+		compatible = "pwm-clock";
+		#clock-cells = <0>;
+		clock-frequency = <32768>;
+		pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */
+	};
+
+	sdio_pwrseq: sdio-pwrseq {
+		compatible = "mmc-pwrseq-simple";
+		reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>;
+		clocks = <&sdio_32k>;
+		clock-names = "ext_clock";
+	};
+
+	main_12v: regulator-main-12v {
+		compatible = "regulator-fixed";
+		regulator-name = "12V";
+		regulator-min-microvolt = <12000000>;
+		regulator-max-microvolt = <12000000>;
+		regulator-always-on;
+	};
+
+	vddao_3v3: regulator-vddao-3v3 {
+		compatible = "regulator-fixed";
+		regulator-name = "VDDAO_3V3";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+		vin-supply = <&main_12v>;
+		regulator-always-on;
+	};
+
+	vddio_ao1v8: regulator-vddio-ao1v8 {
+	       compatible = "regulator-fixed";
+	       regulator-name = "VDDIO_AO1V8";
+	       regulator-min-microvolt = <1800000>;
+	       regulator-max-microvolt = <1800000>;
+	       vin-supply = <&vddao_3v3>;
+	       regulator-always-on;
+	};
+
+	/* SY8120B1ABC DC/DC Regulator. */
+	vddcpu: regulator-vddcpu {
+		compatible = "pwm-regulator";
+
+		regulator-name = "VDDCPU";
+		regulator-min-microvolt = <689000>;
+		regulator-max-microvolt = <1049000>;
+
+		vin-supply = <&main_12v>;
+
+		pwms = <&pwm_ij 1 1500 0>;
+		pwm-dutycycle-range = <100 0>;
+
+		regulator-boot-on;
+		regulator-always-on;
+		/* Voltage Duty-Cycle */
+		voltage-table = <1049000 0>,
+				<1039000 3>,
+				<1029000 6>,
+				<1019000 9>,
+				<1009000 12>,
+				<999000 14>,
+				<989000 17>,
+				<979000 20>,
+				<969000 23>,
+				<959000 26>,
+				<949000 29>,
+				<939000 31>,
+				<929000 34>,
+				<919000 37>,
+				<909000 40>,
+				<899000 43>,
+				<889000 45>,
+				<879000 48>,
+				<869000 51>,
+				<859000 54>,
+				<849000 56>,
+				<839000 59>,
+				<829000 62>,
+				<819000 65>,
+				<809000 68>,
+				<799000 70>,
+				<789000 73>,
+				<779000 76>,
+				<769000 79>,
+				<759000 81>,
+				<749000 84>,
+				<739000 87>,
+				<729000 89>,
+				<719000 92>,
+				<709000 95>,
+				<699000 98>,
+				<689000 100>;
+		status = "okay";
+	};
+};
+
+&pwm_ef {
+	status = "okay";
+	pinctrl-0 = <&pwm_e_pins1>;
+	pinctrl-names = "default";
+};
+
+&pwm_ij {
+	status = "okay";
 };
 
 &uart_b {
@@ -46,6 +152,40 @@ &ir {
 	pinctrl-names = "default";
 };
 
+&sdio {
+	pinctrl-0 = <&sdio_pins>;
+	pinctrl-1 = <&sdio_clk_gate_pins>;
+	pinctrl-names = "default", "clk-gate";
+	#address-cells = <1>;
+	#size-cells = <0>;
+	bus-width = <4>;
+	cap-sd-highspeed;
+	sd-uhs-sdr50;
+	sd-uhs-sdr104;
+	max-frequency = <200000000>;
+	non-removable;
+	disable-wp;
+	no-sd;
+	no-mmc;
+	vmmc-supply = <&vddao_3v3>;
+	vqmmc-supply = <&vddio_ao1v8>;
+};
+
+&sd {
+	status = "okay";
+	pinctrl-0 = <&sdcard_pins>;
+	pinctrl-1 = <&sdcard_clk_gate_pins>;
+	pinctrl-names = "default", "clk-gate";
+	bus-width = <4>;
+	cap-sd-highspeed;
+	max-frequency = <200000000>;
+	disable-wp;
+
+	cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>;
+	vmmc-supply = <&vddao_3v3>;
+	vqmmc-supply = <&vddao_3v3>;
+};
+
 &nand {
 	status = "okay";
 	#address-cells = <1>;
@@ -90,3 +230,9 @@ &spicc0 {
 	pinctrl-0 = <&spicc0_pins_x>;
 	cs-gpios = <&gpio GPIOX_10 GPIO_ACTIVE_LOW>;
 };
+
+&ethmac {
+	status = "okay";
+	phy-handle = <&internal_ephy>;
+	phy-mode = "rmii";
+};
diff --git a/arch/arm64/boot/dts/amlogic/meson-s4.dtsi b/arch/arm64/boot/dts/amlogic/meson-s4.dtsi
index b686eacb9662..c11c947fa18c 100644
--- a/arch/arm64/boot/dts/amlogic/meson-s4.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-s4.dtsi
@@ -10,6 +10,7 @@
 #include <dt-bindings/clock/amlogic,s4-pll-clkc.h>
 #include <dt-bindings/clock/amlogic,s4-peripherals-clkc.h>
 #include <dt-bindings/power/meson-s4-power.h>
+#include <dt-bindings/reset/amlogic,meson-s4-reset.h>
 
 / {
 	cpus {
@@ -466,6 +467,93 @@ mux {
 					};
 				};
 
+				sdcard_pins: sdcard-pins {
+					mux {
+						groups = "sdcard_d0_c",
+							 "sdcard_d1_c",
+							 "sdcard_d2_c",
+							 "sdcard_d3_c",
+							 "sdcard_clk_c",
+							 "sdcard_cmd_c";
+						function = "sdcard";
+						bias-pull-up;
+						drive-strength-microamp = <4000>;
+					};
+				};
+
+				sdcard_clk_gate_pins: sdcard-clk-gate-pins {
+					mux {
+						groups = "GPIOC_4";
+						function = "gpio_periphs";
+						bias-pull-down;
+						drive-strength-microamp = <4000>;
+					};
+				};
+
+				emmc_pins: emmc-pins {
+					mux-0 {
+						groups = "emmc_nand_d0",
+							 "emmc_nand_d1",
+							 "emmc_nand_d2",
+							 "emmc_nand_d3",
+							 "emmc_nand_d4",
+							 "emmc_nand_d5",
+							 "emmc_nand_d6",
+							 "emmc_nand_d7",
+							 "emmc_cmd";
+						function = "emmc";
+						bias-pull-up;
+						drive-strength-microamp = <4000>;
+					};
+					mux-1 {
+						groups = "emmc_clk";
+						function = "emmc";
+						bias-pull-up;
+						drive-strength-microamp = <4000>;
+					};
+				};
+
+				emmc_ds_pins: emmc-ds-pins {
+					mux {
+						groups = "emmc_nand_ds";
+						function = "emmc";
+						bias-pull-down;
+						drive-strength-microamp = <4000>;
+					};
+				};
+
+				emmc_clk_gate_pins: emmc-clk-gate-pins {
+					mux {
+						groups = "GPIOB_8";
+						function = "gpio_periphs";
+						bias-pull-down;
+						drive-strength-microamp = <4000>;
+					};
+				};
+
+				sdio_pins: sdio-pins {
+					mux {
+						groups = "sdio_d0",
+							 "sdio_d1",
+							 "sdio_d2",
+							 "sdio_d3",
+							 "sdio_clk",
+							 "sdio_cmd";
+						function = "sdio";
+						bias-pull-up;
+						drive-strength-microamp = <4000>;
+					};
+				};
+
+				sdio_clk_gate_pins: sdio-clk-gate-pins {
+					mux {
+						groups = "GPIOX_4";
+						function = "gpio_periphs";
+						bias-pull-down;
+						drive-strength-microamp = <4000>;
+					};
+				};
+
 				spicc0_pins_x: spicc0-pins_x {
 					mux {
 						groups = "spi_a_mosi_x",
@@ -712,5 +800,45 @@ mdio0: mdio {
 				compatible = "snps,dwmac-mdio";
 			};
 		};
+
+		sdio: mmc@fe088000 {
+			compatible = "amlogic,meson-axg-mmc";
+			reg = <0x0 0xfe088000 0x0 0x800>;
+			interrupts = <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>;
+			clocks = <&clkc_periphs CLKID_SDEMMC_A>,
+				 <&xtal>,
+				 <&clkc_pll CLKID_FCLK_DIV2>;
+			clock-names = "core", "clkin0", "clkin1";
+			resets = <&reset RESET_SD_EMMC_A>;
+			cap-sdio-irq;
+			keep-power-in-suspend;
+			status = "disabled";
+		};
+
+		sd: mmc@fe08a000 {
+			compatible = "amlogic,meson-axg-mmc";
+			reg = <0x0 0xfe08a000 0x0 0x800>;
+			interrupts = <GIC_SPI 177 IRQ_TYPE_EDGE_RISING>;
+			clocks = <&clkc_periphs CLKID_SDEMMC_B>,
+				 <&clkc_periphs CLKID_SD_EMMC_B>,
+				 <&clkc_pll CLKID_FCLK_DIV2>;
+			clock-names = "core", "clkin0", "clkin1";
+			resets = <&reset RESET_SD_EMMC_B>;
+			status = "disabled";
+		};
+
+		emmc: mmc@fe08c000 {
+			compatible = "amlogic,meson-axg-mmc";
+			reg = <0x0 0xfe08c000 0x0 0x800>;
+			interrupts = <GIC_SPI 178 IRQ_TYPE_EDGE_RISING>;
+			clocks = <&clkc_periphs CLKID_NAND>,
+				 <&xtal>,
+				 <&clkc_pll CLKID_FCLK_DIV2>;
+			clock-names = "core", "clkin0", "clkin1";
+			resets = <&reset RESET_NAND_EMMC>;
+			no-sdio;
+			no-sd;
+			status = "disabled";
+		};
 	};
 };

---
base-commit: 338c92a5d1956f1841f84b86923087676d1d0cea
change-id: 20240705-s4_node-8110e3286c0c

Best regards,
-- 
Xianwei Zhao <xianwei.zhao@amlogic.com>


.

Return-Path: <linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org>
From: Alexandre Ghiti <alexghiti@rivosinc.com>
To: Vladimir Isaev <vladimir.isaev@syntacore.com>,
	Roman Artemev <roman.artemev@syntacore.com>,
	Guo Ren <guoren@kernel.org>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	linux-riscv@lists.infradead.org,
	linux-kernel@vger.kernel.org
Cc: Alexandre Ghiti <alexghiti@rivosinc.com>
Subject: [PATCH v2 0/2] Prevent dynamic relocations in vDSO
Date: Fri,  5 Jul 2024 08:09:00 +0200
Message-Id: <20240705060902.113294-1-alexghiti@rivosinc.com>
MIME-Version: 1.0
X-BeenThere: linux-riscv@lists.infradead.org
X-Mailman-Version: 2.1.34
List-Id: <linux-riscv.lists.infradead.org>
List-Unsubscribe: <http://lists.infradead.org/mailman/options/linux-riscv>,
 <mailto:linux-riscv-request@lists.infradead.org?subject=unsubscribe>
List-Archive: <http://lists.infradead.org/pipermail/linux-riscv/>
List-Post: <mailto:linux-riscv@lists.infradead.org>
List-Help: <mailto:linux-riscv-request@lists.infradead.org?subject=help>
List-Subscribe: <http://lists.infradead.org/mailman/listinfo/linux-riscv>,
 <mailto:linux-riscv-request@lists.infradead.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Sender: "linux-riscv" <linux-riscv-bounces@lists.infradead.org>
Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org
Xref: photonic.trudheim.com org.infradead.lists.linux-riscv:79401 org.kernel.vger.linux-kernel:1268711
Newsgroups: org.infradead.lists.linux-riscv,org.kernel.vger.linux-kernel
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

UGF0Y2ggMiB1c2VzIGEgZ2VuZXJpYyBmdW5jdGlvbiB0byBtYWtlIHN1cmUgdGhlIHZEU08gb2Jq
ZWN0IGRvZXMgbm90CmNvbnRhaW4gYW55IGR5bmFtaWMgcmVsb2NhdGlvbnMuCgpQYXRjaCAxIHJl
bW92ZXMgYSBkeW5hbWljIHJlbG9jYXRpb24gZnJvbSB2RFNPIGluIHJ2MzIgZm91bmQgd2l0aCBw
YXRjaAoyLgoKQ2hhbmdlcyBpbiB2MjoKLSBBZGQgcGF0Y2ggMSAoQmrDtnJuKQoKQWxleGFuZHJl
IEdoaXRpICgyKToKICByaXNjdjogdmRzbzogUHJldmVudCBnY2MgZnJvbSBpbnNlcnRpbmcgY2Fs
bHMgdG8gbWVtc2V0KCkKICByaXNjdjogQ2hlY2sgdGhhdCB2ZHNvIGRvZXMgbm90IGNvbnRhaW4g
YW55IGR5bmFtaWMgcmVsb2NhdGlvbnMKCiBhcmNoL3Jpc2N2L2tlcm5lbC92ZHNvL01ha2VmaWxl
IHwgMTAgKysrKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgNCBkZWxl
dGlvbnMoLSkKCi0tIAoyLjM5LjIKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fXwpsaW51eC1yaXNjdiBtYWlsaW5nIGxpc3QKbGludXgtcmlzY3ZAbGlzdHMu
aW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZv
L2xpbnV4LXJpc2N2Cg==
.

From: Javier Carrasco <javier.carrasco.cruz@gmail.com>
Date: Fri, 05 Jul 2024 08:05:18 +0200
Subject: [PATCH] bus: sunxi-rsb: Constify struct regmap_bus
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20240705-sunxi-rsb-bus-const-regmap_bus-v1-1-129094960ce9@gmail.com>
To: Chen-Yu Tsai <wens@csie.org>, Jernej Skrabec <jernej.skrabec@gmail.com>, 
 Samuel Holland <samuel@sholland.org>
Cc: linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, 
 linux-kernel@vger.kernel.org, 
 Javier Carrasco <javier.carrasco.cruz@gmail.com>
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1268722
Newsgroups: org.kernel.vger.linux-kernel,dev.linux.lists.linux-sunxi,org.infradead.lists.linux-arm-kernel
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

`regmap_sunxi_rsb` is not modified and can be declared as const to
move its data to a read-only section.

Signed-off-by: Javier Carrasco <javier.carrasco.cruz@gmail.com>
---
 drivers/bus/sunxi-rsb.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/bus/sunxi-rsb.c b/drivers/bus/sunxi-rsb.c
index 1e29ba76615d..ac6c7e4900f4 100644
--- a/drivers/bus/sunxi-rsb.c
+++ b/drivers/bus/sunxi-rsb.c
@@ -457,7 +457,7 @@ static void regmap_sunxi_rsb_free_ctx(void *context)
 	kfree(ctx);
 }
 
-static struct regmap_bus regmap_sunxi_rsb = {
+static const struct regmap_bus regmap_sunxi_rsb = {
 	.reg_write = regmap_sunxi_rsb_reg_write,
 	.reg_read = regmap_sunxi_rsb_reg_read,
 	.free_context = regmap_sunxi_rsb_free_ctx,

---
base-commit: 0b58e108042b0ed28a71cd7edf5175999955b233
change-id: 20240705-sunxi-rsb-bus-const-regmap_bus-3cee4a3e313b

Best regards,
-- 
Javier Carrasco <javier.carrasco.cruz@gmail.com>

.

From: Huacai Chen <chenhuacai@loongson.cn>
To: "Rafael J . Wysocki" <rafael@kernel.org>,
	Viresh Kumar <viresh.kumar@linaro.org>,
	Huacai Chen <chenhuacai@kernel.org>
Cc: loongarch@lists.linux.dev,
	linux-pm@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	Xuerui Wang <kernel@xen0n.name>,
	Jiaxun Yang <jiaxun.yang@flygoat.com>,
	Huacai Chen <chenhuacai@loongson.cn>
Subject: [PATCH V3 0/2] LoongArch: Add Loongson-3 CPUFreq driver support
Date: Fri,  5 Jul 2024 14:06:47 +0800
Message-ID: <20240705060650.243497-1-chenhuacai@loongson.cn>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1268724
Newsgroups: org.kernel.vger.linux-kernel,dev.linux.lists.loongarch,org.kernel.vger.linux-pm
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

This series add architectural preparation and CPUFreq driver for
Loongson-3 (based on LoongArch).

Some of LoongArch processors support DVFS, their IOCSR.FEATURES has
IOCSRF_FREQSCALE set. And they has a micro-core in the package called
SMC (System Management Controller) to scale frequency, voltage, etc.

V1 -> V2:
1, Use module_platform_driver() instead of module_init()/module_exit();
2, Move the lock protection into do_service_request();
3, Add light-weight hotplug support with help of online()/offline() callbacks;
4, Simplify loongson3_freq_data by removing cur_cpu_freq;
5, Remove unneeded cpu_online() checking.

V2 -> V3:
1, Sort header files in alphabetical order;
2, Use devm_kzalloc() instead of kzalloc();
3, Set to the default frequency at module exit and suspend;
4, Simplify loongson3_cpufreq_probe() and loongson3_cpufreq_target();
5, Update and fix comments.

Huacai Chen(2):
 LoongArch: Add architectural preparation for CPUFreq.
 cpufreq: Add Loongson-3 CPUFreq driver support.

Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
---
2.27.0

.

From: Manorit Chawdhry <m-chawdhry@ti.com>
Subject: [PATCH v2 0/5] Add bootph-all property for J7 boards
Date: Fri, 5 Jul 2024 11:56:26 +0530
Message-ID: <20240705-b4-upstream-bootph-all-v2-0-9007681ed7d8@ti.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
To: Nishanth Menon <nm@ti.com>, Vignesh Raghavendra <vigneshr@ti.com>,
        Tero
 Kristo <kristo@kernel.org>, Rob Herring <robh@kernel.org>,
        Krzysztof
 Kozlowski <krzk+dt@kernel.org>,
        Conor Dooley <conor+dt@kernel.org>
CC: <linux-arm-kernel@lists.infradead.org>, <devicetree@vger.kernel.org>,
        <linux-kernel@vger.kernel.org>, Neha Malcom Francis <n-francis@ti.com>,
        Aniket Limaye <a-limaye@ti.com>, Udit Kumar <u-kumar1@ti.com>,
        Beleswar Padhi
	<b-padhi@ti.com>, Manorit Chawdhry <m-chawdhry@ti.com>
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1268736
Newsgroups: org.kernel.vger.linux-kernel,org.infradead.lists.linux-arm-kernel,org.kernel.vger.linux-devicetree
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

The idea of this series is to add bootph-all and bootph-pre-ram property
in all the leaf nodes wherever required and cleanup any other places where
bootph-all/bootph-pre-ram exist in the parent nodes as well.

Signed-off-by: Manorit Chawdhry <m-chawdhry@ti.com>
---
Changes in v2:

* Aniket
- Change wkup_vtm0 bootph-all to bootph-pre-ram
- Add bootph-all explicitly to dmsc/sms nodes as otherwise the boards
  don't boot

- Cleanup more nodes along with some testing with u-boot.
- Fix build errors
- Link to v1: https://lore.kernel.org/r/20240507-b4-upstream-bootph-all-v1-0-c6d52651856f@ti.com

---
Manorit Chawdhry (5):
      arm64: dts: ti: k3-j721s2*: Add bootph-* properties
      arm64: dts: ti: k3-j784s4*: Remove bootph properties from parent nodes
      arm64: dts: ti: k3-am68*: Add bootph-* properties
      arm64: dts: ti: k3-j721e*: Add bootph-* properties
      arm64: dts: ti: k3-j7200*: Add bootph-* properties

 arch/arm64/boot/dts/ti/k3-am68-sk-base-board.dts   | 10 ++++++++++
 arch/arm64/boot/dts/ti/k3-am68-sk-som.dtsi         |  2 ++
 .../boot/dts/ti/k3-j7200-common-proc-board.dts     | 23 ++++++++++++++++++++++
 arch/arm64/boot/dts/ti/k3-j7200-main.dtsi          |  2 ++
 arch/arm64/boot/dts/ti/k3-j7200-mcu-wakeup.dtsi    | 11 +++++++++++
 arch/arm64/boot/dts/ti/k3-j7200-som-p0.dtsi        |  7 +++++++
 .../boot/dts/ti/k3-j721e-common-proc-board.dts     | 20 +++++++++++++++++++
 arch/arm64/boot/dts/ti/k3-j721e-main.dtsi          |  2 ++
 arch/arm64/boot/dts/ti/k3-j721e-mcu-wakeup.dtsi    | 10 ++++++++++
 arch/arm64/boot/dts/ti/k3-j721e-sk.dts             | 18 +++++++++++++++++
 arch/arm64/boot/dts/ti/k3-j721e-som-p0.dtsi        |  5 +++++
 .../boot/dts/ti/k3-j721s2-common-proc-board.dts    | 14 +++++++++++++
 arch/arm64/boot/dts/ti/k3-j721s2-main.dtsi         |  2 ++
 arch/arm64/boot/dts/ti/k3-j721s2-mcu-wakeup.dtsi   | 12 +++++++++++
 arch/arm64/boot/dts/ti/k3-j721s2-som-p0.dtsi       |  2 ++
 arch/arm64/boot/dts/ti/k3-j784s4-evm.dts           |  9 +--------
 arch/arm64/boot/dts/ti/k3-j784s4-mcu-wakeup.dtsi   |  7 ++++---
 17 files changed, 145 insertions(+), 11 deletions(-)
---
base-commit: 0b58e108042b0ed28a71cd7edf5175999955b233
change-id: 20240430-b4-upstream-bootph-all-8d47b72bc0fd

Best regards,
-- 
Manorit Chawdhry <m-chawdhry@ti.com>

.

From: Eugen Hristev <eugen.hristev@collabora.com>
To: viro@zeniv.linux.org.uk,
	brauner@kernel.org,
	tytso@mit.edu,
	linux-ext4@vger.kernel.org
Cc: jack@suse.cz,
	adilger.kernel@dilger.ca,
	linux-fsdevel@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	krisman@suse.de,
	kernel@collabora.com,
	shreeya.patel@collabora.com,
	Eugen Hristev <eugen.hristev@collabora.com>
Subject: [PATCH 0/2] fs/dcache: fix cache inconsistency on case-insensitive lookups
Date: Fri,  5 Jul 2024 09:26:19 +0300
Message-Id: <20240705062621.630604-1-eugen.hristev@collabora.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1268738
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-ext4,org.kernel.vger.linux-fsdevel
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Hello,

This is an attempt to go back to this old patch series here :

https://lore.kernel.org/lkml/cover.1632909358.git.shreeya.patel@collabora.com/

First patch fixes a possible hang when d_add_ci is called from a filesystem's
lookup function (like xfs is doing)
d_alloc_parallel -> lookup -> d_add_ci -> d_alloc_parallel

Second patch solves the issue of having the dcache saving the entry with
the same case as it's being looked up instead of saving the real file name
from the storage.
Please check above thread for motivation on why this should be changed.

Some further old discussions here as well:
https://patchwork.ozlabs.org/project/linux-ext4/patch/20180924215655.3676-20-krisman@collabora.co.uk/

I am not sure whether this is the right way to fix this, but I think
I have considered all cases discussed in previous threads.

Thank you for your review and consideration,
Eugen


Eugen Hristev (2):
  fs/dcache: introduce d_alloc_parallel_check_existing
  ext4: in lookup call d_add_ci if there is a case mismatch

 fs/dcache.c            | 29 +++++++++++++++++++++++------
 fs/ext4/namei.c        | 13 +++++++++++++
 include/linux/dcache.h |  4 ++++
 3 files changed, 40 insertions(+), 6 deletions(-)

-- 
2.34.1

.

From: Shenghao Ding <shenghao-ding@ti.com>
To: <linux-kernel@vger.kernel.org>
CC: <lgirdwood@gmail.com>, <broonie@kernel.org>, <linux-sound@vger.kernel.org>,
        <perex@perex.cz>, <tiwai@suse.com>, <13916275206@139.com>,
        <soyer@irl.hu>, <tiwai@suse.de>, <Baojun.Xu@fpt.com>,
        Shenghao Ding <shenghao-ding@ti.com>
Subject: [PATCH v1] ASoc: pcm6240: Remove unnecessary name-prefix for all the controls
Date: Fri, 5 Jul 2024 14:48:46 +0800
Message-ID: <20240705064846.1723-1-shenghao-ding@ti.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1268756
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-sound
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Adding name-prefix for each audio controls is a redundant, because
name-prefix will be automatically added behind the control name when
creating a new control.

Signed-off-by: Shenghao Ding <shenghao-ding@ti.com>

---
v1:
 - remove pcmdev_ctrl_name_with_prefix
 - remove some processes for control name_prefix handling
---
 sound/soc/codecs/pcm6240.c | 30 ++++++------------------------
 1 file changed, 6 insertions(+), 24 deletions(-)

diff --git a/sound/soc/codecs/pcm6240.c b/sound/soc/codecs/pcm6240.c
index 86e126783a1d..3de35b62439b 100644
--- a/sound/soc/codecs/pcm6240.c
+++ b/sound/soc/codecs/pcm6240.c
@@ -57,12 +57,6 @@ static const char *const pcmdev_ctrl_name[] = {
 	"%s i2c%d Dev%d Ch%d Fine Volume",
 };
 
-static const char *const pcmdev_ctrl_name_with_prefix[] = {
-	"%s Dev%d Ch%d Ana Volume",
-	"%s Dev%d Ch%d Digi Volume",
-	"%s Dev%d Ch%d Fine Volume",
-};
-
 static const struct pcmdevice_mixer_control adc5120_analog_gain_ctl[] = {
 	{
 		.shift = 1,
@@ -1365,10 +1359,7 @@ static int pcmdev_gain_ctrl_add(struct pcmdevice_priv *pcm_dev,
 
 	name_id = pcmdev_gain_ctl_info[id][ctl_id].pcmdev_ctrl_name_id;
 
-	if (comp->name_prefix)
-		ctrl_name = pcmdev_ctrl_name_with_prefix[name_id];
-	else
-		ctrl_name = pcmdev_ctrl_name[name_id];
+	ctrl_name = pcmdev_ctrl_name[name_id];
 
 	for (chn = 1; chn <= nr_chn; chn++) {
 		name = devm_kzalloc(pcm_dev->dev,
@@ -1377,13 +1368,9 @@ static int pcmdev_gain_ctrl_add(struct pcmdevice_priv *pcm_dev,
 			ret = -ENOMEM;
 			goto out;
 		}
-		if (comp->name_prefix)
-			scnprintf(name, SNDRV_CTL_ELEM_ID_NAME_MAXLEN,
-				ctrl_name, comp->name_prefix, dev_no, chn);
-		else
-			scnprintf(name, SNDRV_CTL_ELEM_ID_NAME_MAXLEN,
-				ctrl_name, pcm_dev->upper_dev_name, adap->nr,
-				dev_no, chn);
+		scnprintf(name, SNDRV_CTL_ELEM_ID_NAME_MAXLEN,
+			ctrl_name, pcm_dev->upper_dev_name, adap->nr,
+			dev_no, chn);
 		pcmdev_controls[mix_index].tlv.p =
 			pcmdev_gain_ctl_info[id][ctl_id].gain;
 		pcmdev_ctrl = devm_kmemdup(pcm_dev->dev,
@@ -1437,13 +1424,8 @@ static int pcmdev_profile_ctrl_add(struct pcmdevice_priv *pcm_dev)
 	if (!name)
 		return -ENOMEM;
 
-	if (comp->name_prefix)
-		scnprintf(name, SNDRV_CTL_ELEM_ID_NAME_MAXLEN,
-			"%s Profile id", comp->name_prefix);
-	else
-		scnprintf(name, SNDRV_CTL_ELEM_ID_NAME_MAXLEN,
-			"%s i2c%d Profile id", pcm_dev->upper_dev_name,
-			adap->nr);
+	scnprintf(name, SNDRV_CTL_ELEM_ID_NAME_MAXLEN,
+		"%s i2c%d Profile id", pcm_dev->upper_dev_name, adap->nr);
 	pcmdev_ctrl->name = name;
 	pcmdev_ctrl->iface = SNDRV_CTL_ELEM_IFACE_MIXER;
 	pcmdev_ctrl->info = pcmdevice_info_profile;
-- 
2.34.1

.

From: boy.wu <boy.wu@mediatek.com>
To: Tejun Heo <tj@kernel.org>, Josef Bacik <josef@toxicpanda.com>, Jens Axboe
	<axboe@kernel.dk>
CC: Matthias Brugger <matthias.bgg@gmail.com>, AngeloGioacchino Del Regno
	<angelogioacchino.delregno@collabora.com>, Boris Burkov <boris@bur.io>,
	<cgroups@vger.kernel.org>, <linux-block@vger.kernel.org>,
	<linux-kernel@vger.kernel.org>, <linux-arm-kernel@lists.infradead.org>,
	<linux-mediatek@lists.infradead.org>, <iverlin.wang@mediatek.com>, Boy Wu
	<boy.wu@mediatek.com>
Subject: [PATCH] blk-cgroup: add spin_lock for u64_stats_update
Date: Fri, 5 Jul 2024 15:55:44 +0800
Message-ID: <20240705075544.11315-1-boy.wu@mediatek.com>
X-Mailing-List: linux-block@vger.kernel.org
List-Id: <linux-block.vger.kernel.org>
List-Subscribe: <mailto:linux-block+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-block+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain
Xref: photonic.trudheim.com org.kernel.vger.linux-block:93843 org.kernel.vger.linux-kernel:1268763
Newsgroups: org.kernel.vger.linux-block,org.infradead.lists.linux-arm-kernel,org.infradead.lists.linux-mediatek,org.kernel.vger.cgroups,org.kernel.vger.linux-kernel
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

From: Boy Wu <boy.wu@mediatek.com>

In 32bit SMP systems, if the system is stressed on the sys node
by processes, it may cause blkcg_fill_root_iostats to have a concurrent
problem on the seqlock in u64_stats_update, which will cause a deadlock 
on u64_stats_fetch_begin in blkcg_print_one_stat.

To prevent this problem, add spin_locks.

Fixes: ef45fe470e1e ("blk-cgroup: show global disk stats in root cgroup io.stat")
Signed-off-by: Boy Wu <boy.wu@mediatek.com>
---
 block/blk-cgroup.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/block/blk-cgroup.c b/block/blk-cgroup.c
index 37e6cc91d576..a633b7431e91 100644
--- a/block/blk-cgroup.c
+++ b/block/blk-cgroup.c
@@ -1134,9 +1134,15 @@ static void blkcg_fill_root_iostats(void)
 				cpu_dkstats->sectors[STAT_DISCARD] << 9;
 		}
 
+#if BITS_PER_LONG == 32
+		spin_lock_irq(&blkg->q->queue_lock);
+#endif
 		flags = u64_stats_update_begin_irqsave(&blkg->iostat.sync);
 		blkg_iostat_set(&blkg->iostat.cur, &tmp);
 		u64_stats_update_end_irqrestore(&blkg->iostat.sync, flags);
+#if BITS_PER_LONG == 32
+		spin_unlock_irq(&blkg->q->queue_lock);
+#endif
 	}
 }
 
-- 
2.18.0

.

From: Neeraj Sanjay Kale <neeraj.sanjaykale@nxp.com>
To: marcel@holtmann.org,
	luiz.dentz@gmail.com
Cc: linux-bluetooth@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	amitkumar.karwar@nxp.com,
	rohit.fule@nxp.com,
	neeraj.sanjaykale@nxp.com,
	sherry.sun@nxp.com,
	ziniu.wang_1@nxp.com,
	haibo.chen@nxp.com,
	LnxRevLi@nxp.com
Subject: [PATCH v2] Bluetooth: btnxpuart: Add system suspend and resume handlers
Date: Fri,  5 Jul 2024 12:28:26 +0530
Message-Id: <20240705065826.782059-1-neeraj.sanjaykale@nxp.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1268765
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-bluetooth
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

This adds handling for system suspend and resume. While the host enters
suspend state, the driver will drive the chip into low power state.

Similarly when system is resuming, the driver will wake up the chip.

Signed-off-by: Neeraj Sanjay Kale <neeraj.sanjaykale@nxp.com>
---
v2: Rename new suspend/resume function names to nxp_serdev_suspend and
nxp_serdev_resume. (Luke Wang)
---
 drivers/bluetooth/btnxpuart.c | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/drivers/bluetooth/btnxpuart.c b/drivers/bluetooth/btnxpuart.c
index da18fd4f54f3..c5b40bba6bfa 100644
--- a/drivers/bluetooth/btnxpuart.c
+++ b/drivers/bluetooth/btnxpuart.c
@@ -1498,6 +1498,24 @@ static void nxp_serdev_remove(struct serdev_device *serdev)
 	hci_free_dev(hdev);
 }
 
+static int nxp_serdev_suspend(struct device *dev)
+{
+	struct btnxpuart_dev *nxpdev = dev_get_drvdata(dev);
+	struct ps_data *psdata = &nxpdev->psdata;
+
+	ps_control(psdata->hdev, PS_STATE_SLEEP);
+	return 0;
+}
+
+static int nxp_serdev_resume(struct device *dev)
+{
+	struct btnxpuart_dev *nxpdev = dev_get_drvdata(dev);
+	struct ps_data *psdata = &nxpdev->psdata;
+
+	ps_control(data->hdev, PS_STATE_AWAKE);
+	return 0;
+}
+
 static struct btnxpuart_data w8987_data __maybe_unused = {
 	.helper_fw_name = NULL,
 	.fw_name = FIRMWARE_W8987,
@@ -1517,12 +1535,17 @@ static const struct of_device_id nxpuart_of_match_table[] __maybe_unused = {
 };
 MODULE_DEVICE_TABLE(of, nxpuart_of_match_table);
 
+static const struct dev_pm_ops nxp_pm_ops = {
+	SET_SYSTEM_SLEEP_PM_OPS(nxp_serdev_suspend, nxp_serdev_resume)
+};
+
 static struct serdev_device_driver nxp_serdev_driver = {
 	.probe = nxp_serdev_probe,
 	.remove = nxp_serdev_remove,
 	.driver = {
 		.name = "btnxpuart",
 		.of_match_table = of_match_ptr(nxpuart_of_match_table),
+		.pm = &nxp_pm_ops,
 	},
 };
 
-- 
2.34.1

.

From: "Masami Hiramatsu (Google)" <mhiramat@kernel.org>
To: LKML <linux-kernel@vger.kernel.org>,
	Linux trace kernel <linux-trace-kernel@vger.kernel.org>
Cc: Masami Hiramatsu <mhiramat@kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	Andrii Nakryiko <andrii@kernel.org>,
	Francis Laniel <flaniel@linux.microsoft.com>,
	Nikolay Kuratov <kniv@yandex-team.ru>
Subject: [PATCH for-next v3] tracing/kprobes: Add symbol counting check when module loads
Date: Fri,  5 Jul 2024 16:11:25 +0900
Message-Id: <172016348553.99543.2834679315611882137.stgit@devnote2>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1268770
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-trace-kernel
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

From: Masami Hiramatsu (Google) <mhiramat@kernel.org>

Currently, kprobe event checks whether the target symbol name is unique
or not, so that it does not put a probe on an unexpected place. But this
skips the check if the target is on a module because the module may not
be loaded.

To fix this issue, this patch checks the number of probe target symbols
in a target module when the module is loaded. If the probe is not on the
unique name symbols in the module, it will be rejected at that point.

Note that the symbol which has a unique name in the target module,
it will be accepted even if there are same-name symbols in the
kernel or other modules,

Signed-off-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
---
 Changes in v3:
  - Update the patch description.
  - Update for latest probe/for-next
 Updated from last October post, which was dropped by test failure:
    https://lore.kernel.org/linux-trace-kernel/169854904604.132316.12500381416261460174.stgit@devnote2/
 Changes in v2:
  - Fix to skip checking uniqueness if the target module is not loaded.
  - Fix register_module_trace_kprobe() to pass correct symbol name.
  - Fix to call __register_trace_kprobe() from module callback.
---
 kernel/trace/trace_kprobe.c |  125 ++++++++++++++++++++++++++++---------------
 1 file changed, 81 insertions(+), 44 deletions(-)

diff --git a/kernel/trace/trace_kprobe.c b/kernel/trace/trace_kprobe.c
index 7fd0f8576e4c..4cee3442bcce 100644
--- a/kernel/trace/trace_kprobe.c
+++ b/kernel/trace/trace_kprobe.c
@@ -678,6 +678,21 @@ static int register_trace_kprobe(struct trace_kprobe *tk)
 }
 
 #ifdef CONFIG_MODULES
+static int validate_module_probe_symbol(const char *modname, const char *symbol);
+
+static int register_module_trace_kprobe(struct module *mod, struct trace_kprobe *tk)
+{
+	const char *p;
+	int ret = 0;
+
+	p = strchr(trace_kprobe_symbol(tk), ':');
+	if (p)
+		ret = validate_module_probe_symbol(module_name(mod), p + 1);
+	if (!ret)
+		ret = __register_trace_kprobe(tk);
+	return ret;
+}
+
 /* Module notifier call back, checking event on the module */
 static int trace_kprobe_module_callback(struct notifier_block *nb,
 				       unsigned long val, void *data)
@@ -696,7 +711,7 @@ static int trace_kprobe_module_callback(struct notifier_block *nb,
 		if (trace_kprobe_within_module(tk, mod)) {
 			/* Don't need to check busy - this should have gone. */
 			__unregister_trace_kprobe(tk);
-			ret = __register_trace_kprobe(tk);
+			ret = register_module_trace_kprobe(mod, tk);
 			if (ret)
 				pr_warn("Failed to re-register probe %s on %s: %d\n",
 					trace_probe_name(&tk->tp),
@@ -747,17 +762,68 @@ static int count_mod_symbols(void *data, const char *name, unsigned long unused)
 	return 0;
 }
 
-static unsigned int number_of_same_symbols(char *func_name)
+static unsigned int number_of_same_symbols(const char *mod, const char *func_name)
 {
 	struct sym_count_ctx ctx = { .count = 0, .name = func_name };
 
-	kallsyms_on_each_match_symbol(count_symbols, func_name, &ctx.count);
+	if (!mod)
+		kallsyms_on_each_match_symbol(count_symbols, func_name, &ctx.count);
 
-	module_kallsyms_on_each_symbol(NULL, count_mod_symbols, &ctx);
+	module_kallsyms_on_each_symbol(mod, count_mod_symbols, &ctx);
 
 	return ctx.count;
 }
 
+static int validate_module_probe_symbol(const char *modname, const char *symbol)
+{
+	unsigned int count = number_of_same_symbols(modname, symbol);
+
+	if (count > 1) {
+		/*
+		 * Users should use ADDR to remove the ambiguity of
+		 * using KSYM only.
+		 */
+		return -EADDRNOTAVAIL;
+	} else if (count == 0) {
+		/*
+		 * We can return ENOENT earlier than when register the
+		 * kprobe.
+		 */
+		return -ENOENT;
+	}
+	return 0;
+}
+
+static int validate_probe_symbol(char *symbol)
+{
+	struct module *mod = NULL;
+	char *modname = NULL, *p;
+	int ret = 0;
+
+	p = strchr(symbol, ':');
+	if (p) {
+		modname = symbol;
+		symbol = p + 1;
+		*p = '\0';
+		/* Return 0 (defer) if the module does not exist yet. */
+		rcu_read_lock_sched();
+		mod = find_module(modname);
+		if (mod && !try_module_get(mod))
+			mod = NULL;
+		rcu_read_unlock_sched();
+		if (!mod)
+			goto out;
+	}
+
+	ret = validate_module_probe_symbol(modname, symbol);
+out:
+	if (p)
+		*p = ':';
+	if (mod)
+		module_put(mod);
+	return ret;
+}
+
 static int trace_kprobe_entry_handler(struct kretprobe_instance *ri,
 				      struct pt_regs *regs);
 
@@ -881,6 +947,14 @@ static int __trace_kprobe_create(int argc, const char *argv[])
 			trace_probe_log_err(0, BAD_PROBE_ADDR);
 			goto parse_error;
 		}
+		ret = validate_probe_symbol(symbol);
+		if (ret) {
+			if (ret == -EADDRNOTAVAIL)
+				trace_probe_log_err(0, NON_UNIQ_SYMBOL);
+			else
+				trace_probe_log_err(0, BAD_PROBE_ADDR);
+			goto parse_error;
+		}
 		if (is_return)
 			ctx.flags |= TPARG_FL_RETURN;
 		ret = kprobe_on_func_entry(NULL, symbol, offset);
@@ -893,31 +967,6 @@ static int __trace_kprobe_create(int argc, const char *argv[])
 		}
 	}
 
-	if (symbol && !strchr(symbol, ':')) {
-		unsigned int count;
-
-		count = number_of_same_symbols(symbol);
-		if (count > 1) {
-			/*
-			 * Users should use ADDR to remove the ambiguity of
-			 * using KSYM only.
-			 */
-			trace_probe_log_err(0, NON_UNIQ_SYMBOL);
-			ret = -EADDRNOTAVAIL;
-
-			goto error;
-		} else if (count == 0) {
-			/*
-			 * We can return ENOENT earlier than when register the
-			 * kprobe.
-			 */
-			trace_probe_log_err(0, BAD_PROBE_ADDR);
-			ret = -ENOENT;
-
-			goto error;
-		}
-	}
-
 	trace_probe_log_set_index(0);
 	if (event) {
 		ret = traceprobe_parse_event_name(&event, &group, gbuf,
@@ -1835,21 +1884,9 @@ create_local_trace_kprobe(char *func, void *addr, unsigned long offs,
 	char *event;
 
 	if (func) {
-		unsigned int count;
-
-		count = number_of_same_symbols(func);
-		if (count > 1)
-			/*
-			 * Users should use addr to remove the ambiguity of
-			 * using func only.
-			 */
-			return ERR_PTR(-EADDRNOTAVAIL);
-		else if (count == 0)
-			/*
-			 * We can return ENOENT earlier than when register the
-			 * kprobe.
-			 */
-			return ERR_PTR(-ENOENT);
+		ret = validate_probe_symbol(func);
+		if (ret)
+			return ERR_PTR(ret);
 	}
 
 	/*

.

From: Donet Tom <donettom@linux.ibm.com>
To: Andrew Morton <akpm@linux-foundation.org>,
        Muchun Song <muchun.song@linux.dev>
Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org,
        Ritesh Harjani <ritesh.list@gmail.com>,
        Mike Rapoport <rppt@kernel.org>, David Hildenbrand <david@redhat.com>,
        Matthew Wilcox <willy@infradead.org>,
        Tony Battersby <tonyb@cybernetics.com>,
        "Aneesh Kumar K . V" <aneesh.kumar@kernel.org>,
        Nicholas Piggin <npiggin@gmail.com>,
        "Kirill A . Shutemov" <kirill.shutemov@linux.intel.com>,
        Alexei Starovoitov <ast@kernel.org>, Andy Lutomirski <luto@kernel.org>,
        Donet Tom <donettom@linux.ibm.com>
Subject: [PATCH] fs/hugetlbfs/inode.c: Ensure generic_hugetlb_get_unmapped_area() returns higher address than mmap_min_addr
Date: Fri,  5 Jul 2024 02:11:50 -0500
Message-ID: <20240705071150.84972-1-donettom@linux.ibm.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1268771 org.kvack.linux-mm:202690
Newsgroups: org.kernel.vger.linux-kernel,org.kvack.linux-mm
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

generic_hugetlb_get_unmapped_area() was returning an address less
than mmap_min_addr if the mmap argument addr, after alignment, was
less than mmap_min_addr, causing mmap to fail.

This is because current generic_hugetlb_get_unmapped_area() code does
not take into account mmap_min_addr.

This patch ensures that generic_hugetlb_get_unmapped_area() always returns
an address that is greater than mmap_min_addr.

How to reproduce
================

 #include <stdio.h>
 #include <stdlib.h>
 #include <sys/mman.h>
 #include <unistd.h>

 #define HUGEPAGE_SIZE (16 * 1024 * 1024)

 int main() {

    void *addr = mmap((void *)-1, HUGEPAGE_SIZE,
                 PROT_READ | PROT_WRITE,
                 MAP_SHARED | MAP_ANONYMOUS | MAP_HUGETLB, -1, 0);
    if (addr == MAP_FAILED) {
        perror("mmap");
        exit(EXIT_FAILURE);
    }

    snprintf((char *)addr, HUGEPAGE_SIZE, "Hello, Huge Pages!");

    printf("%s\n", (char *)addr);

    if (munmap(addr, HUGEPAGE_SIZE) == -1) {
        perror("munmap");
        exit(EXIT_FAILURE);
    }

    return 0;
 }

Result without fix
==================
 # cat /proc/meminfo |grep -i HugePages_Free
 HugePages_Free:       20
 # ./test
 mmap: Permission denied
 #

Result with fix
===============
 # cat /proc/meminfo |grep -i HugePages_Free
 HugePages_Free:       20
 # ./test
 Hello, Huge Pages!
 #

Reported-by Pavithra Prakash <pavrampu@linux.vnet.ibm.com>
Signed-off-by: Donet Tom <donettom@linux.ibm.com>
---
 fs/hugetlbfs/inode.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/fs/hugetlbfs/inode.c b/fs/hugetlbfs/inode.c
index 412f295acebe..428fd2f0e4c4 100644
--- a/fs/hugetlbfs/inode.c
+++ b/fs/hugetlbfs/inode.c
@@ -228,7 +228,7 @@ generic_hugetlb_get_unmapped_area(struct file *file, unsigned long addr,
 
 	if (len & ~huge_page_mask(h))
 		return -EINVAL;
-	if (len > TASK_SIZE)
+	if (len > mmap_end - mmap_min_addr)
 		return -ENOMEM;
 
 	if (flags & MAP_FIXED) {
@@ -240,7 +240,7 @@ generic_hugetlb_get_unmapped_area(struct file *file, unsigned long addr,
 	if (addr) {
 		addr = ALIGN(addr, huge_page_size(h));
 		vma = find_vma(mm, addr);
-		if (mmap_end - len >= addr &&
+		if (mmap_end - len >= addr && addr >= mmap_min_addr &&
 		    (!vma || addr + len <= vm_start_gap(vma)))
 			return addr;
 	}
-- 
2.43.5

.

From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org,
	akpm@linux-foundation.org,
	torvalds@linux-foundation.org,
	stable@vger.kernel.org
Cc: lwn@lwn.net,
	jslaby@suse.cz,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Subject: Linux 4.19.317
Date: Fri,  5 Jul 2024 09:29:54 +0200
Message-ID: <2024070553-tannery-resident-d82a@gregkh>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1268777
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.stable
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

I'm announcing the release of the 4.19.317 kernel.

All users of the 4.19 kernel series must upgrade.

The updated 4.19.y git tree can be found at:
	git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-4.19.y
and can be browsed at the normal kernel.org git web browser:
	https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary

thanks,

greg k-h

------------

 Makefile                                                                       |    2 
 arch/arm/boot/dts/exynos4210-smdkv310.dts                                      |    2 
 arch/arm/boot/dts/exynos4412-origen.dts                                        |    2 
 arch/arm/boot/dts/exynos4412-smdk4412.dts                                      |    2 
 arch/arm64/boot/dts/rockchip/rk3368.dtsi                                       |    3 
 arch/hexagon/include/asm/syscalls.h                                            |    6 
 arch/hexagon/kernel/syscalltab.c                                               |    7 
 arch/mips/pci/ops-rc32434.c                                                    |    4 
 arch/mips/pci/pcie-octeon.c                                                    |    6 
 arch/powerpc/include/asm/hvcall.h                                              |    8 
 arch/powerpc/include/asm/io.h                                                  |   24 +-
 arch/x86/kernel/amd_nb.c                                                       |    9 
 arch/x86/kernel/time.c                                                         |   21 -
 drivers/acpi/acpica/exregion.c                                                 |   23 --
 drivers/ata/libata-core.c                                                      |    8 
 drivers/base/core.c                                                            |    3 
 drivers/dma/dma-axi-dmac.c                                                     |    2 
 drivers/dma/ioat/init.c                                                        |    1 
 drivers/gpio/gpio-davinci.c                                                    |    5 
 drivers/gpu/drm/amd/amdgpu/kv_dpm.c                                            |    2 
 drivers/gpu/drm/amd/display/dc/dcn10/dcn10_stream_encoder.c                    |    6 
 drivers/gpu/drm/bridge/panel.c                                                 |    7 
 drivers/gpu/drm/exynos/exynos_drm_vidi.c                                       |    7 
 drivers/gpu/drm/nouveau/dispnv04/tvnv17.c                                      |    6 
 drivers/gpu/drm/panel/panel-ilitek-ili9881c.c                                  |    6 
 drivers/gpu/drm/radeon/sumo_dpm.c                                              |    2 
 drivers/hid/hid-core.c                                                         |    1 
 drivers/hv/hv_util.c                                                           |   19 +
 drivers/hwtracing/intel_th/pci.c                                               |   25 ++
 drivers/i2c/busses/i2c-ocores.c                                                |   56 ++++-
 drivers/iio/adc/ad7266.c                                                       |    2 
 drivers/iio/chemical/bme680.h                                                  |    2 
 drivers/iio/chemical/bme680_core.c                                             |   62 ++++-
 drivers/iio/dac/ad5592r-base.c                                                 |   56 ++---
 drivers/iio/dac/ad5592r-base.h                                                 |    1 
 drivers/input/input.c                                                          |  105 ++++++++-
 drivers/iommu/amd_iommu_init.c                                                 |    9 
 drivers/media/dvb-core/dvbdev.c                                                |    2 
 drivers/media/media-devnode.c                                                  |    5 
 drivers/misc/mei/pci-me.c                                                      |    4 
 drivers/misc/vmw_vmci/vmci_event.c                                             |    6 
 drivers/mmc/host/sdhci-pci-core.c                                              |   11 
 drivers/net/ethernet/cavium/liquidio/lio_vf_rep.c                              |   11 
 drivers/net/usb/ax88179_178a.c                                                 |    6 
 drivers/net/usb/rtl8150.c                                                      |    3 
 drivers/net/virtio_net.c                                                       |   11 
 drivers/net/vxlan.c                                                            |    4 
 drivers/net/wireless/intel/iwlwifi/mvm/fw.c                                    |   10 
 drivers/net/wireless/intel/iwlwifi/mvm/rs.h                                    |    9 
 drivers/pci/controller/pcie-rockchip-ep.c                                      |    6 
 drivers/pci/pci.c                                                              |   12 +
 drivers/pinctrl/core.c                                                         |    2 
 drivers/pinctrl/pinctrl-rockchip.c                                             |   63 ++++-
 drivers/ptp/ptp_chardev.c                                                      |    3 
 drivers/pwm/pwm-stm32.c                                                        |    3 
 drivers/regulator/core.c                                                       |    1 
 drivers/scsi/mpt3sas/mpt3sas_base.c                                            |  112 ++++++++++
 drivers/scsi/mpt3sas/mpt3sas_base.h                                            |   11 
 drivers/scsi/qedi/qedi_debugfs.c                                               |   12 -
 drivers/soc/ti/wkup_m3_ipc.c                                                   |    7 
 drivers/tty/serial/mcf.c                                                       |    2 
 drivers/tty/serial/sc16is7xx.c                                                 |   25 +-
 drivers/usb/atm/cxacru.c                                                       |   14 +
 drivers/usb/class/cdc-wdm.c                                                    |    4 
 drivers/usb/gadget/function/f_fs.c                                             |    4 
 drivers/usb/gadget/function/f_printer.c                                        |    1 
 drivers/usb/host/xhci-pci.c                                                    |   12 +
 drivers/usb/host/xhci-ring.c                                                   |   25 +-
 drivers/usb/host/xhci.h                                                        |    3 
 drivers/usb/misc/uss720.c                                                      |   20 +
 drivers/usb/musb/da8xx.c                                                       |    8 
 drivers/usb/storage/alauda.c                                                   |    9 
 fs/jfs/xattr.c                                                                 |    4 
 fs/nilfs2/dir.c                                                                |   59 ++---
 fs/nilfs2/segment.c                                                            |    3 
 fs/ocfs2/file.c                                                                |    2 
 fs/ocfs2/namei.c                                                               |    2 
 fs/open.c                                                                      |    4 
 fs/proc/vmcore.c                                                               |    2 
 fs/udf/udftime.c                                                               |   11 
 include/linux/compat.h                                                         |    2 
 include/linux/nvme.h                                                           |    4 
 include/linux/pci.h                                                            |    9 
 include/linux/syscalls.h                                                       |    2 
 include/net/bluetooth/hci_core.h                                               |   36 ++-
 include/net/netfilter/nf_tables.h                                              |    5 
 include/uapi/asm-generic/hugetlb_encode.h                                      |   24 +-
 kernel/events/core.c                                                           |   13 +
 kernel/gcov/gcc_4_7.c                                                          |    4 
 kernel/rcu/rcutorture.c                                                        |    3 
 kernel/trace/preemptirq_delay_test.c                                           |    1 
 net/batman-adv/originator.c                                                    |   29 ++
 net/bluetooth/l2cap_core.c                                                     |    8 
 net/core/sock.c                                                                |    6 
 net/ipv4/af_inet.c                                                             |   38 ++-
 net/ipv4/cipso_ipv4.c                                                          |   12 -
 net/ipv4/tcp.c                                                                 |   16 -
 net/ipv6/af_inet6.c                                                            |   14 -
 net/ipv6/ipv6_sockglue.c                                                       |    9 
 net/ipv6/route.c                                                               |    8 
 net/ipv6/seg6_iptunnel.c                                                       |   14 -
 net/ipv6/tcp_ipv6.c                                                            |    9 
 net/ipv6/xfrm6_policy.c                                                        |    8 
 net/iucv/iucv.c                                                                |   26 +-
 net/mac80211/mesh_pathtbl.c                                                    |   13 +
 net/mac80211/sta_info.c                                                        |    4 
 net/netfilter/nf_tables_api.c                                                  |   13 -
 net/netfilter/nft_lookup.c                                                     |    3 
 net/netrom/nr_timer.c                                                          |    3 
 net/unix/af_unix.c                                                             |   47 +---
 net/unix/diag.c                                                                |   12 -
 net/xdp/xsk.c                                                                  |    4 
 sound/soc/fsl/fsl-asoc-card.c                                                  |    3 
 sound/synth/emux/soundfont.c                                                   |   17 -
 tools/include/asm-generic/hugetlb_encode.h                                     |   20 -
 tools/testing/selftests/ftrace/test.d/trigger/trigger-trace-marker-snapshot.tc |    4 
 tools/testing/selftests/vm/compaction_test.c                                   |  103 ++++-----
 117 files changed, 1129 insertions(+), 457 deletions(-)

Adam Miotk (1):
      drm/bridge/panel: Fix runtime warning on panel bridge release

Aditya Pakki (1):
      ipv6/route: Add a missing check on proc_dointvec

Alan Stern (1):
      USB: class: cdc-wdm: Fix CPU lockup caused by excessive log messages

Aleksandr Mishin (2):
      liquidio: Adjust a NULL pointer handling path in lio_vf_rep_copy_packet
      gpio: davinci: Validate the obtained number of IRQs

Alex Bee (1):
      arm64: dts: rockchip: Add sound-dai-cells for RK3368

Alex Deucher (2):
      drm/radeon: fix UBSAN warning in kv_dpm.c
      drm/amdgpu: fix UBSAN warning in kv_dpm.c

Alex Henrie (1):
      usb: misc: uss720: check for incompatible versions of the Belkin F5U002

Alexander Shishkin (5):
      intel_th: pci: Add Granite Rapids support
      intel_th: pci: Add Granite Rapids SOC support
      intel_th: pci: Add Sapphire Rapids SOC support
      intel_th: pci: Add Meteor Lake-S support
      intel_th: pci: Add Lunar Lake support

Alexandru Ardelean (1):
      iio: dac: ad5592r: un-indent code-block for scale read

Andrew Davis (1):
      soc: ti: wkup_m3_ipc: Send NULL dummy message instead of pointer message

Arnd Bergmann (2):
      hexagon: fix fadvise64_64 calling conventions
      ftruncate: pass a signed offset

Biju Das (1):
      regulator: core: Fix modpost error "regulator_get_regmap" undefined

Breno Leitao (1):
      scsi: mpt3sas: Avoid test/set_bit() operating in non-allocated memory

Dan Carpenter (1):
      usb: musb: da8xx: fix a resource leak in probe()

Daniel Borkmann (1):
      vxlan: Fix regression when dropping packets due to invalid src addresses

Dawei Li (1):
      net/iucv: Avoid explicit cpumask var allocation on stack

Dev Jain (2):
      selftests/mm: compaction_test: fix incorrect write of zero to nr_hugepages
      selftests/mm: compaction_test: fix bogus test success on Aarch64

Dirk Behme (1):
      drivers: core: synchronize really_probe() and dev_uevent()

Dmitry Torokhov (1):
      Input: try trimming too long modalias strings

Elinor Montmasson (1):
      ASoC: fsl-asoc-card: set priv->pdev before using it

Emmanuel Grumbach (1):
      wifi: iwlwifi: mvm: don't read past the mfuart notifcation

Eric Dumazet (7):
      ipv6: sr: block BH in seg6_output_core() and seg6_input_core()
      xsk: validate user input for XDP_{UMEM|COMPLETION}_FILL_RING
      tcp: fix race in tcp_v6_syn_recv_sock()
      batman-adv: bypass empty buckets in batadv_purge_orig_ref()
      ipv6: prevent possible NULL dereference in rt6_probe()
      xfrm6: check ip6_dst_idev() return value in xfrm6_get_saddr()
      ipv6: annotate some data-races around sk->sk_prot

Federico Vaga (1):
      i2c: ocores: stop transfer on timeout

Fernando Yang (1):
      iio: adc: ad7266: Fix variable checking bug

Gavrilov Ilia (1):
      netrom: Fix a memory leak in nr_heartbeat_expiry()

George Shen (1):
      drm/amd/display: Handle Y carry-over in VCP X.Y calculation

Greg Kroah-Hartman (2):
      jfs: xattr: fix buffer overflow for invalid xattr
      Linux 4.19.317

Grygorii Tertychnyi (1):
      i2c: ocores: set IACK bit after core is enabled

Hagar Gamal Halim Hemdan (1):
      vmci: prevent speculation leaks by sanitizing event in event_deliver()

Hagar Hemdan (1):
      pinctrl: fix deadlock in create_pinctrl() when handling -EPROBE_DEFER

Haifeng Xu (1):
      perf/core: Fix missing wakeup when waiting for context reference

Hannes Reinecke (1):
      nvme: fixup comment for nvme RDMA Provider Type

Hans Verkuil (1):
      media: mc: mark the media devnode as registered from the, start

Heng Qi (1):
      virtio_net: checksum offloading handling fix

Huang-Huang Bao (3):
      pinctrl: rockchip: fix pinmux bits for RK3328 GPIO2-B pins
      pinctrl: rockchip: fix pinmux bits for RK3328 GPIO3-B pins
      pinctrl: rockchip: fix pinmux reset in rockchip_pmx_set

Hugo Villeneuve (2):
      serial: sc16is7xx: replace hardcoded divisor value with BIT() macro
      serial: sc16is7xx: fix bug in sc16is7xx_set_baud() when using prescaler

Ilpo Järvinen (2):
      MIPS: Routerboard 532: Fix vendor retry check code
      mmc: sdhci-pci: Convert PCIBIOS_* return codes to errnos

Jani Nikula (1):
      drm/exynos/vidi: fix memory leak in .get_modes()

Jason Xing (1):
      tcp: count CLOSE-WAIT sockets for TCP_MIB_CURRESTAB

Jean-Michel Hautbois (1):
      tty: mcf: MCF54418 has 10 UARTS

Jeff Johnson (1):
      tracing: Add MODULE_DESCRIPTION() to preemptirq_delay_test

Joe Perches (1):
      scsi: mpt3sas: Add ioc_<level> logging macros

Johannes Berg (1):
      wifi: iwlwifi: mvm: revert gen2 TX A-MPDU size to 64

Jose Ignacio Tornos Martinez (1):
      net: usb: ax88179_178a: improve link status logs

Karol Kolacinski (1):
      ptp: Fix error message on failed pin verification

Krzysztof Kozlowski (3):
      ARM: dts: samsung: smdkv310: fix keypad no-autorepeat
      ARM: dts: samsung: exynos4412-origen: fix keypad no-autorepeat
      ARM: dts: samsung: smdk4412: fix keypad no-autorepeat

Kuangyi Chiang (2):
      xhci: Apply reset resume quirk to Etron EJ188 xHCI host
      xhci: Apply broken streams quirk to Etron EJ188 xHCI host

Kun(llfl) (1):
      iommu/amd: Fix sysfs leak in iommu init

Kuniyuki Iwashima (10):
      af_unix: Annotate data-race of sk->sk_state in unix_inq_len().
      af_unix: Annotate data-races around sk->sk_state in unix_write_space() and poll().
      af_unix: Annotate data-races around sk->sk_state in sendmsg() and recvmsg().
      af_unix: Annotate data-races around sk->sk_state in UNIX_DIAG.
      af_unix: Annotate data-race of net->unx.sysctl_max_dgram_qlen.
      af_unix: Use unix_recvq_full_lockless() in unix_stream_connect().
      af_unix: Use skb_queue_len_lockless() in sk_diag_show_rqlen().
      af_unix: Annotate data-race of sk->sk_shutdown in sk_diag_fill().
      ipv6: Fix data races around sk->sk_prot.
      tcp: Fix data races around icsk->icsk_af_ops.

Laurent Pinchart (1):
      drm/panel: ilitek-ili9881c: Fix warning with GPIO controllers that sleep

Linus Torvalds (1):
      x86: stop playing stack games in profile_pc()

Luiz Augusto von Dentz (1):
      Bluetooth: L2CAP: Fix rejecting L2CAP_CONN_PARAM_UPDATE_REQ

Ma Ke (2):
      drm/nouveau/dispnv04: fix null pointer dereference in nv17_tv_get_ld_modes
      drm/nouveau/dispnv04: fix null pointer dereference in nv17_tv_get_hd_modes

Manish Rangankar (1):
      scsi: qedi: Fix crash while reading debugfs attribute

Marc Ferland (1):
      iio: dac: ad5592r: fix temperature channel scaling value

Mario Limonciello (1):
      PCI/PM: Avoid D3cold for HP Pavilion 17 PC/1972 PCIe Ports

Masami Hiramatsu (1):
      selftests/ftrace: Fix checkbashisms errors

Mathias Nyman (2):
      xhci: Use soft retry to recover faster from transaction errors
      xhci: Set correct transferred length for cancelled bulk transfers

Matthew Wilcox (Oracle) (2):
      nilfs2: Remove check for PageError
      nilfs2: return the mapped address from nilfs_get_page()

Matthias Goergens (1):
      hugetlb_encode.h: fix undefined behaviour (34 << 26)

Michael Ellerman (1):
      powerpc/io: Avoid clang null pointer arithmetic warnings

Muhammad Usama Anjum (1):
      selftests/mm: conform test to TAP format output

Nathan Lynch (1):
      powerpc/pseries: Enforce hcall result buffer validity and size

Naveen Naidu (1):
      PCI: Add PCI_ERROR_RESPONSE and related definitions

Nicolas Escande (1):
      wifi: mac80211: mesh: Fix leak of mesh_preq_queue objects

Nikita Shubin (1):
      dmaengine: ioatdma: Fix missing kmem_cache_destroy()

Nikita Zhandarovich (2):
      HID: core: remove unnecessary WARN_ON() in implement()
      usb: atm: cxacru: fix endpoint checking in cxacru_bind()

Niklas Cassel (1):
      ata: libata-core: Fix double free on error

Nuno Sa (1):
      dmaengine: axi-dmac: fix possible race in remove()

Oliver Neukum (2):
      net: usb: rtl8150 fix unintiatilzed variables in rtl8150_get_link_ksettings
      usb: gadget: printer: SS+ support

Ondrej Mosnacek (1):
      cipso: fix total option length computation

Oswald Buddenhagen (1):
      ALSA: emux: improve patch ioctl data validation

Pablo Neira Ayuso (2):
      netfilter: nf_tables: validate family when identifying table via handle
      netfilter: nf_tables: fully validate NFT_DATA_VALUE on store to data registers

Paul E. McKenney (1):
      rcutorture: Fix rcu_torture_one_read() pipe_count overflow comment

Peter Oberparleiter (1):
      gcov: add support for GCC 14

Petr Pavlu (1):
      net/ipv6: Fix the RT cache flush via sysctl using a previous delay

Raju Rangoju (1):
      ACPICA: Revert "ACPICA: avoid Info: mapping multiple BARs. Your kernel is fine."

Remi Pommarel (1):
      wifi: mac80211: Fix deadlock in ieee80211_sta_ps_deliver_wakeup()

Ricardo Ribalda (1):
      media: dvbdev: Initialize sbuf

Rick Wertenbroek (1):
      PCI: rockchip-ep: Remove wrong mask on subsys_vendor_id

Rik van Riel (1):
      fs/proc: fix softlockup in __read_vmcore

Roman Smirnov (1):
      udf: udftime: prevent overflow in udf_disk_stamp_to_time()

Ryusuke Konishi (2):
      nilfs2: fix nilfs_empty_dir() misjudgment and long loop on I/O errors
      nilfs2: fix potential kernel bug due to lack of writeback flag waiting

Sergiu Cuciurean (1):
      iio: dac: ad5592r-base: Replace indio_dev->mlock with own device lock

Shichao Lai (1):
      usb-storage: alauda: Check whether the media is initialized

Songyang Li (1):
      MIPS: Octeon: Add PCIe link status check

Stanislaw Gruszka (1):
      usb: xhci: do not perform Soft Retry for some xHCI hosts

Su Yue (2):
      ocfs2: use coarse time for new created files
      ocfs2: fix races between hole punching and AIO+DIO

Suganath Prabu (1):
      scsi: mpt3sas: Gracefully handle online firmware update

Sven Eckelmann (1):
      batman-adv: Don't accept TT entries for out-of-spec VIDs

Tomas Winkler (1):
      mei: me: release irq in mei_me_pci_resume error path

Uwe Kleine-König (1):
      pwm: stm32: Refuse too small period requests

Vasileios Amoiridis (4):
      iio: chemical: bme680: Fix pressure value output
      iio: chemical: bme680: Fix calibration data variable
      iio: chemical: bme680: Fix overflows in compensate() functions
      iio: chemical: bme680: Fix sensor data read operation

Vineeth Pillai (1):
      hv_utils: drain the timesync packets on onchannelcallback

Wesley Cheng (1):
      usb: gadget: f_fs: Fix race between aio_cancel() and AIO request complete

Yazen Ghannam (1):
      x86/amd_nb: Check for invalid SMN reads

.

From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org,
	akpm@linux-foundation.org,
	torvalds@linux-foundation.org,
	stable@vger.kernel.org
Cc: lwn@lwn.net,
	jslaby@suse.cz,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Subject: Linux 5.4.279
Date: Fri,  5 Jul 2024 09:30:12 +0200
Message-ID: <2024070510-superbowl-bony-e5ce@gregkh>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1268778
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.stable
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

I'm announcing the release of the 5.4.279 kernel.

All users of the 5.4 kernel series must upgrade.

The updated 5.4.y git tree can be found at:
	git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-5.4.y
and can be browsed at the normal kernel.org git web browser:
	https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary

thanks,

greg k-h

------------

 Makefile                                                         |    2 
 arch/arm/boot/dts/exynos4210-smdkv310.dts                        |    2 
 arch/arm/boot/dts/exynos4412-origen.dts                          |    2 
 arch/arm/boot/dts/exynos4412-smdk4412.dts                        |    2 
 arch/arm/boot/dts/rk3066a.dtsi                                   |    1 
 arch/arm64/boot/dts/qcom/qcs404-evb.dtsi                         |    2 
 arch/arm64/boot/dts/rockchip/rk3368.dtsi                         |    3 
 arch/csky/include/uapi/asm/unistd.h                              |    1 
 arch/hexagon/include/asm/syscalls.h                              |    6 
 arch/hexagon/include/uapi/asm/unistd.h                           |    1 
 arch/hexagon/kernel/syscalltab.c                                 |    7 
 arch/mips/bmips/setup.c                                          |    3 
 arch/mips/pci/ops-rc32434.c                                      |    4 
 arch/mips/pci/pcie-octeon.c                                      |    6 
 arch/parisc/kernel/syscalls/syscall.tbl                          |    4 
 arch/powerpc/include/asm/hvcall.h                                |    8 
 arch/powerpc/include/asm/io.h                                    |   24 
 arch/sparc/kernel/syscalls/syscall.tbl                           |    2 
 arch/x86/kernel/amd_nb.c                                         |    9 
 arch/x86/kernel/time.c                                           |   20 
 drivers/acpi/acpica/exregion.c                                   |   23 
 drivers/ata/libata-core.c                                        |    8 
 drivers/base/core.c                                              |    3 
 drivers/bluetooth/ath3k.c                                        |   25 
 drivers/dma/dma-axi-dmac.c                                       |    2 
 drivers/dma/ioat/init.c                                          |    1 
 drivers/gpio/Kconfig                                             |    2 
 drivers/gpio/gpio-davinci.c                                      |    5 
 drivers/gpu/drm/amd/amdgpu/kv_dpm.c                              |    2 
 drivers/gpu/drm/amd/display/dc/dcn10/dcn10_stream_encoder.c      |    6 
 drivers/gpu/drm/arm/display/komeda/komeda_pipeline_state.c       |    2 
 drivers/gpu/drm/bridge/panel.c                                   |    7 
 drivers/gpu/drm/exynos/exynos_drm_vidi.c                         |    7 
 drivers/gpu/drm/exynos/exynos_hdmi.c                             |    7 
 drivers/gpu/drm/nouveau/dispnv04/tvnv17.c                        |    6 
 drivers/gpu/drm/panel/panel-ilitek-ili9881c.c                    |    6 
 drivers/gpu/drm/radeon/sumo_dpm.c                                |    2 
 drivers/greybus/interface.c                                      |    1 
 drivers/hid/hid-core.c                                           |    1 
 drivers/hid/hid-logitech-dj.c                                    |    4 
 drivers/hv/hv_util.c                                             |   19 
 drivers/hwtracing/intel_th/pci.c                                 |   25 
 drivers/i2c/busses/i2c-at91-slave.c                              |    3 
 drivers/i2c/busses/i2c-ocores.c                                  |    2 
 drivers/iio/adc/ad7266.c                                         |    2 
 drivers/iio/chemical/bme680.h                                    |    2 
 drivers/iio/chemical/bme680_core.c                               |   62 +-
 drivers/iio/dac/ad5592r-base.c                                   |   56 -
 drivers/iio/dac/ad5592r-base.h                                   |    1 
 drivers/input/input.c                                            |  105 ++-
 drivers/iommu/amd_iommu_init.c                                   |    9 
 drivers/media/dvb-core/dvbdev.c                                  |    2 
 drivers/misc/mei/pci-me.c                                        |    4 
 drivers/misc/vmw_vmci/vmci_event.c                               |    6 
 drivers/mmc/host/sdhci-pci-core.c                                |   11 
 drivers/mmc/host/sdhci.c                                         |   25 
 drivers/mtd/nand/spi/macronix.c                                  |   99 +++
 drivers/mtd/parsers/redboot.c                                    |    2 
 drivers/net/dsa/microchip/ksz9477.c                              |    6 
 drivers/net/ethernet/cavium/liquidio/lio_vf_rep.c                |   11 
 drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c                 |   14 
 drivers/net/ethernet/mellanox/mlx5/core/en_main.c                |    3 
 drivers/net/ethernet/mellanox/mlx5/core/fw.c                     |    4 
 drivers/net/ethernet/mellanox/mlx5/core/health.c                 |    8 
 drivers/net/ethernet/mellanox/mlx5/core/lib/pci_vsc.c            |    4 
 drivers/net/ethernet/pensando/ionic/ionic_lif.c                  |    4 
 drivers/net/phy/micrel.c                                         |   15 
 drivers/net/usb/ax88179_178a.c                                   |    6 
 drivers/net/usb/rtl8150.c                                        |    3 
 drivers/net/virtio_net.c                                         |   12 
 drivers/net/vxlan.c                                              |    4 
 drivers/net/wireless/intel/iwlwifi/iwl-drv.c                     |    2 
 drivers/net/wireless/intel/iwlwifi/mvm/fw.c                      |   10 
 drivers/net/wireless/intel/iwlwifi/mvm/rs.h                      |    9 
 drivers/pci/controller/pcie-rockchip-ep.c                        |    6 
 drivers/pci/pci.c                                                |   12 
 drivers/pinctrl/core.c                                           |    2 
 drivers/pinctrl/pinctrl-rockchip.c                               |   63 +-
 drivers/ptp/ptp_chardev.c                                        |    3 
 drivers/pwm/pwm-stm32.c                                          |    3 
 drivers/regulator/core.c                                         |    1 
 drivers/scsi/mpt3sas/mpt3sas_base.c                              |   19 
 drivers/scsi/qedi/qedi_debugfs.c                                 |   12 
 drivers/soc/ti/wkup_m3_ipc.c                                     |    7 
 drivers/tty/serial/mcf.c                                         |    2 
 drivers/tty/serial/sc16is7xx.c                                   |   25 
 drivers/usb/atm/cxacru.c                                         |   14 
 drivers/usb/class/cdc-wdm.c                                      |    4 
 drivers/usb/gadget/function/f_fs.c                               |    4 
 drivers/usb/gadget/function/f_printer.c                          |    1 
 drivers/usb/host/xhci-pci.c                                      |    7 
 drivers/usb/host/xhci-ring.c                                     |    5 
 drivers/usb/misc/uss720.c                                        |   20 
 drivers/usb/musb/da8xx.c                                         |    8 
 drivers/usb/storage/alauda.c                                     |    9 
 fs/jfs/xattr.c                                                   |    4 
 fs/nfs/read.c                                                    |    4 
 fs/nilfs2/dir.c                                                  |   59 -
 fs/nilfs2/segment.c                                              |    3 
 fs/ocfs2/file.c                                                  |    2 
 fs/ocfs2/namei.c                                                 |    2 
 fs/open.c                                                        |    4 
 fs/proc/vmcore.c                                                 |    2 
 fs/udf/udftime.c                                                 |   11 
 include/linux/compat.h                                           |    2 
 include/linux/iommu.h                                            |    2 
 include/linux/micrel_phy.h                                       |    1 
 include/linux/nvme.h                                             |    4 
 include/linux/pci.h                                              |    9 
 include/linux/syscalls.h                                         |    2 
 include/net/bluetooth/hci_core.h                                 |   36 +
 include/net/netfilter/nf_tables.h                                |    5 
 include/uapi/asm-generic/hugetlb_encode.h                        |   24 
 kernel/events/core.c                                             |   13 
 kernel/gcov/gcc_4_7.c                                            |    4 
 kernel/gen_kheaders.sh                                           |    9 
 kernel/rcu/rcutorture.c                                          |    3 
 kernel/time/tick-common.c                                        |   42 -
 kernel/trace/preemptirq_delay_test.c                             |    1 
 net/batman-adv/originator.c                                      |   29 
 net/bluetooth/l2cap_core.c                                       |    8 
 net/can/j1939/main.c                                             |    6 
 net/can/j1939/transport.c                                        |   21 
 net/core/drop_monitor.c                                          |   20 
 net/core/net_namespace.c                                         |    9 
 net/core/sock.c                                                  |    6 
 net/ipv4/af_inet.c                                               |   23 
 net/ipv4/cipso_ipv4.c                                            |   12 
 net/ipv4/tcp.c                                                   |   16 
 net/ipv6/af_inet6.c                                              |   24 
 net/ipv6/ip6_fib.c                                               |    6 
 net/ipv6/ipv6_sockglue.c                                         |    9 
 net/ipv6/route.c                                                 |    9 
 net/ipv6/seg6_iptunnel.c                                         |   14 
 net/ipv6/tcp_ipv6.c                                              |    9 
 net/ipv6/xfrm6_policy.c                                          |    8 
 net/iucv/iucv.c                                                  |   26 
 net/mac80211/mesh_pathtbl.c                                      |   13 
 net/mac80211/sta_info.c                                          |    4 
 net/netfilter/ipset/ip_set_core.c                                |   92 +-
 net/netfilter/ipset/ip_set_list_set.c                            |   30 
 net/netfilter/nf_tables_api.c                                    |   13 
 net/netfilter/nft_exthdr.c                                       |   17 
 net/netfilter/nft_lookup.c                                       |    3 
 net/netrom/nr_timer.c                                            |    3 
 net/sched/act_api.c                                              |   66 +-
 net/sched/sch_multiq.c                                           |    2 
 net/sched/sch_taprio.c                                           |   15 
 net/sunrpc/auth_gss/auth_gss.c                                   |    4 
 net/unix/af_unix.c                                               |   47 -
 net/unix/diag.c                                                  |   12 
 net/wireless/pmsr.c                                              |    8 
 sound/soc/fsl/fsl-asoc-card.c                                    |    3 
 sound/soc/ti/davinci-mcasp.c                                     |  310 ++++------
 sound/synth/emux/soundfont.c                                     |   17 
 tools/include/asm-generic/hugetlb_encode.h                       |   20 
 tools/testing/selftests/bpf/test_tc_tunnel.sh                    |   13 
 tools/testing/selftests/ftrace/test.d/kprobe/kprobe_eventname.tc |    3 
 tools/testing/selftests/vm/compaction_test.c                     |  103 +--
 159 files changed, 1466 insertions(+), 841 deletions(-)

Adam Miotk (1):
      drm/bridge/panel: Fix runtime warning on panel bridge release

Adrian Hunter (2):
      mmc: sdhci: Do not invert write-protect twice
      mmc: sdhci: Do not lock spinlock around mmc_gpio_get_ro()

Alan Stern (1):
      USB: class: cdc-wdm: Fix CPU lockup caused by excessive log messages

Aleksandr Mishin (2):
      liquidio: Adjust a NULL pointer handling path in lio_vf_rep_copy_packet
      gpio: davinci: Validate the obtained number of IRQs

Alessandro Carminati (Red Hat) (1):
      selftests/bpf: Prevent client connect before server bind in test_tc_tunnel.sh

Alex Bee (1):
      arm64: dts: rockchip: Add sound-dai-cells for RK3368

Alex Deucher (2):
      drm/radeon: fix UBSAN warning in kv_dpm.c
      drm/amdgpu: fix UBSAN warning in kv_dpm.c

Alex Henrie (1):
      usb: misc: uss720: check for incompatible versions of the Belkin F5U002

Alexander Shishkin (5):
      intel_th: pci: Add Granite Rapids support
      intel_th: pci: Add Granite Rapids SOC support
      intel_th: pci: Add Sapphire Rapids SOC support
      intel_th: pci: Add Meteor Lake-S support
      intel_th: pci: Add Lunar Lake support

Alexandru Ardelean (1):
      iio: dac: ad5592r: un-indent code-block for scale read

Amjad Ouled-Ameur (1):
      drm/komeda: check for error-valued pointer

Andrew Davis (1):
      soc: ti: wkup_m3_ipc: Send NULL dummy message instead of pointer message

Arnd Bergmann (5):
      sparc: fix old compat_sys_select()
      parisc: use correct compat recv/recvfrom syscalls
      csky, hexagon: fix broken sys_sync_file_range
      hexagon: fix fadvise64_64 calling conventions
      ftruncate: pass a signed offset

Biju Das (1):
      regulator: core: Fix modpost error "regulator_get_regmap" undefined

Breno Leitao (1):
      scsi: mpt3sas: Avoid test/set_bit() operating in non-allocated memory

Chen Hanxiao (1):
      SUNRPC: return proper error from gss_wrap_req_priv

Christian Marangi (1):
      mips: bmips: BCM6358: make sure CBR is correctly set

Colin Ian King (1):
      ASoC: ti: davinci-mcasp: remove redundant assignment to variable ret

Dan Carpenter (1):
      usb: musb: da8xx: fix a resource leak in probe()

Daniel Borkmann (1):
      vxlan: Fix regression when dropping packets due to invalid src addresses

David Ruth (1):
      net/sched: act_api: fix possible infinite loop in tcf_idr_check_alloc()

Dawei Li (2):
      net/iucv: Avoid explicit cpumask var allocation on stack
      net/dpaa2: Avoid explicit cpumask var allocation on stack

Denis Arefev (1):
      mtd: partitions: redboot: Added conversion of operands to a larger type

Dev Jain (2):
      selftests/mm: compaction_test: fix incorrect write of zero to nr_hugepages
      selftests/mm: compaction_test: fix bogus test success on Aarch64

Dirk Behme (1):
      drivers: core: synchronize really_probe() and dev_uevent()

Divya Koppera (1):
      net: phy: mchp: Add support for LAN8814 QUAD PHY

Dmitry Torokhov (1):
      Input: try trimming too long modalias strings

Elinor Montmasson (1):
      ASoC: fsl-asoc-card: set priv->pdev before using it

Emmanuel Grumbach (1):
      wifi: iwlwifi: mvm: don't read past the mfuart notifcation

Enguerrand de Ribaucourt (1):
      net: phy: micrel: add Microchip KSZ 9477 to the device table

Eric Dumazet (9):
      ipv6: sr: block BH in seg6_output_core() and seg6_input_core()
      net/sched: taprio: always validate TCA_TAPRIO_ATTR_PRIOMAP
      ipv6: fix possible race in __fib6_drop_pcpu_from()
      tcp: fix race in tcp_v6_syn_recv_sock()
      batman-adv: bypass empty buckets in batadv_purge_orig_ref()
      ipv6: prevent possible NULL deref in fib6_nh_init()
      ipv6: prevent possible NULL dereference in rt6_probe()
      xfrm6: check ip6_dst_idev() return value in xfrm6_get_saddr()
      ipv6: annotate some data-races around sk->sk_prot

Fernando Yang (1):
      iio: adc: ad7266: Fix variable checking bug

Florian Westphal (1):
      netfilter: nftables: exthdr: fix 4-byte stack OOB write

Gal Pressman (1):
      net/mlx5e: Fix features validation check for tunneled UDP (non-VXLAN) packets

Gavrilov Ilia (1):
      netrom: Fix a memory leak in nr_heartbeat_expiry()

George Shen (1):
      drm/amd/display: Handle Y carry-over in VCP X.Y calculation

Greg Kroah-Hartman (2):
      jfs: xattr: fix buffer overflow for invalid xattr
      Linux 5.4.279

Gregor Herburger (1):
      gpio: tqmx86: fix typo in Kconfig label

Grygorii Tertychnyi (1):
      i2c: ocores: set IACK bit after core is enabled

Hagar Gamal Halim Hemdan (1):
      vmci: prevent speculation leaks by sanitizing event in event_deliver()

Hagar Hemdan (1):
      pinctrl: fix deadlock in create_pinctrl() when handling -EPROBE_DEFER

Haifeng Xu (1):
      perf/core: Fix missing wakeup when waiting for context reference

Hangyu Hua (1):
      net: sched: sch_multiq: fix possible OOB write in multiq_tune()

Hannes Reinecke (1):
      nvme: fixup comment for nvme RDMA Provider Type

Heng Qi (1):
      virtio_net: checksum offloading handling fix

Huang-Huang Bao (3):
      pinctrl: rockchip: fix pinmux bits for RK3328 GPIO2-B pins
      pinctrl: rockchip: fix pinmux bits for RK3328 GPIO3-B pins
      pinctrl: rockchip: fix pinmux reset in rockchip_pmx_set

Hugo Villeneuve (2):
      serial: sc16is7xx: replace hardcoded divisor value with BIT() macro
      serial: sc16is7xx: fix bug in sc16is7xx_set_baud() when using prescaler

Ilpo Järvinen (2):
      MIPS: Routerboard 532: Fix vendor retry check code
      mmc: sdhci-pci: Convert PCIBIOS_* return codes to errnos

Jaime Liao (1):
      mtd: spinand: macronix: Add support for serial NAND flash

Jani Nikula (1):
      drm/exynos/vidi: fix memory leak in .get_modes()

Jason Xing (1):
      tcp: count CLOSE-WAIT sockets for TCP_MIB_CURRESTAB

Jean Delvare (1):
      i2c: at91: Fix the functionality flags of the slave-only interface

Jean-Michel Hautbois (1):
      tty: mcf: MCF54418 has 10 UARTS

Jeff Johnson (1):
      tracing: Add MODULE_DESCRIPTION() to preemptirq_delay_test

Joao Paulo Goncalves (1):
      ASoC: ti: davinci-mcasp: Fix race condition during probe

Johan Hovold (1):
      arm64: dts: qcom: qcs404: fix bluetooth device address

Johan Jonker (1):
      ARM: dts: rockchip: rk3066a: add #sound-dai-cells to hdmi node

Johannes Berg (1):
      wifi: iwlwifi: mvm: revert gen2 TX A-MPDU size to 64

Jose Ignacio Tornos Martinez (1):
      net: usb: ax88179_178a: improve link status logs

José Expósito (1):
      HID: logitech-dj: Fix memory leak in logi_dj_recv_switch_to_dj_mode()

Jozsef Kadlecsik (2):
      netfilter: ipset: Fix race between namespace cleanup and gc in the list:set type
      netfilter: ipset: Fix suspicious rcu_dereference_protected()

Karol Kolacinski (1):
      ptp: Fix error message on failed pin verification

Krzysztof Kozlowski (3):
      ARM: dts: samsung: smdkv310: fix keypad no-autorepeat
      ARM: dts: samsung: exynos4412-origen: fix keypad no-autorepeat
      ARM: dts: samsung: smdk4412: fix keypad no-autorepeat

Kuangyi Chiang (2):
      xhci: Apply reset resume quirk to Etron EJ188 xHCI host
      xhci: Apply broken streams quirk to Etron EJ188 xHCI host

Kun(llfl) (1):
      iommu/amd: Fix sysfs leak in iommu init

Kuniyuki Iwashima (10):
      af_unix: Annotate data-race of sk->sk_state in unix_inq_len().
      af_unix: Annotate data-races around sk->sk_state in unix_write_space() and poll().
      af_unix: Annotate data-races around sk->sk_state in sendmsg() and recvmsg().
      af_unix: Annotate data-races around sk->sk_state in UNIX_DIAG.
      af_unix: Annotate data-race of net->unx.sysctl_max_dgram_qlen.
      af_unix: Use unix_recvq_full_lockless() in unix_stream_connect().
      af_unix: Use skb_queue_len_lockless() in sk_diag_show_rqlen().
      af_unix: Annotate data-race of sk->sk_shutdown in sk_diag_fill().
      ipv6: Fix data races around sk->sk_prot.
      tcp: Fix data races around icsk->icsk_af_ops.

Laurent Pinchart (1):
      drm/panel: ilitek-ili9881c: Fix warning with GPIO controllers that sleep

Lin Ma (1):
      wifi: cfg80211: pmsr: use correct nla_get_uX functions

Linus Torvalds (1):
      x86: stop playing stack games in profile_pc()

Lu Baolu (1):
      iommu: Return right value in iommu_sva_bind_device()

Luiz Augusto von Dentz (1):
      Bluetooth: L2CAP: Fix rejecting L2CAP_CONN_PARAM_UPDATE_REQ

Ma Ke (2):
      drm/nouveau/dispnv04: fix null pointer dereference in nv17_tv_get_ld_modes
      drm/nouveau/dispnv04: fix null pointer dereference in nv17_tv_get_hd_modes

Manish Rangankar (1):
      scsi: qedi: Fix crash while reading debugfs attribute

Marc Ferland (1):
      iio: dac: ad5592r: fix temperature channel scaling value

Marek Szyprowski (1):
      drm/exynos: hdmi: report safe 640x480 mode as a fallback when no EDID found

Mario Limonciello (1):
      PCI/PM: Avoid D3cold for HP Pavilion 17 PC/1972 PCIe Ports

Masahiro Yamada (1):
      Revert "kheaders: substituting --sort in archive creation"

Mathias Nyman (1):
      xhci: Set correct transferred length for cancelled bulk transfers

Matthew Wilcox (Oracle) (3):
      nilfs2: Remove check for PageError
      nilfs2: return the mapped address from nilfs_get_page()
      nfs: Leave pages in the pagecache if readpage failed

Matthias Goergens (1):
      hugetlb_encode.h: fix undefined behaviour (34 << 26)

Matthias Maennich (1):
      kheaders: explicitly define file modes for archived headers

Michael Ellerman (1):
      powerpc/io: Avoid clang null pointer arithmetic warnings

Moshe Shemesh (1):
      net/mlx5: Stop waiting for PCI if pci channel is offline

Muhammad Usama Anjum (1):
      selftests/mm: conform test to TAP format output

Nathan Lynch (1):
      powerpc/pseries: Enforce hcall result buffer validity and size

Naveen Naidu (1):
      PCI: Add PCI_ERROR_RESPONSE and related definitions

Nicolas Escande (1):
      wifi: mac80211: mesh: Fix leak of mesh_preq_queue objects

Nikita Shubin (1):
      dmaengine: ioatdma: Fix missing kmem_cache_destroy()

Nikita Zhandarovich (2):
      HID: core: remove unnecessary WARN_ON() in implement()
      usb: atm: cxacru: fix endpoint checking in cxacru_bind()

Niklas Cassel (1):
      ata: libata-core: Fix double free on error

Nuno Sa (1):
      dmaengine: axi-dmac: fix possible race in remove()

Oleg Nesterov (1):
      tick/nohz_full: Don't abuse smp_call_function_single() in tick_setup_device()

Oleksij Rempel (2):
      net: can: j1939: recover socket queue on CAN bus error during BAM transmission
      net: can: j1939: enhanced error handling for tightly received RTS messages in xtp_rx_rts_session_new

Oliver Neukum (2):
      net: usb: rtl8150 fix unintiatilzed variables in rtl8150_get_link_ksettings
      usb: gadget: printer: SS+ support

Ondrej Mosnacek (1):
      cipso: fix total option length computation

Oswald Buddenhagen (1):
      ALSA: emux: improve patch ioctl data validation

Pablo Neira Ayuso (2):
      netfilter: nf_tables: validate family when identifying table via handle
      netfilter: nf_tables: fully validate NFT_DATA_VALUE on store to data registers

Paul E. McKenney (1):
      rcutorture: Fix rcu_torture_one_read() pipe_count overflow comment

Pedro Tammela (1):
      net/sched: act_api: rely on rcu in tcf_idr_check_alloc

Peter Oberparleiter (1):
      gcov: add support for GCC 14

Peter Ujfalusi (4):
      ASoC: ti: davinci-mcasp: Use platform_get_irq_byname_optional
      ASoC: ti: davinci-mcasp: Remove legacy dma_request parsing
      ASoC: ti: davinci-mcasp: Simplify the configuration parameter handling
      ASoC: ti: davinci-mcasp: Handle missing required DT properties

Petr Pavlu (1):
      net/ipv6: Fix the RT cache flush via sysctl using a previous delay

Raju Rangoju (1):
      ACPICA: Revert "ACPICA: avoid Info: mapping multiple BARs. Your kernel is fine."

Remi Pommarel (1):
      wifi: mac80211: Fix deadlock in ieee80211_sta_ps_deliver_wakeup()

Ricardo Ribalda (1):
      media: dvbdev: Initialize sbuf

Rick Wertenbroek (1):
      PCI: rockchip-ep: Remove wrong mask on subsys_vendor_id

Rik van Riel (1):
      fs/proc: fix softlockup in __read_vmcore

Roman Smirnov (1):
      udf: udftime: prevent overflow in udf_disk_stamp_to_time()

Ryusuke Konishi (2):
      nilfs2: fix nilfs_empty_dir() misjudgment and long loop on I/O errors
      nilfs2: fix potential kernel bug due to lack of writeback flag waiting

Sergiu Cuciurean (1):
      iio: dac: ad5592r-base: Replace indio_dev->mlock with own device lock

Shahar S Matityahu (1):
      wifi: iwlwifi: dbg_ini: move iwl_dbg_tlv_free outside of debugfs ifdef

Shichao Lai (1):
      usb-storage: alauda: Check whether the media is initialized

Shigeru Yoshida (1):
      net: can: j1939: Initialize unused data in j1939_send_one()

Sicong Huang (1):
      greybus: Fix use-after-free bug in gb_interface_release due to race condition.

Songyang Li (1):
      MIPS: Octeon: Add PCIe link status check

Steven Rostedt (Google) (1):
      tracing/selftests: Fix kprobe event name test for .isra. functions

Su Yue (2):
      ocfs2: use coarse time for new created files
      ocfs2: fix races between hole punching and AIO+DIO

Sven Eckelmann (1):
      batman-adv: Don't accept TT entries for out-of-spec VIDs

Taehee Yoo (1):
      ionic: fix use after netif_napi_del()

Tomas Winkler (1):
      mei: me: release irq in mei_me_pci_resume error path

Tristram Ha (1):
      net: dsa: microchip: fix initial port flush problem

Uri Arev (1):
      Bluetooth: ath3k: Fix multiple issues reported by checkpatch.pl

Uwe Kleine-König (1):
      pwm: stm32: Refuse too small period requests

Vasileios Amoiridis (4):
      iio: chemical: bme680: Fix pressure value output
      iio: chemical: bme680: Fix calibration data variable
      iio: chemical: bme680: Fix overflows in compensate() functions
      iio: chemical: bme680: Fix sensor data read operation

Vineeth Pillai (1):
      hv_utils: drain the timesync packets on onchannelcallback

Wander Lairson Costa (1):
      drop_monitor: replace spin_lock by raw_spin_lock

Wesley Cheng (1):
      usb: gadget: f_fs: Fix race between aio_cancel() and AIO request complete

Yazen Ghannam (1):
      x86/amd_nb: Check for invalid SMN reads

Yue Haibing (1):
      netns: Make get_net_ns() handle zero refcount net

Zhang Qilong (1):
      ASoC: ti: davinci-mcasp: remove always zero of davinci_mcasp_get_dt_params

.

From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org,
	akpm@linux-foundation.org,
	torvalds@linux-foundation.org,
	stable@vger.kernel.org
Cc: lwn@lwn.net,
	jslaby@suse.cz,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Subject: Linux 5.10.221
Date: Fri,  5 Jul 2024 09:30:28 +0200
Message-ID: <2024070528-easily-guru-a612@gregkh>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1268780
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.stable
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

I'm announcing the release of the 5.10.221 kernel.

All users of the 5.10 kernel series must upgrade.

The updated 5.10.y git tree can be found at:
	git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-5.10.y
and can be browsed at the normal kernel.org git web browser:
	https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary

thanks,

greg k-h

------------

 Documentation/devicetree/bindings/i2c/google,cros-ec-i2c-tunnel.yaml |    2 
 Makefile                                                             |    2 
 arch/arm/boot/dts/exynos4210-smdkv310.dts                            |    2 
 arch/arm/boot/dts/exynos4412-origen.dts                              |    2 
 arch/arm/boot/dts/exynos4412-smdk4412.dts                            |    2 
 arch/arm/boot/dts/rk3066a.dtsi                                       |    1 
 arch/arm64/boot/dts/rockchip/rk3368.dtsi                             |    3 
 arch/arm64/include/asm/kvm_host.h                                    |    1 
 arch/arm64/include/asm/unistd32.h                                    |    2 
 arch/arm64/kvm/arm.c                                                 |    6 
 arch/arm64/kvm/vgic/vgic-v3.c                                        |    2 
 arch/arm64/kvm/vgic/vgic-v4.c                                        |    8 
 arch/csky/include/uapi/asm/unistd.h                                  |    1 
 arch/hexagon/include/asm/syscalls.h                                  |    6 
 arch/hexagon/include/uapi/asm/unistd.h                               |    1 
 arch/hexagon/kernel/syscalltab.c                                     |    7 
 arch/mips/bmips/setup.c                                              |    3 
 arch/mips/kernel/syscalls/syscall_n32.tbl                            |    2 
 arch/mips/kernel/syscalls/syscall_o32.tbl                            |    2 
 arch/mips/pci/ops-rc32434.c                                          |    4 
 arch/mips/pci/pcie-octeon.c                                          |    6 
 arch/parisc/kernel/syscalls/syscall.tbl                              |    4 
 arch/powerpc/include/asm/hvcall.h                                    |    8 
 arch/powerpc/include/asm/io.h                                        |   24 
 arch/powerpc/include/asm/uaccess.h                                   |   15 
 arch/powerpc/kernel/syscalls/syscall.tbl                             |    2 
 arch/s390/kernel/syscalls/syscall.tbl                                |    2 
 arch/sparc/kernel/sys32.S                                            |  221 -------
 arch/sparc/kernel/syscalls/syscall.tbl                               |    8 
 arch/x86/entry/syscalls/syscall_32.tbl                               |    2 
 arch/x86/include/asm/cpu_device_id.h                                 |   98 +++
 arch/x86/include/asm/efi.h                                           |   11 
 arch/x86/kernel/amd_nb.c                                             |    9 
 arch/x86/kernel/cpu/match.c                                          |    4 
 arch/x86/kernel/time.c                                               |   20 
 arch/x86/platform/efi/Makefile                                       |    3 
 arch/x86/platform/efi/efi.c                                          |    8 
 arch/x86/platform/efi/memmap.c                                       |  249 ++++++++
 block/ioctl.c                                                        |    2 
 drivers/acpi/acpica/exregion.c                                       |   23 
 drivers/acpi/device_pm.c                                             |    3 
 drivers/acpi/internal.h                                              |    9 
 drivers/acpi/video_detect.c                                          |    8 
 drivers/acpi/x86/utils.c                                             |   34 +
 drivers/ata/ahci.c                                                   |   17 
 drivers/ata/libata-core.c                                            |    8 
 drivers/base/core.c                                                  |    3 
 drivers/block/null_blk/zoned.c                                       |    2 
 drivers/bluetooth/ath3k.c                                            |   25 
 drivers/counter/ti-eqep.c                                            |    6 
 drivers/dma/dma-axi-dmac.c                                           |    2 
 drivers/dma/ioat/init.c                                              |   75 +-
 drivers/dma/ioat/registers.h                                         |    7 
 drivers/firmware/efi/fdtparams.c                                     |    4 
 drivers/firmware/efi/memmap.c                                        |  239 --------
 drivers/gpio/Kconfig                                                 |    2 
 drivers/gpio/gpio-davinci.c                                          |    5 
 drivers/gpio/gpio-tqmx86.c                                           |   46 -
 drivers/gpio/gpiolib-cdev.c                                          |   16 
 drivers/gpu/drm/amd/display/dc/dcn10/dcn10_stream_encoder.c          |    6 
 drivers/gpu/drm/amd/pm/powerplay/kv_dpm.c                            |    2 
 drivers/gpu/drm/arm/display/komeda/komeda_pipeline_state.c           |    2 
 drivers/gpu/drm/bridge/panel.c                                       |    7 
 drivers/gpu/drm/exynos/exynos_drm_vidi.c                             |    7 
 drivers/gpu/drm/exynos/exynos_hdmi.c                                 |    7 
 drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c                         |    1 
 drivers/gpu/drm/lima/lima_bcast.c                                    |   12 
 drivers/gpu/drm/lima/lima_bcast.h                                    |    3 
 drivers/gpu/drm/lima/lima_gp.c                                       |    8 
 drivers/gpu/drm/lima/lima_pp.c                                       |   18 
 drivers/gpu/drm/lima/lima_sched.c                                    |    7 
 drivers/gpu/drm/lima/lima_sched.h                                    |    1 
 drivers/gpu/drm/nouveau/dispnv04/tvnv17.c                            |    6 
 drivers/gpu/drm/panel/panel-ilitek-ili9881c.c                        |    6 
 drivers/gpu/drm/panel/panel-simple.c                                 |    1 
 drivers/gpu/drm/radeon/radeon.h                                      |    1 
 drivers/gpu/drm/radeon/radeon_display.c                              |    8 
 drivers/gpu/drm/radeon/sumo_dpm.c                                    |    2 
 drivers/gpu/drm/vmwgfx/vmwgfx_drv.c                                  |    7 
 drivers/greybus/interface.c                                          |    1 
 drivers/hid/hid-core.c                                               |    1 
 drivers/hid/hid-ids.h                                                |    1 
 drivers/hid/hid-logitech-dj.c                                        |    4 
 drivers/hid/hid-multitouch.c                                         |    6 
 drivers/hwtracing/intel_th/pci.c                                     |   25 
 drivers/i2c/busses/i2c-at91-slave.c                                  |    3 
 drivers/i2c/busses/i2c-designware-slave.c                            |    2 
 drivers/i2c/busses/i2c-ocores.c                                      |    2 
 drivers/iio/adc/ad7266.c                                             |    2 
 drivers/iio/adc/ad9467.c                                             |    4 
 drivers/iio/chemical/bme680.h                                        |    2 
 drivers/iio/chemical/bme680_core.c                                   |   62 +-
 drivers/iio/dac/ad5592r-base.c                                       |    2 
 drivers/iio/imu/inv_icm42600/inv_icm42600_accel.c                    |    4 
 drivers/iio/imu/inv_icm42600/inv_icm42600_gyro.c                     |    4 
 drivers/infiniband/hw/mlx5/srq.c                                     |   15 
 drivers/input/input.c                                                |  105 +++
 drivers/input/touchscreen/ili210x.c                                  |    4 
 drivers/iommu/amd/amd_iommu_types.h                                  |   24 
 drivers/iommu/amd/init.c                                             |   55 +
 drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c                          |    2 
 drivers/md/bcache/bset.c                                             |   44 -
 drivers/md/bcache/bset.h                                             |   28 
 drivers/md/bcache/btree.c                                            |   40 -
 drivers/md/bcache/super.c                                            |    5 
 drivers/md/bcache/sysfs.c                                            |    2 
 drivers/md/bcache/writeback.c                                        |   10 
 drivers/media/dvb-core/dvbdev.c                                      |    2 
 drivers/misc/mei/pci-me.c                                            |    4 
 drivers/misc/vmw_vmci/vmci_event.c                                   |    6 
 drivers/mmc/host/davinci_mmc.c                                       |    4 
 drivers/mmc/host/sdhci-pci-core.c                                    |   11 
 drivers/mmc/host/sdhci.c                                             |   25 
 drivers/mtd/nand/spi/macronix.c                                      |  112 +++
 drivers/mtd/parsers/redboot.c                                        |    2 
 drivers/net/dsa/microchip/ksz9477.c                                  |    6 
 drivers/net/ethernet/cavium/liquidio/lio_vf_rep.c                    |   11 
 drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c                     |   14 
 drivers/net/ethernet/hisilicon/hns3/hns3_enet.c                      |    4 
 drivers/net/ethernet/hisilicon/hns3/hns3_enet.h                      |    2 
 drivers/net/ethernet/mellanox/mlx5/core/en_main.c                    |    3 
 drivers/net/ethernet/pensando/ionic/ionic_lif.c                      |    4 
 drivers/net/ethernet/qualcomm/qca_debug.c                            |    6 
 drivers/net/ethernet/qualcomm/qca_spi.c                              |   16 
 drivers/net/ethernet/qualcomm/qca_spi.h                              |    3 
 drivers/net/ethernet/realtek/r8169_main.c                            |   48 -
 drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c                      |   55 -
 drivers/net/phy/micrel.c                                             |    1 
 drivers/net/phy/sfp.c                                                |    3 
 drivers/net/usb/ax88179_178a.c                                       |    6 
 drivers/net/usb/rtl8150.c                                            |    3 
 drivers/net/virtio_net.c                                             |   12 
 drivers/net/vxlan/vxlan_core.c                                       |    4 
 drivers/net/wireless/ath/ath.h                                       |    6 
 drivers/net/wireless/ath/ath9k/main.c                                |    3 
 drivers/net/wireless/intel/iwlwifi/iwl-drv.c                         |    2 
 drivers/net/wireless/intel/iwlwifi/mvm/fw.c                          |   10 
 drivers/net/wireless/intel/iwlwifi/mvm/rs.h                          |    9 
 drivers/net/wireless/intel/iwlwifi/mvm/scan.c                        |    4 
 drivers/net/wireless/realtek/rtlwifi/rtl8192de/phy.c                 |   19 
 drivers/net/wireless/realtek/rtlwifi/wifi.h                          |    1 
 drivers/pci/controller/pcie-rockchip-ep.c                            |    6 
 drivers/pci/pci.c                                                    |   12 
 drivers/pinctrl/core.c                                               |    2 
 drivers/pinctrl/pinctrl-rockchip.c                                   |  294 ++--------
 drivers/pinctrl/pinctrl-rockchip.h                                   |  246 ++++++++
 drivers/power/supply/cros_usbpd-charger.c                            |   11 
 drivers/ptp/ptp_chardev.c                                            |    3 
 drivers/pwm/pwm-stm32.c                                              |    3 
 drivers/regulator/core.c                                             |    1 
 drivers/remoteproc/ti_k3_r5_remoteproc.c                             |   25 
 drivers/scsi/mpt3sas/mpt3sas_base.c                                  |   19 
 drivers/scsi/qedi/qedi_debugfs.c                                     |   12 
 drivers/soc/ti/ti_sci_pm_domains.c                                   |   20 
 drivers/soc/ti/wkup_m3_ipc.c                                         |    7 
 drivers/staging/hikey9xx/hisi-spmi-controller.c                      |    1 
 drivers/tty/serial/8250/8250_exar.c                                  |   42 +
 drivers/tty/serial/8250/8250_omap.c                                  |   22 
 drivers/tty/serial/8250/8250_pxa.c                                   |    1 
 drivers/tty/serial/mcf.c                                             |    2 
 drivers/tty/serial/sc16is7xx.c                                       |   25 
 drivers/usb/atm/cxacru.c                                             |   14 
 drivers/usb/class/cdc-wdm.c                                          |    4 
 drivers/usb/gadget/function/f_fs.c                                   |    4 
 drivers/usb/gadget/function/f_printer.c                              |   40 +
 drivers/usb/host/xhci-pci.c                                          |    7 
 drivers/usb/host/xhci-ring.c                                         |    5 
 drivers/usb/misc/uss720.c                                            |   20 
 drivers/usb/musb/da8xx.c                                             |    8 
 drivers/usb/storage/alauda.c                                         |    9 
 fs/btrfs/disk-io.c                                                   |   10 
 fs/cifs/smb2transport.c                                              |   12 
 fs/f2fs/super.c                                                      |    2 
 fs/jfs/xattr.c                                                       |    4 
 fs/nfs/read.c                                                        |    4 
 fs/nfsd/nfs4state.c                                                  |    7 
 fs/nfsd/nfsfh.c                                                      |    4 
 fs/nilfs2/dir.c                                                      |   59 --
 fs/nilfs2/segment.c                                                  |    3 
 fs/ocfs2/aops.c                                                      |    5 
 fs/ocfs2/file.c                                                      |    2 
 fs/ocfs2/journal.c                                                   |   17 
 fs/ocfs2/journal.h                                                   |    2 
 fs/ocfs2/namei.c                                                     |    2 
 fs/ocfs2/ocfs2_trace.h                                               |    2 
 fs/open.c                                                            |    4 
 fs/proc/vmcore.c                                                     |    2 
 fs/udf/udftime.c                                                     |   11 
 include/kvm/arm_vgic.h                                               |    2 
 include/linux/compat.h                                               |    2 
 include/linux/efi.h                                                  |   10 
 include/linux/iommu.h                                                |    2 
 include/linux/kcov.h                                                 |    2 
 include/linux/mod_devicetable.h                                      |    2 
 include/linux/nvme.h                                                 |    4 
 include/linux/pci.h                                                  |    9 
 include/linux/sunrpc/svc.h                                           |   20 
 include/linux/syscalls.h                                             |    2 
 include/net/bluetooth/hci_core.h                                     |   36 +
 include/net/netfilter/nf_tables.h                                    |    5 
 include/net/xdp.h                                                    |    3 
 include/trace/events/qdisc.h                                         |    4 
 include/trace/events/sunrpc.h                                        |    8 
 include/uapi/asm-generic/hugetlb_encode.h                            |   26 
 include/uapi/asm-generic/unistd.h                                    |    2 
 kernel/events/core.c                                                 |   13 
 kernel/gcov/gcc_4_7.c                                                |    4 
 kernel/gen_kheaders.sh                                               |    9 
 kernel/kcov.c                                                        |    1 
 kernel/padata.c                                                      |    8 
 kernel/pid_namespace.c                                               |    1 
 kernel/rcu/rcutorture.c                                              |   12 
 kernel/sys_ni.c                                                      |    2 
 kernel/time/tick-common.c                                            |   42 -
 kernel/trace/Kconfig                                                 |    4 
 kernel/trace/preemptirq_delay_test.c                                 |    1 
 net/batman-adv/originator.c                                          |   29 
 net/bluetooth/l2cap_core.c                                           |    8 
 net/can/j1939/main.c                                                 |    6 
 net/can/j1939/transport.c                                            |   21 
 net/core/drop_monitor.c                                              |   20 
 net/core/filter.c                                                    |    3 
 net/core/net_namespace.c                                             |    9 
 net/core/netpoll.c                                                   |    2 
 net/core/sock.c                                                      |    6 
 net/core/xdp.c                                                       |  100 ++-
 net/ipv4/af_inet.c                                                   |   23 
 net/ipv4/cipso_ipv4.c                                                |   12 
 net/ipv4/tcp.c                                                       |   16 
 net/ipv6/af_inet6.c                                                  |   24 
 net/ipv6/ip6_fib.c                                                   |    6 
 net/ipv6/ipv6_sockglue.c                                             |    9 
 net/ipv6/route.c                                                     |    9 
 net/ipv6/seg6_iptunnel.c                                             |   14 
 net/ipv6/tcp_ipv6.c                                                  |    9 
 net/ipv6/xfrm6_policy.c                                              |    8 
 net/iucv/iucv.c                                                      |   26 
 net/mac80211/he.c                                                    |   10 
 net/mac80211/mesh_pathtbl.c                                          |   13 
 net/mac80211/sta_info.c                                              |    4 
 net/mptcp/pm_netlink.c                                               |   18 
 net/mptcp/protocol.c                                                 |    1 
 net/ncsi/Kconfig                                                     |    6 
 net/ncsi/internal.h                                                  |    7 
 net/ncsi/ncsi-manage.c                                               |  110 ++-
 net/ncsi/ncsi-rsp.c                                                  |    4 
 net/netfilter/ipset/ip_set_core.c                                    |   92 +--
 net/netfilter/ipset/ip_set_list_set.c                                |   30 -
 net/netfilter/nf_tables_api.c                                        |   13 
 net/netfilter/nft_lookup.c                                           |    3 
 net/netrom/nr_timer.c                                                |    3 
 net/packet/af_packet.c                                               |   26 
 net/sched/act_api.c                                                  |   66 +-
 net/sched/act_ct.c                                                   |   21 
 net/sched/sch_multiq.c                                               |    2 
 net/sched/sch_taprio.c                                               |   15 
 net/sunrpc/auth_gss/auth_gss.c                                       |    4 
 net/sunrpc/svc.c                                                     |   18 
 net/tipc/node.c                                                      |    1 
 net/unix/af_unix.c                                                   |   47 -
 net/unix/diag.c                                                      |   12 
 net/wireless/pmsr.c                                                  |    8 
 scripts/Makefile.dtbinst                                             |    2 
 sound/pci/hda/patch_realtek.c                                        |    1 
 sound/soc/fsl/fsl-asoc-card.c                                        |    3 
 sound/soc/intel/boards/sof_sdw.c                                     |    9 
 sound/synth/emux/soundfont.c                                         |   17 
 tools/include/asm-generic/hugetlb_encode.h                           |   20 
 tools/testing/selftests/arm64/tags/tags_test.c                       |    4 
 tools/testing/selftests/bpf/prog_tests/btf_map_in_map.c              |   26 
 tools/testing/selftests/bpf/test_tc_tunnel.sh                        |   13 
 tools/testing/selftests/ftrace/test.d/kprobe/kprobe_eventname.tc     |    3 
 tools/testing/selftests/vm/compaction_test.c                         |  103 +--
 273 files changed, 2832 insertions(+), 1797 deletions(-)

Adam Miotk (1):
      drm/bridge/panel: Fix runtime warning on panel bridge release

Adrian Hunter (2):
      mmc: sdhci: Do not invert write-protect twice
      mmc: sdhci: Do not lock spinlock around mmc_gpio_get_ro()

Alan Stern (1):
      USB: class: cdc-wdm: Fix CPU lockup caused by excessive log messages

Aleksandr Aprelkov (1):
      iommu/arm-smmu-v3: Free MSIs in case of ENOMEM

Aleksandr Mishin (2):
      liquidio: Adjust a NULL pointer handling path in lio_vf_rep_copy_packet
      gpio: davinci: Validate the obtained number of IRQs

Aleksandr Nogikh (1):
      kcov: don't lose track of remote references during softirqs

Alessandro Carminati (Red Hat) (1):
      selftests/bpf: Prevent client connect before server bind in test_tc_tunnel.sh

Alex Bee (1):
      arm64: dts: rockchip: Add sound-dai-cells for RK3368

Alex Deucher (2):
      drm/radeon: fix UBSAN warning in kv_dpm.c
      drm/amdgpu: fix UBSAN warning in kv_dpm.c

Alex Henrie (1):
      usb: misc: uss720: check for incompatible versions of the Belkin F5U002

Alexander Shishkin (5):
      intel_th: pci: Add Granite Rapids support
      intel_th: pci: Add Granite Rapids SOC support
      intel_th: pci: Add Sapphire Rapids SOC support
      intel_th: pci: Add Meteor Lake-S support
      intel_th: pci: Add Lunar Lake support

Amjad Ouled-Ameur (1):
      drm/komeda: check for error-valued pointer

Andrew Davis (1):
      soc: ti: wkup_m3_ipc: Send NULL dummy message instead of pointer message

Anton Protopopov (1):
      bpf: Add a check for struct bpf_fib_lookup size

Ard Biesheuvel (3):
      efi: memmap: Move manipulation routines into x86 arch tree
      efi: xen: Set EFI_PARAVIRT for Xen dom0 boot on all architectures
      efi/x86: Free EFI memory map only when installing a new one.

Arnd Bergmann (8):
      wifi: ath9k: work around memset overflow warning
      sparc: fix old compat_sys_select()
      sparc: fix compat recv/recvfrom syscalls
      parisc: use correct compat recv/recvfrom syscalls
      csky, hexagon: fix broken sys_sync_file_range
      hexagon: fix fadvise64_64 calling conventions
      ftruncate: pass a signed offset
      syscalls: fix compat_sys_io_pgetevents_time64 usage

Beleswar Padhi (2):
      remoteproc: k3-r5: Do not allow core1 to power up before core0 via sysfs
      remoteproc: k3-r5: Jump to error handling labels in start/stop errors

Biju Das (1):
      regulator: core: Fix modpost error "regulator_get_regmap" undefined

Bitterblue Smith (1):
      wifi: rtlwifi: rtl8192de: Fix 5 GHz TX power

Bjorn Helgaas (2):
      dmaengine: ioat: Drop redundant pci_enable_pcie_error_reporting()
      dmaengine: ioat: use PCI core macros for PCIe Capability

Breno Leitao (2):
      scsi: mpt3sas: Avoid test/set_bit() operating in non-allocated memory
      netpoll: Fix race condition in netpoll_owner_active

Chen Hanxiao (1):
      SUNRPC: return proper error from gss_wrap_req_priv

Christian Marangi (1):
      mips: bmips: BCM6358: make sure CBR is correctly set

Chuck Lever (3):
      SUNRPC: Fix a NULL pointer deref in trace_svc_stats_latency()
      SUNRPC: Fix svcxdr_init_decode's end-of-buffer calculation
      SUNRPC: Fix svcxdr_init_encode's buflen calculation

Csókás, Bence (1):
      net: sfp: Always call `sfp_sm_mod_remove()` on remove

Damien Le Moal (1):
      null_blk: Print correct max open zones limit in null_init_zoned_dev()

Dan Carpenter (1):
      usb: musb: da8xx: fix a resource leak in probe()

Daniel Borkmann (1):
      vxlan: Fix regression when dropping packets due to invalid src addresses

Daniil Dulov (1):
      xdp: Remove WARN() from __xdp_reg_mem_model()

David Lechner (2):
      iio: adc: ad9467: fix scan type sign
      counter: ti-eqep: enable clock at probe

David Ruth (1):
      net/sched: act_api: fix possible infinite loop in tcf_idr_check_alloc()

Dawei Li (2):
      net/iucv: Avoid explicit cpumask var allocation on stack
      net/dpaa2: Avoid explicit cpumask var allocation on stack

DelphineCCChiu (1):
      net/ncsi: Fix the multi thread manner of NCSI driver

Denis Arefev (1):
      mtd: partitions: redboot: Added conversion of operands to a larger type

Dev Jain (2):
      selftests/mm: compaction_test: fix incorrect write of zero to nr_hugepages
      selftests/mm: compaction_test: fix bogus test success on Aarch64

Dirk Behme (1):
      drivers: core: synchronize really_probe() and dev_uevent()

Dmitry Torokhov (1):
      Input: try trimming too long modalias strings

Doug Brown (1):
      serial: 8250_pxa: Configure tx_loadsz to match FIFO IRQ level

Dragan Simic (1):
      kbuild: Install dtb files as 0644 in Makefile.dtbinst

Edson Juliano Drosdeck (1):
      ALSA: hda/realtek: Limit mic boost on N14AP7

Elinor Montmasson (1):
      ASoC: fsl-asoc-card: set priv->pdev before using it

Emmanuel Grumbach (1):
      wifi: iwlwifi: mvm: don't read past the mfuart notifcation

Enguerrand de Ribaucourt (1):
      net: phy: micrel: add Microchip KSZ 9477 to the device table

Enzo Matsumiya (1):
      smb: client: fix deadlock in smb2_find_smb_tcon()

Eric Dumazet (10):
      ipv6: sr: block BH in seg6_output_core() and seg6_input_core()
      net/sched: taprio: always validate TCA_TAPRIO_ATTR_PRIOMAP
      ipv6: fix possible race in __fib6_drop_pcpu_from()
      tcp: fix race in tcp_v6_syn_recv_sock()
      batman-adv: bypass empty buckets in batadv_purge_orig_ref()
      af_packet: avoid a false positive warning in packet_setsockopt()
      ipv6: prevent possible NULL deref in fib6_nh_init()
      ipv6: prevent possible NULL dereference in rt6_probe()
      xfrm6: check ip6_dst_idev() return value in xfrm6_get_saddr()
      ipv6: annotate some data-races around sk->sk_prot

Erick Archer (1):
      drm/radeon/radeon_display: Decrease the size of allocated memory

Erico Nunes (2):
      drm/lima: add mask irq callback to gp and pp
      drm/lima: mask irqs in timeout path before hard reset

Fernando Yang (1):
      iio: adc: ad7266: Fix variable checking bug

Filipe Manana (1):
      btrfs: fix leak of qgroup extent records after transaction abort

Gal Pressman (1):
      net/mlx5e: Fix features validation check for tunneled UDP (non-VXLAN) packets

Gavrilov Ilia (1):
      netrom: Fix a memory leak in nr_heartbeat_expiry()

George Shen (1):
      drm/amd/display: Handle Y carry-over in VCP X.Y calculation

Greg Kroah-Hartman (2):
      jfs: xattr: fix buffer overflow for invalid xattr
      Linux 5.10.221

Gregor Herburger (1):
      gpio: tqmx86: fix typo in Kconfig label

Grygorii Tertychnyi (1):
      i2c: ocores: set IACK bit after core is enabled

Hagar Gamal Halim Hemdan (1):
      vmci: prevent speculation leaks by sanitizing event in event_deliver()

Hagar Hemdan (1):
      pinctrl: fix deadlock in create_pinctrl() when handling -EPROBE_DEFER

Haifeng Xu (1):
      perf/core: Fix missing wakeup when waiting for context reference

Hangyu Hua (1):
      net: sched: sch_multiq: fix possible OOB write in multiq_tune()

Hannes Reinecke (1):
      nvme: fixup comment for nvme RDMA Provider Type

Heiner Kallweit (5):
      r8169: remove unneeded memory barrier in rtl_tx
      r8169: improve rtl_tx
      r8169: improve rtl8169_start_xmit
      r8169: remove nr_frags argument from rtl_tx_slots_avail
      r8169: remove not needed check in rtl8169_start_xmit

Heng Qi (1):
      virtio_net: checksum offloading handling fix

Herbert Xu (1):
      padata: Disable BH when taking works lock on MT path

Huang-Huang Bao (4):
      pinctrl: rockchip: fix pinmux bits for RK3328 GPIO2-B pins
      pinctrl: rockchip: fix pinmux bits for RK3328 GPIO3-B pins
      pinctrl: rockchip: use dedicated pinctrl type for RK3328
      pinctrl: rockchip: fix pinmux reset in rockchip_pmx_set

Hugo Villeneuve (2):
      serial: sc16is7xx: replace hardcoded divisor value with BIT() macro
      serial: sc16is7xx: fix bug in sc16is7xx_set_baud() when using prescaler

Ian Forbes (1):
      drm/vmwgfx: 3D disabled should not effect STDU memory limits

Ilpo Järvinen (2):
      MIPS: Routerboard 532: Fix vendor retry check code
      mmc: sdhci-pci: Convert PCIBIOS_* return codes to errnos

Ivan Mikhaylov (1):
      net/ncsi: add NCSI Intel OEM command to keep PHY up

Jaime Liao (1):
      mtd: spinand: macronix: Add support for serial NAND flash

Jakub Kicinski (1):
      xdp: Move the rxq_info.mem clearing to unreg_mem_model()

Jan Kara (1):
      ocfs2: fix DIO failure due to insufficient transaction credits

Jani Nikula (1):
      drm/exynos/vidi: fix memory leak in .get_modes()

Janusz Krzysztofik (1):
      drm/i915/gt: Fix potential UAF by revoke of fence registers

Jason Xing (1):
      tcp: count CLOSE-WAIT sockets for TCP_MIB_CURRESTAB

Jean Delvare (2):
      i2c: at91: Fix the functionality flags of the slave-only interface
      i2c: designware: Fix the functionality flags of the slave-only interface

Jean-Baptiste Maneyrol (1):
      iio: imu: inv_icm42600: delete unneeded update watermark call

Jean-Michel Hautbois (1):
      tty: mcf: MCF54418 has 10 UARTS

Jeff Johnson (1):
      tracing: Add MODULE_DESCRIPTION() to preemptirq_delay_test

Jeff Layton (1):
      nfsd: hold a lighter-weight client reference over CB_RECALL_ANY

Jianqun Xu (1):
      pinctrl/rockchip: separate struct rockchip_pin_bank to a head file

Jie Wang (1):
      net: hns3: add cond_resched() to hns3 ring buffer init process

Johan Jonker (1):
      ARM: dts: rockchip: rk3066a: add #sound-dai-cells to hdmi node

Johannes Berg (1):
      wifi: iwlwifi: mvm: revert gen2 TX A-MPDU size to 64

John Keeping (1):
      Input: ili210x - fix ili251x_read_touch_data() return value

Jose Ignacio Tornos Martinez (1):
      net: usb: ax88179_178a: improve link status logs

José Expósito (1):
      HID: logitech-dj: Fix memory leak in logi_dj_recv_switch_to_dj_mode()

Jozsef Kadlecsik (2):
      netfilter: ipset: Fix race between namespace cleanup and gc in the list:set type
      netfilter: ipset: Fix suspicious rcu_dereference_protected()

Justin Stitt (1):
      block/ioctl: prefer different overflow check

Karol Kolacinski (1):
      ptp: Fix error message on failed pin verification

Kees Cook (1):
      rtlwifi: rtl8192de: Style clean-ups

Ken Milmore (1):
      r8169: Fix possible ring buffer corruption on fragmented Tx packets.

Kent Gibson (1):
      gpiolib: cdev: Disallow reconfiguration without direction (uAPI v1)

Krzysztof Kozlowski (4):
      dt-bindings: i2c: google,cros-ec-i2c-tunnel: correct path to i2c-controller schema
      ARM: dts: samsung: smdkv310: fix keypad no-autorepeat
      ARM: dts: samsung: exynos4412-origen: fix keypad no-autorepeat
      ARM: dts: samsung: smdk4412: fix keypad no-autorepeat

Kuangyi Chiang (2):
      xhci: Apply reset resume quirk to Etron EJ188 xHCI host
      xhci: Apply broken streams quirk to Etron EJ188 xHCI host

Kun(llfl) (1):
      iommu/amd: Fix sysfs leak in iommu init

Kuniyuki Iwashima (10):
      af_unix: Annotate data-race of sk->sk_state in unix_inq_len().
      af_unix: Annotate data-races around sk->sk_state in unix_write_space() and poll().
      af_unix: Annotate data-races around sk->sk_state in sendmsg() and recvmsg().
      af_unix: Annotate data-races around sk->sk_state in UNIX_DIAG.
      af_unix: Annotate data-race of net->unx.sysctl_max_dgram_qlen.
      af_unix: Use unix_recvq_full_lockless() in unix_stream_connect().
      af_unix: Use skb_queue_len_lockless() in sk_diag_show_rqlen().
      af_unix: Annotate data-race of sk->sk_shutdown in sk_diag_fill().
      ipv6: Fix data races around sk->sk_prot.
      tcp: Fix data races around icsk->icsk_af_ops.

Kunwu Chan (1):
      kselftest: arm64: Add a null pointer check

Laurent Pinchart (1):
      drm/panel: ilitek-ili9881c: Fix warning with GPIO controllers that sleep

Lin Ma (1):
      wifi: cfg80211: pmsr: use correct nla_get_uX functions

Lingbo Kong (1):
      wifi: mac80211: correctly parse Spatial Reuse Parameter Set element

Linus Torvalds (1):
      x86: stop playing stack games in profile_pc()

Liu Ying (1):
      drm/panel: simple: Add missing display timing flags for KOE TX26D202VM0BWA

Liu Zixian (1):
      efi: Correct comment on efi_memmap_alloc

Lu Baolu (1):
      iommu: Return right value in iommu_sva_bind_device()

Luiz Augusto von Dentz (1):
      Bluetooth: L2CAP: Fix rejecting L2CAP_CONN_PARAM_UPDATE_REQ

Ma Ke (2):
      drm/nouveau/dispnv04: fix null pointer dereference in nv17_tv_get_ld_modes
      drm/nouveau/dispnv04: fix null pointer dereference in nv17_tv_get_hd_modes

Manish Rangankar (1):
      scsi: qedi: Fix crash while reading debugfs attribute

Marc Ferland (1):
      iio: dac: ad5592r: fix temperature channel scaling value

Marc Zyngier (1):
      KVM: arm64: vgic-v4: Make the doorbell request robust w.r.t preemption

Marek Szyprowski (1):
      drm/exynos: hdmi: report safe 640x480 mode as a fallback when no EDID found

Mario Limonciello (7):
      PCI/PM: Avoid D3cold for HP Pavilion 17 PC/1972 PCIe Ports
      ACPI: Add quirks for AMD Renoir/Lucienne CPUs to force the D3 hint
      ACPI: x86: Add a quirk for Dell Inspiron 14 2-in-1 for StorageD3Enable
      ACPI: x86: Add another system to quirk list for forcing StorageD3Enable
      ACPI: x86: utils: Add Cezanne to the list for forcing StorageD3Enable
      ACPI: x86: utils: Add Picasso to the list for forcing StorageD3Enable
      ACPI: x86: Force StorageD3Enable on more products

Martin Leung (1):
      drm/amd/display: revert Exit idle optimizations before HDCP execution

Masahiro Yamada (1):
      Revert "kheaders: substituting --sort in archive creation"

Masami Hiramatsu (Google) (1):
      tracing: Build event generation tests only as modules

Mathias Nyman (1):
      xhci: Set correct transferred length for cancelled bulk transfers

Matthew Mirvish (1):
      bcache: fix variable length array abuse in btree_iter

Matthew Wilcox (Oracle) (3):
      nilfs2: Remove check for PageError
      nilfs2: return the mapped address from nilfs_get_page()
      nfs: Leave pages in the pagecache if readpage failed

Matthias Goergens (1):
      hugetlb_encode.h: fix undefined behaviour (34 << 26)

Matthias Maennich (1):
      kheaders: explicitly define file modes for archived headers

Matthias Schiffer (1):
      gpio: tqmx86: store IRQ trigger type and unmask status separately

Michael Ellerman (2):
      powerpc/uaccess: Fix build errors seen with GCC 13/14
      powerpc/io: Avoid clang null pointer arithmetic warnings

Miri Korenblit (1):
      wifi: iwlwifi: mvm: check n_ssids before accessing the ssids

Muhammad Usama Anjum (1):
      selftests/mm: conform test to TAP format output

Nathan Lynch (1):
      powerpc/pseries: Enforce hcall result buffer validity and size

Naveen Naidu (1):
      PCI: Add PCI_ERROR_RESPONSE and related definitions

Nicholas Kazlauskas (1):
      drm/amd/display: Exit idle optimizations before HDCP execution

Nicolas Escande (1):
      wifi: mac80211: mesh: Fix leak of mesh_preq_queue objects

Nikita Shubin (4):
      dmaengine: ioatdma: Fix leaking on version mismatch
      dmaengine: ioatdma: Fix error path in ioat3_dma_probe()
      dmaengine: ioatdma: Fix kmemleak in ioat_pci_probe()
      dmaengine: ioatdma: Fix missing kmem_cache_destroy()

Nikita Zhandarovich (2):
      HID: core: remove unnecessary WARN_ON() in implement()
      usb: atm: cxacru: fix endpoint checking in cxacru_bind()

Niklas Cassel (2):
      ata: ahci: Clean up sysfs file on error
      ata: libata-core: Fix double free on error

Nuno Sa (1):
      dmaengine: axi-dmac: fix possible race in remove()

Oleg Nesterov (2):
      tick/nohz_full: Don't abuse smp_call_function_single() in tick_setup_device()
      zap_pid_ns_processes: clear TIF_NOTIFY_SIGNAL along with TIF_SIGPENDING

Oleksij Rempel (2):
      net: can: j1939: recover socket queue on CAN bus error during BAM transmission
      net: can: j1939: enhanced error handling for tightly received RTS messages in xtp_rx_rts_session_new

Oliver Neukum (3):
      net: usb: rtl8150 fix unintiatilzed variables in rtl8150_get_link_ksettings
      usb: gadget: printer: SS+ support
      usb: gadget: printer: fix races against disable

Ondrej Mosnacek (1):
      cipso: fix total option length computation

Oswald Buddenhagen (1):
      ALSA: emux: improve patch ioctl data validation

Pablo Neira Ayuso (2):
      netfilter: nf_tables: validate family when identifying table via handle
      netfilter: nf_tables: fully validate NFT_DATA_VALUE on store to data registers

Paolo Abeni (1):
      mptcp: ensure snd_una is properly initialized on connect

Parker Newman (1):
      serial: exar: adding missing CTI and Exar PCI ids

Patrisious Haddad (1):
      RDMA/mlx5: Add check for srq max_sge attribute

Paul E. McKenney (1):
      rcutorture: Fix rcu_torture_one_read() pipe_count overflow comment

Pedro Tammela (1):
      net/sched: act_api: rely on rcu in tcf_idr_check_alloc

Peter Delevoryas (1):
      net/ncsi: Simplify Kconfig/dts control flow

Peter Oberparleiter (1):
      gcov: add support for GCC 14

Petr Pavlu (1):
      net/ipv6: Fix the RT cache flush via sysctl using a previous delay

Pierre-Louis Bossart (1):
      ASoC: Intel: sof_sdw: add JD2 quirk for HP Omen 14

Qing Wang (1):
      dmaengine: ioat: switch from 'pci_' to 'dma_' API

Raju Rangoju (1):
      ACPICA: Revert "ACPICA: avoid Info: mapping multiple BARs. Your kernel is fine."

Remi Pommarel (1):
      wifi: mac80211: Fix deadlock in ieee80211_sta_ps_deliver_wakeup()

Ricardo Ribalda (1):
      media: dvbdev: Initialize sbuf

Rick Wertenbroek (1):
      PCI: rockchip-ep: Remove wrong mask on subsys_vendor_id

Rik van Riel (1):
      fs/proc: fix softlockup in __read_vmcore

Roman Smirnov (1):
      udf: udftime: prevent overflow in udf_disk_stamp_to_time()

Ryusuke Konishi (2):
      nilfs2: fix nilfs_empty_dir() misjudgment and long loop on I/O errors
      nilfs2: fix potential kernel bug due to lack of writeback flag waiting

Sean O'Brien (1):
      HID: Add quirk for Logitech Casa touchpad

Sebastian Andrzej Siewior (1):
      xdp: xdp_mem_allocator can be NULL in trace_mem_connect().

Shahar S Matityahu (1):
      wifi: iwlwifi: dbg_ini: move iwl_dbg_tlv_free outside of debugfs ifdef

Shichao Lai (1):
      usb-storage: alauda: Check whether the media is initialized

Shigeru Yoshida (1):
      net: can: j1939: Initialize unused data in j1939_send_one()

Shyam Prasad N (1):
      cifs: missed ref-counting smb session in find

Sicong Huang (1):
      greybus: Fix use-after-free bug in gb_interface_release due to race condition.

Songyang Li (1):
      MIPS: Octeon: Add PCIe link status check

Stefan Wahren (1):
      qca_spi: Make interrupt remembering atomic

Steven Rostedt (Google) (1):
      tracing/selftests: Fix kprobe event name test for .isra. functions

Su Yue (2):
      ocfs2: use coarse time for new created files
      ocfs2: fix races between hole punching and AIO+DIO

Sven Eckelmann (1):
      batman-adv: Don't accept TT entries for out-of-spec VIDs

Taehee Yoo (1):
      ionic: fix use after netif_napi_del()

Takashi Iwai (1):
      ACPI: video: Add backlight=native quirk for Lenovo Slim 7 16ARH7

Toke Høiland-Jørgensen (1):
      xdp: Allow registering memory model without rxq reference

Tomas Winkler (1):
      mei: me: release irq in mei_me_pci_resume error path

Tomi Valkeinen (1):
      pmdomain: ti-sci: Fix duplicate PD referrals

Tony Luck (2):
      x86/cpu/vfm: Add new macros to work with (vendor/family/model) values
      x86/cpu: Fix x86_match_cpu() to match just X86_VENDOR_INTEL

Tristram Ha (1):
      net: dsa: microchip: fix initial port flush problem

Trond Myklebust (1):
      knfsd: LOOKUP can return an illegal error value

Tzung-Bi Shih (1):
      power: supply: cros_usbpd: provide ID table for avoiding fallback match

Udit Kumar (2):
      serial: 8250_omap: Implementation of Errata i2310
      serial: 8250_omap: Fix Errata i2310 with RX FIFO level check

Uri Arev (1):
      Bluetooth: ath3k: Fix multiple issues reported by checkpatch.pl

Uwe Kleine-König (2):
      mmc: davinci: Don't strip remove function when driver is builtin
      pwm: stm32: Refuse too small period requests

Vamshi Gajjela (1):
      spmi: hisi-spmi-controller: Do not override device identifier

Vasant Hegde (1):
      iommu/amd: Introduce pci segment structure

Vasileios Amoiridis (4):
      iio: chemical: bme680: Fix pressure value output
      iio: chemical: bme680: Fix calibration data variable
      iio: chemical: bme680: Fix overflows in compensate() functions
      iio: chemical: bme680: Fix sensor data read operation

Vlad Buslov (1):
      net/sched: act_ct: set 'net' pointer when creating new nf_flow_table

Wander Lairson Costa (1):
      drop_monitor: replace spin_lock by raw_spin_lock

Wesley Cheng (1):
      usb: gadget: f_fs: Fix race between aio_cancel() and AIO request complete

Xiaolei Wang (2):
      net: stmmac: replace priv->speed with the portTransmitRate from the tc-cbs parameters
      net: stmmac: No need to calculate speed divider when offload is disabled

Xin Long (2):
      tipc: force a dst refcount before doing decryption
      sched: act_ct: add netns into the key of tcf_ct_flow_table

Yazen Ghannam (1):
      x86/amd_nb: Check for invalid SMN reads

Yonghong Song (1):
      selftests/bpf: Fix flaky test btf_map_in_map/lookup_update

YonglongLi (2):
      mptcp: pm: inc RmAddr MIB counter once per RM_ADDR ID
      mptcp: pm: update add_addr counters after connect

Yue Haibing (1):
      netns: Make get_net_ns() handle zero refcount net

Yunjian Wang (1):
      SUNRPC: Fix null pointer dereference in svc_rqst_free()

Yunlei He (1):
      f2fs: remove clear SB_INLINECRYPT flag in default_options

Yunseong Kim (1):
      tracing/net_sched: NULL pointer dereference in perf_trace_qdisc_reset()

Zheng Zhi Yuan (1):
      drivers: fix typo in firmware/efi/memmap.c

Zqiang (1):
      rcutorture: Fix invalid context warning when enable srcu barrier testing

.

From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org,
	akpm@linux-foundation.org,
	torvalds@linux-foundation.org,
	stable@vger.kernel.org
Cc: lwn@lwn.net,
	jslaby@suse.cz,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Subject: Linux 5.15.162
Date: Fri,  5 Jul 2024 09:30:36 +0200
Message-ID: <2024070536-regulator-thriving-2390@gregkh>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1268781
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.stable
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

I'm announcing the release of the 5.15.162 kernel.

All users of the 5.15 kernel series must upgrade.

The updated 5.15.y git tree can be found at:
	git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-5.15.y
and can be browsed at the normal kernel.org git web browser:
	https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary

thanks,

greg k-h

------------

 Documentation/devicetree/bindings/i2c/google,cros-ec-i2c-tunnel.yaml |    2 
 Makefile                                                             |    7 
 arch/arm/boot/dts/exynos4210-smdkv310.dts                            |    2 
 arch/arm/boot/dts/exynos4412-origen.dts                              |    2 
 arch/arm/boot/dts/exynos4412-smdk4412.dts                            |    2 
 arch/arm/boot/dts/rk3066a.dtsi                                       |    1 
 arch/arm64/boot/dts/freescale/imx8qm-mek.dts                         |    2 
 arch/arm64/boot/dts/rockchip/rk3328-rock-pi-e.dts                    |    4 
 arch/arm64/boot/dts/rockchip/rk3368.dtsi                             |    3 
 arch/arm64/include/asm/kvm_host.h                                    |    1 
 arch/arm64/include/asm/unistd32.h                                    |    2 
 arch/arm64/kvm/arm.c                                                 |    6 
 arch/arm64/kvm/vgic/vgic-v3.c                                        |    2 
 arch/arm64/kvm/vgic/vgic-v4.c                                        |    8 
 arch/csky/include/uapi/asm/unistd.h                                  |    1 
 arch/hexagon/include/asm/syscalls.h                                  |    6 
 arch/hexagon/include/uapi/asm/unistd.h                               |    1 
 arch/hexagon/kernel/syscalltab.c                                     |    7 
 arch/mips/bmips/setup.c                                              |    3 
 arch/mips/kernel/syscalls/syscall_n32.tbl                            |    2 
 arch/mips/kernel/syscalls/syscall_o32.tbl                            |    2 
 arch/mips/pci/ops-rc32434.c                                          |    4 
 arch/mips/pci/pcie-octeon.c                                          |    6 
 arch/parisc/Kconfig                                                  |    1 
 arch/parisc/kernel/sys_parisc32.c                                    |    9 
 arch/parisc/kernel/syscalls/syscall.tbl                              |    6 
 arch/powerpc/include/asm/fadump-internal.h                           |    5 
 arch/powerpc/include/asm/hvcall.h                                    |    8 
 arch/powerpc/include/asm/io.h                                        |   24 
 arch/powerpc/include/asm/uaccess.h                                   |   15 
 arch/powerpc/kernel/fadump.c                                         |    2 
 arch/powerpc/kernel/syscalls/syscall.tbl                             |    2 
 arch/riscv/mm/init.c                                                 |   58 --
 arch/s390/kernel/syscalls/syscall.tbl                                |    2 
 arch/sh/kernel/sys_sh32.c                                            |   11 
 arch/sh/kernel/syscalls/syscall.tbl                                  |    3 
 arch/sparc/kernel/sys32.S                                            |  221 --------
 arch/sparc/kernel/syscalls/syscall.tbl                               |    8 
 arch/x86/entry/syscalls/syscall_32.tbl                               |    2 
 arch/x86/include/asm/cpu_device_id.h                                 |   98 +++
 arch/x86/include/asm/efi.h                                           |   11 
 arch/x86/kernel/amd_nb.c                                             |    9 
 arch/x86/kernel/cpu/match.c                                          |    4 
 arch/x86/kernel/fpu/core.c                                           |    4 
 arch/x86/kernel/kprobes/core.c                                       |   11 
 arch/x86/kernel/time.c                                               |   20 
 arch/x86/kvm/x86.c                                                   |    9 
 arch/x86/platform/efi/Makefile                                       |    3 
 arch/x86/platform/efi/efi.c                                          |    8 
 arch/x86/platform/efi/memmap.c                                       |  249 +++++++++
 block/ioctl.c                                                        |    2 
 crypto/ecdh.c                                                        |    2 
 drivers/acpi/acpica/exregion.c                                       |   23 
 drivers/acpi/video_detect.c                                          |    8 
 drivers/acpi/x86/utils.c                                             |   23 
 drivers/ata/ahci.c                                                   |   17 
 drivers/ata/libata-core.c                                            |    8 
 drivers/base/core.c                                                  |    3 
 drivers/block/null_blk/zoned.c                                       |    2 
 drivers/bluetooth/ath3k.c                                            |   25 
 drivers/bluetooth/btqca.c                                            |  186 +++++-
 drivers/bluetooth/btqca.h                                            |   36 -
 drivers/bluetooth/hci_qca.c                                          |  266 +++++++---
 drivers/clk/sifive/sifive-prci.c                                     |    8 
 drivers/crypto/hisilicon/sec2/sec_crypto.c                           |    4 
 drivers/dma/dma-axi-dmac.c                                           |    2 
 drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c                       |    6 
 drivers/dma/dw-axi-dmac/dw-axi-dmac.h                                |    1 
 drivers/dma/idxd/irq.c                                               |    4 
 drivers/dma/ioat/init.c                                              |   75 +-
 drivers/dma/ioat/registers.h                                         |    7 
 drivers/firmware/efi/fdtparams.c                                     |    4 
 drivers/firmware/efi/memmap.c                                        |  239 --------
 drivers/gpio/Kconfig                                                 |    2 
 drivers/gpio/gpio-davinci.c                                          |    5 
 drivers/gpio/gpio-tqmx86.c                                           |   46 -
 drivers/gpio/gpiolib-cdev.c                                          |   16 
 drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.c                             |   18 
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c            |  144 ++---
 drivers/gpu/drm/amd/display/dc/dcn10/dcn10_stream_encoder.c          |    6 
 drivers/gpu/drm/amd/pm/powerplay/kv_dpm.c                            |    2 
 drivers/gpu/drm/arm/display/komeda/komeda_pipeline_state.c           |    2 
 drivers/gpu/drm/bridge/panel.c                                       |    7 
 drivers/gpu/drm/exynos/exynos_drm_vidi.c                             |    7 
 drivers/gpu/drm/exynos/exynos_hdmi.c                                 |    7 
 drivers/gpu/drm/i915/display/intel_dp.c                              |    4 
 drivers/gpu/drm/i915/gt/intel_breadcrumbs.c                          |   16 
 drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c                         |    1 
 drivers/gpu/drm/lima/lima_bcast.c                                    |   12 
 drivers/gpu/drm/lima/lima_bcast.h                                    |    3 
 drivers/gpu/drm/lima/lima_gp.c                                       |    8 
 drivers/gpu/drm/lima/lima_pp.c                                       |   18 
 drivers/gpu/drm/lima/lima_sched.c                                    |    7 
 drivers/gpu/drm/lima/lima_sched.h                                    |    1 
 drivers/gpu/drm/nouveau/dispnv04/tvnv17.c                            |    6 
 drivers/gpu/drm/panel/panel-ilitek-ili9881c.c                        |    6 
 drivers/gpu/drm/panel/panel-simple.c                                 |    1 
 drivers/gpu/drm/radeon/radeon.h                                      |    1 
 drivers/gpu/drm/radeon/radeon_display.c                              |    8 
 drivers/gpu/drm/radeon/sumo_dpm.c                                    |    2 
 drivers/gpu/drm/vmwgfx/vmwgfx_drv.c                                  |    7 
 drivers/greybus/interface.c                                          |    1 
 drivers/hid/hid-core.c                                               |    1 
 drivers/hid/hid-ids.h                                                |    1 
 drivers/hid/hid-logitech-dj.c                                        |    4 
 drivers/hid/hid-multitouch.c                                         |    6 
 drivers/hwtracing/intel_th/pci.c                                     |   25 
 drivers/i2c/busses/i2c-at91-slave.c                                  |    3 
 drivers/i2c/busses/i2c-designware-slave.c                            |    2 
 drivers/i2c/busses/i2c-ocores.c                                      |    2 
 drivers/i2c/i2c-core-acpi.c                                          |   30 -
 drivers/i2c/i2c-core-base.c                                          |   98 +++
 drivers/i2c/i2c-core-of.c                                            |   66 --
 drivers/i2c/i2c-slave-testunit.c                                     |    5 
 drivers/iio/accel/Kconfig                                            |    2 
 drivers/iio/accel/mxc4005.c                                          |   68 ++
 drivers/iio/adc/ad7266.c                                             |    2 
 drivers/iio/adc/ad9467.c                                             |    4 
 drivers/iio/chemical/bme680.h                                        |    2 
 drivers/iio/chemical/bme680_core.c                                   |   62 ++
 drivers/iio/dac/ad5592r-base.c                                       |    2 
 drivers/iio/imu/inv_icm42600/inv_icm42600_accel.c                    |    4 
 drivers/iio/imu/inv_icm42600/inv_icm42600_gyro.c                     |    4 
 drivers/infiniband/core/restrack.c                                   |   51 -
 drivers/infiniband/hw/mlx5/srq.c                                     |   13 
 drivers/input/input.c                                                |  105 +++
 drivers/input/touchscreen/ili210x.c                                  |    4 
 drivers/iommu/amd/amd_iommu_types.h                                  |   24 
 drivers/iommu/amd/init.c                                             |   55 ++
 drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c                          |    2 
 drivers/md/bcache/bset.c                                             |   44 -
 drivers/md/bcache/bset.h                                             |   28 -
 drivers/md/bcache/btree.c                                            |   40 -
 drivers/md/bcache/super.c                                            |    5 
 drivers/md/bcache/sysfs.c                                            |    2 
 drivers/md/bcache/writeback.c                                        |   10 
 drivers/media/dvb-core/dvbdev.c                                      |    2 
 drivers/misc/mei/pci-me.c                                            |    4 
 drivers/misc/pvpanic/pvpanic-mmio.c                                  |   59 --
 drivers/misc/pvpanic/pvpanic-pci.c                                   |   80 ---
 drivers/misc/pvpanic/pvpanic.c                                       |   90 ++-
 drivers/misc/pvpanic/pvpanic.h                                       |   10 
 drivers/misc/vmw_vmci/vmci_event.c                                   |    6 
 drivers/mmc/host/davinci_mmc.c                                       |    6 
 drivers/mmc/host/sdhci-pci-core.c                                    |   11 
 drivers/mmc/host/sdhci.c                                             |   25 
 drivers/mtd/parsers/redboot.c                                        |    2 
 drivers/net/dsa/microchip/ksz9477.c                                  |    7 
 drivers/net/ethernet/broadcom/bnxt/bnxt.c                            |    5 
 drivers/net/ethernet/cavium/liquidio/lio_vf_rep.c                    |   11 
 drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c                     |   14 
 drivers/net/ethernet/google/gve/gve.h                                |   13 
 drivers/net/ethernet/google/gve/gve_rx_dqo.c                         |   76 +-
 drivers/net/ethernet/hisilicon/hns3/hns3_enet.c                      |    4 
 drivers/net/ethernet/hisilicon/hns3/hns3_enet.h                      |    2 
 drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c              |   21 
 drivers/net/ethernet/ibm/ibmvnic.c                                   |    6 
 drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c                  |   33 -
 drivers/net/ethernet/marvell/octeontx2/nic/otx2_txrx.c               |    5 
 drivers/net/ethernet/mellanox/mlx5/core/en_main.c                    |    3 
 drivers/net/ethernet/pensando/ionic/ionic_lif.c                      |    4 
 drivers/net/ethernet/qualcomm/qca_debug.c                            |    6 
 drivers/net/ethernet/qualcomm/qca_spi.c                              |   16 
 drivers/net/ethernet/qualcomm/qca_spi.h                              |    3 
 drivers/net/ethernet/stmicro/stmmac/stmmac_hwtstamp.c                |    6 
 drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c                      |   55 +-
 drivers/net/phy/micrel.c                                             |    1 
 drivers/net/phy/sfp.c                                                |    3 
 drivers/net/usb/ax88179_178a.c                                       |    6 
 drivers/net/usb/rtl8150.c                                            |    3 
 drivers/net/virtio_net.c                                             |   12 
 drivers/net/vxlan/vxlan_core.c                                       |    4 
 drivers/net/wireless/ath/ath.h                                       |    6 
 drivers/net/wireless/ath/ath10k/Kconfig                              |    1 
 drivers/net/wireless/ath/ath9k/main.c                                |    3 
 drivers/net/wireless/intel/iwlwifi/iwl-drv.c                         |    2 
 drivers/net/wireless/intel/iwlwifi/mvm/fw.c                          |   10 
 drivers/net/wireless/intel/iwlwifi/mvm/rs.h                          |    9 
 drivers/net/wireless/intel/iwlwifi/mvm/scan.c                        |    4 
 drivers/net/wireless/realtek/rtlwifi/rtl8192de/phy.c                 |   19 
 drivers/net/wireless/realtek/rtlwifi/wifi.h                          |    1 
 drivers/of/of_reserved_mem.c                                         |    9 
 drivers/pci/controller/pcie-rockchip-ep.c                            |    6 
 drivers/pci/pci.c                                                    |   12 
 drivers/pinctrl/core.c                                               |    2 
 drivers/pinctrl/pinctrl-rockchip.c                                   |   68 ++
 drivers/pinctrl/pinctrl-rockchip.h                                   |    1 
 drivers/platform/x86/dell/dell-smbios-base.c                         |   91 +--
 drivers/power/supply/cros_usbpd-charger.c                            |   11 
 drivers/ptp/ptp_chardev.c                                            |    3 
 drivers/ptp/ptp_sysfs.c                                              |    3 
 drivers/pwm/pwm-stm32.c                                              |    3 
 drivers/regulator/bd71815-regulator.c                                |    2 
 drivers/regulator/core.c                                             |    1 
 drivers/scsi/mpi3mr/mpi3mr.h                                         |    1 
 drivers/scsi/mpi3mr/mpi3mr_os.c                                      |   67 ++
 drivers/scsi/mpt3sas/mpt3sas_base.c                                  |   19 
 drivers/scsi/mpt3sas/mpt3sas_base.h                                  |    3 
 drivers/scsi/mpt3sas/mpt3sas_ctl.c                                   |    4 
 drivers/scsi/mpt3sas/mpt3sas_scsih.c                                 |   25 
 drivers/scsi/qedi/qedi_debugfs.c                                     |   12 
 drivers/scsi/scsi_transport_sas.c                                    |   29 +
 drivers/soc/ti/ti_sci_pm_domains.c                                   |   20 
 drivers/soc/ti/wkup_m3_ipc.c                                         |    7 
 drivers/spmi/hisi-spmi-controller.c                                  |    1 
 drivers/tty/serial/8250/8250_exar.c                                  |   42 +
 drivers/tty/serial/8250/8250_omap.c                                  |   22 
 drivers/tty/serial/8250/8250_pxa.c                                   |    1 
 drivers/tty/serial/imx.c                                             |    7 
 drivers/tty/serial/mcf.c                                             |    2 
 drivers/tty/serial/sc16is7xx.c                                       |   25 
 drivers/tty/serial/stm32-usart.c                                     |  206 +++++--
 drivers/tty/serial/stm32-usart.h                                     |   12 
 drivers/usb/atm/cxacru.c                                             |   14 
 drivers/usb/class/cdc-wdm.c                                          |    4 
 drivers/usb/dwc3/core.c                                              |    6 
 drivers/usb/gadget/function/f_fs.c                                   |    9 
 drivers/usb/gadget/function/f_printer.c                              |   40 +
 drivers/usb/host/xhci-pci.c                                          |    7 
 drivers/usb/host/xhci-ring.c                                         |   59 +-
 drivers/usb/host/xhci.h                                              |    1 
 drivers/usb/misc/uss720.c                                            |   20 
 drivers/usb/musb/da8xx.c                                             |    8 
 drivers/usb/storage/alauda.c                                         |    9 
 drivers/usb/typec/tcpm/tcpm.c                                        |    1 
 drivers/vdpa/vdpa_user/vduse_dev.c                                   |   14 
 fs/btrfs/block-group.c                                               |   11 
 fs/btrfs/disk-io.c                                                   |   10 
 fs/cifs/cifsfs.c                                                     |    2 
 fs/cifs/smb2transport.c                                              |    2 
 fs/f2fs/super.c                                                      |    2 
 fs/jfs/xattr.c                                                       |    4 
 fs/ksmbd/mgmt/share_config.c                                         |    6 
 fs/nfs/read.c                                                        |    4 
 fs/nfsd/nfsfh.c                                                      |    4 
 fs/nilfs2/dir.c                                                      |   59 +-
 fs/nilfs2/segment.c                                                  |    3 
 fs/ocfs2/aops.c                                                      |    5 
 fs/ocfs2/file.c                                                      |    2 
 fs/ocfs2/journal.c                                                   |   17 
 fs/ocfs2/journal.h                                                   |    2 
 fs/ocfs2/namei.c                                                     |    2 
 fs/ocfs2/ocfs2_trace.h                                               |    2 
 fs/open.c                                                            |    4 
 fs/proc/vmcore.c                                                     |    2 
 fs/udf/udftime.c                                                     |   11 
 include/kvm/arm_vgic.h                                               |    2 
 include/linux/cma.h                                                  |    9 
 include/linux/compat.h                                               |    2 
 include/linux/efi.h                                                  |   10 
 include/linux/filter.h                                               |    5 
 include/linux/i2c.h                                                  |   24 
 include/linux/iommu.h                                                |    2 
 include/linux/kcov.h                                                 |    2 
 include/linux/mdio.h                                                 |   12 
 include/linux/mod_devicetable.h                                      |    2 
 include/linux/nvme.h                                                 |    4 
 include/linux/pci.h                                                  |    9 
 include/linux/skbuff.h                                               |    2 
 include/linux/syscalls.h                                             |    8 
 include/net/bluetooth/hci_core.h                                     |   36 +
 include/net/inet_connection_sock.h                                   |   10 
 include/net/netfilter/nf_tables.h                                    |    5 
 include/net/request_sock.h                                           |    2 
 include/net/sock.h                                                   |   16 
 include/net/tcp.h                                                    |    2 
 include/scsi/scsi_transport_sas.h                                    |    2 
 include/trace/events/qdisc.h                                         |    4 
 include/uapi/asm-generic/hugetlb_encode.h                            |   26 
 include/uapi/asm-generic/unistd.h                                    |    2 
 kernel/bpf/core.c                                                    |    4 
 kernel/bpf/trampoline.c                                              |   20 
 kernel/bpf/verifier.c                                                |    8 
 kernel/cpu.c                                                         |    8 
 kernel/dma/contiguous.c                                              |    4 
 kernel/events/core.c                                                 |   13 
 kernel/gcov/gcc_4_7.c                                                |    4 
 kernel/gen_kheaders.sh                                               |    9 
 kernel/kcov.c                                                        |    1 
 kernel/kprobes.c                                                     |    8 
 kernel/padata.c                                                      |    8 
 kernel/pid_namespace.c                                               |    1 
 kernel/rcu/rcutorture.c                                              |   16 
 kernel/sys_ni.c                                                      |    2 
 kernel/time/tick-common.c                                            |   42 -
 kernel/trace/Kconfig                                                 |    4 
 kernel/trace/ftrace.c                                                |   71 ++
 kernel/trace/preemptirq_delay_test.c                                 |    1 
 mm/cma.c                                                             |   20 
 mm/memory-failure.c                                                  |    7 
 net/batman-adv/originator.c                                          |   29 +
 net/bluetooth/l2cap_core.c                                           |    8 
 net/bpf/test_run.c                                                   |    6 
 net/can/j1939/main.c                                                 |    6 
 net/can/j1939/transport.c                                            |   21 
 net/core/drop_monitor.c                                              |   20 
 net/core/filter.c                                                    |    3 
 net/core/net_namespace.c                                             |    9 
 net/core/netpoll.c                                                   |    2 
 net/core/skbuff.c                                                    |   24 
 net/core/sock.c                                                      |   20 
 net/core/sock_map.c                                                  |   16 
 net/core/xdp.c                                                       |    4 
 net/dccp/ipv4.c                                                      |    7 
 net/dccp/ipv6.c                                                      |    7 
 net/ieee802154/socket.c                                              |    4 
 net/ipv4/af_inet.c                                                   |   23 
 net/ipv4/cipso_ipv4.c                                                |   12 
 net/ipv4/inet_connection_sock.c                                      |   22 
 net/ipv4/raw.c                                                       |    2 
 net/ipv4/tcp.c                                                       |   16 
 net/ipv4/tcp_input.c                                                 |   50 +
 net/ipv4/tcp_minisocks.c                                             |    5 
 net/ipv6/af_inet6.c                                                  |   24 
 net/ipv6/ip6_fib.c                                                   |    6 
 net/ipv6/ipv6_sockglue.c                                             |   17 
 net/ipv6/route.c                                                     |    9 
 net/ipv6/seg6_iptunnel.c                                             |   14 
 net/ipv6/seg6_local.c                                                |    8 
 net/ipv6/tcp_ipv6.c                                                  |    9 
 net/ipv6/xfrm6_policy.c                                              |    8 
 net/iucv/iucv.c                                                      |   26 
 net/mac80211/he.c                                                    |   10 
 net/mac80211/mesh_pathtbl.c                                          |   13 
 net/mac80211/sta_info.c                                              |    4 
 net/mptcp/pm_netlink.c                                               |   21 
 net/mptcp/protocol.c                                                 |    1 
 net/ncsi/internal.h                                                  |    2 
 net/ncsi/ncsi-manage.c                                               |   93 +--
 net/ncsi/ncsi-rsp.c                                                  |    4 
 net/netfilter/ipset/ip_set_core.c                                    |   92 +--
 net/netfilter/ipset/ip_set_list_set.c                                |   30 -
 net/netfilter/nf_tables_api.c                                        |    8 
 net/netfilter/nft_lookup.c                                           |    3 
 net/netlink/af_netlink.c                                             |    4 
 net/netrom/nr_timer.c                                                |    3 
 net/packet/af_packet.c                                               |   30 -
 net/sched/act_api.c                                                  |   66 +-
 net/sched/act_ct.c                                                   |   21 
 net/sched/sch_multiq.c                                               |    2 
 net/sched/sch_taprio.c                                               |   15 
 net/sctp/socket.c                                                    |    5 
 net/smc/af_smc.c                                                     |    2 
 net/sunrpc/auth_gss/auth_gss.c                                       |    4 
 net/tipc/node.c                                                      |    1 
 net/unix/af_unix.c                                                   |  113 ++--
 net/unix/diag.c                                                      |   12 
 net/wireless/pmsr.c                                                  |    8 
 net/wireless/util.c                                                  |    7 
 net/xdp/xsk.c                                                        |    4 
 scripts/Makefile.dtbinst                                             |    2 
 sound/pci/hda/patch_realtek.c                                        |    1 
 sound/soc/fsl/fsl-asoc-card.c                                        |    3 
 sound/synth/emux/soundfont.c                                         |   17 
 tools/include/asm-generic/hugetlb_encode.h                           |   26 
 tools/perf/Documentation/perf-script.txt                             |    7 
 tools/perf/builtin-script.c                                          |   24 
 tools/testing/selftests/arm64/tags/tags_test.c                       |    4 
 tools/testing/selftests/bpf/prog_tests/btf_map_in_map.c              |   26 
 tools/testing/selftests/bpf/test_tc_tunnel.sh                        |   13 
 tools/testing/selftests/ftrace/test.d/kprobe/kprobe_eventname.tc     |    3 
 tools/testing/selftests/net/mptcp/mptcp_join.sh                      |    5 
 tools/testing/selftests/vm/compaction_test.c                         |  103 ++-
 363 files changed, 3866 insertions(+), 2534 deletions(-)

Adam Miotk (1):
      drm/bridge/panel: Fix runtime warning on panel bridge release

Adrian Hunter (3):
      perf script: Show also errors for --insn-trace option
      mmc: sdhci: Do not invert write-protect twice
      mmc: sdhci: Do not lock spinlock around mmc_gpio_get_ro()

Akhmat Karakotov (1):
      tcp: Use BPF timeout setting for SYN ACK RTO

Alan Stern (1):
      USB: class: cdc-wdm: Fix CPU lockup caused by excessive log messages

Aleksandr Aprelkov (1):
      iommu/arm-smmu-v3: Free MSIs in case of ENOMEM

Aleksandr Mishin (2):
      liquidio: Adjust a NULL pointer handling path in lio_vf_rep_copy_packet
      gpio: davinci: Validate the obtained number of IRQs

Aleksandr Nogikh (1):
      kcov: don't lose track of remote references during softirqs

Alessandro Carminati (Red Hat) (1):
      selftests/bpf: Prevent client connect before server bind in test_tc_tunnel.sh

Alex Bee (1):
      arm64: dts: rockchip: Add sound-dai-cells for RK3368

Alex Deucher (2):
      drm/radeon: fix UBSAN warning in kv_dpm.c
      drm/amdgpu: fix UBSAN warning in kv_dpm.c

Alex Henrie (1):
      usb: misc: uss720: check for incompatible versions of the Belkin F5U002

Alexander Shishkin (5):
      intel_th: pci: Add Granite Rapids support
      intel_th: pci: Add Granite Rapids SOC support
      intel_th: pci: Add Sapphire Rapids SOC support
      intel_th: pci: Add Meteor Lake-S support
      intel_th: pci: Add Lunar Lake support

Alexander Sverdlin (1):
      iio: accel: fxls8962af: select IIO_BUFFER & IIO_KFIFO_BUF

Alexey Kodanev (1):
      drm/amd/display: drop unnecessary NULL checks in debugfs

Amjad Ouled-Ameur (1):
      drm/komeda: check for error-valued pointer

Andrew Davis (1):
      soc: ti: wkup_m3_ipc: Send NULL dummy message instead of pointer message

Andy Shevchenko (2):
      pvpanic: Keep single style across modules
      pvpanic: Indentation fixes here and there

Anton Protopopov (1):
      bpf: Add a check for struct bpf_fib_lookup size

Ard Biesheuvel (3):
      efi: memmap: Move manipulation routines into x86 arch tree
      efi: xen: Set EFI_PARAVIRT for Xen dom0 boot on all architectures
      efi/x86: Free EFI memory map only when installing a new one.

Armin Wolf (1):
      platform/x86: dell-smbios: Fix wrong token data in sysfs

Arnd Bergmann (11):
      wifi: ath9k: work around memset overflow warning
      sparc: fix old compat_sys_select()
      sparc: fix compat recv/recvfrom syscalls
      parisc: use correct compat recv/recvfrom syscalls
      parisc: use generic sys_fanotify_mark implementation
      sh: rework sync_file_range ABI
      csky, hexagon: fix broken sys_sync_file_range
      hexagon: fix fadvise64_64 calling conventions
      ftruncate: pass a signed offset
      syscalls: fix compat_sys_io_pgetevents_time64 usage
      syscalls: fix sys_fanotify_mark prototype

Biju Das (1):
      regulator: core: Fix modpost error "regulator_get_regmap" undefined

Bitterblue Smith (1):
      wifi: rtlwifi: rtl8192de: Fix 5 GHz TX power

Bjorn Helgaas (2):
      dmaengine: ioat: Drop redundant pci_enable_pcie_error_reporting()
      dmaengine: ioat: use PCI core macros for PCIe Capability

Boris Burkov (1):
      btrfs: retry block group reclaim without infinite loop

Breno Leitao (2):
      scsi: mpt3sas: Avoid test/set_bit() operating in non-allocated memory
      netpoll: Fix race condition in netpoll_owner_active

Changbin Du (1):
      perf: script: add raw|disasm arguments to --insn-trace option

Chen Hanxiao (1):
      SUNRPC: return proper error from gss_wrap_req_priv

Chenghai Huang (1):
      crypto: hisilicon/sec - Fix memory leak for sec resource release

Chris Wilson (2):
      drm/i915/gt: Only kick the signal worker if there's been an update
      drm/i915/gt: Disarm breadcrumbs if engines are already idle

Christian Marangi (1):
      mips: bmips: BCM6358: make sure CBR is correctly set

Christophe Leroy (1):
      bpf: Take return from set_memory_ro() into account with bpf_prog_lock_ro()

Csókás, Bence (1):
      net: sfp: Always call `sfp_sm_mod_remove()` on remove

Damien Le Moal (2):
      null_blk: Print correct max open zones limit in null_init_zoned_dev()
      scsi: mpi3mr: Fix ATA NCQ priority support

Dan Carpenter (3):
      Bluetooth: qca: Fix error code in qca_read_fw_build_info()
      ptp: fix integer overflow in max_vclocks_store
      usb: musb: da8xx: fix a resource leak in probe()

Daniel Borkmann (1):
      vxlan: Fix regression when dropping packets due to invalid src addresses

Daniil Dulov (1):
      xdp: Remove WARN() from __xdp_reg_mem_model()

David Awogbemila (1):
      gve: Add RX context.

David Hildenbrand (1):
      cma: factor out minimum alignment requirement

David Lechner (1):
      iio: adc: ad9467: fix scan type sign

David Ruth (1):
      net/sched: act_api: fix possible infinite loop in tcf_idr_check_alloc()

Dawei Li (2):
      net/iucv: Avoid explicit cpumask var allocation on stack
      net/dpaa2: Avoid explicit cpumask var allocation on stack

DelphineCCChiu (1):
      net/ncsi: Fix the multi thread manner of NCSI driver

Denis Arefev (1):
      mtd: partitions: redboot: Added conversion of operands to a larger type

Dev Jain (2):
      selftests/mm: compaction_test: fix incorrect write of zero to nr_hugepages
      selftests/mm: compaction_test: fix bogus test success on Aarch64

Dirk Behme (1):
      drivers: core: synchronize really_probe() and dev_uevent()

Dmitry Baryshkov (1):
      wifi: ath10k: fix QCOM_RPROC_COMMON dependency

Dmitry Torokhov (1):
      Input: try trimming too long modalias strings

Doug Brown (1):
      serial: 8250_pxa: Configure tx_loadsz to match FIFO IRQ level

Dragan Simic (1):
      kbuild: Install dtb files as 0644 in Makefile.dtbinst

Edson Juliano Drosdeck (1):
      ALSA: hda/realtek: Limit mic boost on N14AP7

Elinor Montmasson (1):
      ASoC: fsl-asoc-card: set priv->pdev before using it

Emmanuel Grumbach (1):
      wifi: iwlwifi: mvm: don't read past the mfuart notifcation

Enguerrand de Ribaucourt (1):
      net: phy: micrel: add Microchip KSZ 9477 to the device table

Enzo Matsumiya (1):
      smb: client: fix deadlock in smb2_find_smb_tcon()

Eric Dumazet (14):
      ipv6: sr: block BH in seg6_output_core() and seg6_input_core()
      net/sched: taprio: always validate TCA_TAPRIO_ATTR_PRIOMAP
      net: inline sock_prot_inuse_add()
      net: drop nopreempt requirement on sock_prot_inuse_add()
      af_unix: annotate lockless accesses to sk->sk_err
      ipv6: fix possible race in __fib6_drop_pcpu_from()
      tcp: fix race in tcp_v6_syn_recv_sock()
      batman-adv: bypass empty buckets in batadv_purge_orig_ref()
      af_packet: avoid a false positive warning in packet_setsockopt()
      ipv6: prevent possible NULL deref in fib6_nh_init()
      ipv6: prevent possible NULL dereference in rt6_probe()
      xfrm6: check ip6_dst_idev() return value in xfrm6_get_saddr()
      tcp: clear tp->retrans_stamp in tcp_rcv_fastopen_synack()
      ipv6: annotate some data-races around sk->sk_prot

Erick Archer (1):
      drm/radeon/radeon_display: Decrease the size of allocated memory

Erico Nunes (2):
      drm/lima: add mask irq callback to gp and pp
      drm/lima: mask irqs in timeout path before hard reset

Erwan Le Ray (1):
      serial: stm32: rework RX over DMA

Esben Haabendal (1):
      serial: imx: Introduce timeout when waiting on transmitter empty

FUKAUMI Naoki (1):
      arm64: dts: rockchip: fix PMIC interrupt pin on ROCK Pi E

Fernando Yang (1):
      iio: adc: ad7266: Fix variable checking bug

Filipe Manana (1):
      btrfs: fix leak of qgroup extent records after transaction abort

Frank Li (1):
      arm64: dts: imx8qm-mek: fix gpio number for reg_usdhc2_vmmc

Frank van der Linden (1):
      mm/cma: drop incorrect alignment check in cma_init_reserved_mem

Gal Pressman (1):
      net/mlx5e: Fix features validation check for tunneled UDP (non-VXLAN) packets

Gavrilov Ilia (1):
      netrom: Fix a memory leak in nr_heartbeat_expiry()

George Shen (1):
      drm/amd/display: Handle Y carry-over in VCP X.Y calculation

Greg Kroah-Hartman (2):
      jfs: xattr: fix buffer overflow for invalid xattr
      Linux 5.15.162

Gregor Herburger (1):
      gpio: tqmx86: fix typo in Kconfig label

Grygorii Tertychnyi (1):
      i2c: ocores: set IACK bit after core is enabled

Hagar Gamal Halim Hemdan (1):
      vmci: prevent speculation leaks by sanitizing event in event_deliver()

Hagar Hemdan (1):
      pinctrl: fix deadlock in create_pinctrl() when handling -EPROBE_DEFER

Haifeng Xu (1):
      perf/core: Fix missing wakeup when waiting for context reference

Hamish Martin (1):
      i2c: acpi: Unbind mux adapters before delete

Hangyu Hua (1):
      net: sched: sch_multiq: fix possible OOB write in multiq_tune()

Hannes Reinecke (1):
      nvme: fixup comment for nvme RDMA Provider Type

Hans de Goede (1):
      iio: accel: mxc4005: Reset chip on probe() and resume()

Hector Martin (1):
      xhci: Handle TD clearing for multiple streams case

Heng Qi (1):
      virtio_net: checksum offloading handling fix

Herbert Xu (1):
      padata: Disable BH when taking works lock on MT path

Hersen Wu (1):
      drm/amd/display: Fix incorrect DSC instance for MST

Huang-Huang Bao (4):
      pinctrl: rockchip: fix pinmux bits for RK3328 GPIO2-B pins
      pinctrl: rockchip: fix pinmux bits for RK3328 GPIO3-B pins
      pinctrl: rockchip: use dedicated pinctrl type for RK3328
      pinctrl: rockchip: fix pinmux reset in rockchip_pmx_set

Hugo Villeneuve (2):
      serial: sc16is7xx: replace hardcoded divisor value with BIT() macro
      serial: sc16is7xx: fix bug in sc16is7xx_set_baud() when using prescaler

Ian Forbes (1):
      drm/vmwgfx: 3D disabled should not effect STDU memory limits

Ignat Korchagin (1):
      net: do not leave a dangling sk pointer, when socket creation fails

Ilpo Järvinen (2):
      MIPS: Routerboard 532: Fix vendor retry check code
      mmc: sdhci-pci: Convert PCIBIOS_* return codes to errnos

Jan Kara (1):
      ocfs2: fix DIO failure due to insufficient transaction credits

Jani Nikula (2):
      drm/exynos/vidi: fix memory leak in .get_modes()
      drm/i915/mso: using joiner is not possible with eDP MSO

Janusz Krzysztofik (1):
      drm/i915/gt: Fix potential UAF by revoke of fence registers

Jason Xing (1):
      tcp: count CLOSE-WAIT sockets for TCP_MIB_CURRESTAB

Jean Delvare (2):
      i2c: at91: Fix the functionality flags of the slave-only interface
      i2c: designware: Fix the functionality flags of the slave-only interface

Jean-Baptiste Maneyrol (1):
      iio: imu: inv_icm42600: delete unneeded update watermark call

Jean-Michel Hautbois (1):
      tty: mcf: MCF54418 has 10 UARTS

Jeff Johnson (1):
      tracing: Add MODULE_DESCRIPTION() to preemptirq_delay_test

Jianguo Wu (1):
      seg6: fix parameter passing when calling NF_HOOK() in End.DX4 and End.DX6 behaviors

Jiapeng Chong (1):
      drm/amd/display: Clean up some inconsistent indenting

Jie Wang (1):
      net: hns3: add cond_resched() to hns3 ring buffer init process

Jiri Olsa (1):
      bpf: Set run context for rawtp test_run callback

Jisheng Zhang (1):
      riscv: mm: init: try best to use IS_ENABLED(CONFIG_64BIT) instead of #ifdef

Joachim Vandersmissen (1):
      crypto: ecdh - explicitly zeroize private_key

Joao Pinto (1):
      Avoid hw_desc array overrun in dw-axi-dmac

Johan Hovold (2):
      Bluetooth: qca: fix info leak when fetching fw build id
      Bluetooth: qca: fix info leak when fetching board id

Johan Jonker (1):
      ARM: dts: rockchip: rk3066a: add #sound-dai-cells to hdmi node

Johannes Berg (1):
      wifi: iwlwifi: mvm: revert gen2 TX A-MPDU size to 64

John Keeping (2):
      usb: gadget: f_fs: use io_data->status consistently
      Input: ili210x - fix ili251x_read_touch_data() return value

Jose Ignacio Tornos Martinez (1):
      net: usb: ax88179_178a: improve link status logs

José Expósito (1):
      HID: logitech-dj: Fix memory leak in logi_dj_recv_switch_to_dj_mode()

Jozsef Kadlecsik (2):
      netfilter: ipset: Fix race between namespace cleanup and gc in the list:set type
      netfilter: ipset: Fix suspicious rcu_dereference_protected()

Julia Zhang (1):
      drm/amdgpu: avoid using null object of framebuffer

Justin Stitt (1):
      block/ioctl: prefer different overflow check

Kalle Niemi (1):
      regulator: bd71815: fix ramp values

Karol Kolacinski (1):
      ptp: Fix error message on failed pin verification

Kees Cook (1):
      rtlwifi: rtl8192de: Style clean-ups

Kent Gibson (1):
      gpiolib: cdev: Disallow reconfiguration without direction (uAPI v1)

Krzysztof Kozlowski (5):
      Bluetooth: hci_qca: mark OF related data as maybe unused
      dt-bindings: i2c: google,cros-ec-i2c-tunnel: correct path to i2c-controller schema
      ARM: dts: samsung: smdkv310: fix keypad no-autorepeat
      ARM: dts: samsung: exynos4412-origen: fix keypad no-autorepeat
      ARM: dts: samsung: smdk4412: fix keypad no-autorepeat

Kuangyi Chiang (2):
      xhci: Apply reset resume quirk to Etron EJ188 xHCI host
      xhci: Apply broken streams quirk to Etron EJ188 xHCI host

Kun(llfl) (1):
      iommu/amd: Fix sysfs leak in iommu init

Kuniyuki Iwashima (15):
      af_unix: Set sk->sk_state under unix_state_lock() for truly disconencted peer.
      af_unix: Annodate data-races around sk->sk_state for writers.
      af_unix: Annotate data-race of sk->sk_state in unix_inq_len().
      af_unix: Annotate data-races around sk->sk_state in unix_write_space() and poll().
      af_unix: Annotate data-race of sk->sk_state in unix_stream_connect().
      af_unix: Annotate data-races around sk->sk_state in sendmsg() and recvmsg().
      af_unix: Annotate data-race of sk->sk_state in unix_stream_read_skb().
      af_unix: Annotate data-races around sk->sk_state in UNIX_DIAG.
      af_unix: Annotate data-race of net->unx.sysctl_max_dgram_qlen.
      af_unix: Use unix_recvq_full_lockless() in unix_stream_connect().
      af_unix: Use skb_queue_empty_lockless() in unix_release_sock().
      af_unix: Use skb_queue_len_lockless() in sk_diag_show_rqlen().
      af_unix: Annotate data-race of sk->sk_shutdown in sk_diag_fill().
      ipv6: Fix data races around sk->sk_prot.
      tcp: Fix data races around icsk->icsk_af_ops.

Kunwu Chan (1):
      kselftest: arm64: Add a null pointer check

Kyle Tso (1):
      usb: typec: tcpm: Ignore received Hard Reset in TOGGLING state

Laurent Pinchart (1):
      drm/panel: ilitek-ili9881c: Fix warning with GPIO controllers that sleep

Li RongQing (1):
      dmaengine: idxd: Fix possible Use-After-Free in irq_process_work_list

Lin Ma (1):
      wifi: cfg80211: pmsr: use correct nla_get_uX functions

Lingbo Kong (1):
      wifi: mac80211: correctly parse Spatial Reuse Parameter Set element

Linus Torvalds (1):
      x86: stop playing stack games in profile_pc()

Liu Ying (1):
      drm/panel: simple: Add missing display timing flags for KOE TX26D202VM0BWA

Liu Zixian (1):
      efi: Correct comment on efi_memmap_alloc

Lu Baolu (1):
      iommu: Return right value in iommu_sva_bind_device()

Luca Weiss (1):
      Bluetooth: btqca: Add WCN3988 support

Luiz Augusto von Dentz (2):
      skbuff: introduce skb_pull_data
      Bluetooth: L2CAP: Fix rejecting L2CAP_CONN_PARAM_UPDATE_REQ

Ma Ke (2):
      drm/nouveau/dispnv04: fix null pointer dereference in nv17_tv_get_ld_modes
      drm/nouveau/dispnv04: fix null pointer dereference in nv17_tv_get_hd_modes

Manish Rangankar (1):
      scsi: qedi: Fix crash while reading debugfs attribute

Marc Ferland (1):
      iio: dac: ad5592r: fix temperature channel scaling value

Marc Zyngier (1):
      KVM: arm64: vgic-v4: Make the doorbell request robust w.r.t preemption

Marek Szyprowski (1):
      drm/exynos: hdmi: report safe 640x480 mode as a fallback when no EDID found

Mario Limonciello (3):
      PCI/PM: Avoid D3cold for HP Pavilion 17 PC/1972 PCIe Ports
      ACPI: x86: utils: Add Picasso to the list for forcing StorageD3Enable
      ACPI: x86: Force StorageD3Enable on more products

Martin Leung (1):
      drm/amd/display: revert Exit idle optimizations before HDCP execution

Masahiro Yamada (1):
      Revert "kheaders: substituting --sort in archive creation"

Masami Hiramatsu (Google) (1):
      tracing: Build event generation tests only as modules

Mathias Nyman (1):
      xhci: Set correct transferred length for cancelled bulk transfers

Matthew Mirvish (1):
      bcache: fix variable length array abuse in btree_iter

Matthew Wilcox (Oracle) (3):
      nilfs2: Remove check for PageError
      nilfs2: return the mapped address from nilfs_get_page()
      nfs: Leave pages in the pagecache if readpage failed

Matthias Goergens (1):
      hugetlb_encode.h: fix undefined behaviour (34 << 26)

Matthias Maennich (1):
      kheaders: explicitly define file modes for archived headers

Matthias Schiffer (1):
      gpio: tqmx86: store IRQ trigger type and unmask status separately

Maxime Coquelin (2):
      vduse: validate block features only with block devices
      vduse: Temporarily fail if control queue feature requested

Meng Li (1):
      usb: dwc3: core: remove lock of otg mode during gadget suspend/resume to avoid deadlock

Miaohe Lin (1):
      mm/huge_memory: don't unpoison huge_zero_folio

Michael Ellerman (2):
      powerpc/uaccess: Fix build errors seen with GCC 13/14
      powerpc/io: Avoid clang null pointer arithmetic warnings

Min-Hua Chen (1):
      Bluetooth: btqca: use le32_to_cpu for ver.soc_id

Miri Korenblit (1):
      wifi: iwlwifi: mvm: check n_ssids before accessing the ssids

Muhammad Usama Anjum (1):
      selftests/mm: conform test to TAP format output

Nam Cao (1):
      riscv: fix overlap of allocated page and PTR_ERR

Nandor Kracser (1):
      ksmbd: ignore trailing slashes in share paths

Nathan Chancellor (1):
      kbuild: Remove support for Clang's ThinLTO caching

Nathan Lynch (1):
      powerpc/pseries: Enforce hcall result buffer validity and size

Naveen Naidu (1):
      PCI: Add PCI_ERROR_RESPONSE and related definitions

Neal Cardwell (1):
      tcp: fix tcp_rcv_fastopen_synack() to enter TCP_CA_Loss for failed TFO

Neil Armstrong (1):
      Bluetooth: qca: use switch case for soc type behavior

Nicholas Kazlauskas (1):
      drm/amd/display: Exit idle optimizations before HDCP execution

Nick Child (1):
      ibmvnic: Free any outstanding tx skbs during scrq reset

Nicolas Escande (1):
      wifi: mac80211: mesh: Fix leak of mesh_preq_queue objects

Nikita Shubin (4):
      dmaengine: ioatdma: Fix leaking on version mismatch
      dmaengine: ioatdma: Fix error path in ioat3_dma_probe()
      dmaengine: ioatdma: Fix kmemleak in ioat_pci_probe()
      dmaengine: ioatdma: Fix missing kmem_cache_destroy()

Nikita Zhandarovich (2):
      HID: core: remove unnecessary WARN_ON() in implement()
      usb: atm: cxacru: fix endpoint checking in cxacru_bind()

Niklas Cassel (2):
      ata: ahci: Clean up sysfs file on error
      ata: libata-core: Fix double free on error

Nuno Sa (1):
      dmaengine: axi-dmac: fix possible race in remove()

Oleg Nesterov (2):
      tick/nohz_full: Don't abuse smp_call_function_single() in tick_setup_device()
      zap_pid_ns_processes: clear TIF_NOTIFY_SIGNAL along with TIF_SIGPENDING

Oleksij Rempel (3):
      net: stmmac: Assign configured channel value to EXTTS event
      net: can: j1939: recover socket queue on CAN bus error during BAM transmission
      net: can: j1939: enhanced error handling for tightly received RTS messages in xtp_rx_rts_session_new

Oliver Neukum (3):
      net: usb: rtl8150 fix unintiatilzed variables in rtl8150_get_link_ksettings
      usb: gadget: printer: SS+ support
      usb: gadget: printer: fix races against disable

Ondrej Mosnacek (1):
      cipso: fix total option length computation

Oswald Buddenhagen (1):
      ALSA: emux: improve patch ioctl data validation

Pablo Neira Ayuso (1):
      netfilter: nf_tables: fully validate NFT_DATA_VALUE on store to data registers

Paolo Abeni (1):
      mptcp: ensure snd_una is properly initialized on connect

Parker Newman (1):
      serial: exar: adding missing CTI and Exar PCI ids

Patrisious Haddad (1):
      RDMA/mlx5: Add check for srq max_sge attribute

Paul E. McKenney (1):
      rcutorture: Fix rcu_torture_one_read() pipe_count overflow comment

Pavan Chebbi (1):
      bnxt_en: Restore PTP tx_avail count in case of skb_pad() error

Pedro Tammela (1):
      net/sched: act_api: rely on rcu in tcf_idr_check_alloc

Peter Delevoryas (1):
      net/ncsi: Simplify Kconfig/dts control flow

Peter Oberparleiter (1):
      gcov: add support for GCC 14

Peter Zijlstra (1):
      x86/ibt,ftrace: Search for __fentry__ location

Petr Pavlu (1):
      net/ipv6: Fix the RT cache flush via sysctl using a previous delay

Qing Wang (1):
      dmaengine: ioat: switch from 'pci_' to 'dma_' API

Raju Rangoju (1):
      ACPICA: Revert "ACPICA: avoid Info: mapping multiple BARs. Your kernel is fine."

Rao Shoaib (1):
      af_unix: Read with MSG_PEEK loops if the first unread byte is OOB

Remi Pommarel (2):
      wifi: mac80211: Fix deadlock in ieee80211_sta_ps_deliver_wakeup()
      wifi: cfg80211: Lock wiphy in cfg80211_get_station

Ricardo Ribalda (1):
      media: dvbdev: Initialize sbuf

Rick Wertenbroek (1):
      PCI: rockchip-ep: Remove wrong mask on subsys_vendor_id

Rik van Riel (1):
      fs/proc: fix softlockup in __read_vmcore

Roman Smirnov (1):
      udf: udftime: prevent overflow in udf_disk_stamp_to_time()

Russell King (Oracle) (2):
      i2c: add fwnode APIs
      net: mdio: add helpers to extract clause 45 regad and devad fields

Ryusuke Konishi (2):
      nilfs2: fix nilfs_empty_dir() misjudgment and long loop on I/O errors
      nilfs2: fix potential kernel bug due to lack of writeback flag waiting

Samuel Holland (1):
      clk: sifive: Do not register clkdevs for PRCI clocks

Sean Christopherson (1):
      KVM: x86: Always sync PIR to IRR prior to scanning I/O APIC routes

Sean O'Brien (1):
      HID: Add quirk for Logitech Casa touchpad

Shahar S Matityahu (1):
      wifi: iwlwifi: dbg_ini: move iwl_dbg_tlv_free outside of debugfs ifdef

Shichao Lai (1):
      usb-storage: alauda: Check whether the media is initialized

Shigeru Yoshida (1):
      net: can: j1939: Initialize unused data in j1939_send_one()

Sicong Huang (1):
      greybus: Fix use-after-free bug in gb_interface_release due to race condition.

Simon Horman (1):
      octeontx2-pf: Add error handling to VLAN unoffload handling

Songyang Li (1):
      MIPS: Octeon: Add PCIe link status check

Stefan Wahren (1):
      qca_spi: Make interrupt remembering atomic

Steve French (1):
      cifs: fix typo in module parameter enable_gcm_256

Steven Rostedt (Google) (1):
      tracing/selftests: Fix kprobe event name test for .isra. functions

Su Yue (2):
      ocfs2: use coarse time for new created files
      ocfs2: fix races between hole punching and AIO+DIO

Subbaraya Sundeep (1):
      octeontx2-af: Always allocate PF entries from low prioriy zone

Sven Eckelmann (1):
      batman-adv: Don't accept TT entries for out-of-spec VIDs

Taehee Yoo (1):
      ionic: fix use after netif_napi_del()

Takashi Iwai (1):
      ACPI: video: Add backlight=native quirk for Lenovo Slim 7 16ARH7

Thadeu Lima de Souza Cascardo (1):
      sock_map: avoid race between sock_map_close and sk_psock_put

Thomas Weißschuh (2):
      misc/pvpanic: deduplicate common code
      misc/pvpanic-pci: register attributes via pci_driver

Tim Jiang (1):
      Bluetooth: qca: add support for QCA2066

Tomas Winkler (1):
      mei: me: release irq in mei_me_pci_resume error path

Tomi Valkeinen (1):
      pmdomain: ti-sci: Fix duplicate PD referrals

Tony Luck (2):
      x86/cpu/vfm: Add new macros to work with (vendor/family/model) values
      x86/cpu: Fix x86_match_cpu() to match just X86_VENDOR_INTEL

Tristram Ha (1):
      net: dsa: microchip: fix initial port flush problem

Trond Myklebust (1):
      knfsd: LOOKUP can return an illegal error value

Tzung-Bi Shih (1):
      power: supply: cros_usbpd: provide ID table for avoiding fallback match

Udit Kumar (2):
      serial: 8250_omap: Implementation of Errata i2310
      serial: 8250_omap: Fix Errata i2310 with RX FIFO level check

Uri Arev (1):
      Bluetooth: ath3k: Fix multiple issues reported by checkpatch.pl

Uros Bizjak (1):
      x86/fpu: Fix AMD X86_BUG_FXSAVE_LEAK fixup

Uwe Kleine-König (2):
      mmc: davinci: Don't strip remove function when driver is builtin
      pwm: stm32: Refuse too small period requests

Vamshi Gajjela (1):
      spmi: hisi-spmi-controller: Do not override device identifier

Vasant Hegde (1):
      iommu/amd: Introduce pci segment structure

Vasileios Amoiridis (4):
      iio: chemical: bme680: Fix pressure value output
      iio: chemical: bme680: Fix calibration data variable
      iio: chemical: bme680: Fix overflows in compensate() functions
      iio: chemical: bme680: Fix sensor data read operation

Vlad Buslov (1):
      net/sched: act_ct: set 'net' pointer when creating new nf_flow_table

Wander Lairson Costa (1):
      drop_monitor: replace spin_lock by raw_spin_lock

Wenchao Hao (1):
      RDMA/restrack: Fix potential invalid address access

Wesley Cheng (1):
      usb: gadget: f_fs: Fix race between aio_cancel() and AIO request complete

Wolfram Sang (2):
      i2c: testunit: don't erase registers after STOP
      i2c: testunit: discard write requests while old command is running

Xiaolei Wang (2):
      net: stmmac: replace priv->speed with the portTransmitRate from the tc-cbs parameters
      net: stmmac: No need to calculate speed divider when offload is disabled

Xin Long (2):
      tipc: force a dst refcount before doing decryption
      sched: act_ct: add netns into the key of tcf_ct_flow_table

Yangtao Li (1):
      mmc: davinci_mmc: Convert to platform remove callback returning void

Yazen Ghannam (1):
      x86/amd_nb: Check for invalid SMN reads

Yonghong Song (1):
      selftests/bpf: Fix flaky test btf_map_in_map/lookup_update

Yonglong Liu (1):
      net: hns3: fix kernel crash problem in concurrent scenario

YonglongLi (2):
      mptcp: pm: inc RmAddr MIB counter once per RM_ADDR ID
      mptcp: pm: update add_addr counters after connect

Yue Haibing (1):
      netns: Make get_net_ns() handle zero refcount net

Yunlei He (1):
      f2fs: remove clear SB_INLINECRYPT flag in default_options

Yunseong Kim (1):
      tracing/net_sched: NULL pointer dereference in perf_trace_qdisc_reset()

Yuntao Wang (1):
      cpu/hotplug: Fix dynstate assignment in __cpuhp_setup_state_cpuslocked()

Zheng Yejian (1):
      ftrace: Fix possible use-after-free issue in ftrace_location()

Zheng Zhi Yuan (1):
      drivers: fix typo in firmware/efi/memmap.c

Ziwei Xiao (1):
      gve: Clear napi->skb before dev_kfree_skb_any()

Zqiang (2):
      rcutorture: Make stall-tasks directly exit when rcutorture tests end
      rcutorture: Fix invalid context warning when enable srcu barrier testing

luoxuanqiang (1):
      Fix race for duplicate reqsk on identical SYN

ye xingchen (1):
      platform/x86: dell-smbios-base: Use sysfs_emit()

.

From: srinivas.kandagatla@linaro.org
To: gregkh@linuxfoundation.org
Cc: linux-kernel@vger.kernel.org,
	Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Subject: [PATCH 0/6] misc: fastrpc: patches for v6.11
Date: Fri,  5 Jul 2024 08:40:38 +0100
Message-Id: <20240705074045.418836-1-srinivas.kandagatla@linaro.org>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1268787
Newsgroups: org.kernel.vger.linux-kernel
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

From: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>

Hi Greg,

Here are few patches in fastrpc for 6.11 that includes
- support for sensors on SDM845
- update maintainers to cc dr-devel for dmabuf related discussions
- use MODULE_DESCRIPTION
- use memdup_user

Can you please queue them up for 6.11.

Thanks,
Srini

Dmitry Baryshkov (1):
  MAINTAINERS: CC dri-devel list on Qualcomm FastRPC patches

Dylan Van Assche (2):
  misc: fastrpc: support complete DMA pool access to the DSP
  misc: fastrpc: use coherent pool for untranslated Compute Banks

Ekansh Gupta (1):
  misc: fastrpc: Add missing dev_err newlines

Jeff Johnson (1):
  misc: fastrpc: add missing MODULE_DESCRIPTION() macro

Thorsten Blum (1):
  misc: fastrpc: Use memdup_user()

 MAINTAINERS            |  1 +
 drivers/misc/fastrpc.c | 46 +++++++++++++++++++++++++++++-------------
 2 files changed, 33 insertions(+), 14 deletions(-)

-- 
2.25.1

.

From: Luca Weiss <luca.weiss@fairphone.com>
Date: Fri, 05 Jul 2024 09:43:11 +0200
Subject: [PATCH v2] arm64: dts: qcom: sm6350: Add missing
 qcom,non-secure-domain property
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20240705-sm6350-fastrpc-fix-v2-1-89a43166c9bb@fairphone.com>
To: Bjorn Andersson <andersson@kernel.org>, 
 Konrad Dybcio <konrad.dybcio@linaro.org>, Rob Herring <robh@kernel.org>, 
 Krzysztof Kozlowski <krzk+dt@kernel.org>, 
 Conor Dooley <conor+dt@kernel.org>
Cc: ~postmarketos/upstreaming@lists.sr.ht, phone-devel@vger.kernel.org, 
 Konrad Dybcio <konrad.dybcio@somainline.org>, linux-arm-msm@vger.kernel.org, 
 devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, 
 Dmitry Baryshkov <dmitry.baryshkov@linaro.org>, 
 Luca Weiss <luca.weiss@fairphone.com>
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1268796
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-arm-msm,org.kernel.vger.linux-devicetree,org.kernel.vger.phone-devel
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

By default the DSP domains are secure, add the missing
qcom,non-secure-domain property to mark them as non-secure.

Fixes: efc33c969f23 ("arm64: dts: qcom: sm6350: Add ADSP nodes")
Fixes: 8eb5287e8a42 ("arm64: dts: qcom: sm6350: Add CDSP nodes")
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
---
Changes in v2:
- Fix copy-pasted secure vs non-secure mistake in commit message
- Pick up tags
- Link to v1: https://lore.kernel.org/r/20240703-sm6350-fastrpc-fix-v1-1-9f127de17175@fairphone.com
---
 arch/arm64/boot/dts/qcom/sm6350.dtsi | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/sm6350.dtsi b/arch/arm64/boot/dts/qcom/sm6350.dtsi
index 46e122c4421c..8b9bff38e687 100644
--- a/arch/arm64/boot/dts/qcom/sm6350.dtsi
+++ b/arch/arm64/boot/dts/qcom/sm6350.dtsi
@@ -1323,6 +1323,7 @@ fastrpc {
 					compatible = "qcom,fastrpc";
 					qcom,glink-channels = "fastrpcglink-apps-dsp";
 					label = "adsp";
+					qcom,non-secure-domain;
 					#address-cells = <1>;
 					#size-cells = <0>;
 
@@ -1582,6 +1583,7 @@ fastrpc {
 					compatible = "qcom,fastrpc";
 					qcom,glink-channels = "fastrpcglink-apps-dsp";
 					label = "cdsp";
+					qcom,non-secure-domain;
 					#address-cells = <1>;
 					#size-cells = <0>;
 

---
base-commit: 0b58e108042b0ed28a71cd7edf5175999955b233
change-id: 20240703-sm6350-fastrpc-fix-760d2841d0b6

Best regards,
-- 
Luca Weiss <luca.weiss@fairphone.com>

.

From: Lee Jones <lee@kernel.org>
To: lee@kernel.org,
	gregkh@linuxfoundation.org
Cc: linux-kernel@vger.kernel.org,
	linux-usb@vger.kernel.org
Subject: [PATCH 1/1] usb: gadget: configfs: Prevent OOB read/write in usb_string_copy()
Date: Fri,  5 Jul 2024 08:43:39 +0100
Message-ID: <20240705074339.633717-1-lee@kernel.org>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1268797
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-usb
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Userspace provided string 's' could trivially have the length zero. Left
unchecked this will firstly result in an OOB read in the form
`if (str[0 - 1] == '\n') followed closely by an OOB write in the form
`str[0 - 1] = '\0'`.

There is already a validating check to catch strings that are too long.
Let's supply an additional check for invalid strings that are too short.

Signed-off-by: Lee Jones <lee@kernel.org>
---
 drivers/usb/gadget/configfs.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/usb/gadget/configfs.c b/drivers/usb/gadget/configfs.c
index ce3cfa1f36f51..0e7c1e947c0a0 100644
--- a/drivers/usb/gadget/configfs.c
+++ b/drivers/usb/gadget/configfs.c
@@ -115,9 +115,12 @@ static int usb_string_copy(const char *s, char **s_copy)
 	int ret;
 	char *str;
 	char *copy = *s_copy;
+
 	ret = strlen(s);
 	if (ret > USB_MAX_STRING_LEN)
 		return -EOVERFLOW;
+	if (ret < 1)
+		return -EINVAL;
 
 	if (copy) {
 		str = copy;
-- 
2.45.2.803.g4e1b14247a-goog

.

From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org,
	akpm@linux-foundation.org,
	torvalds@linux-foundation.org,
	stable@vger.kernel.org
Cc: lwn@lwn.net,
	jslaby@suse.cz,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Subject: Linux 6.1.97
Date: Fri,  5 Jul 2024 09:44:08 +0200
Message-ID: <2024070508-uncivil-unviable-c930@gregkh>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1268798
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.stable
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

I'm announcing the release of the 6.1.97 kernel.

All users of the 6.1 kernel series must upgrade.

The updated 6.1.y git tree can be found at:
	git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-6.1.y
and can be browsed at the normal kernel.org git web browser:
	https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary

thanks,

greg k-h

------------

 Documentation/devicetree/bindings/i2c/amlogic,meson6-i2c.yaml  |    4 
 Documentation/devicetree/bindings/i2c/apple,i2c.yaml           |    4 
 Documentation/devicetree/bindings/i2c/atmel,at91sam-i2c.yaml   |    2 
 Documentation/devicetree/bindings/i2c/cdns,i2c-r1p10.yaml      |    4 
 Documentation/devicetree/bindings/i2c/i2c-mux-gpio.yaml        |    4 
 Documentation/devicetree/bindings/i2c/qcom,i2c-geni-qcom.yaml  |    4 
 Documentation/devicetree/bindings/i2c/st,stm32-i2c.yaml        |    2 
 Documentation/devicetree/bindings/i2c/xlnx,xps-iic-2.00.a.yaml |    4 
 Makefile                                                       |    2 
 arch/arm/boot/dts/rk3066a.dtsi                                 |    1 
 arch/arm64/boot/dts/rockchip/rk3308-rock-pi-s.dts              |   18 
 arch/arm64/boot/dts/rockchip/rk3328-rock-pi-e.dts              |    4 
 arch/arm64/boot/dts/rockchip/rk3368.dtsi                       |    3 
 arch/arm64/include/asm/unistd32.h                              |    2 
 arch/arm64/kernel/syscall.c                                    |   16 
 arch/csky/include/uapi/asm/unistd.h                            |    1 
 arch/hexagon/include/asm/syscalls.h                            |    6 
 arch/hexagon/include/uapi/asm/unistd.h                         |    1 
 arch/hexagon/kernel/syscalltab.c                               |    7 
 arch/mips/kernel/syscalls/syscall_n32.tbl                      |    2 
 arch/mips/kernel/syscalls/syscall_o32.tbl                      |    2 
 arch/parisc/Kconfig                                            |    1 
 arch/parisc/kernel/sys_parisc32.c                              |    9 
 arch/parisc/kernel/syscalls/syscall.tbl                        |    6 
 arch/powerpc/kernel/syscalls/syscall.tbl                       |    6 
 arch/riscv/kernel/stacktrace.c                                 |    2 
 arch/s390/include/asm/entry-common.h                           |    2 
 arch/s390/kernel/syscalls/syscall.tbl                          |    2 
 arch/s390/pci/pci_irq.c                                        |    2 
 arch/sh/kernel/sys_sh32.c                                      |   11 
 arch/sh/kernel/syscalls/syscall.tbl                            |    3 
 arch/sparc/kernel/sys32.S                                      |  221 --------
 arch/sparc/kernel/syscalls/syscall.tbl                         |    8 
 arch/x86/entry/syscalls/syscall_32.tbl                         |    2 
 arch/x86/include/asm/efi.h                                     |   11 
 arch/x86/include/asm/entry-common.h                            |   15 
 arch/x86/kernel/fpu/core.c                                     |    4 
 arch/x86/kernel/time.c                                         |   20 
 arch/x86/platform/efi/Makefile                                 |    3 
 arch/x86/platform/efi/efi.c                                    |    8 
 arch/x86/platform/efi/memmap.c                                 |  249 ++++++++++
 crypto/ecdh.c                                                  |    2 
 drivers/acpi/x86/utils.c                                       |   23 
 drivers/ata/ahci.c                                             |   17 
 drivers/ata/libata-core.c                                      |    8 
 drivers/counter/ti-eqep.c                                      |    6 
 drivers/cpufreq/amd-pstate.c                                   |    2 
 drivers/cpufreq/intel_pstate.c                                 |   13 
 drivers/firmware/efi/fdtparams.c                               |    4 
 drivers/firmware/efi/memmap.c                                  |  238 ---------
 drivers/gpio/gpio-davinci.c                                    |    5 
 drivers/gpio/gpiolib-cdev.c                                    |   16 
 drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c               |    2 
 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c                     |   68 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c                        |    2 
 drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.c                       |   18 
 drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c                   |    1 
 drivers/gpu/drm/nouveau/dispnv04/tvnv17.c                      |    6 
 drivers/gpu/drm/panel/panel-ilitek-ili9881c.c                  |    6 
 drivers/gpu/drm/panel/panel-simple.c                           |    1 
 drivers/gpu/drm/radeon/radeon.h                                |    1 
 drivers/gpu/drm/radeon/radeon_display.c                        |    8 
 drivers/i2c/i2c-slave-testunit.c                               |    5 
 drivers/iio/accel/Kconfig                                      |    2 
 drivers/iio/adc/ad7266.c                                       |    2 
 drivers/iio/adc/xilinx-ams.c                                   |    8 
 drivers/iio/chemical/bme680.h                                  |    2 
 drivers/iio/chemical/bme680_core.c                             |   62 ++
 drivers/infiniband/core/restrack.c                             |   51 --
 drivers/input/touchscreen/ili210x.c                            |    4 
 drivers/irqchip/irq-loongson-liointc.c                         |    4 
 drivers/media/dvb-core/dvbdev.c                                |    2 
 drivers/mmc/host/sdhci-brcmstb.c                               |    4 
 drivers/mmc/host/sdhci-pci-core.c                              |   11 
 drivers/mmc/host/sdhci.c                                       |   25 -
 drivers/mtd/parsers/redboot.c                                  |    2 
 drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c                 |   14 
 drivers/net/can/spi/mcp251xfd/mcp251xfd-tx.c                   |   55 +-
 drivers/net/can/spi/mcp251xfd/mcp251xfd.h                      |    5 
 drivers/net/dsa/microchip/ksz9477.c                            |   10 
 drivers/net/dsa/microchip/ksz9477_reg.h                        |    1 
 drivers/net/dsa/microchip/ksz_common.c                         |    2 
 drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c               |   14 
 drivers/net/ethernet/ibm/ibmvnic.c                             |    6 
 drivers/net/ethernet/mellanox/mlxsw/spectrum_buffers.c         |   20 
 drivers/net/phy/micrel.c                                       |    1 
 drivers/net/usb/ax88179_178a.c                                 |    6 
 drivers/pinctrl/core.c                                         |    2 
 drivers/pinctrl/pinctrl-rockchip.c                             |   68 ++
 drivers/pinctrl/pinctrl-rockchip.h                             |    1 
 drivers/pinctrl/qcom/pinctrl-spmi-gpio.c                       |    1 
 drivers/pwm/pwm-stm32.c                                        |    3 
 drivers/soc/ti/wkup_m3_ipc.c                                   |    7 
 drivers/tty/serial/8250/8250_omap.c                            |   22 
 drivers/tty/serial/imx.c                                       |   10 
 drivers/tty/serial/mcf.c                                       |    2 
 drivers/usb/atm/cxacru.c                                       |   14 
 drivers/usb/dwc3/core.c                                        |    6 
 drivers/usb/gadget/function/f_printer.c                        |   40 +
 drivers/usb/gadget/udc/aspeed_udc.c                            |    4 
 drivers/usb/musb/da8xx.c                                       |    8 
 drivers/usb/typec/ucsi/ucsi.c                                  |   55 +-
 drivers/usb/typec/ucsi/ucsi_stm32g0.c                          |   19 
 drivers/vdpa/vdpa_user/vduse_dev.c                             |   14 
 fs/btrfs/free-space-cache.c                                    |    2 
 fs/gfs2/super.c                                                |    2 
 fs/nfs/direct.c                                                |    2 
 fs/ocfs2/aops.c                                                |    5 
 fs/ocfs2/journal.c                                             |   17 
 fs/ocfs2/journal.h                                             |    2 
 fs/ocfs2/ocfs2_trace.h                                         |    2 
 fs/open.c                                                      |    4 
 include/linux/compat.h                                         |    2 
 include/linux/efi.h                                            |   10 
 include/linux/filter.h                                         |    5 
 include/linux/ieee80211.h                                      |    2 
 include/linux/mmzone.h                                         |    9 
 include/linux/nvme.h                                           |    4 
 include/linux/syscalls.h                                       |    8 
 include/net/inet_connection_sock.h                             |    2 
 include/net/netfilter/nf_tables.h                              |   21 
 include/trace/events/qdisc.h                                   |    4 
 include/uapi/asm-generic/unistd.h                              |    2 
 kernel/bpf/core.c                                              |    6 
 kernel/bpf/ringbuf.c                                           |   31 +
 kernel/bpf/verifier.c                                          |    8 
 kernel/cpu.c                                                   |    8 
 kernel/sys_ni.c                                                |    2 
 mm/page_alloc.c                                                |    8 
 net/batman-adv/originator.c                                    |   27 +
 net/can/j1939/main.c                                           |    6 
 net/can/j1939/transport.c                                      |   21 
 net/core/filter.c                                              |    3 
 net/core/xdp.c                                                 |    4 
 net/dccp/ipv4.c                                                |    7 
 net/dccp/ipv6.c                                                |    7 
 net/ipv4/inet_connection_sock.c                                |   17 
 net/ipv4/tcp_input.c                                           |   45 +
 net/iucv/iucv.c                                                |   26 -
 net/netfilter/nf_tables_api.c                                  |   12 
 net/netfilter/nft_lookup.c                                     |    3 
 net/netfilter/nft_set_hash.c                                   |    8 
 net/netfilter/nft_set_pipapo.c                                 |   18 
 net/netfilter/nft_set_rbtree.c                                 |    6 
 scripts/Makefile.dtbinst                                       |    2 
 security/integrity/ima/ima_api.c                               |   16 
 security/integrity/ima/ima_template_lib.c                      |   17 
 sound/pci/hda/patch_realtek.c                                  |    3 
 sound/soc/amd/acp/acp-i2s.c                                    |    8 
 sound/soc/fsl/fsl-asoc-card.c                                  |    3 
 sound/soc/rockchip/rockchip_i2s_tdm.c                          |   13 
 sound/synth/emux/soundfont.c                                   |   17 
 152 files changed, 1233 insertions(+), 943 deletions(-)

Adrian Hunter (2):
      mmc: sdhci: Do not invert write-protect twice
      mmc: sdhci: Do not lock spinlock around mmc_gpio_get_ro()

Aleksandr Mishin (1):
      gpio: davinci: Validate the obtained number of IRQs

Alex Bee (1):
      arm64: dts: rockchip: Add sound-dai-cells for RK3368

Alex Deucher (1):
      drm/amdgpu/atomfirmware: fix parsing of vram_info

Alexander Sverdlin (1):
      iio: accel: fxls8962af: select IIO_BUFFER & IIO_KFIFO_BUF

Alibek Omarov (1):
      ASoC: rockchip: i2s-tdm: Fix trcm mode by setting clock on right mclk

Andrew Davis (1):
      soc: ti: wkup_m3_ipc: Send NULL dummy message instead of pointer message

Andy Chiu (1):
      riscv: stacktrace: convert arch_stack_walk() to noinstr

Anton Protopopov (1):
      bpf: Add a check for struct bpf_fib_lookup size

Ard Biesheuvel (3):
      efi: memmap: Move manipulation routines into x86 arch tree
      efi: xen: Set EFI_PARAVIRT for Xen dom0 boot on all architectures
      efi/x86: Free EFI memory map only when installing a new one.

Arnd Bergmann (11):
      sparc: fix old compat_sys_select()
      sparc: fix compat recv/recvfrom syscalls
      parisc: use correct compat recv/recvfrom syscalls
      powerpc: restore some missing spu syscalls
      parisc: use generic sys_fanotify_mark implementation
      sh: rework sync_file_range ABI
      csky, hexagon: fix broken sys_sync_file_range
      hexagon: fix fadvise64_64 calling conventions
      ftruncate: pass a signed offset
      syscalls: fix compat_sys_io_pgetevents_time64 usage
      syscalls: fix sys_fanotify_mark prototype

Christian A. Ehrhardt (1):
      usb: typec: ucsi: Never send a lone connector change ack

Christoph Hellwig (1):
      nfs: drop the incorrect assertion in nfs_swap_rw()

Christophe Leroy (1):
      bpf: Take return from set_memory_ro() into account with bpf_prog_lock_ro()

Dan Carpenter (1):
      usb: musb: da8xx: fix a resource leak in probe()

Daniel Borkmann (1):
      bpf: Fix overrunning reservations in ringbuf

Daniil Dulov (1):
      xdp: Remove WARN() from __xdp_reg_mem_model()

David Lechner (1):
      counter: ti-eqep: enable clock at probe

Dawei Li (2):
      net/iucv: Avoid explicit cpumask var allocation on stack
      net/dpaa2: Avoid explicit cpumask var allocation on stack

Denis Arefev (1):
      mtd: partitions: redboot: Added conversion of operands to a larger type

Dirk Su (1):
      ALSA: hda/realtek: fix mute/micmute LEDs don't work for EliteBook 645/665 G11.

Dragan Simic (1):
      kbuild: Install dtb files as 0644 in Makefile.dtbinst

Elinor Montmasson (1):
      ASoC: fsl-asoc-card: set priv->pdev before using it

Enguerrand de Ribaucourt (2):
      net: phy: micrel: add Microchip KSZ 9477 to the device table
      net: dsa: microchip: use collision based back pressure mode

Erick Archer (1):
      drm/radeon/radeon_display: Decrease the size of allocated memory

FUKAUMI Naoki (1):
      arm64: dts: rockchip: fix PMIC interrupt pin on ROCK Pi E

Fabrice Gasnier (1):
      usb: ucsi: stm32: fix command completion handling

Fernando Yang (1):
      iio: adc: ad7266: Fix variable checking bug

Greg Kroah-Hartman (2):
      Revert "cpufreq: amd-pstate: Fix the inconsistency in max frequency units"
      Linux 6.1.97

Hagar Hemdan (1):
      pinctrl: fix deadlock in create_pinctrl() when handling -EPROBE_DEFER

Hannes Reinecke (1):
      nvme: fixup comment for nvme RDMA Provider Type

Heikki Krogerus (1):
      usb: typec: ucsi: Ack also failed Get Error commands

Huacai Chen (1):
      irqchip/loongson-liointc: Set different ISRs for different cores

Huang-Huang Bao (4):
      pinctrl: rockchip: fix pinmux bits for RK3328 GPIO2-B pins
      pinctrl: rockchip: fix pinmux bits for RK3328 GPIO3-B pins
      pinctrl: rockchip: use dedicated pinctrl type for RK3328
      pinctrl: rockchip: fix pinmux reset in rockchip_pmx_set

Ido Schimmel (1):
      mlxsw: spectrum_buffers: Fix memory corruptions on Spectrum-4 systems

Ilpo Järvinen (1):
      mmc: sdhci-pci: Convert PCIBIOS_* return codes to errnos

Jan Kara (1):
      ocfs2: fix DIO failure due to insufficient transaction credits

Janusz Krzysztofik (1):
      drm/i915/gt: Fix potential UAF by revoke of fence registers

Jean-Michel Hautbois (1):
      tty: mcf: MCF54418 has 10 UARTS

Jeremy Kerr (1):
      usb: gadget: aspeed_udc: fix device address configuration

Joachim Vandersmissen (1):
      crypto: ecdh - explicitly zeroize private_key

Johan Hovold (1):
      pinctrl: qcom: spmi-gpio: drop broken pm8008 support

Johan Jonker (1):
      ARM: dts: rockchip: rk3066a: add #sound-dai-cells to hdmi node

Johannes Berg (1):
      wifi: ieee80211: check for NULL in ieee80211_mle_size_ok()

John Keeping (1):
      Input: ili210x - fix ili251x_read_touch_data() return value

Jonas Karlman (2):
      arm64: dts: rockchip: Fix SD NAND and eMMC init on rk3308-rock-pi-s
      arm64: dts: rockchip: Rename LED related pinctrl nodes on rk3308-rock-pi-s

Jose Ignacio Tornos Martinez (1):
      net: usb: ax88179_178a: improve link status logs

Julia Zhang (1):
      drm/amdgpu: avoid using null object of framebuffer

Juntong Deng (1):
      gfs2: Fix slab-use-after-free in gfs2_qd_dealloc

Kamal Dasu (1):
      mmc: sdhci-brcmstb: check R1_STATUS for erase/trim/discard

Kees Cook (1):
      randomize_kstack: Remove non-functional per-arch entropy filtering

Kent Gibson (1):
      gpiolib: cdev: Disallow reconfiguration without direction (uAPI v1)

Krzysztof Kozlowski (1):
      dt-bindings: i2c: atmel,at91sam: correct path to i2c-controller schema

Laurent Pinchart (1):
      drm/panel: ilitek-ili9881c: Fix warning with GPIO controllers that sleep

Lijo Lazar (1):
      drm/amdgpu: Fix pci state save during mode-1 reset

Linus Torvalds (1):
      x86: stop playing stack games in profile_pc()

Liu Ying (1):
      drm/panel: simple: Add missing display timing flags for KOE TX26D202VM0BWA

Ma Ke (2):
      drm/nouveau/dispnv04: fix null pointer dereference in nv17_tv_get_ld_modes
      drm/nouveau/dispnv04: fix null pointer dereference in nv17_tv_get_hd_modes

Mario Limonciello (2):
      ACPI: x86: utils: Add Picasso to the list for forcing StorageD3Enable
      ACPI: x86: Force StorageD3Enable on more products

Martin KaFai Lau (1):
      bpf: Mark bpf prog stack with kmsan_unposion_memory in interpreter mode

Martin Schiller (1):
      MIPS: pci: lantiq: restore reset gpio polarity

Maxime Coquelin (2):
      vduse: validate block features only with block devices
      vduse: Temporarily fail if control queue feature requested

Meng Li (1):
      usb: dwc3: core: remove lock of otg mode during gadget suspend/resume to avoid deadlock

Naohiro Aota (1):
      btrfs: zoned: fix initial free space detection

Neal Cardwell (1):
      tcp: fix tcp_rcv_fastopen_synack() to enter TCP_CA_Loss for failed TFO

Nick Child (1):
      ibmvnic: Free any outstanding tx skbs during scrq reset

Nikita Zhandarovich (1):
      usb: atm: cxacru: fix endpoint checking in cxacru_bind()

Niklas Cassel (2):
      ata: ahci: Clean up sysfs file on error
      ata: libata-core: Fix double free on error

Niklas Schnelle (1):
      s390/pci: Add missing virt_to_phys() for directed DIBV

Oleksij Rempel (2):
      net: can: j1939: recover socket queue on CAN bus error during BAM transmission
      net: can: j1939: enhanced error handling for tightly received RTS messages in xtp_rx_rts_session_new

Oliver Neukum (2):
      usb: gadget: printer: SS+ support
      usb: gadget: printer: fix races against disable

Oswald Buddenhagen (1):
      ALSA: emux: improve patch ioctl data validation

Pablo Neira Ayuso (2):
      netfilter: nf_tables: use timestamp to check for set element timeout
      netfilter: nf_tables: fully validate NFT_DATA_VALUE on store to data registers

Rafael J. Wysocki (1):
      cpufreq: intel_pstate: Use HWP to initialize ITMT if CPPC is missing

Ricardo Ribalda (1):
      media: dvbdev: Initialize sbuf

Rob Herring (1):
      dt-bindings: i2c: Drop unneeded quotes

Sean Anderson (1):
      iio: xilinx-ams: Don't include ams_ctrl_channels in scan_mask

Shigeru Yoshida (1):
      net: can: j1939: Initialize unused data in j1939_send_one()

Srinivasan Shanmugam (1):
      drm/amd/amdgpu: Fix style errors in amdgpu_drv.c & amdgpu_device.c

Stefan Berger (1):
      ima: Fix use-after-free on a dentry's dname.name

Stefan Eichenberger (2):
      serial: imx: set receiver level before starting uart
      serial: imx: only set receiver level if it is zero

Sven Eckelmann (1):
      batman-adv: Don't accept TT entries for out-of-spec VIDs

Thomas Bogendoerfer (1):
      Revert "MIPS: pci: lantiq: restore reset gpio polarity"

Tristram Ha (2):
      net: dsa: microchip: fix initial port flush problem
      net: dsa: microchip: fix wrong register write when masking interrupt

Udit Kumar (2):
      serial: 8250_omap: Implementation of Errata i2310
      serial: 8250_omap: Fix Errata i2310 with RX FIFO level check

Uros Bizjak (1):
      x86/fpu: Fix AMD X86_BUG_FXSAVE_LEAK fixup

Uwe Kleine-König (1):
      pwm: stm32: Refuse too small period requests

Vasileios Amoiridis (4):
      iio: chemical: bme680: Fix pressure value output
      iio: chemical: bme680: Fix calibration data variable
      iio: chemical: bme680: Fix overflows in compensate() functions
      iio: chemical: bme680: Fix sensor data read operation

Vijendar Mukunda (1):
      ASoC: amd: acp: remove i2s configuration check in acp_i2s_probe()

Vitor Soares (1):
      can: mcp251xfd: fix infinite loop when xmit fails

Wenchao Hao (1):
      RDMA/restrack: Fix potential invalid address access

Wolfram Sang (2):
      i2c: testunit: don't erase registers after STOP
      i2c: testunit: discard write requests while old command is running

Yunseong Kim (1):
      tracing/net_sched: NULL pointer dereference in perf_trace_qdisc_reset()

Yuntao Wang (1):
      cpu/hotplug: Fix dynstate assignment in __cpuhp_setup_state_cpuslocked()

luoxuanqiang (1):
      Fix race for duplicate reqsk on identical SYN

yangge (1):
      mm/page_alloc: Separate THP PCP into movable and non-movable categories

.

From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org,
	akpm@linux-foundation.org,
	torvalds@linux-foundation.org,
	stable@vger.kernel.org
Cc: lwn@lwn.net,
	jslaby@suse.cz,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Subject: Linux 6.6.37
Date: Fri,  5 Jul 2024 09:44:25 +0200
Message-ID: <2024070525-duke-dinner-a806@gregkh>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1268800
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.stable
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

I'm announcing the release of the 6.6.37 kernel.

All users of the 6.6 kernel series must upgrade.

The updated 6.6.y git tree can be found at:
	git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-6.6.y
and can be browsed at the normal kernel.org git web browser:
	https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary

thanks,

greg k-h

------------

 Documentation/kbuild/modules.rst                                   |    8 
 Makefile                                                           |    2 
 arch/arm/boot/dts/rockchip/rk3066a.dtsi                            |    1 
 arch/arm/net/bpf_jit_32.c                                          |   25 -
 arch/arm64/boot/dts/rockchip/rk3308-rock-pi-s.dts                  |   18 
 arch/arm64/boot/dts/rockchip/rk3328-rock-pi-e.dts                  |    4 
 arch/arm64/boot/dts/rockchip/rk3368.dtsi                           |    3 
 arch/arm64/boot/dts/rockchip/rk3399-gru.dtsi                       |    2 
 arch/arm64/boot/dts/rockchip/rk3588s-rock-5a.dts                   |    1 
 arch/arm64/include/asm/unistd32.h                                  |    2 
 arch/arm64/kernel/syscall.c                                        |   16 
 arch/csky/include/uapi/asm/unistd.h                                |    1 
 arch/hexagon/include/asm/syscalls.h                                |    6 
 arch/hexagon/include/uapi/asm/unistd.h                             |    1 
 arch/hexagon/kernel/syscalltab.c                                   |    7 
 arch/loongarch/net/bpf_jit.c                                       |   22 
 arch/mips/kernel/syscalls/syscall_n32.tbl                          |    2 
 arch/mips/kernel/syscalls/syscall_o32.tbl                          |    2 
 arch/mips/net/bpf_jit_comp.c                                       |    3 
 arch/parisc/Kconfig                                                |    1 
 arch/parisc/kernel/sys_parisc32.c                                  |    9 
 arch/parisc/kernel/syscalls/syscall.tbl                            |    6 
 arch/parisc/net/bpf_jit_core.c                                     |    8 
 arch/powerpc/kernel/syscalls/syscall.tbl                           |    6 
 arch/powerpc/net/bpf_jit.h                                         |   18 
 arch/powerpc/net/bpf_jit_comp.c                                    |  110 +++-
 arch/powerpc/net/bpf_jit_comp32.c                                  |   13 
 arch/powerpc/net/bpf_jit_comp64.c                                  |   10 
 arch/riscv/include/asm/insn.h                                      |    2 
 arch/riscv/kernel/stacktrace.c                                     |    2 
 arch/s390/include/asm/entry-common.h                               |    2 
 arch/s390/kernel/syscalls/syscall.tbl                              |    2 
 arch/s390/net/bpf_jit_comp.c                                       |    6 
 arch/s390/pci/pci_irq.c                                            |    2 
 arch/sh/kernel/sys_sh32.c                                          |   11 
 arch/sh/kernel/syscalls/syscall.tbl                                |    3 
 arch/sparc/kernel/sys32.S                                          |  221 ----------
 arch/sparc/kernel/syscalls/syscall.tbl                             |    8 
 arch/sparc/net/bpf_jit_comp_64.c                                   |    6 
 arch/x86/entry/syscalls/syscall_32.tbl                             |    2 
 arch/x86/include/asm/entry-common.h                                |   15 
 arch/x86/kernel/fpu/core.c                                         |    4 
 arch/x86/kernel/time.c                                             |   20 
 arch/x86/net/bpf_jit_comp32.c                                      |    3 
 crypto/ecdh.c                                                      |    2 
 drivers/ata/ahci.c                                                 |   17 
 drivers/ata/libata-core.c                                          |   29 -
 drivers/counter/ti-eqep.c                                          |    6 
 drivers/cpufreq/amd-pstate.c                                       |    2 
 drivers/cpufreq/intel_pstate.c                                     |   13 
 drivers/cxl/core/core.h                                            |    7 
 drivers/cxl/core/hdm.c                                             |   13 
 drivers/cxl/core/memdev.c                                          |   44 -
 drivers/cxl/core/region.c                                          |  137 ++++++
 drivers/cxl/cxl.h                                                  |    2 
 drivers/cxl/cxlmem.h                                               |   10 
 drivers/gpio/gpio-davinci.c                                        |    5 
 drivers/gpio/gpiolib-cdev.c                                        |   16 
 drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c                   |    2 
 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c                         |    7 
 drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.c                           |   18 
 drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c |   10 
 drivers/gpu/drm/amd/display/include/dpcd_defs.h                    |    5 
 drivers/gpu/drm/drm_fb_helper.c                                    |    6 
 drivers/gpu/drm/drm_fbdev_dma.c                                    |    5 
 drivers/gpu/drm/drm_file.c                                         |    8 
 drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c                       |    1 
 drivers/gpu/drm/nouveau/dispnv04/tvnv17.c                          |    6 
 drivers/gpu/drm/panel/panel-ilitek-ili9881c.c                      |    6 
 drivers/gpu/drm/panel/panel-simple.c                               |    1 
 drivers/gpu/drm/radeon/radeon.h                                    |    1 
 drivers/gpu/drm/radeon/radeon_display.c                            |    8 
 drivers/i2c/i2c-slave-testunit.c                                   |    5 
 drivers/iio/accel/Kconfig                                          |    2 
 drivers/iio/adc/ad7266.c                                           |    2 
 drivers/iio/adc/xilinx-ams.c                                       |    8 
 drivers/iio/chemical/bme680.h                                      |    2 
 drivers/iio/chemical/bme680_core.c                                 |   62 ++
 drivers/iio/pressure/bmp280-core.c                                 |   14 
 drivers/iio/pressure/bmp280.h                                      |    2 
 drivers/infiniband/core/restrack.c                                 |   51 --
 drivers/input/touchscreen/ili210x.c                                |    4 
 drivers/irqchip/Kconfig                                            |    2 
 drivers/irqchip/irq-loongson-eiointc.c                             |    5 
 drivers/irqchip/irq-loongson-liointc.c                             |    4 
 drivers/media/dvb-core/dvbdev.c                                    |    2 
 drivers/mmc/host/sdhci-brcmstb.c                                   |    4 
 drivers/mmc/host/sdhci-pci-core.c                                  |   11 
 drivers/mmc/host/sdhci-pci-o2micro.c                               |   41 -
 drivers/mmc/host/sdhci.c                                           |   25 -
 drivers/mtd/parsers/redboot.c                                      |    2 
 drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c                     |   14 
 drivers/net/can/spi/mcp251xfd/mcp251xfd-tx.c                       |   55 ++
 drivers/net/can/spi/mcp251xfd/mcp251xfd.h                          |    5 
 drivers/net/dsa/microchip/ksz9477.c                                |   10 
 drivers/net/dsa/microchip/ksz9477_reg.h                            |    1 
 drivers/net/dsa/microchip/ksz_common.c                             |    2 
 drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c                   |   14 
 drivers/net/ethernet/ibm/ibmvnic.c                                 |    6 
 drivers/net/ethernet/intel/ice/ice_main.c                          |   10 
 drivers/net/ethernet/mellanox/mlxsw/spectrum_buffers.c             |   20 
 drivers/net/ethernet/microsoft/mana/mana_en.c                      |    2 
 drivers/net/phy/micrel.c                                           |    1 
 drivers/net/usb/ax88179_178a.c                                     |    6 
 drivers/pci/msi/msi.c                                              |   10 
 drivers/pinctrl/core.c                                             |    2 
 drivers/pinctrl/pinctrl-rockchip.c                                 |   68 ++-
 drivers/pinctrl/pinctrl-rockchip.h                                 |    1 
 drivers/pinctrl/qcom/pinctrl-spmi-gpio.c                           |    1 
 drivers/pwm/pwm-stm32.c                                            |    3 
 drivers/scsi/libsas/sas_ata.c                                      |    6 
 drivers/scsi/libsas/sas_discover.c                                 |    2 
 drivers/soc/ti/wkup_m3_ipc.c                                       |    7 
 drivers/tty/serial/8250/8250_omap.c                                |   22 
 drivers/tty/serial/bcm63xx_uart.c                                  |    7 
 drivers/tty/serial/imx.c                                           |   10 
 drivers/tty/serial/mcf.c                                           |    2 
 drivers/usb/atm/cxacru.c                                           |   14 
 drivers/usb/dwc3/core.c                                            |   26 -
 drivers/usb/dwc3/core.h                                            |    1 
 drivers/usb/gadget/function/f_printer.c                            |   40 +
 drivers/usb/gadget/udc/aspeed_udc.c                                |    4 
 drivers/usb/musb/da8xx.c                                           |    8 
 drivers/usb/typec/ucsi/ucsi.c                                      |   55 +-
 drivers/usb/typec/ucsi/ucsi_glink.c                                |    5 
 drivers/usb/typec/ucsi/ucsi_stm32g0.c                              |   19 
 drivers/vdpa/vdpa_user/vduse_dev.c                                 |   14 
 fs/btrfs/free-space-cache.c                                        |    2 
 fs/btrfs/tree-log.c                                                |   43 +
 fs/erofs/data.c                                                    |    5 
 fs/gfs2/log.c                                                      |    3 
 fs/gfs2/super.c                                                    |    4 
 fs/nfs/direct.c                                                    |    2 
 fs/ocfs2/aops.c                                                    |    5 
 fs/ocfs2/journal.c                                                 |   17 
 fs/ocfs2/journal.h                                                 |    2 
 fs/ocfs2/ocfs2_trace.h                                             |    2 
 fs/open.c                                                          |    4 
 include/linux/compat.h                                             |    2 
 include/linux/filter.h                                             |   10 
 include/linux/ieee80211.h                                          |   15 
 include/linux/libata.h                                             |    1 
 include/linux/mmzone.h                                             |    9 
 include/linux/nvme.h                                               |    4 
 include/linux/serial_core.h                                        |   21 
 include/linux/syscalls.h                                           |    8 
 include/linux/workqueue.h                                          |    2 
 include/net/inet_connection_sock.h                                 |    2 
 include/net/netfilter/nf_tables.h                                  |    5 
 include/trace/events/qdisc.h                                       |    4 
 include/uapi/asm-generic/unistd.h                                  |    2 
 kernel/bpf/core.c                                                  |    6 
 kernel/bpf/ringbuf.c                                               |   31 +
 kernel/bpf/verifier.c                                              |   10 
 kernel/cpu.c                                                       |    8 
 kernel/sys_ni.c                                                    |    2 
 mm/page_alloc.c                                                    |    9 
 mm/vmalloc.c                                                       |   21 
 net/batman-adv/originator.c                                        |   27 +
 net/can/j1939/main.c                                               |    6 
 net/can/j1939/transport.c                                          |   21 
 net/core/xdp.c                                                     |    4 
 net/dccp/ipv4.c                                                    |    7 
 net/dccp/ipv6.c                                                    |    7 
 net/ipv4/inet_connection_sock.c                                    |   17 
 net/ipv4/tcp_input.c                                               |   45 +-
 net/iucv/iucv.c                                                    |   26 -
 net/netfilter/nf_hooks_lwtunnel.c                                  |    3 
 net/netfilter/nf_tables_api.c                                      |    8 
 net/netfilter/nft_lookup.c                                         |    3 
 net/openvswitch/conntrack.c                                        |    7 
 scripts/Makefile.dtbinst                                           |    2 
 scripts/Makefile.package                                           |    2 
 sound/core/seq/seq_ump_convert.c                                   |   10 
 sound/pci/hda/patch_realtek.c                                      |    3 
 sound/soc/amd/acp/acp-i2s.c                                        |    8 
 sound/soc/amd/acp/acp-pci.c                                        |   10 
 sound/soc/atmel/atmel-classd.c                                     |   17 
 sound/soc/atmel/atmel-pcm-dma.c                                    |    8 
 sound/soc/atmel/atmel-pcm-pdc.c                                    |    4 
 sound/soc/atmel/atmel-pdmic.c                                      |   12 
 sound/soc/atmel/atmel_wm8904.c                                     |    4 
 sound/soc/atmel/mikroe-proto.c                                     |    2 
 sound/soc/atmel/sam9g20_wm8731.c                                   |    2 
 sound/soc/atmel/sam9x5_wm8731.c                                    |    2 
 sound/soc/fsl/fsl-asoc-card.c                                      |    3 
 sound/soc/mediatek/mt8183/mt8183-da7219-max98357.c                 |   10 
 sound/soc/qcom/qdsp6/q6apm-lpass-dais.c                            |   32 -
 sound/soc/rockchip/rockchip_i2s_tdm.c                              |   13 
 sound/synth/emux/soundfont.c                                       |   17 
 tools/testing/cxl/test/cxl.c                                       |    4 
 tools/testing/selftests/net/mptcp/userspace_pm.sh                  |   50 +-
 192 files changed, 1473 insertions(+), 908 deletions(-)

Adam Rizkalla (1):
      iio: pressure: bmp280: Fix BMP580 temperature reading

Adrian Hunter (2):
      mmc: sdhci: Do not invert write-protect twice
      mmc: sdhci: Do not lock spinlock around mmc_gpio_get_ro()

Aleksandr Mishin (1):
      gpio: davinci: Validate the obtained number of IRQs

Alex Bee (1):
      arm64: dts: rockchip: Add sound-dai-cells for RK3368

Alex Deucher (1):
      drm/amdgpu/atomfirmware: fix parsing of vram_info

Alexander Sverdlin (1):
      iio: accel: fxls8962af: select IIO_BUFFER & IIO_KFIFO_BUF

Alibek Omarov (1):
      ASoC: rockchip: i2s-tdm: Fix trcm mode by setting clock on right mclk

Alison Schofield (2):
      cxl/region: Move cxl_dpa_to_region() work to the region driver
      cxl/region: Avoid null pointer dereference in region lookup

Andreas Gruenbacher (1):
      gfs2: Fix NULL pointer dereference in gfs2_log_flush

Andrei Simion (1):
      ASoC: atmel: atmel-classd: Re-add dai_link->platform to fix card init

Andrew Davis (1):
      soc: ti: wkup_m3_ipc: Send NULL dummy message instead of pointer message

Andy Chiu (1):
      riscv: stacktrace: convert arch_stack_walk() to noinstr

Arnd Bergmann (11):
      sparc: fix old compat_sys_select()
      sparc: fix compat recv/recvfrom syscalls
      parisc: use correct compat recv/recvfrom syscalls
      powerpc: restore some missing spu syscalls
      parisc: use generic sys_fanotify_mark implementation
      sh: rework sync_file_range ABI
      csky, hexagon: fix broken sys_sync_file_range
      hexagon: fix fadvise64_64 calling conventions
      ftruncate: pass a signed offset
      syscalls: fix compat_sys_io_pgetevents_time64 usage
      syscalls: fix sys_fanotify_mark prototype

Christian A. Ehrhardt (1):
      usb: typec: ucsi: Never send a lone connector change ack

Christoph Hellwig (1):
      nfs: drop the incorrect assertion in nfs_swap_rw()

Christophe Leroy (2):
      bpf: Take return from set_memory_ro() into account with bpf_prog_lock_ro()
      bpf: Take return from set_memory_rox() into account with bpf_jit_binary_lock_ro()

Dan Carpenter (1):
      usb: musb: da8xx: fix a resource leak in probe()

Daniel Borkmann (1):
      bpf: Fix overrunning reservations in ringbuf

Daniil Dulov (1):
      xdp: Remove WARN() from __xdp_reg_mem_model()

David Lechner (1):
      counter: ti-eqep: enable clock at probe

Dawei Li (2):
      net/iucv: Avoid explicit cpumask var allocation on stack
      net/dpaa2: Avoid explicit cpumask var allocation on stack

Denis Arefev (1):
      mtd: partitions: redboot: Added conversion of operands to a larger type

Dirk Su (1):
      ALSA: hda/realtek: fix mute/micmute LEDs don't work for EliteBook 645/665 G11.

Doug Brown (1):
      Revert "serial: core: only stop transmit when HW fifo is empty"

Dragan Simic (1):
      kbuild: Install dtb files as 0644 in Makefile.dtbinst

Elinor Montmasson (1):
      ASoC: fsl-asoc-card: set priv->pdev before using it

Enguerrand de Ribaucourt (2):
      net: phy: micrel: add Microchip KSZ 9477 to the device table
      net: dsa: microchip: use collision based back pressure mode

Erick Archer (1):
      drm/radeon/radeon_display: Decrease the size of allocated memory

FUKAUMI Naoki (2):
      arm64: dts: rockchip: make poweroff(8) work on Radxa ROCK 5A
      arm64: dts: rockchip: fix PMIC interrupt pin on ROCK Pi E

Fabrice Gasnier (1):
      usb: ucsi: stm32: fix command completion handling

Fernando Yang (1):
      iio: adc: ad7266: Fix variable checking bug

Filipe Manana (1):
      btrfs: use NOFS context when getting inodes during logging and log replay

Geliang Tang (1):
      selftests: mptcp: print_test out of verify_listener_events

Greg Kroah-Hartman (2):
      Revert "cpufreq: amd-pstate: Fix the inconsistency in max frequency units"
      Linux 6.6.37

Hagar Hemdan (1):
      pinctrl: fix deadlock in create_pinctrl() when handling -EPROBE_DEFER

Hannes Reinecke (1):
      nvme: fixup comment for nvme RDMA Provider Type

Hari Bathini (2):
      powerpc/bpf: rename powerpc64_jit_data to powerpc_jit_data
      powerpc/bpf: use bpf_jit_binary_pack_[alloc|finalize|free]

Heikki Krogerus (1):
      usb: typec: ucsi: Ack also failed Get Error commands

Hsin-Te Yuan (2):
      ASoC: mediatek: mt8183-da7219-max98357: Fix kcontrol name collision
      arm64: dts: rockchip: Fix the value of `dlg,jack-det-rate` mismatch on rk3399-gru

Huacai Chen (2):
      irqchip/loongson-eiointc: Use early_cpu_to_node() instead of cpu_to_node()
      irqchip/loongson-liointc: Set different ISRs for different cores

Huang-Huang Bao (4):
      pinctrl: rockchip: fix pinmux bits for RK3328 GPIO2-B pins
      pinctrl: rockchip: fix pinmux bits for RK3328 GPIO3-B pins
      pinctrl: rockchip: use dedicated pinctrl type for RK3328
      pinctrl: rockchip: fix pinmux reset in rockchip_pmx_set

Ido Schimmel (1):
      mlxsw: spectrum_buffers: Fix memory corruptions on Spectrum-4 systems

Ilpo Järvinen (2):
      mmc: sdhci-pci-o2micro: Convert PCIBIOS_* return codes to errnos
      mmc: sdhci-pci: Convert PCIBIOS_* return codes to errnos

Jan Kara (1):
      ocfs2: fix DIO failure due to insufficient transaction credits

Jan Sokolowski (1):
      ice: Rebuild TC queues on VSI queue reconfiguration

Jann Horn (1):
      drm/drm_file: Fix pid refcounting race

Janusz Krzysztofik (1):
      drm/i915/gt: Fix potential UAF by revoke of fence registers

Javier Carrasco (1):
      usb: typec: ucsi: glink: fix child node release in probe function

Jean-Michel Hautbois (1):
      tty: mcf: MCF54418 has 10 UARTS

Jeff Johnson (1):
      wifi: mac80211: Use flexible array in struct ieee80211_tim_ie

Jeremy Kerr (1):
      usb: gadget: aspeed_udc: fix device address configuration

Jesse Taube (1):
      RISC-V: fix vector insn load/store width mask

Jianguo Wu (1):
      netfilter: fix undefined reference to 'netfilter_lwtunnel_*' when CONFIG_SYSCTL=n

Jingbo Xu (1):
      erofs: fix NULL dereference of dif->bdev_handle in fscache mode

Joachim Vandersmissen (1):
      crypto: ecdh - explicitly zeroize private_key

Johan Hovold (1):
      pinctrl: qcom: spmi-gpio: drop broken pm8008 support

Johan Jonker (1):
      ARM: dts: rockchip: rk3066a: add #sound-dai-cells to hdmi node

Johannes Berg (1):
      wifi: ieee80211: check for NULL in ieee80211_mle_size_ok()

John Keeping (1):
      Input: ili210x - fix ili251x_read_touch_data() return value

Jonas Gorski (2):
      serial: core: introduce uart_port_tx_limited_flags()
      serial: bcm63xx-uart: fix tx after conversion to uart_port_tx_limited()

Jonas Karlman (2):
      arm64: dts: rockchip: Fix SD NAND and eMMC init on rk3308-rock-pi-s
      arm64: dts: rockchip: Rename LED related pinctrl nodes on rk3308-rock-pi-s

Jos Wang (1):
      usb: dwc3: core: Workaround for CSR read timeout

Jose Ignacio Tornos Martinez (1):
      net: usb: ax88179_178a: improve link status logs

Julia Zhang (1):
      drm/amdgpu: avoid using null object of framebuffer

Kamal Dasu (1):
      mmc: sdhci-brcmstb: check R1_STATUS for erase/trim/discard

Kees Cook (1):
      randomize_kstack: Remove non-functional per-arch entropy filtering

Kent Gibson (1):
      gpiolib: cdev: Disallow reconfiguration without direction (uAPI v1)

Kuninori Morimoto (1):
      ASoC: atmel: convert not to use asoc_xxx()

Laurent Pinchart (1):
      drm/panel: ilitek-ili9881c: Fix warning with GPIO controllers that sleep

Li peiyu (1):
      iio: pressure: fix some word spelling errors

Lijo Lazar (1):
      drm/amdgpu: Fix pci state save during mode-1 reset

Linus Torvalds (1):
      x86: stop playing stack games in profile_pc()

Liu Ying (1):
      drm/panel: simple: Add missing display timing flags for KOE TX26D202VM0BWA

Ma Ke (3):
      net: mana: Fix possible double free in error handling path
      drm/nouveau/dispnv04: fix null pointer dereference in nv17_tv_get_ld_modes
      drm/nouveau/dispnv04: fix null pointer dereference in nv17_tv_get_hd_modes

Mark-PK Tsai (1):
      kbuild: doc: Update default INSTALL_MOD_DIR from extra to updates

Martin KaFai Lau (1):
      bpf: Mark bpf prog stack with kmsan_unposion_memory in interpreter mode

Martin Schiller (1):
      MIPS: pci: lantiq: restore reset gpio polarity

Matthieu Baerts (NGI0) (1):
      selftests: mptcp: userspace_pm: fixed subtest names

Maxime Coquelin (2):
      vduse: validate block features only with block devices
      vduse: Temporarily fail if control queue feature requested

Meng Li (1):
      usb: dwc3: core: remove lock of otg mode during gadget suspend/resume to avoid deadlock

Michael Strauss (1):
      drm/amd/display: Send DP_TOTAL_LTTPR_CNT during detection if LTTPR is present

Mostafa Saleh (1):
      PCI/MSI: Fix UAF in msi_capability_init

Naohiro Aota (1):
      btrfs: zoned: fix initial free space detection

Neal Cardwell (1):
      tcp: fix tcp_rcv_fastopen_synack() to enter TCP_CA_Loss for failed TFO

Nick Child (1):
      ibmvnic: Free any outstanding tx skbs during scrq reset

Nikita Zhandarovich (1):
      usb: atm: cxacru: fix endpoint checking in cxacru_bind()

Niklas Cassel (4):
      ata: libata-core: Fix null pointer dereference on error
      ata,scsi: libata-core: Do not leak memory for ata_port struct members
      ata: ahci: Clean up sysfs file on error
      ata: libata-core: Fix double free on error

Niklas Schnelle (1):
      s390/pci: Add missing virt_to_phys() for directed DIBV

Oleksij Rempel (2):
      net: can: j1939: recover socket queue on CAN bus error during BAM transmission
      net: can: j1939: enhanced error handling for tightly received RTS messages in xtp_rx_rts_session_new

Oliver Neukum (2):
      usb: gadget: printer: SS+ support
      usb: gadget: printer: fix races against disable

Oswald Buddenhagen (1):
      ALSA: emux: improve patch ioctl data validation

Pablo Neira Ayuso (1):
      netfilter: nf_tables: fully validate NFT_DATA_VALUE on store to data registers

Rafael J. Wysocki (1):
      cpufreq: intel_pstate: Use HWP to initialize ITMT if CPPC is missing

Ricardo Ribalda (1):
      media: dvbdev: Initialize sbuf

Sean Anderson (1):
      iio: xilinx-ams: Don't include ams_ctrl_channels in scan_mask

Shigeru Yoshida (1):
      net: can: j1939: Initialize unused data in j1939_send_one()

Srinivas Kandagatla (1):
      ASoC: q6apm-lpass-dai: close graph on prepare errors

Stefan Eichenberger (2):
      serial: imx: set receiver level before starting uart
      serial: imx: only set receiver level if it is zero

Sven Eckelmann (1):
      batman-adv: Don't accept TT entries for out-of-spec VIDs

Takashi Iwai (2):
      ALSA: seq: Fix missing channel at encoding RPN/NRPN MIDI2 messages
      ALSA: seq: Fix missing MSB in MIDI2 SPP conversion

Thayne Harbaugh (1):
      kbuild: Fix build target deb-pkg: ln: failed to create hard link

Thomas Bogendoerfer (1):
      Revert "MIPS: pci: lantiq: restore reset gpio polarity"

Thomas Zimmermann (1):
      drm/fbdev-dma: Only set smem_start is enable per module option

Tiezhu Yang (1):
      irqchip/loongson: Select GENERIC_IRQ_EFFECTIVE_AFF_MASK if SMP for IRQ_LOONGARCH_CPU

Tristram Ha (2):
      net: dsa: microchip: fix initial port flush problem
      net: dsa: microchip: fix wrong register write when masking interrupt

Udit Kumar (2):
      serial: 8250_omap: Implementation of Errata i2310
      serial: 8250_omap: Fix Errata i2310 with RX FIFO level check

Uros Bizjak (1):
      x86/fpu: Fix AMD X86_BUG_FXSAVE_LEAK fixup

Uwe Kleine-König (1):
      pwm: stm32: Refuse too small period requests

Vasileios Amoiridis (4):
      iio: chemical: bme680: Fix pressure value output
      iio: chemical: bme680: Fix calibration data variable
      iio: chemical: bme680: Fix overflows in compensate() functions
      iio: chemical: bme680: Fix sensor data read operation

Vijendar Mukunda (2):
      ASoC: amd: acp: add a null check for chip_pdev structure
      ASoC: amd: acp: remove i2s configuration check in acp_i2s_probe()

Vitor Soares (1):
      can: mcp251xfd: fix infinite loop when xmit fails

Wenchao Hao (2):
      workqueue: Increase worker desc's length to 32
      RDMA/restrack: Fix potential invalid address access

Wesley Cheng (1):
      usb: dwc3: core: Add DWC31 version 2.00a controller

Wolfram Sang (2):
      i2c: testunit: don't erase registers after STOP
      i2c: testunit: discard write requests while old command is running

Xin Long (1):
      openvswitch: get related ct labels from its master if it is not confirmed

Yao Xingtao (1):
      cxl/region: check interleave capability

Yonghong Song (2):
      bpf: Add missed var_off setting in set_sext32_default_val()
      bpf: Add missed var_off setting in coerce_subreg_to_size_sx()

Yunseong Kim (1):
      tracing/net_sched: NULL pointer dereference in perf_trace_qdisc_reset()

Yuntao Wang (1):
      cpu/hotplug: Fix dynstate assignment in __cpuhp_setup_state_cpuslocked()

Zhaoyang Huang (1):
      mm: fix incorrect vbq reference in purge_fragmented_block

luoxuanqiang (1):
      Fix race for duplicate reqsk on identical SYN

yangge (1):
      mm/page_alloc: Separate THP PCP into movable and non-movable categories

.

From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org,
	akpm@linux-foundation.org,
	torvalds@linux-foundation.org,
	stable@vger.kernel.org
Cc: lwn@lwn.net,
	jslaby@suse.cz,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Subject: Linux 6.9.8
Date: Fri,  5 Jul 2024 09:44:35 +0200
Message-ID: <2024070535-graph-crisping-553b@gregkh>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1268801
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.stable
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

I'm announcing the release of the 6.9.8 kernel.

All users of the 6.9 kernel series must upgrade.

The updated 6.9.y git tree can be found at:
	git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-6.9.y
and can be browsed at the normal kernel.org git web browser:
	https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary

thanks,

greg k-h

------------

 Documentation/kbuild/modules.rst                                   |    8 
 Makefile                                                           |    2 
 arch/arm/boot/dts/rockchip/rk3066a.dtsi                            |    1 
 arch/arm/net/bpf_jit_32.c                                          |   25 
 arch/arm64/boot/dts/rockchip/rk3308-rock-pi-s.dts                  |   18 
 arch/arm64/boot/dts/rockchip/rk3328-rock-pi-e.dts                  |    4 
 arch/arm64/boot/dts/rockchip/rk3368.dtsi                           |    3 
 arch/arm64/boot/dts/rockchip/rk3399-gru.dtsi                       |    2 
 arch/arm64/boot/dts/rockchip/rk3588-orangepi-5-plus.dts            |    1 
 arch/arm64/boot/dts/rockchip/rk3588-quartzpro64.dts                |    1 
 arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dts                    |    1 
 arch/arm64/boot/dts/rockchip/rk3588-tiger.dtsi                     |    5 
 arch/arm64/boot/dts/rockchip/rk3588s-coolpi-4b.dts                 |    4 
 arch/arm64/boot/dts/rockchip/rk3588s-rock-5a.dts                   |    2 
 arch/arm64/include/asm/unistd32.h                                  |    2 
 arch/arm64/kernel/pi/map_kernel.c                                  |    2 
 arch/arm64/kernel/syscall.c                                        |   16 
 arch/csky/include/uapi/asm/unistd.h                                |    1 
 arch/hexagon/include/asm/syscalls.h                                |    6 
 arch/hexagon/include/uapi/asm/unistd.h                             |    1 
 arch/hexagon/kernel/syscalltab.c                                   |    7 
 arch/loongarch/net/bpf_jit.c                                       |   22 
 arch/mips/kernel/syscalls/syscall_n32.tbl                          |    2 
 arch/mips/kernel/syscalls/syscall_o32.tbl                          |    2 
 arch/mips/net/bpf_jit_comp.c                                       |    3 
 arch/parisc/Kconfig                                                |    1 
 arch/parisc/kernel/sys_parisc32.c                                  |    9 
 arch/parisc/kernel/syscalls/syscall.tbl                            |    6 
 arch/parisc/net/bpf_jit_core.c                                     |    8 
 arch/powerpc/kernel/syscalls/syscall.tbl                           |    6 
 arch/riscv/include/asm/insn.h                                      |    2 
 arch/riscv/kernel/stacktrace.c                                     |    2 
 arch/s390/include/asm/entry-common.h                               |    2 
 arch/s390/kernel/syscalls/syscall.tbl                              |    2 
 arch/s390/net/bpf_jit_comp.c                                       |    6 
 arch/s390/pci/pci_irq.c                                            |    2 
 arch/sh/kernel/sys_sh32.c                                          |   11 
 arch/sh/kernel/syscalls/syscall.tbl                                |    3 
 arch/sparc/kernel/sys32.S                                          |  221 ------
 arch/sparc/kernel/syscalls/syscall.tbl                             |    8 
 arch/sparc/net/bpf_jit_comp_64.c                                   |    6 
 arch/x86/entry/syscalls/syscall_32.tbl                             |    2 
 arch/x86/include/asm/entry-common.h                                |   15 
 arch/x86/kernel/fpu/core.c                                         |    4 
 arch/x86/kernel/time.c                                             |   20 
 arch/x86/net/bpf_jit_comp32.c                                      |    3 
 crypto/ecdh.c                                                      |    2 
 drivers/ata/ahci.c                                                 |   17 
 drivers/ata/libata-core.c                                          |   32 
 drivers/counter/ti-eqep.c                                          |    6 
 drivers/cpufreq/intel_pstate.c                                     |   13 
 drivers/cxl/core/core.h                                            |    7 
 drivers/cxl/core/hdm.c                                             |   13 
 drivers/cxl/core/memdev.c                                          |   44 -
 drivers/cxl/core/pmem.c                                            |   16 
 drivers/cxl/core/region.c                                          |  182 ++++-
 drivers/cxl/cxl.h                                                  |    6 
 drivers/cxl/cxlmem.h                                               |   10 
 drivers/cxl/mem.c                                                  |   17 
 drivers/gpio/gpio-davinci.c                                        |    5 
 drivers/gpio/gpiolib-cdev.c                                        |   28 
 drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c                   |    2 
 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c                         |    7 
 drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.c                           |   18 
 drivers/gpu/drm/amd/display/dc/dml2/dml2_utils.c                   |    5 
 drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_capability.c |   10 
 drivers/gpu/drm/amd/display/dc/resource/dcn31/dcn31_resource.c     |    2 
 drivers/gpu/drm/amd/display/include/dpcd_defs.h                    |    5 
 drivers/gpu/drm/drm_fb_helper.c                                    |    6 
 drivers/gpu/drm/drm_fbdev_dma.c                                    |    5 
 drivers/gpu/drm/drm_file.c                                         |    8 
 drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c                       |    1 
 drivers/gpu/drm/nouveau/dispnv04/tvnv17.c                          |    6 
 drivers/gpu/drm/panel/panel-ilitek-ili9881c.c                      |    6 
 drivers/gpu/drm/panel/panel-simple.c                               |    1 
 drivers/gpu/drm/radeon/radeon.h                                    |    1 
 drivers/gpu/drm/radeon/radeon_display.c                            |    8 
 drivers/gpu/drm/xe/xe_devcoredump.c                                |   10 
 drivers/gpu/drm/xe/xe_pat.c                                        |    2 
 drivers/gpu/drm/xe/xe_ttm_stolen_mgr.c                             |    5 
 drivers/gpu/drm/xe/xe_ttm_vram_mgr.c                               |    2 
 drivers/i2c/i2c-slave-testunit.c                                   |    5 
 drivers/iio/accel/Kconfig                                          |    2 
 drivers/iio/adc/ad7266.c                                           |    2 
 drivers/iio/adc/xilinx-ams.c                                       |    8 
 drivers/iio/chemical/bme680.h                                      |    2 
 drivers/iio/chemical/bme680_core.c                                 |   62 +
 drivers/iio/humidity/hdc3020.c                                     |  325 +++++++---
 drivers/infiniband/core/restrack.c                                 |   51 -
 drivers/input/touchscreen/ili210x.c                                |    4 
 drivers/iommu/amd/amd_iommu.h                                      |    1 
 drivers/iommu/amd/init.c                                           |    1 
 drivers/iommu/amd/iommu.c                                          |   34 -
 drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-sva.c                    |    3 
 drivers/irqchip/Kconfig                                            |    2 
 drivers/irqchip/irq-loongson-eiointc.c                             |    5 
 drivers/irqchip/irq-loongson-liointc.c                             |    4 
 drivers/media/dvb-core/dvbdev.c                                    |    2 
 drivers/mmc/host/moxart-mmc.c                                      |   78 +-
 drivers/mmc/host/sdhci-brcmstb.c                                   |    4 
 drivers/mmc/host/sdhci-pci-core.c                                  |   11 
 drivers/mmc/host/sdhci-pci-o2micro.c                               |   41 -
 drivers/mmc/host/sdhci.c                                           |   25 
 drivers/mtd/parsers/redboot.c                                      |    2 
 drivers/net/bonding/bond_main.c                                    |    3 
 drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c                     |   14 
 drivers/net/can/spi/mcp251xfd/mcp251xfd-tx.c                       |   55 +
 drivers/net/can/spi/mcp251xfd/mcp251xfd.h                          |    5 
 drivers/net/dsa/microchip/ksz9477.c                                |   10 
 drivers/net/dsa/microchip/ksz9477_reg.h                            |    1 
 drivers/net/dsa/microchip/ksz_common.c                             |    2 
 drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c                   |   14 
 drivers/net/ethernet/ibm/ibmvnic.c                                 |    6 
 drivers/net/ethernet/intel/ice/ice_main.c                          |   10 
 drivers/net/ethernet/mellanox/mlxsw/pci.c                          |   18 
 drivers/net/ethernet/mellanox/mlxsw/reg.h                          |    2 
 drivers/net/ethernet/mellanox/mlxsw/spectrum_buffers.c             |   20 
 drivers/net/ethernet/microsoft/mana/mana_en.c                      |    2 
 drivers/net/ethernet/pensando/ionic/ionic_dev.h                    |    4 
 drivers/net/ethernet/pensando/ionic/ionic_lif.c                    |    2 
 drivers/net/ethernet/pensando/ionic/ionic_txrx.c                   |   55 +
 drivers/net/phy/micrel.c                                           |    1 
 drivers/net/phy/sfp.c                                              |   18 
 drivers/net/usb/ax88179_178a.c                                     |    6 
 drivers/net/vxlan/vxlan_core.c                                     |    9 
 drivers/net/wireless/realtek/rtw89/fw.c                            |   27 
 drivers/nvme/target/configfs.c                                     |   41 -
 drivers/nvme/target/fc.c                                           |    2 
 drivers/pci/msi/msi.c                                              |   10 
 drivers/pinctrl/core.c                                             |    2 
 drivers/pinctrl/pinctrl-rockchip.c                                 |   68 +-
 drivers/pinctrl/pinctrl-rockchip.h                                 |    1 
 drivers/pinctrl/qcom/pinctrl-spmi-gpio.c                           |    1 
 drivers/pinctrl/renesas/pinctrl-rzg2l.c                            |    4 
 drivers/pwm/pwm-stm32.c                                            |   62 +
 drivers/reset/Kconfig                                              |    1 
 drivers/s390/virtio/virtio_ccw.c                                   |    4 
 drivers/scsi/libsas/sas_ata.c                                      |    6 
 drivers/scsi/libsas/sas_discover.c                                 |    2 
 drivers/soc/ti/wkup_m3_ipc.c                                       |    7 
 drivers/tty/mxser.c                                                |    2 
 drivers/tty/serial/8250/8250_omap.c                                |   22 
 drivers/tty/serial/8250/8250_pci.c                                 |   13 
 drivers/tty/serial/bcm63xx_uart.c                                  |    7 
 drivers/tty/serial/imx.c                                           |   10 
 drivers/tty/serial/mcf.c                                           |    2 
 drivers/usb/atm/cxacru.c                                           |   14 
 drivers/usb/dwc3/core.c                                            |   26 
 drivers/usb/gadget/function/f_printer.c                            |   40 -
 drivers/usb/gadget/function/u_ether.c                              |    4 
 drivers/usb/gadget/udc/aspeed_udc.c                                |    4 
 drivers/usb/musb/da8xx.c                                           |    8 
 drivers/usb/typec/ucsi/ucsi.c                                      |   55 -
 drivers/usb/typec/ucsi/ucsi_glink.c                                |    5 
 drivers/usb/typec/ucsi/ucsi_stm32g0.c                              |   19 
 drivers/vdpa/vdpa_user/vduse_dev.c                                 |   14 
 fs/bcachefs/bcachefs.h                                             |   44 -
 fs/bcachefs/btree_gc.c                                             |   15 
 fs/bcachefs/btree_gc.h                                             |   48 -
 fs/bcachefs/btree_gc_types.h                                       |   29 
 fs/bcachefs/ec.c                                                   |    2 
 fs/bcachefs/sb-downgrade.c                                         |   17 
 fs/bcachefs/super-io.c                                             |   12 
 fs/btrfs/free-space-cache.c                                        |    2 
 fs/btrfs/tree-log.c                                                |   43 -
 fs/gfs2/log.c                                                      |    3 
 fs/gfs2/super.c                                                    |    4 
 fs/netfs/buffered_write.c                                          |   12 
 fs/nfs/direct.c                                                    |    2 
 fs/nfsd/nfsctl.c                                                   |    2 
 fs/nfsd/nfssvc.c                                                   |    1 
 fs/ocfs2/aops.c                                                    |    5 
 fs/ocfs2/journal.c                                                 |   17 
 fs/ocfs2/journal.h                                                 |    2 
 fs/ocfs2/ocfs2_trace.h                                             |    2 
 fs/open.c                                                          |    4 
 include/linux/compat.h                                             |    2 
 include/linux/filter.h                                             |   10 
 include/linux/ieee80211.h                                          |    2 
 include/linux/libata.h                                             |    1 
 include/linux/mmzone.h                                             |    9 
 include/linux/nvme.h                                               |    6 
 include/linux/serial_core.h                                        |   21 
 include/linux/syscalls.h                                           |    8 
 include/linux/workqueue.h                                          |    2 
 include/net/inet_connection_sock.h                                 |    2 
 include/net/netfilter/nf_tables.h                                  |    5 
 include/trace/events/qdisc.h                                       |    4 
 include/uapi/asm-generic/unistd.h                                  |    2 
 io_uring/io_uring.c                                                |    4 
 kernel/bpf/arena.c                                                 |   16 
 kernel/bpf/core.c                                                  |    6 
 kernel/bpf/ringbuf.c                                               |   31 
 kernel/bpf/verifier.c                                              |   69 +-
 kernel/cpu.c                                                       |   11 
 kernel/sys_ni.c                                                    |    2 
 mm/kasan/common.c                                                  |    2 
 mm/memory.c                                                        |    3 
 mm/page_alloc.c                                                    |    9 
 mm/vmalloc.c                                                       |   21 
 net/batman-adv/originator.c                                        |   27 
 net/can/j1939/main.c                                               |    6 
 net/can/j1939/transport.c                                          |   21 
 net/core/filter.c                                                  |    3 
 net/core/xdp.c                                                     |    4 
 net/dccp/ipv4.c                                                    |    7 
 net/dccp/ipv6.c                                                    |    7 
 net/ipv4/inet_connection_sock.c                                    |   17 
 net/ipv4/tcp_input.c                                               |   45 +
 net/iucv/iucv.c                                                    |   26 
 net/netfilter/nf_hooks_lwtunnel.c                                  |    3 
 net/netfilter/nf_tables_api.c                                      |    8 
 net/netfilter/nft_lookup.c                                         |    3 
 net/openvswitch/conntrack.c                                        |    7 
 net/sunrpc/svc.c                                                   |    5 
 net/unix/af_unix.c                                                 |   37 -
 scripts/Makefile.dtbinst                                           |    2 
 scripts/Makefile.package                                           |    2 
 scripts/package/kernel.spec                                        |    8 
 security/integrity/evm/evm_main.c                                  |   12 
 sound/core/seq/seq_ump_convert.c                                   |   10 
 sound/pci/hda/patch_realtek.c                                      |    3 
 sound/soc/amd/acp/acp-i2s.c                                        |    8 
 sound/soc/amd/acp/acp-pci.c                                        |   12 
 sound/soc/atmel/atmel-classd.c                                     |    7 
 sound/soc/codecs/cs42l43-jack.c                                    |    4 
 sound/soc/fsl/fsl-asoc-card.c                                      |    3 
 sound/soc/mediatek/mt8183/mt8183-da7219-max98357.c                 |   10 
 sound/soc/mediatek/mt8195/mt8195-mt6359.c                          |    1 
 sound/soc/qcom/qdsp6/q6apm-lpass-dais.c                            |   32 
 sound/soc/rockchip/rockchip_i2s_tdm.c                              |   13 
 sound/synth/emux/soundfont.c                                       |   17 
 tools/power/x86/turbostat/turbostat.c                              |    2 
 tools/testing/cxl/test/cxl.c                                       |    4 
 234 files changed, 2108 insertions(+), 1184 deletions(-)

Adrian Hunter (2):
      mmc: sdhci: Do not invert write-protect twice
      mmc: sdhci: Do not lock spinlock around mmc_gpio_get_ro()

Aleksandr Mishin (1):
      gpio: davinci: Validate the obtained number of IRQs

Alex Bee (1):
      arm64: dts: rockchip: Add sound-dai-cells for RK3368

Alex Deucher (1):
      drm/amdgpu/atomfirmware: fix parsing of vram_info

Alexander Sverdlin (1):
      iio: accel: fxls8962af: select IIO_BUFFER & IIO_KFIFO_BUF

Alexei Starovoitov (3):
      bpf: Fix remap of arena.
      bpf: Fix the corner case with may_goto and jump to the 1st insn.
      bpf: Fix may_goto with negative offset.

Alibek Omarov (1):
      ASoC: rockchip: i2s-tdm: Fix trcm mode by setting clock on right mclk

Alison Schofield (2):
      cxl/region: Move cxl_dpa_to_region() work to the region driver
      cxl/region: Avoid null pointer dereference in region lookup

Andreas Gruenbacher (1):
      gfs2: Fix NULL pointer dereference in gfs2_log_flush

Andrei Simion (1):
      ASoC: atmel: atmel-classd: Re-add dai_link->platform to fix card init

Andrew Bresticker (1):
      mm/memory: don't require head page for do_set_pmd()

Andrew Davis (1):
      soc: ti: wkup_m3_ipc: Send NULL dummy message instead of pointer message

Andrey Konovalov (1):
      kasan: fix bad call to unpoison_slab_object

Andy Chiu (1):
      riscv: stacktrace: convert arch_stack_walk() to noinstr

Andy Yan (1):
      arm64: dts: rockchip: Fix the i2c address of es8316 on Cool Pi 4B

Anton Protopopov (1):
      bpf: Add a check for struct bpf_fib_lookup size

Arnd Bergmann (11):
      sparc: fix old compat_sys_select()
      sparc: fix compat recv/recvfrom syscalls
      parisc: use correct compat recv/recvfrom syscalls
      powerpc: restore some missing spu syscalls
      parisc: use generic sys_fanotify_mark implementation
      sh: rework sync_file_range ABI
      csky, hexagon: fix broken sys_sync_file_range
      hexagon: fix fadvise64_64 calling conventions
      ftruncate: pass a signed offset
      syscalls: fix compat_sys_io_pgetevents_time64 usage
      syscalls: fix sys_fanotify_mark prototype

Chen-Yu Tsai (1):
      ASoC: mediatek: mt8195: Add platform entry for ETDM1_OUT_BE dai link

Chia-Yuan Li (1):
      wifi: rtw89: download firmware with five times retry

Christian A. Ehrhardt (1):
      usb: typec: ucsi: Never send a lone connector change ack

Christoph Hellwig (1):
      nfs: drop the incorrect assertion in nfs_swap_rw()

Christophe Leroy (2):
      bpf: Take return from set_memory_ro() into account with bpf_prog_lock_ro()
      bpf: Take return from set_memory_rox() into account with bpf_jit_binary_lock_ro()

Chuck Lever (1):
      SUNRPC: Fix backchannel reply, again

Claudiu Beznea (1):
      pinctrl: renesas: rzg2l: Use spin_{lock,unlock}_irq{save,restore}

Crescent Hsieh (1):
      tty: serial: 8250: Fix port count mismatch with the device

Dan Carpenter (1):
      usb: musb: da8xx: fix a resource leak in probe()

Dan Williams (1):
      cxl/region: Convert cxl_pmem_region_alloc to scope-based resource management

Daniel Borkmann (1):
      bpf: Fix overrunning reservations in ringbuf

Daniil Dulov (1):
      xdp: Remove WARN() from __xdp_reg_mem_model()

David Arcari (1):
      tools/power turbostat: option '-n' is ambiguous

David Howells (2):
      netfs: Fix netfs_page_mkwrite() to check folio->mapping is valid
      netfs: Fix netfs_page_mkwrite() to flush conflicting data, not wait

David Lechner (1):
      counter: ti-eqep: enable clock at probe

Dawei Li (2):
      net/iucv: Avoid explicit cpumask var allocation on stack
      net/dpaa2: Avoid explicit cpumask var allocation on stack

Denis Arefev (1):
      mtd: partitions: redboot: Added conversion of operands to a larger type

Dimitri Fedrau (1):
      iio: humidity: hdc3020: fix hysteresis representation

Dirk Su (1):
      ALSA: hda/realtek: fix mute/micmute LEDs don't work for EliteBook 645/665 G11.

Doug Brown (1):
      Revert "serial: core: only stop transmit when HW fifo is empty"

Dragan Simic (1):
      kbuild: Install dtb files as 0644 in Makefile.dtbinst

Elinor Montmasson (1):
      ASoC: fsl-asoc-card: set priv->pdev before using it

Enguerrand de Ribaucourt (2):
      net: phy: micrel: add Microchip KSZ 9477 to the device table
      net: dsa: microchip: use collision based back pressure mode

Erick Archer (1):
      drm/radeon/radeon_display: Decrease the size of allocated memory

FUKAUMI Naoki (3):
      Revert "arm64: dts: rockchip: remove redundant cd-gpios from rk3588 sdmmc nodes"
      arm64: dts: rockchip: make poweroff(8) work on Radxa ROCK 5A
      arm64: dts: rockchip: fix PMIC interrupt pin on ROCK Pi E

Fabrice Gasnier (1):
      usb: ucsi: stm32: fix command completion handling

Fernando Yang (1):
      iio: adc: ad7266: Fix variable checking bug

Ferry Toth (2):
      Revert "usb: gadget: u_ether: Re-attach netif device to mirror detachment"
      Revert "usb: gadget: u_ether: Replace netif_stop_queue with netif_device_detach"

Filipe Manana (1):
      btrfs: use NOFS context when getting inodes during logging and log replay

Greg Kroah-Hartman (2):
      Revert "net: sfp: enhance quirk for Fibrestore 2.5G copper SFP module"
      Linux 6.9.8

Guillaume Nault (1):
      vxlan: Pull inner IP header in vxlan_xmit_one().

Hagar Hemdan (1):
      pinctrl: fix deadlock in create_pinctrl() when handling -EPROBE_DEFER

Halil Pasic (1):
      s390/virtio_ccw: Fix config change notifications

Hangbin Liu (1):
      bonding: fix incorrect software timestamping report

Hannes Reinecke (3):
      nvmet: do not return 'reserved' for empty TSAS values
      nvme: fixup comment for nvme RDMA Provider Type
      nvmet: make 'tsas' attribute idempotent for RDMA

Heikki Krogerus (1):
      usb: typec: ucsi: Ack also failed Get Error commands

Heiko Stuebner (1):
      arm64: dts: rockchip: set correct pwm0 pinctrl on rk3588-tiger

Himal Prasad Ghimiray (1):
      drm/xe/xe_devcoredump: Check NULL before assignments

Hsin-Te Yuan (2):
      ASoC: mediatek: mt8183-da7219-max98357: Fix kcontrol name collision
      arm64: dts: rockchip: Fix the value of `dlg,jack-det-rate` mismatch on rk3399-gru

Huacai Chen (3):
      irqchip/loongson-eiointc: Use early_cpu_to_node() instead of cpu_to_node()
      cpu: Fix broken cmdline "nosmp" and "maxcpus=0"
      irqchip/loongson-liointc: Set different ISRs for different cores

Huang-Huang Bao (4):
      pinctrl: rockchip: fix pinmux bits for RK3328 GPIO2-B pins
      pinctrl: rockchip: fix pinmux bits for RK3328 GPIO3-B pins
      pinctrl: rockchip: use dedicated pinctrl type for RK3328
      pinctrl: rockchip: fix pinmux reset in rockchip_pmx_set

Ido Schimmel (2):
      mlxsw: pci: Fix driver initialization with Spectrum-4
      mlxsw: spectrum_buffers: Fix memory corruptions on Spectrum-4 systems

Ilpo Järvinen (2):
      mmc: sdhci-pci-o2micro: Convert PCIBIOS_* return codes to errnos
      mmc: sdhci-pci: Convert PCIBIOS_* return codes to errnos

Jan Kara (1):
      ocfs2: fix DIO failure due to insufficient transaction credits

Jan Sokolowski (1):
      ice: Rebuild TC queues on VSI queue reconfiguration

Jann Horn (1):
      drm/drm_file: Fix pid refcounting race

Janusz Krzysztofik (1):
      drm/i915/gt: Fix potential UAF by revoke of fence registers

Jason Gunthorpe (1):
      iommu/arm-smmu-v3: Do not allow a SVA domain to be set on the wrong PASID

Javier Carrasco (1):
      usb: typec: ucsi: glink: fix child node release in probe function

Jean-Michel Hautbois (1):
      tty: mcf: MCF54418 has 10 UARTS

Jens Axboe (1):
      io_uring: signal SQPOLL task_work with TWA_SIGNAL_NO_IPI

Jeremy Kerr (1):
      usb: gadget: aspeed_udc: fix device address configuration

Jesse Taube (1):
      RISC-V: fix vector insn load/store width mask

Jianguo Wu (1):
      netfilter: fix undefined reference to 'netfilter_lwtunnel_*' when CONFIG_SYSCTL=n

Joachim Vandersmissen (1):
      crypto: ecdh - explicitly zeroize private_key

Johan Hovold (1):
      pinctrl: qcom: spmi-gpio: drop broken pm8008 support

Johan Jonker (1):
      ARM: dts: rockchip: rk3066a: add #sound-dai-cells to hdmi node

Johannes Berg (1):
      wifi: ieee80211: check for NULL in ieee80211_mle_size_ok()

John Keeping (1):
      Input: ili210x - fix ili251x_read_touch_data() return value

Jonas Gorski (2):
      serial: core: introduce uart_port_tx_limited_flags()
      serial: bcm63xx-uart: fix tx after conversion to uart_port_tx_limited()

Jonas Karlman (2):
      arm64: dts: rockchip: Fix SD NAND and eMMC init on rk3308-rock-pi-s
      arm64: dts: rockchip: Rename LED related pinctrl nodes on rk3308-rock-pi-s

Jos Wang (1):
      usb: dwc3: core: Workaround for CSR read timeout

Jose Ignacio Tornos Martinez (1):
      net: usb: ax88179_178a: improve link status logs

Julia Zhang (1):
      drm/amdgpu: avoid using null object of framebuffer

Kamal Dasu (1):
      mmc: sdhci-brcmstb: check R1_STATUS for erase/trim/discard

Kees Cook (1):
      randomize_kstack: Remove non-functional per-arch entropy filtering

Kent Gibson (2):
      gpiolib: cdev: Disallow reconfiguration without direction (uAPI v1)
      gpiolib: cdev: Ignore reconfiguration without direction

Kent Overstreet (5):
      bcachefs: Fix sb_field_downgrade validation
      bcachefs: Fix sb-downgrade validation
      bcachefs: Fix bch2_sb_downgrade_update()
      bcachefs: Fix setting of downgrade recovery passes/errors
      bcachefs: btree_gc can now handle unknown btrees

Kuniyuki Iwashima (4):
      af_unix: Stop recv(MSG_PEEK) at consumed OOB skb.
      af_unix: Don't stop recv(MSG_DONTWAIT) if consumed OOB skb is at the head.
      af_unix: Don't stop recv() at consumed ex-OOB skb.
      af_unix: Fix wrong ioctl(SIOCATMARK) when consumed OOB skb is at the head.

Laurent Pinchart (1):
      drm/panel: ilitek-ili9881c: Fix warning with GPIO controllers that sleep

Li Ming (1):
      cxl/mem: Fix no cxl_nvd during pmem region auto-assembling

Lijo Lazar (1):
      drm/amdgpu: Fix pci state save during mode-1 reset

Linus Torvalds (1):
      x86: stop playing stack games in profile_pc()

Linus Walleij (1):
      Revert "mmc: moxart-mmc: Use sg_miter for PIO"

Liu Ying (1):
      drm/panel: simple: Add missing display timing flags for KOE TX26D202VM0BWA

Ma Ke (3):
      net: mana: Fix possible double free in error handling path
      drm/nouveau/dispnv04: fix null pointer dereference in nv17_tv_get_ld_modes
      drm/nouveau/dispnv04: fix null pointer dereference in nv17_tv_get_hd_modes

Maciej Strozek (1):
      ASoC: cs42l43: Increase default type detect time and button delay

Mark Brown (1):
      reset: gpio: Fix missing gpiolib dependency for GPIO reset controller

Mark-PK Tsai (1):
      kbuild: doc: Update default INSTALL_MOD_DIR from extra to updates

Martin KaFai Lau (1):
      bpf: Mark bpf prog stack with kmsan_unposion_memory in interpreter mode

Martin Schiller (1):
      MIPS: pci: lantiq: restore reset gpio polarity

Masahiro Yamada (1):
      kbuild: rpm-pkg: fix build error with CONFIG_MODULES=n

Maxime Coquelin (2):
      vduse: validate block features only with block devices
      vduse: Temporarily fail if control queue feature requested

Meng Li (1):
      usb: dwc3: core: remove lock of otg mode during gadget suspend/resume to avoid deadlock

Michael Strauss (1):
      drm/amd/display: Send DP_TOTAL_LTTPR_CNT during detection if LTTPR is present

Michal Wajdeczko (1):
      drm/xe: Check pat.ops before dumping PAT settings

Mostafa Saleh (1):
      PCI/MSI: Fix UAF in msi_capability_init

Muhammad Ahmed (1):
      drm/amd/display: Skip pipe if the pipe idx not set properly

Naohiro Aota (1):
      btrfs: zoned: fix initial free space detection

Nathan Chancellor (2):
      tty: mxser: Remove __counted_by from mxser_board.ports[]
      nvmet-fc: Remove __counted_by from nvmet_fc_tgt_queue.fod[]

Neal Cardwell (1):
      tcp: fix tcp_rcv_fastopen_synack() to enter TCP_CA_Loss for failed TFO

NeilBrown (1):
      nfsd: initialise nfsd_info.mutex early.

Nick Child (1):
      ibmvnic: Free any outstanding tx skbs during scrq reset

Nikita Zhandarovich (1):
      usb: atm: cxacru: fix endpoint checking in cxacru_bind()

Niklas Cassel (5):
      ata: libata-core: Fix null pointer dereference on error
      ata,scsi: libata-core: Do not leak memory for ata_port struct members
      ata: ahci: Clean up sysfs file on error
      ata: libata-core: Add ATA_HORKAGE_NOLPM for all Crucial BX SSD1 models
      ata: libata-core: Fix double free on error

Niklas Schnelle (1):
      s390/pci: Add missing virt_to_phys() for directed DIBV

Nirmoy Das (2):
      drm/xe: Fix potential integer overflow in page size calculation
      drm/xe: Add a NULL check in xe_ttm_stolen_mgr_init

Oleksij Rempel (2):
      net: can: j1939: recover socket queue on CAN bus error during BAM transmission
      net: can: j1939: enhanced error handling for tightly received RTS messages in xtp_rx_rts_session_new

Oliver Neukum (2):
      usb: gadget: printer: SS+ support
      usb: gadget: printer: fix races against disable

Oswald Buddenhagen (1):
      ALSA: emux: improve patch ioctl data validation

Pablo Neira Ayuso (1):
      netfilter: nf_tables: fully validate NFT_DATA_VALUE on store to data registers

Rafael J. Wysocki (1):
      cpufreq: intel_pstate: Use HWP to initialize ITMT if CPPC is missing

Ricardo Ribalda (1):
      media: dvbdev: Initialize sbuf

Sean Anderson (1):
      iio: xilinx-ams: Don't include ams_ctrl_channels in scan_mask

Shannon Nelson (1):
      ionic: use dev_consume_skb_any outside of napi

Sherry Wang (1):
      drm/amd/display: correct hostvm flag

Shigeru Yoshida (1):
      net: can: j1939: Initialize unused data in j1939_send_one()

Srinivas Kandagatla (1):
      ASoC: q6apm-lpass-dai: close graph on prepare errors

Stefan Berger (1):
      evm: Enforce signatures on unsupported filesystem for EVM_INIT_X509

Stefan Eichenberger (2):
      serial: imx: set receiver level before starting uart
      serial: imx: only set receiver level if it is zero

Sven Eckelmann (1):
      batman-adv: Don't accept TT entries for out-of-spec VIDs

Taehee Yoo (1):
      ionic: fix kernel panic due to multi-buffer handling

Takashi Iwai (2):
      ALSA: seq: Fix missing channel at encoding RPN/NRPN MIDI2 messages
      ALSA: seq: Fix missing MSB in MIDI2 SPP conversion

Thayne Harbaugh (1):
      kbuild: Fix build target deb-pkg: ln: failed to create hard link

Thomas Bogendoerfer (1):
      Revert "MIPS: pci: lantiq: restore reset gpio polarity"

Thomas Zimmermann (1):
      drm/fbdev-dma: Only set smem_start is enable per module option

Tiezhu Yang (1):
      irqchip/loongson: Select GENERIC_IRQ_EFFECTIVE_AFF_MASK if SMP for IRQ_LOONGARCH_CPU

Tristram Ha (2):
      net: dsa: microchip: fix initial port flush problem
      net: dsa: microchip: fix wrong register write when masking interrupt

Udit Kumar (2):
      serial: 8250_omap: Implementation of Errata i2310
      serial: 8250_omap: Fix Errata i2310 with RX FIFO level check

Uros Bizjak (1):
      x86/fpu: Fix AMD X86_BUG_FXSAVE_LEAK fixup

Uwe Kleine-König (6):
      pwm: stm32: Improve precision of calculation in .apply()
      pwm: stm32: Fix for settings using period > UINT32_MAX
      pwm: stm32: Calculate prescaler with a division instead of a loop
      pwm: stm32: Refuse too small period requests
      pwm: stm32: Fix calculation of prescaler
      pwm: stm32: Fix error message to not describe the previous error path

Vasant Hegde (3):
      iommu/amd: Introduce per device DTE update function
      iommu/amd: Invalidate cache before removing device from domain list
      iommu/amd: Fix GT feature enablement again

Vasileios Amoiridis (4):
      iio: chemical: bme680: Fix pressure value output
      iio: chemical: bme680: Fix calibration data variable
      iio: chemical: bme680: Fix overflows in compensate() functions
      iio: chemical: bme680: Fix sensor data read operation

Vijendar Mukunda (3):
      ASoC: amd: acp: add a null check for chip_pdev structure
      ASoC: amd: acp: remove i2s configuration check in acp_i2s_probe()
      ASoC: amd: acp: move chip->flag variable assignment

Vitor Soares (1):
      can: mcp251xfd: fix infinite loop when xmit fails

Wenchao Hao (2):
      workqueue: Increase worker desc's length to 32
      RDMA/restrack: Fix potential invalid address access

Wolfram Sang (2):
      i2c: testunit: don't erase registers after STOP
      i2c: testunit: discard write requests while old command is running

Xin Long (1):
      openvswitch: get related ct labels from its master if it is not confirmed

Yao Xingtao (1):
      cxl/region: check interleave capability

Yonghong Song (2):
      bpf: Add missed var_off setting in set_sext32_default_val()
      bpf: Add missed var_off setting in coerce_subreg_to_size_sx()

Yunseong Kim (1):
      tracing/net_sched: NULL pointer dereference in perf_trace_qdisc_reset()

Yuntao Wang (1):
      cpu/hotplug: Fix dynstate assignment in __cpuhp_setup_state_cpuslocked()

Zenghui Yu (1):
      arm64: Clear the initial ID map correctly before remapping

Zhaoyang Huang (1):
      mm: fix incorrect vbq reference in purge_fragmented_block

luoxuanqiang (1):
      Fix race for duplicate reqsk on identical SYN

yangge (1):
      mm/page_alloc: Separate THP PCP into movable and non-movable categories

.

From: srinivas.kandagatla@linaro.org
To: gregkh@linuxfoundation.org
Cc: linux-kernel@vger.kernel.org,
	Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Subject: [PATCH 00/15] nvmem: patches(set 1) for 6.11
Date: Fri,  5 Jul 2024 08:48:37 +0100
Message-Id: <20240705074852.423202-1-srinivas.kandagatla@linaro.org>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1268805
Newsgroups: org.kernel.vger.linux-kernel
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

From: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>

Hi Greg,

Here are few patches in nvmem for 6.11 that includes
- support for force_ro sysfs entry
- enhancements for rockchip otp provider
- support for MT7988 and MT7981
- few cleanups in the nvmem core

Can you please queue them up for 6.11.

Thanks,
Srini

MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Heiko Stuebner (3):
  nvmem: rockchip-otp: set add_legacy_fixed_of_cells config option
  nvmem: rockchip-otp: Set type to OTP
  nvmem: rockchip-efuse: set type to OTP

Jeff Johnson (1):
  nvmem: add missing MODULE_DESCRIPTION() macros

Marek Vasut (4):
  nvmem: Replace spaces with tab in documentation
  nvmem: Document type attribute
  nvmem: Use sysfs_emit() for type attribute
  nvmem: core: Implement force_ro sysfs attribute

MarileneGarcia (1):
  nvmem: meson-efuse: Replacing the use of of_node_put to __free

Neil Armstrong (1):
  dt-bindings: nvmem: amlogic,meson-gx-efuse: add optional power-domains

Rafał Miłecki (2):
  dt-bindings: nvmem: mediatek: efuse: add support for MT7981
  dt-bindings: nvmem: mediatek: efuse: add support for MT7988

Thomas Weißschuh (3):
  nvmem: core: add single sysfs group
  nvmem: core: remove global nvmem_cells_group
  nvmem: core: drop unnecessary range checks in sysfs callbacks

 Documentation/ABI/stable/sysfs-bus-nvmem      | 30 ++++++-
 .../nvmem/amlogic,meson-gxbb-efuse.yaml       |  3 +
 .../bindings/nvmem/mediatek,efuse.yaml        |  2 +
 drivers/nvmem/apple-efuses.c                  |  1 +
 drivers/nvmem/brcm_nvram.c                    |  1 +
 drivers/nvmem/core.c                          | 90 +++++++++++--------
 drivers/nvmem/meson-efuse.c                   |  5 +-
 drivers/nvmem/rockchip-efuse.c                |  1 +
 drivers/nvmem/rockchip-otp.c                  |  2 +
 drivers/nvmem/u-boot-env.c                    |  1 +
 10 files changed, 96 insertions(+), 40 deletions(-)

-- 
2.25.1

.

From: Dmitrii Kuvaiskii <dmitrii.kuvaiskii@intel.com>
To: dave.hansen@linux.intel.com,
	jarkko@kernel.org,
	kai.huang@intel.com,
	haitao.huang@linux.intel.com,
	reinette.chatre@intel.com,
	linux-sgx@vger.kernel.org,
	linux-kernel@vger.kernel.org
Cc: mona.vij@intel.com,
	kailun.qin@intel.com
Subject: [PATCH v4 0/3] x86/sgx: Fix two data races in EAUG/EREMOVE flows
Date: Fri,  5 Jul 2024 00:45:21 -0700
Message-Id: <20240705074524.443713-1-dmitrii.kuvaiskii@intel.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1268828
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-sgx
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

SGX runtimes such as Gramine may implement EDMM-based lazy allocation of
enclave pages and may support MADV_DONTNEED semantics [1]. The former
implies #PF-based page allocation, and the latter implies the usage of
SGX_IOC_ENCLAVE_REMOVE_PAGES ioctl.

EDMM-based lazy allocation and MADV_DONTNEED semantics provide
significant performance improvement for some workloads that run on
Gramine. For example, a Java workload with a 16GB enclave size has
approx. 57x improvement in total runtime. Thus, we consider it important
to permit these optimizations in Gramine. However, we observed hangs of
applications (Node.js, PyTorch, R, iperf, Blender, Nginx) when run on
Gramine with EDMM, lazy allocation and MADV_DONTNEED features enabled.

We wrote a trivial stress test to reproduce the hangs observed in
real-world applications. The test stresses #PF-based page allocation and
SGX_IOC_ENCLAVE_REMOVE_PAGES flows in the SGX driver:

/* repeatedly touch different enclave pages at random and mix with
 * madvise(MADV_DONTNEED) to stress EAUG/EREMOVE flows */
static void* thread_func(void* arg) {
    size_t num_pages = 0xA000 / page_size;
    for (int i = 0; i < 5000; i++) {
        size_t page = get_random_ulong() % num_pages;
        char data = READ_ONCE(((char*)arg)[page * page_size]);

        page = get_random_ulong() % num_pages;
        madvise(arg + page * page_size, page_size, MADV_DONTNEED);
    }
}

addr = mmap(NULL, 0xA000, PROT_READ | PROT_WRITE, MAP_ANONYMOUS, -1, 0);
pthread_t threads[16];
for (int i = 0; i < 16; i++)
    pthread_create(&threads[i], NULL, thread_func, addr);

This test uncovers two data races in the SGX driver. The remaining
patches describe and fix these races.

I performed several stress tests to verify that there are no other data
races (at least with the test program above):

- On Icelake server with 128GB of PRM, without madvise(). This stresses
  the first data race. A Gramine SGX test suite running in the
  background for additional stressing. Result: 1,000 runs without hangs
  (result without the first bug fix: hangs every time).
- On Icelake server with 128GB of PRM, with madvise(). This stresses the
  second data race. A Gramine SGX test suite running in the background
  for additional stressing. Result: 1,000 runs without hangs (result
  with the first bug fix but without the second bug fix: hangs approx.
  once in 50 runs).
- On Icelake server with 4GB of PRM, with madvise(). This additionally
  stresses the enclave page swapping flows. Two Gramine SGX test suites
  running in the background for additional stressing of swapping (I
  observe 100% CPU utilization from ksgxd which confirms that swapping
  happens). Result: 1,000 runs without hangs.

v3 -> v4:
- Added a preparatory patch to split the SGX_ENCL_PAGE_BEING_RECLAIMED
  flag into two: SGX_ENCL_PAGE_BUSY and SGX_ENCL_PAGE_PCMD_BUSY
  (split suggested by Dave Hansen [2])
- No changes in the second patch (that fixes the first bug)
- Trivial changes in the third patch (that fixes the second bug), now
  that we have a preparatory patch; plus expanded a comment (as
  suggested by Dave Hansen)

v2 -> v3:
- No changes in code itself
- Improved commit message of the first patch (text suggested by Dave
  Hansen); kept the CPU1 vs CPU2 diagram (as all reviewers liked it)
- No changes in the commit message of the second patch

v1 -> v2:
- No changes in code itself
- Expanded cover letter
- Added CPU1 vs CPU2 race scenarios in commit messages

[1] https://github.com/gramineproject/gramine/pull/1513
[2] https://lore.kernel.org/all/1d405428-3847-4862-b146-dd57711c881e@intel.com/

v1: https://lore.kernel.org/all/20240429104330.3636113-3-dmitrii.kuvaiskii@intel.com/
v2: https://lore.kernel.org/all/20240515131240.1304824-1-dmitrii.kuvaiskii@intel.com/
v3: https://lore.kernel.org/all/20240517110631.3441817-1-dmitrii.kuvaiskii@intel.com/

Dmitrii Kuvaiskii (3):
  x86/sgx: Split SGX_ENCL_PAGE_BEING_RECLAIMED into two flags
  x86/sgx: Resolve EAUG race where losing thread returns SIGBUS
  x86/sgx: Resolve EREMOVE page vs EAUG page data race

 arch/x86/kernel/cpu/sgx/encl.c  | 23 ++++++++++++-----------
 arch/x86/kernel/cpu/sgx/encl.h  | 10 ++++++++--
 arch/x86/kernel/cpu/sgx/ioctl.c |  7 +++++++
 arch/x86/kernel/cpu/sgx/main.c  |  4 ++--
 4 files changed, 29 insertions(+), 15 deletions(-)

-- 
2.43.0

.

From: Dominique Martinet <dominique.martinet@atmark-techno.com>
To: Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	Songyang Li <leesongyang@outlook.com>
Cc: Dominique Martinet <dominique.martinet@atmark-techno.com>,
	linux-mips@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: [PATCH] MIPS: Octeron: remove source file executable bit
Date: Fri,  5 Jul 2024 16:48:30 +0900
Message-Id: <20240705074831.3620158-1-dominique.martinet@atmark-techno.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1268829
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-mips
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

This does not matter the least, but there is no other .[ch] file in the
repo that is executable, so clean this up.

Fixes: 29b83a64df3b ("MIPS: Octeon: Add PCIe link status check")
Signed-off-by: Dominique Martinet <dominique.martinet@atmark-techno.com>
---
(Noticed this when reviewing the latest stable release, as the mode
change line stood out in my viewer)

 arch/mips/pci/pcie-octeon.c | 0
 1 file changed, 0 insertions(+), 0 deletions(-)
 mode change 100755 => 100644 arch/mips/pci/pcie-octeon.c

diff --git a/arch/mips/pci/pcie-octeon.c b/arch/mips/pci/pcie-octeon.c
old mode 100755
new mode 100644
-- 
2.39.2


.

From: Fenglin Wu via B4 Relay <devnull+quic_fenglinw.quicinc.com@kernel.org>
Date: Fri, 05 Jul 2024 15:55:01 +0800
Subject: [PATCH RESEND v3] leds: flash: leds-qcom-flash: limit LED current
 based on thermal condition
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20240705-qcom_flash_thermal_derating-v3-1-8e2e2783e3a6@quicinc.com>
To: kernel@quicinc.com, linux-arm-msm@vger.kernel.org, 
 Pavel Machek <pavel@ucw.cz>, Lee Jones <lee@kernel.org>
Cc: linux-leds@vger.kernel.org, linux-kernel@vger.kernel.org, 
 David Collins <quic_collinsd@quicinc.com>, 
 Subbaraman Narayanamurthy <quic_subbaram@quicinc.com>, 
 Fenglin Wu <quic_fenglinw@quicinc.com>
X-Original-From: Fenglin Wu <quic_fenglinw@quicinc.com>
Reply-To: quic_fenglinw@quicinc.com
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1268831
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.feeds.b4-sent,org.kernel.vger.linux-arm-msm,org.kernel.vger.linux-leds
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

From: Fenglin Wu <quic_fenglinw@quicinc.com>

The flash module has status bits to indicate different thermal
conditions which are called as OTSTx. For each OTSTx status,
there is a recommended total flash current for all channels to
prevent the flash module entering into higher thermal level.
For example, the total flash current should be limited to 1000mA/500mA
respectively when the HW reaches the OTST1/OTST2 thermal level.

Signed-off-by: Fenglin Wu <quic_fenglinw@quicinc.com>
---
Changes in v3:
- Fix coding style issues to address review comments in v2.
- Link to v2: https://lore.kernel.org/r/20240513-qcom_flash_thermal_derating-v2-1-e41a07d0eb83@quicinc.com

Changes in v2:
- Update thermal threshold level 2 register definition for mvflash_4ch_regs.
    Mvflash_4ch module thermal threshold level 2 configuration register
    offset is 0x78, not succeeding from thermal threshold level 1 register 0x7a.
    Hence it is not appropriate to use REG_FIELD_ID to define thermal threshold
    register fileds like mvflash_3ch. Update to use REG_FIELD instead.
- Link to v1: https://lore.kernel.org/r/20240509-qcom_flash_thermal_derating-v1-1-1d5e68e5d71c@quicinc.com
---
 drivers/leds/flash/leds-qcom-flash.c | 163 ++++++++++++++++++++++++++++++++++-
 1 file changed, 162 insertions(+), 1 deletion(-)

diff --git a/drivers/leds/flash/leds-qcom-flash.c b/drivers/leds/flash/leds-qcom-flash.c
index 7c99a3039171..aa22686fafe0 100644
--- a/drivers/leds/flash/leds-qcom-flash.c
+++ b/drivers/leds/flash/leds-qcom-flash.c
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0-only
 /*
- * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
+ * Copyright (c) 2022, 2024 Qualcomm Innovation Center, Inc. All rights reserved.
  */
 
 #include <linux/bitfield.h>
@@ -14,6 +14,9 @@
 #include <media/v4l2-flash-led-class.h>
 
 /* registers definitions */
+#define FLASH_REVISION_REG		0x00
+#define FLASH_4CH_REVISION_V0P1		0x01
+
 #define FLASH_TYPE_REG			0x04
 #define FLASH_TYPE_VAL			0x18
 
@@ -73,6 +76,16 @@
 
 #define UA_PER_MA			1000
 
+/* thermal threshold constants */
+#define OTST_3CH_MIN_VAL		3
+#define OTST1_4CH_MIN_VAL		0
+#define OTST1_4CH_V0P1_MIN_VAL		3
+#define OTST2_4CH_MIN_VAL		0
+
+#define OTST1_MAX_CURRENT_MA		1000
+#define OTST2_MAX_CURRENT_MA		500
+#define OTST3_MAX_CURRENT_MA		200
+
 enum hw_type {
 	QCOM_MVFLASH_3CH,
 	QCOM_MVFLASH_4CH,
@@ -98,6 +111,9 @@ enum {
 	REG_IRESOLUTION,
 	REG_CHAN_STROBE,
 	REG_CHAN_EN,
+	REG_THERM_THRSH1,
+	REG_THERM_THRSH2,
+	REG_THERM_THRSH3,
 	REG_MAX_COUNT,
 };
 
@@ -111,6 +127,9 @@ static struct reg_field mvflash_3ch_regs[REG_MAX_COUNT] = {
 	REG_FIELD(0x47, 0, 5),                  /* iresolution	*/
 	REG_FIELD_ID(0x49, 0, 2, 3, 1),         /* chan_strobe	*/
 	REG_FIELD(0x4c, 0, 2),                  /* chan_en	*/
+	REG_FIELD(0x56, 0, 2),			/* therm_thrsh1 */
+	REG_FIELD(0x57, 0, 2),			/* therm_thrsh2 */
+	REG_FIELD(0x58, 0, 2),			/* therm_thrsh3 */
 };
 
 static struct reg_field mvflash_4ch_regs[REG_MAX_COUNT] = {
@@ -123,6 +142,8 @@ static struct reg_field mvflash_4ch_regs[REG_MAX_COUNT] = {
 	REG_FIELD(0x49, 0, 3),			/* iresolution	*/
 	REG_FIELD_ID(0x4a, 0, 6, 4, 1),		/* chan_strobe	*/
 	REG_FIELD(0x4e, 0, 3),			/* chan_en	*/
+	REG_FIELD(0x7a, 0, 2),			/* therm_thrsh1 */
+	REG_FIELD(0x78, 0, 2),			/* therm_thrsh2 */
 };
 
 struct qcom_flash_data {
@@ -130,9 +151,11 @@ struct qcom_flash_data {
 	struct regmap_field     *r_fields[REG_MAX_COUNT];
 	struct mutex		lock;
 	enum hw_type		hw_type;
+	u32			total_ma;
 	u8			leds_count;
 	u8			max_channels;
 	u8			chan_en_bits;
+	u8			revision;
 };
 
 struct qcom_flash_led {
@@ -143,6 +166,7 @@ struct qcom_flash_led {
 	u32				max_timeout_ms;
 	u32				flash_current_ma;
 	u32				flash_timeout_ms;
+	u32				current_in_use_ma;
 	u8				*chan_id;
 	u8				chan_count;
 	bool				enabled;
@@ -172,6 +196,127 @@ static int set_flash_module_en(struct qcom_flash_led *led, bool en)
 	return rc;
 }
 
+static int update_allowed_flash_current(struct qcom_flash_led *led, u32 *current_ma, bool strobe)
+{
+	struct qcom_flash_data *flash_data = led->flash_data;
+	u32 therm_ma, avail_ma, thrsh[3], min_thrsh, sts;
+	int rc = 0;
+
+	mutex_lock(&flash_data->lock);
+	/*
+	 * Put previously allocated current into allowed budget in either of these two cases:
+	 * 1) LED is disabled;
+	 * 2) LED is enabled repeatedly
+	 */
+	if (!strobe || led->current_in_use_ma != 0) {
+		if (flash_data->total_ma >= led->current_in_use_ma)
+			flash_data->total_ma -= led->current_in_use_ma;
+		else
+			flash_data->total_ma = 0;
+
+		led->current_in_use_ma = 0;
+		if (!strobe)
+			goto unlock;
+	}
+
+	/*
+	 * Cache the default thermal threshold settings, and set them to the lowest levels before
+	 * reading over-temp real time status. If over-temp has been triggered at the lowest
+	 * threshold, it's very likely that it would be triggered at a higher (default) threshold
+	 * when more flash current is requested. Prevent device from triggering over-temp condition
+	 * by limiting the flash current for the new request.
+	 */
+	rc = regmap_field_read(flash_data->r_fields[REG_THERM_THRSH1], &thrsh[0]);
+	if (rc < 0)
+		goto unlock;
+
+	rc = regmap_field_read(flash_data->r_fields[REG_THERM_THRSH2], &thrsh[1]);
+	if (rc < 0)
+		goto unlock;
+
+	if (flash_data->hw_type == QCOM_MVFLASH_3CH) {
+		rc = regmap_field_read(flash_data->r_fields[REG_THERM_THRSH3], &thrsh[2]);
+		if (rc < 0)
+			goto unlock;
+	}
+
+	min_thrsh = OTST_3CH_MIN_VAL;
+	if (flash_data->hw_type == QCOM_MVFLASH_4CH)
+		min_thrsh = (flash_data->revision == FLASH_4CH_REVISION_V0P1) ?
+			OTST1_4CH_V0P1_MIN_VAL : OTST1_4CH_MIN_VAL;
+
+	rc = regmap_field_write(flash_data->r_fields[REG_THERM_THRSH1], min_thrsh);
+	if (rc < 0)
+		goto unlock;
+
+	if (flash_data->hw_type == QCOM_MVFLASH_4CH)
+		min_thrsh = OTST2_4CH_MIN_VAL;
+
+	/*
+	 * The default thermal threshold settings have been updated hence
+	 * restore them if any fault happens starting from here.
+	 */
+	rc = regmap_field_write(flash_data->r_fields[REG_THERM_THRSH2], min_thrsh);
+	if (rc < 0)
+		goto restore;
+
+	if (flash_data->hw_type == QCOM_MVFLASH_3CH) {
+		rc = regmap_field_write(flash_data->r_fields[REG_THERM_THRSH3], min_thrsh);
+		if (rc < 0)
+			goto restore;
+	}
+
+	/* Read thermal level status to get corresponding derating flash current */
+	rc = regmap_field_read(flash_data->r_fields[REG_STATUS2], &sts);
+	if (rc)
+		goto restore;
+
+	therm_ma = FLASH_TOTAL_CURRENT_MAX_UA / 1000;
+	if (flash_data->hw_type == QCOM_MVFLASH_3CH) {
+		if (sts & FLASH_STS_3CH_OTST3)
+			therm_ma = OTST3_MAX_CURRENT_MA;
+		else if (sts & FLASH_STS_3CH_OTST2)
+			therm_ma = OTST2_MAX_CURRENT_MA;
+		else if (sts & FLASH_STS_3CH_OTST1)
+			therm_ma = OTST1_MAX_CURRENT_MA;
+	} else {
+		if (sts & FLASH_STS_4CH_OTST2)
+			therm_ma = OTST2_MAX_CURRENT_MA;
+		else if (sts & FLASH_STS_4CH_OTST1)
+			therm_ma = OTST1_MAX_CURRENT_MA;
+	}
+
+	/* Calculate the allowed flash current for the request */
+	if (therm_ma <= flash_data->total_ma)
+		avail_ma = 0;
+	else
+		avail_ma = therm_ma - flash_data->total_ma;
+
+	*current_ma = min_t(u32, *current_ma, avail_ma);
+	led->current_in_use_ma = *current_ma;
+	flash_data->total_ma += led->current_in_use_ma;
+
+	dev_dbg(led->flash.led_cdev.dev, "allowed flash current: %dmA, total current: %dmA\n",
+					led->current_in_use_ma, flash_data->total_ma);
+
+restore:
+	/* Restore to default thermal threshold settings */
+	rc = regmap_field_write(flash_data->r_fields[REG_THERM_THRSH1], thrsh[0]);
+	if (rc < 0)
+		goto unlock;
+
+	rc = regmap_field_write(flash_data->r_fields[REG_THERM_THRSH2], thrsh[1]);
+	if (rc < 0)
+		goto unlock;
+
+	if (flash_data->hw_type == QCOM_MVFLASH_3CH)
+		rc = regmap_field_write(flash_data->r_fields[REG_THERM_THRSH3], thrsh[2]);
+
+unlock:
+	mutex_unlock(&flash_data->lock);
+	return rc;
+}
+
 static int set_flash_current(struct qcom_flash_led *led, u32 current_ma, enum led_mode mode)
 {
 	struct qcom_flash_data *flash_data = led->flash_data;
@@ -313,6 +458,10 @@ static int qcom_flash_strobe_set(struct led_classdev_flash *fled_cdev, bool stat
 	if (rc)
 		return rc;
 
+	rc = update_allowed_flash_current(led, &led->flash_current_ma, state);
+	if (rc < 0)
+		return rc;
+
 	rc = set_flash_current(led, led->flash_current_ma, FLASH_MODE);
 	if (rc)
 		return rc;
@@ -429,6 +578,10 @@ static int qcom_flash_led_brightness_set(struct led_classdev *led_cdev,
 	if (rc)
 		return rc;
 
+	rc = update_allowed_flash_current(led, &current_ma, enable);
+	if (rc < 0)
+		return rc;
+
 	rc = set_flash_current(led, current_ma, TORCH_MODE);
 	if (rc)
 		return rc;
@@ -703,6 +856,14 @@ static int qcom_flash_led_probe(struct platform_device *pdev)
 		flash_data->hw_type = QCOM_MVFLASH_4CH;
 		flash_data->max_channels = 4;
 		regs = mvflash_4ch_regs;
+
+		rc = regmap_read(regmap, reg_base + FLASH_REVISION_REG, &val);
+		if (rc < 0) {
+			dev_err(dev, "Failed to read flash LED module revision, rc=%d\n", rc);
+			return rc;
+		}
+
+		flash_data->revision = val;
 	} else {
 		dev_err(dev, "flash LED subtype %#x is not yet supported\n", val);
 		return -ENODEV;

---
base-commit: ca66b10a11da3c445c9c0ca1184f549bbe9061f2
change-id: 20240507-qcom_flash_thermal_derating-260b1f3c757c

Best regards,
-- 
Fenglin Wu <quic_fenglinw@quicinc.com>


.

From: Radoslaw Zielonek <radoslaw.zielonek@gmail.com>
To: mingo@redhat.com,
	peterz@infradead.org,
	juri.lelli@redhat.com,
	vincent.guittot@linaro.org,
	dietmar.eggemann@arm.com,
	rostedt@goodmis.org,
	bsegall@google.com,
	mgorman@suse.de,
	bristot@redhat.com,
	vschneid@redhat.com,
	oleg@redhat.com,
	brauner@kernel.org,
	akpm@linux-foundation.org,
	tandersen@netflix.com,
	bigeasy@linutronix.de,
	vincent.whitchurch@axis.com,
	kunyu@nfschina.com,
	ardb@kernel.org,
	linux-kernel@vger.kernel.org
Cc: liam.howlett@oracle.com,
	syzbot+a941018a091f1a1f9546@syzkaller.appspotmail.com,
	syzkaller-bugs@googlegroups.com,
	Radoslaw Zielonek <radoslaw.zielonek@gmail.com>
Subject: [RFC] Signaling overhead on RT tasks is causing RCU stall
Date: Fri,  5 Jul 2024 09:56:23 +0200
Message-ID: <20240705075622.925325-2-radoslaw.zielonek@gmail.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1268835
Newsgroups: org.kernel.vger.linux-kernel
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Hello,

I'm working on syzbot bug: rcu detected stall in validate_mm
https://syzkaller.appspot.com/bug?extid=a941018a091f1a1f9546.
I have analyzed this issue and here is what I found:

When too many signals are sent to the RT task, the overhead becomes very high.
The task cannot perform its job and as a consquenece the rt_runtime (0.95s)
is not reached even after hundreds of seconds.
This situation can be achieved by using POSIX Timers with very low interval.

The problem scenario:

1. RTLIMIT_RTPRIO is changed to non-zero value.
2. Scheduler policy is changed to SCHED_FIFO or SCHED_RR.
3. Posix Timer is created with low interval - several nanoseconds.
4. The signaling overhead becomes very high, the RT task is scheduled
   but cannot reach rt_runtime (0.95s). As a consequenece there is no context
   switch with non-RT task even after hundreds of seconds.

I have created a very simple solution by monitoring the number of signals
and throttling the RT task when the number of signals is greater than
or equal to 100. I am aware that this solution is very weak and cannot
be applied as a long-term, proper solution.

Could you help with finding more appropriate solution?

The patch is here:

Reported-by: syzbot+a941018a091f1a1f9546@syzkaller.appspotmail.com
Closes: https://syzkaller.appspot.com/bug?extid=a941018a091f1a1f9546
Link: https://lore.kernel.org/all/0000000000000a13ee06183e4464@google.com/T/
Signed-off-by: Radoslaw Zielonek <radoslaw.zielonek@gmail.com>
---
 include/linux/sched.h |  7 +++++++
 kernel/sched/core.c   |  1 +
 kernel/sched/rt.c     | 26 +++++++++++++++++++++++---
 kernel/signal.c       |  9 +++++++++
 4 files changed, 40 insertions(+), 3 deletions(-)

diff --git a/include/linux/sched.h b/include/linux/sched.h
index 17cb0761ff65..123bc16ad3d0 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -1121,6 +1121,13 @@ struct task_struct {
 	size_t				sas_ss_size;
 	unsigned int			sas_ss_flags;
 
+	/*
+	 * Number of signals received by an RT task between scheduling ticks.
+	 * This counter is used to throttle RT tasks when too many signals
+	 * (e.g., POSIX timers) are sent to the task, which can cause an RCU stall.
+	 */
+	atomic_t rt_signals_recv_count; /* used outside of the rq lock */
+
 	struct callback_head		*task_works;
 
 #ifdef CONFIG_AUDIT
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index d44efa0d0611..9def826bd35f 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -4779,6 +4779,7 @@ int sched_fork(unsigned long clone_flags, struct task_struct *p)
 			p->policy = SCHED_NORMAL;
 			p->static_prio = NICE_TO_PRIO(0);
 			p->rt_priority = 0;
+			atomic_set(&p->rt_signals_recv_count, 0);
 		} else if (PRIO_TO_NICE(p->static_prio) < 0)
 			p->static_prio = NICE_TO_PRIO(0);
 
diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c
index 3261b067b67e..9b22d67d1746 100644
--- a/kernel/sched/rt.c
+++ b/kernel/sched/rt.c
@@ -24,6 +24,15 @@ int sysctl_sched_rt_period = 1000000;
  */
 int sysctl_sched_rt_runtime = 950000;
 
+/*
+ * To avoid an RCU stall due to a large number of signals received by RT tasks
+ * (e.g., POSIX timers), the RT task needs to be throttled.
+ * When the number of signals received by an RT task during a scheduling
+ * tick period exceeds the threshold, the RT task will be throttled.
+ * The value of 100 has not been thoroughly tested and may need adjustment.
+ */
+#define RT_RECV_SGINAL_THROTTLE_THRESHOLD 100
+
 #ifdef CONFIG_SYSCTL
 static int sysctl_sched_rr_timeslice = (MSEC_PER_SEC * RR_TIMESLICE) / HZ;
 static int sched_rt_handler(struct ctl_table *table, int write, void *buffer,
@@ -951,7 +960,7 @@ static inline int rt_se_prio(struct sched_rt_entity *rt_se)
 	return rt_task_of(rt_se)->prio;
 }
 
-static int sched_rt_runtime_exceeded(struct rt_rq *rt_rq)
+static int sched_rt_runtime_exceeded(struct rt_rq *rt_rq, int rt_signal_recv)
 {
 	u64 runtime = sched_rt_runtime(rt_rq);
 
@@ -966,7 +975,15 @@ static int sched_rt_runtime_exceeded(struct rt_rq *rt_rq)
 	if (runtime == RUNTIME_INF)
 		return 0;
 
-	if (rt_rq->rt_time > runtime) {
+	/*
+	 * When a large number of signals are sent to this task (e.g., POSIX timers)
+	 * the delta time deviates significantly from real time due to the overhead
+	 * of handling signals. For RT tasks, this can cause an RCU stall.
+	 * To avoid this, throttle the task when the number of signals received
+	 * exceeds a certain threshold.
+	 */
+	if (rt_rq->rt_time > runtime ||
+		rt_signal_recv >= RT_RECV_SGINAL_THROTTLE_THRESHOLD) {
 		struct rt_bandwidth *rt_b = sched_rt_bandwidth(rt_rq);
 
 		/*
@@ -1021,7 +1038,9 @@ static void update_curr_rt(struct rq *rq)
 		if (sched_rt_runtime(rt_rq) != RUNTIME_INF) {
 			raw_spin_lock(&rt_rq->rt_runtime_lock);
 			rt_rq->rt_time += delta_exec;
-			exceeded = sched_rt_runtime_exceeded(rt_rq);
+			exceeded = sched_rt_runtime_exceeded(
+						rt_rq,
+						atomic_read(&curr->rt_signals_recv_count));
 			if (exceeded)
 				resched_curr(rq);
 			raw_spin_unlock(&rt_rq->rt_runtime_lock);
@@ -1029,6 +1048,7 @@ static void update_curr_rt(struct rq *rq)
 				do_start_rt_bandwidth(sched_rt_bandwidth(rt_rq));
 		}
 	}
+	atomic_set(&curr->rt_signals_recv_count, 0);
 }
 
 static void
diff --git a/kernel/signal.c b/kernel/signal.c
index bdca529f0f7b..d58e0ba9336c 100644
--- a/kernel/signal.c
+++ b/kernel/signal.c
@@ -629,6 +629,15 @@ int dequeue_signal(struct task_struct *tsk, sigset_t *mask,
 	bool resched_timer = false;
 	int signr;
 
+	/*
+	 * To prevent an RCU stall due to receiving too many signals by RT tasks,
+	 * count all signals regardless of their type.
+	 * Based on this counter, the RT scheduler will decide whether the task
+	 * should be throttled or not.
+	 */
+	if (tsk->policy == SCHED_FIFO || tsk->policy == SCHED_RR)
+		atomic_inc(&tsk->rt_signals_recv_count);
+
 	/* We only dequeue private signals from ourselves, we don't let
 	 * signalfd steal them
 	 */
-- 
2.43.0


.

From: srinivas.kandagatla@linaro.org
To: gregkh@linuxfoundation.org
Cc: linux-kernel@vger.kernel.org,
	Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Subject: [PATCH v2 0/6] misc: fastrpc: patches for v6.11
Date: Fri,  5 Jul 2024 08:58:54 +0100
Message-Id: <20240705075900.424100-1-srinivas.kandagatla@linaro.org>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1268837
Newsgroups: org.kernel.vger.linux-kernel
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

From: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>

Hi Greg,

Here are few patches in fastrpc for 6.11 that includes
- support for sensors on SDM845
- update maintainers to cc dr-devel for dmabuf related discussions
- use MODULE_DESCRIPTION
- use memdup_user

Can you please queue them up for 6.11.

Thanks,
Srini
Changes since v1:
- removed stale slimbus patch from series.


Dmitry Baryshkov (1):
  MAINTAINERS: CC dri-devel list on Qualcomm FastRPC patches

Dylan Van Assche (2):
  misc: fastrpc: support complete DMA pool access to the DSP
  misc: fastrpc: use coherent pool for untranslated Compute Banks

Ekansh Gupta (1):
  misc: fastrpc: Add missing dev_err newlines

Jeff Johnson (1):
  misc: fastrpc: add missing MODULE_DESCRIPTION() macro

Thorsten Blum (1):
  misc: fastrpc: Use memdup_user()

 MAINTAINERS            |  1 +
 drivers/misc/fastrpc.c | 46 +++++++++++++++++++++++++++++-------------
 2 files changed, 33 insertions(+), 14 deletions(-)

-- 
2.25.1

.

From: srinivas.kandagatla@linaro.org
To: gregkh@linuxfoundation.org
Cc: linux-kernel@vger.kernel.org,
	Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Subject: [PATCH 0/1] slimbus: patches for 6.11
Date: Fri,  5 Jul 2024 09:02:33 +0100
Message-Id: <20240705080234.424587-1-srinivas.kandagatla@linaro.org>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1268845
Newsgroups: org.kernel.vger.linux-kernel
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

From: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>

Hi Greg,

Here is a single patch in slimbus for 6.11.

Can you please queue them up for 6.11.

Thanks,
Srini

Amit Vadhavana (1):
  slimbus: Fix struct and documentation alignment in stream.c

 drivers/slimbus/stream.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

-- 
2.25.1

.

From: Dongliang Cui <dongliang.cui@unisoc.com>
To: <linkinjeon@kernel.org>, <sj1557.seo@samsung.com>,
        <linux-fsdevel@vger.kernel.org>, <linux-kernel@vger.kernel.org>
CC: <niuzhiguo84@gmail.com>, <hao_hao.wang@unisoc.com>, <ke.wang@unisoc.com>,
        <dongliang.cui@unisoc.com>, Zhiguo Niu <zhiguo.niu@unisoc.com>
Subject: [PATCH] exfat: check disk status during buffer write
Date: Fri, 5 Jul 2024 16:15:14 +0800
Message-ID: <20240705081514.1901580-1-dongliang.cui@unisoc.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1268855
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-fsdevel
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

We found that when writing a large file through buffer write,
if the disk is inaccessible, exFAT does not return an error
normally, which leads to the writing process not stopping properly.

To easily reproduce this issue, you can follow the steps below:

1. format a device to exFAT and then mount (with a full disk erase)
2. dd if=/dev/zero of=/exfat_mount/test.img bs=1M count=8192
3. eject the device

You may find that the dd process does not stop immediately and may
continue for a long time.

We compared it with the FAT, where FAT would prompt an EIO error and
immediately stop the dd operation.

The root cause of this issue is that when the exfat_inode contains the
ALLOC_NO_FAT_CHAIN flag, exFAT does not need to access the disk to
look up directory entries or the FAT table (whereas FAT would do)
every time data is written. Instead, exFAT simply marks the buffer as
dirty and returns, delegating the writeback operation to the writeback
process.

If the disk cannot be accessed at this time, the error will only be
returned to the writeback process, and the original process will not
receive the error, so it cannot be returned to the user side.

Therefore, we think that when writing files with ALLOC_NO_FAT_CHAIN,
it is necessary to continuously check the status of the disk.

When the disk cannot be accessed normally, an error should be returned
to stop the writing process.

Signed-off-by: Dongliang Cui <dongliang.cui@unisoc.com>
Signed-off-by: Zhiguo Niu <zhiguo.niu@unisoc.com>
---
 fs/exfat/exfat_fs.h | 5 +++++
 fs/exfat/inode.c    | 5 +++++
 2 files changed, 10 insertions(+)

diff --git a/fs/exfat/exfat_fs.h b/fs/exfat/exfat_fs.h
index ecc5db952deb..c5f5a7a8b672 100644
--- a/fs/exfat/exfat_fs.h
+++ b/fs/exfat/exfat_fs.h
@@ -411,6 +411,11 @@ static inline unsigned int exfat_sector_to_cluster(struct exfat_sb_info *sbi,
 		EXFAT_RESERVED_CLUSTERS;
 }
 
+static inline bool exfat_check_disk_error(struct block_device *bdev)
+{
+	return blk_queue_dying(bdev_get_queue(bdev));
+}
+
 static inline bool is_valid_cluster(struct exfat_sb_info *sbi,
 		unsigned int clus)
 {
diff --git a/fs/exfat/inode.c b/fs/exfat/inode.c
index dd894e558c91..efd02c1c83a6 100644
--- a/fs/exfat/inode.c
+++ b/fs/exfat/inode.c
@@ -147,6 +147,11 @@ static int exfat_map_cluster(struct inode *inode, unsigned int clu_offset,
 	*clu = last_clu = ei->start_clu;
 
 	if (ei->flags == ALLOC_NO_FAT_CHAIN) {
+		if (exfat_check_disk_error(sb->s_bdev)) {
+			exfat_fs_error(sb, "device inaccessiable!\n");
+			return -EIO;
+		}
+
 		if (clu_offset > 0 && *clu != EXFAT_EOF_CLUSTER) {
 			last_clu += clu_offset - 1;
 
-- 
2.25.1

.

From: <ed.tsai@mediatek.com>
To: Miklos Szeredi <miklos@szeredi.hu>, Amir Goldstein <amir73il@gmail.com>,
	Alexander Viro <viro@zeniv.linux.org.uk>, Christian Brauner
	<brauner@kernel.org>, Jan Kara <jack@suse.cz>, Matthias Brugger
	<matthias.bgg@gmail.com>, AngeloGioacchino Del Regno
	<angelogioacchino.delregno@collabora.com>
CC: <wsd_upstream@mediatek.com>, <chun-hung.wu@mediatek.com>,
	<casper.li@mediatek.com>, Ed Tsai <ed.tsai@mediatek.com>,
	<linux-fsdevel@vger.kernel.org>, <linux-unionfs@vger.kernel.org>,
	<linux-kernel@vger.kernel.org>, <linux-arm-kernel@lists.infradead.org>,
	<linux-mediatek@lists.infradead.org>
Subject: [PATCH 1/1] backing-file: covert to using fops->splice_write
Date: Fri, 5 Jul 2024 16:16:39 +0800
Message-ID: <20240705081642.12032-1-ed.tsai@mediatek.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1268857
Newsgroups: org.kernel.vger.linux-kernel,org.infradead.lists.linux-arm-kernel,org.infradead.lists.linux-mediatek,org.kernel.vger.linux-fsdevel,org.kernel.vger.linux-unionfs
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

From: Ed Tsai <ed.tsai@mediatek.com>

Filesystems may define their own splice write. Therefore, use file
fops instead of invoking iter_file_splice_write() directly.

Signed-off-by: Ed Tsai <ed.tsai@mediatek.com>
---
 fs/backing-file.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/fs/backing-file.c b/fs/backing-file.c
index 740185198db3..687a7fae7d25 100644
--- a/fs/backing-file.c
+++ b/fs/backing-file.c
@@ -280,13 +280,16 @@ ssize_t backing_file_splice_write(struct pipe_inode_info *pipe,
 	if (WARN_ON_ONCE(!(out->f_mode & FMODE_BACKING)))
 		return -EIO;
 
+	if (out->f_op->splice_write)
+		return -EINVAL;
+
 	ret = file_remove_privs(ctx->user_file);
 	if (ret)
 		return ret;
 
 	old_cred = override_creds(ctx->cred);
 	file_start_write(out);
-	ret = iter_file_splice_write(pipe, out, ppos, len, flags);
+	ret = out->f_op->splice_write(pipe, out, ppos, len, flags);
 	file_end_write(out);
 	revert_creds(old_cred);
 
-- 
2.18.0

.

From: Slark Xiao <slark_xiao@163.com>
To: johan@kernel.org
Cc: gregkh@linuxfoundation.org,
	linux-usb@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	Slark Xiao <slark_xiao@163.com>
Subject: [PATCH] USB: serial: option: add support for Foxconn T99W651
Date: Fri,  5 Jul 2024 16:17:09 +0800
Message-Id: <20240705081709.105496-1-slark_xiao@163.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1268858
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-usb
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

T99W651 is a RNDIS based modem device. There are 3 serial ports
need to be enumerated: Diag, NMEA and AT.

Test evidence as below:
T:  Bus=01 Lev=02 Prnt=02 Port=00 Cnt=01 Dev#=  6 Spd=480 MxCh= 0
D:  Ver= 2.10 Cls=ef(misc ) Sub=02 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=0489 ProdID=e145 Rev=05.15
S:  Manufacturer=QCOM
S:  Product=SDXPINN-IDP _SN:93B562B2
S:  SerialNumber=82e6fe26
C:  #Ifs= 7 Cfg#= 1 Atr=a0 MxPwr=500mA
I:  If#=0x0 Alt= 0 #EPs= 1 Cls=ef(misc ) Sub=04 Prot=01 Driver=rndis_host
I:  If#=0x1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=rndis_host
I:  If#=0x2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=40 Driver=option
I:  If#=0x3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=40 Driver=option
I:  If#=0x4 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=30 Driver=option
I:  If#=0x5 Alt= 0 #EPs= 1 Cls=ff(vend.) Sub=ff Prot=70 Driver=(none)
I:  If#=0x6 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=42 Prot=01 Driver=(none)

0&1: RNDIS, 2:AT, 3:NMEA, 4:DIAG, 5:QDSS, 6:ADB
QDSS is not a serial port.

Signed-off-by: Slark Xiao <slark_xiao@163.com>
---
 drivers/usb/serial/option.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c
index 178760bc7b92..4a43cec86db7 100644
--- a/drivers/usb/serial/option.c
+++ b/drivers/usb/serial/option.c
@@ -2294,6 +2294,8 @@ static const struct usb_device_id option_ids[] = {
 	  .driver_info = RSVD(3) },
 	{ USB_DEVICE_INTERFACE_CLASS(0x0489, 0xe0f0, 0xff),			/* Foxconn T99W373 MBIM */
 	  .driver_info = RSVD(3) },
+	{ USB_DEVICE_INTERFACE_CLASS(0x0489, 0xe145, 0xff),			/* Foxconn T99W651 RNDIS */
+	  .driver_info = RSVD(5) | RSVD(6) },
 	{ USB_DEVICE(0x1508, 0x1001),						/* Fibocom NL668 (IOT version) */
 	  .driver_info = RSVD(4) | RSVD(5) | RSVD(6) },
 	{ USB_DEVICE(0x1782, 0x4d10) },						/* Fibocom L610 (AT mode) */
-- 
2.25.1

.

From: Chen Ni <nichen@iscas.ac.cn>
To: dmitry.torokhov@gmail.com,
	u.kleine-koenig@pengutronix.de,
	Jonathan.Cameron@huawei.com,
	broonie@kernel.org
Cc: linux-input@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	Chen Ni <nichen@iscas.ac.cn>
Subject: [PATCH] Input: pxspad - add check for spi_setup
Date: Fri,  5 Jul 2024 16:20:57 +0800
Message-Id: <20240705082057.3006342-1-nichen@iscas.ac.cn>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1268870
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-input
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Add check for the return value of spi_setup() and return the error
if it fails in order to catch the error.

Signed-off-by: Chen Ni <nichen@iscas.ac.cn>
---
 drivers/input/joystick/psxpad-spi.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/drivers/input/joystick/psxpad-spi.c b/drivers/input/joystick/psxpad-spi.c
index c47fc5f34bd0..5b53d43c797a 100644
--- a/drivers/input/joystick/psxpad-spi.c
+++ b/drivers/input/joystick/psxpad-spi.c
@@ -344,7 +344,11 @@ static int psxpad_spi_probe(struct spi_device *spi)
 	/* (PlayStation 1/2 joypad might be possible works 250kHz/500kHz) */
 	spi->controller->min_speed_hz = 125000;
 	spi->controller->max_speed_hz = 125000;
-	spi_setup(spi);
+	err = spi_setup(spi);
+	if (err < 0) {
+		dev_err(&spi->dev, "failed to set up spi: %d\n", err);
+		return err;
+	}
 
 	/* pad settings */
 	psxpad_set_motor_level(pad, 0, 0);
-- 
2.25.1

.

From: Chen Ni <nichen@iscas.ac.cn>
To: lee@kernel.org,
	daniel.thompson@linaro.org,
	jingoohan1@gmail.com,
	deller@gmx.de
Cc: dri-devel@lists.freedesktop.org,
	linux-fbdev@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	Chen Ni <nichen@iscas.ac.cn>
Subject: [PATCH] backlight: l4f00242t03: Add check for spi_setup
Date: Fri,  5 Jul 2024 16:38:34 +0800
Message-Id: <20240705083834.3006465-1-nichen@iscas.ac.cn>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1268874
Newsgroups: org.kernel.vger.linux-kernel,org.freedesktop.lists.dri-devel,org.kernel.vger.linux-fbdev
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Add check for the return value of spi_setup() and return the error
if it fails in order to catch the error.

Signed-off-by: Chen Ni <nichen@iscas.ac.cn>
---
 drivers/video/backlight/l4f00242t03.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/video/backlight/l4f00242t03.c b/drivers/video/backlight/l4f00242t03.c
index dd0874f8c7ff..a4e27adee8ac 100644
--- a/drivers/video/backlight/l4f00242t03.c
+++ b/drivers/video/backlight/l4f00242t03.c
@@ -166,6 +166,7 @@ static const struct lcd_ops l4f_ops = {
 static int l4f00242t03_probe(struct spi_device *spi)
 {
 	struct l4f00242t03_priv *priv;
+	int ret;
 
 	priv = devm_kzalloc(&spi->dev, sizeof(struct l4f00242t03_priv),
 				GFP_KERNEL);
@@ -174,7 +175,9 @@ static int l4f00242t03_probe(struct spi_device *spi)
 
 	spi_set_drvdata(spi, priv);
 	spi->bits_per_word = 9;
-	spi_setup(spi);
+	ret = spi_setup(spi);
+	if (ret < 0)
+		return ret;
 
 	priv->spi = spi;
 
-- 
2.25.1

.

From: Chen Ni <nichen@iscas.ac.cn>
To: jic23@kernel.org,
	lars@metafoo.de
Cc: linux-iio@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	Chen Ni <nichen@iscas.ac.cn>
Subject: [PATCH] iio: dac: ti-dac7311: Add check for spi_setup
Date: Fri,  5 Jul 2024 16:42:50 +0800
Message-Id: <20240705084250.3006527-1-nichen@iscas.ac.cn>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1268879
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-iio
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Add check for the return value of spi_setup() and return the error
if it fails in order to catch the error.

Signed-off-by: Chen Ni <nichen@iscas.ac.cn>
---
 drivers/iio/dac/ti-dac7311.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/drivers/iio/dac/ti-dac7311.c b/drivers/iio/dac/ti-dac7311.c
index 7f89d2a52f49..8e8a8ab0ebf6 100644
--- a/drivers/iio/dac/ti-dac7311.c
+++ b/drivers/iio/dac/ti-dac7311.c
@@ -249,7 +249,11 @@ static int ti_dac_probe(struct spi_device *spi)
 
 	spi->mode = SPI_MODE_1;
 	spi->bits_per_word = 16;
-	spi_setup(spi);
+	ret = spi_setup(spi);
+	if (ret < 0) {
+		dev_err(dev, "spi_setup failed\n");
+		return ret;
+	}
 
 	indio_dev->info = &ti_dac_info;
 	indio_dev->name = spi_get_device_id(spi)->name;
-- 
2.25.1

.

From: Saurabh Sengar <ssengar@linux.microsoft.com>
To: akpm@linux-foundation.org,
	linux-mm@kvack.org,
	linux-kernel@vger.kernel.org
Cc: ssengar@microsoft.com,
	wei.liu@kernel.org
Subject: [PATCH v2] tools: hv: suppress the invalid warning for packed member alignment
Date: Fri,  5 Jul 2024 01:47:07 -0700
Message-Id: <1720169227-20465-1-git-send-email-ssengar@linux.microsoft.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1268882 org.kvack.linux-mm:202696
Newsgroups: org.kernel.vger.linux-kernel,org.kvack.linux-mm
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Packed struct vmbus_bufring is 4096 byte aligned and the reporting
warning is for the first member of that struct which shouldn't add
any offset to create alignment issue.

Suppress the warning by adding -Wno-address-of-packed-member flag to
gcc.

Fixes: 45bab4d74651 ("tools: hv: Add vmbus_bufring")
Reported-by: kernel test robot <yujie.liu@intel.com>
Closes: https://lore.kernel.org/all/202404121913.GhtSoKbW-lkp@intel.com/
Signed-off-by: Saurabh Sengar <ssengar@linux.microsoft.com>
---
[V2] Added 'Fixes' tag

 tools/hv/Makefile | 1 +
 1 file changed, 1 insertion(+)

diff --git a/tools/hv/Makefile b/tools/hv/Makefile
index bb52871..2e60e2c 100644
--- a/tools/hv/Makefile
+++ b/tools/hv/Makefile
@@ -17,6 +17,7 @@ endif
 MAKEFLAGS += -r
 
 override CFLAGS += -O2 -Wall -g -D_GNU_SOURCE -I$(OUTPUT)include
+override CFLAGS += -Wno-address-of-packed-member
 
 ALL_TARGETS := hv_kvp_daemon hv_vss_daemon
 ifneq ($(ARCH), aarch64)
-- 
1.8.3.1

.

From: Saurabh Sengar <ssengar@linux.microsoft.com>
To: akpm@linux-foundation.org,
	linux-mm@kvack.org,
	linux-kernel@vger.kernel.org
Cc: ssengar@microsoft.com,
	wei.liu@kernel.org
Subject: [PATCH] mm/vmstat: Defer the refresh_zone_stat_thresholds after all CPUs bringup
Date: Fri,  5 Jul 2024 01:48:21 -0700
Message-Id: <1720169301-21002-1-git-send-email-ssengar@linux.microsoft.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1268883 org.kvack.linux-mm:202697
Newsgroups: org.kernel.vger.linux-kernel,org.kvack.linux-mm
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

refresh_zone_stat_thresholds function has two loops which is expensive for
higher number of CPUs and NUMA nodes.

Below is the rough estimation of total iterations done by these loops
based on number of NUMA and CPUs.

Total number of iterations: nCPU * 2 * Numa * mCPU
Where:
 nCPU = total number of CPUs
 Numa = total number of NUMA nodes
 mCPU = mean value of total CPUs (e.g., 512 for 1024 total CPUs)

For the system under test with 16 NUMA nodes and 1024 CPUs, this
results in a substantial increase in the number of loop iterations
during boot-up when NUMA is enabled:

No NUMA = 1024*2*1*512  =   1,048,576 : Here refresh_zone_stat_thresholds
takes around 224 ms total for all the CPUs in the system under test.
16 NUMA = 1024*2*16*512 =  16,777,216 : Here refresh_zone_stat_thresholds
takes around 4.5 seconds total for all the CPUs in the system under test.

Calling this for each CPU is expensive when there are large number
of CPUs along with multiple NUMAs. Fix this by deferring
refresh_zone_stat_thresholds to be called later at once when all the
secondary CPUs are up. Also, register the DYN hooks to keep the
existing hotplug functionality intact.

Signed-off-by: Saurabh Sengar <ssengar@linux.microsoft.com>
---
 mm/vmstat.c | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/mm/vmstat.c b/mm/vmstat.c
index 6e3347789eb2..5c0df62238d9 100644
--- a/mm/vmstat.c
+++ b/mm/vmstat.c
@@ -31,6 +31,7 @@
 
 #include "internal.h"
 
+static int vmstat_late_init_done;
 #ifdef CONFIG_NUMA
 int sysctl_vm_numa_stat = ENABLE_NUMA_STAT;
 
@@ -2107,7 +2108,8 @@ static void __init init_cpu_node_state(void)
 
 static int vmstat_cpu_online(unsigned int cpu)
 {
-	refresh_zone_stat_thresholds();
+	if (vmstat_late_init_done)
+		refresh_zone_stat_thresholds();
 
 	if (!node_state(cpu_to_node(cpu), N_CPU)) {
 		node_set_state(cpu_to_node(cpu), N_CPU);
@@ -2139,6 +2141,14 @@ static int vmstat_cpu_dead(unsigned int cpu)
 	return 0;
 }
 
+static int __init vmstat_late_init(void)
+{
+	refresh_zone_stat_thresholds();
+	vmstat_late_init_done = 1;
+
+	return 0;
+}
+late_initcall(vmstat_late_init);
 #endif
 
 struct workqueue_struct *mm_percpu_wq;
-- 
2.34.1

.

From: Paolo Bonzini <pbonzini@redhat.com>
To: torvalds@linux-foundation.org
Cc: linux-kernel@vger.kernel.org,
	kvm@vger.kernel.org
Subject: [GIT PULL] KVM changes for Linux 6.10-rc7
Date: Fri,  5 Jul 2024 04:51:20 -0400
Message-ID: <20240705085120.659090-1-pbonzini@redhat.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1268885
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.kvm
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Linus,

The following changes since commit 22a40d14b572deb80c0648557f4bd502d7e83826:

  Linux 6.10-rc6 (2024-06-30 14:40:44 -0700)

are available in the Git repository at:

  https://git.kernel.org/pub/scm/virt/kvm/kvm.git tags/for-linus

for you to fetch changes up to 8ad209fc6448e1d7fff7525a8d40d2fb549f72d1:

  Merge tag 'kvm-s390-master-6.10-1' of git://git.kernel.org/pub/scm/linux/kernel/git/kvms390/linux into HEAD (2024-07-05 04:45:53 -0400)

Things have definitely calmed down. :)

Thanks,

Paolo

----------------------------------------------------------------
s390: fix support for z16 systems.

----------------------------------------------------------------
Christian Borntraeger (1):
      KVM: s390: fix LPSWEY handling

Paolo Bonzini (1):
      Merge tag 'kvm-s390-master-6.10-1' of git://git.kernel.org/pub/scm/linux/kernel/git/kvms390/linux into HEAD

 arch/s390/include/asm/kvm_host.h |  1 +
 arch/s390/kvm/kvm-s390.c         |  1 +
 arch/s390/kvm/kvm-s390.h         | 15 +++++++++++++++
 arch/s390/kvm/priv.c             | 32 ++++++++++++++++++++++++++++++++
 4 files changed, 49 insertions(+)

.

From: Tao Zhang <quic_taozha@quicinc.com>
To: Mathieu Poirier <mathieu.poirier@linaro.org>,
        Suzuki K Poulose
	<suzuki.poulose@arm.com>,
        Alexander Shishkin
	<alexander.shishkin@linux.intel.com>,
        Mike Leach <mike.leach@linaro.org>, "Rob Herring" <robh+dt@kernel.org>,
        Krzysztof Kozlowski
	<krzysztof.kozlowski+dt@linaro.org>,
        James Clark <james.clark@arm.com>
CC: Tao Zhang <quic_taozha@quicinc.com>,
        Jinlong Mao
	<quic_jinlmao@quicinc.com>, Leo Yan <leo.yan@linaro.org>,
        <coresight@lists.linaro.org>, <linux-arm-kernel@lists.infradead.org>,
        <linux-kernel@vger.kernel.org>, <devicetree@vger.kernel.org>,
        Tingwei Zhang
	<quic_tingweiz@quicinc.com>,
        Yuanfang Zhang <quic_yuanfang@quicinc.com>,
        Trilok Soni <quic_tsoni@quicinc.com>,
        Song Chai <quic_songchai@quicinc.com>, <linux-arm-msm@vger.kernel.org>,
        Jie Gan <quic_jiegan@quicinc.com>
Subject: [PATCH v1 0/3] Add source filtering for multi-port output
Date: Fri, 5 Jul 2024 16:51:49 +0800
Message-ID: <20240705085152.9063-1-quic_taozha@quicinc.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1268888
Newsgroups: org.kernel.vger.linux-kernel,org.infradead.lists.linux-arm-kernel,org.kernel.vger.linux-arm-msm,org.kernel.vger.linux-devicetree
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

In our hardware design, by combining a funnel and a replicator, it
implement a hardware device with one-to-one correspondence between
output ports and input ports. The programming usage on this device
is the same as funnel. The software uses a funnel and a static
replicator to implement the driver of this device. Since original
funnels only support a single output connection and original
replicator only support a single input connection, the code needs
to be modified to support this new feature. The following is a
typical topology diagram of multi-port output mechanism.
|----------|     |---------|     |----------|   |---------|
|  TPDM 0  |     | Source0 |     | Source 1 |   | TPDM 1  |
|----------|     |---------|     |----------|   |---------|
      |                |                |             |
      |                |                |             |
      |      --------- |                |             |
      |      |                          |             |
      |      |                          |             |
      |      |                          |             |
   \-------------/ ----------------------             |
    \  Funnel 0 /  |                                  |
     -----------   |     ------------------------------
          |        |     |
          |        |     |
        \------------------/
         \    Funnel 1    /     ----|
          \--------------/          |
                  |                 |----> Combine a funnel and a
                  |                 |      static replicator
          /-----------------\       |
         /    replicator 0   \  ----|
        /---------------------\
             |     |      |
             |     |      |-----------|
             |     |---------|        |
             |               |TPDM0   |TPDM1
             |            \-----------------/
             |             \   TPDA 0      /
             |              \-------------/
             |                    |
             |                    |
             |Source0/1           |
          \-------------------------------/
           \           Funnel 2          /
            \---------------------------/

Changes in V1:
1. Add a static replicator connect to a funnel to implement the
correspondence between the output ports and the input ports on
funnels.
-- Suzuki K Poulose
2. Add filter_src_dev and filter_src_dev phandle to
"coresight_connection" struct, and populate them if there is one.
-- Suzuki K Poulose
3. To look at the phandle and then fixup/remove the filter_src
device in fixup/remove connections.
-- Suzuki K Poulose
4. When TPDA reads DSB/CMB element size, it is implemented by
looking up filter src device in the connections.
-- Suzuki K Poulose

Tao Zhang (3):
  dt-bindings: arm: qcom,coresight-static-replicator: Add property for
    source filtering
  coresight: Add source filtering for multi-port output
  coresight-tpda: Optimize the function of reading element size

 .../arm/arm,coresight-static-replicator.yaml  | 18 +++-
 drivers/hwtracing/coresight/coresight-core.c  | 89 ++++++++++++++++---
 .../hwtracing/coresight/coresight-platform.c  | 13 +++
 drivers/hwtracing/coresight/coresight-tpda.c  |  6 +-
 include/linux/coresight.h                     |  5 ++
 5 files changed, 115 insertions(+), 16 deletions(-)

-- 
2.17.1

.

Return-Path: <linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org>
From: Kanak Shilledar <kanakshilledar@gmail.com>
To: 
Cc: Kanak Shilledar <kanakshilledar@gmail.com>,
	Jisheng Zhang <jszhang@kernel.org>,
	Guo Ren <guoren@kernel.org>,
	Fu Wei <wefu@redhat.com>,
	Conor Dooley <conor@kernel.org>,
	Rob Herring <robh@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	linux-riscv@lists.infradead.org,
	devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: [PATCH v3 0/1] Add basic SPI support on TH1520
Date: Fri,  5 Jul 2024 15:04:58 +0530
Message-ID: <20240705093503.215787-1-kanakshilledar@gmail.com>
MIME-Version: 1.0
X-BeenThere: linux-riscv@lists.infradead.org
X-Mailman-Version: 2.1.34
List-Id: <linux-riscv.lists.infradead.org>
List-Unsubscribe: <http://lists.infradead.org/mailman/options/linux-riscv>,
 <mailto:linux-riscv-request@lists.infradead.org?subject=unsubscribe>
List-Archive: <http://lists.infradead.org/pipermail/linux-riscv/>
List-Post: <mailto:linux-riscv@lists.infradead.org>
List-Help: <mailto:linux-riscv-request@lists.infradead.org?subject=help>
List-Subscribe: <http://lists.infradead.org/mailman/listinfo/linux-riscv>,
 <mailto:linux-riscv-request@lists.infradead.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: "linux-riscv" <linux-riscv-bounces@lists.infradead.org>
Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org
Xref: photonic.trudheim.com org.infradead.lists.linux-riscv:79410 org.kernel.vger.linux-kernel:1268899
Newsgroups: org.infradead.lists.linux-riscv,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-kernel
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Implemented basic SPI support for TH1520 SoC. There are two SPIs reserved
on the LicheePi4A, one on the SPI Flash pads that are blanked out on the
back, and one on the pins. I implemented the one connected to the pad.

It is using a fixed clock of 396MHz. The address and clock frequency was
referenced from the TH1520 System Reference Manual [1].

I have tested this on the LicheePi4A.

[2] Driver Patch discussion
[3] Devicetree binding discussion

Changes made in v3:
- Dropped the driver patch as the generic fallback compatible was
  working properly. [2]
- Removed the devicetree binding patch as it got accepted and is already
  in the linux-next branch. [3]
- Arranged the devicetree aliases alphabetically in the DTS files.

Changes made in v2:
- Changed from single patch file to a patchset by splitting the single
  commit into dt-bindings, driver and the devicetree.

[1] https://openbeagle.org/beaglev-ahead/beaglev-ahead/-/blob/main/docs/TH1520%20System%20User%20Manual.pdf
[2] https://lore.kernel.org/all/20240701121355.262259-4-kanakshilledar@gmail.com/
[3] https://lore.kernel.org/all/20240701121355.262259-3-kanakshilledar@gmail.com/


Kanak Shilledar (1):
  riscv: dts: thead: add basic spi node

 .../boot/dts/thead/th1520-beaglev-ahead.dts      |  9 +++++++++
 .../boot/dts/thead/th1520-lichee-module-4a.dtsi  |  4 ++++
 .../riscv/boot/dts/thead/th1520-lichee-pi-4a.dts |  5 +++++
 arch/riscv/boot/dts/thead/th1520.dtsi            | 16 ++++++++++++++++
 4 files changed, 34 insertions(+)


base-commit: 22a40d14b572deb80c0648557f4bd502d7e83826
-- 
2.45.2


_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
.

From: Liu Ying <victor.liu@nxp.com>
To: dri-devel@lists.freedesktop.org,
	devicetree@vger.kernel.org,
	imx@lists.linux.dev,
	linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org
Cc: p.zabel@pengutronix.de,
	airlied@gmail.com,
	daniel@ffwll.ch,
	maarten.lankhorst@linux.intel.com,
	mripard@kernel.org,
	tzimmermann@suse.de,
	robh@kernel.org,
	krzk+dt@kernel.org,
	conor+dt@kernel.org,
	shawnguo@kernel.org,
	s.hauer@pengutronix.de,
	kernel@pengutronix.de,
	festevam@gmail.com,
	tglx@linutronix.de
Subject: [PATCH 00/10] Add Freescale i.MX8qxp Display Controller support
Date: Fri,  5 Jul 2024 17:09:22 +0800
Message-Id: <20240705090932.1880496-1-victor.liu@nxp.com>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1268902
Newsgroups: org.kernel.vger.linux-kernel,dev.linux.lists.imx,org.freedesktop.lists.dri-devel,org.infradead.lists.linux-arm-kernel,org.kernel.vger.linux-devicetree
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Hi,

This patch series aims to add Freescale i.MX8qxp Display Controller support.

The controller is comprised of three main components that include a blit
engine for 2D graphics accelerations, display controller for display output
processing, as well as a command sequencer.

Previous patch series attempts to do that can be found at:
https://patchwork.freedesktop.org/series/84524/

This series addresses Maxime's comments on the previous one:
a. Split the display controller into multiple internal devices.
   1) List display engine, pixel engine, interrupt controller and more as the
      controller's child devices.
   2) List display engine and pixel engine's processing units as their child
      devices.

b. Add minimal feature support.
   Only support two display pipelines with primary planes with XR24 fb,
   backed by two fetchunits.  No fetchunit dynamic allocation logic(to be done
   when necessary).

c. Use drm_dev_{enter, exit}().

Since this series changes a lot comparing to the previous one, I choose to
send it with a new patch series, not a new version.

To follow up i.MX8qxp TRM, I changed the controller name to "Display Controller"
instead of the previous "DPU".  "DPU" is only mentioned in the SoC block
diagram and represents the whole display subsystem which includes the display
controller and prefech engines, etc.

Liu Ying (10):
  dt-bindings: display: imx: Add some i.MX8qxp Display Controller
    processing units
  dt-bindings: display: imx: Add i.MX8qxp Display Controller display
    engine
  dt-bindings: display: imx: Add i.MX8qxp Display Controller pixel
    engine
  dt-bindings: interrupt-controller: Add i.MX8qxp Display Controller
    interrupt controller
  dt-bindings: display: imx: Add i.MX8qxp Display Controller
  drm/imx: Add i.MX8qxp Display Controller display engine
  drm/imx: Add i.MX8qxp Display Controller pixel engine
  drm/imx: Add i.MX8qxp Display Controller interrupt controller
  drm/imx: Add i.MX8qxp Display Controller KMS
  MAINTAINERS: Add maintainer for i.MX8qxp Display Controller

 .../imx/fsl,imx8qxp-dc-constframe.yaml        |  51 ++
 .../imx/fsl,imx8qxp-dc-display-engine.yaml    | 166 +++++
 .../display/imx/fsl,imx8qxp-dc-extdst.yaml    |  79 +++
 .../imx/fsl,imx8qxp-dc-fetchlayer.yaml        |  37 ++
 .../imx/fsl,imx8qxp-dc-fetchunit-common.yaml  | 125 ++++
 .../display/imx/fsl,imx8qxp-dc-fetchwarp.yaml |  37 ++
 .../display/imx/fsl,imx8qxp-dc-framegen.yaml  |  71 +++
 .../imx/fsl,imx8qxp-dc-layerblend.yaml        |  46 ++
 .../imx/fsl,imx8qxp-dc-pixel-engine.yaml      | 264 ++++++++
 .../display/imx/fsl,imx8qxp-dc-tcon.yaml      |  41 ++
 .../bindings/display/imx/fsl,imx8qxp-dc.yaml  | 243 ++++++++
 .../fsl,imx8qxp-dc-intc.yaml                  | 321 ++++++++++
 MAINTAINERS                                   |  19 +
 drivers/gpu/drm/imx/Kconfig                   |   1 +
 drivers/gpu/drm/imx/Makefile                  |   1 +
 drivers/gpu/drm/imx/dc/Kconfig                |   8 +
 drivers/gpu/drm/imx/dc/Makefile               |   7 +
 drivers/gpu/drm/imx/dc/dc-cf.c                | 158 +++++
 drivers/gpu/drm/imx/dc/dc-crtc.c              | 578 ++++++++++++++++++
 drivers/gpu/drm/imx/dc/dc-crtc.h              |  67 ++
 drivers/gpu/drm/imx/dc/dc-de.c                | 152 +++++
 drivers/gpu/drm/imx/dc/dc-de.h                |  64 ++
 drivers/gpu/drm/imx/dc/dc-drv.c               | 280 +++++++++
 drivers/gpu/drm/imx/dc/dc-drv.h               |  54 ++
 drivers/gpu/drm/imx/dc/dc-ed.c                | 267 ++++++++
 drivers/gpu/drm/imx/dc/dc-fg.c                | 367 +++++++++++
 drivers/gpu/drm/imx/dc/dc-fl.c                | 137 +++++
 drivers/gpu/drm/imx/dc/dc-fu.c                | 241 ++++++++
 drivers/gpu/drm/imx/dc/dc-fu.h                | 129 ++++
 drivers/gpu/drm/imx/dc/dc-fw.c                | 150 +++++
 drivers/gpu/drm/imx/dc/dc-ic.c                | 249 ++++++++
 drivers/gpu/drm/imx/dc/dc-kms.c               | 143 +++++
 drivers/gpu/drm/imx/dc/dc-kms.h               |  15 +
 drivers/gpu/drm/imx/dc/dc-lb.c                | 301 +++++++++
 drivers/gpu/drm/imx/dc/dc-pe.c                | 140 +++++
 drivers/gpu/drm/imx/dc/dc-pe.h                |  91 +++
 drivers/gpu/drm/imx/dc/dc-plane.c             | 227 +++++++
 drivers/gpu/drm/imx/dc/dc-plane.h             |  37 ++
 drivers/gpu/drm/imx/dc/dc-tc.c                | 137 +++++
 39 files changed, 5501 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-constframe.yaml
 create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-display-engine.yaml
 create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-extdst.yaml
 create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-fetchlayer.yaml
 create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-fetchunit-common.yaml
 create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-fetchwarp.yaml
 create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-framegen.yaml
 create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-layerblend.yaml
 create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-pixel-engine.yaml
 create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc-tcon.yaml
 create mode 100644 Documentation/devicetree/bindings/display/imx/fsl,imx8qxp-dc.yaml
 create mode 100644 Documentation/devicetree/bindings/interrupt-controller/fsl,imx8qxp-dc-intc.yaml
 create mode 100644 drivers/gpu/drm/imx/dc/Kconfig
 create mode 100644 drivers/gpu/drm/imx/dc/Makefile
 create mode 100644 drivers/gpu/drm/imx/dc/dc-cf.c
 create mode 100644 drivers/gpu/drm/imx/dc/dc-crtc.c
 create mode 100644 drivers/gpu/drm/imx/dc/dc-crtc.h
 create mode 100644 drivers/gpu/drm/imx/dc/dc-de.c
 create mode 100644 drivers/gpu/drm/imx/dc/dc-de.h
 create mode 100644 drivers/gpu/drm/imx/dc/dc-drv.c
 create mode 100644 drivers/gpu/drm/imx/dc/dc-drv.h
 create mode 100644 drivers/gpu/drm/imx/dc/dc-ed.c
 create mode 100644 drivers/gpu/drm/imx/dc/dc-fg.c
 create mode 100644 drivers/gpu/drm/imx/dc/dc-fl.c
 create mode 100644 drivers/gpu/drm/imx/dc/dc-fu.c
 create mode 100644 drivers/gpu/drm/imx/dc/dc-fu.h
 create mode 100644 drivers/gpu/drm/imx/dc/dc-fw.c
 create mode 100644 drivers/gpu/drm/imx/dc/dc-ic.c
 create mode 100644 drivers/gpu/drm/imx/dc/dc-kms.c
 create mode 100644 drivers/gpu/drm/imx/dc/dc-kms.h
 create mode 100644 drivers/gpu/drm/imx/dc/dc-lb.c
 create mode 100644 drivers/gpu/drm/imx/dc/dc-pe.c
 create mode 100644 drivers/gpu/drm/imx/dc/dc-pe.h
 create mode 100644 drivers/gpu/drm/imx/dc/dc-plane.c
 create mode 100644 drivers/gpu/drm/imx/dc/dc-plane.h
 create mode 100644 drivers/gpu/drm/imx/dc/dc-tc.c

-- 
2.34.1

.

From: Jie Gan <quic_jiegan@quicinc.com>
To: Mathieu Poirier <mathieu.poirier@linaro.org>,
        Suzuki K Poulose
	<suzuki.poulose@arm.com>,
        Alexander Shishkin
	<alexander.shishkin@linux.intel.com>,
        Mike Leach <mike.leach@linaro.org>, "Rob Herring" <robh+dt@kernel.org>,
        Krzysztof Kozlowski
	<krzysztof.kozlowski+dt@linaro.org>,
        James Clark <james.clark@arm.com>
CC: Jinlong Mao <quic_jinlmao@quicinc.com>, Leo Yan <leo.yan@linaro.org>,
        <coresight@lists.linaro.org>, <linux-arm-kernel@lists.infradead.org>,
        <linux-kernel@vger.kernel.org>, <devicetree@vger.kernel.org>,
        Tingwei Zhang
	<quic_tingweiz@quicinc.com>,
        Yuanfang Zhang <quic_yuanfang@quicinc.com>,
        "Tao
 Zhang" <quic_taozha@quicinc.com>,
        Trilok Soni <quic_tsoni@quicinc.com>,
        "Song
 Chai" <quic_songchai@quicinc.com>,
        <linux-arm-msm@vger.kernel.org>
Subject: [PATCH v2 0/4] Coresight: Add Coresight Control Unit driver
Date: Fri, 5 Jul 2024 17:00:45 +0800
Message-ID: <20240705090049.1656986-1-quic_jiegan@quicinc.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1268908
Newsgroups: org.kernel.vger.linux-kernel,org.infradead.lists.linux-arm-kernel,org.kernel.vger.linux-arm-msm,org.kernel.vger.linux-devicetree
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

The Coresight Control Unit(CCU) device hosts miscellaneous configuration
registers to control various features related to TMC ETR device.

The CCU device works as a helper device physically connected to the TMC ETR device.
---------------------------------------------------------
             |ETR0|             |ETR1|
              . \                 / .
              .  \               /  .
              .   \             /   .
              .    \           /    .
---------------------------------------------------
ETR0ATID0-ETR0ATID3     CCU     ETR1ATID0-ETR1ATID3
---------------------------------------------------
Each ETR has four ATID registers with 128 bits long in total.
e.g. ETR0ATID0-ETR0ATID3 registers are used by ETR0 device.

Based on the trace id which is programed in CCU ATID register of
specific ETR, trace data with that trace id can get into ETR's buffer
while other trace data gets ignored. The number of CCU ATID registers
depends on the number of defined TMC ETR devices. For example, two TMC
ETR devices need eight ATID registers. ETR0 with ETR0ATID0-ETR0ATID3
and ETR1 with ETR1ATID0-ETRATID3.

The significant challenge in enabling the data filter function is how
to collect the trace ID of the source device. The introduction of
trace_id callback function addresses this challenge. The callback function
collects trace ID of the device and return it directly. The trace ID will be
stored in the structure called cs_sink_data and transmitted to helper
and sink devices.

The cs_sink_data structure is created to address how to transmit
parameters needs by coresight_enable_path/coresight_disbale_path
functions.

Here is an example of the struct cs_sink_data:
struct cs_sink_data {
        struct perf_output_handle  *handle; //used by perf mode
        struct coresight_device    *sink;   //used to retrieve atid_offset
        u32                        traceid; //traceid needed by CCU
};

The atid_offset mentioned before is the offset to ATID register in CCU
device.

Enabling the source device will configure one bit in the ATID register based
on its trace ID.
Disabling the source devices will reset the bit in the AITD register
based on its trace ID.

Useage:
Enable:
STM device with trace ID 5 and ETR0 is activated.
Bitmap before the enablement:
ETR0ATID0:
31..................543210
==========================
0000000000000000000000...0
==========================

Bitmap after the enablement:
31..................543210
==========================
0000000000000...0000100000
==========================

The bit 5 of the ETR0ATID0 register is configured to 1 when enabling the
STM device.

Disable:
STM device with trace ID 5 and ETR0 is activated.
Bitmap before the disablement:
ETR0ATID0:
31................6543210
=========================
000000000010111...0100000
=========================

Bitmap after the disablement
ETR0ATID0:
31................6543210
=========================
000000000010111...0000000
=========================

The bit 5 of the ETR0ATID0 register is reset to 0 when disabling the STM
device.

Previous discussion for V1:

https://lore.kernel.org/lkml/20240618072726.3767974-1-quic_jiegan@quicinc.com/T/#t

V1->V2:
1. Rename the device to Coresight Control Unit.
2. Introduce the trace_id function pointer to address the challeng how to
properly collect the trace ID of the device.
3. Introduce a new way to define the qcom,ccu-atid-offset property in
device tree.
4. Disabling the filter function blocked on acquiring the ATID-offset,
which will be addressed in a separate patch once it’s ready.

Jie Gan (4):
  Coresight: Add trace_id function to collect trace ID
  dt-bindings: arm: Add binding document for Coresight Control Unit
    device.
  Coresight: Add Coresight Control Unit driver
  arm64: dts: qcom: Add CCU and ETR nodes for SA8775p

 .../bindings/arm/qcom,coresight-ccu.yaml      |  87 ++++++
 arch/arm64/boot/dts/qcom/sa8775p.dtsi         | 163 ++++++++++
 drivers/hwtracing/coresight/Kconfig           |   6 +
 drivers/hwtracing/coresight/Makefile          |   1 +
 drivers/hwtracing/coresight/coresight-ccu.c   | 290 ++++++++++++++++++
 drivers/hwtracing/coresight/coresight-ccu.h   |  18 ++
 drivers/hwtracing/coresight/coresight-core.c  |  53 +++-
 drivers/hwtracing/coresight/coresight-etb10.c |   3 +-
 .../hwtracing/coresight/coresight-etm-perf.c  |  34 +-
 .../coresight/coresight-etm3x-core.c          |  14 +
 .../coresight/coresight-etm4x-core.c          |  13 +
 drivers/hwtracing/coresight/coresight-priv.h  |  12 +-
 drivers/hwtracing/coresight/coresight-stm.c   |  13 +
 drivers/hwtracing/coresight/coresight-sysfs.c |  24 +-
 .../hwtracing/coresight/coresight-tmc-etf.c   |   3 +-
 .../hwtracing/coresight/coresight-tmc-etr.c   |   6 +-
 drivers/hwtracing/coresight/coresight-tpda.c  |  13 +
 drivers/hwtracing/coresight/coresight-trbe.c  |   4 +-
 drivers/hwtracing/coresight/ultrasoc-smb.c    |   3 +-
 include/linux/coresight.h                     |   4 +
 20 files changed, 739 insertions(+), 25 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/arm/qcom,coresight-ccu.yaml
 create mode 100644 drivers/hwtracing/coresight/coresight-ccu.c
 create mode 100644 drivers/hwtracing/coresight/coresight-ccu.h

-- 
2.34.1

.

From: Junxian Huang <huangjunxian6@hisilicon.com>
To: <jgg@ziepe.ca>, <leon@kernel.org>
CC: <linux-rdma@vger.kernel.org>, <linuxarm@huawei.com>,
	<linux-kernel@vger.kernel.org>, <huangjunxian6@hisilicon.com>
Subject: [PATCH for-rc 0/9] RDMA/hns: Bugfixes
Date: Fri, 5 Jul 2024 16:59:28 +0800
Message-ID: <20240705085937.1644229-1-huangjunxian6@hisilicon.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1268926
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-rdma
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Here are some bugfixes for hns driver.

Chengchang Tang (5):
  RDMA/hns: Fix missing pagesize and alignment check in FRMR
  RDMA/hns: Fix shift-out-bounds when max_inline_data is 0
  RDMA/hns: Fix undifined behavior caused by invalid max_sge
  RDMA/hns: Fix insufficient extend DB for VFs.
  RDMA/hns: Fix mbx timing out before CMD execution is completed

Junxian Huang (3):
  RDMA/hns: Check atomic wr length
  RDMA/hns: Fix soft lockup under heavy CEQE load
  RDMA/hns: Fix unmatch exception handling when init eq table fails

wenglianfa (1):
  RDMA/hns: Fix a long wait for cmdq event during reset

 drivers/infiniband/hw/hns/hns_roce_device.h |   7 +
 drivers/infiniband/hw/hns/hns_roce_hw_v2.c  | 191 +++++++++++++-------
 drivers/infiniband/hw/hns/hns_roce_hw_v2.h  |   6 +
 drivers/infiniband/hw/hns/hns_roce_mr.c     |   5 +
 drivers/infiniband/hw/hns/hns_roce_qp.c     |   4 +-
 drivers/infiniband/hw/hns/hns_roce_srq.c    |   2 +-
 6 files changed, 152 insertions(+), 63 deletions(-)

--
2.33.0

.

From: Chunyan Zhang <zhangchunyan@iscas.ac.cn>
To: Arnd Bergmann <arnd@arndb.de>,
	soc@kernel.org,
	Baolin Wang <baolin.wang7@gmail.com>,
	Orson Zhai <orsonzhai@gmail.com>
Cc: linux-kernel@vger.kernel.org,
	Chunyan Zhang <zhang.lyra@gmail.com>
Subject: [RESEND PATCH] MAINTAINERS: Move myself from SPRD Maintainer to Reviewer
Date: Fri,  5 Jul 2024 17:11:33 +0800
Message-Id: <20240705091133.3308539-1-zhangchunyan@iscas.ac.cn>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1268944
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.lore.soc
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

I've resigned from Unisoc (formerly Spreadtrum) and cannot access
internal HW specifications any more, also cannot commit much
time for maintaining sprd code, especially DTS.

While I'm happy to help review the sprd drivers I wrote before.

Signed-off-by: Chunyan Zhang <zhangchunyan@iscas.ac.cn>
---
 MAINTAINERS | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/MAINTAINERS b/MAINTAINERS
index d6c90161c7bf..d0d7711f05a2 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -2893,7 +2893,7 @@ F:	drivers/edac/altera_edac.[ch]
 ARM/SPREADTRUM SoC SUPPORT
 M:	Orson Zhai <orsonzhai@gmail.com>
 M:	Baolin Wang <baolin.wang7@gmail.com>
-M:	Chunyan Zhang <zhang.lyra@gmail.com>
+R:	Chunyan Zhang <zhang.lyra@gmail.com>
 S:	Maintained
 F:	arch/arm64/boot/dts/sprd
 N:	sprd
-- 
2.34.1

.

From: Marc Zyngier <maz@kernel.org>
To: kvmarm@lists.linux.dev,
	linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org
Cc: Thomas Gleixner <tglx@linutronix.de>,
	Nianyao Tang <tangnianyao@huawei.com>
Subject: [PATCH 0/3] irqchip/gic-v4: Fix VMAPP/VMOVP races
Date: Fri,  5 Jul 2024 10:31:52 +0100
Message-Id: <20240705093155.871070-1-maz@kernel.org>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1268969
Newsgroups: org.kernel.vger.linux-kernel,dev.linux.lists.kvmarm,org.infradead.lists.linux-arm-kernel
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

In 20240701072305.4129823-1-tangnianyao@huawei.com, Nianyao reports
a number of possible races that can trigger on GICv4 implementations
using the ITSList feature.

These races involve concurrent VMOVP and VMAPP, the former happening
on vcpu load, while the latter is triggered on the first device being
MAPTI'd on a given ITS for this particular guest.

The main issue is that we want to establish the affinity at VMAPP time,
while vcpu_load wants to set the affinity where the vcpu actually runs.
Lock ordering constraints mean that we can't lock the VPE on VMAPP,
so things are modified without any lock. What could possibly go wrong?

THe fix is a bit involved, and relies on 3 things:

- Making sure that the initial affinity of a VPE is fixed at activate
  time, which is done early in the life of the vcpup, before it can run.

- Add a per-VM lock that can be taken instead of the global vmovp_lock,
  paving the way for a more manageable lock order.

- Take the per-VPE lock whenever modifying the VPE affinity, as expected
  everywhere else in the code.

With that, VMAPP and VMOVP can now run concurrently and still lead to
sensible results.

Marc Zyngier (3):
  irqchip/gic-v4: Always configure affinity on VPE activation
  irqchip/gic-v4: Substitute vmovp_lock for a per-VM lock
  irqchip/gic-v4: Make sure a VPE is locked when VMAPP is issued

 drivers/irqchip/irq-gic-v3-its.c   | 48 ++++++++++++++----------------
 include/linux/irqchip/arm-gic-v4.h |  8 +++++
 2 files changed, 30 insertions(+), 26 deletions(-)

-- 
2.39.2

.

From: Piotr Wojtaszczyk <piotr.wojtaszczyk@timesys.com>
To: dan.carpenter@linaro.org
Cc: Piotr Wojtaszczyk <piotr.wojtaszczyk@timesys.com>,
	Miquel Raynal <miquel.raynal@bootlin.com>,
	Richard Weinberger <richard@nod.at>,
	Vignesh Raghavendra <vigneshr@ti.com>,
	Vladimir Zapolskiy <vz@mleia.com>,
	Arnd Bergmann <arnd@arndb.de>,
	Yangtao Li <frank.li@vivo.com>,
	Li Zetao <lizetao1@huawei.com>,
	linux-mtd@lists.infradead.org,
	linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org
Subject: [PATCH] mtd: rawnand: lpx32xx: Fix dma_request_chan() error checks
Date: Fri,  5 Jul 2024 11:38:47 +0200
Message-Id: <20240705093851.18107-1-piotr.wojtaszczyk@timesys.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1268983
Newsgroups: org.kernel.vger.linux-kernel,org.infradead.lists.linux-arm-kernel,org.infradead.lists.linux-mtd
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

The dma_request_chan() returns error pointer in case of error, while
dma_request_channel() returns NULL in case of error therefore different
error checks are needed for the two.

Fixes: 7326d3fb1ee3 ("mtd: rawnand: lpx32xx: Request DMA channels
using DT entries")
Signed-off-by: Piotr Wojtaszczyk <piotr.wojtaszczyk@timesys.com>
---
 drivers/mtd/nand/raw/lpc32xx_mlc.c | 2 +-
 drivers/mtd/nand/raw/lpc32xx_slc.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/mtd/nand/raw/lpc32xx_mlc.c b/drivers/mtd/nand/raw/lpc32xx_mlc.c
index 92cebe871bb4..b9c3adc54c01 100644
--- a/drivers/mtd/nand/raw/lpc32xx_mlc.c
+++ b/drivers/mtd/nand/raw/lpc32xx_mlc.c
@@ -575,7 +575,7 @@ static int lpc32xx_dma_setup(struct lpc32xx_nand_host *host)
 	dma_cap_mask_t mask;
 
 	host->dma_chan = dma_request_chan(mtd->dev.parent, "rx-tx");
-	if (!host->dma_chan) {
+	if (IS_ERR(host->dma_chan)) {
 		/* fallback to request using platform data */
 		if (!host->pdata || !host->pdata->dma_filter) {
 			dev_err(mtd->dev.parent, "no DMA platform data\n");
diff --git a/drivers/mtd/nand/raw/lpc32xx_slc.c b/drivers/mtd/nand/raw/lpc32xx_slc.c
index 3b7e3d259785..ade971e4cc3b 100644
--- a/drivers/mtd/nand/raw/lpc32xx_slc.c
+++ b/drivers/mtd/nand/raw/lpc32xx_slc.c
@@ -722,7 +722,7 @@ static int lpc32xx_nand_dma_setup(struct lpc32xx_nand_host *host)
 	dma_cap_mask_t mask;
 
 	host->dma_chan = dma_request_chan(mtd->dev.parent, "rx-tx");
-	if (!host->dma_chan) {
+	if (IS_ERR(host->dma_chan)) {
 		/* fallback to request using platform data */
 		if (!host->pdata || !host->pdata->dma_filter) {
 			dev_err(mtd->dev.parent, "no DMA platform data\n");
-- 
2.25.1

.

From: Chen Ni <nichen@iscas.ac.cn>
To: lee@kernel.org,
	daniel.thompson@linaro.org,
	jingoohan1@gmail.com,
	deller@gmx.de
Cc: dri-devel@lists.freedesktop.org,
	linux-fbdev@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	Chen Ni <nichen@iscas.ac.cn>
Subject: [PATCH v2] backlight: l4f00242t03: Add check for spi_setup
Date: Fri,  5 Jul 2024 17:28:00 +0800
Message-Id: <20240705092800.3221159-1-nichen@iscas.ac.cn>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1268986
Newsgroups: org.kernel.vger.linux-kernel,org.freedesktop.lists.dri-devel,org.kernel.vger.linux-fbdev
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Add check for the return value of spi_setup() and return the error
if it fails in order to catch the error.

Signed-off-by: Chen Ni <nichen@iscas.ac.cn>
---
Changelog:

v1 -> v2:

1. Use dev_err_probe() to match other error paths
---
 drivers/video/backlight/l4f00242t03.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/video/backlight/l4f00242t03.c b/drivers/video/backlight/l4f00242t03.c
index dd0874f8c7ff..4175a4603071 100644
--- a/drivers/video/backlight/l4f00242t03.c
+++ b/drivers/video/backlight/l4f00242t03.c
@@ -166,6 +166,7 @@ static const struct lcd_ops l4f_ops = {
 static int l4f00242t03_probe(struct spi_device *spi)
 {
 	struct l4f00242t03_priv *priv;
+	int ret;
 
 	priv = devm_kzalloc(&spi->dev, sizeof(struct l4f00242t03_priv),
 				GFP_KERNEL);
@@ -174,7 +175,9 @@ static int l4f00242t03_probe(struct spi_device *spi)
 
 	spi_set_drvdata(spi, priv);
 	spi->bits_per_word = 9;
-	spi_setup(spi);
+	ret = spi_setup(spi);
+	if (ret < 0)
+		return dev_err_probe(&spi->dev, ret, "Unable to setup spi.\n");
 
 	priv->spi = spi;
 
-- 
2.25.1

.

From: Howard Chu <howardchu95@gmail.com>
To: acme@kernel.org
Cc: adrian.hunter@intel.com,
	irogers@google.com,
	jolsa@kernel.org,
	kan.liang@linux.intel.com,
	namhyung@kernel.org,
	linux-perf-users@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: [PATCH v4 0/8] perf trace: Augment enum arguments with BTF
Date: Fri,  5 Jul 2024 17:42:52 +0800
Message-ID: <20240705094300.585156-1-howardchu95@gmail.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1268989
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-perf-users
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Changes in v5:

- Use hardcoded landlock structs and macros for landlock.c workload to
make this build in older systems.

Changes in v4:

- Fix landlock workload's build error.

Changes in v3:

- Add trace__btf_scnprintf() helper function
- Remove is_enum memeber in struct syscall_arg_fmt, replace it with 
btf_is_enum()
- Add syscall_arg_fmt__cache_btf_enum() to cache btf_type only
- Resolve NO_LIBBPF=1 build error
- Skip BTF augmentation test if landlock_add_rule syscall and LIBBPF are not
available
- Rename landlock.c workload, add a comment to landlock.c workload
- Change the way of skipping 'enum ' prefix
- Add type_name member to struct syscall_arg

Changes in v2:

- Add trace_btf_enum regression test, and landlock workload

v1:

In this patch, BTF is used to turn enum value to the corresponding
enum variable name. There is only one system call that uses enum value
as its argument, that is `landlock_add_rule()`.

Enum arguments of non-syscall tracepoints can also be augmented, for
instance timer:hrtimer_start and timer:hrtimer_init's 'mode' argument.


Arnaldo Carvalho de Melo (2):
  perf trace: Introduce trace__btf_scnprintf()
  perf trace: Remove arg_fmt->is_enum, we can get that from the BTF type

Howard Chu (6):
  perf trace: Fix iteration of syscall ids in syscalltbl->entries
  perf trace: BTF-based enum pretty printing for syscall args
  perf trace: Augment non-syscall tracepoints with enum arguments with
    BTF
  perf trace: Filter enum arguments with enum names
  perf test: Add landlock workload
  perf test trace_btf_enum: Add regression test for the BTF augmentation
    of enums in 'perf trace'

 tools/perf/builtin-trace.c               | 229 ++++++++++++++++++++---
 tools/perf/tests/builtin-test.c          |   1 +
 tools/perf/tests/shell/trace_btf_enum.sh |  61 ++++++
 tools/perf/tests/tests.h                 |   1 +
 tools/perf/tests/workloads/Build         |   2 +
 tools/perf/tests/workloads/landlock.c    |  66 +++++++
 tools/perf/trace/beauty/beauty.h         |   1 +
 tools/perf/util/syscalltbl.c             |   7 +
 tools/perf/util/syscalltbl.h             |   1 +
 9 files changed, 345 insertions(+), 24 deletions(-)
 create mode 100755 tools/perf/tests/shell/trace_btf_enum.sh
 create mode 100644 tools/perf/tests/workloads/landlock.c

-- 
2.45.2

.

From: Aleksandr Mishin <amishin@t-argos.ru>
To: Sunil Goutham <sgoutham@marvell.com>
CC: Aleksandr Mishin <amishin@t-argos.ru>, Linu Cherian
	<lcherian@marvell.com>, Geetha sowjanya <gakula@marvell.com>, Jerin Jacob
	<jerinj@marvell.com>, hariprasad <hkelam@marvell.com>, Subbaraya Sundeep
	<sbhatta@marvell.com>, "David S. Miller" <davem@davemloft.net>, Eric Dumazet
	<edumazet@google.com>, Jakub Kicinski <kuba@kernel.org>, Paolo Abeni
	<pabeni@redhat.com>, <netdev@vger.kernel.org>,
	<linux-kernel@vger.kernel.org>, <lvc-project@linuxtesting.org>
Subject: [PATCH net] octeontx2-af: Fix incorrect value output on error path in rvu_check_rsrc_availability()
Date: Fri, 5 Jul 2024 12:53:17 +0300
Message-ID: <20240705095317.12640-1-amishin@t-argos.ru>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-KSMG-Rule-ID: 1
X-KSMG-Message-Action: clean
X-KSMG-AntiSpam-Lua-Profiles: 186342 [Jul 05 2024]
X-KSMG-AntiSpam-Version: 6.1.0.4
X-KSMG-AntiSpam-Envelope-From: amishin@t-argos.ru
X-KSMG-AntiSpam-Rate: 0
X-KSMG-AntiSpam-Status: not_detected
X-KSMG-AntiSpam-Method: none
X-KSMG-AntiSpam-Auth: dkim=none
X-KSMG-AntiSpam-Info: LuaCore: 21 0.3.21 ebee5449fc125b2da45f1a6a6bc2c5c0c3ad0e05, {Tracking_from_domain_doesnt_match_to}, 127.0.0.199:7.1.2;d41d8cd98f00b204e9800998ecf8427e.com:7.1.1;t-argos.ru:7.1.1;mx1.t-argos.ru.ru:7.1.1, FromAlignment: s
X-MS-Exchange-Organization-SCL: -1
X-KSMG-AntiSpam-Interceptor-Info: scan successful
X-KSMG-AntiPhishing: Clean, bases: 2024/07/05 09:22:00
X-KSMG-AntiVirus: Kaspersky Secure Mail Gateway, version 1.1.2.30, bases: 2024/07/05 03:12:00 #25860202
X-KSMG-AntiVirus-Status: Clean, skipped
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1269007 org.kernel.vger.netdev:355727
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.netdev
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

In rvu_check_rsrc_availability() in case of invalid SSOW req, an incorrect
data is printed to error log. 'req->sso' value is printed instead of
'req->ssow'. Looks like "copy-paste" mistake.

Fix this mistake by replacing 'req->sso' with 'req->ssow'.

Found by Linux Verification Center (linuxtesting.org) with SVACE.

Fixes: 746ea74241fa ("octeontx2-af: Add RVU block LF provisioning support")
Signed-off-by: Aleksandr Mishin <amishin@t-argos.ru>
---
 drivers/net/ethernet/marvell/octeontx2/af/rvu.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/marvell/octeontx2/af/rvu.c b/drivers/net/ethernet/marvell/octeontx2/af/rvu.c
index ff78251f92d4..5f661e67ccbc 100644
--- a/drivers/net/ethernet/marvell/octeontx2/af/rvu.c
+++ b/drivers/net/ethernet/marvell/octeontx2/af/rvu.c
@@ -1643,7 +1643,7 @@ static int rvu_check_rsrc_availability(struct rvu *rvu,
 		if (req->ssow > block->lf.max) {
 			dev_err(&rvu->pdev->dev,
 				"Func 0x%x: Invalid SSOW req, %d > max %d\n",
-				 pcifunc, req->sso, block->lf.max);
+				 pcifunc, req->ssow, block->lf.max);
 			return -EINVAL;
 		}
 		mappedlfs = rvu_get_rsrc_mapcount(pfvf, block->addr);
-- 
2.30.2

.

From: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
To: Alain Volmat <alain.volmat@foss.st.com>,
	Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
	Maxime Ripard <mripard@kernel.org>,
	Thomas Zimmermann <tzimmermann@suse.de>,
	David Airlie <airlied@gmail.com>,
	Daniel Vetter <daniel@ffwll.ch>,
	dri-devel@lists.freedesktop.org,
	linux-kernel@vger.kernel.org
Cc: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>,
	Dmitry Baryshkov <dmitry.baryshkov@linaro.org>,
	Neil Armstrong <neil.armstrong@linaro.org>
Subject: [PATCH] MAINTAINERS: drm/sti: mark it as Odd Fixes
Date: Fri,  5 Jul 2024 12:03:56 +0200
Message-ID: <20240705100356.16760-1-krzysztof.kozlowski@linaro.org>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1269013
Newsgroups: org.kernel.vger.linux-kernel,org.freedesktop.lists.dri-devel
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Patches to STI DRM are not being picked up, so even though there is
maintainer activity, it seems that these drivers are not being actively
looked at.  Reflect this in maintainer status.

Link: https://lore.kernel.org/all/77b4e4ad-2b1e-4b6d-bc3b-0c7b339bc295@linaro.org/
Link: https://lore.kernel.org/all/f207b481-f530-4f54-a482-218908869050@linaro.org/
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>

---

Cc: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Cc: Neil Armstrong <neil.armstrong@linaro.org>
---
 MAINTAINERS | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/MAINTAINERS b/MAINTAINERS
index c8e16a649a0e..f284cb8db544 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -7595,7 +7595,7 @@ F:	drivers/gpu/drm/rockchip/
 DRM DRIVERS FOR STI
 M:	Alain Volmat <alain.volmat@foss.st.com>
 L:	dri-devel@lists.freedesktop.org
-S:	Maintained
+S:	Odd Fixes
 T:	git https://gitlab.freedesktop.org/drm/misc/kernel.git
 F:	Documentation/devicetree/bindings/display/st,stih4xx.txt
 F:	drivers/gpu/drm/sti
-- 
2.43.0

.

From: Jingbo Xu <jefflexu@linux.alibaba.com>
To: miklos@szeredi.hu,
	linux-fsdevel@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Subject: [PATCH] fuse: make foffset alignment opt-in for optimum backend performance
Date: Fri,  5 Jul 2024 18:04:49 +0800
Message-Id: <20240705100449.60891-1-jefflexu@linux.alibaba.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1269015
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-fsdevel
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Sometimes the file offset alignment needs to be opt-in to achieve the
optimum performance at the backend store.

For example when ErasureCode [1] is used at the backend store, the
optimum write performance is achieved when the WRITE request is aligned
with the stripe size of ErasureCode.  Otherwise a non-aligned WRITE
request needs to be split at the stripe size boundary.  It is quite
costly to handle these split partial requests, as firstly the whole
stripe to which the split partial request belongs needs to be read out,
then overwrite the read stripe buffer with the request, and finally write
the whole stripe back to the persistent storage.

Thus the backend store can suffer severe performance degradation when
WRITE requests can not fit into one stripe exactly.  The write performance
can be 10x slower when the request is 256KB in size given 4MB stripe size.
Also there can be 50% performance degradation in theory if the request
is not stripe boundary aligned.

Besides, the conveyed test indicates that, the non-alignment issue
becomes more severe when decreasing fuse's max_ratio, maybe partly
because the background writeback now is more likely to run parallelly
with the dirtier.

fuse's max_ratio	ratio of aligned WRITE requests
----------------	-------------------------------
70			99.9%
40			74%
20			45%
10			20%

With the patched version, which makes the alignment constraint opt-in
when constructing WRITE requests, the ratio of aligned WRITE requests
increases to 98% (previously 20%) when fuse's max_ratio is 10.

[1] https://lore.kernel.org/linux-fsdevel/20240124070512.52207-1-jefflexu@linux.alibaba.com/T/#m9bce469998ea6e4f911555c6f7be1e077ce3d8b4
Signed-off-by: Jingbo Xu <jefflexu@linux.alibaba.com>

Signed-off-by: Jingbo Xu <jefflexu@linux.alibaba.com>
---
 fs/fuse/file.c            | 4 ++++
 fs/fuse/fuse_i.h          | 6 ++++++
 fs/fuse/inode.c           | 9 +++++++++
 include/uapi/linux/fuse.h | 9 ++++++++-
 4 files changed, 27 insertions(+), 1 deletion(-)

diff --git a/fs/fuse/file.c b/fs/fuse/file.c
index f39456c65ed7..f9b477016c2e 100644
--- a/fs/fuse/file.c
+++ b/fs/fuse/file.c
@@ -2246,6 +2246,10 @@ static bool fuse_writepage_need_send(struct fuse_conn *fc, struct page *page,
 	if (ap->num_pages == data->max_pages && !fuse_pages_realloc(data))
 		return true;
 
+	/* Reached alignment */
+	if (fc->opt_alignment && !(page->index % fc->opt_alignment_pages))
+		return true;
+
 	return false;
 }
 
diff --git a/fs/fuse/fuse_i.h b/fs/fuse/fuse_i.h
index f23919610313..5963571b394c 100644
--- a/fs/fuse/fuse_i.h
+++ b/fs/fuse/fuse_i.h
@@ -860,6 +860,9 @@ struct fuse_conn {
 	/** Passthrough support for read/write IO */
 	unsigned int passthrough:1;
 
+	/* Foffset alignment required for optimum performance */
+	unsigned int opt_alignment:1;
+
 	/** Maximum stack depth for passthrough backing files */
 	int max_stack_depth;
 
@@ -917,6 +920,9 @@ struct fuse_conn {
 	/** IDR for backing files ids */
 	struct idr backing_files_map;
 #endif
+
+	/* The foffset alignment in PAGE_SIZE */
+	unsigned int opt_alignment_pages;
 };
 
 /*
diff --git a/fs/fuse/inode.c b/fs/fuse/inode.c
index 99e44ea7d875..9266b22cce8e 100644
--- a/fs/fuse/inode.c
+++ b/fs/fuse/inode.c
@@ -1331,6 +1331,15 @@ static void process_init_reply(struct fuse_mount *fm, struct fuse_args *args,
 			}
 			if (flags & FUSE_NO_EXPORT_SUPPORT)
 				fm->sb->s_export_op = &fuse_export_fid_operations;
+
+			/* fallback to default if opt_alignment <= PAGE_SHIFT */
+			if (flags & FUSE_OPT_ALIGNMENT) {
+				if (arg->opt_alignment > PAGE_SHIFT) {
+					fc->opt_alignment = 1;
+					fc->opt_alignment_pages = 1 <<
+						(arg->opt_alignment - PAGE_SHIFT);
+				}
+			}
 		} else {
 			ra_pages = fc->max_read / PAGE_SIZE;
 			fc->no_lock = 1;
diff --git a/include/uapi/linux/fuse.h b/include/uapi/linux/fuse.h
index d08b99d60f6f..2c6ad1577591 100644
--- a/include/uapi/linux/fuse.h
+++ b/include/uapi/linux/fuse.h
@@ -217,6 +217,9 @@
  *  - add backing_id to fuse_open_out, add FOPEN_PASSTHROUGH open flag
  *  - add FUSE_NO_EXPORT_SUPPORT init flag
  *  - add FUSE_NOTIFY_RESEND, add FUSE_HAS_RESEND init flag
+ *
+ *  7.41
+ *  - add opt_alignment to fuse_init_out, add FUSE_OPT_ALIGNMENT init flag
  */
 
 #ifndef _LINUX_FUSE_H
@@ -421,6 +424,8 @@ struct fuse_file_lock {
  * FUSE_NO_EXPORT_SUPPORT: explicitly disable export support
  * FUSE_HAS_RESEND: kernel supports resending pending requests, and the high bit
  *		    of the request ID indicates resend requests
+ * FUSE_OPT_ALIGNMENT: init_out.opt_alignment contains log2(byte alignment) for
+ *		       foffset alignment for optimum write performance
  */
 #define FUSE_ASYNC_READ		(1 << 0)
 #define FUSE_POSIX_LOCKS	(1 << 1)
@@ -463,6 +468,7 @@ struct fuse_file_lock {
 #define FUSE_PASSTHROUGH	(1ULL << 37)
 #define FUSE_NO_EXPORT_SUPPORT	(1ULL << 38)
 #define FUSE_HAS_RESEND		(1ULL << 39)
+#define FUSE_OPT_ALIGNMENT	(1ULL << 40)
 
 /* Obsolete alias for FUSE_DIRECT_IO_ALLOW_MMAP */
 #define FUSE_DIRECT_IO_RELAX	FUSE_DIRECT_IO_ALLOW_MMAP
@@ -893,7 +899,8 @@ struct fuse_init_out {
 	uint16_t	map_alignment;
 	uint32_t	flags2;
 	uint32_t	max_stack_depth;
-	uint32_t	unused[6];
+	uint32_t	opt_alignment;
+	uint32_t	unused[5];
 };
 
 #define CUSE_INIT_INFO_MAX 4096
-- 
2.19.1.6.gb485710b

.

Date: Fri, 5 Jul 2024 06:08:51 -0400
From: "Michael S. Tsirkin" <mst@redhat.com>
To: linux-kernel@vger.kernel.org
Cc: Alexander Duyck <alexander.h.duyck@linux.intel.com>,
	Xuan Zhuo <xuanzhuo@linux.alibaba.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	David Hildenbrand <david@redhat.com>
Subject: [PATCH 0/2] virtio-balloon: make it spec compliant
Message-ID: <cover.1720173841.git.mst@redhat.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
X-Mutt-Fcc: =sent
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1269017
Newsgroups: org.kernel.vger.linux-kernel
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Currently, if VIRTIO_BALLOON_F_FREE_PAGE_HINT is off but
VIRTIO_BALLOON_F_REPORTING is on, then the reporting vq
gets number 3 while spec says it's number 4.
It happens to work because the qemu virtio pci driver
is *also* out of spec.

To fix:
1. add vq4 as per spec
2. to help out the buggy qemu driver, if finding vqs fail,
try with vq3 as reporting.

Fixes: b0c504f15471 ("virtio-balloon: add support for providing free page reports to host")
Cc: "Alexander Duyck" <alexander.h.duyck@linux.intel.com>
Reported-by: Xuan Zhuo <xuanzhuo@linux.alibaba.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>

Michael S. Tsirkin (2):
  virtio_balloon: add work around for out of spec QEMU
  virtio: fix vq # for balloon

 arch/um/drivers/virtio_uml.c           |  4 ++--
 drivers/remoteproc/remoteproc_virtio.c |  4 ++--
 drivers/s390/virtio/virtio_ccw.c       |  4 ++--
 drivers/virtio/virtio_balloon.c        | 19 +++++++++++++++++--
 drivers/virtio/virtio_mmio.c           |  4 ++--
 drivers/virtio/virtio_pci_common.c     |  8 ++++----
 drivers/virtio/virtio_vdpa.c           |  4 ++--
 7 files changed, 31 insertions(+), 16 deletions(-)

-- 
MST

.

From: renmingshuai <renmingshuai@huawei.com>
To: <davem@davemloft.net>, <edumazet@google.com>, <kuba@kernel.org>,
	<tgraf@suug.ch>, <netdev@vger.kernel.org>, <linux-kernel@vger.kernel.org>
CC: <yanan@huawei.com>, <qiangxiaojun@huawei.com>, <caowangbao@huawei.com>
Subject: When does __netlink_insert return an error code -EBUSY?
Date: Fri, 5 Jul 2024 17:55:58 +0800
Message-ID: <20240705095558.20352-1-renmingshuai@huawei.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1269020 org.kernel.vger.netdev:355728
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.netdev
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Recently, I encountered an issue that __netlink_insert() failed
and returned error code -EBUSY, which came from rhashtable_look-
up_insert_key(). I have not yet found the reason for returning
to -EBUSY. I noticed that in the 4e7c1330689e submission, -EBUSY
was changed to - ECOVERFLOW and returned to the user. Has anyone
encountered a similar problem? Can you please advise under what
circumstances __netlink_insert will return -EBUSY?
.

From: =?iso-2022-jp?B?Tk9NVVJBIEpVTklDSEkoGyRCTG5CPCEhPV8wbBsoQik=?=
	<junichi.nomura@nec.com>
To: "linux-acpi@vger.kernel.org" <linux-acpi@vger.kernel.org>
CC: "rafael@kernel.org" <rafael@kernel.org>, "lenb@kernel.org"
	<lenb@kernel.org>, "james.morse@arm.com" <james.morse@arm.com>,
	"bp@alien8.de" <bp@alien8.de>, "linux-kernel@vger.kernel.org"
	<linux-kernel@vger.kernel.org>,
	=?iso-2022-jp?B?Tk9NVVJBIEpVTklDSEkoGyRCTG5CPCEhPV8wbBsoQik=?=
	<junichi.nomura@nec.com>
Subject: ACPI: APEI: ERST: Don't retry read when "Record Store Empty"
Date: Fri, 5 Jul 2024 10:25:20 +0000
Message-ID: <20240705102517.79689-1-junichi.nomura@nec.com>
Accept-Language: ja-JP, en-US
Content-Language: en-US
Content-Type: text/plain; charset="iso-2022-jp"
Content-Transfer-Encoding: quoted-printable
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1269030
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-acpi
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

"ERST: [Firmware Warn]: too many record IDs!" is logged on some platforms
when there is no record.  That happens because erst_reader() retries read
when erst_get_record_id_next() returns valid ID and erst_read_record()
fails with -ENOENT.  On those platforms, ACPI_ERST_GET_RECORD_ID returns
ID 0x0 even if record store is empty.  Reading record ID 0x0 on
empty store fails with status code 0x4 (Record Store Empty).  However, both
"Record Store Empty" and "Record Not Found" are translated to -ENOENT,
the reader cannot distinguish between them and tries to read the next id,
which is again 0x0, and repeat that until it fills up the record cache with
invalid entries.

While such firmware might be buggy, we could make the reading loop more
robust by returning different error codes for "Record Not Found" and
"Record Store Empty".

Signed-off-by: Jun'ichi Nomura <junichi.nomura@nec.com>

diff --git a/drivers/acpi/apei/erst.c b/drivers/acpi/apei/erst.c
index bf65e3461531..ce186f8d7a15 100644
--- a/drivers/acpi/apei/erst.c
+++ b/drivers/acpi/apei/erst.c
@@ -95,6 +95,7 @@ static inline int erst_errno(int command_status)
 	case ERST_STATUS_NOT_ENOUGH_SPACE:
 		return -ENOSPC;
 	case ERST_STATUS_RECORD_STORE_EMPTY:
+		return -ENODATA;
 	case ERST_STATUS_RECORD_NOT_FOUND:
 		return -ENOENT;
 	default:=
.

From: Ryan Roberts <ryan.roberts@arm.com>
To: Andrew Morton <akpm@linux-foundation.org>,
	Jonathan Corbet <corbet@lwn.net>,
	David Hildenbrand <david@redhat.com>,
	Barry Song <baohua@kernel.org>,
	Baolin Wang <baolin.wang@linux.alibaba.com>,
	Lance Yang <ioworker0@gmail.com>,
	Yang Shi <shy828301@gmail.com>
Cc: Ryan Roberts <ryan.roberts@arm.com>,
	linux-mm@kvack.org,
	linux-kernel@vger.kernel.org,
	stable@vger.kernel.org
Subject: [PATCH v3] mm: Fix khugepaged activation policy
Date: Fri,  5 Jul 2024 11:28:48 +0100
Message-ID: <20240705102849.2479686-1-ryan.roberts@arm.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1269034 org.kvack.linux-mm:202724
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.stable,org.kvack.linux-mm
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Since the introduction of mTHP, the docuementation has stated that
khugepaged would be enabled when any mTHP size is enabled, and disabled
when all mTHP sizes are disabled. There are 2 problems with this; 1.
this is not what was implemented by the code and 2. this is not the
desirable behavior.

Desirable behavior is for khugepaged to be enabled when any PMD-sized
THP is enabled, anon or file. (Note that file THP is still controlled by
the top-level control so we must always consider that, as well as the
PMD-size mTHP control for anon). khugepaged only supports collapsing to
PMD-sized THP so there is no value in enabling it when PMD-sized THP is
disabled. So let's change the code and documentation to reflect this
policy.

Further, per-size enabled control modification events were not
previously forwarded to khugepaged to give it an opportunity to start or
stop. Consequently the following was resulting in khugepaged eroneously
not being activated:

  echo never > /sys/kernel/mm/transparent_hugepage/enabled
  echo always > /sys/kernel/mm/transparent_hugepage/hugepages-2048kB/enabled

Signed-off-by: Ryan Roberts <ryan.roberts@arm.com>
Fixes: 3485b88390b0 ("mm: thp: introduce multi-size THP sysfs interface")
Closes: https://lore.kernel.org/linux-mm/7a0bbe69-1e3d-4263-b206-da007791a5c4@redhat.com/
Cc: stable@vger.kernel.org
---

Hi All,

Applies on top of mm-unstable from a couple of days ago (9bb8753acdd8). No
regressions observed in mm selftests.

When fixing this I also noticed that khugepaged doesn't get (and never has been)
activated/deactivated by `shmem_enabled=`. I've concluded that this is
definitely a (separate) bug. But I'm waiting for the conclusion of the
conversation at [3] before fixing, so will send separately.

Changes since v1 [1]
====================

  - hugepage_pmd_enabled() now considers CONFIG_READ_ONLY_THP_FOR_FS as part of
    decision; means that for kernels without this config, khugepaged will not be
    started when only the top-level control is enabled.

Changes since v2 [2]
====================

  - Make hugepage_pmd_enabled() out-of-line static in khugepaged.c (per Andrew)
  - Refactor hugepage_pmd_enabled() for better readability (per Andrew)

[1] https://lore.kernel.org/linux-mm/20240702144617.2291480-1-ryan.roberts@arm.com/
[2] https://lore.kernel.org/linux-mm/20240704091051.2411934-1-ryan.roberts@arm.com/
[3] https://lore.kernel.org/linux-mm/65c37315-2741-481f-b433-cec35ef1af35@arm.com/

Thanks,
Ryan

 Documentation/admin-guide/mm/transhuge.rst | 11 ++++----
 include/linux/huge_mm.h                    | 12 --------
 mm/huge_memory.c                           |  7 +++++
 mm/khugepaged.c                            | 33 +++++++++++++++++-----
 4 files changed, 38 insertions(+), 25 deletions(-)

diff --git a/Documentation/admin-guide/mm/transhuge.rst b/Documentation/admin-guide/mm/transhuge.rst
index 709fe10b60f4..fc321d40b8ac 100644
--- a/Documentation/admin-guide/mm/transhuge.rst
+++ b/Documentation/admin-guide/mm/transhuge.rst
@@ -202,12 +202,11 @@ PMD-mappable transparent hugepage::

 	cat /sys/kernel/mm/transparent_hugepage/hpage_pmd_size

-khugepaged will be automatically started when one or more hugepage
-sizes are enabled (either by directly setting "always" or "madvise",
-or by setting "inherit" while the top-level enabled is set to "always"
-or "madvise"), and it'll be automatically shutdown when the last
-hugepage size is disabled (either by directly setting "never", or by
-setting "inherit" while the top-level enabled is set to "never").
+khugepaged will be automatically started when PMD-sized THP is enabled
+(either of the per-size anon control or the top-level control are set
+to "always" or "madvise"), and it'll be automatically shutdown when
+PMD-sized THP is disabled (when both the per-size anon control and the
+top-level control are "never")

 Khugepaged controls
 -------------------
diff --git a/include/linux/huge_mm.h b/include/linux/huge_mm.h
index 4d155c7a4792..107da5c4eba4 100644
--- a/include/linux/huge_mm.h
+++ b/include/linux/huge_mm.h
@@ -128,18 +128,6 @@ static inline bool hugepage_global_always(void)
 			(1<<TRANSPARENT_HUGEPAGE_FLAG);
 }

-static inline bool hugepage_flags_enabled(void)
-{
-	/*
-	 * We cover both the anon and the file-backed case here; we must return
-	 * true if globally enabled, even when all anon sizes are set to never.
-	 * So we don't need to look at huge_anon_orders_inherit.
-	 */
-	return hugepage_global_enabled() ||
-	       READ_ONCE(huge_anon_orders_always) ||
-	       READ_ONCE(huge_anon_orders_madvise);
-}
-
 static inline int highest_order(unsigned long orders)
 {
 	return fls_long(orders) - 1;
diff --git a/mm/huge_memory.c b/mm/huge_memory.c
index 251d6932130f..085f5e973231 100644
--- a/mm/huge_memory.c
+++ b/mm/huge_memory.c
@@ -502,6 +502,13 @@ static ssize_t thpsize_enabled_store(struct kobject *kobj,
 	} else
 		ret = -EINVAL;

+	if (ret > 0) {
+		int err;
+
+		err = start_stop_khugepaged();
+		if (err)
+			ret = err;
+	}
 	return ret;
 }

diff --git a/mm/khugepaged.c b/mm/khugepaged.c
index 409f67a817f1..a5ec03ef8722 100644
--- a/mm/khugepaged.c
+++ b/mm/khugepaged.c
@@ -413,6 +413,26 @@ static inline int hpage_collapse_test_exit_or_disable(struct mm_struct *mm)
 	       test_bit(MMF_DISABLE_THP, &mm->flags);
 }

+static bool hugepage_pmd_enabled(void)
+{
+	/*
+	 * We cover both the anon and the file-backed case here; file-backed
+	 * hugepages, when configured in, are determined by the global control.
+	 * Anon pmd-sized hugepages are determined by the pmd-size control.
+	 */
+	if (IS_ENABLED(CONFIG_READ_ONLY_THP_FOR_FS) &&
+	    hugepage_global_enabled())
+		return true;
+	if (test_bit(PMD_ORDER, &huge_anon_orders_always))
+		return true;
+	if (test_bit(PMD_ORDER, &huge_anon_orders_madvise))
+		return true;
+	if (test_bit(PMD_ORDER, &huge_anon_orders_inherit) &&
+	    hugepage_global_enabled())
+		return true;
+	return false;
+}
+
 void __khugepaged_enter(struct mm_struct *mm)
 {
 	struct khugepaged_mm_slot *mm_slot;
@@ -449,7 +469,7 @@ void khugepaged_enter_vma(struct vm_area_struct *vma,
 			  unsigned long vm_flags)
 {
 	if (!test_bit(MMF_VM_HUGEPAGE, &vma->vm_mm->flags) &&
-	    hugepage_flags_enabled()) {
+	    hugepage_pmd_enabled()) {
 		if (thp_vma_allowable_order(vma, vm_flags, TVA_ENFORCE_SYSFS,
 					    PMD_ORDER))
 			__khugepaged_enter(vma->vm_mm);
@@ -2462,8 +2482,7 @@ static unsigned int khugepaged_scan_mm_slot(unsigned int pages, int *result,

 static int khugepaged_has_work(void)
 {
-	return !list_empty(&khugepaged_scan.mm_head) &&
-		hugepage_flags_enabled();
+	return !list_empty(&khugepaged_scan.mm_head) && hugepage_pmd_enabled();
 }

 static int khugepaged_wait_event(void)
@@ -2536,7 +2555,7 @@ static void khugepaged_wait_work(void)
 		return;
 	}

-	if (hugepage_flags_enabled())
+	if (hugepage_pmd_enabled())
 		wait_event_freezable(khugepaged_wait, khugepaged_wait_event());
 }

@@ -2567,7 +2586,7 @@ static void set_recommended_min_free_kbytes(void)
 	int nr_zones = 0;
 	unsigned long recommended_min;

-	if (!hugepage_flags_enabled()) {
+	if (!hugepage_pmd_enabled()) {
 		calculate_min_free_kbytes();
 		goto update_wmarks;
 	}
@@ -2617,7 +2636,7 @@ int start_stop_khugepaged(void)
 	int err = 0;

 	mutex_lock(&khugepaged_mutex);
-	if (hugepage_flags_enabled()) {
+	if (hugepage_pmd_enabled()) {
 		if (!khugepaged_thread)
 			khugepaged_thread = kthread_run(khugepaged, NULL,
 							"khugepaged");
@@ -2643,7 +2662,7 @@ int start_stop_khugepaged(void)
 void khugepaged_min_free_kbytes_update(void)
 {
 	mutex_lock(&khugepaged_mutex);
-	if (hugepage_flags_enabled() && khugepaged_thread)
+	if (hugepage_pmd_enabled() && khugepaged_thread)
 		set_recommended_min_free_kbytes();
 	mutex_unlock(&khugepaged_mutex);
 }
--
2.43.0

.

From: Zhongqiu Han <quic_zhonhan@quicinc.com>
To: <fischer@norbit.de>, <James.Bottomley@HansenPartnership.com>,
        <martin.petersen@oracle.com>
CC: <linux-scsi@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
        <quic_zhonhan@quicinc.com>
Subject: [PATCH] scsi: aha152x: use DECLARE_COMPLETION_ONSTACK for non-constant completion
Date: Fri, 5 Jul 2024 18:36:14 +0800
Message-ID: <20240705103614.3650637-1-quic_zhonhan@quicinc.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1269041
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-scsi
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

The _ONSTACK variant should be used for on-stack completion, otherwise it
will break lockdep. See also commit 6e9a4738c9fa ("[PATCH] completions:
lockdep annotate on stack completions").

Signed-off-by: Zhongqiu Han <quic_zhonhan@quicinc.com>
---
 drivers/scsi/aha152x.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/scsi/aha152x.c b/drivers/scsi/aha152x.c
index 83f16fc14d96..a0fb330b8df5 100644
--- a/drivers/scsi/aha152x.c
+++ b/drivers/scsi/aha152x.c
@@ -1072,7 +1072,7 @@ static int aha152x_abort(struct scsi_cmnd *SCpnt)
 static int aha152x_device_reset(struct scsi_cmnd * SCpnt)
 {
 	struct Scsi_Host *shpnt = SCpnt->device->host;
-	DECLARE_COMPLETION(done);
+	DECLARE_COMPLETION_ONSTACK(done);
 	int ret, issued, disconnected;
 	unsigned char old_cmd_len = SCpnt->cmd_len;
 	unsigned long flags;
-- 
2.25.1

.

From: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Subject: [PATCH 0/6] iio: adc: simplify with cleanup.h
Date: Fri, 05 Jul 2024 12:40:43 +0200
Message-Id: <20240705-cleanup-h-iio-v1-0-77114c7e84c5@linaro.org>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
To: Dan Robertson <dan@dlrobertson.com>, 
 Jonathan Cameron <jic23@kernel.org>, Lars-Peter Clausen <lars@metafoo.de>, 
 Michael Hennerich <Michael.Hennerich@analog.com>, 
 Nicolas Ferre <nicolas.ferre@microchip.com>, 
 Alexandre Belloni <alexandre.belloni@bootlin.com>, 
 Claudiu Beznea <claudiu.beznea@tuxon.dev>, 
 Oleksij Rempel <o.rempel@pengutronix.de>, kernel@pengutronix.de
Cc: linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, 
 linux-arm-kernel@lists.infradead.org, 
 Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1269045
Newsgroups: org.kernel.vger.linux-kernel,org.infradead.lists.linux-arm-kernel,org.kernel.vger.linux-iio
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Allocate the memory with scoped/cleanup.h to reduce error handling and
make the code a bit simpler.

Best regards,
Krzysztof

---
Krzysztof Kozlowski (6):
      iio: accel: bma400: simplify with cleanup.h
      iio: adc: ad7280a: simplify with cleanup.h
      iio: adc: at91: simplify with cleanup.h
      iio: adc: max1363: simplify with cleanup.h
      iio: adc: ti-tsc2046: simplify with cleanup.h
      iio: adc: ad5755: drop redundant devm_kfree()

 drivers/iio/accel/bma400_core.c | 11 +++++------
 drivers/iio/adc/ad7280a.c       | 10 ++++------
 drivers/iio/adc/at91_adc.c      | 13 +++++--------
 drivers/iio/adc/max1363.c       | 34 +++++++++++++---------------------
 drivers/iio/adc/ti-tsc2046.c    | 29 ++++++++++++-----------------
 drivers/iio/dac/ad5755.c        |  1 -
 6 files changed, 39 insertions(+), 59 deletions(-)
---
base-commit: 0b58e108042b0ed28a71cd7edf5175999955b233
change-id: 20240705-cleanup-h-iio-c90ca38865a4

Best regards,
-- 
Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>

.

From: ran xiaokai <ranxiaokai627@163.com>
To: akpm@linux-foundation.org,
	david@redhat.com,
	corbet@lwn.net,
	usama.anjum@collabora.com,
	avagin@google.com
Cc: linux-mm@kvack.org,
	vbabka@suse.cz,
	svetly.todorov@memverge.com,
	ran.xiaokai@zte.com.cn,
	ryan.roberts@arm.com,
	ziy@nvidia.com,
	linux-kernel@vger.kernel.org,
	linux-fsdevel@vger.kernel.org
Subject: [PATCH] kpageflags: detect isolated KPF_THP folios
Date: Fri,  5 Jul 2024 10:43:43 +0000
Message-Id: <20240705104343.112680-1-ranxiaokai627@163.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1269052
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-fsdevel
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

From: Ran Xiaokai <ran.xiaokai@zte.com.cn>

When folio is isolated, the PG_lru bit is cleared. So the PG_lru
check in stable_page_flags() will miss this kind of isolated folios.
Use folio_test_large_rmappable() instead to also include isolated folios.

Since pagecache supports large folios and the introduction of mTHP,
the semantics of KPF_THP have been expanded, now it indicates
not only PMD-sized THP. Update related documentation to clearly state
that KPF_THP indicates multiple order THPs.

v1:
  https://lore.kernel.org/lkml/20240626024924.1155558-3-ranxiaokai627@163.com/
Signed-off-by: Ran Xiaokai <ran.xiaokai@zte.com.cn>
---
 Documentation/admin-guide/mm/pagemap.rst |  4 ++--
 fs/proc/page.c                           | 21 +++++++++------------
 2 files changed, 11 insertions(+), 14 deletions(-)

diff --git a/Documentation/admin-guide/mm/pagemap.rst b/Documentation/admin-guide/mm/pagemap.rst
index f5f065c67615..0a8a4decdb72 100644
--- a/Documentation/admin-guide/mm/pagemap.rst
+++ b/Documentation/admin-guide/mm/pagemap.rst
@@ -118,7 +118,7 @@ Short descriptions to the page flags
 21 - KSM
     Identical memory pages dynamically shared between one or more processes.
 22 - THP
-    Contiguous pages which construct transparent hugepages.
+    Contiguous pages which construct THP of any size and mapped by any granularity.
 23 - OFFLINE
     The page is logically offline.
 24 - ZERO_PAGE
@@ -252,7 +252,7 @@ Following flags about pages are currently supported:
 - ``PAGE_IS_PRESENT`` - Page is present in the memory
 - ``PAGE_IS_SWAPPED`` - Page is in swapped
 - ``PAGE_IS_PFNZERO`` - Page has zero PFN
-- ``PAGE_IS_HUGE`` - Page is THP or Hugetlb backed
+- ``PAGE_IS_HUGE`` - Page is PMD-mapped THP or Hugetlb backed
 - ``PAGE_IS_SOFT_DIRTY`` - Page is soft-dirty
 
 The ``struct pm_scan_arg`` is used as the argument of the IOCTL.
diff --git a/fs/proc/page.c b/fs/proc/page.c
index 2fb64bdb64eb..76f2a412aa93 100644
--- a/fs/proc/page.c
+++ b/fs/proc/page.c
@@ -148,19 +148,16 @@ u64 stable_page_flags(const struct page *page)
 		u |= 1 << KPF_COMPOUND_TAIL;
 	if (folio_test_hugetlb(folio))
 		u |= 1 << KPF_HUGE;
-	/*
-	 * We need to check PageLRU/PageAnon
-	 * to make sure a given page is a thp, not a non-huge compound page.
-	 */
-	else if (folio_test_large(folio)) {
-		if ((k & (1 << PG_lru)) || is_anon)
-			u |= 1 << KPF_THP;
-		else if (is_huge_zero_folio(folio)) {
-			u |= 1 << KPF_ZERO_PAGE;
-			u |= 1 << KPF_THP;
-		}
-	} else if (is_zero_pfn(page_to_pfn(page)))
+	else if (folio_test_large(folio) &&
+	         folio_test_large_rmappable(folio)) {
+		/* Note: we indicate any THPs here, not just PMD-sized ones */
+		u |= 1 << KPF_THP;
+	} else if (is_huge_zero_folio(folio)) {
 		u |= 1 << KPF_ZERO_PAGE;
+		u |= 1 << KPF_THP;
+	} else if (is_zero_pfn(page_to_pfn(page))) {
+		u |= 1 << KPF_ZERO_PAGE;
+	}
 
 	/*
 	 * Caveats on high order pages: PG_buddy and PG_slab will only be set
-- 
2.15.2


.

From: Javier Carrasco <javier.carrasco.cruz@gmail.com>
Date: Fri, 05 Jul 2024 12:51:23 +0200
Subject: [PATCH] mmc: sdhci_am654: Constify struct regmap_config
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20240705-sdhci_am654-const-regmap_config-v1-1-c166a8d48a66@gmail.com>
To: Adrian Hunter <adrian.hunter@intel.com>, 
 Ulf Hansson <ulf.hansson@linaro.org>
Cc: linux-mmc@vger.kernel.org, linux-kernel@vger.kernel.org, 
 Javier Carrasco <javier.carrasco.cruz@gmail.com>
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1269057
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-mmc
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

`sdhci_am654_regmap_config` is not modified and can be declared as const
to move its data to a read-only section.

Signed-off-by: Javier Carrasco <javier.carrasco.cruz@gmail.com>
---
 drivers/mmc/host/sdhci_am654.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/mmc/host/sdhci_am654.c b/drivers/mmc/host/sdhci_am654.c
index 17ad32cfc0c3..64e10f7c9faa 100644
--- a/drivers/mmc/host/sdhci_am654.c
+++ b/drivers/mmc/host/sdhci_am654.c
@@ -90,7 +90,7 @@
 /* Command Queue Host Controller Interface Base address */
 #define SDHCI_AM654_CQE_BASE_ADDR 0x200
 
-static struct regmap_config sdhci_am654_regmap_config = {
+static const struct regmap_config sdhci_am654_regmap_config = {
 	.reg_bits = 32,
 	.val_bits = 32,
 	.reg_stride = 4,

---
base-commit: 0b58e108042b0ed28a71cd7edf5175999955b233
change-id: 20240705-sdhci_am654-const-regmap_config-f97903ce0e7f

Best regards,
-- 
Javier Carrasco <javier.carrasco.cruz@gmail.com>

.

From: Javier Carrasco <javier.carrasco.cruz@gmail.com>
Date: Fri, 05 Jul 2024 12:52:27 +0200
Subject: [PATCH] soc: sunxi: sram: Constify struct regmap_config
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20240705-sunxi-sram-const-regmap_config-v1-1-1b997cd65d0f@gmail.com>
To: Chen-Yu Tsai <wens@csie.org>, Jernej Skrabec <jernej.skrabec@gmail.com>, 
 Samuel Holland <samuel@sholland.org>
Cc: linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, 
 linux-kernel@vger.kernel.org, 
 Javier Carrasco <javier.carrasco.cruz@gmail.com>
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1269061
Newsgroups: org.kernel.vger.linux-kernel,dev.linux.lists.linux-sunxi,org.infradead.lists.linux-arm-kernel
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

`sunxi_sram_regmap_config` is not modified and can be declared as const
to move its data to a read-only section.

Signed-off-by: Javier Carrasco <javier.carrasco.cruz@gmail.com>
---
 drivers/soc/sunxi/sunxi_sram.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/soc/sunxi/sunxi_sram.c b/drivers/soc/sunxi/sunxi_sram.c
index 71cc377b5e24..2781a091a6a6 100644
--- a/drivers/soc/sunxi/sunxi_sram.c
+++ b/drivers/soc/sunxi/sunxi_sram.c
@@ -344,7 +344,7 @@ static void sunxi_sram_unlock(void *_lock)
 	spin_unlock(lock);
 }
 
-static struct regmap_config sunxi_sram_regmap_config = {
+static const struct regmap_config sunxi_sram_regmap_config = {
 	.reg_bits       = 32,
 	.val_bits       = 32,
 	.reg_stride     = 4,

---
base-commit: 0b58e108042b0ed28a71cd7edf5175999955b233
change-id: 20240705-sunxi-sram-const-regmap_config-d05d1bb0583c

Best regards,
-- 
Javier Carrasco <javier.carrasco.cruz@gmail.com>

.

Date: Fri, 5 Jul 2024 13:53:35 +0300
From: Matti Vaittinen <mazziesaccount@gmail.com>
To: Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>,
	Matti Vaittinen <mazziesaccount@gmail.com>
Cc: Jonathan Cameron <jic23@kernel.org>,
	Lars-Peter Clausen <lars@metafoo.de>, Rob Herring <robh@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Conor Dooley <conor+dt@kernel.org>,
	Matti Vaittinen <mazziesaccount@gmail.com>,
	linux-iio@vger.kernel.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: [PATCH v2 0/7] ROHM BU27034NUC to ROHM BU27034ANUC
Message-ID: <cover.1720176341.git.mazziesaccount@gmail.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature"; boundary="1ujrdyYBASYRGAsW"
Content-Disposition: inline
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1269062
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-iio
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail


--1ujrdyYBASYRGAsW
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

As discussed here:
https://lore.kernel.org/all/ff8d6d14-6b48-4347-8525-e05eeb9721ff@gmail.com/

The ROHM BU27034NUC was cancelled before it entered mass-production. A
replacement was developed and named to BU27034ANUC. (Note the added
'A' in the model name). The BU27034ANUC has several changes that make
the old BU27034NUC driver unusable with it. I was told the old BU27034NUC
should not be encountered anywhere.

Hence, this series converts the rohm-bu27034.c to support the new
BU27034ANUC instead of the obsoleted BU27034NUC. Additionally, the
series adds a read-only entry for the HARDWAREGAIN to help understanding
what part of the scale is contributed by the gain, and what by the
integration time. This is useful when figuring out why some transitions
=66rom one 'scale' to other are failing.

Revision history:
	v1 =3D> v2:
		- Split the one large patch to patches 3 - 6 for easier
		  review. (Please let me know if you wish me to squash
		  them to one).
		- Introduce new compatible for the BU27034ANUC and drop
		  the old one.
		- Add styling fixes as suggested by Jonathan
		- Fix the lux calculation coefficient selection logic
	link to v1:
		https://lore.kernel.org/all/cover.1718013518.git.mazziesaccount@gmail.com/

---

Matti Vaittinen (7):
  dt-bindings: iio: BU27034 =3D> BU27034ANUC
  dt-bindings: iio: rename bu27034 file
  bu27034: ROHM BU27034NUC to BU27034ANUC
  bu27034: ROHM BU27034NUC to BU27034ANUC drop data2
  bu27034: ROHM BU27034ANUC correct gains and times
  bu27034: ROHM BU27034ANUC correct lux calculation
  iio: bu27034: Add a read only HWARDWAREGAIN

 ...ohm,bu27034.yaml =3D> rohm,bu27034anuc.yaml} |  11 +-
 drivers/iio/light/rohm-bu27034.c              | 343 +++++-------------
 2 files changed, 89 insertions(+), 265 deletions(-)
 rename Documentation/devicetree/bindings/iio/light/{rohm,bu27034.yaml =3D>=
 rohm,bu27034anuc.yaml} (66%)


base-commit: 1613e604df0cd359cf2a7fbd9be7a0bcfacfabd0
--=20
2.45.1


--=20
Matti Vaittinen, Linux device drivers
ROHM Semiconductors, Finland SWDC
Kiviharjunlenkki 1E
90220 OULU
FINLAND

~~~ "I don't think so," said Rene Descartes. Just then he vanished ~~~
Simon says - in Latin please.
~~~ "non cogito me" dixit Rene Descarte, deinde evanescavit ~~~
Thanks to Simon Glass for the translation =3D]=20

--1ujrdyYBASYRGAsW
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEIx+f8wZb28fLKEhTeFA3/03aocUFAmaH0KoACgkQeFA3/03a
ocUnVQf/bvXCL868Vs3MaXAPXghCzM5LKfB8ZqJjbwtLrzJhnTDvB8b48dqDPdB9
g8XvVwpTnPPEjER1KLgpSTuwARGsdhylm21VYBDY8+7qv4X0ftzyIJw8CUnrjTqM
WwaUsK4LX/aLTvT9Dy7FNwpY2p9srtiVwFtUE0iG7VIAjLhQ1RW71ezrixHjCWlv
8DSowKVepUQ7/M5zC1yDDuVeTsFkymnCtmGcxxL++TZ2vQzKkIO/35u2njCEI5aj
pwydo546WvVkhK4tTIG9TcW9oxdCeEXFhZbkl7IvPH77CYkeYY/hFWt2dxclBe33
QvZ8SIcv94hp6vKNxz5D0wcbwg+y3w==
=2JSA
-----END PGP SIGNATURE-----

--1ujrdyYBASYRGAsW--
.

From: Javier Carrasco <javier.carrasco.cruz@gmail.com>
Subject: [PATCH 0/2] media: Constify struct regmap_config
Date: Fri, 05 Jul 2024 12:53:49 +0200
Message-Id: <20240705-media-const-regmap_config-v1-0-56881442bb30@gmail.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
To: Mauro Carvalho Chehab <mchehab@kernel.org>, 
 Michael Tretter <m.tretter@pengutronix.de>, 
 Pengutronix Kernel Team <kernel@pengutronix.de>
Cc: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, 
 Javier Carrasco <javier.carrasco.cruz@gmail.com>
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1269064
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-media
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

This series adds the const modifier to the remaining regmap_config
structs under media/ that are effectively used as const (i.e., only
read after their declaration), but kept as writtable data.

Signed-off-by: Javier Carrasco <javier.carrasco.cruz@gmail.com>
---
Javier Carrasco (2):
      media: i2c: tvp5150: Constify struct regmap_config
      media: platform: allegro-dvt: Constify struct regmap_config

 drivers/media/i2c/tvp5150.c                       | 2 +-
 drivers/media/platform/allegro-dvt/allegro-core.c | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)
---
base-commit: 0b58e108042b0ed28a71cd7edf5175999955b233
change-id: 20240705-media-const-regmap_config-958dfd37063c

Best regards,
-- 
Javier Carrasco <javier.carrasco.cruz@gmail.com>

.

From: "zheng.dongxiong" <zheng.dongxiong@outlook.com>
To: manivannan.sadhasivam@linaro.org,
	fancer.lancer@gmail.com,
	vkoul@kernel.org
Cc: dmaengine@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	"zheng.dongxiong" <zheng.dongxiong@outlook.com>
Subject: [PATCH RESEND 0/2] dmaengine: dw-edma: Fixed transmission issues
Date: Fri,  5 Jul 2024 18:57:33 +0800
Message-ID: <SY4P282MB26244599B80C36FE2B78C912F9DF2@SY4P282MB2624.AUSP282.PROD.OUTLOOK.COM>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1269077
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.dmaengine
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

zheng.dongxiong (2):
  dmaengine: dw-edma: Move "Set consumer cycle" into first condition in
    dw_hdma_v0_core_start()
  damengine: dw-edma: Add msi wartermark configuration

 drivers/dma/dw-edma/dw-hdma-v0-core.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

--
2.34.1

.

From: John Garry <john.g.garry@oracle.com>
To: axboe@kernel.dk, mst@redhat.com, jasowang@redhat.com,
        xuanzhuo@linux.alibaba.com, eperezma@redhat.com, pbonzini@redhat.com,
        stefanha@redhat.com, hare@suse.de, kbusch@kernel.org, hch@lst.de
Cc: linux-block@vger.kernel.org, linux-kernel@vger.kernel.org,
        virtualization@lists.linux.dev, John Garry <john.g.garry@oracle.com>
Subject: [PATCH 0/5] Validate logical block size in blk_validate_limits()
Date: Fri,  5 Jul 2024 11:51:22 +0000
Message-Id: <20240705115127.3417539-1-john.g.garry@oracle.com>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Mailing-List: linux-block@vger.kernel.org
List-Id: <linux-block.vger.kernel.org>
List-Subscribe: <mailto:linux-block+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-block+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Xref: photonic.trudheim.com org.kernel.vger.linux-block:93854 org.kernel.vger.linux-kernel:1269082
Newsgroups: org.kernel.vger.linux-block,dev.linux.lists.virtualization,org.kernel.vger.linux-kernel
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

This series adds validation of the logical block size in
blk_validate_limits().

Some drivers had already been validating this themselves. As such, we can
mostly drop that driver validation.

nbd is problematic, as we cannot only change to just stop calling
blk_validate_limits(). This is because the LBS is updated in a 2-stage
process:
a. update block size in the driver and validate
b. update queue limits

So if we stop validating the limits in a., there is a user-visible change
in behaviour (as we stop rejecting invalid limits from the NBD_SET_BLKSIZE
ioctl). So I left that untouched.

This topic was originally mentioned in [0] and then again in [1] by
Keith.

I have also included a related virtio_blk change to deal with
blk_size config fallback.

[0] https://lore.kernel.org/linux-block/10b3e3fe-6ad5-4e0e-b822-f51656c976ee@oracle.com/
[1] https://lore.kernel.org/linux-block/Zl4dxaQgPbw19Irk@kbusch-mbp.dhcp.thefacebook.com/

John Garry (5):
  virtio_blk: Fix default logical block size fallback
  block: Validate logical block size in blk_validate_limits()
  null_blk: Don't bother validating blocksize
  virtio_blk: Don't bother validating blocksize
  loop: Don't bother validating blocksize

 block/blk-settings.c          |  2 ++
 drivers/block/loop.c          | 12 +-----------
 drivers/block/null_blk/main.c |  3 ---
 drivers/block/virtio_blk.c    | 31 +++++++++++--------------------
 include/linux/blkdev.h        |  1 +
 5 files changed, 15 insertions(+), 34 deletions(-)

-- 
2.31.1

.

From: Aleksandr Mishin <amishin@t-argos.ru>
To: Martyn Welch <martyn.welch@gefanuc.com>
CC: Aleksandr Mishin <amishin@t-argos.ru>, Greg Kroah-Hartman
	<gregkh@linuxfoundation.org>, Soumya Negi <soumya.negi97@gmail.com>, Alexon
 Oliveira <alexondunkan@gmail.com>, Piro Yang <piroyangg@gmail.com>, Andi
 Shyti <andi.shyti@linux.intel.com>, "Ricardo B. Marliere"
	<ricardo@marliere.net>, Jinjie Ruan <ruanjinjie@huawei.com>,
	<linux-kernel@vger.kernel.org>, <linux-staging@lists.linux.dev>,
	<lvc-project@linuxtesting.org>
Subject: [PATCH] staging: vme: Remove unneeded check in vme_lm_request()
Date: Fri, 5 Jul 2024 14:02:34 +0300
Message-ID: <20240705110234.14969-1-amishin@t-argos.ru>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-KSMG-Rule-ID: 1
X-KSMG-Message-Action: clean
X-KSMG-AntiSpam-Lua-Profiles: 186342 [Jul 05 2024]
X-KSMG-AntiSpam-Version: 6.1.0.4
X-KSMG-AntiSpam-Envelope-From: amishin@t-argos.ru
X-KSMG-AntiSpam-Rate: 0
X-KSMG-AntiSpam-Status: not_detected
X-KSMG-AntiSpam-Method: none
X-KSMG-AntiSpam-Auth: dkim=none
X-KSMG-AntiSpam-Info: LuaCore: 21 0.3.21 ebee5449fc125b2da45f1a6a6bc2c5c0c3ad0e05, {Tracking_from_domain_doesnt_match_to}, d41d8cd98f00b204e9800998ecf8427e.com:7.1.1;t-argos.ru:7.1.1;mx1.t-argos.ru.ru:7.1.1;127.0.0.199:7.1.2, FromAlignment: s
X-MS-Exchange-Organization-SCL: -1
X-KSMG-AntiSpam-Interceptor-Info: scan successful
X-KSMG-AntiPhishing: Clean, bases: 2024/07/05 10:17:00
X-KSMG-AntiVirus: Kaspersky Secure Mail Gateway, version 1.1.2.30, bases: 2024/07/05 03:12:00 #25860202
X-KSMG-AntiVirus-Status: Clean, skipped
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1269096
Newsgroups: org.kernel.vger.linux-kernel,dev.linux.lists.linux-staging
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

In vme_lm_request() list_for_each() pointer 'lm' is compared to NULL which
is useless.

Fix this issue by removing unneeded check.

Found by Linux Verification Center (linuxtesting.org) with SVACE.

Fixes: 42fb503122d8 ("Staging: vme: add VME Location Monitor management mechanism")
Signed-off-by: Aleksandr Mishin <amishin@t-argos.ru>
---
 drivers/staging/vme_user/vme.c | 6 ------
 1 file changed, 6 deletions(-)

diff --git a/drivers/staging/vme_user/vme.c b/drivers/staging/vme_user/vme.c
index 0cd370ab1008..223c4d607c88 100644
--- a/drivers/staging/vme_user/vme.c
+++ b/drivers/staging/vme_user/vme.c
@@ -1445,12 +1445,6 @@ struct vme_resource *vme_lm_request(struct vme_dev *vdev)
 
 	/* Loop through LM resources */
 	list_for_each_entry(lm, &bridge->lm_resources, list) {
-		if (!lm) {
-			dev_err(bridge->parent,
-				"Registered NULL Location Monitor resource\n");
-			continue;
-		}
-
 		/* Find an unlocked controller */
 		mutex_lock(&lm->mtx);
 		if (lm->locked == 0) {
-- 
2.30.2

.

From: Yang Li via B4 Relay <devnull+yang.li.amlogic.com@kernel.org>
Subject: [PATCH 0/3] Add power sequence for Amlogic WCN chips
Date: Fri, 05 Jul 2024 19:13:24 +0800
Message-Id: <20240705-pwrseq-v1-0-31829b47fc72@amlogic.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
To: Rob Herring <robh@kernel.org>, Krzysztof Kozlowski <krzk+dt@kernel.org>, 
 Conor Dooley <conor+dt@kernel.org>, Bartosz Golaszewski <brgl@bgdev.pl>
Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, 
 linux-pm@vger.kernel.org, Yang Li <yang.li@amlogic.com>
X-Original-From: Yang Li <yang.li@amlogic.com>
Reply-To: yang.li@amlogic.com
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1269102
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.feeds.b4-sent,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-pm
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Add Amlogic WCN power sequence, including dt-binding, power sequence
provider with Amlogic, and enable POWER_SEQUENCING_AML_WCN in defconfig.

Signed-off-by: Yang Li <yang.li@amlogic.com>
---
Yang Li (3):
      dt-bindings: power: Add power sequence for Amloigc WCN chips
      power: sequenceing: Add power sequence for Amlogic WCN chips
      MAINTAINERS: Add an entry for Amlogic WCN power sequence

 .../bindings/power/amlogic,w155s2-pwrseq.yaml      |  62 ++++++
 MAINTAINERS                                        |   8 +
 drivers/power/sequencing/Kconfig                   |   7 +
 drivers/power/sequencing/Makefile                  |   1 +
 drivers/power/sequencing/pwrseq-aml-wcn.c          | 209 +++++++++++++++++++++
 5 files changed, 287 insertions(+)
---
base-commit: 0b58e108042b0ed28a71cd7edf5175999955b233
change-id: 20240701-pwrseq-2c7db60f7ad1

Best regards,
-- 
Yang Li <yang.li@amlogic.com>


.

From: "Alexander F. Lent" <lx@xanderlent.com>
Date: Fri, 05 Jul 2024 07:14:22 -0400
Subject: [PATCH] accel/ivpu: Add missing MODULE_FIRMWARE metadata
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20240705-fix-ivpu-firmware-metadata-v1-1-704b73852d92@xanderlent.com>
To: "Alexander F. Lent" <lx@xanderlent.com>, 
 Jacek Lawrynowicz <jacek.lawrynowicz@linux.intel.com>, 
 Stanislaw Gruszka <stanislaw.gruszka@linux.intel.com>, 
 Oded Gabbay <ogabbay@kernel.org>, Jeffrey Hugo <quic_jhugo@quicinc.com>, 
 Daniel Vetter <daniel.vetter@ffwll.ch>, 
 Andrzej Kacprowski <andrzej.kacprowski@linux.intel.com>, 
 Krystian Pradzynski <krystian.pradzynski@linux.intel.com>
Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1269107
Newsgroups: org.kernel.vger.linux-kernel
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Modules that load firmware from various paths at runtime must declare
those paths at compile time, via the MODULE_FIRMWARE macro, so that the
firmware paths are included in the module's metadata.

The accel/ivpu driver loaded firmware but lacked this metadata,
preventing dracut from correctly locating firmware files.

Fixes: 9ab43e95f922 ("accel/ivpu: Switch to generation based FW names")
Fixes: 02d5b0aacd05 ("accel/ivpu: Implement firmware parsing and booting")
Signed-off-by: Alexander F. Lent <lx@xanderlent.com>
---
 drivers/accel/ivpu/ivpu_fw.c | 18 ++++++++++++++----
 1 file changed, 14 insertions(+), 4 deletions(-)

diff --git a/drivers/accel/ivpu/ivpu_fw.c b/drivers/accel/ivpu/ivpu_fw.c
index 1457300828bf..51792a00b7e3 100644
--- a/drivers/accel/ivpu/ivpu_fw.c
+++ b/drivers/accel/ivpu/ivpu_fw.c
@@ -48,16 +48,26 @@ static char *ivpu_firmware;
 module_param_named_unsafe(firmware, ivpu_firmware, charp, 0644);
 MODULE_PARM_DESC(firmware, "NPU firmware binary in /lib/firmware/..");
 
+#define IVPU_FW_PATH_37XX_BIN		"vpu_37xx.bin"
+#define IVPU_FW_PATH_37XX_V0_BIN	"intel/vpu/vpu_37xx_v0.0.bin"
+#define IVPU_FW_PATH_40XX_BIN		"vpu_40xx.bin"
+#define IVPU_FW_PATH_40XX_V0_BIN	"intel/vpu/vpu_40xx_v0.0.bin"
+
 static struct {
 	int gen;
 	const char *name;
 } fw_names[] = {
-	{ IVPU_HW_37XX, "vpu_37xx.bin" },
-	{ IVPU_HW_37XX, "intel/vpu/vpu_37xx_v0.0.bin" },
-	{ IVPU_HW_40XX, "vpu_40xx.bin" },
-	{ IVPU_HW_40XX, "intel/vpu/vpu_40xx_v0.0.bin" },
+	{ IVPU_HW_37XX, IVPU_FW_PATH_37XX_BIN },
+	{ IVPU_HW_37XX, IVPU_FW_PATH_37XX_V0_BIN },
+	{ IVPU_HW_40XX, IVPU_FW_PATH_40XX_BIN },
+	{ IVPU_HW_40XX, IVPU_FW_PATH_40XX_V0_BIN },
 };
 
+MODULE_FIRMWARE(IVPU_FW_PATH_37XX_BIN);
+MODULE_FIRMWARE(IVPU_FW_PATH_37XX_V0_BIN);
+MODULE_FIRMWARE(IVPU_FW_PATH_40XX_BIN);
+MODULE_FIRMWARE(IVPU_FW_PATH_40XX_V0_BIN);
+
 static int ivpu_fw_request(struct ivpu_device *vdev)
 {
 	int ret = -ENOENT;

---
base-commit: 22a40d14b572deb80c0648557f4bd502d7e83826
change-id: 20240704-fix-ivpu-firmware-metadata-3d02bd60768d

Best regards,
-- 
Alexander F. Lent <lx@xanderlent.com>

.

Date: Fri, 05 Jul 2024 11:15:11 +0000
To: Luis Chamberlain <mcgrof@kernel.org>, Miguel Ojeda <ojeda@kernel.org>
From: Andreas Hindborg <nmi@metaspace.dk>
Cc: rust-for-linux@vger.kernel.org, linux-modules@vger.kernel.org, linux-kernel@vger.kernel.org, Andreas Hindborg <a.hindborg@samsung.com>, Adam Bratschi-Kaye <ark.email@gmail.com>
Subject: [PATCH] rust: add `module_params` macro
Message-ID: <20240705111455.142790-1-nmi@metaspace.dk>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1269108
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-modules,org.kernel.vger.rust-for-linux
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

From: Andreas Hindborg <a.hindborg@samsung.com>

This patch includes changes required for Rust kernel modules to utilize
module parameters. This code implements read only support for integer
types without `sysfs` support.

This code is a reduced and updated version of code by Adam available in the
original `rust` branch [1].

[1] https://github.com/Rust-for-Linux/linux/tree/bc22545f38d74473cfef3e9fd6=
5432733435b79f

Cc: Adam Bratschi-Kaye <ark.email@gmail.com>
Signed-off-by: Andreas Hindborg <a.hindborg@samsung.com>

---

I have patches queued up for `rnull` that depend on this patch.
---
 rust/bindings/bindings_helper.h |   1 +
 rust/kernel/lib.rs              |   2 +
 rust/kernel/module_param.rs     | 339 ++++++++++++++++++++++++++++++++
 rust/macros/helpers.rs          |   8 +
 rust/macros/module.rs           | 230 ++++++++++++++++++++--
 samples/rust/rust_minimal.rs    |  10 +
 6 files changed, 571 insertions(+), 19 deletions(-)
 create mode 100644 rust/kernel/module_param.rs

diff --git a/rust/bindings/bindings_helper.h b/rust/bindings/bindings_helpe=
r.h
index ddb5644d4fd9..767169f46f10 100644
--- a/rust/bindings/bindings_helper.h
+++ b/rust/bindings/bindings_helper.h
@@ -25,3 +25,4 @@ const gfp_t RUST_CONST_HELPER_GFP_KERNEL =3D GFP_KERNEL;
 const gfp_t RUST_CONST_HELPER_GFP_KERNEL_ACCOUNT =3D GFP_KERNEL_ACCOUNT;
 const gfp_t RUST_CONST_HELPER_GFP_NOWAIT =3D GFP_NOWAIT;
 const gfp_t RUST_CONST_HELPER___GFP_ZERO =3D __GFP_ZERO;
+const size_t RUST_CONST_HELPER_PAGE_SIZE =3D PAGE_SIZE;
diff --git a/rust/kernel/lib.rs b/rust/kernel/lib.rs
index fbd91a48ff8b..7cc2730e572f 100644
--- a/rust/kernel/lib.rs
+++ b/rust/kernel/lib.rs
@@ -33,6 +33,8 @@
 pub mod ioctl;
 #[cfg(CONFIG_KUNIT)]
 pub mod kunit;
+#[doc(hidden)]
+pub mod module_param;
 #[cfg(CONFIG_NET)]
 pub mod net;
 pub mod prelude;
diff --git a/rust/kernel/module_param.rs b/rust/kernel/module_param.rs
new file mode 100644
index 000000000000..dc1108d20723
--- /dev/null
+++ b/rust/kernel/module_param.rs
@@ -0,0 +1,339 @@
+// SPDX-License-Identifier: GPL-2.0
+
+//! Types for module parameters.
+//!
+//! C header: [`include/linux/moduleparam.h`](../../../include/linux/modul=
eparam.h)
+
+use crate::{error::code::*, str::CStr};
+
+/// Types that can be used for module parameters.
+///
+/// Note that displaying the type in `sysfs` will fail if
+/// [`core::str::from_utf8`] (as implemented through the [`core::fmt::Disp=
lay`]
+/// trait) writes more than [`PAGE_SIZE`] bytes (including an additional n=
ull
+/// terminator).
+///
+/// [`PAGE_SIZE`]: `bindings::PAGE_SIZE`
+pub trait ModuleParam: core::fmt::Display + core::marker::Sized {
+    /// The `ModuleParam` will be used by the kernel module through this t=
ype.
+    ///
+    /// This may differ from `Self` if, for example, `Self` needs to track
+    /// ownership without exposing it or allocate extra space for other po=
ssible
+    /// parameter values. This is required to support string parameters in=
 the
+    /// future.
+    type Value: ?Sized;
+
+    /// Whether the parameter is allowed to be set without an argument.
+    ///
+    /// Setting this to `true` allows the parameter to be passed without a=
n
+    /// argument (e.g. just `module.param` instead of `module.param=3Dfoo`=
).
+    const NOARG_ALLOWED: bool;
+
+    /// Convert a parameter argument into the parameter value.
+    ///
+    /// `None` should be returned when parsing of the argument fails.
+    /// `arg =3D=3D None` indicates that the parameter was passed without =
an
+    /// argument. If `NOARG_ALLOWED` is set to `false` then `arg` is guara=
nteed
+    /// to always be `Some(_)`.
+    ///
+    /// Parameters passed at boot time will be set before [`kmalloc`] is
+    /// available (even if the module is loaded at a later time). However,=
 in
+    /// this case, the argument buffer will be valid for the entire lifeti=
me of
+    /// the kernel. So implementations of this method which need to alloca=
te
+    /// should first check that the allocator is available (with
+    /// [`crate::bindings::slab_is_available`]) and when it is not availab=
le
+    /// provide an alternative implementation which doesn't allocate. In c=
ases
+    /// where the allocator is not available it is safe to save references=
 to
+    /// `arg` in `Self`, but in other cases a copy should be made.
+    ///
+    /// [`kmalloc`]: ../../../include/linux/slab.h
+    fn try_from_param_arg(arg: Option<&'static [u8]>) -> Option<Self>;
+
+    /// Get the current value of the parameter for use in the kernel modul=
e.
+    ///
+    /// This function should not be used directly. Instead use the wrapper
+    /// `read` which will be generated by [`macros::module`].
+    fn value(&self) -> &Self::Value;
+
+    /// Set the module parameter from a string.
+    ///
+    /// Used to set the parameter value at kernel initialization, when loa=
ding
+    /// the module or when set through `sysfs`.
+    ///
+    /// `param.arg` is a pointer to `*mut Self` as set up by the [`module!=
`]
+    /// macro.
+    ///
+    /// See `struct kernel_param_ops.set`.
+    ///
+    /// # Safety
+    ///
+    /// If `val` is non-null then it must point to a valid null-terminated
+    /// string. The `arg` field of `param` must be an instance of `Self`.
+    ///
+    /// # Invariants
+    ///
+    /// Currently, we only support read-only parameters that are not reada=
ble
+    /// from `sysfs`. Thus, this function is only called at kernel
+    /// initialization time, or at module load time, and we have exclusive
+    /// access to the parameter for the duration of the function.
+    ///
+    /// [`module!`]: macros::module
+    unsafe extern "C" fn set_param(
+        val: *const core::ffi::c_char,
+        param: *const crate::bindings::kernel_param,
+    ) -> core::ffi::c_int {
+        let arg =3D if val.is_null() {
+            None
+        } else {
+            // SAFETY: By function safety requirement, val is non-null and
+            // null-terminated. By C API contract, `val` is live and valid=
 for
+            // reads for the duration of this function.
+            Some(unsafe { CStr::from_char_ptr(val).as_bytes() })
+        };
+        match Self::try_from_param_arg(arg) {
+            Some(new_value) =3D> {
+                // SAFETY: `param` is guaranteed to be valid by C API cont=
ract
+                // and `arg` is guaranteed to point to an instance of `Sel=
f`.
+                let old_value =3D unsafe { (*param).__bindgen_anon_1.arg a=
s *mut Self };
+                // SAFETY: `old_value` is valid for writes, as we have exc=
lusive
+                // access. `old_value` is pointing to an initialized stati=
c, an
+                // so it is properly initialized.
+                let _ =3D unsafe { core::ptr::replace(old_value, new_value=
) };
+                0
+            }
+            None =3D> EINVAL.to_errno(),
+        }
+    }
+
+    /// Write a string representation of the current parameter value to `b=
uf`.
+    ///
+    /// # Safety
+    ///
+    /// Must not be called.
+    ///
+    /// # Note
+    ///
+    /// This should not be called as we declare all parameters as read onl=
y.
+    unsafe extern "C" fn get_param(
+        _buf: *mut core::ffi::c_char,
+        _param: *const crate::bindings::kernel_param,
+    ) -> core::ffi::c_int {
+        0
+    }
+
+    /// Drop the parameter.
+    ///
+    /// Called when unloading a module.
+    ///
+    /// # Safety
+    ///
+    /// The `arg` field of `param` must be an initialized instance of `Sel=
f`.
+    unsafe extern "C" fn free(arg: *mut core::ffi::c_void) {
+        // SAFETY: By function safety requirement, `arg` is an initialized
+        // instance of `Self`. By C API contract, `arg` will not be used a=
fter
+        // this function returns.
+        unsafe { core::ptr::drop_in_place(arg as *mut Self) };
+    }
+}
+
+/// Trait for parsing integers.
+///
+/// Strings beginning with `0x`, `0o`, or `0b` are parsed as hex, octal, o=
r
+/// binary respectively. Strings beginning with `0` otherwise are parsed a=
s
+/// octal. Anything else is parsed as decimal. A leading `+` or `-` is als=
o
+/// permitted. Any string parsed by [`kstrtol()`] or [`kstrtoul()`] will b=
e
+/// successfully parsed.
+///
+/// [`kstrtol()`]: https://www.kernel.org/doc/html/latest/core-api/kernel-=
api.html#c.kstrtol
+/// [`kstrtoul()`]: https://www.kernel.org/doc/html/latest/core-api/kernel=
-api.html#c.kstrtoul
+trait ParseInt: Sized {
+    fn from_str_radix(src: &str, radix: u32) -> Result<Self, core::num::Pa=
rseIntError>;
+    fn checked_neg(self) -> Option<Self>;
+
+    fn from_str_unsigned(src: &str) -> Result<Self, core::num::ParseIntErr=
or> {
+        let (radix, digits) =3D if let Some(n) =3D src.strip_prefix("0x") =
{
+            (16, n)
+        } else if let Some(n) =3D src.strip_prefix("0X") {
+            (16, n)
+        } else if let Some(n) =3D src.strip_prefix("0o") {
+            (8, n)
+        } else if let Some(n) =3D src.strip_prefix("0O") {
+            (8, n)
+        } else if let Some(n) =3D src.strip_prefix("0b") {
+            (2, n)
+        } else if let Some(n) =3D src.strip_prefix("0B") {
+            (2, n)
+        } else if src.starts_with('0') {
+            (8, src)
+        } else {
+            (10, src)
+        };
+        Self::from_str_radix(digits, radix)
+    }
+
+    fn from_str(src: &str) -> Option<Self> {
+        match src.bytes().next() {
+            None =3D> None,
+            Some(b'-') =3D> Self::from_str_unsigned(&src[1..]).ok()?.check=
ed_neg(),
+            Some(b'+') =3D> Some(Self::from_str_unsigned(&src[1..]).ok()?)=
,
+            Some(_) =3D> Some(Self::from_str_unsigned(src).ok()?),
+        }
+    }
+}
+
+macro_rules! impl_parse_int {
+    ($ty:ident) =3D> {
+        impl ParseInt for $ty {
+            fn from_str_radix(src: &str, radix: u32) -> Result<Self, core:=
:num::ParseIntError> {
+                $ty::from_str_radix(src, radix)
+            }
+
+            fn checked_neg(self) -> Option<Self> {
+                self.checked_neg()
+            }
+        }
+    };
+}
+
+impl_parse_int!(i8);
+impl_parse_int!(u8);
+impl_parse_int!(i16);
+impl_parse_int!(u16);
+impl_parse_int!(i32);
+impl_parse_int!(u32);
+impl_parse_int!(i64);
+impl_parse_int!(u64);
+impl_parse_int!(isize);
+impl_parse_int!(usize);
+
+macro_rules! impl_module_param {
+    ($ty:ident) =3D> {
+        impl ModuleParam for $ty {
+            type Value =3D $ty;
+
+            const NOARG_ALLOWED: bool =3D false;
+
+            fn try_from_param_arg(arg: Option<&'static [u8]>) -> Option<Se=
lf> {
+                let bytes =3D arg?;
+                let utf8 =3D core::str::from_utf8(bytes).ok()?;
+                <$ty as crate::module_param::ParseInt>::from_str(utf8)
+            }
+
+            #[inline(always)]
+            fn value(&self) -> &Self::Value {
+                self
+            }
+        }
+    };
+}
+
+#[doc(hidden)]
+#[macro_export]
+/// Generate a static [`kernel_param_ops`](../../../include/linux/modulepa=
ram.h) struct.
+///
+/// # Examples
+///
+/// ```ignore
+/// make_param_ops!(
+///     /// Documentation for new param ops.
+///     PARAM_OPS_MYTYPE, // Name for the static.
+///     MyType // A type which implements [`ModuleParam`].
+/// );
+/// ```
+macro_rules! make_param_ops {
+    ($ops:ident, $ty:ty) =3D> {
+        $crate::make_param_ops!(
+            #[doc=3D""]
+            $ops,
+            $ty
+        );
+    };
+    ($(#[$meta:meta])* $ops:ident, $ty:ty) =3D> {
+        $(#[$meta])*
+        ///
+        /// Static [`kernel_param_ops`](../../../include/linux/moduleparam=
.h)
+        /// struct generated by [`make_param_ops`].
+        pub static $ops: $crate::bindings::kernel_param_ops =3D $crate::bi=
ndings::kernel_param_ops {
+            flags: if <$ty as $crate::module_param::ModuleParam>::NOARG_AL=
LOWED {
+                $crate::bindings::KERNEL_PARAM_OPS_FL_NOARG
+            } else {
+                0
+            },
+            set: Some(<$ty as $crate::module_param::ModuleParam>::set_para=
m),
+            get: Some(<$ty as $crate::module_param::ModuleParam>::get_para=
m),
+            free: Some(<$ty as $crate::module_param::ModuleParam>::free),
+        };
+    };
+}
+
+impl_module_param!(i8);
+impl_module_param!(u8);
+impl_module_param!(i16);
+impl_module_param!(u16);
+impl_module_param!(i32);
+impl_module_param!(u32);
+impl_module_param!(i64);
+impl_module_param!(u64);
+impl_module_param!(isize);
+impl_module_param!(usize);
+
+make_param_ops!(
+    /// Rust implementation of [`kernel_param_ops`](../../../include/linux=
/moduleparam.h)
+    /// for [`i8`].
+    PARAM_OPS_I8,
+    i8
+);
+make_param_ops!(
+    /// Rust implementation of [`kernel_param_ops`](../../../include/linux=
/moduleparam.h)
+    /// for [`u8`].
+    PARAM_OPS_U8,
+    u8
+);
+make_param_ops!(
+    /// Rust implementation of [`kernel_param_ops`](../../../include/linux=
/moduleparam.h)
+    /// for [`i16`].
+    PARAM_OPS_I16,
+    i16
+);
+make_param_ops!(
+    /// Rust implementation of [`kernel_param_ops`](../../../include/linux=
/moduleparam.h)
+    /// for [`u16`].
+    PARAM_OPS_U16,
+    u16
+);
+make_param_ops!(
+    /// Rust implementation of [`kernel_param_ops`](../../../include/linux=
/moduleparam.h)
+    /// for [`i32`].
+    PARAM_OPS_I32,
+    i32
+);
+make_param_ops!(
+    /// Rust implementation of [`kernel_param_ops`](../../../include/linux=
/moduleparam.h)
+    /// for [`u32`].
+    PARAM_OPS_U32,
+    u32
+);
+make_param_ops!(
+    /// Rust implementation of [`kernel_param_ops`](../../../include/linux=
/moduleparam.h)
+    /// for [`i64`].
+    PARAM_OPS_I64,
+    i64
+);
+make_param_ops!(
+    /// Rust implementation of [`kernel_param_ops`](../../../include/linux=
/moduleparam.h)
+    /// for [`u64`].
+    PARAM_OPS_U64,
+    u64
+);
+make_param_ops!(
+    /// Rust implementation of [`kernel_param_ops`](../../../include/linux=
/moduleparam.h)
+    /// for [`isize`].
+    PARAM_OPS_ISIZE,
+    isize
+);
+make_param_ops!(
+    /// Rust implementation of [`kernel_param_ops`](../../../include/linux=
/moduleparam.h)
+    /// for [`usize`].
+    PARAM_OPS_USIZE,
+    usize
+);
diff --git a/rust/macros/helpers.rs b/rust/macros/helpers.rs
index 563dcd2b7ace..dc0b47879a8c 100644
--- a/rust/macros/helpers.rs
+++ b/rust/macros/helpers.rs
@@ -107,6 +107,14 @@ pub(crate) struct Generics {
     pub(crate) ty_generics: Vec<TokenTree>,
 }
=20
+pub(crate) fn get_string(it: &mut token_stream::IntoIter, expected_name: &=
str) -> String {
+    assert_eq!(expect_ident(it), expected_name);
+    assert_eq!(expect_punct(it), ':');
+    let string =3D expect_string(it);
+    assert_eq!(expect_punct(it), ',');
+    string
+}
+
 /// Parses the given `TokenStream` into `Generics` and the rest.
 ///
 /// The generics are not present in the rest, but a where clause might rem=
ain.
diff --git a/rust/macros/module.rs b/rust/macros/module.rs
index acd0393b5095..fc794855b99e 100644
--- a/rust/macros/module.rs
+++ b/rust/macros/module.rs
@@ -1,7 +1,7 @@
 // SPDX-License-Identifier: GPL-2.0
=20
 use crate::helpers::*;
-use proc_macro::{token_stream, Delimiter, Literal, TokenStream, TokenTree}=
;
+use proc_macro::{token_stream, Delimiter, Group, Literal, TokenStream, Tok=
enTree};
 use std::fmt::Write;
=20
 fn expect_string_array(it: &mut token_stream::IntoIter) -> Vec<String> {
@@ -26,6 +26,7 @@ struct ModInfoBuilder<'a> {
     module: &'a str,
     counter: usize,
     buffer: String,
+    param_buffer: String,
 }
=20
 impl<'a> ModInfoBuilder<'a> {
@@ -34,10 +35,11 @@ fn new(module: &'a str) -> Self {
             module,
             counter: 0,
             buffer: String::new(),
+            param_buffer: String::new(),
         }
     }
=20
-    fn emit_base(&mut self, field: &str, content: &str, builtin: bool) {
+    fn emit_base(&mut self, field: &str, content: &str, builtin: bool, par=
am: bool) {
         let string =3D if builtin {
             // Built-in modules prefix their modinfo strings by `module.`.
             format!(
@@ -51,8 +53,14 @@ fn emit_base(&mut self, field: &str, content: &str, buil=
tin: bool) {
             format!("{field}=3D{content}\0", field =3D field, content =3D =
content)
         };
=20
+        let buffer =3D if param {
+            &mut self.param_buffer
+        } else {
+            &mut self.buffer
+        };
+
         write!(
-            &mut self.buffer,
+            buffer,
             "
                 {cfg}
                 #[doc(hidden)]
@@ -75,20 +83,190 @@ fn emit_base(&mut self, field: &str, content: &str, bu=
iltin: bool) {
         self.counter +=3D 1;
     }
=20
-    fn emit_only_builtin(&mut self, field: &str, content: &str) {
-        self.emit_base(field, content, true)
+    fn emit_only_builtin(&mut self, field: &str, content: &str, param: boo=
l) {
+        self.emit_base(field, content, true, param)
     }
=20
-    fn emit_only_loadable(&mut self, field: &str, content: &str) {
-        self.emit_base(field, content, false)
+    fn emit_only_loadable(&mut self, field: &str, content: &str, param: bo=
ol) {
+        self.emit_base(field, content, false, param)
     }
=20
     fn emit(&mut self, field: &str, content: &str) {
-        self.emit_only_builtin(field, content);
-        self.emit_only_loadable(field, content);
+        self.emit_internal(field, content, false);
+    }
+
+    fn emit_internal(&mut self, field: &str, content: &str, param: bool) {
+        self.emit_only_builtin(field, content, param);
+        self.emit_only_loadable(field, content, param);
+    }
+
+    fn emit_param(&mut self, field: &str, param: &str, content: &str) {
+        let content =3D format!("{param}:{content}", param =3D param, cont=
ent =3D content);
+        self.emit_internal(field, &content, true);
+    }
+
+    fn emit_params(&mut self, info: &ModuleInfo) {
+        if let Some(params) =3D &info.params {
+            assert_eq!(params.delimiter(), Delimiter::Brace);
+
+            let mut it =3D params.stream().into_iter();
+
+            loop {
+                let param_name =3D match it.next() {
+                    Some(TokenTree::Ident(ident)) =3D> ident.to_string(),
+                    Some(_) =3D> panic!("Expected Ident or end"),
+                    None =3D> break,
+                };
+
+                assert_eq!(expect_punct(&mut it), ':');
+                let param_type =3D expect_ident(&mut it);
+                let group =3D expect_group(&mut it);
+                assert_eq!(expect_punct(&mut it), ',');
+
+                assert_eq!(group.delimiter(), Delimiter::Brace);
+
+                let mut param_it =3D group.stream().into_iter();
+                let param_default =3D get_param_default(&mut param_it);
+                let param_description =3D get_string(&mut param_it, "descr=
iption");
+                expect_end(&mut param_it);
+
+                let (param_kernel_type, ops): (String, _) =3D (
+                    param_type.to_string(),
+                    param_ops_path(&param_type).to_string(),
+                );
+
+                self.emit_param("parmtype", &param_name, &param_kernel_typ=
e);
+                self.emit_param("parm", &param_name, &param_description);
+                let param_type_internal =3D param_type.clone();
+
+                let read_func =3D format!(
+                    "
+                        pub(crate) fn read(&self)
+                            -> &<{param_type_internal}
+                               as kernel::module_param::ModuleParam>::Valu=
e {{
+                            // Note: when we enable r/w parameters, we nee=
d to lock here.
+
+                            // SAFETY: Parameters do not need to be locked=
 because they are
+                            // read only or sysfs is not enabled.
+                            unsafe {{
+                                <{param_type_internal} as kernel::module_p=
aram::ModuleParam>::value(
+                                    &__{name}_{param_name}_value
+                                )
+                            }}
+                        }}
+                    ",
+                    name =3D info.name,
+                    param_name =3D param_name,
+                    param_type_internal =3D param_type_internal,
+                );
+
+                let kparam =3D format!(
+                    "
+                    kernel::bindings::kernel_param__bindgen_ty_1 {{
+                        // SAFETY: Access through the resulting pointer is
+                        // serialized by C side and only happens before mo=
dule
+                        // `init` or after module `drop` is called.
+                        arg: unsafe {{ &__{name}_{param_name}_value }}
+                            as *const _ as *mut core::ffi::c_void,
+                    }},
+                ",
+                    name =3D info.name,
+                    param_name =3D param_name,
+                );
+                write!(
+                    self.param_buffer,
+                    "
+                static mut __{name}_{param_name}_value: {param_type_intern=
al} =3D {param_default};
+
+                pub(crate) struct __{name}_{param_name};
+
+                impl __{name}_{param_name} {{ {read_func} }}
+
+                pub(crate) const {param_name}: __{name}_{param_name} =3D _=
_{name}_{param_name};
+
+                // Note: the C macro that generates the static structs for=
 the `__param` section
+                // asks for them to be `aligned(sizeof(void *))`. However,=
 that was put in place
+                // in 2003 in commit 38d5b085d2a0 (\"[PATCH] Fix over-alig=
nment problem on x86-64\")
+                // to undo GCC over-alignment of static structs of >32 byt=
es. It seems that is
+                // not the case anymore, so we simplify to a transparent r=
epresentation here
+                // in the expectation that it is not needed anymore.
+                // TODO: Revisit this to confirm the above comment and rem=
ove it if it happened.
+                /// Newtype to make `bindings::kernel_param` `Sync`.
+                #[repr(transparent)]
+                struct __{name}_{param_name}_RacyKernelParam(kernel::bindi=
ngs::kernel_param);
+
+                // SAFETY: C kernel handles serializing access to this typ=
e. We
+                // never access from Rust module.
+                unsafe impl Sync for __{name}_{param_name}_RacyKernelParam=
 {{
+                }}
+
+                #[cfg(not(MODULE))]
+                const __{name}_{param_name}_name: *const core::ffi::c_char=
 =3D
+                    b\"{name}.{param_name}\\0\" as *const _ as *const core=
::ffi::c_char;
+
+                #[cfg(MODULE)]
+                const __{name}_{param_name}_name: *const core::ffi::c_char=
 =3D
+                    b\"{param_name}\\0\" as *const _ as *const core::ffi::=
c_char;
+
+                #[link_section =3D \"__param\"]
+                #[used]
+                static __{name}_{param_name}_struct: __{name}_{param_name}=
_RacyKernelParam =3D
+                    __{name}_{param_name}_RacyKernelParam(kernel::bindings=
::kernel_param {{
+                        name: __{name}_{param_name}_name,
+                        // SAFETY: `__this_module` is constructed by the k=
ernel at load time
+                        // and will not be freed until the module is unloa=
ded.
+                        #[cfg(MODULE)]
+                        mod_: unsafe {{ &kernel::bindings::__this_module a=
s *const _ as *mut _ }},
+                        #[cfg(not(MODULE))]
+                        mod_: core::ptr::null_mut(),
+                        // SAFETY: This static is actually constant as see=
n by
+                        // module code. But we need a unique address for i=
t, so it
+                        // must be static.
+                        ops: unsafe {{ &{ops} }} as *const kernel::binding=
s::kernel_param_ops,
+                        perm: 0, // Will not appear in sysfs
+                        level: -1,
+                        flags: 0,
+                        __bindgen_anon_1: {kparam}
+                    }});
+                ",
+                    name =3D info.name,
+                    param_type_internal =3D param_type_internal,
+                    read_func =3D read_func,
+                    param_default =3D param_default,
+                    param_name =3D param_name,
+                    ops =3D ops,
+                    kparam =3D kparam,
+                )
+                .unwrap();
+            }
+        }
     }
 }
=20
+fn param_ops_path(param_type: &str) -> &'static str {
+    match param_type {
+        "i8" =3D> "::kernel::module_param::PARAM_OPS_I8",
+        "u8" =3D> "::kernel::module_param::PARAM_OPS_U8",
+        "i16" =3D> "::kernel::module_param::PARAM_OPS_I16",
+        "u16" =3D> "::kernel::module_param::PARAM_OPS_U16",
+        "i32" =3D> "::kernel::module_param::PARAM_OPS_I32",
+        "u32" =3D> "::kernel::module_param::PARAM_OPS_U32",
+        "i64" =3D> "::kernel::module_param::PARAM_OPS_I64",
+        "u64" =3D> "::kernel::module_param::PARAM_OPS_U64",
+        "isize" =3D> "::kernel::module_param::PARAM_OPS_ISIZE",
+        "usize" =3D> "::kernel::module_param::PARAM_OPS_USIZE",
+        t =3D> panic!("Unrecognized type {}", t),
+    }
+}
+
+fn get_param_default(param_it: &mut token_stream::IntoIter) -> String {
+    assert_eq!(expect_ident(param_it), "default");
+    assert_eq!(expect_punct(param_it), ':');
+    let default =3D try_literal(param_it).expect("Expected default param v=
alue");
+    assert_eq!(expect_punct(param_it), ',');
+    default
+}
+
 #[derive(Debug, Default)]
 struct ModuleInfo {
     type_: String,
@@ -97,14 +275,22 @@ struct ModuleInfo {
     author: Option<String>,
     description: Option<String>,
     alias: Option<Vec<String>>,
+    params: Option<Group>,
 }
=20
 impl ModuleInfo {
     fn parse(it: &mut token_stream::IntoIter) -> Self {
         let mut info =3D ModuleInfo::default();
=20
-        const EXPECTED_KEYS: &[&str] =3D
-            &["type", "name", "author", "description", "license", "alias"]=
;
+        const EXPECTED_KEYS: &[&str] =3D &[
+            "type",
+            "name",
+            "author",
+            "description",
+            "license",
+            "alias",
+            "params",
+        ];
         const REQUIRED_KEYS: &[&str] =3D &["type", "name", "license"];
         let mut seen_keys =3D Vec::new();
=20
@@ -131,6 +317,7 @@ fn parse(it: &mut token_stream::IntoIter) -> Self {
                 "description" =3D> info.description =3D Some(expect_string=
(it)),
                 "license" =3D> info.license =3D expect_string_ascii(it),
                 "alias" =3D> info.alias =3D Some(expect_string_array(it)),
+                "params" =3D> info.params =3D Some(expect_group(it)),
                 _ =3D> panic!(
                     "Unknown key \"{}\". Valid keys are: {:?}.",
                     key, EXPECTED_KEYS
@@ -174,23 +361,25 @@ pub(crate) fn module(ts: TokenStream) -> TokenStream =
{
     let info =3D ModuleInfo::parse(&mut it);
=20
     let mut modinfo =3D ModInfoBuilder::new(info.name.as_ref());
-    if let Some(author) =3D info.author {
-        modinfo.emit("author", &author);
+    if let Some(author) =3D &info.author {
+        modinfo.emit("author", author);
     }
-    if let Some(description) =3D info.description {
-        modinfo.emit("description", &description);
+    if let Some(description) =3D &info.description {
+        modinfo.emit("description", description);
     }
     modinfo.emit("license", &info.license);
-    if let Some(aliases) =3D info.alias {
+    if let Some(aliases) =3D &info.alias {
         for alias in aliases {
-            modinfo.emit("alias", &alias);
+            modinfo.emit("alias", alias);
         }
     }
=20
     // Built-in modules also export the `file` modinfo string.
     let file =3D
         std::env::var("RUST_MODFILE").expect("Unable to fetch RUST_MODFILE=
 environmental variable");
-    modinfo.emit_only_builtin("file", &file);
+    modinfo.emit_only_builtin("file", &file, false);
+
+    modinfo.emit_params(&info);
=20
     format!(
         "
@@ -332,14 +521,17 @@ unsafe fn __exit() {{
                             __MOD =3D None;
                         }}
                     }}
-
                     {modinfo}
                 }}
             }}
+            mod module_parameters {{
+                {params}
+            }}
         ",
         type_ =3D info.type_,
         name =3D info.name,
         modinfo =3D modinfo.buffer,
+        params =3D modinfo.param_buffer,
         initcall_section =3D ".initcall6.init"
     )
     .parse()
diff --git a/samples/rust/rust_minimal.rs b/samples/rust/rust_minimal.rs
index 2a9eaab62d1c..359e6d8ec983 100644
--- a/samples/rust/rust_minimal.rs
+++ b/samples/rust/rust_minimal.rs
@@ -10,6 +10,12 @@
     author: "Rust for Linux Contributors",
     description: "Rust minimal sample",
     license: "GPL",
+    params: {
+        test_parameter: i64 {
+            default: 1,
+            description: "This parameter has a default of 1",
+        },
+    },
 }
=20
 struct RustMinimal {
@@ -20,6 +26,10 @@ impl kernel::Module for RustMinimal {
     fn init(_module: &'static ThisModule) -> Result<Self> {
         pr_info!("Rust minimal sample (init)\n");
         pr_info!("Am I built-in? {}\n", !cfg!(MODULE));
+        pr_info!(
+            "My parameter: {}\n",
+            *module_parameters::test_parameter.read()
+        );
=20
         let mut numbers =3D Vec::new();
         numbers.push(72, GFP_KERNEL)?;

base-commit: f2661062f16b2de5d7b6a5c42a9a5c96326b8454
--=20
2.45.2


.

From: Aditya Garg <gargaditya08@live.com>
To: Jiri Kosina <jikos@kernel.org>, "bentiss@kernel.org" <bentiss@kernel.org>
CC: "linux-input@vger.kernel.org" <linux-input@vger.kernel.org>, Linux Kernel
 Mailing List <linux-kernel@vger.kernel.org>, Orlando Chamberlain
	<orlandoch.dev@gmail.com>, Kerem Karabay <kekrby@gmail.com>
Subject: [PATCH] HID: core: add helper for finding a field with a certain
 usage
Date: Fri, 5 Jul 2024 11:17:42 +0000
Message-ID: <3EA8F21F-2C0A-49DB-BD23-224CE9D65A0D@live.com>
Accept-Language: en-IN, en-US
Content-Language: en-US
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1269109
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-input
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

From: Kerem Karabay <kekrby@gmail.com>

This helper will allow HID drivers to easily determine if they should
bind to a hid_device by checking for the prescence of a certain field
when its ID is not enough, which can be the case on USB devices with
multiple interfaces and/or configurations.

Signed-off-by: Kerem Karabay <kekrby@gmail.com>
Signed-off-by: Aditya Garg <gargaditya08@live.com>
---
 drivers/hid/hid-core.c          | 25 +++++++++++++++++++++++++
 drivers/hid/hid-google-hammer.c | 27 ++-------------------------
 include/linux/hid.h             |  2 ++
 3 files changed, 29 insertions(+), 25 deletions(-)

diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
index 8992e3c1e..6395bdc2e 100644
--- a/drivers/hid/hid-core.c
+++ b/drivers/hid/hid-core.c
@@ -1906,6 +1906,31 @@ int hid_set_field(struct hid_field *field, unsigned =
offset, __s32 value)
 }
 EXPORT_SYMBOL_GPL(hid_set_field);
=20
+struct hid_field *hid_find_field(struct hid_device *hdev, unsigned int rep=
ort_type,
+				 unsigned int application, unsigned int usage)
+{
+	struct list_head *report_list =3D &hdev->report_enum[report_type].report_=
list;
+	struct hid_report *report;
+	int i, j;
+
+	list_for_each_entry(report, report_list, list) {
+		if (report->application !=3D application)
+			continue;
+
+		for (i =3D 0; i < report->maxfield; i++) {
+			struct hid_field *field =3D report->field[i];
+
+			for (j =3D 0; j < field->maxusage; j++) {
+				if (field->usage[j].hid =3D=3D usage)
+					return field;
+			}
+		}
+	}
+
+	return NULL;
+}
+EXPORT_SYMBOL_GPL(hid_find_field);
+
 static struct hid_report *hid_get_report(struct hid_report_enum *report_en=
um,
 		const u8 *data)
 {
diff --git a/drivers/hid/hid-google-hammer.c b/drivers/hid/hid-google-hamme=
r.c
index c6bdb9c4e..fba3652aa 100644
--- a/drivers/hid/hid-google-hammer.c
+++ b/drivers/hid/hid-google-hammer.c
@@ -419,38 +419,15 @@ static int hammer_event(struct hid_device *hid, struc=
t hid_field *field,
 	return 0;
 }
=20
-static bool hammer_has_usage(struct hid_device *hdev, unsigned int report_=
type,
-			unsigned application, unsigned usage)
-{
-	struct hid_report_enum *re =3D &hdev->report_enum[report_type];
-	struct hid_report *report;
-	int i, j;
-
-	list_for_each_entry(report, &re->report_list, list) {
-		if (report->application !=3D application)
-			continue;
-
-		for (i =3D 0; i < report->maxfield; i++) {
-			struct hid_field *field =3D report->field[i];
-
-			for (j =3D 0; j < field->maxusage; j++)
-				if (field->usage[j].hid =3D=3D usage)
-					return true;
-		}
-	}
-
-	return false;
-}
-
 static bool hammer_has_folded_event(struct hid_device *hdev)
 {
-	return hammer_has_usage(hdev, HID_INPUT_REPORT,
+	return !!hid_find_field(hdev, HID_INPUT_REPORT,
 				HID_GD_KEYBOARD, HID_USAGE_KBD_FOLDED);
 }
=20
 static bool hammer_has_backlight_control(struct hid_device *hdev)
 {
-	return hammer_has_usage(hdev, HID_OUTPUT_REPORT,
+	return !!hid_find_field(hdev, HID_OUTPUT_REPORT,
 				HID_GD_KEYBOARD, HID_AD_BRIGHTNESS);
 }
=20
diff --git a/include/linux/hid.h b/include/linux/hid.h
index 39e21e381..9520fdfdd 100644
--- a/include/linux/hid.h
+++ b/include/linux/hid.h
@@ -913,6 +913,8 @@ extern void hidinput_report_event(struct hid_device *hi=
d, struct hid_report *rep
 extern int hidinput_connect(struct hid_device *hid, unsigned int force);
 extern void hidinput_disconnect(struct hid_device *);
=20
+struct hid_field *hid_find_field(struct hid_device *hdev, unsigned int rep=
ort_type,
+				 unsigned int application, unsigned int usage);
 int hid_set_field(struct hid_field *, unsigned, __s32);
 int hid_input_report(struct hid_device *hid, enum hid_report_type type, u8=
 *data, u32 size,
 		     int interrupt);
--=20
2.42.0

.

From: Aditya Garg <gargaditya08@live.com>
To: "gregkh@linuxfoundation.org" <gregkh@linuxfoundation.org>,
	"oneukum@suse.com" <oneukum@suse.com>, "stern@rowland.harvard.edu"
	<stern@rowland.harvard.edu>
CC: "linux-usb@vger.kernel.org" <linux-usb@vger.kernel.org>, Linux Kernel
 Mailing List <linux-kernel@vger.kernel.org>, "linux-scsi@vger.kernel.org"
	<linux-scsi@vger.kernel.org>, "usb-storage@lists.one-eyed-alien.net"
	<usb-storage@lists.one-eyed-alien.net>
Subject: [PATCH] USB: core: add 'shutdown' callback to usb_driver
Date: Fri, 5 Jul 2024 11:21:06 +0000
Message-ID: <7332D45F-9BD3-4D0E-A5AF-9845353415A9@live.com>
Accept-Language: en-IN, en-US
Content-Language: en-US
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1269112
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-scsi,org.kernel.vger.linux-usb
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

From: Kerem Karabay <kekrby@gmail.com>

This simplifies running code on shutdown for USB drivers.

Signed-off-by: Kerem Karabay <kekrby@gmail.com>
Signed-off-by: Aditya Garg <gargaditya08@live.com>
---
 drivers/usb/core/driver.c | 14 ++++++++++++++
 drivers/usb/storage/uas.c |  5 ++---
 include/linux/usb.h       |  3 +++
 3 files changed, 19 insertions(+), 3 deletions(-)

diff --git a/drivers/usb/core/driver.c b/drivers/usb/core/driver.c
index f58a0299f..dc0f86376 100644
--- a/drivers/usb/core/driver.c
+++ b/drivers/usb/core/driver.c
@@ -514,6 +514,19 @@ static int usb_unbind_interface(struct device *dev)
 	return 0;
 }
=20
+static void usb_shutdown_interface(struct device *dev)
+{
+	struct usb_interface *intf =3D to_usb_interface(dev);
+	struct usb_driver *driver;
+
+	if (!dev->driver)
+		return;
+
+	driver =3D to_usb_driver(dev->driver);
+	if (driver->shutdown)
+		driver->shutdown(intf);
+}
+
 /**
  * usb_driver_claim_interface - bind a driver to an interface
  * @driver: the driver to be bound
@@ -1053,6 +1066,7 @@ int usb_register_driver(struct usb_driver *new_driver=
, struct module *owner,
 	new_driver->driver.bus =3D &usb_bus_type;
 	new_driver->driver.probe =3D usb_probe_interface;
 	new_driver->driver.remove =3D usb_unbind_interface;
+	new_driver->driver.shutdown =3D usb_shutdown_interface;
 	new_driver->driver.owner =3D owner;
 	new_driver->driver.mod_name =3D mod_name;
 	new_driver->driver.dev_groups =3D new_driver->dev_groups;
diff --git a/drivers/usb/storage/uas.c b/drivers/usb/storage/uas.c
index 2583ee981..591fa0379 100644
--- a/drivers/usb/storage/uas.c
+++ b/drivers/usb/storage/uas.c
@@ -1221,9 +1221,8 @@ static void uas_disconnect(struct usb_interface *intf=
)
  * hang on reboot when the device is still in uas mode. Note the reset is
  * necessary as some devices won't revert to usb-storage mode without it.
  */
-static void uas_shutdown(struct device *dev)
+static void uas_shutdown(struct usb_interface *intf)
 {
-	struct usb_interface *intf =3D to_usb_interface(dev);
 	struct usb_device *udev =3D interface_to_usbdev(intf);
 	struct Scsi_Host *shost =3D usb_get_intfdata(intf);
 	struct uas_dev_info *devinfo =3D (struct uas_dev_info *)shost->hostdata;
@@ -1246,7 +1245,7 @@ static struct usb_driver uas_driver =3D {
 	.suspend =3D uas_suspend,
 	.resume =3D uas_resume,
 	.reset_resume =3D uas_reset_resume,
-	.driver.shutdown =3D uas_shutdown,
+	.shutdown =3D uas_shutdown,
 	.id_table =3D uas_usb_ids,
 };
=20
diff --git a/include/linux/usb.h b/include/linux/usb.h
index 25f8e62a3..5f3ae2186 100644
--- a/include/linux/usb.h
+++ b/include/linux/usb.h
@@ -1194,6 +1194,7 @@ struct usbdrv_wrap {
  *	post_reset method is called.
  * @post_reset: Called by usb_reset_device() after the device
  *	has been reset
+ * @shutdown: Called at shut-down time to quiesce the device.
  * @id_table: USB drivers use ID table to support hotplugging.
  *	Export this with MODULE_DEVICE_TABLE(usb,...).  This must be set
  *	or your driver's probe function will never get called.
@@ -1245,6 +1246,8 @@ struct usb_driver {
 	int (*pre_reset)(struct usb_interface *intf);
 	int (*post_reset)(struct usb_interface *intf);
=20
+	void (*shutdown)(struct usb_interface *intf);
+
 	const struct usb_device_id *id_table;
 	const struct attribute_group **dev_groups;
=20
--=20
2.42.0

.

X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
Mime-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=UTF-8
Date: Fri, 05 Jul 2024 14:22:00 +0300
Message-Id: <D2HKE740MWCK.2O7S4KF56L929@kernel.org>
Cc: "Peter Huewe" <peterhuewe@gmx.de>, "Jason Gunthorpe" <jgg@ziepe.ca>,
 "David Howells" <dhowells@redhat.com>, <keyrings@vger.kernel.org>,
 <linux-integrity@vger.kernel.org>, <linux-kernel@vger.kernel.org>, "James
 Bottomley" <James.Bottomley@HansenPartnership.com>, "Michael Ellerman"
 <mpe@ellerman.id.au>, "Stefan Berger" <stefanb@linux.ibm.com>
Subject: [GIT PULL] TPM DEVICE DRIVER: tpmdd-next-6.10-rc7
From: "Jarkko Sakkinen" <jarkko@kernel.org>
To: "Linus Torvalds" <torvalds@linux-foundation.org>
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1269114
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.keyrings,org.kernel.vger.linux-integrity
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

The following changes since commit 661e504db04c6b7278737ee3a9116738536b4ed4=
:

  Merge tag 'for-6.10-rc6-tag' of git://git.kernel.org/pub/scm/linux/kernel=
/git/kdave/linux (2024-07-04 10:27:37 -0700)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/jarkko/linux-tpmdd.git tags=
/tpmdd-next-6.10-rc7

for you to fetch changes up to 7ca110f2679b7d1f3ac1afc90e6ffbf0af3edf0d:

  tpm: Address !chip->auth in tpm_buf_append_hmac_session*() (2024-07-05 02=
:12:27 +0300)

----------------------------------------------------------------
Hi

Contains the fixes for !chip->auth condition, preventing the breakage
of:

* tpm_ftpm_tee.c
* tpm_i2c_nuvoton.c
* tpm_ibmvtpm.c
* tpm_tis_i2c_cr50.c
* tpm_vtpm_proxy.c

All drivers will continue to work as they did in 6.9, except a single
warning (dev_warn() not WARN()) is printed to klog only to inform that
authenticated sessions are not enabled.

BR, Jarkko

Link: https://lore.kernel.org/linux-integrity/20240704185313.224318-1-jarkk=
o@kernel.org/

----------------------------------------------------------------
Jarkko Sakkinen (3):
      tpm: Address !chip->auth in tpm2_*_auth_session()
      tpm: Address !chip->auth in tpm_buf_append_name()
      tpm: Address !chip->auth in tpm_buf_append_hmac_session*()

 drivers/char/tpm/Makefile        |   2 +-
 drivers/char/tpm/tpm2-sessions.c | 419 ++++++++++++++++++++++-------------=
----
 include/linux/tpm.h              |  81 +++-----
 3 files changed, 269 insertions(+), 233 deletions(-)
.

From: Stefano Garzarella <sgarzare@redhat.com>
To: virtualization@lists.linux.dev
Cc: Xuan Zhuo <xuanzhuo@linux.alibaba.com>,
	Jason Wang <jasowang@redhat.com>,
	linux-kernel@vger.kernel.org,
	"Michael S. Tsirkin" <mst@redhat.com>,
	=?UTF-8?q?Eugenio=20P=C3=A9rez?= <eperezma@redhat.com>,
	Stefano Garzarella <sgarzare@redhat.com>
Subject: [PATCH] vdpa_sim_blk: add `capacity` module parameter
Date: Fri,  5 Jul 2024 13:28:21 +0200
Message-ID: <20240705112821.144819-1-sgarzare@redhat.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1269118
Newsgroups: org.kernel.vger.linux-kernel,dev.linux.lists.virtualization
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

The vDPA block simulator always allocated a 128 MiB ram-disk, but some
filesystems (e.g. XFS) may require larger minimum sizes (see
https://issues.redhat.com/browse/RHEL-45951).

So to allow us to test these filesystems, let's add a module parameter
to control the size of the simulated virtio-blk devices.
The value is mapped directly to the `capacity` field of the virtio-blk
configuration space, so it must be expressed in sector numbers of 512
bytes.

The default value (0x40000) is the same as the previous value, so the
behavior without setting `capacity` remains unchanged.

Before this patch or with this patch without setting `capacity`:
  $ modprobe vdpa-sim-blk
  $ vdpa dev add mgmtdev vdpasim_blk name blk0
  virtio_blk virtio6: 1/0/0 default/read/poll queues
  virtio_blk virtio6: [vdb] 262144 512-byte logical blocks (134 MB/128 MiB)

After this patch:
  $ modprobe vdpa-sim-blk capacity=614400
  $ vdpa dev add mgmtdev vdpasim_blk name blk0
  virtio_blk virtio6: 1/0/0 default/read/poll queues
  virtio_blk virtio6: [vdb] 614400 512-byte logical blocks (315 MB/300 MiB)

Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
---
 drivers/vdpa/vdpa_sim/vdpa_sim_blk.c | 25 +++++++++++++------------
 1 file changed, 13 insertions(+), 12 deletions(-)

diff --git a/drivers/vdpa/vdpa_sim/vdpa_sim_blk.c b/drivers/vdpa/vdpa_sim/vdpa_sim_blk.c
index b137f3679343..18f390149836 100644
--- a/drivers/vdpa/vdpa_sim/vdpa_sim_blk.c
+++ b/drivers/vdpa/vdpa_sim/vdpa_sim_blk.c
@@ -33,7 +33,6 @@
 				 (1ULL << VIRTIO_BLK_F_DISCARD)  | \
 				 (1ULL << VIRTIO_BLK_F_WRITE_ZEROES))
 
-#define VDPASIM_BLK_CAPACITY	0x40000
 #define VDPASIM_BLK_SIZE_MAX	0x1000
 #define VDPASIM_BLK_SEG_MAX	32
 #define VDPASIM_BLK_DWZ_MAX_SECTORS UINT_MAX
@@ -43,6 +42,10 @@
 #define VDPASIM_BLK_AS_NUM	1
 #define VDPASIM_BLK_GROUP_NUM	1
 
+static unsigned long capacity = 0x40000;
+module_param(capacity, ulong, 0444);
+MODULE_PARM_DESC(capacity, "virtio-blk device capacity (in 512-byte sectors)");
+
 struct vdpasim_blk {
 	struct vdpasim vdpasim;
 	void *buffer;
@@ -79,10 +82,10 @@ static void vdpasim_blk_buffer_unlock(struct vdpasim_blk *blk)
 static bool vdpasim_blk_check_range(struct vdpasim *vdpasim, u64 start_sector,
 				    u64 num_sectors, u64 max_sectors)
 {
-	if (start_sector > VDPASIM_BLK_CAPACITY) {
+	if (start_sector > capacity) {
 		dev_dbg(&vdpasim->vdpa.dev,
-			"starting sector exceeds the capacity - start: 0x%llx capacity: 0x%x\n",
-			start_sector, VDPASIM_BLK_CAPACITY);
+			"starting sector exceeds the capacity - start: 0x%llx capacity: 0x%lx\n",
+			start_sector, capacity);
 	}
 
 	if (num_sectors > max_sectors) {
@@ -92,10 +95,10 @@ static bool vdpasim_blk_check_range(struct vdpasim *vdpasim, u64 start_sector,
 		return false;
 	}
 
-	if (num_sectors > VDPASIM_BLK_CAPACITY - start_sector) {
+	if (num_sectors > capacity - start_sector) {
 		dev_dbg(&vdpasim->vdpa.dev,
-			"request exceeds the capacity - start: 0x%llx num: 0x%llx capacity: 0x%x\n",
-			start_sector, num_sectors, VDPASIM_BLK_CAPACITY);
+			"request exceeds the capacity - start: 0x%llx num: 0x%llx capacity: 0x%lx\n",
+			start_sector, num_sectors, capacity);
 		return false;
 	}
 
@@ -369,7 +372,7 @@ static void vdpasim_blk_get_config(struct vdpasim *vdpasim, void *config)
 
 	memset(config, 0, sizeof(struct virtio_blk_config));
 
-	blk_config->capacity = cpu_to_vdpasim64(vdpasim, VDPASIM_BLK_CAPACITY);
+	blk_config->capacity = cpu_to_vdpasim64(vdpasim, capacity);
 	blk_config->size_max = cpu_to_vdpasim32(vdpasim, VDPASIM_BLK_SIZE_MAX);
 	blk_config->seg_max = cpu_to_vdpasim32(vdpasim, VDPASIM_BLK_SEG_MAX);
 	blk_config->num_queues = cpu_to_vdpasim16(vdpasim, VDPASIM_BLK_VQ_NUM);
@@ -437,8 +440,7 @@ static int vdpasim_blk_dev_add(struct vdpa_mgmt_dev *mdev, const char *name,
 	if (blk->shared_backend) {
 		blk->buffer = shared_buffer;
 	} else {
-		blk->buffer = kvzalloc(VDPASIM_BLK_CAPACITY << SECTOR_SHIFT,
-				       GFP_KERNEL);
+		blk->buffer = kvzalloc(capacity << SECTOR_SHIFT, GFP_KERNEL);
 		if (!blk->buffer) {
 			ret = -ENOMEM;
 			goto put_dev;
@@ -495,8 +497,7 @@ static int __init vdpasim_blk_init(void)
 		goto parent_err;
 
 	if (shared_backend) {
-		shared_buffer = kvzalloc(VDPASIM_BLK_CAPACITY << SECTOR_SHIFT,
-					 GFP_KERNEL);
+		shared_buffer = kvzalloc(capacity << SECTOR_SHIFT, GFP_KERNEL);
 		if (!shared_buffer) {
 			ret = -ENOMEM;
 			goto mgmt_dev_err;
-- 
2.45.2

.

From: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
To: Sebastian Reichel <sre@kernel.org>,
	Nathan Chancellor <nathan@kernel.org>,
	Nick Desaulniers <ndesaulniers@google.com>,
	Bill Wendling <morbo@google.com>,
	Justin Stitt <justinstitt@google.com>,
	linux-pm@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	llvm@lists.linux.dev
Cc: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Subject: [PATCH 1/2] power: supply: core: simplify with cleanup.h
Date: Fri,  5 Jul 2024 13:31:12 +0200
Message-ID: <20240705113113.42851-1-krzysztof.kozlowski@linaro.org>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1269121
Newsgroups: org.kernel.vger.linux-kernel,dev.linux.lists.llvm,org.kernel.vger.linux-pm
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Allocate the memory with scoped/cleanup.h to reduce error handling and
make the code a bit simpler.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
---
 drivers/power/supply/power_supply_core.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/drivers/power/supply/power_supply_core.c b/drivers/power/supply/power_supply_core.c
index 8f6025acd10a..2b845ac51157 100644
--- a/drivers/power/supply/power_supply_core.c
+++ b/drivers/power/supply/power_supply_core.c
@@ -9,6 +9,7 @@
  *  Modified: 2004, Oct     Szabolcs Gyurko
  */
 
+#include <linux/cleanup.h>
 #include <linux/module.h>
 #include <linux/types.h>
 #include <linux/init.h>
@@ -756,10 +757,10 @@ int power_supply_get_battery_info(struct power_supply *psy,
 
 	for (index = 0; index < len; index++) {
 		struct power_supply_battery_ocv_table *table;
-		char *propname;
 		int i, tab_len, size;
 
-		propname = kasprintf(GFP_KERNEL, "ocv-capacity-table-%d", index);
+		char *propname __free(kfree) = kasprintf(GFP_KERNEL, "ocv-capacity-table-%d",
+							 index);
 		if (!propname) {
 			power_supply_put_battery_info(psy, info);
 			err = -ENOMEM;
@@ -768,13 +769,11 @@ int power_supply_get_battery_info(struct power_supply *psy,
 		list = of_get_property(battery_np, propname, &size);
 		if (!list || !size) {
 			dev_err(&psy->dev, "failed to get %s\n", propname);
-			kfree(propname);
 			power_supply_put_battery_info(psy, info);
 			err = -EINVAL;
 			goto out_put_node;
 		}
 
-		kfree(propname);
 		tab_len = size / (2 * sizeof(__be32));
 		info->ocv_table_size[index] = tab_len;
 
-- 
2.43.0

.

From: Aleksandr Mishin <amishin@t-argos.ru>
To: Rajmohan Mani <rajmohan.mani@intel.com>
CC: Aleksandr Mishin <amishin@t-argos.ru>, "Rafael J. Wysocki"
	<rafael@kernel.org>, Len Brown <lenb@kernel.org>, Andy Shevchenko
	<andy@kernel.org>, Mika Westerberg <mika.westerberg@linux.intel.com>, Sakari
 Ailus <sakari.ailus@linux.intel.com>, <linux-acpi@vger.kernel.org>,
	<linux-kernel@vger.kernel.org>, <lvc-project@linuxtesting.org>
Subject: [PATCH] ACPI / PMIC: Remove unneeded check in tps68470_pmic_opregion_probe()
Date: Fri, 5 Jul 2024 14:34:34 +0300
Message-ID: <20240705113434.17249-1-amishin@t-argos.ru>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-KSMG-Rule-ID: 1
X-KSMG-Message-Action: clean
X-KSMG-AntiSpam-Lua-Profiles: 186342 [Jul 05 2024]
X-KSMG-AntiSpam-Version: 6.1.0.4
X-KSMG-AntiSpam-Envelope-From: amishin@t-argos.ru
X-KSMG-AntiSpam-Rate: 0
X-KSMG-AntiSpam-Status: not_detected
X-KSMG-AntiSpam-Method: none
X-KSMG-AntiSpam-Auth: dkim=none
X-KSMG-AntiSpam-Info: LuaCore: 21 0.3.21 ebee5449fc125b2da45f1a6a6bc2c5c0c3ad0e05, {Tracking_from_domain_doesnt_match_to}, 127.0.0.199:7.1.2;mx1.t-argos.ru.ru:7.1.1;d41d8cd98f00b204e9800998ecf8427e.com:7.1.1;t-argos.ru:7.1.1, FromAlignment: s
X-MS-Exchange-Organization-SCL: -1
X-KSMG-AntiSpam-Interceptor-Info: scan successful
X-KSMG-AntiPhishing: Clean, bases: 2024/07/05 10:17:00
X-KSMG-AntiVirus: Kaspersky Secure Mail Gateway, version 1.1.2.30, bases: 2024/07/05 10:39:00 #25854340
X-KSMG-AntiVirus-Status: Clean, skipped
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1269130
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-acpi
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

In tps68470_pmic_opregion_probe() pointer 'dev' is compared to NULL which
is useless.

Fix this issue by removing unneeded check.

Found by Linux Verification Center (linuxtesting.org) with SVACE.

Fixes: e13452ac3790 ("ACPI / PMIC: Add TI PMIC TPS68470 operation region driver")
Signed-off-by: Aleksandr Mishin <amishin@t-argos.ru>
---
 drivers/acpi/pmic/tps68470_pmic.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/acpi/pmic/tps68470_pmic.c b/drivers/acpi/pmic/tps68470_pmic.c
index ebd03e472955..f8de8d0a528b 100644
--- a/drivers/acpi/pmic/tps68470_pmic.c
+++ b/drivers/acpi/pmic/tps68470_pmic.c
@@ -376,7 +376,7 @@ static int tps68470_pmic_opregion_probe(struct platform_device *pdev)
 	struct tps68470_pmic_opregion *opregion;
 	acpi_status status;
 
-	if (!dev || !tps68470_regmap) {
+	if (!tps68470_regmap) {
 		dev_warn(dev, "dev or regmap is NULL\n");
 		return -EINVAL;
 	}
-- 
2.30.2

.

From: Aditya Garg <gargaditya08@live.com>
To: "maarten.lankhorst@linux.intel.com" <maarten.lankhorst@linux.intel.com>,
	"mripard@kernel.org" <mripard@kernel.org>, "tzimmermann@suse.de"
	<tzimmermann@suse.de>, "airlied@gmail.com" <airlied@gmail.com>,
	"daniel@ffwll.ch" <daniel@ffwll.ch>
CC: Orlando Chamberlain <orlandoch.dev@gmail.com>, Kerem Karabay
	<kekrby@gmail.com>, "dri-devel@lists.freedesktop.org"
	<dri-devel@lists.freedesktop.org>, Linux Kernel Mailing List
	<linux-kernel@vger.kernel.org>
Subject: [PATCH] drm/format-helper: Add conversion from XRGB8888 to BGR888
Date: Fri, 5 Jul 2024 11:38:49 +0000
Message-ID: <4C98332B-4E56-4314-8BDA-709AD3974899@live.com>
Accept-Language: en-IN, en-US
Content-Language: en-US
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1269133
Newsgroups: org.kernel.vger.linux-kernel
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

From: Kerem Karabay <kekrby@gmail.com>

Add XRGB8888 emulation helper for devices that only support BGR888.

Signed-off-by: Kerem Karabay <kekrby@gmail.com>
Signed-off-by: Aditya Garg <gargaditya08@live.com>
---
 drivers/gpu/drm/drm_format_helper.c           | 54 +++++++++++++
 .../gpu/drm/tests/drm_format_helper_test.c    | 81 +++++++++++++++++++
 include/drm/drm_format_helper.h               |  3 +
 3 files changed, 138 insertions(+)

diff --git a/drivers/gpu/drm/drm_format_helper.c b/drivers/gpu/drm/drm_form=
at_helper.c
index b1be458ed..28c0e76a1 100644
--- a/drivers/gpu/drm/drm_format_helper.c
+++ b/drivers/gpu/drm/drm_format_helper.c
@@ -702,6 +702,57 @@ void drm_fb_xrgb8888_to_rgb888(struct iosys_map *dst, =
const unsigned int *dst_pi
 }
 EXPORT_SYMBOL(drm_fb_xrgb8888_to_rgb888);
=20
+static void drm_fb_xrgb8888_to_bgr888_line(void *dbuf, const void *sbuf, u=
nsigned int pixels)
+{
+	u8 *dbuf8 =3D dbuf;
+	const __le32 *sbuf32 =3D sbuf;
+	unsigned int x;
+	u32 pix;
+
+	for (x =3D 0; x < pixels; x++) {
+		pix =3D le32_to_cpu(sbuf32[x]);
+		/* write red-green-blue to output in little endianness */
+		*dbuf8++ =3D (pix & 0x00FF0000) >> 16;
+		*dbuf8++ =3D (pix & 0x0000FF00) >> 8;
+		*dbuf8++ =3D (pix & 0x000000FF) >> 0;
+	}
+}
+
+/**
+ * drm_fb_xrgb8888_to_bgr888 - Convert XRGB8888 to BGR888 clip buffer
+ * @dst: Array of BGR888 destination buffers
+ * @dst_pitch: Array of numbers of bytes between the start of two consecut=
ive scanlines
+ *             within @dst; can be NULL if scanlines are stored next to ea=
ch other.
+ * @src: Array of XRGB8888 source buffers
+ * @fb: DRM framebuffer
+ * @clip: Clip rectangle area to copy
+ * @state: Transform and conversion state
+ *
+ * This function copies parts of a framebuffer to display memory and conve=
rts the
+ * color format during the process. Destination and framebuffer formats mu=
st match. The
+ * parameters @dst, @dst_pitch and @src refer to arrays. Each array must h=
ave at
+ * least as many entries as there are planes in @fb's format. Each entry s=
tores the
+ * value for the format's respective color plane at the same index.
+ *
+ * This function does not apply clipping on @dst (i.e. the destination is =
at the
+ * top-left corner).
+ *
+ * Drivers can use this function for BGR888 devices that don't natively
+ * support XRGB8888.
+ */
+void drm_fb_xrgb8888_to_bgr888(struct iosys_map *dst, const unsigned int *=
dst_pitch,
+			       const struct iosys_map *src, const struct drm_framebuffer *fb,
+			       const struct drm_rect *clip, struct drm_format_conv_state *state=
)
+{
+	static const u8 dst_pixsize[DRM_FORMAT_MAX_PLANES] =3D {
+		3,
+	};
+
+	drm_fb_xfrm(dst, dst_pitch, dst_pixsize, src, fb, clip, false, state,
+		    drm_fb_xrgb8888_to_bgr888_line);
+}
+EXPORT_SYMBOL(drm_fb_xrgb8888_to_bgr888);
+
 static void drm_fb_xrgb8888_to_argb8888_line(void *dbuf, const void *sbuf,=
 unsigned int pixels)
 {
 	__le32 *dbuf32 =3D dbuf;
@@ -1035,6 +1086,9 @@ int drm_fb_blit(struct iosys_map *dst, const unsigned=
 int *dst_pitch, uint32_t d
 		} else if (dst_format =3D=3D DRM_FORMAT_RGB888) {
 			drm_fb_xrgb8888_to_rgb888(dst, dst_pitch, src, fb, clip, state);
 			return 0;
+		} else if (dst_format =3D=3D DRM_FORMAT_BGR888) {
+			drm_fb_xrgb8888_to_bgr888(dst, dst_pitch, src, fb, clip, state);
+			return 0;
 		} else if (dst_format =3D=3D DRM_FORMAT_ARGB8888) {
 			drm_fb_xrgb8888_to_argb8888(dst, dst_pitch, src, fb, clip, state);
 			return 0;
diff --git a/drivers/gpu/drm/tests/drm_format_helper_test.c b/drivers/gpu/d=
rm/tests/drm_format_helper_test.c
index 08992636e..e54f0f6e7 100644
--- a/drivers/gpu/drm/tests/drm_format_helper_test.c
+++ b/drivers/gpu/drm/tests/drm_format_helper_test.c
@@ -60,6 +60,11 @@ struct convert_to_rgb888_result {
 	const u8 expected[TEST_BUF_SIZE];
 };
=20
+struct convert_to_bgr888_result {
+	unsigned int dst_pitch;
+	const u8 expected[TEST_BUF_SIZE];
+};
+
 struct convert_to_argb8888_result {
 	unsigned int dst_pitch;
 	const u32 expected[TEST_BUF_SIZE];
@@ -107,6 +112,7 @@ struct convert_xrgb8888_case {
 	struct convert_to_argb1555_result argb1555_result;
 	struct convert_to_rgba5551_result rgba5551_result;
 	struct convert_to_rgb888_result rgb888_result;
+	struct convert_to_bgr888_result bgr888_result;
 	struct convert_to_argb8888_result argb8888_result;
 	struct convert_to_xrgb2101010_result xrgb2101010_result;
 	struct convert_to_argb2101010_result argb2101010_result;
@@ -151,6 +157,10 @@ static struct convert_xrgb8888_case convert_xrgb8888_c=
ases[] =3D {
 			.dst_pitch =3D TEST_USE_DEFAULT_PITCH,
 			.expected =3D { 0x00, 0x00, 0xFF },
 		},
+		.bgr888_result =3D {
+			.dst_pitch =3D TEST_USE_DEFAULT_PITCH,
+			.expected =3D { 0xFF, 0x00, 0x00 },
+		},
 		.argb8888_result =3D {
 			.dst_pitch =3D TEST_USE_DEFAULT_PITCH,
 			.expected =3D { 0xFFFF0000 },
@@ -217,6 +227,10 @@ static struct convert_xrgb8888_case convert_xrgb8888_c=
ases[] =3D {
 			.dst_pitch =3D TEST_USE_DEFAULT_PITCH,
 			.expected =3D { 0x00, 0x00, 0xFF },
 		},
+		.bgr888_result =3D {
+			.dst_pitch =3D TEST_USE_DEFAULT_PITCH,
+			.expected =3D { 0xFF, 0x00, 0x00 },
+		},
 		.argb8888_result =3D {
 			.dst_pitch =3D TEST_USE_DEFAULT_PITCH,
 			.expected =3D { 0xFFFF0000 },
@@ -330,6 +344,15 @@ static struct convert_xrgb8888_case convert_xrgb8888_c=
ases[] =3D {
 				0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
 			},
 		},
+		.bgr888_result =3D {
+			.dst_pitch =3D TEST_USE_DEFAULT_PITCH,
+			.expected =3D {
+				0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00,
+				0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00,
+				0x00, 0x00, 0xFF, 0xFF, 0x00, 0xFF,
+				0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF,
+			},
+		},
 		.argb8888_result =3D {
 			.dst_pitch =3D TEST_USE_DEFAULT_PITCH,
 			.expected =3D {
@@ -468,6 +491,17 @@ static struct convert_xrgb8888_case convert_xrgb8888_c=
ases[] =3D {
 				0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 			},
 		},
+		.bgr888_result =3D {
+			.dst_pitch =3D 15,
+			.expected =3D {
+				0x0E, 0x44, 0x9C, 0x11, 0x4D, 0x05, 0xA8, 0xF3, 0x03,
+				0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0x6C, 0xF0, 0x73, 0x0E, 0x44, 0x9C, 0x11, 0x4D, 0x05,
+				0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+				0xA8, 0x03, 0x03, 0x6C, 0xF0, 0x73, 0x0E, 0x44, 0x9C,
+				0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+			},
+		},
 		.argb8888_result =3D {
 			.dst_pitch =3D 20,
 			.expected =3D {
@@ -914,6 +948,52 @@ static void drm_test_fb_xrgb8888_to_rgb888(struct kuni=
t *test)
 	KUNIT_EXPECT_MEMEQ(test, buf, result->expected, dst_size);
 }
=20
+static void drm_test_fb_xrgb8888_to_bgr888(struct kunit *test)
+{
+	const struct convert_xrgb8888_case *params =3D test->param_value;
+	const struct convert_to_bgr888_result *result =3D &params->bgr888_result;
+	size_t dst_size;
+	u8 *buf =3D NULL;
+	__le32 *xrgb8888 =3D NULL;
+	struct iosys_map dst, src;
+
+	struct drm_framebuffer fb =3D {
+		.format =3D drm_format_info(DRM_FORMAT_XRGB8888),
+		.pitches =3D { params->pitch, 0, 0 },
+	};
+
+	dst_size =3D conversion_buf_size(DRM_FORMAT_BGR888, result->dst_pitch,
+				       &params->clip, 0);
+	KUNIT_ASSERT_GT(test, dst_size, 0);
+
+	buf =3D kunit_kzalloc(test, dst_size, GFP_KERNEL);
+	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, buf);
+	iosys_map_set_vaddr(&dst, buf);
+
+	xrgb8888 =3D cpubuf_to_le32(test, params->xrgb8888, TEST_BUF_SIZE);
+	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, xrgb8888);
+	iosys_map_set_vaddr(&src, xrgb8888);
+
+	/*
+	 * BGR888 expected results are already in little-endian
+	 * order, so there's no need to convert the test output.
+	 */
+	drm_fb_xrgb8888_to_bgr888(&dst, &result->dst_pitch, &src, &fb, &params->c=
lip,
+				  &fmtcnv_state);
+	KUNIT_EXPECT_MEMEQ(test, buf, result->expected, dst_size);
+
+	buf =3D dst.vaddr; /* restore original value of buf */
+	memset(buf, 0, dst_size);
+
+	int blit_result =3D 0;
+
+	blit_result =3D drm_fb_blit(&dst, &result->dst_pitch, DRM_FORMAT_BGR888, =
&src, &fb, &params->clip,
+				  &fmtcnv_state);
+
+	KUNIT_EXPECT_FALSE(test, blit_result);
+	KUNIT_EXPECT_MEMEQ(test, buf, result->expected, dst_size);
+}
+
 static void drm_test_fb_xrgb8888_to_argb8888(struct kunit *test)
 {
 	const struct convert_xrgb8888_case *params =3D test->param_value;
@@ -1851,6 +1931,7 @@ static struct kunit_case drm_format_helper_test_cases=
[] =3D {
 	KUNIT_CASE_PARAM(drm_test_fb_xrgb8888_to_argb1555, convert_xrgb8888_gen_p=
arams),
 	KUNIT_CASE_PARAM(drm_test_fb_xrgb8888_to_rgba5551, convert_xrgb8888_gen_p=
arams),
 	KUNIT_CASE_PARAM(drm_test_fb_xrgb8888_to_rgb888, convert_xrgb8888_gen_par=
ams),
+	KUNIT_CASE_PARAM(drm_test_fb_xrgb8888_to_bgr888, convert_xrgb8888_gen_par=
ams),
 	KUNIT_CASE_PARAM(drm_test_fb_xrgb8888_to_argb8888, convert_xrgb8888_gen_p=
arams),
 	KUNIT_CASE_PARAM(drm_test_fb_xrgb8888_to_xrgb2101010, convert_xrgb8888_ge=
n_params),
 	KUNIT_CASE_PARAM(drm_test_fb_xrgb8888_to_argb2101010, convert_xrgb8888_ge=
n_params),
diff --git a/include/drm/drm_format_helper.h b/include/drm/drm_format_helpe=
r.h
index f13b34e0b..b53cf85ca 100644
--- a/include/drm/drm_format_helper.h
+++ b/include/drm/drm_format_helper.h
@@ -95,6 +95,9 @@ void drm_fb_xrgb8888_to_rgba5551(struct iosys_map *dst, c=
onst unsigned int *dst_
 void drm_fb_xrgb8888_to_rgb888(struct iosys_map *dst, const unsigned int *=
dst_pitch,
 			       const struct iosys_map *src, const struct drm_framebuffer *fb,
 			       const struct drm_rect *clip, struct drm_format_conv_state *state=
);
+void drm_fb_xrgb8888_to_bgr888(struct iosys_map *dst, const unsigned int *=
dst_pitch,
+			       const struct iosys_map *src, const struct drm_framebuffer *fb,
+			       const struct drm_rect *clip, struct drm_format_conv_state *state=
);
 void drm_fb_xrgb8888_to_argb8888(struct iosys_map *dst, const unsigned int=
 *dst_pitch,
 				 const struct iosys_map *src, const struct drm_framebuffer *fb,
 				 const struct drm_rect *clip, struct drm_format_conv_state *state);
--=20
2.34.1

.

From: Bard Liao <yung-chuan.liao@linux.intel.com>
To: linux-sound@vger.kernel.org,
	vkoul@kernel.org
Cc: vinod.koul@linaro.org,
	linux-kernel@vger.kernel.org,
	pierre-louis.bossart@linux.intel.com,
	bard.liao@intel.com
Subject: [PATCH] soundwire: intel_auxdevice: add cs42l43 codec to wake_capable_list
Date: Fri,  5 Jul 2024 11:43:05 +0000
Message-Id: <20240705114305.160233-1-yung-chuan.liao@linux.intel.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1269134
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-sound
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

cs42l43 has wake capability. Add it to the wake_capable_list.

Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
---
 drivers/soundwire/intel_auxdevice.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/soundwire/intel_auxdevice.c b/drivers/soundwire/intel_auxdevice.c
index 54cb455ed870..b109fa84d754 100644
--- a/drivers/soundwire/intel_auxdevice.c
+++ b/drivers/soundwire/intel_auxdevice.c
@@ -47,6 +47,7 @@ struct wake_capable_part {
 };
 
 static struct wake_capable_part wake_capable_list[] = {
+	{0x01fa, 0x4243},
 	{0x025d, 0x5682},
 	{0x025d, 0x700},
 	{0x025d, 0x711},
-- 
2.34.1

.

From: Piotr Wojtaszczyk <piotr.wojtaszczyk@timesys.com>
To: miquel.raynal@bootlin.com
Cc: Piotr Wojtaszczyk <piotr.wojtaszczyk@timesys.com>,
	stable@vger.kernel.org,
	Richard Weinberger <richard@nod.at>,
	Vignesh Raghavendra <vigneshr@ti.com>,
	Vladimir Zapolskiy <vz@mleia.com>,
	Arnd Bergmann <arnd@arndb.de>,
	Yangtao Li <frank.li@vivo.com>,
	Li Zetao <lizetao1@huawei.com>,
	linux-mtd@lists.infradead.org,
	linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org
Subject: [Patch v2] mtd: rawnand: lpx32xx: Fix dma_request_chan() error checks
Date: Fri,  5 Jul 2024 13:51:35 +0200
Message-Id: <20240705115139.126522-1-piotr.wojtaszczyk@timesys.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1269142
Newsgroups: org.kernel.vger.linux-kernel,org.infradead.lists.linux-arm-kernel,org.infradead.lists.linux-mtd,org.kernel.vger.stable
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

The dma_request_chan() returns error pointer in case of error, while
dma_request_channel() returns NULL in case of error therefore different
error checks are needed for the two.

Fixes: 7326d3fb1ee3 ("mtd: rawnand: lpx32xx: Request DMA channels using DT entries")
Signed-off-by: Piotr Wojtaszczyk <piotr.wojtaszczyk@timesys.com>
Cc: stable@vger.kernel.org
---
Changes v2:
 - Corrected 'Fixes' tag
 - add Cc: stable 

 drivers/mtd/nand/raw/lpc32xx_mlc.c | 2 +-
 drivers/mtd/nand/raw/lpc32xx_slc.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/mtd/nand/raw/lpc32xx_mlc.c b/drivers/mtd/nand/raw/lpc32xx_mlc.c
index 92cebe871bb4..b9c3adc54c01 100644
--- a/drivers/mtd/nand/raw/lpc32xx_mlc.c
+++ b/drivers/mtd/nand/raw/lpc32xx_mlc.c
@@ -575,7 +575,7 @@ static int lpc32xx_dma_setup(struct lpc32xx_nand_host *host)
 	dma_cap_mask_t mask;
 
 	host->dma_chan = dma_request_chan(mtd->dev.parent, "rx-tx");
-	if (!host->dma_chan) {
+	if (IS_ERR(host->dma_chan)) {
 		/* fallback to request using platform data */
 		if (!host->pdata || !host->pdata->dma_filter) {
 			dev_err(mtd->dev.parent, "no DMA platform data\n");
diff --git a/drivers/mtd/nand/raw/lpc32xx_slc.c b/drivers/mtd/nand/raw/lpc32xx_slc.c
index 3b7e3d259785..ade971e4cc3b 100644
--- a/drivers/mtd/nand/raw/lpc32xx_slc.c
+++ b/drivers/mtd/nand/raw/lpc32xx_slc.c
@@ -722,7 +722,7 @@ static int lpc32xx_nand_dma_setup(struct lpc32xx_nand_host *host)
 	dma_cap_mask_t mask;
 
 	host->dma_chan = dma_request_chan(mtd->dev.parent, "rx-tx");
-	if (!host->dma_chan) {
+	if (IS_ERR(host->dma_chan)) {
 		/* fallback to request using platform data */
 		if (!host->pdata || !host->pdata->dma_filter) {
 			dev_err(mtd->dev.parent, "no DMA platform data\n");
-- 
2.25.1

.

From: Mukesh Ojha <quic_mojha@quicinc.com>
To: <andersson@kernel.org>, <konrad.dybcio@linaro.org>, <robh@kernel.org>,
        <krzk+dt@kernel.org>, <conor+dt@kernel.org>
CC: <linux-arm-msm@vger.kernel.org>, <devicetree@vger.kernel.org>,
        <linux-kernel@vger.kernel.org>, Mukesh Ojha <quic_mojha@quicinc.com>
Subject: [PATCH] arm64: dts: qcom: sc7280: Enable download mode register write
Date: Fri, 5 Jul 2024 17:28:14 +0530
Message-ID: <20240705115814.1422995-1-quic_mojha@quicinc.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1269145
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-arm-msm,org.kernel.vger.linux-devicetree
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Enable download mode setting for sc7280 which can help collect
ramdump for this SoC.

Signed-off-by: Mukesh Ojha <quic_mojha@quicinc.com>
---
 arch/arm64/boot/dts/qcom/sc7280.dtsi | 1 +
 1 file changed, 1 insertion(+)

diff --git a/arch/arm64/boot/dts/qcom/sc7280.dtsi b/arch/arm64/boot/dts/qcom/sc7280.dtsi
index fc9ec367e3a5..e17c4c2401ac 100644
--- a/arch/arm64/boot/dts/qcom/sc7280.dtsi
+++ b/arch/arm64/boot/dts/qcom/sc7280.dtsi
@@ -710,6 +710,7 @@
 	firmware {
 		scm: scm {
 			compatible = "qcom,scm-sc7280", "qcom,scm";
+			qcom,dload-mode = <&tcsr 0x13000>;
 		};
 	};
 
-- 
2.7.4

.

From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
To: linux-block@vger.kernel.org,
	linux-kernel@vger.kernel.org
Cc: Jens Axboe <axboe@kernel.dk>,
	Mike Galbraith <umgwanakikbuti@gmail.com>,
	Minchan Kim <minchan@kernel.org>,
	Sergey Senozhatsky <senozhatsky@chromium.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Alexander Lobakin <aleksander.lobakin@intel.com>
Subject: [PATCH v3 0/3] zram: Replace bit spinlocks with a spinlock_t.
Date: Fri,  5 Jul 2024 14:49:13 +0200
Message-ID: <20240705125058.1564001-1-bigeasy@linutronix.de>
X-Mailing-List: linux-block@vger.kernel.org
List-Id: <linux-block.vger.kernel.org>
List-Subscribe: <mailto:linux-block+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-block+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Xref: photonic.trudheim.com org.kernel.vger.linux-block:93872 org.kernel.vger.linux-kernel:1269154
Newsgroups: org.kernel.vger.linux-block,org.kernel.vger.linux-kernel
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Hi,

this is follow up to the previous posting, making the lock
unconditionally. The original problem with bit spinlock is that it
disabled preemption and the following operations (within the atomic
section) perform operations that may sleep on PREEMPT_RT. Mike expressed
that he would like to keep using zram on PREEMPT_RT.

v2=E2=80=A6v3 https://lore.kernel.org/all/20240620153556.777272-1-bigeasy@l=
inutronix.de/
  - Do "size_t index" within the for loop.

v1=E2=80=A6v2: https://lore.kernel.org/all/20240619150814.BRAvaziM@linutron=
ix.de/:
  - Add the spinlock_t unconditionally
  - Remove ZRAM_LOCK since it has no user after the lock has been added.
  - Make zram_table_entry::flags an integer so struct zram_table_entry
    does not gain additional weight.

Sebastian

.

From: Mukesh Ojha <quic_mojha@quicinc.com>
To: <andersson@kernel.org>, <konrad.dybcio@linaro.org>
CC: <linux-arm-msm@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
        "Mukesh
 Ojha" <quic_mojha@quicinc.com>
Subject: [PATCH ] firmware: qcom: scm: Disable SDI and write no dump to download mode register
Date: Fri, 5 Jul 2024 17:36:23 +0530
Message-ID: <20240705120623.1424931-1-quic_mojha@quicinc.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1269160
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-arm-msm
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

SDI is enabled for most of the Qualcomm SoCs and as per commit
ff4aa3bc9825 ("firmware: qcom_scm: disable SDI if required")
it was recommended to disable SDI by mentioning it in device tree

However, for some cases download mode tcsr register already configured
from boot firmware to collect dumps and in such cases if download
mode is set to zero(nodump mode) from kernel side and SDI is disabled
via means of mentioning it in device tree we could end up with dump
collection.

To disable complete dump collection mode, SDI and dload mode register
need to be set no dump mode.

Signed-off-by: Mukesh Ojha <quic_mojha@quicinc.com>
---
 drivers/firmware/qcom/qcom_scm.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/firmware/qcom/qcom_scm.c b/drivers/firmware/qcom/qcom_scm.c
index 00c379a3cceb..2e10f75a9cfd 100644
--- a/drivers/firmware/qcom/qcom_scm.c
+++ b/drivers/firmware/qcom/qcom_scm.c
@@ -1954,14 +1954,12 @@ static int qcom_scm_probe(struct platform_device *pdev)
 	 * will cause the boot stages to enter download mode, unless
 	 * disabled below by a clean shutdown/reboot.
 	 */
-	if (download_mode)
-		qcom_scm_set_download_mode(true);
-
+	qcom_scm_set_download_mode(download_mode ? true : false);
 
 	/*
 	 * Disable SDI if indicated by DT that it is enabled by default.
 	 */
-	if (of_property_read_bool(pdev->dev.of_node, "qcom,sdi-enabled"))
+	if (of_property_read_bool(pdev->dev.of_node, "qcom,sdi-enabled") || !download_mode)
 		qcom_scm_disable_sdi();
 
 	ret = of_reserved_mem_device_init(__scm->dev);
-- 
2.34.1

.

From: Benjamin Tissoires <bentiss@kernel.org>
Date: Fri, 05 Jul 2024 14:09:25 +0200
Subject: [PATCH] HID: samples: fix the 2 struct_ops definitions
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20240705-for-6-11-bpf-v1-1-1960e3165c9e@kernel.org>
To: Jiri Kosina <jikos@kernel.org>
Cc: linux-input@vger.kernel.org, linux-kernel@vger.kernel.org, 
 Benjamin Tissoires <bentiss@kernel.org>
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1269161
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-input
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Turns out that this is not compiling anymore because the hid_bpf_ops
struct_ops definition had a change during the revisions.

Fixes: e342d6f6f7d8 ("HID: samples: convert the 2 HID-BPF samples into struct_ops")
Signed-off-by: Benjamin Tissoires <bentiss@kernel.org>
---
 samples/hid/hid_mouse.bpf.c        | 8 ++++----
 samples/hid/hid_surface_dial.bpf.c | 8 ++++----
 2 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/samples/hid/hid_mouse.bpf.c b/samples/hid/hid_mouse.bpf.c
index bd901fa855c9..f7f722dcf56d 100644
--- a/samples/hid/hid_mouse.bpf.c
+++ b/samples/hid/hid_mouse.bpf.c
@@ -67,7 +67,7 @@ static int hid_x_event(struct hid_bpf_ctx *hctx)
 	return 0;
 }
 
-SEC("struct_ops/device_event")
+SEC("struct_ops/hid_device_event")
 int BPF_PROG(hid_event, struct hid_bpf_ctx *hctx, enum hid_report_type type)
 {
 	int ret = hid_y_event(hctx);
@@ -79,7 +79,7 @@ int BPF_PROG(hid_event, struct hid_bpf_ctx *hctx, enum hid_report_type type)
 }
 
 
-SEC("struct_ops/rdesc_fixup")
+SEC("struct_ops/hid_rdesc_fixup")
 int BPF_PROG(hid_rdesc_fixup, struct hid_bpf_ctx *hctx)
 {
 	__u8 *data = hid_bpf_get_data(hctx, 0 /* offset */, 4096 /* size */);
@@ -121,8 +121,8 @@ int BPF_PROG(hid_rdesc_fixup, struct hid_bpf_ctx *hctx)
 
 SEC(".struct_ops.link")
 struct hid_bpf_ops mouse_invert = {
-	.rdesc_fixup = (void *)hid_rdesc_fixup,
-	.device_event = (void *)hid_event,
+	.hid_rdesc_fixup = (void *)hid_rdesc_fixup,
+	.hid_device_event = (void *)hid_event,
 };
 
 char _license[] SEC("license") = "GPL";
diff --git a/samples/hid/hid_surface_dial.bpf.c b/samples/hid/hid_surface_dial.bpf.c
index d8d0fb07391f..527d584812ab 100644
--- a/samples/hid/hid_surface_dial.bpf.c
+++ b/samples/hid/hid_surface_dial.bpf.c
@@ -10,7 +10,7 @@
 #define HID_UP_BUTTON		0x0009
 #define HID_GD_WHEEL		0x0038
 
-SEC("struct_ops/device_event")
+SEC("struct_ops/hid_device_event")
 int BPF_PROG(hid_event, struct hid_bpf_ctx *hctx)
 {
 	__u8 *data = hid_bpf_get_data(hctx, 0 /* offset */, 9 /* size */);
@@ -101,7 +101,7 @@ int set_haptic(struct haptic_syscall_args *args)
 }
 
 /* Convert REL_DIAL into REL_WHEEL */
-SEC("struct_ops/rdesc_fixup")
+SEC("struct_ops/hid_rdesc_fixup")
 int BPF_PROG(hid_rdesc_fixup, struct hid_bpf_ctx *hctx)
 {
 	__u8 *data = hid_bpf_get_data(hctx, 0 /* offset */, 4096 /* size */);
@@ -132,8 +132,8 @@ int BPF_PROG(hid_rdesc_fixup, struct hid_bpf_ctx *hctx)
 
 SEC(".struct_ops.link")
 struct hid_bpf_ops surface_dial = {
-	.rdesc_fixup = (void *)hid_rdesc_fixup,
-	.device_event = (void *)hid_event,
+	.hid_rdesc_fixup = (void *)hid_rdesc_fixup,
+	.hid_device_event = (void *)hid_event,
 };
 
 char _license[] SEC("license") = "GPL";

---
base-commit: f58e7f404da44c94e46bfe657b8707195aebd25a
change-id: 20240705-for-6-11-bpf-a349efc08df8

Best regards,
-- 
Benjamin Tissoires <bentiss@kernel.org>

.

From: Benjamin Hahn <B.Hahn@phytec.de>
Date: Fri, 5 Jul 2024 14:14:32 +0200
Subject: [PATCH v2] arm64: dts: freescale: imx8mp-phycore: Add no-eth
 overlay
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-ID: <20240705-bspimx8m-3180-v2-1-dc1a7e1689be@phytec.de>
To: Shawn Guo <shawnguo@kernel.org>, Sascha Hauer <s.hauer@pengutronix.de>,
	Pengutronix Kernel Team <kernel@pengutronix.de>, Fabio Estevam
	<festevam@gmail.com>, Rob Herring <robh+dt@kernel.org>, Krzysztof Kozlowski
	<krzysztof.kozlowski+dt@linaro.org>, Conor Dooley <conor+dt@kernel.org>
CC: <upstream@lists.phytec.de>, <imx@lists.linux.dev>,
	<linux-arm-kernel@lists.infradead.org>, <devicetree@vger.kernel.org>,
	<linux-kernel@vger.kernel.org>, Benjamin Hahn <B.Hahn@phytec.de>
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1269163
Newsgroups: org.kernel.vger.linux-kernel,dev.linux.lists.imx,org.infradead.lists.linux-arm-kernel,org.kernel.vger.linux-devicetree
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Add a devicetree overlay to disable ethernet for boards where it is not
populated.

Signed-off-by: Benjamin Hahn <B.Hahn@phytec.de>
---
Changes in v2:
- Remove the compatible from the overlay
- Link to v1: https://lore.kernel.org/r/20240703-bspimx8m-3180-v1-1-e43e035a9b2a@phytec.de
---
 arch/arm64/boot/dts/freescale/Makefile                   |  2 ++
 arch/arm64/boot/dts/freescale/imx8mp-phycore-no-eth.dtso | 16 ++++++++++++++++
 2 files changed, 18 insertions(+)

diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/freescale/Makefile
index 2cb0212b63c6..16e06e6f055c 100644
--- a/arch/arm64/boot/dts/freescale/Makefile
+++ b/arch/arm64/boot/dts/freescale/Makefile
@@ -164,6 +164,8 @@ dtb-$(CONFIG_ARCH_MXC) += imx8mp-evk.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mp-icore-mx8mp-edimm2.2.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mp-msc-sm2s-ep1.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mp-phyboard-pollux-rdk.dtb
+imx8mp-phyboard-pollux-rdk-no-eth-dtbs += imx8mp-phyboard-pollux-rdk.dtb imx8mp-phycore-no-eth.dtbo
+dtb-$(CONFIG_ARCH_MXC) += imx8mp-phyboard-pollux-rdk-no-eth.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mp-skov-revb-hdmi.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mp-skov-revb-lt6.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mp-skov-revb-mi1010ait-1cp1.dtb
diff --git a/arch/arm64/boot/dts/freescale/imx8mp-phycore-no-eth.dtso b/arch/arm64/boot/dts/freescale/imx8mp-phycore-no-eth.dtso
new file mode 100644
index 000000000000..5f0278bf61ee
--- /dev/null
+++ b/arch/arm64/boot/dts/freescale/imx8mp-phycore-no-eth.dtso
@@ -0,0 +1,16 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2024 PHYTEC Messtechnik GmbH
+ * Author: Cem Tenruh <c.tenruh@phytec.de>
+ */
+
+/dts-v1/;
+/plugin/;
+
+&ethphy1 {
+	status = "disabled";
+};
+
+&fec {
+	status = "disabled";
+};

---
base-commit: e8f897f4afef0031fe618a8e94127a0934896aba
change-id: 20240617-bspimx8m-3180-47bed184a854

Best regards,
-- 
Benjamin Hahn <B.Hahn@phytec.de>

.

From: Luca Weiss <luca.weiss@fairphone.com>
Subject: [PATCH v2 0/2] More thermal configuration for Fairphone 4
Date: Fri, 05 Jul 2024 14:40:08 +0200
Message-Id: <20240705-fp4-thermals-v2-0-a4870a8d084f@fairphone.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
To: Bjorn Andersson <andersson@kernel.org>, 
 Konrad Dybcio <konrad.dybcio@linaro.org>, Rob Herring <robh@kernel.org>, 
 Krzysztof Kozlowski <krzk+dt@kernel.org>, 
 Conor Dooley <conor+dt@kernel.org>, 
 AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Cc: ~postmarketos/upstreaming@lists.sr.ht, phone-devel@vger.kernel.org, 
 linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, 
 linux-kernel@vger.kernel.org, Luca Weiss <luca.weiss@fairphone.com>
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1269173
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-arm-msm,org.kernel.vger.linux-devicetree,org.kernel.vger.phone-devel
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Add the thermal configuration for the thermistors connected to PMK8003
and PM6150L. With that all the external thermistors on the phone should
be present in the dts.

Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
---
Changes in v2:
- Remove polling-delay/polling-delay-passive=0
- Reorder props, e.g. put qcom,ratiometric boolean prop at end
- Put in 45degC 'passive' and 55degC 'critical' trip for sdm-skin-therm
  instead of dummy trip
- Pick up tags
- Link to v1: https://lore.kernel.org/r/20240105-fp4-thermals-v1-0-f95875a536b7@fairphone.com

---
Luca Weiss (2):
      arm64: dts: qcom: sm7225-fairphone-fp4: Add PMK8003 thermals
      arm64: dts: qcom: sm7225-fairphone-fp4: Add PM6150L thermals

 arch/arm64/boot/dts/qcom/sm7225-fairphone-fp4.dts | 212 ++++++++++++++++++++++
 1 file changed, 212 insertions(+)
---
base-commit: 243741e78f0c8460fe2e76ef7b241c6ec5b8e28b
change-id: 20240105-fp4-thermals-f3c8e0417b70

Best regards,
-- 
Luca Weiss <luca.weiss@fairphone.com>

.

Return-Path: <linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org>
From: Jisheng Zhang <jszhang@kernel.org>
To: Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>
Cc: linux-riscv@lists.infradead.org,
	linux-kernel@vger.kernel.org
Subject: [PATCH] riscv: select ARCH_USE_SYM_ANNOTATIONS
Date: Fri,  5 Jul 2024 21:23:08 +0800
Message-ID: <20240705132308.1469-1-jszhang@kernel.org>
MIME-Version: 1.0
X-BeenThere: linux-riscv@lists.infradead.org
X-Mailman-Version: 2.1.34
List-Id: <linux-riscv.lists.infradead.org>
List-Unsubscribe: <http://lists.infradead.org/mailman/options/linux-riscv>,
 <mailto:linux-riscv-request@lists.infradead.org?subject=unsubscribe>
List-Archive: <http://lists.infradead.org/pipermail/linux-riscv/>
List-Post: <mailto:linux-riscv@lists.infradead.org>
List-Help: <mailto:linux-riscv-request@lists.infradead.org?subject=help>
List-Subscribe: <http://lists.infradead.org/mailman/listinfo/linux-riscv>,
 <mailto:linux-riscv-request@lists.infradead.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: "linux-riscv" <linux-riscv-bounces@lists.infradead.org>
Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org
Xref: photonic.trudheim.com org.infradead.lists.linux-riscv:79416 org.kernel.vger.linux-kernel:1269188
Newsgroups: org.infradead.lists.linux-riscv,org.kernel.vger.linux-kernel
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

After commit 76329c693924 ("riscv: Use SYM_*() assembly macros instead
of deprecated ones"), riscv has been to the new style SYM_ assembler
annotations. So select ARCH_USE_SYM_ANNOTATIONS to ensure the
deprecated macros such as ENTRY(), END(), WEAK() and so on are not
available and we don't regress.

Signed-off-by: Jisheng Zhang <jszhang@kernel.org>
---
 arch/riscv/Kconfig | 1 +
 1 file changed, 1 insertion(+)

diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig
index 0525ee2d63c7..c51b32a8ddff 100644
--- a/arch/riscv/Kconfig
+++ b/arch/riscv/Kconfig
@@ -62,6 +62,7 @@ config RISCV
 	select ARCH_USE_CMPXCHG_LOCKREF if 64BIT
 	select ARCH_USE_MEMTEST
 	select ARCH_USE_QUEUED_RWLOCKS
+	select ARCH_USE_SYM_ANNOTATIONS
 	select ARCH_USES_CFI_TRAPS if CFI_CLANG
 	select ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH if MMU
 	select ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT if MMU
-- 
2.43.0


_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
.

Return-Path: <linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org>
From: Thomas Bonnefille <thomas.bonnefille@bootlin.com>
Subject: [PATCH v2 0/3] Add SARADC support on Sophgo SoC
Date: Fri, 05 Jul 2024 15:42:22 +0200
Message-Id: <20240705-sg2002-adc-v2-0-83428c20a9b2@bootlin.com>
MIME-Version: 1.0
To: Jonathan Cameron <jic23@kernel.org>, 
 Lars-Peter Clausen <lars@metafoo.de>, Rob Herring <robh@kernel.org>, 
 Krzysztof Kozlowski <krzk+dt@kernel.org>, 
 Conor Dooley <conor+dt@kernel.org>, Chen Wang <unicorn_wang@outlook.com>, 
 Inochi Amaoto <inochiama@outlook.com>, 
 Paul Walmsley <paul.walmsley@sifive.com>, 
 Palmer Dabbelt <palmer@dabbelt.com>, Albert Ou <aou@eecs.berkeley.edu>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>, 
 =?utf-8?q?Miqu=C3=A8l_Raynal?= <miquel.raynal@bootlin.com>, 
 linux-iio@vger.kernel.org, devicetree@vger.kernel.org, 
 linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org, 
 Thomas Bonnefille <thomas.bonnefille@bootlin.com>
X-BeenThere: linux-riscv@lists.infradead.org
X-Mailman-Version: 2.1.34
List-Id: <linux-riscv.lists.infradead.org>
List-Unsubscribe: <http://lists.infradead.org/mailman/options/linux-riscv>,
 <mailto:linux-riscv-request@lists.infradead.org?subject=unsubscribe>
List-Archive: <http://lists.infradead.org/pipermail/linux-riscv/>
List-Post: <mailto:linux-riscv@lists.infradead.org>
List-Help: <mailto:linux-riscv-request@lists.infradead.org?subject=help>
List-Subscribe: <http://lists.infradead.org/mailman/listinfo/linux-riscv>,
 <mailto:linux-riscv-request@lists.infradead.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: "linux-riscv" <linux-riscv-bounces@lists.infradead.org>
Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org
Xref: photonic.trudheim.com org.infradead.lists.linux-riscv:79418 org.kernel.vger.linux-kernel:1269190
Newsgroups: org.infradead.lists.linux-riscv,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-iio,org.kernel.vger.linux-kernel
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

This patchset adds initial ADC support for Sophgo SoC. This driver can
work with or without interrupt and in "Active" and "No-Die" domains
depending on if a clock is provided.

Link: https://github.com/sophgo/sophgo-doc/releases/download/sg2002-trm-v1.0/sg2002_trm_en.pdf

Signed-off-by: Thomas Bonnefille <thomas.bonnefille@bootlin.com>
---
Changes in v2:
- Drop modifications in MAINTAINERS file
- Rename the ADC from "sophgo-adc" to "sophgo-cv18xx-adc" to avoid
  conflict with ADCs available in future Sophgo SoCs.
- Reorder nodes in DT to match DTS coding style
- Switch from including <linux/of.h> to <linux/mod_devicetable.h>
- Use scoped_guard instead of mutex_lock/unlock
- Check IRQ Status in the handler
- Change IIO device name
- Use devm_clk_get_optional_enabled instead of a clock variable
- Init completion before the IRQ request
- Removed unnecessary iio_info structure in the private data of the
  driver
- Use SoC specific compatible in the bindings and device trees
- Link to v1: https://lore.kernel.org/r/20240702-sg2002-adc-v1-0-ac66e076a756@bootlin.com

---
Thomas Bonnefille (3):
      dt-bindings: iio: adc: sophgo,cv18xx-saradc.yaml: Add Sophgo SARADC binding documentation
      iio: adc: sophgo-saradc: Add driver for Sophgo SARADC
      riscv: dts: sophgo: Add SARADC configuration

 .../bindings/iio/adc/sophgo,cv18xx-saradc.yaml     |  63 +++++++
 arch/riscv/boot/dts/sophgo/cv1800b.dtsi            |   8 +
 arch/riscv/boot/dts/sophgo/cv18xx.dtsi             |  14 ++
 drivers/iio/adc/Kconfig                            |  10 ++
 drivers/iio/adc/Makefile                           |   1 +
 drivers/iio/adc/sophgo-cv18xx-adc.c                | 195 +++++++++++++++++++++
 6 files changed, 291 insertions(+)
---
base-commit: d20f6b3d747c36889b7ce75ee369182af3decb6b
change-id: 20240527-sg2002-adc-924b862cd3f2

Best regards,
-- 
Thomas Bonnefille <thomas.bonnefille@bootlin.com>


_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
.

Date: Fri, 5 Jul 2024 15:06:24 +0200
From: Andi Shyti <andi.shyti@kernel.org>
To: Wolfram Sang <wsa@kernel.org>
Cc: linux-i2c <linux-i2c@vger.kernel.org>, 
	lkml <linux-kernel@vger.kernel.org>, Piotr Wojtaszczyk <piotr.wojtaszczyk@timesys.com>, 
	Andi Shyti <andi.shyti@kernel.org>
Subject: [GIT PULL] i2c-host-fixes for v6.10-rc7
Message-ID: <snxb7qd23vzrhls4duer3bt46m3lwzil5fzx75s7jl4okhexak@2e23wyd6qe76>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1269197
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-i2c
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Hi Wolfram,

Jist a nice fix from Piotr coming in this week.

Have a good weekend,
Andi

The following changes since commit 22a40d14b572deb80c0648557f4bd502d7e83826:

  Linux 6.10-rc6 (2024-06-30 14:40:44 -0700)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/andi.shyti/linux.git tags/i2c-host-fixes-6.10-rc7

for you to fetch changes up to f63b94be6942ba82c55343e196bd09b53227618e:

  i2c: pnx: Fix potential deadlock warning from del_timer_sync() call in isr (2024-07-04 00:17:47 +0200)

----------------------------------------------------------------
This tag includes a nice fix in the PNX driver that has been
pending for a long time. Piotr has replaced a potential lock in
the interrupt context with a more efficient and straightforward
handling of the timeout signaling.

----------------------------------------------------------------
Piotr Wojtaszczyk (1):
      i2c: pnx: Fix potential deadlock warning from del_timer_sync() call in isr

 drivers/i2c/busses/i2c-pnx.c | 48 ++++++++++--------------------------------------
 1 file changed, 10 insertions(+), 38 deletions(-)
.

From: Adrian Huang <adrianhuang0701@gmail.com>
To: Andrew Morton <akpm@linux-foundation.org>,
	Uladzislau Rezki <urezki@gmail.com>,
	Christoph Hellwig <hch@infradead.org>
Cc: linux-mm@kvack.org,
	linux-kernel@vger.kernel.org,
	Adrian Huang <ahuang12@lenovo.com>,
	Jiwei Sun <sunjw10@lenovo.com>
Subject: [PATCH 1/1] mm/vmalloc: Add preempt point in purge_vmap_node() when enabling kasan
Date: Fri,  5 Jul 2024 21:08:08 +0800
Message-Id: <20240705130808.1581-1-ahuang12@lenovo.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1269198 org.kvack.linux-mm:202734
Newsgroups: org.kernel.vger.linux-kernel,org.kvack.linux-mm
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

From: Adrian Huang <ahuang12@lenovo.com>

When compiling kernel source 'make -j $(nproc)' with the up-and-running
KASAN-enabled kernel on a 256-core machine, the following soft lockup
is shown:

watchdog: BUG: soft lockup - CPU#28 stuck for 22s! [kworker/28:1:1760]
CPU: 28 PID: 1760 Comm: kworker/28:1 Kdump: loaded Not tainted 6.10.0-rc5 #95
Workqueue: events drain_vmap_area_work
RIP: 0010:smp_call_function_many_cond+0x1d8/0xbb0
Code: 38 c8 7c 08 84 c9 0f 85 49 08 00 00 8b 45 08 a8 01 74 2e 48 89 f1 49 89 f7 48 c1 e9 03 41 83 e7 07 4c 01 e9 41 83 c7 03 f3 90 <0f> b6 01 41 38 c7 7c 08 84 c0 0f 85 d4 06 00 00 8b 45 08 a8 01 75
RSP: 0018:ffffc9000cb3fb60 EFLAGS: 00000202
RAX: 0000000000000011 RBX: ffff8883bc4469c0 RCX: ffffed10776e9949
RDX: 0000000000000002 RSI: ffff8883bb74ca48 RDI: ffffffff8434dc50
RBP: ffff8883bb74ca40 R08: ffff888103585dc0 R09: ffff8884533a1800
R10: 0000000000000004 R11: ffffffffffffffff R12: ffffed1077888d39
R13: dffffc0000000000 R14: ffffed1077888d38 R15: 0000000000000003
FS:  0000000000000000(0000) GS:ffff8883bc400000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00005577b5c8d158 CR3: 0000000004850000 CR4: 0000000000350ef0
Call Trace:
 <IRQ>
 ? watchdog_timer_fn+0x2cd/0x390
 ? __pfx_watchdog_timer_fn+0x10/0x10
 ? __hrtimer_run_queues+0x300/0x6d0
 ? sched_clock_cpu+0x69/0x4e0
 ? __pfx___hrtimer_run_queues+0x10/0x10
 ? srso_return_thunk+0x5/0x5f
 ? ktime_get_update_offsets_now+0x7f/0x2a0
 ? srso_return_thunk+0x5/0x5f
 ? srso_return_thunk+0x5/0x5f
 ? hrtimer_interrupt+0x2ca/0x760
 ? __sysvec_apic_timer_interrupt+0x8c/0x2b0
 ? sysvec_apic_timer_interrupt+0x6a/0x90
 </IRQ>
 <TASK>
 ? asm_sysvec_apic_timer_interrupt+0x16/0x20
 ? smp_call_function_many_cond+0x1d8/0xbb0
 ? __pfx_do_kernel_range_flush+0x10/0x10
 on_each_cpu_cond_mask+0x20/0x40
 flush_tlb_kernel_range+0x19b/0x250
 ? srso_return_thunk+0x5/0x5f
 ? kasan_release_vmalloc+0xa7/0xc0
 purge_vmap_node+0x357/0x820
 ? __pfx_purge_vmap_node+0x10/0x10
 __purge_vmap_area_lazy+0x5b8/0xa10
 drain_vmap_area_work+0x21/0x30
 process_one_work+0x661/0x10b0
 worker_thread+0x844/0x10e0
 ? srso_return_thunk+0x5/0x5f
 ? __kthread_parkme+0x82/0x140
 ? __pfx_worker_thread+0x10/0x10
 kthread+0x2a5/0x370
 ? __pfx_kthread+0x10/0x10
 ret_from_fork+0x30/0x70
 ? __pfx_kthread+0x10/0x10
 ret_from_fork_asm+0x1a/0x30
 </TASK>

Debugging Analysis:
 1. [Crash] The call trace indicates CPU #28 is waiting for other CPUs'
    responses by sending an IPI message in order to flush tlb.
    However, crash indicates the target CPU has responded.

     A. CPU #28 is waiting for CPU #2' response.

	crash> cfd_data | grep -w 28
	  [28]: ffff8883bc4469c0
	crash> struct call_function_data ffff8883bc4469c0
	struct call_function_data {
	  csd = 0x4ca40,
	  cpumask = 0xffff888103585e40,
	  cpumask_ipi = 0xffff8881035858c0
	}

        crash> struct __call_single_data 0x4ca40:a | grep ffff8883bb74ca40
        [2]: ffff8883bb74ca40

     B. CPU #2 has responded because the bit 'CSD_FLAG_LOCK' of u_flags
        is cleared.

        crash> struct __call_single_data 0xffff8883bb74ca40
        struct __call_single_data {
          node = {
            ...
            {
              u_flags = 0,
              a_flags = {
                counter = 0
              }
            },
	    ...
          },
          func = 0xffffffff8117b080 <do_kernel_range_flush>,
          info = 0xffff8883bc444940
        }

     C. CPU #2 is running userspace application 'nm'.

        crash> bt -c 2
	PID: 52035  TASK: ffff888194c21ac0  CPU: 2   COMMAND: "nm"
 	#0 [ffffc90043157ea8] crash_nmi_callback at ffffffff81122f42
 	#1 [ffffc90043157eb0] nmi_handle at ffffffff8108c988
	#2 [ffffc90043157f10] default_do_nmi at ffffffff835b3460
 	#3 [ffffc90043157f30] exc_nmi at ffffffff835b3630
 	#4 [ffffc90043157f50] asm_exc_nmi at ffffffff83601573
        RIP: 00007f6261b90d38 RSP: 00007ffe4d1cb180 RFLAGS: 00000202
        RAX: 0000000000000001 RBX: 6e6f2d7865646e69 RCX: 00007f626281f634
        RDX: 00007f6262ba7f67 RSI: 00007f626265f65e RDI: 00007f62648f8a30
        RBP: 2d6f746c6e696874  R8: 00007f62618a4cc0  R9: 0000000000000001
        R10: 00007f627233e488 R11: 00007f627233d768 R12: 000055bee0ff4b90
        R13: 000055bee0fac650 R14: 00007ffe4d1cb280 R15: 0000000000000000
        ORIG_RAX: ffffffffffffffff  CS: 0033  SS: 002b

     D. The soft lockup CPU iteratively traverses 128 vmap_nodes (128 bits
	are set) and flushes tlb. This might be the time-consuming work.

	crash> p /x purge_nodes
	$1 = {
	  bits = {0xffffffffffffffff, 0xffffffffffffffff, 0x0, ...}

 2. [Ftrace] In order to prove that the soft lockup CPU spends too much
    time iterating vmap_nodes and flushing tlb when purging vm_area
    structures, the ftrace confirms the speculation (Some info is trimmed).

     kworker: funcgraph_entry:		    |  drain_vmap_area_work() {
     kworker: funcgraph_entry:              |   mutex_lock() {
     kworker: funcgraph_entry:  1.092 us    |     __cond_resched();
     kworker: funcgraph_exit:   3.306 us    |   }
     ...				        ...
     kworker: funcgraph_entry: 		    |    flush_tlb_kernel_range() {
     ...				 	  ...
     kworker: funcgraph_exit: # 7533.649 us |    }
     ...                                         ...
     kworker: funcgraph_entry:  2.344 us    |   mutex_unlock();
     kworker: funcgraph_exit: $ 23871554 us | }

     The drain_vmap_area_work() spends over 23 seconds.

     There are 2805 flush_tlb_kernel_range() calls in this ftrace log.
       * One is called in __purge_vmap_area_lazy().
       * Others are called in kasan_release_vmalloc().

 3. Extending the soft lockup time can work around the issue (For example,
    # echo 60 > /proc/sys/kernel/watchdog_thresh). This confirms the
    above-mentioned speculation: drain_vmap_area_work() spends too much
    time.

Commit 72210662c5a2 ("mm: vmalloc: offload free_vmap_area_lock lock")
employs an effective vmap node logic. However, current design iterates
128 vmap_nodes and flushes tlb by a single CPU if
vmap_lazy_nr < 2 * lazy_max_pages(). When enabling kasan, this might
trigger the soft lockup because additional tlb flushes of kasan vmalloc
spend much more time if 128 vmap nodes have the available purge list.

Fix the issue by adding preempt point in purge_vmap_node() when
enabling kasan.

Fixes: 72210662c5a2 ("mm: vmalloc: offload free_vmap_area_lock lock")
Signed-off-by: Adrian Huang <ahuang12@lenovo.com>
Reviewed-and-tested-by: Jiwei Sun <sunjw10@lenovo.com>
---
 mm/vmalloc.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/mm/vmalloc.c b/mm/vmalloc.c
index d0cbdd7c1e5b..380bdc317c8d 100644
--- a/mm/vmalloc.c
+++ b/mm/vmalloc.c
@@ -2193,6 +2193,15 @@ static void purge_vmap_node(struct work_struct *work)
 	struct vmap_area *va, *n_va;
 	LIST_HEAD(local_list);
 
+	/*
+	 * Add the preemption point when enabling KASAN. Each vmap_area of
+	 * vmap nodes has to flush tlb when releasing vmalloc, which might
+	 * be the time-consuming work if lots of vamp nodes have the
+	 * available purge list.
+	 */
+	if (kasan_enabled())
+		cond_resched();
+
 	vn->nr_purged = 0;
 
 	list_for_each_entry_safe(va, n_va, &vn->purge_list, list) {
-- 
2.34.1

.

From: Howard Chu <howardchu95@gmail.com>
To: acme@kernel.org
Cc: adrian.hunter@intel.com,
	irogers@google.com,
	jolsa@kernel.org,
	kan.liang@linux.intel.com,
	namhyung@kernel.org,
	linux-perf-users@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: [PATCH v5 0/8] perf trace: Augment enum arguments with BTF
Date: Fri,  5 Jul 2024 21:20:50 +0800
Message-ID: <20240705132059.853205-1-howardchu95@gmail.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1269203
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-perf-users
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Changes in v5:

- Use hardcoded landlock structs and macros for landlock.c workload to
make this build in older systems.

Changes in v4:

- Fix landlock workload's build error.

Changes in v3:

- Add trace__btf_scnprintf() helper function
- Remove is_enum memeber in struct syscall_arg_fmt, replace it with 
btf_is_enum()
- Add syscall_arg_fmt__cache_btf_enum() to cache btf_type only
- Resolve NO_LIBBPF=1 build error
- Skip BTF augmentation test if landlock_add_rule syscall and LIBBPF are not
available
- Rename landlock.c workload, add a comment to landlock.c workload
- Change the way of skipping 'enum ' prefix
- Add type_name member to struct syscall_arg

Changes in v2:

- Add trace_btf_enum regression test, and landlock workload

v1:

In this patch, BTF is used to turn enum value to the corresponding
enum variable name. There is only one system call that uses enum value
as its argument, that is `landlock_add_rule()`.

Enum arguments of non-syscall tracepoints can also be augmented, for
instance timer:hrtimer_start and timer:hrtimer_init's 'mode' argument.


Arnaldo Carvalho de Melo (2):
  perf trace: Introduce trace__btf_scnprintf()
  perf trace: Remove arg_fmt->is_enum, we can get that from the BTF type

Howard Chu (6):
  perf trace: Fix iteration of syscall ids in syscalltbl->entries
  perf trace: BTF-based enum pretty printing for syscall args
  perf trace: Augment non-syscall tracepoints with enum arguments with
    BTF
  perf trace: Filter enum arguments with enum names
  perf test: Add landlock workload
  perf test trace_btf_enum: Add regression test for the BTF augmentation
    of enums in 'perf trace'

 tools/perf/builtin-trace.c               | 229 ++++++++++++++++++++---
 tools/perf/tests/builtin-test.c          |   1 +
 tools/perf/tests/shell/trace_btf_enum.sh |  61 ++++++
 tools/perf/tests/tests.h                 |   1 +
 tools/perf/tests/workloads/Build         |   2 +
 tools/perf/tests/workloads/landlock.c    |  66 +++++++
 tools/perf/trace/beauty/beauty.h         |   1 +
 tools/perf/util/syscalltbl.c             |   7 +
 tools/perf/util/syscalltbl.h             |   1 +
 9 files changed, 345 insertions(+), 24 deletions(-)
 create mode 100755 tools/perf/tests/shell/trace_btf_enum.sh
 create mode 100644 tools/perf/tests/workloads/landlock.c

-- 
2.45.2

.

From: Maxime Chevallier <maxime.chevallier@bootlin.com>
To: davem@davemloft.net
Cc: Maxime Chevallier <maxime.chevallier@bootlin.com>,
	netdev@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	thomas.petazzoni@bootlin.com,
	Andrew Lunn <andrew@lunn.ch>,
	Jakub Kicinski <kuba@kernel.org>,
	Eric Dumazet <edumazet@google.com>,
	Paolo Abeni <pabeni@redhat.com>,
	Russell King <linux@armlinux.org.uk>,
	linux-arm-kernel@lists.infradead.org,
	Christophe Leroy <christophe.leroy@csgroup.eu>,
	Herve Codina <herve.codina@bootlin.com>,
	Florian Fainelli <f.fainelli@gmail.com>,
	Heiner Kallweit <hkallweit1@gmail.com>,
	Vladimir Oltean <vladimir.oltean@nxp.com>,
	=?UTF-8?q?K=C3=B6ry=20Maincent?= <kory.maincent@bootlin.com>,
	Jesse Brandeburg <jesse.brandeburg@intel.com>,
	=?UTF-8?q?Marek=20Beh=C3=BAn?= <kabel@kernel.org>,
	Piergiorgio Beruto <piergiorgio.beruto@gmail.com>,
	Oleksij Rempel <o.rempel@pengutronix.de>,
	=?UTF-8?q?Nicol=C3=B2=20Veronese?= <nicveronese@gmail.com>,
	Simon Horman <horms@kernel.org>,
	mwojtas@chromium.org,
	Nathan Chancellor <nathan@kernel.org>,
	Antoine Tenart <atenart@kernel.org>,
	Marc Kleine-Budde <mkl@pengutronix.de>,
	Dan Carpenter <dan.carpenter@linaro.org>,
	Romain Gantois <romain.gantois@bootlin.com>
Subject: [PATCH net-next v16 00/14] Introduce PHY listing and link_topology tracking
Date: Fri,  5 Jul 2024 15:26:51 +0200
Message-ID: <20240705132706.13588-1-maxime.chevallier@bootlin.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1269214 org.kernel.vger.netdev:355734
Newsgroups: org.kernel.vger.linux-kernel,org.infradead.lists.linux-arm-kernel,org.kernel.vger.netdev
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Hello everyone,

This is V16 of the phy_link_topology series, aiming at improving support
for multiple PHYs being attached to the same MAC.

There are 2 changes in V16 compared to V15 :

 - In patch 4, the sfp_get_name() helper was moved around to better
   match the structure of the file. Russell, I've added a Suggested-by
   tag from you, as I used a description paragraph verbatim from your
   last review.

 - Patches 7 and 8 were reworked so that we don't report the phy id in
   the netlink command PHY_GET, as this is inconsistent between C22 and
   C45, and C45 wasn't even supported.

All other patches are left unchanged from V15, besides a net-next
rebase.

As a remainder, here's what the PHY listings would look like :
 - eth0 has a 88x3310 acting as media converter, and an SFP module with
   an embedded 88e1111 PHY
 - eth2 has a 88e1510 PHY

# ethtool --show-phys *

PHY for eth0:
PHY index: 1
Driver name: mv88x3310
PHY device name: f212a600.mdio-mii:00
Downstream SFP bus name: sfp-eth0
Upstream type: MAC

PHY for eth0:
PHY index: 2
Driver name: Marvell 88E1111
PHY device name: i2c:sfp-eth0:16
Upstream type: PHY
Upstream PHY index: 1
Upstream SFP name: sfp-eth0

PHY for eth2:
PHY index: 1
Driver name: Marvell 88E1510
PHY device name: f212a200.mdio-mii:00
Upstream type: MAC

Ethtool patches : https://github.com/minimaxwell/ethtool/tree/mc/topo-v16

Link to V15: https://lore.kernel.org/netdev/20240703140806.271938-1-maxime.chevallier@bootlin.com/
Link to V14: https://lore.kernel.org/netdev/20240701131801.1227740-1-maxime.chevallier@bootlin.com/
Link to V13: https://lore.kernel.org/netdev/20240607071836.911403-1-maxime.chevallier@bootlin.com/
Link to v12: https://lore.kernel.org/netdev/20240605124920.720690-1-maxime.chevallier@bootlin.com/
Link to v11: https://lore.kernel.org/netdev/20240404093004.2552221-1-maxime.chevallier@bootlin.com/
Link to V10: https://lore.kernel.org/netdev/20240304151011.1610175-1-maxime.chevallier@bootlin.com/
Link to V9: https://lore.kernel.org/netdev/20240228114728.51861-1-maxime.chevallier@bootlin.com/
Link to V8: https://lore.kernel.org/netdev/20240220184217.3689988-1-maxime.chevallier@bootlin.com/
Link to V7: https://lore.kernel.org/netdev/20240213150431.1796171-1-maxime.chevallier@bootlin.com/
Link to V6: https://lore.kernel.org/netdev/20240126183851.2081418-1-maxime.chevallier@bootlin.com/
Link to V5: https://lore.kernel.org/netdev/20231221180047.1924733-1-maxime.chevallier@bootlin.com/
Link to V4: https://lore.kernel.org/netdev/20231215171237.1152563-1-maxime.chevallier@bootlin.com/
Link to V3: https://lore.kernel.org/netdev/20231201163704.1306431-1-maxime.chevallier@bootlin.com/
Link to V2: https://lore.kernel.org/netdev/20231117162323.626979-1-maxime.chevallier@bootlin.com/
Link to V1: https://lore.kernel.org/netdev/20230907092407.647139-1-maxime.chevallier@bootlin.com/

More discussions on specific issues that happened in 6.9-rc:

https://lore.kernel.org/netdev/20240412104615.3779632-1-maxime.chevallier@bootlin.com/
https://lore.kernel.org/netdev/20240429131008.439231-1-maxime.chevallier@bootlin.com/
https://lore.kernel.org/netdev/20240507102822.2023826-1-maxime.chevallier@bootlin.com/

Maxime Chevallier (14):
  net: phy: Introduce ethernet link topology representation
  net: sfp: pass the phy_device when disconnecting an sfp module's PHY
  net: phy: add helpers to handle sfp phy connect/disconnect
  net: sfp: Add helper to return the SFP bus name
  net: ethtool: Allow passing a phy index for some commands
  netlink: specs: add phy-index as a header parameter
  net: ethtool: Introduce a command to list PHYs on an interface
  netlink: specs: add ethnl PHY_GET command set
  net: ethtool: plca: Target the command to the requested PHY
  net: ethtool: pse-pd: Target the command to the requested PHY
  net: ethtool: cable-test: Target the command to the requested PHY
  net: ethtool: strset: Remove unnecessary check on genl_info
  net: ethtool: strset: Allow querying phy stats by index
  Documentation: networking: document phy_link_topology

 Documentation/netlink/specs/ethtool.yaml      |  58 ++++
 Documentation/networking/ethtool-netlink.rst  |  51 +++
 Documentation/networking/index.rst            |   1 +
 .../networking/phy-link-topology.rst          | 121 +++++++
 MAINTAINERS                                   |   1 +
 drivers/net/phy/Makefile                      |   2 +-
 drivers/net/phy/marvell-88x2222.c             |   2 +
 drivers/net/phy/marvell.c                     |   2 +
 drivers/net/phy/marvell10g.c                  |   2 +
 drivers/net/phy/phy_device.c                  |  48 +++
 drivers/net/phy/phy_link_topology.c           | 105 ++++++
 drivers/net/phy/phylink.c                     |   3 +-
 drivers/net/phy/qcom/at803x.c                 |   2 +
 drivers/net/phy/qcom/qca807x.c                |   2 +
 drivers/net/phy/sfp-bus.c                     |  26 +-
 include/linux/netdevice.h                     |   4 +-
 include/linux/phy.h                           |   6 +
 include/linux/phy_link_topology.h             |  82 +++++
 include/linux/sfp.h                           |   8 +-
 include/uapi/linux/ethtool.h                  |  16 +
 include/uapi/linux/ethtool_netlink.h          |  20 ++
 net/core/dev.c                                |  15 +
 net/ethtool/Makefile                          |   3 +-
 net/ethtool/cabletest.c                       |  35 +-
 net/ethtool/netlink.c                         |  66 +++-
 net/ethtool/netlink.h                         |  33 ++
 net/ethtool/phy.c                             | 308 ++++++++++++++++++
 net/ethtool/plca.c                            |  30 +-
 net/ethtool/pse-pd.c                          |  30 +-
 net/ethtool/strset.c                          |  27 +-
 30 files changed, 1057 insertions(+), 52 deletions(-)
 create mode 100644 Documentation/networking/phy-link-topology.rst
 create mode 100644 drivers/net/phy/phy_link_topology.c
 create mode 100644 include/linux/phy_link_topology.h
 create mode 100644 net/ethtool/phy.c

-- 
2.45.1

.

From: =?UTF-8?q?Asbj=C3=B8rn=20Sloth=20T=C3=B8nnesen?= <ast@fiberby.net>
To: netdev@vger.kernel.org
Cc: =?UTF-8?q?Asbj=C3=B8rn=20Sloth=20T=C3=B8nnesen?= <ast@fiberby.net>,
	Davide Caratti <dcaratti@redhat.com>,
	Ilya Maximets <i.maximets@ovn.org>,
	Jamal Hadi Salim <jhs@mojatatu.com>,
	Cong Wang <xiyou.wangcong@gmail.com>,
	Jiri Pirko <jiri@resnulli.us>,
	"David S. Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>,
	Paolo Abeni <pabeni@redhat.com>,
	David Ahern <dsahern@kernel.org>,
	Simon Horman <horms@kernel.org>,
	Ratheesh Kannoth <rkannoth@marvell.com>,
	Florian Westphal <fw@strlen.de>,
	Alexander Lobakin <aleksander.lobakin@intel.com>,
	linux-kernel@vger.kernel.org
Subject: [PATCH net-next v2 00/10] flower: rework TCA_FLOWER_KEY_ENC_FLAGS usage
Date: Fri,  5 Jul 2024 13:33:36 +0000
Message-ID: <20240705133348.728901-1-ast@fiberby.net>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1269241 org.kernel.vger.netdev:355759
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.netdev
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

This series reworks the recently added TCA_FLOWER_KEY_ENC_FLAGS
attribute, to be more like TCA_FLOWER_KEY_FLAGS, and use the unused
u32 flags field in FLOW_DISSECTOR_KEY_ENC_CONTROL, instead of adding
a new flags field as FLOW_DISSECTOR_KEY_ENC_FLAGS.

I have defined the new FLOW_DIS_F_* and TCA_FLOWER_KEY_FLAGS_*
flags to co-exist with the existing flags, so the meaning
of the flags field in struct flow_dissector_key_control is not
depending on the context it is used in. If we run out of bits
then we can always split them up later, if we really want to.
Future flags might also be valid in both contexts.

iproute2 RFC patch: (needs update of uAPI headers)
https://lore.kernel.org/897379f1850a50d8c320ca3facd06c5f03943bac.1719506876.git.dcaratti@redhat.com/

---
Changelog:

v2:
- Refactor flower control flag definitions
  (requested by Jakub and Alexander)
- Add Tested-by from Davide Caratti on patch 3-10.

v1: https://lore.kernel.org/20240703104600.455125-1-ast@fiberby.net/
- Change netlink attribute type from NLA_U32 to NLA_BE32.
- Ensure that the FLOW_DISSECTOR_KEY_ENC_CONTROL
  is also masked for non-IP.
- Fix preexisting typo in kdoc for struct flow_dissector_key_control
  (all suggested by Davide)

RFC: https://lore.kernel.org/20240611235355.177667-1-ast@fiberby.net/

Asbjørn Sloth Tønnesen (10):
  net/sched: flower: refactor tunnel flag definitions
  net/sched: flower: define new tunnel flags
  net/sched: cls_flower: prepare fl_{set,dump}_key_flags() for ENC_FLAGS
  net/sched: cls_flower: add policy for TCA_FLOWER_KEY_FLAGS
  flow_dissector: prepare for encapsulated control flags
  flow_dissector: set encapsulated control flags from tun_flags
  net/sched: cls_flower: add tunnel flags to fl_{set,dump}_key_flags()
  net/sched: cls_flower: rework TCA_FLOWER_KEY_ENC_FLAGS usage
  flow_dissector: cleanup FLOW_DISSECTOR_KEY_ENC_FLAGS
  flow_dissector: set encapsulation control flags for non-IP

 include/net/flow_dissector.h |  30 ++++----
 include/net/ip_tunnels.h     |  12 ---
 include/uapi/linux/pkt_cls.h |  11 ++-
 net/core/flow_dissector.c    |  50 ++++++------
 net/sched/cls_flower.c       | 142 ++++++++++++++++++++---------------
 5 files changed, 135 insertions(+), 110 deletions(-)

-- 
2.45.2

.

From: Benjamin Tissoires <bentiss@kernel.org>
Subject: [PATCH bpf-next 0/2] Small API fix for bpf_wq
Date: Fri, 05 Jul 2024 15:44:51 +0200
Message-Id: <20240705-fix-wq-v1-0-91b4d82cd825@kernel.org>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
To: Alexei Starovoitov <ast@kernel.org>, 
 Daniel Borkmann <daniel@iogearbox.net>, Andrii Nakryiko <andrii@kernel.org>, 
 Martin KaFai Lau <martin.lau@linux.dev>, 
 Eduard Zingerman <eddyz87@gmail.com>, Song Liu <song@kernel.org>, 
 Yonghong Song <yonghong.song@linux.dev>, 
 John Fastabend <john.fastabend@gmail.com>, KP Singh <kpsingh@kernel.org>, 
 Stanislav Fomichev <sdf@google.com>, Hao Luo <haoluo@google.com>, 
 Jiri Olsa <jolsa@kernel.org>, Mykola Lysenko <mykolal@fb.com>, 
 Shuah Khan <shuah@kernel.org>
Cc: bpf@vger.kernel.org, linux-kernel@vger.kernel.org, 
 linux-kselftest@vger.kernel.org, Benjamin Tissoires <bentiss@kernel.org>
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1269246
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.bpf,org.kernel.vger.linux-kselftest
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

I realized this while having a map containing both a struct bpf_timer and
a struct bpf_wq: the third argument provided to the bpf_wq callback is
not the struct bpf_wq pointer itself, but the pointer to the value in
the map.

Which means that the users need to double cast the provided "value" as
this is not a struct bpf_wq *.

This is a change of API, but there doesn't seem to be much users of bpf_wq
right now, so we should be able to go with this right now.

Signed-off-by: Benjamin Tissoires <bentiss@kernel.org>
---
Benjamin Tissoires (2):
      bpf: helpers: fix bpf_wq_set_callback_impl signature
      selftests/bpf: amend for wrong bpf_wq_set_callback_impl signature

 kernel/bpf/helpers.c                            | 2 +-
 tools/testing/selftests/bpf/bpf_experimental.h  | 2 +-
 tools/testing/selftests/bpf/progs/wq.c          | 8 ++++----
 tools/testing/selftests/bpf/progs/wq_failures.c | 4 ++--
 4 files changed, 8 insertions(+), 8 deletions(-)
---
base-commit: fd8db07705c55a995c42b1e71afc42faad675b0b
change-id: 20240705-fix-wq-f069c7fb36c3

Best regards,
-- 
Benjamin Tissoires <bentiss@kernel.org>

.

From: Ciprian Costea <ciprianmarian.costea@oss.nxp.com>
To: Haibo Chen <haibo.chen@nxp.com>,
	Adrian Hunter <adrian.hunter@intel.com>,
	Ulf Hansson <ulf.hansson@linaro.org>,
	Shawn Guo <shawnguo@kernel.org>,
	Sascha Hauer <s.hauer@pengutronix.de>,
	Pengutronix Kernel Team <kernel@pengutronix.de>,
	Fabio Estevam <festevam@gmail.com>
Cc: linux-kernel@vger.kernel.org,
	linux-mmc@vger.kernel.org,
	imx@lists.linux.dev,
	linux-arm-kernel@lists.infradead.org,
	s32@nxp.com,
	Ciprian Costea <ciprianmarian.costea@oss.nxp.com>
Subject: [PATCH 0/4] address several S32G2/S32G3 SoC based boards particularities
Date: Fri,  5 Jul 2024 16:46:43 +0300
Message-ID: <20240705134647.3524969-1-ciprianmarian.costea@oss.nxp.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1269252
Newsgroups: org.kernel.vger.linux-kernel,dev.linux.lists.imx,org.infradead.lists.linux-arm-kernel,org.kernel.vger.linux-mmc
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

This patchset addresses several S32G2/S32G3 SoC based boards
uSDHC controller particularities such as:
- GPIO card detect wake mechanism is not available
- Changing the pinctrl state in suspend routine is not supported

It also fixes a clocking usage issue on 'clk_get_rate',
in case of 'per' clock.

Ciprian Costea (4):
  mmc: sdhci-esdhc-imx: disable card detect wake for S32G based
    platforms
  mmc: sdhci-esdhc-imx: obtain the 'per' clock rate after its enablement
  mmc: sdhci-esdhc-imx: add option to not change pinctrl state in
    suspend
  MAINTAINERS: add 's32@nxp.com' as relevant mailing list for
    'sdhci-esdhc-imx' driver

 MAINTAINERS                        |  1 +
 drivers/mmc/host/sdhci-esdhc-imx.c | 28 ++++++++++++++++++++++------
 2 files changed, 23 insertions(+), 6 deletions(-)

-- 
2.45.2

.

From: Mrinmay Sarkar <quic_msarkar@quicinc.com>
To: manivannan.sadhasivam@linaro.org, fancer.lancer@gmail.com,
        vkoul@kernel.org
Cc: quic_shazhuss@quicinc.com, quic_nitegupt@quicinc.com,
        quic_ramkri@quicinc.com, quic_nayiluri@quicinc.com,
        quic_krichai@quicinc.com, quic_vbadigan@quicinc.com,
        Mrinmay Sarkar <quic_msarkar@quicinc.com>, dmaengine@vger.kernel.org,
        linux-kernel@vger.kernel.org
Subject: [PATCH v1 0/2] Fix unmasking interrupt bit and remove watermark interrupt enablement 
Date: Fri,  5 Jul 2024 19:25:31 +0530
Message-Id: <1720187733-5380-1-git-send-email-quic_msarkar@quicinc.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1269259
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.dmaengine
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

This patch series reset STOP_INT_MASK and ABORT_INT_MASK bit and unmask
these interrupt for HDMA.

and also remove enablement of local watermark interrupt enable(LWIE)
and remote watermarek interrupt enable(RWIE) bit to avoid unnecessary
watermark interrupt event.

Testing
-------

Tested on Qualcomm SA8775P Platform.

Mrinmay Sarkar (2):
  dmaengine: dw-edma: Add fix to unmask the interrupt bit for HDMA
  dmaengine: dw-edma: Add change to remove watermark interrupt
    enablement

 drivers/dma/dw-edma/dw-hdma-v0-core.c | 21 ++++++---------------
 1 file changed, 6 insertions(+), 15 deletions(-)

-- 
2.7.4

.

From: Pankaj Gupta <pankaj.gupta@nxp.com>
Subject: [PATCH v4 0/5] Changes in v4:
Date: Fri, 05 Jul 2024 19:22:39 +0530
Message-Id: <20240705-imx-se-if-v4-0-52d000e18a1d@nxp.com>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
To: Jonathan Corbet <corbet@lwn.net>, Rob Herring <robh@kernel.org>, 
 Krzysztof Kozlowski <krzk+dt@kernel.org>, 
 Conor Dooley <conor+dt@kernel.org>, Shawn Guo <shawnguo@kernel.org>, 
 Sascha Hauer <s.hauer@pengutronix.de>, 
 Pengutronix Kernel Team <kernel@pengutronix.de>, 
 Fabio Estevam <festevam@gmail.com>, Pankaj Gupta <pankaj.gupta@nxp.com>, 
 Rob Herring <robh+dt@kernel.org>, 
 Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>
Cc: linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, 
 devicetree@vger.kernel.org, imx@lists.linux.dev, 
 linux-arm-kernel@lists.infradead.org
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1269262
Newsgroups: org.kernel.vger.linux-kernel,dev.linux.lists.imx,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-doc
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

1/5
a. Removed - from EdgeLock Enclave.
 
b. Removed , after "Each of the above feature,"

c. replace "can exists" with "can exist".
 
d. 
-messaging units(MU) per SE. Each co-existing 'se' can have one or multiple exclusive
-MU(s), dedicated to itself. None of the MU is shared between two SEs.
+messaging units(MU) per SE. Each co-existing SE can have one or multiple exclusive
+MUs, dedicated to itself. None of the MU is shared between two SEs.
 Communication of the MU is realized using the Linux mailbox driver.

e. 
-All those SE interfaces 'se-if' that is/are dedicated to a particular SE, will be
-enumerated and provisioned under the very single 'SE' node.
+Although MU(s) is/are not shared between SE(s). But for SoC like i.MX95 which has
+multiple SE(s) like HSM, V2X-HSM, V2X-SHE; all the SE(s) and their interfaces 'se-if'
+that is/are dedicated to a particular SE will be enumerated and provisioned using the
+single compatible node("fsl,imx95-se").
 
f. Removed ",". Replaced for "Each 'se-if'," with "Each se-if'.

g. removed ","
-  This layer is responsible for ensuring the communication protocol, that is defined
+  This layer is responsible for ensuring the communication protocol that is defined

h. removed "-"
-  - FW can handle one command-message at a time.
+  - FW can handle one command message at a time.

i. 
-  Using these multiple device contexts, that are getting multiplexed over a single MU,
-  user-space application(s) can call fops like write/read to send the command-message,
-  and read back the command-response-message to/from Firmware.
-  fops like read & write uses the above defined service layer API(s) to communicate with
+  Using these multiple device contexts that are getting multiplexed over a single MU,
+  userspace application(s) can call fops like write/read to send the command message,
+  and read back the command response message to/from Firmware.
+  fops like read & write use the above defined service layer API(s) to communicate with
   Firmware.
 
j. Uppercase for word "Linux".

2/5
a. Rephrased the description to remove list of phandles.

b. Moved required before allOf: 
+required:
+  - compatible
+  - reg
+  - mboxes
+  - mbox-names
+
+additionalProperties: false
+
 allOf:

c. replaced not: required: with properties: <property-name>: false.
   # memory-region
-      not:
-        required:
-          - memory-region
+      properties:
+        memory-region: false

   # sram
-    else:
-      not:
-        required:
-          - sram

d. Reduced examples. keeping example of i.MX95.
e. node-name is changed to "firmware@<hex>"

3/5
- node name changed to "firmware@<hex>".

4/5
- used sizeof(*s_info)
- return early, rather than doing goto exit, in ele_get_info().
- Use upper_32_bits() and lower_32_bits() 
- use rx_msg here instead of priv->rx_msg
- Moved the status check to validate_rsp_hdr. Rename the function to "se_val_rsp_hdr_n_status"
- typecasting removed header = (struct se_msg_hdr *) msg;
- Converted the API name with prefix imx_ele_* or imx_se_*, to ele_* and se_*, respectively.
- Removed the functions definition & declaration for: free_phybuf_mem_pool() & get_phybuf_mem_pool()
- removed the mbox_free_channel() calls from clean-up.
- Flag "priv->flags" is removed.
- Converted the int se_if_probe_cleanup() to void se_if_probe_cleanup().
- Replaced NULL initialization of structure members: priv->cmd_receiver_dev & priv->waiting_rsp_dev , with comments.
- Removed the function's declaration get_phy_buf_mem_pool1

5/5
Changes to Documentation/ABI/testing/se-cdev.
a. Removed "-" from "secure-enclave" and "file-descriptor".

b. Removed "-" from "shared-library"
 
c. Replaced "get" with "getting".

d. Added description for the new IOCTL "send command and receive command response"

e. Replaced "wakeup_intruptible" with "wait_event_interruptible"

f. Removed ";"

g. Removd "," from "mailbox_lock," 
 
h. Replaced "free" with "frees"

i. In mailbox callback function, checking the buffer size before
copying.

- Link to v3: https://lore.kernel.org/r/20240617-imx-se-if-v3-0-a7d28dea5c4a@nxp.com

Communication Interface to NXP secure-enclave HW IP like Edgelock Enclave

Hardware interface of the NXP Secure Enclave  HW IP(s) like EdgeLock Enclave,
V2X, SHE etc, is based on the Messaging Unit module that enables processing
elements like ARMv8 core, RISC V core, within the SoC to communicate and
coordinate by passing messages (e.g., data, status and control) through 
these interfaces.

The NXP i.MX secure enclaves hardware interface kernel driver, is specifically
targeted for use between application core and NXP secure-enclave(s) HW. It allows
to send/receive messages to/from the secure-enclave.

Patch-set adds the kernel driver for communication interface to secure-enclave,
for exchanging messages with NXP secure enclave HW IP(s) like EdgeLock Enclave,
both from:
- User-Space Applications via character driver.
- Kernel-space, used by kernel management layers like DM-Crypt.

To: Jonathan Corbet <corbet@lwn.net>
To: Rob Herring <robh+dt@kernel.org>
To: Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>
To: Conor Dooley <conor+dt@kernel.org>
To: Shawn Guo <shawnguo@kernel.org>
To: Sascha Hauer <s.hauer@pengutronix.de>
To: Pengutronix Kernel Team <kernel@pengutronix.de>
To: Fabio Estevam <festevam@gmail.com>
To: Rob Herring <robh@kernel.org>
Cc: linux-doc@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Cc: devicetree@vger.kernel.org
Cc: imx@lists.linux.dev
Cc: linux-arm-kernel@lists.infradead.org
Signed-off-by: Pankaj Gupta <pankaj.gupta@nxp.com>

Changes in v3:
5/5:
- Initialize tx_msg with NULL.
- memdup_user() returns an error pointer, not NULL. correct it by adding check for err_ptr.
- new IOCTL is added to send & recieve the message.
- replaced the while loop till list is empty, with list_for_each_entry.
- replaced __list_del_entry, with list_del.
- Removed the dev_err message from copy to user.
- Removed the casting of void *.
- corrected the typcasting in copy to user.
- removed un-necessary goto statement.
- Removed dead code for clean-up of memory.
- Removed un-mapping of secured memory
- Passing se_if_priv structure to init_device_context.
- Updated the below check to replace io.length with round_up(io.length).
	if (shared_mem->size < shared_mem->pos|| io.length >= shared_mem->size - shared_mem->pos)
- Created a function to cleanup the list of shared memory buffers.
- Used list_for_each_entry_safe(). created a separate functions: se_dev_ctx_cpy_out_data() & se_dev_ctx_shared_mem_cleanup()

4/5
- Changed the compatible string to replace "-ele", to "-se".
- Declaration of imx_se_node_info, is done as const in the whole file
- Remove the unused macros from ele_base_msg.h
- Remove the function declaration get_phy_buf_mem_pool1, from the header file.
- Replace the use of dmam_alloc_coherent to dma_alloc_coherent
- Check for function pointer, before calling the fucntion pointer in imx_fetch_se_soc_info
- Removed the unused flag for SE_MU_IO_FLAGS_USE_SEC_MEM.
-  Removed the unused macros WORD_SZ
- instead of struct device *dev, struct se_if_priv *priv, is used as argument to the funtions:se_save_imem_state, se_restore_imem_state, imx_fetch_se_soc_info
- Removed ret from validate_rsp_hdr.
- changed the prefix of the funtion: plat_add_msg_crc and plat_fill_cmd_msg_hdr.
- indentation correction for info structures.
- remove the check for priv not null from se_if_probe_cleanup
- Removed the casting of void *.
- se_load_firmware function is corrected for not freeing the buffer when allocation fails.
- Checking if get_imx_se_node_info() can return NULL, in se_if_probe()
- imem.size has type u32. return value from se_save_imem_state() will be assigned to imem.size in case of success only.
- removed the flag un-setting in case of failure. priv->flags &= (~RESERVED_DMA_POOL);
- removed the function call for devm_of_platform_populate(dev);
- Checking for not-NULL,  before calling the funtion pointer se_fetch_soc_info.
- Removed the checking for reserved memory flag, before freeing up the reserved memory, in se_probe_if_cleanup.

3/5
- Changed the compatible string to replace "-ele", to "-se".

2/5
- to fix the warning error, replaced the "-ele" & "-v2x" in compatible string, to "-se".
- Added an example for ele@0 for compatible string "fsl,imx95-se"

Changes in v2:

4/4
- Split this patch into two: 1. base driver & 2. Miscdev
- Initialize the return variable "err" as 0, before calling 'return err', in the file ele_common.c
- Fix the usage of un-iniitialized pointer variable, by initializing them with NULL, in ele_base_msg.c.
- Fix initializing the ret variable, to return the correct error code in case of issue.
- replaced dmam_alloc_coherent with dma_alloc_coherent.
- Replace the use of ELE_GET_INFO_READ_SZ, with sizeof(soc_info).
- Replaced -1 with -EPERM
- Removed the safety check on func-input param, in ele_get_info().
- fix the assigning data[1] with lower 32 address, rather than zero, for ele_fw_authenticate API.
- Correctly initializing the function's return error code, for file  ele_base_msg.c.
- replaced 'return' with 'goto'.
- Use length in bytes.
- Corrected the structure se_msg_hdr.
- Moved setting of rx_msg  to priv, into the function imx_ele_msg_send_rcv
- Will add lockdep_assert_held, to receive path, in v2.
- corrected the spacing at "ret  = validate_rsp_hdr"
- FIELD_GET() used for RES_STATUS
- Re-write the structure soc_info, matching the information provided in response to this api.
- The "|" goes to the end of the previous line. 
- Moved the locking and unlocking of the command lock to the caller of the function.
- removed the safety check for device private data.
- Structure memory reference, used to read message header.
- In the interrupt call back function, remove assigning waiting_rsp_dev to NULL, in case of response message rcv from FW.
- do while removed.
- replaced BIT(1) for RESERVED_DMA_POOL, to BIT(0)
- The backslash is removed while assigning the file name with absolute path to structure variable.fw_name_in_rfs =.
- Update the 'if' condition by removing "idx < 0".
- mbox_request_channel_byname() uses a "char" for the name not a u8. Corrected.
- devm managed resources, are not cleaned now, in function se_probe_if_cleanup
- Used dev_err_probe().
- Used %pe to print error string.
- remove "__maybe_unused" for "struct platform_device *enum_plat_dev __maybe_unused;"
- used FIELD_GET(), for  RES_STATUS. Removed the use of MSG_TAG, MSG_COMMAND, MSG_SIZE, MSG_VER.
- Depricated the used of member of struct se_if_priv, bool no_dev_ctx_used;
- Moved the text explaing the synchronization logic via mutexes, from patch 1/4 to se_ctrl.h.
- removed the type casting of info_list = (struct imx_se_node_info_list *) device_get_match_data(dev->parent);
- Used static variable priv->soc_rev in the se_ctrl.c, replaced the following condition: if (info_list->soc_rev) to if (priv->soc_rev) for checking if this flow is already executed or not.
- imx_fetch_soc_info will return failure if the get_info function fails.
- Removed devm_free from imx_fetch_soc_info too.

3/3
- Made changes to move all the properties to parent node, without any child node.

2/4
- Use Hex pattern string.
- Move the properties to parent node, with no child node.
- Add i.MX95-ele to compatible nodes to fix the warning "/example-2/v2x: failed to match any schema with compatible: ['fsl,imx95-v2x']"

1/1
- Corrected the spelling from creats to creates.
- drop the braces around the plural 's' for interfaces
- written se in upper case SE.
- Replace "multiple message(s)" with messages.
- Removed too much details about locks.

Testing
- make CHECK_DTBS=y freescale/imx8ulp-evk.dtb;
- make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -j8  dt_binding_check DT_SCHEMA_FILES=fsl,imx-se.yaml
- make C=1 CHECK=scripts/coccicheck drivers/firmware/imx/*.* W=1 > r.txt
- ./scripts/checkpatch.pl --git <>..HEAD
- Tested the Image and .dtb, on the i.MX8ULP.

Reference
- Link to v1: https://lore.kernel.org/r/20240510-imx-se-if-v1-0-27c5a674916d@nxp.com
- Link to v2: https://lore.kernel.org/r/20240523-imx-se-if-v2-0-5a6fd189a539@nxp.com

---
Pankaj Gupta (5):
      Documentation/firmware: add imx/se to other_interfaces
      dt-bindings: arm: fsl: add imx-se-fw binding doc
      arm64: dts: imx8ulp-evk: add nxp secure enclave firmware
      firmware: imx: add driver for NXP EdgeLock Enclave
      firmware: imx: adds miscdev

 Documentation/ABI/testing/se-cdev                  |   43 +
 .../devicetree/bindings/firmware/fsl,imx-se.yaml   |  133 +++
 .../driver-api/firmware/other_interfaces.rst       |  121 ++
 arch/arm64/boot/dts/freescale/imx8ulp-evk.dts      |   17 +-
 arch/arm64/boot/dts/freescale/imx8ulp.dtsi         |   14 +-
 drivers/firmware/imx/Kconfig                       |   12 +
 drivers/firmware/imx/Makefile                      |    2 +
 drivers/firmware/imx/ele_base_msg.c                |  251 ++++
 drivers/firmware/imx/ele_base_msg.h                |   93 ++
 drivers/firmware/imx/ele_common.c                  |  450 ++++++++
 drivers/firmware/imx/ele_common.h                  |   48 +
 drivers/firmware/imx/se_ctrl.c                     | 1197 ++++++++++++++++++++
 drivers/firmware/imx/se_ctrl.h                     |  132 +++
 include/linux/firmware/imx/se_api.h                |   14 +
 include/uapi/linux/se_ioctl.h                      |   94 ++
 15 files changed, 2618 insertions(+), 3 deletions(-)
---
base-commit: b63ff26648537a5600cf79bd62f916792c53e015
change-id: 20240507-imx-se-if-a40055093dc6

Best regards,
-- 
Pankaj Gupta <pankaj.gupta@nxp.com>

.

From: Aditya Garg <gargaditya08@live.com>
To: Hans de Goede <hdegoede@redhat.com>, Lukas Wunner <lukas@wunner.de>,
	"Rafael J . Wysocki" <rafael@kernel.org>, Len Brown <lenb@kernel.org>
CC: "linux-acpi@vger.kernel.org" <linux-acpi@vger.kernel.org>, Linux Kernel
 Mailing List <linux-kernel@vger.kernel.org>, Orlando Chamberlain
	<orlandoch.dev@gmail.com>
Subject: [PATCH] acpi video: force native for some T2 macbooks
Date: Fri, 5 Jul 2024 13:56:24 +0000
Message-ID: <3DA0EAE3-9EB7-492B-96FC-988503BBDCCC@live.com>
Accept-Language: en-IN, en-US
Content-Language: en-US
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1269267
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-acpi
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

From: Orlando Chamberlain <orlandoch.dev@gmail.com>

The intel backlight is needed for these, previously users had nothing in
/sys/class/backlight.

Signed-off-by: Orlando Chamberlain <orlandoch.dev@gmail.com>
Signed-off-by: Aditya Garg <gargaditya08@live.com>
---
 drivers/acpi/video_detect.c | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/drivers/acpi/video_detect.c b/drivers/acpi/video_detect.c
index 442396f6ed1f..baf7264d7b94 100644
--- a/drivers/acpi/video_detect.c
+++ b/drivers/acpi/video_detect.c
@@ -513,6 +513,14 @@ static const struct dmi_system_id video_detect_dmi_tab=
le[] =3D {
 		DMI_MATCH(DMI_PRODUCT_NAME, "iMac12,2"),
 		},
 	},
+	{
+	 .callback =3D video_detect_force_native,
+	 /* Apple MacBook Air 9,1 */
+	 .matches =3D {
+		DMI_MATCH(DMI_SYS_VENDOR, "Apple Inc."),
+		DMI_MATCH(DMI_PRODUCT_NAME, "MacBookAir9,1"),
+		},
+	},
 	{
 	 /* https://bugzilla.redhat.com/show_bug.cgi?id=3D1217249 */
 	 .callback =3D video_detect_force_native,
@@ -522,6 +530,14 @@ static const struct dmi_system_id video_detect_dmi_tab=
le[] =3D {
 		DMI_MATCH(DMI_PRODUCT_NAME, "MacBookPro12,1"),
 		},
 	},
+	{
+	 .callback =3D video_detect_force_native,
+	 /* Apple MacBook Pro 16,2 */
+	 .matches =3D {
+		DMI_MATCH(DMI_SYS_VENDOR, "Apple Inc."),
+		DMI_MATCH(DMI_PRODUCT_NAME, "MacBookPro16,2"),
+		},
+	},
 	{
 	 .callback =3D video_detect_force_native,
 	 /* Dell Inspiron N4010 */
--=20
2.42.1

.

From: Edson Juliano Drosdeck <edson.drosdeck@gmail.com>
To: tiwai@suse.com
Cc: perex@perex.cz,
	kailang@realtek.com,
	sbinding@opensource.cirrus.com,
	shenghao-ding@ti.com,
	simont@opensource.cirrus.com,
	foss@athaariq.my.id,
	rf@opensource.cirrus.com,
	linux-sound@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	edson.drosdeck@gmail.com
Subject: [PATCH] ALSA: hda/realtek: Limit mic boost on VAIO PRO PX
Date: Fri,  5 Jul 2024 11:10:12 -0300
Message-Id: <20240705141012.5368-1-edson.drosdeck@gmail.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1269273
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-sound
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

The internal mic boost on the VAIO models VJFE-CL and VJFE-IL is too high.
Fix this by applying the ALC269_FIXUP_LIMIT_INT_MIC_BOOST fixup to the machine
to limit the gain.

Signed-off-by: Edson Juliano Drosdeck <edson.drosdeck@gmail.com>
---
 sound/pci/hda/patch_realtek.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index 811e82474200..ca42a662f16e 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -10383,6 +10383,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
 	SND_PCI_QUIRK(0x10cf, 0x1845, "Lifebook U904", ALC269_FIXUP_LIFEBOOK_EXTMIC),
 	SND_PCI_QUIRK(0x10ec, 0x10f2, "Intel Reference board", ALC700_FIXUP_INTEL_REFERENCE),
 	SND_PCI_QUIRK(0x10ec, 0x118c, "Medion EE4254 MD62100", ALC256_FIXUP_MEDION_HEADSET_NO_PRESENCE),
+	SND_PCI_QUIRK(0x10ec, 0x11bc, "VAIO VJFE-IL", ALC269_FIXUP_LIMIT_INT_MIC_BOOST),
 	SND_PCI_QUIRK(0x10ec, 0x1230, "Intel Reference board", ALC295_FIXUP_CHROME_BOOK),
 	SND_PCI_QUIRK(0x10ec, 0x124c, "Intel Reference board", ALC295_FIXUP_CHROME_BOOK),
 	SND_PCI_QUIRK(0x10ec, 0x1252, "Intel Reference board", ALC295_FIXUP_CHROME_BOOK),
@@ -10655,6 +10656,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
 	SND_PCI_QUIRK(0x1d72, 0x1901, "RedmiBook 14", ALC256_FIXUP_ASUS_HEADSET_MIC),
 	SND_PCI_QUIRK(0x1d72, 0x1945, "Redmi G", ALC256_FIXUP_ASUS_HEADSET_MIC),
 	SND_PCI_QUIRK(0x1d72, 0x1947, "RedmiBook Air", ALC255_FIXUP_XIAOMI_HEADSET_MIC),
+	SND_PCI_QUIRK(0x2782, 0x0214, "VAIO VJFE-CL", ALC269_FIXUP_LIMIT_INT_MIC_BOOST),
 	SND_PCI_QUIRK(0x2782, 0x0232, "CHUWI CoreBook XPro", ALC269VB_FIXUP_CHUWI_COREBOOK_XPRO),
 	SND_PCI_QUIRK(0x2782, 0x1707, "Vaio VJFE-ADL", ALC298_FIXUP_SPK_VOLUME),
 	SND_PCI_QUIRK(0x8086, 0x2074, "Intel NUC 8", ALC233_FIXUP_INTEL_NUC8_DMIC),
-- 
2.39.2

.

From: Bartosz Golaszewski <brgl@bgdev.pl>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Linus Walleij <linus.walleij@linaro.org>,
	linux-gpio@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Subject: [GIT PULL] gpio: fixes for v6.10-rc7
Date: Fri,  5 Jul 2024 16:15:44 +0200
Message-ID: <20240705141544.20101-1-bartosz.golaszewski@linaro.org>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1269279
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-gpio
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Linus,

Please pull the following set of fixes for the next RC. There are two OF
lookup quirks and one fix for an issue in the generic gpio-mmio driver.

Best Regards,
Bartosz Golaszewski

The following changes since commit 22a40d14b572deb80c0648557f4bd502d7e83826:

  Linux 6.10-rc6 (2024-06-30 14:40:44 -0700)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux.git tags/gpio-fixes-for-v6.10-rc7

for you to fetch changes up to f8d76c2c313c56d5cb894a243dff4550f048278d:

  gpiolib: of: add polarity quirk for TSC2005 (2024-07-05 11:00:45 +0200)

----------------------------------------------------------------
gpio fixes for v6.10-rc7

- add two OF lookup quirks for TSC2005 and MIPS Lantiq
- don't try to figure out bgpio_bits from the "ngpios" property in gpio-mmio

----------------------------------------------------------------
Dmitry Torokhov (2):
      gpiolib: of: fix lookup quirk for MIPS Lantiq
      gpiolib: of: add polarity quirk for TSC2005

Shiji Yang (1):
      gpio: mmio: do not calculate bgpio_bits via "ngpios"

 drivers/gpio/gpio-mmio.c  |  2 --
 drivers/gpio/gpiolib-of.c | 22 ++++++++++++++++++++--
 2 files changed, 20 insertions(+), 4 deletions(-)
.

From: Jiaxun Yang <jiaxun.yang@flygoat.com>
Subject: [PATCH v2 00/10] MIPS: IPI Improvements
Date: Fri, 05 Jul 2024 22:16:52 +0800
Message-Id: <20240705-b4-mips-ipi-improvements-v2-0-2d50b56268e8@flygoat.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
To: Thomas Bogendoerfer <tsbogend@alpha.franken.de>, 
 Florian Fainelli <florian.fainelli@broadcom.com>, 
 Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
 Huacai Chen <chenhuacai@kernel.org>, Thomas Gleixner <tglx@linutronix.de>, 
 Serge Semin <fancer.lancer@gmail.com>, Paul Burton <paulburton@kernel.org>
Cc: linux-mips@vger.kernel.org, linux-kernel@vger.kernel.org, 
 Jiaxun Yang <jiaxun.yang@flygoat.com>
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1269281
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-mips
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Hi all,

This series improved general handling to MIPS IPI interrupts, made
IPI numbers scalable, and switch to IPI-MUX for all GERNERIC_IPI
users on mux.

It is a prerequisite for enabling IRQ_WORK for MIPS.

It has been tested on MIPS Boston I6500, malta CoreFPGA3 47K MT/
interAPtiv MPF, Loongson-2K, Cavium CN7130 (EdgeRouter 4), and an
unannounced interaptiv UP MT platform with EIC.

I don't really know broadcom platforms and SGI platforms well so
changes to those platforms are kept minimal (no functional change).

Please review.
Thanks

Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
---
Changes in v2:
- Build warning fixes
- Massage commit messages
- Link to v1: https://lore.kernel.org/r/20240616-b4-mips-ipi-improvements-v1-0-e332687f1692@flygoat.com

---
Jiaxun Yang (10):
      MIPS: smp: Make IPI interrupts scalable
      MIPS: smp: Manage IPI interrupts as percpu_devid interrupts
      MIPS: smp: Provide platform IPI virq & domain hooks
      MIPS: Move mips_smp_ipi_init call after prepare_cpus
      MIPS: smp: Implement IPI stats
      irqchip: irq-mips-gic: Switch to ipi_mux
      MIPS: Implement get_mips_sw_int hook
      MIPS: GIC: Implement get_sw_int hook
      irqchip: irq-mips-cpu: Rework software IRQ handling flow
      MIPS: smp-mt: Rework IPI functions

 arch/mips/Kconfig                     |   2 +
 arch/mips/cavium-octeon/smp.c         | 111 ++++++------------
 arch/mips/fw/arc/init.c               |   1 -
 arch/mips/generic/irq.c               |  15 +++
 arch/mips/include/asm/ipi.h           |  71 ++++++++++++
 arch/mips/include/asm/irq.h           |   1 +
 arch/mips/include/asm/irq_cpu.h       |   3 +
 arch/mips/include/asm/mips-gic.h      |  10 ++
 arch/mips/include/asm/octeon/octeon.h |   2 +
 arch/mips/include/asm/smp-ops.h       |   8 +-
 arch/mips/include/asm/smp.h           |  42 +++----
 arch/mips/kernel/irq.c                |  21 ++++
 arch/mips/kernel/smp-bmips.c          |  43 ++++---
 arch/mips/kernel/smp-cps.c            |   2 +
 arch/mips/kernel/smp-mt.c             |  70 +++++++++++
 arch/mips/kernel/smp.c                | 213 +++++++++++++++++++++-------------
 arch/mips/loongson64/smp.c            |  52 +++++----
 arch/mips/mm/c-octeon.c               |   3 +-
 arch/mips/sgi-ip27/ip27-smp.c         |  15 ++-
 arch/mips/sgi-ip30/ip30-smp.c         |  15 ++-
 arch/mips/sibyte/bcm1480/smp.c        |  19 +--
 arch/mips/sibyte/sb1250/smp.c         |  13 ++-
 drivers/irqchip/Kconfig               |   2 +-
 drivers/irqchip/irq-mips-cpu.c        | 180 ++++++++--------------------
 drivers/irqchip/irq-mips-gic.c        | 213 +++++++++++++---------------------
 25 files changed, 596 insertions(+), 531 deletions(-)
---
base-commit: 0b58e108042b0ed28a71cd7edf5175999955b233
change-id: 20240616-b4-mips-ipi-improvements-f8c86b1dc677

Best regards,
-- 
Jiaxun Yang <jiaxun.yang@flygoat.com>

.

Date: Fri, 5 Jul 2024 16:21:03 +0200
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
To: Thomas Gleixner <tglx@linutronix.de>
Cc: LKML <linux-kernel@vger.kernel.org>, linux-rt-users@vger.kernel.org,
	Steven Rostedt <rostedt@goodmis.org>
Subject: [ANNOUNCE] v6.10-rc6-rt11
Message-ID: <20240705142103.JffNrDYN@linutronix.de>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1269294
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-rt-users
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Dear RT folks!

I'm pleased to announce the v6.10-rc6-rt11 patch set. 

Changes since v6.10-rc6-rt10:

  - Update the series to fix "perf test sigtrap" to v5.

  - As a follow-up to the net/BH series:

    - Add an optimisation to lazy initialize the flush lists.

    - Initialize the BPF context within the tun driver and others using
      the generic-XDP to avoid crash.

    - Add a check to the seg6_state/ BPF code to only use it within the
      "expected" call path.

Known issues
    None.

The delta patch against v6.10-rc6-rt10 is appended below and can be found here:
 
     https://cdn.kernel.org/pub/linux/kernel/projects/rt/6.10/incr/patch-6.10-rc6-rt10-rt11.patch.xz

You can get this release via the git tree at:

    https://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git v6.10-rc6-rt11

The RT patch against v6.10-rc6 can be found here:

    https://cdn.kernel.org/pub/linux/kernel/projects/rt/6.10/older/patch-6.10-rc6-rt11.patch.xz

The split quilt queue is available at:

    https://cdn.kernel.org/pub/linux/kernel/projects/rt/6.10/older/patches-6.10-rc6-rt11.tar.xz

Sebastian

diff --git a/drivers/net/tun.c b/drivers/net/tun.c
index 9254bca2813dc..9b24861464bc6 100644
--- a/drivers/net/tun.c
+++ b/drivers/net/tun.c
@@ -1661,6 +1661,7 @@ static struct sk_buff *tun_build_skb(struct tun_struct *tun,
 				     int len, int *skb_xdp)
 {
 	struct page_frag *alloc_frag = &current->task_frag;
+	struct bpf_net_context __bpf_net_ctx, *bpf_net_ctx;
 	struct bpf_prog *xdp_prog;
 	int buflen = SKB_DATA_ALIGN(sizeof(struct skb_shared_info));
 	char *buf;
@@ -1700,6 +1701,7 @@ static struct sk_buff *tun_build_skb(struct tun_struct *tun,
 
 	local_bh_disable();
 	rcu_read_lock();
+	bpf_net_ctx = bpf_net_ctx_set(&__bpf_net_ctx);
 	xdp_prog = rcu_dereference(tun->xdp_prog);
 	if (xdp_prog) {
 		struct xdp_buff xdp;
@@ -1728,12 +1730,14 @@ static struct sk_buff *tun_build_skb(struct tun_struct *tun,
 		pad = xdp.data - xdp.data_hard_start;
 		len = xdp.data_end - xdp.data;
 	}
+	bpf_net_ctx_clear(bpf_net_ctx);
 	rcu_read_unlock();
 	local_bh_enable();
 
 	return __tun_build_skb(tfile, alloc_frag, buf, buflen, len, pad);
 
 out:
+	bpf_net_ctx_clear(bpf_net_ctx);
 	rcu_read_unlock();
 	local_bh_enable();
 	return NULL;
@@ -2566,6 +2570,7 @@ static int tun_sendmsg(struct socket *sock, struct msghdr *m, size_t total_len)
 
 	if (m->msg_controllen == sizeof(struct tun_msg_ctl) &&
 	    ctl && ctl->type == TUN_MSG_PTR) {
+		struct bpf_net_context __bpf_net_ctx, *bpf_net_ctx;
 		struct tun_page tpage;
 		int n = ctl->num;
 		int flush = 0, queued = 0;
@@ -2574,6 +2579,7 @@ static int tun_sendmsg(struct socket *sock, struct msghdr *m, size_t total_len)
 
 		local_bh_disable();
 		rcu_read_lock();
+		bpf_net_ctx = bpf_net_ctx_set(&__bpf_net_ctx);
 
 		for (i = 0; i < n; i++) {
 			xdp = &((struct xdp_buff *)ctl->ptr)[i];
@@ -2588,6 +2594,7 @@ static int tun_sendmsg(struct socket *sock, struct msghdr *m, size_t total_len)
 		if (tfile->napi_enabled && queued > 0)
 			napi_schedule(&tfile->napi);
 
+		bpf_net_ctx_clear(bpf_net_ctx);
 		rcu_read_unlock();
 		local_bh_enable();
 
diff --git a/include/linux/bpf.h b/include/linux/bpf.h
index 5e694a308081a..ff261349b5ed3 100644
--- a/include/linux/bpf.h
+++ b/include/linux/bpf.h
@@ -2492,7 +2492,7 @@ struct sk_buff;
 struct bpf_dtab_netdev;
 struct bpf_cpu_map_entry;
 
-void __dev_flush(void);
+void __dev_flush(struct list_head *flush_list);
 int dev_xdp_enqueue(struct net_device *dev, struct xdp_frame *xdpf,
 		    struct net_device *dev_rx);
 int dev_map_enqueue(struct bpf_dtab_netdev *dst, struct xdp_frame *xdpf,
@@ -2505,7 +2505,7 @@ int dev_map_redirect_multi(struct net_device *dev, struct sk_buff *skb,
 			   struct bpf_prog *xdp_prog, struct bpf_map *map,
 			   bool exclude_ingress);
 
-void __cpu_map_flush(void);
+void __cpu_map_flush(struct list_head *flush_list);
 int cpu_map_enqueue(struct bpf_cpu_map_entry *rcpu, struct xdp_frame *xdpf,
 		    struct net_device *dev_rx);
 int cpu_map_generic_redirect(struct bpf_cpu_map_entry *rcpu,
@@ -2642,8 +2642,6 @@ void bpf_dynptr_init(struct bpf_dynptr_kern *ptr, void *data,
 void bpf_dynptr_set_null(struct bpf_dynptr_kern *ptr);
 void bpf_dynptr_set_rdonly(struct bpf_dynptr_kern *ptr);
 
-bool dev_check_flush(void);
-bool cpu_map_check_flush(void);
 #else /* !CONFIG_BPF_SYSCALL */
 static inline struct bpf_prog *bpf_prog_get(u32 ufd)
 {
@@ -2731,7 +2729,7 @@ static inline struct bpf_token *bpf_token_get_from_fd(u32 ufd)
 	return ERR_PTR(-EOPNOTSUPP);
 }
 
-static inline void __dev_flush(void)
+static inline void __dev_flush(struct list_head *flush_list)
 {
 }
 
@@ -2777,7 +2775,7 @@ int dev_map_redirect_multi(struct net_device *dev, struct sk_buff *skb,
 	return 0;
 }
 
-static inline void __cpu_map_flush(void)
+static inline void __cpu_map_flush(struct list_head *flush_list)
 {
 }
 
diff --git a/include/linux/filter.h b/include/linux/filter.h
index 13bed50194237..2b8503fecd026 100644
--- a/include/linux/filter.h
+++ b/include/linux/filter.h
@@ -739,6 +739,7 @@ struct bpf_nh_params {
 #define BPF_RI_F_CPU_MAP_INIT	BIT(2)
 #define BPF_RI_F_DEV_MAP_INIT	BIT(3)
 #define BPF_RI_F_XSK_MAP_INIT	BIT(4)
+#define BPF_RI_F_SEG6_STATE	BIT(5)
 
 struct bpf_redirect_info {
 	u64 tgt_index;
@@ -829,6 +830,56 @@ static inline struct list_head *bpf_net_ctx_get_xskmap_flush_list(void)
 	return &bpf_net_ctx->xskmap_map_flush_list;
 }
 
+static inline void bpf_net_ctx_get_all_used_flush_lists(struct list_head **lh_map,
+							struct list_head **lh_dev,
+							struct list_head **lh_xsk)
+{
+	struct bpf_net_context *bpf_net_ctx = bpf_net_ctx_get();
+	u32 kern_flags = bpf_net_ctx->ri.kern_flags;
+	struct list_head *lh;
+
+	*lh_map = *lh_dev = *lh_xsk = NULL;
+
+	if (!IS_ENABLED(CONFIG_BPF_SYSCALL))
+		return;
+
+	lh = &bpf_net_ctx->dev_map_flush_list;
+	if (kern_flags & BPF_RI_F_DEV_MAP_INIT && !list_empty(lh))
+		*lh_dev = lh;
+
+	lh = &bpf_net_ctx->cpu_map_flush_list;
+	if (kern_flags & BPF_RI_F_CPU_MAP_INIT && !list_empty(lh))
+		*lh_map = lh;
+
+	lh = &bpf_net_ctx->xskmap_map_flush_list;
+	if (IS_ENABLED(CONFIG_XDP_SOCKETS) &&
+	    kern_flags & BPF_RI_F_XSK_MAP_INIT && !list_empty(lh))
+		*lh_xsk = lh;
+}
+
+static inline bool bpf_net_ctx_seg6_state_avail(void)
+{
+	struct bpf_net_context *bpf_net_ctx = bpf_net_ctx_get();
+
+	if (!bpf_net_ctx)
+		return false;
+	return bpf_net_ctx->ri.kern_flags & BPF_RI_F_SEG6_STATE;
+}
+
+static inline void bpf_net_ctx_seg6_state_set(void)
+{
+	struct bpf_net_context *bpf_net_ctx = bpf_net_ctx_get();
+
+	bpf_net_ctx->ri.kern_flags |= BPF_RI_F_SEG6_STATE;
+}
+
+static inline void bpf_net_ctx_seg6_state_clr(void)
+{
+	struct bpf_net_context *bpf_net_ctx = bpf_net_ctx_get();
+
+	bpf_net_ctx->ri.kern_flags &= ~BPF_RI_F_SEG6_STATE;
+}
+
 /* Compute the linear packet data range [data, data_end) which
  * will be accessed by various program types (cls_bpf, act_bpf,
  * lwt, ...). Subsystems allowing direct data access must (!)
diff --git a/include/linux/task_work.h b/include/linux/task_work.h
index 26b8a47f41fca..cf5e7e891a776 100644
--- a/include/linux/task_work.h
+++ b/include/linux/task_work.h
@@ -18,6 +18,7 @@ enum task_work_notify_mode {
 	TWA_RESUME,
 	TWA_SIGNAL,
 	TWA_SIGNAL_NO_IPI,
+	TWA_NMI_CURRENT,
 };
 
 static inline bool task_work_pending(struct task_struct *task)
diff --git a/include/net/xdp_sock.h b/include/net/xdp_sock.h
index 3d54de168a6d9..bfe625b55d55d 100644
--- a/include/net/xdp_sock.h
+++ b/include/net/xdp_sock.h
@@ -121,7 +121,7 @@ struct xsk_tx_metadata_ops {
 
 int xsk_generic_rcv(struct xdp_sock *xs, struct xdp_buff *xdp);
 int __xsk_map_redirect(struct xdp_sock *xs, struct xdp_buff *xdp);
-void __xsk_map_flush(void);
+void __xsk_map_flush(struct list_head *flush_list);
 
 /**
  *  xsk_tx_metadata_to_compl - Save enough relevant metadata information
@@ -206,7 +206,7 @@ static inline int __xsk_map_redirect(struct xdp_sock *xs, struct xdp_buff *xdp)
 	return -EOPNOTSUPP;
 }
 
-static inline void __xsk_map_flush(void)
+static inline void __xsk_map_flush(struct list_head *flush_list)
 {
 }
 
@@ -228,14 +228,4 @@ static inline void xsk_tx_metadata_complete(struct xsk_tx_metadata_compl *compl,
 }
 
 #endif /* CONFIG_XDP_SOCKETS */
-
-#if defined(CONFIG_XDP_SOCKETS) && defined(CONFIG_DEBUG_NET)
-bool xsk_map_check_flush(void);
-#else
-static inline bool xsk_map_check_flush(void)
-{
-	return false;
-}
-#endif
-
 #endif /* _LINUX_XDP_SOCK_H */
diff --git a/kernel/bpf/cpumap.c b/kernel/bpf/cpumap.c
index 068e994ed781a..fbdf5a1aabfe4 100644
--- a/kernel/bpf/cpumap.c
+++ b/kernel/bpf/cpumap.c
@@ -707,7 +707,6 @@ static void bq_flush_to_queue(struct xdp_bulk_queue *bq)
  */
 static void bq_enqueue(struct bpf_cpu_map_entry *rcpu, struct xdp_frame *xdpf)
 {
-	struct list_head *flush_list = bpf_net_ctx_get_cpu_map_flush_list();
 	struct xdp_bulk_queue *bq = this_cpu_ptr(rcpu->bulkq);
 
 	if (unlikely(bq->count == CPU_MAP_BULK_SIZE))
@@ -724,8 +723,11 @@ static void bq_enqueue(struct bpf_cpu_map_entry *rcpu, struct xdp_frame *xdpf)
 	 */
 	bq->q[bq->count++] = xdpf;
 
-	if (!bq->flush_node.prev)
+	if (!bq->flush_node.prev) {
+		struct list_head *flush_list = bpf_net_ctx_get_cpu_map_flush_list();
+
 		list_add(&bq->flush_node, flush_list);
+	}
 }
 
 int cpu_map_enqueue(struct bpf_cpu_map_entry *rcpu, struct xdp_frame *xdpf,
@@ -757,9 +759,8 @@ int cpu_map_generic_redirect(struct bpf_cpu_map_entry *rcpu,
 	return ret;
 }
 
-void __cpu_map_flush(void)
+void __cpu_map_flush(struct list_head *flush_list)
 {
-	struct list_head *flush_list = bpf_net_ctx_get_cpu_map_flush_list();
 	struct xdp_bulk_queue *bq, *tmp;
 
 	list_for_each_entry_safe(bq, tmp, flush_list, flush_node) {
@@ -769,13 +770,3 @@ void __cpu_map_flush(void)
 		wake_up_process(bq->obj->kthread);
 	}
 }
-
-#ifdef CONFIG_DEBUG_NET
-bool cpu_map_check_flush(void)
-{
-	if (list_empty(bpf_net_ctx_get_cpu_map_flush_list()))
-		return false;
-	__cpu_map_flush();
-	return true;
-}
-#endif
diff --git a/kernel/bpf/devmap.c b/kernel/bpf/devmap.c
index 317ac2d66ebd1..b18d4a14a0a70 100644
--- a/kernel/bpf/devmap.c
+++ b/kernel/bpf/devmap.c
@@ -412,9 +412,8 @@ static void bq_xmit_all(struct xdp_dev_bulk_queue *bq, u32 flags)
  * driver before returning from its napi->poll() routine. See the comment above
  * xdp_do_flush() in filter.c.
  */
-void __dev_flush(void)
+void __dev_flush(struct list_head *flush_list)
 {
-	struct list_head *flush_list = bpf_net_ctx_get_dev_flush_list();
 	struct xdp_dev_bulk_queue *bq, *tmp;
 
 	list_for_each_entry_safe(bq, tmp, flush_list, flush_node) {
@@ -425,16 +424,6 @@ void __dev_flush(void)
 	}
 }
 
-#ifdef CONFIG_DEBUG_NET
-bool dev_check_flush(void)
-{
-	if (list_empty(bpf_net_ctx_get_dev_flush_list()))
-		return false;
-	__dev_flush();
-	return true;
-}
-#endif
-
 /* Elements are kept alive by RCU; either by rcu_read_lock() (from syscall) or
  * by local_bh_disable() (from XDP calls inside NAPI). The
  * rcu_read_lock_bh_held() below makes lockdep accept both.
@@ -459,7 +448,6 @@ static void *__dev_map_lookup_elem(struct bpf_map *map, u32 key)
 static void bq_enqueue(struct net_device *dev, struct xdp_frame *xdpf,
 		       struct net_device *dev_rx, struct bpf_prog *xdp_prog)
 {
-	struct list_head *flush_list = bpf_net_ctx_get_dev_flush_list();
 	struct xdp_dev_bulk_queue *bq = this_cpu_ptr(dev->xdp_bulkq);
 
 	if (unlikely(bq->count == DEV_MAP_BULK_SIZE))
@@ -473,6 +461,8 @@ static void bq_enqueue(struct net_device *dev, struct xdp_frame *xdpf,
 	 * are only ever modified together.
 	 */
 	if (!bq->dev_rx) {
+		struct list_head *flush_list = bpf_net_ctx_get_dev_flush_list();
+
 		bq->dev_rx = dev_rx;
 		bq->xdp_prog = xdp_prog;
 		list_add(&bq->flush_node, flush_list);
diff --git a/kernel/events/core.c b/kernel/events/core.c
index 8bba63ea9c686..0acf6ee4df528 100644
--- a/kernel/events/core.c
+++ b/kernel/events/core.c
@@ -9729,26 +9729,21 @@ static int __perf_event_overflow(struct perf_event *event,
 		 */
 		bool valid_sample = sample_is_allowed(event, regs);
 		unsigned int pending_id = 1;
+		enum task_work_notify_mode notify_mode;
 
 		if (regs)
 			pending_id = hash32_ptr((void *)instruction_pointer(regs)) ?: 1;
 
+		notify_mode = in_nmi() ? TWA_NMI_CURRENT : TWA_RESUME;
+
 		if (!event->pending_work &&
-		    !task_work_add(current, &event->pending_task, TWA_RESUME)) {
+		    !task_work_add(current, &event->pending_task, notify_mode)) {
 			event->pending_work = pending_id;
 			local_inc(&event->ctx->nr_pending);
 
 			event->pending_addr = 0;
 			if (valid_sample && (data->sample_flags & PERF_SAMPLE_ADDR))
 				event->pending_addr = data->addr;
-			/*
-			 * The NMI path returns directly to userland. The
-			 * irq_work is raised as a dummy interrupt to ensure
-			 * regular return path to user is taken and task_work
-			 * is processed.
-			 */
-			if (in_nmi())
-				irq_work_queue(&event->pending_disable_irq);
 
 		} else if (event->attr.exclude_kernel && valid_sample) {
 			/*
diff --git a/kernel/fork.c b/kernel/fork.c
index f314bdd7e6108..99076dbe27d83 100644
--- a/kernel/fork.c
+++ b/kernel/fork.c
@@ -2355,7 +2355,6 @@ __latent_entropy struct task_struct *copy_process(
 	RCU_INIT_POINTER(p->bpf_storage, NULL);
 	p->bpf_ctx = NULL;
 #endif
-	p->bpf_net_context =  NULL;
 
 	/* Perform scheduler related setup. Assign this task to a CPU. */
 	retval = sched_fork(clone_flags, p);
diff --git a/kernel/task_work.c b/kernel/task_work.c
index 2134ac8057a94..05fb41fe09f5d 100644
--- a/kernel/task_work.c
+++ b/kernel/task_work.c
@@ -1,10 +1,19 @@
 // SPDX-License-Identifier: GPL-2.0
+#include <linux/irq_work.h>
 #include <linux/spinlock.h>
 #include <linux/task_work.h>
 #include <linux/resume_user_mode.h>
+#include <trace/events/ipi.h>
 
 static struct callback_head work_exited; /* all we need is ->next == NULL */
 
+static void task_work_set_notify_irq(struct irq_work *entry)
+{
+	test_and_set_tsk_thread_flag(current, TIF_NOTIFY_RESUME);
+}
+static DEFINE_PER_CPU(struct irq_work, irq_work_NMI_resume) =
+	IRQ_WORK_INIT_HARD(task_work_set_notify_irq);
+
 /**
  * task_work_add - ask the @task to execute @work->func()
  * @task: the task which should run the callback
@@ -12,7 +21,7 @@ static struct callback_head work_exited; /* all we need is ->next == NULL */
  * @notify: how to notify the targeted task
  *
  * Queue @work for task_work_run() below and notify the @task if @notify
- * is @TWA_RESUME, @TWA_SIGNAL, or @TWA_SIGNAL_NO_IPI.
+ * is @TWA_RESUME, @TWA_SIGNAL, @TWA_SIGNAL_NO_IPI or @TWA_NMI_CURRENT.
  *
  * @TWA_SIGNAL works like signals, in that the it will interrupt the targeted
  * task and run the task_work, regardless of whether the task is currently
@@ -24,6 +33,8 @@ static struct callback_head work_exited; /* all we need is ->next == NULL */
  * kernel anyway.
  * @TWA_RESUME work is run only when the task exits the kernel and returns to
  * user mode, or before entering guest mode.
+ * @TWA_NMI_CURRENT works like @TWA_RESUME, except it can only be used for the
+ * current @task and if the current context is NMI.
  *
  * Fails if the @task is exiting/exited and thus it can't process this @work.
  * Otherwise @work->func() will be called when the @task goes through one of
@@ -44,8 +55,13 @@ int task_work_add(struct task_struct *task, struct callback_head *work,
 {
 	struct callback_head *head;
 
-	/* record the work call stack in order to print it in KASAN reports */
-	kasan_record_aux_stack(work);
+	if (notify == TWA_NMI_CURRENT) {
+		if (WARN_ON_ONCE(task != current))
+			return -EINVAL;
+	} else {
+		/* record the work call stack in order to print it in KASAN reports */
+		kasan_record_aux_stack(work);
+	}
 
 	head = READ_ONCE(task->task_works);
 	do {
@@ -66,6 +82,9 @@ int task_work_add(struct task_struct *task, struct callback_head *work,
 	case TWA_SIGNAL_NO_IPI:
 		__set_notify_signal(task);
 		break;
+	case TWA_NMI_CURRENT:
+		irq_work_queue(this_cpu_ptr(&irq_work_NMI_resume));
+		break;
 	default:
 		WARN_ON_ONCE(1);
 		break;
diff --git a/localversion-rt b/localversion-rt
index d79dde624aaac..05c35cb580779 100644
--- a/localversion-rt
+++ b/localversion-rt
@@ -1 +1 @@
--rt10
+-rt11
diff --git a/net/core/dev.c b/net/core/dev.c
index db54959a26668..78184fe9e3882 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -5126,11 +5126,14 @@ static DEFINE_STATIC_KEY_FALSE(generic_xdp_needed_key);
 
 int do_xdp_generic(struct bpf_prog *xdp_prog, struct sk_buff **pskb)
 {
+	struct bpf_net_context __bpf_net_ctx, *bpf_net_ctx;
+
 	if (xdp_prog) {
 		struct xdp_buff xdp;
 		u32 act;
 		int err;
 
+		bpf_net_ctx = bpf_net_ctx_set(&__bpf_net_ctx);
 		act = netif_receive_generic_xdp(pskb, &xdp, xdp_prog);
 		if (act != XDP_PASS) {
 			switch (act) {
@@ -5144,11 +5147,13 @@ int do_xdp_generic(struct bpf_prog *xdp_prog, struct sk_buff **pskb)
 				generic_xdp_tx(*pskb, xdp_prog);
 				break;
 			}
+			bpf_net_ctx_clear(bpf_net_ctx);
 			return XDP_DROP;
 		}
 	}
 	return XDP_PASS;
 out_redir:
+	bpf_net_ctx_clear(bpf_net_ctx);
 	kfree_skb_reason(*pskb, SKB_DROP_REASON_XDP);
 	return XDP_DROP;
 }
diff --git a/net/core/filter.c b/net/core/filter.c
index a8dd866edec9e..9556453a8b564 100644
--- a/net/core/filter.c
+++ b/net/core/filter.c
@@ -4277,22 +4277,39 @@ static const struct bpf_func_proto bpf_xdp_adjust_meta_proto = {
  */
 void xdp_do_flush(void)
 {
-	__dev_flush();
-	__cpu_map_flush();
-	__xsk_map_flush();
+	struct list_head *lh_map, *lh_dev, *lh_xsk;
+
+	bpf_net_ctx_get_all_used_flush_lists(&lh_map, &lh_dev, &lh_xsk);
+	if (lh_dev)
+		__dev_flush(lh_dev);
+	if (lh_map)
+		__cpu_map_flush(lh_map);
+	if (lh_xsk)
+		__xsk_map_flush(lh_xsk);
 }
 EXPORT_SYMBOL_GPL(xdp_do_flush);
 
 #if defined(CONFIG_DEBUG_NET) && defined(CONFIG_BPF_SYSCALL)
 void xdp_do_check_flushed(struct napi_struct *napi)
 {
-	bool ret;
+	struct list_head *lh_map, *lh_dev, *lh_xsk;
+	bool missed = false;
 
-	ret = dev_check_flush();
-	ret |= cpu_map_check_flush();
-	ret |= xsk_map_check_flush();
+	bpf_net_ctx_get_all_used_flush_lists(&lh_map, &lh_dev, &lh_xsk);
+	if (lh_dev) {
+		__dev_flush(lh_dev);
+		missed = true;
+	}
+	if (lh_map) {
+		__cpu_map_flush(lh_map);
+		missed = true;
+	}
+	if (lh_xsk) {
+		__xsk_map_flush(lh_xsk);
+		missed = true;
+	}
 
-	WARN_ONCE(ret, "Missing xdp_do_flush() invocation after NAPI by %ps\n",
+	WARN_ONCE(missed, "Missing xdp_do_flush() invocation after NAPI by %ps\n",
 		  napi->poll);
 }
 #endif
@@ -6442,6 +6459,8 @@ BPF_CALL_4(bpf_lwt_seg6_store_bytes, struct sk_buff *, skb, u32, offset,
 	void *srh_tlvs, *srh_end, *ptr;
 	int srhoff = 0;
 
+	if (!bpf_net_ctx_seg6_state_avail())
+		return -EINVAL;
 	lockdep_assert_held(&srh_state->bh_lock);
 	if (srh == NULL)
 		return -EINVAL;
@@ -6499,6 +6518,8 @@ BPF_CALL_4(bpf_lwt_seg6_action, struct sk_buff *, skb,
 	int hdroff = 0;
 	int err;
 
+	if (!bpf_net_ctx_seg6_state_avail())
+		return -EINVAL;
 	lockdep_assert_held(&srh_state->bh_lock);
 	switch (action) {
 	case SEG6_LOCAL_ACTION_END_X:
@@ -6576,6 +6597,8 @@ BPF_CALL_3(bpf_lwt_seg6_adjust_srh, struct sk_buff *, skb, u32, offset,
 	int srhoff = 0;
 	int ret;
 
+	if (!bpf_net_ctx_seg6_state_avail())
+		return -EINVAL;
 	lockdep_assert_held(&srh_state->bh_lock);
 	if (unlikely(srh == NULL))
 		return -EINVAL;
diff --git a/net/ipv6/seg6_local.c b/net/ipv6/seg6_local.c
index c74705ead9849..3e3a48b7266b5 100644
--- a/net/ipv6/seg6_local.c
+++ b/net/ipv6/seg6_local.c
@@ -1429,6 +1429,7 @@ static int input_action_end_bpf(struct sk_buff *skb,
 	 * bpf_prog_run_save_cb().
 	 */
 	local_lock_nested_bh(&seg6_bpf_srh_states.bh_lock);
+	bpf_net_ctx_seg6_state_set();
 	srh_state = this_cpu_ptr(&seg6_bpf_srh_states);
 	srh_state->srh = srh;
 	srh_state->hdrlen = srh->hdrlen << 3;
@@ -1452,6 +1453,7 @@ static int input_action_end_bpf(struct sk_buff *skb,
 
 	if (srh_state->srh && !seg6_bpf_has_valid_srh(skb))
 		goto drop;
+	bpf_net_ctx_seg6_state_clr();
 	local_unlock_nested_bh(&seg6_bpf_srh_states.bh_lock);
 
 	if (ret != BPF_REDIRECT)
@@ -1460,6 +1462,7 @@ static int input_action_end_bpf(struct sk_buff *skb,
 	return dst_input(skb);
 
 drop:
+	bpf_net_ctx_seg6_state_clr();
 	local_unlock_nested_bh(&seg6_bpf_srh_states.bh_lock);
 	kfree_skb(skb);
 	return -EINVAL;
diff --git a/net/xdp/xsk.c b/net/xdp/xsk.c
index ed062e0383896..7e16336044b2d 100644
--- a/net/xdp/xsk.c
+++ b/net/xdp/xsk.c
@@ -370,22 +370,23 @@ static int xsk_rcv(struct xdp_sock *xs, struct xdp_buff *xdp)
 
 int __xsk_map_redirect(struct xdp_sock *xs, struct xdp_buff *xdp)
 {
-	struct list_head *flush_list = bpf_net_ctx_get_xskmap_flush_list();
 	int err;
 
 	err = xsk_rcv(xs, xdp);
 	if (err)
 		return err;
 
-	if (!xs->flush_node.prev)
+	if (!xs->flush_node.prev) {
+		struct list_head *flush_list = bpf_net_ctx_get_xskmap_flush_list();
+
 		list_add(&xs->flush_node, flush_list);
+	}
 
 	return 0;
 }
 
-void __xsk_map_flush(void)
+void __xsk_map_flush(struct list_head *flush_list)
 {
-	struct list_head *flush_list = bpf_net_ctx_get_xskmap_flush_list();
 	struct xdp_sock *xs, *tmp;
 
 	list_for_each_entry_safe(xs, tmp, flush_list, flush_node) {
@@ -394,16 +395,6 @@ void __xsk_map_flush(void)
 	}
 }
 
-#ifdef CONFIG_DEBUG_NET
-bool xsk_map_check_flush(void)
-{
-	if (list_empty(bpf_net_ctx_get_xskmap_flush_list()))
-		return false;
-	__xsk_map_flush();
-	return true;
-}
-#endif
-
 void xsk_tx_completed(struct xsk_buff_pool *pool, u32 nb_entries)
 {
 	xskq_prod_submit_n(pool->cq, nb_entries);
.

From: Tvrtko Ursulin <tursulin@igalia.com>
To: linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org,
	kernel-dev@igalia.com,
	Tvrtko Ursulin <tvrtko.ursulin@igalia.com>,
	Huang Ying <ying.huang@intel.com>,
	Hugh Dickins <hughd@google.com>,
	Andrew Morton <akpm@linux-foundation.org>
Subject: [PATCH 0/3] One fix for /proc/<pid>/numa_maps and two RFCs
Date: Fri,  5 Jul 2024 15:32:15 +0100
Message-ID: <20240705143218.21258-1-tursulin@igalia.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1269304 org.kvack.linux-mm:202743
Newsgroups: org.kernel.vger.linux-kernel,org.kvack.linux-mm
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

From: Tvrtko Ursulin <tvrtko.ursulin@igalia.com>

Hi all,

First patch fixes the issue where NUMA balancing mode was wrongly shown
'default' and is small and so hopefully backportable to stable.c

Second two patches are more like RFC. Although they work I am not 100% sure of
their benefit. Especially the last patch which enables turning on NUMA balancing
with tmpfs. Second one at least makes the flag handling a bit more robust in the
sense that it can prevent future mistakes.

Comments and opinions are welcome!

Cc: Huang Ying <ying.huang@intel.com>
Cc: Hugh Dickins <hughd@google.com>
Cc: Andrew Morton <akpm@linux-foundation.org>

Tvrtko Ursulin (3):
  mm/numa_balancing: Teach mpol_to_str about the balancing mode
  mm/mempolicy: Use flags lookup array in mpol_to_str
  mm/numa_balancing: Allow setting numa balancing for tmpfs

 mm/mempolicy.c | 123 ++++++++++++++++++++++++++++++++++++-------------
 1 file changed, 92 insertions(+), 31 deletions(-)

-- 
2.44.0

.

From: Mukesh Ojha <quic_mojha@quicinc.com>
To: <andersson@kernel.org>, <konrad.dybcio@linaro.org>, <robh@kernel.org>,
        <krzk+dt@kernel.org>, <conor+dt@kernel.org>
CC: <linux-arm-msm@vger.kernel.org>, <devicetree@vger.kernel.org>,
        <linux-kernel@vger.kernel.org>, Mukesh Ojha <quic_mojha@quicinc.com>
Subject: [PATCH v2] arm64: dts: qcom: sc7280: Enable download mode register write
Date: Fri, 5 Jul 2024 20:04:43 +0530
Message-ID: <20240705143443.1491956-1-quic_mojha@quicinc.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1269309
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-arm-msm,org.kernel.vger.linux-devicetree
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Enable download mode setting for sc7280 which can help collect
ramdump for this SoC.

Signed-off-by: Mukesh Ojha <quic_mojha@quicinc.com>
---
Change in v2:
 - Wrong tcsr phandle, it should be tcsr_2.

 arch/arm64/boot/dts/qcom/sc7280.dtsi | 1 +
 1 file changed, 1 insertion(+)

diff --git a/arch/arm64/boot/dts/qcom/sc7280.dtsi b/arch/arm64/boot/dts/qcom/sc7280.dtsi
index 06d0e59e7125..3d8410683402 100644
--- a/arch/arm64/boot/dts/qcom/sc7280.dtsi
+++ b/arch/arm64/boot/dts/qcom/sc7280.dtsi
@@ -711,6 +711,7 @@ memory@80000000 {
 	firmware {
 		scm: scm {
 			compatible = "qcom,scm-sc7280", "qcom,scm";
+			qcom,dload-mode = <&tcsr_2 0x13000>;
 		};
 	};
 
-- 
2.34.1

.

From: Puranjay Mohan <puranjay@kernel.org>
To: Andrii Nakryiko <andrii@kernel.org>,
	Eduard Zingerman <eddyz87@gmail.com>,
	Mykola Lysenko <mykolal@fb.com>,
	Alexei Starovoitov <ast@kernel.org>,
	Daniel Borkmann <daniel@iogearbox.net>,
	Martin KaFai Lau <martin.lau@linux.dev>,
	Song Liu <song@kernel.org>,
	Yonghong Song <yonghong.song@linux.dev>,
	John Fastabend <john.fastabend@gmail.com>,
	KP Singh <kpsingh@kernel.org>,
	Stanislav Fomichev <sdf@google.com>,
	Hao Luo <haoluo@google.com>,
	Jiri Olsa <jolsa@kernel.org>,
	Shuah Khan <shuah@kernel.org>,
	bpf@vger.kernel.org,
	linux-kselftest@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	puranjay12@gmail.com
Subject: [PATCH bpf] selftests/bpf: DENYLIST.aarch64: Remove fexit_sleep
Date: Fri,  5 Jul 2024 14:50:09 +0000
Message-Id: <20240705145009.32340-1-puranjay@kernel.org>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1269315
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.bpf,org.kernel.vger.linux-kselftest
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

fexit_sleep test runs successfully now on the CI so remove it from the
deny list.

Signed-off-by: Puranjay Mohan <puranjay@kernel.org>
---
 tools/testing/selftests/bpf/DENYLIST.aarch64 | 1 -
 1 file changed, 1 deletion(-)

diff --git a/tools/testing/selftests/bpf/DENYLIST.aarch64 b/tools/testing/selftests/bpf/DENYLIST.aarch64
index e865451e90d2..2bf981c80180 100644
--- a/tools/testing/selftests/bpf/DENYLIST.aarch64
+++ b/tools/testing/selftests/bpf/DENYLIST.aarch64
@@ -1,6 +1,5 @@
 bpf_cookie/multi_kprobe_attach_api               # kprobe_multi_link_api_subtest:FAIL:fentry_raw_skel_load unexpected error: -3
 bpf_cookie/multi_kprobe_link_api                 # kprobe_multi_link_api_subtest:FAIL:fentry_raw_skel_load unexpected error: -3
-fexit_sleep                                      # The test never returns. The remaining tests cannot start.
 kprobe_multi_bench_attach                        # needs CONFIG_FPROBE
 kprobe_multi_test                                # needs CONFIG_FPROBE
 module_attach                                    # prog 'kprobe_multi': failed to auto-attach: -95
-- 
2.40.1

.

From: Johannes Thumshirn <jth@kernel.org>
To: Mark Brown <broonie@kernel.org>
Cc: linux-kernel@vger.kernel.org,
	linux-spi@vger.kernel.org,
	Johannes Thumshirn <jth@kernel.org>
Subject: [PATCH] spi: add ch341a usb2spi driver
Date: Fri,  5 Jul 2024 16:51:37 +0200
Message-ID: <20240705145138.5827-1-jth@kernel.org>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1269316
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-spi
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Add a driver for the QiHeng Electronics ch341a USB-to-SPI adapter.

This driver is loosly based on the ch341a module from the flashrom project.

Signed-off-by: Johannes Thumshirn <jth@kernel.org>
---
 drivers/spi/Kconfig     |   6 +
 drivers/spi/Makefile    |   1 +
 drivers/spi/spi-ch341.c | 236 ++++++++++++++++++++++++++++++++++++++++
 3 files changed, 243 insertions(+)
 create mode 100644 drivers/spi/spi-ch341.c

diff --git a/drivers/spi/Kconfig b/drivers/spi/Kconfig
index a2c99ff33e0a..79b3c20d7537 100644
--- a/drivers/spi/Kconfig
+++ b/drivers/spi/Kconfig
@@ -1198,6 +1198,12 @@ config SPI_AMD
 	help
 	  Enables SPI controller driver for AMD SoC.
 
+config SPI_CH341
+	tristate "CH341 USB2SPI adapter"
+	depends on SPI_MASTER && USB
+	help
+	  Enables the SPI controller on the CH341a USB to serial chip
+
 #
 # Add new SPI master controllers in alphabetical order above this line
 #
diff --git a/drivers/spi/Makefile b/drivers/spi/Makefile
index e694254dec04..9de506d1d135 100644
--- a/drivers/spi/Makefile
+++ b/drivers/spi/Makefile
@@ -154,6 +154,7 @@ obj-$(CONFIG_SPI_XTENSA_XTFPGA)		+= spi-xtensa-xtfpga.o
 obj-$(CONFIG_SPI_ZYNQ_QSPI)		+= spi-zynq-qspi.o
 obj-$(CONFIG_SPI_ZYNQMP_GQSPI)		+= spi-zynqmp-gqspi.o
 obj-$(CONFIG_SPI_AMD)			+= spi-amd.o
+obj-$(CONFIG_SPI_CH341)			+= spi-ch341.o
 
 # SPI slave protocol handlers
 obj-$(CONFIG_SPI_SLAVE_TIME)		+= spi-slave-time.o
diff --git a/drivers/spi/spi-ch341.c b/drivers/spi/spi-ch341.c
new file mode 100644
index 000000000000..a2b53089e0e4
--- /dev/null
+++ b/drivers/spi/spi-ch341.c
@@ -0,0 +1,236 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * QiHeng Electronics ch341a USB-to-SPI adapter driver
+ *
+ * Copyright (C) 2024 Johannes Thumshirn <jth@kernel.org>
+ *
+ * Based on ch341a_spi.c from the flashrom project.
+ */
+#include <linux/module.h>
+#include <linux/usb.h>
+#include <linux/spi/spi.h>
+
+#define CH341_PACKET_LENGTH 32
+#define CH341_DEFAULT_TIMEOUT 1000
+
+#define CH341A_CMD_UIO_STREAM 0xab
+
+#define CH341A_CMD_UIO_STM_END 0x20
+#define CH341A_CMD_UIO_STM_DIR 0x40
+#define CH341A_CMD_UIO_STM_OUT 0x80
+
+#define CH341A_CMD_I2C_STREAM 0xaa
+#define CH341A_CMD_I2C_STM_SET 0x60
+#define CH341A_CMD_I2C_STM_END 0x00
+
+#define CH341A_CMD_SPI_STREAM 0xa8
+
+#define CH341A_STM_I2C_100K 0x01
+
+struct ch341_spi_dev {
+	struct spi_controller *ctrl;
+	struct usb_device *udev;
+	unsigned int write_pipe;
+	unsigned int read_pipe;
+	int rx_len;
+	void *rx_buf;
+	u8 *tx_buf;
+	struct urb *rx_urb;
+	struct spi_device *spidev;
+};
+
+static void ch341_set_cs(struct spi_device *spi, bool is_high)
+{
+	struct ch341_spi_dev *ch341 =
+		spi_controller_get_devdata(spi->controller);
+
+	memset(ch341->tx_buf, 0, CH341_PACKET_LENGTH);
+	ch341->tx_buf[0] = CH341A_CMD_UIO_STREAM;
+	ch341->tx_buf[1] = CH341A_CMD_UIO_STM_OUT | (is_high ? 0x36 : 0x37);
+
+	if (is_high) {
+		ch341->tx_buf[2] = CH341A_CMD_UIO_STM_DIR | 0x3f;
+		ch341->tx_buf[3] = CH341A_CMD_UIO_STM_END;
+	} else {
+		ch341->tx_buf[2] = CH341A_CMD_UIO_STM_END;
+	}
+
+	(void)usb_bulk_msg(ch341->udev, ch341->write_pipe, ch341->tx_buf,
+			   (is_high ? 4 : 3), NULL, CH341_DEFAULT_TIMEOUT);
+}
+
+static int ch341_transfer_one(struct spi_controller *host,
+			      struct spi_device *spi,
+			      struct spi_transfer *trans)
+{
+	struct ch341_spi_dev *ch341 =
+		spi_controller_get_devdata(spi->controller);
+	int len;
+	int ret;
+
+	len = min(CH341_PACKET_LENGTH, trans->len + 1);
+
+	memset(ch341->tx_buf, 0, CH341_PACKET_LENGTH);
+
+	ch341->tx_buf[0] = CH341A_CMD_SPI_STREAM;
+
+	memcpy(ch341->tx_buf + 1, trans->tx_buf, len);
+
+	ret = usb_bulk_msg(ch341->udev, ch341->write_pipe, ch341->tx_buf, len,
+			   NULL, CH341_DEFAULT_TIMEOUT);
+	if (ret)
+		return ret;
+
+	return usb_bulk_msg(ch341->udev, ch341->read_pipe, trans->rx_buf,
+			    len - 1, NULL, CH341_DEFAULT_TIMEOUT);
+}
+
+static void ch341_recv(struct urb *urb)
+{
+	struct ch341_spi_dev *ch341 = urb->context;
+	struct usb_device *udev = ch341->udev;
+
+	switch (urb->status) {
+	case 0:
+		/* success */
+		break;
+	case -ENOENT:
+	case -ECONNRESET:
+	case -EPIPE:
+	case -ESHUTDOWN:
+		dev_dbg(&udev->dev, "rx urb terminated with status: %d\n",
+			urb->status);
+		return;
+	default:
+		dev_dbg(&udev->dev, "rx urb error: %d\n", urb->status);
+		break;
+	}
+}
+
+static int ch341_config_stream(struct ch341_spi_dev *ch341, int speed)
+{
+	memset(ch341->tx_buf, 0, CH341_PACKET_LENGTH);
+	ch341->tx_buf[0] = CH341A_CMD_I2C_STREAM;
+	ch341->tx_buf[1] = CH341A_CMD_I2C_STM_SET | (speed & 0x7);
+	ch341->tx_buf[2] = CH341A_CMD_I2C_STM_END;
+
+	return usb_bulk_msg(ch341->udev, ch341->write_pipe, ch341->tx_buf, 3,
+			    NULL, CH341_DEFAULT_TIMEOUT);
+}
+
+static int ch341_enable_pins(struct ch341_spi_dev *ch341, bool enable)
+{
+	memset(ch341->tx_buf, 0, CH341_PACKET_LENGTH);
+	ch341->tx_buf[0] = CH341A_CMD_UIO_STREAM;
+	ch341->tx_buf[1] = CH341A_CMD_UIO_STM_OUT | 0x37;
+	ch341->tx_buf[2] = CH341A_CMD_UIO_STM_DIR | (enable ? 0x3f : 0x00);
+	ch341->tx_buf[3] = CH341A_CMD_UIO_STM_END;
+
+	return usb_bulk_msg(ch341->udev, ch341->write_pipe, ch341->tx_buf, 4,
+			    NULL, CH341_DEFAULT_TIMEOUT);
+}
+
+static struct spi_board_info chip = {
+	.modalias = "spi-ch341a",
+};
+
+static int ch341_probe(struct usb_interface *intf,
+		       const struct usb_device_id *id)
+{
+	struct usb_device *udev = interface_to_usbdev(intf);
+	struct usb_endpoint_descriptor *in, *out;
+	struct ch341_spi_dev *ch341;
+	struct spi_controller *ctrl;
+	int ret;
+
+	ret = usb_find_common_endpoints(intf->cur_altsetting, &in, &out, NULL,
+					NULL);
+	if (ret)
+		return ret;
+
+	ctrl = devm_spi_alloc_master(&udev->dev, sizeof(struct ch341_spi_dev));
+	if (!ctrl)
+		return -ENOMEM;
+
+	ch341 = spi_controller_get_devdata(ctrl);
+	ch341->ctrl = ctrl;
+	ch341->udev = udev;
+	ch341->write_pipe = usb_sndbulkpipe(udev, usb_endpoint_num(out));
+	ch341->read_pipe = usb_rcvbulkpipe(udev, usb_endpoint_num(in));
+
+	ch341->rx_len = usb_endpoint_maxp(in);
+	ch341->rx_buf = devm_kzalloc(&udev->dev, ch341->rx_len, GFP_KERNEL);
+	if (!ch341->rx_buf)
+		return -ENOMEM;
+
+	ch341->rx_urb = usb_alloc_urb(0, GFP_KERNEL);
+	if (!ch341->rx_urb)
+		return -ENOMEM;
+
+	ch341->tx_buf =
+		devm_kzalloc(&udev->dev, CH341_PACKET_LENGTH, GFP_KERNEL);
+	if (!ch341->tx_buf)
+		return -ENOMEM;
+
+	usb_fill_bulk_urb(ch341->rx_urb, udev, ch341->read_pipe, ch341->rx_buf,
+			  ch341->rx_len, ch341_recv, ch341);
+
+	ret = usb_submit_urb(ch341->rx_urb, GFP_KERNEL);
+	if (ret) {
+		usb_free_urb(ch341->rx_urb);
+		return -ENOMEM;
+	}
+
+	ctrl->bus_num = -1;
+	ctrl->mode_bits = SPI_CPHA;
+	ctrl->transfer_one = ch341_transfer_one;
+	ctrl->set_cs = ch341_set_cs;
+	ctrl->auto_runtime_pm = false;
+
+	usb_set_intfdata(intf, ch341);
+
+	ret = ch341_config_stream(ch341, CH341A_STM_I2C_100K);
+	if (ret)
+		return ret;
+
+	ret = ch341_enable_pins(ch341, true);
+	if (ret)
+		return ret;
+
+	ret = spi_register_controller(ctrl);
+	if (ret)
+		return ret;
+
+	ch341->spidev = spi_new_device(ctrl, &chip);
+	if (!ch341->spidev)
+		return -ENOMEM;
+
+	return 0;
+}
+
+static void ch341_disconnect(struct usb_interface *intf)
+{
+	struct ch341_spi_dev *ch341 = usb_get_intfdata(intf);
+
+	spi_unregister_controller(ch341->ctrl);
+	ch341_enable_pins(ch341, false);
+	usb_free_urb(ch341->rx_urb);
+}
+
+static const struct usb_device_id ch341_id_table[] = {
+	{ USB_DEVICE(0x1a86, 0x5512) },
+	{ }
+};
+MODULE_DEVICE_TABLE(usb, ch341_id_table);
+
+static struct usb_driver ch341a_usb_driver = {
+	.name = "spi-ch341",
+	.probe = ch341_probe,
+	.disconnect = ch341_disconnect,
+	.id_table = ch341_id_table,
+};
+module_usb_driver(ch341a_usb_driver);
+
+MODULE_AUTHOR("Johannes Thumshirn <jth@kernel.org>");
+MODULE_DESCRIPTION("QiHeng Electronics ch341 USB2SPI");
+MODULE_LICENSE("GPL v2");
-- 
2.43.0

.

From: Kory Maincent <kory.maincent@bootlin.com>
Subject: [PATCH net-next v16 00/14] net: Make timestamping selectable
Date: Fri, 05 Jul 2024 17:03:01 +0200
Message-Id: <20240705-feature_ptp_netnext-v16-0-5d7153914052@bootlin.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit
To: Florian Fainelli <florian.fainelli@broadcom.com>, 
 Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, 
 Andrew Lunn <andrew@lunn.ch>, Heiner Kallweit <hkallweit1@gmail.com>, 
 Russell King <linux@armlinux.org.uk>, 
 "David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>, 
 Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>, 
 Richard Cochran <richardcochran@gmail.com>, 
 Radu Pirea <radu-nicolae.pirea@oss.nxp.com>, 
 Jay Vosburgh <j.vosburgh@gmail.com>, Andy Gospodarek <andy@greyhouse.net>, 
 Nicolas Ferre <nicolas.ferre@microchip.com>, 
 Claudiu Beznea <claudiu.beznea@tuxon.dev>, 
 Willem de Bruijn <willemdebruijn.kernel@gmail.com>, 
 Jonathan Corbet <corbet@lwn.net>, 
 Horatiu Vultur <horatiu.vultur@microchip.com>, UNGLinuxDriver@microchip.com, 
 Simon Horman <horms@kernel.org>, Vladimir Oltean <vladimir.oltean@nxp.com>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>, netdev@vger.kernel.org, 
 linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, 
 Maxime Chevallier <maxime.chevallier@bootlin.com>, 
 Rahul Rameshbabu <rrameshbabu@nvidia.com>, 
 Kory Maincent <kory.maincent@bootlin.com>, 
 Willem de Bruijn <willemb@google.com>, 
 Shannon Nelson <shannon.nelson@amd.com>, 
 Alexandra Winter <wintera@linux.ibm.com>
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1269325 org.kernel.vger.netdev:355765
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-doc,org.kernel.vger.netdev
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Up until now, there was no way to let the user select the hardware
PTP provider at which time stamping occurs. The stack assumed that PHY time
stamping is always preferred, but some MAC/PHY combinations were buggy.

This series updates the default MAC/PHY default timestamping and aims to
allow the user to select the desired hwtstamp provider administratively.

Changes in v16:
- Add a new patch to separate tsinfo into a new tsconfig command to get
  and set the hwtstamp config.
- Used call_rcu() instead of synchronize_rcu() to free the hwtstamp_provider
- Moved net core changes of patch 12 directly to patch 8.
- Link to v15: https://lore.kernel.org/r/20240612-feature_ptp_netnext-v15-0-b2a086257b63@bootlin.com

Changes in v15:
- Fix uninitialized ethtool_ts_info structure.
- Link to v14: https://lore.kernel.org/r/20240604-feature_ptp_netnext-v14-0-77b6f6efea40@bootlin.com

Changes in v14:
- Add back an EXPORT_SYMBOL() missing.
- Link to v13: https://lore.kernel.org/r/20240529-feature_ptp_netnext-v13-0-6eda4d40fa4f@bootlin.com

Changes in v13:
- Add PTP builtin code to fix build errors when building PTP as a module.
- Fix error spotted by smatch and sparse.
- Link to v12: https://lore.kernel.org/r/20240430-feature_ptp_netnext-v12-0-2c5f24b6a914@bootlin.com

Changes in v12:
- Add missing return description in the kdoc.
- Fix few nit.
- Link to v11: https://lore.kernel.org/r/20240422-feature_ptp_netnext-v11-0-f14441f2a1d8@bootlin.com

Changes in v11:
- Add netlink examples.
- Remove a change of my out of tree marvell_ptp patch in the patch series.
- Remove useless extern.
- Link to v10: https://lore.kernel.org/r/20240409-feature_ptp_netnext-v10-0-0fa2ea5c89a9@bootlin.com

Changes in v10:
- Move declarations to net/core/dev.h instead of netdevice.h
- Add netlink documentation.
- Add ETHTOOL_A_TSINFO_GHWTSTAMP netlink attributes instead of a bit in
  ETHTOOL_A_TSINFO_TIMESTAMPING bitset.
- Send "Move from simple ida to xarray" patch standalone.
- Add tsinfo ntf command.
- Add rcu_lock protection mechanism to avoid memory leak.
- Fixed doc and kdoc issue.
- Link to v9: https://lore.kernel.org/r/20240226-feature_ptp_netnext-v9-0-455611549f21@bootlin.com

Changes in v9:
- Remove the RFC prefix.
- Correct few NIT fixes.
- Link to v8: https://lore.kernel.org/r/20240216-feature_ptp_netnext-v8-0-510f42f444fb@bootlin.com

Changes in v8:
- Drop the 6 first patch as they are now merged.
- Change the full implementation to not be based on the hwtstamp layer
  (MAC/PHY) but on the hwtstamp provider which mean a ptp clock and a
  phc qualifier.
- Made some patch to prepare the new implementation.
- Expand netlink tsinfo instead of a new ts command for new hwtstamp
  configuration uAPI and for dumping tsinfo of specific hwtstamp provider.
- Link to v7: https://lore.kernel.org/r/20231114-feature_ptp_netnext-v7-0-472e77951e40@bootlin.com

Changes in v7:
- Fix a temporary build error.
- Link to v6: https://lore.kernel.org/r/20231019-feature_ptp_netnext-v6-0-71affc27b0e5@bootlin.com

Changes in v6:
- Few fixes from the reviews.
- Replace the allowlist to default_timestamp flag to know which phy is
  using old API behavior.
- Rename the timestamping layer enum values.
- Move to a simple enum instead of the mix between enum and bitfield.
- Update ts_info and ts-set in software timestamping case.

Changes in v5:
- Update to ndo_hwstamp_get/set. This bring several new patches.
- Add few patches to make the glue.
- Convert macb to ndo_hwstamp_get/set.
- Add netlink specs description of new ethtool commands.
- Removed netdev notifier.
- Split the patches that expose the timestamping to userspace to separate
  the core and ethtool development.
- Add description of software timestamping.
- Convert PHYs hwtstamp callback to use kernel_hwtstamp_config.

Changes in v4:
- Move on to ethtool netlink instead of ioctl.
- Add a netdev notifier to allow packet trapping by the MAC in case of PHY
  time stamping.
- Add a PHY whitelist to not break the old PHY default time-stamping
  preference API.

Changes in v3:
- Expose the PTP choice to ethtool instead of sysfs.
  You can test it with the ethtool source on branch feature_ptp of:
  https://github.com/kmaincent/ethtool
- Added a devicetree binding to select the preferred timestamp.

Changes in v2:
- Move selected_timestamping_layer variable of the concerned patch.
- Use sysfs_streq instead of strmcmp.
- Use the PHY timestamp only if available.

Signed-off-by: Kory Maincent <kory.maincent@bootlin.com>
---
Kory Maincent (14):
      net_tstamp: Add TIMESTAMPING SOFTWARE and HARDWARE mask
      net: Make dev_get_hwtstamp_phylib accessible
      net: Make net_hwtstamp_validate accessible
      net: Change the API of PHY default timestamp to MAC
      net: net_tstamp: Add unspec field to hwtstamp_source enumeration
      net: Add struct kernel_ethtool_ts_info
      ptp: Add phc source and helpers to register specific PTP clock or get information
      net: Add the possibility to support a selected hwtstamp in netdevice
      net: netdevsim: ptp_mock: Convert to netdev_ptp_clock_register
      net: macb: Convert to netdev_ptp_clock_register
      net: ptp: Move ptp_clock_index() to builtin symbol
      net: ethtool: tsinfo: Add support for reading tsinfo for a specific hwtstamp provider
      net: ethtool: Add support for tsconfig command to get/set hwtstamp config
      netlink: specs: Enhance tsinfo netlink attributes and add a tsconfig set command

 Documentation/netlink/specs/ethtool.yaml           |  73 +++++
 Documentation/networking/ethtool-netlink.rst       |   7 +-
 Documentation/networking/timestamping.rst          |  33 +-
 drivers/net/bonding/bond_main.c                    |   4 +-
 drivers/net/can/dev/dev.c                          |   2 +-
 drivers/net/can/peak_canfd/peak_canfd.c            |   2 +-
 drivers/net/can/usb/gs_usb.c                       |   2 +-
 drivers/net/can/usb/peak_usb/pcan_usb_core.c       |   2 +-
 drivers/net/can/usb/peak_usb/pcan_usb_core.h       |   2 +-
 drivers/net/dsa/hirschmann/hellcreek_hwtstamp.c    |   2 +-
 drivers/net/dsa/hirschmann/hellcreek_hwtstamp.h    |   2 +-
 drivers/net/dsa/microchip/ksz_ptp.c                |   2 +-
 drivers/net/dsa/microchip/ksz_ptp.h                |   2 +-
 drivers/net/dsa/mv88e6xxx/hwtstamp.c               |   2 +-
 drivers/net/dsa/mv88e6xxx/hwtstamp.h               |   4 +-
 drivers/net/dsa/ocelot/felix.c                     |   2 +-
 drivers/net/dsa/sja1105/sja1105_ptp.c              |   2 +-
 drivers/net/dsa/sja1105/sja1105_ptp.h              |   2 +-
 drivers/net/ethernet/amd/xgbe/xgbe-ethtool.c       |   2 +-
 .../net/ethernet/aquantia/atlantic/aq_ethtool.c    |   2 +-
 .../net/ethernet/broadcom/bnx2x/bnx2x_ethtool.c    |   2 +-
 drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c  |   2 +-
 drivers/net/ethernet/broadcom/tg3.c                |   2 +-
 drivers/net/ethernet/cadence/macb.h                |   2 +-
 drivers/net/ethernet/cadence/macb_main.c           |   4 +-
 drivers/net/ethernet/cadence/macb_ptp.c            |   2 +-
 drivers/net/ethernet/cavium/liquidio/lio_ethtool.c |   2 +-
 .../net/ethernet/cavium/thunder/nicvf_ethtool.c    |   2 +-
 drivers/net/ethernet/chelsio/cxgb4/cxgb4_ethtool.c |   2 +-
 drivers/net/ethernet/cisco/enic/enic_ethtool.c     |   2 +-
 drivers/net/ethernet/engleder/tsnep_ethtool.c      |   2 +-
 drivers/net/ethernet/freescale/dpaa/dpaa_ethtool.c |   2 +-
 .../net/ethernet/freescale/dpaa2/dpaa2-ethtool.c   |   2 +-
 .../net/ethernet/freescale/enetc/enetc_ethtool.c   |   2 +-
 drivers/net/ethernet/freescale/fec_main.c          |   2 +-
 drivers/net/ethernet/freescale/gianfar_ethtool.c   |   2 +-
 .../net/ethernet/fungible/funeth/funeth_ethtool.c  |   2 +-
 drivers/net/ethernet/hisilicon/hns3/hnae3.h        |   2 +-
 drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c |   2 +-
 .../net/ethernet/hisilicon/hns3/hns3pf/hclge_ptp.c |   2 +-
 .../net/ethernet/hisilicon/hns3/hns3pf/hclge_ptp.h |   2 +-
 drivers/net/ethernet/intel/e1000e/ethtool.c        |   2 +-
 drivers/net/ethernet/intel/i40e/i40e_ethtool.c     |   2 +-
 drivers/net/ethernet/intel/ice/ice_ethtool.c       |   2 +-
 drivers/net/ethernet/intel/igb/igb_ethtool.c       |   2 +-
 drivers/net/ethernet/intel/igc/igc_ethtool.c       |   2 +-
 drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c   |   2 +-
 drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c    |   2 +-
 .../ethernet/marvell/octeontx2/nic/otx2_ethtool.c  |   2 +-
 drivers/net/ethernet/mellanox/mlx4/en_ethtool.c    |   2 +-
 drivers/net/ethernet/mellanox/mlx5/core/en.h       |   2 +-
 .../net/ethernet/mellanox/mlx5/core/en_ethtool.c   |   4 +-
 .../ethernet/mellanox/mlx5/core/ipoib/ethtool.c    |   2 +-
 drivers/net/ethernet/mellanox/mlxsw/spectrum.h     |   2 +-
 .../net/ethernet/mellanox/mlxsw/spectrum_ethtool.c |   2 +-
 drivers/net/ethernet/mellanox/mlxsw/spectrum_ptp.c |   4 +-
 drivers/net/ethernet/mellanox/mlxsw/spectrum_ptp.h |  10 +-
 drivers/net/ethernet/microchip/lan743x_ethtool.c   |   2 +-
 .../ethernet/microchip/lan966x/lan966x_ethtool.c   |   2 +-
 .../net/ethernet/microchip/sparx5/sparx5_ethtool.c |   2 +-
 drivers/net/ethernet/mscc/ocelot_net.c             |   2 +-
 drivers/net/ethernet/mscc/ocelot_ptp.c             |   2 +-
 .../net/ethernet/pensando/ionic/ionic_ethtool.c    |   2 +-
 drivers/net/ethernet/qlogic/qede/qede_ethtool.c    |   2 +-
 drivers/net/ethernet/qlogic/qede/qede_ptp.c        |   2 +-
 drivers/net/ethernet/qlogic/qede/qede_ptp.h        |   2 +-
 drivers/net/ethernet/renesas/ravb_main.c           |   2 +-
 drivers/net/ethernet/renesas/rswitch.c             |   2 +-
 drivers/net/ethernet/sfc/ethtool.c                 |   2 +-
 drivers/net/ethernet/sfc/falcon/nic.h              |   2 +-
 drivers/net/ethernet/sfc/ptp.c                     |   2 +-
 drivers/net/ethernet/sfc/ptp.h                     |   5 +-
 drivers/net/ethernet/sfc/siena/ethtool.c           |   2 +-
 drivers/net/ethernet/sfc/siena/ptp.c               |   2 +-
 drivers/net/ethernet/sfc/siena/ptp.h               |   4 +-
 .../net/ethernet/stmicro/stmmac/stmmac_ethtool.c   |   2 +-
 drivers/net/ethernet/ti/am65-cpsw-ethtool.c        |   2 +-
 drivers/net/ethernet/ti/cpsw_ethtool.c             |   4 +-
 drivers/net/ethernet/ti/cpsw_priv.h                |   2 +-
 drivers/net/ethernet/ti/icssg/icssg_ethtool.c      |   2 +-
 drivers/net/ethernet/ti/netcp_ethss.c              |   4 +-
 drivers/net/ethernet/xscale/ixp4xx_eth.c           |   2 +-
 drivers/net/macvlan.c                              |   2 +-
 drivers/net/netdevsim/ethtool.c                    |   2 +-
 drivers/net/netdevsim/netdev.c                     |  19 +-
 drivers/net/phy/bcm-phy-ptp.c                      |   5 +-
 drivers/net/phy/dp83640.c                          |   4 +-
 drivers/net/phy/micrel.c                           |  10 +-
 drivers/net/phy/mscc/mscc_ptp.c                    |   5 +-
 drivers/net/phy/nxp-c45-tja11xx.c                  |   5 +-
 drivers/net/phy/phy_device.c                       |  11 +
 drivers/ptp/Makefile                               |   5 +
 drivers/ptp/ptp_clock.c                            |  39 ++-
 drivers/ptp/ptp_clock_consumer.c                   | 182 +++++++++++
 drivers/ptp/ptp_ines.c                             |   2 +-
 drivers/ptp/ptp_mock.c                             |   4 +-
 drivers/ptp/ptp_private.h                          |   7 +
 drivers/s390/net/qeth_ethtool.c                    |   2 +-
 include/linux/can/dev.h                            |   2 +-
 include/linux/ethtool.h                            |  29 +-
 include/linux/mii_timestamper.h                    |   2 +-
 include/linux/net_tstamp.h                         |  27 ++
 include/linux/netdevice.h                          |   5 +
 include/linux/phy.h                                |  21 +-
 include/linux/ptp_clock_kernel.h                   | 188 +++++++++++
 include/linux/ptp_mock.h                           |   4 +-
 include/net/dsa.h                                  |   2 +-
 include/soc/mscc/ocelot.h                          |   2 +-
 include/uapi/linux/ethtool_netlink.h               |  29 +-
 include/uapi/linux/net_tstamp.h                    |  11 +
 net/8021q/vlan_dev.c                               |   2 +-
 net/core/dev.h                                     |   3 +
 net/core/dev_ioctl.c                               |  55 +++-
 net/core/timestamping.c                            |  49 ++-
 net/dsa/user.c                                     |   2 +-
 net/ethtool/Makefile                               |   3 +-
 net/ethtool/common.c                               |  40 ++-
 net/ethtool/common.h                               |   5 +-
 net/ethtool/ioctl.c                                |  14 +-
 net/ethtool/netlink.c                              |  26 +-
 net/ethtool/netlink.h                              |   8 +-
 net/ethtool/ts.h                                   |  52 +++
 net/ethtool/tsconfig.c                             | 347 +++++++++++++++++++++
 net/ethtool/tsinfo.c                               | 245 ++++++++++++++-
 net/sched/sch_taprio.c                             |   2 +-
 125 files changed, 1594 insertions(+), 183 deletions(-)
---
base-commit: ba6e825eb01a3a8d7898733327f8dbe7449a765b
change-id: 20231011-feature_ptp_netnext-3f278578e84b

Best regards,
-- 
Köry Maincent, Bootlin
Embedded Linux and kernel engineering
https://bootlin.com

.

Message-ID: <37f251a1-f3bd-402f-ab22-cf786c3871d7@ti.com>
Date: Fri, 5 Jul 2024 20:41:13 +0530
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
From: Vignesh Raghavendra <vigneshr@ti.com>
Content-Language: en-US
To: Olof Johansson <olof@lixom.net>, Arnd Bergmann <arnd@arndb.de>,
        arm-soc
	<arm@kernel.org>, SoC <soc@kernel.org>
CC: Tero Kristo <kristo@kernel.org>, Vignesh Raghavendra <vigneshr@ti.com>,
        <linux-arm-kernel@lists.infradead.org>, <linux-kernel@vger.kernel.org>,
        Nishanth Menon <nm@ti.com>
Subject: [GIT PULL 1/2] arm64: dts: ti: K3 devicetree updates for v6.11
Content-Type: multipart/signed; micalg=pgp-sha256;
	protocol="application/pgp-signature";
	boundary="------------rk0kaNJsTHDwI2dwxMRWD3C6"
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1269338
Newsgroups: org.kernel.vger.linux-kernel,org.infradead.lists.linux-arm-kernel,org.kernel.lore.soc
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

--------------rk0kaNJsTHDwI2dwxMRWD3C6
Content-Type: multipart/mixed; boundary="------------Dq2T6pWO0f31Rwc8DO8OhgEL";
 protected-headers="v1"
From: Vignesh Raghavendra <vigneshr@ti.com>
To: Olof Johansson <olof@lixom.net>, Arnd Bergmann <arnd@arndb.de>,
 arm-soc <arm@kernel.org>, SoC <soc@kernel.org>
Cc: Tero Kristo <kristo@kernel.org>, Vignesh Raghavendra <vigneshr@ti.com>,
 linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org,
 Nishanth Menon <nm@ti.com>
Message-ID: <37f251a1-f3bd-402f-ab22-cf786c3871d7@ti.com>
Subject: [GIT PULL 1/2] arm64: dts: ti: K3 devicetree updates for v6.11

--------------Dq2T6pWO0f31Rwc8DO8OhgEL
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Hi ARM SoC Maintainers,

The following changes since commit 1613e604df0cd359cf2a7fbd9be7a0bcfacfab=
d0:

  Linux 6.10-rc1 (2024-05-26 15:20:12 -0700)

are available in the Git repository at:

  https://git.kernel.org/pub/scm/linux/kernel/git/ti/linux.git tags/ti-k3=
-dt-for-v6.11

for you to fetch changes up to 6406c5d5512c0814b8c155df7f833a98d9069a72:

  arm64: dts: ti: k3-am62a7-sk: Reserve 576MiB of global CMA (2024-07-03 =
19:51:21 +0530)

----------------------------------------------------------------
TI K3 device tree updates for v6.11

Generic Fixups/Cleanups:
- main_pktdma reg ranges fixes
- dtbs_check warning cleanups with addition of cpsw-mac-efuse node and
  dropping "syscon", "simple-mfd" compatibles in favor of simple-bus
- Disable McASP FIFOs across SoCs for better latency
- Add memory node to bootloader stage with bootph-all
- Restructure am62p and j722s dtsi for share nodes across these SoCs
- DT warning fixes around USB type-C connector node (AM62/AM62P)

SoC Specific features and Fixes:
AM62
- GPMC and ELM addition

AM62A
- Enable RTC by default
- Crypto accelerator support

AM64 and AM65
- PRU system event support

AM69/J784S4:
- CPSW2G and CPSW9G addition with QSGMII and UXSGMII board support
- PCIe, USB, McASP, EHRPWM node additions

AM67/J722s
- Fix to update GPIO count
- Add gpio-ranges definition
- McASP support for audio
- PCIe, USB, Serdes support

Board Specific features and fixes:

AM62
- am62x-phyboard-lyra carrier board support
- am625-verdin: nau8822 PLL support
- sk: CMA node addition
- lp-sk: NAND expansion card overlay

AM62A
- New phyboard-lyra-am62ax from phytec
- CMA node addition

AM64:
- phycore-board: PMIC support
- hummingbird-t: RS485 RTS pin polarity update
- am6xx-phycore-som: overlays for variants w/o SPI, RTC, ETH PHY or w/
  QSPI
- EVM: GPMC NAND expansion card overlay
- EVM: ICSSG ethernet MII mode overlay support
- SK: power supply temp sensors support

AM68
- SK: PMIC, OSPI

J721e
- SK: MCAN Support
- Overlay for infotainment expansion board

AM69/J784S4
- EVM: PCIe RC/EP, USB3, MCAN support
- SK: PMIC support

----------------------------------------------------------------
Andrejs Cainikovs (1):
      arm64: dts: k3-am625-verdin: enable nau8822 pll

Andrew Davis (8):
      arm64: dts: ti: k3-am642-sk: Add power supply temperature sensors
      arm64: dts: ti: k3-am65: Add cpsw-mac-efuse node to mcu_conf
      arm64: dts: ti: k3-j7200: Add cpsw-mac-efuse node to mcu_conf
      arm64: dts: ti: k3-j721e: Add cpsw-mac-efuse node to mcu_conf
      arm64: dts: ti: k3-j721s2: Add cpsw-mac-efuse node to mcu_conf
      arm64: dts: ti: k3-j784s4: Add cpsw-mac-efuse node to mcu_conf
      arm64: dts: ti: k3-am62a: Add cpsw-mac-efuse node to wkup_conf
      arm64: dts: ti: k3-am62: Add cpsw-mac-efuse node to wkup_conf

Beleswar Padhi (1):
      arm64: dts: ti: k3-j721e-sk: Add support for multiple CAN instances=


Bhavya Kapoor (1):
      arm64: dts: ti: k3-j784s4-evm: Add support for multiple CAN instanc=
es

Chintan Vankar (2):
      arm64: dts: ti: k3-am62x-sk-common: Add bootph-all property in phy_=
gmii_sel node
      arm64: dts: ti: k3-j784s4-evm: Add alias for MCU CPSW2G

Dasnavis Sabiya (2):
      arm64: dts: ti: k3-am69-sk: Add PCIe support
      arm64: dts: ti: k3-j784s4-main: Add node for EHRPWMs

Devarsh Thakkar (3):
      arm64: dts: ti: k3-am62x-sk-common: Add bootph-all for I2C1 instanc=
e pinmux
      arm64: dts: ti: k3-am62x-sk-common: Reserve 128MiB of global CMA
      arm64: dts: ti: k3-am62a7-sk: Reserve 576MiB of global CMA

Dhruva Gole (2):
      arm64: dts: ti: k3-am62p5-sk: fix graph_child_address warnings
      arm64: dts: ti: k3-am62x-sk-common: Fix graph_child_address warns

Garrett Giordano (4):
      arm64: dts: ti: k3-am62a: Enable AUDIO_REFCLKx
      arm64: dts: ti: Add am62x-phyboard-lyra carrier board
      dt-bindings: arm: ti: Add bindings for PHYTEC AM62Ax based hardware=

      arm64: dts: ti: Add basic support for phyBOARD-Lyra-AM62Ax

Jai Luthra (7):
      arm64: dts: ti: k3-am62x: Drop McASP AFIFOs
      arm64: dts: ti: k3-am62a7: Drop McASP AFIFOs
      arm64: dts: ti: k3-am62p5: Drop McASP AFIFOs
      arm64: dts: ti: k3-am625-beagleplay: Drop McASP AFIFOs
      arm64: dts: ti: k3-am62-verdin: Drop McASP AFIFOs
      arm64: dts: ti: k3-am625-phyboard-lyra-rdk: Drop McASP AFIFOs
      arm64: dts: ti: k3-am62p5-sk: Fix pinmux for McASP1 TX

Jared McArthur (1):
      arm64: dts: ti: k3-j722s: Add gpio-ranges properties

Jayesh Choudhary (8):
      arm64: dts: ti: k3-am62-main: Fix the reg-range for main_pktdma
      arm64: dts: ti: k3-am62a-main: Fix the reg-range for main_pktdma
      arm64: dts: ti: k3-am62p-main: Fix the reg-range for main_pktdma
      arm64: dts: ti: k3-j722s-main: Add audio_refclk node
      arm64: dts: ti: k3-j722s-evm: Enable analog audio support
      arm64: dts: ti: k3-j784s4-main: Add McASP nodes
      arm64: dts: ti: k3-j784s4-main: Add audio_refclk node
      arm64: dts: ti: k3-j784s4-evm: Enable analog audio support

Josua Mayer (1):
      arm64: dts: ti: k3-am642-hummingboard-t: correct rs485 rts polarity=


Kamlesh Gurudasani (2):
      arm64: dts: ti: k3-am62a-main: Enable crypto accelerator
      arm64: dts: ti: k3-am62*-main: Remove unwanted properties from cryp=
to

MD Danish Anwar (2):
      arm64: dts: ti: k3-am642-evm-icssg1-dualemac: add overlay for mii m=
ode
      arm64: dts: ti: k3-am642-evm: Enable "SYNC_OUT0" output

Matt Ranostay (2):
      arm64: dts: ti: k3-j784s4-main: Add support for USB
      arm64: dts: ti: k3-j784s4-evm: Enable USB3 support

Matthias Schiffer (1):
      arm64: dts: ti: k3-am64-tqma64xxl: relicense to GPL-2.0-only OR MIT=


Nathan Morrisson (9):
      arm64: dts: ti: phycore-am64: Add PMIC
      arm64: dts: ti: am62-phyboard-lyra: Add overlay to increase cpu fre=
quency to 1.4 GHz
      arm64: dts: ti: am642-phyboard-electra: Remove PCIe pinmuxing
      arm64: dts: ti: am642-phyboard-electra: Add overlay to enable PCIe
      arm64: dts: ti: k3-am64-phycore-som: Add serial_flash label
      arm64: dts: ti: k3-am6xx-phycore-som: Add overlay to disable eth ph=
y
      arm64: dts: ti: k3-am6xx-phycore-som: Add overlay to disable rtc
      arm64: dts: ti: k3-am6xx-phycore-som: Add overlay to disable spi no=
r
      arm64: dts: ti: k3-am6xx-phycore-qspi-nor: Add overlay to enable QS=
PI NOR

Neha Malcom Francis (4):
      arm64: boot: dts: ti: k3-*: Add memory node to bootloader stage
      arm64: dts: ti: k3-am68-sk-base-board: Add LP8733 and TPS6287 nodes=

      arm64: dts: ti: k3-am69-sk: Add TPS62873 node
      arm64: dts: ti: k3-j784s4-evm: Add TPS62873 node

Nishanth Menon (2):
      arm64: dts: ti: k3-pinctrl: Define a generic GPIO MUX Mode
      arm64: dts: ti: k3-am62p: Add gpio-ranges properties

Nitin Yadav (1):
      arm64: dts: ti: k3-am62: Add GPMC and ELM nodes

Roger Quadros (3):
      arm64: dts: ti: am642-evm: Add overlay for NAND expansion card
      arm64: dts: ti: am62-lp-sk: Add overlay for NAND expansion card
      arm: dts: k3-am642-evm-nand: Add bootph-all to NAND related nodes

Siddharth Vadapalli (16):
      arm64: dts: ti: k3-j784s4-main: Add CPSW2G and CPSW9G nodes
      arm64: dts: ti: k3-j784s4-evm: Enable Main CPSW2G node and add alia=
ses for it
      arm64: dts: ti: k3-j784s4: Add overlay to enable QSGMII mode with C=
PSW9G
      arm64: dts: ti: k3-j784s4: Add overlay for dual port USXGMII mode
      arm64: dts: ti: k3-am62p: use eFuse MAC Address for CPSW3G Port 1
      arm64: dts: ti: k3-j784s4-main: Add PCIe nodes
      arm64: dts: ti: k3-j784s4-evm: Enable PCIe0 and PCIe1 in RC Mode
      arm64: dts: ti: k3-j784s4-evm: Add overlay for PCIe0 and PCIe1 EP M=
ode
      arm64: dts: ti: am62p: Rename am62p-{}.dtsi to am62p-j722s-common-{=
}.dtsi
      arm64: dts: ti: k3-am62p-j722s: Move AM62P specific USB1 to am62p-m=
ain.dtsi
      arm64: dts: ti: k3-j722s: Add main domain peripherals specific to J=
722S
      arm64: dts: ti: k3-j722s: Switch to k3-am62p-j722s-common-{}.dtsi i=
ncludes
      arm64: dts: ti: k3-serdes: Add SERDES0/SERDES1 lane-muxing macros f=
or J722S
      arm64: dts: ti: k3-j722s-main: Add SERDES and PCIe support
      arm64: dts: ti: k3-j722s: Enable PCIe and USB support on J722S-EVM
      arm64: dts: ti: k3-am62p-j722s: Move SoC-specific node properties

Sinthu Raja (1):
      arm64: dts: ti: k3-am68-sk-som: Add support for OSPI flash

Suman Anna (2):
      arm64: dts: ti: k3-am64-main: Add PRU system events for virtio
      arm64: dts: ti: k3-am65-main: Add PRU system events for virtio

Tomi Valkeinen (1):
      arm64: dts: ti: k3-j721e: Add overlay for J721E Infotainment Expans=
ion Board

Vaishnav Achath (1):
      arm64: dts: ti: k3-j722s: Fix main domain GPIO count

Vibhore Vardhan (1):
      arm64: dts: ti: k3-am62a-wakeup: Enable RTC node

 Documentation/devicetree/bindings/arm/ti/k3.yaml             |    6 +
 arch/arm64/boot/dts/ti/Makefile                              |   56 +-
 arch/arm64/boot/dts/ti/k3-am62-lp-sk-nand.dtso               |  116 +
 arch/arm64/boot/dts/ti/k3-am62-lp-sk.dts                     |    4 +
 arch/arm64/boot/dts/ti/k3-am62-main.dtsi                     |   39 +-
 arch/arm64/boot/dts/ti/k3-am62-verdin-dev.dtsi               |    4 +-
 arch/arm64/boot/dts/ti/k3-am62-verdin.dtsi                   |    4 -
 arch/arm64/boot/dts/ti/k3-am62-wakeup.dtsi                   |    5 +
 arch/arm64/boot/dts/ti/k3-am62.dtsi                          |    2 +
 arch/arm64/boot/dts/ti/k3-am625-beagleplay.dts               |    2 -
 .../boot/dts/ti/k3-am625-phyboard-lyra-1-4-ghz-opp.dtso      |   20 +
 arch/arm64/boot/dts/ti/k3-am625-phyboard-lyra-rdk.dts        |  467 +---=

 arch/arm64/boot/dts/ti/k3-am62a-main.dtsi                    |   32 +-
 arch/arm64/boot/dts/ti/k3-am62a-phycore-som.dtsi             |  330 +++
 arch/arm64/boot/dts/ti/k3-am62a-wakeup.dtsi                  |   11 +-
 arch/arm64/boot/dts/ti/k3-am62a7-phyboard-lyra-rdk.dts       |   18 +
 arch/arm64/boot/dts/ti/k3-am62a7-sk.dts                      |   11 +-
 arch/arm64/boot/dts/ti/k3-am62p-j722s-common-main.dtsi       | 1062 ++++=
+++++
 .../ti/{k3-am62p-mcu.dtsi =3D> k3-am62p-j722s-common-mcu.dtsi} |   11 +-=

 ...am62p-thermal.dtsi =3D> k3-am62p-j722s-common-thermal.dtsi} |    0
 ...3-am62p-wakeup.dtsi =3D> k3-am62p-j722s-common-wakeup.dtsi} |    8 +-=

 arch/arm64/boot/dts/ti/k3-am62p-main.dtsi                    | 1083 +---=
------
 arch/arm64/boot/dts/ti/k3-am62p.dtsi                         |    9 +-
 arch/arm64/boot/dts/ti/k3-am62p5-sk.dts                      |   20 +-
 arch/arm64/boot/dts/ti/k3-am62x-phyboard-lyra.dtsi           |  475 ++++=

 arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi               |   32 +-
 arch/arm64/boot/dts/ti/k3-am64-main.dtsi                     |   24 +
 arch/arm64/boot/dts/ti/k3-am64-phycore-som.dtsi              |   46 +-
 .../arm64/boot/dts/ti/k3-am64-tqma64xxl-mbax4xxl-sdcard.dtso |    4 +-
 arch/arm64/boot/dts/ti/k3-am64-tqma64xxl-mbax4xxl-wlan.dtso  |    4 +-
 arch/arm64/boot/dts/ti/k3-am642-evm-icssg1-dualemac-mii.dtso |  101 +
 arch/arm64/boot/dts/ti/k3-am642-evm-nand.dtso                |  148 ++
 arch/arm64/boot/dts/ti/k3-am642-evm.dts                      |   15 +
 arch/arm64/boot/dts/ti/k3-am642-hummingboard-t.dts           |    1 -
 .../boot/dts/ti/k3-am642-phyboard-electra-pcie-usb2.dtso     |   87 +
 arch/arm64/boot/dts/ti/k3-am642-phyboard-electra-rdk.dts     |   12 -
 arch/arm64/boot/dts/ti/k3-am642-sk.dts                       |   12 +
 arch/arm64/boot/dts/ti/k3-am642-tqma64xxl-mbax4xxl.dts       |    4 +-
 arch/arm64/boot/dts/ti/k3-am642-tqma64xxl.dtsi               |    4 +-
 arch/arm64/boot/dts/ti/k3-am65-main.dtsi                     |   36 +
 arch/arm64/boot/dts/ti/k3-am65-mcu.dtsi                      |   12 +-
 arch/arm64/boot/dts/ti/k3-am654-base-board.dts               |    1 +
 arch/arm64/boot/dts/ti/k3-am68-sk-base-board.dts             |   76 +
 arch/arm64/boot/dts/ti/k3-am68-sk-som.dtsi                   |   86 +-
 arch/arm64/boot/dts/ti/k3-am69-sk.dts                        |   87 +-
 arch/arm64/boot/dts/ti/k3-am6xx-phycore-disable-eth-phy.dtso |   19 +
 arch/arm64/boot/dts/ti/k3-am6xx-phycore-disable-rtc.dtso     |   15 +
 arch/arm64/boot/dts/ti/k3-am6xx-phycore-disable-spi-nor.dtso |   15 +
 arch/arm64/boot/dts/ti/k3-am6xx-phycore-qspi-nor.dtso        |   15 +
 arch/arm64/boot/dts/ti/k3-j7200-mcu-wakeup.dtsi              |   14 +-
 arch/arm64/boot/dts/ti/k3-j7200-som-p0.dtsi                  |    5 +-
 .../boot/dts/ti/k3-j721e-common-proc-board-infotainment.dtso |  164 ++
 arch/arm64/boot/dts/ti/k3-j721e-mcu-wakeup.dtsi              |   12 +-
 arch/arm64/boot/dts/ti/k3-j721e-sk.dts                       |  117 +
 arch/arm64/boot/dts/ti/k3-j721e-som-p0.dtsi                  |    1 +
 arch/arm64/boot/dts/ti/k3-j721s2-mcu-wakeup.dtsi             |   12 +-
 arch/arm64/boot/dts/ti/k3-j721s2-som-p0.dtsi                 |    5 +-
 arch/arm64/boot/dts/ti/k3-j722s-evm.dts                      |  182 ++
 arch/arm64/boot/dts/ti/k3-j722s-main.dtsi                    |  217 ++
 arch/arm64/boot/dts/ti/k3-j722s.dtsi                         |  165 +-
 arch/arm64/boot/dts/ti/k3-j784s4-evm-pcie0-pcie1-ep.dtso     |   79 +
 arch/arm64/boot/dts/ti/k3-j784s4-evm-quad-port-eth-exp1.dtso |  147 ++
 arch/arm64/boot/dts/ti/k3-j784s4-evm-usxgmii-exp1-exp2.dtso  |   81 +
 arch/arm64/boot/dts/ti/k3-j784s4-evm.dts                     |  383 +++-=

 arch/arm64/boot/dts/ti/k3-j784s4-main.dtsi                   |  527 ++++=
+
 arch/arm64/boot/dts/ti/k3-j784s4-mcu-wakeup.dtsi             |   14 +-
 arch/arm64/boot/dts/ti/k3-j784s4.dtsi                        |   10 +-
 arch/arm64/boot/dts/ti/k3-pinctrl.h                          |    3 +
 arch/arm64/boot/dts/ti/k3-serdes.h                           |    8 +
 69 files changed, 5153 insertions(+), 1644 deletions(-)
 create mode 100644 arch/arm64/boot/dts/ti/k3-am62-lp-sk-nand.dtso
 create mode 100644 arch/arm64/boot/dts/ti/k3-am625-phyboard-lyra-1-4-ghz=
-opp.dtso
 create mode 100644 arch/arm64/boot/dts/ti/k3-am62a-phycore-som.dtsi
 create mode 100644 arch/arm64/boot/dts/ti/k3-am62a7-phyboard-lyra-rdk.dt=
s
 create mode 100644 arch/arm64/boot/dts/ti/k3-am62p-j722s-common-main.dts=
i
 rename arch/arm64/boot/dts/ti/{k3-am62p-mcu.dtsi =3D> k3-am62p-j722s-com=
mon-mcu.dtsi} (94%)
 rename arch/arm64/boot/dts/ti/{k3-am62p-thermal.dtsi =3D> k3-am62p-j722s=
-common-thermal.dtsi} (100%)
 rename arch/arm64/boot/dts/ti/{k3-am62p-wakeup.dtsi =3D> k3-am62p-j722s-=
common-wakeup.dtsi} (93%)
 create mode 100644 arch/arm64/boot/dts/ti/k3-am62x-phyboard-lyra.dtsi
 create mode 100644 arch/arm64/boot/dts/ti/k3-am642-evm-icssg1-dualemac-m=
ii.dtso
 create mode 100644 arch/arm64/boot/dts/ti/k3-am642-evm-nand.dtso
 create mode 100644 arch/arm64/boot/dts/ti/k3-am642-phyboard-electra-pcie=
-usb2.dtso
 create mode 100644 arch/arm64/boot/dts/ti/k3-am6xx-phycore-disable-eth-p=
hy.dtso
 create mode 100644 arch/arm64/boot/dts/ti/k3-am6xx-phycore-disable-rtc.d=
tso
 create mode 100644 arch/arm64/boot/dts/ti/k3-am6xx-phycore-disable-spi-n=
or.dtso
 create mode 100644 arch/arm64/boot/dts/ti/k3-am6xx-phycore-qspi-nor.dtso=

 create mode 100644 arch/arm64/boot/dts/ti/k3-j721e-common-proc-board-inf=
otainment.dtso
 create mode 100644 arch/arm64/boot/dts/ti/k3-j722s-main.dtsi
 create mode 100644 arch/arm64/boot/dts/ti/k3-j784s4-evm-pcie0-pcie1-ep.d=
tso
 create mode 100644 arch/arm64/boot/dts/ti/k3-j784s4-evm-quad-port-eth-ex=
p1.dtso
 create mode 100644 arch/arm64/boot/dts/ti/k3-j784s4-evm-usxgmii-exp1-exp=
2.dtso

--=20
Regards
Vignesh

--------------Dq2T6pWO0f31Rwc8DO8OhgEL--

--------------rk0kaNJsTHDwI2dwxMRWD3C6
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature.asc"

-----BEGIN PGP SIGNATURE-----

wsB5BAABCAAjFiEEyRC2zAhGcGjrhiNExEYeRXyRFuMFAmaIDREFAwAAAAAACgkQxEYeRXyRFuMB
oQf9GNtvrQCmRv1akppWl7IlDiW55qNHSQvVzWZwqO9dAwRQ5GppY7KY8WOPbkVuwC71NCHi7msW
0/SeXI5zt3N/R0RP1lGlsgO3uEDRr45cxmvkUh+6sgUQuHtB380hCm58jtheKviI5HcEdUNKJ0A3
E4CkUgb3+xIx5WNrA2I8lGr0j5a1Ibr4brrDi5D1O0v0JU8SpFVBIIaxFDy48exPTAXslFDJrRXz
zlA38d17x0FiLbZUM9QM+qnxJPxYL+Q2bEC7oIx80yF340zrny9PeS/a1ZbC7CTMnpzR5ISNVT3u
7Z5BsF6SBEiKOeEF1j+0BOnqbLtSWlR7s3+oJpHqhw==
=iPir
-----END PGP SIGNATURE-----

--------------rk0kaNJsTHDwI2dwxMRWD3C6--
.

From: Johannes Thumshirn <jth@kernel.org>
Subject: [PATCH v4 0/7] btrfs: rst: updates for RAID stripe tree
Date: Fri, 05 Jul 2024 17:13:46 +0200
Message-Id: <20240705-b4-rst-updates-v4-0-f3eed3f2cfad@kernel.org>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
To: Chris Mason <clm@fb.com>, Josef Bacik <josef@toxicpanda.com>, 
 David Sterba <dsterba@suse.com>
Cc: linux-btrfs@vger.kernel.org, linux-kernel@vger.kernel.org, 
 Johannes Thumshirn <johannes.thumshirn@wdc.com>
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1269340
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-btrfs
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Patch 1 replaces stripe extents in case we hit a EEXIST when inserting a
stripe extent on a write. This can happen i.e. on device-replace.

Patch 2 splits a stripe extent on partial delete of a stripe.

Patch 3 adds selftests for the stripe-tree delete code, these selftests
can and will be extended to cover insert and get as well.

Patch 4 fixes a deadlock between scrub and device replace when RST is
used.

Patch 5 get's rid of the pointless tree dump in case we're not finding an
RST entry.

Patch 6 is a prep-patch form #7 and renames btrfs_io_stripe::is_scrub to
commit_root.

Patch 7 changes the read code so we're looking at the commit_root for
relocation as well.

---
Changes in v4:
- Addressed Josef's comments
- Added patches 6 & 7
- Link to v3: https://lore.kernel.org/r/20240701-b4-rst-updates-v3-0-e0437e1e04a6@kernel.org

Changes in v3:
- Drop on-disk format change as it's in for-next
- Add patches 4 & 5
- Link to v2: https://lore.kernel.org/r/20240619-b4-rst-updates-v2-0-89c34d0d5298@kernel.org

Changes in v2:
- Added selftests for delete code
- Link to v1: https://lore.kernel.org/r/20240610-b4-rst-updates-v1-0-179c1eec08f2@kernel.org

---
Johannes Thumshirn (7):
      btrfs: replace stripe extents
      btrfs: rst: don't print tree dump in case lookup fails
      btrfs: split RAID stripes on deletion
      btrfs: stripe-tree: add selftests
      btrfs: don't hold dev_replace rwsem over whole of btrfs_map_block
      btrfs: rename brtfs_io_stripe::is_scrub to commit_root
      btrfs: stripe-tree: also look at commit root on relocation

 fs/btrfs/Makefile                       |   3 +-
 fs/btrfs/bio.c                          |   3 +-
 fs/btrfs/ctree.c                        |   1 +
 fs/btrfs/raid-stripe-tree.c             | 145 +++++++++++---
 fs/btrfs/raid-stripe-tree.h             |   5 +
 fs/btrfs/scrub.c                        |   2 +-
 fs/btrfs/tests/btrfs-tests.c            |   3 +
 fs/btrfs/tests/btrfs-tests.h            |   1 +
 fs/btrfs/tests/raid-stripe-tree-tests.c | 322 ++++++++++++++++++++++++++++++++
 fs/btrfs/volumes.c                      |  28 +--
 fs/btrfs/volumes.h                      |   2 +-
 11 files changed, 470 insertions(+), 45 deletions(-)
---
base-commit: 3caaac6559396d9e668deb10345b7f3bb45f6ba9
change-id: 20240610-b4-rst-updates-d0aa696b9d5a

Best regards,
-- 
Johannes Thumshirn <jth@kernel.org>

.

Date: Fri, 5 Jul 2024 17:14:38 +0200
From: Daniel Vetter <daniel.vetter@ffwll.ch>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Dave Airlie <airlied@gmail.com>,
	DRI Development <dri-devel@lists.freedesktop.org>,
	LKML <linux-kernel@vger.kernel.org>
Subject: [PULL] drm-fixes for v6.10
Message-ID: <ZogN3gNPBVb29Vgl@phenom.ffwll.local>
Mail-Followup-To: Linus Torvalds <torvalds@linux-foundation.org>,
	Dave Airlie <airlied@gmail.com>,
	DRI Development <dri-devel@lists.freedesktop.org>,
	LKML <linux-kernel@vger.kernel.org>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1269349
Newsgroups: org.kernel.vger.linux-kernel,org.freedesktop.lists.dri-devel
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Hi Linus,

Dave is on vacations, should be back next week. Just small fixes all over
here, all quiet as it should.

Cheers, Sima

drm-fixes-2024-07-05:
drm-fixes for v6.10-rc7

drivers:
- amd: mostly amdgpu display fixes + radeon vm NULL deref fix
- xe: migration error handling + typoed register name in gt setup
- i915: usb-c fix to shut up warnings on MTL+
- panthor: fix sync-only jobs + ioctl validation fix to not EINVAL
  wrongly
- panel quirks
- nouveau: NULL deref in get_modes

drm core:
- fbdev big endian fix for the dma memory backed variant

drivers/firmware:
- fix sysfb refcounting

Cheers, Daniel

The following changes since commit 22a40d14b572deb80c0648557f4bd502d7e83826:

  Linux 6.10-rc6 (2024-06-30 14:40:44 -0700)

are available in the Git repository at:

  https://gitlab.freedesktop.org/drm/kernel.git tags/drm-fixes-2024-07-05

for you to fetch changes up to 3c6f5afd91cfacba9f43fd388f2d88c85195ae32:

  Merge tag 'amd-drm-fixes-6.10-2024-07-03' of https://gitlab.freedesktop.org/agd5f/linux into drm-fixes (2024-07-05 12:54:14 +0200)

----------------------------------------------------------------
drm-fixes for v6.10-rc7

drivers:
- amd: mostly amdgpu display fixes + radeon vm NULL deref fix
- xe: migration error handling + typoed register name in gt setup
- i915: usb-c fix to shut up warnings on MTL+
- panthor: fix sync-only jobs + ioctl validation fix to not EINVAL
  wrongly
- panel quirks
- nouveau: NULL deref in get_modes

drm core:
- fbdev big endian fix for the dma memory backed variant

drivers/firmware:
- fix sysfb refcounting

----------------------------------------------------------------
Alex Deucher (1):
      drm/amdgpu/atomfirmware: silence UBSAN warning

Alvin Lee (1):
      drm/amd/display: Account for cursor prefetch BW in DML1 mode support

Boris Brezillon (2):
      drm/panthor: Don't check the array stride on empty uobj arrays
      drm/panthor: Fix sync-only jobs

Daniel Vetter (4):
      Merge tag 'drm-intel-fixes-2024-07-02' of https://gitlab.freedesktop.org/drm/i915/kernel into drm-fixes
      Merge tag 'drm-xe-fixes-2024-07-04' of https://gitlab.freedesktop.org/drm/xe/kernel into drm-fixes
      Merge tag 'drm-misc-fixes-2024-07-04' of https://gitlab.freedesktop.org/drm/misc/kernel into drm-fixes
      Merge tag 'amd-drm-fixes-6.10-2024-07-03' of https://gitlab.freedesktop.org/agd5f/linux into drm-fixes

Fangzhi Zuo (1):
      drm/amd/display: Update efficiency bandwidth for dcn351

Imre Deak (1):
      drm/i915/display: For MTL+ platforms skip mg dp programming

John Schoenick (1):
      drm: panel-orientation-quirks: Add quirk for Valve Galileo

Ma Ke (1):
      drm/nouveau: fix null pointer dereference in nouveau_connector_get_modes

Matt Roper (1):
      drm/xe/mcr: Avoid clobbering DSS steering

Matthew Auld (1):
      drm/xe: fix error handling in xe_migrate_update_pgtables

Matthew Schwartz (1):
      drm: panel-orientation-quirks: Add labels for both Valve Steam Deck revisions

Pierre-Eric Pelloux-Prayer (1):
      drm/radeon: check bo_va->bo is non-NULL before using it

Roman Li (1):
      drm/amd/display: Fix array-index-out-of-bounds in dml2/FCLKChangeSupport

Thomas Hellstrm (1):
      drm/ttm: Always take the bo delayed cleanup path for imported bos

Thomas Huth (1):
      drm/fbdev-generic: Fix framebuffer on big endian devices

Thomas Zimmermann (1):
      firmware: sysfb: Fix reference count of sysfb parent device

Tom Chung (3):
      drm/amd/display: Reset freesync config before update new state
      drm/amd/display: Add refresh rate range check
      drm/amd/display: Fix refresh rate range for some panel

 drivers/firmware/sysfb.c                           | 12 +++--
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c  | 53 +++++++++++++++++++++-
 .../amd/display/dc/dml/dcn32/display_mode_vba_32.c |  3 ++
 .../amd/display/dc/dml2/dml2_translation_helper.c  |  1 +
 drivers/gpu/drm/amd/display/dc/dml2/dml2_utils.c   |  2 +-
 drivers/gpu/drm/amd/include/atomfirmware.h         |  2 +-
 drivers/gpu/drm/drm_fbdev_generic.c                |  3 +-
 drivers/gpu/drm/drm_panel_orientation_quirks.c     |  9 +++-
 drivers/gpu/drm/i915/display/intel_ddi.c           |  3 ++
 drivers/gpu/drm/nouveau/nouveau_connector.c        |  3 ++
 drivers/gpu/drm/panthor/panthor_drv.c              |  6 +--
 drivers/gpu/drm/panthor/panthor_sched.c            | 44 +++++++++++++-----
 drivers/gpu/drm/radeon/radeon_gem.c                |  2 +-
 drivers/gpu/drm/ttm/ttm_bo.c                       |  1 +
 drivers/gpu/drm/xe/xe_gt_mcr.c                     |  6 +--
 drivers/gpu/drm/xe/xe_migrate.c                    |  8 ++--
 include/uapi/drm/panthor_drm.h                     |  5 ++
 17 files changed, 132 insertions(+), 31 deletions(-)

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
.

Date: Fri, 5 Jul 2024 10:14:49 -0500
From: Nishanth Menon <nm@ti.com>
To: Arnd <arnd@arndb.de>, Olof <olof@lixom.net>, SoC <soc@kernel.org>
CC: <arm@kernel.org>, <linux-arm-kernel@lists.infradead.org>,
        <linux-kernel@vger.kernel.org>,
        Santosh Shilimkar <ssantosh@kernel.org>,
        Tony
 Lindgren <tony@atomide.com>
Subject: [GIT PULL] soc: ti: Driver updates for v6.11
Message-ID: <20240705151449.s4rngkehjn73favn@stream>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha512;
	protocol="application/pgp-signature"; boundary="ds5cc3igitvhtjwr"
Content-Disposition: inline
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1269350
Newsgroups: org.kernel.vger.linux-kernel,org.infradead.lists.linux-arm-kernel,org.kernel.lore.soc
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

--ds5cc3igitvhtjwr
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

Hi,

Please pull:

The following changes since commit 1613e604df0cd359cf2a7fbd9be7a0bcfacfabd0:

  Linux 6.10-rc1 (2024-05-26 15:20:12 -0700)

are available in the Git repository at:

  https://git.kernel.org/pub/scm/linux/kernel/git/ti/linux.git tags/ti-driv=
er-soc-for-v6.11

for you to fetch changes up to b87a1cbb3385a806f8abfd9b8a2191e4c6620347:

  dt-bindings: soc: ti: Move ti,j721e-system-controller.yaml to soc/ti (202=
4-07-01 08:09:27 -0500)

----------------------------------------------------------------
TI SoC driver updates for v6.11

- Update TISCI protocol URL link  which was dead
- socinfo: Add j721E SR 2.0 detection support
- MAINTAINER list additions: ti,pruss.yaml and ti,j721e-system-controller.y=
aml
- pm33xx: log statement improvement
- knav_qmss: minor data structure optimization

----------------------------------------------------------------
Christophe JAILLET (1):
      soc: ti: knav_qmss: Constify struct knav_range_ops

MD Danish Anwar (1):
      MAINTAINERS: Add entry for ti,pruss.yaml to TI KEYSTONE MULTICORE NAV=
IGATOR DRIVERS

Neha Malcom Francis (1):
      soc: ti: k3-socinfo: Add J721E SR2.0

Richard Genoud (2):
      dt-bindings: ti: fix TISCI protocol URL link
      firmware: ti_sci: fix TISCI protocol URL link

Roger Quadros (1):
      dt-bindings: soc: ti: Move ti,j721e-system-controller.yaml to soc/ti

Vasyl Gomonovych (1):
      soc: ti: pm33xx: Fix missing newlines in log statements

 Documentation/devicetree/bindings/arm/keystone/ti,sci.yaml            | 2 =
+-
 Documentation/devicetree/bindings/clock/ti,sci-clk.yaml               | 2 =
+-
 Documentation/devicetree/bindings/reset/ti,sci-reset.yaml             | 2 =
+-
 Documentation/devicetree/bindings/soc/ti/sci-pm-domain.yaml           | 2 =
+-
 .../bindings/{mfd =3D> soc/ti}/ti,j721e-system-controller.yaml          | =
4 ++--
 MAINTAINERS                                                           | 1 +
 drivers/firmware/ti_sci.h                                             | 2 =
+-
 drivers/soc/ti/k3-socinfo.c                                           | 2 =
+-
 drivers/soc/ti/knav_qmss.h                                            | 2 =
+-
 drivers/soc/ti/knav_qmss_acc.c                                        | 2 =
+-
 drivers/soc/ti/knav_qmss_queue.c                                      | 2 =
+-
 drivers/soc/ti/pm33xx.c                                               | 4 =
++--
 12 files changed, 14 insertions(+), 13 deletions(-)
 rename Documentation/devicetree/bindings/{mfd =3D> soc/ti}/ti,j721e-system=
-controller.yaml (96%)

--=20
Regards,
Nishanth Menon
Key (0xDDB5849D1736249D) / Fingerprint: F8A2 8693 54EB 8232 17A3  1A34 DDB5=
 849D 1736 249D

--ds5cc3igitvhtjwr
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQIzBAABCgAdFiEE+KKGk1TrgjIXoxo03bWEnRc2JJ0FAmaIDd8ACgkQ3bWEnRc2
JJ2zTg/9HgAcxzlVJjtsVovpga3vZTtcSOb9RvdNrKMrERe0TwEBzUA7dFnj0lLy
xPQKGEorhrCHc/50j/VeSkgGbPtLaOGhjpzxn7bUqBR+9BTlviBqn7nDujCl6fW5
INt2hlKbMm+l6LTX7/CTUWBBRaoC2AqibGtU4ZSWFzWA/G5UAABXK3E2OhgSFPiw
FfNVIDzSzwHw4kDTPIUMdnCKue0UfCFMF/JyCqXYt4wd0SuWEqDnT/s+e0qm/kwO
+LAOyrcjjCDS1vKc21ayhSz9T05WsHwJnGtlWgd9WHTE+lumsYoZMU7eoc78aE4E
YuQJO3nIJVLSTCtQ9jn7A+y20/hSV8GsqxXPmxKQAxxhQdFoR6VdB2bkwKGMwtRX
5p9a/MfJRfPxDdQzU0THHsAN2YegUUEEBsTsulkUfSWh/hBtMsfYrMM55d0DHdte
mo6y+xtuCbzP4etIvyFzrWq45OYrsd2+mX1iUu1+LUYPTC1eR+A38OXIfd4D89CU
3+RohINUHJmEQ/qF96M0o1WvbcL2OvMxFOjpuNqCb8IarYT24krW3V017CIYo1eU
2a0y6/8n74Y2EmH+alDSCmRSEMwzw3SkSLCLhaKWF34Jm/Zr2jbgtl4ynXqsbMUE
t1EU39z+Vf3ioGdwLQhSBFYQ9E+9gEvJ4gvI82/dQLItTXCropU=
=HovR
-----END PGP SIGNATURE-----

--ds5cc3igitvhtjwr--
.

From: Mukesh Ojha <quic_mojha@quicinc.com>
To: <lee@kernel.org>, <robh@kernel.org>, <krzk+dt@kernel.org>,
        <conor+dt@kernel.org>, <andersson@kernel.org>,
        <konrad.dybcio@linaro.org>
CC: <linux-arm-msm@vger.kernel.org>, <devicetree@vger.kernel.org>,
        <linux-kernel@vger.kernel.org>, Mukesh Ojha <quic_mojha@quicinc.com>
Subject: [PATCH 1/2] dt-bindings: mfd: qcom,tcsr: Add compatible for sa8775p
Date: Fri, 5 Jul 2024 21:02:51 +0530
Message-ID: <20240705153252.1571814-1-quic_mojha@quicinc.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1269359
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-arm-msm,org.kernel.vger.linux-devicetree
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Document the compatible for sa8775p SoC.

Signed-off-by: Mukesh Ojha <quic_mojha@quicinc.com>
---
 Documentation/devicetree/bindings/mfd/qcom,tcsr.yaml | 1 +
 1 file changed, 1 insertion(+)

diff --git a/Documentation/devicetree/bindings/mfd/qcom,tcsr.yaml b/Documentation/devicetree/bindings/mfd/qcom,tcsr.yaml
index c6bd14ec5aa0..7d0b0b403150 100644
--- a/Documentation/devicetree/bindings/mfd/qcom,tcsr.yaml
+++ b/Documentation/devicetree/bindings/mfd/qcom,tcsr.yaml
@@ -21,6 +21,7 @@ properties:
           - qcom,msm8998-tcsr
           - qcom,qcm2290-tcsr
           - qcom,qcs404-tcsr
+          - qcom,sa8775p-tcsr
           - qcom,sc7180-tcsr
           - qcom,sc7280-tcsr
           - qcom,sc8280xp-tcsr
-- 
2.34.1

.

From: =?utf-8?q?N=C3=ADcolas_F=2E_R=2E_A=2E_Prado?= <nfraprado@collabora.com>
Date: Fri, 05 Jul 2024 11:54:43 -0400
Subject: [PATCH v2] cpufreq: mediatek: Use dev_err_probe in every error
 path in probe
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit
Message-Id: <20240705-mtk-cpufreq-dvfs-fail-init-err-v2-1-3a7f91b02ab0@collabora.com>
To: "Rafael J. Wysocki" <rafael@kernel.org>, 
 Viresh Kumar <viresh.kumar@linaro.org>, 
 Matthias Brugger <matthias.bgg@gmail.com>, 
 AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Cc: kernel@collabora.com, linux-pm@vger.kernel.org, 
 linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, 
 linux-mediatek@lists.infradead.org, 
 =?utf-8?q?N=C3=ADcolas_F=2E_R=2E_A=2E_Prado?= <nfraprado@collabora.com>
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1269368
Newsgroups: org.kernel.vger.linux-kernel,org.infradead.lists.linux-arm-kernel,org.infradead.lists.linux-mediatek,org.kernel.vger.linux-pm
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Use the dev_err_probe() helper to log the errors on every error path in
the probe function and its sub-functions. This includes
* adding error messages where there was none
* converting over dev_err/dev_warn
* removing the top-level error message after mtk_cpu_dvfs_info_init() is
  called, since every error path inside that function already logs the
  error reason. This gets rid of the misleading error message when probe
  is deferred:

    mtk-cpufreq mtk-cpufreq: failed to initialize dvfs info for cpu0

Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Signed-off-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>
---
Changes in v2:
- Fixed one occurrence of the error code being set after the usage
- For the paths that need to set the `ret` variable to the error code,
  changed them so they set it from dev_err_probe()'s return, in a single
  line.
- Link to v1: https://lore.kernel.org/r/20240628-mtk-cpufreq-dvfs-fail-init-err-v1-1-19c55db23011@collabora.com
---
 drivers/cpufreq/mediatek-cpufreq.c | 72 ++++++++++++++++++--------------------
 1 file changed, 34 insertions(+), 38 deletions(-)

diff --git a/drivers/cpufreq/mediatek-cpufreq.c b/drivers/cpufreq/mediatek-cpufreq.c
index 518606adf14e..b3d85b7f2517 100644
--- a/drivers/cpufreq/mediatek-cpufreq.c
+++ b/drivers/cpufreq/mediatek-cpufreq.c
@@ -390,28 +390,23 @@ static int mtk_cpu_dvfs_info_init(struct mtk_cpu_dvfs_info *info, int cpu)
 	int ret;
 
 	cpu_dev = get_cpu_device(cpu);
-	if (!cpu_dev) {
-		dev_err(cpu_dev, "failed to get cpu%d device\n", cpu);
-		return -ENODEV;
-	}
+	if (!cpu_dev)
+		return dev_err_probe(cpu_dev, -ENODEV, "failed to get cpu%d device\n", cpu);
 	info->cpu_dev = cpu_dev;
 
 	info->ccifreq_bound = false;
 	if (info->soc_data->ccifreq_supported) {
 		info->cci_dev = of_get_cci(info->cpu_dev);
-		if (IS_ERR(info->cci_dev)) {
-			ret = PTR_ERR(info->cci_dev);
-			dev_err(cpu_dev, "cpu%d: failed to get cci device\n", cpu);
-			return -ENODEV;
-		}
+		if (IS_ERR(info->cci_dev))
+			return dev_err_probe(cpu_dev, PTR_ERR(info->cci_dev),
+					     "cpu%d: failed to get cci device\n",
+					     cpu);
 	}
 
 	info->cpu_clk = clk_get(cpu_dev, "cpu");
-	if (IS_ERR(info->cpu_clk)) {
-		ret = PTR_ERR(info->cpu_clk);
-		return dev_err_probe(cpu_dev, ret,
+	if (IS_ERR(info->cpu_clk))
+		return dev_err_probe(cpu_dev, PTR_ERR(info->cpu_clk),
 				     "cpu%d: failed to get cpu clk\n", cpu);
-	}
 
 	info->inter_clk = clk_get(cpu_dev, "intermediate");
 	if (IS_ERR(info->inter_clk)) {
@@ -431,7 +426,7 @@ static int mtk_cpu_dvfs_info_init(struct mtk_cpu_dvfs_info *info, int cpu)
 
 	ret = regulator_enable(info->proc_reg);
 	if (ret) {
-		dev_warn(cpu_dev, "cpu%d: failed to enable vproc\n", cpu);
+		dev_err_probe(cpu_dev, ret, "cpu%d: failed to enable vproc\n", cpu);
 		goto out_free_proc_reg;
 	}
 
@@ -439,14 +434,17 @@ static int mtk_cpu_dvfs_info_init(struct mtk_cpu_dvfs_info *info, int cpu)
 	info->sram_reg = regulator_get_optional(cpu_dev, "sram");
 	if (IS_ERR(info->sram_reg)) {
 		ret = PTR_ERR(info->sram_reg);
-		if (ret == -EPROBE_DEFER)
+		if (ret == -EPROBE_DEFER) {
+			dev_err_probe(cpu_dev, ret,
+				      "cpu%d: Failed to get sram regulator\n", cpu);
 			goto out_disable_proc_reg;
+		}
 
 		info->sram_reg = NULL;
 	} else {
 		ret = regulator_enable(info->sram_reg);
 		if (ret) {
-			dev_warn(cpu_dev, "cpu%d: failed to enable vsram\n", cpu);
+			dev_err_probe(cpu_dev, ret, "cpu%d: failed to enable vsram\n", cpu);
 			goto out_free_sram_reg;
 		}
 	}
@@ -454,31 +452,34 @@ static int mtk_cpu_dvfs_info_init(struct mtk_cpu_dvfs_info *info, int cpu)
 	/* Get OPP-sharing information from "operating-points-v2" bindings */
 	ret = dev_pm_opp_of_get_sharing_cpus(cpu_dev, &info->cpus);
 	if (ret) {
-		dev_err(cpu_dev,
+		dev_err_probe(cpu_dev, ret,
 			"cpu%d: failed to get OPP-sharing information\n", cpu);
 		goto out_disable_sram_reg;
 	}
 
 	ret = dev_pm_opp_of_cpumask_add_table(&info->cpus);
 	if (ret) {
-		dev_warn(cpu_dev, "cpu%d: no OPP table\n", cpu);
+		dev_err_probe(cpu_dev, ret, "cpu%d: no OPP table\n", cpu);
 		goto out_disable_sram_reg;
 	}
 
 	ret = clk_prepare_enable(info->cpu_clk);
-	if (ret)
+	if (ret) {
+		dev_err_probe(cpu_dev, ret, "cpu%d: failed to enable cpu clk\n", cpu);
 		goto out_free_opp_table;
+	}
 
 	ret = clk_prepare_enable(info->inter_clk);
-	if (ret)
+	if (ret) {
+		dev_err_probe(cpu_dev, ret, "cpu%d: failed to enable inter clk\n", cpu);
 		goto out_disable_mux_clock;
+	}
 
 	if (info->soc_data->ccifreq_supported) {
 		info->vproc_on_boot = regulator_get_voltage(info->proc_reg);
 		if (info->vproc_on_boot < 0) {
-			ret = info->vproc_on_boot;
-			dev_err(info->cpu_dev,
-				"invalid Vproc value: %d\n", info->vproc_on_boot);
+			ret = dev_err_probe(info->cpu_dev, info->vproc_on_boot,
+					    "invalid Vproc value\n");
 			goto out_disable_inter_clock;
 		}
 	}
@@ -487,8 +488,8 @@ static int mtk_cpu_dvfs_info_init(struct mtk_cpu_dvfs_info *info, int cpu)
 	rate = clk_get_rate(info->inter_clk);
 	opp = dev_pm_opp_find_freq_ceil(cpu_dev, &rate);
 	if (IS_ERR(opp)) {
-		dev_err(cpu_dev, "cpu%d: failed to get intermediate opp\n", cpu);
-		ret = PTR_ERR(opp);
+		ret = dev_err_probe(cpu_dev, PTR_ERR(opp),
+				    "cpu%d: failed to get intermediate opp\n", cpu);
 		goto out_disable_inter_clock;
 	}
 	info->intermediate_voltage = dev_pm_opp_get_voltage(opp);
@@ -501,7 +502,7 @@ static int mtk_cpu_dvfs_info_init(struct mtk_cpu_dvfs_info *info, int cpu)
 	info->opp_nb.notifier_call = mtk_cpufreq_opp_notifier;
 	ret = dev_pm_opp_register_notifier(cpu_dev, &info->opp_nb);
 	if (ret) {
-		dev_err(cpu_dev, "cpu%d: failed to register opp notifier\n", cpu);
+		dev_err_probe(cpu_dev, ret, "cpu%d: failed to register opp notifier\n", cpu);
 		goto out_disable_inter_clock;
 	}
 
@@ -629,11 +630,9 @@ static int mtk_cpufreq_probe(struct platform_device *pdev)
 	int cpu, ret;
 
 	data = dev_get_platdata(&pdev->dev);
-	if (!data) {
-		dev_err(&pdev->dev,
-			"failed to get mtk cpufreq platform data\n");
-		return -ENODEV;
-	}
+	if (!data)
+		return dev_err_probe(&pdev->dev, -ENODEV,
+				     "failed to get mtk cpufreq platform data\n");
 
 	for_each_possible_cpu(cpu) {
 		info = mtk_cpu_dvfs_info_lookup(cpu);
@@ -642,25 +641,22 @@ static int mtk_cpufreq_probe(struct platform_device *pdev)
 
 		info = devm_kzalloc(&pdev->dev, sizeof(*info), GFP_KERNEL);
 		if (!info) {
-			ret = -ENOMEM;
+			ret = dev_err_probe(&pdev->dev, -ENOMEM,
+					    "Failed to allocate dvfs_info\n");
 			goto release_dvfs_info_list;
 		}
 
 		info->soc_data = data;
 		ret = mtk_cpu_dvfs_info_init(info, cpu);
-		if (ret) {
-			dev_err(&pdev->dev,
-				"failed to initialize dvfs info for cpu%d\n",
-				cpu);
+		if (ret)
 			goto release_dvfs_info_list;
-		}
 
 		list_add(&info->list_head, &dvfs_info_list);
 	}
 
 	ret = cpufreq_register_driver(&mtk_cpufreq_driver);
 	if (ret) {
-		dev_err(&pdev->dev, "failed to register mtk cpufreq driver\n");
+		dev_err_probe(&pdev->dev, ret, "failed to register mtk cpufreq driver\n");
 		goto release_dvfs_info_list;
 	}
 

---
base-commit: 0fc4bfab2cd45f9acb86c4f04b5191e114e901ed
change-id: 20240627-mtk-cpufreq-dvfs-fail-init-err-0a662ca72de2

Best regards,
-- 
Nícolas F. R. A. Prado <nfraprado@collabora.com>

.

From: Aleksandr Mishin <amishin@t-argos.ru>
To: Siddharth Gupta <sidgup@codeaurora.org>
CC: Aleksandr Mishin <amishin@t-argos.ru>, Bjorn Andersson
	<andersson@kernel.org>, Mathieu Poirier <mathieu.poirier@linaro.org>, Rishabh
 Bhatnagar <rishabhb@codeaurora.org>, <linux-remoteproc@vger.kernel.org>,
	<linux-kernel@vger.kernel.org>, <lvc-project@linuxtesting.org>
Subject: [PATCH] remoteproc: Remove unneeded check in elf_strtbl_add()
Date: Fri, 5 Jul 2024 19:02:52 +0300
Message-ID: <20240705160252.9628-1-amishin@t-argos.ru>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-KSMG-Rule-ID: 1
X-KSMG-Message-Action: clean
X-KSMG-AntiSpam-Lua-Profiles: 186342 [Jul 05 2024]
X-KSMG-AntiSpam-Version: 6.1.0.4
X-KSMG-AntiSpam-Envelope-From: amishin@t-argos.ru
X-KSMG-AntiSpam-Rate: 0
X-KSMG-AntiSpam-Status: not_detected
X-KSMG-AntiSpam-Method: none
X-KSMG-AntiSpam-Auth: dkim=none
X-KSMG-AntiSpam-Info: LuaCore: 21 0.3.21 ebee5449fc125b2da45f1a6a6bc2c5c0c3ad0e05, {Tracking_from_domain_doesnt_match_to}, mx1.t-argos.ru.ru:7.1.1;127.0.0.199:7.1.2;d41d8cd98f00b204e9800998ecf8427e.com:7.1.1;t-argos.ru:7.1.1, FromAlignment: s
X-MS-Exchange-Organization-SCL: -1
X-KSMG-AntiSpam-Interceptor-Info: scan successful
X-KSMG-AntiPhishing: Clean, bases: 2024/07/05 14:29:00
X-KSMG-AntiVirus: Kaspersky Secure Mail Gateway, version 1.1.2.30, bases: 2024/07/05 10:39:00 #25854340
X-KSMG-AntiVirus-Status: Clean, skipped
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1269371
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-remoteproc
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

In elf_strtbl_add() pointer 'strtab', which value is a result of shifting
after dereference of another pointer 'ehdr', is compared to NULL, which is
useless.

Fix this issue by removing unneeded check.

Found by Linux Verification Center (linuxtesting.org) with SVACE.

Fixes: abc72b646066 ("remoteproc: coredump: Add minidump functionality")
Signed-off-by: Aleksandr Mishin <amishin@t-argos.ru>
---
 drivers/remoteproc/remoteproc_elf_helpers.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/remoteproc/remoteproc_elf_helpers.h b/drivers/remoteproc/remoteproc_elf_helpers.h
index e6de53a5000c..7c57fb553466 100644
--- a/drivers/remoteproc/remoteproc_elf_helpers.h
+++ b/drivers/remoteproc/remoteproc_elf_helpers.h
@@ -107,7 +107,7 @@ static inline unsigned int elf_strtbl_add(const char *name, void *ehdr, u8 class
 	shdr = ehdr + elf_size_of_hdr(class) + shstrndx * elf_size_of_shdr(class);
 	strtab = ehdr + elf_shdr_get_sh_offset(class, shdr);
 	idx = index ? *index : 0;
-	if (!strtab || !name)
+	if (!name)
 		return 0;
 
 	ret = idx;
-- 
2.30.2

.

From: John Garry <john.g.garry@oracle.com>
To: chandan.babu@oracle.com, djwong@kernel.org, dchinner@redhat.com,
        hch@lst.de
Cc: viro@zeniv.linux.org.uk, brauner@kernel.org, jack@suse.cz,
        linux-xfs@vger.kernel.org, linux-kernel@vger.kernel.org,
        linux-fsdevel@vger.kernel.org, catherine.hoang@oracle.com,
        martin.petersen@oracle.com, John Garry <john.g.garry@oracle.com>
Subject: [PATCH v2 00/13] forcealign for xfs
Date: Fri,  5 Jul 2024 16:24:37 +0000
Message-Id: <20240705162450.3481169-1-john.g.garry@oracle.com>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1269379
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-fsdevel,org.kernel.vger.linux-xfs
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

This series is being spun off the block atomic writes for xfs series at
[0].

That series has got too big and also has a dependency on the core block
atomic writes support, which has now been queued for 6.11 in Jens' block
tree [1].

The actual forcealign patches are the same in this series, modulo an
attempt for a fix in xfs_bunmapi_align().

Why forcealign?
In some scenarios to may be required to guarantee extent alignment and
granularity.

For example, for atomic writes, the maximum atomic write unit size would
be limited at the extent alignment and granularity, guaranteeing that an
atomic write would not span data present in multiple extents.

forcealign may be useful as a performance tuning optimization in other
scenarios.

Early development xfsprogs support is at:
https://github.com/johnpgarry/xfsprogs-dev/commits/atomic-writes/

Differences to v1:
- Add Darricks RB tags (thanks)
- Disallow mount for forcealign and RT
- Disallow cp --reflink from forcealign inode
- Comments improvements (Darrick)
- Coding style improvements (Darrick)
- Fix xfs_inode_alloc_unitsize() (Darrick)

Baseline:
xfs/for-next @ 3ba3ab1f6719 ("xfs: enable FITRIM on the realtime device")

[0] https://lore.kernel.org/linux-xfs/20240607143919.2622319-1-john.g.garry@oracle.com/
[1] https://lore.kernel.org/linux-block/20240620125359.2684798-1-john.g.garry@oracle.com/

Darrick J. Wong (2):
  xfs: Introduce FORCEALIGN inode flag
  xfs: Enable file data forcealign feature

Dave Chinner (6):
  xfs: only allow minlen allocations when near ENOSPC
  xfs: always tail align maxlen allocations
  xfs: simplify extent allocation alignment
  xfs: make EOF allocation simpler
  xfs: introduce forced allocation alignment
  xfs: align args->minlen for forced allocation alignment

John Garry (5):
  xfs: Do not free EOF blocks for forcealign
  xfs: Update xfs_inode_alloc_unitsize() for forcealign
  xfs: Unmap blocks according to forcealign
  xfs: Only free full extents for forcealign
  xfs: Don't revert allocated offset for forcealign

 fs/xfs/libxfs/xfs_alloc.c     |  33 ++--
 fs/xfs/libxfs/xfs_alloc.h     |   3 +-
 fs/xfs/libxfs/xfs_bmap.c      | 321 +++++++++++++++++++---------------
 fs/xfs/libxfs/xfs_format.h    |   9 +-
 fs/xfs/libxfs/xfs_ialloc.c    |  12 +-
 fs/xfs/libxfs/xfs_inode_buf.c |  55 ++++++
 fs/xfs/libxfs/xfs_inode_buf.h |   3 +
 fs/xfs/libxfs/xfs_sb.c        |   2 +
 fs/xfs/xfs_bmap_util.c        |  14 +-
 fs/xfs/xfs_inode.c            |  17 +-
 fs/xfs/xfs_inode.h            |  23 +++
 fs/xfs/xfs_ioctl.c            |  51 +++++-
 fs/xfs/xfs_mount.h            |   2 +
 fs/xfs/xfs_reflink.c          |   5 +-
 fs/xfs/xfs_reflink.h          |  10 --
 fs/xfs/xfs_super.c            |  11 ++
 fs/xfs/xfs_trace.h            |   8 +-
 include/uapi/linux/fs.h       |   2 +
 18 files changed, 392 insertions(+), 189 deletions(-)

-- 
2.31.1

.

From: Diederik de Haas <didi.debian@cknow.org>
To: Heiko Stuebner <heiko@sntech.de>
Cc: Maximilian Weigand <mweigand@mweigand.net>,
	Dragan Simic <dsimic@manjaro.org>,
	Diederik de Haas <didi.debian@cknow.org>,
	linux-rockchip@lists.infradead.org,
	devicetree@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org,
	Chris Morgan <macromorgan@hotmail.com>,
	Andy Yan <andyshrk@163.com>,
	Jagan Teki <jagan@amarulasolutions.com>,
	Chukun Pan <amadeus@jmu.edu.cn>,
	Furkan Kardame <f.kardame@manjaro.org>,
	Michael Riesch <michael.riesch@wolfvision.net>,
	Shengyu Qu <wiagn233@outlook.com>
Subject: arm64: dts: rockchip: Add dma-names to uart-bluetooth rk3566 devices
Date: Fri,  5 Jul 2024 18:22:12 +0200
Message-ID: <20240705163004.29678-2-didi.debian@cknow.org>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1269391
Newsgroups: org.kernel.vger.linux-kernel,org.infradead.lists.linux-arm-kernel,org.infradead.lists.linux-rockchip,org.kernel.vger.linux-devicetree
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

This is a single patch which adds the dma-names property to the uart
node with a bluetooth subnode on Pine64's rk356x devices.

But that property can potentially be added to several other devices, but
I have zero familiarity with them or their community, so I choose not to
add it to those devices, but inform people via this cover letter.

The dts/dtsi files I found as potential candidates are:
- rk3566-anbernic-rgxx3.dtsi
- rk3566-box-demo.dts
- rk3566-powkiddy-rk2023.dtsi
- rk3566-powkiddy-x55.dts
- rk3566-radxa-cm3.dtsi
- rk3566-rock-3c.dts
- rk3566-roc-pc.dts
- rk3568-rock-3a.dts
.

From: Aleksandr Mishin <amishin@t-argos.ru>
To: Anirudh Venkataramanan <anirudh.venkataramanan@intel.com>
CC: Aleksandr Mishin <amishin@t-argos.ru>, Jesse Brandeburg
	<jesse.brandeburg@intel.com>, Tony Nguyen <anthony.l.nguyen@intel.com>,
	"David S. Miller" <davem@davemloft.net>, Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
	<intel-wired-lan@lists.osuosl.org>, <netdev@vger.kernel.org>,
	<linux-kernel@vger.kernel.org>, <lvc-project@linuxtesting.org>
Subject: [PATCH net] ice: Adjust memory overrun in ice_sched_add_root_node() and ice_sched_add_node()
Date: Fri, 5 Jul 2024 19:36:20 +0300
Message-ID: <20240705163620.12429-1-amishin@t-argos.ru>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-KSMG-Rule-ID: 1
X-KSMG-Message-Action: clean
X-KSMG-AntiSpam-Lua-Profiles: 186342 [Jul 05 2024]
X-KSMG-AntiSpam-Version: 6.1.0.4
X-KSMG-AntiSpam-Envelope-From: amishin@t-argos.ru
X-KSMG-AntiSpam-Rate: 0
X-KSMG-AntiSpam-Status: not_detected
X-KSMG-AntiSpam-Method: none
X-KSMG-AntiSpam-Auth: dkim=none
X-KSMG-AntiSpam-Info: LuaCore: 21 0.3.21 ebee5449fc125b2da45f1a6a6bc2c5c0c3ad0e05, {Tracking_from_domain_doesnt_match_to}, mx1.t-argos.ru.ru:7.1.1;t-argos.ru:7.1.1;127.0.0.199:7.1.2;d41d8cd98f00b204e9800998ecf8427e.com:7.1.1, FromAlignment: s
X-MS-Exchange-Organization-SCL: -1
X-KSMG-AntiSpam-Interceptor-Info: scan successful
X-KSMG-AntiPhishing: Clean, bases: 2024/07/05 14:29:00
X-KSMG-AntiVirus: Kaspersky Secure Mail Gateway, version 1.1.2.30, bases: 2024/07/05 10:39:00 #25854340
X-KSMG-AntiVirus-Status: Clean, skipped
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1269395 org.kernel.vger.netdev:355777
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.netdev
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

In ice_sched_add_root_node() and ice_sched_add_node() there are calls to
devm_kcalloc() in order to allocate memory for array of pointers to
'ice_sched_node' structure. But in this calls there are 'sizeof(*root)'
instead of 'sizeof(root)' and 'sizeof(*node)' instead of 'sizeof(node)'.
So memory is allocated for structures instead pointers. This lead to
significant memory overrun.
Looks like it was done for "coverity[suspicious_sizeof] workaround".

Adjust memory overrun by correcting devm_kcalloc() parameters.

Found by Linux Verification Center (linuxtesting.org) with SVACE.

Fixes: dc49c7723676 ("ice: Get MAC/PHY/link info and scheduler topology")
Signed-off-by: Aleksandr Mishin <amishin@t-argos.ru>
---
 drivers/net/ethernet/intel/ice/ice_sched.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/net/ethernet/intel/ice/ice_sched.c b/drivers/net/ethernet/intel/ice/ice_sched.c
index ecf8f5d60292..d8b6054f3436 100644
--- a/drivers/net/ethernet/intel/ice/ice_sched.c
+++ b/drivers/net/ethernet/intel/ice/ice_sched.c
@@ -28,9 +28,8 @@ ice_sched_add_root_node(struct ice_port_info *pi,
 	if (!root)
 		return -ENOMEM;
 
-	/* coverity[suspicious_sizeof] */
 	root->children = devm_kcalloc(ice_hw_to_dev(hw), hw->max_children[0],
-				      sizeof(*root), GFP_KERNEL);
+				      sizeof(root), GFP_KERNEL);
 	if (!root->children) {
 		devm_kfree(ice_hw_to_dev(hw), root);
 		return -ENOMEM;
@@ -186,10 +185,9 @@ ice_sched_add_node(struct ice_port_info *pi, u8 layer,
 	if (!node)
 		return -ENOMEM;
 	if (hw->max_children[layer]) {
-		/* coverity[suspicious_sizeof] */
 		node->children = devm_kcalloc(ice_hw_to_dev(hw),
 					      hw->max_children[layer],
-					      sizeof(*node), GFP_KERNEL);
+					      sizeof(node), GFP_KERNEL);
 		if (!node->children) {
 			devm_kfree(ice_hw_to_dev(hw), node);
 			return -ENOMEM;
-- 
2.30.2

.

Return-Path: <linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org>
From: Jisheng Zhang <jszhang@kernel.org>
To: Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>
Cc: linux-riscv@lists.infradead.org,
	linux-kernel@vger.kernel.org
Subject: [PATCH] riscv: define ILLEGAL_POINTER_VALUE for 64bit
Date: Sat,  6 Jul 2024 00:56:32 +0800
Message-ID: <20240705165632.3216-1-jszhang@kernel.org>
MIME-Version: 1.0
X-BeenThere: linux-riscv@lists.infradead.org
X-Mailman-Version: 2.1.34
List-Id: <linux-riscv.lists.infradead.org>
List-Unsubscribe: <http://lists.infradead.org/mailman/options/linux-riscv>,
 <mailto:linux-riscv-request@lists.infradead.org?subject=unsubscribe>
List-Archive: <http://lists.infradead.org/pipermail/linux-riscv/>
List-Post: <mailto:linux-riscv@lists.infradead.org>
List-Help: <mailto:linux-riscv-request@lists.infradead.org?subject=help>
List-Subscribe: <http://lists.infradead.org/mailman/listinfo/linux-riscv>,
 <mailto:linux-riscv-request@lists.infradead.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: "linux-riscv" <linux-riscv-bounces@lists.infradead.org>
Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org
Xref: photonic.trudheim.com org.infradead.lists.linux-riscv:79423 org.kernel.vger.linux-kernel:1269407
Newsgroups: org.infradead.lists.linux-riscv,org.kernel.vger.linux-kernel
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

This is used in poison.h for poison pointer offset. Based on current
SV39, SV48 and SV59 vm layout, 0xdead000000000000 is a proper value
that is not mappable, this can avoid potentially turning an oops to
an expolit.

Signed-off-by: Jisheng Zhang <jszhang@kernel.org>
---
 arch/riscv/Kconfig | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig
index c51b32a8ddff..c992eabbd002 100644
--- a/arch/riscv/Kconfig
+++ b/arch/riscv/Kconfig
@@ -313,6 +313,11 @@ config GENERIC_HWEIGHT
 config FIX_EARLYCON_MEM
 	def_bool MMU
 
+config ILLEGAL_POINTER_VALUE
+	hex
+	default 0 if 32BIT
+	default 0xdead000000000000 if 64BIT
+
 config PGTABLE_LEVELS
 	int
 	default 5 if 64BIT
-- 
2.43.0


_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
.

Return-Path: <linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org>
From: Jisheng Zhang <jszhang@kernel.org>
To: Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>
Cc: linux-riscv@lists.infradead.org,
	linux-kernel@vger.kernel.org
Subject: [PATCH v2] riscv: define ILLEGAL_POINTER_VALUE for 64bit
Date: Sat,  6 Jul 2024 01:02:10 +0800
Message-ID: <20240705170210.3236-1-jszhang@kernel.org>
MIME-Version: 1.0
X-BeenThere: linux-riscv@lists.infradead.org
X-Mailman-Version: 2.1.34
List-Id: <linux-riscv.lists.infradead.org>
List-Unsubscribe: <http://lists.infradead.org/mailman/options/linux-riscv>,
 <mailto:linux-riscv-request@lists.infradead.org?subject=unsubscribe>
List-Archive: <http://lists.infradead.org/pipermail/linux-riscv/>
List-Post: <mailto:linux-riscv@lists.infradead.org>
List-Help: <mailto:linux-riscv-request@lists.infradead.org?subject=help>
List-Subscribe: <http://lists.infradead.org/mailman/listinfo/linux-riscv>,
 <mailto:linux-riscv-request@lists.infradead.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: "linux-riscv" <linux-riscv-bounces@lists.infradead.org>
Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org
Xref: photonic.trudheim.com org.infradead.lists.linux-riscv:79424 org.kernel.vger.linux-kernel:1269408
Newsgroups: org.infradead.lists.linux-riscv,org.kernel.vger.linux-kernel
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

This is used in poison.h for poison pointer offset. Based on current
SV39, SV48 and SV57 vm layout, 0xdead000000000000 is a proper value
that is not mappable, this can avoid potentially turning an oops to
an expolit.

Signed-off-by: Jisheng Zhang <jszhang@kernel.org>
---

Since v1:
 - fix typo:s/SV59/SV57

 arch/riscv/Kconfig | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig
index c51b32a8ddff..c992eabbd002 100644
--- a/arch/riscv/Kconfig
+++ b/arch/riscv/Kconfig
@@ -313,6 +313,11 @@ config GENERIC_HWEIGHT
 config FIX_EARLYCON_MEM
 	def_bool MMU
 
+config ILLEGAL_POINTER_VALUE
+	hex
+	default 0 if 32BIT
+	default 0xdead000000000000 if 64BIT
+
 config PGTABLE_LEVELS
 	int
 	default 5 if 64BIT
-- 
2.43.0


_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
.

Date: Fri, 05 Jul 2024 10:16:32 -0700 (PDT)
Subject: [GIT PULL] RISC-V Fixes for 6.10-rc7
CC:         linux-riscv@lists.infradead.org,        linux-kernel@vger.kernel.org
From: Palmer Dabbelt <palmer@rivosinc.com>
To: Linus Torvalds <torvalds@linux-foundation.org>
Message-ID: <mhng-c0537cb4-d700-4259-889e-c87f011e931b@palmer-ri-x1c9>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1269419
Newsgroups: org.kernel.vger.linux-kernel
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

The following changes since commit 22a40d14b572deb80c0648557f4bd502d7e83826:

  Linux 6.10-rc6 (2024-06-30 14:40:44 -0700)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux.git tags/riscv-for-linus-6.10-rc7

for you to fetch changes up to c562ba719df570c986caf0941fea2449150bcbc4:

  riscv: kexec: Avoid deadlock in kexec crash path (2024-07-03 13:11:30 -0700)

----------------------------------------------------------------
RISC-V Fixes for 6.10-rc7

* A fix for the CMODX example in therecently added icache flushing
  prctl().
* A fix to the perf driver to avoid corrupting event data on counter
  overflows when external overflow handlers are in use.
* A fix to clear all hardware performance monitor events on boot, to
  avoid dangling events firmware or previously booted kernels from
  triggering spuriously.
* A fix to the perf event probing logic to avoid erroneously reporting
  the presence of unimplemented counters.  This also prevents some
  implemented counters from being reported.
* A build fix for the vector sigreturn selftest on clang.
* A fix to ftrace, which now requires the previously optional index
  argument to ftrace_graph_ret_addr().
* A fix to avoid deadlocking if kexec crash handling triggers in an
  interrupt context.

----------------------------------------------------------------
Atish Patra (1):
      drivers/perf: riscv: Do not update the event data if uptodate

Charlie Jenkins (2):
      documentation: Fix riscv cmodx example
      riscv: selftests: Fix vsetivli args for clang

Palmer Dabbelt (1):
      Merge patch series "Assorted fixes in RISC-V PMU driver"

Puranjay Mohan (1):
      riscv: stacktrace: fix usage of ftrace_graph_ret_addr()

Samuel Holland (2):
      drivers/perf: riscv: Reset the counter to hpmevent mapping while starting cpus
      perf: RISC-V: Check standard event availability

Song Shuai (1):
      riscv: kexec: Avoid deadlock in kexec crash path

 Documentation/arch/riscv/cmodx.rst                 |  4 +-
 arch/riscv/kernel/machine_kexec.c                  | 10 +----
 arch/riscv/kernel/stacktrace.c                     |  3 +-
 arch/riscv/kvm/vcpu_pmu.c                          |  2 +-
 drivers/perf/riscv_pmu.c                           |  2 +-
 drivers/perf/riscv_pmu_sbi.c                       | 44 ++++++++++++++++++++--
 .../testing/selftests/riscv/sigreturn/sigreturn.c  |  2 +-
 7 files changed, 49 insertions(+), 18 deletions(-)
.

From: Javier Carrasco <javier.carrasco.cruz@gmail.com>
Subject: [PATCH 0/2] Input - constify read-only struct regmap_config
Date: Fri, 05 Jul 2024 19:38:49 +0200
Message-Id: <20240705-input-const-regmap_config-v1-0-f712a4494883@gmail.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
To: Dmitry Torokhov <dmitry.torokhov@gmail.com>, 
 Shawn Guo <shawnguo@kernel.org>, Sascha Hauer <s.hauer@pengutronix.de>, 
 Pengutronix Kernel Team <kernel@pengutronix.de>, 
 Fabio Estevam <festevam@gmail.com>
Cc: linux-input@vger.kernel.org, linux-kernel@vger.kernel.org, 
 imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, 
 Javier Carrasco <javier.carrasco.cruz@gmail.com>
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1269423
Newsgroups: org.kernel.vger.linux-kernel,dev.linux.lists.imx,org.infradead.lists.linux-arm-kernel,org.kernel.vger.linux-input
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

This series adds the const modifier to the remaining regmap_config
structs in the input subsystem that are effectively used as const
(i.e., only read after their declaration), but kept as writtable data.

Signed-off-by: Javier Carrasco <javier.carrasco.cruz@gmail.com>
---
Javier Carrasco (2):
      Input: qt1050 - constify struct regmap_config
      Input: fsl-imx25-tcq - constify struct regmap_config

 drivers/input/keyboard/qt1050.c           | 2 +-
 drivers/input/touchscreen/fsl-imx25-tcq.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
---
base-commit: 0b58e108042b0ed28a71cd7edf5175999955b233
change-id: 20240705-input-const-regmap_config-46d2fb3110bd

Best regards,
-- 
Javier Carrasco <javier.carrasco.cruz@gmail.com>

.

From: Javier Carrasco <javier.carrasco.cruz@gmail.com>
Date: Fri, 05 Jul 2024 20:06:25 +0200
Subject: [PATCH] i2c: designware: Constify read-only struct regmap_config
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20240705-i2c-designware-platdrv-const-regmap_config-v1-1-8c82cc63df15@gmail.com>
To: Jarkko Nikula <jarkko.nikula@linux.intel.com>, 
 Andy Shevchenko <andriy.shevchenko@linux.intel.com>, 
 Mika Westerberg <mika.westerberg@linux.intel.com>, 
 Jan Dabros <jsd@semihalf.com>, Andi Shyti <andi.shyti@kernel.org>
Cc: linux-i2c@vger.kernel.org, linux-kernel@vger.kernel.org, 
 Javier Carrasco <javier.carrasco.cruz@gmail.com>
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1269440
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-i2c
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

`bt1_i2c_cfg` is not modified and can be declared as const to
move its data to a read-only section.

Signed-off-by: Javier Carrasco <javier.carrasco.cruz@gmail.com>
---
 drivers/i2c/busses/i2c-designware-platdrv.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/i2c/busses/i2c-designware-platdrv.c b/drivers/i2c/busses/i2c-designware-platdrv.c
index 29aac9c87368..df3dc1e8093e 100644
--- a/drivers/i2c/busses/i2c-designware-platdrv.c
+++ b/drivers/i2c/busses/i2c-designware-platdrv.c
@@ -101,7 +101,7 @@ static int bt1_i2c_write(void *context, unsigned int reg, unsigned int val)
 		BT1_I2C_CTL_GO | BT1_I2C_CTL_WR | (reg & BT1_I2C_CTL_ADDR_MASK));
 }
 
-static struct regmap_config bt1_i2c_cfg = {
+static const struct regmap_config bt1_i2c_cfg = {
 	.reg_bits = 32,
 	.val_bits = 32,
 	.reg_stride = 4,

---
base-commit: 0b58e108042b0ed28a71cd7edf5175999955b233
change-id: 20240705-i2c-designware-platdrv-const-regmap_config-5bc7aa35f320

Best regards,
-- 
Javier Carrasco <javier.carrasco.cruz@gmail.com>

.

From: Fenghua Yu <fenghua.yu@intel.com>
To: "Vinod Koul" <vkoul@kernel.org>,
	"Dave Jiang" <dave.jiang@intel.com>
Cc: dmaengine@vger.kernel.org,
	"linux-kernel" <linux-kernel@vger.kernel.org>,
	Fenghua Yu <fenghua.yu@intel.com>
Subject: [PATCH 0/5] Enable FLR for IDXD halt
Date: Fri,  5 Jul 2024 11:15:13 -0700
Message-Id: <20240705181519.4067507-1-fenghua.yu@intel.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1269445
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.dmaengine
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

When IDXD device hits hardware errors, it enters halt state and triggers
an interrupt to IDXD driver. Currently IDXD driver just prints an error
message in the interrupt handler.

A better way to handle the interrupt is to do Function Level Reset (FLR)
and recover the device's hardware and software configurations to its
previous working state. The device and software can continue to run after
the interrupt.

This series enables this FLR handling for IDXD device whose WQs are all
user type. FLR handling for IDXD device whose WQs are kernel type
will be implemented in a future series.

Fenghua Yu (5):
  dmaengine: idxd: Add idxd_pci_probe_alloc() helper
  dmaengine: idxd: Binding and unbinding IDXD device and driver
  dmaengine: idxd: Add idxd_device_config_save() and
    idxd_device_config_restore() helpers
  dmaengine: idxd: Refactor halt handler
  dmaengine: idxd: Enable Function Level Reset (FLR) for halt

 drivers/dma/idxd/idxd.h |  13 ++
 drivers/dma/idxd/init.c | 478 ++++++++++++++++++++++++++++++++++++----
 drivers/dma/idxd/irq.c  |  85 ++++---
 3 files changed, 506 insertions(+), 70 deletions(-)

-- 
2.37.1

.

From: Javier Carrasco <javier.carrasco.cruz@gmail.com>
Date: Fri, 05 Jul 2024 20:27:28 +0200
Subject: [PATCH] hwmon: (gsc-hwmon) constify read-only struct regmap_bus
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-Id: <20240705-hwmon-const-regmap-v1-1-7cde543ba818@gmail.com>
To: Tim Harvey <tharvey@gateworks.com>, Jean Delvare <jdelvare@suse.com>, 
 Guenter Roeck <linux@roeck-us.net>
Cc: linux-hwmon@vger.kernel.org, linux-kernel@vger.kernel.org, 
 Javier Carrasco <javier.carrasco.cruz@gmail.com>
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1269456
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-hwmon
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

`gsc_hwmon_regmap_bus` is not modified and can be declared as const to
move its data to a read-only section.

Signed-off-by: Javier Carrasco <javier.carrasco.cruz@gmail.com>
---
I missed this one when converting regmap_config to const. After this
conversion, all read-only regmap_* structs in hwmon are declared as
const.
---
 drivers/hwmon/gsc-hwmon.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/hwmon/gsc-hwmon.c b/drivers/hwmon/gsc-hwmon.c
index 0f2147699c91..cb2f01dc4326 100644
--- a/drivers/hwmon/gsc-hwmon.c
+++ b/drivers/hwmon/gsc-hwmon.c
@@ -39,7 +39,7 @@ struct gsc_hwmon_data {
 	struct hwmon_chip_info chip;
 };
 
-static struct regmap_bus gsc_hwmon_regmap_bus = {
+static const struct regmap_bus gsc_hwmon_regmap_bus = {
 	.reg_read = gsc_read,
 	.reg_write = gsc_write,
 };

---
base-commit: 0b58e108042b0ed28a71cd7edf5175999955b233
change-id: 20240705-hwmon-const-regmap-a1fef10fbd65

Best regards,
-- 
Javier Carrasco <javier.carrasco.cruz@gmail.com>

.

Date: Fri, 5 Jul 2024 14:05:13 -0500
From: Bjorn Helgaas <helgaas@kernel.org>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org,
	Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>,
	Krzysztof =?utf-8?Q?Wilczy=C5=84ski?= <kwilczynski@kernel.org>,
	Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Subject: [GIT PULL] PCI fixes for v6.10
Message-ID: <20240705190513.GA72897@bhelgaas>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1269471 org.kernel.vger.linux-pci:144940
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-pci
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

The following changes since commit 1613e604df0cd359cf2a7fbd9be7a0bcfacfabd0:

  Linux 6.10-rc1 (2024-05-26 15:20:12 -0700)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/pci/pci.git pci-v6.10-fixes-2

for you to fetch changes up to 419d57d429f6e1fbd9024d34b11eb84b3138c60e:

  CREDITS: Add Synopsys DesignWare eDMA driver for Gustavo Pimentel (2024-06-11 10:26:06 -0500)

----------------------------------------------------------------
- Update MAINTAINERS and CREDITS to credit Gustavo Pimentel with the
  Synopsys DesignWare eDMA driver and reflect that he is no longer at
  Synopsys and isn't in a position to maintain the DesignWare xData
  traffic generator (Bjorn Helgaas)

----------------------------------------------------------------
Bjorn Helgaas (2):
      MAINTAINERS: Orphan Synopsys DesignWare xData traffic generator
      CREDITS: Add Synopsys DesignWare eDMA driver for Gustavo Pimentel

 CREDITS     | 4 +++-
 MAINTAINERS | 3 +--
 2 files changed, 4 insertions(+), 3 deletions(-)
.

From: Thomas Andreatta <thomasandreatta2000@gmail.com>
To: rafael@kernel.org
Cc: linux-acpi@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	Thomas Andreatta <thomas.andreatta2000@gmail.com>
Subject: [PATCH]     Staging: acpi: fixed a coding style issue moving from strcpy to strscpy.
Date: Fri,  5 Jul 2024 21:18:35 +0200
Message-Id: <20240705191835.152189-1-thomas.andreatta2000@gmail.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1269474
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-acpi
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

fixed a coding style issue moving from strcpy to strscpy.

Signed-off-by: Thomas Andreatta <thomas.andreatta2000@gmail.com>
---
 drivers/acpi/ac.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/drivers/acpi/ac.c b/drivers/acpi/ac.c
index 09a87fa222c7..f4b5ba033df8 100644
--- a/drivers/acpi/ac.c
+++ b/drivers/acpi/ac.c
@@ -213,8 +213,11 @@ static int acpi_ac_probe(struct platform_device *pdev)
 		return -ENOMEM;
 
 	ac->device = adev;
-	strcpy(acpi_device_name(adev), ACPI_AC_DEVICE_NAME);
-	strcpy(acpi_device_class(adev), ACPI_AC_CLASS);
+	char *device_class = acpi_device_class(adev);
+	char *device_name = acpi_device_name(adev);
+
+	strscpy(acpi_device_name(adev), ACPI_AC_DEVICE_NAME, strlen(device_name));
+	strscpy(device_class, ACPI_AC_CLASS, strlen(device_class));
 
 	platform_set_drvdata(pdev, ac);
 
-- 
2.34.1

.

From: "Rafael J. Wysocki" <rjw@rjwysocki.net>
To: Linux PM <linux-pm@vger.kernel.org>
Cc: Daniel Lezcano <daniel.lezcano@linaro.org>,
 LKML <linux-kernel@vger.kernel.org>, Lukasz Luba <lukasz.luba@arm.com>
Subject: [PATCH v1 0/2] thermal: core: Sanitize polling delay values
Date: Fri, 05 Jul 2024 21:30:06 +0200
Message-ID: <4585590.LvFx2qVVIh@rjwysocki.net>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 7Bit
Content-Type: text/plain; charset="UTF-8"
X-CLIENT-IP: 195.136.19.94
X-CLIENT-HOSTNAME: 195.136.19.94
X-VADE-SPAMSTATE: clean
X-VADE-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgeeftddrvddugddufeejucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecujffqoffgrffnpdggtffipffknecuuegrihhlohhuthemucduhedtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjughrpefhvfevufffkfgggfgtsehtufertddttdejnecuhfhrohhmpedftfgrfhgrvghlucflrdcuhgihshhotghkihdfuceorhhjfiesrhhjfiihshhotghkihdrnhgvtheqnecuggftrfgrthhtvghrnhepffffffekgfehheffleetieevfeefvefhleetjedvvdeijeejledvieehueevueffnecukfhppeduleehrddufeeirdduledrleegnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehinhgvthepudelhedrudefiedrudelrdelgedphhgvlhhopehkrhgvrggthhgvrhdrlhhotggrlhhnvghtpdhmrghilhhfrhhomhepfdftrghfrggvlhculfdrucghhihsohgtkhhifdcuoehrjhifsehrjhifhihsohgtkhhirdhnvghtqedpnhgspghrtghpthhtohepgedprhgtphhtthhopehlihhnuhigqdhpmhesvhhgvghrrdhkvghrnhgvlhdrohhrghdprhgtphhtthhopegurghnihgvlhdrlhgviigtrghnoheslhhinhgrrhhordhorhhgpdhrtghpthhtoheplhhinhhugidqkhgvrhhnvghlsehvghgvrhdrkhgvrhhnvghlrdhorhhgpdhrtghpthhtoheplhhukhgrshiirdhluhgsrgesrghrmhdrtghomh
X-DCC--Metrics: v370.home.net.pl 1024; Body=4 Fuz1=4 Fuz2=4
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1269478
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-pm
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Hi Everyone,

These 2 patches deal with issues that may arise if the polling delay value used
for passive polling is at odds with the polling delay values used otherwise.

The first patch simply eliminates the need to worry about possible negative
polling delay values by changing the data type used for representing them
to unsigend int.

The other patch adds a sanity check to ensure that "passive" polling will not
be less frequent than "regular" polling.

Thanks!



.

From: "Rafael J. Wysocki" <rjw@rjwysocki.net>
To: Linux PM <linux-pm@vger.kernel.org>
Cc: Daniel Lezcano <daniel.lezcano@linaro.org>,
 LKML <linux-kernel@vger.kernel.org>, Lukasz Luba <lukasz.luba@arm.com>
Subject: [PATCH v2 0/2] thermal: core: Sanitize polling delay values
Date: Fri, 05 Jul 2024 21:43:30 +0200
Message-ID: <2746673.mvXUDI8C0e@rjwysocki.net>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 7Bit
Content-Type: text/plain; charset="UTF-8"
X-CLIENT-IP: 195.136.19.94
X-CLIENT-HOSTNAME: 195.136.19.94
X-VADE-SPAMSTATE: spam:low
X-VADE-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgeeftddrvddugddugedtucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecujffqoffgrffnpdggtffipffknecuuegrihhlohhuthemucduhedtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenogfuphgrmhfkphculdeftddtmdenucfjughrpefhvfevufffkfgggfgtsehtufertddttdejnecuhfhrohhmpedftfgrfhgrvghlucflrdcuhgihshhotghkihdfuceorhhjfiesrhhjfiihshhotghkihdrnhgvtheqnecuggftrfgrthhtvghrnhepgeffhfdujeelhfdtgeffkeetudfhtefhhfeiteethfekvefgvdfgfeeikeeigfehnecuffhomhgrihhnpehkvghrnhgvlhdrohhrghenucfkphepudelhedrudefiedrudelrdelgeenucfuphgrmhfkphepudelhedrudefiedrudelrdelgeenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepihhnvghtpeduleehrddufeeirdduledrleegpdhhvghlohepkhhrvggrtghhvghrrdhlohgtrghlnhgvthdpmhgrihhlfhhrohhmpedftfgrfhgrvghlucflrdcuhgihshhotghkihdfuceorhhjfiesrhhjfiihshhotghkihdrnhgvtheqpdhnsggprhgtphhtthhopeegpdhrtghpthhtoheplhhinhhugidqphhmsehvghgvrhdrkhgvrhhnvghlrdhorhhgpdhrtghpthhtohepuggrnhhivghlrdhlvgiitggrnhhosehlihhnrghrohdrohhrghdprhgtphhtthhopehlihhnuhigqdhkvghrnhgvlhesvhhgvghrrdhkvghrnhgvlhdrohhrghdprhgtphhtthhopehluhhkrghsiidrlhhusggrsegrrhhmrdgtohhm
X-DCC--Metrics: v370.home.net.pl 1024; Body=16 Fuz1=16 Fuz2=16
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1269488
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-pm
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Hi Everyone,

This is a v2 of

https://lore.kernel.org/linux-pm/4585590.LvFx2qVVIh@rjwysocki.net/

which is being sent because the second patch in the v2 was incorrect.

These 2 patches deal with issues that may arise if the polling delay value used
for passive polling is at odds with the polling delay values used otherwise.

The first patch simply eliminates the need to worry about possible negative
polling delay values by changing the data type used for representing them
to unsigend int.

The other patch adds a sanity check to ensure that "passive" polling will not
be less frequent than "regular" polling.

Thanks!



.

From: John Hubbard <jhubbard@nvidia.com>
To: Shuah Khan <shuah@kernel.org>
Cc: "Jason A . Donenfeld" <Jason@zx2c4.com>,
	Andy Lutomirski <luto@kernel.org>,
	Mark Brown <broonie@kernel.org>,
	Vincenzo Frascino <vincenzo.frascino@arm.com>,
	Colin Ian King <colin.i.king@gmail.com>,
	Valentin Obst <kernel@valentinobst.de>,
	linux-kselftest@vger.kernel.org,
	LKML <linux-kernel@vger.kernel.org>,
	llvm@lists.linux.dev,
	John Hubbard <jhubbard@nvidia.com>
Subject: [PATCH v5 0/3] selftests/vDSO: fix clang build errors, and Makefile cleanup
Date: Fri,  5 Jul 2024 09:57:33 -1000
Message-Id: <20240705195736.34039-1-jhubbard@nvidia.com>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1269490
Newsgroups: org.kernel.vger.linux-kernel,dev.linux.lists.llvm,org.kernel.vger.linux-kselftest
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Hi Shuah,

These are for 6.10, as we just discussed.

Changes since v4:

1) Subject line on patch #2/3: s/mm/vDSO/

2) Added Muhammad's review tag.

Changes since v3:

1. Rebased onto Linux 6.10-rc6+.

Cover letter for v3:

Jason A. Donenfeld, I've added you because I ended up looking through
your latest "implement getrandom() in vDSO" series [1], which also
touches this Makefile, so just a heads up about upcoming (minor) merge
conflicts.

Changes since v2:

1. Added two patches, both of which apply solely to the Makefile.
These provide a smaller, cleaner, and more accurate Makefile.

2. Added Reviewed-by and Tested-by tags for the original patch, which
fixes all of the clang errors and warnings for this selftest.

3. Removed an obsolete blurb from the commit description of the original
patch, now that Valentin Obst LLVM build fix has been merged.

thanks,
John Hubbard
NVIDIA

John Hubbard (3):
  selftests/vDSO: fix clang build errors and warnings
  selftests/vDSO: remove partially duplicated "all:" target in Makefile
  selftests/vDSO: remove duplicate compiler invocations from Makefile

 tools/testing/selftests/vDSO/Makefile         | 29 ++++++++-----------
 tools/testing/selftests/vDSO/parse_vdso.c     | 16 ++++++----
 .../selftests/vDSO/vdso_standalone_test_x86.c | 18 ++++++++++--
 3 files changed, 39 insertions(+), 24 deletions(-)


base-commit: d270dd21bee023ab627f34cfb77a9b89a688492a
-- 
2.40.1

.

Date: Sat, 06 Jul 2024 04:07:42 +0800
From: kernel test robot <lkp@intel.com>
To: "x86-ml" <x86@kernel.org>
Cc: linux-kernel@vger.kernel.org
Subject: [tip:timers/urgent] BUILD SUCCESS
 8cdb61838ee5c63556773ea2eed24deab6b15257
Message-ID: <202407060440.PUGz9hWt-lkp@intel.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1269498
Newsgroups: org.kernel.vger.linux-kernel
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

tree/branch: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git timers/urgent
branch HEAD: 8cdb61838ee5c63556773ea2eed24deab6b15257  timers/migration: Move hierarchy setup into cpuhotplug prepare callback

elapsed time: 1424m

configs tested: 191
configs skipped: 7

The following configs have been built successfully.
More configs may be tested in the coming days.

tested configs:
alpha                             allnoconfig   gcc-13.2.0
alpha                            allyesconfig   gcc-13.2.0
alpha                               defconfig   gcc-13.2.0
arc                              allmodconfig   gcc-13.2.0
arc                               allnoconfig   gcc-13.2.0
arc                              allyesconfig   gcc-13.2.0
arc                          axs101_defconfig   gcc-13.2.0
arc                                 defconfig   gcc-13.2.0
arc                     haps_hs_smp_defconfig   gcc-13.2.0
arc                   randconfig-001-20240705   gcc-13.2.0
arc                   randconfig-002-20240705   gcc-13.2.0
arm                              allmodconfig   gcc-13.2.0
arm                               allnoconfig   gcc-13.2.0
arm                              allyesconfig   gcc-13.2.0
arm                         axm55xx_defconfig   gcc-13.2.0
arm                     davinci_all_defconfig   gcc-13.2.0
arm                                 defconfig   gcc-13.2.0
arm                       omap2plus_defconfig   gcc-13.2.0
arm                          pxa3xx_defconfig   gcc-13.2.0
arm                   randconfig-001-20240705   gcc-13.2.0
arm                   randconfig-002-20240705   gcc-13.2.0
arm                   randconfig-003-20240705   gcc-13.2.0
arm                   randconfig-004-20240705   gcc-13.2.0
arm                          sp7021_defconfig   gcc-13.2.0
arm64                            allmodconfig   gcc-13.2.0
arm64                             allnoconfig   gcc-13.2.0
arm64                               defconfig   gcc-13.2.0
arm64                 randconfig-001-20240705   gcc-13.2.0
arm64                 randconfig-002-20240705   gcc-13.2.0
arm64                 randconfig-003-20240705   gcc-13.2.0
arm64                 randconfig-004-20240705   gcc-13.2.0
csky                              allnoconfig   gcc-13.2.0
csky                                defconfig   gcc-13.2.0
csky                  randconfig-001-20240705   gcc-13.2.0
csky                  randconfig-002-20240705   gcc-13.2.0
hexagon                          allmodconfig   clang-19
hexagon                          allyesconfig   clang-19
i386                             allmodconfig   clang-18
i386                             allmodconfig   gcc-13
i386                              allnoconfig   clang-18
i386                              allnoconfig   gcc-13
i386                             allyesconfig   clang-18
i386                             allyesconfig   gcc-13
i386         buildonly-randconfig-001-20240705   gcc-13
i386         buildonly-randconfig-002-20240705   gcc-13
i386         buildonly-randconfig-003-20240705   gcc-13
i386         buildonly-randconfig-004-20240705   gcc-13
i386         buildonly-randconfig-005-20240705   gcc-13
i386         buildonly-randconfig-006-20240705   gcc-13
i386                                defconfig   clang-18
i386                  randconfig-001-20240705   gcc-13
i386                  randconfig-002-20240705   gcc-13
i386                  randconfig-003-20240705   gcc-13
i386                  randconfig-004-20240705   gcc-13
i386                  randconfig-005-20240705   gcc-13
i386                  randconfig-006-20240705   gcc-13
i386                  randconfig-011-20240705   gcc-13
i386                  randconfig-012-20240705   gcc-13
i386                  randconfig-013-20240705   gcc-13
i386                  randconfig-014-20240705   gcc-13
i386                  randconfig-015-20240705   gcc-13
i386                  randconfig-016-20240705   gcc-13
loongarch                        allmodconfig   gcc-13.2.0
loongarch                         allnoconfig   gcc-13.2.0
loongarch                           defconfig   gcc-13.2.0
loongarch             randconfig-001-20240705   gcc-13.2.0
loongarch             randconfig-002-20240705   gcc-13.2.0
m68k                             allmodconfig   gcc-13.2.0
m68k                              allnoconfig   gcc-13.2.0
m68k                             allyesconfig   gcc-13.2.0
m68k                         apollo_defconfig   gcc-13.2.0
m68k                                defconfig   gcc-13.2.0
m68k                          hp300_defconfig   gcc-13.2.0
m68k                            mac_defconfig   gcc-13.2.0
m68k                          sun3x_defconfig   gcc-13.2.0
microblaze                       allmodconfig   gcc-13.2.0
microblaze                        allnoconfig   gcc-13.2.0
microblaze                       allyesconfig   gcc-13.2.0
microblaze                          defconfig   gcc-13.2.0
mips                              allnoconfig   gcc-13.2.0
mips                     decstation_defconfig   gcc-13.2.0
mips                     loongson1c_defconfig   gcc-13.2.0
mips                          rb532_defconfig   gcc-13.2.0
nios2                             allnoconfig   gcc-13.2.0
nios2                               defconfig   gcc-13.2.0
nios2                 randconfig-001-20240705   gcc-13.2.0
nios2                 randconfig-002-20240705   gcc-13.2.0
openrisc                          allnoconfig   gcc-13.2.0
openrisc                         allyesconfig   gcc-13.2.0
openrisc                            defconfig   gcc-13.2.0
parisc                           allmodconfig   gcc-13.2.0
parisc                            allnoconfig   gcc-13.2.0
parisc                           allyesconfig   gcc-13.2.0
parisc                              defconfig   gcc-13.2.0
parisc                generic-64bit_defconfig   gcc-13.2.0
parisc                randconfig-001-20240705   gcc-13.2.0
parisc                randconfig-002-20240705   gcc-13.2.0
parisc64                            defconfig   gcc-13.2.0
powerpc                          allmodconfig   gcc-13.2.0
powerpc                           allnoconfig   gcc-13.2.0
powerpc                          allyesconfig   clang-19
powerpc                          allyesconfig   gcc-13.2.0
powerpc                    amigaone_defconfig   gcc-13.2.0
powerpc                   bluestone_defconfig   gcc-13.2.0
powerpc                      cm5200_defconfig   gcc-13.2.0
powerpc                   currituck_defconfig   gcc-13.2.0
powerpc                  iss476-smp_defconfig   gcc-13.2.0
powerpc                      pasemi_defconfig   gcc-13.2.0
powerpc                      pcm030_defconfig   gcc-13.2.0
powerpc                      pmac32_defconfig   gcc-13.2.0
powerpc                      ppc64e_defconfig   gcc-13.2.0
powerpc                     rainier_defconfig   gcc-13.2.0
powerpc                     redwood_defconfig   gcc-13.2.0
powerpc                     tqm8548_defconfig   gcc-13.2.0
powerpc64             randconfig-001-20240705   gcc-13.2.0
powerpc64             randconfig-002-20240705   gcc-13.2.0
powerpc64             randconfig-003-20240705   gcc-13.2.0
riscv                            allmodconfig   clang-19
riscv                            allmodconfig   gcc-13.2.0
riscv                             allnoconfig   gcc-13.2.0
riscv                            allyesconfig   clang-19
riscv                            allyesconfig   gcc-13.2.0
riscv                               defconfig   gcc-13.2.0
riscv                 randconfig-001-20240705   gcc-13.2.0
riscv                 randconfig-002-20240705   gcc-13.2.0
s390                             allmodconfig   clang-19
s390                              allnoconfig   clang-19
s390                              allnoconfig   gcc-13.2.0
s390                             allyesconfig   clang-19
s390                             allyesconfig   gcc-13.2.0
s390                                defconfig   gcc-13.2.0
s390                  randconfig-001-20240705   gcc-13.2.0
s390                  randconfig-002-20240705   gcc-13.2.0
s390                       zfcpdump_defconfig   gcc-13.2.0
sh                               allmodconfig   gcc-13.2.0
sh                                allnoconfig   gcc-13.2.0
sh                               allyesconfig   gcc-13.2.0
sh                                  defconfig   gcc-13.2.0
sh                          lboxre2_defconfig   gcc-13.2.0
sh                    randconfig-001-20240705   gcc-13.2.0
sh                    randconfig-002-20240705   gcc-13.2.0
sh                            shmin_defconfig   gcc-13.2.0
sparc                            allmodconfig   gcc-13.2.0
sparc64                             defconfig   gcc-13.2.0
sparc64               randconfig-001-20240705   gcc-13.2.0
sparc64               randconfig-002-20240705   gcc-13.2.0
um                               allmodconfig   clang-19
um                               allmodconfig   gcc-13.2.0
um                                allnoconfig   clang-17
um                                allnoconfig   gcc-13.2.0
um                               allyesconfig   gcc-13
um                               allyesconfig   gcc-13.2.0
um                                  defconfig   gcc-13.2.0
um                             i386_defconfig   gcc-13.2.0
um                    randconfig-001-20240705   gcc-13.2.0
um                    randconfig-002-20240705   gcc-13.2.0
um                           x86_64_defconfig   gcc-13.2.0
x86_64                            allnoconfig   clang-18
x86_64                           allyesconfig   clang-18
x86_64       buildonly-randconfig-001-20240705   gcc-7
x86_64       buildonly-randconfig-002-20240705   gcc-7
x86_64       buildonly-randconfig-003-20240705   gcc-7
x86_64       buildonly-randconfig-004-20240705   gcc-7
x86_64       buildonly-randconfig-005-20240705   gcc-7
x86_64       buildonly-randconfig-006-20240705   gcc-7
x86_64                              defconfig   clang-18
x86_64                              defconfig   gcc-13
x86_64                randconfig-001-20240705   gcc-7
x86_64                randconfig-002-20240705   gcc-7
x86_64                randconfig-003-20240705   gcc-7
x86_64                randconfig-004-20240705   gcc-7
x86_64                randconfig-005-20240705   gcc-7
x86_64                randconfig-006-20240705   gcc-7
x86_64                randconfig-011-20240705   gcc-7
x86_64                randconfig-012-20240705   gcc-7
x86_64                randconfig-013-20240705   gcc-7
x86_64                randconfig-014-20240705   gcc-7
x86_64                randconfig-015-20240705   gcc-7
x86_64                randconfig-016-20240705   gcc-7
x86_64                randconfig-071-20240705   gcc-7
x86_64                randconfig-072-20240705   gcc-7
x86_64                randconfig-073-20240705   gcc-7
x86_64                randconfig-074-20240705   gcc-7
x86_64                randconfig-075-20240705   gcc-7
x86_64                randconfig-076-20240705   gcc-7
x86_64                          rhel-8.3-rust   clang-18
xtensa                            allnoconfig   gcc-13.2.0
xtensa                  audio_kc705_defconfig   gcc-13.2.0
xtensa                randconfig-001-20240705   gcc-13.2.0
xtensa                randconfig-002-20240705   gcc-13.2.0
xtensa                    xip_kc705_defconfig   gcc-13.2.0

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
.

Message-ID: <6b98a933682b443f0c16a4c8b3c5cd6db59d8f17.camel@linux.ibm.com>
Subject: [GIT PULL] integrity: subsystem update for v6.10-rcX
From: Mimi Zohar <zohar@linux.ibm.com>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: linux-integrity <linux-integrity@vger.kernel.org>,
        linux-kernel
 <linux-kernel@vger.kernel.org>,
        Roberto Sassu
 <roberto.sassu@huaweicloud.com>
Date: Fri, 05 Jul 2024 16:20:22 -0400
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1269501
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-integrity
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Hi Linus,

A single bug fix to properly remove all of the securityfs IMA measurement lists.

thanks,

Mimi

The following changes since commit c3f38fa61af77b49866b006939479069cd451173:

  Linux 6.10-rc2 (2024-06-02 15:44:56 -0700)

are available in the Git repository at:

  ssh://gitolite@ra.kernel.org/pub/scm/linux/kernel/git/zohar/linux-integrity.git tags/integrity-v6.10-fix

for you to fetch changes up to fbf06cee60876d50f259d0689e3c03940750f0d4:

  ima: fix wrong zero-assignment during securityfs dentry remove (2024-06-03 16:37:22 -0400)

----------------------------------------------------------------
integrity-v6.10-fix

----------------------------------------------------------------
Enrico Bravi (1):
      ima: fix wrong zero-assignment during securityfs dentry remove

 security/integrity/ima/ima_fs.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

.

Date: Sat, 06 Jul 2024 04:21:43 +0800
From: kernel test robot <lkp@intel.com>
To: "x86-ml" <x86@kernel.org>
Cc: linux-kernel@vger.kernel.org
Subject: [tip:timers/core] BUILD SUCCESS
 746770499be55cf375a108a321a818b238182446
Message-ID: <202407060442.9TmIoynw-lkp@intel.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1269502
Newsgroups: org.kernel.vger.linux-kernel
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

tree/branch: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git timers/core
branch HEAD: 746770499be55cf375a108a321a818b238182446  timers/migration: Fix grammar in comment

elapsed time: 1438m

configs tested: 188
configs skipped: 7

The following configs have been built successfully.
More configs may be tested in the coming days.

tested configs:
alpha                             allnoconfig   gcc-13.2.0
alpha                            allyesconfig   gcc-13.2.0
alpha                               defconfig   gcc-13.2.0
arc                              allmodconfig   gcc-13.2.0
arc                               allnoconfig   gcc-13.2.0
arc                              allyesconfig   gcc-13.2.0
arc                          axs101_defconfig   gcc-13.2.0
arc                                 defconfig   gcc-13.2.0
arc                     haps_hs_smp_defconfig   gcc-13.2.0
arc                   randconfig-001-20240705   gcc-13.2.0
arc                   randconfig-002-20240705   gcc-13.2.0
arm                              allmodconfig   gcc-13.2.0
arm                               allnoconfig   gcc-13.2.0
arm                              allyesconfig   gcc-13.2.0
arm                         axm55xx_defconfig   gcc-13.2.0
arm                     davinci_all_defconfig   gcc-13.2.0
arm                                 defconfig   gcc-13.2.0
arm                       omap2plus_defconfig   gcc-13.2.0
arm                          pxa3xx_defconfig   gcc-13.2.0
arm                   randconfig-001-20240705   gcc-13.2.0
arm                   randconfig-002-20240705   gcc-13.2.0
arm                   randconfig-003-20240705   gcc-13.2.0
arm                   randconfig-004-20240705   gcc-13.2.0
arm                          sp7021_defconfig   gcc-13.2.0
arm64                            allmodconfig   gcc-13.2.0
arm64                             allnoconfig   gcc-13.2.0
arm64                               defconfig   gcc-13.2.0
arm64                 randconfig-001-20240705   gcc-13.2.0
arm64                 randconfig-002-20240705   gcc-13.2.0
arm64                 randconfig-003-20240705   gcc-13.2.0
arm64                 randconfig-004-20240705   gcc-13.2.0
csky                              allnoconfig   gcc-13.2.0
csky                                defconfig   gcc-13.2.0
csky                  randconfig-001-20240705   gcc-13.2.0
csky                  randconfig-002-20240705   gcc-13.2.0
hexagon                          allmodconfig   clang-19
hexagon                          allyesconfig   clang-19
i386                             allmodconfig   clang-18
i386                             allmodconfig   gcc-13
i386                              allnoconfig   clang-18
i386                              allnoconfig   gcc-13
i386                             allyesconfig   clang-18
i386                             allyesconfig   gcc-13
i386         buildonly-randconfig-001-20240705   gcc-13
i386         buildonly-randconfig-002-20240705   gcc-13
i386         buildonly-randconfig-003-20240705   gcc-13
i386         buildonly-randconfig-004-20240705   gcc-13
i386         buildonly-randconfig-005-20240705   gcc-13
i386         buildonly-randconfig-006-20240705   gcc-13
i386                                defconfig   clang-18
i386                  randconfig-001-20240705   gcc-13
i386                  randconfig-002-20240705   gcc-13
i386                  randconfig-003-20240705   gcc-13
i386                  randconfig-004-20240705   gcc-13
i386                  randconfig-005-20240705   gcc-13
i386                  randconfig-006-20240705   gcc-13
i386                  randconfig-011-20240705   gcc-13
i386                  randconfig-012-20240705   gcc-13
i386                  randconfig-013-20240705   gcc-13
i386                  randconfig-014-20240705   gcc-13
i386                  randconfig-015-20240705   gcc-13
i386                  randconfig-016-20240705   gcc-13
loongarch                        allmodconfig   gcc-13.2.0
loongarch                         allnoconfig   gcc-13.2.0
loongarch                           defconfig   gcc-13.2.0
loongarch             randconfig-001-20240705   gcc-13.2.0
loongarch             randconfig-002-20240705   gcc-13.2.0
m68k                             allmodconfig   gcc-13.2.0
m68k                              allnoconfig   gcc-13.2.0
m68k                             allyesconfig   gcc-13.2.0
m68k                         apollo_defconfig   gcc-13.2.0
m68k                                defconfig   gcc-13.2.0
m68k                          hp300_defconfig   gcc-13.2.0
m68k                            mac_defconfig   gcc-13.2.0
m68k                          sun3x_defconfig   gcc-13.2.0
microblaze                       allmodconfig   gcc-13.2.0
microblaze                        allnoconfig   gcc-13.2.0
microblaze                       allyesconfig   gcc-13.2.0
microblaze                          defconfig   gcc-13.2.0
mips                              allnoconfig   gcc-13.2.0
mips                     decstation_defconfig   gcc-13.2.0
mips                     loongson1c_defconfig   gcc-13.2.0
mips                          rb532_defconfig   gcc-13.2.0
nios2                             allnoconfig   gcc-13.2.0
nios2                               defconfig   gcc-13.2.0
nios2                 randconfig-001-20240705   gcc-13.2.0
nios2                 randconfig-002-20240705   gcc-13.2.0
openrisc                          allnoconfig   gcc-13.2.0
openrisc                         allyesconfig   gcc-13.2.0
openrisc                            defconfig   gcc-13.2.0
parisc                           allmodconfig   gcc-13.2.0
parisc                            allnoconfig   gcc-13.2.0
parisc                           allyesconfig   gcc-13.2.0
parisc                              defconfig   gcc-13.2.0
parisc                generic-64bit_defconfig   gcc-13.2.0
parisc                randconfig-001-20240705   gcc-13.2.0
parisc                randconfig-002-20240705   gcc-13.2.0
parisc64                            defconfig   gcc-13.2.0
powerpc                          allmodconfig   gcc-13.2.0
powerpc                           allnoconfig   gcc-13.2.0
powerpc                          allyesconfig   gcc-13.2.0
powerpc                    amigaone_defconfig   gcc-13.2.0
powerpc                   bluestone_defconfig   gcc-13.2.0
powerpc                      cm5200_defconfig   gcc-13.2.0
powerpc                   currituck_defconfig   gcc-13.2.0
powerpc                  iss476-smp_defconfig   gcc-13.2.0
powerpc                      pasemi_defconfig   gcc-13.2.0
powerpc                      pcm030_defconfig   gcc-13.2.0
powerpc                      pmac32_defconfig   gcc-13.2.0
powerpc                      ppc64e_defconfig   gcc-13.2.0
powerpc                     rainier_defconfig   gcc-13.2.0
powerpc                     redwood_defconfig   gcc-13.2.0
powerpc                     tqm8548_defconfig   gcc-13.2.0
powerpc64             randconfig-001-20240705   gcc-13.2.0
powerpc64             randconfig-002-20240705   gcc-13.2.0
powerpc64             randconfig-003-20240705   gcc-13.2.0
riscv                            allmodconfig   gcc-13.2.0
riscv                             allnoconfig   gcc-13.2.0
riscv                            allyesconfig   gcc-13.2.0
riscv                               defconfig   gcc-13.2.0
riscv                 randconfig-001-20240705   gcc-13.2.0
riscv                 randconfig-002-20240705   gcc-13.2.0
s390                             allmodconfig   clang-19
s390                              allnoconfig   clang-19
s390                              allnoconfig   gcc-13.2.0
s390                             allyesconfig   clang-19
s390                             allyesconfig   gcc-13.2.0
s390                                defconfig   gcc-13.2.0
s390                  randconfig-001-20240705   gcc-13.2.0
s390                  randconfig-002-20240705   gcc-13.2.0
s390                       zfcpdump_defconfig   gcc-13.2.0
sh                               allmodconfig   gcc-13.2.0
sh                                allnoconfig   gcc-13.2.0
sh                               allyesconfig   gcc-13.2.0
sh                                  defconfig   gcc-13.2.0
sh                          lboxre2_defconfig   gcc-13.2.0
sh                    randconfig-001-20240705   gcc-13.2.0
sh                    randconfig-002-20240705   gcc-13.2.0
sh                            shmin_defconfig   gcc-13.2.0
sparc                            allmodconfig   gcc-13.2.0
sparc64                             defconfig   gcc-13.2.0
sparc64               randconfig-001-20240705   gcc-13.2.0
sparc64               randconfig-002-20240705   gcc-13.2.0
um                               allmodconfig   clang-19
um                               allmodconfig   gcc-13.2.0
um                                allnoconfig   clang-17
um                                allnoconfig   gcc-13.2.0
um                               allyesconfig   gcc-13
um                               allyesconfig   gcc-13.2.0
um                                  defconfig   gcc-13.2.0
um                             i386_defconfig   gcc-13.2.0
um                    randconfig-001-20240705   gcc-13.2.0
um                    randconfig-002-20240705   gcc-13.2.0
um                           x86_64_defconfig   gcc-13.2.0
x86_64                            allnoconfig   clang-18
x86_64                           allyesconfig   clang-18
x86_64       buildonly-randconfig-001-20240705   gcc-7
x86_64       buildonly-randconfig-002-20240705   gcc-7
x86_64       buildonly-randconfig-003-20240705   gcc-7
x86_64       buildonly-randconfig-004-20240705   gcc-7
x86_64       buildonly-randconfig-005-20240705   gcc-7
x86_64       buildonly-randconfig-006-20240705   gcc-7
x86_64                              defconfig   clang-18
x86_64                              defconfig   gcc-13
x86_64                randconfig-001-20240705   gcc-7
x86_64                randconfig-002-20240705   gcc-7
x86_64                randconfig-003-20240705   gcc-7
x86_64                randconfig-004-20240705   gcc-7
x86_64                randconfig-005-20240705   gcc-7
x86_64                randconfig-006-20240705   gcc-7
x86_64                randconfig-011-20240705   gcc-7
x86_64                randconfig-012-20240705   gcc-7
x86_64                randconfig-013-20240705   gcc-7
x86_64                randconfig-014-20240705   gcc-7
x86_64                randconfig-015-20240705   gcc-7
x86_64                randconfig-016-20240705   gcc-7
x86_64                randconfig-071-20240705   gcc-7
x86_64                randconfig-072-20240705   gcc-7
x86_64                randconfig-073-20240705   gcc-7
x86_64                randconfig-074-20240705   gcc-7
x86_64                randconfig-075-20240705   gcc-7
x86_64                randconfig-076-20240705   gcc-7
x86_64                          rhel-8.3-rust   clang-18
xtensa                            allnoconfig   gcc-13.2.0
xtensa                  audio_kc705_defconfig   gcc-13.2.0
xtensa                randconfig-001-20240705   gcc-13.2.0
xtensa                randconfig-002-20240705   gcc-13.2.0
xtensa                    xip_kc705_defconfig   gcc-13.2.0

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
.

From: Aleksandr Mishin <amishin@t-argos.ru>
To: Wolfram Sang <wsa+renesas@sang-engineering.com>
CC: Aleksandr Mishin <amishin@t-argos.ru>, Greg Kroah-Hartman
	<gregkh@linuxfoundation.org>, Dan Carpenter <dan.carpenter@linaro.org>, Zhang
 Shurong <zhang_shurong@foxmail.com>, <linux-staging@lists.linux.dev>,
	<linux-kernel@vger.kernel.org>, <lvc-project@linuxtesting.org>
Subject: [PATCH] staging: ks7010: Remove unneeded check in ks_wlan_get_range()
Date: Fri, 5 Jul 2024 23:44:34 +0300
Message-ID: <20240705204434.10541-1-amishin@t-argos.ru>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-KSMG-Rule-ID: 1
X-KSMG-Message-Action: clean
X-KSMG-AntiSpam-Lua-Profiles: 186343 [Jul 05 2024]
X-KSMG-AntiSpam-Version: 6.1.0.4
X-KSMG-AntiSpam-Envelope-From: amishin@t-argos.ru
X-KSMG-AntiSpam-Rate: 0
X-KSMG-AntiSpam-Status: not_detected
X-KSMG-AntiSpam-Method: none
X-KSMG-AntiSpam-Auth: dkim=none
X-KSMG-AntiSpam-Info: LuaCore: 21 0.3.21 ebee5449fc125b2da45f1a6a6bc2c5c0c3ad0e05, {Tracking_from_domain_doesnt_match_to}, t-argos.ru:7.1.1;127.0.0.199:7.1.2;d41d8cd98f00b204e9800998ecf8427e.com:7.1.1;mx1.t-argos.ru.ru:7.1.1, FromAlignment: s
X-MS-Exchange-Organization-SCL: -1
X-KSMG-AntiSpam-Interceptor-Info: scan successful
X-KSMG-AntiPhishing: Clean, bases: 2024/07/05 18:39:00
X-KSMG-AntiVirus: Kaspersky Secure Mail Gateway, version 1.1.2.30, bases: 2024/07/05 17:28:00 #25862371
X-KSMG-AntiVirus-Status: Clean, skipped
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1269508
Newsgroups: org.kernel.vger.linux-kernel,dev.linux.lists.linux-staging
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

In ks_wlan_get_range() variable 'i' which value is always 12, is compared
to 2. This check is unneeded and should be removed.

Remove unneeded check to clean up the code.

Found by Linux Verification Center (linuxtesting.org) with SVACE.

Fixes: 13a9930d15b4 ("staging: ks7010: add driver from Nanonote extra-repository")
Signed-off-by: Aleksandr Mishin <amishin@t-argos.ru>
---
 drivers/staging/ks7010/ks_wlan_net.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/drivers/staging/ks7010/ks_wlan_net.c b/drivers/staging/ks7010/ks_wlan_net.c
index 0fb97a79ad0b..d56dae73e7ed 100644
--- a/drivers/staging/ks7010/ks_wlan_net.c
+++ b/drivers/staging/ks7010/ks_wlan_net.c
@@ -972,10 +972,7 @@ static int ks_wlan_get_range(struct net_device *dev,
 	 * in bit/s that we can expect using this interface.
 	 * May be use for QoS stuff... Jean II
 	 */
-	if (i > 2)
-		range->throughput = 5000 * 1000;
-	else
-		range->throughput = 1500 * 1000;
+	range->throughput = 5000 * 1000;
 
 	range->min_rts = 0;
 	range->max_rts = 2347;
-- 
2.30.2

.

From: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= <u.kleine-koenig@baylibre.com>
To: Steven Rostedt <rostedt@goodmis.org>,
	Masami Hiramatsu <mhiramat@kernel.org>
Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>,
	linux-pwm@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-trace-kernel@vger.kernel.org
Subject: [PATCH] pwm: Make info in traces about affected pwm more useful
Date: Fri,  5 Jul 2024 23:14:51 +0200
Message-ID: <20240705211452.1157967-2-u.kleine-koenig@baylibre.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1269530
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-pwm,org.kernel.vger.linux-trace-kernel
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

The hashed pointer isn't useful to identify the pwm device. Instead
store and emit chipid and hwpwm.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@baylibre.com>
---
 include/trace/events/pwm.h | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/include/trace/events/pwm.h b/include/trace/events/pwm.h
index 12b35e4ff917..8022701c446d 100644
--- a/include/trace/events/pwm.h
+++ b/include/trace/events/pwm.h
@@ -15,7 +15,8 @@ DECLARE_EVENT_CLASS(pwm,
 	TP_ARGS(pwm, state, err),
 
 	TP_STRUCT__entry(
-		__field(struct pwm_device *, pwm)
+		__field(unsigned int, chipid)
+		__field(unsigned int, hwpwm)
 		__field(u64, period)
 		__field(u64, duty_cycle)
 		__field(enum pwm_polarity, polarity)
@@ -24,7 +25,8 @@ DECLARE_EVENT_CLASS(pwm,
 	),
 
 	TP_fast_assign(
-		__entry->pwm = pwm;
+		__entry->chipid = pwm->chip->id;
+		__entry->hwpwm = pwm->hwpwm;
 		__entry->period = state->period;
 		__entry->duty_cycle = state->duty_cycle;
 		__entry->polarity = state->polarity;
@@ -32,8 +34,8 @@ DECLARE_EVENT_CLASS(pwm,
 		__entry->err = err;
 	),
 
-	TP_printk("%p: period=%llu duty_cycle=%llu polarity=%d enabled=%d err=%d",
-		  __entry->pwm, __entry->period, __entry->duty_cycle,
+	TP_printk("pwmchip%u.%u: period=%llu duty_cycle=%llu polarity=%d enabled=%d err=%d",
+		  __entry->chipid, __entry->hwpwm, __entry->period, __entry->duty_cycle,
 		  __entry->polarity, __entry->enabled, __entry->err)
 
 );

base-commit: 6ba37c70795abf1d59976b3a49acafac14b72a4f
-- 
2.43.0

.

Sender: Guenter Roeck <groeck7@gmail.com>
From: Guenter Roeck <linux@roeck-us.net>
To: linux-hwmon@vger.kernel.org
Cc: linux-kernel@vger.kernel.org,
	Farouk Bouabid <farouk.bouabid@cherry.de>,
	Quentin Schulz <quentin.schulz@cherry.de>,
	Guenter Roeck <linux@roeck-us.net>
Subject: [PATCH v4 00/11] hwmon: (amc6821) Various improvements
Date: Fri,  5 Jul 2024 14:35:36 -0700
Message-Id: <20240705213547.1155690-1-linux@roeck-us.net>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1269533
Newsgroups: org.kernel.vger.linux-kernel,org.kernel.vger.linux-hwmon
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

Cleanup and modernize the amc2821 driver.

Summary of changes:

- Stop accepting invalid pwm values.
- Improve consistency of reading vs. writing fan speed limits
- Rename fan1_div to fan1_pulses
- Add support for fan1_target and pwm1_enable mode 4
- Reorder include files, drop unnecessary ones
- Use tabs for column alignment in defines
- Use BIT() and GENMASK()
- Drop unnecessary enum chips
- Convert to use regmap
- Convert to with_info API
- Add support for pwm1_mode attribute

v4:
- Added Quentin's Reviewed-by: tag to patch 11/11
- Various improvements in regmap conversion see patch 9/11 for details
- Fixed subject of two patches

v3:
- Added Quentin's Reviewed-by: tag to several patches
- Change valid range of pwm1_auto_point2_pwm from [0..254] to
  [0, 255]
- Various improvements of regmap conversion
- Fix register when writing pwm1_mode

v2:
- Use kstrtou8() instead of kstrtol() where possible
- Limit range of pwm1_auto_point_pwm to 0..254 in patch 1
  instead of limiting it later, and do not accept invalid
  values for the attribute
- Do not accept negative fan speed values
- Display fan speed and speed limit as 0 if register value is 0
  (instead of 6000000), as in original code
- Only permit writing 0 (unlimited) for the maximum fan speed
- Add Reviewed-by: tags where given
- Fix definition of AMC6821_CONF1_FDRC1 in patch 7/10
- Use sign_extend32() instead of odd type cast
- Drop remaining spurious debug message in patch 9 instead of patch 10
- Add missing "select REGMAP_I2C" to Kconfig
- Change misleading variable name from 'mask' to 'mode'
- Use sysfs_emit instead of sprintf everywhere
- Add support for pwm1_mode attribute

----------------------------------------------------------------
Guenter Roeck (11):
      hwmon: (amc6821) Stop accepting invalid pwm values
      hwmon: (amc6821) Make reading and writing fan speed limits consistent
      hwmon: (amc6821) Rename fan1_div to fan1_pulses
      hwmon: (amc6821) Add support for fan1_target and pwm1_enable mode 4
      hwmon: (amc6821) Reorder include files, drop unnecessary ones
      hwmon: (amc6821) Use tabs for column alignment in defines
      hwmon: (amc6821) Use BIT() and GENMASK()
      hwmon: (amc6821) Drop unnecessary enum chips
      hwmon: (amc6821) Convert to use regmap
      hwmon: (amc6821) Convert to with_info API
      hwmon: (amc6821) Add support for pwm1_mode attribute

 Documentation/hwmon/amc6821.rst |    7 +-
 drivers/hwmon/Kconfig           |    1 +
 drivers/hwmon/amc6821.c         | 1401 ++++++++++++++++++++-------------------
 3 files changed, 708 insertions(+), 701 deletions(-)
.

Date: Sat, 06 Jul 2024 05:50:14 +0800
From: kernel test robot <lkp@intel.com>
To: "Paul E. McKenney" <paulmck@kernel.org>
Cc: linux-kernel@vger.kernel.org
Subject: [paulmck-rcu:non-rcu/next] BUILD SUCCESS
 20560bc16e593c296841206a996aad3f4d1230e2
Message-ID: <202407060512.RL0waaNe-lkp@intel.com>
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1269547
Newsgroups: org.kernel.vger.linux-kernel
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

tree/branch: https://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git non-rcu/next
branch HEAD: 20560bc16e593c296841206a996aad3f4d1230e2  locking/csd_lock: Provide an indication of ongoing CSD-lock stall

elapsed time: 1453m

configs tested: 239
configs skipped: 5

The following configs have been built successfully.
More configs may be tested in the coming days.

tested configs:
alpha                             allnoconfig   gcc-13.2.0
alpha                            allyesconfig   gcc-13.2.0
alpha                               defconfig   gcc-13.2.0
arc                              allmodconfig   gcc-13.2.0
arc                               allnoconfig   gcc-13.2.0
arc                              allyesconfig   gcc-13.2.0
arc                                 defconfig   gcc-13.2.0
arc                     haps_hs_smp_defconfig   gcc-13.2.0
arc                   randconfig-001-20240705   gcc-13.2.0
arc                   randconfig-002-20240705   gcc-13.2.0
arm                              allmodconfig   gcc-13.2.0
arm                               allnoconfig   clang-19
arm                               allnoconfig   gcc-13.2.0
arm                              allyesconfig   gcc-13.2.0
arm                                 defconfig   gcc-13.2.0
arm                   randconfig-001-20240705   gcc-13.2.0
arm                   randconfig-002-20240705   gcc-13.2.0
arm                   randconfig-003-20240705   gcc-13.2.0
arm                   randconfig-004-20240705   gcc-13.2.0
arm                           u8500_defconfig   gcc-13.2.0
arm                         vf610m4_defconfig   gcc-13.2.0
arm64                            allmodconfig   clang-19
arm64                            allmodconfig   gcc-13.2.0
arm64                             allnoconfig   gcc-13.2.0
arm64                               defconfig   gcc-13.2.0
arm64                 randconfig-001-20240705   clang-19
arm64                 randconfig-002-20240705   clang-19
arm64                 randconfig-003-20240705   clang-19
arm64                 randconfig-004-20240705   clang-19
csky                              allnoconfig   gcc-13.2.0
csky                                defconfig   gcc-13.2.0
csky                  randconfig-001-20240705   gcc-13.2.0
csky                  randconfig-002-20240705   gcc-13.2.0
hexagon                          allmodconfig   clang-19
hexagon                           allnoconfig   clang-19
hexagon                          allyesconfig   clang-19
hexagon               randconfig-001-20240705   clang-19
hexagon               randconfig-002-20240705   clang-17
i386                             allmodconfig   clang-18
i386                             allmodconfig   gcc-13
i386                              allnoconfig   clang-18
i386                              allnoconfig   gcc-13
i386                             allyesconfig   clang-18
i386                             allyesconfig   gcc-13
i386         buildonly-randconfig-001-20240705   gcc-13
i386         buildonly-randconfig-002-20240705   gcc-13
i386         buildonly-randconfig-002-20240705   gcc-9
i386         buildonly-randconfig-003-20240705   gcc-11
i386         buildonly-randconfig-003-20240705   gcc-13
i386         buildonly-randconfig-004-20240705   clang-18
i386         buildonly-randconfig-004-20240705   gcc-13
i386         buildonly-randconfig-005-20240705   clang-18
i386         buildonly-randconfig-005-20240705   gcc-13
i386         buildonly-randconfig-006-20240705   clang-18
i386         buildonly-randconfig-006-20240705   gcc-13
i386                                defconfig   clang-18
i386                  randconfig-001-20240705   gcc-13
i386                  randconfig-002-20240705   clang-18
i386                  randconfig-002-20240705   gcc-13
i386                  randconfig-003-20240705   gcc-11
i386                  randconfig-003-20240705   gcc-13
i386                  randconfig-004-20240705   gcc-13
i386                  randconfig-005-20240705   clang-18
i386                  randconfig-005-20240705   gcc-13
i386                  randconfig-006-20240705   clang-18
i386                  randconfig-006-20240705   gcc-13
i386                  randconfig-011-20240705   gcc-13
i386                  randconfig-012-20240705   gcc-13
i386                  randconfig-013-20240705   clang-18
i386                  randconfig-013-20240705   gcc-13
i386                  randconfig-014-20240705   gcc-13
i386                  randconfig-014-20240705   gcc-8
i386                  randconfig-015-20240705   gcc-10
i386                  randconfig-015-20240705   gcc-13
i386                  randconfig-016-20240705   clang-18
i386                  randconfig-016-20240705   gcc-13
loongarch                        allmodconfig   gcc-13.2.0
loongarch                         allnoconfig   gcc-13.2.0
loongarch                           defconfig   gcc-13.2.0
loongarch             randconfig-001-20240705   gcc-13.2.0
loongarch             randconfig-002-20240705   gcc-13.2.0
m68k                             allmodconfig   gcc-13.2.0
m68k                              allnoconfig   gcc-13.2.0
m68k                             allyesconfig   gcc-13.2.0
m68k                                defconfig   gcc-13.2.0
m68k                          hp300_defconfig   gcc-13.2.0
m68k                          sun3x_defconfig   gcc-13.2.0
microblaze                       allmodconfig   gcc-13.2.0
microblaze                        allnoconfig   gcc-13.2.0
microblaze                       allyesconfig   gcc-13.2.0
microblaze                          defconfig   gcc-13.2.0
mips                              allnoconfig   gcc-13.2.0
mips                  decstation_64_defconfig   gcc-13.2.0
mips                     decstation_defconfig   gcc-13.2.0
mips                          rb532_defconfig   gcc-13.2.0
nios2                             allnoconfig   gcc-13.2.0
nios2                               defconfig   gcc-13.2.0
nios2                 randconfig-001-20240705   gcc-13.2.0
nios2                 randconfig-002-20240705   gcc-13.2.0
openrisc                          allnoconfig   gcc-13.2.0
openrisc                         allyesconfig   gcc-13.2.0
openrisc                            defconfig   gcc-13.2.0
parisc                           allmodconfig   gcc-13.2.0
parisc                            allnoconfig   gcc-13.2.0
parisc                           allyesconfig   gcc-13.2.0
parisc                              defconfig   gcc-13.2.0
parisc                generic-64bit_defconfig   gcc-13.2.0
parisc                randconfig-001-20240705   gcc-13.2.0
parisc                randconfig-002-20240705   gcc-13.2.0
parisc64                            defconfig   gcc-13.2.0
powerpc                          allmodconfig   gcc-13.2.0
powerpc                           allnoconfig   gcc-13.2.0
powerpc                          allyesconfig   clang-19
powerpc                          allyesconfig   gcc-13.2.0
powerpc                    amigaone_defconfig   gcc-13.2.0
powerpc                   bluestone_defconfig   gcc-13.2.0
powerpc                      cm5200_defconfig   gcc-13.2.0
powerpc                          g5_defconfig   gcc-13.2.0
powerpc                    ge_imp3a_defconfig   gcc-13.2.0
powerpc                 mpc8313_rdb_defconfig   gcc-13.2.0
powerpc               mpc834x_itxgp_defconfig   clang-14
powerpc                      pcm030_defconfig   clang-19
powerpc                      pcm030_defconfig   gcc-13.2.0
powerpc                      pmac32_defconfig   gcc-13.2.0
powerpc                     ppa8548_defconfig   gcc-13.2.0
powerpc                       ppc64_defconfig   clang-19
powerpc                      ppc64e_defconfig   gcc-13.2.0
powerpc                     rainier_defconfig   gcc-13.2.0
powerpc               randconfig-001-20240705   gcc-13.2.0
powerpc               randconfig-002-20240705   clang-19
powerpc               randconfig-003-20240705   clang-19
powerpc                     tqm8548_defconfig   gcc-13.2.0
powerpc64             randconfig-001-20240705   gcc-13.2.0
powerpc64             randconfig-002-20240705   clang-19
powerpc64             randconfig-003-20240705   clang-19
riscv                            allmodconfig   clang-19
riscv                            allmodconfig   gcc-13.2.0
riscv                             allnoconfig   gcc-13.2.0
riscv                            allyesconfig   clang-19
riscv                            allyesconfig   gcc-13.2.0
riscv                               defconfig   clang-19
riscv                               defconfig   gcc-13.2.0
riscv                 randconfig-001-20240705   gcc-13.2.0
riscv                 randconfig-002-20240705   clang-19
s390                             allmodconfig   clang-19
s390                              allnoconfig   clang-19
s390                              allnoconfig   gcc-13.2.0
s390                             allyesconfig   clang-19
s390                             allyesconfig   gcc-13.2.0
s390                                defconfig   clang-19
s390                                defconfig   gcc-13.2.0
s390                  randconfig-001-20240705   gcc-13.2.0
s390                  randconfig-002-20240705   clang-16
sh                               allmodconfig   gcc-13.2.0
sh                                allnoconfig   gcc-13.2.0
sh                               allyesconfig   gcc-13.2.0
sh                                  defconfig   gcc-13.2.0
sh                          lboxre2_defconfig   gcc-13.2.0
sh                    randconfig-001-20240705   gcc-13.2.0
sh                    randconfig-002-20240705   gcc-13.2.0
sh                   rts7751r2dplus_defconfig   gcc-13.2.0
sh                            shmin_defconfig   gcc-13.2.0
sh                          urquell_defconfig   gcc-13.2.0
sparc                            allmodconfig   gcc-13.2.0
sparc64                             defconfig   gcc-13.2.0
sparc64               randconfig-001-20240705   gcc-13.2.0
sparc64               randconfig-002-20240705   gcc-13.2.0
um                               allmodconfig   clang-19
um                               allmodconfig   gcc-13.2.0
um                                allnoconfig   clang-17
um                                allnoconfig   gcc-13.2.0
um                               allyesconfig   gcc-13
um                               allyesconfig   gcc-13.2.0
um                                  defconfig   clang-19
um                                  defconfig   gcc-13.2.0
um                             i386_defconfig   gcc-13
um                             i386_defconfig   gcc-13.2.0
um                    randconfig-001-20240705   clang-19
um                    randconfig-002-20240705   clang-15
um                           x86_64_defconfig   clang-15
um                           x86_64_defconfig   gcc-13.2.0
x86_64                            allnoconfig   clang-18
x86_64                           allyesconfig   clang-18
x86_64       buildonly-randconfig-001-20240705   gcc-7
x86_64       buildonly-randconfig-002-20240705   gcc-13
x86_64       buildonly-randconfig-002-20240705   gcc-7
x86_64       buildonly-randconfig-003-20240705   clang-18
x86_64       buildonly-randconfig-003-20240705   gcc-7
x86_64       buildonly-randconfig-004-20240705   clang-18
x86_64       buildonly-randconfig-004-20240705   gcc-7
x86_64       buildonly-randconfig-005-20240705   clang-18
x86_64       buildonly-randconfig-005-20240705   gcc-7
x86_64       buildonly-randconfig-006-20240705   clang-18
x86_64       buildonly-randconfig-006-20240705   gcc-7
x86_64                              defconfig   clang-18
x86_64                              defconfig   gcc-13
x86_64                randconfig-001-20240705   clang-18
x86_64                randconfig-001-20240705   gcc-7
x86_64                randconfig-002-20240705   gcc-13
x86_64                randconfig-002-20240705   gcc-7
x86_64                randconfig-003-20240705   clang-18
x86_64                randconfig-003-20240705   gcc-7
x86_64                randconfig-004-20240705   gcc-13
x86_64                randconfig-004-20240705   gcc-7
x86_64                randconfig-005-20240705   gcc-13
x86_64                randconfig-005-20240705   gcc-7
x86_64                randconfig-006-20240705   gcc-13
x86_64                randconfig-006-20240705   gcc-7
x86_64                randconfig-011-20240705   clang-18
x86_64                randconfig-011-20240705   gcc-7
x86_64                randconfig-012-20240705   gcc-7
x86_64                randconfig-012-20240705   gcc-9
x86_64                randconfig-013-20240705   clang-18
x86_64                randconfig-013-20240705   gcc-7
x86_64                randconfig-014-20240705   gcc-13
x86_64                randconfig-014-20240705   gcc-7
x86_64                randconfig-015-20240705   clang-18
x86_64                randconfig-015-20240705   gcc-7
x86_64                randconfig-016-20240705   gcc-7
x86_64                randconfig-016-20240705   gcc-9
x86_64                randconfig-071-20240705   gcc-13
x86_64                randconfig-071-20240705   gcc-7
x86_64                randconfig-072-20240705   gcc-13
x86_64                randconfig-072-20240705   gcc-7
x86_64                randconfig-073-20240705   clang-18
x86_64                randconfig-073-20240705   gcc-7
x86_64                randconfig-074-20240705   gcc-13
x86_64                randconfig-074-20240705   gcc-7
x86_64                randconfig-075-20240705   clang-18
x86_64                randconfig-075-20240705   gcc-7
x86_64                randconfig-076-20240705   clang-18
x86_64                randconfig-076-20240705   gcc-7
x86_64                          rhel-8.3-rust   clang-18
xtensa                            allnoconfig   gcc-13.2.0
xtensa                  audio_kc705_defconfig   gcc-13.2.0
xtensa                       common_defconfig   gcc-13.2.0
xtensa                randconfig-001-20240705   gcc-13.2.0
xtensa                randconfig-002-20240705   gcc-13.2.0
xtensa                    xip_kc705_defconfig   gcc-13.2.0

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
.

Content-Type: multipart/mixed; boundary="------------ZTX90q6Gdiral5E6eXA4ADte"
Message-ID: <f79ee8f6-3fba-4c5f-9dc4-371906c529a8@gmail.com>
Date: Fri, 5 Jul 2024 23:52:30 +0200
X-Mailing-List: linux-kernel@vger.kernel.org
List-Id: <linux-kernel.vger.kernel.org>
List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Language: en-US
To: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
From: Mirsad Todorovac <mtodorovac69@gmail.com>
Subject: [PROBLEM] ./arch/x86/include/asm/pgtable_32.h:59:5: error:
 "PTRS_PER_PMD" is not defined, evaluates to 0 [-Werror=undef]
Cc: Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>,
 Borislav Petkov <bp@alien8.de>, Dave Hansen <dave.hansen@linux.intel.com>,
 x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>,
 Yuntao Wang <ytcoode@gmail.com>, Breno Leitao <leitao@debian.org>,
 Brian Gerst <brgerst@gmail.com>, Masahiro Yamada <masahiroy@kernel.org>
Xref: photonic.trudheim.com org.kernel.vger.linux-kernel:1269548
Newsgroups: org.kernel.vger.linux-kernel
Path: photonic.trudheim.com!nntp.lore.kernel.org!not-for-mail

This is a multi-part message in MIME format.
--------------ZTX90q6Gdiral5E6eXA4ADte
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Hi, all!

This is the result of testing randconfig with KCONFIG_SEED=0xEE7AB52F in next-20240703 vanilla tree on
Ubuntu 22.04 LTS. GCC used is gcc (Ubuntu 12.3.0-1ubuntu1~22.04) 12.3.0.

The particular error is as follows:

In file included from arch/x86/kernel/head_32.S:29:
./arch/x86/include/asm/pgtable_32.h:59:5: error: "PTRS_PER_PMD" is not defined, evaluates to 0 [-Werror=undef]
   59 | #if PTRS_PER_PMD > 1
      |     ^~~~~~~~~~~~
cc1: all warnings being treated as errors

The erroneous line is here:

  50 /*
  51  * This is used to calculate the .brk reservation for initial pagetables.
  52  * Enough space is reserved to allocate pagetables sufficient to cover all
  53  * of LOWMEM_PAGES, which is an upper bound on the size of the direct map of
  54  * lowmem.
  55  *
  56  * With PAE paging (PTRS_PER_PMD > 1), we allocate PTRS_PER_PGD == 4 pages for
  57  * the PMD's in addition to the pages required for the last level pagetables.
  58  */
→ 59 #if PTRS_PER_PMD > 1
  60 #define PAGE_TABLE_SIZE(pages) (((pages) / PTRS_PER_PMD) + PTRS_PER_PGD)
  61 #else
  62 #define PAGE_TABLE_SIZE(pages) ((pages) / PTRS_PER_PGD)
  63 #endif

The PTRS_PER_PMD is defined here:

include/asm-generic/pgtable-nopmd.h:#define PTRS_PER_PMD	1

  13 /*
  14  * Having the pmd type consist of a pud gets the size right, and allows
  15  * us to conceptually access the pud entry that this pmd is folded into
  16  * without casting.
  17  */
  18 typedef struct { pud_t pud; } pmd_t;
  19 
  20 #define PMD_SHIFT       PUD_SHIFT
→ 21 #define PTRS_PER_PMD    1
  22 #define PMD_SIZE        (1UL << PMD_SHIFT)
  23 #define PMD_MASK        (~(PMD_SIZE-1))
  24 

I couldn't figure out how to get gcc -E output for this particular .S file.

Please find attached the .config ...

Best regards,
Mirsad Todorovac
--------------ZTX90q6Gdiral5E6eXA4ADte
Content-Type: text/plain; charset=UTF-8; name=".config"
Content-Disposition: attachment; filename=".config"
Content-Transfer-Encoding: base64

IwojIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGZpbGU7IERPIE5PVCBFRElULgojIExpbnV4
L3g4NiA2LjEwLjAtcmM2IEtlcm5lbCBDb25maWd1cmF0aW9uCiMKQ09ORklHX0NDX1ZFUlNJ
T05fVEVYVD0iZ2NjIChVYnVudHUgMTIuMy4wLTF1YnVudHUxfjIyLjA0KSAxMi4zLjAiCkNP
TkZJR19DQ19JU19HQ0M9eQpDT05GSUdfR0NDX1ZFUlNJT049MTIwMzAwCkNPTkZJR19DTEFO
R19WRVJTSU9OPTAKQ09ORklHX0FTX0lTX0dOVT15CkNPTkZJR19BU19WRVJTSU9OPTIzODAw
CkNPTkZJR19MRF9JU19CRkQ9eQpDT05GSUdfTERfVkVSU0lPTj0yMzgwMApDT05GSUdfTExE
X1ZFUlNJT049MApDT05GSUdfQ0NfQ0FOX0xJTks9eQpDT05GSUdfQ0NfQ0FOX0xJTktfU1RB
VElDPXkKQ09ORklHX0NDX0hBU19BU01fR09UT19PVVRQVVQ9eQpDT05GSUdfQ0NfSEFTX0FT
TV9HT1RPX1RJRURfT1VUUFVUPXkKQ09ORklHX0dDQ19BU01fR09UT19PVVRQVVRfV09SS0FS
T1VORD15CkNPTkZJR19UT09MU19TVVBQT1JUX1JFTFI9eQpDT05GSUdfQ0NfSEFTX0FTTV9J
TkxJTkU9eQpDT05GSUdfQ0NfSEFTX05PX1BST0ZJTEVfRk5fQVRUUj15CkNPTkZJR19QQUhP
TEVfVkVSU0lPTj0xMjUKQ09ORklHX0lSUV9XT1JLPXkKQ09ORklHX0JVSUxEVElNRV9UQUJM
RV9TT1JUPXkKQ09ORklHX1RIUkVBRF9JTkZPX0lOX1RBU0s9eQoKIwojIEdlbmVyYWwgc2V0
dXAKIwpDT05GSUdfSU5JVF9FTlZfQVJHX0xJTUlUPTMyCiMgQ09ORklHX0NPTVBJTEVfVEVT
VCBpcyBub3Qgc2V0CkNPTkZJR19XRVJST1I9eQpDT05GSUdfTE9DQUxWRVJTSU9OPSIiCiMg
Q09ORklHX0xPQ0FMVkVSU0lPTl9BVVRPIGlzIG5vdCBzZXQKQ09ORklHX0JVSUxEX1NBTFQ9
IiIKQ09ORklHX0hBVkVfS0VSTkVMX0daSVA9eQpDT05GSUdfSEFWRV9LRVJORUxfQlpJUDI9
eQpDT05GSUdfSEFWRV9LRVJORUxfTFpNQT15CkNPTkZJR19IQVZFX0tFUk5FTF9YWj15CkNP
TkZJR19IQVZFX0tFUk5FTF9MWk89eQpDT05GSUdfSEFWRV9LRVJORUxfTFo0PXkKQ09ORklH
X0hBVkVfS0VSTkVMX1pTVEQ9eQpDT05GSUdfS0VSTkVMX0daSVA9eQojIENPTkZJR19LRVJO
RUxfQlpJUDIgaXMgbm90IHNldAojIENPTkZJR19LRVJORUxfTFpNQSBpcyBub3Qgc2V0CiMg
Q09ORklHX0tFUk5FTF9YWiBpcyBub3Qgc2V0CiMgQ09ORklHX0tFUk5FTF9MWk8gaXMgbm90
IHNldAojIENPTkZJR19LRVJORUxfTFo0IGlzIG5vdCBzZXQKIyBDT05GSUdfS0VSTkVMX1pT
VEQgaXMgbm90IHNldApDT05GSUdfREVGQVVMVF9JTklUPSIiCkNPTkZJR19ERUZBVUxUX0hP
U1ROQU1FPSIobm9uZSkiCiMgQ09ORklHX1NZU1ZJUEMgaXMgbm90IHNldApDT05GSUdfUE9T
SVhfTVFVRVVFPXkKQ09ORklHX1BPU0lYX01RVUVVRV9TWVNDVEw9eQojIENPTkZJR19XQVRD
SF9RVUVVRSBpcyBub3Qgc2V0CiMgQ09ORklHX0NST1NTX01FTU9SWV9BVFRBQ0ggaXMgbm90
IHNldAojIENPTkZJR19VU0VMSUIgaXMgbm90IHNldAojIENPTkZJR19BVURJVCBpcyBub3Qg
c2V0CkNPTkZJR19IQVZFX0FSQ0hfQVVESVRTWVNDQUxMPXkKCiMKIyBJUlEgc3Vic3lzdGVt
CiMKQ09ORklHX0dFTkVSSUNfSVJRX1BST0JFPXkKQ09ORklHX0dFTkVSSUNfSVJRX1NIT1c9
eQpDT05GSUdfR0VORVJJQ19JUlFfRUZGRUNUSVZFX0FGRl9NQVNLPXkKQ09ORklHX0dFTkVS
SUNfUEVORElOR19JUlE9eQpDT05GSUdfR0VORVJJQ19JUlFfTUlHUkFUSU9OPXkKQ09ORklH
X0hBUkRJUlFTX1NXX1JFU0VORD15CkNPTkZJR19HRU5FUklDX0lSUV9DSElQPXkKQ09ORklH
X0lSUV9ET01BSU49eQpDT05GSUdfSVJRX0RPTUFJTl9ISUVSQVJDSFk9eQpDT05GSUdfSVJR
X01TSV9JT01NVT15CkNPTkZJR19HRU5FUklDX0lSUV9NQVRSSVhfQUxMT0NBVE9SPXkKQ09O
RklHX0dFTkVSSUNfSVJRX1JFU0VSVkFUSU9OX01PREU9eQpDT05GSUdfSVJRX0ZPUkNFRF9U
SFJFQURJTkc9eQpDT05GSUdfU1BBUlNFX0lSUT15CiMgZW5kIG9mIElSUSBzdWJzeXN0ZW0K
CkNPTkZJR19DTE9DS1NPVVJDRV9XQVRDSERPRz15CkNPTkZJR19BUkNIX0NMT0NLU09VUkNF
X0lOSVQ9eQpDT05GSUdfQ0xPQ0tTT1VSQ0VfVkFMSURBVEVfTEFTVF9DWUNMRT15CkNPTkZJ
R19HRU5FUklDX1RJTUVfVlNZU0NBTEw9eQpDT05GSUdfR0VORVJJQ19DTE9DS0VWRU5UUz15
CkNPTkZJR19HRU5FUklDX0NMT0NLRVZFTlRTX0JST0FEQ0FTVD15CkNPTkZJR19HRU5FUklD
X0NMT0NLRVZFTlRTX0JST0FEQ0FTVF9JRExFPXkKQ09ORklHX0dFTkVSSUNfQ0xPQ0tFVkVO
VFNfTUlOX0FESlVTVD15CkNPTkZJR19HRU5FUklDX0NNT1NfVVBEQVRFPXkKQ09ORklHX0hB
VkVfUE9TSVhfQ1BVX1RJTUVSU19UQVNLX1dPUks9eQpDT05GSUdfUE9TSVhfQ1BVX1RJTUVS
U19UQVNLX1dPUks9eQpDT05GSUdfVElNRV9LVU5JVF9URVNUPXkKQ09ORklHX0NPTlRFWFRf
VFJBQ0tJTkc9eQpDT05GSUdfQ09OVEVYVF9UUkFDS0lOR19JRExFPXkKCiMKIyBUaW1lcnMg
c3Vic3lzdGVtCiMKQ09ORklHX0haX1BFUklPRElDPXkKIyBDT05GSUdfTk9fSFpfSURMRSBp
cyBub3Qgc2V0CkNPTkZJR19OT19IWj15CiMgQ09ORklHX0hJR0hfUkVTX1RJTUVSUyBpcyBu
b3Qgc2V0CkNPTkZJR19DTE9DS1NPVVJDRV9XQVRDSERPR19NQVhfU0tFV19VUz0xMjUKIyBl
bmQgb2YgVGltZXJzIHN1YnN5c3RlbQoKQ09ORklHX0JQRj15CkNPTkZJR19IQVZFX0VCUEZf
SklUPXkKCiMKIyBCUEYgc3Vic3lzdGVtCiMKQ09ORklHX0JQRl9TWVNDQUxMPXkKQ09ORklH
X0JQRl9KSVQ9eQojIENPTkZJR19CUEZfSklUX0FMV0FZU19PTiBpcyBub3Qgc2V0CkNPTkZJ
R19CUEZfVU5QUklWX0RFRkFVTFRfT0ZGPXkKQ09ORklHX1VTRVJNT0RFX0RSSVZFUj15CkNP
TkZJR19CUEZfUFJFTE9BRD15CiMgQ09ORklHX0JQRl9QUkVMT0FEX1VNRCBpcyBub3Qgc2V0
CiMgZW5kIG9mIEJQRiBzdWJzeXN0ZW0KCkNPTkZJR19QUkVFTVBUX1ZPTFVOVEFSWV9CVUlM
RD15CiMgQ09ORklHX1BSRUVNUFRfTk9ORSBpcyBub3Qgc2V0CkNPTkZJR19QUkVFTVBUX1ZP
TFVOVEFSWT15CiMgQ09ORklHX1BSRUVNUFQgaXMgbm90IHNldAojIENPTkZJR19QUkVFTVBU
X0RZTkFNSUMgaXMgbm90IHNldAojIENPTkZJR19TQ0hFRF9DT1JFIGlzIG5vdCBzZXQKCiMK
IyBDUFUvVGFzayB0aW1lIGFuZCBzdGF0cyBhY2NvdW50aW5nCiMKQ09ORklHX1RJQ0tfQ1BV
X0FDQ09VTlRJTkc9eQpDT05GSUdfSVJRX1RJTUVfQUNDT1VOVElORz15CkNPTkZJR19IQVZF
X1NDSEVEX0FWR19JUlE9eQpDT05GSUdfQlNEX1BST0NFU1NfQUNDVD15CkNPTkZJR19CU0Rf
UFJPQ0VTU19BQ0NUX1YzPXkKQ09ORklHX1RBU0tTVEFUUz15CiMgQ09ORklHX1RBU0tfREVM
QVlfQUNDVCBpcyBub3Qgc2V0CiMgQ09ORklHX1RBU0tfWEFDQ1QgaXMgbm90IHNldApDT05G
SUdfUFNJPXkKIyBDT05GSUdfUFNJX0RFRkFVTFRfRElTQUJMRUQgaXMgbm90IHNldAojIGVu
ZCBvZiBDUFUvVGFzayB0aW1lIGFuZCBzdGF0cyBhY2NvdW50aW5nCgpDT05GSUdfQ1BVX0lT
T0xBVElPTj15CgojCiMgUkNVIFN1YnN5c3RlbQojCkNPTkZJR19UUkVFX1JDVT15CiMgQ09O
RklHX1JDVV9FWFBFUlQgaXMgbm90IHNldApDT05GSUdfVFJFRV9TUkNVPXkKQ09ORklHX1RB
U0tTX1JDVV9HRU5FUklDPXkKQ09ORklHX05FRURfVEFTS1NfUkNVPXkKQ09ORklHX1RBU0tT
X1RSQUNFX1JDVT15CkNPTkZJR19SQ1VfU1RBTExfQ09NTU9OPXkKQ09ORklHX1JDVV9ORUVE
X1NFR0NCTElTVD15CiMgZW5kIG9mIFJDVSBTdWJzeXN0ZW0KCkNPTkZJR19JS0NPTkZJRz15
CkNPTkZJR19JS0NPTkZJR19QUk9DPXkKQ09ORklHX0lLSEVBREVSUz15CkNPTkZJR19MT0df
QlVGX1NISUZUPTE3CkNPTkZJR19MT0dfQ1BVX01BWF9CVUZfU0hJRlQ9MTIKQ09ORklHX0hB
VkVfVU5TVEFCTEVfU0NIRURfQ0xPQ0s9eQoKIwojIFNjaGVkdWxlciBmZWF0dXJlcwojCiMg
ZW5kIG9mIFNjaGVkdWxlciBmZWF0dXJlcwoKQ09ORklHX0FSQ0hfV0FOVF9CQVRDSEVEX1VO
TUFQX1RMQl9GTFVTSD15CkNPTkZJR19DQ19JTVBMSUNJVF9GQUxMVEhST1VHSD0iLVdpbXBs
aWNpdC1mYWxsdGhyb3VnaD01IgpDT05GSUdfR0NDMTBfTk9fQVJSQVlfQk9VTkRTPXkKQ09O
RklHX0NDX05PX0FSUkFZX0JPVU5EUz15CkNPTkZJR19HQ0NfTk9fU1RSSU5HT1BfT1ZFUkZM
T1c9eQpDT05GSUdfQ0NfTk9fU1RSSU5HT1BfT1ZFUkZMT1c9eQpDT05GSUdfU0xBQl9PQkpf
RVhUPXkKQ09ORklHX0NHUk9VUFM9eQpDT05GSUdfUEFHRV9DT1VOVEVSPXkKQ09ORklHX0NH
Uk9VUF9GQVZPUl9EWU5NT0RTPXkKQ09ORklHX01FTUNHPXkKIyBDT05GSUdfTUVNQ0dfVjEg
aXMgbm90IHNldAojIENPTkZJR19CTEtfQ0dST1VQIGlzIG5vdCBzZXQKIyBDT05GSUdfQ0dS
T1VQX1NDSEVEIGlzIG5vdCBzZXQKQ09ORklHX1NDSEVEX01NX0NJRD15CiMgQ09ORklHX0NH
Uk9VUF9QSURTIGlzIG5vdCBzZXQKIyBDT05GSUdfQ0dST1VQX1JETUEgaXMgbm90IHNldApD
T05GSUdfQ0dST1VQX0ZSRUVaRVI9eQojIENPTkZJR19DUFVTRVRTIGlzIG5vdCBzZXQKQ09O
RklHX0NHUk9VUF9ERVZJQ0U9eQojIENPTkZJR19DR1JPVVBfQ1BVQUNDVCBpcyBub3Qgc2V0
CkNPTkZJR19DR1JPVVBfUEVSRj15CiMgQ09ORklHX0NHUk9VUF9CUEYgaXMgbm90IHNldApD
T05GSUdfQ0dST1VQX01JU0M9eQpDT05GSUdfU09DS19DR1JPVVBfREFUQT15CkNPTkZJR19O
QU1FU1BBQ0VTPXkKIyBDT05GSUdfVVRTX05TIGlzIG5vdCBzZXQKIyBDT05GSUdfVElNRV9O
UyBpcyBub3Qgc2V0CkNPTkZJR19JUENfTlM9eQojIENPTkZJR19VU0VSX05TIGlzIG5vdCBz
ZXQKIyBDT05GSUdfUElEX05TIGlzIG5vdCBzZXQKQ09ORklHX05FVF9OUz15CiMgQ09ORklH
X0NIRUNLUE9JTlRfUkVTVE9SRSBpcyBub3Qgc2V0CiMgQ09ORklHX1NDSEVEX0FVVE9HUk9V
UCBpcyBub3Qgc2V0CiMgQ09ORklHX1JFTEFZIGlzIG5vdCBzZXQKIyBDT05GSUdfQkxLX0RF
Vl9JTklUUkQgaXMgbm90IHNldApDT05GSUdfQk9PVF9DT05GSUc9eQpDT05GSUdfQk9PVF9D
T05GSUdfRk9SQ0U9eQpDT05GSUdfQk9PVF9DT05GSUdfRU1CRUQ9eQpDT05GSUdfQk9PVF9D
T05GSUdfRU1CRURfRklMRT0iIgpDT05GSUdfSU5JVFJBTUZTX1BSRVNFUlZFX01USU1FPXkK
Q09ORklHX0NDX09QVElNSVpFX0ZPUl9QRVJGT1JNQU5DRT15CiMgQ09ORklHX0NDX09QVElN
SVpFX0ZPUl9TSVpFIGlzIG5vdCBzZXQKQ09ORklHX0xEX09SUEhBTl9XQVJOPXkKQ09ORklH
X0xEX09SUEhBTl9XQVJOX0xFVkVMPSJlcnJvciIKQ09ORklHX1NZU0NUTD15CkNPTkZJR19I
QVZFX1VJRDE2PXkKQ09ORklHX1NZU0NUTF9FWENFUFRJT05fVFJBQ0U9eQpDT05GSUdfSEFW
RV9QQ1NQS1JfUExBVEZPUk09eQojIENPTkZJR19FWFBFUlQgaXMgbm90IHNldApDT05GSUdf
VUlEMTY9eQpDT05GSUdfTVVMVElVU0VSPXkKQ09ORklHX1NHRVRNQVNLX1NZU0NBTEw9eQpD
T05GSUdfU1lTRlNfU1lTQ0FMTD15CkNPTkZJR19GSEFORExFPXkKQ09ORklHX1BPU0lYX1RJ
TUVSUz15CkNPTkZJR19QUklOVEs9eQpDT05GSUdfQlVHPXkKQ09ORklHX0VMRl9DT1JFPXkK
Q09ORklHX1BDU1BLUl9QTEFURk9STT15CkNPTkZJR19GVVRFWD15CkNPTkZJR19GVVRFWF9Q
ST15CkNPTkZJR19FUE9MTD15CkNPTkZJR19TSUdOQUxGRD15CkNPTkZJR19USU1FUkZEPXkK
Q09ORklHX0VWRU5URkQ9eQpDT05GSUdfU0hNRU09eQpDT05GSUdfQUlPPXkKQ09ORklHX0lP
X1VSSU5HPXkKQ09ORklHX0FEVklTRV9TWVNDQUxMUz15CkNPTkZJR19NRU1CQVJSSUVSPXkK
Q09ORklHX0tDTVA9eQpDT05GSUdfUlNFUT15CkNPTkZJR19DQUNIRVNUQVRfU1lTQ0FMTD15
CkNPTkZJR19LQUxMU1lNUz15CkNPTkZJR19LQUxMU1lNU19TRUxGVEVTVD15CkNPTkZJR19L
QUxMU1lNU19CQVNFX1JFTEFUSVZFPXkKQ09ORklHX0FSQ0hfSEFTX01FTUJBUlJJRVJfU1lO
Q19DT1JFPXkKQ09ORklHX0hBVkVfUEVSRl9FVkVOVFM9eQoKIwojIEtlcm5lbCBQZXJmb3Jt
YW5jZSBFdmVudHMgQW5kIENvdW50ZXJzCiMKQ09ORklHX1BFUkZfRVZFTlRTPXkKIyBlbmQg
b2YgS2VybmVsIFBlcmZvcm1hbmNlIEV2ZW50cyBBbmQgQ291bnRlcnMKCiMgQ09ORklHX1BS
T0ZJTElORyBpcyBub3Qgc2V0CgojCiMgS2V4ZWMgYW5kIGNyYXNoIGZlYXR1cmVzCiMKIyBD
T05GSUdfS0VYRUMgaXMgbm90IHNldAojIGVuZCBvZiBLZXhlYyBhbmQgY3Jhc2ggZmVhdHVy
ZXMKIyBlbmQgb2YgR2VuZXJhbCBzZXR1cAoKIyBDT05GSUdfNjRCSVQgaXMgbm90IHNldApD
T05GSUdfWDg2XzMyPXkKQ09ORklHX1g4Nj15CkNPTkZJR19JTlNUUlVDVElPTl9ERUNPREVS
PXkKQ09ORklHX09VVFBVVF9GT1JNQVQ9ImVsZjMyLWkzODYiCkNPTkZJR19MT0NLREVQX1NV
UFBPUlQ9eQpDT05GSUdfU1RBQ0tUUkFDRV9TVVBQT1JUPXkKQ09ORklHX01NVT15CkNPTkZJ
R19BUkNIX01NQVBfUk5EX0JJVFNfTUlOPTgKQ09ORklHX0FSQ0hfTU1BUF9STkRfQklUU19N
QVg9MTYKQ09ORklHX0FSQ0hfTU1BUF9STkRfQ09NUEFUX0JJVFNfTUlOPTgKQ09ORklHX0FS
Q0hfTU1BUF9STkRfQ09NUEFUX0JJVFNfTUFYPTE2CkNPTkZJR19HRU5FUklDX0lTQV9ETUE9
eQpDT05GSUdfR0VORVJJQ19CVUc9eQpDT05GSUdfQVJDSF9NQVlfSEFWRV9QQ19GREM9eQpD
T05GSUdfR0VORVJJQ19DQUxJQlJBVEVfREVMQVk9eQpDT05GSUdfQVJDSF9IQVNfQ1BVX1JF
TEFYPXkKQ09ORklHX0FSQ0hfSElCRVJOQVRJT05fUE9TU0lCTEU9eQpDT05GSUdfQVJDSF9T
VVNQRU5EX1BPU1NJQkxFPXkKQ09ORklHX0FSQ0hfU1VQUE9SVFNfVVBST0JFUz15CkNPTkZJ
R19GSVhfRUFSTFlDT05fTUVNPXkKQ09ORklHX1BHVEFCTEVfTEVWRUxTPTIKQ09ORklHX0ND
X0hBU19TQU5FX1NUQUNLUFJPVEVDVE9SPXkKCiMKIyBQcm9jZXNzb3IgdHlwZSBhbmQgZmVh
dHVyZXMKIwpDT05GSUdfU01QPXkKIyBDT05GSUdfWDg2X01QUEFSU0UgaXMgbm90IHNldAoj
IENPTkZJR19YODZfQ1BVX1JFU0NUUkwgaXMgbm90IHNldApDT05GSUdfWDg2X0JJR1NNUD15
CiMgQ09ORklHX1g4Nl9FWFRFTkRFRF9QTEFURk9STSBpcyBub3Qgc2V0CiMgQ09ORklHX1g4
Nl9BTURfUExBVEZPUk1fREVWSUNFIGlzIG5vdCBzZXQKQ09ORklHX1g4Nl8zMl9JUklTPXkK
Q09ORklHX1NDSEVEX09NSVRfRlJBTUVfUE9JTlRFUj15CiMgQ09ORklHX0hZUEVSVklTT1Jf
R1VFU1QgaXMgbm90IHNldAojIENPTkZJR19NNDg2U1ggaXMgbm90IHNldAojIENPTkZJR19N
NDg2IGlzIG5vdCBzZXQKQ09ORklHX001ODY9eQojIENPTkZJR19NNTg2VFNDIGlzIG5vdCBz
ZXQKIyBDT05GSUdfTTU4Nk1NWCBpcyBub3Qgc2V0CiMgQ09ORklHX002ODYgaXMgbm90IHNl
dAojIENPTkZJR19NUEVOVElVTUlJIGlzIG5vdCBzZXQKIyBDT05GSUdfTVBFTlRJVU1JSUkg
aXMgbm90IHNldAojIENPTkZJR19NUEVOVElVTU0gaXMgbm90IHNldAojIENPTkZJR19NUEVO
VElVTTQgaXMgbm90IHNldAojIENPTkZJR19NSzYgaXMgbm90IHNldAojIENPTkZJR19NSzcg
aXMgbm90IHNldAojIENPTkZJR19NSzggaXMgbm90IHNldAojIENPTkZJR19NQ1JVU09FIGlz
IG5vdCBzZXQKIyBDT05GSUdfTUVGRklDRU9OIGlzIG5vdCBzZXQKIyBDT05GSUdfTVdJTkNI
SVBDNiBpcyBub3Qgc2V0CiMgQ09ORklHX01XSU5DSElQM0QgaXMgbm90IHNldAojIENPTkZJ
R19NRUxBTiBpcyBub3Qgc2V0CiMgQ09ORklHX01HRU9ERUdYMSBpcyBub3Qgc2V0CiMgQ09O
RklHX01HRU9ERV9MWCBpcyBub3Qgc2V0CiMgQ09ORklHX01DWVJJWElJSSBpcyBub3Qgc2V0
CiMgQ09ORklHX01WSUFDM18yIGlzIG5vdCBzZXQKIyBDT05GSUdfTVZJQUM3IGlzIG5vdCBz
ZXQKIyBDT05GSUdfTUNPUkUyIGlzIG5vdCBzZXQKIyBDT05GSUdfTUFUT00gaXMgbm90IHNl
dApDT05GSUdfWDg2X0dFTkVSSUM9eQpDT05GSUdfWDg2X0lOVEVSTk9ERV9DQUNIRV9TSElG
VD02CkNPTkZJR19YODZfTDFfQ0FDSEVfU0hJRlQ9NgpDT05GSUdfWDg2X0YwMEZfQlVHPXkK
Q09ORklHX1g4Nl9BTElHTk1FTlRfMTY9eQpDT05GSUdfWDg2X0lOVEVMX1VTRVJDT1BZPXkK
Q09ORklHX1g4Nl9NSU5JTVVNX0NQVV9GQU1JTFk9NApDT05GSUdfSUEzMl9GRUFUX0NUTD15
CkNPTkZJR19YODZfVk1YX0ZFQVRVUkVfTkFNRVM9eQpDT05GSUdfQ1BVX1NVUF9JTlRFTD15
CkNPTkZJR19DUFVfU1VQX0NZUklYXzMyPXkKQ09ORklHX0NQVV9TVVBfQU1EPXkKQ09ORklH
X0NQVV9TVVBfSFlHT049eQpDT05GSUdfQ1BVX1NVUF9DRU5UQVVSPXkKQ09ORklHX0NQVV9T
VVBfVFJBTlNNRVRBXzMyPXkKQ09ORklHX0NQVV9TVVBfWkhBT1hJTj15CkNPTkZJR19DUFVf
U1VQX1ZPUlRFWF8zMj15CiMgQ09ORklHX0hQRVRfVElNRVIgaXMgbm90IHNldApDT05GSUdf
RE1JPXkKQ09ORklHX05SX0NQVVNfUkFOR0VfQkVHSU49MgpDT05GSUdfTlJfQ1BVU19SQU5H
RV9FTkQ9NjQKQ09ORklHX05SX0NQVVNfREVGQVVMVD0zMgpDT05GSUdfTlJfQ1BVUz0zMgpD
T05GSUdfU0NIRURfQ0xVU1RFUj15CkNPTkZJR19TQ0hFRF9TTVQ9eQojIENPTkZJR19TQ0hF
RF9NQyBpcyBub3Qgc2V0CkNPTkZJR19YODZfTE9DQUxfQVBJQz15CkNPTkZJR19YODZfSU9f
QVBJQz15CiMgQ09ORklHX1g4Nl9SRVJPVVRFX0ZPUl9CUk9LRU5fQk9PVF9JUlFTIGlzIG5v
dCBzZXQKQ09ORklHX1g4Nl9NQ0U9eQpDT05GSUdfWDg2X01DRUxPR19MRUdBQ1k9eQpDT05G
SUdfWDg2X01DRV9JTlRFTD15CiMgQ09ORklHX1g4Nl9BTkNJRU5UX01DRSBpcyBub3Qgc2V0
CkNPTkZJR19YODZfTUNFX1RIUkVTSE9MRD15CgojCiMgUGVyZm9ybWFuY2UgbW9uaXRvcmlu
ZwojCkNPTkZJR19QRVJGX0VWRU5UU19BTURfUE9XRVI9eQpDT05GSUdfUEVSRl9FVkVOVFNf
QU1EX1VOQ09SRT15CiMgQ09ORklHX1BFUkZfRVZFTlRTX0FNRF9CUlMgaXMgbm90IHNldAoj
IGVuZCBvZiBQZXJmb3JtYW5jZSBtb25pdG9yaW5nCgojIENPTkZJR19YODZfTEVHQUNZX1ZN
ODYgaXMgbm90IHNldApDT05GSUdfWDg2XzE2QklUPXkKQ09ORklHX1g4Nl9FU1BGSVgzMj15
CkNPTkZJR19YODZfSU9QTF9JT1BFUk09eQojIENPTkZJR19UT1NISUJBIGlzIG5vdCBzZXQK
Q09ORklHX1g4Nl9SRUJPT1RGSVhVUFM9eQpDT05GSUdfTUlDUk9DT0RFPXkKQ09ORklHX01J
Q1JPQ09ERV9MQVRFX0xPQURJTkc9eQojIENPTkZJR19NSUNST0NPREVfTEFURV9GT1JDRV9N
SU5SRVYgaXMgbm90IHNldAojIENPTkZJR19YODZfTVNSIGlzIG5vdCBzZXQKIyBDT05GSUdf
WDg2X0NQVUlEIGlzIG5vdCBzZXQKIyBDT05GSUdfTk9ISUdITUVNIGlzIG5vdCBzZXQKQ09O
RklHX0hJR0hNRU00Rz15CkNPTkZJR19QQUdFX09GRlNFVD0weEMwMDAwMDAwCkNPTkZJR19I
SUdITUVNPXkKQ09ORklHX0FSQ0hfRkxBVE1FTV9FTkFCTEU9eQpDT05GSUdfQVJDSF9TUEFS
U0VNRU1fRU5BQkxFPXkKQ09ORklHX0FSQ0hfU0VMRUNUX01FTU9SWV9NT0RFTD15CkNPTkZJ
R19JTExFR0FMX1BPSU5URVJfVkFMVUU9MApDT05GSUdfSElHSFBURT15CiMgQ09ORklHX1g4
Nl9DSEVDS19CSU9TX0NPUlJVUFRJT04gaXMgbm90IHNldApDT05GSUdfTVRSUj15CkNPTkZJ
R19NVFJSX1NBTklUSVpFUj15CkNPTkZJR19NVFJSX1NBTklUSVpFUl9FTkFCTEVfREVGQVVM
VD0wCkNPTkZJR19NVFJSX1NBTklUSVpFUl9TUEFSRV9SRUdfTlJfREVGQVVMVD0xCkNPTkZJ
R19YODZfUEFUPXkKQ09ORklHX0FSQ0hfVVNFU19QR19VTkNBQ0hFRD15CkNPTkZJR19YODZf
VU1JUD15CkNPTkZJR19DQ19IQVNfSUJUPXkKQ09ORklHX1g4Nl9JTlRFTF9UU1hfTU9ERV9P
RkY9eQojIENPTkZJR19YODZfSU5URUxfVFNYX01PREVfT04gaXMgbm90IHNldAojIENPTkZJ
R19YODZfSU5URUxfVFNYX01PREVfQVVUTyBpcyBub3Qgc2V0CkNPTkZJR19FRkk9eQpDT05G
SUdfRUZJX1NUVUI9eQpDT05GSUdfRUZJX0hBTkRPVkVSX1BST1RPQ09MPXkKIyBDT05GSUdf
SFpfMTAwIGlzIG5vdCBzZXQKQ09ORklHX0haXzI1MD15CiMgQ09ORklHX0haXzMwMCBpcyBu
b3Qgc2V0CiMgQ09ORklHX0haXzEwMDAgaXMgbm90IHNldApDT05GSUdfSFo9MjUwCkNPTkZJ
R19BUkNIX1NVUFBPUlRTX0tFWEVDPXkKQ09ORklHX0FSQ0hfU1VQUE9SVFNfS0VYRUNfUFVS
R0FUT1JZPXkKQ09ORklHX0FSQ0hfU1VQUE9SVFNfS0VYRUNfU0lHPXkKQ09ORklHX0FSQ0hf
U1VQUE9SVFNfS0VYRUNfU0lHX0ZPUkNFPXkKQ09ORklHX0FSQ0hfU1VQUE9SVFNfS0VYRUNf
QlpJTUFHRV9WRVJJRllfU0lHPXkKQ09ORklHX0FSQ0hfU1VQUE9SVFNfS0VYRUNfSlVNUD15
CkNPTkZJR19BUkNIX1NVUFBPUlRTX0NSQVNIX0RVTVA9eQpDT05GSUdfQVJDSF9TVVBQT1JU
U19DUkFTSF9IT1RQTFVHPXkKQ09ORklHX1BIWVNJQ0FMX1NUQVJUPTB4MTAwMDAwMApDT05G
SUdfUkVMT0NBVEFCTEU9eQpDT05GSUdfUkFORE9NSVpFX0JBU0U9eQpDT05GSUdfWDg2X05F
RURfUkVMT0NTPXkKQ09ORklHX1BIWVNJQ0FMX0FMSUdOPTB4MjAwMDAwCkNPTkZJR19IT1RQ
TFVHX0NQVT15CkNPTkZJR19DT01QQVRfVkRTTz15CkNPTkZJR19DTURMSU5FX0JPT0w9eQpD
T05GSUdfQ01ETElORT0iIgpDT05GSUdfTU9ESUZZX0xEVF9TWVNDQUxMPXkKQ09ORklHX1NU
UklDVF9TSUdBTFRTVEFDS19TSVpFPXkKIyBlbmQgb2YgUHJvY2Vzc29yIHR5cGUgYW5kIGZl
YXR1cmVzCgpDT05GSUdfQ0NfSEFTX05BTUVEX0FTPXkKQ09ORklHX1VTRV9YODZfU0VHX1NV
UFBPUlQ9eQpDT05GSUdfQ0NfSEFTX1NMUz15CkNPTkZJR19DQ19IQVNfUkVUVVJOX1RIVU5L
PXkKQ09ORklHX0NDX0hBU19FTlRSWV9QQURESU5HPXkKQ09ORklHX0ZVTkNUSU9OX1BBRERJ
TkdfQ0ZJPTExCkNPTkZJR19GVU5DVElPTl9QQURESU5HX0JZVEVTPTE2CkNPTkZJR19DUFVf
TUlUSUdBVElPTlM9eQpDT05GSUdfTUlUSUdBVElPTl9SRVRQT0xJTkU9eQojIENPTkZJR19N
SVRJR0FUSU9OX1JFVEhVTksgaXMgbm90IHNldAojIENPTkZJR19NSVRJR0FUSU9OX0dEU19G
T1JDRSBpcyBub3Qgc2V0CkNPTkZJR19NSVRJR0FUSU9OX1JGRFM9eQojIENPTkZJR19NSVRJ
R0FUSU9OX1NQRUNUUkVfQkhJIGlzIG5vdCBzZXQKCiMKIyBQb3dlciBtYW5hZ2VtZW50IGFu
ZCBBQ1BJIG9wdGlvbnMKIwojIENPTkZJR19TVVNQRU5EIGlzIG5vdCBzZXQKIyBDT05GSUdf
SElCRVJOQVRJT04gaXMgbm90IHNldAojIENPTkZJR19QTSBpcyBub3Qgc2V0CkNPTkZJR19B
UkNIX1NVUFBPUlRTX0FDUEk9eQpDT05GSUdfQUNQST15CkNPTkZJR19BQ1BJX0xFR0FDWV9U
QUJMRVNfTE9PS1VQPXkKQ09ORklHX0FSQ0hfTUlHSFRfSEFWRV9BQ1BJX1BEQz15CkNPTkZJ
R19BQ1BJX1NZU1RFTV9QT1dFUl9TVEFURVNfU1VQUE9SVD15CkNPTkZJR19BQ1BJX1RIRVJN
QUxfTElCPXkKQ09ORklHX0FDUElfREVCVUdHRVI9eQojIENPTkZJR19BQ1BJX1NQQ1JfVEFC
TEUgaXMgbm90IHNldAojIENPTkZJR19BQ1BJX1JFVl9PVkVSUklERV9QT1NTSUJMRSBpcyBu
b3Qgc2V0CiMgQ09ORklHX0FDUElfRUNfREVCVUdGUyBpcyBub3Qgc2V0CiMgQ09ORklHX0FD
UElfQUMgaXMgbm90IHNldApDT05GSUdfQUNQSV9CQVRURVJZPXkKQ09ORklHX0FDUElfQlVU
VE9OPXkKQ09ORklHX0FDUElfVklERU89eQpDT05GSUdfQUNQSV9GQU49eQpDT05GSUdfQUNQ
SV9ET0NLPXkKQ09ORklHX0FDUElfQ1BVX0ZSRVFfUFNTPXkKQ09ORklHX0FDUElfUFJPQ0VT
U09SX0NTVEFURT15CkNPTkZJR19BQ1BJX1BST0NFU1NPUl9JRExFPXkKQ09ORklHX0FDUElf
UFJPQ0VTU09SPXkKQ09ORklHX0FDUElfSVBNST15CkNPTkZJR19BQ1BJX0hPVFBMVUdfQ1BV
PXkKQ09ORklHX0FDUElfUFJPQ0VTU09SX0FHR1JFR0FUT1I9eQpDT05GSUdfQUNQSV9USEVS
TUFMPXkKQ09ORklHX0FDUElfUExBVEZPUk1fUFJPRklMRT15CkNPTkZJR19BUkNIX0hBU19B
Q1BJX1RBQkxFX1VQR1JBREU9eQpDT05GSUdfQUNQSV9ERUJVRz15CkNPTkZJR19BQ1BJX0NP
TlRBSU5FUj15CkNPTkZJR19BQ1BJX1NCUz15CkNPTkZJR19BQ1BJX0hFRD15CkNPTkZJR19B
Q1BJX0JHUlQ9eQpDT05GSUdfSEFWRV9BQ1BJX0FQRUk9eQpDT05GSUdfSEFWRV9BQ1BJX0FQ
RUlfTk1JPXkKQ09ORklHX0FDUElfQVBFST15CiMgQ09ORklHX0FDUElfQVBFSV9HSEVTIGlz
IG5vdCBzZXQKQ09ORklHX0FDUElfQVBFSV9FUlNUX0RFQlVHPXkKIyBDT05GSUdfQUNQSV9E
UFRGIGlzIG5vdCBzZXQKIyBDT05GSUdfQUNQSV9DT05GSUdGUyBpcyBub3Qgc2V0CkNPTkZJ
R19BQ1BJX1BDQz15CiMgQ09ORklHX0FDUElfRkZIIGlzIG5vdCBzZXQKQ09ORklHX1BNSUNf
T1BSRUdJT049eQojIENPTkZJR19CWFRfV0NfUE1JQ19PUFJFR0lPTiBpcyBub3Qgc2V0CkNP
TkZJR19UUFM2ODQ3MF9QTUlDX09QUkVHSU9OPXkKQ09ORklHX0FDUElfVklPVD15CkNPTkZJ
R19YODZfUE1fVElNRVI9eQoKIwojIENQVSBGcmVxdWVuY3kgc2NhbGluZwojCiMgQ09ORklH
X0NQVV9GUkVRIGlzIG5vdCBzZXQKIyBlbmQgb2YgQ1BVIEZyZXF1ZW5jeSBzY2FsaW5nCgoj
CiMgQ1BVIElkbGUKIwpDT05GSUdfQ1BVX0lETEU9eQojIENPTkZJR19DUFVfSURMRV9HT1Zf
TEFEREVSIGlzIG5vdCBzZXQKQ09ORklHX0NQVV9JRExFX0dPVl9NRU5VPXkKIyBDT05GSUdf
Q1BVX0lETEVfR09WX1RFTyBpcyBub3Qgc2V0CiMgZW5kIG9mIENQVSBJZGxlCgpDT05GSUdf
SU5URUxfSURMRT15CiMgZW5kIG9mIFBvd2VyIG1hbmFnZW1lbnQgYW5kIEFDUEkgb3B0aW9u
cwoKIwojIEJ1cyBvcHRpb25zIChQQ0kgZXRjLikKIwpDT05GSUdfSVNBX0RNQV9BUEk9eQpD
T05GSUdfSVNBPXkKQ09ORklHX1NDeDIwMD15CkNPTkZJR19TQ3gyMDBIUl9USU1FUj15CkNP
TkZJR19PTFBDPXkKQ09ORklHX09MUENfWE8xNV9TQ0k9eQojIENPTkZJR19BTElYIGlzIG5v
dCBzZXQKQ09ORklHX05FVDU1MDE9eQpDT05GSUdfR0VPUz15CiMgZW5kIG9mIEJ1cyBvcHRp
b25zIChQQ0kgZXRjLikKCiMKIyBCaW5hcnkgRW11bGF0aW9ucwojCkNPTkZJR19DT01QQVRf
MzI9eQojIGVuZCBvZiBCaW5hcnkgRW11bGF0aW9ucwoKQ09ORklHX0hBVkVfQVRPTUlDX0lP
TUFQPXkKQ09ORklHX1ZJUlRVQUxJWkFUSU9OPXkKQ09ORklHX0FTX0FWWDUxMj15CkNPTkZJ
R19BU19TSEExX05JPXkKQ09ORklHX0FTX1NIQTI1Nl9OST15CkNPTkZJR19BU19UUEFVU0U9
eQpDT05GSUdfQVNfR0ZOST15CkNPTkZJR19BU19WQUVTPXkKQ09ORklHX0FTX1ZQQ0xNVUxR
RFE9eQpDT05GSUdfQVNfV1JVU1M9eQpDT05GSUdfQVJDSF9DT05GSUdVUkVTX0NQVV9NSVRJ
R0FUSU9OUz15CgojCiMgR2VuZXJhbCBhcmNoaXRlY3R1cmUtZGVwZW5kZW50IG9wdGlvbnMK
IwpDT05GSUdfSE9UUExVR19TTVQ9eQpDT05GSUdfSE9UUExVR19DT1JFX1NZTkM9eQpDT05G
SUdfSE9UUExVR19DT1JFX1NZTkNfREVBRD15CkNPTkZJR19IT1RQTFVHX0NPUkVfU1lOQ19G
VUxMPXkKQ09ORklHX0hPVFBMVUdfU1BMSVRfU1RBUlRVUD15CkNPTkZJR19HRU5FUklDX0VO
VFJZPXkKIyBDT05GSUdfS1BST0JFUyBpcyBub3Qgc2V0CiMgQ09ORklHX0pVTVBfTEFCRUwg
aXMgbm90IHNldAojIENPTkZJR19TVEFUSUNfQ0FMTF9TRUxGVEVTVCBpcyBub3Qgc2V0CkNP
TkZJR19IQVZFX0VGRklDSUVOVF9VTkFMSUdORURfQUNDRVNTPXkKQ09ORklHX0FSQ0hfVVNF
X0JVSUxUSU5fQlNXQVA9eQpDT05GSUdfSEFWRV9JT1JFTUFQX1BST1Q9eQpDT05GSUdfSEFW
RV9LUFJPQkVTPXkKQ09ORklHX0hBVkVfS1JFVFBST0JFUz15CkNPTkZJR19IQVZFX09QVFBS
T0JFUz15CkNPTkZJR19IQVZFX0tQUk9CRVNfT05fRlRSQUNFPXkKQ09ORklHX0FSQ0hfQ09S
UkVDVF9TVEFDS1RSQUNFX09OX0tSRVRQUk9CRT15CkNPTkZJR19IQVZFX0ZVTkNUSU9OX0VS
Uk9SX0lOSkVDVElPTj15CkNPTkZJR19IQVZFX05NST15CkNPTkZJR19UUkFDRV9JUlFGTEFH
U19TVVBQT1JUPXkKQ09ORklHX1RSQUNFX0lSUUZMQUdTX05NSV9TVVBQT1JUPXkKQ09ORklH
X0hBVkVfQVJDSF9UUkFDRUhPT0s9eQpDT05GSUdfSEFWRV9ETUFfQ09OVElHVU9VUz15CkNP
TkZJR19HRU5FUklDX1NNUF9JRExFX1RIUkVBRD15CkNPTkZJR19BUkNIX0hBU19GT1JUSUZZ
X1NPVVJDRT15CkNPTkZJR19BUkNIX0hBU19TRVRfTUVNT1JZPXkKQ09ORklHX0FSQ0hfSEFT
X1NFVF9ESVJFQ1RfTUFQPXkKQ09ORklHX0FSQ0hfSEFTX0NQVV9GSU5BTElaRV9JTklUPXkK
Q09ORklHX0hBVkVfQVJDSF9USFJFQURfU1RSVUNUX1dISVRFTElTVD15CkNPTkZJR19BUkNI
X1dBTlRTX0RZTkFNSUNfVEFTS19TVFJVQ1Q9eQpDT05GSUdfQVJDSF9XQU5UU19OT19JTlNU
Uj15CkNPTkZJR19BUkNIXzMyQklUX09GRl9UPXkKQ09ORklHX0hBVkVfQVNNX01PRFZFUlNJ
T05TPXkKQ09ORklHX0hBVkVfUkVHU19BTkRfU1RBQ0tfQUNDRVNTX0FQST15CkNPTkZJR19I
QVZFX1JTRVE9eQpDT05GSUdfSEFWRV9GVU5DVElPTl9BUkdfQUNDRVNTX0FQST15CkNPTkZJ
R19IQVZFX0hXX0JSRUFLUE9JTlQ9eQpDT05GSUdfSEFWRV9NSVhFRF9CUkVBS1BPSU5UU19S
RUdTPXkKQ09ORklHX0hBVkVfVVNFUl9SRVRVUk5fTk9USUZJRVI9eQpDT05GSUdfSEFWRV9Q
RVJGX0VWRU5UU19OTUk9eQpDT05GSUdfSEFWRV9IQVJETE9DS1VQX0RFVEVDVE9SX1BFUkY9
eQpDT05GSUdfSEFWRV9QRVJGX1JFR1M9eQpDT05GSUdfSEFWRV9QRVJGX1VTRVJfU1RBQ0tf
RFVNUD15CkNPTkZJR19IQVZFX0FSQ0hfSlVNUF9MQUJFTD15CkNPTkZJR19IQVZFX0FSQ0hf
SlVNUF9MQUJFTF9SRUxBVElWRT15CkNPTkZJR19NTVVfR0FUSEVSX01FUkdFX1ZNQVM9eQpD
T05GSUdfTU1VX0xBWllfVExCX1JFRkNPVU5UPXkKQ09ORklHX0FSQ0hfSEFWRV9OTUlfU0FG
RV9DTVBYQ0hHPXkKQ09ORklHX0FSQ0hfSEFTX05NSV9TQUZFX1RISVNfQ1BVX09QUz15CkNP
TkZJR19IQVZFX0FMSUdORURfU1RSVUNUX1BBR0U9eQpDT05GSUdfSEFWRV9DTVBYQ0hHX0xP
Q0FMPXkKQ09ORklHX0hBVkVfQ01QWENIR19ET1VCTEU9eQpDT05GSUdfQVJDSF9XQU5UX0lQ
Q19QQVJTRV9WRVJTSU9OPXkKQ09ORklHX0hBVkVfQVJDSF9TRUNDT01QPXkKQ09ORklHX0hB
VkVfQVJDSF9TRUNDT01QX0ZJTFRFUj15CkNPTkZJR19TRUNDT01QPXkKQ09ORklHX1NFQ0NP
TVBfRklMVEVSPXkKIyBDT05GSUdfU0VDQ09NUF9DQUNIRV9ERUJVRyBpcyBub3Qgc2V0CkNP
TkZJR19IQVZFX0FSQ0hfU1RBQ0tMRUFLPXkKQ09ORklHX0hBVkVfU1RBQ0tQUk9URUNUT1I9
eQojIENPTkZJR19TVEFDS1BST1RFQ1RPUiBpcyBub3Qgc2V0CkNPTkZJR19BUkNIX1NVUFBP
UlRTX0xUT19DTEFORz15CkNPTkZJR19BUkNIX1NVUFBPUlRTX0xUT19DTEFOR19USElOPXkK
Q09ORklHX0xUT19OT05FPXkKQ09ORklHX0hBVkVfQVJDSF9XSVRISU5fU1RBQ0tfRlJBTUVT
PXkKQ09ORklHX0hBVkVfSVJRX1RJTUVfQUNDT1VOVElORz15CkNPTkZJR19IQVZFX01PVkVf
UFVEPXkKQ09ORklHX0hBVkVfTU9WRV9QTUQ9eQpDT05GSUdfSEFWRV9BUkNIX1RSQU5TUEFS
RU5UX0hVR0VQQUdFPXkKQ09ORklHX0FSQ0hfV0FOVF9IVUdFX1BNRF9TSEFSRT15CkNPTkZJ
R19BUkNIX1dBTlRfUE1EX01LV1JJVEU9eQpDT05GSUdfSEFWRV9NT0RfQVJDSF9TUEVDSUZJ
Qz15CkNPTkZJR19NT0RVTEVTX1VTRV9FTEZfUkVMPXkKQ09ORklHX0hBVkVfU09GVElSUV9P
Tl9PV05fU1RBQ0s9eQpDT05GSUdfU09GVElSUV9PTl9PV05fU1RBQ0s9eQpDT05GSUdfQVJD
SF9IQVNfRUxGX1JBTkRPTUlaRT15CkNPTkZJR19IQVZFX0FSQ0hfTU1BUF9STkRfQklUUz15
CkNPTkZJR19IQVZFX0VYSVRfVEhSRUFEPXkKQ09ORklHX0FSQ0hfTU1BUF9STkRfQklUUz04
CkNPTkZJR19IQVZFX1BBR0VfU0laRV80S0I9eQpDT05GSUdfUEFHRV9TSVpFXzRLQj15CkNP
TkZJR19QQUdFX1NJWkVfTEVTU19USEFOXzY0S0I9eQpDT05GSUdfUEFHRV9TSVpFX0xFU1Nf
VEhBTl8yNTZLQj15CkNPTkZJR19QQUdFX1NISUZUPTEyCkNPTkZJR19JU0FfQlVTX0FQST15
CkNPTkZJR19DTE9ORV9CQUNLV0FSRFM9eQpDT05GSUdfT0xEX1NJR1NVU1BFTkQzPXkKQ09O
RklHX09MRF9TSUdBQ1RJT049eQpDT05GSUdfQ09NUEFUXzMyQklUX1RJTUU9eQpDT05GSUdf
SEFWRV9BUkNIX1JBTkRPTUlaRV9LU1RBQ0tfT0ZGU0VUPXkKQ09ORklHX1JBTkRPTUlaRV9L
U1RBQ0tfT0ZGU0VUPXkKIyBDT05GSUdfUkFORE9NSVpFX0tTVEFDS19PRkZTRVRfREVGQVVM
VCBpcyBub3Qgc2V0CkNPTkZJR19BUkNIX0hBU19TVFJJQ1RfS0VSTkVMX1JXWD15CkNPTkZJ
R19TVFJJQ1RfS0VSTkVMX1JXWD15CkNPTkZJR19BUkNIX0hBU19TVFJJQ1RfTU9EVUxFX1JX
WD15CkNPTkZJR19IQVZFX0FSQ0hfUFJFTDMyX1JFTE9DQVRJT05TPXkKQ09ORklHX0FSQ0hf
VVNFX01FTVJFTUFQX1BST1Q9eQpDT05GSUdfQVJDSF9IQVNfTUVNX0VOQ1JZUFQ9eQpDT05G
SUdfSEFWRV9TVEFUSUNfQ0FMTD15CkNPTkZJR19IQVZFX1BSRUVNUFRfRFlOQU1JQz15CkNP
TkZJR19IQVZFX1BSRUVNUFRfRFlOQU1JQ19DQUxMPXkKQ09ORklHX0FSQ0hfV0FOVF9MRF9P
UlBIQU5fV0FSTj15CkNPTkZJR19BUkNIX1NVUFBPUlRTX0RFQlVHX1BBR0VBTExPQz15CkNP
TkZJR19BUkNIX1NQTElUX0FSRzY0PXkKQ09ORklHX0FSQ0hfSEFTX1BBUkFOT0lEX0wxRF9G
TFVTSD15CkNPTkZJR19EWU5BTUlDX1NJR0ZSQU1FPXkKQ09ORklHX0FSQ0hfSEFTX0hXX1BU
RV9ZT1VORz15CkNPTkZJR19BUkNIX0hBU19LRVJORUxfRlBVX1NVUFBPUlQ9eQoKIwojIEdD
T1YtYmFzZWQga2VybmVsIHByb2ZpbGluZwojCkNPTkZJR19BUkNIX0hBU19HQ09WX1BST0ZJ
TEVfQUxMPXkKIyBlbmQgb2YgR0NPVi1iYXNlZCBrZXJuZWwgcHJvZmlsaW5nCgpDT05GSUdf
SEFWRV9HQ0NfUExVR0lOUz15CkNPTkZJR19GVU5DVElPTl9BTElHTk1FTlRfNEI9eQpDT05G
SUdfRlVOQ1RJT05fQUxJR05NRU5UXzE2Qj15CkNPTkZJR19GVU5DVElPTl9BTElHTk1FTlQ9
MTYKIyBlbmQgb2YgR2VuZXJhbCBhcmNoaXRlY3R1cmUtZGVwZW5kZW50IG9wdGlvbnMKCkNP
TkZJR19SVF9NVVRFWEVTPXkKIyBDT05GSUdfTU9EVUxFUyBpcyBub3Qgc2V0CkNPTkZJR19C
TE9DSz15CkNPTkZJR19CTE9DS19MRUdBQ1lfQVVUT0xPQUQ9eQpDT05GSUdfQkxLX0RFVl9C
U0dfQ09NTU9OPXkKQ09ORklHX0JMS19ERVZfQlNHTElCPXkKQ09ORklHX0JMS19ERVZfSU5U
RUdSSVRZPXkKIyBDT05GSUdfQkxLX0RFVl9XUklURV9NT1VOVEVEIGlzIG5vdCBzZXQKIyBD
T05GSUdfQkxLX0RFVl9aT05FRCBpcyBub3Qgc2V0CkNPTkZJR19CTEtfV0JUPXkKQ09ORklH
X0JMS19XQlRfTVE9eQojIENPTkZJR19CTEtfU0VEX09QQUwgaXMgbm90IHNldApDT05GSUdf
QkxLX0lOTElORV9FTkNSWVBUSU9OPXkKIyBDT05GSUdfQkxLX0lOTElORV9FTkNSWVBUSU9O
X0ZBTExCQUNLIGlzIG5vdCBzZXQKCiMKIyBQYXJ0aXRpb24gVHlwZXMKIwojIENPTkZJR19Q
QVJUSVRJT05fQURWQU5DRUQgaXMgbm90IHNldApDT05GSUdfTVNET1NfUEFSVElUSU9OPXkK
Q09ORklHX0VGSV9QQVJUSVRJT049eQojIGVuZCBvZiBQYXJ0aXRpb24gVHlwZXMKCkNPTkZJ
R19CTEtfTVFfVklSVElPPXkKQ09ORklHX0JMT0NLX0hPTERFUl9ERVBSRUNBVEVEPXkKCiMK
IyBJTyBTY2hlZHVsZXJzCiMKQ09ORklHX01RX0lPU0NIRURfREVBRExJTkU9eQojIENPTkZJ
R19NUV9JT1NDSEVEX0tZQkVSIGlzIG5vdCBzZXQKIyBDT05GSUdfSU9TQ0hFRF9CRlEgaXMg
bm90IHNldAojIGVuZCBvZiBJTyBTY2hlZHVsZXJzCgpDT05GSUdfQVNOMT15CkNPTkZJR19J
TkxJTkVfU1BJTl9VTkxPQ0tfSVJRPXkKQ09ORklHX0lOTElORV9SRUFEX1VOTE9DSz15CkNP
TkZJR19JTkxJTkVfUkVBRF9VTkxPQ0tfSVJRPXkKQ09ORklHX0lOTElORV9XUklURV9VTkxP
Q0s9eQpDT05GSUdfSU5MSU5FX1dSSVRFX1VOTE9DS19JUlE9eQpDT05GSUdfQVJDSF9TVVBQ
T1JUU19BVE9NSUNfUk1XPXkKQ09ORklHX01VVEVYX1NQSU5fT05fT1dORVI9eQpDT05GSUdf
UldTRU1fU1BJTl9PTl9PV05FUj15CkNPTkZJR19MT0NLX1NQSU5fT05fT1dORVI9eQpDT05G
SUdfQVJDSF9VU0VfUVVFVUVEX1NQSU5MT0NLUz15CkNPTkZJR19RVUVVRURfU1BJTkxPQ0tT
PXkKQ09ORklHX0FSQ0hfVVNFX1FVRVVFRF9SV0xPQ0tTPXkKQ09ORklHX1FVRVVFRF9SV0xP
Q0tTPXkKQ09ORklHX0FSQ0hfSEFTX05PTl9PVkVSTEFQUElOR19BRERSRVNTX1NQQUNFPXkK
Q09ORklHX0FSQ0hfSEFTX1NZTkNfQ09SRV9CRUZPUkVfVVNFUk1PREU9eQpDT05GSUdfQVJD
SF9IQVNfU1lTQ0FMTF9XUkFQUEVSPXkKQ09ORklHX0ZSRUVaRVI9eQoKIwojIEV4ZWN1dGFi
bGUgZmlsZSBmb3JtYXRzCiMKQ09ORklHX0JJTkZNVF9FTEY9eQpDT05GSUdfQklORk1UX0VM
Rl9LVU5JVF9URVNUPXkKQ09ORklHX0VMRkNPUkU9eQpDT05GSUdfQ09SRV9EVU1QX0RFRkFV
TFRfRUxGX0hFQURFUlM9eQpDT05GSUdfQklORk1UX1NDUklQVD15CkNPTkZJR19CSU5GTVRf
TUlTQz15CkNPTkZJR19DT1JFRFVNUD15CkNPTkZJR19FWEVDX0tVTklUX1RFU1Q9eQojIGVu
ZCBvZiBFeGVjdXRhYmxlIGZpbGUgZm9ybWF0cwoKIwojIE1lbW9yeSBNYW5hZ2VtZW50IG9w
dGlvbnMKIwpDT05GSUdfU1dBUD15CiMgQ09ORklHX1pTV0FQIGlzIG5vdCBzZXQKQ09ORklH
X0hBVkVfWlNNQUxMT0M9eQoKIwojIFNsYWIgYWxsb2NhdG9yIG9wdGlvbnMKIwpDT05GSUdf
U0xVQj15CiMgQ09ORklHX1NMQUJfTUVSR0VfREVGQVVMVCBpcyBub3Qgc2V0CiMgQ09ORklH
X1NMQUJfRlJFRUxJU1RfUkFORE9NIGlzIG5vdCBzZXQKIyBDT05GSUdfU0xBQl9GUkVFTElT
VF9IQVJERU5FRCBpcyBub3Qgc2V0CkNPTkZJR19TTEFCX0JVQ0tFVFM9eQojIENPTkZJR19T
TFVCX1NUQVRTIGlzIG5vdCBzZXQKQ09ORklHX1NMVUJfQ1BVX1BBUlRJQUw9eQpDT05GSUdf
UkFORE9NX0tNQUxMT0NfQ0FDSEVTPXkKIyBlbmQgb2YgU2xhYiBhbGxvY2F0b3Igb3B0aW9u
cwoKIyBDT05GSUdfU0hVRkZMRV9QQUdFX0FMTE9DQVRPUiBpcyBub3Qgc2V0CkNPTkZJR19D
T01QQVRfQlJLPXkKQ09ORklHX1NFTEVDVF9NRU1PUllfTU9ERUw9eQojIENPTkZJR19GTEFU
TUVNX01BTlVBTCBpcyBub3Qgc2V0CkNPTkZJR19TUEFSU0VNRU1fTUFOVUFMPXkKQ09ORklH
X1NQQVJTRU1FTT15CkNPTkZJR19TUEFSU0VNRU1fU1RBVElDPXkKQ09ORklHX0hBVkVfR1VQ
X0ZBU1Q9eQpDT05GSUdfTUVNT1JZX0lTT0xBVElPTj15CkNPTkZJR19FWENMVVNJVkVfU1lT
VEVNX1JBTT15CkNPTkZJR19BUkNIX01IUF9NRU1NQVBfT05fTUVNT1JZX0VOQUJMRT15CkNP
TkZJR19TUExJVF9QVExPQ0tfQ1BVUz00CkNPTkZJR19DT01QQUNUSU9OPXkKQ09ORklHX0NP
TVBBQ1RfVU5FVklDVEFCTEVfREVGQVVMVD0xCiMgQ09ORklHX1BBR0VfUkVQT1JUSU5HIGlz
IG5vdCBzZXQKQ09ORklHX01JR1JBVElPTj15CkNPTkZJR19DT05USUdfQUxMT0M9eQpDT05G
SUdfUENQX0JBVENIX1NDQUxFX01BWD01CkNPTkZJR19CT1VOQ0U9eQojIENPTkZJR19LU00g
aXMgbm90IHNldApDT05GSUdfREVGQVVMVF9NTUFQX01JTl9BRERSPTQwOTYKQ09ORklHX0FS
Q0hfV0FOVF9HRU5FUkFMX0hVR0VUTEI9eQpDT05GSUdfVFJBTlNQQVJFTlRfSFVHRVBBR0U9
eQpDT05GSUdfVFJBTlNQQVJFTlRfSFVHRVBBR0VfQUxXQVlTPXkKIyBDT05GSUdfVFJBTlNQ
QVJFTlRfSFVHRVBBR0VfTUFEVklTRSBpcyBub3Qgc2V0CiMgQ09ORklHX1RSQU5TUEFSRU5U
X0hVR0VQQUdFX05FVkVSIGlzIG5vdCBzZXQKQ09ORklHX1JFQURfT05MWV9USFBfRk9SX0ZT
PXkKQ09ORklHX1BHVEFCTEVfSEFTX0hVR0VfTEVBVkVTPXkKQ09ORklHX05FRURfUEVSX0NQ
VV9FTUJFRF9GSVJTVF9DSFVOSz15CkNPTkZJR19ORUVEX1BFUl9DUFVfUEFHRV9GSVJTVF9D
SFVOSz15CkNPTkZJR19IQVZFX1NFVFVQX1BFUl9DUFVfQVJFQT15CkNPTkZJR19DTUE9eQpD
T05GSUdfQ01BX1NZU0ZTPXkKQ09ORklHX0NNQV9BUkVBUz04CkNPTkZJR19HRU5FUklDX0VB
UkxZX0lPUkVNQVA9eQpDT05GSUdfUEFHRV9JRExFX0ZMQUc9eQpDT05GSUdfSURMRV9QQUdF
X1RSQUNLSU5HPXkKQ09ORklHX0FSQ0hfSEFTX0NBQ0hFX0xJTkVfU0laRT15CkNPTkZJR19B
UkNIX0hBU19DVVJSRU5UX1NUQUNLX1BPSU5URVI9eQpDT05GSUdfWk9ORV9ETUE9eQpDT05G
SUdfVk1fRVZFTlRfQ09VTlRFUlM9eQojIENPTkZJR19QRVJDUFVfU1RBVFMgaXMgbm90IHNl
dAoKIwojIEdVUF9URVNUIG5lZWRzIHRvIGhhdmUgREVCVUdfRlMgZW5hYmxlZAojCkNPTkZJ
R19ETUFQT09MX1RFU1Q9eQpDT05GSUdfQVJDSF9IQVNfUFRFX1NQRUNJQUw9eQpDT05GSUdf
S01BUF9MT0NBTD15CkNPTkZJR19NRU1GRF9DUkVBVEU9eQpDT05GSUdfU0VDUkVUTUVNPXkK
IyBDT05GSUdfQU5PTl9WTUFfTkFNRSBpcyBub3Qgc2V0CkNPTkZJR19VU0VSRkFVTFRGRD15
CkNPTkZJR19MT0NLX01NX0FORF9GSU5EX1ZNQT15CkNPTkZJR19FWEVDTUVNPXkKCiMKIyBE
YXRhIEFjY2VzcyBNb25pdG9yaW5nCiMKQ09ORklHX0RBTU9OPXkKQ09ORklHX0RBTU9OX0tV
TklUX1RFU1Q9eQojIENPTkZJR19EQU1PTl9WQUREUiBpcyBub3Qgc2V0CiMgQ09ORklHX0RB
TU9OX1BBRERSIGlzIG5vdCBzZXQKIyBDT05GSUdfREFNT05fU1lTRlMgaXMgbm90IHNldAoj
IGVuZCBvZiBEYXRhIEFjY2VzcyBNb25pdG9yaW5nCiMgZW5kIG9mIE1lbW9yeSBNYW5hZ2Vt
ZW50IG9wdGlvbnMKCkNPTkZJR19ORVQ9eQpDT05GSUdfTkVUX0lOR1JFU1M9eQpDT05GSUdf
TkVUX0VHUkVTUz15CkNPTkZJR19ORVRfWEdSRVNTPXkKQ09ORklHX1NLQl9FWFRFTlNJT05T
PXkKCiMKIyBOZXR3b3JraW5nIG9wdGlvbnMKIwpDT05GSUdfUEFDS0VUPXkKQ09ORklHX1BB
Q0tFVF9ESUFHPXkKIyBDT05GSUdfVU5JWCBpcyBub3Qgc2V0CiMgQ09ORklHX1hEUF9TT0NL
RVRTIGlzIG5vdCBzZXQKQ09ORklHX05FVF9IQU5EU0hBS0VfS1VOSVRfVEVTVD15CiMgQ09O
RklHX0lORVQgaXMgbm90IHNldAojIENPTkZJR19ORVRXT1JLX1NFQ01BUksgaXMgbm90IHNl
dApDT05GSUdfTkVUX1BUUF9DTEFTU0lGWT15CkNPTkZJR19ORVRXT1JLX1BIWV9USU1FU1RB
TVBJTkc9eQojIENPTkZJR19ORVRGSUxURVIgaXMgbm90IHNldApDT05GSUdfQVRNPXkKQ09O
RklHX0FUTV9MQU5FPXkKQ09ORklHX01SUD15CiMgQ09ORklHX0JSSURHRSBpcyBub3Qgc2V0
CkNPTkZJR19WTEFOXzgwMjFRPXkKIyBDT05GSUdfVkxBTl84MDIxUV9HVlJQIGlzIG5vdCBz
ZXQKQ09ORklHX1ZMQU5fODAyMVFfTVZSUD15CkNPTkZJR19MTEM9eQpDT05GSUdfTExDMj15
CkNPTkZJR19BVEFMSz15CiMgQ09ORklHX1gyNSBpcyBub3Qgc2V0CkNPTkZJR19MQVBCPXkK
Q09ORklHX1BIT05FVD15CiMgQ09ORklHX0lFRUU4MDIxNTQgaXMgbm90IHNldApDT05GSUdf
TkVUX1NDSEVEPXkKCiMKIyBRdWV1ZWluZy9TY2hlZHVsaW5nCiMKQ09ORklHX05FVF9TQ0hf
SFRCPXkKQ09ORklHX05FVF9TQ0hfSEZTQz15CiMgQ09ORklHX05FVF9TQ0hfUFJJTyBpcyBu
b3Qgc2V0CiMgQ09ORklHX05FVF9TQ0hfTVVMVElRIGlzIG5vdCBzZXQKIyBDT05GSUdfTkVU
X1NDSF9SRUQgaXMgbm90IHNldAojIENPTkZJR19ORVRfU0NIX1NGQiBpcyBub3Qgc2V0CkNP
TkZJR19ORVRfU0NIX1NGUT15CkNPTkZJR19ORVRfU0NIX1RFUUw9eQpDT05GSUdfTkVUX1ND
SF9UQkY9eQojIENPTkZJR19ORVRfU0NIX0NCUyBpcyBub3Qgc2V0CiMgQ09ORklHX05FVF9T
Q0hfRVRGIGlzIG5vdCBzZXQKQ09ORklHX05FVF9TQ0hfTVFQUklPX0xJQj15CkNPTkZJR19O
RVRfU0NIX1RBUFJJTz15CkNPTkZJR19ORVRfU0NIX0dSRUQ9eQpDT05GSUdfTkVUX1NDSF9O
RVRFTT15CkNPTkZJR19ORVRfU0NIX0RSUj15CkNPTkZJR19ORVRfU0NIX01RUFJJTz15CkNP
TkZJR19ORVRfU0NIX1NLQlBSSU89eQojIENPTkZJR19ORVRfU0NIX0NIT0tFIGlzIG5vdCBz
ZXQKIyBDT05GSUdfTkVUX1NDSF9RRlEgaXMgbm90IHNldApDT05GSUdfTkVUX1NDSF9DT0RF
TD15CiMgQ09ORklHX05FVF9TQ0hfRlFfQ09ERUwgaXMgbm90IHNldApDT05GSUdfTkVUX1ND
SF9DQUtFPXkKQ09ORklHX05FVF9TQ0hfRlE9eQojIENPTkZJR19ORVRfU0NIX0hIRiBpcyBu
b3Qgc2V0CkNPTkZJR19ORVRfU0NIX1BJRT15CkNPTkZJR19ORVRfU0NIX0ZRX1BJRT15CiMg
Q09ORklHX05FVF9TQ0hfSU5HUkVTUyBpcyBub3Qgc2V0CkNPTkZJR19ORVRfU0NIX1BMVUc9
eQpDT05GSUdfTkVUX1NDSF9FVFM9eQpDT05GSUdfTkVUX1NDSF9ERUZBVUxUPXkKIyBDT05G
SUdfREVGQVVMVF9GUSBpcyBub3Qgc2V0CiMgQ09ORklHX0RFRkFVTFRfQ09ERUwgaXMgbm90
IHNldAojIENPTkZJR19ERUZBVUxUX0ZRX1BJRSBpcyBub3Qgc2V0CiMgQ09ORklHX0RFRkFV
TFRfU0ZRIGlzIG5vdCBzZXQKQ09ORklHX0RFRkFVTFRfUEZJRk9fRkFTVD15CkNPTkZJR19E
RUZBVUxUX05FVF9TQ0g9InBmaWZvX2Zhc3QiCgojCiMgQ2xhc3NpZmljYXRpb24KIwpDT05G
SUdfTkVUX0NMUz15CkNPTkZJR19ORVRfQ0xTX0JBU0lDPXkKQ09ORklHX05FVF9DTFNfRlc9
eQpDT05GSUdfTkVUX0NMU19VMzI9eQpDT05GSUdfQ0xTX1UzMl9QRVJGPXkKQ09ORklHX0NM
U19VMzJfTUFSSz15CiMgQ09ORklHX05FVF9DTFNfRkxPVyBpcyBub3Qgc2V0CiMgQ09ORklH
X05FVF9DTFNfQ0dST1VQIGlzIG5vdCBzZXQKIyBDT05GSUdfTkVUX0NMU19CUEYgaXMgbm90
IHNldApDT05GSUdfTkVUX0NMU19GTE9XRVI9eQojIENPTkZJR19ORVRfQ0xTX01BVENIQUxM
IGlzIG5vdCBzZXQKQ09ORklHX05FVF9FTUFUQ0g9eQpDT05GSUdfTkVUX0VNQVRDSF9TVEFD
Sz0zMgojIENPTkZJR19ORVRfRU1BVENIX0NNUCBpcyBub3Qgc2V0CkNPTkZJR19ORVRfRU1B
VENIX05CWVRFPXkKIyBDT05GSUdfTkVUX0VNQVRDSF9VMzIgaXMgbm90IHNldApDT05GSUdf
TkVUX0VNQVRDSF9NRVRBPXkKQ09ORklHX05FVF9FTUFUQ0hfVEVYVD15CkNPTkZJR19ORVRf
RU1BVENIX0NBTklEPXkKQ09ORklHX05FVF9DTFNfQUNUPXkKIyBDT05GSUdfTkVUX0FDVF9Q
T0xJQ0UgaXMgbm90IHNldApDT05GSUdfTkVUX0FDVF9HQUNUPXkKIyBDT05GSUdfR0FDVF9Q
Uk9CIGlzIG5vdCBzZXQKIyBDT05GSUdfTkVUX0FDVF9NSVJSRUQgaXMgbm90IHNldAojIENP
TkZJR19ORVRfQUNUX1NBTVBMRSBpcyBub3Qgc2V0CkNPTkZJR19ORVRfQUNUX05BVD15CiMg
Q09ORklHX05FVF9BQ1RfUEVESVQgaXMgbm90IHNldApDT05GSUdfTkVUX0FDVF9TSU1QPXkK
Q09ORklHX05FVF9BQ1RfU0tCRURJVD15CkNPTkZJR19ORVRfQUNUX01QTFM9eQpDT05GSUdf
TkVUX0FDVF9WTEFOPXkKQ09ORklHX05FVF9BQ1RfQlBGPXkKQ09ORklHX05FVF9BQ1RfU0tC
TU9EPXkKQ09ORklHX05FVF9BQ1RfSUZFPXkKQ09ORklHX05FVF9BQ1RfVFVOTkVMX0tFWT15
CkNPTkZJR19ORVRfQUNUX0dBVEU9eQpDT05GSUdfTkVUX0lGRV9TS0JNQVJLPXkKIyBDT05G
SUdfTkVUX0lGRV9TS0JQUklPIGlzIG5vdCBzZXQKQ09ORklHX05FVF9JRkVfU0tCVENJTkRF
WD15CkNPTkZJR19ORVRfVENfU0tCX0VYVD15CkNPTkZJR19ORVRfU0NIX0ZJRk89eQpDT05G
SUdfRENCPXkKIyBDT05GSUdfRE5TX1JFU09MVkVSIGlzIG5vdCBzZXQKQ09ORklHX0JBVE1B
Tl9BRFY9eQojIENPTkZJR19CQVRNQU5fQURWX0JBVE1BTl9WIGlzIG5vdCBzZXQKQ09ORklH
X0JBVE1BTl9BRFZfTkM9eQpDT05GSUdfQkFUTUFOX0FEVl9ERUJVRz15CiMgQ09ORklHX1ZT
T0NLRVRTIGlzIG5vdCBzZXQKQ09ORklHX05FVExJTktfRElBRz15CiMgQ09ORklHX01QTFMg
aXMgbm90IHNldApDT05GSUdfTkVUX05TSD15CkNPTkZJR19IU1I9eQojIENPTkZJR19RUlRS
IGlzIG5vdCBzZXQKIyBDT05GSUdfUENQVV9ERVZfUkVGQ05UIGlzIG5vdCBzZXQKQ09ORklH
X01BWF9TS0JfRlJBR1M9MTcKQ09ORklHX1JQUz15CkNPTkZJR19SRlNfQUNDRUw9eQpDT05G
SUdfU09DS19SWF9RVUVVRV9NQVBQSU5HPXkKQ09ORklHX1hQUz15CkNPTkZJR19DR1JPVVBf
TkVUX1BSSU89eQojIENPTkZJR19DR1JPVVBfTkVUX0NMQVNTSUQgaXMgbm90IHNldApDT05G
SUdfTkVUX1JYX0JVU1lfUE9MTD15CkNPTkZJR19CUUw9eQpDT05GSUdfTkVUX0ZMT1dfTElN
SVQ9eQoKIwojIE5ldHdvcmsgdGVzdGluZwojCiMgZW5kIG9mIE5ldHdvcmsgdGVzdGluZwoj
IGVuZCBvZiBOZXR3b3JraW5nIG9wdGlvbnMKCiMgQ09ORklHX0hBTVJBRElPIGlzIG5vdCBz
ZXQKQ09ORklHX0NBTj15CiMgQ09ORklHX0NBTl9SQVcgaXMgbm90IHNldApDT05GSUdfQ0FO
X0JDTT15CkNPTkZJR19DQU5fR1c9eQpDT05GSUdfQ0FOX0oxOTM5PXkKQ09ORklHX0NBTl9J
U09UUD15CiMgQ09ORklHX0JUIGlzIG5vdCBzZXQKQ09ORklHX01DVFA9eQpDT05GSUdfTUNU
UF9URVNUPXkKQ09ORklHX01DVFBfRkxPV1M9eQojIENPTkZJR19XSVJFTEVTUyBpcyBub3Qg
c2V0CiMgQ09ORklHX1JGS0lMTCBpcyBub3Qgc2V0CkNPTkZJR19ORVRfOVA9eQojIENPTkZJ
R19ORVRfOVBfRkQgaXMgbm90IHNldApDT05GSUdfTkVUXzlQX1ZJUlRJTz15CkNPTkZJR19O
RVRfOVBfREVCVUc9eQpDT05GSUdfQ0FJRj15CkNPTkZJR19DQUlGX0RFQlVHPXkKQ09ORklH
X0NBSUZfTkVUREVWPXkKQ09ORklHX0NBSUZfVVNCPXkKIyBDT05GSUdfTkZDIGlzIG5vdCBz
ZXQKQ09ORklHX1BTQU1QTEU9eQpDT05GSUdfTkVUX0lGRT15CiMgQ09ORklHX0xXVFVOTkVM
IGlzIG5vdCBzZXQKQ09ORklHX0dST19DRUxMUz15CkNPTkZJR19ORVRfU09DS19NU0c9eQpD
T05GSUdfTkVUX0RFVkxJTks9eQpDT05GSUdfUEFHRV9QT09MPXkKQ09ORklHX1BBR0VfUE9P
TF9TVEFUUz15CkNPTkZJR19GQUlMT1ZFUj15CiMgQ09ORklHX0VUSFRPT0xfTkVUTElOSyBp
cyBub3Qgc2V0CkNPTkZJR19ORVRERVZfQUREUl9MSVNUX1RFU1Q9eQpDT05GSUdfTkVUX1RF
U1Q9eQoKIwojIERldmljZSBEcml2ZXJzCiMKQ09ORklHX0hBVkVfRUlTQT15CkNPTkZJR19F
SVNBPXkKIyBDT05GSUdfRUlTQV9WTEJfUFJJTUlORyBpcyBub3Qgc2V0CkNPTkZJR19FSVNB
X1ZJUlRVQUxfUk9PVD15CiMgQ09ORklHX0VJU0FfTkFNRVMgaXMgbm90IHNldApDT05GSUdf
SEFWRV9QQ0k9eQpDT05GSUdfR0VORVJJQ19QQ0lfSU9NQVA9eQojIENPTkZJR19QQ0kgaXMg
bm90IHNldAojIENPTkZJR19QQ0NBUkQgaXMgbm90IHNldAoKIwojIEdlbmVyaWMgRHJpdmVy
IE9wdGlvbnMKIwpDT05GSUdfQVVYSUxJQVJZX0JVUz15CiMgQ09ORklHX1VFVkVOVF9IRUxQ
RVIgaXMgbm90IHNldAojIENPTkZJR19ERVZUTVBGUyBpcyBub3Qgc2V0CkNPTkZJR19TVEFO
REFMT05FPXkKQ09ORklHX1BSRVZFTlRfRklSTVdBUkVfQlVJTEQ9eQoKIwojIEZpcm13YXJl
IGxvYWRlcgojCkNPTkZJR19GV19MT0FERVI9eQojIENPTkZJR19GV19MT0FERVJfREVCVUcg
aXMgbm90IHNldApDT05GSUdfRldfTE9BREVSX1BBR0VEX0JVRj15CkNPTkZJR19GV19MT0FE
RVJfU1lTRlM9eQpDT05GSUdfRVhUUkFfRklSTVdBUkU9IiIKQ09ORklHX0ZXX0xPQURFUl9V
U0VSX0hFTFBFUj15CkNPTkZJR19GV19MT0FERVJfVVNFUl9IRUxQRVJfRkFMTEJBQ0s9eQpD
T05GSUdfRldfTE9BREVSX0NPTVBSRVNTPXkKIyBDT05GSUdfRldfTE9BREVSX0NPTVBSRVNT
X1haIGlzIG5vdCBzZXQKIyBDT05GSUdfRldfTE9BREVSX0NPTVBSRVNTX1pTVEQgaXMgbm90
IHNldApDT05GSUdfRldfVVBMT0FEPXkKIyBlbmQgb2YgRmlybXdhcmUgbG9hZGVyCgpDT05G
SUdfQUxMT1dfREVWX0NPUkVEVU1QPXkKQ09ORklHX1BNX1FPU19LVU5JVF9URVNUPXkKQ09O
RklHX0RSSVZFUl9QRV9LVU5JVF9URVNUPXkKQ09ORklHX0dFTkVSSUNfQ1BVX0RFVklDRVM9
eQpDT05GSUdfR0VORVJJQ19DUFVfQVVUT1BST0JFPXkKQ09ORklHX0dFTkVSSUNfQ1BVX1ZV
TE5FUkFCSUxJVElFUz15CkNPTkZJR19TT0NfQlVTPXkKQ09ORklHX1JFR01BUD15CkNPTkZJ
R19SRUdNQVBfS1VOSVQ9eQpDT05GSUdfUkVHTUFQX0JVSUxEPXkKQ09ORklHX1JFR01BUF9J
MkM9eQpDT05GSUdfUkVHTUFQX1cxPXkKQ09ORklHX1JFR01BUF9NTUlPPXkKQ09ORklHX1JF
R01BUF9JUlE9eQpDT05GSUdfUkVHTUFQX1JBTT15CkNPTkZJR19SRUdNQVBfU09VTkRXSVJF
PXkKQ09ORklHX1JFR01BUF9JM0M9eQpDT05GSUdfRE1BX1NIQVJFRF9CVUZGRVI9eQojIENP
TkZJR19ETUFfRkVOQ0VfVFJBQ0UgaXMgbm90IHNldApDT05GSUdfRldfREVWTElOS19TWU5D
X1NUQVRFX1RJTUVPVVQ9eQojIGVuZCBvZiBHZW5lcmljIERyaXZlciBPcHRpb25zCgojCiMg
QnVzIGRldmljZXMKIwojIENPTkZJR19NSElfQlVTIGlzIG5vdCBzZXQKQ09ORklHX01ISV9C
VVNfRVA9eQojIGVuZCBvZiBCdXMgZGV2aWNlcwoKIwojIENhY2hlIERyaXZlcnMKIwojIGVu
ZCBvZiBDYWNoZSBEcml2ZXJzCgpDT05GSUdfQ09OTkVDVE9SPXkKIyBDT05GSUdfUFJPQ19F
VkVOVFMgaXMgbm90IHNldAoKIwojIEZpcm13YXJlIERyaXZlcnMKIwoKIwojIEFSTSBTeXN0
ZW0gQ29udHJvbCBhbmQgTWFuYWdlbWVudCBJbnRlcmZhY2UgUHJvdG9jb2wKIwojIGVuZCBv
ZiBBUk0gU3lzdGVtIENvbnRyb2wgYW5kIE1hbmFnZW1lbnQgSW50ZXJmYWNlIFByb3RvY29s
CgojIENPTkZJR19FREQgaXMgbm90IHNldApDT05GSUdfRklSTVdBUkVfTUVNTUFQPXkKQ09O
RklHX0RNSUlEPXkKIyBDT05GSUdfRE1JX1NZU0ZTIGlzIG5vdCBzZXQKQ09ORklHX0RNSV9T
Q0FOX01BQ0hJTkVfTk9OX0VGSV9GQUxMQkFDSz15CkNPTkZJR19GV19DRkdfU1lTRlM9eQpD
T05GSUdfRldfQ0ZHX1NZU0ZTX0NNRExJTkU9eQojIENPTkZJR19TWVNGQl9TSU1QTEVGQiBp
cyBub3Qgc2V0CkNPTkZJR19HT09HTEVfRklSTVdBUkU9eQpDT05GSUdfR09PR0xFX1NNST15
CiMgQ09ORklHX0dPT0dMRV9DT1JFQk9PVF9UQUJMRSBpcyBub3Qgc2V0CkNPTkZJR19HT09H
TEVfTUVNQ09OU09MRT15CkNPTkZJR19HT09HTEVfTUVNQ09OU09MRV9YODZfTEVHQUNZPXkK
CiMKIyBFRkkgKEV4dGVuc2libGUgRmlybXdhcmUgSW50ZXJmYWNlKSBTdXBwb3J0CiMKQ09O
RklHX0VGSV9FU1JUPXkKIyBDT05GSUdfRUZJX1ZBUlNfUFNUT1JFIGlzIG5vdCBzZXQKQ09O
RklHX0VGSV9EWEVfTUVNX0FUVFJJQlVURVM9eQpDT05GSUdfRUZJX1JVTlRJTUVfV1JBUFBF
UlM9eQpDT05GSUdfRUZJX0JPT1RMT0FERVJfQ09OVFJPTD15CkNPTkZJR19FRklfQ0FQU1VM
RV9MT0FERVI9eQpDT05GSUdfRUZJX0NBUFNVTEVfUVVJUktfUVVBUktfQ1NIPXkKQ09ORklH
X0VGSV9URVNUPXkKQ09ORklHX0VGSV9ERVZfUEFUSF9QQVJTRVI9eQpDT05GSUdfQVBQTEVf
UFJPUEVSVElFUz15CkNPTkZJR19SRVNFVF9BVFRBQ0tfTUlUSUdBVElPTj15CiMgQ09ORklH
X0VGSV9SQ0kyX1RBQkxFIGlzIG5vdCBzZXQKQ09ORklHX0VGSV9ESVNBQkxFX1BDSV9ETUE9
eQpDT05GSUdfRUZJX0VBUkxZQ09OPXkKQ09ORklHX0VGSV9DVVNUT01fU1NEVF9PVkVSTEFZ
Uz15CkNPTkZJR19FRklfRElTQUJMRV9SVU5USU1FPXkKIyBDT05GSUdfRUZJX0NPQ09fU0VD
UkVUIGlzIG5vdCBzZXQKIyBlbmQgb2YgRUZJIChFeHRlbnNpYmxlIEZpcm13YXJlIEludGVy
ZmFjZSkgU3VwcG9ydAoKQ09ORklHX1VFRklfQ1BFUj15CkNPTkZJR19VRUZJX0NQRVJfWDg2
PXkKCiMKIyBRdWFsY29tbSBmaXJtd2FyZSBkcml2ZXJzCiMKIyBDT05GSUdfUUNPTV9UWk1F
TV9NT0RFX0dFTkVSSUMgaXMgbm90IHNldApDT05GSUdfUUNPTV9UWk1FTV9NT0RFX1NITUJS
SURHRT15CiMgZW5kIG9mIFF1YWxjb21tIGZpcm13YXJlIGRyaXZlcnMKCiMKIyBUZWdyYSBm
aXJtd2FyZSBkcml2ZXIKIwojIGVuZCBvZiBUZWdyYSBmaXJtd2FyZSBkcml2ZXIKIyBlbmQg
b2YgRmlybXdhcmUgRHJpdmVycwoKQ09ORklHX0dOU1M9eQpDT05GSUdfTVREPXkKCiMKIyBQ
YXJ0aXRpb24gcGFyc2VycwojCkNPTkZJR19NVERfQ01ETElORV9QQVJUUz15CkNPTkZJR19N
VERfT0ZfUEFSVFM9eQojIENPTkZJR19NVERfUkVEQk9PVF9QQVJUUyBpcyBub3Qgc2V0CiMg
ZW5kIG9mIFBhcnRpdGlvbiBwYXJzZXJzCgojCiMgVXNlciBNb2R1bGVzIEFuZCBUcmFuc2xh
dGlvbiBMYXllcnMKIwpDT05GSUdfTVREX0JMS0RFVlM9eQojIENPTkZJR19NVERfQkxPQ0sg
aXMgbm90IHNldAojIENPTkZJR19NVERfQkxPQ0tfUk8gaXMgbm90IHNldAojIENPTkZJR19G
VEwgaXMgbm90IHNldApDT05GSUdfTkZUTD15CkNPTkZJR19ORlRMX1JXPXkKIyBDT05GSUdf
SU5GVEwgaXMgbm90IHNldAojIENPTkZJR19SRkRfRlRMIGlzIG5vdCBzZXQKQ09ORklHX1NT
RkRDPXkKIyBDT05GSUdfU01fRlRMIGlzIG5vdCBzZXQKQ09ORklHX01URF9PT1BTPXkKQ09O
RklHX01URF9TV0FQPXkKQ09ORklHX01URF9QQVJUSVRJT05FRF9NQVNURVI9eQoKIwojIFJB
TS9ST00vRmxhc2ggY2hpcCBkcml2ZXJzCiMKQ09ORklHX01URF9DRkk9eQpDT05GSUdfTVRE
X0pFREVDUFJPQkU9eQpDT05GSUdfTVREX0dFTl9QUk9CRT15CiMgQ09ORklHX01URF9DRklf
QURWX09QVElPTlMgaXMgbm90IHNldApDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzE9eQpD
T05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzI9eQpDT05GSUdfTVREX01BUF9CQU5LX1dJRFRI
XzQ9eQpDT05GSUdfTVREX0NGSV9JMT15CkNPTkZJR19NVERfQ0ZJX0kyPXkKIyBDT05GSUdf
TVREX0NGSV9JTlRFTEVYVCBpcyBub3Qgc2V0CkNPTkZJR19NVERfQ0ZJX0FNRFNURD15CkNP
TkZJR19NVERfQ0ZJX1NUQUE9eQpDT05GSUdfTVREX0NGSV9VVElMPXkKQ09ORklHX01URF9S
QU09eQpDT05GSUdfTVREX1JPTT15CiMgQ09ORklHX01URF9BQlNFTlQgaXMgbm90IHNldAoj
IGVuZCBvZiBSQU0vUk9NL0ZsYXNoIGNoaXAgZHJpdmVycwoKIwojIE1hcHBpbmcgZHJpdmVy
cyBmb3IgY2hpcCBhY2Nlc3MKIwpDT05GSUdfTVREX0NPTVBMRVhfTUFQUElOR1M9eQpDT05G
SUdfTVREX1BIWVNNQVA9eQojIENPTkZJR19NVERfUEhZU01BUF9DT01QQVQgaXMgbm90IHNl
dApDT05GSUdfTVREX1BIWVNNQVBfT0Y9eQojIENPTkZJR19NVERfUEhZU01BUF9WRVJTQVRJ
TEUgaXMgbm90IHNldApDT05GSUdfTVREX1BIWVNNQVBfR0VNSU5JPXkKIyBDT05GSUdfTVRE
X1BIWVNNQVBfR1BJT19BRERSIGlzIG5vdCBzZXQKIyBDT05GSUdfTVREX1NDeDIwMF9ET0NG
TEFTSCBpcyBub3Qgc2V0CiMgQ09ORklHX01URF9BTUQ3NlhST00gaXMgbm90IHNldApDT05G
SUdfTVREX0lDSFhST009eQpDT05GSUdfTVREX05FVHRlbD15CkNPTkZJR19NVERfTDQ0MEdY
PXkKIyBDT05GSUdfTVREX1BMQVRSQU0gaXMgbm90IHNldAojIGVuZCBvZiBNYXBwaW5nIGRy
aXZlcnMgZm9yIGNoaXAgYWNjZXNzCgojCiMgU2VsZi1jb250YWluZWQgTVREIGRldmljZSBk
cml2ZXJzCiMKQ09ORklHX01URF9TTFJBTT15CkNPTkZJR19NVERfUEhSQU09eQpDT05GSUdf
TVREX01URFJBTT15CkNPTkZJR19NVERSQU1fVE9UQUxfU0laRT00MDk2CkNPTkZJR19NVERS
QU1fRVJBU0VfU0laRT0xMjgKQ09ORklHX01URF9CTE9DSzJNVEQ9eQoKIwojIERpc2stT24t
Q2hpcCBEZXZpY2UgRHJpdmVycwojCkNPTkZJR19NVERfRE9DRzM9eQpDT05GSUdfQkNIX0NP
TlNUX009MTQKQ09ORklHX0JDSF9DT05TVF9UPTQKIyBlbmQgb2YgU2VsZi1jb250YWluZWQg
TVREIGRldmljZSBkcml2ZXJzCgojCiMgTkFORAojCkNPTkZJR19NVERfTkFORF9DT1JFPXkK
Q09ORklHX01URF9PTkVOQU5EPXkKIyBDT05GSUdfTVREX09ORU5BTkRfVkVSSUZZX1dSSVRF
IGlzIG5vdCBzZXQKQ09ORklHX01URF9PTkVOQU5EX0dFTkVSSUM9eQpDT05GSUdfTVREX09O
RU5BTkRfT1RQPXkKQ09ORklHX01URF9PTkVOQU5EXzJYX1BST0dSQU09eQojIENPTkZJR19N
VERfUkFXX05BTkQgaXMgbm90IHNldAoKIwojIEVDQyBlbmdpbmUgc3VwcG9ydAojCkNPTkZJ
R19NVERfTkFORF9FQ0M9eQpDT05GSUdfTVREX05BTkRfRUNDX1NXX0hBTU1JTkc9eQojIENP
TkZJR19NVERfTkFORF9FQ0NfU1dfSEFNTUlOR19TTUMgaXMgbm90IHNldAojIENPTkZJR19N
VERfTkFORF9FQ0NfU1dfQkNIIGlzIG5vdCBzZXQKQ09ORklHX01URF9OQU5EX0VDQ19NWElD
PXkKIyBlbmQgb2YgRUNDIGVuZ2luZSBzdXBwb3J0CiMgZW5kIG9mIE5BTkQKCiMKIyBMUERE
UiAmIExQRERSMiBQQ00gbWVtb3J5IGRyaXZlcnMKIwojIENPTkZJR19NVERfTFBERFIgaXMg
bm90IHNldAojIGVuZCBvZiBMUEREUiAmIExQRERSMiBQQ00gbWVtb3J5IGRyaXZlcnMKCiMg
Q09ORklHX01URF9VQkkgaXMgbm90IHNldApDT05GSUdfTVREX0hZUEVSQlVTPXkKQ09ORklH
X0RUQz15CkNPTkZJR19PRj15CiMgQ09ORklHX09GX1VOSVRURVNUIGlzIG5vdCBzZXQKQ09O
RklHX09GX0tVTklUX1RFU1Q9eQpDT05GSUdfT0ZfRkxBVFRSRUU9eQpDT05GSUdfT0ZfRUFS
TFlfRkxBVFRSRUU9eQpDT05GSUdfT0ZfUFJPTVRSRUU9eQpDT05GSUdfT0ZfS09CSj15CkNP
TkZJR19PRl9BRERSRVNTPXkKQ09ORklHX09GX0lSUT15CkNPTkZJR19PRl9SRVNFUlZFRF9N
RU09eQojIENPTkZJR19PRl9PVkVSTEFZIGlzIG5vdCBzZXQKQ09ORklHX0FSQ0hfTUlHSFRf
SEFWRV9QQ19QQVJQT1JUPXkKQ09ORklHX1BBUlBPUlQ9eQojIENPTkZJR19QQVJQT1JUX1BD
IGlzIG5vdCBzZXQKQ09ORklHX1BBUlBPUlRfMTI4ND15CkNPTkZJR19QTlA9eQpDT05GSUdf
UE5QX0RFQlVHX01FU1NBR0VTPXkKCiMKIyBQcm90b2NvbHMKIwpDT05GSUdfSVNBUE5QPXkK
Q09ORklHX1BOUEJJT1M9eQpDT05GSUdfUE5QQklPU19QUk9DX0ZTPXkKQ09ORklHX1BOUEFD
UEk9eQojIENPTkZJR19CTEtfREVWIGlzIG5vdCBzZXQKCiMKIyBOVk1FIFN1cHBvcnQKIwpD
T05GSUdfTlZNRV9BVVRIPXkKQ09ORklHX05WTUVfQ09SRT15CkNPTkZJR19OVk1FX01VTFRJ
UEFUSD15CiMgQ09ORklHX05WTUVfVkVSQk9TRV9FUlJPUlMgaXMgbm90IHNldApDT05GSUdf
TlZNRV9IV01PTj15CkNPTkZJR19OVk1FX0ZBQlJJQ1M9eQpDT05GSUdfTlZNRV9GQz15CkNP
TkZJR19OVk1FX0hPU1RfQVVUSD15CkNPTkZJR19OVk1FX1RBUkdFVD15CiMgQ09ORklHX05W
TUVfVEFSR0VUX1BBU1NUSFJVIGlzIG5vdCBzZXQKQ09ORklHX05WTUVfVEFSR0VUX0xPT1A9
eQpDT05GSUdfTlZNRV9UQVJHRVRfRkM9eQpDT05GSUdfTlZNRV9UQVJHRVRfRkNMT09QPXkK
Q09ORklHX05WTUVfVEFSR0VUX0FVVEg9eQojIGVuZCBvZiBOVk1FIFN1cHBvcnQKCiMKIyBN
aXNjIGRldmljZXMKIwpDT05GSUdfU0VOU09SU19MSVMzTFYwMkQ9eQpDT05GSUdfQUQ1MjVY
X0RQT1Q9eQojIENPTkZJR19BRDUyNVhfRFBPVF9JMkMgaXMgbm90IHNldApDT05GSUdfRFVN
TVlfSVJRPXkKIyBDT05GSUdfSUNTOTMyUzQwMSBpcyBub3Qgc2V0CiMgQ09ORklHX0VOQ0xP
U1VSRV9TRVJWSUNFUyBpcyBub3Qgc2V0CkNPTkZJR19BUERTOTgwMkFMUz15CkNPTkZJR19J
U0wyOTAwMz15CkNPTkZJR19JU0wyOTAyMD15CkNPTkZJR19TRU5TT1JTX1RTTDI1NTA9eQoj
IENPTkZJR19TRU5TT1JTX0JIMTc3MCBpcyBub3Qgc2V0CkNPTkZJR19TRU5TT1JTX0FQRFM5
OTBYPXkKIyBDT05GSUdfSE1DNjM1MiBpcyBub3Qgc2V0CkNPTkZJR19EUzE2ODI9eQojIENP
TkZJR19TUkFNIGlzIG5vdCBzZXQKQ09ORklHX1hJTElOWF9TREZFQz15CiMgQ09ORklHX09Q
RU5fRElDRSBpcyBub3Qgc2V0CkNPTkZJR19WQ1BVX1NUQUxMX0RFVEVDVE9SPXkKQ09ORklH
X1RQUzY1OTRfRVNNPXkKQ09ORklHX1RQUzY1OTRfUEZTTT15CkNPTkZJR19OU009eQpDT05G
SUdfQzJQT1JUPXkKQ09ORklHX0MyUE9SVF9EVVJBTUFSXzIxNTA9eQoKIwojIEVFUFJPTSBz
dXBwb3J0CiMKIyBDT05GSUdfRUVQUk9NX0FUMjQgaXMgbm90IHNldAojIENPTkZJR19FRVBS
T01fTUFYNjg3NSBpcyBub3Qgc2V0CkNPTkZJR19FRVBST01fOTNDWDY9eQpDT05GSUdfRUVQ
Uk9NX0lEVF84OUhQRVNYPXkKQ09ORklHX0VFUFJPTV9FRTEwMDQ9eQojIGVuZCBvZiBFRVBS
T00gc3VwcG9ydAoKIwojIFRleGFzIEluc3RydW1lbnRzIHNoYXJlZCB0cmFuc3BvcnQgbGlu
ZSBkaXNjaXBsaW5lCiMKQ09ORklHX1RJX1NUPXkKIyBlbmQgb2YgVGV4YXMgSW5zdHJ1bWVu
dHMgc2hhcmVkIHRyYW5zcG9ydCBsaW5lIGRpc2NpcGxpbmUKCkNPTkZJR19TRU5TT1JTX0xJ
UzNfSTJDPXkKIyBDT05GSUdfQUxURVJBX1NUQVBMIGlzIG5vdCBzZXQKQ09ORklHX0VDSE89
eQojIENPTkZJR19VQUNDRSBpcyBub3Qgc2V0CiMgQ09ORklHX1BWUEFOSUMgaXMgbm90IHNl
dAojIGVuZCBvZiBNaXNjIGRldmljZXMKCiMKIyBTQ1NJIGRldmljZSBzdXBwb3J0CiMKQ09O
RklHX1NDU0lfTU9EPXkKIyBDT05GSUdfUkFJRF9BVFRSUyBpcyBub3Qgc2V0CkNPTkZJR19T
Q1NJX0NPTU1PTj15CkNPTkZJR19TQ1NJPXkKQ09ORklHX1NDU0lfRE1BPXkKQ09ORklHX1ND
U0lfTkVUTElOSz15CkNPTkZJR19TQ1NJX1BST0NfRlM9eQpDT05GSUdfU0NTSV9MSUJfS1VO
SVRfVEVTVD15CgojCiMgU0NTSSBzdXBwb3J0IHR5cGUgKGRpc2ssIHRhcGUsIENELVJPTSkK
IwojIENPTkZJR19CTEtfREVWX1NEIGlzIG5vdCBzZXQKQ09ORklHX0NIUl9ERVZfU1Q9eQpD
T05GSUdfQ0hSX0RFVl9TRz15CiMgQ09ORklHX0JMS19ERVZfQlNHIGlzIG5vdCBzZXQKIyBD
T05GSUdfQ0hSX0RFVl9TQ0ggaXMgbm90IHNldAojIENPTkZJR19TQ1NJX0NPTlNUQU5UUyBp
cyBub3Qgc2V0CkNPTkZJR19TQ1NJX0xPR0dJTkc9eQojIENPTkZJR19TQ1NJX1NDQU5fQVNZ
TkMgaXMgbm90IHNldApDT05GSUdfU0NTSV9QUk9UT19URVNUPXkKCiMKIyBTQ1NJIFRyYW5z
cG9ydHMKIwojIENPTkZJR19TQ1NJX1NQSV9BVFRSUyBpcyBub3Qgc2V0CkNPTkZJR19TQ1NJ
X0ZDX0FUVFJTPXkKQ09ORklHX1NDU0lfSVNDU0lfQVRUUlM9eQpDT05GSUdfU0NTSV9TQVNf
QVRUUlM9eQpDT05GSUdfU0NTSV9TQVNfTElCU0FTPXkKQ09ORklHX1NDU0lfU0FTX0FUQT15
CkNPTkZJR19TQ1NJX1NBU19IT1NUX1NNUD15CkNPTkZJR19TQ1NJX1NSUF9BVFRSUz15CiMg
ZW5kIG9mIFNDU0kgVHJhbnNwb3J0cwoKIyBDT05GSUdfU0NTSV9MT1dMRVZFTCBpcyBub3Qg
c2V0CiMgQ09ORklHX1NDU0lfREggaXMgbm90IHNldAojIGVuZCBvZiBTQ1NJIGRldmljZSBz
dXBwb3J0CgpDT05GSUdfQVRBPXkKQ09ORklHX1NBVEFfSE9TVD15CkNPTkZJR19QQVRBX1RJ
TUlOR1M9eQpDT05GSUdfQVRBX1ZFUkJPU0VfRVJST1I9eQpDT05GSUdfQVRBX0ZPUkNFPXkK
Q09ORklHX0FUQV9BQ1BJPXkKQ09ORklHX1NBVEFfUE1QPXkKCiMKIyBDb250cm9sbGVycyB3
aXRoIG5vbi1TRkYgbmF0aXZlIGludGVyZmFjZQojCiMgQ09ORklHX1NBVEFfQUhDSV9QTEFU
Rk9STSBpcyBub3Qgc2V0CkNPTkZJR19BSENJX0RXQz15CkNPTkZJR19BSENJX0NFVkE9eQoj
IENPTkZJR19BVEFfU0ZGIGlzIG5vdCBzZXQKQ09ORklHX01EPXkKQ09ORklHX0JMS19ERVZf
TUQ9eQpDT05GSUdfTURfQVVUT0RFVEVDVD15CkNPTkZJR19NRF9CSVRNQVBfRklMRT15CkNP
TkZJR19NRF9SQUlEMD15CkNPTkZJR19NRF9SQUlEMT15CkNPTkZJR19NRF9SQUlEMTA9eQpD
T05GSUdfTURfUkFJRDQ1Nj15CiMgQ09ORklHX0JDQUNIRSBpcyBub3Qgc2V0CiMgQ09ORklH
X0JMS19ERVZfRE0gaXMgbm90IHNldApDT05GSUdfVEFSR0VUX0NPUkU9eQpDT05GSUdfVENN
X0lCTE9DSz15CkNPTkZJR19UQ01fRklMRUlPPXkKIyBDT05GSUdfVENNX1BTQ1NJIGlzIG5v
dCBzZXQKIyBDT05GSUdfVENNX1VTRVIyIGlzIG5vdCBzZXQKQ09ORklHX0xPT1BCQUNLX1RB
UkdFVD15CiMgQ09ORklHX1JFTU9URV9UQVJHRVQgaXMgbm90IHNldApDT05GSUdfTUFDSU5U
T1NIX0RSSVZFUlM9eQojIENPTkZJR19NQUNfRU1VTU9VU0VCVE4gaXMgbm90IHNldApDT05G
SUdfTkVUREVWSUNFUz15CkNPTkZJR19NSUk9eQojIENPTkZJR19ORVRfQ09SRSBpcyBub3Qg
c2V0CiMgQ09ORklHX0FSQ05FVCBpcyBub3Qgc2V0CiMgQ09ORklHX0FUTV9EUklWRVJTIGlz
IG5vdCBzZXQKIyBDT05GSUdfQ0FJRl9EUklWRVJTIGlzIG5vdCBzZXQKQ09ORklHX0VUSEVS
TkVUPXkKIyBDT05GSUdfTkVUX1ZFTkRPUl8zQ09NIGlzIG5vdCBzZXQKIyBDT05GSUdfTkVU
X1ZFTkRPUl9BTEFDUklURUNIIGlzIG5vdCBzZXQKQ09ORklHX0FMVEVSQV9UU0U9eQojIENP
TkZJR19ORVRfVkVORE9SX0FNQVpPTiBpcyBub3Qgc2V0CiMgQ09ORklHX05FVF9WRU5ET1Jf
QU1EIGlzIG5vdCBzZXQKIyBDT05GSUdfTkVUX1ZFTkRPUl9BUVVBTlRJQSBpcyBub3Qgc2V0
CkNPTkZJR19ORVRfVkVORE9SX0FSQz15CiMgQ09ORklHX05FVF9WRU5ET1JfQVNJWCBpcyBu
b3Qgc2V0CiMgQ09ORklHX05FVF9WRU5ET1JfQlJPQURDT00gaXMgbm90IHNldAojIENPTkZJ
R19ORVRfVkVORE9SX0NBREVOQ0UgaXMgbm90IHNldApDT05GSUdfTkVUX1ZFTkRPUl9DQVZJ
VU09eQojIENPTkZJR19ORVRfVkVORE9SX0NJUlJVUyBpcyBub3Qgc2V0CiMgQ09ORklHX05F
VF9WRU5ET1JfQ09SVElOQSBpcyBub3Qgc2V0CiMgQ09ORklHX05FVF9WRU5ET1JfREFWSUNP
TSBpcyBub3Qgc2V0CkNPTkZJR19ETkVUPXkKIyBDT05GSUdfTkVUX1ZFTkRPUl9ERUMgaXMg
bm90IHNldApDT05GSUdfTkVUX1ZFTkRPUl9FTkdMRURFUj15CkNPTkZJR19UU05FUD15CkNP
TkZJR19UU05FUF9TRUxGVEVTVFM9eQojIENPTkZJR19ORVRfVkVORE9SX0VaQ0hJUCBpcyBu
b3Qgc2V0CiMgQ09ORklHX05FVF9WRU5ET1JfRlVOR0lCTEUgaXMgbm90IHNldAojIENPTkZJ
R19ORVRfVkVORE9SX0dPT0dMRSBpcyBub3Qgc2V0CiMgQ09ORklHX05FVF9WRU5ET1JfSFVB
V0VJIGlzIG5vdCBzZXQKIyBDT05GSUdfTkVUX1ZFTkRPUl9JTlRFTCBpcyBub3Qgc2V0CiMg
Q09ORklHX05FVF9WRU5ET1JfTElURVggaXMgbm90IHNldApDT05GSUdfTkVUX1ZFTkRPUl9N
RUxMQU5PWD15CkNPTkZJR19NTFhTV19DT1JFPXkKQ09ORklHX01MWFNXX0NPUkVfSFdNT049
eQpDT05GSUdfTUxYU1dfQ09SRV9USEVSTUFMPXkKIyBDT05GSUdfTUxYU1dfSTJDIGlzIG5v
dCBzZXQKQ09ORklHX01MWEZXPXkKQ09ORklHX05FVF9WRU5ET1JfTUlDUkVMPXkKQ09ORklH
X0tTODg1MV9NTEw9eQpDT05GSUdfTkVUX1ZFTkRPUl9NSUNST0NISVA9eQojIENPTkZJR19W
Q0FQIGlzIG5vdCBzZXQKIyBDT05GSUdfTkVUX1ZFTkRPUl9NSUNST1NFTUkgaXMgbm90IHNl
dApDT05GSUdfTkVUX1ZFTkRPUl9NSUNST1NPRlQ9eQojIENPTkZJR19ORVRfVkVORE9SX05J
IGlzIG5vdCBzZXQKIyBDT05GSUdfTkVUX1ZFTkRPUl9OQVRTRU1JIGlzIG5vdCBzZXQKIyBD
T05GSUdfTkVUX1ZFTkRPUl9ORVRST05PTUUgaXMgbm90IHNldAojIENPTkZJR19FVEhPQyBp
cyBub3Qgc2V0CkNPTkZJR19ORVRfVkVORE9SX1BFTlNBTkRPPXkKQ09ORklHX05FVF9WRU5E
T1JfUVVBTENPTU09eQojIENPTkZJR19RQ09NX0VNQUMgaXMgbm90IHNldApDT05GSUdfUk1O
RVQ9eQojIENPTkZJR19ORVRfVkVORE9SX1JFQUxURUsgaXMgbm90IHNldApDT05GSUdfTkVU
X1ZFTkRPUl9SRU5FU0FTPXkKQ09ORklHX05FVF9WRU5ET1JfUk9DS0VSPXkKQ09ORklHX05F
VF9WRU5ET1JfU0FNU1VORz15CkNPTkZJR19TWEdCRV9FVEg9eQojIENPTkZJR19ORVRfVkVO
RE9SX1NFRVEgaXMgbm90IHNldAojIENPTkZJR19ORVRfVkVORE9SX1NPTEFSRkxBUkUgaXMg
bm90IHNldAojIENPTkZJR19ORVRfVkVORE9SX1NNU0MgaXMgbm90IHNldAojIENPTkZJR19O
RVRfVkVORE9SX1NPQ0lPTkVYVCBpcyBub3Qgc2V0CiMgQ09ORklHX05FVF9WRU5ET1JfU1RN
SUNSTyBpcyBub3Qgc2V0CkNPTkZJR19ORVRfVkVORE9SX1NZTk9QU1lTPXkKQ09ORklHX0RX
Q19YTEdNQUM9eQpDT05GSUdfTkVUX1ZFTkRPUl9UST15CkNPTkZJR19USV9DUFNXX1BIWV9T
RUw9eQpDT05GSUdfVExBTj15CiMgQ09ORklHX05FVF9WRU5ET1JfVkVSVEVYQ09NIGlzIG5v
dCBzZXQKQ09ORklHX05FVF9WRU5ET1JfVklBPXkKQ09ORklHX1ZJQV9WRUxPQ0lUWT15CiMg
Q09ORklHX05FVF9WRU5ET1JfV0FOR1hVTiBpcyBub3Qgc2V0CiMgQ09ORklHX05FVF9WRU5E
T1JfV0laTkVUIGlzIG5vdCBzZXQKQ09ORklHX05FVF9WRU5ET1JfWElMSU5YPXkKIyBDT05G
SUdfWElMSU5YX0VNQUNMSVRFIGlzIG5vdCBzZXQKIyBDT05GSUdfWElMSU5YX0xMX1RFTUFD
IGlzIG5vdCBzZXQKIyBDT05GSUdfRkRESSBpcyBub3Qgc2V0CiMgQ09ORklHX05FVF9TQjEw
MDAgaXMgbm90IHNldApDT05GSUdfUEhZTElOSz15CkNPTkZJR19QSFlMSUI9eQpDT05GSUdf
U1dQSFk9eQpDT05GSUdfTEVEX1RSSUdHRVJfUEhZPXkKQ09ORklHX1BIWUxJQl9MRURTPXkK
Q09ORklHX0ZJWEVEX1BIWT15CiMgQ09ORklHX1NGUCBpcyBub3Qgc2V0CgojCiMgTUlJIFBI
WSBkZXZpY2UgZHJpdmVycwojCiMgQ09ORklHX0FJUl9FTjg4MTFIX1BIWSBpcyBub3Qgc2V0
CkNPTkZJR19BTURfUEhZPXkKQ09ORklHX0FESU5fUEhZPXkKQ09ORklHX0FESU4xMTAwX1BI
WT15CiMgQ09ORklHX0FRVUFOVElBX1BIWSBpcyBub3Qgc2V0CkNPTkZJR19BWDg4Nzk2Ql9Q
SFk9eQojIENPTkZJR19CUk9BRENPTV9QSFkgaXMgbm90IHNldApDT05GSUdfQkNNNTQxNDBf
UEhZPXkKQ09ORklHX0JDTTdYWFhfUEhZPXkKQ09ORklHX0JDTTg0ODgxX1BIWT15CkNPTkZJ
R19CQ004N1hYX1BIWT15CkNPTkZJR19CQ01fTkVUX1BIWUxJQj15CkNPTkZJR19DSUNBREFf
UEhZPXkKQ09ORklHX0NPUlRJTkFfUEhZPXkKIyBDT05GSUdfREFWSUNPTV9QSFkgaXMgbm90
IHNldApDT05GSUdfSUNQTFVTX1BIWT15CkNPTkZJR19MWFRfUEhZPXkKIyBDT05GSUdfSU5U
RUxfWFdBWV9QSFkgaXMgbm90IHNldAojIENPTkZJR19MU0lfRVQxMDExQ19QSFkgaXMgbm90
IHNldApDT05GSUdfTUFSVkVMTF9QSFk9eQpDT05GSUdfTUFSVkVMTF8xMEdfUEhZPXkKQ09O
RklHX01BUlZFTExfODhRMlhYWF9QSFk9eQojIENPTkZJR19NQVJWRUxMXzg4WDIyMjJfUEhZ
IGlzIG5vdCBzZXQKQ09ORklHX01BWExJTkVBUl9HUEhZPXkKIyBDT05GSUdfTUVESUFURUtf
R0VfUEhZIGlzIG5vdCBzZXQKQ09ORklHX01JQ1JFTF9QSFk9eQojIENPTkZJR19NSUNST0NI
SVBfVDFTX1BIWSBpcyBub3Qgc2V0CiMgQ09ORklHX01JQ1JPQ0hJUF9QSFkgaXMgbm90IHNl
dApDT05GSUdfTUlDUk9DSElQX1QxX1BIWT15CkNPTkZJR19NSUNST1NFTUlfUEhZPXkKQ09O
RklHX01PVE9SQ09NTV9QSFk9eQojIENPTkZJR19OQVRJT05BTF9QSFkgaXMgbm90IHNldApD
T05GSUdfTlhQX0NCVFhfUEhZPXkKQ09ORklHX05YUF9DNDVfVEpBMTFYWF9QSFk9eQpDT05G
SUdfTlhQX1RKQTExWFhfUEhZPXkKIyBDT05GSUdfTkNOMjYwMDBfUEhZIGlzIG5vdCBzZXQK
Q09ORklHX1FDT01fTkVUX1BIWUxJQj15CiMgQ09ORklHX0FUODAzWF9QSFkgaXMgbm90IHNl
dAojIENPTkZJR19RQ0E4M1hYX1BIWSBpcyBub3Qgc2V0CiMgQ09ORklHX1FDQTgwOFhfUEhZ
IGlzIG5vdCBzZXQKQ09ORklHX1FDQTgwN1hfUEhZPXkKIyBDT05GSUdfUVNFTUlfUEhZIGlz
IG5vdCBzZXQKIyBDT05GSUdfUkVBTFRFS19QSFkgaXMgbm90IHNldApDT05GSUdfUkVORVNB
U19QSFk9eQojIENPTkZJR19ST0NLQ0hJUF9QSFkgaXMgbm90IHNldApDT05GSUdfU01TQ19Q
SFk9eQpDT05GSUdfU1RFMTBYUD15CkNPTkZJR19URVJBTkVUSUNTX1BIWT15CiMgQ09ORklH
X0RQODM4MjJfUEhZIGlzIG5vdCBzZXQKQ09ORklHX0RQODNUQzgxMV9QSFk9eQpDT05GSUdf
RFA4Mzg0OF9QSFk9eQpDT05GSUdfRFA4Mzg2N19QSFk9eQpDT05GSUdfRFA4Mzg2OV9QSFk9
eQpDT05GSUdfRFA4M1RENTEwX1BIWT15CkNPTkZJR19EUDgzVEc3MjBfUEhZPXkKQ09ORklH
X1ZJVEVTU0VfUEhZPXkKQ09ORklHX1hJTElOWF9HTUlJMlJHTUlJPXkKQ09ORklHX1BTRV9D
T05UUk9MTEVSPXkKIyBDT05GSUdfUFNFX1JFR1VMQVRPUiBpcyBub3Qgc2V0CkNPTkZJR19Q
U0VfUEQ2OTJYMD15CiMgQ09ORklHX1BTRV9UUFMyMzg4MSBpcyBub3Qgc2V0CiMgQ09ORklH
X0NBTl9ERVYgaXMgbm90IHNldAoKIwojIE1DVFAgRGV2aWNlIERyaXZlcnMKIwpDT05GSUdf
TUNUUF9TRVJJQUw9eQpDT05GSUdfTUNUUF9UUkFOU1BPUlRfSTJDPXkKQ09ORklHX01DVFBf
VFJBTlNQT1JUX0kzQz15CiMgZW5kIG9mIE1DVFAgRGV2aWNlIERyaXZlcnMKCkNPTkZJR19N
RElPX0RFVklDRT15CkNPTkZJR19NRElPX0JVUz15CkNPTkZJR19GV05PREVfTURJTz15CkNP
TkZJR19PRl9NRElPPXkKQ09ORklHX0FDUElfTURJTz15CkNPTkZJR19NRElPX0RFVlJFUz15
CiMgQ09ORklHX01ESU9fQklUQkFORyBpcyBub3Qgc2V0CkNPTkZJR19NRElPX0JDTV9VTklN
QUM9eQpDT05GSUdfTURJT19ISVNJX0ZFTUFDPXkKQ09ORklHX01ESU9fTVNDQ19NSUlNPXkK
Q09ORklHX01ESU9fSVBRNDAxOT15CkNPTkZJR19NRElPX0lQUTgwNjQ9eQpDT05GSUdfTURJ
T19SRUdNQVA9eQoKIwojIE1ESU8gTXVsdGlwbGV4ZXJzCiMKQ09ORklHX01ESU9fQlVTX01V
WD15CiMgQ09ORklHX01ESU9fQlVTX01VWF9HUElPIGlzIG5vdCBzZXQKIyBDT05GSUdfTURJ
T19CVVNfTVVYX01VTFRJUExFWEVSIGlzIG5vdCBzZXQKQ09ORklHX01ESU9fQlVTX01VWF9N
TUlPUkVHPXkKCiMKIyBQQ1MgZGV2aWNlIGRyaXZlcnMKIwpDT05GSUdfUENTX0xZTlg9eQoj
IGVuZCBvZiBQQ1MgZGV2aWNlIGRyaXZlcnMKCkNPTkZJR19QTElQPXkKIyBDT05GSUdfUFBQ
IGlzIG5vdCBzZXQKQ09ORklHX1NMSVA9eQojIENPTkZJR19TTElQX0NPTVBSRVNTRUQgaXMg
bm90IHNldApDT05GSUdfU0xJUF9TTUFSVD15CiMgQ09ORklHX1NMSVBfTU9ERV9TTElQNiBp
cyBub3Qgc2V0CgojCiMgSG9zdC1zaWRlIFVTQiBzdXBwb3J0IGlzIG5lZWRlZCBmb3IgVVNC
IE5ldHdvcmsgQWRhcHRlciBzdXBwb3J0CiMKIyBDT05GSUdfV0xBTiBpcyBub3Qgc2V0CiMg
Q09ORklHX1dBTiBpcyBub3Qgc2V0CgojCiMgV2lyZWxlc3MgV0FOCiMKQ09ORklHX1dXQU49
eQpDT05GSUdfV1dBTl9IV1NJTT15CkNPTkZJR19SUE1TR19XV0FOX0NUUkw9eQojIGVuZCBv
ZiBXaXJlbGVzcyBXQU4KCkNPTkZJR19GVUpJVFNVX0VTPXkKQ09ORklHX05FVF9GQUlMT1ZF
Uj15CiMgQ09ORklHX0lTRE4gaXMgbm90IHNldAoKIwojIElucHV0IGRldmljZSBzdXBwb3J0
CiMKQ09ORklHX0lOUFVUPXkKQ09ORklHX0lOUFVUX0xFRFM9eQpDT05GSUdfSU5QVVRfRkZf
TUVNTEVTUz15CkNPTkZJR19JTlBVVF9TUEFSU0VLTUFQPXkKIyBDT05GSUdfSU5QVVRfTUFU
UklYS01BUCBpcyBub3Qgc2V0CkNPTkZJR19JTlBVVF9WSVZBTERJRk1BUD15CgojCiMgVXNl
cmxhbmQgaW50ZXJmYWNlcwojCkNPTkZJR19JTlBVVF9NT1VTRURFVj15CkNPTkZJR19JTlBV
VF9NT1VTRURFVl9QU0FVWD15CkNPTkZJR19JTlBVVF9NT1VTRURFVl9TQ1JFRU5fWD0xMDI0
CkNPTkZJR19JTlBVVF9NT1VTRURFVl9TQ1JFRU5fWT03NjgKQ09ORklHX0lOUFVUX0pPWURF
Vj15CkNPTkZJR19JTlBVVF9FVkRFVj15CiMgQ09ORklHX0lOUFVUX0VWQlVHIGlzIG5vdCBz
ZXQKQ09ORklHX0lOUFVUX0tVTklUX1RFU1Q9eQoKIwojIElucHV0IERldmljZSBEcml2ZXJz
CiMKIyBDT05GSUdfSU5QVVRfS0VZQk9BUkQgaXMgbm90IHNldApDT05GSUdfSU5QVVRfTU9V
U0U9eQojIENPTkZJR19NT1VTRV9QUzIgaXMgbm90IHNldAojIENPTkZJR19NT1VTRV9TRVJJ
QUwgaXMgbm90IHNldApDT05GSUdfTU9VU0VfQ1lBUEE9eQpDT05GSUdfTU9VU0VfRUxBTl9J
MkM9eQojIENPTkZJR19NT1VTRV9FTEFOX0kyQ19JMkMgaXMgbm90IHNldAojIENPTkZJR19N
T1VTRV9FTEFOX0kyQ19TTUJVUyBpcyBub3Qgc2V0CiMgQ09ORklHX01PVVNFX0lOUE9SVCBp
cyBub3Qgc2V0CiMgQ09ORklHX01PVVNFX0xPR0lCTSBpcyBub3Qgc2V0CkNPTkZJR19NT1VT
RV9QQzExMFBBRD15CkNPTkZJR19NT1VTRV9WU1hYWEFBPXkKQ09ORklHX01PVVNFX0dQSU89
eQpDT05GSUdfTU9VU0VfU1lOQVBUSUNTX0kyQz15CkNPTkZJR19JTlBVVF9KT1lTVElDSz15
CiMgQ09ORklHX0pPWVNUSUNLX0FOQUxPRyBpcyBub3Qgc2V0CkNPTkZJR19KT1lTVElDS19B
M0Q9eQpDT05GSUdfSk9ZU1RJQ0tfQURDPXkKIyBDT05GSUdfSk9ZU1RJQ0tfQURJIGlzIG5v
dCBzZXQKQ09ORklHX0pPWVNUSUNLX0NPQlJBPXkKIyBDT05GSUdfSk9ZU1RJQ0tfR0YySyBp
cyBub3Qgc2V0CiMgQ09ORklHX0pPWVNUSUNLX0dSSVAgaXMgbm90IHNldAojIENPTkZJR19K
T1lTVElDS19HUklQX01QIGlzIG5vdCBzZXQKQ09ORklHX0pPWVNUSUNLX0dVSUxMRU1PVD15
CkNPTkZJR19KT1lTVElDS19JTlRFUkFDVD15CkNPTkZJR19KT1lTVElDS19TSURFV0lOREVS
PXkKQ09ORklHX0pPWVNUSUNLX1RNREM9eQpDT05GSUdfSk9ZU1RJQ0tfSUZPUkNFPXkKIyBD
T05GSUdfSk9ZU1RJQ0tfSUZPUkNFXzIzMiBpcyBub3Qgc2V0CiMgQ09ORklHX0pPWVNUSUNL
X1dBUlJJT1IgaXMgbm90IHNldAojIENPTkZJR19KT1lTVElDS19NQUdFTExBTiBpcyBub3Qg
c2V0CiMgQ09ORklHX0pPWVNUSUNLX1NQQUNFT1JCIGlzIG5vdCBzZXQKQ09ORklHX0pPWVNU
SUNLX1NQQUNFQkFMTD15CkNPTkZJR19KT1lTVElDS19TVElOR0VSPXkKQ09ORklHX0pPWVNU
SUNLX1RXSURKT1k9eQojIENPTkZJR19KT1lTVElDS19aSEVOSFVBIGlzIG5vdCBzZXQKQ09O
RklHX0pPWVNUSUNLX0RCOT15CkNPTkZJR19KT1lTVElDS19HQU1FQ09OPXkKIyBDT05GSUdf
Sk9ZU1RJQ0tfVFVSQk9HUkFGWCBpcyBub3Qgc2V0CkNPTkZJR19KT1lTVElDS19BUzUwMTE9
eQojIENPTkZJR19KT1lTVElDS19KT1lEVU1QIGlzIG5vdCBzZXQKQ09ORklHX0pPWVNUSUNL
X1FXSUlDPXkKQ09ORklHX0pPWVNUSUNLX0ZTSUE2Qj15CkNPTkZJR19KT1lTVElDS19TRU5T
RUhBVD15CiMgQ09ORklHX0pPWVNUSUNLX1NFRVNBVyBpcyBub3Qgc2V0CkNPTkZJR19JTlBV
VF9UQUJMRVQ9eQpDT05GSUdfVEFCTEVUX1NFUklBTF9XQUNPTTQ9eQpDT05GSUdfSU5QVVRf
VE9VQ0hTQ1JFRU49eQpDT05GSUdfVE9VQ0hTQ1JFRU5fQUQ3ODc5PXkKIyBDT05GSUdfVE9V
Q0hTQ1JFRU5fQUQ3ODc5X0kyQyBpcyBub3Qgc2V0CiMgQ09ORklHX1RPVUNIU0NSRUVOX0FE
QyBpcyBub3Qgc2V0CkNPTkZJR19UT1VDSFNDUkVFTl9BUjEwMjFfSTJDPXkKQ09ORklHX1RP
VUNIU0NSRUVOX0FUTUVMX01YVD15CkNPTkZJR19UT1VDSFNDUkVFTl9BVU9fUElYQ0lSPXkK
Q09ORklHX1RPVUNIU0NSRUVOX0JVMjEwMTM9eQojIENPTkZJR19UT1VDSFNDUkVFTl9CVTIx
MDI5IGlzIG5vdCBzZXQKQ09ORklHX1RPVUNIU0NSRUVOX0NISVBPTkVfSUNOODMxOD15CkNP
TkZJR19UT1VDSFNDUkVFTl9DSElQT05FX0lDTjg1MDU9eQpDT05GSUdfVE9VQ0hTQ1JFRU5f
Q1k4Q1RNQTE0MD15CiMgQ09ORklHX1RPVUNIU0NSRUVOX0NZOENUTUcxMTAgaXMgbm90IHNl
dAojIENPTkZJR19UT1VDSFNDUkVFTl9DWVRUU1BfQ09SRSBpcyBub3Qgc2V0CiMgQ09ORklH
X1RPVUNIU0NSRUVOX0NZVFRTUDRfQ09SRSBpcyBub3Qgc2V0CkNPTkZJR19UT1VDSFNDUkVF
Tl9DWVRUU1A1PXkKQ09ORklHX1RPVUNIU0NSRUVOX0RZTkFQUk89eQojIENPTkZJR19UT1VD
SFNDUkVFTl9IQU1QU0hJUkUgaXMgbm90IHNldAojIENPTkZJR19UT1VDSFNDUkVFTl9FRVRJ
IGlzIG5vdCBzZXQKIyBDT05GSUdfVE9VQ0hTQ1JFRU5fRUdBTEFYIGlzIG5vdCBzZXQKIyBD
T05GSUdfVE9VQ0hTQ1JFRU5fRUdBTEFYX1NFUklBTCBpcyBub3Qgc2V0CkNPTkZJR19UT1VD
SFNDUkVFTl9FWEMzMDAwPXkKQ09ORklHX1RPVUNIU0NSRUVOX0ZVSklUU1U9eQpDT05GSUdf
VE9VQ0hTQ1JFRU5fR09PRElYPXkKQ09ORklHX1RPVUNIU0NSRUVOX0dPT0RJWF9CRVJMSU5f
Q09SRT15CkNPTkZJR19UT1VDSFNDUkVFTl9HT09ESVhfQkVSTElOX0kyQz15CiMgQ09ORklH
X1RPVUNIU0NSRUVOX0hJREVFUCBpcyBub3Qgc2V0CkNPTkZJR19UT1VDSFNDUkVFTl9IWUNP
Tl9IWTQ2WFg9eQpDT05GSUdfVE9VQ0hTQ1JFRU5fSFlOSVRST05fQ1NUWFhYPXkKQ09ORklH
X1RPVUNIU0NSRUVOX0lMSTIxMFg9eQpDT05GSUdfVE9VQ0hTQ1JFRU5fSUxJVEVLPXkKQ09O
RklHX1RPVUNIU0NSRUVOX1M2U1k3NjE9eQojIENPTkZJR19UT1VDSFNDUkVFTl9HVU5aRSBp
cyBub3Qgc2V0CkNPTkZJR19UT1VDSFNDUkVFTl9FS1RGMjEyNz15CkNPTkZJR19UT1VDSFND
UkVFTl9FTEFOPXkKQ09ORklHX1RPVUNIU0NSRUVOX0VMTz15CkNPTkZJR19UT1VDSFNDUkVF
Tl9XQUNPTV9XODAwMT15CkNPTkZJR19UT1VDSFNDUkVFTl9XQUNPTV9JMkM9eQpDT05GSUdf
VE9VQ0hTQ1JFRU5fTUFYMTE4MDE9eQpDT05GSUdfVE9VQ0hTQ1JFRU5fTUNTNTAwMD15CkNP
TkZJR19UT1VDSFNDUkVFTl9NTVMxMTQ9eQojIENPTkZJR19UT1VDSFNDUkVFTl9NRUxGQVNf
TUlQNCBpcyBub3Qgc2V0CiMgQ09ORklHX1RPVUNIU0NSRUVOX01TRzI2MzggaXMgbm90IHNl
dApDT05GSUdfVE9VQ0hTQ1JFRU5fTVRPVUNIPXkKQ09ORklHX1RPVUNIU0NSRUVOX05PVkFU
RUtfTlZUX1RTPXkKQ09ORklHX1RPVUNIU0NSRUVOX0lNQUdJUz15CkNPTkZJR19UT1VDSFND
UkVFTl9JTVg2VUxfVFNDPXkKQ09ORklHX1RPVUNIU0NSRUVOX0lORVhJTz15CkNPTkZJR19U
T1VDSFNDUkVFTl9NSzcxMj15CiMgQ09ORklHX1RPVUNIU0NSRUVOX0hUQ1BFTiBpcyBub3Qg
c2V0CkNPTkZJR19UT1VDSFNDUkVFTl9QRU5NT1VOVD15CiMgQ09ORklHX1RPVUNIU0NSRUVO
X0VEVF9GVDVYMDYgaXMgbm90IHNldAojIENPTkZJR19UT1VDSFNDUkVFTl9UT1VDSFJJR0hU
IGlzIG5vdCBzZXQKQ09ORklHX1RPVUNIU0NSRUVOX1RPVUNIV0lOPXkKIyBDT05GSUdfVE9V
Q0hTQ1JFRU5fUElYQ0lSIGlzIG5vdCBzZXQKIyBDT05GSUdfVE9VQ0hTQ1JFRU5fV0RUODdY
WF9JMkMgaXMgbm90IHNldApDT05GSUdfVE9VQ0hTQ1JFRU5fV004MzFYPXkKIyBDT05GSUdf
VE9VQ0hTQ1JFRU5fTUMxMzc4MyBpcyBub3Qgc2V0CkNPTkZJR19UT1VDSFNDUkVFTl9UT1VD
SElUMjEzPXkKQ09ORklHX1RPVUNIU0NSRUVOX1RTQ19TRVJJTz15CiMgQ09ORklHX1RPVUNI
U0NSRUVOX1RTQzIwMDQgaXMgbm90IHNldApDT05GSUdfVE9VQ0hTQ1JFRU5fVFNDMjAwNz15
CiMgQ09ORklHX1RPVUNIU0NSRUVOX1RTQzIwMDdfSUlPIGlzIG5vdCBzZXQKQ09ORklHX1RP
VUNIU0NSRUVOX1JNX1RTPXkKIyBDT05GSUdfVE9VQ0hTQ1JFRU5fU0lMRUFEIGlzIG5vdCBz
ZXQKIyBDT05GSUdfVE9VQ0hTQ1JFRU5fU0lTX0kyQyBpcyBub3Qgc2V0CkNPTkZJR19UT1VD
SFNDUkVFTl9TVDEyMzI9eQojIENPTkZJR19UT1VDSFNDUkVFTl9TVE1GVFMgaXMgbm90IHNl
dAojIENPTkZJR19UT1VDSFNDUkVFTl9TVE1QRSBpcyBub3Qgc2V0CkNPTkZJR19UT1VDSFND
UkVFTl9TWDg2NTQ9eQojIENPTkZJR19UT1VDSFNDUkVFTl9UUFM2NTA3WCBpcyBub3Qgc2V0
CiMgQ09ORklHX1RPVUNIU0NSRUVOX1pFVDYyMjMgaXMgbm90IHNldAojIENPTkZJR19UT1VD
SFNDUkVFTl9aRk9SQ0UgaXMgbm90IHNldAojIENPTkZJR19UT1VDSFNDUkVFTl9DT0xJQlJJ
X1ZGNTAgaXMgbm90IHNldAojIENPTkZJR19UT1VDSFNDUkVFTl9ST0hNX0JVMjEwMjMgaXMg
bm90IHNldApDT05GSUdfVE9VQ0hTQ1JFRU5fSVFTNVhYPXkKQ09ORklHX1RPVUNIU0NSRUVO
X0lRUzcyMTE9eQojIENPTkZJR19UT1VDSFNDUkVFTl9aSU5JVElYIGlzIG5vdCBzZXQKIyBD
T05GSUdfVE9VQ0hTQ1JFRU5fSElNQVhfSFg4MzExMkIgaXMgbm90IHNldApDT05GSUdfSU5Q
VVRfTUlTQz15CiMgQ09ORklHX0lOUFVUXzg4UE04MFhfT05LRVkgaXMgbm90IHNldApDT05G
SUdfSU5QVVRfQUQ3MTRYPXkKQ09ORklHX0lOUFVUX0FENzE0WF9JMkM9eQojIENPTkZJR19J
TlBVVF9BVE1FTF9DQVBUT1VDSCBpcyBub3Qgc2V0CkNPTkZJR19JTlBVVF9CTUExNTA9eQoj
IENPTkZJR19JTlBVVF9FM1gwX0JVVFRPTiBpcyBub3Qgc2V0CiMgQ09ORklHX0lOUFVUX1BD
U1BLUiBpcyBub3Qgc2V0CkNPTkZJR19JTlBVVF9NQVg3NzY1MF9PTktFWT15CkNPTkZJR19J
TlBVVF9NQVg3NzY5M19IQVBUSUM9eQpDT05GSUdfSU5QVVRfTUMxMzc4M19QV1JCVVRUT049
eQojIENPTkZJR19JTlBVVF9NTUE4NDUwIGlzIG5vdCBzZXQKQ09ORklHX0lOUFVUX0FQQU5F
TD15CkNPTkZJR19JTlBVVF9HUElPX0JFRVBFUj15CiMgQ09ORklHX0lOUFVUX0dQSU9fREVD
T0RFUiBpcyBub3Qgc2V0CkNPTkZJR19JTlBVVF9HUElPX1ZJQlJBPXkKIyBDT05GSUdfSU5Q
VVRfV0lTVFJPTl9CVE5TIGlzIG5vdCBzZXQKIyBDT05GSUdfSU5QVVRfQVRMQVNfQlROUyBp
cyBub3Qgc2V0CkNPTkZJR19JTlBVVF9LWFRKOT15CiMgQ09ORklHX0lOUFVUX1JFR1VMQVRP
Ul9IQVBUSUMgaXMgbm90IHNldApDT05GSUdfSU5QVVRfUkVUVV9QV1JCVVRUT049eQojIENP
TkZJR19JTlBVVF9UUFM2NTIxOF9QV1JCVVRUT04gaXMgbm90IHNldApDT05GSUdfSU5QVVRf
VFBTNjUyMTlfUFdSQlVUVE9OPXkKQ09ORklHX0lOUFVUX0FYUDIwWF9QRUs9eQpDT05GSUdf
SU5QVVRfVFdMNDAzMF9QV1JCVVRUT049eQpDT05GSUdfSU5QVVRfVFdMNDAzMF9WSUJSQT15
CkNPTkZJR19JTlBVVF9VSU5QVVQ9eQpDT05GSUdfSU5QVVRfUEFMTUFTX1BXUkJVVFRPTj15
CiMgQ09ORklHX0lOUFVUX1BDRjUwNjMzX1BNVSBpcyBub3Qgc2V0CiMgQ09ORklHX0lOUFVU
X1BDRjg1NzQgaXMgbm90IHNldAojIENPTkZJR19JTlBVVF9QV01fQkVFUEVSIGlzIG5vdCBz
ZXQKQ09ORklHX0lOUFVUX1BXTV9WSUJSQT15CkNPTkZJR19JTlBVVF9HUElPX1JPVEFSWV9F
TkNPREVSPXkKIyBDT05GSUdfSU5QVVRfREE3MjgwX0hBUFRJQ1MgaXMgbm90IHNldApDT05G
SUdfSU5QVVRfREE5MDYzX09OS0VZPXkKIyBDT05GSUdfSU5QVVRfV004MzFYX09OIGlzIG5v
dCBzZXQKQ09ORklHX0lOUFVUX0FEWEwzNFg9eQpDT05GSUdfSU5QVVRfQURYTDM0WF9JMkM9
eQpDT05GSUdfSU5QVVRfSUJNX1BBTkVMPXkKIyBDT05GSUdfSU5QVVRfSVFTMjY5QSBpcyBu
b3Qgc2V0CkNPTkZJR19JTlBVVF9JUVM2MjZBPXkKQ09ORklHX0lOUFVUX0lRUzcyMjI9eQpD
T05GSUdfSU5QVVRfQ01BMzAwMD15CkNPTkZJR19JTlBVVF9DTUEzMDAwX0kyQz15CkNPTkZJ
R19JTlBVVF9JREVBUEFEX1NMSURFQkFSPXkKQ09ORklHX0lOUFVUX0RSVjI2MFhfSEFQVElD
Uz15CkNPTkZJR19JTlBVVF9EUlYyNjY1X0hBUFRJQ1M9eQpDT05GSUdfSU5QVVRfRFJWMjY2
N19IQVBUSUNTPXkKQ09ORklHX0lOUFVUX1JUNTEyMF9QV1JLRVk9eQpDT05GSUdfUk1JNF9D
T1JFPXkKIyBDT05GSUdfUk1JNF9JMkMgaXMgbm90IHNldApDT05GSUdfUk1JNF9TTUI9eQpD
T05GSUdfUk1JNF9GMDM9eQpDT05GSUdfUk1JNF9GMDNfU0VSSU89eQpDT05GSUdfUk1JNF8y
RF9TRU5TT1I9eQpDT05GSUdfUk1JNF9GMTE9eQpDT05GSUdfUk1JNF9GMTI9eQpDT05GSUdf
Uk1JNF9GMzA9eQojIENPTkZJR19STUk0X0YzNCBpcyBub3Qgc2V0CkNPTkZJR19STUk0X0Yz
QT15CkNPTkZJR19STUk0X0Y1NT15CgojCiMgSGFyZHdhcmUgSS9PIHBvcnRzCiMKQ09ORklH
X1NFUklPPXkKQ09ORklHX0FSQ0hfTUlHSFRfSEFWRV9QQ19TRVJJTz15CkNPTkZJR19TRVJJ
T19JODA0Mj15CkNPTkZJR19TRVJJT19TRVJQT1JUPXkKQ09ORklHX1NFUklPX0NUODJDNzEw
PXkKIyBDT05GSUdfU0VSSU9fUEFSS0JEIGlzIG5vdCBzZXQKIyBDT05GSUdfU0VSSU9fTElC
UFMyIGlzIG5vdCBzZXQKQ09ORklHX1NFUklPX1JBVz15CiMgQ09ORklHX1NFUklPX0FMVEVS
QV9QUzIgaXMgbm90IHNldApDT05GSUdfU0VSSU9fUFMyTVVMVD15CiMgQ09ORklHX1NFUklP
X0FSQ19QUzIgaXMgbm90IHNldApDT05GSUdfU0VSSU9fQVBCUFMyPXkKIyBDT05GSUdfU0VS
SU9fR1BJT19QUzIgaXMgbm90IHNldApDT05GSUdfVVNFUklPPXkKQ09ORklHX0dBTUVQT1JU
PXkKQ09ORklHX0dBTUVQT1JUX05TNTU4PXkKQ09ORklHX0dBTUVQT1JUX0w0PXkKIyBlbmQg
b2YgSGFyZHdhcmUgSS9PIHBvcnRzCiMgZW5kIG9mIElucHV0IGRldmljZSBzdXBwb3J0Cgoj
CiMgQ2hhcmFjdGVyIGRldmljZXMKIwpDT05GSUdfVFRZPXkKQ09ORklHX1ZUPXkKQ09ORklH
X0NPTlNPTEVfVFJBTlNMQVRJT05TPXkKQ09ORklHX1ZUX0NPTlNPTEU9eQojIENPTkZJR19W
VF9IV19DT05TT0xFX0JJTkRJTkcgaXMgbm90IHNldApDT05GSUdfVU5JWDk4X1BUWVM9eQpD
T05GSUdfTEVHQUNZX1BUWVM9eQpDT05GSUdfTEVHQUNZX1BUWV9DT1VOVD0yNTYKQ09ORklH
X0xFR0FDWV9USU9DU1RJPXkKQ09ORklHX0xESVNDX0FVVE9MT0FEPXkKCiMKIyBTZXJpYWwg
ZHJpdmVycwojCkNPTkZJR19TRVJJQUxfRUFSTFlDT049eQpDT05GSUdfU0VSSUFMXzgyNTA9
eQojIENPTkZJR19TRVJJQUxfODI1MF9ERVBSRUNBVEVEX09QVElPTlMgaXMgbm90IHNldApD
T05GSUdfU0VSSUFMXzgyNTBfUE5QPXkKQ09ORklHX1NFUklBTF84MjUwXzE2NTUwQV9WQVJJ
QU5UUz15CkNPTkZJR19TRVJJQUxfODI1MF9GSU5URUs9eQojIENPTkZJR19TRVJJQUxfODI1
MF9DT05TT0xFIGlzIG5vdCBzZXQKQ09ORklHX1NFUklBTF84MjUwX01FTl9NQ0I9eQpDT05G
SUdfU0VSSUFMXzgyNTBfTlJfVUFSVFM9NApDT05GSUdfU0VSSUFMXzgyNTBfUlVOVElNRV9V
QVJUUz00CkNPTkZJR19TRVJJQUxfODI1MF9FWFRFTkRFRD15CiMgQ09ORklHX1NFUklBTF84
MjUwX01BTllfUE9SVFMgaXMgbm90IHNldApDT05GSUdfU0VSSUFMXzgyNTBfU0hBUkVfSVJR
PXkKQ09ORklHX1NFUklBTF84MjUwX0RFVEVDVF9JUlE9eQojIENPTkZJR19TRVJJQUxfODI1
MF9SU0EgaXMgbm90IHNldApDT05GSUdfU0VSSUFMXzgyNTBfRFdMSUI9eQpDT05GSUdfU0VS
SUFMXzgyNTBfRFc9eQpDT05GSUdfU0VSSUFMXzgyNTBfUlQyODhYPXkKQ09ORklHX1NFUklB
TF9PRl9QTEFURk9STT15CgojCiMgTm9uLTgyNTAgc2VyaWFsIHBvcnQgc3VwcG9ydAojCkNP
TkZJR19TRVJJQUxfVUFSVExJVEU9eQojIENPTkZJR19TRVJJQUxfVUFSVExJVEVfQ09OU09M
RSBpcyBub3Qgc2V0CkNPTkZJR19TRVJJQUxfVUFSVExJVEVfTlJfVUFSVFM9MQpDT05GSUdf
U0VSSUFMX0NPUkU9eQpDT05GSUdfU0VSSUFMX0NPUkVfQ09OU09MRT15CiMgQ09ORklHX1NF
UklBTF9TSUZJVkUgaXMgbm90IHNldApDT05GSUdfU0VSSUFMX0xBTlRJUT15CiMgQ09ORklH
X1NFUklBTF9MQU5USVFfQ09OU09MRSBpcyBub3Qgc2V0CkNPTkZJR19TRVJJQUxfU0NDTlhQ
PXkKIyBDT05GSUdfU0VSSUFMX1NDQ05YUF9DT05TT0xFIGlzIG5vdCBzZXQKQ09ORklHX1NF
UklBTF9TQzE2SVM3WFg9eQpDT05GSUdfU0VSSUFMX1NDMTZJUzdYWF9JMkM9eQojIENPTkZJ
R19TRVJJQUxfVElNQkVSREFMRSBpcyBub3Qgc2V0CkNPTkZJR19TRVJJQUxfQUxURVJBX0pU
QUdVQVJUPXkKIyBDT05GSUdfU0VSSUFMX0FMVEVSQV9KVEFHVUFSVF9DT05TT0xFIGlzIG5v
dCBzZXQKQ09ORklHX1NFUklBTF9BTFRFUkFfVUFSVD15CkNPTkZJR19TRVJJQUxfQUxURVJB
X1VBUlRfTUFYUE9SVFM9NApDT05GSUdfU0VSSUFMX0FMVEVSQV9VQVJUX0JBVURSQVRFPTEx
NTIwMAojIENPTkZJR19TRVJJQUxfQUxURVJBX1VBUlRfQ09OU09MRSBpcyBub3Qgc2V0CkNP
TkZJR19TRVJJQUxfWElMSU5YX1BTX1VBUlQ9eQpDT05GSUdfU0VSSUFMX1hJTElOWF9QU19V
QVJUX0NPTlNPTEU9eQpDT05GSUdfU0VSSUFMX0FSQz15CkNPTkZJR19TRVJJQUxfQVJDX0NP
TlNPTEU9eQpDT05GSUdfU0VSSUFMX0FSQ19OUl9QT1JUUz0xCkNPTkZJR19TRVJJQUxfRlNM
X0xQVUFSVD15CiMgQ09ORklHX1NFUklBTF9GU0xfTFBVQVJUX0NPTlNPTEUgaXMgbm90IHNl
dApDT05GSUdfU0VSSUFMX0ZTTF9MSU5GTEVYVUFSVD15CiMgQ09ORklHX1NFUklBTF9GU0xf
TElORkxFWFVBUlRfQ09OU09MRSBpcyBub3Qgc2V0CkNPTkZJR19TRVJJQUxfQ09ORVhBTlRf
RElHSUNPTE9SPXkKIyBDT05GSUdfU0VSSUFMX0NPTkVYQU5UX0RJR0lDT0xPUl9DT05TT0xF
IGlzIG5vdCBzZXQKIyBDT05GSUdfU0VSSUFMX01FTl9aMTM1IGlzIG5vdCBzZXQKQ09ORklH
X1NFUklBTF9TUFJEPXkKIyBDT05GSUdfU0VSSUFMX1NQUkRfQ09OU09MRSBpcyBub3Qgc2V0
CiMgQ09ORklHX1NFUklBTF9MSVRFVUFSVCBpcyBub3Qgc2V0CiMgZW5kIG9mIFNlcmlhbCBk
cml2ZXJzCgpDT05GSUdfU0VSSUFMX01DVFJMX0dQSU89eQpDT05GSUdfU0VSSUFMX05PTlNU
QU5EQVJEPXkKQ09ORklHX01PWEFfSU5URUxMSU89eQpDT05GSUdfTl9IRExDPXkKQ09ORklH
X05fR1NNPXkKQ09ORklHX05VTExfVFRZPXkKIyBDT05GSUdfUlBNU0dfVFRZIGlzIG5vdCBz
ZXQKIyBDT05GSUdfU0VSSUFMX0RFVl9CVVMgaXMgbm90IHNldAojIENPTkZJR19QUklOVEVS
IGlzIG5vdCBzZXQKQ09ORklHX1BQREVWPXkKIyBDT05GSUdfVklSVElPX0NPTlNPTEUgaXMg
bm90IHNldApDT05GSUdfSVBNSV9IQU5ETEVSPXkKQ09ORklHX0lQTUlfRE1JX0RFQ09ERT15
CkNPTkZJR19JUE1JX1BMQVRfREFUQT15CiMgQ09ORklHX0lQTUlfUEFOSUNfRVZFTlQgaXMg
bm90IHNldAojIENPTkZJR19JUE1JX0RFVklDRV9JTlRFUkZBQ0UgaXMgbm90IHNldApDT05G
SUdfSVBNSV9TST15CkNPTkZJR19JUE1JX1NTSUY9eQojIENPTkZJR19JUE1JX0lQTUIgaXMg
bm90IHNldApDT05GSUdfSVBNSV9XQVRDSERPRz15CkNPTkZJR19JUE1JX1BPV0VST0ZGPXkK
IyBDT05GSUdfU1NJRl9JUE1JX0JNQyBpcyBub3Qgc2V0CkNPTkZJR19JUE1CX0RFVklDRV9J
TlRFUkZBQ0U9eQpDT05GSUdfSFdfUkFORE9NPXkKQ09ORklHX0hXX1JBTkRPTV9USU1FUklP
TUVNPXkKQ09ORklHX0hXX1JBTkRPTV9CQTQzMT15CkNPTkZJR19IV19SQU5ET01fVklBPXkK
Q09ORklHX0hXX1JBTkRPTV9WSVJUSU89eQojIENPTkZJR19IV19SQU5ET01fQ0NUUk5HIGlz
IG5vdCBzZXQKQ09ORklHX0hXX1JBTkRPTV9YSVBIRVJBPXkKIyBDT05GSUdfRFRMSyBpcyBu
b3Qgc2V0CkNPTkZJR19NV0FWRT15CiMgQ09ORklHX1NDeDIwMF9HUElPIGlzIG5vdCBzZXQK
IyBDT05GSUdfUEM4NzM2eF9HUElPIGlzIG5vdCBzZXQKQ09ORklHX05TQ19HUElPPXkKIyBD
T05GSUdfREVWTUVNIGlzIG5vdCBzZXQKQ09ORklHX05WUkFNPXkKIyBDT05GSUdfREVWUE9S
VCBpcyBub3Qgc2V0CiMgQ09ORklHX0hQRVQgaXMgbm90IHNldAojIENPTkZJR19IQU5HQ0hF
Q0tfVElNRVIgaXMgbm90IHNldApDT05GSUdfVENHX1RQTT15CkNPTkZJR19UQ0dfVFBNMl9I
TUFDPXkKQ09ORklHX0hXX1JBTkRPTV9UUE09eQpDT05GSUdfVENHX1RJU19DT1JFPXkKQ09O
RklHX1RDR19USVM9eQpDT05GSUdfVENHX1RJU19JMkM9eQpDT05GSUdfVENHX1RJU19JMkNf
Q1I1MD15CkNPTkZJR19UQ0dfVElTX0kyQ19BVE1FTD15CiMgQ09ORklHX1RDR19USVNfSTJD
X0lORklORU9OIGlzIG5vdCBzZXQKQ09ORklHX1RDR19USVNfSTJDX05VVk9UT049eQpDT05G
SUdfVENHX05TQz15CiMgQ09ORklHX1RDR19BVE1FTCBpcyBub3Qgc2V0CkNPTkZJR19UQ0df
SU5GSU5FT049eQpDT05GSUdfVENHX0NSQj15CkNPTkZJR19UQ0dfVlRQTV9QUk9YWT15CiMg
Q09ORklHX1RDR19USVNfU1QzM1pQMjRfSTJDIGlzIG5vdCBzZXQKIyBDT05GSUdfVEVMQ0xP
Q0sgaXMgbm90IHNldApDT05GSUdfWElMTFlCVVNfQ0xBU1M9eQpDT05GSUdfWElMTFlCVVM9
eQpDT05GSUdfWElMTFlCVVNfT0Y9eQojIGVuZCBvZiBDaGFyYWN0ZXIgZGV2aWNlcwoKIwoj
IEkyQyBzdXBwb3J0CiMKQ09ORklHX0kyQz15CiMgQ09ORklHX0FDUElfSTJDX09QUkVHSU9O
IGlzIG5vdCBzZXQKQ09ORklHX0kyQ19CT0FSRElORk89eQojIENPTkZJR19JMkNfQ09NUEFU
IGlzIG5vdCBzZXQKQ09ORklHX0kyQ19DSEFSREVWPXkKQ09ORklHX0kyQ19NVVg9eQoKIwoj
IE11bHRpcGxleGVyIEkyQyBDaGlwIHN1cHBvcnQKIwpDT05GSUdfSTJDX0FSQl9HUElPX0NI
QUxMRU5HRT15CkNPTkZJR19JMkNfTVVYX0dQSU89eQpDT05GSUdfSTJDX01VWF9HUE1VWD15
CkNPTkZJR19JMkNfTVVYX0xUQzQzMDY9eQpDT05GSUdfSTJDX01VWF9QQ0E5NTQxPXkKQ09O
RklHX0kyQ19NVVhfUENBOTU0eD15CiMgQ09ORklHX0kyQ19NVVhfUElOQ1RSTCBpcyBub3Qg
c2V0CkNPTkZJR19JMkNfTVVYX1JFRz15CiMgQ09ORklHX0kyQ19ERU1VWF9QSU5DVFJMIGlz
IG5vdCBzZXQKQ09ORklHX0kyQ19NVVhfTUxYQ1BMRD15CiMgZW5kIG9mIE11bHRpcGxleGVy
IEkyQyBDaGlwIHN1cHBvcnQKCiMgQ09ORklHX0kyQ19IRUxQRVJfQVVUTyBpcyBub3Qgc2V0
CkNPTkZJR19JMkNfU01CVVM9eQoKIwojIEkyQyBBbGdvcml0aG1zCiMKQ09ORklHX0kyQ19B
TEdPQklUPXkKQ09ORklHX0kyQ19BTEdPUENGPXkKQ09ORklHX0kyQ19BTEdPUENBPXkKIyBl
bmQgb2YgSTJDIEFsZ29yaXRobXMKCiMKIyBJMkMgSGFyZHdhcmUgQnVzIHN1cHBvcnQKIwoK
IwojIEFDUEkgZHJpdmVycwojCkNPTkZJR19JMkNfU0NNST15CgojCiMgSTJDIHN5c3RlbSBi
dXMgZHJpdmVycyAobW9zdGx5IGVtYmVkZGVkIC8gc3lzdGVtLW9uLWNoaXApCiMKQ09ORklH
X0kyQ19DQlVTX0dQSU89eQojIENPTkZJR19JMkNfREVTSUdOV0FSRV9QTEFURk9STSBpcyBu
b3Qgc2V0CiMgQ09ORklHX0kyQ19FTUVWMiBpcyBub3Qgc2V0CkNPTkZJR19JMkNfR1BJTz15
CiMgQ09ORklHX0kyQ19HUElPX0ZBVUxUX0lOSkVDVE9SIGlzIG5vdCBzZXQKQ09ORklHX0ky
Q19LRU1QTEQ9eQpDT05GSUdfSTJDX09DT1JFUz15CiMgQ09ORklHX0kyQ19QQ0FfUExBVEZP
Uk0gaXMgbm90IHNldAojIENPTkZJR19JMkNfUkszWCBpcyBub3Qgc2V0CiMgQ09ORklHX0ky
Q19TSU1URUMgaXMgbm90IHNldAojIENPTkZJR19JMkNfWElMSU5YIGlzIG5vdCBzZXQKCiMK
IyBFeHRlcm5hbCBJMkMvU01CdXMgYWRhcHRlciBkcml2ZXJzCiMKIyBDT05GSUdfSTJDX1BB
UlBPUlQgaXMgbm90IHNldAojIENPTkZJR19JMkNfVEFPU19FVk0gaXMgbm90IHNldAoKIwoj
IE90aGVyIEkyQy9TTUJ1cyBidXMgZHJpdmVycwojCkNPTkZJR19JMkNfUENBX0lTQT15CkNP
TkZJR19JMkNfQ1JPU19FQ19UVU5ORUw9eQpDT05GSUdfSTJDX1ZJUlRJTz15CiMgZW5kIG9m
IEkyQyBIYXJkd2FyZSBCdXMgc3VwcG9ydAoKQ09ORklHX0kyQ19TTEFWRT15CkNPTkZJR19J
MkNfU0xBVkVfRUVQUk9NPXkKQ09ORklHX0kyQ19TTEFWRV9URVNUVU5JVD15CkNPTkZJR19J
MkNfREVCVUdfQ09SRT15CiMgQ09ORklHX0kyQ19ERUJVR19BTEdPIGlzIG5vdCBzZXQKQ09O
RklHX0kyQ19ERUJVR19CVVM9eQojIGVuZCBvZiBJMkMgc3VwcG9ydAoKQ09ORklHX0kzQz15
CiMgQ09ORklHX0NETlNfSTNDX01BU1RFUiBpcyBub3Qgc2V0CkNPTkZJR19EV19JM0NfTUFT
VEVSPXkKQ09ORklHX1NWQ19JM0NfTUFTVEVSPXkKQ09ORklHX01JUElfSTNDX0hDST15CiMg
Q09ORklHX1NQSSBpcyBub3Qgc2V0CiMgQ09ORklHX1NQTUkgaXMgbm90IHNldApDT05GSUdf
SFNJPXkKQ09ORklHX0hTSV9CT0FSRElORk89eQoKIwojIEhTSSBjb250cm9sbGVycwojCgoj
CiMgSFNJIGNsaWVudHMKIwojIENPTkZJR19IU0lfQ0hBUiBpcyBub3Qgc2V0CkNPTkZJR19Q
UFM9eQpDT05GSUdfUFBTX0RFQlVHPXkKQ09ORklHX05UUF9QUFM9eQoKIwojIFBQUyBjbGll
bnRzIHN1cHBvcnQKIwpDT05GSUdfUFBTX0NMSUVOVF9LVElNRVI9eQpDT05GSUdfUFBTX0NM
SUVOVF9MRElTQz15CiMgQ09ORklHX1BQU19DTElFTlRfUEFSUE9SVCBpcyBub3Qgc2V0CkNP
TkZJR19QUFNfQ0xJRU5UX0dQSU89eQoKIwojIFBQUyBnZW5lcmF0b3JzIHN1cHBvcnQKIwoK
IwojIFBUUCBjbG9jayBzdXBwb3J0CiMKIyBDT05GSUdfUFRQXzE1ODhfQ0xPQ0sgaXMgbm90
IHNldApDT05GSUdfUFRQXzE1ODhfQ0xPQ0tfT1BUSU9OQUw9eQojIGVuZCBvZiBQVFAgY2xv
Y2sgc3VwcG9ydAoKQ09ORklHX1BJTkNUUkw9eQpDT05GSUdfR0VORVJJQ19QSU5DVFJMX0dS
T1VQUz15CkNPTkZJR19QSU5NVVg9eQpDT05GSUdfR0VORVJJQ19QSU5NVVhfRlVOQ1RJT05T
PXkKQ09ORklHX1BJTkNPTkY9eQpDT05GSUdfR0VORVJJQ19QSU5DT05GPXkKIyBDT05GSUdf
UElOQ1RSTF9BTUQgaXMgbm90IHNldAojIENPTkZJR19QSU5DVFJMX0FYUDIwOSBpcyBub3Qg
c2V0CkNPTkZJR19QSU5DVFJMX0FXOTUyMz15CiMgQ09ORklHX1BJTkNUUkxfQ1k4Qzk1WDAg
aXMgbm90IHNldApDT05GSUdfUElOQ1RSTF9EQTkwNjI9eQpDT05GSUdfUElOQ1RSTF9FUVVJ
TElCUklVTT15CiMgQ09ORklHX1BJTkNUUkxfTUNQMjNTMDggaXMgbm90IHNldApDT05GSUdf
UElOQ1RSTF9NSUNST0NISVBfU0dQSU89eQpDT05GSUdfUElOQ1RSTF9PQ0VMT1Q9eQpDT05G
SUdfUElOQ1RSTF9QQUxNQVM9eQpDT05GSUdfUElOQ1RSTF9TSU5HTEU9eQpDT05GSUdfUElO
Q1RSTF9TVE1GWD15CkNPTkZJR19QSU5DVFJMX1NYMTUwWD15CkNPTkZJR19QSU5DVFJMX1RQ
UzY1OTQ9eQpDT05GSUdfUElOQ1RSTF9DUzQyTDQzPXkKCiMKIyBJbnRlbCBwaW5jdHJsIGRy
aXZlcnMKIwpDT05GSUdfUElOQ1RSTF9CQVlUUkFJTD15CkNPTkZJR19QSU5DVFJMX0NIRVJS
WVZJRVc9eQpDT05GSUdfUElOQ1RSTF9MWU5YUE9JTlQ9eQpDT05GSUdfUElOQ1RSTF9JTlRF
TD15CkNPTkZJR19QSU5DVFJMX0lOVEVMX1BMQVRGT1JNPXkKQ09ORklHX1BJTkNUUkxfQUxE
RVJMQUtFPXkKQ09ORklHX1BJTkNUUkxfQlJPWFRPTj15CiMgQ09ORklHX1BJTkNUUkxfQ0FO
Tk9OTEFLRSBpcyBub3Qgc2V0CkNPTkZJR19QSU5DVFJMX0NFREFSRk9SSz15CkNPTkZJR19Q
SU5DVFJMX0RFTlZFUlRPTj15CiMgQ09ORklHX1BJTkNUUkxfRUxLSEFSVExBS0UgaXMgbm90
IHNldApDT05GSUdfUElOQ1RSTF9FTU1JVFNCVVJHPXkKIyBDT05GSUdfUElOQ1RSTF9HRU1J
TklMQUtFIGlzIG5vdCBzZXQKQ09ORklHX1BJTkNUUkxfSUNFTEFLRT15CkNPTkZJR19QSU5D
VFJMX0pBU1BFUkxBS0U9eQpDT05GSUdfUElOQ1RSTF9MQUtFRklFTEQ9eQojIENPTkZJR19Q
SU5DVFJMX0xFV0lTQlVSRyBpcyBub3Qgc2V0CiMgQ09ORklHX1BJTkNUUkxfTUVURU9STEFL
RSBpcyBub3Qgc2V0CkNPTkZJR19QSU5DVFJMX01FVEVPUlBPSU5UPXkKQ09ORklHX1BJTkNU
UkxfU1VOUklTRVBPSU5UPXkKIyBDT05GSUdfUElOQ1RSTF9USUdFUkxBS0UgaXMgbm90IHNl
dAojIGVuZCBvZiBJbnRlbCBwaW5jdHJsIGRyaXZlcnMKCiMKIyBSZW5lc2FzIHBpbmN0cmwg
ZHJpdmVycwojCiMgZW5kIG9mIFJlbmVzYXMgcGluY3RybCBkcml2ZXJzCgpDT05GSUdfR1BJ
T0xJQj15CkNPTkZJR19HUElPTElCX0ZBU1RQQVRIX0xJTUlUPTUxMgpDT05GSUdfT0ZfR1BJ
Tz15CkNPTkZJR19HUElPX0FDUEk9eQpDT05GSUdfR1BJT0xJQl9JUlFDSElQPXkKQ09ORklH
X09GX0dQSU9fTU1fR1BJT0NISVA9eQpDT05GSUdfR1BJT19DREVWPXkKQ09ORklHX0dQSU9f
Q0RFVl9WMT15CkNPTkZJR19HUElPX0dFTkVSSUM9eQpDT05GSUdfR1BJT19SRUdNQVA9eQoK
IwojIE1lbW9yeSBtYXBwZWQgR1BJTyBkcml2ZXJzCiMKQ09ORklHX0dQSU9fNzRYWF9NTUlP
PXkKQ09ORklHX0dQSU9fQUxURVJBPXkKIyBDT05GSUdfR1BJT19BTURQVCBpcyBub3Qgc2V0
CkNPTkZJR19HUElPX0NBREVOQ0U9eQpDT05GSUdfR1BJT19EV0FQQj15CiMgQ09ORklHX0dQ
SU9fRlRHUElPMDEwIGlzIG5vdCBzZXQKIyBDT05GSUdfR1BJT19HRU5FUklDX1BMQVRGT1JN
IGlzIG5vdCBzZXQKIyBDT05GSUdfR1BJT19HUkFOSVRFUkFQSURTIGlzIG5vdCBzZXQKQ09O
RklHX0dQSU9fR1JHUElPPXkKQ09ORklHX0dQSU9fSExXRD15CkNPTkZJR19HUElPX0xPR0lD
VkM9eQpDT05GSUdfR1BJT19NQjg2UzdYPXkKQ09ORklHX0dQSU9fTUVOWjEyNz15CkNPTkZJ
R19HUElPX1NJRklWRT15CiMgQ09ORklHX0dQSU9fU0lPWCBpcyBub3Qgc2V0CiMgQ09ORklH
X0dQSU9fU1lTQ09OIGlzIG5vdCBzZXQKQ09ORklHX0dQSU9fWElMSU5YPXkKIyBDT05GSUdf
R1BJT19BTURfRkNIIGlzIG5vdCBzZXQKIyBlbmQgb2YgTWVtb3J5IG1hcHBlZCBHUElPIGRy
aXZlcnMKCiMKIyBQb3J0LW1hcHBlZCBJL08gR1BJTyBkcml2ZXJzCiMKQ09ORklHX0dQSU9f
RjcxODhYPXkKQ09ORklHX0dQSU9fSVQ4Nz15CiMgQ09ORklHX0dQSU9fU0NIMzExWCBpcyBu
b3Qgc2V0CkNPTkZJR19HUElPX1dJTkJPTkQ9eQpDT05GSUdfR1BJT19XUzE2QzQ4PXkKIyBl
bmQgb2YgUG9ydC1tYXBwZWQgSS9PIEdQSU8gZHJpdmVycwoKIwojIEkyQyBHUElPIGV4cGFu
ZGVycwojCkNPTkZJR19HUElPX0FETlA9eQojIENPTkZJR19HUElPX0ZYTDY0MDggaXMgbm90
IHNldApDT05GSUdfR1BJT19EUzQ1MjA9eQojIENPTkZJR19HUElPX0dXX1BMRCBpcyBub3Qg
c2V0CiMgQ09ORklHX0dQSU9fTUFYNzMwMCBpcyBub3Qgc2V0CiMgQ09ORklHX0dQSU9fTUFY
NzMyWCBpcyBub3Qgc2V0CiMgQ09ORklHX0dQSU9fUENBOTUzWCBpcyBub3Qgc2V0CkNPTkZJ
R19HUElPX1BDQTk1NzA9eQojIENPTkZJR19HUElPX1BDRjg1N1ggaXMgbm90IHNldApDT05G
SUdfR1BJT19UUElDMjgxMD15CiMgZW5kIG9mIEkyQyBHUElPIGV4cGFuZGVycwoKIwojIE1G
RCBHUElPIGV4cGFuZGVycwojCiMgQ09ORklHX0dQSU9fQURQNTUyMCBpcyBub3Qgc2V0CkNP
TkZJR19HUElPX0FSSVpPTkE9eQpDT05GSUdfR1BJT19CRDcxODE1PXkKIyBDT05GSUdfR1BJ
T19CRDcxODI4IGlzIG5vdCBzZXQKQ09ORklHX0dQSU9fQkQ5NTcxTVdWPXkKQ09ORklHX0dQ
SU9fQ1JPU19FQz15CiMgQ09ORklHX0dQSU9fRUxLSEFSVExBS0UgaXMgbm90IHNldApDT05G
SUdfR1BJT19LRU1QTEQ9eQpDT05GSUdfR1BJT19MUDM5NDM9eQojIENPTkZJR19HUElPX0xQ
ODc1NjUgaXMgbm90IHNldApDT05GSUdfR1BJT19NQVg3NzY1MD15CkNPTkZJR19HUElPX1BB
TE1BUz15CkNPTkZJR19HUElPX1JDNVQ1ODM9eQpDT05GSUdfR1BJT19TVE1QRT15CiMgQ09O
RklHX0dQSU9fVEMzNTg5WCBpcyBub3Qgc2V0CkNPTkZJR19HUElPX1RQUzY1MDg2PXkKIyBD
T05GSUdfR1BJT19UUFM2NTIxOCBpcyBub3Qgc2V0CkNPTkZJR19HUElPX1RQUzY1MjE5PXkK
IyBDT05GSUdfR1BJT19UUFM2NTg2WCBpcyBub3Qgc2V0CiMgQ09ORklHX0dQSU9fVFBTNjU5
MTAgaXMgbm90IHNldApDT05GSUdfR1BJT19UUFM2NTkxMj15CiMgQ09ORklHX0dQSU9fVFBT
Njg0NzAgaXMgbm90IHNldApDT05GSUdfR1BJT19UV0w0MDMwPXkKQ09ORklHX0dQSU9fV0hJ
U0tFWV9DT1ZFPXkKIyBDT05GSUdfR1BJT19XTTgzMVggaXMgbm90IHNldApDT05GSUdfR1BJ
T19XTTgzNTA9eQojIENPTkZJR19HUElPX1dNODk5NCBpcyBub3Qgc2V0CiMgZW5kIG9mIE1G
RCBHUElPIGV4cGFuZGVycwoKIwojIFZpcnR1YWwgR1BJTyBkcml2ZXJzCiMKIyBDT05GSUdf
R1BJT19BR0dSRUdBVE9SIGlzIG5vdCBzZXQKQ09ORklHX0dQSU9fTEFUQ0g9eQojIENPTkZJ
R19HUElPX01PQ0tVUCBpcyBub3Qgc2V0CiMgQ09ORklHX0dQSU9fVklSVElPIGlzIG5vdCBz
ZXQKIyBDT05GSUdfR1BJT19TSU0gaXMgbm90IHNldAojIGVuZCBvZiBWaXJ0dWFsIEdQSU8g
ZHJpdmVycwoKIwojIEdQSU8gRGVidWdnaW5nIHV0aWxpdGllcwojCiMgZW5kIG9mIEdQSU8g
RGVidWdnaW5nIHV0aWxpdGllcwoKQ09ORklHX1cxPXkKQ09ORklHX1cxX0NPTj15CgojCiMg
MS13aXJlIEJ1cyBNYXN0ZXJzCiMKQ09ORklHX1cxX01BU1RFUl9BTURfQVhJPXkKQ09ORklH
X1cxX01BU1RFUl9EUzI0ODI9eQpDT05GSUdfVzFfTUFTVEVSX0dQSU89eQojIENPTkZJR19X
MV9NQVNURVJfU0dJIGlzIG5vdCBzZXQKIyBlbmQgb2YgMS13aXJlIEJ1cyBNYXN0ZXJzCgoj
CiMgMS13aXJlIFNsYXZlcwojCkNPTkZJR19XMV9TTEFWRV9USEVSTT15CkNPTkZJR19XMV9T
TEFWRV9TTUVNPXkKIyBDT05GSUdfVzFfU0xBVkVfRFMyNDA1IGlzIG5vdCBzZXQKQ09ORklH
X1cxX1NMQVZFX0RTMjQwOD15CiMgQ09ORklHX1cxX1NMQVZFX0RTMjQwOF9SRUFEQkFDSyBp
cyBub3Qgc2V0CkNPTkZJR19XMV9TTEFWRV9EUzI0MTM9eQpDT05GSUdfVzFfU0xBVkVfRFMy
NDA2PXkKQ09ORklHX1cxX1NMQVZFX0RTMjQyMz15CkNPTkZJR19XMV9TTEFWRV9EUzI4MDU9
eQpDT05GSUdfVzFfU0xBVkVfRFMyNDMwPXkKIyBDT05GSUdfVzFfU0xBVkVfRFMyNDMxIGlz
IG5vdCBzZXQKQ09ORklHX1cxX1NMQVZFX0RTMjQzMz15CkNPTkZJR19XMV9TTEFWRV9EUzI0
MzNfQ1JDPXkKQ09ORklHX1cxX1NMQVZFX0RTMjQzOD15CiMgQ09ORklHX1cxX1NMQVZFX0RT
MjUwWCBpcyBub3Qgc2V0CkNPTkZJR19XMV9TTEFWRV9EUzI3ODA9eQpDT05GSUdfVzFfU0xB
VkVfRFMyNzgxPXkKQ09ORklHX1cxX1NMQVZFX0RTMjhFMDQ9eQpDT05GSUdfVzFfU0xBVkVf
RFMyOEUxNz15CiMgZW5kIG9mIDEtd2lyZSBTbGF2ZXMKCiMgQ09ORklHX1BPV0VSX1JFU0VU
IGlzIG5vdCBzZXQKQ09ORklHX1BPV0VSX1NFUVVFTkNJTkc9eQpDT05GSUdfUE9XRVJfU0VR
VUVOQ0lOR19RQ09NX1dDTj15CkNPTkZJR19QT1dFUl9TVVBQTFk9eQojIENPTkZJR19QT1dF
Ul9TVVBQTFlfREVCVUcgaXMgbm90IHNldApDT05GSUdfUE9XRVJfU1VQUExZX0hXTU9OPXkK
IyBDT05GSUdfR0VORVJJQ19BRENfQkFUVEVSWSBpcyBub3Qgc2V0CkNPTkZJR19JUDVYWFhf
UE9XRVI9eQpDT05GSUdfV004MzFYX0JBQ0tVUD15CkNPTkZJR19XTTgzMVhfUE9XRVI9eQpD
T05GSUdfV004MzUwX1BPV0VSPXkKQ09ORklHX1RFU1RfUE9XRVI9eQpDT05GSUdfQ0hBUkdF
Ul9BRFA1MDYxPXkKQ09ORklHX0JBVFRFUllfQUNUODk0NUE9eQojIENPTkZJR19CQVRURVJZ
X0NXMjAxNSBpcyBub3Qgc2V0CiMgQ09ORklHX0JBVFRFUllfRFMyNzYwIGlzIG5vdCBzZXQK
Q09ORklHX0JBVFRFUllfRFMyNzgwPXkKQ09ORklHX0JBVFRFUllfRFMyNzgxPXkKQ09ORklH
X0JBVFRFUllfRFMyNzgyPXkKIyBDT05GSUdfQkFUVEVSWV9PTFBDIGlzIG5vdCBzZXQKIyBD
T05GSUdfQkFUVEVSWV9TQU1TVU5HX1NESSBpcyBub3Qgc2V0CkNPTkZJR19CQVRURVJZX1NC
Uz15CkNPTkZJR19DSEFSR0VSX1NCUz15CkNPTkZJR19NQU5BR0VSX1NCUz15CkNPTkZJR19C
QVRURVJZX0JRMjdYWFg9eQojIENPTkZJR19CQVRURVJZX0JRMjdYWFhfSTJDIGlzIG5vdCBz
ZXQKIyBDT05GSUdfQkFUVEVSWV9CUTI3WFhYX0hEUSBpcyBub3Qgc2V0CkNPTkZJR19CQVRU
RVJZX0RBOTE1MD15CiMgQ09ORklHX0FYUDIwWF9QT1dFUiBpcyBub3Qgc2V0CiMgQ09ORklH
X0JBVFRFUllfTUFYMTcwNDAgaXMgbm90IHNldApDT05GSUdfQkFUVEVSWV9NQVgxNzA0Mj15
CkNPTkZJR19CQVRURVJZX01BWDE3MjFYPXkKIyBDT05GSUdfQkFUVEVSWV9UV0w0MDMwX01B
REMgaXMgbm90IHNldApDT05GSUdfQ0hBUkdFUl9QQ0Y1MDYzMz15CkNPTkZJR19CQVRURVJZ
X1JYNTE9eQpDT05GSUdfQ0hBUkdFUl9NQVg4OTAzPXkKQ09ORklHX0NIQVJHRVJfVFdMNDAz
MD15CkNPTkZJR19DSEFSR0VSX0xQODcyNz15CkNPTkZJR19DSEFSR0VSX0xQODc4OD15CiMg
Q09ORklHX0NIQVJHRVJfR1BJTyBpcyBub3Qgc2V0CkNPTkZJR19DSEFSR0VSX01BTkFHRVI9
eQojIENPTkZJR19DSEFSR0VSX0xUMzY1MSBpcyBub3Qgc2V0CkNPTkZJR19DSEFSR0VSX0xU
QzQxNjJMPXkKQ09ORklHX0NIQVJHRVJfTUFYMTQ1Nzc9eQpDT05GSUdfQ0hBUkdFUl9ERVRF
Q1RPUl9NQVgxNDY1Nj15CkNPTkZJR19DSEFSR0VSX01BWDc3NjUwPXkKQ09ORklHX0NIQVJH
RVJfTUFYNzc2OTM9eQojIENPTkZJR19DSEFSR0VSX01BWDc3OTc2IGlzIG5vdCBzZXQKQ09O
RklHX0NIQVJHRVJfTVAyNjI5PXkKQ09ORklHX0NIQVJHRVJfTVQ2MzcwPXkKQ09ORklHX0NI
QVJHRVJfQlEyNDE1WD15CkNPTkZJR19DSEFSR0VSX0JRMjQxOTA9eQpDT05GSUdfQ0hBUkdF
Ul9CUTI0MjU3PXkKQ09ORklHX0NIQVJHRVJfQlEyNDczNT15CkNPTkZJR19DSEFSR0VSX0JR
MjUxNVg9eQpDT05GSUdfQ0hBUkdFUl9CUTI1ODkwPXkKQ09ORklHX0NIQVJHRVJfQlEyNTk4
MD15CkNPTkZJR19DSEFSR0VSX0JRMjU2WFg9eQpDT05GSUdfQ0hBUkdFUl9TTUIzNDc9eQpD
T05GSUdfQ0hBUkdFUl9UUFM2NTA5MD15CiMgQ09ORklHX0NIQVJHRVJfVFBTNjUyMTcgaXMg
bm90IHNldApDT05GSUdfQkFUVEVSWV9HQVVHRV9MVEMyOTQxPXkKQ09ORklHX0JBVFRFUllf
R09MREZJU0g9eQpDT05GSUdfQkFUVEVSWV9SVDUwMzM9eQpDT05GSUdfQ0hBUkdFUl9SVDUw
MzM9eQpDT05GSUdfQ0hBUkdFUl9SVDk0NTU9eQpDT05GSUdfQ0hBUkdFUl9SVDk0Njc9eQpD
T05GSUdfQ0hBUkdFUl9SVDk0NzE9eQpDT05GSUdfQ0hBUkdFUl9DUk9TX1VTQlBEPXkKIyBD
T05GSUdfQ0hBUkdFUl9DUk9TX1BDSEcgaXMgbm90IHNldApDT05GSUdfQ0hBUkdFUl9DUk9T
X0NPTlRST0w9eQpDT05GSUdfQ0hBUkdFUl9VQ1MxMDAyPXkKIyBDT05GSUdfQ0hBUkdFUl9C
RDk5OTU0IGlzIG5vdCBzZXQKQ09ORklHX0NIQVJHRVJfV0lMQ089eQpDT05GSUdfUk41VDYx
OF9QT1dFUj15CkNPTkZJR19CQVRURVJZX1VHMzEwNT15CiMgQ09ORklHX0ZVRUxfR0FVR0Vf
TU04MDEzIGlzIG5vdCBzZXQKQ09ORklHX0hXTU9OPXkKQ09ORklHX0hXTU9OX1ZJRD15CiMg
Q09ORklHX0hXTU9OX0RFQlVHX0NISVAgaXMgbm90IHNldAoKIwojIE5hdGl2ZSBkcml2ZXJz
CiMKQ09ORklHX1NFTlNPUlNfQUJJVFVHVVJVPXkKIyBDT05GSUdfU0VOU09SU19BQklUVUdV
UlUzIGlzIG5vdCBzZXQKQ09ORklHX1NFTlNPUlNfQUQ3NDE0PXkKIyBDT05GSUdfU0VOU09S
U19BRDc0MTggaXMgbm90IHNldApDT05GSUdfU0VOU09SU19BRE0xMDIxPXkKQ09ORklHX1NF
TlNPUlNfQURNMTAyNT15CkNPTkZJR19TRU5TT1JTX0FETTEwMjY9eQpDT05GSUdfU0VOU09S
U19BRE0xMDI5PXkKQ09ORklHX1NFTlNPUlNfQURNMTAzMT15CkNPTkZJR19TRU5TT1JTX0FE
TTExNzc9eQpDT05GSUdfU0VOU09SU19BRE05MjQwPXkKQ09ORklHX1NFTlNPUlNfQURUN1gx
MD15CkNPTkZJR19TRU5TT1JTX0FEVDc0MTA9eQojIENPTkZJR19TRU5TT1JTX0FEVDc0MTEg
aXMgbm90IHNldApDT05GSUdfU0VOU09SU19BRFQ3NDYyPXkKQ09ORklHX1NFTlNPUlNfQURU
NzQ3MD15CkNPTkZJR19TRU5TT1JTX0FEVDc0NzU9eQpDT05GSUdfU0VOU09SU19BSFQxMD15
CkNPTkZJR19TRU5TT1JTX0FTMzcwPXkKQ09ORklHX1NFTlNPUlNfQVNDNzYyMT15CkNPTkZJ
R19TRU5TT1JTX0FTVVNfUk9HX1JZVUpJTj15CkNPTkZJR19TRU5TT1JTX0FYSV9GQU5fQ09O
VFJPTD15CkNPTkZJR19TRU5TT1JTX0FQUExFU01DPXkKIyBDT05GSUdfU0VOU09SU19BU0Ix
MDAgaXMgbm90IHNldAojIENPTkZJR19TRU5TT1JTX0FUWFAxIGlzIG5vdCBzZXQKQ09ORklH
X1NFTlNPUlNfQ0hJUENBUDI9eQojIENPTkZJR19TRU5TT1JTX0NPUlNBSVJfQ1BSTyBpcyBu
b3Qgc2V0CkNPTkZJR19TRU5TT1JTX0NPUlNBSVJfUFNVPXkKQ09ORklHX1NFTlNPUlNfQ1JP
U19FQz15CiMgQ09ORklHX1NFTlNPUlNfRFJJVkVURU1QIGlzIG5vdCBzZXQKQ09ORklHX1NF
TlNPUlNfRFM2MjA9eQpDT05GSUdfU0VOU09SU19EUzE2MjE9eQpDT05GSUdfU0VOU09SU19E
RUxMX1NNTT15CiMgQ09ORklHX0k4SyBpcyBub3Qgc2V0CiMgQ09ORklHX1NFTlNPUlNfRjcx
ODA1RiBpcyBub3Qgc2V0CkNPTkZJR19TRU5TT1JTX0Y3MTg4MkZHPXkKIyBDT05GSUdfU0VO
U09SU19GNzUzNzVTIGlzIG5vdCBzZXQKIyBDT05GSUdfU0VOU09SU19HU0MgaXMgbm90IHNl
dApDT05GSUdfU0VOU09SU19NQzEzNzgzX0FEQz15CiMgQ09ORklHX1NFTlNPUlNfRlNDSE1E
IGlzIG5vdCBzZXQKQ09ORklHX1NFTlNPUlNfR0w1MThTTT15CkNPTkZJR19TRU5TT1JTX0dM
NTIwU009eQpDT05GSUdfU0VOU09SU19HNzYwQT15CiMgQ09ORklHX1NFTlNPUlNfRzc2MiBp
cyBub3Qgc2V0CkNPTkZJR19TRU5TT1JTX0dQSU9fRkFOPXkKQ09ORklHX1NFTlNPUlNfSElI
NjEzMD15CkNPTkZJR19TRU5TT1JTX0hTMzAwMT15CiMgQ09ORklHX1NFTlNPUlNfSUJNQUVN
IGlzIG5vdCBzZXQKIyBDT05GSUdfU0VOU09SU19JQk1QRVggaXMgbm90IHNldApDT05GSUdf
U0VOU09SU19JSU9fSFdNT049eQpDT05GSUdfU0VOU09SU19DT1JFVEVNUD15CkNPTkZJR19T
RU5TT1JTX0lUODc9eQpDT05GSUdfU0VOU09SU19KQzQyPXkKQ09ORklHX1NFTlNPUlNfUE9X
UjEyMjA9eQpDT05GSUdfU0VOU09SU19MRU5PVk9fRUM9eQojIENPTkZJR19TRU5TT1JTX0xJ
TkVBR0UgaXMgbm90IHNldApDT05GSUdfU0VOU09SU19MVEMyOTQ1PXkKQ09ORklHX1NFTlNP
UlNfTFRDMjk0Nz15CkNPTkZJR19TRU5TT1JTX0xUQzI5NDdfSTJDPXkKIyBDT05GSUdfU0VO
U09SU19MVEMyOTkwIGlzIG5vdCBzZXQKQ09ORklHX1NFTlNPUlNfTFRDMjk5MT15CkNPTkZJ
R19TRU5TT1JTX0xUQzI5OTI9eQpDT05GSUdfU0VOU09SU19MVEM0MTUxPXkKIyBDT05GSUdf
U0VOU09SU19MVEM0MjE1IGlzIG5vdCBzZXQKQ09ORklHX1NFTlNPUlNfTFRDNDIyMj15CkNP
TkZJR19TRU5TT1JTX0xUQzQyNDU9eQpDT05GSUdfU0VOU09SU19MVEM0MjYwPXkKQ09ORklH
X1NFTlNPUlNfTFRDNDI2MT15CkNPTkZJR19TRU5TT1JTX0xUQzQyODI9eQpDT05GSUdfU0VO
U09SU19NQVgxMjc9eQpDT05GSUdfU0VOU09SU19NQVgxNjA2NT15CkNPTkZJR19TRU5TT1JT
X01BWDE2MTk9eQpDT05GSUdfU0VOU09SU19NQVgxNjY4PXkKQ09ORklHX1NFTlNPUlNfTUFY
MTk3PXkKIyBDT05GSUdfU0VOU09SU19NQVgzMTczMCBpcyBub3Qgc2V0CkNPTkZJR19TRU5T
T1JTX01BWDMxNzYwPXkKIyBDT05GSUdfTUFYMzE4MjcgaXMgbm90IHNldApDT05GSUdfU0VO
U09SU19NQVg2NjIwPXkKQ09ORklHX1NFTlNPUlNfTUFYNjYyMT15CkNPTkZJR19TRU5TT1JT
X01BWDY2Mzk9eQpDT05GSUdfU0VOU09SU19NQVg2NjQyPXkKQ09ORklHX1NFTlNPUlNfTUFY
NjY1MD15CkNPTkZJR19TRU5TT1JTX01BWDY2OTc9eQpDT05GSUdfU0VOU09SU19NQVgzMTc5
MD15CkNPTkZJR19TRU5TT1JTX01DMzRWUjUwMD15CkNPTkZJR19TRU5TT1JTX01DUDMwMjE9
eQojIENPTkZJR19TRU5TT1JTX01MWFJFR19GQU4gaXMgbm90IHNldApDT05GSUdfU0VOU09S
U19UQzY1ND15CkNPTkZJR19TRU5TT1JTX1RQUzIzODYxPXkKIyBDT05GSUdfU0VOU09SU19N
RU5GMjFCTUNfSFdNT04gaXMgbm90IHNldAojIENPTkZJR19TRU5TT1JTX01SNzUyMDMgaXMg
bm90IHNldAojIENPTkZJR19TRU5TT1JTX0xNNjMgaXMgbm90IHNldAojIENPTkZJR19TRU5T
T1JTX0xNNzMgaXMgbm90IHNldApDT05GSUdfU0VOU09SU19MTTc1PXkKQ09ORklHX1NFTlNP
UlNfTE03Nz15CkNPTkZJR19TRU5TT1JTX0xNNzg9eQojIENPTkZJR19TRU5TT1JTX0xNODAg
aXMgbm90IHNldApDT05GSUdfU0VOU09SU19MTTgzPXkKIyBDT05GSUdfU0VOU09SU19MTTg1
IGlzIG5vdCBzZXQKQ09ORklHX1NFTlNPUlNfTE04Nz15CiMgQ09ORklHX1NFTlNPUlNfTE05
MCBpcyBub3Qgc2V0CkNPTkZJR19TRU5TT1JTX0xNOTI9eQojIENPTkZJR19TRU5TT1JTX0xN
OTMgaXMgbm90IHNldApDT05GSUdfU0VOU09SU19MTTk1MjM0PXkKQ09ORklHX1NFTlNPUlNf
TE05NTI0MT15CkNPTkZJR19TRU5TT1JTX0xNOTUyNDU9eQpDT05GSUdfU0VOU09SU19QQzg3
MzYwPXkKQ09ORklHX1NFTlNPUlNfUEM4NzQyNz15CkNPTkZJR19TRU5TT1JTX05UQ19USEVS
TUlTVE9SPXkKIyBDT05GSUdfU0VOU09SU19OQ1Q2NjgzIGlzIG5vdCBzZXQKQ09ORklHX1NF
TlNPUlNfTkNUNjc3NV9DT1JFPXkKIyBDT05GSUdfU0VOU09SU19OQ1Q2Nzc1IGlzIG5vdCBz
ZXQKQ09ORklHX1NFTlNPUlNfTkNUNjc3NV9JMkM9eQpDT05GSUdfU0VOU09SU19OQ1Q3ODAy
PXkKQ09ORklHX1NFTlNPUlNfTlBDTTdYWD15CkNPTkZJR19TRU5TT1JTX09DQ19QOF9JMkM9
eQpDT05GSUdfU0VOU09SU19PQ0M9eQpDT05GSUdfU0VOU09SU19PWFA9eQpDT05GSUdfU0VO
U09SU19QQ0Y4NTkxPXkKQ09ORklHX1BNQlVTPXkKIyBDT05GSUdfU0VOU09SU19QTUJVUyBp
cyBub3Qgc2V0CkNPTkZJR19TRU5TT1JTX0FDQkVMX0ZTRzAzMj15CiMgQ09ORklHX1NFTlNP
UlNfQURNMTI2NiBpcyBub3Qgc2V0CkNPTkZJR19TRU5TT1JTX0FETTEyNzU9eQojIENPTkZJ
R19TRU5TT1JTX0FEUDEwNTAgaXMgbm90IHNldApDT05GSUdfU0VOU09SU19CRUxfUEZFPXkK
Q09ORklHX1NFTlNPUlNfQlBBX1JTNjAwPXkKIyBDT05GSUdfU0VOU09SU19ERUxUQV9BSEU1
MERDX0ZBTiBpcyBub3Qgc2V0CkNPTkZJR19TRU5TT1JTX0ZTUF8zWT15CiMgQ09ORklHX1NF
TlNPUlNfSUJNX0NGRlBTIGlzIG5vdCBzZXQKQ09ORklHX1NFTlNPUlNfRFBTOTIwQUI9eQpD
T05GSUdfU0VOU09SU19JTlNQVVJfSVBTUFM9eQpDT05GSUdfU0VOU09SU19JUjM1MjIxPXkK
Q09ORklHX1NFTlNPUlNfSVIzNjAyMT15CiMgQ09ORklHX1NFTlNPUlNfSVIzODA2NCBpcyBu
b3Qgc2V0CkNPTkZJR19TRU5TT1JTX0lSUFM1NDAxPXkKQ09ORklHX1NFTlNPUlNfSVNMNjgx
Mzc9eQpDT05GSUdfU0VOU09SU19MTTI1MDY2PXkKIyBDT05GSUdfU0VOU09SU19MTTI1MDY2
X1JFR1VMQVRPUiBpcyBub3Qgc2V0CiMgQ09ORklHX1NFTlNPUlNfTFQ3MTgyUyBpcyBub3Qg
c2V0CkNPTkZJR19TRU5TT1JTX0xUQzI5Nzg9eQojIENPTkZJR19TRU5TT1JTX0xUQzI5Nzhf
UkVHVUxBVE9SIGlzIG5vdCBzZXQKIyBDT05GSUdfU0VOU09SU19MVEMzODE1IGlzIG5vdCBz
ZXQKIyBDT05GSUdfU0VOU09SU19MVEM0Mjg2IGlzIG5vdCBzZXQKQ09ORklHX1NFTlNPUlNf
TUFYMTUzMDE9eQojIENPTkZJR19TRU5TT1JTX01BWDE2MDY0IGlzIG5vdCBzZXQKQ09ORklH
X1NFTlNPUlNfTUFYMTY2MDE9eQojIENPTkZJR19TRU5TT1JTX01BWDIwNzMwIGlzIG5vdCBz
ZXQKIyBDT05GSUdfU0VOU09SU19NQVgyMDc1MSBpcyBub3Qgc2V0CkNPTkZJR19TRU5TT1JT
X01BWDMxNzg1PXkKQ09ORklHX1NFTlNPUlNfTUFYMzQ0NDA9eQojIENPTkZJR19TRU5TT1JT
X01BWDg2ODggaXMgbm90IHNldAojIENPTkZJR19TRU5TT1JTX01QMjg1NiBpcyBub3Qgc2V0
CiMgQ09ORklHX1NFTlNPUlNfTVAyODg4IGlzIG5vdCBzZXQKIyBDT05GSUdfU0VOU09SU19N
UDI4OTEgaXMgbm90IHNldApDT05GSUdfU0VOU09SU19NUDI5NzU9eQojIENPTkZJR19TRU5T
T1JTX01QMjk5MyBpcyBub3Qgc2V0CkNPTkZJR19TRU5TT1JTX01QMjk3NV9SRUdVTEFUT1I9
eQojIENPTkZJR19TRU5TT1JTX01QNTAyMyBpcyBub3Qgc2V0CkNPTkZJR19TRU5TT1JTX01Q
NTkyMD15CkNPTkZJR19TRU5TT1JTX01QNTk5MD15CkNPTkZJR19TRU5TT1JTX01QOTk0MT15
CkNPTkZJR19TRU5TT1JTX01QUTc5MzJfUkVHVUxBVE9SPXkKQ09ORklHX1NFTlNPUlNfTVBR
NzkzMj15CiMgQ09ORklHX1NFTlNPUlNfTVBRODc4NSBpcyBub3Qgc2V0CiMgQ09ORklHX1NF
TlNPUlNfUElNNDMyOCBpcyBub3Qgc2V0CkNPTkZJR19TRU5TT1JTX1BMSTEyMDlCQz15CiMg
Q09ORklHX1NFTlNPUlNfUExJMTIwOUJDX1JFR1VMQVRPUiBpcyBub3Qgc2V0CiMgQ09ORklH
X1NFTlNPUlNfUE02NzY0VFIgaXMgbm90IHNldApDT05GSUdfU0VOU09SU19QWEUxNjEwPXkK
Q09ORklHX1NFTlNPUlNfUTU0U0oxMDhBMj15CiMgQ09ORklHX1NFTlNPUlNfU1RQRERDNjAg
aXMgbm90IHNldApDT05GSUdfU0VOU09SU19UREEzODY0MD15CiMgQ09ORklHX1NFTlNPUlNf
VERBMzg2NDBfUkVHVUxBVE9SIGlzIG5vdCBzZXQKQ09ORklHX1NFTlNPUlNfVFBTNDA0MjI9
eQpDT05GSUdfU0VOU09SU19UUFM1MzY3OT15CiMgQ09ORklHX1NFTlNPUlNfVFBTNTQ2RDI0
IGlzIG5vdCBzZXQKQ09ORklHX1NFTlNPUlNfVUNEOTAwMD15CiMgQ09ORklHX1NFTlNPUlNf
VUNEOTIwMCBpcyBub3Qgc2V0CkNPTkZJR19TRU5TT1JTX1hEUDcxMD15CkNPTkZJR19TRU5T
T1JTX1hEUEUxNTI9eQojIENPTkZJR19TRU5TT1JTX1hEUEUxMjIgaXMgbm90IHNldApDT05G
SUdfU0VOU09SU19aTDYxMDA9eQpDT05GSUdfU0VOU09SU19QVDUxNjFMPXkKQ09ORklHX1NF
TlNPUlNfUFdNX0ZBTj15CkNPTkZJR19TRU5TT1JTX1NCVFNJPXkKIyBDT05GSUdfU0VOU09S
U19TQlJNSSBpcyBub3Qgc2V0CiMgQ09ORklHX1NFTlNPUlNfU0hUMTUgaXMgbm90IHNldApD
T05GSUdfU0VOU09SU19TSFQyMT15CkNPTkZJR19TRU5TT1JTX1NIVDN4PXkKQ09ORklHX1NF
TlNPUlNfU0hUNHg9eQpDT05GSUdfU0VOU09SU19TSFRDMT15CkNPTkZJR19TRU5TT1JTX1NZ
NzYzNkE9eQpDT05GSUdfU0VOU09SU19ETUUxNzM3PXkKIyBDT05GSUdfU0VOU09SU19FTUMx
NDAzIGlzIG5vdCBzZXQKQ09ORklHX1NFTlNPUlNfRU1DMjEwMz15CiMgQ09ORklHX1NFTlNP
UlNfRU1DMjMwNSBpcyBub3Qgc2V0CkNPTkZJR19TRU5TT1JTX0VNQzZXMjAxPXkKIyBDT05G
SUdfU0VOU09SU19TTVNDNDdNMSBpcyBub3Qgc2V0CkNPTkZJR19TRU5TT1JTX1NNU0M0N00x
OTI9eQojIENPTkZJR19TRU5TT1JTX1NNU0M0N0IzOTcgaXMgbm90IHNldApDT05GSUdfU0VO
U09SU19TVFRTNzUxPXkKIyBDT05GSUdfU0VOU09SU19BREMxMjhEODE4IGlzIG5vdCBzZXQK
Q09ORklHX1NFTlNPUlNfQURTNzgyOD15CiMgQ09ORklHX1NFTlNPUlNfQU1DNjgyMSBpcyBu
b3Qgc2V0CkNPTkZJR19TRU5TT1JTX0lOQTIwOT15CkNPTkZJR19TRU5TT1JTX0lOQTJYWD15
CkNPTkZJR19TRU5TT1JTX0lOQTIzOD15CiMgQ09ORklHX1NFTlNPUlNfSU5BMzIyMSBpcyBu
b3Qgc2V0CkNPTkZJR19TRU5TT1JTX1NQRDUxMTg9eQojIENPTkZJR19TRU5TT1JTX1NQRDUx
MThfREVURUNUIGlzIG5vdCBzZXQKIyBDT05GSUdfU0VOU09SU19UQzc0IGlzIG5vdCBzZXQK
Q09ORklHX1NFTlNPUlNfVEhNQzUwPXkKQ09ORklHX1NFTlNPUlNfVE1QMTAyPXkKQ09ORklH
X1NFTlNPUlNfVE1QMTAzPXkKIyBDT05GSUdfU0VOU09SU19UTVAxMDggaXMgbm90IHNldAoj
IENPTkZJR19TRU5TT1JTX1RNUDQwMSBpcyBub3Qgc2V0CkNPTkZJR19TRU5TT1JTX1RNUDQy
MT15CiMgQ09ORklHX1NFTlNPUlNfVE1QNDY0IGlzIG5vdCBzZXQKQ09ORklHX1NFTlNPUlNf
VE1QNTEzPXkKIyBDT05GSUdfU0VOU09SU19WSUFfQ1BVVEVNUCBpcyBub3Qgc2V0CkNPTkZJ
R19TRU5TT1JTX1ZUMTIxMT15CiMgQ09ORklHX1NFTlNPUlNfVzgzNzczRyBpcyBub3Qgc2V0
CiMgQ09ORklHX1NFTlNPUlNfVzgzNzgxRCBpcyBub3Qgc2V0CkNPTkZJR19TRU5TT1JTX1c4
Mzc5MUQ9eQpDT05GSUdfU0VOU09SU19XODM3OTJEPXkKIyBDT05GSUdfU0VOU09SU19XODM3
OTMgaXMgbm90IHNldApDT05GSUdfU0VOU09SU19XODM3OTU9eQpDT05GSUdfU0VOU09SU19X
ODM3OTVfRkFOQ1RSTD15CiMgQ09ORklHX1NFTlNPUlNfVzgzTDc4NVRTIGlzIG5vdCBzZXQK
IyBDT05GSUdfU0VOU09SU19XODNMNzg2TkcgaXMgbm90IHNldAojIENPTkZJR19TRU5TT1JT
X1c4MzYyN0hGIGlzIG5vdCBzZXQKQ09ORklHX1NFTlNPUlNfVzgzNjI3RUhGPXkKIyBDT05G
SUdfU0VOU09SU19XTTgzMVggaXMgbm90IHNldApDT05GSUdfU0VOU09SU19XTTgzNTA9eQpD
T05GSUdfU0VOU09SU19YR0VORT15CgojCiMgQUNQSSBkcml2ZXJzCiMKIyBDT05GSUdfU0VO
U09SU19BQ1BJX1BPV0VSIGlzIG5vdCBzZXQKQ09ORklHX1NFTlNPUlNfQVRLMDExMD15CkNP
TkZJR19TRU5TT1JTX0FTVVNfV01JPXkKQ09ORklHX1NFTlNPUlNfQVNVU19FQz15CiMgQ09O
RklHX1NFTlNPUlNfSFBfV01JIGlzIG5vdCBzZXQKQ09ORklHX1RIRVJNQUw9eQpDT05GSUdf
VEhFUk1BTF9ORVRMSU5LPXkKIyBDT05GSUdfVEhFUk1BTF9TVEFUSVNUSUNTIGlzIG5vdCBz
ZXQKQ09ORklHX1RIRVJNQUxfRU1FUkdFTkNZX1BPV0VST0ZGX0RFTEFZX01TPTAKQ09ORklH
X1RIRVJNQUxfSFdNT049eQpDT05GSUdfVEhFUk1BTF9PRj15CkNPTkZJR19USEVSTUFMX0RF
RkFVTFRfR09WX1NURVBfV0lTRT15CiMgQ09ORklHX1RIRVJNQUxfREVGQVVMVF9HT1ZfRkFJ
Ul9TSEFSRSBpcyBub3Qgc2V0CiMgQ09ORklHX1RIRVJNQUxfREVGQVVMVF9HT1ZfVVNFUl9T
UEFDRSBpcyBub3Qgc2V0CiMgQ09ORklHX1RIRVJNQUxfREVGQVVMVF9HT1ZfQkFOR19CQU5H
IGlzIG5vdCBzZXQKIyBDT05GSUdfVEhFUk1BTF9HT1ZfRkFJUl9TSEFSRSBpcyBub3Qgc2V0
CkNPTkZJR19USEVSTUFMX0dPVl9TVEVQX1dJU0U9eQpDT05GSUdfVEhFUk1BTF9HT1ZfQkFO
R19CQU5HPXkKIyBDT05GSUdfVEhFUk1BTF9HT1ZfVVNFUl9TUEFDRSBpcyBub3Qgc2V0CkNP
TkZJR19DUFVfVEhFUk1BTD15CiMgQ09ORklHX0NQVV9JRExFX1RIRVJNQUwgaXMgbm90IHNl
dApDT05GSUdfREVWRlJFUV9USEVSTUFMPXkKQ09ORklHX1RIRVJNQUxfRU1VTEFUSU9OPXkK
Q09ORklHX1RIRVJNQUxfTU1JTz15CkNPTkZJR19EQTkwNjJfVEhFUk1BTD15CgojCiMgSW50
ZWwgdGhlcm1hbCBkcml2ZXJzCiMKIyBDT05GSUdfSU5URUxfUE9XRVJDTEFNUCBpcyBub3Qg
c2V0CkNPTkZJR19YODZfVEhFUk1BTF9WRUNUT1I9eQpDT05GSUdfSU5URUxfVENDPXkKIyBD
T05GSUdfWDg2X1BLR19URU1QX1RIRVJNQUwgaXMgbm90IHNldAoKIwojIEFDUEkgSU5UMzQw
WCB0aGVybWFsIGRyaXZlcnMKIwojIGVuZCBvZiBBQ1BJIElOVDM0MFggdGhlcm1hbCBkcml2
ZXJzCgojIENPTkZJR19JTlRFTF9CWFRfUE1JQ19USEVSTUFMIGlzIG5vdCBzZXQKQ09ORklH
X0lOVEVMX1RDQ19DT09MSU5HPXkKQ09ORklHX0lOVEVMX0hGSV9USEVSTUFMPXkKIyBlbmQg
b2YgSW50ZWwgdGhlcm1hbCBkcml2ZXJzCgpDT05GSUdfR0VORVJJQ19BRENfVEhFUk1BTD15
CiMgQ09ORklHX1dBVENIRE9HIGlzIG5vdCBzZXQKQ09ORklHX1NTQl9QT1NTSUJMRT15CkNP
TkZJR19TU0I9eQpDT05GSUdfU1NCX1NESU9IT1NUX1BPU1NJQkxFPXkKIyBDT05GSUdfU1NC
X1NESU9IT1NUIGlzIG5vdCBzZXQKQ09ORklHX1NTQl9EUklWRVJfR1BJTz15CkNPTkZJR19C
Q01BX1BPU1NJQkxFPXkKQ09ORklHX0JDTUE9eQojIENPTkZJR19CQ01BX0hPU1RfU09DIGlz
IG5vdCBzZXQKIyBDT05GSUdfQkNNQV9EUklWRVJfR01BQ19DTU4gaXMgbm90IHNldAojIENP
TkZJR19CQ01BX0RSSVZFUl9HUElPIGlzIG5vdCBzZXQKIyBDT05GSUdfQkNNQV9ERUJVRyBp
cyBub3Qgc2V0CgojCiMgTXVsdGlmdW5jdGlvbiBkZXZpY2UgZHJpdmVycwojCkNPTkZJR19N
RkRfQ09SRT15CkNPTkZJR19NRkRfQUNUODk0NUE9eQpDT05GSUdfTUZEX0FTMzcxMT15CiMg
Q09ORklHX01GRF9TTVBSTyBpcyBub3Qgc2V0CiMgQ09ORklHX01GRF9BUzM3MjIgaXMgbm90
IHNldApDT05GSUdfUE1JQ19BRFA1NTIwPXkKIyBDT05GSUdfTUZEX0FBVDI4NzBfQ09SRSBp
cyBub3Qgc2V0CkNPTkZJR19NRkRfQVRNRUxfRkxFWENPTT15CkNPTkZJR19NRkRfQVRNRUxf
SExDREM9eQpDT05GSUdfTUZEX0JDTTU5MFhYPXkKQ09ORklHX01GRF9CRDk1NzFNV1Y9eQpD
T05GSUdfTUZEX0FYUDIwWD15CkNPTkZJR19NRkRfQVhQMjBYX0kyQz15CkNPTkZJR19NRkRf
Q1JPU19FQ19ERVY9eQpDT05GSUdfTUZEX0NTNDJMNDM9eQojIENPTkZJR19NRkRfQ1M0Mkw0
M19JMkMgaXMgbm90IHNldApDT05GSUdfTUZEX0NTNDJMNDNfU0RXPXkKIyBDT05GSUdfTUZE
X01BREVSQSBpcyBub3Qgc2V0CiMgQ09ORklHX01GRF9NQVg1OTcwIGlzIG5vdCBzZXQKIyBD
T05GSUdfUE1JQ19EQTkwM1ggaXMgbm90IHNldAojIENPTkZJR19NRkRfREE5MDUyX0kyQyBp
cyBub3Qgc2V0CiMgQ09ORklHX01GRF9EQTkwNTUgaXMgbm90IHNldApDT05GSUdfTUZEX0RB
OTA2Mj15CkNPTkZJR19NRkRfREE5MDYzPXkKQ09ORklHX01GRF9EQTkxNTA9eQpDT05GSUdf
TUZEX0dBVEVXT1JLU19HU0M9eQpDT05GSUdfTUZEX01DMTNYWFg9eQpDT05GSUdfTUZEX01D
MTNYWFhfSTJDPXkKQ09ORklHX01GRF9NUDI2Mjk9eQojIENPTkZJR19NRkRfSEk2NDIxX1BN
SUMgaXMgbm90IHNldApDT05GSUdfSU5URUxfU09DX1BNSUNfQlhUV0M9eQpDT05GSUdfSU5U
RUxfU09DX1BNSUNfTVJGTEQ9eQpDT05GSUdfTUZEX0lOVEVMX0xQU1M9eQpDT05GSUdfTUZE
X0lOVEVMX0xQU1NfQUNQST15CkNPTkZJR19NRkRfSU5URUxfUE1DX0JYVD15CiMgQ09ORklH
X01GRF9JUVM2MlggaXMgbm90IHNldApDT05GSUdfTUZEX0tFTVBMRD15CkNPTkZJR19NRkRf
ODhQTTgwMD15CkNPTkZJR19NRkRfODhQTTgwNT15CiMgQ09ORklHX01GRF84OFBNODYwWCBp
cyBub3Qgc2V0CkNPTkZJR19NRkRfTUFYMTQ1Nzc9eQpDT05GSUdfTUZEX01BWDc3NTQxPXkK
IyBDT05GSUdfTUZEX01BWDc3NjIwIGlzIG5vdCBzZXQKQ09ORklHX01GRF9NQVg3NzY1MD15
CkNPTkZJR19NRkRfTUFYNzc2ODY9eQpDT05GSUdfTUZEX01BWDc3NjkzPXkKQ09ORklHX01G
RF9NQVg3NzcxND15CkNPTkZJR19NRkRfTUFYNzc4NDM9eQpDT05GSUdfTUZEX01BWDg5MDc9
eQojIENPTkZJR19NRkRfTUFYODkyNSBpcyBub3Qgc2V0CiMgQ09ORklHX01GRF9NQVg4OTk3
IGlzIG5vdCBzZXQKIyBDT05GSUdfTUZEX01BWDg5OTggaXMgbm90IHNldAojIENPTkZJR19N
RkRfTVQ2MzYwIGlzIG5vdCBzZXQKQ09ORklHX01GRF9NVDYzNzA9eQpDT05GSUdfTUZEX01U
NjM5Nz15CkNPTkZJR19NRkRfTUVORjIxQk1DPXkKQ09ORklHX01GRF9OVFhFQz15CkNPTkZJ
R19NRkRfUkVUVT15CkNPTkZJR19NRkRfUENGNTA2MzM9eQpDT05GSUdfUENGNTA2MzNfQURD
PXkKQ09ORklHX1BDRjUwNjMzX0dQSU89eQpDT05GSUdfTUZEX1NZNzYzNkE9eQpDT05GSUdf
TUZEX1JUNDgzMT15CkNPTkZJR19NRkRfUlQ1MDMzPXkKQ09ORklHX01GRF9SVDUxMjA9eQpD
T05GSUdfTUZEX1JDNVQ1ODM9eQojIENPTkZJR19NRkRfUks4WFhfSTJDIGlzIG5vdCBzZXQK
Q09ORklHX01GRF9STjVUNjE4PXkKQ09ORklHX01GRF9TRUNfQ09SRT15CkNPTkZJR19NRkRf
U0k0NzZYX0NPUkU9eQpDT05GSUdfTUZEX1NJTVBMRV9NRkRfSTJDPXkKQ09ORklHX01GRF9T
TTUwMT15CiMgQ09ORklHX01GRF9TTTUwMV9HUElPIGlzIG5vdCBzZXQKIyBDT05GSUdfTUZE
X1NLWTgxNDUyIGlzIG5vdCBzZXQKQ09ORklHX01GRF9TVE1QRT15CgojCiMgU1RNaWNyb2Vs
ZWN0cm9uaWNzIFNUTVBFIEludGVyZmFjZSBEcml2ZXJzCiMKIyBDT05GSUdfU1RNUEVfSTJD
IGlzIG5vdCBzZXQKIyBlbmQgb2YgU1RNaWNyb2VsZWN0cm9uaWNzIFNUTVBFIEludGVyZmFj
ZSBEcml2ZXJzCgpDT05GSUdfTUZEX1NZU0NPTj15CkNPTkZJR19NRkRfTFAzOTQzPXkKQ09O
RklHX01GRF9MUDg3ODg9eQpDT05GSUdfTUZEX1RJX0xNVT15CkNPTkZJR19NRkRfUEFMTUFT
PXkKQ09ORklHX1RQUzYxMDVYPXkKQ09ORklHX1RQUzY1MDEwPXkKIyBDT05GSUdfVFBTNjUw
N1ggaXMgbm90IHNldApDT05GSUdfTUZEX1RQUzY1MDg2PXkKQ09ORklHX01GRF9UUFM2NTA5
MD15CkNPTkZJR19NRkRfVFBTNjUyMTc9eQojIENPTkZJR19NRkRfVElfTFA4NzNYIGlzIG5v
dCBzZXQKQ09ORklHX01GRF9USV9MUDg3NTY1PXkKQ09ORklHX01GRF9UUFM2NTIxOD15CkNP
TkZJR19NRkRfVFBTNjUyMTk9eQpDT05GSUdfTUZEX1RQUzY1ODZYPXkKQ09ORklHX01GRF9U
UFM2NTkxMD15CkNPTkZJR19NRkRfVFBTNjU5MTI9eQpDT05GSUdfTUZEX1RQUzY1OTEyX0ky
Qz15CkNPTkZJR19NRkRfVFBTNjU5ND15CkNPTkZJR19NRkRfVFBTNjU5NF9JMkM9eQpDT05G
SUdfVFdMNDAzMF9DT1JFPXkKQ09ORklHX01GRF9UV0w0MDMwX0FVRElPPXkKIyBDT05GSUdf
VFdMNjA0MF9DT1JFIGlzIG5vdCBzZXQKQ09ORklHX01GRF9XTDEyNzNfQ09SRT15CiMgQ09O
RklHX01GRF9MTTM1MzMgaXMgbm90IHNldApDT05GSUdfTUZEX1RDMzU4OVg9eQojIENPTkZJ
R19NRkRfVFFNWDg2IGlzIG5vdCBzZXQKIyBDT05GSUdfTUZEX0xPQ0hOQUdBUiBpcyBub3Qg
c2V0CkNPTkZJR19NRkRfQVJJWk9OQT15CkNPTkZJR19NRkRfQVJJWk9OQV9JMkM9eQpDT05G
SUdfTUZEX0NTNDdMMjQ9eQpDT05GSUdfTUZEX1dNNTEwMj15CkNPTkZJR19NRkRfV001MTEw
PXkKIyBDT05GSUdfTUZEX1dNODk5NyBpcyBub3Qgc2V0CiMgQ09ORklHX01GRF9XTTg5OTgg
aXMgbm90IHNldApDT05GSUdfTUZEX1dNODQwMD15CkNPTkZJR19NRkRfV004MzFYPXkKQ09O
RklHX01GRF9XTTgzMVhfSTJDPXkKQ09ORklHX01GRF9XTTgzNTA9eQpDT05GSUdfTUZEX1dN
ODM1MF9JMkM9eQpDT05GSUdfTUZEX1dNODk5ND15CkNPTkZJR19NRkRfUk9ITV9CRDcxOFhY
PXkKQ09ORklHX01GRF9ST0hNX0JENzE4Mjg9eQpDT05GSUdfTUZEX1JPSE1fQkQ5NTdYTVVG
PXkKIyBDT05GSUdfTUZEX1NUUE1JQzEgaXMgbm90IHNldApDT05GSUdfTUZEX1NUTUZYPXkK
IyBDT05GSUdfTUZEX1dDRDkzNFggaXMgbm90IHNldAojIENPTkZJR19NRkRfQVRDMjYwWF9J
MkMgaXMgbm90IHNldApDT05GSUdfTUZEX1FDT01fUE04MDA4PXkKIyBDT05GSUdfTUZEX1JT
TVVfSTJDIGlzIG5vdCBzZXQKIyBlbmQgb2YgTXVsdGlmdW5jdGlvbiBkZXZpY2UgZHJpdmVy
cwoKQ09ORklHX1JFR1VMQVRPUj15CkNPTkZJR19SRUdVTEFUT1JfREVCVUc9eQpDT05GSUdf
UkVHVUxBVE9SX0ZJWEVEX1ZPTFRBR0U9eQojIENPTkZJR19SRUdVTEFUT1JfVklSVFVBTF9D
T05TVU1FUiBpcyBub3Qgc2V0CkNPTkZJR19SRUdVTEFUT1JfVVNFUlNQQUNFX0NPTlNVTUVS
PXkKIyBDT05GSUdfUkVHVUxBVE9SX05FVExJTktfRVZFTlRTIGlzIG5vdCBzZXQKIyBDT05G
SUdfUkVHVUxBVE9SXzg4UEc4NlggaXMgbm90IHNldApDT05GSUdfUkVHVUxBVE9SXzg4UE04
MDA9eQpDT05GSUdfUkVHVUxBVE9SX0FDVDg4NjU9eQpDT05GSUdfUkVHVUxBVE9SX0FDVDg5
NDVBPXkKIyBDT05GSUdfUkVHVUxBVE9SX0FENTM5OCBpcyBub3Qgc2V0CkNPTkZJR19SRUdV
TEFUT1JfQVMzNzExPXkKIyBDT05GSUdfUkVHVUxBVE9SX0FXMzc1MDMgaXMgbm90IHNldAoj
IENPTkZJR19SRUdVTEFUT1JfQVhQMjBYIGlzIG5vdCBzZXQKQ09ORklHX1JFR1VMQVRPUl9C
Q001OTBYWD15CkNPTkZJR19SRUdVTEFUT1JfQkQ3MTgxNT15CkNPTkZJR19SRUdVTEFUT1Jf
QkQ3MTgyOD15CiMgQ09ORklHX1JFR1VMQVRPUl9CRDcxOFhYIGlzIG5vdCBzZXQKQ09ORklH
X1JFR1VMQVRPUl9CRDk1NzFNV1Y9eQpDT05GSUdfUkVHVUxBVE9SX0JEOTU3WE1VRj15CiMg
Q09ORklHX1JFR1VMQVRPUl9DUk9TX0VDIGlzIG5vdCBzZXQKIyBDT05GSUdfUkVHVUxBVE9S
X0RBOTA2MiBpcyBub3Qgc2V0CiMgQ09ORklHX1JFR1VMQVRPUl9EQTkwNjMgaXMgbm90IHNl
dApDT05GSUdfUkVHVUxBVE9SX0RBOTEyMT15CiMgQ09ORklHX1JFR1VMQVRPUl9EQTkyMTAg
aXMgbm90IHNldApDT05GSUdfUkVHVUxBVE9SX0RBOTIxMT15CkNPTkZJR19SRUdVTEFUT1Jf
RkFONTM1NTU9eQojIENPTkZJR19SRUdVTEFUT1JfRkFONTM4ODAgaXMgbm90IHNldAojIENP
TkZJR19SRUdVTEFUT1JfR1BJTyBpcyBub3Qgc2V0CiMgQ09ORklHX1JFR1VMQVRPUl9JU0w5
MzA1IGlzIG5vdCBzZXQKQ09ORklHX1JFR1VMQVRPUl9JU0w2MjcxQT15CiMgQ09ORklHX1JF
R1VMQVRPUl9MTTM2M1ggaXMgbm90IHNldApDT05GSUdfUkVHVUxBVE9SX0xQMzk3MT15CiMg
Q09ORklHX1JFR1VMQVRPUl9MUDM5NzIgaXMgbm90IHNldAojIENPTkZJR19SRUdVTEFUT1Jf
TFA4NzJYIGlzIG5vdCBzZXQKIyBDT05GSUdfUkVHVUxBVE9SX0xQODc1NSBpcyBub3Qgc2V0
CkNPTkZJR19SRUdVTEFUT1JfTFA4NzU2NT15CkNPTkZJR19SRUdVTEFUT1JfTFA4Nzg4PXkK
Q09ORklHX1JFR1VMQVRPUl9MVEMzNTg5PXkKQ09ORklHX1JFR1VMQVRPUl9MVEMzNjc2PXkK
IyBDT05GSUdfUkVHVUxBVE9SX01BWDE0NTc3IGlzIG5vdCBzZXQKQ09ORklHX1JFR1VMQVRP
Ul9NQVgxNTg2PXkKIyBDT05GSUdfUkVHVUxBVE9SX01BWDc3NTAzIGlzIG5vdCBzZXQKQ09O
RklHX1JFR1VMQVRPUl9NQVg3NzU0MT15CkNPTkZJR19SRUdVTEFUT1JfTUFYNzc2NTA9eQpD
T05GSUdfUkVHVUxBVE9SX01BWDc3ODU3PXkKIyBDT05GSUdfUkVHVUxBVE9SX01BWDg2NDkg
aXMgbm90IHNldApDT05GSUdfUkVHVUxBVE9SX01BWDg2NjA9eQpDT05GSUdfUkVHVUxBVE9S
X01BWDg4OTM9eQpDT05GSUdfUkVHVUxBVE9SX01BWDg5MDc9eQpDT05GSUdfUkVHVUxBVE9S
X01BWDg5NTI9eQpDT05GSUdfUkVHVUxBVE9SX01BWDg5NzM9eQojIENPTkZJR19SRUdVTEFU
T1JfTUFYMjAwODYgaXMgbm90IHNldApDT05GSUdfUkVHVUxBVE9SX01BWDIwNDExPXkKQ09O
RklHX1JFR1VMQVRPUl9NQVg3NzY4Nj15CkNPTkZJR19SRUdVTEFUT1JfTUFYNzc2OTM9eQpD
T05GSUdfUkVHVUxBVE9SX01BWDc3ODAyPXkKQ09ORklHX1JFR1VMQVRPUl9NQVg3NzgyNj15
CkNPTkZJR19SRUdVTEFUT1JfTUMxM1hYWF9DT1JFPXkKQ09ORklHX1JFR1VMQVRPUl9NQzEz
NzgzPXkKIyBDT05GSUdfUkVHVUxBVE9SX01DMTM4OTIgaXMgbm90IHNldApDT05GSUdfUkVH
VUxBVE9SX01DUDE2NTAyPXkKQ09ORklHX1JFR1VMQVRPUl9NUDU0MTY9eQpDT05GSUdfUkVH
VUxBVE9SX01QODg1OT15CkNPTkZJR19SRUdVTEFUT1JfTVA4ODZYPXkKQ09ORklHX1JFR1VM
QVRPUl9NUFE3OTIwPXkKQ09ORklHX1JFR1VMQVRPUl9NVDYzMTE9eQojIENPTkZJR19SRUdV
TEFUT1JfTVQ2MzIzIGlzIG5vdCBzZXQKQ09ORklHX1JFR1VMQVRPUl9NVDYzMzE9eQpDT05G
SUdfUkVHVUxBVE9SX01UNjMzMj15CkNPTkZJR19SRUdVTEFUT1JfTVQ2MzU3PXkKQ09ORklH
X1JFR1VMQVRPUl9NVDYzNTg9eQojIENPTkZJR19SRUdVTEFUT1JfTVQ2MzU5IGlzIG5vdCBz
ZXQKQ09ORklHX1JFR1VMQVRPUl9NVDYzNzA9eQpDT05GSUdfUkVHVUxBVE9SX01UNjM5Nz15
CkNPTkZJR19SRUdVTEFUT1JfUEFMTUFTPXkKQ09ORklHX1JFR1VMQVRPUl9QQ0E5NDUwPXkK
IyBDT05GSUdfUkVHVUxBVE9SX1BDRjUwNjMzIGlzIG5vdCBzZXQKIyBDT05GSUdfUkVHVUxB
VE9SX1BGOFgwMCBpcyBub3Qgc2V0CkNPTkZJR19SRUdVTEFUT1JfUEZVWkUxMDA9eQpDT05G
SUdfUkVHVUxBVE9SX1BWODgwNjA9eQojIENPTkZJR19SRUdVTEFUT1JfUFY4ODA4MCBpcyBu
b3Qgc2V0CiMgQ09ORklHX1JFR1VMQVRPUl9QVjg4MDkwIGlzIG5vdCBzZXQKQ09ORklHX1JF
R1VMQVRPUl9QV009eQpDT05GSUdfUkVHVUxBVE9SX1FDT01fUE04MDA4PXkKQ09ORklHX1JF
R1VMQVRPUl9SQUEyMTUzMDA9eQpDT05GSUdfUkVHVUxBVE9SX1JBU1BCRVJSWVBJX1RPVUNI
U0NSRUVOX0FUVElOWT15CiMgQ09ORklHX1JFR1VMQVRPUl9SQzVUNTgzIGlzIG5vdCBzZXQK
Q09ORklHX1JFR1VMQVRPUl9STjVUNjE4PXkKQ09ORklHX1JFR1VMQVRPUl9ST0hNPXkKQ09O
RklHX1JFR1VMQVRPUl9SVDQ4MDE9eQpDT05GSUdfUkVHVUxBVE9SX1JUNDgwMz15CkNPTkZJ
R19SRUdVTEFUT1JfUlQ0ODMxPXkKQ09ORklHX1JFR1VMQVRPUl9SVDUwMzM9eQpDT05GSUdf
UkVHVUxBVE9SX1JUNTEyMD15CkNPTkZJR19SRUdVTEFUT1JfUlQ1MTkwQT15CkNPTkZJR19S
RUdVTEFUT1JfUlQ1NzM5PXkKIyBDT05GSUdfUkVHVUxBVE9SX1JUNTc1OSBpcyBub3Qgc2V0
CkNPTkZJR19SRUdVTEFUT1JfUlQ2MTYwPXkKIyBDT05GSUdfUkVHVUxBVE9SX1JUNjE5MCBp
cyBub3Qgc2V0CkNPTkZJR19SRUdVTEFUT1JfUlQ2MjQ1PXkKIyBDT05GSUdfUkVHVUxBVE9S
X1JUUTIxMzQgaXMgbm90IHNldAojIENPTkZJR19SRUdVTEFUT1JfUlRNVjIwIGlzIG5vdCBz
ZXQKIyBDT05GSUdfUkVHVUxBVE9SX1JUUTY3NTIgaXMgbm90IHNldApDT05GSUdfUkVHVUxB
VE9SX1JUUTIyMDg9eQpDT05GSUdfUkVHVUxBVE9SX1MyTVBBMDE9eQpDT05GSUdfUkVHVUxB
VE9SX1MyTVBTMTE9eQpDT05GSUdfUkVHVUxBVE9SX1M1TTg3Njc9eQpDT05GSUdfUkVHVUxB
VE9SX1NMRzUxMDAwPXkKIyBDT05GSUdfUkVHVUxBVE9SX1NZNzYzNkEgaXMgbm90IHNldApD
T05GSUdfUkVHVUxBVE9SX1NZODEwNkE9eQojIENPTkZJR19SRUdVTEFUT1JfU1k4ODI0WCBp
cyBub3Qgc2V0CiMgQ09ORklHX1JFR1VMQVRPUl9TWTg4MjdOIGlzIG5vdCBzZXQKIyBDT05G
SUdfUkVHVUxBVE9SX1RQUzUxNjMyIGlzIG5vdCBzZXQKIyBDT05GSUdfUkVHVUxBVE9SX1RQ
UzYxMDVYIGlzIG5vdCBzZXQKQ09ORklHX1JFR1VMQVRPUl9UUFM2MjM2MD15CiMgQ09ORklH
X1JFR1VMQVRPUl9UUFM2Mjg2WCBpcyBub3Qgc2V0CkNPTkZJR19SRUdVTEFUT1JfVFBTNjI4
N1g9eQpDT05GSUdfUkVHVUxBVE9SX1RQUzY1MDIzPXkKIyBDT05GSUdfUkVHVUxBVE9SX1RQ
UzY1MDdYIGlzIG5vdCBzZXQKQ09ORklHX1JFR1VMQVRPUl9UUFM2NTA4Nj15CiMgQ09ORklH
X1JFR1VMQVRPUl9UUFM2NTA5MCBpcyBub3Qgc2V0CkNPTkZJR19SRUdVTEFUT1JfVFBTNjUx
MzI9eQpDT05GSUdfUkVHVUxBVE9SX1RQUzY1MjE3PXkKQ09ORklHX1JFR1VMQVRPUl9UUFM2
NTIxOD15CkNPTkZJR19SRUdVTEFUT1JfVFBTNjUyMTk9eQpDT05GSUdfUkVHVUxBVE9SX1RQ
UzY1OTQ9eQpDT05GSUdfUkVHVUxBVE9SX1RQUzY1ODZYPXkKQ09ORklHX1JFR1VMQVRPUl9U
UFM2NTkxMD15CkNPTkZJR19SRUdVTEFUT1JfVFBTNjU5MTI9eQojIENPTkZJR19SRUdVTEFU
T1JfVFBTNjg0NzAgaXMgbm90IHNldApDT05GSUdfUkVHVUxBVE9SX1RXTDQwMzA9eQojIENP
TkZJR19SRUdVTEFUT1JfVkNUUkwgaXMgbm90IHNldApDT05GSUdfUkVHVUxBVE9SX1dNODMx
WD15CkNPTkZJR19SRUdVTEFUT1JfV004MzUwPXkKIyBDT05GSUdfUkVHVUxBVE9SX1dNODQw
MCBpcyBub3Qgc2V0CkNPTkZJR19SRUdVTEFUT1JfV004OTk0PXkKQ09ORklHX1JDX0NPUkU9
eQojIENPTkZJR19CUEZfTElSQ19NT0RFMiBpcyBub3Qgc2V0CkNPTkZJR19MSVJDPXkKQ09O
RklHX1JDX01BUD15CiMgQ09ORklHX1JDX0RFQ09ERVJTIGlzIG5vdCBzZXQKQ09ORklHX1JD
X0RFVklDRVM9eQojIENPTkZJR19JUl9FTkUgaXMgbm90IHNldApDT05GSUdfSVJfRklOVEVL
PXkKQ09ORklHX0lSX0dQSU9fQ0lSPXkKQ09ORklHX0lSX0dQSU9fVFg9eQpDT05GSUdfSVJf
SElYNUhEMj15CkNPTkZJR19JUl9JVEVfQ0lSPXkKQ09ORklHX0lSX05VVk9UT049eQpDT05G
SUdfSVJfU0VSSUFMPXkKQ09ORklHX0lSX1NFUklBTF9UUkFOU01JVFRFUj15CiMgQ09ORklH
X0lSX1dJTkJPTkRfQ0lSIGlzIG5vdCBzZXQKQ09ORklHX1JDX0xPT1BCQUNLPXkKQ09ORklH
X0NFQ19DT1JFPXkKQ09ORklHX0NFQ19OT1RJRklFUj15CgojCiMgQ0VDIHN1cHBvcnQKIwpD
T05GSUdfTUVESUFfQ0VDX1JDPXkKQ09ORklHX01FRElBX0NFQ19TVVBQT1JUPXkKQ09ORklH
X0NFQ19DSDczMjI9eQojIENPTkZJR19DRUNfQ1JPU19FQyBpcyBub3Qgc2V0CiMgZW5kIG9m
IENFQyBzdXBwb3J0CgpDT05GSUdfTUVESUFfU1VQUE9SVD15CiMgQ09ORklHX01FRElBX1NV
UFBPUlRfRklMVEVSIGlzIG5vdCBzZXQKQ09ORklHX01FRElBX1NVQkRSVl9BVVRPU0VMRUNU
PXkKCiMKIyBNZWRpYSBkZXZpY2UgdHlwZXMKIwpDT05GSUdfTUVESUFfQ0FNRVJBX1NVUFBP
UlQ9eQpDT05GSUdfTUVESUFfQU5BTE9HX1RWX1NVUFBPUlQ9eQpDT05GSUdfTUVESUFfRElH
SVRBTF9UVl9TVVBQT1JUPXkKQ09ORklHX01FRElBX1JBRElPX1NVUFBPUlQ9eQpDT05GSUdf
TUVESUFfU0RSX1NVUFBPUlQ9eQpDT05GSUdfTUVESUFfUExBVEZPUk1fU1VQUE9SVD15CkNP
TkZJR19NRURJQV9URVNUX1NVUFBPUlQ9eQojIGVuZCBvZiBNZWRpYSBkZXZpY2UgdHlwZXMK
CiMKIyBNZWRpYSBjb3JlIHN1cHBvcnQKIwojIENPTkZJR19WSURFT19ERVYgaXMgbm90IHNl
dApDT05GSUdfTUVESUFfQ09OVFJPTExFUj15CkNPTkZJR19EVkJfQ09SRT15CiMgZW5kIG9m
IE1lZGlhIGNvcmUgc3VwcG9ydAoKIwojIE1lZGlhIGNvbnRyb2xsZXIgb3B0aW9ucwojCkNP
TkZJR19NRURJQV9DT05UUk9MTEVSX0RWQj15CiMgZW5kIG9mIE1lZGlhIGNvbnRyb2xsZXIg
b3B0aW9ucwoKIwojIERpZ2l0YWwgVFYgb3B0aW9ucwojCkNPTkZJR19EVkJfTUFYX0FEQVBU
RVJTPTE2CiMgQ09ORklHX0RWQl9EWU5BTUlDX01JTk9SUyBpcyBub3Qgc2V0CiMgQ09ORklH
X0RWQl9ERU1VWF9TRUNUSU9OX0xPU1NfTE9HIGlzIG5vdCBzZXQKQ09ORklHX0RWQl9VTEVf
REVCVUc9eQojIGVuZCBvZiBEaWdpdGFsIFRWIG9wdGlvbnMKCiMKIyBNZWRpYSBkcml2ZXJz
CiMKCiMKIyBNZWRpYSBkcml2ZXJzCiMKIyBDT05GSUdfTUVESUFfUExBVEZPUk1fRFJJVkVS
UyBpcyBub3Qgc2V0CgojCiMgTU1DL1NESU8gRFZCIGFkYXB0ZXJzCiMKQ09ORklHX1NNU19T
RElPX0RSVj15CiMgQ09ORklHX0RWQl9URVNUX0RSSVZFUlMgaXMgbm90IHNldApDT05GSUdf
TUVESUFfQ09NTU9OX09QVElPTlM9eQoKIwojIGNvbW1vbiBkcml2ZXIgb3B0aW9ucwojCkNP
TkZJR19TTVNfU0lBTk9fTURUVj15CkNPTkZJR19TTVNfU0lBTk9fUkM9eQojIGVuZCBvZiBN
ZWRpYSBkcml2ZXJzCgpDT05GSUdfTUVESUFfSElERV9BTkNJTExBUllfU1VCRFJWPXkKCiMK
IyBNZWRpYSBhbmNpbGxhcnkgZHJpdmVycwojCkNPTkZJR19NRURJQV9UVU5FUj15CgojCiMg
VHVuZXIgZHJpdmVycyBhdXRvLXNlbGVjdGVkIGJ5ICdBdXRvc2VsZWN0IGFuY2lsbGFyeSBk
cml2ZXJzJwojCkNPTkZJR19NRURJQV9UVU5FUl9NQzQ0UzgwMz15CkNPTkZJR19NRURJQV9U
VU5FUl9NVDIwWFg9eQpDT05GSUdfTUVESUFfVFVORVJfU0lNUExFPXkKQ09ORklHX01FRElB
X1RVTkVSX1REQTE4MjcxPXkKQ09ORklHX01FRElBX1RVTkVSX1REQTgyN1g9eQpDT05GSUdf
TUVESUFfVFVORVJfVERBODI5MD15CkNPTkZJR19NRURJQV9UVU5FUl9UREE5ODg3PXkKQ09O
RklHX01FRElBX1RVTkVSX1RFQTU3NjE9eQpDT05GSUdfTUVESUFfVFVORVJfVEVBNTc2Nz15
CkNPTkZJR19NRURJQV9UVU5FUl9YQzIwMjg9eQpDT05GSUdfTUVESUFfVFVORVJfWEM0MDAw
PXkKQ09ORklHX01FRElBX1RVTkVSX1hDNTAwMD15CgojCiMgRFZCIEZyb250ZW5kIGRyaXZl
cnMgYXV0by1zZWxlY3RlZCBieSAnQXV0b3NlbGVjdCBhbmNpbGxhcnkgZHJpdmVycycKIwoK
IwojIE11bHRpc3RhbmRhcmQgKHNhdGVsbGl0ZSkgZnJvbnRlbmRzCiMKCiMKIyBNdWx0aXN0
YW5kYXJkIChjYWJsZSArIHRlcnJlc3RyaWFsKSBmcm9udGVuZHMKIwoKIwojIERWQi1TIChz
YXRlbGxpdGUpIGZyb250ZW5kcwojCgojCiMgRFZCLVQgKHRlcnJlc3RyaWFsKSBmcm9udGVu
ZHMKIwoKIwojIERWQi1DIChjYWJsZSkgZnJvbnRlbmRzCiMKCiMKIyBBVFNDIChOb3J0aCBB
bWVyaWNhbi9Lb3JlYW4gVGVycmVzdHJpYWwvQ2FibGUgRFRWKSBmcm9udGVuZHMKIwoKIwoj
IElTREItVCAodGVycmVzdHJpYWwpIGZyb250ZW5kcwojCgojCiMgSVNEQi1TIChzYXRlbGxp
dGUpICYgSVNEQi1UICh0ZXJyZXN0cmlhbCkgZnJvbnRlbmRzCiMKCiMKIyBEaWdpdGFsIHRl
cnJlc3RyaWFsIG9ubHkgdHVuZXJzL1BMTAojCgojCiMgU0VDIGNvbnRyb2wgZGV2aWNlcyBm
b3IgRFZCLVMKIwoKIwojIENvbW1vbiBJbnRlcmZhY2UgKEVONTAyMjEpIGNvbnRyb2xsZXIg
ZHJpdmVycwojCgojCiMgVG9vbHMgdG8gZGV2ZWxvcCBuZXcgZnJvbnRlbmRzCiMKQ09ORklH
X0RWQl9EVU1NWV9GRT15CiMgZW5kIG9mIE1lZGlhIGFuY2lsbGFyeSBkcml2ZXJzCgojCiMg
R3JhcGhpY3Mgc3VwcG9ydAojCkNPTkZJR19BUEVSVFVSRV9IRUxQRVJTPXkKQ09ORklHX1ZJ
REVPPXkKIyBDT05GSUdfQVVYRElTUExBWSBpcyBub3Qgc2V0CiMgQ09ORklHX1BBTkVMIGlz
IG5vdCBzZXQKQ09ORklHX0RSTT15CkNPTkZJR19EUk1fTUlQSV9EU0k9eQojIENPTkZJR19E
Uk1fREVCVUdfTU0gaXMgbm90IHNldApDT05GSUdfRFJNX0tVTklUX1RFU1RfSEVMUEVSUz15
CkNPTkZJR19EUk1fS1VOSVRfVEVTVD15CkNPTkZJR19EUk1fS01TX0hFTFBFUj15CiMgQ09O
RklHX0RSTV9QQU5JQyBpcyBub3Qgc2V0CiMgQ09ORklHX0RSTV9GQkRFVl9FTVVMQVRJT04g
aXMgbm90IHNldAojIENPTkZJR19EUk1fTE9BRF9FRElEX0ZJUk1XQVJFIGlzIG5vdCBzZXQK
Q09ORklHX0RSTV9ESVNQTEFZX0hFTFBFUj15CkNPTkZJR19EUk1fRElTUExBWV9EUF9BVVhf
QlVTPXkKIyBDT05GSUdfRFJNX0RJU1BMQVlfRFBfQVVYX0NFQyBpcyBub3Qgc2V0CiMgQ09O
RklHX0RSTV9ESVNQTEFZX0RQX0FVWF9DSEFSREVWIGlzIG5vdCBzZXQKQ09ORklHX0RSTV9E
SVNQTEFZX0RQX0hFTFBFUj15CkNPTkZJR19EUk1fRElTUExBWV9IRENQX0hFTFBFUj15CkNP
TkZJR19EUk1fRElTUExBWV9IRE1JX0hFTFBFUj15CkNPTkZJR19EUk1fRElTUExBWV9IRE1J
X1NUQVRFX0hFTFBFUj15CkNPTkZJR19EUk1fRVhFQz15CkNPTkZJR19EUk1fQlVERFk9eQpD
T05GSUdfRFJNX0dFTV9ETUFfSEVMUEVSPXkKQ09ORklHX0RSTV9HRU1fU0hNRU1fSEVMUEVS
PXkKCiMKIyBJMkMgZW5jb2RlciBvciBoZWxwZXIgY2hpcHMKIwojIENPTkZJR19EUk1fSTJD
X0NINzAwNiBpcyBub3Qgc2V0CiMgQ09ORklHX0RSTV9JMkNfU0lMMTY0IGlzIG5vdCBzZXQK
Q09ORklHX0RSTV9JMkNfTlhQX1REQTk5OFg9eQpDT05GSUdfRFJNX0kyQ19OWFBfVERBOTk1
MD15CiMgZW5kIG9mIEkyQyBlbmNvZGVyIG9yIGhlbHBlciBjaGlwcwoKIwojIEFSTSBkZXZp
Y2VzCiMKQ09ORklHX0RSTV9LT01FREE9eQojIGVuZCBvZiBBUk0gZGV2aWNlcwoKQ09ORklH
X0RSTV9WR0VNPXkKIyBDT05GSUdfRFJNX1ZLTVMgaXMgbm90IHNldAojIENPTkZJR19EUk1f
VklSVElPX0dQVSBpcyBub3Qgc2V0CkNPTkZJR19EUk1fUEFORUw9eQoKIwojIERpc3BsYXkg
UGFuZWxzCiMKQ09ORklHX0RSTV9QQU5FTF9BUk1fVkVSU0FUSUxFPXkKQ09ORklHX0RSTV9Q
QU5FTF9BU1VTX1owMFRfVE01UDVfTlQzNTU5Nj15CiMgQ09ORklHX0RSTV9QQU5FTF9CT0Vf
QkYwNjBZOE1fQUowIGlzIG5vdCBzZXQKQ09ORklHX0RSTV9QQU5FTF9CT0VfSElNQVg4Mjc5
RD15CiMgQ09ORklHX0RSTV9QQU5FTF9CT0VfVEgxMDFNQjMxVUlHMDAyXzI4QSBpcyBub3Qg
c2V0CkNPTkZJR19EUk1fUEFORUxfQk9FX1RWMTAxV1VNX05MNj15CkNPTkZJR19EUk1fUEFO
RUxfRUJCR19GVDg3MTk9eQpDT05GSUdfRFJNX1BBTkVMX0VMSURBX0tEMzVUMTMzPXkKIyBD
T05GSUdfRFJNX1BBTkVMX0ZFSVhJTl9LMTAxX0lNMkJBMDIgaXMgbm90IHNldApDT05GSUdf
RFJNX1BBTkVMX0ZFSVlBTkdfRlkwNzAyNERJMjZBMzBEPXkKIyBDT05GSUdfRFJNX1BBTkVM
X0RTSV9DTSBpcyBub3Qgc2V0CkNPTkZJR19EUk1fUEFORUxfTFZEUz15CkNPTkZJR19EUk1f
UEFORUxfSElNQVhfSFg4MzEwMj15CkNPTkZJR19EUk1fUEFORUxfSElNQVhfSFg4MzExMkE9
eQojIENPTkZJR19EUk1fUEFORUxfSElNQVhfSFg4Mzk0IGlzIG5vdCBzZXQKQ09ORklHX0RS
TV9QQU5FTF9JTElURUtfSUxJOTgwNT15CkNPTkZJR19EUk1fUEFORUxfSUxJVEVLX0lMSTk4
MDZFPXkKIyBDT05GSUdfRFJNX1BBTkVMX0lMSVRFS19JTEk5ODgxQyBpcyBub3Qgc2V0CkNP
TkZJR19EUk1fUEFORUxfSUxJVEVLX0lMSTk4ODJUPXkKQ09ORklHX0RSTV9QQU5FTF9JTk5P
TFVYX1AwNzlaQ0E9eQpDT05GSUdfRFJNX1BBTkVMX0pBREFSRF9KRDkzNjVEQV9IMz15CkNP
TkZJR19EUk1fUEFORUxfSkRJX0xQTTEwMkExODhBPXkKIyBDT05GSUdfRFJNX1BBTkVMX0pE
SV9MVDA3ME1FMDUwMDAgaXMgbm90IHNldAojIENPTkZJR19EUk1fUEFORUxfSkRJX1I2MzQ1
MiBpcyBub3Qgc2V0CkNPTkZJR19EUk1fUEFORUxfS0hBREFTX1RTMDUwPXkKQ09ORklHX0RS
TV9QQU5FTF9LSU5HRElTUExBWV9LRDA5N0QwND15CiMgQ09ORklHX0RSTV9QQU5FTF9MRUFE
VEVLX0xUSzA1MEgzMTQ2VyBpcyBub3Qgc2V0CkNPTkZJR19EUk1fUEFORUxfTEVBRFRFS19M
VEs1MDBIRDE4Mjk9eQpDT05GSUdfRFJNX1BBTkVMX0xJTkNPTE5URUNIX0xDRDE5Nz15CiMg
Q09ORklHX0RSTV9QQU5FTF9MR19TVzQzNDA4IGlzIG5vdCBzZXQKQ09ORklHX0RSTV9QQU5F
TF9NQU5USVhfTUxBRjA1N1dFNTE9eQpDT05GSUdfRFJNX1BBTkVMX05FV1ZJU0lPTl9OVjMw
NTFEPXkKIyBDT05GSUdfRFJNX1BBTkVMX05PVkFURUtfTlQzNTUxMCBpcyBub3Qgc2V0CkNP
TkZJR19EUk1fUEFORUxfTk9WQVRFS19OVDM1NTYwPXkKIyBDT05GSUdfRFJNX1BBTkVMX05P
VkFURUtfTlQzNTk1MCBpcyBub3Qgc2V0CkNPTkZJR19EUk1fUEFORUxfTk9WQVRFS19OVDM2
NTIzPXkKQ09ORklHX0RSTV9QQU5FTF9OT1ZBVEVLX05UMzY2NzJBPXkKQ09ORklHX0RSTV9Q
QU5FTF9OT1ZBVEVLX05UMzY2NzJFPXkKQ09ORklHX0RSTV9QQU5FTF9PTElNRVhfTENEX09M
SU5VWElOTz15CiMgQ09ORklHX0RSTV9QQU5FTF9PUklTRVRFQ0hfT1RNODAwOUEgaXMgbm90
IHNldAojIENPTkZJR19EUk1fUEFORUxfT1NEX09TRDEwMVQyNTg3XzUzVFMgaXMgbm90IHNl
dAojIENPTkZJR19EUk1fUEFORUxfUEFOQVNPTklDX1ZWWDEwRjAzNE4wMCBpcyBub3Qgc2V0
CkNPTkZJR19EUk1fUEFORUxfUkFTUEJFUlJZUElfVE9VQ0hTQ1JFRU49eQpDT05GSUdfRFJN
X1BBTkVMX1JBWURJVU1fUk02NzE5MT15CkNPTkZJR19EUk1fUEFORUxfUkFZRElVTV9STTY4
MjAwPXkKQ09ORklHX0RSTV9QQU5FTF9SQVlESVVNX1JNNjkyRTU9eQojIENPTkZJR19EUk1f
UEFORUxfUkFZRElVTV9STTY5MzgwIGlzIG5vdCBzZXQKQ09ORklHX0RSTV9QQU5FTF9ST05C
T19SQjA3MEQzMD15CkNPTkZJR19EUk1fUEFORUxfU0FNU1VOR19TNkU4OEEwX0FNUzQ1MkVG
MDE9eQpDT05GSUdfRFJNX1BBTkVMX1NBTVNVTkdfUzZFM0ZBNz15CiMgQ09ORklHX0RSTV9Q
QU5FTF9TQU1TVU5HX1M2RDE2RDAgaXMgbm90IHNldApDT05GSUdfRFJNX1BBTkVMX1NBTVNV
TkdfUzZEN0FBMD15CkNPTkZJR19EUk1fUEFORUxfU0FNU1VOR19TNkUzSEEyPXkKQ09ORklH
X0RSTV9QQU5FTF9TQU1TVU5HX1M2RTYzSjBYMDM9eQpDT05GSUdfRFJNX1BBTkVMX1NBTVNV
TkdfUzZFNjNNMD15CiMgQ09ORklHX0RSTV9QQU5FTF9TQU1TVU5HX1M2RTYzTTBfRFNJIGlz
IG5vdCBzZXQKQ09ORklHX0RSTV9QQU5FTF9TQU1TVU5HX1M2RThBQTA9eQojIENPTkZJR19E
Uk1fUEFORUxfU0FNU1VOR19TT0ZFRjAwIGlzIG5vdCBzZXQKQ09ORklHX0RSTV9QQU5FTF9T
RUlLT180M1dWRjFHPXkKQ09ORklHX0RSTV9QQU5FTF9TSEFSUF9MUTEwMVIxU1gwMT15CkNP
TkZJR19EUk1fUEFORUxfU0hBUlBfTFMwMzdWN0RXMDE9eQojIENPTkZJR19EUk1fUEFORUxf
U0hBUlBfTFMwNDNUMUxFMDEgaXMgbm90IHNldAojIENPTkZJR19EUk1fUEFORUxfU0hBUlBf
TFMwNjBUMVNYMDEgaXMgbm90IHNldAojIENPTkZJR19EUk1fUEFORUxfU0lUUk9OSVhfU1Q3
NzAxIGlzIG5vdCBzZXQKQ09ORklHX0RSTV9QQU5FTF9TSVRST05JWF9TVDc3MDM9eQojIENP
TkZJR19EUk1fUEFORUxfU09OWV9URDQzNTNfSkRJIGlzIG5vdCBzZXQKIyBDT05GSUdfRFJN
X1BBTkVMX1NPTllfVFVMSVBfVFJVTFlfTlQzNTUyMSBpcyBub3Qgc2V0CkNPTkZJR19EUk1f
UEFORUxfU1RBUlRFS19LRDA3MEZIRklEMDE1PXkKQ09ORklHX0RSTV9QQU5FTF9TWU5BUFRJ
Q1NfUjYzMzUzPXkKQ09ORklHX0RSTV9QQU5FTF9URE9fVEwwNzBXU0gzMD15CkNPTkZJR19E
Uk1fUEFORUxfVFJVTFlfTlQzNTU5N19XUVhHQT15CkNPTkZJR19EUk1fUEFORUxfVklTSU9O
T1hfUjY2NDUxPXkKQ09ORklHX0RSTV9QQU5FTF9WSVNJT05PWF9STTY5Mjk5PXkKQ09ORklH
X0RSTV9QQU5FTF9WSVNJT05PWF9WVERSNjEzMD15CkNPTkZJR19EUk1fUEFORUxfWElOUEVO
R19YUFAwNTVDMjcyPXkKIyBlbmQgb2YgRGlzcGxheSBQYW5lbHMKCkNPTkZJR19EUk1fQlJJ
REdFPXkKQ09ORklHX0RSTV9QQU5FTF9CUklER0U9eQoKIwojIERpc3BsYXkgSW50ZXJmYWNl
IEJyaWRnZXMKIwpDT05GSUdfRFJNX0NISVBPTkVfSUNONjIxMT15CiMgQ09ORklHX0RSTV9D
SFJPTlRFTF9DSDcwMzMgaXMgbm90IHNldAojIENPTkZJR19EUk1fQ1JPU19FQ19BTlg3Njg4
IGlzIG5vdCBzZXQKIyBDT05GSUdfRFJNX0RJU1BMQVlfQ09OTkVDVE9SIGlzIG5vdCBzZXQK
Q09ORklHX0RSTV9JVEVfSVQ2NTA1PXkKIyBDT05GSUdfRFJNX0xPTlRJVU1fTFQ4OTEyQiBp
cyBub3Qgc2V0CkNPTkZJR19EUk1fTE9OVElVTV9MVDkyMTE9eQojIENPTkZJR19EUk1fTE9O
VElVTV9MVDk2MTEgaXMgbm90IHNldApDT05GSUdfRFJNX0xPTlRJVU1fTFQ5NjExVVhDPXkK
IyBDT05GSUdfRFJNX0lURV9JVDY2MTIxIGlzIG5vdCBzZXQKIyBDT05GSUdfRFJNX0xWRFNf
Q09ERUMgaXMgbm90IHNldApDT05GSUdfRFJNX01FR0FDSElQU19TVERQWFhYWF9HRV9CODUw
VjNfRlc9eQpDT05GSUdfRFJNX05XTF9NSVBJX0RTST15CiMgQ09ORklHX0RSTV9OWFBfUFRO
MzQ2MCBpcyBub3Qgc2V0CkNPTkZJR19EUk1fUEFSQURFX1BTODYyMj15CiMgQ09ORklHX0RS
TV9QQVJBREVfUFM4NjQwIGlzIG5vdCBzZXQKQ09ORklHX0RSTV9TQU1TVU5HX0RTSU09eQpD
T05GSUdfRFJNX1NJTF9TSUk4NjIwPXkKQ09ORklHX0RSTV9TSUk5MDJYPXkKIyBDT05GSUdf
RFJNX1NJSTkyMzQgaXMgbm90IHNldApDT05GSUdfRFJNX1NJTVBMRV9CUklER0U9eQpDT05G
SUdfRFJNX1RISU5FX1RIQzYzTFZEMTAyND15CkNPTkZJR19EUk1fVE9TSElCQV9UQzM1ODc2
Mj15CkNPTkZJR19EUk1fVE9TSElCQV9UQzM1ODc2ND15CkNPTkZJR19EUk1fVE9TSElCQV9U
QzM1ODc2Nz15CiMgQ09ORklHX0RSTV9UT1NISUJBX1RDMzU4NzY4IGlzIG5vdCBzZXQKQ09O
RklHX0RSTV9UT1NISUJBX1RDMzU4Nzc1PXkKQ09ORklHX0RSTV9USV9ETFBDMzQzMz15CkNP
TkZJR19EUk1fVElfVEZQNDEwPXkKQ09ORklHX0RSTV9USV9TTjY1RFNJODM9eQojIENPTkZJ
R19EUk1fVElfU042NURTSTg2IGlzIG5vdCBzZXQKIyBDT05GSUdfRFJNX1RJX1RQRDEyUzAx
NSBpcyBub3Qgc2V0CiMgQ09ORklHX0RSTV9BTkFMT0dJWF9BTlg2MzQ1IGlzIG5vdCBzZXQK
IyBDT05GSUdfRFJNX0FOQUxPR0lYX0FOWDc4WFggaXMgbm90IHNldAojIENPTkZJR19EUk1f
QU5BTE9HSVhfQU5YNzYyNSBpcyBub3Qgc2V0CkNPTkZJR19EUk1fSTJDX0FEVjc1MTE9eQoj
IENPTkZJR19EUk1fSTJDX0FEVjc1MTFfQ0VDIGlzIG5vdCBzZXQKQ09ORklHX0RSTV9DRE5T
X0RTST15CkNPTkZJR19EUk1fQ0ROU19EU0lfSjcyMUU9eQojIENPTkZJR19EUk1fQ0ROU19N
SERQODU0NiBpcyBub3Qgc2V0CiMgZW5kIG9mIERpc3BsYXkgSW50ZXJmYWNlIEJyaWRnZXMK
CiMgQ09ORklHX0RSTV9FVE5BVklWIGlzIG5vdCBzZXQKQ09ORklHX0RSTV9MT0dJQ1ZDPXkK
Q09ORklHX0RSTV9BUkNQR1U9eQpDT05GSUdfRFJNX1NJTVBMRURSTT15CiMgQ09ORklHX0RS
TV9TU0QxMzBYIGlzIG5vdCBzZXQKQ09ORklHX0RSTV9MSUJfUkFORE9NPXkKQ09ORklHX0RS
TV9QUklWQUNZX1NDUkVFTj15CkNPTkZJR19EUk1fUEFORUxfT1JJRU5UQVRJT05fUVVJUktT
PXkKCiMKIyBGcmFtZSBidWZmZXIgRGV2aWNlcwojCiMgQ09ORklHX0ZCIGlzIG5vdCBzZXQK
IyBlbmQgb2YgRnJhbWUgYnVmZmVyIERldmljZXMKCiMKIyBCYWNrbGlnaHQgJiBMQ0QgZGV2
aWNlIHN1cHBvcnQKIwpDT05GSUdfTENEX0NMQVNTX0RFVklDRT15CkNPTkZJR19MQ0RfUExB
VEZPUk09eQpDT05GSUdfQkFDS0xJR0hUX0NMQVNTX0RFVklDRT15CkNPTkZJR19CQUNLTElH
SFRfS1REMjUzPXkKIyBDT05GSUdfQkFDS0xJR0hUX0tURDI4MDEgaXMgbm90IHNldApDT05G
SUdfQkFDS0xJR0hUX0tUWjg4NjY9eQpDT05GSUdfQkFDS0xJR0hUX1BXTT15CkNPTkZJR19C
QUNLTElHSFRfTVQ2MzcwPXkKIyBDT05GSUdfQkFDS0xJR0hUX0FQUExFIGlzIG5vdCBzZXQK
IyBDT05GSUdfQkFDS0xJR0hUX1FDT01fV0xFRCBpcyBub3Qgc2V0CiMgQ09ORklHX0JBQ0tM
SUdIVF9SVDQ4MzEgaXMgbm90IHNldAojIENPTkZJR19CQUNLTElHSFRfU0FIQVJBIGlzIG5v
dCBzZXQKIyBDT05GSUdfQkFDS0xJR0hUX1dNODMxWCBpcyBub3Qgc2V0CkNPTkZJR19CQUNL
TElHSFRfQURQNTUyMD15CkNPTkZJR19CQUNLTElHSFRfQURQODg2MD15CiMgQ09ORklHX0JB
Q0tMSUdIVF9BRFA4ODcwIGlzIG5vdCBzZXQKIyBDT05GSUdfQkFDS0xJR0hUX1BDRjUwNjMz
IGlzIG5vdCBzZXQKQ09ORklHX0JBQ0tMSUdIVF9MTTM1MDk9eQpDT05GSUdfQkFDS0xJR0hU
X0xNMzYzMEE9eQpDT05GSUdfQkFDS0xJR0hUX0xNMzYzOT15CiMgQ09ORklHX0JBQ0tMSUdI
VF9MUDg1NVggaXMgbm90IHNldApDT05GSUdfQkFDS0xJR0hUX0xQODc4OD15CiMgQ09ORklH
X0JBQ0tMSUdIVF9NUDMzMDlDIGlzIG5vdCBzZXQKQ09ORklHX0JBQ0tMSUdIVF9QQU5ET1JB
PXkKIyBDT05GSUdfQkFDS0xJR0hUX1RQUzY1MjE3IGlzIG5vdCBzZXQKIyBDT05GSUdfQkFD
S0xJR0hUX0FTMzcxMSBpcyBub3Qgc2V0CkNPTkZJR19CQUNLTElHSFRfR1BJTz15CiMgQ09O
RklHX0JBQ0tMSUdIVF9MVjUyMDdMUCBpcyBub3Qgc2V0CkNPTkZJR19CQUNLTElHSFRfQkQ2
MTA3PXkKIyBDT05GSUdfQkFDS0xJR0hUX0FSQ1hDTk4gaXMgbm90IHNldApDT05GSUdfQkFD
S0xJR0hUX0xFRD15CiMgZW5kIG9mIEJhY2tsaWdodCAmIExDRCBkZXZpY2Ugc3VwcG9ydAoK
Q09ORklHX1ZJREVPTU9ERV9IRUxQRVJTPXkKQ09ORklHX0hETUk9eQoKIwojIENvbnNvbGUg
ZGlzcGxheSBkcml2ZXIgc3VwcG9ydAojCkNPTkZJR19WR0FfQ09OU09MRT15CiMgQ09ORklH
X01EQV9DT05TT0xFIGlzIG5vdCBzZXQKQ09ORklHX0RVTU1ZX0NPTlNPTEU9eQpDT05GSUdf
RFVNTVlfQ09OU09MRV9DT0xVTU5TPTgwCkNPTkZJR19EVU1NWV9DT05TT0xFX1JPV1M9MjUK
IyBlbmQgb2YgQ29uc29sZSBkaXNwbGF5IGRyaXZlciBzdXBwb3J0CiMgZW5kIG9mIEdyYXBo
aWNzIHN1cHBvcnQKCkNPTkZJR19EUk1fQUNDRUw9eQojIENPTkZJR19TT1VORCBpcyBub3Qg
c2V0CkNPTkZJR19ISURfU1VQUE9SVD15CkNPTkZJR19ISUQ9eQpDT05GSUdfSElEX0JBVFRF
UllfU1RSRU5HVEg9eQpDT05GSUdfSElEUkFXPXkKQ09ORklHX1VISUQ9eQpDT05GSUdfSElE
X0dFTkVSSUM9eQoKIwojIFNwZWNpYWwgSElEIGRyaXZlcnMKIwpDT05GSUdfSElEX0E0VEVD
SD15CkNPTkZJR19ISURfQUNSVVg9eQpDT05GSUdfSElEX0FDUlVYX0ZGPXkKQ09ORklHX0hJ
RF9BUFBMRT15CkNPTkZJR19ISURfQVVSRUFMPXkKIyBDT05GSUdfSElEX0JFTEtJTiBpcyBu
b3Qgc2V0CiMgQ09ORklHX0hJRF9DSEVSUlkgaXMgbm90IHNldApDT05GSUdfSElEX0NPVUdB
Uj15CkNPTkZJR19ISURfTUFDQUxMWT15CkNPTkZJR19ISURfQ01FRElBPXkKQ09ORklHX0hJ
RF9DWVBSRVNTPXkKQ09ORklHX0hJRF9EUkFHT05SSVNFPXkKQ09ORklHX0RSQUdPTlJJU0Vf
RkY9eQojIENPTkZJR19ISURfRU1TX0ZGIGlzIG5vdCBzZXQKQ09ORklHX0hJRF9FTEVDT009
eQojIENPTkZJR19ISURfRVZJU0lPTiBpcyBub3Qgc2V0CkNPTkZJR19ISURfRVpLRVk9eQpD
T05GSUdfSElEX0dFTUJJUkQ9eQpDT05GSUdfSElEX0dGUk09eQpDT05GSUdfSElEX0dMT1JJ
T1VTPXkKQ09ORklHX0hJRF9WSVZBTERJX0NPTU1PTj15CkNPTkZJR19ISURfR09PR0xFX1NU
QURJQV9GRj15CkNPTkZJR19ISURfVklWQUxEST15CkNPTkZJR19ISURfS0VZVE9VQ0g9eQoj
IENPTkZJR19ISURfS1lFIGlzIG5vdCBzZXQKQ09ORklHX0hJRF9XQUxUT1A9eQojIENPTkZJ
R19ISURfVklFV1NPTklDIGlzIG5vdCBzZXQKIyBDT05GSUdfSElEX1ZSQzIgaXMgbm90IHNl
dApDT05GSUdfSElEX1hJQU9NST15CkNPTkZJR19ISURfR1lSQVRJT049eQpDT05GSUdfSElE
X0lDQURFPXkKQ09ORklHX0hJRF9JVEU9eQpDT05GSUdfSElEX0pBQlJBPXkKQ09ORklHX0hJ
RF9UV0lOSEFOPXkKIyBDT05GSUdfSElEX0tFTlNJTkdUT04gaXMgbm90IHNldAojIENPTkZJ
R19ISURfTENQT1dFUiBpcyBub3Qgc2V0CkNPTkZJR19ISURfTEVEPXkKQ09ORklHX0hJRF9M
RU5PVk89eQpDT05GSUdfSElEX01BR0lDTU9VU0U9eQpDT05GSUdfSElEX01BTFRST049eQpD
T05GSUdfSElEX01BWUZMQVNIPXkKIyBDT05GSUdfSElEX1JFRFJBR09OIGlzIG5vdCBzZXQK
Q09ORklHX0hJRF9NSUNST1NPRlQ9eQpDT05GSUdfSElEX01PTlRFUkVZPXkKQ09ORklHX0hJ
RF9NVUxUSVRPVUNIPXkKIyBDT05GSUdfSElEX05JTlRFTkRPIGlzIG5vdCBzZXQKIyBDT05G
SUdfSElEX05USSBpcyBub3Qgc2V0CkNPTkZJR19ISURfT1JURUs9eQojIENPTkZJR19ISURf
UEFOVEhFUkxPUkQgaXMgbm90IHNldApDT05GSUdfSElEX1BFVEFMWU5YPXkKQ09ORklHX0hJ
RF9QSUNPTENEPXkKQ09ORklHX0hJRF9QSUNPTENEX0JBQ0tMSUdIVD15CkNPTkZJR19ISURf
UElDT0xDRF9MQ0Q9eQpDT05GSUdfSElEX1BJQ09MQ0RfTEVEUz15CkNPTkZJR19ISURfUElD
T0xDRF9DSVI9eQojIENPTkZJR19ISURfUExBTlRST05JQ1MgaXMgbm90IHNldAojIENPTkZJ
R19ISURfUExBWVNUQVRJT04gaXMgbm90IHNldApDT05GSUdfSElEX1BYUkM9eQojIENPTkZJ
R19ISURfUkFaRVIgaXMgbm90IHNldApDT05GSUdfSElEX1BSSU1BWD15CiMgQ09ORklHX0hJ
RF9TQUlURUsgaXMgbm90IHNldApDT05GSUdfSElEX1NFTUlURUs9eQpDT05GSUdfSElEX1NQ
RUVETElOSz15CiMgQ09ORklHX0hJRF9TVEVBTSBpcyBub3Qgc2V0CkNPTkZJR19ISURfU1VO
UExVUz15CkNPTkZJR19ISURfUk1JPXkKIyBDT05GSUdfSElEX0dSRUVOQVNJQSBpcyBub3Qg
c2V0CkNPTkZJR19ISURfU01BUlRKT1lQTFVTPXkKIyBDT05GSUdfU01BUlRKT1lQTFVTX0ZG
IGlzIG5vdCBzZXQKQ09ORklHX0hJRF9USVZPPXkKIyBDT05GSUdfSElEX1RPUFNFRUQgaXMg
bm90IHNldAojIENPTkZJR19ISURfVE9QUkUgaXMgbm90IHNldAojIENPTkZJR19ISURfVEhJ
TkdNIGlzIG5vdCBzZXQKQ09ORklHX0hJRF9VRFJBV19QUzM9eQpDT05GSUdfSElEX1dJSU1P
VEU9eQojIENPTkZJR19ISURfWElOTU8gaXMgbm90IHNldApDT05GSUdfSElEX1pFUk9QTFVT
PXkKIyBDT05GSUdfWkVST1BMVVNfRkYgaXMgbm90IHNldApDT05GSUdfSElEX1pZREFDUk9O
PXkKIyBDT05GSUdfSElEX1NFTlNPUl9IVUIgaXMgbm90IHNldApDT05GSUdfSElEX0FMUFM9
eQojIGVuZCBvZiBTcGVjaWFsIEhJRCBkcml2ZXJzCgojCiMgSElELUJQRiBzdXBwb3J0CiMK
IyBlbmQgb2YgSElELUJQRiBzdXBwb3J0CgpDT05GSUdfSTJDX0hJRD15CkNPTkZJR19JMkNf
SElEX0FDUEk9eQojIENPTkZJR19JMkNfSElEX09GIGlzIG5vdCBzZXQKIyBDT05GSUdfSTJD
X0hJRF9PRl9FTEFOIGlzIG5vdCBzZXQKQ09ORklHX0kyQ19ISURfT0ZfR09PRElYPXkKQ09O
RklHX0kyQ19ISURfQ09SRT15CkNPTkZJR19VU0JfT0hDSV9MSVRUTEVfRU5ESUFOPXkKIyBD
T05GSUdfVVNCX1NVUFBPUlQgaXMgbm90IHNldApDT05GSUdfTU1DPXkKIyBDT05GSUdfUFdS
U0VRX0VNTUMgaXMgbm90IHNldAojIENPTkZJR19QV1JTRVFfU0lNUExFIGlzIG5vdCBzZXQK
Q09ORklHX01NQ19CTE9DSz15CkNPTkZJR19NTUNfQkxPQ0tfTUlOT1JTPTgKQ09ORklHX1NE
SU9fVUFSVD15CkNPTkZJR19NTUNfVEVTVD15CiMgQ09ORklHX01NQ19DUllQVE8gaXMgbm90
IHNldAoKIwojIE1NQy9TRC9TRElPIEhvc3QgQ29udHJvbGxlciBEcml2ZXJzCiMKIyBDT05G
SUdfTU1DX0RFQlVHIGlzIG5vdCBzZXQKIyBDT05GSUdfTU1DX1NESENJIGlzIG5vdCBzZXQK
Q09ORklHX01NQ19XQlNEPXkKQ09ORklHX01NQ19VU0RISTZST0wwPXkKQ09ORklHX01NQ19D
UUhDST15CkNPTkZJR19NTUNfSFNRPXkKQ09ORklHX01NQ19NVEs9eQpDT05GSUdfTU1DX0xJ
VEVYPXkKIyBDT05GSUdfU0NTSV9VRlNIQ0QgaXMgbm90IHNldApDT05GSUdfTUVNU1RJQ0s9
eQojIENPTkZJR19NRU1TVElDS19ERUJVRyBpcyBub3Qgc2V0CgojCiMgTWVtb3J5U3RpY2sg
ZHJpdmVycwojCiMgQ09ORklHX01FTVNUSUNLX1VOU0FGRV9SRVNVTUUgaXMgbm90IHNldAoj
IENPTkZJR19NU1BST19CTE9DSyBpcyBub3Qgc2V0CkNPTkZJR19NU19CTE9DSz15CgojCiMg
TWVtb3J5U3RpY2sgSG9zdCBDb250cm9sbGVyIERyaXZlcnMKIwpDT05GSUdfTkVXX0xFRFM9
eQpDT05GSUdfTEVEU19DTEFTUz15CiMgQ09ORklHX0xFRFNfQ0xBU1NfRkxBU0ggaXMgbm90
IHNldApDT05GSUdfTEVEU19DTEFTU19NVUxUSUNPTE9SPXkKIyBDT05GSUdfTEVEU19CUklH
SFRORVNTX0hXX0NIQU5HRUQgaXMgbm90IHNldAoKIwojIExFRCBkcml2ZXJzCiMKQ09ORklH
X0xFRFNfQU4zMDI1OUE9eQojIENPTkZJR19MRURTX0FQVSBpcyBub3Qgc2V0CkNPTkZJR19M
RURTX0FXMjAwWFg9eQpDT05GSUdfTEVEU19BVzIwMTM9eQpDT05GSUdfTEVEU19CQ002MzI4
PXkKQ09ORklHX0xFRFNfQkNNNjM1OD15CkNPTkZJR19MRURTX0NST1NfRUM9eQpDT05GSUdf
TEVEU19MTTM1MzA9eQpDT05GSUdfTEVEU19MTTM1MzI9eQpDT05GSUdfTEVEU19MTTM2NDI9
eQojIENPTkZJR19MRURTX0xNMzY5MlggaXMgbm90IHNldApDT05GSUdfTEVEU19NVDYzMjM9
eQpDT05GSUdfTEVEU19QQ0E5NTMyPXkKQ09ORklHX0xFRFNfUENBOTUzMl9HUElPPXkKQ09O
RklHX0xFRFNfR1BJTz15CkNPTkZJR19MRURTX0xQMzk0ND15CkNPTkZJR19MRURTX0xQMzk1
Mj15CkNPTkZJR19MRURTX0xQNTBYWD15CkNPTkZJR19MRURTX0xQNTVYWF9DT01NT049eQpD
T05GSUdfTEVEU19MUDU1MjE9eQpDT05GSUdfTEVEU19MUDU1MjM9eQojIENPTkZJR19MRURT
X0xQNTU2MiBpcyBub3Qgc2V0CiMgQ09ORklHX0xFRFNfTFA1NTY5IGlzIG5vdCBzZXQKQ09O
RklHX0xFRFNfTFA4NTAxPXkKIyBDT05GSUdfTEVEU19MUDg3ODggaXMgbm90IHNldApDT05G
SUdfTEVEU19MUDg4NjA9eQpDT05GSUdfTEVEU19QQ0E5NTVYPXkKQ09ORklHX0xFRFNfUENB
OTU1WF9HUElPPXkKIyBDT05GSUdfTEVEU19QQ0E5NjNYIGlzIG5vdCBzZXQKIyBDT05GSUdf
TEVEU19QQ0E5OTVYIGlzIG5vdCBzZXQKIyBDT05GSUdfTEVEU19XTTgzMVhfU1RBVFVTIGlz
IG5vdCBzZXQKQ09ORklHX0xFRFNfV004MzUwPXkKQ09ORklHX0xFRFNfUFdNPXkKQ09ORklH
X0xFRFNfUkVHVUxBVE9SPXkKIyBDT05GSUdfTEVEU19CRDI2MDZNVlYgaXMgbm90IHNldAoj
IENPTkZJR19MRURTX0JEMjgwMiBpcyBub3Qgc2V0CiMgQ09ORklHX0xFRFNfTFQzNTkzIGlz
IG5vdCBzZXQKQ09ORklHX0xFRFNfQURQNTUyMD15CkNPTkZJR19MRURTX01DMTM3ODM9eQpD
T05GSUdfTEVEU19UQ0E2NTA3PXkKIyBDT05GSUdfTEVEU19UTEM1OTFYWCBpcyBub3Qgc2V0
CkNPTkZJR19MRURTX01BWDc3NjUwPXkKQ09ORklHX0xFRFNfTE0zNTV4PXkKIyBDT05GSUdf
TEVEU19PVDIwMCBpcyBub3Qgc2V0CkNPTkZJR19MRURTX01FTkYyMUJNQz15CiMgQ09ORklH
X0xFRFNfSVMzMUZMMzE5WCBpcyBub3Qgc2V0CkNPTkZJR19MRURTX0lTMzFGTDMyWFg9eQoK
IwojIExFRCBkcml2ZXIgZm9yIGJsaW5rKDEpIFVTQiBSR0IgTEVEIGlzIHVuZGVyIFNwZWNp
YWwgSElEIGRyaXZlcnMgKEhJRF9USElOR00pCiMKQ09ORklHX0xFRFNfQkxJTktNPXkKQ09O
RklHX0xFRFNfU1lTQ09OPXkKIyBDT05GSUdfTEVEU19NTFhDUExEIGlzIG5vdCBzZXQKQ09O
RklHX0xFRFNfTUxYUkVHPXkKIyBDT05GSUdfTEVEU19VU0VSIGlzIG5vdCBzZXQKIyBDT05G
SUdfTEVEU19OSUM3OEJYIGlzIG5vdCBzZXQKIyBDT05GSUdfTEVEU19MTTM2OTcgaXMgbm90
IHNldAojIENPTkZJR19MRURTX0xNMzYyNzQgaXMgbm90IHNldApDT05GSUdfTEVEU19UUFM2
MTA1WD15CiMgQ09ORklHX0xFRFNfTEdNIGlzIG5vdCBzZXQKCiMKIyBGbGFzaCBhbmQgVG9y
Y2ggTEVEIGRyaXZlcnMKIwoKIwojIFJHQiBMRUQgZHJpdmVycwojCiMgQ09ORklHX0xFRFNf
R1JPVVBfTVVMVElDT0xPUiBpcyBub3Qgc2V0CkNPTkZJR19MRURTX0tURDIwMlg9eQojIENP
TkZJR19MRURTX05DUDU2MjMgaXMgbm90IHNldApDT05GSUdfTEVEU19QV01fTVVMVElDT0xP
Uj15CiMgQ09ORklHX0xFRFNfTVQ2MzcwX1JHQiBpcyBub3Qgc2V0CgojCiMgTEVEIFRyaWdn
ZXJzCiMKQ09ORklHX0xFRFNfVFJJR0dFUlM9eQpDT05GSUdfTEVEU19UUklHR0VSX1RJTUVS
PXkKQ09ORklHX0xFRFNfVFJJR0dFUl9PTkVTSE9UPXkKIyBDT05GSUdfTEVEU19UUklHR0VS
X0RJU0sgaXMgbm90IHNldAojIENPTkZJR19MRURTX1RSSUdHRVJfTVREIGlzIG5vdCBzZXQK
IyBDT05GSUdfTEVEU19UUklHR0VSX0hFQVJUQkVBVCBpcyBub3Qgc2V0CiMgQ09ORklHX0xF
RFNfVFJJR0dFUl9CQUNLTElHSFQgaXMgbm90IHNldApDT05GSUdfTEVEU19UUklHR0VSX0NQ
VT15CkNPTkZJR19MRURTX1RSSUdHRVJfQUNUSVZJVFk9eQpDT05GSUdfTEVEU19UUklHR0VS
X0dQSU89eQpDT05GSUdfTEVEU19UUklHR0VSX0RFRkFVTFRfT049eQoKIwojIGlwdGFibGVz
IHRyaWdnZXIgaXMgdW5kZXIgTmV0ZmlsdGVyIGNvbmZpZyAoTEVEIHRhcmdldCkKIwpDT05G
SUdfTEVEU19UUklHR0VSX1RSQU5TSUVOVD15CkNPTkZJR19MRURTX1RSSUdHRVJfQ0FNRVJB
PXkKQ09ORklHX0xFRFNfVFJJR0dFUl9QQU5JQz15CkNPTkZJR19MRURTX1RSSUdHRVJfTkVU
REVWPXkKIyBDT05GSUdfTEVEU19UUklHR0VSX1BBVFRFUk4gaXMgbm90IHNldApDT05GSUdf
TEVEU19UUklHR0VSX1RUWT15CkNPTkZJR19MRURTX1RSSUdHRVJfSU5QVVRfRVZFTlRTPXkK
CiMKIyBTaW1wbGUgTEVEIGRyaXZlcnMKIwpDT05GSUdfTEVEU19TSUVNRU5TX1NJTUFUSUNf
SVBDPXkKIyBDT05GSUdfTEVEU19TSUVNRU5TX1NJTUFUSUNfSVBDX0FQT0xMT0xBS0UgaXMg
bm90IHNldApDT05GSUdfTEVEU19TSUVNRU5TX1NJTUFUSUNfSVBDX0Y3MTg4WD15CkNPTkZJ
R19BQ0NFU1NJQklMSVRZPXkKQ09ORklHX0ExMVlfQlJBSUxMRV9DT05TT0xFPXkKCiMKIyBT
cGVha3VwIGNvbnNvbGUgc3BlZWNoCiMKIyBDT05GSUdfU1BFQUtVUCBpcyBub3Qgc2V0CiMg
ZW5kIG9mIFNwZWFrdXAgY29uc29sZSBzcGVlY2gKCkNPTkZJR19FREFDX0FUT01JQ19TQ1JV
Qj15CkNPTkZJR19FREFDX1NVUFBPUlQ9eQpDT05GSUdfUlRDX0xJQj15CkNPTkZJR19SVENf
TUMxNDY4MThfTElCPXkKQ09ORklHX1JUQ19DTEFTUz15CkNPTkZJR19SVENfSENUT1NZUz15
CkNPTkZJR19SVENfSENUT1NZU19ERVZJQ0U9InJ0YzAiCiMgQ09ORklHX1JUQ19TWVNUT0hD
IGlzIG5vdCBzZXQKIyBDT05GSUdfUlRDX0RFQlVHIGlzIG5vdCBzZXQKQ09ORklHX1JUQ19M
SUJfS1VOSVRfVEVTVD15CiMgQ09ORklHX1JUQ19OVk1FTSBpcyBub3Qgc2V0CgojCiMgUlRD
IGludGVyZmFjZXMKIwpDT05GSUdfUlRDX0lOVEZfU1lTRlM9eQpDT05GSUdfUlRDX0lOVEZf
UFJPQz15CiMgQ09ORklHX1JUQ19JTlRGX0RFViBpcyBub3Qgc2V0CkNPTkZJR19SVENfRFJW
X1RFU1Q9eQoKIwojIEkyQyBSVEMgZHJpdmVycwojCiMgQ09ORklHX1JUQ19EUlZfODhQTTgw
WCBpcyBub3Qgc2V0CkNPTkZJR19SVENfRFJWX0FCQjVaRVMzPXkKQ09ORklHX1JUQ19EUlZf
QUJFT1o5PXkKQ09ORklHX1JUQ19EUlZfQUJYODBYPXkKIyBDT05GSUdfUlRDX0RSVl9EUzEz
MDcgaXMgbm90IHNldAojIENPTkZJR19SVENfRFJWX0RTMTM3NCBpcyBub3Qgc2V0CiMgQ09O
RklHX1JUQ19EUlZfRFMxNjcyIGlzIG5vdCBzZXQKIyBDT05GSUdfUlRDX0RSVl9IWU04NTYz
IGlzIG5vdCBzZXQKQ09ORklHX1JUQ19EUlZfTFA4Nzg4PXkKIyBDT05GSUdfUlRDX0RSVl9N
QVg2OTAwIGlzIG5vdCBzZXQKQ09ORklHX1JUQ19EUlZfTUFYODkwNz15CkNPTkZJR19SVENf
RFJWX01BWDMxMzM1PXkKQ09ORklHX1JUQ19EUlZfTUFYNzc2ODY9eQpDT05GSUdfUlRDX0RS
Vl9OQ1QzMDE4WT15CkNPTkZJR19SVENfRFJWX1JTNUMzNzI9eQpDT05GSUdfUlRDX0RSVl9J
U0wxMjA4PXkKQ09ORklHX1JUQ19EUlZfSVNMMTIwMjI9eQpDT05GSUdfUlRDX0RSVl9JU0wx
MjAyNj15CiMgQ09ORklHX1JUQ19EUlZfWDEyMDUgaXMgbm90IHNldApDT05GSUdfUlRDX0RS
Vl9QQ0Y4NTIzPXkKQ09ORklHX1JUQ19EUlZfUENGODUwNjM9eQojIENPTkZJR19SVENfRFJW
X1BDRjg1MzYzIGlzIG5vdCBzZXQKQ09ORklHX1JUQ19EUlZfUENGODU2Mz15CiMgQ09ORklH
X1JUQ19EUlZfUENGODU4MyBpcyBub3Qgc2V0CiMgQ09ORklHX1JUQ19EUlZfTTQxVDgwIGlz
IG5vdCBzZXQKQ09ORklHX1JUQ19EUlZfQkQ3MDUyOD15CkNPTkZJR19SVENfRFJWX0JRMzJL
PXkKQ09ORklHX1JUQ19EUlZfVFdMNDAzMD15CiMgQ09ORklHX1JUQ19EUlZfUEFMTUFTIGlz
IG5vdCBzZXQKIyBDT05GSUdfUlRDX0RSVl9UUFM2NTg2WCBpcyBub3Qgc2V0CkNPTkZJR19S
VENfRFJWX1RQUzY1OTQ9eQpDT05GSUdfUlRDX0RSVl9UUFM2NTkxMD15CkNPTkZJR19SVENf
RFJWX1JDNVQ1ODM9eQpDT05GSUdfUlRDX0RSVl9SQzVUNjE5PXkKIyBDT05GSUdfUlRDX0RS
Vl9TMzUzOTBBIGlzIG5vdCBzZXQKIyBDT05GSUdfUlRDX0RSVl9GTTMxMzAgaXMgbm90IHNl
dApDT05GSUdfUlRDX0RSVl9SWDgwMTA9eQpDT05GSUdfUlRDX0RSVl9SWDgxMTE9eQpDT05G
SUdfUlRDX0RSVl9SWDg1ODE9eQpDT05GSUdfUlRDX0RSVl9SWDgwMjU9eQpDT05GSUdfUlRD
X0RSVl9FTTMwMjc9eQpDT05GSUdfUlRDX0RSVl9SVjMwMjg9eQpDT05GSUdfUlRDX0RSVl9S
VjMwMzI9eQojIENPTkZJR19SVENfRFJWX1JWODgwMyBpcyBub3Qgc2V0CkNPTkZJR19SVENf
RFJWX1M1TT15CkNPTkZJR19SVENfRFJWX1NEMzA3OD15CgojCiMgU1BJIFJUQyBkcml2ZXJz
CiMKQ09ORklHX1JUQ19JMkNfQU5EX1NQST15CgojCiMgU1BJIGFuZCBJMkMgUlRDIGRyaXZl
cnMKIwpDT05GSUdfUlRDX0RSVl9EUzMyMzI9eQojIENPTkZJR19SVENfRFJWX0RTMzIzMl9I
V01PTiBpcyBub3Qgc2V0CiMgQ09ORklHX1JUQ19EUlZfUENGMjEyNyBpcyBub3Qgc2V0CkNP
TkZJR19SVENfRFJWX1JWMzAyOUMyPXkKIyBDT05GSUdfUlRDX0RSVl9SVjMwMjlfSFdNT04g
aXMgbm90IHNldApDT05GSUdfUlRDX0RSVl9SWDYxMTA9eQoKIwojIFBsYXRmb3JtIFJUQyBk
cml2ZXJzCiMKQ09ORklHX1JUQ19EUlZfQ01PUz15CkNPTkZJR19SVENfRFJWX0RTMTI4Nj15
CkNPTkZJR19SVENfRFJWX0RTMTUxMT15CkNPTkZJR19SVENfRFJWX0RTMTU1Mz15CkNPTkZJ
R19SVENfRFJWX0RTMTY4NV9GQU1JTFk9eQpDT05GSUdfUlRDX0RSVl9EUzE2ODU9eQojIENP
TkZJR19SVENfRFJWX0RTMTY4OSBpcyBub3Qgc2V0CiMgQ09ORklHX1JUQ19EUlZfRFMxNzI4
NSBpcyBub3Qgc2V0CiMgQ09ORklHX1JUQ19EUlZfRFMxNzQ4NSBpcyBub3Qgc2V0CiMgQ09O
RklHX1JUQ19EUlZfRFMxNzg4NSBpcyBub3Qgc2V0CkNPTkZJR19SVENfRFJWX0RTMTc0Mj15
CiMgQ09ORklHX1JUQ19EUlZfRFMyNDA0IGlzIG5vdCBzZXQKQ09ORklHX1JUQ19EUlZfREE5
MDYzPXkKQ09ORklHX1JUQ19EUlZfU1RLMTdUQTg9eQpDT05GSUdfUlRDX0RSVl9NNDhUODY9
eQpDT05GSUdfUlRDX0RSVl9NNDhUMzU9eQpDT05GSUdfUlRDX0RSVl9NNDhUNTk9eQojIENP
TkZJR19SVENfRFJWX01TTTYyNDIgaXMgbm90IHNldApDT05GSUdfUlRDX0RSVl9SUDVDMDE9
eQpDT05GSUdfUlRDX0RSVl9XTTgzMVg9eQojIENPTkZJR19SVENfRFJWX1dNODM1MCBpcyBu
b3Qgc2V0CkNPTkZJR19SVENfRFJWX1BDRjUwNjMzPXkKIyBDT05GSUdfUlRDX0RSVl9aWU5R
TVAgaXMgbm90IHNldAojIENPTkZJR19SVENfRFJWX0NST1NfRUMgaXMgbm90IHNldAojIENP
TkZJR19SVENfRFJWX05UWEVDIGlzIG5vdCBzZXQKCiMKIyBvbi1DUFUgUlRDIGRyaXZlcnMK
IwpDT05GSUdfUlRDX0RSVl9DQURFTkNFPXkKIyBDT05GSUdfUlRDX0RSVl9GVFJUQzAxMCBp
cyBub3Qgc2V0CkNPTkZJR19SVENfRFJWX01DMTNYWFg9eQpDT05GSUdfUlRDX0RSVl9NVDYz
OTc9eQojIENPTkZJR19SVENfRFJWX1I3MzAxIGlzIG5vdCBzZXQKCiMKIyBISUQgU2Vuc29y
IFJUQyBkcml2ZXJzCiMKIyBDT05GSUdfUlRDX0RSVl9HT0xERklTSCBpcyBub3Qgc2V0CiMg
Q09ORklHX1JUQ19EUlZfV0lMQ09fRUMgaXMgbm90IHNldAojIENPTkZJR19ETUFERVZJQ0VT
IGlzIG5vdCBzZXQKCiMKIyBETUFCVUYgb3B0aW9ucwojCkNPTkZJR19TWU5DX0ZJTEU9eQoj
IENPTkZJR19VRE1BQlVGIGlzIG5vdCBzZXQKIyBDT05GSUdfRE1BQlVGX01PVkVfTk9USUZZ
IGlzIG5vdCBzZXQKQ09ORklHX0RNQUJVRl9ERUJVRz15CkNPTkZJR19ETUFCVUZfU0VMRlRF
U1RTPXkKIyBDT05GSUdfRE1BQlVGX0hFQVBTIGlzIG5vdCBzZXQKIyBDT05GSUdfRE1BQlVG
X1NZU0ZTX1NUQVRTIGlzIG5vdCBzZXQKIyBlbmQgb2YgRE1BQlVGIG9wdGlvbnMKCkNPTkZJ
R19VSU89eQpDT05GSUdfVUlPX1BEUlZfR0VOSVJRPXkKQ09ORklHX1VJT19ETUVNX0dFTklS
UT15CiMgQ09ORklHX1ZGSU8gaXMgbm90IHNldApDT05GSUdfSVJRX0JZUEFTU19NQU5BR0VS
PXkKQ09ORklHX1ZJUlRfRFJJVkVSUz15CkNPTkZJR19WTUdFTklEPXkKQ09ORklHX1ZJUlRJ
T19BTkNIT1I9eQpDT05GSUdfVklSVElPPXkKQ09ORklHX1ZJUlRJT19NRU5VPXkKQ09ORklH
X1ZJUlRJT19WRFBBPXkKIyBDT05GSUdfVklSVElPX0JBTExPT04gaXMgbm90IHNldApDT05G
SUdfVklSVElPX0lOUFVUPXkKIyBDT05GSUdfVklSVElPX01NSU8gaXMgbm90IHNldApDT05G
SUdfVklSVElPX0RFQlVHPXkKQ09ORklHX1ZEUEE9eQpDT05GSUdfVkRQQV9TSU09eQojIENP
TkZJR19WRFBBX1NJTV9ORVQgaXMgbm90IHNldApDT05GSUdfVkRQQV9TSU1fQkxPQ0s9eQoj
IENPTkZJR19WRFBBX1VTRVIgaXMgbm90IHNldAojIENPTkZJR19NTFg1X1ZEUEFfU1RFRVJJ
TkdfREVCVUcgaXMgbm90IHNldApDT05GSUdfVkhPU1RfSU9UTEI9eQpDT05GSUdfVkhPU1Rf
UklORz15CkNPTkZJR19WSE9TVF9UQVNLPXkKQ09ORklHX1ZIT1NUPXkKQ09ORklHX1ZIT1NU
X01FTlU9eQojIENPTkZJR19WSE9TVF9ORVQgaXMgbm90IHNldApDT05GSUdfVkhPU1RfU0NT
ST15CkNPTkZJR19WSE9TVF9WRFBBPXkKIyBDT05GSUdfVkhPU1RfQ1JPU1NfRU5ESUFOX0xF
R0FDWSBpcyBub3Qgc2V0CgojCiMgTWljcm9zb2Z0IEh5cGVyLVYgZ3Vlc3Qgc3VwcG9ydAoj
CiMgZW5kIG9mIE1pY3Jvc29mdCBIeXBlci1WIGd1ZXN0IHN1cHBvcnQKCkNPTkZJR19HUkVZ
QlVTPXkKIyBDT05GSUdfQ09NRURJIGlzIG5vdCBzZXQKIyBDT05GSUdfU1RBR0lORyBpcyBu
b3Qgc2V0CiMgQ09ORklHX0dPTERGSVNIIGlzIG5vdCBzZXQKQ09ORklHX0NIUk9NRV9QTEFU
Rk9STVM9eQpDT05GSUdfQ0hST01FT1NfQUNQST15CkNPTkZJR19DSFJPTUVPU19MQVBUT1A9
eQpDT05GSUdfQ0hST01FT1NfUFNUT1JFPXkKQ09ORklHX0NIUk9NRU9TX1RCTUM9eQpDT05G
SUdfQ1JPU19FQz15CkNPTkZJR19DUk9TX0VDX0kyQz15CkNPTkZJR19DUk9TX0VDX1JQTVNH
PXkKQ09ORklHX0NST1NfRUNfTFBDPXkKQ09ORklHX0NST1NfRUNfUFJPVE89eQpDT05GSUdf
Q1JPU19LQkRfTEVEX0JBQ0tMSUdIVD15CkNPTkZJR19DUk9TX0VDX0NIQVJERVY9eQojIENP
TkZJR19DUk9TX0VDX0xJR0hUQkFSIGlzIG5vdCBzZXQKQ09ORklHX0NST1NfRUNfVkJDPXkK
Q09ORklHX0NST1NfRUNfU0VOU09SSFVCPXkKQ09ORklHX0NST1NfRUNfU1lTRlM9eQpDT05G
SUdfQ1JPU19VU0JQRF9MT0dHRVI9eQpDT05GSUdfQ1JPU19VU0JQRF9OT1RJRlk9eQpDT05G
SUdfQ0hST01FT1NfUFJJVkFDWV9TQ1JFRU49eQpDT05GSUdfV0lMQ09fRUM9eQpDT05GSUdf
V0lMQ09fRUNfREVCVUdGUz15CiMgQ09ORklHX1dJTENPX0VDX0VWRU5UUyBpcyBub3Qgc2V0
CkNPTkZJR19XSUxDT19FQ19URUxFTUVUUlk9eQpDT05GSUdfQ1JPU19LVU5JVF9FQ19QUk9U
T19URVNUPXkKIyBDT05GSUdfQ1pOSUNfUExBVEZPUk1TIGlzIG5vdCBzZXQKQ09ORklHX01F
TExBTk9YX1BMQVRGT1JNPXkKQ09ORklHX01MWFJFR19IT1RQTFVHPXkKQ09ORklHX01MWFJF
R19JTz15CiMgQ09ORklHX01MWFJFR19MQyBpcyBub3Qgc2V0CkNPTkZJR19OVlNXX1NOMjIw
MT15CkNPTkZJR19PTFBDX0VDPXkKQ09ORklHX1NVUkZBQ0VfUExBVEZPUk1TPXkKQ09ORklH
X1NVUkZBQ0VfM19QT1dFUl9PUFJFR0lPTj15CiMgQ09ORklHX1NVUkZBQ0VfR1BFIGlzIG5v
dCBzZXQKIyBDT05GSUdfU1VSRkFDRV9IT1RQTFVHIGlzIG5vdCBzZXQKIyBDT05GSUdfU1VS
RkFDRV9QUk8zX0JVVFRPTiBpcyBub3Qgc2V0CkNPTkZJR19YODZfUExBVEZPUk1fREVWSUNF
Uz15CkNPTkZJR19BQ1BJX1dNST15CkNPTkZJR19XTUlfQk1PRj15CkNPTkZJR19IVUFXRUlf
V01JPXkKIyBDT05GSUdfTVhNX1dNSSBpcyBub3Qgc2V0CkNPTkZJR19OVklESUFfV01JX0VD
X0JBQ0tMSUdIVD15CkNPTkZJR19YSUFPTUlfV01JPXkKQ09ORklHX0dJR0FCWVRFX1dNST15
CiMgQ09ORklHX1lPR0FCT09LIGlzIG5vdCBzZXQKQ09ORklHX0FDRVJIREY9eQpDT05GSUdf
QUNFUl9XSVJFTEVTUz15CiMgQ09ORklHX0FDRVJfV01JIGlzIG5vdCBzZXQKQ09ORklHX0FN
RF9XQlJGPXkKQ09ORklHX0FEVl9TV0JVVFRPTj15CkNPTkZJR19BU1VTX0xBUFRPUD15CkNP
TkZJR19BU1VTX1dJUkVMRVNTPXkKQ09ORklHX0FTVVNfVEYxMDNDX0RPQ0s9eQojIENPTkZJ
R19YODZfUExBVEZPUk1fRFJJVkVSU19ERUxMIGlzIG5vdCBzZXQKQ09ORklHX0ZVSklUU1Vf
TEFQVE9QPXkKIyBDT05GSUdfRlVKSVRTVV9UQUJMRVQgaXMgbm90IHNldApDT05GSUdfR1BE
X1BPQ0tFVF9GQU49eQojIENPTkZJR19YODZfUExBVEZPUk1fRFJJVkVSU19IUCBpcyBub3Qg
c2V0CiMgQ09ORklHX1dJUkVMRVNTX0hPVEtFWSBpcyBub3Qgc2V0CkNPTkZJR19MRU5PVk9f
WU1DPXkKQ09ORklHX1NFTlNPUlNfSERBUFM9eQpDT05GSUdfVEhJTktQQURfQUNQST15CiMg
Q09ORklHX1RISU5LUEFEX0FDUElfREVCVUdGQUNJTElUSUVTIGlzIG5vdCBzZXQKIyBDT05G
SUdfVEhJTktQQURfQUNQSV9ERUJVRyBpcyBub3Qgc2V0CkNPTkZJR19USElOS1BBRF9BQ1BJ
X1VOU0FGRV9MRURTPXkKIyBDT05GSUdfVEhJTktQQURfQUNQSV9WSURFTyBpcyBub3Qgc2V0
CkNPTkZJR19USElOS1BBRF9BQ1BJX0hPVEtFWV9QT0xMPXkKQ09ORklHX1RISU5LUEFEX0xN
ST15CiMgQ09ORklHX0lOVEVMX0FUT01JU1AyX0xFRCBpcyBub3Qgc2V0CkNPTkZJR19JTlRF
TF9TQVJfSU5UMTA5Mj15CkNPTkZJR19JTlRFTF9TS0xfSU5UMzQ3Mj15CkNPTkZJR19JTlRF
TF9XTUk9eQpDT05GSUdfSU5URUxfV01JX1NCTF9GV19VUERBVEU9eQpDT05GSUdfSU5URUxf
V01JX1RIVU5ERVJCT0xUPXkKQ09ORklHX0lOVEVMX0hJRF9FVkVOVD15CkNPTkZJR19JTlRF
TF9WQlROPXkKQ09ORklHX0lOVEVMX0JYVFdDX1BNSUNfVE1VPXkKIyBDT05GSUdfSU5URUxf
TVJGTERfUFdSQlROIGlzIG5vdCBzZXQKQ09ORklHX0lOVEVMX1BVTklUX0lQQz15CkNPTkZJ
R19JTlRFTF9SU1Q9eQojIENPTkZJR19JTlRFTF9TTUFSVENPTk5FQ1QgaXMgbm90IHNldApD
T05GSUdfQUNQSV9RVUlDS1NUQVJUPXkKIyBDT05GSUdfTUVFR09QQURfQU5YNzQyOCBpcyBu
b3Qgc2V0CkNPTkZJR19NU0lfRUM9eQpDT05GSUdfTVNJX1dNST15CkNPTkZJR19NU0lfV01J
X1BMQVRGT1JNPXkKQ09ORklHX1hPMTVfRUJPT0s9eQpDT05GSUdfQkFSQ09fUDUwX0dQSU89
eQpDT05GSUdfU0FNU1VOR19MQVBUT1A9eQpDT05GSUdfU0FNU1VOR19RMTA9eQpDT05GSUdf
QUNQSV9UT1NISUJBPXkKQ09ORklHX1RPU0hJQkFfQlRfUkZLSUxMPXkKQ09ORklHX1RPU0hJ
QkFfSEFQUz15CkNPTkZJR19UT1NISUJBX1dNST15CkNPTkZJR19BQ1BJX0NNUEM9eQpDT05G
SUdfTEdfTEFQVE9QPXkKIyBDT05GSUdfUEFOQVNPTklDX0xBUFRPUCBpcyBub3Qgc2V0CkNP
TkZJR19TWVNURU03Nl9BQ1BJPXkKQ09ORklHX1RPUFNUQVJfTEFQVE9QPXkKQ09ORklHX0lO
U1BVUl9QTEFURk9STV9QUk9GSUxFPXkKIyBDT05GSUdfTEVOT1ZPX1dNSV9DQU1FUkEgaXMg
bm90IHNldApDT05GSUdfRldfQVRUUl9DTEFTUz15CkNPTkZJR19JTlRFTF9TQ1VfSVBDPXkK
Q09ORklHX0lOVEVMX1NDVT15CkNPTkZJR19JTlRFTF9TQ1VfUExBVEZPUk09eQpDT05GSUdf
SU5URUxfU0NVX0lQQ19VVElMPXkKQ09ORklHX1NJRU1FTlNfU0lNQVRJQ19JUEM9eQpDT05G
SUdfU0lFTUVOU19TSU1BVElDX0lQQ19CQVRUPXkKQ09ORklHX1NJRU1FTlNfU0lNQVRJQ19J
UENfQkFUVF9BUE9MTE9MQUtFPXkKIyBDT05GSUdfU0lFTUVOU19TSU1BVElDX0lQQ19CQVRU
X0Y3MTg4WCBpcyBub3Qgc2V0CkNPTkZJR19TSUxJQ09NX1BMQVRGT1JNPXkKQ09ORklHX1dJ
Tk1BVEVfRk0wN19LRVlTPXkKIyBDT05GSUdfU0VMMzM1MF9QTEFURk9STSBpcyBub3Qgc2V0
CkNPTkZJR19IQVZFX0NMSz15CkNPTkZJR19IQVZFX0NMS19QUkVQQVJFPXkKQ09ORklHX0NP
TU1PTl9DTEs9eQojIENPTkZJR19DT01NT05fQ0xLX1dNODMxWCBpcyBub3Qgc2V0CkNPTkZJ
R19DT01NT05fQ0xLX01BWDc3Njg2PXkKQ09ORklHX0NPTU1PTl9DTEtfTUFYOTQ4NT15CiMg
Q09ORklHX0NPTU1PTl9DTEtfU0k1MzQxIGlzIG5vdCBzZXQKQ09ORklHX0NPTU1PTl9DTEtf
U0k1MzUxPXkKQ09ORklHX0NPTU1PTl9DTEtfU0k1MTQ9eQpDT05GSUdfQ09NTU9OX0NMS19T
STU0ND15CiMgQ09ORklHX0NPTU1PTl9DTEtfU0k1NzAgaXMgbm90IHNldAojIENPTkZJR19D
T01NT05fQ0xLX0NEQ0U3MDYgaXMgbm90IHNldAojIENPTkZJR19DT01NT05fQ0xLX1RQUzY4
NDcwIGlzIG5vdCBzZXQKQ09ORklHX0NPTU1PTl9DTEtfQ0RDRTkyNT15CkNPTkZJR19DT01N
T05fQ0xLX0NTMjAwMF9DUD15CkNPTkZJR19DT01NT05fQ0xLX1MyTVBTMTE9eQojIENPTkZJ
R19DTEtfVFdMIGlzIG5vdCBzZXQKQ09ORklHX0NPTU1PTl9DTEtfQVhJX0NMS0dFTj15CkNP
TkZJR19DT01NT05fQ0xLX1BBTE1BUz15CiMgQ09ORklHX0NPTU1PTl9DTEtfUFdNIGlzIG5v
dCBzZXQKQ09ORklHX0NPTU1PTl9DTEtfUlM5X1BDSUU9eQpDT05GSUdfQ09NTU9OX0NMS19T
STUyMVhYPXkKIyBDT05GSUdfQ09NTU9OX0NMS19WQzMgaXMgbm90IHNldAojIENPTkZJR19D
T01NT05fQ0xLX1ZDNSBpcyBub3Qgc2V0CkNPTkZJR19DT01NT05fQ0xLX1ZDNz15CkNPTkZJ
R19DT01NT05fQ0xLX0JENzE4WFg9eQojIENPTkZJR19DT01NT05fQ0xLX0ZJWEVEX01NSU8g
aXMgbm90IHNldApDT05GSUdfQ0xLX0xHTV9DR1U9eQpDT05GSUdfWElMSU5YX1ZDVT15CkNP
TkZJR19DT01NT05fQ0xLX1hMTlhfQ0xLV1pSRD15CkNPTkZJR19DTEtfS1VOSVRfVEVTVD15
CkNPTkZJR19DTEtfR0FURV9LVU5JVF9URVNUPXkKQ09ORklHX0NMS19GRF9LVU5JVF9URVNU
PXkKIyBDT05GSUdfSFdTUElOTE9DSyBpcyBub3Qgc2V0CgojCiMgQ2xvY2sgU291cmNlIGRy
aXZlcnMKIwpDT05GSUdfQ0xLU1JDX0k4MjUzPXkKQ09ORklHX0NMS0VWVF9JODI1Mz15CkNP
TkZJR19JODI1M19MT0NLPXkKQ09ORklHX0NMS0JMRF9JODI1Mz15CiMgZW5kIG9mIENsb2Nr
IFNvdXJjZSBkcml2ZXJzCgpDT05GSUdfTUFJTEJPWD15CkNPTkZJR19BUk1fTUhVX1YzPXkK
Q09ORklHX1BMQVRGT1JNX01IVT15CkNPTkZJR19QQ0M9eQojIENPTkZJR19BTFRFUkFfTUJP
WCBpcyBub3Qgc2V0CiMgQ09ORklHX01BSUxCT1hfVEVTVCBpcyBub3Qgc2V0CkNPTkZJR19J
T01NVV9JT1ZBPXkKQ09ORklHX0lPTU1VX0FQST15CkNPTkZJR19JT01NVV9TVVBQT1JUPXkK
CiMKIyBHZW5lcmljIElPTU1VIFBhZ2V0YWJsZSBTdXBwb3J0CiMKIyBlbmQgb2YgR2VuZXJp
YyBJT01NVSBQYWdldGFibGUgU3VwcG9ydAoKIyBDT05GSUdfSU9NTVVfREVGQVVMVF9ETUFf
U1RSSUNUIGlzIG5vdCBzZXQKIyBDT05GSUdfSU9NTVVfREVGQVVMVF9ETUFfTEFaWSBpcyBu
b3Qgc2V0CkNPTkZJR19JT01NVV9ERUZBVUxUX1BBU1NUSFJPVUdIPXkKQ09ORklHX09GX0lP
TU1VPXkKQ09ORklHX0lPTU1VX0RNQT15CiMgQ09ORklHX0lPTU1VRkQgaXMgbm90IHNldApD
T05GSUdfVklSVElPX0lPTU1VPXkKCiMKIyBSZW1vdGVwcm9jIGRyaXZlcnMKIwojIENPTkZJ
R19SRU1PVEVQUk9DIGlzIG5vdCBzZXQKIyBlbmQgb2YgUmVtb3RlcHJvYyBkcml2ZXJzCgoj
CiMgUnBtc2cgZHJpdmVycwojCkNPTkZJR19SUE1TRz15CkNPTkZJR19SUE1TR19DSEFSPXkK
IyBDT05GSUdfUlBNU0dfQ1RSTCBpcyBub3Qgc2V0CkNPTkZJR19SUE1TR19OUz15CkNPTkZJ
R19SUE1TR19RQ09NX0dMSU5LPXkKQ09ORklHX1JQTVNHX1FDT01fR0xJTktfUlBNPXkKIyBD
T05GSUdfUlBNU0dfVklSVElPIGlzIG5vdCBzZXQKIyBlbmQgb2YgUnBtc2cgZHJpdmVycwoK
Q09ORklHX1NPVU5EV0lSRT15CgojCiMgU291bmRXaXJlIERldmljZXMKIwoKIwojIFNPQyAo
U3lzdGVtIE9uIENoaXApIHNwZWNpZmljIERyaXZlcnMKIwoKIwojIEFtbG9naWMgU29DIGRy
aXZlcnMKIwojIGVuZCBvZiBBbWxvZ2ljIFNvQyBkcml2ZXJzCgojCiMgQnJvYWRjb20gU29D
IGRyaXZlcnMKIwojIGVuZCBvZiBCcm9hZGNvbSBTb0MgZHJpdmVycwoKIwojIE5YUC9GcmVl
c2NhbGUgUW9ySVEgU29DIGRyaXZlcnMKIwojIGVuZCBvZiBOWFAvRnJlZXNjYWxlIFFvcklR
IFNvQyBkcml2ZXJzCgojCiMgZnVqaXRzdSBTb0MgZHJpdmVycwojCiMgZW5kIG9mIGZ1aml0
c3UgU29DIGRyaXZlcnMKCiMKIyBpLk1YIFNvQyBkcml2ZXJzCiMKIyBlbmQgb2YgaS5NWCBT
b0MgZHJpdmVycwoKIwojIEVuYWJsZSBMaXRlWCBTb0MgQnVpbGRlciBzcGVjaWZpYyBkcml2
ZXJzCiMKQ09ORklHX0xJVEVYPXkKQ09ORklHX0xJVEVYX1NPQ19DT05UUk9MTEVSPXkKIyBl
bmQgb2YgRW5hYmxlIExpdGVYIFNvQyBCdWlsZGVyIHNwZWNpZmljIGRyaXZlcnMKCkNPTkZJ
R19XUENNNDUwX1NPQz15CgojCiMgUXVhbGNvbW0gU29DIGRyaXZlcnMKIwojIGVuZCBvZiBR
dWFsY29tbSBTb0MgZHJpdmVycwoKQ09ORklHX1NPQ19UST15CgojCiMgWGlsaW54IFNvQyBk
cml2ZXJzCiMKIyBlbmQgb2YgWGlsaW54IFNvQyBkcml2ZXJzCiMgZW5kIG9mIFNPQyAoU3lz
dGVtIE9uIENoaXApIHNwZWNpZmljIERyaXZlcnMKCiMKIyBQTSBEb21haW5zCiMKCiMKIyBB
bWxvZ2ljIFBNIERvbWFpbnMKIwojIGVuZCBvZiBBbWxvZ2ljIFBNIERvbWFpbnMKCiMKIyBC
cm9hZGNvbSBQTSBEb21haW5zCiMKIyBlbmQgb2YgQnJvYWRjb20gUE0gRG9tYWlucwoKIwoj
IGkuTVggUE0gRG9tYWlucwojCiMgZW5kIG9mIGkuTVggUE0gRG9tYWlucwoKIwojIFF1YWxj
b21tIFBNIERvbWFpbnMKIwojIGVuZCBvZiBRdWFsY29tbSBQTSBEb21haW5zCiMgZW5kIG9m
IFBNIERvbWFpbnMKCkNPTkZJR19QTV9ERVZGUkVRPXkKCiMKIyBERVZGUkVRIEdvdmVybm9y
cwojCkNPTkZJR19ERVZGUkVRX0dPVl9TSU1QTEVfT05ERU1BTkQ9eQpDT05GSUdfREVWRlJF
UV9HT1ZfUEVSRk9STUFOQ0U9eQojIENPTkZJR19ERVZGUkVRX0dPVl9QT1dFUlNBVkUgaXMg
bm90IHNldApDT05GSUdfREVWRlJFUV9HT1ZfVVNFUlNQQUNFPXkKIyBDT05GSUdfREVWRlJF
UV9HT1ZfUEFTU0lWRSBpcyBub3Qgc2V0CgojCiMgREVWRlJFUSBEcml2ZXJzCiMKIyBDT05G
SUdfUE1fREVWRlJFUV9FVkVOVCBpcyBub3Qgc2V0CkNPTkZJR19FWFRDT049eQoKIwojIEV4
dGNvbiBEZXZpY2UgRHJpdmVycwojCkNPTkZJR19FWFRDT05fQURDX0pBQ0s9eQojIENPTkZJ
R19FWFRDT05fRlNBOTQ4MCBpcyBub3Qgc2V0CiMgQ09ORklHX0VYVENPTl9HUElPIGlzIG5v
dCBzZXQKQ09ORklHX0VYVENPTl9JTlRFTF9JTlQzNDk2PXkKQ09ORklHX0VYVENPTl9JTlRF
TF9NUkZMRD15CiMgQ09ORklHX0VYVENPTl9MQzgyNDIwNlhBIGlzIG5vdCBzZXQKQ09ORklH
X0VYVENPTl9NQVgxNDU3Nz15CiMgQ09ORklHX0VYVENPTl9NQVgzMzU1IGlzIG5vdCBzZXQK
IyBDT05GSUdfRVhUQ09OX01BWDc3NjkzIGlzIG5vdCBzZXQKQ09ORklHX0VYVENPTl9NQVg3
Nzg0Mz15CiMgQ09ORklHX0VYVENPTl9QQUxNQVMgaXMgbm90IHNldAojIENPTkZJR19FWFRD
T05fUFRONTE1MCBpcyBub3Qgc2V0CiMgQ09ORklHX0VYVENPTl9SVDg5NzNBIGlzIG5vdCBz
ZXQKIyBDT05GSUdfRVhUQ09OX1NNNTUwMiBpcyBub3Qgc2V0CiMgQ09ORklHX0VYVENPTl9V
U0JfR1BJTyBpcyBub3Qgc2V0CkNPTkZJR19FWFRDT05fVVNCQ19DUk9TX0VDPXkKQ09ORklH
X01FTU9SWT15CkNPTkZJR19JSU89eQpDT05GSUdfSUlPX0JVRkZFUj15CkNPTkZJR19JSU9f
QlVGRkVSX0NCPXkKQ09ORklHX0lJT19CVUZGRVJfRE1BPXkKQ09ORklHX0lJT19CVUZGRVJf
RE1BRU5HSU5FPXkKQ09ORklHX0lJT19CVUZGRVJfSFdfQ09OU1VNRVI9eQpDT05GSUdfSUlP
X0tGSUZPX0JVRj15CkNPTkZJR19JSU9fVFJJR0dFUkVEX0JVRkZFUj15CkNPTkZJR19JSU9f
Q09ORklHRlM9eQpDT05GSUdfSUlPX0dUU19IRUxQRVI9eQpDT05GSUdfSUlPX1RSSUdHRVI9
eQpDT05GSUdfSUlPX0NPTlNVTUVSU19QRVJfVFJJR0dFUj0yCiMgQ09ORklHX0lJT19TV19E
RVZJQ0UgaXMgbm90IHNldApDT05GSUdfSUlPX1NXX1RSSUdHRVI9eQpDT05GSUdfSUlPX1RS
SUdHRVJFRF9FVkVOVD15CgojCiMgQWNjZWxlcm9tZXRlcnMKIwpDT05GSUdfQURYTDMxMz15
CkNPTkZJR19BRFhMMzEzX0kyQz15CkNPTkZJR19BRFhMMzU1PXkKQ09ORklHX0FEWEwzNTVf
STJDPXkKQ09ORklHX0FEWEwzNjc9eQpDT05GSUdfQURYTDM2N19JMkM9eQojIENPTkZJR19B
RFhMMzcyX0kyQyBpcyBub3Qgc2V0CiMgQ09ORklHX0JNQTQwMCBpcyBub3Qgc2V0CkNPTkZJ
R19CTUMxNTBfQUNDRUw9eQpDT05GSUdfQk1DMTUwX0FDQ0VMX0kyQz15CkNPTkZJR19CTUkw
ODhfQUNDRUw9eQpDT05GSUdfQk1JMDg4X0FDQ0VMX0kyQz15CiMgQ09ORklHX0RBMjgwIGlz
IG5vdCBzZXQKIyBDT05GSUdfREEzMTEgaXMgbm90IHNldApDT05GSUdfRE1BUkQwNj15CkNP
TkZJR19ETUFSRDA5PXkKQ09ORklHX0RNQVJEMTA9eQojIENPTkZJR19GWExTODk2MkFGX0ky
QyBpcyBub3Qgc2V0CiMgQ09ORklHX0lJT19LWDAyMkFfSTJDIGlzIG5vdCBzZXQKIyBDT05G
SUdfS1hTRDkgaXMgbm90IHNldApDT05GSUdfS1hDSksxMDEzPXkKQ09ORklHX01DMzIzMD15
CkNPTkZJR19NTUE3NDU1PXkKQ09ORklHX01NQTc0NTVfSTJDPXkKIyBDT05GSUdfTU1BNzY2
MCBpcyBub3Qgc2V0CkNPTkZJR19NTUE4NDUyPXkKIyBDT05GSUdfTU1BOTU1MSBpcyBub3Qg
c2V0CiMgQ09ORklHX01NQTk1NTMgaXMgbm90IHNldApDT05GSUdfTVNBMzExPXkKIyBDT05G
SUdfTVhDNDAwNSBpcyBub3Qgc2V0CkNPTkZJR19NWEM2MjU1PXkKIyBDT05GSUdfU1RLODMx
MiBpcyBub3Qgc2V0CkNPTkZJR19TVEs4QkE1MD15CiMgZW5kIG9mIEFjY2VsZXJvbWV0ZXJz
CgojCiMgQW5hbG9nIHRvIGRpZ2l0YWwgY29udmVydGVycwojCkNPTkZJR19BRDcwOTFSPXkK
Q09ORklHX0FENzA5MVI1PXkKQ09ORklHX0FENzI5MT15CkNPTkZJR19BRDc2MDY9eQpDT05G
SUdfQUQ3NjA2X0lGQUNFX1BBUkFMTEVMPXkKQ09ORklHX0FENzk5WD15CiMgQ09ORklHX0FY
UDIwWF9BREMgaXMgbm90IHNldApDT05GSUdfQVhQMjg4X0FEQz15CiMgQ09ORklHX0NDMTAw
MDFfQURDIGlzIG5vdCBzZXQKIyBDT05GSUdfREE5MTUwX0dQQURDIGlzIG5vdCBzZXQKQ09O
RklHX0VOVkVMT1BFX0RFVEVDVE9SPXkKQ09ORklHX0hYNzExPXkKIyBDT05GSUdfSU5URUxf
TVJGTERfQURDIGlzIG5vdCBzZXQKQ09ORklHX0xQODc4OF9BREM9eQpDT05GSUdfTFRDMjMw
OT15CiMgQ09ORklHX0xUQzI0NzEgaXMgbm90IHNldApDT05GSUdfTFRDMjQ4NT15CiMgQ09O
RklHX0xUQzI0OTcgaXMgbm90IHNldApDT05GSUdfTUFYMTM2Mz15CkNPTkZJR19NQVgzNDQw
OD15CiMgQ09ORklHX01BWDc3NTQxX0FEQyBpcyBub3Qgc2V0CkNPTkZJR19NQVg5NjExPXkK
Q09ORklHX01DUDM0MjI9eQojIENPTkZJR19NRURJQVRFS19NVDYzNTlfQVVYQURDIGlzIG5v
dCBzZXQKIyBDT05GSUdfTUVESUFURUtfTVQ2MzcwX0FEQyBpcyBub3Qgc2V0CkNPTkZJR19N
RU5fWjE4OF9BREM9eQpDT05GSUdfTVAyNjI5X0FEQz15CkNPTkZJR19OQVU3ODAyPXkKIyBD
T05GSUdfUEFDMTkzNCBpcyBub3Qgc2V0CkNPTkZJR19QQUxNQVNfR1BBREM9eQpDT05GSUdf
Uk41VDYxOF9BREM9eQpDT05GSUdfUklDSFRFS19SVFE2MDU2PXkKQ09ORklHX1NEX0FEQ19N
T0RVTEFUT1I9eQpDT05GSUdfU1RNUEVfQURDPXkKQ09ORklHX1RJX0FEQzA4MUM9eQojIENP
TkZJR19USV9BRFMxMDE1IGlzIG5vdCBzZXQKQ09ORklHX1RJX0FEUzExMTk9eQojIENPTkZJ
R19USV9BRFM3OTI0IGlzIG5vdCBzZXQKIyBDT05GSUdfVElfQURTMTEwMCBpcyBub3Qgc2V0
CkNPTkZJR19UV0w0MDMwX01BREM9eQojIENPTkZJR19UV0w2MDMwX0dQQURDIGlzIG5vdCBz
ZXQKQ09ORklHX1ZGNjEwX0FEQz15CkNPTkZJR19YSUxJTlhfWEFEQz15CiMgZW5kIG9mIEFu
YWxvZyB0byBkaWdpdGFsIGNvbnZlcnRlcnMKCiMKIyBBbmFsb2cgdG8gZGlnaXRhbCBhbmQg
ZGlnaXRhbCB0byBhbmFsb2cgY29udmVydGVycwojCiMgZW5kIG9mIEFuYWxvZyB0byBkaWdp
dGFsIGFuZCBkaWdpdGFsIHRvIGFuYWxvZyBjb252ZXJ0ZXJzCgojCiMgQW5hbG9nIEZyb250
IEVuZHMKIwpDT05GSUdfSUlPX1JFU0NBTEU9eQojIGVuZCBvZiBBbmFsb2cgRnJvbnQgRW5k
cwoKIwojIEFtcGxpZmllcnMKIwojIENPTkZJR19ITUM0MjUgaXMgbm90IHNldAojIGVuZCBv
ZiBBbXBsaWZpZXJzCgojCiMgQ2FwYWNpdGFuY2UgdG8gZGlnaXRhbCBjb252ZXJ0ZXJzCiMK
IyBDT05GSUdfQUQ3MTUwIGlzIG5vdCBzZXQKQ09ORklHX0FENzc0Nj15CiMgZW5kIG9mIENh
cGFjaXRhbmNlIHRvIGRpZ2l0YWwgY29udmVydGVycwoKIwojIENoZW1pY2FsIFNlbnNvcnMK
IwpDT05GSUdfQU9TT05HX0FHUzAyTUE9eQojIENPTkZJR19BVExBU19QSF9TRU5TT1IgaXMg
bm90IHNldApDT05GSUdfQVRMQVNfRVpPX1NFTlNPUj15CkNPTkZJR19CTUU2ODA9eQpDT05G
SUdfQk1FNjgwX0kyQz15CiMgQ09ORklHX0NDUzgxMSBpcyBub3Qgc2V0CkNPTkZJR19FTlMx
NjA9eQpDT05GSUdfRU5TMTYwX0kyQz15CkNPTkZJR19JQVFDT1JFPXkKIyBDT05GSUdfU0NE
MzBfQ09SRSBpcyBub3Qgc2V0CiMgQ09ORklHX1NDRDRYIGlzIG5vdCBzZXQKIyBDT05GSUdf
U0VOU0lSSU9OX1NHUDMwIGlzIG5vdCBzZXQKIyBDT05GSUdfU0VOU0lSSU9OX1NHUDQwIGlz
IG5vdCBzZXQKQ09ORklHX1NQUzMwPXkKQ09ORklHX1NQUzMwX0kyQz15CkNPTkZJR19TRU5T
RUFJUl9TVU5SSVNFX0NPMj15CkNPTkZJR19WWjg5WD15CiMgZW5kIG9mIENoZW1pY2FsIFNl
bnNvcnMKCiMgQ09ORklHX0lJT19DUk9TX0VDX1NFTlNPUlNfQ09SRSBpcyBub3Qgc2V0Cgoj
CiMgSGlkIFNlbnNvciBJSU8gQ29tbW9uCiMKIyBlbmQgb2YgSGlkIFNlbnNvciBJSU8gQ29t
bW9uCgpDT05GSUdfSUlPX0lOVl9TRU5TT1JTX1RJTUVTVEFNUD15CkNPTkZJR19JSU9fTVNf
U0VOU09SU19JMkM9eQoKIwojIElJTyBTQ01JIFNlbnNvcnMKIwojIGVuZCBvZiBJSU8gU0NN
SSBTZW5zb3JzCgojCiMgU1NQIFNlbnNvciBDb21tb24KIwojIGVuZCBvZiBTU1AgU2Vuc29y
IENvbW1vbgoKQ09ORklHX0lJT19TVF9TRU5TT1JTX0kyQz15CkNPTkZJR19JSU9fU1RfU0VO
U09SU19DT1JFPXkKCiMKIyBEaWdpdGFsIHRvIGFuYWxvZyBjb252ZXJ0ZXJzCiMKQ09ORklH
X0FENTA2ND15CiMgQ09ORklHX0FENTM4MCBpcyBub3Qgc2V0CkNPTkZJR19BRDU0NDY9eQpD
T05GSUdfQUQ1NTkyUl9CQVNFPXkKQ09ORklHX0FENTU5M1I9eQojIENPTkZJR19BRDU2OTZf
STJDIGlzIG5vdCBzZXQKIyBDT05GSUdfRFBPVF9EQUMgaXMgbm90IHNldApDT05GSUdfRFM0
NDI0PXkKIyBDT05GSUdfTTYyMzMyIGlzIG5vdCBzZXQKQ09ORklHX01BWDUxNz15CkNPTkZJ
R19NQVg1ODIxPXkKIyBDT05GSUdfTUNQNDcyNSBpcyBub3Qgc2V0CiMgQ09ORklHX01DUDQ3
MjggaXMgbm90IHNldAojIENPTkZJR19USV9EQUM1NTcxIGlzIG5vdCBzZXQKQ09ORklHX1ZG
NjEwX0RBQz15CiMgZW5kIG9mIERpZ2l0YWwgdG8gYW5hbG9nIGNvbnZlcnRlcnMKCiMKIyBJ
SU8gZHVtbXkgZHJpdmVyCiMKIyBlbmQgb2YgSUlPIGR1bW15IGRyaXZlcgoKIwojIEZpbHRl
cnMKIwojIGVuZCBvZiBGaWx0ZXJzCgojCiMgRnJlcXVlbmN5IFN5bnRoZXNpemVycyBERFMv
UExMCiMKCiMKIyBDbG9jayBHZW5lcmF0b3IvRGlzdHJpYnV0aW9uCiMKIyBlbmQgb2YgQ2xv
Y2sgR2VuZXJhdG9yL0Rpc3RyaWJ1dGlvbgoKIwojIFBoYXNlLUxvY2tlZCBMb29wIChQTEwp
IGZyZXF1ZW5jeSBzeW50aGVzaXplcnMKIwpDT05GSUdfQURNRk0yMDAwPXkKIyBlbmQgb2Yg
UGhhc2UtTG9ja2VkIExvb3AgKFBMTCkgZnJlcXVlbmN5IHN5bnRoZXNpemVycwojIGVuZCBv
ZiBGcmVxdWVuY3kgU3ludGhlc2l6ZXJzIEREUy9QTEwKCiMKIyBEaWdpdGFsIGd5cm9zY29w
ZSBzZW5zb3JzCiMKQ09ORklHX0JNRzE2MD15CkNPTkZJR19CTUcxNjBfSTJDPXkKIyBDT05G
SUdfRlhBUzIxMDAyQyBpcyBub3Qgc2V0CiMgQ09ORklHX01QVTMwNTBfSTJDIGlzIG5vdCBz
ZXQKIyBDT05GSUdfSUlPX1NUX0dZUk9fM0FYSVMgaXMgbm90IHNldAojIENPTkZJR19JVEcz
MjAwIGlzIG5vdCBzZXQKIyBlbmQgb2YgRGlnaXRhbCBneXJvc2NvcGUgc2Vuc29ycwoKIwoj
IEhlYWx0aCBTZW5zb3JzCiMKCiMKIyBIZWFydCBSYXRlIE1vbml0b3JzCiMKIyBDT05GSUdf
QUZFNDQwNCBpcyBub3Qgc2V0CiMgQ09ORklHX01BWDMwMTAwIGlzIG5vdCBzZXQKQ09ORklH
X01BWDMwMTAyPXkKIyBlbmQgb2YgSGVhcnQgUmF0ZSBNb25pdG9ycwojIGVuZCBvZiBIZWFs
dGggU2Vuc29ycwoKIwojIEh1bWlkaXR5IHNlbnNvcnMKIwojIENPTkZJR19BTTIzMTUgaXMg
bm90IHNldAojIENPTkZJR19ESFQxMSBpcyBub3Qgc2V0CiMgQ09ORklHX0hEQzEwMFggaXMg
bm90IHNldApDT05GSUdfSERDMjAxMD15CkNPTkZJR19IREMzMDIwPXkKQ09ORklHX0hUUzIy
MT15CkNPTkZJR19IVFMyMjFfSTJDPXkKQ09ORklHX0hUVTIxPXkKQ09ORklHX1NJNzAwNT15
CkNPTkZJR19TSTcwMjA9eQojIGVuZCBvZiBIdW1pZGl0eSBzZW5zb3JzCgojCiMgSW5lcnRp
YWwgbWVhc3VyZW1lbnQgdW5pdHMKIwojIENPTkZJR19CTUkxNjBfSTJDIGlzIG5vdCBzZXQK
IyBDT05GSUdfQk1JMzIzX0kyQyBpcyBub3Qgc2V0CkNPTkZJR19CT1NDSF9CTk8wNTU9eQpD
T05GSUdfQk9TQ0hfQk5PMDU1X0kyQz15CiMgQ09ORklHX0ZYT1M4NzAwX0kyQyBpcyBub3Qg
c2V0CkNPTkZJR19LTVg2MT15CkNPTkZJR19JTlZfSUNNNDI2MDA9eQpDT05GSUdfSU5WX0lD
TTQyNjAwX0kyQz15CkNPTkZJR19JTlZfTVBVNjA1MF9JSU89eQpDT05GSUdfSU5WX01QVTYw
NTBfSTJDPXkKQ09ORklHX0lJT19TVF9MU002RFNYPXkKQ09ORklHX0lJT19TVF9MU002RFNY
X0kyQz15CkNPTkZJR19JSU9fU1RfTFNNNkRTWF9JM0M9eQojIGVuZCBvZiBJbmVydGlhbCBt
ZWFzdXJlbWVudCB1bml0cwoKIwojIExpZ2h0IHNlbnNvcnMKIwpDT05GSUdfQUNQSV9BTFM9
eQojIENPTkZJR19BREpEX1MzMTEgaXMgbm90IHNldAojIENPTkZJR19BRFVYMTAyMCBpcyBu
b3Qgc2V0CiMgQ09ORklHX0FMMzAxMCBpcyBub3Qgc2V0CiMgQ09ORklHX0FMMzMyMEEgaXMg
bm90IHNldApDT05GSUdfQVBEUzkzMDA9eQojIENPTkZJR19BUERTOTMwNiBpcyBub3Qgc2V0
CiMgQ09ORklHX0FQRFM5OTYwIGlzIG5vdCBzZXQKQ09ORklHX0FTNzMyMTE9eQpDT05GSUdf
QkgxNzUwPXkKQ09ORklHX0JIMTc4MD15CkNPTkZJR19DTTMyMTgxPXkKIyBDT05GSUdfQ00z
MjMyIGlzIG5vdCBzZXQKQ09ORklHX0NNMzMyMz15CkNPTkZJR19DTTM2MDU9eQojIENPTkZJ
R19DTTM2NjUxIGlzIG5vdCBzZXQKQ09ORklHX0dQMkFQMDAyPXkKIyBDT05GSUdfR1AyQVAw
MjBBMDBGIGlzIG5vdCBzZXQKQ09ORklHX1NFTlNPUlNfSVNMMjkwMTg9eQpDT05GSUdfU0VO
U09SU19JU0wyOTAyOD15CkNPTkZJR19JU0wyOTEyNT15CkNPTkZJR19JU0w3NjY4Mj15CkNP
TkZJR19KU0ExMjEyPXkKQ09ORklHX1JPSE1fQlUyNzAwOD15CiMgQ09ORklHX1JPSE1fQlUy
NzAzNCBpcyBub3Qgc2V0CkNPTkZJR19SUFIwNTIxPXkKQ09ORklHX0xUUjM5MD15CkNPTkZJ
R19MVFI1MDE9eQojIENPTkZJR19MVFJGMjE2QSBpcyBub3Qgc2V0CkNPTkZJR19MVjAxMDRD
Uz15CkNPTkZJR19NQVg0NDAwMD15CkNPTkZJR19NQVg0NDAwOT15CiMgQ09ORklHX05PQTEz
MDUgaXMgbm90IHNldApDT05GSUdfT1BUMzAwMT15CkNPTkZJR19PUFQ0MDAxPXkKIyBDT05G
SUdfUEExMjIwMzAwMSBpcyBub3Qgc2V0CkNPTkZJR19TSTExMzM9eQpDT05GSUdfU0kxMTQ1
PXkKQ09ORklHX1NUSzMzMTA9eQpDT05GSUdfU1RfVVZJUzI1PXkKQ09ORklHX1NUX1VWSVMy
NV9JMkM9eQpDT05GSUdfVENTMzQxND15CkNPTkZJR19UQ1MzNDcyPXkKIyBDT05GSUdfU0VO
U09SU19UU0wyNTYzIGlzIG5vdCBzZXQKQ09ORklHX1RTTDI1ODM9eQpDT05GSUdfVFNMMjU5
MT15CkNPTkZJR19UU0wyNzcyPXkKIyBDT05GSUdfVFNMNDUzMSBpcyBub3Qgc2V0CkNPTkZJ
R19VUzUxODJEPXkKQ09ORklHX1ZDTkw0MDAwPXkKIyBDT05GSUdfVkNOTDQwMzUgaXMgbm90
IHNldApDT05GSUdfVkVNTDYwMzA9eQpDT05GSUdfVkVNTDYwNDA9eQpDT05GSUdfVkVNTDYw
NzA9eQpDT05GSUdfVkVNTDYwNzU9eQojIENPTkZJR19WTDYxODAgaXMgbm90IHNldApDT05G
SUdfWk9QVDIyMDE9eQojIGVuZCBvZiBMaWdodCBzZW5zb3JzCgojCiMgTWFnbmV0b21ldGVy
IHNlbnNvcnMKIwpDT05GSUdfQUY4MTMzSj15CkNPTkZJR19BSzg5NzQ9eQpDT05GSUdfQUs4
OTc1PXkKIyBDT05GSUdfQUswOTkxMSBpcyBub3Qgc2V0CkNPTkZJR19CTUMxNTBfTUFHTj15
CkNPTkZJR19CTUMxNTBfTUFHTl9JMkM9eQojIENPTkZJR19NQUczMTEwIGlzIG5vdCBzZXQK
Q09ORklHX01NQzM1MjQwPXkKQ09ORklHX0lJT19TVF9NQUdOXzNBWElTPXkKQ09ORklHX0lJ
T19TVF9NQUdOX0kyQ18zQVhJUz15CiMgQ09ORklHX1NFTlNPUlNfSE1DNTg0M19JMkMgaXMg
bm90IHNldAojIENPTkZJR19TRU5TT1JTX1JNMzEwMF9JMkMgaXMgbm90IHNldApDT05GSUdf
VElfVE1BRzUyNzM9eQpDT05GSUdfWUFNQUhBX1lBUzUzMD15CiMgZW5kIG9mIE1hZ25ldG9t
ZXRlciBzZW5zb3JzCgojCiMgTXVsdGlwbGV4ZXJzCiMKQ09ORklHX0lJT19NVVg9eQojIGVu
ZCBvZiBNdWx0aXBsZXhlcnMKCiMKIyBJbmNsaW5vbWV0ZXIgc2Vuc29ycwojCiMgZW5kIG9m
IEluY2xpbm9tZXRlciBzZW5zb3JzCgpDT05GSUdfSUlPX0dUU19LVU5JVF9URVNUPXkKQ09O
RklHX0lJT19SRVNDQUxFX0tVTklUX1RFU1Q9eQpDT05GSUdfSUlPX0ZPUk1BVF9LVU5JVF9U
RVNUPXkKCiMKIyBUcmlnZ2VycyAtIHN0YW5kYWxvbmUKIwojIENPTkZJR19JSU9fSFJUSU1F
Ul9UUklHR0VSIGlzIG5vdCBzZXQKIyBDT05GSUdfSUlPX0lOVEVSUlVQVF9UUklHR0VSIGlz
IG5vdCBzZXQKIyBDT05GSUdfSUlPX1RJR0hUTE9PUF9UUklHR0VSIGlzIG5vdCBzZXQKIyBD
T05GSUdfSUlPX1NZU0ZTX1RSSUdHRVIgaXMgbm90IHNldAojIGVuZCBvZiBUcmlnZ2VycyAt
IHN0YW5kYWxvbmUKCiMKIyBMaW5lYXIgYW5kIGFuZ3VsYXIgcG9zaXRpb24gc2Vuc29ycwoj
CiMgZW5kIG9mIExpbmVhciBhbmQgYW5ndWxhciBwb3NpdGlvbiBzZW5zb3JzCgojCiMgRGln
aXRhbCBwb3RlbnRpb21ldGVycwojCkNPTkZJR19BRDUxMTA9eQojIENPTkZJR19BRDUyNzIg
aXMgbm90IHNldApDT05GSUdfRFMxODAzPXkKQ09ORklHX01BWDU0MzI9eQpDT05GSUdfTUNQ
NDAxOD15CkNPTkZJR19NQ1A0NTMxPXkKQ09ORklHX1RQTDAxMDI9eQojIGVuZCBvZiBEaWdp
dGFsIHBvdGVudGlvbWV0ZXJzCgojCiMgRGlnaXRhbCBwb3RlbnRpb3N0YXRzCiMKQ09ORklH
X0xNUDkxMDAwPXkKIyBlbmQgb2YgRGlnaXRhbCBwb3RlbnRpb3N0YXRzCgojCiMgUHJlc3N1
cmUgc2Vuc29ycwojCiMgQ09ORklHX0FCUDA2ME1HIGlzIG5vdCBzZXQKIyBDT05GSUdfUk9I
TV9CTTEzOTAgaXMgbm90IHNldApDT05GSUdfQk1QMjgwPXkKQ09ORklHX0JNUDI4MF9JMkM9
eQojIENPTkZJR19ETEhMNjBEIGlzIG5vdCBzZXQKQ09ORklHX0RQUzMxMD15CiMgQ09ORklH
X0hQMDMgaXMgbm90IHNldApDT05GSUdfSFNDMDMwUEE9eQpDT05GSUdfSFNDMDMwUEFfSTJD
PXkKQ09ORklHX0lDUDEwMTAwPXkKQ09ORklHX01QTDExNT15CkNPTkZJR19NUEwxMTVfSTJD
PXkKQ09ORklHX01QTDMxMTU9eQpDT05GSUdfTVBSTFMwMDI1UEE9eQpDT05GSUdfTVBSTFMw
MDI1UEFfSTJDPXkKQ09ORklHX01TNTYxMT15CkNPTkZJR19NUzU2MTFfSTJDPXkKQ09ORklH
X01TNTYzNz15CiMgQ09ORklHX0lJT19TVF9QUkVTUyBpcyBub3Qgc2V0CiMgQ09ORklHX1Q1
NDAzIGlzIG5vdCBzZXQKIyBDT05GSUdfSFAyMDZDIGlzIG5vdCBzZXQKIyBDT05GSUdfWlBB
MjMyNiBpcyBub3Qgc2V0CiMgZW5kIG9mIFByZXNzdXJlIHNlbnNvcnMKCiMKIyBMaWdodG5p
bmcgc2Vuc29ycwojCiMgZW5kIG9mIExpZ2h0bmluZyBzZW5zb3JzCgojCiMgUHJveGltaXR5
IGFuZCBkaXN0YW5jZSBzZW5zb3JzCiMKIyBDT05GSUdfQ1JPU19FQ19NS0JQX1BST1hJTUlU
WSBpcyBub3Qgc2V0CkNPTkZJR19JUlNEMjAwPXkKQ09ORklHX0lTTDI5NTAxPXkKIyBDT05G
SUdfTElEQVJfTElURV9WMiBpcyBub3Qgc2V0CkNPTkZJR19NQjEyMzI9eQojIENPTkZJR19Q
SU5HIGlzIG5vdCBzZXQKQ09ORklHX1JGRDc3NDAyPXkKQ09ORklHX1NSRjA0PXkKQ09ORklH
X1NYX0NPTU1PTj15CiMgQ09ORklHX1NYOTMxMCBpcyBub3Qgc2V0CkNPTkZJR19TWDkzMjQ9
eQpDT05GSUdfU1g5MzYwPXkKQ09ORklHX1NYOTUwMD15CkNPTkZJR19TUkYwOD15CkNPTkZJ
R19WQ05MMzAyMD15CkNPTkZJR19WTDUzTDBYX0kyQz15CiMgZW5kIG9mIFByb3hpbWl0eSBh
bmQgZGlzdGFuY2Ugc2Vuc29ycwoKIwojIFJlc29sdmVyIHRvIGRpZ2l0YWwgY29udmVydGVy
cwojCiMgZW5kIG9mIFJlc29sdmVyIHRvIGRpZ2l0YWwgY29udmVydGVycwoKIwojIFRlbXBl
cmF0dXJlIHNlbnNvcnMKIwpDT05GSUdfTUxYOTA2MTQ9eQojIENPTkZJR19NTFg5MDYzMiBp
cyBub3Qgc2V0CiMgQ09ORklHX01MWDkwNjM1IGlzIG5vdCBzZXQKQ09ORklHX1RNUDAwNj15
CkNPTkZJR19UTVAwMDc9eQojIENPTkZJR19UTVAxMTcgaXMgbm90IHNldApDT05GSUdfVFNZ
UzAxPXkKIyBDT05GSUdfVFNZUzAyRCBpcyBub3Qgc2V0CiMgQ09ORklHX01BWDMwMjA4IGlz
IG5vdCBzZXQKIyBDT05GSUdfTUNQOTYwMCBpcyBub3Qgc2V0CiMgZW5kIG9mIFRlbXBlcmF0
dXJlIHNlbnNvcnMKCkNPTkZJR19QV009eQpDT05GSUdfUFdNX0FUTUVMX0hMQ0RDX1BXTT15
CkNPTkZJR19QV01fQVRNRUxfVENCPXkKQ09ORklHX1BXTV9DTEs9eQpDT05GSUdfUFdNX0NS
T1NfRUM9eQpDT05GSUdfUFdNX0ZTTF9GVE09eQojIENPTkZJR19QV01fSU5URUxfTEdNIGlz
IG5vdCBzZXQKIyBDT05GSUdfUFdNX0xQMzk0MyBpcyBub3Qgc2V0CiMgQ09ORklHX1BXTV9M
UFNTX1BMQVRGT1JNIGlzIG5vdCBzZXQKIyBDT05GSUdfUFdNX05UWEVDIGlzIG5vdCBzZXQK
Q09ORklHX1BXTV9QQ0E5Njg1PXkKQ09ORklHX1BXTV9TVE1QRT15CkNPTkZJR19QV01fVFdM
PXkKQ09ORklHX1BXTV9UV0xfTEVEPXkKQ09ORklHX1BXTV9YSUxJTlg9eQoKIwojIElSUSBj
aGlwIHN1cHBvcnQKIwpDT05GSUdfSVJRQ0hJUD15CkNPTkZJR19BTF9GSUM9eQpDT05GSUdf
TEFOOTY2WF9PSUM9eQojIENPTkZJR19YSUxJTlhfSU5UQyBpcyBub3Qgc2V0CiMgZW5kIG9m
IElSUSBjaGlwIHN1cHBvcnQKCiMgQ09ORklHX0lQQUNLX0JVUyBpcyBub3Qgc2V0CiMgQ09O
RklHX1JFU0VUX0NPTlRST0xMRVIgaXMgbm90IHNldAoKIwojIFBIWSBTdWJzeXN0ZW0KIwpD
T05GSUdfR0VORVJJQ19QSFk9eQpDT05GSUdfR0VORVJJQ19QSFlfTUlQSV9EUEhZPXkKQ09O
RklHX1BIWV9DQU5fVFJBTlNDRUlWRVI9eQoKIwojIFBIWSBkcml2ZXJzIGZvciBCcm9hZGNv
bSBwbGF0Zm9ybXMKIwpDT05GSUdfQkNNX0tPTkFfVVNCMl9QSFk9eQojIGVuZCBvZiBQSFkg
ZHJpdmVycyBmb3IgQnJvYWRjb20gcGxhdGZvcm1zCgpDT05GSUdfUEhZX0NBREVOQ0VfVE9S
UkVOVD15CiMgQ09ORklHX1BIWV9DQURFTkNFX0RQSFkgaXMgbm90IHNldAojIENPTkZJR19Q
SFlfQ0FERU5DRV9EUEhZX1JYIGlzIG5vdCBzZXQKQ09ORklHX1BIWV9DQURFTkNFX1NBTFZP
PXkKQ09ORklHX1BIWV9QWEFfMjhOTV9IU0lDPXkKQ09ORklHX1BIWV9QWEFfMjhOTV9VU0Iy
PXkKIyBDT05GSUdfUEhZX0xBTjk2NlhfU0VSREVTIGlzIG5vdCBzZXQKIyBDT05GSUdfUEhZ
X09DRUxPVF9TRVJERVMgaXMgbm90IHNldAojIENPTkZJR19QSFlfSU5URUxfTEdNX0NPTUJP
IGlzIG5vdCBzZXQKIyBDT05GSUdfUEhZX0lOVEVMX0xHTV9FTU1DIGlzIG5vdCBzZXQKIyBl
bmQgb2YgUEhZIFN1YnN5c3RlbQoKQ09ORklHX1BPV0VSQ0FQPXkKQ09ORklHX0lETEVfSU5K
RUNUPXkKIyBDT05GSUdfRFRQTSBpcyBub3Qgc2V0CkNPTkZJR19NQ0I9eQojIENPTkZJR19N
Q0JfTFBDIGlzIG5vdCBzZXQKCiMKIyBQZXJmb3JtYW5jZSBtb25pdG9yIHN1cHBvcnQKIwoj
IGVuZCBvZiBQZXJmb3JtYW5jZSBtb25pdG9yIHN1cHBvcnQKCiMgQ09ORklHX1JBUyBpcyBu
b3Qgc2V0CgojCiMgQW5kcm9pZAojCiMgQ09ORklHX0FORFJPSURfQklOREVSX0lQQyBpcyBu
b3Qgc2V0CiMgZW5kIG9mIEFuZHJvaWQKCiMgQ09ORklHX0RBWCBpcyBub3Qgc2V0CkNPTkZJ
R19OVk1FTT15CkNPTkZJR19OVk1FTV9TWVNGUz15CkNPTkZJR19OVk1FTV9MQVlPVVRTPXkK
CiMKIyBMYXlvdXQgVHlwZXMKIwojIENPTkZJR19OVk1FTV9MQVlPVVRfU0wyOF9WUEQgaXMg
bm90IHNldApDT05GSUdfTlZNRU1fTEFZT1VUX09OSUVfVExWPXkKIyBlbmQgb2YgTGF5b3V0
IFR5cGVzCgpDT05GSUdfTlZNRU1fUk1FTT15CkNPTkZJR19OVk1FTV9VX0JPT1RfRU5WPXkK
CiMKIyBIVyB0cmFjaW5nIHN1cHBvcnQKIwpDT05GSUdfU1RNPXkKQ09ORklHX1NUTV9QUk9U
T19CQVNJQz15CkNPTkZJR19TVE1fUFJPVE9fU1lTX1Q9eQpDT05GSUdfU1RNX0RVTU1ZPXkK
IyBDT05GSUdfU1RNX1NPVVJDRV9DT05TT0xFIGlzIG5vdCBzZXQKQ09ORklHX1NUTV9TT1VS
Q0VfSEVBUlRCRUFUPXkKQ09ORklHX0lOVEVMX1RIPXkKQ09ORklHX0lOVEVMX1RIX0FDUEk9
eQpDT05GSUdfSU5URUxfVEhfR1RIPXkKQ09ORklHX0lOVEVMX1RIX1NUSD15CkNPTkZJR19J
TlRFTF9USF9NU1U9eQpDT05GSUdfSU5URUxfVEhfUFRJPXkKIyBlbmQgb2YgSFcgdHJhY2lu
ZyBzdXBwb3J0CgojIENPTkZJR19GUEdBIGlzIG5vdCBzZXQKIyBDT05GSUdfRlNJIGlzIG5v
dCBzZXQKIyBDT05GSUdfVEVFIGlzIG5vdCBzZXQKQ09ORklHX01VTFRJUExFWEVSPXkKCiMK
IyBNdWx0aXBsZXhlciBkcml2ZXJzCiMKQ09ORklHX01VWF9BREc3OTJBPXkKQ09ORklHX01V
WF9HUElPPXkKQ09ORklHX01VWF9NTUlPPXkKIyBlbmQgb2YgTXVsdGlwbGV4ZXIgZHJpdmVy
cwoKQ09ORklHX1BNX09QUD15CkNPTkZJR19TSU9YPXkKIyBDT05GSUdfU0lPWF9CVVNfR1BJ
TyBpcyBub3Qgc2V0CkNPTkZJR19TTElNQlVTPXkKQ09ORklHX1NMSU1fUUNPTV9DVFJMPXkK
Q09ORklHX0lOVEVSQ09OTkVDVD15CkNPTkZJR19DT1VOVEVSPXkKQ09ORklHX0lOVEVSUlVQ
VF9DTlQ9eQojIENPTkZJR19NT1NUIGlzIG5vdCBzZXQKIyBDT05GSUdfUEVDSSBpcyBub3Qg
c2V0CkNPTkZJR19IVEU9eQojIGVuZCBvZiBEZXZpY2UgRHJpdmVycwoKIwojIEZpbGUgc3lz
dGVtcwojCkNPTkZJR19EQ0FDSEVfV09SRF9BQ0NFU1M9eQpDT05GSUdfVkFMSURBVEVfRlNf
UEFSU0VSPXkKQ09ORklHX0ZTX0lPTUFQPXkKQ09ORklHX0JVRkZFUl9IRUFEPXkKQ09ORklH
X0xFR0FDWV9ESVJFQ1RfSU89eQojIENPTkZJR19FWFQyX0ZTIGlzIG5vdCBzZXQKQ09ORklH
X0VYVDNfRlM9eQpDT05GSUdfRVhUM19GU19QT1NJWF9BQ0w9eQpDT05GSUdfRVhUM19GU19T
RUNVUklUWT15CkNPTkZJR19FWFQ0X0ZTPXkKQ09ORklHX0VYVDRfVVNFX0ZPUl9FWFQyPXkK
Q09ORklHX0VYVDRfRlNfUE9TSVhfQUNMPXkKQ09ORklHX0VYVDRfRlNfU0VDVVJJVFk9eQoj
IENPTkZJR19FWFQ0X0RFQlVHIGlzIG5vdCBzZXQKQ09ORklHX0VYVDRfS1VOSVRfVEVTVFM9
eQpDT05GSUdfSkJEMj15CkNPTkZJR19KQkQyX0RFQlVHPXkKQ09ORklHX0ZTX01CQ0FDSEU9
eQpDT05GSUdfUkVJU0VSRlNfRlM9eQpDT05GSUdfUkVJU0VSRlNfQ0hFQ0s9eQpDT05GSUdf
UkVJU0VSRlNfUFJPQ19JTkZPPXkKIyBDT05GSUdfUkVJU0VSRlNfRlNfWEFUVFIgaXMgbm90
IHNldAojIENPTkZJR19KRlNfRlMgaXMgbm90IHNldAojIENPTkZJR19YRlNfRlMgaXMgbm90
IHNldApDT05GSUdfR0ZTMl9GUz15CiMgQ09ORklHX0JUUkZTX0ZTIGlzIG5vdCBzZXQKQ09O
RklHX05JTEZTMl9GUz15CkNPTkZJR19GMkZTX0ZTPXkKIyBDT05GSUdfRjJGU19TVEFUX0ZT
IGlzIG5vdCBzZXQKIyBDT05GSUdfRjJGU19GU19YQVRUUiBpcyBub3Qgc2V0CiMgQ09ORklH
X0YyRlNfQ0hFQ0tfRlMgaXMgbm90IHNldApDT05GSUdfRjJGU19GQVVMVF9JTkpFQ1RJT049
eQojIENPTkZJR19GMkZTX0ZTX0NPTVBSRVNTSU9OIGlzIG5vdCBzZXQKQ09ORklHX0YyRlNf
SU9TVEFUPXkKQ09ORklHX0JDQUNIRUZTX0ZTPXkKIyBDT05GSUdfQkNBQ0hFRlNfUVVPVEEg
aXMgbm90IHNldAojIENPTkZJR19CQ0FDSEVGU19FUkFTVVJFX0NPRElORyBpcyBub3Qgc2V0
CkNPTkZJR19CQ0FDSEVGU19QT1NJWF9BQ0w9eQojIENPTkZJR19CQ0FDSEVGU19ERUJVRyBp
cyBub3Qgc2V0CiMgQ09ORklHX0JDQUNIRUZTX1RFU1RTIGlzIG5vdCBzZXQKIyBDT05GSUdf
QkNBQ0hFRlNfTE9DS19USU1FX1NUQVRTIGlzIG5vdCBzZXQKQ09ORklHX0JDQUNIRUZTX05P
X0xBVEVOQ1lfQUNDVD15CkNPTkZJR19CQ0FDSEVGU19TSVhfT1BUSU1JU1RJQ19TUElOPXkK
Q09ORklHX01FQU5fQU5EX1ZBUklBTkNFX1VOSVRfVEVTVD15CkNPTkZJR19GU19QT1NJWF9B
Q0w9eQpDT05GSUdfRVhQT1JURlM9eQojIENPTkZJR19FWFBPUlRGU19CTE9DS19PUFMgaXMg
bm90IHNldApDT05GSUdfRklMRV9MT0NLSU5HPXkKIyBDT05GSUdfRlNfRU5DUllQVElPTiBp
cyBub3Qgc2V0CiMgQ09ORklHX0ZTX1ZFUklUWSBpcyBub3Qgc2V0CkNPTkZJR19GU05PVElG
WT15CiMgQ09ORklHX0ROT1RJRlkgaXMgbm90IHNldApDT05GSUdfSU5PVElGWV9VU0VSPXkK
Q09ORklHX0ZBTk9USUZZPXkKIyBDT05GSUdfUVVPVEEgaXMgbm90IHNldAojIENPTkZJR19R
VU9UQV9ORVRMSU5LX0lOVEVSRkFDRSBpcyBub3Qgc2V0CkNPTkZJR19RVU9UQUNUTD15CkNP
TkZJR19BVVRPRlNfRlM9eQojIENPTkZJR19GVVNFX0ZTIGlzIG5vdCBzZXQKIyBDT05GSUdf
T1ZFUkxBWV9GUyBpcyBub3Qgc2V0CgojCiMgQ2FjaGVzCiMKQ09ORklHX05FVEZTX1NVUFBP
UlQ9eQojIENPTkZJR19ORVRGU19TVEFUUyBpcyBub3Qgc2V0CiMgQ09ORklHX0ZTQ0FDSEUg
aXMgbm90IHNldAojIGVuZCBvZiBDYWNoZXMKCiMKIyBDRC1ST00vRFZEIEZpbGVzeXN0ZW1z
CiMKQ09ORklHX0lTTzk2NjBfRlM9eQpDT05GSUdfSk9MSUVUPXkKIyBDT05GSUdfWklTT0ZT
IGlzIG5vdCBzZXQKQ09ORklHX1VERl9GUz15CiMgZW5kIG9mIENELVJPTS9EVkQgRmlsZXN5
c3RlbXMKCiMKIyBET1MvRkFUL0VYRkFUL05UIEZpbGVzeXN0ZW1zCiMKQ09ORklHX0ZBVF9G
Uz15CkNPTkZJR19NU0RPU19GUz15CkNPTkZJR19WRkFUX0ZTPXkKQ09ORklHX0ZBVF9ERUZB
VUxUX0NPREVQQUdFPTQzNwpDT05GSUdfRkFUX0RFRkFVTFRfSU9DSEFSU0VUPSJpc284ODU5
LTEiCiMgQ09ORklHX0ZBVF9ERUZBVUxUX1VURjggaXMgbm90IHNldApDT05GSUdfRkFUX0tV
TklUX1RFU1Q9eQpDT05GSUdfRVhGQVRfRlM9eQpDT05GSUdfRVhGQVRfREVGQVVMVF9JT0NI
QVJTRVQ9InV0ZjgiCkNPTkZJR19OVEZTM19GUz15CkNPTkZJR19OVEZTM19MWlhfWFBSRVNT
PXkKQ09ORklHX05URlMzX0ZTX1BPU0lYX0FDTD15CkNPTkZJR19OVEZTX0ZTPXkKIyBlbmQg
b2YgRE9TL0ZBVC9FWEZBVC9OVCBGaWxlc3lzdGVtcwoKIwojIFBzZXVkbyBmaWxlc3lzdGVt
cwojCkNPTkZJR19QUk9DX0ZTPXkKIyBDT05GSUdfUFJPQ19LQ09SRSBpcyBub3Qgc2V0CkNP
TkZJR19QUk9DX1NZU0NUTD15CkNPTkZJR19QUk9DX1BBR0VfTU9OSVRPUj15CkNPTkZJR19Q
Uk9DX0NISUxEUkVOPXkKQ09ORklHX1BST0NfUElEX0FSQ0hfU1RBVFVTPXkKQ09ORklHX0tF
Uk5GUz15CkNPTkZJR19TWVNGUz15CkNPTkZJR19UTVBGUz15CiMgQ09ORklHX1RNUEZTX1BP
U0lYX0FDTCBpcyBub3Qgc2V0CkNPTkZJR19UTVBGU19YQVRUUj15CiMgQ09ORklHX1RNUEZT
X1FVT1RBIGlzIG5vdCBzZXQKIyBDT05GSUdfSFVHRVRMQkZTIGlzIG5vdCBzZXQKQ09ORklH
X0NPTkZJR0ZTX0ZTPXkKQ09ORklHX0VGSVZBUl9GUz15CiMgZW5kIG9mIFBzZXVkbyBmaWxl
c3lzdGVtcwoKQ09ORklHX01JU0NfRklMRVNZU1RFTVM9eQojIENPTkZJR19PUkFOR0VGU19G
UyBpcyBub3Qgc2V0CiMgQ09ORklHX0FERlNfRlMgaXMgbm90IHNldAojIENPTkZJR19BRkZT
X0ZTIGlzIG5vdCBzZXQKIyBDT05GSUdfRUNSWVBUX0ZTIGlzIG5vdCBzZXQKIyBDT05GSUdf
SEZTX0ZTIGlzIG5vdCBzZXQKIyBDT05GSUdfSEZTUExVU19GUyBpcyBub3Qgc2V0CkNPTkZJ
R19CRUZTX0ZTPXkKQ09ORklHX0JFRlNfREVCVUc9eQpDT05GSUdfQkZTX0ZTPXkKQ09ORklH
X0VGU19GUz15CkNPTkZJR19KRkZTMl9GUz15CkNPTkZJR19KRkZTMl9GU19ERUJVRz0wCiMg
Q09ORklHX0pGRlMyX0ZTX1dSSVRFQlVGRkVSIGlzIG5vdCBzZXQKIyBDT05GSUdfSkZGUzJf
U1VNTUFSWSBpcyBub3Qgc2V0CkNPTkZJR19KRkZTMl9GU19YQVRUUj15CkNPTkZJR19KRkZT
Ml9GU19QT1NJWF9BQ0w9eQpDT05GSUdfSkZGUzJfRlNfU0VDVVJJVFk9eQpDT05GSUdfSkZG
UzJfQ09NUFJFU1NJT05fT1BUSU9OUz15CkNPTkZJR19KRkZTMl9aTElCPXkKQ09ORklHX0pG
RlMyX0xaTz15CiMgQ09ORklHX0pGRlMyX1JUSU1FIGlzIG5vdCBzZXQKIyBDT05GSUdfSkZG
UzJfUlVCSU4gaXMgbm90IHNldAojIENPTkZJR19KRkZTMl9DTU9ERV9OT05FIGlzIG5vdCBz
ZXQKIyBDT05GSUdfSkZGUzJfQ01PREVfUFJJT1JJVFkgaXMgbm90IHNldAojIENPTkZJR19K
RkZTMl9DTU9ERV9TSVpFIGlzIG5vdCBzZXQKQ09ORklHX0pGRlMyX0NNT0RFX0ZBVk9VUkxa
Tz15CkNPTkZJR19DUkFNRlM9eQpDT05GSUdfQ1JBTUZTX0JMT0NLREVWPXkKIyBDT05GSUdf
Q1JBTUZTX01URCBpcyBub3Qgc2V0CiMgQ09ORklHX1NRVUFTSEZTIGlzIG5vdCBzZXQKQ09O
RklHX1ZYRlNfRlM9eQojIENPTkZJR19NSU5JWF9GUyBpcyBub3Qgc2V0CiMgQ09ORklHX09N
RlNfRlMgaXMgbm90IHNldApDT05GSUdfSFBGU19GUz15CiMgQ09ORklHX1FOWDRGU19GUyBp
cyBub3Qgc2V0CkNPTkZJR19RTlg2RlNfRlM9eQojIENPTkZJR19RTlg2RlNfREVCVUcgaXMg
bm90IHNldApDT05GSUdfUk9NRlNfRlM9eQojIENPTkZJR19ST01GU19CQUNLRURfQllfQkxP
Q0sgaXMgbm90IHNldApDT05GSUdfUk9NRlNfQkFDS0VEX0JZX01URD15CiMgQ09ORklHX1JP
TUZTX0JBQ0tFRF9CWV9CT1RIIGlzIG5vdCBzZXQKQ09ORklHX1JPTUZTX09OX01URD15CkNP
TkZJR19QU1RPUkU9eQpDT05GSUdfUFNUT1JFX0RFRkFVTFRfS01TR19CWVRFUz0xMDI0MApD
T05GSUdfUFNUT1JFX0NPTVBSRVNTPXkKQ09ORklHX1BTVE9SRV9DT05TT0xFPXkKIyBDT05G
SUdfUFNUT1JFX1BNU0cgaXMgbm90IHNldAojIENPTkZJR19QU1RPUkVfUkFNIGlzIG5vdCBz
ZXQKIyBDT05GSUdfUFNUT1JFX0JMSyBpcyBub3Qgc2V0CkNPTkZJR19TWVNWX0ZTPXkKQ09O
RklHX1VGU19GUz15CkNPTkZJR19VRlNfRlNfV1JJVEU9eQojIENPTkZJR19VRlNfREVCVUcg
aXMgbm90IHNldAojIENPTkZJR19FUk9GU19GUyBpcyBub3Qgc2V0CkNPTkZJR19ORVRXT1JL
X0ZJTEVTWVNURU1TPXkKIyBDT05GSUdfOVBfRlMgaXMgbm90IHNldApDT05GSUdfTkxTPXkK
Q09ORklHX05MU19ERUZBVUxUPSJpc284ODU5LTEiCiMgQ09ORklHX05MU19DT0RFUEFHRV80
MzcgaXMgbm90IHNldApDT05GSUdfTkxTX0NPREVQQUdFXzczNz15CkNPTkZJR19OTFNfQ09E
RVBBR0VfNzc1PXkKQ09ORklHX05MU19DT0RFUEFHRV84NTA9eQojIENPTkZJR19OTFNfQ09E
RVBBR0VfODUyIGlzIG5vdCBzZXQKIyBDT05GSUdfTkxTX0NPREVQQUdFXzg1NSBpcyBub3Qg
c2V0CkNPTkZJR19OTFNfQ09ERVBBR0VfODU3PXkKQ09ORklHX05MU19DT0RFUEFHRV84NjA9
eQojIENPTkZJR19OTFNfQ09ERVBBR0VfODYxIGlzIG5vdCBzZXQKIyBDT05GSUdfTkxTX0NP
REVQQUdFXzg2MiBpcyBub3Qgc2V0CiMgQ09ORklHX05MU19DT0RFUEFHRV84NjMgaXMgbm90
IHNldApDT05GSUdfTkxTX0NPREVQQUdFXzg2ND15CiMgQ09ORklHX05MU19DT0RFUEFHRV84
NjUgaXMgbm90IHNldApDT05GSUdfTkxTX0NPREVQQUdFXzg2Nj15CkNPTkZJR19OTFNfQ09E
RVBBR0VfODY5PXkKIyBDT05GSUdfTkxTX0NPREVQQUdFXzkzNiBpcyBub3Qgc2V0CkNPTkZJ
R19OTFNfQ09ERVBBR0VfOTUwPXkKQ09ORklHX05MU19DT0RFUEFHRV85MzI9eQpDT05GSUdf
TkxTX0NPREVQQUdFXzk0OT15CiMgQ09ORklHX05MU19DT0RFUEFHRV84NzQgaXMgbm90IHNl
dApDT05GSUdfTkxTX0lTTzg4NTlfOD15CiMgQ09ORklHX05MU19DT0RFUEFHRV8xMjUwIGlz
IG5vdCBzZXQKIyBDT05GSUdfTkxTX0NPREVQQUdFXzEyNTEgaXMgbm90IHNldAojIENPTkZJ
R19OTFNfQVNDSUkgaXMgbm90IHNldApDT05GSUdfTkxTX0lTTzg4NTlfMT15CiMgQ09ORklH
X05MU19JU084ODU5XzIgaXMgbm90IHNldApDT05GSUdfTkxTX0lTTzg4NTlfMz15CiMgQ09O
RklHX05MU19JU084ODU5XzQgaXMgbm90IHNldAojIENPTkZJR19OTFNfSVNPODg1OV81IGlz
IG5vdCBzZXQKQ09ORklHX05MU19JU084ODU5XzY9eQpDT05GSUdfTkxTX0lTTzg4NTlfNz15
CiMgQ09ORklHX05MU19JU084ODU5XzkgaXMgbm90IHNldApDT05GSUdfTkxTX0lTTzg4NTlf
MTM9eQpDT05GSUdfTkxTX0lTTzg4NTlfMTQ9eQpDT05GSUdfTkxTX0lTTzg4NTlfMTU9eQpD
T05GSUdfTkxTX0tPSThfUj15CkNPTkZJR19OTFNfS09JOF9VPXkKQ09ORklHX05MU19NQUNf
Uk9NQU49eQojIENPTkZJR19OTFNfTUFDX0NFTFRJQyBpcyBub3Qgc2V0CiMgQ09ORklHX05M
U19NQUNfQ0VOVEVVUk8gaXMgbm90IHNldApDT05GSUdfTkxTX01BQ19DUk9BVElBTj15CkNP
TkZJR19OTFNfTUFDX0NZUklMTElDPXkKIyBDT05GSUdfTkxTX01BQ19HQUVMSUMgaXMgbm90
IHNldApDT05GSUdfTkxTX01BQ19HUkVFSz15CkNPTkZJR19OTFNfTUFDX0lDRUxBTkQ9eQoj
IENPTkZJR19OTFNfTUFDX0lOVUlUIGlzIG5vdCBzZXQKQ09ORklHX05MU19NQUNfUk9NQU5J
QU49eQojIENPTkZJR19OTFNfTUFDX1RVUktJU0ggaXMgbm90IHNldApDT05GSUdfTkxTX1VU
Rjg9eQpDT05GSUdfVU5JQ09ERT15CkNPTkZJR19VTklDT0RFX05PUk1BTElaQVRJT05fU0VM
RlRFU1Q9eQpDT05GSUdfSU9fV1E9eQojIGVuZCBvZiBGaWxlIHN5c3RlbXMKCiMKIyBTZWN1
cml0eSBvcHRpb25zCiMKQ09ORklHX0tFWVM9eQojIENPTkZJR19LRVlTX1JFUVVFU1RfQ0FD
SEUgaXMgbm90IHNldApDT05GSUdfUEVSU0lTVEVOVF9LRVlSSU5HUz15CkNPTkZJR19UUlVT
VEVEX0tFWVM9eQpDT05GSUdfSEFWRV9UUlVTVEVEX0tFWVM9eQpDT05GSUdfVFJVU1RFRF9L
RVlTX1RQTT15CiMgQ09ORklHX0VOQ1JZUFRFRF9LRVlTIGlzIG5vdCBzZXQKIyBDT05GSUdf
S0VZX0RIX09QRVJBVElPTlMgaXMgbm90IHNldAojIENPTkZJR19TRUNVUklUWV9ETUVTR19S
RVNUUklDVCBpcyBub3Qgc2V0CiMgQ09ORklHX1NFQ1VSSVRZIGlzIG5vdCBzZXQKIyBDT05G
SUdfU0VDVVJJVFlGUyBpcyBub3Qgc2V0CiMgQ09ORklHX0hBUkRFTkVEX1VTRVJDT1BZIGlz
IG5vdCBzZXQKQ09ORklHX0ZPUlRJRllfU09VUkNFPXkKQ09ORklHX1NUQVRJQ19VU0VSTU9E
RUhFTFBFUj15CkNPTkZJR19TVEFUSUNfVVNFUk1PREVIRUxQRVJfUEFUSD0iL3NiaW4vdXNl
cm1vZGUtaGVscGVyIgojIENPTkZJR19QUk9DX01FTV9SRVNUUklDVF9GT0xMX0ZPUkNFX09G
RiBpcyBub3Qgc2V0CkNPTkZJR19QUk9DX01FTV9SRVNUUklDVF9GT0xMX0ZPUkNFX1BUUkFD
RT15CiMgQ09ORklHX1BST0NfTUVNX1JFU1RSSUNUX0ZPTExfRk9SQ0VfQUxMIGlzIG5vdCBz
ZXQKQ09ORklHX1BST0NfTUVNX1JFU1RSSUNUX09QRU5fUkVBRF9PRkY9eQojIENPTkZJR19Q
Uk9DX01FTV9SRVNUUklDVF9PUEVOX1JFQURfUFRSQUNFIGlzIG5vdCBzZXQKIyBDT05GSUdf
UFJPQ19NRU1fUkVTVFJJQ1RfT1BFTl9SRUFEX0FMTCBpcyBub3Qgc2V0CkNPTkZJR19QUk9D
X01FTV9SRVNUUklDVF9PUEVOX1dSSVRFX09GRj15CiMgQ09ORklHX1BST0NfTUVNX1JFU1RS
SUNUX09QRU5fV1JJVEVfUFRSQUNFIGlzIG5vdCBzZXQKIyBDT05GSUdfUFJPQ19NRU1fUkVT
VFJJQ1RfT1BFTl9XUklURV9BTEwgaXMgbm90IHNldApDT05GSUdfUFJPQ19NRU1fUkVTVFJJ
Q1RfV1JJVEVfT0ZGPXkKIyBDT05GSUdfUFJPQ19NRU1fUkVTVFJJQ1RfV1JJVEVfUFRSQUNF
IGlzIG5vdCBzZXQKIyBDT05GSUdfUFJPQ19NRU1fUkVTVFJJQ1RfV1JJVEVfQUxMIGlzIG5v
dCBzZXQKIyBDT05GSUdfSU1BX1NFQ1VSRV9BTkRfT1JfVFJVU1RFRF9CT09UIGlzIG5vdCBz
ZXQKQ09ORklHX0RFRkFVTFRfU0VDVVJJVFlfREFDPXkKQ09ORklHX0xTTT0ibGFuZGxvY2ss
bG9ja2Rvd24seWFtYSxsb2FkcGluLHNhZmVzZXRpZCxicGYiCgojCiMgS2VybmVsIGhhcmRl
bmluZyBvcHRpb25zCiMKCiMKIyBNZW1vcnkgaW5pdGlhbGl6YXRpb24KIwpDT05GSUdfQ0Nf
SEFTX0FVVE9fVkFSX0lOSVRfUEFUVEVSTj15CkNPTkZJR19DQ19IQVNfQVVUT19WQVJfSU5J
VF9aRVJPX0JBUkU9eQpDT05GSUdfQ0NfSEFTX0FVVE9fVkFSX0lOSVRfWkVSTz15CiMgQ09O
RklHX0lOSVRfU1RBQ0tfTk9ORSBpcyBub3Qgc2V0CiMgQ09ORklHX0lOSVRfU1RBQ0tfQUxM
X1BBVFRFUk4gaXMgbm90IHNldApDT05GSUdfSU5JVF9TVEFDS19BTExfWkVSTz15CiMgQ09O
RklHX0lOSVRfT05fQUxMT0NfREVGQVVMVF9PTiBpcyBub3Qgc2V0CiMgQ09ORklHX0lOSVRf
T05fRlJFRV9ERUZBVUxUX09OIGlzIG5vdCBzZXQKQ09ORklHX0NDX0hBU19aRVJPX0NBTExf
VVNFRF9SRUdTPXkKQ09ORklHX1pFUk9fQ0FMTF9VU0VEX1JFR1M9eQojIGVuZCBvZiBNZW1v
cnkgaW5pdGlhbGl6YXRpb24KCiMKIyBIYXJkZW5pbmcgb2Yga2VybmVsIGRhdGEgc3RydWN0
dXJlcwojCiMgQ09ORklHX0xJU1RfSEFSREVORUQgaXMgbm90IHNldAojIENPTkZJR19CVUdf
T05fREFUQV9DT1JSVVBUSU9OIGlzIG5vdCBzZXQKIyBlbmQgb2YgSGFyZGVuaW5nIG9mIGtl
cm5lbCBkYXRhIHN0cnVjdHVyZXMKCkNPTkZJR19SQU5EU1RSVUNUX05PTkU9eQojIGVuZCBv
ZiBLZXJuZWwgaGFyZGVuaW5nIG9wdGlvbnMKIyBlbmQgb2YgU2VjdXJpdHkgb3B0aW9ucwoK
Q09ORklHX1hPUl9CTE9DS1M9eQpDT05GSUdfQVNZTkNfQ09SRT15CkNPTkZJR19BU1lOQ19N
RU1DUFk9eQpDT05GSUdfQVNZTkNfWE9SPXkKQ09ORklHX0FTWU5DX1BRPXkKQ09ORklHX0FT
WU5DX1JBSUQ2X1JFQ09WPXkKQ09ORklHX0NSWVBUTz15CgojCiMgQ3J5cHRvIGNvcmUgb3Ig
aGVscGVyCiMKQ09ORklHX0NSWVBUT19BTEdBUEk9eQpDT05GSUdfQ1JZUFRPX0FMR0FQSTI9
eQpDT05GSUdfQ1JZUFRPX0FFQUQ9eQpDT05GSUdfQ1JZUFRPX0FFQUQyPXkKQ09ORklHX0NS
WVBUT19TSUcyPXkKQ09ORklHX0NSWVBUT19TS0NJUEhFUj15CkNPTkZJR19DUllQVE9fU0tD
SVBIRVIyPXkKQ09ORklHX0NSWVBUT19IQVNIPXkKQ09ORklHX0NSWVBUT19IQVNIMj15CkNP
TkZJR19DUllQVE9fUk5HPXkKQ09ORklHX0NSWVBUT19STkcyPXkKQ09ORklHX0NSWVBUT19S
TkdfREVGQVVMVD15CkNPTkZJR19DUllQVE9fQUtDSVBIRVIyPXkKQ09ORklHX0NSWVBUT19B
S0NJUEhFUj15CkNPTkZJR19DUllQVE9fS1BQMj15CkNPTkZJR19DUllQVE9fS1BQPXkKQ09O
RklHX0NSWVBUT19BQ09NUDI9eQpDT05GSUdfQ1JZUFRPX01BTkFHRVI9eQpDT05GSUdfQ1JZ
UFRPX01BTkFHRVIyPXkKIyBDT05GSUdfQ1JZUFRPX1VTRVIgaXMgbm90IHNldApDT05GSUdf
Q1JZUFRPX01BTkFHRVJfRElTQUJMRV9URVNUUz15CkNPTkZJR19DUllQVE9fTlVMTD15CkNP
TkZJR19DUllQVE9fTlVMTDI9eQojIENPTkZJR19DUllQVE9fUENSWVBUIGlzIG5vdCBzZXQK
Q09ORklHX0NSWVBUT19DUllQVEQ9eQpDT05GSUdfQ1JZUFRPX0FVVEhFTkM9eQpDT05GSUdf
Q1JZUFRPX1NJTUQ9eQojIGVuZCBvZiBDcnlwdG8gY29yZSBvciBoZWxwZXIKCiMKIyBQdWJs
aWMta2V5IGNyeXB0b2dyYXBoeQojCiMgQ09ORklHX0NSWVBUT19SU0EgaXMgbm90IHNldApD
T05GSUdfQ1JZUFRPX0RIPXkKQ09ORklHX0NSWVBUT19ESF9SRkM3OTE5X0dST1VQUz15CkNP
TkZJR19DUllQVE9fRUNDPXkKQ09ORklHX0NSWVBUT19FQ0RIPXkKIyBDT05GSUdfQ1JZUFRP
X0VDRFNBIGlzIG5vdCBzZXQKQ09ORklHX0NSWVBUT19FQ1JEU0E9eQpDT05GSUdfQ1JZUFRP
X0NVUlZFMjU1MTk9eQojIGVuZCBvZiBQdWJsaWMta2V5IGNyeXB0b2dyYXBoeQoKIwojIEJs
b2NrIGNpcGhlcnMKIwpDT05GSUdfQ1JZUFRPX0FFUz15CiMgQ09ORklHX0NSWVBUT19BRVNf
VEkgaXMgbm90IHNldAojIENPTkZJR19DUllQVE9fQU5VQklTIGlzIG5vdCBzZXQKQ09ORklH
X0NSWVBUT19BUklBPXkKQ09ORklHX0NSWVBUT19CTE9XRklTSD15CkNPTkZJR19DUllQVE9f
QkxPV0ZJU0hfQ09NTU9OPXkKIyBDT05GSUdfQ1JZUFRPX0NBTUVMTElBIGlzIG5vdCBzZXQK
Q09ORklHX0NSWVBUT19DQVNUX0NPTU1PTj15CkNPTkZJR19DUllQVE9fQ0FTVDU9eQpDT05G
SUdfQ1JZUFRPX0NBU1Q2PXkKQ09ORklHX0NSWVBUT19ERVM9eQpDT05GSUdfQ1JZUFRPX0ZD
UllQVD15CkNPTkZJR19DUllQVE9fS0hBWkFEPXkKQ09ORklHX0NSWVBUT19TRUVEPXkKQ09O
RklHX0NSWVBUT19TRVJQRU5UPXkKIyBDT05GSUdfQ1JZUFRPX1NNNF9HRU5FUklDIGlzIG5v
dCBzZXQKQ09ORklHX0NSWVBUT19URUE9eQojIENPTkZJR19DUllQVE9fVFdPRklTSCBpcyBu
b3Qgc2V0CiMgZW5kIG9mIEJsb2NrIGNpcGhlcnMKCiMKIyBMZW5ndGgtcHJlc2VydmluZyBj
aXBoZXJzIGFuZCBtb2RlcwojCkNPTkZJR19DUllQVE9fQURJQU5UVU09eQpDT05GSUdfQ1JZ
UFRPX0FSQzQ9eQpDT05GSUdfQ1JZUFRPX0NIQUNIQTIwPXkKQ09ORklHX0NSWVBUT19DQkM9
eQpDT05GSUdfQ1JZUFRPX0NUUj15CkNPTkZJR19DUllQVE9fQ1RTPXkKQ09ORklHX0NSWVBU
T19FQ0I9eQpDT05GSUdfQ1JZUFRPX0hDVFIyPXkKQ09ORklHX0NSWVBUT19LRVlXUkFQPXkK
IyBDT05GSUdfQ1JZUFRPX0xSVyBpcyBub3Qgc2V0CkNPTkZJR19DUllQVE9fUENCQz15CkNP
TkZJR19DUllQVE9fWENUUj15CkNPTkZJR19DUllQVE9fWFRTPXkKQ09ORklHX0NSWVBUT19O
SFBPTFkxMzA1PXkKIyBlbmQgb2YgTGVuZ3RoLXByZXNlcnZpbmcgY2lwaGVycyBhbmQgbW9k
ZXMKCiMKIyBBRUFEIChhdXRoZW50aWNhdGVkIGVuY3J5cHRpb24gd2l0aCBhc3NvY2lhdGVk
IGRhdGEpIGNpcGhlcnMKIwojIENPTkZJR19DUllQVE9fQUVHSVMxMjggaXMgbm90IHNldApD
T05GSUdfQ1JZUFRPX0NIQUNIQTIwUE9MWTEzMDU9eQpDT05GSUdfQ1JZUFRPX0NDTT15CiMg
Q09ORklHX0NSWVBUT19HQ00gaXMgbm90IHNldApDT05GSUdfQ1JZUFRPX0dFTklWPXkKQ09O
RklHX0NSWVBUT19TRVFJVj15CkNPTkZJR19DUllQVE9fRUNIQUlOSVY9eQpDT05GSUdfQ1JZ
UFRPX0VTU0lWPXkKIyBlbmQgb2YgQUVBRCAoYXV0aGVudGljYXRlZCBlbmNyeXB0aW9uIHdp
dGggYXNzb2NpYXRlZCBkYXRhKSBjaXBoZXJzCgojCiMgSGFzaGVzLCBkaWdlc3RzLCBhbmQg
TUFDcwojCkNPTkZJR19DUllQVE9fQkxBS0UyQj15CkNPTkZJR19DUllQVE9fQ01BQz15CkNP
TkZJR19DUllQVE9fR0hBU0g9eQpDT05GSUdfQ1JZUFRPX0hNQUM9eQpDT05GSUdfQ1JZUFRP
X01END15CkNPTkZJR19DUllQVE9fTUQ1PXkKQ09ORklHX0NSWVBUT19NSUNIQUVMX01JQz15
CkNPTkZJR19DUllQVE9fUE9MWVZBTD15CkNPTkZJR19DUllQVE9fUE9MWTEzMDU9eQpDT05G
SUdfQ1JZUFRPX1JNRDE2MD15CkNPTkZJR19DUllQVE9fU0hBMT15CkNPTkZJR19DUllQVE9f
U0hBMjU2PXkKQ09ORklHX0NSWVBUT19TSEE1MTI9eQpDT05GSUdfQ1JZUFRPX1NIQTM9eQpD
T05GSUdfQ1JZUFRPX1NNMz15CkNPTkZJR19DUllQVE9fU00zX0dFTkVSSUM9eQpDT05GSUdf
Q1JZUFRPX1NUUkVFQk9HPXkKQ09ORklHX0NSWVBUT19WTUFDPXkKQ09ORklHX0NSWVBUT19X
UDUxMj15CkNPTkZJR19DUllQVE9fWENCQz15CkNPTkZJR19DUllQVE9fWFhIQVNIPXkKIyBl
bmQgb2YgSGFzaGVzLCBkaWdlc3RzLCBhbmQgTUFDcwoKIwojIENSQ3MgKGN5Y2xpYyByZWR1
bmRhbmN5IGNoZWNrcykKIwpDT05GSUdfQ1JZUFRPX0NSQzMyQz15CkNPTkZJR19DUllQVE9f
Q1JDMzI9eQpDT05GSUdfQ1JZUFRPX0NSQ1QxMERJRj15CkNPTkZJR19DUllQVE9fQ1JDNjRf
Uk9DS1NPRlQ9eQojIGVuZCBvZiBDUkNzIChjeWNsaWMgcmVkdW5kYW5jeSBjaGVja3MpCgoj
CiMgQ29tcHJlc3Npb24KIwpDT05GSUdfQ1JZUFRPX0RFRkxBVEU9eQojIENPTkZJR19DUllQ
VE9fTFpPIGlzIG5vdCBzZXQKQ09ORklHX0NSWVBUT184NDI9eQojIENPTkZJR19DUllQVE9f
TFo0IGlzIG5vdCBzZXQKIyBDT05GSUdfQ1JZUFRPX0xaNEhDIGlzIG5vdCBzZXQKQ09ORklH
X0NSWVBUT19aU1REPXkKIyBlbmQgb2YgQ29tcHJlc3Npb24KCiMKIyBSYW5kb20gbnVtYmVy
IGdlbmVyYXRpb24KIwpDT05GSUdfQ1JZUFRPX0FOU0lfQ1BSTkc9eQpDT05GSUdfQ1JZUFRP
X0RSQkdfTUVOVT15CkNPTkZJR19DUllQVE9fRFJCR19ITUFDPXkKIyBDT05GSUdfQ1JZUFRP
X0RSQkdfSEFTSCBpcyBub3Qgc2V0CkNPTkZJR19DUllQVE9fRFJCR19DVFI9eQpDT05GSUdf
Q1JZUFRPX0RSQkc9eQpDT05GSUdfQ1JZUFRPX0pJVFRFUkVOVFJPUFk9eQpDT05GSUdfQ1JZ
UFRPX0pJVFRFUkVOVFJPUFlfTUVNT1JZX0JMT0NLUz02NApDT05GSUdfQ1JZUFRPX0pJVFRF
UkVOVFJPUFlfTUVNT1JZX0JMT0NLU0laRT0zMgpDT05GSUdfQ1JZUFRPX0pJVFRFUkVOVFJP
UFlfT1NSPTEKIyBlbmQgb2YgUmFuZG9tIG51bWJlciBnZW5lcmF0aW9uCgojCiMgVXNlcnNw
YWNlIGludGVyZmFjZQojCkNPTkZJR19DUllQVE9fVVNFUl9BUEk9eQojIENPTkZJR19DUllQ
VE9fVVNFUl9BUElfSEFTSCBpcyBub3Qgc2V0CiMgQ09ORklHX0NSWVBUT19VU0VSX0FQSV9T
S0NJUEhFUiBpcyBub3Qgc2V0CkNPTkZJR19DUllQVE9fVVNFUl9BUElfUk5HPXkKQ09ORklH
X0NSWVBUT19VU0VSX0FQSV9STkdfQ0FWUD15CkNPTkZJR19DUllQVE9fVVNFUl9BUElfQUVB
RD15CkNPTkZJR19DUllQVE9fVVNFUl9BUElfRU5BQkxFX09CU09MRVRFPXkKIyBlbmQgb2Yg
VXNlcnNwYWNlIGludGVyZmFjZQoKQ09ORklHX0NSWVBUT19IQVNIX0lORk89eQoKIwojIEFj
Y2VsZXJhdGVkIENyeXB0b2dyYXBoaWMgQWxnb3JpdGhtcyBmb3IgQ1BVICh4ODYpCiMKQ09O
RklHX0NSWVBUT19BRVNfTklfSU5URUw9eQpDT05GSUdfQ1JZUFRPX1NFUlBFTlRfU1NFMl81
ODY9eQojIENPTkZJR19DUllQVE9fVFdPRklTSF81ODYgaXMgbm90IHNldAojIENPTkZJR19D
UllQVE9fQ1JDMzJDX0lOVEVMIGlzIG5vdCBzZXQKQ09ORklHX0NSWVBUT19DUkMzMl9QQ0xN
VUw9eQojIGVuZCBvZiBBY2NlbGVyYXRlZCBDcnlwdG9ncmFwaGljIEFsZ29yaXRobXMgZm9y
IENQVSAoeDg2KQoKIyBDT05GSUdfQ1JZUFRPX0hXIGlzIG5vdCBzZXQKIyBDT05GSUdfQVNZ
TU1FVFJJQ19LRVlfVFlQRSBpcyBub3Qgc2V0CgojCiMgQ2VydGlmaWNhdGVzIGZvciBzaWdu
YXR1cmUgY2hlY2tpbmcKIwpDT05GSUdfU1lTVEVNX0JMQUNLTElTVF9LRVlSSU5HPXkKQ09O
RklHX1NZU1RFTV9CTEFDS0xJU1RfSEFTSF9MSVNUPSIiCiMgZW5kIG9mIENlcnRpZmljYXRl
cyBmb3Igc2lnbmF0dXJlIGNoZWNraW5nCgpDT05GSUdfQklOQVJZX1BSSU5URj15CgojCiMg
TGlicmFyeSByb3V0aW5lcwojCkNPTkZJR19SQUlENl9QUT15CiMgQ09ORklHX1JBSUQ2X1BR
X0JFTkNITUFSSyBpcyBub3Qgc2V0CkNPTkZJR19MSU5FQVJfUkFOR0VTPXkKQ09ORklHX1BB
Q0tJTkc9eQpDT05GSUdfQklUUkVWRVJTRT15CkNPTkZJR19HRU5FUklDX1NUUk5DUFlfRlJP
TV9VU0VSPXkKQ09ORklHX0dFTkVSSUNfU1RSTkxFTl9VU0VSPXkKQ09ORklHX0dFTkVSSUNf
TkVUX1VUSUxTPXkKIyBDT05GSUdfQ09SRElDIGlzIG5vdCBzZXQKQ09ORklHX1BSSU1FX05V
TUJFUlM9eQpDT05GSUdfUkFUSU9OQUw9eQpDT05GSUdfR0VORVJJQ19JT01BUD15CkNPTkZJ
R19BUkNIX0hBU19GQVNUX01VTFRJUExJRVI9eQpDT05GSUdfQVJDSF9VU0VfU1lNX0FOTk9U
QVRJT05TPXkKCiMKIyBDcnlwdG8gbGlicmFyeSByb3V0aW5lcwojCkNPTkZJR19DUllQVE9f
TElCX1VUSUxTPXkKQ09ORklHX0NSWVBUT19MSUJfQUVTPXkKQ09ORklHX0NSWVBUT19MSUJf
QUVTQ0ZCPXkKQ09ORklHX0NSWVBUT19MSUJfQVJDND15CkNPTkZJR19DUllQVE9fTElCX0dG
MTI4TVVMPXkKQ09ORklHX0NSWVBUT19MSUJfQkxBS0UyU19HRU5FUklDPXkKQ09ORklHX0NS
WVBUT19MSUJfQ0hBQ0hBX0dFTkVSSUM9eQpDT05GSUdfQ1JZUFRPX0xJQl9DSEFDSEE9eQpD
T05GSUdfQ1JZUFRPX0xJQl9DVVJWRTI1NTE5X0dFTkVSSUM9eQojIENPTkZJR19DUllQVE9f
TElCX0NVUlZFMjU1MTkgaXMgbm90IHNldApDT05GSUdfQ1JZUFRPX0xJQl9ERVM9eQpDT05G
SUdfQ1JZUFRPX0xJQl9QT0xZMTMwNV9SU0laRT0xCkNPTkZJR19DUllQVE9fTElCX1BPTFkx
MzA1X0dFTkVSSUM9eQojIENPTkZJR19DUllQVE9fTElCX1BPTFkxMzA1IGlzIG5vdCBzZXQK
IyBDT05GSUdfQ1JZUFRPX0xJQl9DSEFDSEEyMFBPTFkxMzA1IGlzIG5vdCBzZXQKQ09ORklH
X0NSWVBUT19MSUJfU0hBMT15CkNPTkZJR19DUllQVE9fTElCX1NIQTI1Nj15CiMgZW5kIG9m
IENyeXB0byBsaWJyYXJ5IHJvdXRpbmVzCgpDT05GSUdfQ1JDX0NDSVRUPXkKQ09ORklHX0NS
QzE2PXkKQ09ORklHX0NSQ19UMTBESUY9eQpDT05GSUdfQ1JDNjRfUk9DS1NPRlQ9eQpDT05G
SUdfQ1JDX0lUVV9UPXkKQ09ORklHX0NSQzMyPXkKIyBDT05GSUdfQ1JDMzJfU0VMRlRFU1Qg
aXMgbm90IHNldAojIENPTkZJR19DUkMzMl9TTElDRUJZOCBpcyBub3Qgc2V0CkNPTkZJR19D
UkMzMl9TTElDRUJZND15CiMgQ09ORklHX0NSQzMyX1NBUldBVEUgaXMgbm90IHNldAojIENP
TkZJR19DUkMzMl9CSVQgaXMgbm90IHNldApDT05GSUdfQ1JDNjQ9eQpDT05GSUdfQ1JDND15
CkNPTkZJR19DUkM3PXkKQ09ORklHX0xJQkNSQzMyQz15CkNPTkZJR19DUkM4PXkKQ09ORklH
X1hYSEFTSD15CiMgQ09ORklHX1JBTkRPTTMyX1NFTEZURVNUIGlzIG5vdCBzZXQKQ09ORklH
Xzg0Ml9DT01QUkVTUz15CkNPTkZJR184NDJfREVDT01QUkVTUz15CkNPTkZJR19aTElCX0lO
RkxBVEU9eQpDT05GSUdfWkxJQl9ERUZMQVRFPXkKQ09ORklHX0xaT19DT01QUkVTUz15CkNP
TkZJR19MWk9fREVDT01QUkVTUz15CkNPTkZJR19MWjRfQ09NUFJFU1M9eQpDT05GSUdfTFo0
SENfQ09NUFJFU1M9eQpDT05GSUdfTFo0X0RFQ09NUFJFU1M9eQpDT05GSUdfWlNURF9DT01N
T049eQpDT05GSUdfWlNURF9DT01QUkVTUz15CkNPTkZJR19aU1REX0RFQ09NUFJFU1M9eQpD
T05GSUdfWFpfREVDPXkKQ09ORklHX1haX0RFQ19YODY9eQpDT05GSUdfWFpfREVDX1BPV0VS
UEM9eQpDT05GSUdfWFpfREVDX0FSTT15CkNPTkZJR19YWl9ERUNfQVJNVEhVTUI9eQpDT05G
SUdfWFpfREVDX1NQQVJDPXkKIyBDT05GSUdfWFpfREVDX01JQ1JPTFpNQSBpcyBub3Qgc2V0
CkNPTkZJR19YWl9ERUNfQkNKPXkKQ09ORklHX1haX0RFQ19URVNUPXkKQ09ORklHX0dFTkVS
SUNfQUxMT0NBVE9SPXkKQ09ORklHX0JDSD15CkNPTkZJR19CQ0hfQ09OU1RfUEFSQU1TPXkK
Q09ORklHX1RFWFRTRUFSQ0g9eQpDT05GSUdfVEVYVFNFQVJDSF9LTVA9eQpDT05GSUdfVEVY
VFNFQVJDSF9CTT15CkNPTkZJR19URVhUU0VBUkNIX0ZTTT15CkNPTkZJR19JTlRFUlZBTF9U
UkVFPXkKQ09ORklHX1hBUlJBWV9NVUxUST15CkNPTkZJR19BU1NPQ0lBVElWRV9BUlJBWT15
CkNPTkZJR19DTE9TVVJFUz15CkNPTkZJR19IQVNfSU9NRU09eQpDT05GSUdfSEFTX0lPUE9S
VD15CkNPTkZJR19IQVNfSU9QT1JUX01BUD15CkNPTkZJR19IQVNfRE1BPXkKQ09ORklHX0RN
QV9PUFM9eQpDT05GSUdfTkVFRF9TR19ETUFfTEVOR1RIPXkKQ09ORklHX05FRURfRE1BX01B
UF9TVEFURT15CkNPTkZJR19ETUFfREVDTEFSRV9DT0hFUkVOVD15CkNPTkZJR19ETUFfTkVF
RF9TWU5DPXkKIyBDT05GSUdfRE1BX0NNQSBpcyBub3Qgc2V0CkNPTkZJR19ETUFfQVBJX0RF
QlVHPXkKIyBDT05GSUdfRE1BX0FQSV9ERUJVR19TRyBpcyBub3Qgc2V0CkNPTkZJR19TR0xf
QUxMT0M9eQpDT05GSUdfQ0hFQ0tfU0lHTkFUVVJFPXkKQ09ORklHX0NQVV9STUFQPXkKQ09O
RklHX0RRTD15CkNPTkZJR19HTE9CPXkKIyBDT05GSUdfR0xPQl9TRUxGVEVTVCBpcyBub3Qg
c2V0CkNPTkZJR19OTEFUVFI9eQpDT05GSUdfQ0xaX1RBQj15CiMgQ09ORklHX0lSUV9QT0xM
IGlzIG5vdCBzZXQKQ09ORklHX01QSUxJQj15CkNPTkZJR19MSUJGRFQ9eQpDT05GSUdfT0lE
X1JFR0lTVFJZPXkKQ09ORklHX1VDUzJfU1RSSU5HPXkKQ09ORklHX0hBVkVfR0VORVJJQ19W
RFNPPXkKQ09ORklHX0dFTkVSSUNfR0VUVElNRU9GREFZPXkKQ09ORklHX0dFTkVSSUNfVkRT
T18zMj15CkNPTkZJR19HRU5FUklDX1ZEU09fVElNRV9OUz15CkNPTkZJR19HRU5FUklDX1ZE
U09fT1ZFUkZMT1dfUFJPVEVDVD15CkNPTkZJR19GT05UX1NVUFBPUlQ9eQpDT05GSUdfRk9O
VF84eDE2PXkKQ09ORklHX0ZPTlRfQVVUT1NFTEVDVD15CkNPTkZJR19TR19QT09MPXkKQ09O
RklHX0FSQ0hfSEFTX0NQVV9DQUNIRV9JTlZBTElEQVRFX01FTVJFR0lPTj15CkNPTkZJR19B
UkNIX1NUQUNLV0FMSz15CkNPTkZJR19TVEFDS0RFUE9UPXkKQ09ORklHX1NUQUNLREVQT1Rf
QUxXQVlTX0lOSVQ9eQpDT05GSUdfU1RBQ0tERVBPVF9NQVhfRlJBTUVTPTY0CkNPTkZJR19T
QklUTUFQPXkKQ09ORklHX0xXUV9URVNUPXkKIyBlbmQgb2YgTGlicmFyeSByb3V0aW5lcwoK
Q09ORklHX0FTTjFfRU5DT0RFUj15CkNPTkZJR19QT0xZTk9NSUFMPXkKQ09ORklHX0ZJUk1X
QVJFX1RBQkxFPXkKCiMKIyBLZXJuZWwgaGFja2luZwojCgojCiMgcHJpbnRrIGFuZCBkbWVz
ZyBvcHRpb25zCiMKQ09ORklHX1BSSU5US19USU1FPXkKQ09ORklHX1BSSU5US19DQUxMRVI9
eQojIENPTkZJR19TVEFDS1RSQUNFX0JVSUxEX0lEIGlzIG5vdCBzZXQKQ09ORklHX0NPTlNP
TEVfTE9HTEVWRUxfREVGQVVMVD03CkNPTkZJR19DT05TT0xFX0xPR0xFVkVMX1FVSUVUPTQK
Q09ORklHX01FU1NBR0VfTE9HTEVWRUxfREVGQVVMVD00CkNPTkZJR19EWU5BTUlDX0RFQlVH
PXkKQ09ORklHX0RZTkFNSUNfREVCVUdfQ09SRT15CkNPTkZJR19TWU1CT0xJQ19FUlJOQU1F
PXkKQ09ORklHX0RFQlVHX0JVR1ZFUkJPU0U9eQojIGVuZCBvZiBwcmludGsgYW5kIGRtZXNn
IG9wdGlvbnMKCiMgQ09ORklHX0RFQlVHX0tFUk5FTCBpcyBub3Qgc2V0CgojCiMgQ29tcGls
ZS10aW1lIGNoZWNrcyBhbmQgY29tcGlsZXIgb3B0aW9ucwojCkNPTkZJR19BU19IQVNfTk9O
X0NPTlNUX1VMRUIxMjg9eQpDT05GSUdfRlJBTUVfV0FSTj0xMDI0CkNPTkZJR19TVFJJUF9B
U01fU1lNUz15CiMgQ09ORklHX0hFQURFUlNfSU5TVEFMTCBpcyBub3Qgc2V0CiMgQ09ORklH
X0RFQlVHX1NFQ1RJT05fTUlTTUFUQ0ggaXMgbm90IHNldAojIENPTkZJR19TRUNUSU9OX01J
U01BVENIX1dBUk5fT05MWSBpcyBub3Qgc2V0CkNPTkZJR19BUkNIX1dBTlRfRlJBTUVfUE9J
TlRFUlM9eQpDT05GSUdfRlJBTUVfUE9JTlRFUj15CiMgZW5kIG9mIENvbXBpbGUtdGltZSBj
aGVja3MgYW5kIGNvbXBpbGVyIG9wdGlvbnMKCiMKIyBHZW5lcmljIEtlcm5lbCBEZWJ1Z2dp
bmcgSW5zdHJ1bWVudHMKIwpDT05GSUdfTUFHSUNfU1lTUlE9eQpDT05GSUdfTUFHSUNfU1lT
UlFfREVGQVVMVF9FTkFCTEU9MHgxCiMgQ09ORklHX01BR0lDX1NZU1JRX1NFUklBTCBpcyBu
b3Qgc2V0CiMgQ09ORklHX0RFQlVHX0ZTIGlzIG5vdCBzZXQKQ09ORklHX0hBVkVfQVJDSF9L
R0RCPXkKQ09ORklHX0FSQ0hfSEFTX1VCU0FOPXkKQ09ORklHX1VCU0FOPXkKQ09ORklHX1VC
U0FOX1RSQVA9eQpDT05GSUdfQ0NfSEFTX1VCU0FOX0JPVU5EU19TVFJJQ1Q9eQpDT05GSUdf
VUJTQU5fQk9VTkRTPXkKQ09ORklHX1VCU0FOX0JPVU5EU19TVFJJQ1Q9eQojIENPTkZJR19V
QlNBTl9TSElGVCBpcyBub3Qgc2V0CkNPTkZJR19VQlNBTl9ESVZfWkVSTz15CiMgQ09ORklH
X1VCU0FOX1VOUkVBQ0hBQkxFIGlzIG5vdCBzZXQKIyBDT05GSUdfVUJTQU5fU0lHTkVEX1dS
QVAgaXMgbm90IHNldApDT05GSUdfVUJTQU5fQk9PTD15CiMgQ09ORklHX1VCU0FOX0VOVU0g
aXMgbm90IHNldApDT05GSUdfSEFWRV9LQ1NBTl9DT01QSUxFUj15CiMgZW5kIG9mIEdlbmVy
aWMgS2VybmVsIERlYnVnZ2luZyBJbnN0cnVtZW50cwoKIwojIE5ldHdvcmtpbmcgRGVidWdn
aW5nCiMKIyBlbmQgb2YgTmV0d29ya2luZyBEZWJ1Z2dpbmcKCiMKIyBNZW1vcnkgRGVidWdn
aW5nCiMKQ09ORklHX1BBR0VfRVhURU5TSU9OPXkKQ09ORklHX1NMVUJfREVCVUc9eQpDT05G
SUdfU0xVQl9ERUJVR19PTj15CkNPTkZJR19QQUdFX1BPSVNPTklORz15CiMgQ09ORklHX0RF
QlVHX1JPREFUQV9URVNUIGlzIG5vdCBzZXQKQ09ORklHX0FSQ0hfSEFTX0RFQlVHX1dYPXkK
IyBDT05GSUdfREVCVUdfV1ggaXMgbm90IHNldApDT05GSUdfR0VORVJJQ19QVERVTVA9eQpD
T05GSUdfUFREVU1QX0NPUkU9eQpDT05GSUdfSEFWRV9ERUJVR19LTUVNTEVBSz15CkNPTkZJ
R19BUkNIX0hBU19ERUJVR19WTV9QR1RBQkxFPXkKIyBDT05GSUdfREVCVUdfVk1fUEdUQUJM
RSBpcyBub3Qgc2V0CkNPTkZJR19BUkNIX0hBU19ERUJVR19WSVJUVUFMPXkKQ09ORklHX0RF
QlVHX01FTU9SWV9JTklUPXkKQ09ORklHX0FSQ0hfU1VQUE9SVFNfS01BUF9MT0NBTF9GT1JD
RV9NQVA9eQpDT05GSUdfSEFWRV9ERUJVR19TVEFDS09WRVJGTE9XPXkKQ09ORklHX0NPREVf
VEFHR0lORz15CkNPTkZJR19NRU1fQUxMT0NfUFJPRklMSU5HPXkKQ09ORklHX01FTV9BTExP
Q19QUk9GSUxJTkdfRU5BQkxFRF9CWV9ERUZBVUxUPXkKQ09ORklHX01FTV9BTExPQ19QUk9G
SUxJTkdfREVCVUc9eQpDT05GSUdfQ0NfSEFTX0tBU0FOX0dFTkVSSUM9eQpDT05GSUdfQ0Nf
SEFTX1dPUktJTkdfTk9TQU5JVElaRV9BRERSRVNTPXkKQ09ORklHX0hBVkVfQVJDSF9LRkVO
Q0U9eQojIENPTkZJR19LRkVOQ0UgaXMgbm90IHNldAojIGVuZCBvZiBNZW1vcnkgRGVidWdn
aW5nCgojCiMgRGVidWcgT29wcywgTG9ja3VwcyBhbmQgSGFuZ3MKIwojIENPTkZJR19QQU5J
Q19PTl9PT1BTIGlzIG5vdCBzZXQKQ09ORklHX1BBTklDX09OX09PUFNfVkFMVUU9MApDT05G
SUdfUEFOSUNfVElNRU9VVD0wCkNPTkZJR19IQVZFX0hBUkRMT0NLVVBfREVURUNUT1JfQlVE
RFk9eQojIGVuZCBvZiBEZWJ1ZyBPb3BzLCBMb2NrdXBzIGFuZCBIYW5ncwoKIwojIFNjaGVk
dWxlciBEZWJ1Z2dpbmcKIwojIENPTkZJR19TQ0hFRFNUQVRTIGlzIG5vdCBzZXQKIyBlbmQg
b2YgU2NoZWR1bGVyIERlYnVnZ2luZwoKIyBDT05GSUdfREVCVUdfVElNRUtFRVBJTkcgaXMg
bm90IHNldAoKIwojIExvY2sgRGVidWdnaW5nIChzcGlubG9ja3MsIG11dGV4ZXMsIGV0Yy4u
LikKIwpDT05GSUdfTE9DS19ERUJVR0dJTkdfU1VQUE9SVD15CkNPTkZJR19XV19NVVRFWF9T
RUxGVEVTVD15CiMgZW5kIG9mIExvY2sgRGVidWdnaW5nIChzcGlubG9ja3MsIG11dGV4ZXMs
IGV0Yy4uLikKCkNPTkZJR19ERUJVR19JUlFGTEFHUz15CkNPTkZJR19TVEFDS1RSQUNFPXkK
IyBDT05GSUdfV0FSTl9BTExfVU5TRUVERURfUkFORE9NIGlzIG5vdCBzZXQKCiMKIyBEZWJ1
ZyBrZXJuZWwgZGF0YSBzdHJ1Y3R1cmVzCiMKIyBDT05GSUdfREVCVUdfQ0xPU1VSRVMgaXMg
bm90IHNldAojIGVuZCBvZiBEZWJ1ZyBrZXJuZWwgZGF0YSBzdHJ1Y3R1cmVzCgojCiMgUkNV
IERlYnVnZ2luZwojCkNPTkZJR19SQ1VfQ1BVX1NUQUxMX1RJTUVPVVQ9MjEKQ09ORklHX1JD
VV9FWFBfQ1BVX1NUQUxMX1RJTUVPVVQ9MAojIENPTkZJR19SQ1VfQ1BVX1NUQUxMX0NQVVRJ
TUUgaXMgbm90IHNldAojIGVuZCBvZiBSQ1UgRGVidWdnaW5nCgpDT05GSUdfVVNFUl9TVEFD
S1RSQUNFX1NVUFBPUlQ9eQpDT05GSUdfSEFWRV9SRVRIT09LPXkKQ09ORklHX0hBVkVfRlVO
Q1RJT05fVFJBQ0VSPXkKQ09ORklHX0hBVkVfRlVOQ1RJT05fR1JBUEhfVFJBQ0VSPXkKQ09O
RklHX0hBVkVfRlVOQ1RJT05fR1JBUEhfUkVUVkFMPXkKQ09ORklHX0hBVkVfRFlOQU1JQ19G
VFJBQ0U9eQpDT05GSUdfSEFWRV9EWU5BTUlDX0ZUUkFDRV9XSVRIX1JFR1M9eQpDT05GSUdf
SEFWRV9EWU5BTUlDX0ZUUkFDRV9XSVRIX0RJUkVDVF9DQUxMUz15CkNPTkZJR19IQVZFX0RZ
TkFNSUNfRlRSQUNFX05PX1BBVENIQUJMRT15CkNPTkZJR19IQVZFX0ZUUkFDRV9NQ09VTlRf
UkVDT1JEPXkKQ09ORklHX0hBVkVfU1lTQ0FMTF9UUkFDRVBPSU5UUz15CkNPTkZJR19IQVZF
X0NfUkVDT1JETUNPVU5UPXkKQ09ORklHX0hBVkVfQlVJTERUSU1FX01DT1VOVF9TT1JUPXkK
Q09ORklHX1RSQUNJTkdfU1VQUE9SVD15CiMgQ09ORklHX0ZUUkFDRSBpcyBub3Qgc2V0CkNP
TkZJR19TQU1QTEVTPXkKQ09ORklHX1NBTVBMRV9BVVhESVNQTEFZPXkKQ09ORklHX1NBTVBM
RV9LT0JKRUNUPXkKIyBDT05GSUdfU0FNUExFX1dBVENIRE9HIGlzIG5vdCBzZXQKQ09ORklH
X0FSQ0hfSEFTX0RFVk1FTV9JU19BTExPV0VEPXkKCiMKIyB4ODYgRGVidWdnaW5nCiMKQ09O
RklHX1g4Nl9WRVJCT1NFX0JPT1RVUD15CkNPTkZJR19FQVJMWV9QUklOVEs9eQpDT05GSUdf
RUZJX1BHVF9EVU1QPXkKQ09ORklHX0hBVkVfTU1JT1RSQUNFX1NVUFBPUlQ9eQojIENPTkZJ
R19JT19ERUxBWV8wWDgwIGlzIG5vdCBzZXQKQ09ORklHX0lPX0RFTEFZXzBYRUQ9eQojIENP
TkZJR19JT19ERUxBWV9VREVMQVkgaXMgbm90IHNldAojIENPTkZJR19JT19ERUxBWV9OT05F
IGlzIG5vdCBzZXQKQ09ORklHX1VOV0lOREVSX0ZSQU1FX1BPSU5URVI9eQojIGVuZCBvZiB4
ODYgRGVidWdnaW5nCgojCiMgS2VybmVsIFRlc3RpbmcgYW5kIENvdmVyYWdlCiMKQ09ORklH
X0tVTklUPXkKQ09ORklHX0tVTklUX0RFQlVHRlM9eQojIENPTkZJR19LVU5JVF9GQVVMVF9U
RVNUIGlzIG5vdCBzZXQKQ09ORklHX0tVTklUX1RFU1Q9eQpDT05GSUdfS1VOSVRfRVhBTVBM
RV9URVNUPXkKQ09ORklHX0tVTklUX0FMTF9URVNUUz15CkNPTkZJR19LVU5JVF9ERUZBVUxU
X0VOQUJMRUQ9eQpDT05GSUdfQ0NfSEFTX1NBTkNPVl9UUkFDRV9QQz15CkNPTkZJR19SVU5U
SU1FX1RFU1RJTkdfTUVOVT15CiMgQ09ORklHX1RFU1RfREhSWSBpcyBub3Qgc2V0CkNPTkZJ
R19DUFVNQVNLX0tVTklUX1RFU1Q9eQpDT05GSUdfVEVTVF9MSVNUX1NPUlQ9eQpDT05GSUdf
VEVTVF9TT1JUPXkKQ09ORklHX1RFU1RfSU9WX0lURVI9eQojIENPTkZJR19BVE9NSUM2NF9T
RUxGVEVTVCBpcyBub3Qgc2V0CkNPTkZJR19BU1lOQ19SQUlENl9URVNUPXkKQ09ORklHX1RF
U1RfSEVYRFVNUD15CkNPTkZJR19TVFJJTkdfS1VOSVRfVEVTVD15CkNPTkZJR19TVFJJTkdf
SEVMUEVSU19LVU5JVF9URVNUPXkKIyBDT05GSUdfVEVTVF9LU1RSVE9YIGlzIG5vdCBzZXQK
IyBDT05GSUdfVEVTVF9QUklOVEYgaXMgbm90IHNldApDT05GSUdfVEVTVF9TQ0FORj15CkNP
TkZJR19URVNUX0JJVE1BUD15CkNPTkZJR19URVNUX1VVSUQ9eQpDT05GSUdfVEVTVF9YQVJS
QVk9eQpDT05GSUdfVEVTVF9NQVBMRV9UUkVFPXkKQ09ORklHX1RFU1RfUkhBU0hUQUJMRT15
CkNPTkZJR19URVNUX0lEQT15CkNPTkZJR19URVNUX0JJVE9QUz15CkNPTkZJR19GSU5EX0JJ
VF9CRU5DSE1BUks9eQojIENPTkZJR19URVNUX0ZJUk1XQVJFIGlzIG5vdCBzZXQKQ09ORklH
X1RFU1RfU1lTQ1RMPXkKQ09ORklHX0JJVEZJRUxEX0tVTklUPXkKQ09ORklHX0NIRUNLU1VN
X0tVTklUPXkKQ09ORklHX0hBU0hfS1VOSVRfVEVTVD15CkNPTkZJR19SRVNPVVJDRV9LVU5J
VF9URVNUPXkKQ09ORklHX1NZU0NUTF9LVU5JVF9URVNUPXkKQ09ORklHX0xJU1RfS1VOSVRf
VEVTVD15CkNPTkZJR19IQVNIVEFCTEVfS1VOSVRfVEVTVD15CkNPTkZJR19MSU5FQVJfUkFO
R0VTX1RFU1Q9eQpDT05GSUdfQ01ETElORV9LVU5JVF9URVNUPXkKQ09ORklHX0JJVFNfVEVT
VD15CkNPTkZJR19TTFVCX0tVTklUX1RFU1Q9eQpDT05GSUdfUkFUSU9OQUxfS1VOSVRfVEVT
VD15CkNPTkZJR19NRU1DUFlfS1VOSVRfVEVTVD15CkNPTkZJR19JU19TSUdORURfVFlQRV9L
VU5JVF9URVNUPXkKQ09ORklHX09WRVJGTE9XX0tVTklUX1RFU1Q9eQpDT05GSUdfU1RBQ0tJ
TklUX0tVTklUX1RFU1Q9eQpDT05GSUdfRk9SVElGWV9LVU5JVF9URVNUPXkKQ09ORklHX0hX
X0JSRUFLUE9JTlRfS1VOSVRfVEVTVD15CkNPTkZJR19TSVBIQVNIX0tVTklUX1RFU1Q9eQpD
T05GSUdfVVNFUkNPUFlfS1VOSVRfVEVTVD15CkNPTkZJR19URVNUX1VERUxBWT15CiMgQ09O
RklHX1RFU1RfRFlOQU1JQ19ERUJVRyBpcyBub3Qgc2V0CkNPTkZJR19URVNUX01FTUNBVF9Q
PXkKIyBDT05GSUdfVEVTVF9NRU1JTklUIGlzIG5vdCBzZXQKIyBDT05GSUdfVEVTVF9GUkVF
X1BBR0VTIGlzIG5vdCBzZXQKIyBDT05GSUdfVEVTVF9GUFUgaXMgbm90IHNldApDT05GSUdf
VEVTVF9DTE9DS1NPVVJDRV9XQVRDSERPRz15CkNPTkZJR19BUkNIX1VTRV9NRU1URVNUPXkK
IyBDT05GSUdfTUVNVEVTVCBpcyBub3Qgc2V0CiMgZW5kIG9mIEtlcm5lbCBUZXN0aW5nIGFu
ZCBDb3ZlcmFnZQoKIwojIFJ1c3QgaGFja2luZwojCiMgZW5kIG9mIFJ1c3QgaGFja2luZwoj
IGVuZCBvZiBLZXJuZWwgaGFja2luZwo=

--------------ZTX90q6Gdiral5E6eXA4ADte--
.

