linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
Search results ordered by [date|relevance]  view[summary|nested|Atom feed]
thread overview below | download mbox.gz: |
* [PATCH v2] batman-adv: Add flex array to struct batadv_tvlv_tt_data
@ 2024-04-26 17:22  4% Erick Archer
  0 siblings, 0 replies; 200+ results
From: Erick Archer @ 2024-04-26 17:22 UTC (permalink / raw)
  To: Marek Lindner, Simon Wunderlich, Antonio Quartulli,
	Sven Eckelmann, David S. Miller, Eric Dumazet, Jakub Kicinski,
	Paolo Abeni, Nathan Chancellor, Nick Desaulniers, Bill Wendling,
	Justin Stitt, Kees Cook, Gustavo A. R. Silva
  Cc: Erick Archer, b.a.t.m.a.n, linux-kernel, netdev, linux-hardening, llvm

The "struct batadv_tvlv_tt_data" uses a dynamically sized set of
trailing elements. Specifically, it uses an array of structures of type
"batadv_tvlv_tt_vlan_data". So, use the preferred way in the kernel
declaring a flexible array [1].

At the same time, prepare for the coming implementation by GCC and Clang
of the __counted_by attribute. Flexible array members annotated with
__counted_by can have their accesses bounds-checked at run-time via
CONFIG_UBSAN_BOUNDS (for array indexing) and CONFIG_FORTIFY_SOURCE (for
strcpy/memcpy-family functions). In this case, it is important to note
that the attribute used is specifically __counted_by_be since variable
"num_vlan" is of type __be16.

The order in which the structure batadv_tvlv_tt_data and the structure
batadv_tvlv_tt_vlan_data are defined must be swap to avoid an incomplete
type error.

Also, avoid the open-coded arithmetic in memory allocator functions [2]
using the "struct_size" macro and use the "flex_array_size" helper to
clarify some calculations, when possible.

Moreover, the new structure member also allow us to avoid the open-coded
arithmetic on pointers in some situations. Take advantage of this.

This code was detected with the help of Coccinelle, and audited and
modified manually.

Link: https://www.kernel.org/doc/html/next/process/deprecated.html#zero-length-and-one-element-arrays [1]
Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [2]
Signed-off-by: Erick Archer <erick.archer@outlook.com>
---
Changes in v2:
- Add the #include of <linux/overflow.h> for the "flex_array_size"
  helper (Sven Eckelmann).
- Add the "ntohs" function to the "flex_array_size" helper removed
  by mistake during the conversion (Sven Eckelmann).
- Add the "__counted_by_be" attribute.

Previous versions:
v1 -> https://lore.kernel.org/linux-hardening/AS8PR02MB7237987BF9DFCA030B330F658B3E2@AS8PR02MB7237.eurprd02.prod.outlook.com/

Hi,

In this version I have worked on the "sparse" warnings. The difference
in "sparse" warnings before and after this patch is as follows:

net/batman-adv/translation-table.c:534:21: warning: using sizeof on a flexible structure
net/batman-adv/translation-table.c:819:25: warning: expression using sizeof(void)
net/batman-adv/translation-table.c:819:25: warning: using sizeof on a flexible structure
net/batman-adv/translation-table.c:819:25: warning: expression using sizeof(void)
net/batman-adv/translation-table.c:819:25: warning: using sizeof on a flexible structure
net/batman-adv/translation-table.c:819:25: warning: expression using sizeof(void)
net/batman-adv/translation-table.c:898:25: warning: expression using sizeof(void)
net/batman-adv/translation-table.c:898:25: warning: using sizeof on a flexible structure
net/batman-adv/translation-table.c:898:25: warning: expression using sizeof(void)
net/batman-adv/translation-table.c:898:25: warning: using sizeof on a flexible structure
net/batman-adv/translation-table.c:898:25: warning: expression using sizeof(void)
net/batman-adv/translation-table.c:2892:16: warning: expression using sizeof(void)
net/batman-adv/translation-table.c:2892:16: warning: using sizeof on a flexible structure
net/batman-adv/translation-table.c:2892:16: warning: expression using sizeof(void)
net/batman-adv/translation-table.c:2892:16: warning: using sizeof on a flexible structure
net/batman-adv/translation-table.c:2892:16: warning: expression using sizeof(void)
net/batman-adv/translation-table.c:3338:21: warning: expression using sizeof(void)
net/batman-adv/translation-table.c:3338:21: warning: using sizeof on a flexible structure
net/batman-adv/translation-table.c:3338:21: warning: expression using sizeof(void)
net/batman-adv/translation-table.c:3338:21: warning: using sizeof on a flexible structure
net/batman-adv/translation-table.c:3338:21: warning: expression using sizeof(void)
net/batman-adv/translation-table.c:3942:30: warning: using sizeof on a flexible structure
net/batman-adv/translation-table.c:3946:27: warning: using sizeof on a flexible structure
net/batman-adv/translation-table.c:3950:21: warning: expression using sizeof(void)
net/batman-adv/translation-table.c:3986:30: warning: using sizeof on a flexible structure
net/batman-adv/translation-table.c:3990:27: warning: using sizeof on a flexible structure
net/batman-adv/translation-table.c:3992:23: warning: expression using sizeof(void)

As far as I know, these warnings cannot be removed. However it can be
safely ignored since:

Case 1: Warning "using sizeof on a flexible structure"

The commit 1a88f2f24619 ("flex-array: warn when using sizeof() on a flexible array")
in the sparse git repository says

   Using sizeof() on a structure containing a flexible array
   will ignore the 'flexible' part. This is maybe what is expected
   but maybe not, so add an option -Wflexible-array-sizeof to
   warn on such usage.

In this patch we take care of using or ignoring the flexible part
when necessary. Therefore, these warnings can be safely ignored.

Case 2: Warning "expression using sizeof(void)"

This warning is implied by the use of the "struct_size" helper and
"flex_array_size" helper because they both use the "__is_constexpr"
macro. And this macro is defined using "sizeof(void)".

/*
 * This returns a constant expression while determining if an argument is
 * a constant expression, most importantly without evaluating the argument.
 * Glory to Martin Uecker <Martin.Uecker@med.uni-goettingen.de>
 *
 * Details:
 * - sizeof() return an integer constant expression, and does not evaluate
 *   the value of its operand; it only examines the type of its operand.
 * - The results of comparing two integer constant expressions is also
 *   an integer constant expression.
 * - The first literal "8" isn't important. It could be any literal value.
 * - The second literal "8" is to avoid warnings about unaligned pointers;
 *   this could otherwise just be "1".
 * - (long)(x) is used to avoid warnings about 64-bit types on 32-bit
 *   architectures.
 * - The C Standard defines "null pointer constant", "(void *)0", as
 *   distinct from other void pointers.
 * - If (x) is an integer constant expression, then the "* 0l" resolves
 *   it into an integer constant expression of value 0. Since it is cast to
 *   "void *", this makes the second operand a null pointer constant.
 * - If (x) is not an integer constant expression, then the second operand
 *   resolves to a void pointer (but not a null pointer constant: the value
 *   is not an integer constant 0).
 * - The conditional operator's third operand, "(int *)8", is an object
 *   pointer (to type "int").
 * - The behavior (including the return type) of the conditional operator
 *   ("operand1 ? operand2 : operand3") depends on the kind of expressions
 *   given for the second and third operands. This is the central mechanism
 *   of the macro:
 *   - When one operand is a null pointer constant (i.e. when x is an integer
 *     constant expression) and the other is an object pointer (i.e. our
 *     third operand), the conditional operator returns the type of the
 *     object pointer operand (i.e. "int *"). Here, within the sizeof(), we
 *     would then get:
 *       sizeof(*((int *)(...))  == sizeof(int)  == 4
 *   - When one operand is a void pointer (i.e. when x is not an integer
 *     constant expression) and the other is an object pointer (i.e. our
 *     third operand), the conditional operator returns a "void *" type.
 *     Here, within the sizeof(), we would then get:
 *       sizeof(*((void *)(...)) == sizeof(void) == 1
 * - The equality comparison to "sizeof(int)" therefore depends on (x):
 *     sizeof(int) == sizeof(int)     (x) was a constant expression
 *     sizeof(int) != sizeof(void)    (x) was not a constant expression
 */
#define __is_constexpr(x) \
	(sizeof(int) == sizeof(*(8 ? ((void *)((long)(x) * 0l)) : (int *)8)))

Therefore, these warnings can also be safely ignored.


The Coccinelle script used to detect this code pattern is the following:

virtual report

@rule1@
type t1;
type t2;
identifier i0;
identifier i1;
identifier i2;
identifier ALLOC =~ "kmalloc|kzalloc|kmalloc_node|kzalloc_node|vmalloc|vzalloc|kvmalloc|kvzalloc";
position p1;
@@

i0 = sizeof(t1) + sizeof(t2) * i1;
...
i2 = ALLOC@p1(..., i0, ...);

@script:python depends on report@
p1 << rule1.p1;
@@

msg = "WARNING: verify allocation on line %s" % (p1[0].line)
coccilib.report.print_report(p1[0],msg)

Regards,
Erick
---
 include/uapi/linux/batadv_packet.h | 28 +++++++++--------
 net/batman-adv/translation-table.c | 49 ++++++++++++------------------
 2 files changed, 35 insertions(+), 42 deletions(-)

diff --git a/include/uapi/linux/batadv_packet.h b/include/uapi/linux/batadv_packet.h
index 6e25753015df..dfbe30536995 100644
--- a/include/uapi/linux/batadv_packet.h
+++ b/include/uapi/linux/batadv_packet.h
@@ -592,19 +592,6 @@ struct batadv_tvlv_gateway_data {
 	__be32 bandwidth_up;
 };
 
-/**
- * struct batadv_tvlv_tt_data - tt data propagated through the tt tvlv container
- * @flags: translation table flags (see batadv_tt_data_flags)
- * @ttvn: translation table version number
- * @num_vlan: number of announced VLANs. In the TVLV this struct is followed by
- *  one batadv_tvlv_tt_vlan_data object per announced vlan
- */
-struct batadv_tvlv_tt_data {
-	__u8   flags;
-	__u8   ttvn;
-	__be16 num_vlan;
-};
-
 /**
  * struct batadv_tvlv_tt_vlan_data - vlan specific tt data propagated through
  *  the tt tvlv container
@@ -618,6 +605,21 @@ struct batadv_tvlv_tt_vlan_data {
 	__u16  reserved;
 };
 
+/**
+ * struct batadv_tvlv_tt_data - tt data propagated through the tt tvlv container
+ * @flags: translation table flags (see batadv_tt_data_flags)
+ * @ttvn: translation table version number
+ * @num_vlan: number of announced VLANs. In the TVLV this struct is followed by
+ *  one batadv_tvlv_tt_vlan_data object per announced vlan
+ * @vlan_data: array of batadv_tvlv_tt_vlan_data objects
+ */
+struct batadv_tvlv_tt_data {
+	__u8   flags;
+	__u8   ttvn;
+	__be16 num_vlan;
+	struct batadv_tvlv_tt_vlan_data vlan_data[] __counted_by_be(num_vlan);
+};
+
 /**
  * struct batadv_tvlv_tt_change - translation table diff data
  * @flags: status indicators concerning the non-mesh client (see
diff --git a/net/batman-adv/translation-table.c b/net/batman-adv/translation-table.c
index b21ff3c36b07..d66fd900181c 100644
--- a/net/batman-adv/translation-table.c
+++ b/net/batman-adv/translation-table.c
@@ -28,6 +28,7 @@
 #include <linux/net.h>
 #include <linux/netdevice.h>
 #include <linux/netlink.h>
+#include <linux/overflow.h>
 #include <linux/rculist.h>
 #include <linux/rcupdate.h>
 #include <linux/skbuff.h>
@@ -815,8 +816,7 @@ batadv_tt_prepare_tvlv_global_data(struct batadv_orig_node *orig_node,
 		num_entries += atomic_read(&vlan->tt.num_entries);
 	}
 
-	change_offset = sizeof(**tt_data);
-	change_offset += num_vlan * sizeof(*tt_vlan);
+	change_offset = struct_size(*tt_data, vlan_data, num_vlan);
 
 	/* if tt_len is negative, allocate the space needed by the full table */
 	if (*tt_len < 0)
@@ -835,7 +835,7 @@ batadv_tt_prepare_tvlv_global_data(struct batadv_orig_node *orig_node,
 	(*tt_data)->ttvn = atomic_read(&orig_node->last_ttvn);
 	(*tt_data)->num_vlan = htons(num_vlan);
 
-	tt_vlan = (struct batadv_tvlv_tt_vlan_data *)(*tt_data + 1);
+	tt_vlan = (*tt_data)->vlan_data;
 	hlist_for_each_entry(vlan, &orig_node->vlan_list, list) {
 		tt_vlan->vid = htons(vlan->vid);
 		tt_vlan->crc = htonl(vlan->tt.crc);
@@ -895,8 +895,7 @@ batadv_tt_prepare_tvlv_local_data(struct batadv_priv *bat_priv,
 		total_entries += vlan_entries;
 	}
 
-	change_offset = sizeof(**tt_data);
-	change_offset += num_vlan * sizeof(*tt_vlan);
+	change_offset = struct_size(*tt_data, vlan_data, num_vlan);
 
 	/* if tt_len is negative, allocate the space needed by the full table */
 	if (*tt_len < 0)
@@ -915,7 +914,7 @@ batadv_tt_prepare_tvlv_local_data(struct batadv_priv *bat_priv,
 	(*tt_data)->ttvn = atomic_read(&bat_priv->tt.vn);
 	(*tt_data)->num_vlan = htons(num_vlan);
 
-	tt_vlan = (struct batadv_tvlv_tt_vlan_data *)(*tt_data + 1);
+	tt_vlan = (*tt_data)->vlan_data;
 	hlist_for_each_entry(vlan, &bat_priv->softif_vlan_list, list) {
 		vlan_entries = atomic_read(&vlan->tt.num_entries);
 		if (vlan_entries < 1)
@@ -2875,7 +2874,6 @@ static bool batadv_send_tt_request(struct batadv_priv *bat_priv,
 {
 	struct batadv_tvlv_tt_data *tvlv_tt_data = NULL;
 	struct batadv_tt_req_node *tt_req_node = NULL;
-	struct batadv_tvlv_tt_vlan_data *tt_vlan_req;
 	struct batadv_hard_iface *primary_if;
 	bool ret = false;
 	int i, size;
@@ -2891,7 +2889,7 @@ static bool batadv_send_tt_request(struct batadv_priv *bat_priv,
 	if (!tt_req_node)
 		goto out;
 
-	size = sizeof(*tvlv_tt_data) + sizeof(*tt_vlan_req) * num_vlan;
+	size = struct_size(tvlv_tt_data, vlan_data, num_vlan);
 	tvlv_tt_data = kzalloc(size, GFP_ATOMIC);
 	if (!tvlv_tt_data)
 		goto out;
@@ -2903,12 +2901,10 @@ static bool batadv_send_tt_request(struct batadv_priv *bat_priv,
 	/* send all the CRCs within the request. This is needed by intermediate
 	 * nodes to ensure they have the correct table before replying
 	 */
-	tt_vlan_req = (struct batadv_tvlv_tt_vlan_data *)(tvlv_tt_data + 1);
 	for (i = 0; i < num_vlan; i++) {
-		tt_vlan_req->vid = tt_vlan->vid;
-		tt_vlan_req->crc = tt_vlan->crc;
+		tvlv_tt_data->vlan_data[i].vid = tt_vlan->vid;
+		tvlv_tt_data->vlan_data[i].crc = tt_vlan->crc;
 
-		tt_vlan_req++;
 		tt_vlan++;
 	}
 
@@ -2960,7 +2956,6 @@ static bool batadv_send_other_tt_response(struct batadv_priv *bat_priv,
 	struct batadv_orig_node *res_dst_orig_node = NULL;
 	struct batadv_tvlv_tt_change *tt_change;
 	struct batadv_tvlv_tt_data *tvlv_tt_data = NULL;
-	struct batadv_tvlv_tt_vlan_data *tt_vlan;
 	bool ret = false, full_table;
 	u8 orig_ttvn, req_ttvn;
 	u16 tvlv_len;
@@ -2983,10 +2978,9 @@ static bool batadv_send_other_tt_response(struct batadv_priv *bat_priv,
 	orig_ttvn = (u8)atomic_read(&req_dst_orig_node->last_ttvn);
 	req_ttvn = tt_data->ttvn;
 
-	tt_vlan = (struct batadv_tvlv_tt_vlan_data *)(tt_data + 1);
 	/* this node doesn't have the requested data */
 	if (orig_ttvn != req_ttvn ||
-	    !batadv_tt_global_check_crc(req_dst_orig_node, tt_vlan,
+	    !batadv_tt_global_check_crc(req_dst_orig_node, tt_data->vlan_data,
 					ntohs(tt_data->num_vlan)))
 		goto out;
 
@@ -3329,7 +3323,6 @@ static void batadv_handle_tt_response(struct batadv_priv *bat_priv,
 	struct batadv_orig_node *orig_node = NULL;
 	struct batadv_tvlv_tt_change *tt_change;
 	u8 *tvlv_ptr = (u8 *)tt_data;
-	u16 change_offset;
 
 	batadv_dbg(BATADV_DBG_TT, bat_priv,
 		   "Received TT_RESPONSE from %pM for ttvn %d t_size: %d [%c]\n",
@@ -3342,10 +3335,7 @@ static void batadv_handle_tt_response(struct batadv_priv *bat_priv,
 
 	spin_lock_bh(&orig_node->tt_lock);
 
-	change_offset = sizeof(struct batadv_tvlv_tt_vlan_data);
-	change_offset *= ntohs(tt_data->num_vlan);
-	change_offset += sizeof(*tt_data);
-	tvlv_ptr += change_offset;
+	tvlv_ptr += struct_size(tt_data, vlan_data, ntohs(tt_data->num_vlan));
 
 	tt_change = (struct batadv_tvlv_tt_change *)tvlv_ptr;
 	if (tt_data->flags & BATADV_TT_FULL_TABLE) {
@@ -3944,10 +3934,10 @@ static void batadv_tt_tvlv_ogm_handler_v1(struct batadv_priv *bat_priv,
 					  u8 flags, void *tvlv_value,
 					  u16 tvlv_value_len)
 {
-	struct batadv_tvlv_tt_vlan_data *tt_vlan;
 	struct batadv_tvlv_tt_change *tt_change;
 	struct batadv_tvlv_tt_data *tt_data;
 	u16 num_entries, num_vlan;
+	size_t flex_size;
 
 	if (tvlv_value_len < sizeof(*tt_data))
 		return;
@@ -3957,17 +3947,18 @@ static void batadv_tt_tvlv_ogm_handler_v1(struct batadv_priv *bat_priv,
 
 	num_vlan = ntohs(tt_data->num_vlan);
 
-	if (tvlv_value_len < sizeof(*tt_vlan) * num_vlan)
+	flex_size = flex_array_size(tt_data, vlan_data, num_vlan);
+	if (tvlv_value_len < flex_size)
 		return;
 
-	tt_vlan = (struct batadv_tvlv_tt_vlan_data *)(tt_data + 1);
-	tt_change = (struct batadv_tvlv_tt_change *)(tt_vlan + num_vlan);
-	tvlv_value_len -= sizeof(*tt_vlan) * num_vlan;
+	tt_change = (struct batadv_tvlv_tt_change *)(tt_data->vlan_data +
+						     num_vlan);
+	tvlv_value_len -= flex_size;
 
 	num_entries = batadv_tt_entries(tvlv_value_len);
 
-	batadv_tt_update_orig(bat_priv, orig, tt_vlan, num_vlan, tt_change,
-			      num_entries, tt_data->ttvn);
+	batadv_tt_update_orig(bat_priv, orig, tt_data->vlan_data, num_vlan,
+			      tt_change, num_entries, tt_data->ttvn);
 }
 
 /**
@@ -3998,8 +3989,8 @@ static int batadv_tt_tvlv_unicast_handler_v1(struct batadv_priv *bat_priv,
 	tt_data = tvlv_value;
 	tvlv_value_len -= sizeof(*tt_data);
 
-	tt_vlan_len = sizeof(struct batadv_tvlv_tt_vlan_data);
-	tt_vlan_len *= ntohs(tt_data->num_vlan);
+	tt_vlan_len = flex_array_size(tt_data, vlan_data,
+				      ntohs(tt_data->num_vlan));
 
 	if (tvlv_value_len < tt_vlan_len)
 		return NET_RX_SUCCESS;
-- 
2.25.1


^ permalink raw reply related	[relevance 4%]

* linux-next: Tree for Apr 15
@ 2024-04-15  5:56  1% Stephen Rothwell
  0 siblings, 0 replies; 200+ results
From: Stephen Rothwell @ 2024-04-15  5:56 UTC (permalink / raw)
  To: Linux Next Mailing List; +Cc: Linux Kernel Mailing List

[-- Attachment #1: Type: text/plain, Size: 38451 bytes --]

Hi all,

Changes since 20240412:

New tree: dmi

The mm tree lost its build failures.

The perf tree still had its build failure, but doing a clean then
rebuilding works.

The rcu tree gained a conflict against the risc-v tree.

The kvm tree lost its build failure.

The drivers-x86 tree gained a conflict against the arm64 tree.

The tty tree lost its build failure.

The fpga tree lost its build failure.

The scsi-mkp tree lost its build failure.

The kselftest tree gained conflicts against Linus' tree.

Non-merge commits (relative to Linus' tree): 5554
 5721 files changed, 223163 insertions(+), 133117 deletions(-)

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

I have created today's linux-next tree at
git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
(patches at http://www.kernel.org/pub/linux/kernel/next/ ).  If you
are tracking the linux-next tree using git, you should not use "git pull"
to do so as that will try to merge the new linux-next release with the
old one.  You should use "git fetch" and checkout or reset to the new
master.

You can see which trees have been included by looking in the Next/Trees
file in the source.  There is also the merge.log file in the Next
directory.  Between each merge, the tree was built with a ppc64_defconfig
for powerpc, an allmodconfig for x86_64, a multi_v7_defconfig for arm
and a native build of tools/perf. After the final fixups (if any), I do
an x86_64 modules_install followed by builds for x86_64 allnoconfig,
powerpc allnoconfig (32 and 64 bit), ppc44x_defconfig, allyesconfig
and pseries_le_defconfig and i386, arm64, s390, sparc and sparc64
defconfig and htmldocs. And finally, a simple boot test of the powerpc
pseries_le_defconfig kernel in qemu (with and without kvm enabled).

Below is a summary of the state of the merge.

I am currently merging 370 trees (counting Linus' and 103 trees of bug
fix patches pending for the current merge release).

Stats about the size of the tree over time can be seen at
http://neuling.org/linux-next-size.html .

Status of my local build tests will be at
http://kisskb.ellerman.id.au/linux-next .  If maintainers want to give
advice about cross compilers/configs that work, we are always open to add
more builds.

Thanks to Randy Dunlap for doing many randconfig builds.  And to Paul
Gortmaker for triage and bug fixes.

-- 
Cheers,
Stephen Rothwell

$ git checkout master
$ git reset --hard stable
Merging origin/master (0bbac3facb5d Linux 6.9-rc4)
Merging fixes/fixes (2dde18cd1d8f Linux 6.5)
Merging mm-hotfixes/mm-hotfixes-unstable (88af83ab7d27 MAINTAINERS: update Naoya Horiguchi's email address)
Merging kbuild-current/fixes (89e5462bb5ae kconfig: Fix typo HEIGTH to HEIGHT)
Merging arc-current/for-curr (ebfc2fd8873b ARC: Fix typos)
Merging arm-current/fixes (0c66c6f4e21c ARM: 9359/1: flush: check if the folio is reserved for no-mapping addresses)
Merging arm64-fixes/for-next/fixes (e3ba51ab24fd arm64: tlb: Fix TLBI RANGE operand)
Merging arm-soc-fixes/arm/fixes (011d79ef1cfa MAINTAINERS: Change Krzysztof Kozlowski's email address)
Merging davinci-current/davinci/for-current (6613476e225e Linux 6.8-rc1)
Merging drivers-memory-fixes/fixes (4cece7649650 Linux 6.9-rc1)
Merging sophgo-fixes/fixes (4cece7649650 Linux 6.9-rc1)
Merging m68k-current/for-linus (e8a7824856de m68k: defconfig: Update defconfigs for v6.8-rc1)
Merging powerpc-fixes/fixes (36ba64b4cbc6 selftests/powerpc/papr-vpd: Fix missing variable initialization)
Merging s390-fixes/fixes (6f76592ef63a s390/cio: log fake IRB events)
Merging fscrypt-current/for-current (4cece7649650 Linux 6.9-rc1)
Merging fsverity-current/for-current (4cece7649650 Linux 6.9-rc1)
Merging net/main (1382e3b6a350 net: change maximum number of UDP segments to 128)
Merging bpf/master (37eacb9f6e89 bpf: Fix a verifier verbose message)
Merging ipsec/master (bccb798e07f8 octeontx2-pf: Fix transmit scheduler resource leak)
Merging netfilter/main (6db5dc7b351b netfilter: flowtable: incorrect pppoe tuple)
Merging ipvs/main (7eaf837a4eb5 netfilter: nf_tables: Fix a memory leak in nf_tables_updchain)
Merging wireless/for-next (9ef369973cd2 wifi: cfg80211: fix the order of arguments for trace events of the tx_rx_evt class)
Merging wpan/master (b85ea95d0864 Linux 6.7-rc1)
Merging rdma-fixes/for-rc (b68e1acb5834 RDMA/cm: Print the old state when cm_destroy_id gets timeout)
Merging sound-current/for-linus (0b6f0ff01a4a ALSA: hda/tas2781: correct the register for pow calibrated data)
Merging sound-asoc-fixes/for-linus (eefb831d2e4d ASoC: cs35l41: Update DSP1RX5/6 Sources for DSP config)
Merging regmap-fixes/for-linus (fec50db7033e Linux 6.9-rc3)
Merging regulator-fixes/for-linus (68adb581a39a regulator: vqmmc-ipq4019: fix module autoloading)
Merging spi-fixes/for-linus (fec50db7033e Linux 6.9-rc3)
Merging pci-current/for-linus (4cece7649650 Linux 6.9-rc1)
Merging driver-core.current/driver-core-linus (156539fd6501 Documentation: embargoed-hardware-issues.rst: Add myself for Power)
Merging tty.current/tty-linus (1aa4ad4eb695 serial: core: Fix missing shutdown and startup for serial base port)
Merging usb.current/usb-linus (34b990e9bb54 usb: misc: onboard_usb_hub: Disable the USB hub clock on failure)
Merging usb-serial-fixes/usb-linus (d206a76d7d27 Linux 6.8-rc6)
Merging phy/fixes (bf6e4ee5c436 phy: ti: tusb1210: Resolve charger-det crash if charger psy is unregistered)
Merging staging.current/staging-linus (39cd87c4eb2b Linux 6.9-rc2)
Merging iio-fixes/fixes-togreg (74a72baf204f iio:imu: adis16475: Fix sync mode setting)
Merging counter-current/counter-current (39cd87c4eb2b Linux 6.9-rc2)
Merging char-misc.current/char-misc-linus (ebaed6d4def8 peci: linux/peci.h: fix Excess kernel-doc description warning)
Merging soundwire-fixes/fixes (63dc588e7af1 soundwire: amd: fix for wake interrupt handling for clockstop mode)
Merging thunderbolt-fixes/fixes (dcd12acaf384 thunderbolt: Avoid notify PM core about runtime PM resume)
Merging input-current/for-linus (57ed9567e63b Merge branch 'next' into for-linus)
Merging crypto-current/master (5a7e89d3315d crypto: iaa - Fix nr_cpus < nr_iaa case)
Merging vfio-fixes/for-linus (4ea95c04fa6b vfio: Drop vfio_file_iommu_group() stub to fudge around a KVM wart)
Merging kselftest-fixes/fixes (72d7cb5c190b selftests/harness: Prevent infinite loop due to Assert in FIXTURE_TEARDOWN)
Merging dmaengine-fixes/fixes (f221033f5c24 dmaengine: idxd: Fix oops during rmmod on single-CPU platforms)
Merging backlight-fixes/for-backlight-fixes (6613476e225e Linux 6.8-rc1)
Merging mtd-fixes/mtd/fixes (21c9fb611c25 mtd: diskonchip: work around ubsan link failure)
Merging mfd-fixes/for-mfd-fixes (6613476e225e Linux 6.8-rc1)
Merging v4l-dvb-fixes/fixes (d353c3c34af0 media: mediatek: vcodec: support 36 bits physical address)
Merging reset-fixes/reset/fixes (4a6756f56bcf reset: Fix crash when freeing non-existent optional resets)
Merging mips-fixes/mips-fixes (4370b673ccf2 MIPS: scall: Save thread_info.syscall unconditionally on entry)
Merging at91-fixes/at91-fixes (4cece7649650 Linux 6.9-rc1)
Merging omap-fixes/fixes (9b6a51aab5f5 ARM: dts: Fix occasional boot hang for am3 usb)
Merging kvm-fixes/master (49ff3b4aec51 KVM: x86/pmu: Do not mask LVTPC when handling a PMI on AMD platforms)
Merging kvms390-fixes/master (83303a4c776c KVM: s390: fix cc for successful PQAP)
Merging hwmon-fixes/hwmon (4cece7649650 Linux 6.9-rc1)
Merging nvdimm-fixes/libnvdimm-fixes (33908660e814 ACPI: NFIT: Fix incorrect calculation of idt size)
Merging cxl-fixes/fixes (7bcf809b1e78 cxl: Add checks to access_coordinate calculation to fail missing data)
Merging btrfs-fixes/next-fixes (07475cc36e03 Merge branch 'misc-6.9' into next-fixes)
Merging vfs-fixes/fixes (aa23317d0268 qibfs: fix dentry leak)
Merging dma-mapping-fixes/for-linus (d5090484b021 swiotlb: do not try to allocate a TLB bigger than MAX_ORDER pages)
Merging drivers-x86-fixes/fixes (e71c84816925 platform/x86: lg-laptop: fix %s null argument warning)
Merging samsung-krzk-fixes/fixes (4cece7649650 Linux 6.9-rc1)
Merging pinctrl-samsung-fixes/fixes (4cece7649650 Linux 6.9-rc1)
Merging devicetree-fixes/dt/linus (de164a7f1924 nios2: Only use built-in devicetree blob if configured to do so)
Merging dt-krzk-fixes/fixes (4cece7649650 Linux 6.9-rc1)
Merging scsi-fixes/fixes (ca91259b775f scsi: core: Fix handling of SCMD_FAIL_IF_RECOVERING)
Merging drm-fixes/drm-fixes (3b0daecfeac0 amdkfd: use calloc instead of kzalloc to avoid integer overflow)
Merging drm-intel-fixes/for-linux-next-fixes (dcd8992e47f1 drm/i915/vrr: Disable VRR when using bigjoiner)
Merging mmc-fixes/fixes (ace323f80b9b mmc: sdhci-of-dwcmshc: th1520: Increase tuning loop count to 128)
Merging rtc-fixes/rtc-fixes (4cece7649650 Linux 6.9-rc1)
Merging gnss-fixes/gnss-linus (54be6c6c5ae8 Linux 6.8-rc3)
Merging hyperv-fixes/hyperv-fixes (30d18df6567b Drivers: hv: vmbus: Don't free ring buffers that couldn't be re-encrypted)
Merging soc-fsl-fixes/fix (06c2afb862f9 Linux 6.5-rc1)
Merging risc-v-fixes/fixes (a373a36fb6b0 Merge patch the fixes from "riscv: 64-bit NOMMU fixes and enhancements")
Merging riscv-dt-fixes/riscv-dt-fixes (0f74c64f0a9f riscv: dts: starfive: Remove PMIC interrupt info for Visionfive 2 board)
Merging riscv-soc-fixes/riscv-soc-fixes (6b0856ee585d cache: sifive_ccache: Silence unused variable warning)
Merging fpga-fixes/fixes (4cece7649650 Linux 6.9-rc1)
Merging spdx/spdx-linus (4cece7649650 Linux 6.9-rc1)
Merging gpio-brgl-fixes/gpio/for-current (11baa36d3173 gpio: lpc32xx: fix module autoloading)
Merging gpio-intel-fixes/fixes (7d045025a24b gpio: tangier: Use correct type for the IRQ chip data)
Merging pinctrl-intel-fixes/fixes (5d10a157ebe0 pinctrl: baytrail: Add pinconf group for uart3)
Merging auxdisplay-fixes/fixes (4cece7649650 Linux 6.9-rc1)
Merging erofs-fixes/fixes (7557d296ad43 MAINTAINERS: erofs: add myself as reviewer)
Merging kunit-fixes/kunit-fixes (cfedfb24c9dd kunit: configs: Enable CONFIG_DAMON_DBGFS_DEPRECATED for --alltests)
Merging memblock-fixes/fixes (592447f6cb3c memblock tests: fix undefined reference to `BIT')
Merging nfsd-fixes/nfsd-fixes (f488138b5267 NFSD: fix endianness issue in nfsd4_encode_fattr4)
Merging renesas-fixes/fixes (8c987693dc2d ARM: dts: renesas: rcar-gen2: Add missing #interrupt-cells to DA9063 nodes)
Merging perf-current/perf-tools (1cebd7f74976 tools/include: Sync arm64 asm/cputype.h with the kernel sources)
Merging efi-fixes/urgent (decd347c2a75 x86/efistub: Reinstate soft limit for initrd loading)
Merging zstd-fixes/zstd-linus (77618db34645 zstd: Fix array-index-out-of-bounds UBSAN warning)
Merging battery-fixes/fixes (bcbdcffd94ce power: supply: mt6360_charger: Fix of_match for usb-otg-vbus regulator)
Merging uml-fixes/fixes (73a23d771033 um: harddog: fix modular build)
Merging iommufd-fixes/for-rc (8bbe73fab029 iommufd: Add config needed for iommufd_fail_nth)
Merging rust-fixes/rust-fixes (761a8f0a776b rust: make mutually exclusive with CFI_CLANG)
Merging v9fs-fixes/fixes/next (7fd524b9bd1b fs/9p: drop inodes immediately on non-.L too)
Merging w1-fixes/fixes (4cece7649650 Linux 6.9-rc1)
Merging pmdomain-fixes/fixes (39cd87c4eb2b Linux 6.9-rc2)
Merging overlayfs-fixes/ovl-fixes (77a28aa47687 ovl: relax WARN_ON in ovl_verify_area())
Merging i2c-host-fixes/i2c/i2c-host-fixes (3731629ddb80 MAINTAINERS: adjust file entry in ARM/LPC32XX SOC SUPPORT)
Merging sparc-fixes/for-linus (6613476e225e Linux 6.8-rc1)
Merging clk-fixes/clk-fixes (d3e8a91a848a clk: mediatek: mt7988-infracfg: fix clocks for 2nd PCIe port)
Merging drm-misc-fixes/for-linux-next-fixes (4c08f01934ab drm/vmwgfx: Enable DMA mappings with SEV)
Merging mm-stable/mm-stable (4e2e36129225 Merge branch 'master' into mm-stable)
Merging mm-nonmm-stable/mm-nonmm-stable (39cd87c4eb2b Linux 6.9-rc2)
Merging mm/mm-everything (1e01d6d52e9c Merge branch 'mm-nonmm-unstable' into mm-everything)
  dd7f7184a746 ("fix-missing-vmalloch-includes-fix-3")
CONFLICT (content): Merge conflict in arch/x86/mm/numa_32.c
Merging kbuild/for-next (bfa8f18691ed Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi)
Merging clang-format/clang-format (5a205c6a9f79 clang-format: Update with v6.7-rc4's `for_each` macro list)
Merging perf/perf-tools-next (988052f4bfcc perf bench uprobe: Add uretprobe variant of uprobe benchmarks)
Merging compiler-attributes/compiler-attributes (2993eb7a8d34 Compiler Attributes: counted_by: fixup clang URL)
Merging dma-mapping/for-next (a1255ccab8ec swiotlb: do not set total_used to 0 in swiotlb_create_debugfs_files())
Merging asm-generic/master (5394f1e9b687 arch: define CONFIG_PAGE_SIZE_*KB on all architectures)
Merging arc/for-next (0bb80ecc33a8 Linux 6.6-rc1)
Merging arm/for-next (5616fee8981b Merge branches 'misc' and 'fixes' into for-next)
Merging arm64/for-next/core (b5d2afe8745b Merge branches 'for-next/kbuild', 'for-next/misc', 'for-next/mm', 'for-next/perf' and 'for-next/tlbi' into for-next/core)
Merging arm-perf/for-next/perf (b782e8d07baa arm64: arm_pmuv3: Correctly extract and check the PMUVer)
Merging arm-soc/for-next (011d79ef1cfa MAINTAINERS: Change Krzysztof Kozlowski's email address)
Merging amlogic/for-next (70ce74fbef7e Merge branch 'v6.10/arm64-dt' into for-next)
Merging asahi-soc/asahi-soc/for-next (ffc253263a13 Linux 6.6)
Merging aspeed/for-next (0c30853731ec ARM: dts: aspeed: x4tf: Add dts for asus x4tf project)
Merging at91/at91-next (fa8e55345b64 Merge branch 'microchip-dt64' into at91-next)
Merging broadcom/next (2d32c3cbc47b Merge branch 'defconfig-arm64/next' into next)
Merging davinci/davinci/for-next (6613476e225e Linux 6.8-rc1)
Merging drivers-memory/for-next (bf11908757ee memory: mtk-smi: fix module autoloading)
Merging imx-mxs/for-next (6cf256f63478 Merge branch 'imx/defconfig' into for-next)
Merging mediatek/for-next (67d5303fe655 Merge branch 'v6.9-next/dts64' into for-next)
Merging mvebu/for-next (058bfa0ead87 arm64: dts: marvell: cn9130-crb: drop unneeded "status")
Merging omap/for-next (2a1e301bf479 Merge branch 'omap-for-v6.10/dt' into for-next)
Merging qcom/for-next (4bec154a3f10 Merge branches 'arm32-for-6.10', 'arm64-defconfig-for-6.10', 'arm64-fixes-for-6.9', 'arm64-for-6.10', 'clk-fixes-for-6.9', 'clk-for-6.10', 'drivers-fixes-for-6.9' and 'drivers-for-6.10' into for-next)
Merging renesas/next (957eed54b7b6 Merge branch 'renesas-dts-for-v6.10' into renesas-next)
Merging reset/reset/next (6d89df61650d reset: ti-sci: Convert to platform remove callback returning void)
Merging rockchip/for-next (02c40b260a87 Merge branch 'v6.10-armsoc/dts64' into for-next)
Merging samsung-krzk/for-next (b7b2fe24038b Merge branch 'next/dt64' into for-next)
Merging scmi/for-linux-next (722ba6ef209f Merge branches 'for-next/scmi/updates' and 'for-next/ffa/updates', tags 'ffa-fix-6.9' and 'scmi-fixes-6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux into for-linux-next)
Merging sophgo/for-next (65fcc08b4cfe riscv: dts: sophgo: cv18xx: Add i2c devices)
Merging stm32/stm32-next (b12a916d30dc ARM: dts: stm32: add heartbeat led for stm32mp157c-ed1)
Merging sunxi/sunxi/for-next (c1d7282e4e92 Merge branch 'sunxi/dt-for-6.9' into sunxi/for-next)
Merging tee/next (60757f1264a2 Merge branch 'tee_ts_for_v6.10' into next)
Merging tegra/for-next (c85c30fad06d Merge branch for-6.9/arm64/dt into for-next)
Merging ti/ti-next (592695bed5f8 Merge branches 'ti-drivers-soc-next', 'ti-k3-dts-next' and 'ti-keystone-dts-next' into ti-next)
Merging xilinx/for-next (2d81f5ef567c Merge remote-tracking branch 'git/zynqmp/dt' into for-next)
Merging clk/clk-next (071d51e4acf5 Merge branch 'clk-stm' into clk-next)
Merging clk-imx/for-next (13269dc6c704 clk: imx: imx8mp: Fix SAI_MCLK_SEL definition)
Merging clk-renesas/renesas-clk (c0516eb4cf04 clk: renesas: r8a779h0: Add timer clocks)
Merging csky/linux-next (2c40c1c6adab Merge tag 'usb-6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb)
Merging loongarch/loongarch-next (a07c772fa658 LoongArch: Include linux/sizes.h in addrspace.h to prevent build errors)
Merging m68k/for-next (70d830e337f9 m68k: Calculate THREAD_SIZE from THREAD_SIZE_ORDER)
Merging m68knommu/for-next (8e0b6631dd62 m68k: Avoid CONFIG_COLDFIRE switch in uapi header)
Merging microblaze/next (6613476e225e Linux 6.8-rc1)
Merging mips/mips-next (4cece7649650 Linux 6.9-rc1)
Merging openrisc/for-next (68b70ab43cec openrisc: Move FPU state out of pt_regs)
Merging parisc-hd/for-next (e8f897f4afef Linux 6.8)
Merging powerpc/next (8884fc918f6a powerpc: Fix fatal warnings flag for LLVM's integrated assembler)
Merging soc-fsl/next (fb9c384625dd bus: fsl-mc: fsl-mc-allocator: Drop a write-only variable)
Merging risc-v/for-next (ba5ea59f768f riscv: Do not save the scratch CSR during suspend)
CONFLICT (content): Merge conflict in Documentation/rust/arch-support.rst
Merging riscv-dt/riscv-dt-for-next (5db2c4dc413e riscv: dts: add initial canmv-k230 and k230-evb dts)
CONFLICT (content): Merge conflict in arch/riscv/Makefile
Merging riscv-soc/riscv-soc-for-next (16d9122246cc Merge branch 'riscv-config' into riscv-soc-for-next)
Merging s390/for-next (1fd78e225f7e Merge branch 'features' into for-next)
Merging sh/for-next (4cece7649650 Linux 6.9-rc1)
Merging sparc/for-next (84b76d05828a lib/fonts: Allow Sparc console 8x16 font for sparc64 early boot text console)
Merging uml/next (83aec96c631e um: Mark 32bit syscall helpers as clobbering memory)
Merging xtensa/xtensa-for-next (11cca8ccf2c3 tty: xtensa/iss: Use min() to fix Coccinelle warning)
Merging bcachefs/for-next (e49eae85a101 bcachefs: Check for backpointer bucket_offset >= bucket size)
Merging pidfd/for-next (a901a3568fd2 Merge tag 'iomap-6.5-merge-1' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux)
Merging fscrypt/for-next (8c62f31eddb7 fscrypt: shrink the size of struct fscrypt_inode_info slightly)
Merging afs/afs-next (abcbd3bfbbfe afs: trace: Log afs_make_call(), including server address)
Merging btrfs/for-next (7218664bf91d Merge branch 'for-next-next-v6.9-20240409' into for-next-20240409)
Merging ceph/master (d3e046930679 MAINTAINERS: remove myself as a Reviewer for Ceph)
Merging cifs/for-next (0bbac3facb5d Linux 6.9-rc4)
Merging configfs/for-next (4425c1d9b44d configfs: improve item creation performance)
Merging erofs/dev (b351756059e3 erofs: derive fsid from on-disk UUID for .statfs() if possible)
Merging exfat/dev (6397cc21e5c0 exfat: move extend valid_size into ->page_mkwrite())
Merging exportfs/exportfs-next (e8f897f4afef Linux 6.8)
Merging ext3/for_next (d010696e06d5 Merge quota error handling improvements and reiserfs README fixup.)
Merging ext4/dev (0ecae5410ab5 ext4: initialize sbi->s_freeclusters_counter and sbi->s_dirtyclusters_counter before use in kunit test)
Merging f2fs/dev (b2cf5a1ff236 f2fs: allow direct io of pinned files for zoned storage)
Merging fsverity/for-next (8e43fb06e10d fsverity: remove hash page spin lock)
Merging fuse/for-next (f5008996ea06 fuse: fix parallel dio write on file open in passthrough mode)
Merging gfs2/for-next (5ede6353b3d3 gfs2: Fix do_xmote locking error)
Merging jfs/jfs-next (e42e29cc4423 Revert "jfs: fix shift-out-of-bounds in dbJoin")
Merging ksmbd/ksmbd-for-next (b762f0a3e8b8 ksmbd: validate request buffer size in smb2_allocate_rsp_buf())
Merging nfs/linux-next (24457f1be29f nfs: Handle error of rpc_proc_register() in nfs_net_init().)
Merging nfs-anna/linux-next (57331a59ac0d NFSv4.1: Use the nfs_client's rpc timeouts for backchannel)
Merging nfsd/nfsd-next (e5ca63b09c65 nfsd: optimise recalculate_deny_mode() for a common case)
Merging ntfs3/master (622cd3daa8ea fs/ntfs3: Slightly simplify ntfs_inode_printk())
Merging orangefs/for-next (9bf93dcfc453 Julia Lawall reported this null pointer dereference, this should fix it.)
Merging overlayfs/overlayfs-next (d17bb4620f90 overlayfs.rst: fix ReST formatting)
Merging ubifs/next (b8a77b9a5f9c mtd: ubi: fix NVMEM over UBI volumes on 32-bit systems)
Merging v9fs/9p-next (2a0505cdd8c8 9p: remove SLAB_MEM_SPREAD flag usage)
Merging v9fs-ericvh/ericvh/for-next (4cece7649650 Linux 6.9-rc1)
Merging xfs/for-next (e23d7e82b707 xfs: allow cross-linking special files without project quota)
Merging zonefs/for-next (567e629fd296 zonefs: convert zonefs to use the new mount api)
Merging iomap/iomap-for-next (3ac974796e5d iomap: fix short copy in iomap_write_iter())
Merging djw-vfs/vfs-for-next (ce85a1e04645 xfs: stabilize fs summary counters for online fsck)
Merging file-locks/locks-next (e0152e7481c6 Merge tag 'riscv-for-linus-6.6-mw1' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux)
Merging iversion/iversion-next (e0152e7481c6 Merge tag 'riscv-for-linus-6.6-mw1' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux)
Merging vfs-brauner/vfs.all (7dad3e0bd4e4 Merge branch 'vfs.super' into vfs.all)
Merging vfs/for-next (052d534373b7 Merge tag 'exfat-for-6.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/linkinjeon/exfat)
Merging printk/for-next (a2b4cab9da77 Merge branch 'for-6.10' into for-next)
Merging pci/next (6e47dcb2ca22 Merge branch 'pci/endpoint')
Merging pstore/for-next/pstore (9dd12ed95c2d pstore/blk: replace deprecated strncpy with strscpy)
Merging hid/for-next (78e3412a0ebb Merge branch 'for-6.10/sony' into for-next)
Merging i2c/i2c/for-next (5ceeabb0eb2e Merge tag 'i2c-host-fixes-6.9-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/andi.shyti/linux into i2c/for-current)
Merging i2c-host/i2c/i2c-host (ab9713bb8844 i2c: i801: Fix missing Kconfig dependency)
Merging i3c/i3c/next (8f06fb458539 i3c: Make i3c_bus_type const)
Merging dmi/dmi-for-next (cf770af5645a firmware: dmi-id: add a release callback function)
Merging hwmon-staging/hwmon-next (db85dba9fee5 hwmon: (aspeed-g6-pwm-tach) Convert to platform remove callback returning void)
Merging jc_docs/docs-next (8819b60eed72 docs/zh_CN: Add dev-tools/kmemleak Chinese translation)
Merging v4l-dvb/master (4cece7649650 Linux 6.9-rc1)
Merging v4l-dvb-next/master (71b3ed53b08d media: atomisp: Implement link_setup() op for ISP subdev MC entity)
Merging pm/linux-next (53c477378d23 Merge branch 'acpica' into linux-next)
Merging cpufreq-arm/cpufreq/arm/linux-next (4cece7649650 Linux 6.9-rc1)
Merging cpupower/cpupower (4cece7649650 Linux 6.9-rc1)
Merging devfreq/devfreq-next (6f3c0cfe2aa5 PM / devfreq: rk3399_dmc: Convert to platform remove callback returning void)
Merging pmdomain/next (02e2a4b3638c cpuidle: psci: Update init level to core_initcall())
Merging opp/opp/linux-next (4cece7649650 Linux 6.9-rc1)
Merging thermal/thermal/linux-next (1828c1c17bb2 thermal/drivers/rcar_gen3: Add support for R-Car V4M)
Merging dlm/next (92d59adfaf71 dlm: do message processing in softirq context)
Merging rdma/for-next (dfcdb38b21e4 RDMA/rxe: Return the correct errno)
Merging net-next/main (32affa5578f0 fib: rules: no longer hold RTNL in fib_nl_dumprule())
CONFLICT (content): Merge conflict in include/trace/events/rpcgss.h
Merging bpf-next/for-next (4d4992ff5876 selftests/bpf: Add read_trace_pipe_iter function)
Merging ipsec-next/master (267e31750ae8 Merge branch 'phy-listing-link_topology-tracking')
Merging mlx5-next/mlx5-next (d727d27db536 RDMA/mlx5: Expose register c0 for RDMA device)
Merging netfilter-next/main (ed1f164038b5 Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net)
Merging ipvs-next/main (ed1f164038b5 Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net)
Merging bluetooth/master (e00fc2700a3f Bluetooth: btusb: Fix triggering coredump implementation for QCA)
Merging wireless-next/for-next (d26a0a66f929 wifi: brcmfmac: Fix spelling mistake "ivalid" -> "invalid")
Merging wpan-next/master (9187210eee7d Merge tag 'net-next-6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next)
Merging wpan-staging/staging (9187210eee7d Merge tag 'net-next-6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next)
Merging mtd/mtd/next (3ef4600f1226 mtd: maps: sa1100-flash: Prefer struct_size over open coded arithmetic)
Merging nand/nand/next (6819db94e1cd mtd: rawnand: hynix: fixed typo)
Merging spi-nor/spi-nor/next (4cece7649650 Linux 6.9-rc1)
Merging crypto/master (751fb2528c12 crypto: x86/aes-xts - make non-AVX implementation use new glue code)
Merging drm/drm-next (6e1f415e7129 Merge tag 'drm-misc-next-2024-04-10' of https://gitlab.freedesktop.org/drm/misc/kernel into drm-next)
Merging drm-exynos/for-linux-next (6633c7d2fd31 drm/exynos: mixer: drop driver owner initialization)
Merging drm-misc/for-linux-next (42d34193f9c9 accel/qaic: mark debugfs stub functions as static inline)
Merging amdgpu/drm-next (ab956ed95b8b drm/amd/display: Add a function for checking tmds mode)
CONFLICT (content): Merge conflict in drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
CONFLICT (content): Merge conflict in drivers/gpu/drm/amd/display/dc/core/dc.c
CONFLICT (content): Merge conflict in drivers/gpu/drm/amd/display/dc/dml/dcn351/dcn351_fpu.c
Merging drm-intel/for-linux-next (578ff98403ce drm/i915: Allow bigjoiner for MST)
CONFLICT (content): Merge conflict in drivers/gpu/drm/i915/display/intel_cdclk.c
CONFLICT (content): Merge conflict in drivers/gpu/drm/i915/display/intel_dp_mst.c
CONFLICT (content): Merge conflict in drivers/gpu/drm/i915/display/intel_psr.c
Merging drm-tegra/for-next (2429b3c529da drm/tegra: Avoid potential 32-bit integer overflow)
Merging drm-msm/msm-next (9dc23cba0927 drm/msm/adreno: Set highest_bank_bit for A619)
Merging drm-msm-lumag/msm-next-lumag (ab556156cafa drm/msm: drop A6xx header)
Merging drm-xe/drm-xe-next (48b05e3c3dbb drm/xe/pf: Add support to configure GuC SR-IOV policies)
CONFLICT (content): Merge conflict in drivers/gpu/drm/xe/xe_device_types.h
Merging etnaviv/etnaviv/next (b735ee173f84 drm/etnaviv: Restore some id values)
Merging fbdev/for-next (fb3b9c2d217f video: logo: Drop full path of the input filename in generated file)
Merging regmap/for-next (135cec6ba82e regmap: spi: Add missing MODULE_DESCRIPTION())
Merging sound/for-next (a9b16d591874 Merge branch 'topic/emu10k1-fix' into for-next)
Merging ieee1394/for-next (0d4149e5e9b0 firewire: ohci: use pci_irq_vector() to retrieve allocated interrupt line)
Merging sound-asoc/for-next (47c44619b51c Merge remote-tracking branch 'asoc/for-6.10' into asoc-next)
Merging modules/modules-next (c75781a6e4c0 kallsyms: replace deprecated strncpy with strscpy)
CONFLICT (content): Merge conflict in kernel/module/main.c
Merging input/next (8984e0b56923 Input: adafruit-seesaw - only report buttons that changed state)
Merging block/for-next (f2738f2440eb Merge branch 'for-6.10/io_uring' into for-next)
CONFLICT (content): Merge conflict in io_uring/io_uring.c
CONFLICT (content): Merge conflict in io_uring/rw.c
Applying: fix up for "mm: switch mm->get_unmapped_area() to a flag"
Merging device-mapper/for-next (4b00f92cd36f dm-crypt: don't set WQ_CPU_INTENSIVE for WQ_UNBOUND crypt_queue)
Merging libata/for-next (9e6938e14ea5 ata: libata-core: Remove ata_exec_internal_sg())
Merging pcmcia/pcmcia-next (ccae53aa8aa2 pcmcia: cs: make pcmcia_socket_class constant)
Merging mmc/next (bce42d6108c9 mmc: Merge branch fixes into next)
Merging mfd/for-mfd-next (0398a09c7b13 mfd: bd71828: Remove commented code lines)
CONFLICT (content): Merge conflict in drivers/mfd/intel-lpss-pci.c
Merging backlight/for-backlight-next (df012cf5c42e backlight: otm3225a: Drop driver owner assignment)
Merging battery/for-next (50f0ff7c8cc4 power: supply: bq27xxx: Move health reading out of update loop)
Merging regulator/for-next (15f992fa81eb Merge remote-tracking branch 'regulator/for-6.10' into regulator-next)
Merging security/next (4cece7649650 Linux 6.9-rc1)
Merging apparmor/apparmor-next (8ead196be219 apparmor: Fix memory leak in unpack_profile())
Merging integrity/next-integrity (9fa8e7625008 ima: add crypto agility support for template-hash algorithm)
Merging selinux/next (d6fc1ee0b6c1 Automated merge of 'dev' into 'next')
Merging smack/next (69b6d71052b5 Smack: use init_task_smack() in smack_cred_transfer())
Merging tomoyo/master (0bb80ecc33a8 Linux 6.6-rc1)
Merging tpmdd/next (37c34331f194 Documentation: tpm_tis)
Merging watchdog/master (6fe5aabf7fc6 watchdog: intel-mid_wdt: Get platform data via dev_get_platdata())
Merging iommu/next (2633f0cad3e1 Merge branches 'iommu/fixes' and 'core' into next)
Merging audit/next (4cece7649650 Linux 6.9-rc1)
Merging devicetree/for-next (3cef9e08b6f4 dt-bindings: usb: mtk-xhci: add compatible for MT7988)
Merging dt-krzk/for-next (364be3ecd30d Merge branch 'next/dt' into for-next)
Merging mailbox/for-next (8df6bab6cb9a mailbox: imx: support i.MX95 Generic/ELE/V2X MU)
Merging spi/for-next (2152c37dd20d Merge remote-tracking branch 'spi/for-6.10' into spi-next)
Merging tip/master (0dbd00dda011 Merge branch into tip/master: 'x86/shstk')
Merging clockevents/timers/drivers/next (8248ca30ef89 clocksource/drivers/timer-riscv: Clear timer interrupt on timer initialization)
Merging edac/edac-for-next (8e95536e9495 Merge branch ras/edac-misc into for-next)
Merging ftrace/for-next (7604256cecef tracing: Add __string_src() helper to help compilers not to get confused)
Merging rcu/rcu/next (5fd10857f131 rcu/tree: Reduce wake up for synchronize_rcu() common case)
CONFLICT (content): Merge conflict in arch/riscv/include/asm/cmpxchg.h
Applying: finish revert of "riscv: Emulate one-byte cmpxchg"
Merging kvm/next (1ab157ce573f KVM: SEV: use u64_to_user_ptr throughout)
Merging kvm-arm/next (9ac5bab4deee Merge branch kvm-arm64/misc-6.10 into kvmarm-master/next)
Merging kvms390/next (39cd87c4eb2b Linux 6.9-rc2)
Merging kvm-ppc/topic/ppc-kvm (41bccc98fb79 Linux 6.8-rc2)
Merging kvm-riscv/riscv_kvm_next (f1c48c1ec735 RISC-V: KVM: selftests: Add ebreak test support)
Merging kvm-x86/next (2d181d84af38 Merge branches 'fixes', 'generic', 'misc', 'mmu', 'selftests', 'svm' and 'vmx')
CONFLICT (content): Merge conflict in arch/x86/kvm/svm/svm.c
Merging xen-tip/linux-next (d277f9d82802 xen/events: increment refcnt only if event channel is refcounted)
Merging percpu/for-next (2d9ad81ef935 Merge branch 'for-6.8-fixes' into for-next)
Merging workqueues/for-next (8a8a4bfdbe85 Merge branch 'for-6.10' into for-next)
Merging drivers-x86/for-next (88c0ef69dd88 platform/x86: asus-wmi: cleanup main struct to avoid some holes)
CONFLICT (content): Merge conflict in MAINTAINERS
Merging chrome-platform/for-next (70a5f3005008 platform/chrome: cros_ec_lpc: add quirks for the Framework Laptop (AMD))
Merging chrome-platform-firmware/for-firmware-next (7f20f21c22aa firmware: google: cbmem: drop driver owner initialization)
Merging hsi/for-next (4cece7649650 Linux 6.9-rc1)
Merging leds-lj/for-leds-next (fd05e3698649 leds: mt6360: Fix the second LED can not enable torch mode by V4L2)
Merging ipmi/for-next (6b4c04178660 ipmi: kcs_bmc_npcm7xx: Convert to platform remove callback returning void)
Merging driver-core/driver-core-next (66bc1a173328 treewide: Use sysfs_bin_attr_simple_read() helper)
Merging usb/usb-next (3d122e6d27e4 usb: typec: mux: gpio-sbu: Allow GPIO operations to sleep)
CONFLICT (modify/delete): drivers/usb/misc/onboard_usb_hub.c deleted in usb/usb-next and modified in HEAD.  Version HEAD of drivers/usb/misc/onboard_usb_hub.c left in tree.
$ git rm -f drivers/usb/misc/onboard_usb_hub.c
Applying: fix up for "usb: misc: onboard_hub: rename to onboard_dev"
Merging thunderbolt/next (25d905d2b819 thunderbolt: Allow USB3 bandwidth to be lower than maximum supported)
Merging usb-serial/usb-next (b1a8da9ff139 USB: serial: cp210x: add pid/vid for TDK NC0110013M and MM0110113M)
Merging tty/tty-next (b20172ca6bf4 serial: core: Fix ifdef for serial base console functions)
CONFLICT (content): Merge conflict in drivers/tty/serial/serial_core.c
Merging char-misc/char-misc-next (4b9f86214c05 cdx: Convert to platform remove callback returning void)
Merging accel/habanalabs-next (576d7cc5a9e2 accel: constify the struct device_type usage)
Merging coresight/next (a4f3057d19ff coresight-tpda: Change qcom,dsb-element-size to qcom,dsb-elem-bits)
Merging fastrpc/for-next (4cece7649650 Linux 6.9-rc1)
Merging fpga/for-next (4d2bc3f7dea4 fpga: tests: use KUnit devices instead of platform devices)
Merging icc/icc-next (7af14fe58e5e Merge branch 'icc-fixes' into icc-next)
Merging iio/togreg (aabc0aa90c92 Documentation: ABI: document in_temp_input file)
Merging phy-next/next (a1fe1eca0d8b phy: rockchip-snps-pcie3: add support for rockchip,rx-common-refclk-mode)
Merging soundwire/next (4cd5ea6de156 soundwire: intel_init: resume all devices on exit.)
Merging extcon/extcon-next (abe83c4e5e4f extcon: realtek: Remove unused of_gpio.h)
Merging gnss/gnss-next (54be6c6c5ae8 Linux 6.8-rc3)
Merging vfio/next (7447d911af69 vfio/fsl-mc: Block calling interrupt handler without trigger)
Merging w1/for-next (cde37a5bdb0e w1: gpio: Don't use "proxy" headers)
Merging spmi/spmi-next (897268aef3fa spmi: pmic-arb: Replace three IS_ERR() calls by null pointer checks in spmi_pmic_arb_probe())
Merging staging/staging-next (e4d5e3a9ae68 staging: nvec: update TODO)
Merging counter-next/counter-next (916baadd293a counter: ti-ecap-capture: Utilize COUNTER_COMP_FREQUENCY macro)
Merging siox/siox/for-next (db418d5f1ca5 siox: bus-gpio: Simplify using devm_siox_* functions)
Merging mux/for-next (44c026a73be8 Linux 6.4-rc3)
Merging dmaengine/next (4665be0e952f dmaengine: pch_dma: remove unused function chan2parent)
Merging cgroup/for-next (a24e3b7d27c6 docs: cgroup-v1: Fix description for css_online)
Merging scsi/for-next (99033e81ab05 Merge branch 'fixes' into for-next)
Merging scsi-mkp/for-next (f92141e18c8b Merge patch series "convert SCSI to atomic queue limits, part 1 (v3)")
Merging vhost/linux-next (5b9f214d0540 vhost: Merge tag 'vduse-virtio-net' into vhost)
Merging rpmsg/for-next (4d5aabb68439 Merge branches 'rpmsg-next' and 'rproc-next' into for-next)
Merging gpio/for-next (0bb80ecc33a8 Linux 6.6-rc1)
Merging gpio-brgl/gpio/for-next (8d1e84ab0176 gpio: regmap: Use -ENOTSUPP consistently)
Merging gpio-intel/for-next (d8a26a18d971 gpiolib: acpi: Check for errors first in acpi_find_gpio())
Merging pinctrl/for-next (07bd48cca03b Merge branch 'devel' into for-next)
Merging pinctrl-intel/for-next (5d10a157ebe0 pinctrl: baytrail: Add pinconf group for uart3)
Merging pinctrl-renesas/renesas-pinctrl (aa43c15a790c pinctrl: renesas: rzg2l: Execute atomically the interrupt configuration)
Merging pinctrl-samsung/for-next (4184e4912ca6 dt-bindings: pinctrl: samsung: drop unused header with register constants)
Merging pwm/pwm/for-next (2452c141487f pwm: meson: Add generic compatible for meson8 to sm1)
Merging ktest/for-next (07283c1873a4 ktest: force $buildonly = 1 for 'make_warnings_file' test type)
Merging kselftest/next (4f4ade6863ce selftests/clone3: Correct log message for waitpid() failures)
  398d99519758 ("selftests/perf_events: Test FASYNC with watermark wakeups.")
CONFLICT (content): Merge conflict in tools/testing/selftests/kselftest.h
CONFLICT (content): Merge conflict in tools/testing/selftests/timers/valid-adjtimex.c
Merging kunit/test (4cece7649650 Linux 6.9-rc1)
Merging kunit-next/kunit (82b0beff3497 kunit: Add tests for fault)
Merging livepatching/for-next (602bf1830798 Merge branch 'for-6.7' into for-next)
Merging rtc/rtc-next (8b59a11fb8e6 rtc: nuvoton: Modify part number value)
Merging nvdimm/libnvdimm-for-next (d9212b35da52 dax: remove SLAB_MEM_SPREAD flag usage)
Merging at24/at24/for-next (4cece7649650 Linux 6.9-rc1)
Merging ntb/ntb-next (9341b37ec17a ntb_perf: Fix printk format)
Merging seccomp/for-next/seccomp (39cd87c4eb2b Linux 6.9-rc2)
Merging fsi/next (c5eeb63edac9 fsi: Fix panic on scom file read)
Merging slimbus/for-next (b12bd525ca6e slimbus: qcom-ngd-ctrl: Add timeout for wait operation)
Merging nvmem/for-next (9e29a1dba59b nvmem: meson-mx-efuse: Remove nvmem_device from efuse struct)
Merging xarray/main (2a15de80dd0f idr: fix param name in idr_alloc_cyclic() doc)
Merging hyperv/hyperv-next (f2580a907e5c x86/hyperv: Use Hyper-V entropy to seed guest random number generator)
Merging auxdisplay/for-next (93ee235f55d3 auxdisplay: charlcd: Don't rebuild when CONFIG_PANEL_BOOT_MESSAGE=y)
Merging kgdb/kgdb/for-next (4f41d30cd6dc kdb: Fix a potential buffer overflow in kdb_local())
Merging hmm/hmm (6613476e225e Linux 6.8-rc1)
Merging cfi/cfi/next (06c2afb862f9 Linux 6.5-rc1)
Merging mhi/mhi-next (813e0ae613d6 bus: mhi: host: Add mhi_power_down_keep_dev() API to support system suspend/hibernation)
Merging memblock/for-next (2159bd4e9057 memblock: Return NUMA_NO_NODE instead of -1 to improve code readability)
Merging cxl/next (ed1ff2fba7af Merge branch 'for-6.9/cxl-einj' into for-6.9/cxl)
Merging zstd/zstd-next (3f832dfb8a8e zstd: fix g_debuglevel export warning)
Merging efi/next (cda30c6542c8 efi: Clear up misconceptions about a maximum variable name size)
Merging unicode/for-next (0131c1f3cce7 unicode: make utf8 test count static)
Merging slab/slab/for-next (5aa5c7b9a09d mm/slub: remove duplicate initialization for early_kmem_cache_node_alloc())
Merging random/master (4cece7649650 Linux 6.9-rc1)
Merging landlock/next (028243655456 fs/ioctl: Add a comment to keep the logic in sync with LSM policies)
Merging rust/rust-next (8db31d3f3bd5 rust: workqueue: add `#[pin_data]` to `Work`)
Merging sysctl/sysctl-next (4f1136a55dc8 scripts: check-sysctl-docs: handle per-namespace sysctls)
Merging execve/for-next/execve (c82389947d90 tracing: Add sched_prepare_exec tracepoint)
Merging bitmap/bitmap-for-next (36a71c558b3e sched/topology: Optimize topology_span_sane())
Merging hte/for-next (297f26dbf870 hte: tegra-194: Convert to platform remove callback returning void)
Merging kspp/for-next/kspp (9c573cd31343 randomize_kstack: Improve entropy diffusion)
Merging kspp-gustavo/for-next/kspp (6613476e225e Linux 6.8-rc1)
Merging nolibc/nolibc (4cece7649650 Linux 6.9-rc1)
Merging tsm/tsm-next (f4738f56d1dc virt: tdx-guest: Add Quote generation support using TSM_REPORTS)
Merging iommufd/for-next (4cece7649650 Linux 6.9-rc1)
Merging header_cleanup/header_cleanup (5f4c01f1e3c7 spinlock: Fix failing build for PREEMPT_RT)

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[relevance 1%]

* linux-next: Tree for Apr 12
@ 2024-04-12  7:09  2% Stephen Rothwell
  0 siblings, 0 replies; 200+ results
From: Stephen Rothwell @ 2024-04-12  7:09 UTC (permalink / raw)
  To: Linux Next Mailing List; +Cc: Linux Kernel Mailing List

[-- Attachment #1: Type: text/plain, Size: 42177 bytes --]

Hi all,

Changes since 20240411:

The net tree lost its build failure.

The mm tree gained 2 build failures for which I applied patches.

The perf tree still had its build failure, but doing a clean then
rebuilding works.

The hid tree lost its build failure.

The net-next tree gained a conflict against the nfsd-fixes tree.
The net-next tree lost its build failure.

The modules tree gained a conflict against the mm tree.

The kvm tree gained a build failure for which I applied a partial revert
of a commit.

The kvm-x86 tree gained a conflict against the kvm tree.

The usb tree gained a conflict against the usb.current tree.

The tty tree still had its build failure, so I used the version from
next-20240410.

The fpga tree gained a build failure so I used the version from
next-20240411.

The scsi-mkp tree gained a build failure so I used the version from
next-20240411.

Non-merge commits (relative to Linus' tree): 5139
 5213 files changed, 199137 insertions(+), 124106 deletions(-)

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

I have created today's linux-next tree at
git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
(patches at http://www.kernel.org/pub/linux/kernel/next/ ).  If you
are tracking the linux-next tree using git, you should not use "git pull"
to do so as that will try to merge the new linux-next release with the
old one.  You should use "git fetch" and checkout or reset to the new
master.

You can see which trees have been included by looking in the Next/Trees
file in the source.  There is also the merge.log file in the Next
directory.  Between each merge, the tree was built with a ppc64_defconfig
for powerpc, an allmodconfig for x86_64, a multi_v7_defconfig for arm
and a native build of tools/perf. After the final fixups (if any), I do
an x86_64 modules_install followed by builds for x86_64 allnoconfig,
powerpc allnoconfig (32 and 64 bit), ppc44x_defconfig, allyesconfig
and pseries_le_defconfig and i386, arm64, s390, sparc and sparc64
defconfig and htmldocs. And finally, a simple boot test of the powerpc
pseries_le_defconfig kernel in qemu (with and without kvm enabled).

Below is a summary of the state of the merge.

I am currently merging 369 trees (counting Linus' and 103 trees of bug
fix patches pending for the current merge release).

Stats about the size of the tree over time can be seen at
http://neuling.org/linux-next-size.html .

Status of my local build tests will be at
http://kisskb.ellerman.id.au/linux-next .  If maintainers want to give
advice about cross compilers/configs that work, we are always open to add
more builds.

Thanks to Randy Dunlap for doing many randconfig builds.  And to Paul
Gortmaker for triage and bug fixes.

-- 
Cheers,
Stephen Rothwell

$ git checkout master
$ git reset --hard stable
Merging origin/master (00dcf5d862e8 Merge tag 'acpi-6.9-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm)
Merging fixes/fixes (2dde18cd1d8f Linux 6.5)
Merging mm-hotfixes/mm-hotfixes-unstable (2f61e5f50dcb fork: defer linking file vma until vma is fully initialized)
Merging kbuild-current/fixes (89e5462bb5ae kconfig: Fix typo HEIGTH to HEIGHT)
Merging arc-current/for-curr (ebfc2fd8873b ARC: Fix typos)
Merging arm-current/fixes (0c66c6f4e21c ARM: 9359/1: flush: check if the folio is reserved for no-mapping addresses)
Merging arm64-fixes/for-next/fixes (e3ba51ab24fd arm64: tlb: Fix TLBI RANGE operand)
Merging arm-soc-fixes/arm/fixes (011d79ef1cfa MAINTAINERS: Change Krzysztof Kozlowski's email address)
Merging davinci-current/davinci/for-current (6613476e225e Linux 6.8-rc1)
Merging drivers-memory-fixes/fixes (4cece7649650 Linux 6.9-rc1)
Merging sophgo-fixes/fixes (4cece7649650 Linux 6.9-rc1)
Merging m68k-current/for-linus (e8a7824856de m68k: defconfig: Update defconfigs for v6.8-rc1)
Merging powerpc-fixes/fixes (36ba64b4cbc6 selftests/powerpc/papr-vpd: Fix missing variable initialization)
Merging s390-fixes/fixes (378ca2d2ad41 s390/entry: align system call table on 8 bytes)
Merging fscrypt-current/for-current (4cece7649650 Linux 6.9-rc1)
Merging fsverity-current/for-current (4cece7649650 Linux 6.9-rc1)
Merging net/main (2ae9a8972ce0 Merge tag 'net-6.9-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net)
Merging bpf/master (6648e613226e bpf, skmsg: Fix NULL pointer dereference in sk_psock_skb_ingress_enqueue)
Merging ipsec/master (bccb798e07f8 octeontx2-pf: Fix transmit scheduler resource leak)
Merging netfilter/main (6db5dc7b351b netfilter: flowtable: incorrect pppoe tuple)
Merging ipvs/main (7eaf837a4eb5 netfilter: nf_tables: Fix a memory leak in nf_tables_updchain)
Merging wireless/for-next (9ef369973cd2 wifi: cfg80211: fix the order of arguments for trace events of the tx_rx_evt class)
Merging wpan/master (b85ea95d0864 Linux 6.7-rc1)
Merging rdma-fixes/for-rc (b68e1acb5834 RDMA/cm: Print the old state when cm_destroy_id gets timeout)
Merging sound-current/for-linus (0b6f0ff01a4a ALSA: hda/tas2781: correct the register for pow calibrated data)
Merging sound-asoc-fixes/for-linus (2e411e939da9 ASoC: cs35l56: Fixes to handling of ASP1 config)
Merging regmap-fixes/for-linus (fec50db7033e Linux 6.9-rc3)
Merging regulator-fixes/for-linus (68adb581a39a regulator: vqmmc-ipq4019: fix module autoloading)
Merging spi-fixes/for-linus (fec50db7033e Linux 6.9-rc3)
Merging pci-current/for-linus (302b84e84d10 Revert "PCI: Mark LSI FW643 to avoid bus reset")
Merging driver-core.current/driver-core-linus (156539fd6501 Documentation: embargoed-hardware-issues.rst: Add myself for Power)
  156539fd6501 ("Documentation: embargoed-hardware-issues.rst: Add myself for Power")
Merging tty.current/tty-linus (1aa4ad4eb695 serial: core: Fix missing shutdown and startup for serial base port)
Merging usb.current/usb-linus (34b990e9bb54 usb: misc: onboard_usb_hub: Disable the USB hub clock on failure)
Merging usb-serial-fixes/usb-linus (d206a76d7d27 Linux 6.8-rc6)
Merging phy/fixes (47b3e2f3914a phy: qcom: m31: match requested regulator name with dt schema)
Merging staging.current/staging-linus (39cd87c4eb2b Linux 6.9-rc2)
Merging iio-fixes/fixes-togreg (74a72baf204f iio:imu: adis16475: Fix sync mode setting)
Merging counter-current/counter-current (39cd87c4eb2b Linux 6.9-rc2)
Merging char-misc.current/char-misc-linus (ebaed6d4def8 peci: linux/peci.h: fix Excess kernel-doc description warning)
Merging soundwire-fixes/fixes (63dc588e7af1 soundwire: amd: fix for wake interrupt handling for clockstop mode)
Merging thunderbolt-fixes/fixes (dcd12acaf384 thunderbolt: Avoid notify PM core about runtime PM resume)
Merging input-current/for-linus (57ed9567e63b Merge branch 'next' into for-linus)
Merging crypto-current/master (5a7e89d3315d crypto: iaa - Fix nr_cpus < nr_iaa case)
Merging vfio-fixes/for-linus (4ea95c04fa6b vfio: Drop vfio_file_iommu_group() stub to fudge around a KVM wart)
Merging kselftest-fixes/fixes (72d7cb5c190b selftests/harness: Prevent infinite loop due to Assert in FIXTURE_TEARDOWN)
Merging dmaengine-fixes/fixes (f221033f5c24 dmaengine: idxd: Fix oops during rmmod on single-CPU platforms)
Merging backlight-fixes/for-backlight-fixes (6613476e225e Linux 6.8-rc1)
Merging mtd-fixes/mtd/fixes (21c9fb611c25 mtd: diskonchip: work around ubsan link failure)
Merging mfd-fixes/for-mfd-fixes (6613476e225e Linux 6.8-rc1)
Merging v4l-dvb-fixes/fixes (d353c3c34af0 media: mediatek: vcodec: support 36 bits physical address)
Merging reset-fixes/reset/fixes (4a6756f56bcf reset: Fix crash when freeing non-existent optional resets)
Merging mips-fixes/mips-fixes (4370b673ccf2 MIPS: scall: Save thread_info.syscall unconditionally on entry)
Merging at91-fixes/at91-fixes (4cece7649650 Linux 6.9-rc1)
Merging omap-fixes/fixes (9b6a51aab5f5 ARM: dts: Fix occasional boot hang for am3 usb)
Merging kvm-fixes/master (49ff3b4aec51 KVM: x86/pmu: Do not mask LVTPC when handling a PMI on AMD platforms)
Merging kvms390-fixes/master (83303a4c776c KVM: s390: fix cc for successful PQAP)
Merging hwmon-fixes/hwmon (4cece7649650 Linux 6.9-rc1)
Merging nvdimm-fixes/libnvdimm-fixes (33908660e814 ACPI: NFIT: Fix incorrect calculation of idt size)
Merging cxl-fixes/fixes (7bcf809b1e78 cxl: Add checks to access_coordinate calculation to fail missing data)
Merging btrfs-fixes/next-fixes (07475cc36e03 Merge branch 'misc-6.9' into next-fixes)
Merging vfs-fixes/fixes (aa23317d0268 qibfs: fix dentry leak)
Merging dma-mapping-fixes/for-linus (d5090484b021 swiotlb: do not try to allocate a TLB bigger than MAX_ORDER pages)
Merging drivers-x86-fixes/fixes (e71c84816925 platform/x86: lg-laptop: fix %s null argument warning)
Merging samsung-krzk-fixes/fixes (4cece7649650 Linux 6.9-rc1)
Merging pinctrl-samsung-fixes/fixes (4cece7649650 Linux 6.9-rc1)
Merging devicetree-fixes/dt/linus (de164a7f1924 nios2: Only use built-in devicetree blob if configured to do so)
Merging dt-krzk-fixes/fixes (4cece7649650 Linux 6.9-rc1)
Merging scsi-fixes/fixes (ca91259b775f scsi: core: Fix handling of SCMD_FAIL_IF_RECOVERING)
Merging drm-fixes/drm-fixes (1bafeaf26264 Merge tag 'drm-xe-fixes-2024-04-11' of https://gitlab.freedesktop.org/drm/xe/kernel into drm-fixes)
Merging drm-intel-fixes/for-linux-next-fixes (dcd8992e47f1 drm/i915/vrr: Disable VRR when using bigjoiner)
Merging mmc-fixes/fixes (ace323f80b9b mmc: sdhci-of-dwcmshc: th1520: Increase tuning loop count to 128)
Merging rtc-fixes/rtc-fixes (4cece7649650 Linux 6.9-rc1)
Merging gnss-fixes/gnss-linus (54be6c6c5ae8 Linux 6.8-rc3)
Merging hyperv-fixes/hyperv-fixes (30d18df6567b Drivers: hv: vmbus: Don't free ring buffers that couldn't be re-encrypted)
Merging soc-fsl-fixes/fix (06c2afb862f9 Linux 6.5-rc1)
Merging risc-v-fixes/fixes (a373a36fb6b0 Merge patch the fixes from "riscv: 64-bit NOMMU fixes and enhancements")
Merging riscv-dt-fixes/riscv-dt-fixes (0f74c64f0a9f riscv: dts: starfive: Remove PMIC interrupt info for Visionfive 2 board)
Merging riscv-soc-fixes/riscv-soc-fixes (6b0856ee585d cache: sifive_ccache: Silence unused variable warning)
Merging fpga-fixes/fixes (4cece7649650 Linux 6.9-rc1)
Merging spdx/spdx-linus (4cece7649650 Linux 6.9-rc1)
Merging gpio-brgl-fixes/gpio/for-current (e43c2feb8f32 Merge tag 'intel-gpio-v6.9-1' of git://git.kernel.org/pub/scm/linux/kernel/git/andy/linux-gpio-intel into gpio/for-current)
Merging gpio-intel-fixes/fixes (ace0ebe5c98d gpio: crystalcove: Use -ENOTSUPP consistently)
Merging pinctrl-intel-fixes/fixes (5d10a157ebe0 pinctrl: baytrail: Add pinconf group for uart3)
Merging auxdisplay-fixes/fixes (4cece7649650 Linux 6.9-rc1)
Merging erofs-fixes/fixes (7557d296ad43 MAINTAINERS: erofs: add myself as reviewer)
Merging kunit-fixes/kunit-fixes (cfedfb24c9dd kunit: configs: Enable CONFIG_DAMON_DBGFS_DEPRECATED for --alltests)
Merging memblock-fixes/fixes (592447f6cb3c memblock tests: fix undefined reference to `BIT')
Merging nfsd-fixes/nfsd-fixes (f488138b5267 NFSD: fix endianness issue in nfsd4_encode_fattr4)
Merging renesas-fixes/fixes (8c987693dc2d ARM: dts: renesas: rcar-gen2: Add missing #interrupt-cells to DA9063 nodes)
Merging perf-current/perf-tools (25e973a0e077 perf annotate: Make sure to call symbol__annotate2() in TUI)
Merging efi-fixes/urgent (decd347c2a75 x86/efistub: Reinstate soft limit for initrd loading)
Merging zstd-fixes/zstd-linus (77618db34645 zstd: Fix array-index-out-of-bounds UBSAN warning)
Merging battery-fixes/fixes (452d8950db3e power: rt9455: hide unused rt9455_boost_voltage_values)
Merging uml-fixes/fixes (73a23d771033 um: harddog: fix modular build)
Merging iommufd-fixes/for-rc (39cd87c4eb2b Linux 6.9-rc2)
Merging rust-fixes/rust-fixes (761a8f0a776b rust: make mutually exclusive with CFI_CLANG)
Merging v9fs-fixes/fixes/next (7a84602297d3 9p: explicitly deny setlease attempts)
Merging w1-fixes/fixes (4cece7649650 Linux 6.9-rc1)
Merging pmdomain-fixes/fixes (39cd87c4eb2b Linux 6.9-rc2)
Merging overlayfs-fixes/ovl-fixes (77a28aa47687 ovl: relax WARN_ON in ovl_verify_area())
Merging i2c-host-fixes/i2c/i2c-host-fixes (fec50db7033e Linux 6.9-rc3)
Merging sparc-fixes/for-linus (6613476e225e Linux 6.8-rc1)
Merging clk-fixes/clk-fixes (d3e8a91a848a clk: mediatek: mt7988-infracfg: fix clocks for 2nd PCIe port)
Merging drm-misc-fixes/for-linux-next-fixes (4c08f01934ab drm/vmwgfx: Enable DMA mappings with SEV)
Merging mm-stable/mm-stable (4e2e36129225 Merge branch 'master' into mm-stable)
Merging mm-nonmm-stable/mm-nonmm-stable (39cd87c4eb2b Linux 6.9-rc2)
Merging mm/mm-everything (ed7c95c95397 Merge branch 'mm-nonmm-unstable' into mm-everything)
  925cc828a1ef ("fix-missing-vmalloch-includes-fix-3")
CONFLICT (content): Merge conflict in arch/x86/mm/numa_32.c
Applying: fix up for ""mm: add per-order mTHP anon_alloc and anon_alloc_fallback counters"
Merging kbuild/for-next (bfa8f18691ed Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi)
Merging clang-format/clang-format (5a205c6a9f79 clang-format: Update with v6.7-rc4's `for_each` macro list)
Merging perf/perf-tools-next (9c3e9af74326 perf metrics: Remove the "No_group" metric group)
Merging compiler-attributes/compiler-attributes (2993eb7a8d34 Compiler Attributes: counted_by: fixup clang URL)
Merging dma-mapping/for-next (a1255ccab8ec swiotlb: do not set total_used to 0 in swiotlb_create_debugfs_files())
Merging asm-generic/master (5394f1e9b687 arch: define CONFIG_PAGE_SIZE_*KB on all architectures)
Merging arc/for-next (0bb80ecc33a8 Linux 6.6-rc1)
Merging arm/for-next (5616fee8981b Merge branches 'misc' and 'fixes' into for-next)
Merging arm64/for-next/core (fec50db7033e Linux 6.9-rc3)
Merging arm-perf/for-next/perf (8f9f5041c646 perf/arm-cmn: Set PMU device parent)
Merging arm-soc/for-next (011d79ef1cfa MAINTAINERS: Change Krzysztof Kozlowski's email address)
Merging amlogic/for-next (4ee46d40d625 Merge branch 'v6.10/arm64-dt' into for-next)
Merging asahi-soc/asahi-soc/for-next (ffc253263a13 Linux 6.6)
Merging aspeed/for-next (0c30853731ec ARM: dts: aspeed: x4tf: Add dts for asus x4tf project)
Merging at91/at91-next (fa8e55345b64 Merge branch 'microchip-dt64' into at91-next)
Merging broadcom/next (ebe9ff485efc Merge branch 'drivers/next' into next)
Merging davinci/davinci/for-next (6613476e225e Linux 6.8-rc1)
Merging drivers-memory/for-next (bf11908757ee memory: mtk-smi: fix module autoloading)
Merging imx-mxs/for-next (6cf256f63478 Merge branch 'imx/defconfig' into for-next)
Merging mediatek/for-next (67d5303fe655 Merge branch 'v6.9-next/dts64' into for-next)
Merging mvebu/for-next (058bfa0ead87 arm64: dts: marvell: cn9130-crb: drop unneeded "status")
Merging omap/for-next (2a1e301bf479 Merge branch 'omap-for-v6.10/dt' into for-next)
Merging qcom/for-next (3cd1977804fb Merge branches 'arm32-for-6.10', 'arm64-defconfig-for-6.10', 'arm64-for-6.10', 'clk-fixes-for-6.9' and 'drivers-for-6.10' into for-next)
Merging renesas/next (957eed54b7b6 Merge branch 'renesas-dts-for-v6.10' into renesas-next)
Merging reset/reset/next (6d89df61650d reset: ti-sci: Convert to platform remove callback returning void)
Merging rockchip/for-next (56f939cce5e1 Merge branch 'v6.10-armsoc/dts64' into for-next)
Merging samsung-krzk/for-next (b7b2fe24038b Merge branch 'next/dt64' into for-next)
Merging scmi/for-linux-next (a4200c1395dc Merge branches 'for-next/scmi/updates' and 'for-next/ffa/updates', tags 'ffa-fix-6.9' and 'scmi-fixes-6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux into for-linux-next)
Merging sophgo/for-next (65fcc08b4cfe riscv: dts: sophgo: cv18xx: Add i2c devices)
Merging stm32/stm32-next (b12a916d30dc ARM: dts: stm32: add heartbeat led for stm32mp157c-ed1)
Merging sunxi/sunxi/for-next (c1d7282e4e92 Merge branch 'sunxi/dt-for-6.9' into sunxi/for-next)
Merging tee/next (60757f1264a2 Merge branch 'tee_ts_for_v6.10' into next)
Merging tegra/for-next (c85c30fad06d Merge branch for-6.9/arm64/dt into for-next)
Merging ti/ti-next (592695bed5f8 Merge branches 'ti-drivers-soc-next', 'ti-k3-dts-next' and 'ti-keystone-dts-next' into ti-next)
Merging xilinx/for-next (2d81f5ef567c Merge remote-tracking branch 'git/zynqmp/dt' into for-next)
Merging clk/clk-next (deb01ebcc734 Merge branch 'clk-loongson' into clk-next)
Merging clk-imx/for-next (13269dc6c704 clk: imx: imx8mp: Fix SAI_MCLK_SEL definition)
Merging clk-renesas/renesas-clk (c0516eb4cf04 clk: renesas: r8a779h0: Add timer clocks)
Merging csky/linux-next (2c40c1c6adab Merge tag 'usb-6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb)
Merging loongarch/loongarch-next (a07c772fa658 LoongArch: Include linux/sizes.h in addrspace.h to prevent build errors)
Merging m68k/for-next (70d830e337f9 m68k: Calculate THREAD_SIZE from THREAD_SIZE_ORDER)
Merging m68knommu/for-next (d677c24fccee m68k: Avoid CONFIG_COLDFIRE switch in uapi header)
Merging microblaze/next (6613476e225e Linux 6.8-rc1)
Merging mips/mips-next (4cece7649650 Linux 6.9-rc1)
Merging openrisc/for-next (68b70ab43cec openrisc: Move FPU state out of pt_regs)
Merging parisc-hd/for-next (e8f897f4afef Linux 6.8)
Merging powerpc/next (8884fc918f6a powerpc: Fix fatal warnings flag for LLVM's integrated assembler)
Merging soc-fsl/next (fb9c384625dd bus: fsl-mc: fsl-mc-allocator: Drop a write-only variable)
Merging risc-v/for-next (ba5ea59f768f riscv: Do not save the scratch CSR during suspend)
CONFLICT (content): Merge conflict in Documentation/rust/arch-support.rst
Merging riscv-dt/riscv-dt-for-next (5db2c4dc413e riscv: dts: add initial canmv-k230 and k230-evb dts)
CONFLICT (content): Merge conflict in arch/riscv/Makefile
Merging riscv-soc/riscv-soc-for-next (16d9122246cc Merge branch 'riscv-config' into riscv-soc-for-next)
Merging s390/for-next (9fb83b5a1bdb Merge branch 'features' into for-next)
Merging sh/for-next (4cece7649650 Linux 6.9-rc1)
Merging sparc/for-next (84b76d05828a lib/fonts: Allow Sparc console 8x16 font for sparc64 early boot text console)
Merging uml/next (83aec96c631e um: Mark 32bit syscall helpers as clobbering memory)
Merging xtensa/xtensa-for-next (11cca8ccf2c3 tty: xtensa/iss: Use min() to fix Coccinelle warning)
Merging bcachefs/for-next (1189bdda6c99 bcachefs: Fix __bch2_btree_and_journal_iter_init_node_iter())
Merging pidfd/for-next (a901a3568fd2 Merge tag 'iomap-6.5-merge-1' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux)
Merging fscrypt/for-next (8c62f31eddb7 fscrypt: shrink the size of struct fscrypt_inode_info slightly)
Merging afs/afs-next (abcbd3bfbbfe afs: trace: Log afs_make_call(), including server address)
Merging btrfs/for-next (7218664bf91d Merge branch 'for-next-next-v6.9-20240409' into for-next-20240409)
Merging ceph/master (d3e046930679 MAINTAINERS: remove myself as a Reviewer for Ceph)
Merging cifs/for-next (4e996f9d30cb smb: client: Fix hang in smb2_reconnect)
Merging configfs/for-next (4425c1d9b44d configfs: improve item creation performance)
Merging erofs/dev (b351756059e3 erofs: derive fsid from on-disk UUID for .statfs() if possible)
Merging exfat/dev (6397cc21e5c0 exfat: move extend valid_size into ->page_mkwrite())
Merging exportfs/exportfs-next (e8f897f4afef Linux 6.8)
Merging ext3/for_next (172dc02ca6ec Merge UDF time conversion fix.)
Merging ext4/dev (0ecae5410ab5 ext4: initialize sbi->s_freeclusters_counter and sbi->s_dirtyclusters_counter before use in kunit test)
Merging f2fs/dev (bf3a69c6861f Merge tag 'for-linus-6.9-ofs1' of git://git.kernel.org/pub/scm/linux/kernel/git/hubcap/linux)
Merging fsverity/for-next (8e43fb06e10d fsverity: remove hash page spin lock)
Merging fuse/for-next (cdf6ac2a03d2 fuse: get rid of ff->readdir.lock)
Merging gfs2/for-next (cac2ca6ca549 gfs2: Fix do_xmote locking error)
Merging jfs/jfs-next (e42e29cc4423 Revert "jfs: fix shift-out-of-bounds in dbJoin")
Merging ksmbd/ksmbd-for-next (405ac6a57277 Merge tag '6.9-rc2-ksmbd-server-fixes' of git://git.samba.org/ksmbd)
Merging nfs/linux-next (24457f1be29f nfs: Handle error of rpc_proc_register() in nfs_net_init().)
Merging nfs-anna/linux-next (57331a59ac0d NFSv4.1: Use the nfs_client's rpc timeouts for backchannel)
Merging nfsd/nfsd-next (e5ca63b09c65 nfsd: optimise recalculate_deny_mode() for a common case)
Merging ntfs3/master (622cd3daa8ea fs/ntfs3: Slightly simplify ntfs_inode_printk())
Merging orangefs/for-next (9bf93dcfc453 Julia Lawall reported this null pointer dereference, this should fix it.)
Merging overlayfs/overlayfs-next (d17bb4620f90 overlayfs.rst: fix ReST formatting)
Merging ubifs/next (b8a77b9a5f9c mtd: ubi: fix NVMEM over UBI volumes on 32-bit systems)
Merging v9fs/9p-next (2a0505cdd8c8 9p: remove SLAB_MEM_SPREAD flag usage)
Merging v9fs-ericvh/ericvh/for-next (4cece7649650 Linux 6.9-rc1)
Merging xfs/for-next (e23d7e82b707 xfs: allow cross-linking special files without project quota)
Merging zonefs/for-next (567e629fd296 zonefs: convert zonefs to use the new mount api)
Merging iomap/iomap-for-next (3ac974796e5d iomap: fix short copy in iomap_write_iter())
Merging djw-vfs/vfs-for-next (ce85a1e04645 xfs: stabilize fs summary counters for online fsck)
Merging file-locks/locks-next (e0152e7481c6 Merge tag 'riscv-for-linus-6.6-mw1' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux)
Merging iversion/iversion-next (e0152e7481c6 Merge tag 'riscv-for-linus-6.6-mw1' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux)
Merging vfs-brauner/vfs.all (7dad3e0bd4e4 Merge branch 'vfs.super' into vfs.all)
Merging vfs/for-next (052d534373b7 Merge tag 'exfat-for-6.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/linkinjeon/exfat)
Merging printk/for-next (a2b4cab9da77 Merge branch 'for-6.10' into for-next)
Merging pci/next (ced360f2a021 Merge branch 'pci/dt-bindings')
Merging pstore/for-next/pstore (9dd12ed95c2d pstore/blk: replace deprecated strncpy with strscpy)
Merging hid/for-next (a8d38c4a9f9f Merge branch 'for-6.10/hid-bpf' into for-next)
Merging i2c/i2c/for-next (5ceeabb0eb2e Merge tag 'i2c-host-fixes-6.9-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/andi.shyti/linux into i2c/for-current)
Merging i2c-host/i2c/i2c-host (ab9713bb8844 i2c: i801: Fix missing Kconfig dependency)
Merging i3c/i3c/next (8f06fb458539 i3c: Make i3c_bus_type const)
Merging hwmon-staging/hwmon-next (db85dba9fee5 hwmon: (aspeed-g6-pwm-tach) Convert to platform remove callback returning void)
Merging jc_docs/docs-next (8819b60eed72 docs/zh_CN: Add dev-tools/kmemleak Chinese translation)
Merging v4l-dvb/master (4cece7649650 Linux 6.9-rc1)
Merging v4l-dvb-next/master (71b3ed53b08d media: atomisp: Implement link_setup() op for ISP subdev MC entity)
Merging pm/linux-next (53c477378d23 Merge branch 'acpica' into linux-next)
Merging cpufreq-arm/cpufreq/arm/linux-next (4cece7649650 Linux 6.9-rc1)
Merging cpupower/cpupower (4cece7649650 Linux 6.9-rc1)
Merging devfreq/devfreq-next (6f3c0cfe2aa5 PM / devfreq: rk3399_dmc: Convert to platform remove callback returning void)
Merging pmdomain/next (02e2a4b3638c cpuidle: psci: Update init level to core_initcall())
Merging opp/opp/linux-next (4cece7649650 Linux 6.9-rc1)
Merging thermal/thermal/linux-next (1828c1c17bb2 thermal/drivers/rcar_gen3: Add support for R-Car V4M)
Merging dlm/next (92d59adfaf71 dlm: do message processing in softirq context)
Merging rdma/for-next (dfcdb38b21e4 RDMA/rxe: Return the correct errno)
Merging net-next/main (94426ed2137a Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net)
CONFLICT (content): Merge conflict in include/trace/events/rpcgss.h
Merging bpf-next/for-next (c53e853c2d81 Merge branch 'export send_recv_data')
Merging ipsec-next/master (267e31750ae8 Merge branch 'phy-listing-link_topology-tracking')
Merging mlx5-next/mlx5-next (d727d27db536 RDMA/mlx5: Expose register c0 for RDMA device)
Merging netfilter-next/main (ed1f164038b5 Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net)
Merging ipvs-next/main (ed1f164038b5 Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net)
Merging bluetooth/master (e00fc2700a3f Bluetooth: btusb: Fix triggering coredump implementation for QCA)
  01841038e1d2 ("Bluetooth: Fix memory leak in hci_req_sync_complete()")
  2151391668d9 ("Bluetooth: ISO: Don't reject BT_ISO_QOS if parameters are unset")
  289bfd91fcf2 ("Bluetooth: SCO: Fix not validating setsockopt user input")
  35d2c39b23ff ("Bluetooth: hci_sock: Fix not validating setsockopt user input")
  5a5010485400 ("Bluetooth: ISO: Fix not validating setsockopt user input")
  a95f9d212d1b ("Bluetooth: L2CAP: Fix not validating setsockopt user input")
  b191fb7a3075 ("Bluetooth: hci_sync: Fix using the same interval and window for Coded PHY")
  e6bb15dbae90 ("Bluetooth: l2cap: Don't double set the HCI_CONN_MGMT_CONNECTED bit")
  ee77912bc0bb ("Bluetooth: RFCOMM: Fix not validating setsockopt user input")
Merging wireless-next/for-next (d26a0a66f929 wifi: brcmfmac: Fix spelling mistake "ivalid" -> "invalid")
Merging wpan-next/master (9187210eee7d Merge tag 'net-next-6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next)
Merging wpan-staging/staging (9187210eee7d Merge tag 'net-next-6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next)
Merging mtd/mtd/next (3ef4600f1226 mtd: maps: sa1100-flash: Prefer struct_size over open coded arithmetic)
Merging nand/nand/next (6819db94e1cd mtd: rawnand: hynix: fixed typo)
Merging spi-nor/spi-nor/next (4cece7649650 Linux 6.9-rc1)
Merging crypto/master (4ad27a8be9db crypto: jitter - Replace http with https)
Merging drm/drm-next (6e1f415e7129 Merge tag 'drm-misc-next-2024-04-10' of https://gitlab.freedesktop.org/drm/misc/kernel into drm-next)
Merging drm-exynos/for-linux-next (6633c7d2fd31 drm/exynos: mixer: drop driver owner initialization)
Merging drm-misc/for-linux-next (42118c5f6853 drm/i915: Add SIZE_HINTS property for cursors)
Merging amdgpu/drm-next (526b184e8883 drm/amdgpu: differentiate external rev id for gfx 11.5.0)
  029faefb7302 ("drm/amdgpu: implement IRQ_STATE_ENABLE for SDMA v4.4.2")
  05e40141685f ("drm/amdgpu: clear set_q_mode_offs when VM changed")
  108ab31be9d5 ("drm/amdgpu/umsch: reinitialize write pointer in hw init")
  24e9727b39ca ("drm/amd/display: Do not recursively call manual trigger programming")
  27e718ac8b81 ("drm/amd/display: fix disable otg wa logic in DCN316")
  2dbe9c2b2685 ("drm/amd/display: add DCN 351 version for microcode load")
  364b1c1de6de ("drm/amd/display: Adjust dprefclk by down spread percentage.")
  4a5b171299e5 ("drm/amd/display: always reset ODM mode in context when adding first plane")
  526b184e8883 ("drm/amdgpu: differentiate external rev id for gfx 11.5.0")
  7c1d9e10e664 ("drm/amd/pm: fix the high voltage issue after unload")
  8966c3167402 ("drm/amdgpu : Increase the mes log buffer size as per new MES FW version")
  91bc86011661 ("drm/amdgpu: Fix VCN allocation in CPX partition")
  af1c41858da1 ("drm/amd/display: Return max resolution supported by DWB")
  cd409dbc6986 ("drm/amdgpu: Refine IB schedule error logging")
  cf82a80a1456 ("drm/amd/display: Skip on writeback when it's not applicable")
  d045f4ad7700 ("drm/amd/swsmu: Update smu v14.0.0 headers to be 14.0.1 compatible")
  d6d6561f936b ("drm/amdgpu: fix incorrect number of active RBs for gfx11")
  d7f148764355 ("drm/amdgpu: always force full reset for SOC21")
  df3c7dc5c58b ("drm/amdgpu: Reset dGPU if suspend got aborted")
  dfb15c4ab586 ("amd/amdkfd: sync all devices to wait all processes being evicted")
  e58acb7613aa ("drm/amdgpu : Add mes_log_enable to control mes log feature")
  f5a3507c4abf ("drm/amdgpu: add smu 14.0.1 discovery support")
  fedb6ae49758 ("drm/amd/pm: fixes a random hang in S4 for SMU v13.0.4/11")
CONFLICT (content): Merge conflict in drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
CONFLICT (content): Merge conflict in drivers/gpu/drm/amd/display/dc/core/dc.c
CONFLICT (content): Merge conflict in drivers/gpu/drm/amd/display/dc/dml/dcn351/dcn351_fpu.c
Merging drm-intel/for-linux-next (578ff98403ce drm/i915: Allow bigjoiner for MST)
CONFLICT (content): Merge conflict in drivers/gpu/drm/i915/display/intel_cdclk.c
CONFLICT (content): Merge conflict in drivers/gpu/drm/i915/display/intel_dp_mst.c
CONFLICT (content): Merge conflict in drivers/gpu/drm/i915/display/intel_psr.c
Merging drm-tegra/for-next (2429b3c529da drm/tegra: Avoid potential 32-bit integer overflow)
Merging drm-msm/msm-next (9dc23cba0927 drm/msm/adreno: Set highest_bank_bit for A619)
Merging drm-msm-lumag/msm-next-lumag (ab556156cafa drm/msm: drop A6xx header)
Merging drm-xe/drm-xe-next (4209d635a823 drm/xe: Remove devcoredump during driver release)
  117de185edf2 ("drm/xe/display: Fix double mutex initialization")
  34820967ae7b ("drm/xe/xe_migrate: Cast to output precision before multiplying operands")
  883232b47b81 ("drm/xe/hwmon: Cast result to output precision on left shift of operand")
  dc30c6e7149b ("drm/xe: Label RING_CONTEXT_CONTROL as masked")
CONFLICT (content): Merge conflict in drivers/gpu/drm/xe/xe_bo.c
CONFLICT (content): Merge conflict in drivers/gpu/drm/xe/xe_device_types.h
CONFLICT (content): Merge conflict in drivers/gpu/drm/xe/xe_exec.c
CONFLICT (content): Merge conflict in drivers/gpu/drm/xe/xe_vm.c
CONFLICT (content): Merge conflict in include/uapi/drm/xe_drm.h
Merging etnaviv/etnaviv/next (b735ee173f84 drm/etnaviv: Restore some id values)
Merging fbdev/for-next (fb3b9c2d217f video: logo: Drop full path of the input filename in generated file)
Merging regmap/for-next (8a8317f92770 regmap: kunit: Add some test cases and a few small)
Merging sound/for-next (a9b16d591874 Merge branch 'topic/emu10k1-fix' into for-next)
Merging ieee1394/for-next (0d4149e5e9b0 firewire: ohci: use pci_irq_vector() to retrieve allocated interrupt line)
Merging sound-asoc/for-next (f8cfa515170f Merge remote-tracking branch 'asoc/for-6.10' into asoc-next)
Merging modules/modules-next (68881525ba29 mm: introduce execmem_alloc() and execmem_free())
CONFLICT (content): Merge conflict in kernel/module/main.c
Merging input/next (8984e0b56923 Input: adafruit-seesaw - only report buttons that changed state)
Merging block/for-next (7ed173281653 Merge branch 'for-6.10/io_uring' into for-next)
CONFLICT (content): Merge conflict in io_uring/io_uring.c
CONFLICT (content): Merge conflict in io_uring/rw.c
Applying: fix up for "mm: switch mm->get_unmapped_area() to a flag"
Merging device-mapper/for-next (44078156fc77 dm: use queue_limits_set)
Merging libata/for-next (dcf2653ac12f dt-bindings: ata: ahci-da850: Convert to dtschema)
Merging pcmcia/pcmcia-next (ccae53aa8aa2 pcmcia: cs: make pcmcia_socket_class constant)
Merging mmc/next (bce42d6108c9 mmc: Merge branch fixes into next)
Merging mfd/for-mfd-next (fb9d85a9698e mfd: Tidy Kconfig dependency's parentheses)
CONFLICT (content): Merge conflict in drivers/mfd/intel-lpss-pci.c
Merging backlight/for-backlight-next (9db7677e33b6 backlight: otm3225a: Drop driver owner assignment)
Merging battery/for-next (50f0ff7c8cc4 power: supply: bq27xxx: Move health reading out of update loop)
Merging regulator/for-next (15f992fa81eb Merge remote-tracking branch 'regulator/for-6.10' into regulator-next)
Merging security/next (4cece7649650 Linux 6.9-rc1)
Merging apparmor/apparmor-next (8ead196be219 apparmor: Fix memory leak in unpack_profile())
Merging integrity/next-integrity (5e2e4d0ea5c2 evm: Rename is_unsupported_fs to is_unsupported_hmac_fs)
Merging selinux/next (d6fc1ee0b6c1 Automated merge of 'dev' into 'next')
Merging smack/next (69b6d71052b5 Smack: use init_task_smack() in smack_cred_transfer())
Merging tomoyo/master (0bb80ecc33a8 Linux 6.6-rc1)
Merging tpmdd/next (6999f8229e59 keys: Fix overwrite of key expiration on instantiation)
Merging watchdog/master (6fe5aabf7fc6 watchdog: intel-mid_wdt: Get platform data via dev_get_platdata())
Merging iommu/next (c404f55c26fc iommu: Validate the PASID in iommu_attach_device_pasid())
Merging audit/next (4cece7649650 Linux 6.9-rc1)
Merging devicetree/for-next (3cef9e08b6f4 dt-bindings: usb: mtk-xhci: add compatible for MT7988)
Merging dt-krzk/for-next (364be3ecd30d Merge branch 'next/dt' into for-next)
Merging mailbox/for-next (8df6bab6cb9a mailbox: imx: support i.MX95 Generic/ELE/V2X MU)
Merging spi/for-next (637ced031d3c Merge remote-tracking branch 'spi/for-6.10' into spi-next)
Merging tip/master (b4ba814ae4a4 Merge branch into tip/master: 'x86/shstk')
Merging clockevents/timers/drivers/next (8248ca30ef89 clocksource/drivers/timer-riscv: Clear timer interrupt on timer initialization)
Merging edac/edac-for-next (8e95536e9495 Merge branch ras/edac-misc into for-next)
Merging ftrace/for-next (7604256cecef tracing: Add __string_src() helper to help compilers not to get confused)
Merging rcu/rcu/next (8942ebe9e183 rcutorture: Make rcutorture support srcu double call test)
  56544e22cc3a ("fs/proc: remove redundant comments from /proc/bootconfig")
  e6f3a323fcfa ("fs/proc: Skip bootloader comment if no embedded kernel parameters")
Merging kvm/next (415efaaf0d97 KVM: SEV: use u64_to_user_ptr throughout)
Applying: fix up for "mm: replace set_pte_at_notify() with just set_pte_at()"
Merging kvm-arm/next (29b0075ed61c KVM: selftests: Fix __GUEST_ASSERT() format warnings in ARM's arch timer test)
Merging kvms390/next (00de073e2420 KVM: s390: selftest: memop: Fix undefined behavior)
Merging kvm-ppc/topic/ppc-kvm (41bccc98fb79 Linux 6.8-rc2)
Merging kvm-riscv/riscv_kvm_next (8e936e98718f RISC-V: KVM: Fix APLIC in_clrip[x] read emulation)
Merging kvm-x86/next (f10f3621ad80 Merge branches 'fixes', 'generic', 'misc', 'mmu', 'selftests', 'svm' and 'vmx')
CONFLICT (content): Merge conflict in arch/x86/kvm/svm/svm.c
Merging xen-tip/linux-next (d277f9d82802 xen/events: increment refcnt only if event channel is refcounted)
Merging percpu/for-next (2d9ad81ef935 Merge branch 'for-6.8-fixes' into for-next)
Merging workqueues/for-next (8a8a4bfdbe85 Merge branch 'for-6.10' into for-next)
Merging drivers-x86/for-next (88c0ef69dd88 platform/x86: asus-wmi: cleanup main struct to avoid some holes)
Merging chrome-platform/for-next (70a5f3005008 platform/chrome: cros_ec_lpc: add quirks for the Framework Laptop (AMD))
Merging chrome-platform-firmware/for-firmware-next (7f20f21c22aa firmware: google: cbmem: drop driver owner initialization)
Merging hsi/for-next (4cece7649650 Linux 6.9-rc1)
Merging leds-lj/for-leds-next (de6b3fd4bbc9 leds: trigger: netdev: Remove not needed call to led_set_brightness in deactivate)
  da8310b24223 ("video: backlight: Make backlight_class constant")
Merging ipmi/for-next (6b4c04178660 ipmi: kcs_bmc_npcm7xx: Convert to platform remove callback returning void)
Merging driver-core/driver-core-next (0bb322be5d38 driver core: Remove unused platform_notify, platform_notify_remove)
Merging usb/usb-next (1a395af9d53c usb: typec: ucsi_glink: drop special handling for CCI_BUSY)
CONFLICT (modify/delete): drivers/usb/misc/onboard_usb_hub.c deleted in usb/usb-next and modified in HEAD.  Version HEAD of drivers/usb/misc/onboard_usb_hub.c left in tree.
$ git rm -f drivers/usb/misc/onboard_usb_hub.c
Applying: fix up for "usb: misc: onboard_hub: rename to onboard_dev"
Merging thunderbolt/next (9a966517a830 thunderbolt: Enable NVM upgrade support on Intel Maple Ridge)
Merging usb-serial/usb-next (b1a8da9ff139 USB: serial: cp210x: add pid/vid for TDK NC0110013M and MM0110113M)
Merging tty/tty-next (fff4a5d5609d serial: ar933x: Remove unneeded static structure)
CONFLICT (content): Merge conflict in drivers/tty/serial/serial_core.c
$ git reset --hard HEAD^
Merging next-20240410 version of tty
Merging char-misc/char-misc-next (fec50db7033e Linux 6.9-rc3)
Merging accel/habanalabs-next (576d7cc5a9e2 accel: constify the struct device_type usage)
Merging coresight/next (a4f3057d19ff coresight-tpda: Change qcom,dsb-element-size to qcom,dsb-elem-bits)
Merging fastrpc/for-next (4cece7649650 Linux 6.9-rc1)
Merging fpga/for-next (5d04660b29fb fpga: ice40-spi: Remove unused of_gpio.h)
$ git reset --hard HEAD^
Merging next-20240411 version of fpga
Merging icc/icc-next (7af14fe58e5e Merge branch 'icc-fixes' into icc-next)
Merging iio/togreg (27eea4778db8 iio: adc: ad7944: simplify adi,spi-mode property parsing)
Merging phy-next/next (0338e1d2f933 MAINTAINERS: Add phy-gs101-ufs file to Tensor GS101.)
Merging soundwire/next (4cd5ea6de156 soundwire: intel_init: resume all devices on exit.)
Merging extcon/extcon-next (abe83c4e5e4f extcon: realtek: Remove unused of_gpio.h)
Merging gnss/gnss-next (54be6c6c5ae8 Linux 6.8-rc3)
Merging vfio/next (7447d911af69 vfio/fsl-mc: Block calling interrupt handler without trigger)
Merging w1/for-next (cde37a5bdb0e w1: gpio: Don't use "proxy" headers)
Merging spmi/spmi-next (897268aef3fa spmi: pmic-arb: Replace three IS_ERR() calls by null pointer checks in spmi_pmic_arb_probe())
Merging staging/staging-next (18f44de63f88 staging: greybus: change strncpy() to strscpy_pad())
Merging counter-next/counter-next (916baadd293a counter: ti-ecap-capture: Utilize COUNTER_COMP_FREQUENCY macro)
Merging siox/siox/for-next (db418d5f1ca5 siox: bus-gpio: Simplify using devm_siox_* functions)
Merging mux/for-next (44c026a73be8 Linux 6.4-rc3)
Merging dmaengine/next (4665be0e952f dmaengine: pch_dma: remove unused function chan2parent)
Merging cgroup/for-next (a24e3b7d27c6 docs: cgroup-v1: Fix description for css_online)
Merging scsi/for-next (99033e81ab05 Merge branch 'fixes' into for-next)
Merging scsi-mkp/for-next (8e50d1ee8f4c Merge patch series "convert SCSI to atomic queue limits, part 1 (v3)")
$ git reset --hard HEAD^
Merging next-20240411 version of scsi-mkp
Merging vhost/linux-next (5b9f214d0540 vhost: Merge tag 'vduse-virtio-net' into vhost)
Merging rpmsg/for-next (4d5aabb68439 Merge branches 'rpmsg-next' and 'rproc-next' into for-next)
Merging gpio/for-next (0bb80ecc33a8 Linux 6.6-rc1)
Merging gpio-brgl/gpio/for-next (1685f72a6dcc gpiolib: Do not mention legacy GPIOF_* in the code)
Merging gpio-intel/for-next (d8a26a18d971 gpiolib: acpi: Check for errors first in acpi_find_gpio())
Merging pinctrl/for-next (07bd48cca03b Merge branch 'devel' into for-next)
Merging pinctrl-intel/for-next (5d10a157ebe0 pinctrl: baytrail: Add pinconf group for uart3)
Merging pinctrl-renesas/renesas-pinctrl (aa43c15a790c pinctrl: renesas: rzg2l: Execute atomically the interrupt configuration)
Merging pinctrl-samsung/for-next (4184e4912ca6 dt-bindings: pinctrl: samsung: drop unused header with register constants)
Merging pwm/pwm/for-next (858fbbf538a6 pwm: bcm2835: Drop open coded variant of devm_clk_rate_exclusive_get())
Merging ktest/for-next (07283c1873a4 ktest: force $buildonly = 1 for 'make_warnings_file' test type)
Merging kselftest/next (4f4ade6863ce selftests/clone3: Correct log message for waitpid() failures)
CONFLICT (content): Merge conflict in tools/testing/selftests/timers/valid-adjtimex.c
Merging kunit/test (4cece7649650 Linux 6.9-rc1)
Merging kunit-next/kunit (82b0beff3497 kunit: Add tests for fault)
Merging livepatching/for-next (602bf1830798 Merge branch 'for-6.7' into for-next)
Merging rtc/rtc-next (8b59a11fb8e6 rtc: nuvoton: Modify part number value)
Merging nvdimm/libnvdimm-for-next (d9212b35da52 dax: remove SLAB_MEM_SPREAD flag usage)
Merging at24/at24/for-next (4cece7649650 Linux 6.9-rc1)
Merging ntb/ntb-next (9341b37ec17a ntb_perf: Fix printk format)
Merging seccomp/for-next/seccomp (39cd87c4eb2b Linux 6.9-rc2)
Merging fsi/next (c5eeb63edac9 fsi: Fix panic on scom file read)
Merging slimbus/for-next (b12bd525ca6e slimbus: qcom-ngd-ctrl: Add timeout for wait operation)
Merging nvmem/for-next (ea8f9ec2bbb7 nvmem: core: switch to use device_add_groups())
Merging xarray/main (2a15de80dd0f idr: fix param name in idr_alloc_cyclic() doc)
Merging hyperv/hyperv-next (f2580a907e5c x86/hyperv: Use Hyper-V entropy to seed guest random number generator)
Merging auxdisplay/for-next (93ee235f55d3 auxdisplay: charlcd: Don't rebuild when CONFIG_PANEL_BOOT_MESSAGE=y)
Merging kgdb/kgdb/for-next (4f41d30cd6dc kdb: Fix a potential buffer overflow in kdb_local())
Merging hmm/hmm (6613476e225e Linux 6.8-rc1)
Merging cfi/cfi/next (06c2afb862f9 Linux 6.5-rc1)
Merging mhi/mhi-next (813e0ae613d6 bus: mhi: host: Add mhi_power_down_keep_dev() API to support system suspend/hibernation)
Merging memblock/for-next (2159bd4e9057 memblock: Return NUMA_NO_NODE instead of -1 to improve code readability)
Merging cxl/next (ed1ff2fba7af Merge branch 'for-6.9/cxl-einj' into for-6.9/cxl)
Merging zstd/zstd-next (3f832dfb8a8e zstd: fix g_debuglevel export warning)
Merging efi/next (bf87a149828e efi: Clear up misconceptions about a maximum variable name size)
Merging unicode/for-next (0131c1f3cce7 unicode: make utf8 test count static)
Merging slab/slab/for-next (5aa5c7b9a09d mm/slub: remove duplicate initialization for early_kmem_cache_node_alloc())
Merging random/master (4cece7649650 Linux 6.9-rc1)
Merging landlock/next (028243655456 fs/ioctl: Add a comment to keep the logic in sync with LSM policies)
Merging rust/rust-next (8db31d3f3bd5 rust: workqueue: add `#[pin_data]` to `Work`)
Merging sysctl/sysctl-next (4f1136a55dc8 scripts: check-sysctl-docs: handle per-namespace sysctls)
Merging execve/for-next/execve (c82389947d90 tracing: Add sched_prepare_exec tracepoint)
Merging bitmap/bitmap-for-next (fd8ed16c2419 bitmap: Step down as a reviewer)
Merging hte/for-next (b85ea95d0864 Linux 6.7-rc1)
Merging kspp/for-next/kspp (9c573cd31343 randomize_kstack: Improve entropy diffusion)
Merging kspp-gustavo/for-next/kspp (6613476e225e Linux 6.8-rc1)
Merging nolibc/nolibc (4cece7649650 Linux 6.9-rc1)
Merging tsm/tsm-next (f4738f56d1dc virt: tdx-guest: Add Quote generation support using TSM_REPORTS)
Merging iommufd/for-next (4cece7649650 Linux 6.9-rc1)
Merging header_cleanup/header_cleanup (5f4c01f1e3c7 spinlock: Fix failing build for PREEMPT_RT)
Applying: fixup for "mm: swap: introduce swap_free_nr() for batched swap_free()"

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[relevance 2%]

* Re: [PATCH v3 0/3] RDMA/mana_ib: Add flex array to struct mana_cfg_rx_steer_req_v2
  2024-04-06 14:23  7% [PATCH v3 0/3] RDMA/mana_ib: Add flex array to struct mana_cfg_rx_steer_req_v2 Erick Archer
  2024-04-08 11:07  0% ` Leon Romanovsky
@ 2024-04-11 14:50  6% ` patchwork-bot+netdevbpf
  1 sibling, 0 replies; 200+ results
From: patchwork-bot+netdevbpf @ 2024-04-11 14:50 UTC (permalink / raw)
  To: Erick Archer
  Cc: longli, sharmaajay, kys, haiyangz, wei.liu, decui, davem,
	edumazet, kuba, pabeni, keescook, gustavoars, nathan,
	ndesaulniers, morbo, justinstitt, jgg, leon, shradhagupta,
	kotaranov, linux-rdma, linux-hyperv, netdev, linux-kernel,
	linux-hardening, llvm

Hello:

This series was applied to netdev/net-next.git (main)
by Leon Romanovsky <leon@kernel.org>:

On Sat,  6 Apr 2024 16:23:34 +0200 you wrote:
> The "struct mana_cfg_rx_steer_req_v2" uses a dynamically sized set of
> trailing elements. Specifically, it uses a "mana_handle_t" array. So,
> use the preferred way in the kernel declaring a flexible array [1].
> 
> At the same time, prepare for the coming implementation by GCC and Clang
> of the __counted_by attribute. Flexible array members annotated with
> __counted_by can have their accesses bounds-checked at run-time via
> CONFIG_UBSAN_BOUNDS (for array indexing) and CONFIG_FORTIFY_SOURCE (for
> strcpy/memcpy-family functions).
> 
> [...]

Here is the summary with links:
  - [v3,1/3] net: mana: Add flex array to struct mana_cfg_rx_steer_req_v2
    https://git.kernel.org/netdev/net-next/c/bfec4e18f943
  - [v3,2/3] RDMA/mana_ib: Prefer struct_size over open coded arithmetic
    https://git.kernel.org/netdev/net-next/c/29b8e13a8b4c
  - [v3,3/3] net: mana: Avoid open coded arithmetic
    https://git.kernel.org/netdev/net-next/c/a68292eb4316

You are awesome, thank you!
-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html



^ permalink raw reply	[relevance 6%]

* linux-next: Tree for Apr 11
@ 2024-04-11  6:27  1% Stephen Rothwell
  0 siblings, 0 replies; 200+ results
From: Stephen Rothwell @ 2024-04-11  6:27 UTC (permalink / raw)
  To: Linux Next Mailing List; +Cc: Linux Kernel Mailing List

[-- Attachment #1: Type: text/plain, Size: 38365 bytes --]

Hi all,

Changes since 20240410:

The net tree gained a build failure, so I used the version from
next-20240410.

The perf tree still had its build failure, but doing a clean then
rebuilding works.

The risc-v tree gained a conflict against the rust-fixes tree.

The riscv-dt tree gained a conflict against the risc-v tree.

The hid tree gained a build failure so I used the version from
next-20240410.

The net-next tree still had its build failure for which I reverted a commit.

The tip tree lost its build failure.

The tty tree gained a conflict against the tty.current tree and a build
failure, so I used the version from next-20240410.

Non-merge commits (relative to Linus' tree): 4755
 4879 files changed, 186736 insertions(+), 120339 deletions(-)

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

I have created today's linux-next tree at
git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
(patches at http://www.kernel.org/pub/linux/kernel/next/ ).  If you
are tracking the linux-next tree using git, you should not use "git pull"
to do so as that will try to merge the new linux-next release with the
old one.  You should use "git fetch" and checkout or reset to the new
master.

You can see which trees have been included by looking in the Next/Trees
file in the source.  There is also the merge.log file in the Next
directory.  Between each merge, the tree was built with a ppc64_defconfig
for powerpc, an allmodconfig for x86_64, a multi_v7_defconfig for arm
and a native build of tools/perf. After the final fixups (if any), I do
an x86_64 modules_install followed by builds for x86_64 allnoconfig,
powerpc allnoconfig (32 and 64 bit), ppc44x_defconfig, allyesconfig
and pseries_le_defconfig and i386, arm64, s390, sparc and sparc64
defconfig and htmldocs. And finally, a simple boot test of the powerpc
pseries_le_defconfig kernel in qemu (with and without kvm enabled).

Below is a summary of the state of the merge.

I am currently merging 369 trees (counting Linus' and 103 trees of bug
fix patches pending for the current merge release).

Stats about the size of the tree over time can be seen at
http://neuling.org/linux-next-size.html .

Status of my local build tests will be at
http://kisskb.ellerman.id.au/linux-next .  If maintainers want to give
advice about cross compilers/configs that work, we are always open to add
more builds.

Thanks to Randy Dunlap for doing many randconfig builds.  And to Paul
Gortmaker for triage and bug fixes.

-- 
Cheers,
Stephen Rothwell

$ git checkout master
$ git reset --hard stable
Merging origin/master (9875c0beb8ad Merge tag 'media/v6.9-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media)
Merging fixes/fixes (2dde18cd1d8f Linux 6.5)
Merging mm-hotfixes/mm-hotfixes-unstable (12ee0bb78565 mm,swapops: update check in is_pfn_swap_entry for hwpoison entries)
Merging kbuild-current/fixes (89e5462bb5ae kconfig: Fix typo HEIGTH to HEIGHT)
Merging arc-current/for-curr (ebfc2fd8873b ARC: Fix typos)
Merging arm-current/fixes (0c66c6f4e21c ARM: 9359/1: flush: check if the folio is reserved for no-mapping addresses)
Merging arm64-fixes/for-next/fixes (e3ba51ab24fd arm64: tlb: Fix TLBI RANGE operand)
Merging arm-soc-fixes/arm/fixes (011d79ef1cfa MAINTAINERS: Change Krzysztof Kozlowski's email address)
Merging davinci-current/davinci/for-current (6613476e225e Linux 6.8-rc1)
Merging drivers-memory-fixes/fixes (4cece7649650 Linux 6.9-rc1)
Merging sophgo-fixes/fixes (4cece7649650 Linux 6.9-rc1)
Merging m68k-current/for-linus (e8a7824856de m68k: defconfig: Update defconfigs for v6.8-rc1)
Merging powerpc-fixes/fixes (36ba64b4cbc6 selftests/powerpc/papr-vpd: Fix missing variable initialization)
Merging s390-fixes/fixes (378ca2d2ad41 s390/entry: align system call table on 8 bytes)
Merging fscrypt-current/for-current (4cece7649650 Linux 6.9-rc1)
Merging fsverity-current/for-current (4cece7649650 Linux 6.9-rc1)
Merging net/main (19fa4f2a85d7 r8169: fix LED-related deadlock on module removal)
$ git reset --hard HEAD^
Merging next-20240410 version of net
Merging bpf/master (6648e613226e bpf, skmsg: Fix NULL pointer dereference in sk_psock_skb_ingress_enqueue)
Merging ipsec/master (bccb798e07f8 octeontx2-pf: Fix transmit scheduler resource leak)
Merging netfilter/main (1bc83a019bbe netfilter: nf_tables: discard table flag update with pending basechain deletion)
Merging ipvs/main (7eaf837a4eb5 netfilter: nf_tables: Fix a memory leak in nf_tables_updchain)
Merging wireless/for-next (9ef369973cd2 wifi: cfg80211: fix the order of arguments for trace events of the tx_rx_evt class)
Merging wpan/master (b85ea95d0864 Linux 6.7-rc1)
Merging rdma-fixes/for-rc (b68e1acb5834 RDMA/cm: Print the old state when cm_destroy_id gets timeout)
Merging sound-current/for-linus (0b6f0ff01a4a ALSA: hda/tas2781: correct the register for pow calibrated data)
Merging sound-asoc-fixes/for-linus (2e411e939da9 ASoC: cs35l56: Fixes to handling of ASP1 config)
Merging regmap-fixes/for-linus (fec50db7033e Linux 6.9-rc3)
Merging regulator-fixes/for-linus (68adb581a39a regulator: vqmmc-ipq4019: fix module autoloading)
Merging spi-fixes/for-linus (fec50db7033e Linux 6.9-rc3)
Merging pci-current/for-linus (302b84e84d10 Revert "PCI: Mark LSI FW643 to avoid bus reset")
Merging driver-core.current/driver-core-linus (4cece7649650 Linux 6.9-rc1)
Merging tty.current/tty-linus (9cf7ea2eeb74 serial: core: Clearing the circular buffer before NULLifying it)
Merging usb.current/usb-linus (eed04fa96c48 usb: dwc2: host: Fix dereference issue in DDMA completion flow.)
Merging usb-serial-fixes/usb-linus (d206a76d7d27 Linux 6.8-rc6)
Merging phy/fixes (47b3e2f3914a phy: qcom: m31: match requested regulator name with dt schema)
Merging staging.current/staging-linus (39cd87c4eb2b Linux 6.9-rc2)
Merging iio-fixes/fixes-togreg (74a72baf204f iio:imu: adis16475: Fix sync mode setting)
Merging counter-current/counter-current (39cd87c4eb2b Linux 6.9-rc2)
Merging char-misc.current/char-misc-linus (fec50db7033e Linux 6.9-rc3)
Merging soundwire-fixes/fixes (63dc588e7af1 soundwire: amd: fix for wake interrupt handling for clockstop mode)
Merging thunderbolt-fixes/fixes (dcd12acaf384 thunderbolt: Avoid notify PM core about runtime PM resume)
Merging input-current/for-linus (57ed9567e63b Merge branch 'next' into for-linus)
Merging crypto-current/master (5a7e89d3315d crypto: iaa - Fix nr_cpus < nr_iaa case)
Merging vfio-fixes/for-linus (4ea95c04fa6b vfio: Drop vfio_file_iommu_group() stub to fudge around a KVM wart)
Merging kselftest-fixes/fixes (72d7cb5c190b selftests/harness: Prevent infinite loop due to Assert in FIXTURE_TEARDOWN)
Merging dmaengine-fixes/fixes (f221033f5c24 dmaengine: idxd: Fix oops during rmmod on single-CPU platforms)
Merging backlight-fixes/for-backlight-fixes (6613476e225e Linux 6.8-rc1)
Merging mtd-fixes/mtd/fixes (21c9fb611c25 mtd: diskonchip: work around ubsan link failure)
Merging mfd-fixes/for-mfd-fixes (6613476e225e Linux 6.8-rc1)
Merging v4l-dvb-fixes/fixes (d353c3c34af0 media: mediatek: vcodec: support 36 bits physical address)
Merging reset-fixes/reset/fixes (4a6756f56bcf reset: Fix crash when freeing non-existent optional resets)
Merging mips-fixes/mips-fixes (4370b673ccf2 MIPS: scall: Save thread_info.syscall unconditionally on entry)
Merging at91-fixes/at91-fixes (4cece7649650 Linux 6.9-rc1)
Merging omap-fixes/fixes (9b6a51aab5f5 ARM: dts: Fix occasional boot hang for am3 usb)
Merging kvm-fixes/master (9bc60f733839 Merge tag 'kvm-riscv-fixes-6.9-1' of https://github.com/kvm-riscv/linux into HEAD)
Merging kvms390-fixes/master (83303a4c776c KVM: s390: fix cc for successful PQAP)
Merging hwmon-fixes/hwmon (4cece7649650 Linux 6.9-rc1)
Merging nvdimm-fixes/libnvdimm-fixes (33908660e814 ACPI: NFIT: Fix incorrect calculation of idt size)
Merging cxl-fixes/fixes (7bcf809b1e78 cxl: Add checks to access_coordinate calculation to fail missing data)
Merging btrfs-fixes/next-fixes (07475cc36e03 Merge branch 'misc-6.9' into next-fixes)
Merging vfs-fixes/fixes (aa23317d0268 qibfs: fix dentry leak)
Merging dma-mapping-fixes/for-linus (d5090484b021 swiotlb: do not try to allocate a TLB bigger than MAX_ORDER pages)
Merging drivers-x86-fixes/fixes (e71c84816925 platform/x86: lg-laptop: fix %s null argument warning)
Merging samsung-krzk-fixes/fixes (4cece7649650 Linux 6.9-rc1)
Merging pinctrl-samsung-fixes/fixes (4cece7649650 Linux 6.9-rc1)
Merging devicetree-fixes/dt/linus (de164a7f1924 nios2: Only use built-in devicetree blob if configured to do so)
Merging dt-krzk-fixes/fixes (4cece7649650 Linux 6.9-rc1)
Merging scsi-fixes/fixes (ca91259b775f scsi: core: Fix handling of SCMD_FAIL_IF_RECOVERING)
Merging drm-fixes/drm-fixes (718c4fb221db nouveau: fix devinit paths to only handle display on GSP.)
Merging drm-intel-fixes/for-linux-next-fixes (dcd8992e47f1 drm/i915/vrr: Disable VRR when using bigjoiner)
Merging mmc-fixes/fixes (ace323f80b9b mmc: sdhci-of-dwcmshc: th1520: Increase tuning loop count to 128)
Merging rtc-fixes/rtc-fixes (4cece7649650 Linux 6.9-rc1)
Merging gnss-fixes/gnss-linus (54be6c6c5ae8 Linux 6.8-rc3)
Merging hyperv-fixes/hyperv-fixes (30d18df6567b Drivers: hv: vmbus: Don't free ring buffers that couldn't be re-encrypted)
Merging soc-fsl-fixes/fix (06c2afb862f9 Linux 6.5-rc1)
Merging risc-v-fixes/fixes (a373a36fb6b0 Merge patch the fixes from "riscv: 64-bit NOMMU fixes and enhancements")
Merging riscv-dt-fixes/riscv-dt-fixes (0f74c64f0a9f riscv: dts: starfive: Remove PMIC interrupt info for Visionfive 2 board)
Merging riscv-soc-fixes/riscv-soc-fixes (c90847bcbfb6 cache: sifive_ccache: Partially convert to a platform driver)
Merging fpga-fixes/fixes (4cece7649650 Linux 6.9-rc1)
Merging spdx/spdx-linus (4cece7649650 Linux 6.9-rc1)
Merging gpio-brgl-fixes/gpio/for-current (e43c2feb8f32 Merge tag 'intel-gpio-v6.9-1' of git://git.kernel.org/pub/scm/linux/kernel/git/andy/linux-gpio-intel into gpio/for-current)
Merging gpio-intel-fixes/fixes (ace0ebe5c98d gpio: crystalcove: Use -ENOTSUPP consistently)
Merging pinctrl-intel-fixes/fixes (5d10a157ebe0 pinctrl: baytrail: Add pinconf group for uart3)
Merging auxdisplay-fixes/fixes (4cece7649650 Linux 6.9-rc1)
Merging erofs-fixes/fixes (7557d296ad43 MAINTAINERS: erofs: add myself as reviewer)
Merging kunit-fixes/kunit-fixes (cfedfb24c9dd kunit: configs: Enable CONFIG_DAMON_DBGFS_DEPRECATED for --alltests)
Merging memblock-fixes/fixes (592447f6cb3c memblock tests: fix undefined reference to `BIT')
Merging nfsd-fixes/nfsd-fixes (10396f4df8b7 nfsd: hold a lighter-weight client reference over CB_RECALL_ANY)
Merging renesas-fixes/fixes (8c987693dc2d ARM: dts: renesas: rcar-gen2: Add missing #interrupt-cells to DA9063 nodes)
Merging perf-current/perf-tools (25e973a0e077 perf annotate: Make sure to call symbol__annotate2() in TUI)
Merging efi-fixes/urgent (decd347c2a75 x86/efistub: Reinstate soft limit for initrd loading)
Merging zstd-fixes/zstd-linus (77618db34645 zstd: Fix array-index-out-of-bounds UBSAN warning)
Merging battery-fixes/fixes (452d8950db3e power: rt9455: hide unused rt9455_boost_voltage_values)
Merging uml-fixes/fixes (73a23d771033 um: harddog: fix modular build)
Merging iommufd-fixes/for-rc (39cd87c4eb2b Linux 6.9-rc2)
Merging rust-fixes/rust-fixes (761a8f0a776b rust: make mutually exclusive with CFI_CLANG)
Merging v9fs-fixes/fixes/next (7a84602297d3 9p: explicitly deny setlease attempts)
Merging w1-fixes/fixes (4cece7649650 Linux 6.9-rc1)
Merging pmdomain-fixes/fixes (39cd87c4eb2b Linux 6.9-rc2)
Merging overlayfs-fixes/ovl-fixes (77a28aa47687 ovl: relax WARN_ON in ovl_verify_area())
Merging i2c-host-fixes/i2c/i2c-host-fixes (fec50db7033e Linux 6.9-rc3)
Merging sparc-fixes/for-linus (6613476e225e Linux 6.8-rc1)
Merging clk-fixes/clk-fixes (754e5287c7d5 Merge branch 'clk-rpm' into clk-fixes)
Merging drm-misc-fixes/for-linux-next-fixes (4c08f01934ab drm/vmwgfx: Enable DMA mappings with SEV)
Merging mm-stable/mm-stable (4e2e36129225 Merge branch 'master' into mm-stable)
Merging mm-nonmm-stable/mm-nonmm-stable (39cd87c4eb2b Linux 6.9-rc2)
Merging mm/mm-everything (b8a0eda144c2 Merge branch 'mm-nonmm-unstable' into mm-everything)
CONFLICT (content): Merge conflict in arch/x86/mm/numa_32.c
Merging kbuild/for-next (bfa8f18691ed Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi)
Merging clang-format/clang-format (5a205c6a9f79 clang-format: Update with v6.7-rc4's `for_each` macro list)
Merging perf/perf-tools-next (9c3e9af74326 perf metrics: Remove the "No_group" metric group)
Merging compiler-attributes/compiler-attributes (2993eb7a8d34 Compiler Attributes: counted_by: fixup clang URL)
Merging dma-mapping/for-next (a1255ccab8ec swiotlb: do not set total_used to 0 in swiotlb_create_debugfs_files())
Merging asm-generic/master (5394f1e9b687 arch: define CONFIG_PAGE_SIZE_*KB on all architectures)
Merging arc/for-next (0bb80ecc33a8 Linux 6.6-rc1)
Merging arm/for-next (5616fee8981b Merge branches 'misc' and 'fixes' into for-next)
Merging arm64/for-next/core (fec50db7033e Linux 6.9-rc3)
Merging arm-perf/for-next/perf (8f9f5041c646 perf/arm-cmn: Set PMU device parent)
Merging arm-soc/for-next (011d79ef1cfa MAINTAINERS: Change Krzysztof Kozlowski's email address)
Merging amlogic/for-next (4ee46d40d625 Merge branch 'v6.10/arm64-dt' into for-next)
Merging asahi-soc/asahi-soc/for-next (ffc253263a13 Linux 6.6)
Merging aspeed/for-next (0c30853731ec ARM: dts: aspeed: x4tf: Add dts for asus x4tf project)
Merging at91/at91-next (fa8e55345b64 Merge branch 'microchip-dt64' into at91-next)
Merging broadcom/next (ebe9ff485efc Merge branch 'drivers/next' into next)
Merging davinci/davinci/for-next (6613476e225e Linux 6.8-rc1)
Merging drivers-memory/for-next (e23359d88a81 dt-bindings: memory-controllers: add Samsung S5Pv210 SoC DMC)
Merging imx-mxs/for-next (6cf256f63478 Merge branch 'imx/defconfig' into for-next)
Merging mediatek/for-next (d5eba7ed3ce9 Merge branch 'v6.9-next/dts64' into for-next)
Merging mvebu/for-next (058bfa0ead87 arm64: dts: marvell: cn9130-crb: drop unneeded "status")
Merging omap/for-next (2a1e301bf479 Merge branch 'omap-for-v6.10/dt' into for-next)
Merging qcom/for-next (3cd1977804fb Merge branches 'arm32-for-6.10', 'arm64-defconfig-for-6.10', 'arm64-for-6.10', 'clk-fixes-for-6.9' and 'drivers-for-6.10' into for-next)
Merging renesas/next (957eed54b7b6 Merge branch 'renesas-dts-for-v6.10' into renesas-next)
Merging reset/reset/next (6d89df61650d reset: ti-sci: Convert to platform remove callback returning void)
Merging rockchip/for-next (2d98359980ee Merge branch 'v6.10-clk/next' into for-next)
Merging samsung-krzk/for-next (b7b2fe24038b Merge branch 'next/dt64' into for-next)
Merging scmi/for-linux-next (26f0f850b2d9 Merge branch 'for-next/scmi/updates', tags 'ffa-fix-6.9' and 'scmi-fixes-6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux into for-linux-next)
Merging sophgo/for-next (89a7056ed4f7 riscv: dts: sophgo: add sdcard support for milkv duo)
Merging stm32/stm32-next (b12a916d30dc ARM: dts: stm32: add heartbeat led for stm32mp157c-ed1)
Merging sunxi/sunxi/for-next (c1d7282e4e92 Merge branch 'sunxi/dt-for-6.9' into sunxi/for-next)
Merging tee/next (60757f1264a2 Merge branch 'tee_ts_for_v6.10' into next)
Merging tegra/for-next (c85c30fad06d Merge branch for-6.9/arm64/dt into for-next)
Merging ti/ti-next (592695bed5f8 Merge branches 'ti-drivers-soc-next', 'ti-k3-dts-next' and 'ti-keystone-dts-next' into ti-next)
Merging xilinx/for-next (2d81f5ef567c Merge remote-tracking branch 'git/zynqmp/dt' into for-next)
Merging clk/clk-next (7869ec4a5f1b Merge branch 'clk-fixes' into clk-next)
Merging clk-imx/for-next (13269dc6c704 clk: imx: imx8mp: Fix SAI_MCLK_SEL definition)
Merging clk-renesas/renesas-clk (c0516eb4cf04 clk: renesas: r8a779h0: Add timer clocks)
Merging csky/linux-next (2c40c1c6adab Merge tag 'usb-6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb)
Merging loongarch/loongarch-next (a07c772fa658 LoongArch: Include linux/sizes.h in addrspace.h to prevent build errors)
  a07c772fa658 ("LoongArch: Include linux/sizes.h in addrspace.h to prevent build errors")
Merging m68k/for-next (70d830e337f9 m68k: Calculate THREAD_SIZE from THREAD_SIZE_ORDER)
Merging m68knommu/for-next (d677c24fccee m68k: Avoid CONFIG_COLDFIRE switch in uapi header)
Merging microblaze/next (6613476e225e Linux 6.8-rc1)
Merging mips/mips-next (4cece7649650 Linux 6.9-rc1)
Merging openrisc/for-next (7f1e2fc49348 openrisc: Use asm-generic's version of fix_to_virt() & virt_to_fix())
Merging parisc-hd/for-next (e8f897f4afef Linux 6.8)
Merging powerpc/next (8884fc918f6a powerpc: Fix fatal warnings flag for LLVM's integrated assembler)
Merging soc-fsl/next (fb9c384625dd bus: fsl-mc: fsl-mc-allocator: Drop a write-only variable)
Merging risc-v/for-next (ba5ea59f768f riscv: Do not save the scratch CSR during suspend)
  36d37f11f555 ("export.h: remove include/asm-generic/export.h")
CONFLICT (content): Merge conflict in Documentation/rust/arch-support.rst
Merging riscv-dt/riscv-dt-for-next (5db2c4dc413e riscv: dts: add initial canmv-k230 and k230-evb dts)
CONFLICT (content): Merge conflict in arch/riscv/Makefile
Merging riscv-soc/riscv-soc-for-next (16d9122246cc Merge branch 'riscv-config' into riscv-soc-for-next)
Merging s390/for-next (9fb83b5a1bdb Merge branch 'features' into for-next)
Merging sh/for-next (4cece7649650 Linux 6.9-rc1)
Merging sparc/for-next (84b76d05828a lib/fonts: Allow Sparc console 8x16 font for sparc64 early boot text console)
Merging uml/next (83aec96c631e um: Mark 32bit syscall helpers as clobbering memory)
Merging xtensa/xtensa-for-next (11cca8ccf2c3 tty: xtensa/iss: Use min() to fix Coccinelle warning)
Merging bcachefs/for-next (9b31152fd74e bcachefs: btree_node_scan: Respect member.data_allowed)
Merging pidfd/for-next (a901a3568fd2 Merge tag 'iomap-6.5-merge-1' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux)
Merging fscrypt/for-next (8c62f31eddb7 fscrypt: shrink the size of struct fscrypt_inode_info slightly)
Merging afs/afs-next (abcbd3bfbbfe afs: trace: Log afs_make_call(), including server address)
Merging btrfs/for-next (7218664bf91d Merge branch 'for-next-next-v6.9-20240409' into for-next-20240409)
Merging ceph/master (825b82f6b82a ceph: set correct cap mask for getattr request for read)
Merging cifs/for-next (bedddc9309fa smb: client: Fix hang in smb2_reconnect)
Merging configfs/for-next (4425c1d9b44d configfs: improve item creation performance)
Merging erofs/dev (b351756059e3 erofs: derive fsid from on-disk UUID for .statfs() if possible)
Merging exfat/dev (6397cc21e5c0 exfat: move extend valid_size into ->page_mkwrite())
Merging exportfs/exportfs-next (e8f897f4afef Linux 6.8)
Merging ext3/for_next (172dc02ca6ec Merge UDF time conversion fix.)
Merging ext4/dev (0ecae5410ab5 ext4: initialize sbi->s_freeclusters_counter and sbi->s_dirtyclusters_counter before use in kunit test)
Merging f2fs/dev (bf3a69c6861f Merge tag 'for-linus-6.9-ofs1' of git://git.kernel.org/pub/scm/linux/kernel/git/hubcap/linux)
Merging fsverity/for-next (8e43fb06e10d fsverity: remove hash page spin lock)
Merging fuse/for-next (cdf6ac2a03d2 fuse: get rid of ff->readdir.lock)
Merging gfs2/for-next (2613499753ca gfs2: Fix lru_count accounting)
Merging jfs/jfs-next (e42e29cc4423 Revert "jfs: fix shift-out-of-bounds in dbJoin")
Merging ksmbd/ksmbd-for-next (405ac6a57277 Merge tag '6.9-rc2-ksmbd-server-fixes' of git://git.samba.org/ksmbd)
Merging nfs/linux-next (24457f1be29f nfs: Handle error of rpc_proc_register() in nfs_net_init().)
Merging nfs-anna/linux-next (57331a59ac0d NFSv4.1: Use the nfs_client's rpc timeouts for backchannel)
Merging nfsd/nfsd-next (e5ca63b09c65 nfsd: optimise recalculate_deny_mode() for a common case)
Merging ntfs3/master (622cd3daa8ea fs/ntfs3: Slightly simplify ntfs_inode_printk())
Merging orangefs/for-next (9bf93dcfc453 Julia Lawall reported this null pointer dereference, this should fix it.)
Merging overlayfs/overlayfs-next (d17bb4620f90 overlayfs.rst: fix ReST formatting)
Merging ubifs/next (b8a77b9a5f9c mtd: ubi: fix NVMEM over UBI volumes on 32-bit systems)
Merging v9fs/9p-next (2a0505cdd8c8 9p: remove SLAB_MEM_SPREAD flag usage)
Merging v9fs-ericvh/ericvh/for-next (4cece7649650 Linux 6.9-rc1)
Merging xfs/for-next (e23d7e82b707 xfs: allow cross-linking special files without project quota)
Merging zonefs/for-next (567e629fd296 zonefs: convert zonefs to use the new mount api)
Merging iomap/iomap-for-next (3ac974796e5d iomap: fix short copy in iomap_write_iter())
Merging djw-vfs/vfs-for-next (ce85a1e04645 xfs: stabilize fs summary counters for online fsck)
Merging file-locks/locks-next (e0152e7481c6 Merge tag 'riscv-for-linus-6.6-mw1' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux)
Merging iversion/iversion-next (e0152e7481c6 Merge tag 'riscv-for-linus-6.6-mw1' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux)
Merging vfs-brauner/vfs.all (d94f52ebf44e Merge branch 'vfs.rw' into vfs.all)
Merging vfs/for-next (052d534373b7 Merge tag 'exfat-for-6.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/linkinjeon/exfat)
Merging printk/for-next (a2b4cab9da77 Merge branch 'for-6.10' into for-next)
Merging pci/next (ced360f2a021 Merge branch 'pci/dt-bindings')
Merging pstore/for-next/pstore (80b735d01bbb pstore/blk: replace deprecated strncpy with strscpy)
Merging hid/for-next (d7d4406ddd93 Merge branch 'for-6.10/hid-bpf' into for-next)
$ git reset --hard HEAD^
Merging next-20240410 version of hid
Merging i2c/i2c/for-next (5ceeabb0eb2e Merge tag 'i2c-host-fixes-6.9-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/andi.shyti/linux into i2c/for-current)
Merging i2c-host/i2c/i2c-host (a43939d2d96a i2c: ocores: convert to ioport_map() for IORESOURCE_IO)
Merging i3c/i3c/next (8f06fb458539 i3c: Make i3c_bus_type const)
Merging hwmon-staging/hwmon-next (db85dba9fee5 hwmon: (aspeed-g6-pwm-tach) Convert to platform remove callback returning void)
Merging jc_docs/docs-next (8819b60eed72 docs/zh_CN: Add dev-tools/kmemleak Chinese translation)
Merging v4l-dvb/master (b14257abe705 media: rcar-isp: Disallow unbind of devices)
Merging v4l-dvb-next/master (b14257abe705 media: rcar-isp: Disallow unbind of devices)
Merging pm/linux-next (9d16ca96a3b1 Merge branch 'pm-sleep' into linux-next)
Merging cpufreq-arm/cpufreq/arm/linux-next (4cece7649650 Linux 6.9-rc1)
Merging cpupower/cpupower (4cece7649650 Linux 6.9-rc1)
Merging devfreq/devfreq-next (6f3c0cfe2aa5 PM / devfreq: rk3399_dmc: Convert to platform remove callback returning void)
Merging pmdomain/next (02e2a4b3638c cpuidle: psci: Update init level to core_initcall())
Merging opp/opp/linux-next (4cece7649650 Linux 6.9-rc1)
Merging thermal/thermal/linux-next (1828c1c17bb2 thermal/drivers/rcar_gen3: Add support for R-Car V4M)
Merging dlm/next (92d59adfaf71 dlm: do message processing in softirq context)
Merging rdma/for-next (f10242b3da90 RDMA/mana_ib: Use struct mana_ib_queue for RAW QPs)
Merging net-next/main (414e576fb08f Merge branch 'selftests-move-bpf-offload-test-from-bpf-to-net')
Applying: Revert "tcp: more struct tcp_sock adjustments"
Merging bpf-next/for-next (d0a2ba197bcb selftests/bpf: Add tests for atomics in bpf_arena.)
Merging ipsec-next/master (267e31750ae8 Merge branch 'phy-listing-link_topology-tracking')
Merging mlx5-next/mlx5-next (d727d27db536 RDMA/mlx5: Expose register c0 for RDMA device)
Merging netfilter-next/main (ed1f164038b5 Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net)
Merging ipvs-next/main (ed1f164038b5 Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net)
Merging bluetooth/master (75fe062ce2c7 Bluetooth: add experimental BT_POLL_ERRQUEUE socket option)
Merging wireless-next/for-next (d26a0a66f929 wifi: brcmfmac: Fix spelling mistake "ivalid" -> "invalid")
Merging wpan-next/master (9187210eee7d Merge tag 'net-next-6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next)
Merging wpan-staging/staging (9187210eee7d Merge tag 'net-next-6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next)
Merging mtd/mtd/next (3ef4600f1226 mtd: maps: sa1100-flash: Prefer struct_size over open coded arithmetic)
Merging nand/nand/next (6819db94e1cd mtd: rawnand: hynix: fixed typo)
Merging spi-nor/spi-nor/next (4cece7649650 Linux 6.9-rc1)
Merging crypto/master (4ad27a8be9db crypto: jitter - Replace http with https)
Merging drm/drm-next (1f913730e7c7 Merge tag 'drm-misc-next-2024-04-05' of https://gitlab.freedesktop.org/drm/misc/kernel into drm-next)
Merging drm-exynos/for-linux-next (6633c7d2fd31 drm/exynos: mixer: drop driver owner initialization)
Merging drm-misc/for-linux-next (fe6660b661c3 drm/nouveau/dp: Don't probe eDP ports twice harder)
Merging amdgpu/drm-next (526b184e8883 drm/amdgpu: differentiate external rev id for gfx 11.5.0)
CONFLICT (content): Merge conflict in drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
CONFLICT (content): Merge conflict in drivers/gpu/drm/amd/display/dc/clk_mgr/dcn35/dcn35_clk_mgr.c
CONFLICT (content): Merge conflict in drivers/gpu/drm/amd/display/dc/core/dc.c
CONFLICT (content): Merge conflict in drivers/gpu/drm/amd/display/dc/dml/dcn351/dcn351_fpu.c
CONFLICT (content): Merge conflict in drivers/gpu/drm/amd/pm/swsmu/inc/pmfw_if/smu_v14_0_0_ppsmc.h
Merging drm-intel/for-linux-next (8f6372a4d690 drm/i915/mtl: Add DP FEC BS jitter WA)
CONFLICT (content): Merge conflict in drivers/gpu/drm/i915/display/intel_cdclk.c
CONFLICT (content): Merge conflict in drivers/gpu/drm/i915/display/intel_psr.c
Merging drm-tegra/for-next (2429b3c529da drm/tegra: Avoid potential 32-bit integer overflow)
Merging drm-msm/msm-next (9dc23cba0927 drm/msm/adreno: Set highest_bank_bit for A619)
Merging drm-msm-lumag/msm-next-lumag (ab556156cafa drm/msm: drop A6xx header)
Merging drm-xe/drm-xe-next (ac321eb46e85 drm/xe: Add xe_guc_ads.c to uses_generated_oob)
CONFLICT (content): Merge conflict in drivers/gpu/drm/xe/xe_bo.c
CONFLICT (content): Merge conflict in drivers/gpu/drm/xe/xe_device_types.h
CONFLICT (content): Merge conflict in drivers/gpu/drm/xe/xe_exec.c
CONFLICT (content): Merge conflict in drivers/gpu/drm/xe/xe_vm.c
CONFLICT (content): Merge conflict in include/uapi/drm/xe_drm.h
Merging etnaviv/etnaviv/next (b735ee173f84 drm/etnaviv: Restore some id values)
Merging fbdev/for-next (fb3b9c2d217f video: logo: Drop full path of the input filename in generated file)
Merging regmap/for-next (8a8317f92770 regmap: kunit: Add some test cases and a few small)
Merging sound/for-next (a9b16d591874 Merge branch 'topic/emu10k1-fix' into for-next)
Merging ieee1394/for-next (0d4149e5e9b0 firewire: ohci: use pci_irq_vector() to retrieve allocated interrupt line)
Merging sound-asoc/for-next (6500db441480 Merge remote-tracking branch 'asoc/for-6.10' into asoc-next)
Merging modules/modules-next (d1909c022173 module: Don't ignore errors from set_memory_XX())
Merging input/next (8984e0b56923 Input: adafruit-seesaw - only report buttons that changed state)
Merging block/for-next (ab067438bbfb Merge branch 'for-6.10/io_uring' into for-next)
CONFLICT (content): Merge conflict in io_uring/io_uring.c
CONFLICT (content): Merge conflict in io_uring/rw.c
Applying: fix up for "mm: switch mm->get_unmapped_area() to a flag"
Merging device-mapper/for-next (6bd1e0b331dd dm-crypt: export sysfs of all workqueues)
Merging libata/for-next (dcf2653ac12f dt-bindings: ata: ahci-da850: Convert to dtschema)
Merging pcmcia/pcmcia-next (ccae53aa8aa2 pcmcia: cs: make pcmcia_socket_class constant)
Merging mmc/next (bce42d6108c9 mmc: Merge branch fixes into next)
Merging mfd/for-mfd-next (e42199bf13d4 mfd: intel-lpss: Switch over to MSI interrupts)
CONFLICT (content): Merge conflict in drivers/mfd/intel-lpss-pci.c
Merging backlight/for-backlight-next (946ced827e6c backlight: mp3309c: Fix signedness bug in mp3309c_parse_fwnode())
Merging battery/for-next (50f0ff7c8cc4 power: supply: bq27xxx: Move health reading out of update loop)
Merging regulator/for-next (15f992fa81eb Merge remote-tracking branch 'regulator/for-6.10' into regulator-next)
Merging security/next (4cece7649650 Linux 6.9-rc1)
Merging apparmor/apparmor-next (8ead196be219 apparmor: Fix memory leak in unpack_profile())
Merging integrity/next-integrity (5e2e4d0ea5c2 evm: Rename is_unsupported_fs to is_unsupported_hmac_fs)
Merging selinux/next (d6fc1ee0b6c1 Automated merge of 'dev' into 'next')
Merging smack/next (69b6d71052b5 Smack: use init_task_smack() in smack_cred_transfer())
Merging tomoyo/master (0bb80ecc33a8 Linux 6.6-rc1)
Merging tpmdd/next (6999f8229e59 keys: Fix overwrite of key expiration on instantiation)
Merging watchdog/master (6fe5aabf7fc6 watchdog: intel-mid_wdt: Get platform data via dev_get_platdata())
Merging iommu/next (c404f55c26fc iommu: Validate the PASID in iommu_attach_device_pasid())
Merging audit/next (4cece7649650 Linux 6.9-rc1)
Merging devicetree/for-next (cc8940a01557 dt-bindings: usb: mtk-xhci: add compatible for MT7988)
  680ee54f272e ("dt-bindings: PCI: rockchip,rk3399-pcie: add missing maxItems to ep-gpios")
Merging dt-krzk/for-next (364be3ecd30d Merge branch 'next/dt' into for-next)
Merging mailbox/for-next (8df6bab6cb9a mailbox: imx: support i.MX95 Generic/ELE/V2X MU)
Merging spi/for-next (f0884837d837 Merge remote-tracking branch 'spi/for-6.10' into spi-next)
Merging tip/master (a32eb217ad73 Merge branch into tip/master: 'x86/shstk')
Merging clockevents/timers/drivers/next (8248ca30ef89 clocksource/drivers/timer-riscv: Clear timer interrupt on timer initialization)
Merging edac/edac-for-next (8e95536e9495 Merge branch ras/edac-misc into for-next)
Merging ftrace/for-next (7604256cecef tracing: Add __string_src() helper to help compilers not to get confused)
Merging rcu/rcu/next (8942ebe9e183 rcutorture: Make rcutorture support srcu double call test)
Merging kvm/next (9bc60f733839 Merge tag 'kvm-riscv-fixes-6.9-1' of https://github.com/kvm-riscv/linux into HEAD)
Merging kvm-arm/next (29b0075ed61c KVM: selftests: Fix __GUEST_ASSERT() format warnings in ARM's arch timer test)
Merging kvms390/next (00de073e2420 KVM: s390: selftest: memop: Fix undefined behavior)
Merging kvm-ppc/topic/ppc-kvm (41bccc98fb79 Linux 6.8-rc2)
Merging kvm-riscv/riscv_kvm_next (8e936e98718f RISC-V: KVM: Fix APLIC in_clrip[x] read emulation)
Merging kvm-x86/next (f10f3621ad80 Merge branches 'fixes', 'generic', 'misc', 'mmu', 'selftests', 'svm' and 'vmx')
Merging xen-tip/linux-next (d277f9d82802 xen/events: increment refcnt only if event channel is refcounted)
Merging percpu/for-next (2d9ad81ef935 Merge branch 'for-6.8-fixes' into for-next)
Merging workqueues/for-next (8a8a4bfdbe85 Merge branch 'for-6.10' into for-next)
Merging drivers-x86/for-next (88c0ef69dd88 platform/x86: asus-wmi: cleanup main struct to avoid some holes)
Merging chrome-platform/for-next (70a5f3005008 platform/chrome: cros_ec_lpc: add quirks for the Framework Laptop (AMD))
Merging chrome-platform-firmware/for-firmware-next (7f20f21c22aa firmware: google: cbmem: drop driver owner initialization)
Merging hsi/for-next (4cece7649650 Linux 6.9-rc1)
Merging leds-lj/for-leds-next (ca66b10a11da leds: simatic-ipc-leds-gpio: Add support for module BX-59A)
Merging ipmi/for-next (739bf2135f87 char: ipmi: handle HAS_IOPORT dependencies)
Merging driver-core/driver-core-next (0bb322be5d38 driver core: Remove unused platform_notify, platform_notify_remove)
Merging usb/usb-next (1a395af9d53c usb: typec: ucsi_glink: drop special handling for CCI_BUSY)
Merging thunderbolt/next (9a966517a830 thunderbolt: Enable NVM upgrade support on Intel Maple Ridge)
Merging usb-serial/usb-next (b1a8da9ff139 USB: serial: cp210x: add pid/vid for TDK NC0110013M and MM0110113M)
Merging tty/tty-next (fff4a5d5609d serial: ar933x: Remove unneeded static structure)
CONFLICT (content): Merge conflict in drivers/tty/serial/serial_core.c
$ git reset --hard HEAD^
Merging next-20240410 version of tty
Merging char-misc/char-misc-next (fec50db7033e Linux 6.9-rc3)
Merging accel/habanalabs-next (576d7cc5a9e2 accel: constify the struct device_type usage)
Merging coresight/next (a4f3057d19ff coresight-tpda: Change qcom,dsb-element-size to qcom,dsb-elem-bits)
Merging fastrpc/for-next (4cece7649650 Linux 6.9-rc1)
Merging fpga/for-next (4d2bc3f7dea4 fpga: tests: use KUnit devices instead of platform devices)
Merging icc/icc-next (7af14fe58e5e Merge branch 'icc-fixes' into icc-next)
Merging iio/togreg (27eea4778db8 iio: adc: ad7944: simplify adi,spi-mode property parsing)
Merging phy-next/next (0338e1d2f933 MAINTAINERS: Add phy-gs101-ufs file to Tensor GS101.)
Merging soundwire/next (5b3f661b2449 soundwire: intel_ace2x: set the clock source)
Merging extcon/extcon-next (abe83c4e5e4f extcon: realtek: Remove unused of_gpio.h)
Merging gnss/gnss-next (54be6c6c5ae8 Linux 6.8-rc3)
Merging vfio/next (7447d911af69 vfio/fsl-mc: Block calling interrupt handler without trigger)
Merging w1/for-next (cde37a5bdb0e w1: gpio: Don't use "proxy" headers)
Merging spmi/spmi-next (897268aef3fa spmi: pmic-arb: Replace three IS_ERR() calls by null pointer checks in spmi_pmic_arb_probe())
Merging staging/staging-next (18f44de63f88 staging: greybus: change strncpy() to strscpy_pad())
Merging counter-next/counter-next (916baadd293a counter: ti-ecap-capture: Utilize COUNTER_COMP_FREQUENCY macro)
Merging siox/siox/for-next (db418d5f1ca5 siox: bus-gpio: Simplify using devm_siox_* functions)
Merging mux/for-next (44c026a73be8 Linux 6.4-rc3)
Merging dmaengine/next (4665be0e952f dmaengine: pch_dma: remove unused function chan2parent)
Merging cgroup/for-next (a24e3b7d27c6 docs: cgroup-v1: Fix description for css_online)
Merging scsi/for-next (2c02be75463d Merge branch 'fixes' into for-next)
Merging scsi-mkp/for-next (e63350dae44f Merge patch series "Improve the code for showing commands in debugfs")
Merging vhost/linux-next (5b9f214d0540 vhost: Merge tag 'vduse-virtio-net' into vhost)
Merging rpmsg/for-next (4d5aabb68439 Merge branches 'rpmsg-next' and 'rproc-next' into for-next)
Merging gpio/for-next (0bb80ecc33a8 Linux 6.6-rc1)
Merging gpio-brgl/gpio/for-next (1685f72a6dcc gpiolib: Do not mention legacy GPIOF_* in the code)
Merging gpio-intel/for-next (ace0ebe5c98d gpio: crystalcove: Use -ENOTSUPP consistently)
Merging pinctrl/for-next (07bd48cca03b Merge branch 'devel' into for-next)
Merging pinctrl-intel/for-next (5d10a157ebe0 pinctrl: baytrail: Add pinconf group for uart3)
Merging pinctrl-renesas/renesas-pinctrl (aa43c15a790c pinctrl: renesas: rzg2l: Execute atomically the interrupt configuration)
Merging pinctrl-samsung/for-next (4184e4912ca6 dt-bindings: pinctrl: samsung: drop unused header with register constants)
Merging pwm/pwm/for-next (858fbbf538a6 pwm: bcm2835: Drop open coded variant of devm_clk_rate_exclusive_get())
Merging ktest/for-next (07283c1873a4 ktest: force $buildonly = 1 for 'make_warnings_file' test type)
Merging kselftest/next (f8a3e7c8a5aa tracing/selftests: Default to verbose mode when running in kselftest)
Merging kunit/test (4cece7649650 Linux 6.9-rc1)
Merging kunit-next/kunit (82b0beff3497 kunit: Add tests for fault)
Merging livepatching/for-next (602bf1830798 Merge branch 'for-6.7' into for-next)
Merging rtc/rtc-next (8b59a11fb8e6 rtc: nuvoton: Modify part number value)
Merging nvdimm/libnvdimm-for-next (d9212b35da52 dax: remove SLAB_MEM_SPREAD flag usage)
Merging at24/at24/for-next (4cece7649650 Linux 6.9-rc1)
Merging ntb/ntb-next (9341b37ec17a ntb_perf: Fix printk format)
Merging seccomp/for-next/seccomp (56af94aace8a samples: user-trap: fix strict-aliasing warning)
Merging fsi/next (c5eeb63edac9 fsi: Fix panic on scom file read)
Merging slimbus/for-next (4cece7649650 Linux 6.9-rc1)
Merging nvmem/for-next (4cece7649650 Linux 6.9-rc1)
Merging xarray/main (2a15de80dd0f idr: fix param name in idr_alloc_cyclic() doc)
Merging hyperv/hyperv-next (f2580a907e5c x86/hyperv: Use Hyper-V entropy to seed guest random number generator)
Merging auxdisplay/for-next (c352a0410726 auxdisplay: seg-led-gpio: Convert to platform remove callback returning void)
Merging kgdb/kgdb/for-next (4f41d30cd6dc kdb: Fix a potential buffer overflow in kdb_local())
Merging hmm/hmm (6613476e225e Linux 6.8-rc1)
Merging cfi/cfi/next (06c2afb862f9 Linux 6.5-rc1)
Merging mhi/mhi-next (813e0ae613d6 bus: mhi: host: Add mhi_power_down_keep_dev() API to support system suspend/hibernation)
Merging memblock/for-next (2159bd4e9057 memblock: Return NUMA_NO_NODE instead of -1 to improve code readability)
Merging cxl/next (ed1ff2fba7af Merge branch 'for-6.9/cxl-einj' into for-6.9/cxl)
Merging zstd/zstd-next (3f832dfb8a8e zstd: fix g_debuglevel export warning)
Merging efi/next (bf87a149828e efi: Clear up misconceptions about a maximum variable name size)
Merging unicode/for-next (0131c1f3cce7 unicode: make utf8 test count static)
Merging slab/slab/for-next (5aa5c7b9a09d mm/slub: remove duplicate initialization for early_kmem_cache_node_alloc())
Merging random/master (4cece7649650 Linux 6.9-rc1)
Merging landlock/next (028243655456 fs/ioctl: Add a comment to keep the logic in sync with LSM policies)
  5b5c05340e67 ("fs: Return ENOTTY if FS_IOC_GETUUID or FS_IOC_GETFSSYSFSPATH fail")
Merging rust/rust-next (8db31d3f3bd5 rust: workqueue: add `#[pin_data]` to `Work`)
Merging sysctl/sysctl-next (4f1136a55dc8 scripts: check-sysctl-docs: handle per-namespace sysctls)
Merging execve/for-next/execve (5248f4097308 binfmt: replace deprecated strncpy)
Merging bitmap/bitmap-for-next (fd8ed16c2419 bitmap: Step down as a reviewer)
Merging hte/for-next (b85ea95d0864 Linux 6.7-rc1)
Merging kspp/for-next/kspp (9c573cd31343 randomize_kstack: Improve entropy diffusion)
Merging kspp-gustavo/for-next/kspp (6613476e225e Linux 6.8-rc1)
Merging nolibc/nolibc (4cece7649650 Linux 6.9-rc1)
Merging tsm/tsm-next (f4738f56d1dc virt: tdx-guest: Add Quote generation support using TSM_REPORTS)
Merging iommufd/for-next (4cece7649650 Linux 6.9-rc1)
Merging header_cleanup/header_cleanup (5f4c01f1e3c7 spinlock: Fix failing build for PREEMPT_RT)

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[relevance 1%]

* linux-next: Tree for Apr 10
@ 2024-04-10  4:53  1% Stephen Rothwell
  0 siblings, 0 replies; 200+ results
From: Stephen Rothwell @ 2024-04-10  4:53 UTC (permalink / raw)
  To: Linux Next Mailing List; +Cc: Linux Kernel Mailing List

[-- Attachment #1: Type: text/plain, Size: 37475 bytes --]

Hi all,

Changes since 20240409:

The perf tree still had its build failure, but doing a clean then
rebuilding works.

The net-next tree still had its build failure for which I reverted a commit.

The drm-xe tree gained a conflict against the drm-intel tree.

The sound-asoc tree lost its build failure.

The tip tree still had its build failure so I used a supplied patch.

Non-merge commits (relative to Linus' tree): 4406
 4559 files changed, 177949 insertions(+), 116809 deletions(-)

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

I have created today's linux-next tree at
git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
(patches at http://www.kernel.org/pub/linux/kernel/next/ ).  If you
are tracking the linux-next tree using git, you should not use "git pull"
to do so as that will try to merge the new linux-next release with the
old one.  You should use "git fetch" and checkout or reset to the new
master.

You can see which trees have been included by looking in the Next/Trees
file in the source.  There is also the merge.log file in the Next
directory.  Between each merge, the tree was built with a ppc64_defconfig
for powerpc, an allmodconfig for x86_64, a multi_v7_defconfig for arm
and a native build of tools/perf. After the final fixups (if any), I do
an x86_64 modules_install followed by builds for x86_64 allnoconfig,
powerpc allnoconfig (32 and 64 bit), ppc44x_defconfig, allyesconfig
and pseries_le_defconfig and i386, arm64, s390, sparc and sparc64
defconfig and htmldocs. And finally, a simple boot test of the powerpc
pseries_le_defconfig kernel in qemu (with and without kvm enabled).

Below is a summary of the state of the merge.

I am currently merging 369 trees (counting Linus' and 103 trees of bug
fix patches pending for the current merge release).

Stats about the size of the tree over time can be seen at
http://neuling.org/linux-next-size.html .

Status of my local build tests will be at
http://kisskb.ellerman.id.au/linux-next .  If maintainers want to give
advice about cross compilers/configs that work, we are always open to add
more builds.

Thanks to Randy Dunlap for doing many randconfig builds.  And to Paul
Gortmaker for triage and bug fixes.

-- 
Cheers,
Stephen Rothwell

$ git checkout master
$ git reset --hard stable
Merging origin/master (2c71fdf02a95 Merge tag 'drm-fixes-2024-04-09' of https://gitlab.freedesktop.org/drm/kernel)
Merging fixes/fixes (2dde18cd1d8f Linux 6.5)
Merging mm-hotfixes/mm-hotfixes-unstable (12ee0bb78565 mm,swapops: update check in is_pfn_swap_entry for hwpoison entries)
Merging kbuild-current/fixes (89e5462bb5ae kconfig: Fix typo HEIGTH to HEIGHT)
Merging arc-current/for-curr (ebfc2fd8873b ARC: Fix typos)
Merging arm-current/fixes (0c66c6f4e21c ARM: 9359/1: flush: check if the folio is reserved for no-mapping addresses)
Merging arm64-fixes/for-next/fixes (b017a0cea627 arm64/ptrace: Use saved floating point state type to determine SVE layout)
Merging arm-soc-fixes/arm/fixes (011d79ef1cfa MAINTAINERS: Change Krzysztof Kozlowski's email address)
Merging davinci-current/davinci/for-current (6613476e225e Linux 6.8-rc1)
Merging drivers-memory-fixes/fixes (4cece7649650 Linux 6.9-rc1)
Merging sophgo-fixes/fixes (4cece7649650 Linux 6.9-rc1)
Merging m68k-current/for-linus (e8a7824856de m68k: defconfig: Update defconfigs for v6.8-rc1)
Merging powerpc-fixes/fixes (36ba64b4cbc6 selftests/powerpc/papr-vpd: Fix missing variable initialization)
Merging s390-fixes/fixes (378ca2d2ad41 s390/entry: align system call table on 8 bytes)
Merging fscrypt-current/for-current (4cece7649650 Linux 6.9-rc1)
Merging fsverity-current/for-current (4cece7649650 Linux 6.9-rc1)
Merging net/main (cf1b7201df59 ipv4/route: avoid unused-but-set-variable warning)
Merging bpf/master (6648e613226e bpf, skmsg: Fix NULL pointer dereference in sk_psock_skb_ingress_enqueue)
Merging ipsec/master (bccb798e07f8 octeontx2-pf: Fix transmit scheduler resource leak)
Merging netfilter/main (1bc83a019bbe netfilter: nf_tables: discard table flag update with pending basechain deletion)
Merging ipvs/main (7eaf837a4eb5 netfilter: nf_tables: Fix a memory leak in nf_tables_updchain)
Merging wireless/for-next (9ef369973cd2 wifi: cfg80211: fix the order of arguments for trace events of the tx_rx_evt class)
Merging wpan/master (b85ea95d0864 Linux 6.7-rc1)
Merging rdma-fixes/for-rc (b68e1acb5834 RDMA/cm: Print the old state when cm_destroy_id gets timeout)
Merging sound-current/for-linus (0b6f0ff01a4a ALSA: hda/tas2781: correct the register for pow calibrated data)
Merging sound-asoc-fixes/for-linus (140e0762ca05 ASoC: rt722-sdca: add headset microphone vrefo setting)
Merging regmap-fixes/for-linus (fec50db7033e Linux 6.9-rc3)
Merging regulator-fixes/for-linus (d3cf8a17498d regulator: mt6360: De-capitalize devicetree regulator subnodes)
Merging spi-fixes/for-linus (fec50db7033e Linux 6.9-rc3)
Merging pci-current/for-linus (302b84e84d10 Revert "PCI: Mark LSI FW643 to avoid bus reset")
Merging driver-core.current/driver-core-linus (4cece7649650 Linux 6.9-rc1)
Merging tty.current/tty-linus (9cf7ea2eeb74 serial: core: Clearing the circular buffer before NULLifying it)
Merging usb.current/usb-linus (eed04fa96c48 usb: dwc2: host: Fix dereference issue in DDMA completion flow.)
  fbdd90334a62 ("MAINTAINERS: Drop Li Yang as their email address stopped working")
Merging usb-serial-fixes/usb-linus (d206a76d7d27 Linux 6.8-rc6)
Merging phy/fixes (47b3e2f3914a phy: qcom: m31: match requested regulator name with dt schema)
Merging staging.current/staging-linus (39cd87c4eb2b Linux 6.9-rc2)
Merging iio-fixes/fixes-togreg (74a72baf204f iio:imu: adis16475: Fix sync mode setting)
Merging counter-current/counter-current (39cd87c4eb2b Linux 6.9-rc2)
Merging char-misc.current/char-misc-linus (fec50db7033e Linux 6.9-rc3)
Merging soundwire-fixes/fixes (63dc588e7af1 soundwire: amd: fix for wake interrupt handling for clockstop mode)
Merging thunderbolt-fixes/fixes (c032cdd48b29 thunderbolt: Do not create DisplayPort tunnels on adapters of the same router)
Merging input-current/for-linus (57ed9567e63b Merge branch 'next' into for-linus)
Merging crypto-current/master (5a7e89d3315d crypto: iaa - Fix nr_cpus < nr_iaa case)
Merging vfio-fixes/for-linus (4ea95c04fa6b vfio: Drop vfio_file_iommu_group() stub to fudge around a KVM wart)
Merging kselftest-fixes/fixes (72d7cb5c190b selftests/harness: Prevent infinite loop due to Assert in FIXTURE_TEARDOWN)
Merging dmaengine-fixes/fixes (f221033f5c24 dmaengine: idxd: Fix oops during rmmod on single-CPU platforms)
Merging backlight-fixes/for-backlight-fixes (6613476e225e Linux 6.8-rc1)
Merging mtd-fixes/mtd/fixes (21c9fb611c25 mtd: diskonchip: work around ubsan link failure)
Merging mfd-fixes/for-mfd-fixes (6613476e225e Linux 6.8-rc1)
Merging v4l-dvb-fixes/fixes (d353c3c34af0 media: mediatek: vcodec: support 36 bits physical address)
Merging reset-fixes/reset/fixes (4a6756f56bcf reset: Fix crash when freeing non-existent optional resets)
Merging mips-fixes/mips-fixes (4370b673ccf2 MIPS: scall: Save thread_info.syscall unconditionally on entry)
Merging at91-fixes/at91-fixes (4cece7649650 Linux 6.9-rc1)
Merging omap-fixes/fixes (9b6a51aab5f5 ARM: dts: Fix occasional boot hang for am3 usb)
Merging kvm-fixes/master (9bc60f733839 Merge tag 'kvm-riscv-fixes-6.9-1' of https://github.com/kvm-riscv/linux into HEAD)
Merging kvms390-fixes/master (83303a4c776c KVM: s390: fix cc for successful PQAP)
Merging hwmon-fixes/hwmon (4cece7649650 Linux 6.9-rc1)
Merging nvdimm-fixes/libnvdimm-fixes (33908660e814 ACPI: NFIT: Fix incorrect calculation of idt size)
Merging cxl-fixes/fixes (7bcf809b1e78 cxl: Add checks to access_coordinate calculation to fail missing data)
Merging btrfs-fixes/next-fixes (07475cc36e03 Merge branch 'misc-6.9' into next-fixes)
Merging vfs-fixes/fixes (aa23317d0268 qibfs: fix dentry leak)
Merging dma-mapping-fixes/for-linus (d5090484b021 swiotlb: do not try to allocate a TLB bigger than MAX_ORDER pages)
Merging drivers-x86-fixes/fixes (4cece7649650 Linux 6.9-rc1)
Merging samsung-krzk-fixes/fixes (c51102b6a279 MAINTAINERS: Change Krzysztof Kozlowski's email address)
  c51102b6a279 ("MAINTAINERS: Change Krzysztof Kozlowski's email address")
Merging pinctrl-samsung-fixes/fixes (4cece7649650 Linux 6.9-rc1)
Merging devicetree-fixes/dt/linus (de164a7f1924 nios2: Only use built-in devicetree blob if configured to do so)
Merging dt-krzk-fixes/fixes (4cece7649650 Linux 6.9-rc1)
Merging scsi-fixes/fixes (ca91259b775f scsi: core: Fix handling of SCMD_FAIL_IF_RECOVERING)
Merging drm-fixes/drm-fixes (718c4fb221db nouveau: fix devinit paths to only handle display on GSP.)
Merging drm-intel-fixes/for-linux-next-fixes (dcd8992e47f1 drm/i915/vrr: Disable VRR when using bigjoiner)
Merging mmc-fixes/fixes (ace323f80b9b mmc: sdhci-of-dwcmshc: th1520: Increase tuning loop count to 128)
Merging rtc-fixes/rtc-fixes (4cece7649650 Linux 6.9-rc1)
Merging gnss-fixes/gnss-linus (54be6c6c5ae8 Linux 6.8-rc3)
Merging hyperv-fixes/hyperv-fixes (1f1dc442c57e mshyperv: Introduce hv_numa_node_to_pxm_info())
Merging soc-fsl-fixes/fix (06c2afb862f9 Linux 6.5-rc1)
Merging risc-v-fixes/fixes (d14fa1fcf69d riscv: process: Fix kernel gp leakage)
Merging riscv-dt-fixes/riscv-dt-fixes (0f74c64f0a9f riscv: dts: starfive: Remove PMIC interrupt info for Visionfive 2 board)
Merging riscv-soc-fixes/riscv-soc-fixes (c90847bcbfb6 cache: sifive_ccache: Partially convert to a platform driver)
Merging fpga-fixes/fixes (4cece7649650 Linux 6.9-rc1)
Merging spdx/spdx-linus (4cece7649650 Linux 6.9-rc1)
Merging gpio-brgl-fixes/gpio/for-current (e43c2feb8f32 Merge tag 'intel-gpio-v6.9-1' of git://git.kernel.org/pub/scm/linux/kernel/git/andy/linux-gpio-intel into gpio/for-current)
Merging gpio-intel-fixes/fixes (ace0ebe5c98d gpio: crystalcove: Use -ENOTSUPP consistently)
Merging pinctrl-intel-fixes/fixes (5d10a157ebe0 pinctrl: baytrail: Add pinconf group for uart3)
Merging auxdisplay-fixes/fixes (4cece7649650 Linux 6.9-rc1)
Merging erofs-fixes/fixes (7557d296ad43 MAINTAINERS: erofs: add myself as reviewer)
Merging kunit-fixes/kunit-fixes (cfedfb24c9dd kunit: configs: Enable CONFIG_DAMON_DBGFS_DEPRECATED for --alltests)
Merging memblock-fixes/fixes (592447f6cb3c memblock tests: fix undefined reference to `BIT')
Merging nfsd-fixes/nfsd-fixes (10396f4df8b7 nfsd: hold a lighter-weight client reference over CB_RECALL_ANY)
Merging renesas-fixes/fixes (8c987693dc2d ARM: dts: renesas: rcar-gen2: Add missing #interrupt-cells to DA9063 nodes)
Merging perf-current/perf-tools (25e973a0e077 perf annotate: Make sure to call symbol__annotate2() in TUI)
Merging efi-fixes/urgent (decd347c2a75 x86/efistub: Reinstate soft limit for initrd loading)
Merging zstd-fixes/zstd-linus (77618db34645 zstd: Fix array-index-out-of-bounds UBSAN warning)
Merging battery-fixes/fixes (4cece7649650 Linux 6.9-rc1)
Merging uml-fixes/fixes (73a23d771033 um: harddog: fix modular build)
Merging iommufd-fixes/for-rc (39cd87c4eb2b Linux 6.9-rc2)
Merging rust-fixes/rust-fixes (761a8f0a776b rust: make mutually exclusive with CFI_CLANG)
Merging v9fs-fixes/fixes/next (7a84602297d3 9p: explicitly deny setlease attempts)
Merging w1-fixes/fixes (4cece7649650 Linux 6.9-rc1)
Merging pmdomain-fixes/fixes (39cd87c4eb2b Linux 6.9-rc2)
Merging overlayfs-fixes/ovl-fixes (77a28aa47687 ovl: relax WARN_ON in ovl_verify_area())
Merging i2c-host-fixes/i2c/i2c-host-fixes (951977790911 i2c: pxa: hide unused icr_bits[] variable)
Merging sparc-fixes/for-linus (6613476e225e Linux 6.8-rc1)
Merging clk-fixes/clk-fixes (754e5287c7d5 Merge branch 'clk-rpm' into clk-fixes)
Merging drm-misc-fixes/for-linux-next-fixes (4c08f01934ab drm/vmwgfx: Enable DMA mappings with SEV)
Merging mm-stable/mm-stable (4e2e36129225 Merge branch 'master' into mm-stable)
Merging mm-nonmm-stable/mm-nonmm-stable (39cd87c4eb2b Linux 6.9-rc2)
Merging mm/mm-everything (b8a0eda144c2 Merge branch 'mm-nonmm-unstable' into mm-everything)
CONFLICT (content): Merge conflict in arch/x86/mm/numa_32.c
Merging kbuild/for-next (bfa8f18691ed Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi)
Merging clang-format/clang-format (5a205c6a9f79 clang-format: Update with v6.7-rc4's `for_each` macro list)
Merging perf/perf-tools-next (9c3e9af74326 perf metrics: Remove the "No_group" metric group)
Merging compiler-attributes/compiler-attributes (2993eb7a8d34 Compiler Attributes: counted_by: fixup clang URL)
Merging dma-mapping/for-next (a1255ccab8ec swiotlb: do not set total_used to 0 in swiotlb_create_debugfs_files())
Merging asm-generic/master (5394f1e9b687 arch: define CONFIG_PAGE_SIZE_*KB on all architectures)
Merging arc/for-next (0bb80ecc33a8 Linux 6.6-rc1)
Merging arm/for-next (5616fee8981b Merge branches 'misc' and 'fixes' into for-next)
Merging arm64/for-next/core (fec50db7033e Linux 6.9-rc3)
Merging arm-perf/for-next/perf (595275ca4984 perf/thunderx2: Avoid placing cpumask on the stack)
Merging arm-soc/for-next (011d79ef1cfa MAINTAINERS: Change Krzysztof Kozlowski's email address)
Merging amlogic/for-next (4cece7649650 Linux 6.9-rc1)
Merging asahi-soc/asahi-soc/for-next (ffc253263a13 Linux 6.6)
Merging aspeed/for-next (0c30853731ec ARM: dts: aspeed: x4tf: Add dts for asus x4tf project)
Merging at91/at91-next (fa8e55345b64 Merge branch 'microchip-dt64' into at91-next)
Merging broadcom/next (b8e76959a6ef Merge branch 'devicetree-arm64/next' into next)
Merging davinci/davinci/for-next (6613476e225e Linux 6.8-rc1)
Merging drivers-memory/for-next (e23359d88a81 dt-bindings: memory-controllers: add Samsung S5Pv210 SoC DMC)
Merging imx-mxs/for-next (6cf256f63478 Merge branch 'imx/defconfig' into for-next)
Merging mediatek/for-next (a452af6b1e66 soc: mediatek: mtk-socinfo: depends on CONFIG_SOC_BUS)
Merging mvebu/for-next (058bfa0ead87 arm64: dts: marvell: cn9130-crb: drop unneeded "status")
Merging omap/for-next (69f4343fc41d Merge branch 'omap-for-v6.9/n8x0-fixes' into for-next)
Merging qcom/for-next (3cd1977804fb Merge branches 'arm32-for-6.10', 'arm64-defconfig-for-6.10', 'arm64-for-6.10', 'clk-fixes-for-6.9' and 'drivers-for-6.10' into for-next)
Merging renesas/next (957eed54b7b6 Merge branch 'renesas-dts-for-v6.10' into renesas-next)
Merging reset/reset/next (6d89df61650d reset: ti-sci: Convert to platform remove callback returning void)
Merging rockchip/for-next (3220b4905e1e Merge branch 'v6.10-armsoc/dts64' into for-next)
Merging samsung-krzk/for-next (3c1146718332 Merge branch 'next/clk' into for-next)
Merging scmi/for-linux-next (26f0f850b2d9 Merge branch 'for-next/scmi/updates', tags 'ffa-fix-6.9' and 'scmi-fixes-6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux into for-linux-next)
Merging sophgo/for-next (89a7056ed4f7 riscv: dts: sophgo: add sdcard support for milkv duo)
Merging stm32/stm32-next (b12a916d30dc ARM: dts: stm32: add heartbeat led for stm32mp157c-ed1)
Merging sunxi/sunxi/for-next (c1d7282e4e92 Merge branch 'sunxi/dt-for-6.9' into sunxi/for-next)
Merging tee/next (60757f1264a2 Merge branch 'tee_ts_for_v6.10' into next)
Merging tegra/for-next (c85c30fad06d Merge branch for-6.9/arm64/dt into for-next)
Merging ti/ti-next (f5c705ca9936 Merge branches 'ti-drivers-soc-next', 'ti-k3-dts-next' and 'ti-keystone-dts-next' into ti-next)
Merging xilinx/for-next (2d81f5ef567c Merge remote-tracking branch 'git/zynqmp/dt' into for-next)
Merging clk/clk-next (7869ec4a5f1b Merge branch 'clk-fixes' into clk-next)
Merging clk-imx/for-next (13269dc6c704 clk: imx: imx8mp: Fix SAI_MCLK_SEL definition)
Merging clk-renesas/renesas-clk (c0516eb4cf04 clk: renesas: r8a779h0: Add timer clocks)
Merging csky/linux-next (2c40c1c6adab Merge tag 'usb-6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb)
Merging loongarch/loongarch-next (27e361b5e171 LoongArch: Include linux/sizes.h in addrspace.h to prevent build errors)
Merging m68k/for-next (70d830e337f9 m68k: Calculate THREAD_SIZE from THREAD_SIZE_ORDER)
Merging m68knommu/for-next (d677c24fccee m68k: Avoid CONFIG_COLDFIRE switch in uapi header)
Merging microblaze/next (6613476e225e Linux 6.8-rc1)
Merging mips/mips-next (4cece7649650 Linux 6.9-rc1)
Merging openrisc/for-next (7f1e2fc49348 openrisc: Use asm-generic's version of fix_to_virt() & virt_to_fix())
Merging parisc-hd/for-next (e8f897f4afef Linux 6.8)
Merging powerpc/next (8884fc918f6a powerpc: Fix fatal warnings flag for LLVM's integrated assembler)
Merging soc-fsl/next (fb9c384625dd bus: fsl-mc: fsl-mc-allocator: Drop a write-only variable)
Merging risc-v/for-next (4cece7649650 Linux 6.9-rc1)
Merging riscv-dt/riscv-dt-for-next (0eea987088a2 RISC-V: Drop unused SOC_CANAAN)
Merging riscv-soc/riscv-soc-for-next (4cece7649650 Linux 6.9-rc1)
Merging s390/for-next (9fb83b5a1bdb Merge branch 'features' into for-next)
Merging sh/for-next (4cece7649650 Linux 6.9-rc1)
Merging sparc/for-next (84b76d05828a lib/fonts: Allow Sparc console 8x16 font for sparc64 early boot text console)
Merging uml/next (83aec96c631e um: Mark 32bit syscall helpers as clobbering memory)
Merging xtensa/xtensa-for-next (11cca8ccf2c3 tty: xtensa/iss: Use min() to fix Coccinelle warning)
Merging bcachefs/for-next (9b31152fd74e bcachefs: btree_node_scan: Respect member.data_allowed)
Merging pidfd/for-next (a901a3568fd2 Merge tag 'iomap-6.5-merge-1' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux)
Merging fscrypt/for-next (8c62f31eddb7 fscrypt: shrink the size of struct fscrypt_inode_info slightly)
Merging afs/afs-next (abcbd3bfbbfe afs: trace: Log afs_make_call(), including server address)
Merging btrfs/for-next (7218664bf91d Merge branch 'for-next-next-v6.9-20240409' into for-next-20240409)
Merging ceph/master (825b82f6b82a ceph: set correct cap mask for getattr request for read)
Merging cifs/for-next (12988ed3b129 smb: client: Fix hang in smb2_reconnect)
Merging configfs/for-next (4425c1d9b44d configfs: improve item creation performance)
Merging erofs/dev (38bac6fb80a8 erofs: add a reserved buffer pool for lz4 decompression)
Merging exfat/dev (6397cc21e5c0 exfat: move extend valid_size into ->page_mkwrite())
Merging exportfs/exportfs-next (e8f897f4afef Linux 6.8)
Merging ext3/for_next (cf5e17c72729 Pull ext2 FMODE_CAN_ODIRECT cleanup from Ritesh.)
Merging ext4/dev (0ecae5410ab5 ext4: initialize sbi->s_freeclusters_counter and sbi->s_dirtyclusters_counter before use in kunit test)
Merging f2fs/dev (bf3a69c6861f Merge tag 'for-linus-6.9-ofs1' of git://git.kernel.org/pub/scm/linux/kernel/git/hubcap/linux)
Merging fsverity/for-next (8e43fb06e10d fsverity: remove hash page spin lock)
Merging fuse/for-next (cdf6ac2a03d2 fuse: get rid of ff->readdir.lock)
Merging gfs2/for-next (2613499753ca gfs2: Fix lru_count accounting)
Merging jfs/jfs-next (e42e29cc4423 Revert "jfs: fix shift-out-of-bounds in dbJoin")
Merging ksmbd/ksmbd-for-next (405ac6a57277 Merge tag '6.9-rc2-ksmbd-server-fixes' of git://git.samba.org/ksmbd)
Merging nfs/linux-next (24457f1be29f nfs: Handle error of rpc_proc_register() in nfs_net_init().)
Merging nfs-anna/linux-next (57331a59ac0d NFSv4.1: Use the nfs_client's rpc timeouts for backchannel)
Merging nfsd/nfsd-next (e5ca63b09c65 nfsd: optimise recalculate_deny_mode() for a common case)
Merging ntfs3/master (622cd3daa8ea fs/ntfs3: Slightly simplify ntfs_inode_printk())
Merging orangefs/for-next (9bf93dcfc453 Julia Lawall reported this null pointer dereference, this should fix it.)
Merging overlayfs/overlayfs-next (d17bb4620f90 overlayfs.rst: fix ReST formatting)
Merging ubifs/next (b8a77b9a5f9c mtd: ubi: fix NVMEM over UBI volumes on 32-bit systems)
Merging v9fs/9p-next (2a0505cdd8c8 9p: remove SLAB_MEM_SPREAD flag usage)
Merging v9fs-ericvh/ericvh/for-next (4cece7649650 Linux 6.9-rc1)
Merging xfs/for-next (e23d7e82b707 xfs: allow cross-linking special files without project quota)
Merging zonefs/for-next (567e629fd296 zonefs: convert zonefs to use the new mount api)
Merging iomap/iomap-for-next (3ac974796e5d iomap: fix short copy in iomap_write_iter())
Merging djw-vfs/vfs-for-next (ce85a1e04645 xfs: stabilize fs summary counters for online fsck)
Merging file-locks/locks-next (e0152e7481c6 Merge tag 'riscv-for-linus-6.6-mw1' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux)
Merging iversion/iversion-next (e0152e7481c6 Merge tag 'riscv-for-linus-6.6-mw1' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux)
Merging vfs-brauner/vfs.all (4a02707af213 Merge branch 'vfs.netfs' into vfs.all)
Merging vfs/for-next (052d534373b7 Merge tag 'exfat-for-6.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/linkinjeon/exfat)
Merging printk/for-next (a2b4cab9da77 Merge branch 'for-6.10' into for-next)
Merging pci/next (6c6ca4d09c49 Merge branch 'pci/enumeration')
Merging pstore/for-next/pstore (80b735d01bbb pstore/blk: replace deprecated strncpy with strscpy)
Merging hid/for-next (8006ea023772 Merge branch 'for-6.10/playstation' into for-next)
Merging i2c/i2c/for-next (5ceeabb0eb2e Merge tag 'i2c-host-fixes-6.9-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/andi.shyti/linux into i2c/for-current)
Merging i2c-host/i2c/i2c-host (53f44c1005ba i2c: add HAS_IOPORT dependencies)
Merging i3c/i3c/next (8f06fb458539 i3c: Make i3c_bus_type const)
Merging hwmon-staging/hwmon-next (826eb58fbd77 hwmon: (pmbus/mp2975) Use i2c_get_match_data())
Merging jc_docs/docs-next (9e192b39a599 docs/zh_CN: Add dev-tools/ubsan Chinese translation)
Merging v4l-dvb/master (b14257abe705 media: rcar-isp: Disallow unbind of devices)
Merging v4l-dvb-next/master (b14257abe705 media: rcar-isp: Disallow unbind of devices)
Merging pm/linux-next (9d16ca96a3b1 Merge branch 'pm-sleep' into linux-next)
Merging cpufreq-arm/cpufreq/arm/linux-next (4cece7649650 Linux 6.9-rc1)
Merging cpupower/cpupower (4cece7649650 Linux 6.9-rc1)
Merging devfreq/devfreq-next (6f3c0cfe2aa5 PM / devfreq: rk3399_dmc: Convert to platform remove callback returning void)
Merging pmdomain/next (02e2a4b3638c cpuidle: psci: Update init level to core_initcall())
Merging opp/opp/linux-next (4cece7649650 Linux 6.9-rc1)
Merging thermal/thermal/linux-next (1828c1c17bb2 thermal/drivers/rcar_gen3: Add support for R-Car V4M)
Merging dlm/next (92d59adfaf71 dlm: do message processing in softirq context)
Merging rdma/for-next (f10242b3da90 RDMA/mana_ib: Use struct mana_ib_queue for RAW QPs)
Merging net-next/main (545d95e5f1ba cxgb4: flower: use NL_SET_ERR_MSG_MOD for validation errors)
Applying: Revert "tcp: more struct tcp_sock adjustments"
Merging bpf-next/for-next (d0a2ba197bcb selftests/bpf: Add tests for atomics in bpf_arena.)
Merging ipsec-next/master (267e31750ae8 Merge branch 'phy-listing-link_topology-tracking')
Merging mlx5-next/mlx5-next (d727d27db536 RDMA/mlx5: Expose register c0 for RDMA device)
Merging netfilter-next/main (ed1f164038b5 Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net)
Merging ipvs-next/main (ed1f164038b5 Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net)
Merging bluetooth/master (215c4704208b Bluetooth: L2CAP: Avoid -Wflex-array-member-not-at-end warnings)
Merging wireless-next/for-next (a35b36e6ee5d wifi: mac80211: extend IEEE80211_KEY_FLAG_GENERATE_MMIE to other ciphers)
Merging wpan-next/master (9187210eee7d Merge tag 'net-next-6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next)
Merging wpan-staging/staging (9187210eee7d Merge tag 'net-next-6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next)
Merging mtd/mtd/next (3ef4600f1226 mtd: maps: sa1100-flash: Prefer struct_size over open coded arithmetic)
Merging nand/nand/next (6819db94e1cd mtd: rawnand: hynix: fixed typo)
Merging spi-nor/spi-nor/next (4cece7649650 Linux 6.9-rc1)
Merging crypto/master (4ad27a8be9db crypto: jitter - Replace http with https)
Merging drm/drm-next (1f913730e7c7 Merge tag 'drm-misc-next-2024-04-05' of https://gitlab.freedesktop.org/drm/misc/kernel into drm-next)
Merging drm-exynos/for-linux-next (6633c7d2fd31 drm/exynos: mixer: drop driver owner initialization)
Merging drm-misc/for-linux-next (935a92a1c400 drm: bridge: cdns-mhdp8546: Fix possible null pointer dereference)
Merging amdgpu/drm-next (d7f148764355 drm/amdgpu: always force full reset for SOC21)
CONFLICT (content): Merge conflict in drivers/gpu/drm/amd/display/dc/core/dc.c
Merging drm-intel/for-linux-next (2b8ad19d3ed6 drm/i915: Introduce intel_crtc_joined_pipe_mask())
  34d127e2bdef ("drm/i915/cdclk: Fix voltage_level programming edge case")
  3aecee90ac12 ("drm/i915/cdclk: Fix CDCLK programming order when pipes are active")
  6809f9246d43 ("drm/i915/hdcp: Fix get remote hdcp capability function")
  b37e1347b991 ("drm/i915: Disable port sync when bigjoiner is used")
  ef79820db723 ("drm/i915: Disable live M/N updates when using bigjoiner")
  f9d5e51db656 ("drm/i915/vrr: Disable VRR when using bigjoiner")
CONFLICT (content): Merge conflict in drivers/gpu/drm/i915/display/intel_cdclk.c
CONFLICT (content): Merge conflict in drivers/gpu/drm/i915/display/intel_psr.c
Merging drm-tegra/for-next (2429b3c529da drm/tegra: Avoid potential 32-bit integer overflow)
Merging drm-msm/msm-next (9dc23cba0927 drm/msm/adreno: Set highest_bank_bit for A619)
Merging drm-msm-lumag/msm-next-lumag (ab556156cafa drm/msm: drop A6xx header)
Merging drm-xe/drm-xe-next (7cd05ef89c9d drm/xe/xe2hpm: Add initial set of workarounds)
CONFLICT (content): Merge conflict in drivers/gpu/drm/xe/xe_bo.c
CONFLICT (content): Merge conflict in drivers/gpu/drm/xe/xe_device_types.h
CONFLICT (content): Merge conflict in drivers/gpu/drm/xe/xe_exec.c
CONFLICT (content): Merge conflict in drivers/gpu/drm/xe/xe_vm.c
CONFLICT (content): Merge conflict in include/uapi/drm/xe_drm.h
Merging etnaviv/etnaviv/next (b735ee173f84 drm/etnaviv: Restore some id values)
Merging fbdev/for-next (688cf5986658 fbdev: sisfb: hide unused variables)
Merging regmap/for-next (8a8317f92770 regmap: kunit: Add some test cases and a few small)
Merging sound/for-next (a9b16d591874 Merge branch 'topic/emu10k1-fix' into for-next)
Merging ieee1394/for-next (0d4149e5e9b0 firewire: ohci: use pci_irq_vector() to retrieve allocated interrupt line)
Merging sound-asoc/for-next (54dc26ad53c5 Merge remote-tracking branch 'asoc/for-6.10' into asoc-next)
Merging modules/modules-next (d1909c022173 module: Don't ignore errors from set_memory_XX())
Merging input/next (8984e0b56923 Input: adafruit-seesaw - only report buttons that changed state)
Merging block/for-next (94f005c6e0d2 Merge branch 'for-6.10/io_uring' into for-next)
CONFLICT (content): Merge conflict in io_uring/io_uring.c
CONFLICT (content): Merge conflict in io_uring/rw.c
Applying: fix up for "mm: switch mm->get_unmapped_area() to a flag"
Merging device-mapper/for-next (15d6d6a9187a dm vdo murmurhash: remove unneeded semicolon)
Merging libata/for-next (dcf2653ac12f dt-bindings: ata: ahci-da850: Convert to dtschema)
Merging pcmcia/pcmcia-next (ccae53aa8aa2 pcmcia: cs: make pcmcia_socket_class constant)
Merging mmc/next (bce42d6108c9 mmc: Merge branch fixes into next)
Merging mfd/for-mfd-next (e42199bf13d4 mfd: intel-lpss: Switch over to MSI interrupts)
CONFLICT (content): Merge conflict in drivers/mfd/intel-lpss-pci.c
Merging backlight/for-backlight-next (946ced827e6c backlight: mp3309c: Fix signedness bug in mp3309c_parse_fwnode())
Merging battery/for-next (50f0ff7c8cc4 power: supply: bq27xxx: Move health reading out of update loop)
Merging regulator/for-next (58065ebc29d8 Merge remote-tracking branch 'regulator/for-6.10' into regulator-next)
Merging security/next (4cece7649650 Linux 6.9-rc1)
Merging apparmor/apparmor-next (8ead196be219 apparmor: Fix memory leak in unpack_profile())
Merging integrity/next-integrity (5e2e4d0ea5c2 evm: Rename is_unsupported_fs to is_unsupported_hmac_fs)
Merging selinux/next (d6fc1ee0b6c1 Automated merge of 'dev' into 'next')
Merging smack/next (69b6d71052b5 Smack: use init_task_smack() in smack_cred_transfer())
Merging tomoyo/master (0bb80ecc33a8 Linux 6.6-rc1)
Merging tpmdd/next (6999f8229e59 keys: Fix overwrite of key expiration on instantiation)
Merging watchdog/master (6fe5aabf7fc6 watchdog: intel-mid_wdt: Get platform data via dev_get_platdata())
Merging iommu/next (c404f55c26fc iommu: Validate the PASID in iommu_attach_device_pasid())
Merging audit/next (4cece7649650 Linux 6.9-rc1)
Merging devicetree/for-next (cc8940a01557 dt-bindings: usb: mtk-xhci: add compatible for MT7988)
Merging dt-krzk/for-next (e6310d41d9cb Merge branch 'next/dt64' into for-next)
Merging mailbox/for-next (8df6bab6cb9a mailbox: imx: support i.MX95 Generic/ELE/V2X MU)
Merging spi/for-next (51244b7df2f2 Merge remote-tracking branch 'spi/for-6.10' into spi-next)
Merging tip/master (4cce3e151e22 Merge branch into tip/master: 'x86/shstk')
Applying: vdso: Fix powerpc build U64_MAX undeclared error
Merging clockevents/timers/drivers/next (8248ca30ef89 clocksource/drivers/timer-riscv: Clear timer interrupt on timer initialization)
Merging edac/edac-for-next (8e95536e9495 Merge branch ras/edac-misc into for-next)
Merging ftrace/for-next (7604256cecef tracing: Add __string_src() helper to help compilers not to get confused)
Merging rcu/rcu/next (295ce8786489 rcutorture: Fix rcu_torture_fwd_cb_cr() data race)
Merging kvm/next (9bc60f733839 Merge tag 'kvm-riscv-fixes-6.9-1' of https://github.com/kvm-riscv/linux into HEAD)
Merging kvm-arm/next (29b0075ed61c KVM: selftests: Fix __GUEST_ASSERT() format warnings in ARM's arch timer test)
Merging kvms390/next (00de073e2420 KVM: s390: selftest: memop: Fix undefined behavior)
Merging kvm-ppc/topic/ppc-kvm (41bccc98fb79 Linux 6.8-rc2)
Merging kvm-riscv/riscv_kvm_next (8e936e98718f RISC-V: KVM: Fix APLIC in_clrip[x] read emulation)
Merging kvm-x86/next (f10f3621ad80 Merge branches 'fixes', 'generic', 'misc', 'mmu', 'selftests', 'svm' and 'vmx')
Merging xen-tip/linux-next (d277f9d82802 xen/events: increment refcnt only if event channel is refcounted)
Merging percpu/for-next (2d9ad81ef935 Merge branch 'for-6.8-fixes' into for-next)
Merging workqueues/for-next (8a8a4bfdbe85 Merge branch 'for-6.10' into for-next)
Merging drivers-x86/for-next (10eba55febd4 platform/x86: quickstart: Fix race condition when reporting input event)
Merging chrome-platform/for-next (70a5f3005008 platform/chrome: cros_ec_lpc: add quirks for the Framework Laptop (AMD))
Merging chrome-platform-firmware/for-firmware-next (7f20f21c22aa firmware: google: cbmem: drop driver owner initialization)
Merging hsi/for-next (4cece7649650 Linux 6.9-rc1)
Merging leds-lj/for-leds-next (ca66b10a11da leds: simatic-ipc-leds-gpio: Add support for module BX-59A)
Merging ipmi/for-next (739bf2135f87 char: ipmi: handle HAS_IOPORT dependencies)
Merging driver-core/driver-core-next (0bb322be5d38 driver core: Remove unused platform_notify, platform_notify_remove)
Merging usb/usb-next (3295f1b866bf usb: misc: uss720: check for incompatible versions of the Belkin F5U002)
Merging thunderbolt/next (9a966517a830 thunderbolt: Enable NVM upgrade support on Intel Maple Ridge)
Merging usb-serial/usb-next (b1a8da9ff139 USB: serial: cp210x: add pid/vid for TDK NC0110013M and MM0110113M)
Merging tty/tty-next (fec50db7033e Linux 6.9-rc3)
Merging char-misc/char-misc-next (fec50db7033e Linux 6.9-rc3)
Merging accel/habanalabs-next (576d7cc5a9e2 accel: constify the struct device_type usage)
Merging coresight/next (a4f3057d19ff coresight-tpda: Change qcom,dsb-element-size to qcom,dsb-elem-bits)
Merging fastrpc/for-next (4cece7649650 Linux 6.9-rc1)
Merging fpga/for-next (4d2bc3f7dea4 fpga: tests: use KUnit devices instead of platform devices)
Merging icc/icc-next (7af14fe58e5e Merge branch 'icc-fixes' into icc-next)
Merging iio/togreg (27eea4778db8 iio: adc: ad7944: simplify adi,spi-mode property parsing)
Merging phy-next/next (0338e1d2f933 MAINTAINERS: Add phy-gs101-ufs file to Tensor GS101.)
Merging soundwire/next (5b3f661b2449 soundwire: intel_ace2x: set the clock source)
Merging extcon/extcon-next (abe83c4e5e4f extcon: realtek: Remove unused of_gpio.h)
Merging gnss/gnss-next (54be6c6c5ae8 Linux 6.8-rc3)
Merging vfio/next (7447d911af69 vfio/fsl-mc: Block calling interrupt handler without trigger)
Merging w1/for-next (cde37a5bdb0e w1: gpio: Don't use "proxy" headers)
Merging spmi/spmi-next (897268aef3fa spmi: pmic-arb: Replace three IS_ERR() calls by null pointer checks in spmi_pmic_arb_probe())
Merging staging/staging-next (a103e5ad2199 Merge 6.9-rc2 into staging-next)
Merging counter-next/counter-next (916baadd293a counter: ti-ecap-capture: Utilize COUNTER_COMP_FREQUENCY macro)
Merging siox/siox/for-next (db418d5f1ca5 siox: bus-gpio: Simplify using devm_siox_* functions)
Merging mux/for-next (44c026a73be8 Linux 6.4-rc3)
Merging dmaengine/next (4665be0e952f dmaengine: pch_dma: remove unused function chan2parent)
Merging cgroup/for-next (a24e3b7d27c6 docs: cgroup-v1: Fix description for css_online)
Merging scsi/for-next (2c02be75463d Merge branch 'fixes' into for-next)
Merging scsi-mkp/for-next (e63350dae44f Merge patch series "Improve the code for showing commands in debugfs")
Merging vhost/linux-next (5b9f214d0540 vhost: Merge tag 'vduse-virtio-net' into vhost)
Merging rpmsg/for-next (4d5aabb68439 Merge branches 'rpmsg-next' and 'rproc-next' into for-next)
Merging gpio/for-next (0bb80ecc33a8 Linux 6.6-rc1)
Merging gpio-brgl/gpio/for-next (1685f72a6dcc gpiolib: Do not mention legacy GPIOF_* in the code)
Merging gpio-intel/for-next (ace0ebe5c98d gpio: crystalcove: Use -ENOTSUPP consistently)
Merging pinctrl/for-next (07bd48cca03b Merge branch 'devel' into for-next)
Merging pinctrl-intel/for-next (5d10a157ebe0 pinctrl: baytrail: Add pinconf group for uart3)
Merging pinctrl-renesas/renesas-pinctrl (aa43c15a790c pinctrl: renesas: rzg2l: Execute atomically the interrupt configuration)
Merging pinctrl-samsung/for-next (4184e4912ca6 dt-bindings: pinctrl: samsung: drop unused header with register constants)
Merging pwm/pwm/for-next (858fbbf538a6 pwm: bcm2835: Drop open coded variant of devm_clk_rate_exclusive_get())
Merging ktest/for-next (07283c1873a4 ktest: force $buildonly = 1 for 'make_warnings_file' test type)
Merging kselftest/next (f8a3e7c8a5aa tracing/selftests: Default to verbose mode when running in kselftest)
Merging kunit/test (4cece7649650 Linux 6.9-rc1)
Merging kunit-next/kunit (82b0beff3497 kunit: Add tests for fault)
Merging livepatching/for-next (602bf1830798 Merge branch 'for-6.7' into for-next)
Merging rtc/rtc-next (8b59a11fb8e6 rtc: nuvoton: Modify part number value)
Merging nvdimm/libnvdimm-for-next (d9212b35da52 dax: remove SLAB_MEM_SPREAD flag usage)
Merging at24/at24/for-next (4cece7649650 Linux 6.9-rc1)
Merging ntb/ntb-next (9341b37ec17a ntb_perf: Fix printk format)
Merging seccomp/for-next/seccomp (56af94aace8a samples: user-trap: fix strict-aliasing warning)
Merging fsi/next (c5eeb63edac9 fsi: Fix panic on scom file read)
Merging slimbus/for-next (4cece7649650 Linux 6.9-rc1)
Merging nvmem/for-next (4cece7649650 Linux 6.9-rc1)
Merging xarray/main (2a15de80dd0f idr: fix param name in idr_alloc_cyclic() doc)
Merging hyperv/hyperv-next (f2580a907e5c x86/hyperv: Use Hyper-V entropy to seed guest random number generator)
Merging auxdisplay/for-next (c352a0410726 auxdisplay: seg-led-gpio: Convert to platform remove callback returning void)
Merging kgdb/kgdb/for-next (4f41d30cd6dc kdb: Fix a potential buffer overflow in kdb_local())
Merging hmm/hmm (6613476e225e Linux 6.8-rc1)
Merging cfi/cfi/next (06c2afb862f9 Linux 6.5-rc1)
Merging mhi/mhi-next (813e0ae613d6 bus: mhi: host: Add mhi_power_down_keep_dev() API to support system suspend/hibernation)
Merging memblock/for-next (2159bd4e9057 memblock: Return NUMA_NO_NODE instead of -1 to improve code readability)
Merging cxl/next (ed1ff2fba7af Merge branch 'for-6.9/cxl-einj' into for-6.9/cxl)
Merging zstd/zstd-next (3f832dfb8a8e zstd: fix g_debuglevel export warning)
Merging efi/next (bf87a149828e efi: Clear up misconceptions about a maximum variable name size)
Merging unicode/for-next (0131c1f3cce7 unicode: make utf8 test count static)
Merging slab/slab/for-next (5aa5c7b9a09d mm/slub: remove duplicate initialization for early_kmem_cache_node_alloc())
Merging random/master (4cece7649650 Linux 6.9-rc1)
Merging landlock/next (028243655456 fs/ioctl: Add a comment to keep the logic in sync with LSM policies)
Merging rust/rust-next (8db31d3f3bd5 rust: workqueue: add `#[pin_data]` to `Work`)
Merging sysctl/sysctl-next (4f1136a55dc8 scripts: check-sysctl-docs: handle per-namespace sysctls)
Merging execve/for-next/execve (5248f4097308 binfmt: replace deprecated strncpy)
Merging bitmap/bitmap-for-next (fd8ed16c2419 bitmap: Step down as a reviewer)
Merging hte/for-next (b85ea95d0864 Linux 6.7-rc1)
Merging kspp/for-next/kspp (9c573cd31343 randomize_kstack: Improve entropy diffusion)
Merging kspp-gustavo/for-next/kspp (6613476e225e Linux 6.8-rc1)
Merging nolibc/nolibc (4cece7649650 Linux 6.9-rc1)
Merging tsm/tsm-next (f4738f56d1dc virt: tdx-guest: Add Quote generation support using TSM_REPORTS)
Merging iommufd/for-next (4cece7649650 Linux 6.9-rc1)
Merging header_cleanup/header_cleanup (5f4c01f1e3c7 spinlock: Fix failing build for PREEMPT_RT)

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[relevance 1%]

* Re: [PATCH] mtd: maps: sa1100-flash: Prefer struct_size over open coded arithmetic
  2024-03-30 17:55 11% [PATCH] mtd: maps: sa1100-flash: Prefer struct_size over open coded arithmetic Erick Archer
@ 2024-04-09  6:40  7% ` Miquel Raynal
  0 siblings, 0 replies; 200+ results
From: Miquel Raynal @ 2024-04-09  6:40 UTC (permalink / raw)
  To: Erick Archer, Miquel Raynal, Richard Weinberger,
	Vignesh Raghavendra, Tudor Ambarus, Uwe Kleine-König,
	Kees Cook, Gustavo A. R. Silva
  Cc: linux-mtd, linux-kernel, linux-hardening

On Sat, 2024-03-30 at 17:55:35 UTC, Erick Archer wrote:
> This is an effort to get rid of all multiplications from allocation
> functions in order to prevent integer overflows [1][2].
> 
> As the "info" variable is a pointer to "struct sa_info" and this
> structure ends in a flexible array:
> 
> struct sa_info {
> 	[...]
> 	struct sa_subdev_info	subdev[];
> };
> 
> the preferred way in the kernel is to use the struct_size() helper to
> do the arithmetic instead of the calculation "size + size * count" in
> the kzalloc() function.
> 
> This way, the code is more readable and safer.
> 
> This code was detected with the help of Coccinelle, and audited and
> modified manually.
> 
> Link: https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
> Link: https://github.com/KSPP/linux/issues/160 [2]
> Signed-off-by: Erick Archer <erick.archer@outlook.com>

Applied to https://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux.git mtd/next, thanks.

Miquel

^ permalink raw reply	[relevance 7%]

* Re: [PATCH v3 3/3] net: mana: Avoid open coded arithmetic
  2024-04-06 14:23 12% ` [PATCH v3 3/3] net: mana: Avoid " Erick Archer
@ 2024-04-08 21:45  7%   ` Justin Stitt
  0 siblings, 0 replies; 200+ results
From: Justin Stitt @ 2024-04-08 21:45 UTC (permalink / raw)
  To: Erick Archer
  Cc: Long Li, Ajay Sharma, K. Y. Srinivasan, Haiyang Zhang, Wei Liu,
	Dexuan Cui, David S. Miller, Eric Dumazet, Jakub Kicinski,
	Paolo Abeni, Kees Cook, Gustavo A. R. Silva, Nathan Chancellor,
	Nick Desaulniers, Bill Wendling, Jason Gunthorpe,
	Leon Romanovsky, Shradha Gupta, Konstantin Taranov, linux-rdma,
	linux-hyperv, netdev, linux-kernel, linux-hardening, llvm

Hi,

On Sat, Apr 06, 2024 at 04:23:37PM +0200, Erick Archer wrote:
> This is an effort to get rid of all multiplications from allocation
> functions in order to prevent integer overflows [1][2].
> 
> As the "req" variable is a pointer to "struct mana_cfg_rx_steer_req_v2"
> and this structure ends in a flexible array:
> 
> struct mana_cfg_rx_steer_req_v2 {
>         [...]
>         mana_handle_t indir_tab[] __counted_by(num_indir_entries);
> };
> 
> the preferred way in the kernel is to use the struct_size() helper to
> do the arithmetic instead of the calculation "size + size * count" in
> the kzalloc() function.
> 
> Moreover, use the "offsetof" helper to get the indirect table offset
> instead of the "sizeof" operator and avoid the open-coded arithmetic in
> pointers using the new flex member. This new structure member also allow
> us to remove the "req_indir_tab" variable since it is no longer needed.
> 
> Now, it is also possible to use the "flex_array_size" helper to compute
> the size of these trailing elements in the "memcpy" function.
> 
> This way, the code is more readable and safer.
> 
> This code was detected with the help of Coccinelle, and audited and
> modified manually.
> 
> Link: https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
> Link: https://github.com/KSPP/linux/issues/160 [2]
> Signed-off-by: Erick Archer <erick.archer@outlook.com>

Reviewed-by: Justin Stitt <justinstitt@google.com>

> ---
>  drivers/net/ethernet/microsoft/mana/mana_en.c | 14 ++++++--------
>  1 file changed, 6 insertions(+), 8 deletions(-)
> 
> diff --git a/drivers/net/ethernet/microsoft/mana/mana_en.c b/drivers/net/ethernet/microsoft/mana/mana_en.c
> index d8af5e7e15b4..f2fae659bf3b 100644
> --- a/drivers/net/ethernet/microsoft/mana/mana_en.c
> +++ b/drivers/net/ethernet/microsoft/mana/mana_en.c
> @@ -1058,11 +1058,10 @@ static int mana_cfg_vport_steering(struct mana_port_context *apc,
>  	struct mana_cfg_rx_steer_req_v2 *req;
>  	struct mana_cfg_rx_steer_resp resp = {};
>  	struct net_device *ndev = apc->ndev;
> -	mana_handle_t *req_indir_tab;
>  	u32 req_buf_size;
>  	int err;
>  
> -	req_buf_size = sizeof(*req) + sizeof(mana_handle_t) * num_entries;
> +	req_buf_size = struct_size(req, indir_tab, num_entries);
>  	req = kzalloc(req_buf_size, GFP_KERNEL);
>  	if (!req)
>  		return -ENOMEM;
> @@ -1074,7 +1073,8 @@ static int mana_cfg_vport_steering(struct mana_port_context *apc,
>  
>  	req->vport = apc->port_handle;
>  	req->num_indir_entries = num_entries;
> -	req->indir_tab_offset = sizeof(*req);
> +	req->indir_tab_offset = offsetof(struct mana_cfg_rx_steer_req_v2,
> +					 indir_tab);
>  	req->rx_enable = rx;
>  	req->rss_enable = apc->rss_state;
>  	req->update_default_rxobj = update_default_rxobj;
> @@ -1086,11 +1086,9 @@ static int mana_cfg_vport_steering(struct mana_port_context *apc,
>  	if (update_key)
>  		memcpy(&req->hashkey, apc->hashkey, MANA_HASH_KEY_SIZE);
>  
> -	if (update_tab) {
> -		req_indir_tab = (mana_handle_t *)(req + 1);
> -		memcpy(req_indir_tab, apc->rxobj_table,
> -		       req->num_indir_entries * sizeof(mana_handle_t));
> -	}
> +	if (update_tab)
> +		memcpy(req->indir_tab, apc->rxobj_table,
> +		       flex_array_size(req, indir_tab, req->num_indir_entries));
>  
>  	err = mana_send_request(apc->ac, req, req_buf_size, &resp,
>  				sizeof(resp));
> -- 
> 2.25.1
> 

Thanks
Justin

^ permalink raw reply	[relevance 7%]

* Re: [PATCH v3 1/3] net: mana: Add flex array to struct mana_cfg_rx_steer_req_v2
  2024-04-08 21:34  0%   ` Justin Stitt
@ 2024-04-08 21:43  0%     ` Justin Stitt
  0 siblings, 0 replies; 200+ results
From: Justin Stitt @ 2024-04-08 21:43 UTC (permalink / raw)
  To: Erick Archer
  Cc: Long Li, Ajay Sharma, K. Y. Srinivasan, Haiyang Zhang, Wei Liu,
	Dexuan Cui, David S. Miller, Eric Dumazet, Jakub Kicinski,
	Paolo Abeni, Kees Cook, Gustavo A. R. Silva, Nathan Chancellor,
	Nick Desaulniers, Bill Wendling, Jason Gunthorpe,
	Leon Romanovsky, Shradha Gupta, Konstantin Taranov, linux-rdma,
	linux-hyperv, netdev, linux-kernel, linux-hardening, llvm

On Mon, Apr 8, 2024 at 2:35 PM Justin Stitt <justinstitt@google.com> wrote:
>
> Hi,
>
> On Sat, Apr 06, 2024 at 04:23:35PM +0200, Erick Archer wrote:
> > The "struct mana_cfg_rx_steer_req_v2" uses a dynamically sized set of
> > trailing elements. Specifically, it uses a "mana_handle_t" array. So,
> > use the preferred way in the kernel declaring a flexible array [1].
> >
> > At the same time, prepare for the coming implementation by GCC and Clang
> > of the __counted_by attribute. Flexible array members annotated with
> > __counted_by can have their accesses bounds-checked at run-time via
> > CONFIG_UBSAN_BOUNDS (for array indexing) and CONFIG_FORTIFY_SOURCE (for
> > strcpy/memcpy-family functions).
> >
> > This is a previous step to refactor the two consumers of this structure.
> >
> >  drivers/infiniband/hw/mana/qp.c
> >  drivers/net/ethernet/microsoft/mana/mana_en.c
> >
> > The ultimate goal is to avoid the open-coded arithmetic in the memory
> > allocator functions [2] using the "struct_size" macro.
> >
> > Link: https://www.kernel.org/doc/html/next/process/deprecated.html#zero-length-and-one-element-arrays [1]
> > Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [2]
> > Signed-off-by: Erick Archer <erick.archer@outlook.com>
>
> I think this could have all been one patch, I found myself jumping
> around the three patches here piecing together context.

I now see Leon said to combine them in v2. Whoops, sorry to give
conflicting feedback.

>
> Reviewed-by: Justin Stitt <justinstitt@google.com>
>
> > ---
> >  include/net/mana/mana.h | 1 +
> >  1 file changed, 1 insertion(+)
> >
> > diff --git a/include/net/mana/mana.h b/include/net/mana/mana.h
> > index 4eeedf14711b..561f6719fb4e 100644
> > --- a/include/net/mana/mana.h
> > +++ b/include/net/mana/mana.h
> > @@ -670,6 +670,7 @@ struct mana_cfg_rx_steer_req_v2 {
> >       u8 hashkey[MANA_HASH_KEY_SIZE];
> >       u8 cqe_coalescing_enable;
> >       u8 reserved2[7];
> > +     mana_handle_t indir_tab[] __counted_by(num_indir_entries);
> >  }; /* HW DATA */
> >
> >  struct mana_cfg_rx_steer_resp {
> > --
> > 2.25.1
> >
>
> Thanks
> Justin

^ permalink raw reply	[relevance 0%]

* Re: [PATCH v3 2/3] RDMA/mana_ib: Prefer struct_size over open coded arithmetic
  2024-04-06 14:23 12% ` [PATCH v3 2/3] RDMA/mana_ib: Prefer struct_size over open coded arithmetic Erick Archer
  2024-04-08 19:42  7%   ` Long Li
@ 2024-04-08 21:38  7%   ` Justin Stitt
  1 sibling, 0 replies; 200+ results
From: Justin Stitt @ 2024-04-08 21:38 UTC (permalink / raw)
  To: Erick Archer
  Cc: Long Li, Ajay Sharma, K. Y. Srinivasan, Haiyang Zhang, Wei Liu,
	Dexuan Cui, David S. Miller, Eric Dumazet, Jakub Kicinski,
	Paolo Abeni, Kees Cook, Gustavo A. R. Silva, Nathan Chancellor,
	Nick Desaulniers, Bill Wendling, Jason Gunthorpe,
	Leon Romanovsky, Shradha Gupta, Konstantin Taranov, linux-rdma,
	linux-hyperv, netdev, linux-kernel, linux-hardening, llvm

Hi,

On Sat, Apr 06, 2024 at 04:23:36PM +0200, Erick Archer wrote:
> This is an effort to get rid of all multiplications from allocation
> functions in order to prevent integer overflows [1][2].
> 
> As the "req" variable is a pointer to "struct mana_cfg_rx_steer_req_v2"
> and this structure ends in a flexible array:
> 
> struct mana_cfg_rx_steer_req_v2 {
> 	[...]
>         mana_handle_t indir_tab[] __counted_by(num_indir_entries);
> };
> 
> the preferred way in the kernel is to use the struct_size() helper to
> do the arithmetic instead of the calculation "size + size * count" in
> the kzalloc() function.
> 
> Moreover, use the "offsetof" helper to get the indirect table offset
> instead of the "sizeof" operator and avoid the open-coded arithmetic in
> pointers using the new flex member. This new structure member also allow
> us to remove the "req_indir_tab" variable since it is no longer needed.
> 
> This way, the code is more readable and safer.
> 
> This code was detected with the help of Coccinelle, and audited and
> modified manually.
> 
> Link: https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
> Link: https://github.com/KSPP/linux/issues/160 [2]
> Signed-off-by: Erick Archer <erick.archer@outlook.com>

Reviewed-by: Justin Stitt <justinstitt@google.com>

> ---
>  drivers/infiniband/hw/mana/qp.c | 12 +++++-------
>  1 file changed, 5 insertions(+), 7 deletions(-)
> 
> diff --git a/drivers/infiniband/hw/mana/qp.c b/drivers/infiniband/hw/mana/qp.c
> index ef0a6dc664d0..4cd8f8afe80d 100644
> --- a/drivers/infiniband/hw/mana/qp.c
> +++ b/drivers/infiniband/hw/mana/qp.c
> @@ -15,15 +15,13 @@ static int mana_ib_cfg_vport_steering(struct mana_ib_dev *dev,
>  	struct mana_port_context *mpc = netdev_priv(ndev);
>  	struct mana_cfg_rx_steer_req_v2 *req;
>  	struct mana_cfg_rx_steer_resp resp = {};
> -	mana_handle_t *req_indir_tab;
>  	struct gdma_context *gc;
>  	u32 req_buf_size;
>  	int i, err;
>  
>  	gc = mdev_to_gc(dev);
>  
> -	req_buf_size =
> -		sizeof(*req) + sizeof(mana_handle_t) * MANA_INDIRECT_TABLE_SIZE;
> +	req_buf_size = struct_size(req, indir_tab, MANA_INDIRECT_TABLE_SIZE);
>  	req = kzalloc(req_buf_size, GFP_KERNEL);
>  	if (!req)
>  		return -ENOMEM;
> @@ -44,20 +42,20 @@ static int mana_ib_cfg_vport_steering(struct mana_ib_dev *dev,
>  		req->rss_enable = true;
>  
>  	req->num_indir_entries = MANA_INDIRECT_TABLE_SIZE;
> -	req->indir_tab_offset = sizeof(*req);
> +	req->indir_tab_offset = offsetof(struct mana_cfg_rx_steer_req_v2,
> +					 indir_tab);
>  	req->update_indir_tab = true;
>  	req->cqe_coalescing_enable = 1;
>  
> -	req_indir_tab = (mana_handle_t *)(req + 1);
>  	/* The ind table passed to the hardware must have
>  	 * MANA_INDIRECT_TABLE_SIZE entries. Adjust the verb
>  	 * ind_table to MANA_INDIRECT_TABLE_SIZE if required
>  	 */
>  	ibdev_dbg(&dev->ib_dev, "ind table size %u\n", 1 << log_ind_tbl_size);
>  	for (i = 0; i < MANA_INDIRECT_TABLE_SIZE; i++) {
> -		req_indir_tab[i] = ind_table[i % (1 << log_ind_tbl_size)];
> +		req->indir_tab[i] = ind_table[i % (1 << log_ind_tbl_size)];
>  		ibdev_dbg(&dev->ib_dev, "index %u handle 0x%llx\n", i,
> -			  req_indir_tab[i]);
> +			  req->indir_tab[i]);
>  	}
>  
>  	req->update_hashkey = true;
> -- 
> 2.25.1
> 

Thanks
Justin

^ permalink raw reply	[relevance 7%]

* Re: [PATCH v3 1/3] net: mana: Add flex array to struct mana_cfg_rx_steer_req_v2
  2024-04-06 14:23  6% ` [PATCH v3 1/3] net: mana: " Erick Archer
  2024-04-08 19:42  0%   ` Long Li
@ 2024-04-08 21:34  0%   ` Justin Stitt
  2024-04-08 21:43  0%     ` Justin Stitt
  1 sibling, 1 reply; 200+ results
From: Justin Stitt @ 2024-04-08 21:34 UTC (permalink / raw)
  To: Erick Archer
  Cc: Long Li, Ajay Sharma, K. Y. Srinivasan, Haiyang Zhang, Wei Liu,
	Dexuan Cui, David S. Miller, Eric Dumazet, Jakub Kicinski,
	Paolo Abeni, Kees Cook, Gustavo A. R. Silva, Nathan Chancellor,
	Nick Desaulniers, Bill Wendling, Jason Gunthorpe,
	Leon Romanovsky, Shradha Gupta, Konstantin Taranov, linux-rdma,
	linux-hyperv, netdev, linux-kernel, linux-hardening, llvm

Hi,

On Sat, Apr 06, 2024 at 04:23:35PM +0200, Erick Archer wrote:
> The "struct mana_cfg_rx_steer_req_v2" uses a dynamically sized set of
> trailing elements. Specifically, it uses a "mana_handle_t" array. So,
> use the preferred way in the kernel declaring a flexible array [1].
> 
> At the same time, prepare for the coming implementation by GCC and Clang
> of the __counted_by attribute. Flexible array members annotated with
> __counted_by can have their accesses bounds-checked at run-time via
> CONFIG_UBSAN_BOUNDS (for array indexing) and CONFIG_FORTIFY_SOURCE (for
> strcpy/memcpy-family functions).
> 
> This is a previous step to refactor the two consumers of this structure.
> 
>  drivers/infiniband/hw/mana/qp.c
>  drivers/net/ethernet/microsoft/mana/mana_en.c
> 
> The ultimate goal is to avoid the open-coded arithmetic in the memory
> allocator functions [2] using the "struct_size" macro.
> 
> Link: https://www.kernel.org/doc/html/next/process/deprecated.html#zero-length-and-one-element-arrays [1]
> Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [2]
> Signed-off-by: Erick Archer <erick.archer@outlook.com>

I think this could have all been one patch, I found myself jumping
around the three patches here piecing together context.

Reviewed-by: Justin Stitt <justinstitt@google.com>

> ---
>  include/net/mana/mana.h | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/include/net/mana/mana.h b/include/net/mana/mana.h
> index 4eeedf14711b..561f6719fb4e 100644
> --- a/include/net/mana/mana.h
> +++ b/include/net/mana/mana.h
> @@ -670,6 +670,7 @@ struct mana_cfg_rx_steer_req_v2 {
>  	u8 hashkey[MANA_HASH_KEY_SIZE];
>  	u8 cqe_coalescing_enable;
>  	u8 reserved2[7];
> +	mana_handle_t indir_tab[] __counted_by(num_indir_entries);
>  }; /* HW DATA */
>  
>  struct mana_cfg_rx_steer_resp {
> -- 
> 2.25.1
> 

Thanks
Justin

^ permalink raw reply	[relevance 0%]

* Re: [PATCH v2] drm/radeon/radeon_display: Decrease the size of allocated memory
  2024-04-01 12:35  0% ` Christian König
@ 2024-04-08 20:05  0%   ` Alex Deucher
  0 siblings, 0 replies; 200+ results
From: Alex Deucher @ 2024-04-08 20:05 UTC (permalink / raw)
  To: Christian König
  Cc: Erick Archer, Alex Deucher, Pan, Xinhui, David Airlie,
	Daniel Vetter, Gustavo A. R. Silva, Kees Cook, amd-gfx,
	dri-devel, linux-kernel, linux-hardening

On Mon, Apr 1, 2024 at 8:35 AM Christian König <christian.koenig@amd.com> wrote:
>
> Am 30.03.24 um 17:34 schrieb Erick Archer:
> > This is an effort to get rid of all multiplications from allocation
> > functions in order to prevent integer overflows [1] [2].
> >
> > In this case, the memory allocated to store RADEONFB_CONN_LIMIT pointers
> > to "drm_connector" structures can be avoided. This is because this
> > memory area is never accessed.
> >
> > Also, in the kzalloc function, it is preferred to use sizeof(*pointer)
> > instead of sizeof(type) due to the type of the variable can change and
> > one needs not change the former (unlike the latter).
> >
> > At the same time take advantage to remove the "#if 0" block, the code
> > where the removed memory area was accessed, and the RADEONFB_CONN_LIMIT
> > constant due to now is never used.
> >
> > Link: https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
> > Link: https://github.com/KSPP/linux/issues/160 [2]
> > Signed-off-by: Erick Archer <erick.archer@outlook.com>
>
> Well in general we don't do any new feature development any more for the
> radeon driver.
>
> But this cleanup looks so straight forward that the risk of breaking
> something is probably very low.
>
> Acked-by from my side, but Alex should probably take a look as well.

I can't remember why that was done that way.  Maybe some leftover from
the early KMS days before we finalized the fbdev interactions?
Anyway, patch applied.  Thanks.

Alex

>
> Regards,
> Christian.
>
> > ---
> > Changes in v2:
> > - Rebase against linux-next.
> >
> > Previous versions:
> > v1 -> https://lore.kernel.org/linux-hardening/20240222180431.7451-1-erick.archer@gmx.com/
> >
> > Hi everyone,
> >
> > Any comments would be greatly appreciated. The first version was
> > not commented.
> >
> > Thanks,
> > Erick
> > ---
> >   drivers/gpu/drm/radeon/radeon.h         | 1 -
> >   drivers/gpu/drm/radeon/radeon_display.c | 8 +-------
> >   2 files changed, 1 insertion(+), 8 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/radeon/radeon.h b/drivers/gpu/drm/radeon/radeon.h
> > index 3e5ff17e3caf..0999c8eaae94 100644
> > --- a/drivers/gpu/drm/radeon/radeon.h
> > +++ b/drivers/gpu/drm/radeon/radeon.h
> > @@ -132,7 +132,6 @@ extern int radeon_cik_support;
> >   /* RADEON_IB_POOL_SIZE must be a power of 2 */
> >   #define RADEON_IB_POOL_SIZE                 16
> >   #define RADEON_DEBUGFS_MAX_COMPONENTS               32
> > -#define RADEONFB_CONN_LIMIT                  4
> >   #define RADEON_BIOS_NUM_SCRATCH                     8
> >
> >   /* internal ring indices */
> > diff --git a/drivers/gpu/drm/radeon/radeon_display.c b/drivers/gpu/drm/radeon/radeon_display.c
> > index efd18c8d84c8..5f1d24d3120c 100644
> > --- a/drivers/gpu/drm/radeon/radeon_display.c
> > +++ b/drivers/gpu/drm/radeon/radeon_display.c
> > @@ -683,7 +683,7 @@ static void radeon_crtc_init(struct drm_device *dev, int index)
> >       struct radeon_device *rdev = dev->dev_private;
> >       struct radeon_crtc *radeon_crtc;
> >
> > -     radeon_crtc = kzalloc(sizeof(struct radeon_crtc) + (RADEONFB_CONN_LIMIT * sizeof(struct drm_connector *)), GFP_KERNEL);
> > +     radeon_crtc = kzalloc(sizeof(*radeon_crtc), GFP_KERNEL);
> >       if (radeon_crtc == NULL)
> >               return;
> >
> > @@ -709,12 +709,6 @@ static void radeon_crtc_init(struct drm_device *dev, int index)
> >       dev->mode_config.cursor_width = radeon_crtc->max_cursor_width;
> >       dev->mode_config.cursor_height = radeon_crtc->max_cursor_height;
> >
> > -#if 0
> > -     radeon_crtc->mode_set.crtc = &radeon_crtc->base;
> > -     radeon_crtc->mode_set.connectors = (struct drm_connector **)(radeon_crtc + 1);
> > -     radeon_crtc->mode_set.num_connectors = 0;
> > -#endif
> > -
> >       if (rdev->is_atom_bios && (ASIC_IS_AVIVO(rdev) || radeon_r4xx_atom))
> >               radeon_atombios_init_crtc(dev, radeon_crtc);
> >       else
>

^ permalink raw reply	[relevance 0%]

* RE: [PATCH v3 1/3] net: mana: Add flex array to struct mana_cfg_rx_steer_req_v2
  2024-04-06 14:23  6% ` [PATCH v3 1/3] net: mana: " Erick Archer
@ 2024-04-08 19:42  0%   ` Long Li
  2024-04-08 21:34  0%   ` Justin Stitt
  1 sibling, 0 replies; 200+ results
From: Long Li @ 2024-04-08 19:42 UTC (permalink / raw)
  To: Erick Archer, Ajay Sharma, KY Srinivasan, Haiyang Zhang, Wei Liu,
	Dexuan Cui, David S. Miller, Eric Dumazet, Jakub Kicinski,
	Paolo Abeni, Kees Cook, Gustavo A. R. Silva, Nathan Chancellor,
	Nick Desaulniers, Bill Wendling, Justin Stitt, Jason Gunthorpe,
	Leon Romanovsky, Shradha Gupta, Konstantin Taranov
  Cc: linux-rdma, linux-hyperv, netdev, linux-kernel, linux-hardening, llvm

> Subject: [PATCH v3 1/3] net: mana: Add flex array to struct
> mana_cfg_rx_steer_req_v2
>
> The "struct mana_cfg_rx_steer_req_v2" uses a dynamically sized set of trailing
> elements. Specifically, it uses a "mana_handle_t" array. So, use the preferred way
> in the kernel declaring a flexible array [1].
>
> At the same time, prepare for the coming implementation by GCC and Clang of
> the __counted_by attribute. Flexible array members annotated with
> __counted_by can have their accesses bounds-checked at run-time via
> CONFIG_UBSAN_BOUNDS (for array indexing) and CONFIG_FORTIFY_SOURCE
> (for strcpy/memcpy-family functions).
>
> This is a previous step to refactor the two consumers of this structure.
>
>  drivers/infiniband/hw/mana/qp.c
>  drivers/net/ethernet/microsoft/mana/mana_en.c
>
> The ultimate goal is to avoid the open-coded arithmetic in the memory allocator
> functions [2] using the "struct_size" macro.
>
> Link:
> https://www.ker/
> nel.org%2Fdoc%2Fhtml%2Fnext%2Fprocess%2Fdeprecated.html%23zero-length-
> and-one-element-
> arrays&data=05%7C02%7Clongli%40microsoft.com%7Ce75134553ebf4bca87bd0
> 8dc564acf8e%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C63848012
> 6558204741%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV
> 2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7C%7C%7C&sdata=%2B8k08
> SWrKXJiDfQ2cal65b1K1sElRB8x0oA5EFeUqbw%3D&reserved=0 [1]
> Link:
> https://www.ker/
> nel.org%2Fdoc%2Fhtml%2Fnext%2Fprocess%2Fdeprecated.html%23open-coded-
> arithmetic-in-allocator-
> arguments&data=05%7C02%7Clongli%40microsoft.com%7Ce75134553ebf4bca8
> 7bd08dc564acf8e%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C6384
> 80126558211762%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJ
> QIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7C%7C%7C&sdata=h0
> wsUICWnJwn1Nd5fr%2B0z8SXZIqXQrNWKTEbVlB%2BNI0%3D&reserved=0 [2]
> Signed-off-by: Erick Archer <erick.archer@outlook.com>

Reviewed-by: Long Li <longli@microsoft.com>


^ permalink raw reply	[relevance 0%]

* RE: [PATCH v3 2/3] RDMA/mana_ib: Prefer struct_size over open coded arithmetic
  2024-04-06 14:23 12% ` [PATCH v3 2/3] RDMA/mana_ib: Prefer struct_size over open coded arithmetic Erick Archer
@ 2024-04-08 19:42  7%   ` Long Li
  2024-04-08 21:38  7%   ` Justin Stitt
  1 sibling, 0 replies; 200+ results
From: Long Li @ 2024-04-08 19:42 UTC (permalink / raw)
  To: Erick Archer, Ajay Sharma, KY Srinivasan, Haiyang Zhang, Wei Liu,
	Dexuan Cui, David S. Miller, Eric Dumazet, Jakub Kicinski,
	Paolo Abeni, Kees Cook, Gustavo A. R. Silva, Nathan Chancellor,
	Nick Desaulniers, Bill Wendling, Justin Stitt, Jason Gunthorpe,
	Leon Romanovsky, Shradha Gupta, Konstantin Taranov
  Cc: linux-rdma, linux-hyperv, netdev, linux-kernel, linux-hardening, llvm

> Subject: [PATCH v3 2/3] RDMA/mana_ib: Prefer struct_size over open coded
> arithmetic
>
> This is an effort to get rid of all multiplications from allocation functions in order to
> prevent integer overflows [1][2].
>
> As the "req" variable is a pointer to "struct mana_cfg_rx_steer_req_v2"
> and this structure ends in a flexible array:
>
> struct mana_cfg_rx_steer_req_v2 {
>       [...]
>         mana_handle_t indir_tab[] __counted_by(num_indir_entries); };
>
> the preferred way in the kernel is to use the struct_size() helper to do the
> arithmetic instead of the calculation "size + size * count" in the kzalloc() function.
>
> Moreover, use the "offsetof" helper to get the indirect table offset instead of the
> "sizeof" operator and avoid the open-coded arithmetic in pointers using the new
> flex member. This new structure member also allow us to remove the
> "req_indir_tab" variable since it is no longer needed.
>
> This way, the code is more readable and safer.
>
> This code was detected with the help of Coccinelle, and audited and modified
> manually.
>
> Link:
> https://www.ker/
> nel.org%2Fdoc%2Fhtml%2Flatest%2Fprocess%2Fdeprecated.html%23open-
> coded-arithmetic-in-allocator-
> arguments&data=05%7C02%7Clongli%40microsoft.com%7Cfcf2a410393a429633
> ca08dc56506b01%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C63848
> 0150654917952%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQI
> joiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7C%7C%7C&sdata=2zSek
> zsyXsS1s9xw%2FwaSEl3h4s6AeiykFG4KiJLzXOc%3D&reserved=0 [1]
> Link:
> https://github.co/
> m%2FKSPP%2Flinux%2Fissues%2F160&data=05%7C02%7Clongli%40microsoft.co
> m%7Cfcf2a410393a429633ca08dc56506b01%7C72f988bf86f141af91ab2d7cd01
> 1db47%7C1%7C0%7C638480150654924997%7CUnknown%7CTWFpbGZsb3d8ey
> JWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C
> 0%7C%7C%7C&sdata=4pzQWVWVcIaeS07VgXY1I6%2FS%2FEFejUD4qv1D2Ouwf
> pA%3D&reserved=0 [2]
> Signed-off-by: Erick Archer <erick.archer@outlook.com>

Reviewed-by: Long Li <longli@microsoft.com>


^ permalink raw reply	[relevance 7%]

* Re: [PATCH v3 0/3] RDMA/mana_ib: Add flex array to struct mana_cfg_rx_steer_req_v2
  2024-04-06 14:23  7% [PATCH v3 0/3] RDMA/mana_ib: Add flex array to struct mana_cfg_rx_steer_req_v2 Erick Archer
@ 2024-04-08 11:07  0% ` Leon Romanovsky
  2024-04-11 14:50  6% ` patchwork-bot+netdevbpf
  1 sibling, 0 replies; 200+ results
From: Leon Romanovsky @ 2024-04-08 11:07 UTC (permalink / raw)
  To: Erick Archer, Jakub Kicinski
  Cc: Long Li, Ajay Sharma, K. Y. Srinivasan, Haiyang Zhang, Wei Liu,
	Dexuan Cui, David S. Miller, Eric Dumazet, Paolo Abeni,
	Kees Cook, Gustavo A. R. Silva, Nathan Chancellor,
	Nick Desaulniers, Bill Wendling, Justin Stitt, Jason Gunthorpe,
	Shradha Gupta, Konstantin Taranov, linux-rdma, linux-hyperv,
	netdev, linux-kernel, linux-hardening, llvm

On Sat, Apr 06, 2024 at 04:23:34PM +0200, Erick Archer wrote:
> The "struct mana_cfg_rx_steer_req_v2" uses a dynamically sized set of
> trailing elements. Specifically, it uses a "mana_handle_t" array. So,
> use the preferred way in the kernel declaring a flexible array [1].
> 
> At the same time, prepare for the coming implementation by GCC and Clang
> of the __counted_by attribute. Flexible array members annotated with
> __counted_by can have their accesses bounds-checked at run-time via
> CONFIG_UBSAN_BOUNDS (for array indexing) and CONFIG_FORTIFY_SOURCE (for
> strcpy/memcpy-family functions).
> 
> Also, avoid the open-coded arithmetic in the memory allocator functions
> [2] using the "struct_size" macro.
> 
> Moreover, use the "offsetof" helper to get the indirect table offset
> instead of the "sizeof" operator and avoid the open-coded arithmetic in
> pointers using the new flex member. This new structure member also allow
> us to remove the "req_indir_tab" variable since it is no longer needed.
> 
> Now, it is also possible to use the "flex_array_size" helper to compute
> the size of these trailing elements in the "memcpy" function.
> 
> Specifically, the first commit adds the flex member and the patches 2 and
> 3 refactor the consumers of the "struct mana_cfg_rx_steer_req_v2".
> 
> This code was detected with the help of Coccinelle, and audited and
> modified manually. The Coccinelle script used to detect this code pattern
> is the following:
> 
> virtual report
> 
> @rule1@
> type t1;
> type t2;
> identifier i0;
> identifier i1;
> identifier i2;
> identifier ALLOC =~ "kmalloc|kzalloc|kmalloc_node|kzalloc_node|vmalloc|vzalloc|kvmalloc|kvzalloc";
> position p1;
> @@
> 
> i0 = sizeof(t1) + sizeof(t2) * i1;
> ...
> i2 = ALLOC@p1(..., i0, ...);
> 
> @script:python depends on report@
> p1 << rule1.p1;
> @@
> 
> msg = "WARNING: verify allocation on line %s" % (p1[0].line)
> coccilib.report.print_report(p1[0],msg)
> 
> Link: https://www.kernel.org/doc/html/next/process/deprecated.html#zero-length-and-one-element-arrays [1]
> Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [2]
> Signed-off-by: Erick Archer <erick.archer@outlook.com>
> ---
> Changes in v3:
> - Split the changes in various commits to simplify the acceptance process
>   (Leon Romanovsky).
> 
> Changes in v2:
> - Remove the "req_indir_tab" variable (Gustavo A. R. Silva).
> - Update the commit message.
> - Add the "__counted_by" attribute.
> 
> Previous versions:
> v1 -> https://lore.kernel.org/linux-hardening/AS8PR02MB7237974EF1B9BAFA618166C38B382@AS8PR02MB7237.eurprd02.prod.outlook.com/
> v2 -> https://lore.kernel.org/linux-hardening/AS8PR02MB723729C5A63F24C312FC9CD18B3F2@AS8PR02MB7237.eurprd02.prod.outlook.com/
> ---
> Erick Archer (3):
>   net: mana: Add flex array to struct mana_cfg_rx_steer_req_v2
>   RDMA/mana_ib: Prefer struct_size over open coded arithmetic
>   net: mana: Avoid open coded arithmetic

Unfortunately, I still can't take RDMA patch alone without the netdev
patches.

Jakub, do you want shared branch for this series or should I take
everything through RDMA tree as netdev part is small enough?

Thanks

^ permalink raw reply	[relevance 0%]

* Re: [PATCH v2] dmaengine: pl08x: Use kcalloc() instead of kzalloc()
  2024-04-07 11:39  0% ` Vinod Koul
@ 2024-04-07 17:22  6%   ` Erick Archer
  0 siblings, 0 replies; 200+ results
From: Erick Archer @ 2024-04-07 17:22 UTC (permalink / raw)
  To: Vinod Koul
  Cc: Erick Archer, Kees Cook, Gustavo A. R. Silva, dmaengine,
	linux-kernel, linux-hardening

Hi Vinod,

On Sun, Apr 07, 2024 at 05:09:39PM +0530, Vinod Koul wrote:
> On 30-03-24, 16:23, Erick Archer wrote:
> > This is an effort to get rid of all multiplications from allocation
> > functions in order to prevent integer overflows [1].
> > 
> > Here the multiplication is obviously safe because the "channels"
> > member can only be 8 or 2. This value is set when the "vendor_data"
> > structs are initialized.
> > 
> > static struct vendor_data vendor_pl080 = {
> > 	[...]
> > 	.channels = 8,
> > 	[...]
> > };
> > 
> > static struct vendor_data vendor_nomadik = {
> > 	[...]
> > 	.channels = 8,
> > 	[...]
> > };
> > 
> > static struct vendor_data vendor_pl080s = {
> > 	[...]
> > 	.channels = 8,
> > 	[...]
> > };
> > 
> > static struct vendor_data vendor_pl081 = {
> > 	[...]
> > 	.channels = 2,
> > 	[...]
> > };
> > 
> > However, using kcalloc() is more appropriate [1] and improves
> > readability. This patch has no effect on runtime behavior.
> > 
> > Link: https://github.com/KSPP/linux/issues/162 [1]
> > Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
> > Reviewed-by: Gustavo A. R. Silva <gustavoars@kernel.org>
> > Signed-off-by: Erick Archer <erick.archer@outlook.com>
> > ---
> > Changes in v2:
> > - Add the "Reviewed-by:" tag.
> > - Rebase against linux-next.
> > 
> > Previous versions:
> > v1 -> https://lore.kernel.org/linux-hardening/20240128115236.4791-1-erick.archer@gmx.com/
> > 
> > Hi everyone,
> > 
> > This patch seems to be lost. Gustavo reviewed it on January 30, 2024
> > but the patch has not been applied since.
> > 
> > Thanks,
> > Erick
> > ---
> >  drivers/dma/amba-pl08x.c | 4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> > 
> > diff --git a/drivers/dma/amba-pl08x.c b/drivers/dma/amba-pl08x.c
> > index fbf048f432bf..73a5cfb4da8a 100644
> > --- a/drivers/dma/amba-pl08x.c
> > +++ b/drivers/dma/amba-pl08x.c
> > @@ -2855,8 +2855,8 @@ static int pl08x_probe(struct amba_device *adev, const struct amba_id *id)
> >  	}
> >  
> >  	/* Initialize physical channels */
> > -	pl08x->phy_chans = kzalloc((vd->channels * sizeof(*pl08x->phy_chans)),
> > -			GFP_KERNEL);
> > +	pl08x->phy_chans = kcalloc(vd->channels, sizeof(*pl08x->phy_chans),
> > +				   GFP_KERNEL);
> 
> How is one better than the other?
> 
The advantage of kcalloc is that it will prevent integer overflows that
could result from the multiplication of number of elements and size, and
it is also a bit nicer to read.

However, in this case the multiplication is obviously safe but the best
practice is to use the two factor form if available (as explained in the
section "open-coded arithmetic in allocator arguments" of the "Deprecated
Interfaces, Language Features, Attributes, and Conventions [1]"

[1] https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments

Regards,
Erick
> 
> >  	if (!pl08x->phy_chans) {
> >  		ret = -ENOMEM;
> >  		goto out_no_phychans;
> > -- 
> > 2.25.1
> 
> -- 
> ~Vinod

^ permalink raw reply	[relevance 6%]

* Re: [PATCH v2] dmaengine: pl08x: Use kcalloc() instead of kzalloc()
  2024-03-30 15:23  4% [PATCH v2] dmaengine: pl08x: Use kcalloc() instead of kzalloc() Erick Archer
@ 2024-04-07 11:39  0% ` Vinod Koul
  2024-04-07 17:22  6%   ` Erick Archer
  0 siblings, 1 reply; 200+ results
From: Vinod Koul @ 2024-04-07 11:39 UTC (permalink / raw)
  To: Erick Archer
  Cc: Kees Cook, Gustavo A. R. Silva, dmaengine, linux-kernel, linux-hardening

On 30-03-24, 16:23, Erick Archer wrote:
> This is an effort to get rid of all multiplications from allocation
> functions in order to prevent integer overflows [1].
> 
> Here the multiplication is obviously safe because the "channels"
> member can only be 8 or 2. This value is set when the "vendor_data"
> structs are initialized.
> 
> static struct vendor_data vendor_pl080 = {
> 	[...]
> 	.channels = 8,
> 	[...]
> };
> 
> static struct vendor_data vendor_nomadik = {
> 	[...]
> 	.channels = 8,
> 	[...]
> };
> 
> static struct vendor_data vendor_pl080s = {
> 	[...]
> 	.channels = 8,
> 	[...]
> };
> 
> static struct vendor_data vendor_pl081 = {
> 	[...]
> 	.channels = 2,
> 	[...]
> };
> 
> However, using kcalloc() is more appropriate [1] and improves
> readability. This patch has no effect on runtime behavior.
> 
> Link: https://github.com/KSPP/linux/issues/162 [1]
> Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
> Reviewed-by: Gustavo A. R. Silva <gustavoars@kernel.org>
> Signed-off-by: Erick Archer <erick.archer@outlook.com>
> ---
> Changes in v2:
> - Add the "Reviewed-by:" tag.
> - Rebase against linux-next.
> 
> Previous versions:
> v1 -> https://lore.kernel.org/linux-hardening/20240128115236.4791-1-erick.archer@gmx.com/
> 
> Hi everyone,
> 
> This patch seems to be lost. Gustavo reviewed it on January 30, 2024
> but the patch has not been applied since.
> 
> Thanks,
> Erick
> ---
>  drivers/dma/amba-pl08x.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/dma/amba-pl08x.c b/drivers/dma/amba-pl08x.c
> index fbf048f432bf..73a5cfb4da8a 100644
> --- a/drivers/dma/amba-pl08x.c
> +++ b/drivers/dma/amba-pl08x.c
> @@ -2855,8 +2855,8 @@ static int pl08x_probe(struct amba_device *adev, const struct amba_id *id)
>  	}
>  
>  	/* Initialize physical channels */
> -	pl08x->phy_chans = kzalloc((vd->channels * sizeof(*pl08x->phy_chans)),
> -			GFP_KERNEL);
> +	pl08x->phy_chans = kcalloc(vd->channels, sizeof(*pl08x->phy_chans),
> +				   GFP_KERNEL);

How is one better than the other?


>  	if (!pl08x->phy_chans) {
>  		ret = -ENOMEM;
>  		goto out_no_phychans;
> -- 
> 2.25.1

-- 
~Vinod

^ permalink raw reply	[relevance 0%]

* Re: [PATCH] batman-adv: Add flex array to struct batadv_tvlv_tt_data
  2024-04-02 19:06  0% ` Sven Eckelmann
@ 2024-04-06 16:46  0%   ` Erick Archer
  0 siblings, 0 replies; 200+ results
From: Erick Archer @ 2024-04-06 16:46 UTC (permalink / raw)
  To: Sven Eckelmann
  Cc: Marek Lindner, Simon Wunderlich, Antonio Quartulli,
	David S.  Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
	Kees Cook, Gustavo A. R. Silva, Erick Archer, b.a.t.m.a.n,
	linux-kernel, netdev, linux-hardening

Hi Sven,

On Tue, Apr 02, 2024 at 09:06:35PM +0200, Sven Eckelmann wrote:
> On Tuesday, 2 April 2024 19:23:01 CEST Erick Archer wrote:
> > The "struct batadv_tvlv_tt_data" uses a dynamically sized set of
> > trailing elements. Specifically, it uses an array of structures of type
> > "batadv_tvlv_tt_vlan_data". So, use the preferred way in the kernel
> > declaring a flexible array [1].
> > 
> > The order in which the structure batadv_tvlv_tt_data and the structure
> > batadv_tvlv_tt_vlan_data are defined must be swap to avoid an incomplete
> > type error.
> > 
> > Also, avoid the open-coded arithmetic in memory allocator functions [2]
> > using the "struct_size" macro and use the "flex_array_size" helper to
> > clarify some calculations, when possible.
> > 
> > Moreover, the new structure member also allow us to avoid the open-coded
> > arithmetic on pointers in some situations. Take advantage of this.
> > 
> > This code was detected with the help of Coccinelle, and audited and
> > modified manually.
> > 
> > Link: https://www.kernel.org/doc/html/next/process/deprecated.html#zero-length-and-one-element-arrays [1]
> > Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [2]
> > Signed-off-by: Erick Archer <erick.archer@outlook.com>
> 
> > ---
> > Hi,
> > 
> > I would like to add the "__counted_by(num_vlan)" tag to the new flex member
> > but I don't know if this line can affect it.
> > 
> > ntohs(tt_data->num_vlan)
> 
> 
> Yes, num_vlan is a __be16. I could only identify the kernel-doc related 
> scripts as consumer. But maybe they are more - so I would defer this question 
> to kernel-hardening.

Thanks for the info.
> 
> And with this change, I get a lot of additional warnings (-Wsparse-all)
> 
> 
> cfg: BLA=n DAT=y DEBUG=y TRACING=n NC=y MCAST=n BATMAN_V=n
>     net/batman-adv/translation-table.c:574:21: warning: using sizeof on a flexible structure
>     net/batman-adv/translation-table.c:859:25: warning: using sizeof on a flexible structure
>     net/batman-adv/translation-table.c:859:25: warning: using sizeof on a flexible structure
>     net/batman-adv/translation-table.c:938:25: warning: using sizeof on a flexible structure
>     net/batman-adv/translation-table.c:938:25: warning: using sizeof on a flexible structure
>     net/batman-adv/translation-table.c:2932:16: warning: using sizeof on a flexible structure
>     net/batman-adv/translation-table.c:2932:16: warning: using sizeof on a flexible structure
>     net/batman-adv/translation-table.c:3378:21: warning: using sizeof on a flexible structure
>     net/batman-adv/translation-table.c:3378:21: warning: using sizeof on a flexible structure
>     net/batman-adv/translation-table.c:3982:30: warning: using sizeof on a flexible structure
>     net/batman-adv/translation-table.c:3986:27: warning: using sizeof on a flexible structure
>     net/batman-adv/translation-table.c:4026:30: warning: using sizeof on a flexible structure
>     net/batman-adv/translation-table.c:4030:27: warning: using sizeof on a flexible structure
>     net/batman-adv/translation-table.c:4032:23: warning: cast from restricted __be16
>     net/batman-adv/translation-table.c:4032:23: warning: restricted __be16 degrades to integer
>     net/batman-adv/translation-table.c:4032:23: warning: incorrect type in argument 1 (different base types)
>     net/batman-adv/translation-table.c:4032:23:    expected unsigned long [usertype] factor1
>     net/batman-adv/translation-table.c:4032:23:    got restricted __be16 [usertype] num_vlan
> 
> [...]

I will work on this for the next version. Thanks for share these warnings.

> >  	num_vlan = ntohs(tt_data->num_vlan);
> >  
> > -	if (tvlv_value_len < sizeof(*tt_vlan) * num_vlan)
> > +	flex_size = flex_array_size(tt_data, vlan_data, num_vlan);
> > +	if (tvlv_value_len < flex_size)
> >  		return;
> 
> This helper would need an #include of <linux/overflow.h> in 
> net/batman-adv/translation-table.c

Understood.

> 
> [....]
> >  /**
> > @@ -4039,8 +4029,7 @@ static int batadv_tt_tvlv_unicast_handler_v1(struct batadv_priv *bat_priv,
> >  	tt_data = tvlv_value;
> >  	tvlv_value_len -= sizeof(*tt_data);
> >  
> > -	tt_vlan_len = sizeof(struct batadv_tvlv_tt_vlan_data);
> > -	tt_vlan_len *= ntohs(tt_data->num_vlan);
> > +	tt_vlan_len = flex_array_size(tt_data, vlan_data, tt_data->num_vlan);
> 
> This is definitely wrong on little endian systems. You first need to convert 
> num_vlan from network (big endian) to host order.

I'm sorry. My bad. I forgot to add the "ntohs".
I will fix it for the next version.

> 
> Kind regards,
> 	Sven

Regards,
Erick


^ permalink raw reply	[relevance 0%]

* [PATCH v3 3/3] net: mana: Avoid open coded arithmetic
       [not found]     <20240406142337.16241-1-erick.archer@outlook.com>
  2024-04-06 14:23  6% ` [PATCH v3 1/3] net: mana: " Erick Archer
  2024-04-06 14:23 12% ` [PATCH v3 2/3] RDMA/mana_ib: Prefer struct_size over open coded arithmetic Erick Archer
@ 2024-04-06 14:23 12% ` Erick Archer
  2024-04-08 21:45  7%   ` Justin Stitt
  2 siblings, 1 reply; 200+ results
From: Erick Archer @ 2024-04-06 14:23 UTC (permalink / raw)
  To: Long Li, Ajay Sharma, K. Y. Srinivasan, Haiyang Zhang, Wei Liu,
	Dexuan Cui, David S. Miller, Eric Dumazet, Jakub Kicinski,
	Paolo Abeni, Kees Cook, Gustavo A. R. Silva, Nathan Chancellor,
	Nick Desaulniers, Bill Wendling, Justin Stitt, Jason Gunthorpe,
	Leon Romanovsky, Shradha Gupta, Konstantin Taranov
  Cc: Erick Archer, linux-rdma, linux-hyperv, netdev, linux-kernel,
	linux-hardening, llvm

This is an effort to get rid of all multiplications from allocation
functions in order to prevent integer overflows [1][2].

As the "req" variable is a pointer to "struct mana_cfg_rx_steer_req_v2"
and this structure ends in a flexible array:

struct mana_cfg_rx_steer_req_v2 {
        [...]
        mana_handle_t indir_tab[] __counted_by(num_indir_entries);
};

the preferred way in the kernel is to use the struct_size() helper to
do the arithmetic instead of the calculation "size + size * count" in
the kzalloc() function.

Moreover, use the "offsetof" helper to get the indirect table offset
instead of the "sizeof" operator and avoid the open-coded arithmetic in
pointers using the new flex member. This new structure member also allow
us to remove the "req_indir_tab" variable since it is no longer needed.

Now, it is also possible to use the "flex_array_size" helper to compute
the size of these trailing elements in the "memcpy" function.

This way, the code is more readable and safer.

This code was detected with the help of Coccinelle, and audited and
modified manually.

Link: https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
Link: https://github.com/KSPP/linux/issues/160 [2]
Signed-off-by: Erick Archer <erick.archer@outlook.com>
---
 drivers/net/ethernet/microsoft/mana/mana_en.c | 14 ++++++--------
 1 file changed, 6 insertions(+), 8 deletions(-)

diff --git a/drivers/net/ethernet/microsoft/mana/mana_en.c b/drivers/net/ethernet/microsoft/mana/mana_en.c
index d8af5e7e15b4..f2fae659bf3b 100644
--- a/drivers/net/ethernet/microsoft/mana/mana_en.c
+++ b/drivers/net/ethernet/microsoft/mana/mana_en.c
@@ -1058,11 +1058,10 @@ static int mana_cfg_vport_steering(struct mana_port_context *apc,
 	struct mana_cfg_rx_steer_req_v2 *req;
 	struct mana_cfg_rx_steer_resp resp = {};
 	struct net_device *ndev = apc->ndev;
-	mana_handle_t *req_indir_tab;
 	u32 req_buf_size;
 	int err;
 
-	req_buf_size = sizeof(*req) + sizeof(mana_handle_t) * num_entries;
+	req_buf_size = struct_size(req, indir_tab, num_entries);
 	req = kzalloc(req_buf_size, GFP_KERNEL);
 	if (!req)
 		return -ENOMEM;
@@ -1074,7 +1073,8 @@ static int mana_cfg_vport_steering(struct mana_port_context *apc,
 
 	req->vport = apc->port_handle;
 	req->num_indir_entries = num_entries;
-	req->indir_tab_offset = sizeof(*req);
+	req->indir_tab_offset = offsetof(struct mana_cfg_rx_steer_req_v2,
+					 indir_tab);
 	req->rx_enable = rx;
 	req->rss_enable = apc->rss_state;
 	req->update_default_rxobj = update_default_rxobj;
@@ -1086,11 +1086,9 @@ static int mana_cfg_vport_steering(struct mana_port_context *apc,
 	if (update_key)
 		memcpy(&req->hashkey, apc->hashkey, MANA_HASH_KEY_SIZE);
 
-	if (update_tab) {
-		req_indir_tab = (mana_handle_t *)(req + 1);
-		memcpy(req_indir_tab, apc->rxobj_table,
-		       req->num_indir_entries * sizeof(mana_handle_t));
-	}
+	if (update_tab)
+		memcpy(req->indir_tab, apc->rxobj_table,
+		       flex_array_size(req, indir_tab, req->num_indir_entries));
 
 	err = mana_send_request(apc->ac, req, req_buf_size, &resp,
 				sizeof(resp));
-- 
2.25.1


^ permalink raw reply related	[relevance 12%]

* [PATCH v3 2/3] RDMA/mana_ib: Prefer struct_size over open coded arithmetic
       [not found]     <20240406142337.16241-1-erick.archer@outlook.com>
  2024-04-06 14:23  6% ` [PATCH v3 1/3] net: mana: " Erick Archer
@ 2024-04-06 14:23 12% ` Erick Archer
  2024-04-08 19:42  7%   ` Long Li
  2024-04-08 21:38  7%   ` Justin Stitt
  2024-04-06 14:23 12% ` [PATCH v3 3/3] net: mana: Avoid " Erick Archer
  2 siblings, 2 replies; 200+ results
From: Erick Archer @ 2024-04-06 14:23 UTC (permalink / raw)
  To: Long Li, Ajay Sharma, K. Y. Srinivasan, Haiyang Zhang, Wei Liu,
	Dexuan Cui, David S. Miller, Eric Dumazet, Jakub Kicinski,
	Paolo Abeni, Kees Cook, Gustavo A. R. Silva, Nathan Chancellor,
	Nick Desaulniers, Bill Wendling, Justin Stitt, Jason Gunthorpe,
	Leon Romanovsky, Shradha Gupta, Konstantin Taranov
  Cc: Erick Archer, linux-rdma, linux-hyperv, netdev, linux-kernel,
	linux-hardening, llvm

This is an effort to get rid of all multiplications from allocation
functions in order to prevent integer overflows [1][2].

As the "req" variable is a pointer to "struct mana_cfg_rx_steer_req_v2"
and this structure ends in a flexible array:

struct mana_cfg_rx_steer_req_v2 {
	[...]
        mana_handle_t indir_tab[] __counted_by(num_indir_entries);
};

the preferred way in the kernel is to use the struct_size() helper to
do the arithmetic instead of the calculation "size + size * count" in
the kzalloc() function.

Moreover, use the "offsetof" helper to get the indirect table offset
instead of the "sizeof" operator and avoid the open-coded arithmetic in
pointers using the new flex member. This new structure member also allow
us to remove the "req_indir_tab" variable since it is no longer needed.

This way, the code is more readable and safer.

This code was detected with the help of Coccinelle, and audited and
modified manually.

Link: https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
Link: https://github.com/KSPP/linux/issues/160 [2]
Signed-off-by: Erick Archer <erick.archer@outlook.com>
---
 drivers/infiniband/hw/mana/qp.c | 12 +++++-------
 1 file changed, 5 insertions(+), 7 deletions(-)

diff --git a/drivers/infiniband/hw/mana/qp.c b/drivers/infiniband/hw/mana/qp.c
index ef0a6dc664d0..4cd8f8afe80d 100644
--- a/drivers/infiniband/hw/mana/qp.c
+++ b/drivers/infiniband/hw/mana/qp.c
@@ -15,15 +15,13 @@ static int mana_ib_cfg_vport_steering(struct mana_ib_dev *dev,
 	struct mana_port_context *mpc = netdev_priv(ndev);
 	struct mana_cfg_rx_steer_req_v2 *req;
 	struct mana_cfg_rx_steer_resp resp = {};
-	mana_handle_t *req_indir_tab;
 	struct gdma_context *gc;
 	u32 req_buf_size;
 	int i, err;
 
 	gc = mdev_to_gc(dev);
 
-	req_buf_size =
-		sizeof(*req) + sizeof(mana_handle_t) * MANA_INDIRECT_TABLE_SIZE;
+	req_buf_size = struct_size(req, indir_tab, MANA_INDIRECT_TABLE_SIZE);
 	req = kzalloc(req_buf_size, GFP_KERNEL);
 	if (!req)
 		return -ENOMEM;
@@ -44,20 +42,20 @@ static int mana_ib_cfg_vport_steering(struct mana_ib_dev *dev,
 		req->rss_enable = true;
 
 	req->num_indir_entries = MANA_INDIRECT_TABLE_SIZE;
-	req->indir_tab_offset = sizeof(*req);
+	req->indir_tab_offset = offsetof(struct mana_cfg_rx_steer_req_v2,
+					 indir_tab);
 	req->update_indir_tab = true;
 	req->cqe_coalescing_enable = 1;
 
-	req_indir_tab = (mana_handle_t *)(req + 1);
 	/* The ind table passed to the hardware must have
 	 * MANA_INDIRECT_TABLE_SIZE entries. Adjust the verb
 	 * ind_table to MANA_INDIRECT_TABLE_SIZE if required
 	 */
 	ibdev_dbg(&dev->ib_dev, "ind table size %u\n", 1 << log_ind_tbl_size);
 	for (i = 0; i < MANA_INDIRECT_TABLE_SIZE; i++) {
-		req_indir_tab[i] = ind_table[i % (1 << log_ind_tbl_size)];
+		req->indir_tab[i] = ind_table[i % (1 << log_ind_tbl_size)];
 		ibdev_dbg(&dev->ib_dev, "index %u handle 0x%llx\n", i,
-			  req_indir_tab[i]);
+			  req->indir_tab[i]);
 	}
 
 	req->update_hashkey = true;
-- 
2.25.1


^ permalink raw reply related	[relevance 12%]

* [PATCH v3 1/3] net: mana: Add flex array to struct mana_cfg_rx_steer_req_v2
       [not found]     <20240406142337.16241-1-erick.archer@outlook.com>
@ 2024-04-06 14:23  6% ` Erick Archer
  2024-04-08 19:42  0%   ` Long Li
  2024-04-08 21:34  0%   ` Justin Stitt
  2024-04-06 14:23 12% ` [PATCH v3 2/3] RDMA/mana_ib: Prefer struct_size over open coded arithmetic Erick Archer
  2024-04-06 14:23 12% ` [PATCH v3 3/3] net: mana: Avoid " Erick Archer
  2 siblings, 2 replies; 200+ results
From: Erick Archer @ 2024-04-06 14:23 UTC (permalink / raw)
  To: Long Li, Ajay Sharma, K. Y. Srinivasan, Haiyang Zhang, Wei Liu,
	Dexuan Cui, David S. Miller, Eric Dumazet, Jakub Kicinski,
	Paolo Abeni, Kees Cook, Gustavo A. R. Silva, Nathan Chancellor,
	Nick Desaulniers, Bill Wendling, Justin Stitt, Jason Gunthorpe,
	Leon Romanovsky, Shradha Gupta, Konstantin Taranov
  Cc: Erick Archer, linux-rdma, linux-hyperv, netdev, linux-kernel,
	linux-hardening, llvm

The "struct mana_cfg_rx_steer_req_v2" uses a dynamically sized set of
trailing elements. Specifically, it uses a "mana_handle_t" array. So,
use the preferred way in the kernel declaring a flexible array [1].

At the same time, prepare for the coming implementation by GCC and Clang
of the __counted_by attribute. Flexible array members annotated with
__counted_by can have their accesses bounds-checked at run-time via
CONFIG_UBSAN_BOUNDS (for array indexing) and CONFIG_FORTIFY_SOURCE (for
strcpy/memcpy-family functions).

This is a previous step to refactor the two consumers of this structure.

 drivers/infiniband/hw/mana/qp.c
 drivers/net/ethernet/microsoft/mana/mana_en.c

The ultimate goal is to avoid the open-coded arithmetic in the memory
allocator functions [2] using the "struct_size" macro.

Link: https://www.kernel.org/doc/html/next/process/deprecated.html#zero-length-and-one-element-arrays [1]
Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [2]
Signed-off-by: Erick Archer <erick.archer@outlook.com>
---
 include/net/mana/mana.h | 1 +
 1 file changed, 1 insertion(+)

diff --git a/include/net/mana/mana.h b/include/net/mana/mana.h
index 4eeedf14711b..561f6719fb4e 100644
--- a/include/net/mana/mana.h
+++ b/include/net/mana/mana.h
@@ -670,6 +670,7 @@ struct mana_cfg_rx_steer_req_v2 {
 	u8 hashkey[MANA_HASH_KEY_SIZE];
 	u8 cqe_coalescing_enable;
 	u8 reserved2[7];
+	mana_handle_t indir_tab[] __counted_by(num_indir_entries);
 }; /* HW DATA */
 
 struct mana_cfg_rx_steer_resp {
-- 
2.25.1


^ permalink raw reply related	[relevance 6%]

* [PATCH v3 0/3] RDMA/mana_ib: Add flex array to struct mana_cfg_rx_steer_req_v2
@ 2024-04-06 14:23  7% Erick Archer
  2024-04-08 11:07  0% ` Leon Romanovsky
  2024-04-11 14:50  6% ` patchwork-bot+netdevbpf
  0 siblings, 2 replies; 200+ results
From: Erick Archer @ 2024-04-06 14:23 UTC (permalink / raw)
  To: Long Li, Ajay Sharma, K. Y. Srinivasan, Haiyang Zhang, Wei Liu,
	Dexuan Cui, David S. Miller, Eric Dumazet, Jakub Kicinski,
	Paolo Abeni, Kees Cook, Gustavo A. R. Silva, Nathan Chancellor,
	Nick Desaulniers, Bill Wendling, Justin Stitt, Jason Gunthorpe,
	Leon Romanovsky, Shradha Gupta, Konstantin Taranov
  Cc: Erick Archer, linux-rdma, linux-hyperv, netdev, linux-kernel,
	linux-hardening, llvm

The "struct mana_cfg_rx_steer_req_v2" uses a dynamically sized set of
trailing elements. Specifically, it uses a "mana_handle_t" array. So,
use the preferred way in the kernel declaring a flexible array [1].

At the same time, prepare for the coming implementation by GCC and Clang
of the __counted_by attribute. Flexible array members annotated with
__counted_by can have their accesses bounds-checked at run-time via
CONFIG_UBSAN_BOUNDS (for array indexing) and CONFIG_FORTIFY_SOURCE (for
strcpy/memcpy-family functions).

Also, avoid the open-coded arithmetic in the memory allocator functions
[2] using the "struct_size" macro.

Moreover, use the "offsetof" helper to get the indirect table offset
instead of the "sizeof" operator and avoid the open-coded arithmetic in
pointers using the new flex member. This new structure member also allow
us to remove the "req_indir_tab" variable since it is no longer needed.

Now, it is also possible to use the "flex_array_size" helper to compute
the size of these trailing elements in the "memcpy" function.

Specifically, the first commit adds the flex member and the patches 2 and
3 refactor the consumers of the "struct mana_cfg_rx_steer_req_v2".

This code was detected with the help of Coccinelle, and audited and
modified manually. The Coccinelle script used to detect this code pattern
is the following:

virtual report

@rule1@
type t1;
type t2;
identifier i0;
identifier i1;
identifier i2;
identifier ALLOC =~ "kmalloc|kzalloc|kmalloc_node|kzalloc_node|vmalloc|vzalloc|kvmalloc|kvzalloc";
position p1;
@@

i0 = sizeof(t1) + sizeof(t2) * i1;
...
i2 = ALLOC@p1(..., i0, ...);

@script:python depends on report@
p1 << rule1.p1;
@@

msg = "WARNING: verify allocation on line %s" % (p1[0].line)
coccilib.report.print_report(p1[0],msg)

Link: https://www.kernel.org/doc/html/next/process/deprecated.html#zero-length-and-one-element-arrays [1]
Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [2]
Signed-off-by: Erick Archer <erick.archer@outlook.com>
---
Changes in v3:
- Split the changes in various commits to simplify the acceptance process
  (Leon Romanovsky).

Changes in v2:
- Remove the "req_indir_tab" variable (Gustavo A. R. Silva).
- Update the commit message.
- Add the "__counted_by" attribute.

Previous versions:
v1 -> https://lore.kernel.org/linux-hardening/AS8PR02MB7237974EF1B9BAFA618166C38B382@AS8PR02MB7237.eurprd02.prod.outlook.com/
v2 -> https://lore.kernel.org/linux-hardening/AS8PR02MB723729C5A63F24C312FC9CD18B3F2@AS8PR02MB7237.eurprd02.prod.outlook.com/
---
Erick Archer (3):
  net: mana: Add flex array to struct mana_cfg_rx_steer_req_v2
  RDMA/mana_ib: Prefer struct_size over open coded arithmetic
  net: mana: Avoid open coded arithmetic

 drivers/infiniband/hw/mana/qp.c               | 12 +++++-------
 drivers/net/ethernet/microsoft/mana/mana_en.c | 14 ++++++--------
 include/net/mana/mana.h                       |  1 +
 3 files changed, 12 insertions(+), 15 deletions(-)

-- 
2.25.1


^ permalink raw reply	[relevance 7%]

* Re: [PATCH] batman-adv: Add flex array to struct batadv_tvlv_tt_data
  2024-04-02 17:23  5% [PATCH] batman-adv: Add flex array to struct batadv_tvlv_tt_data Erick Archer
@ 2024-04-02 19:06  0% ` Sven Eckelmann
  2024-04-06 16:46  0%   ` Erick Archer
  0 siblings, 1 reply; 200+ results
From: Sven Eckelmann @ 2024-04-02 19:06 UTC (permalink / raw)
  To: Marek Lindner, Simon Wunderlich, Antonio Quartulli,
	David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
	Kees Cook, Gustavo A. R. Silva, Erick Archer
  Cc: Erick Archer, b.a.t.m.a.n, linux-kernel, netdev, linux-hardening

[-- Attachment #1: Type: text/plain, Size: 4189 bytes --]

On Tuesday, 2 April 2024 19:23:01 CEST Erick Archer wrote:
> The "struct batadv_tvlv_tt_data" uses a dynamically sized set of
> trailing elements. Specifically, it uses an array of structures of type
> "batadv_tvlv_tt_vlan_data". So, use the preferred way in the kernel
> declaring a flexible array [1].
> 
> The order in which the structure batadv_tvlv_tt_data and the structure
> batadv_tvlv_tt_vlan_data are defined must be swap to avoid an incomplete
> type error.
> 
> Also, avoid the open-coded arithmetic in memory allocator functions [2]
> using the "struct_size" macro and use the "flex_array_size" helper to
> clarify some calculations, when possible.
> 
> Moreover, the new structure member also allow us to avoid the open-coded
> arithmetic on pointers in some situations. Take advantage of this.
> 
> This code was detected with the help of Coccinelle, and audited and
> modified manually.
> 
> Link: https://www.kernel.org/doc/html/next/process/deprecated.html#zero-length-and-one-element-arrays [1]
> Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [2]
> Signed-off-by: Erick Archer <erick.archer@outlook.com>

> ---
> Hi,
> 
> I would like to add the "__counted_by(num_vlan)" tag to the new flex member
> but I don't know if this line can affect it.
> 
> ntohs(tt_data->num_vlan)


Yes, num_vlan is a __be16. I could only identify the kernel-doc related 
scripts as consumer. But maybe they are more - so I would defer this question 
to kernel-hardening.


And with this change, I get a lot of additional warnings (-Wsparse-all)


cfg: BLA=n DAT=y DEBUG=y TRACING=n NC=y MCAST=n BATMAN_V=n
    net/batman-adv/translation-table.c:574:21: warning: using sizeof on a flexible structure
    net/batman-adv/translation-table.c:859:25: warning: using sizeof on a flexible structure
    net/batman-adv/translation-table.c:859:25: warning: using sizeof on a flexible structure
    net/batman-adv/translation-table.c:938:25: warning: using sizeof on a flexible structure
    net/batman-adv/translation-table.c:938:25: warning: using sizeof on a flexible structure
    net/batman-adv/translation-table.c:2932:16: warning: using sizeof on a flexible structure
    net/batman-adv/translation-table.c:2932:16: warning: using sizeof on a flexible structure
    net/batman-adv/translation-table.c:3378:21: warning: using sizeof on a flexible structure
    net/batman-adv/translation-table.c:3378:21: warning: using sizeof on a flexible structure
    net/batman-adv/translation-table.c:3982:30: warning: using sizeof on a flexible structure
    net/batman-adv/translation-table.c:3986:27: warning: using sizeof on a flexible structure
    net/batman-adv/translation-table.c:4026:30: warning: using sizeof on a flexible structure
    net/batman-adv/translation-table.c:4030:27: warning: using sizeof on a flexible structure
    net/batman-adv/translation-table.c:4032:23: warning: cast from restricted __be16
    net/batman-adv/translation-table.c:4032:23: warning: restricted __be16 degrades to integer
    net/batman-adv/translation-table.c:4032:23: warning: incorrect type in argument 1 (different base types)
    net/batman-adv/translation-table.c:4032:23:    expected unsigned long [usertype] factor1
    net/batman-adv/translation-table.c:4032:23:    got restricted __be16 [usertype] num_vlan

[...]
>  	num_vlan = ntohs(tt_data->num_vlan);
>  
> -	if (tvlv_value_len < sizeof(*tt_vlan) * num_vlan)
> +	flex_size = flex_array_size(tt_data, vlan_data, num_vlan);
> +	if (tvlv_value_len < flex_size)
>  		return;

This helper would need an #include of <linux/overflow.h> in 
net/batman-adv/translation-table.c

[....]
>  /**
> @@ -4039,8 +4029,7 @@ static int batadv_tt_tvlv_unicast_handler_v1(struct batadv_priv *bat_priv,
>  	tt_data = tvlv_value;
>  	tvlv_value_len -= sizeof(*tt_data);
>  
> -	tt_vlan_len = sizeof(struct batadv_tvlv_tt_vlan_data);
> -	tt_vlan_len *= ntohs(tt_data->num_vlan);
> +	tt_vlan_len = flex_array_size(tt_data, vlan_data, tt_data->num_vlan);

This is definitely wrong on little endian systems. You first need to convert 
num_vlan from network (big endian) to host order.

Kind regards,
	Sven

[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[relevance 0%]

* Re: [PATCH v2] RDMA/mana_ib: Add flex array to struct mana_cfg_rx_steer_req_v2
  2024-04-01 15:37  6% [PATCH v2] " Erick Archer
@ 2024-04-02 18:58  0% ` Leon Romanovsky
  0 siblings, 0 replies; 200+ results
From: Leon Romanovsky @ 2024-04-02 18:58 UTC (permalink / raw)
  To: Erick Archer
  Cc: Long Li, Ajay Sharma, Jason Gunthorpe, K. Y. Srinivasan,
	Haiyang Zhang, Wei Liu, Dexuan Cui, David S. Miller,
	Eric Dumazet, Jakub Kicinski, Paolo Abeni, Shradha Gupta,
	Konstantin Taranov, Kees Cook, Gustavo A. R. Silva, linux-rdma,
	linux-kernel, linux-hyperv, netdev, linux-hardening

On Mon, Apr 01, 2024 at 05:37:03PM +0200, Erick Archer wrote:
> The "struct mana_cfg_rx_steer_req_v2" uses a dynamically sized set of
> trailing elements. Specifically, it uses a "mana_handle_t" array. So,
> use the preferred way in the kernel declaring a flexible array [1].
> 
> At the same time, prepare for the coming implementation by GCC and Clang
> of the __counted_by attribute. Flexible array members annotated with
> __counted_by can have their accesses bounds-checked at run-time via
> CONFIG_UBSAN_BOUNDS (for array indexing) and CONFIG_FORTIFY_SOURCE (for
> strcpy/memcpy-family functions).
> 
> Also, avoid the open-coded arithmetic in the memory allocator functions
> [2] using the "struct_size" macro.
> 
> Moreover, use the "offsetof" helper to get the indirect table offset
> instead of the "sizeof" operator and avoid the open-coded arithmetic in
> pointers using the new flex member. This new structure member also allow
> us to remove the "req_indir_tab" variable since it is no longer needed.
> 
> Now, it is also possible to use the "flex_array_size" helper to compute
> the size of these trailing elements in the "memcpy" function.
> 
> This code was detected with the help of Coccinelle, and audited and
> modified manually.
> 
> Link: https://www.kernel.org/doc/html/next/process/deprecated.html#zero-length-and-one-element-arrays [1]
> Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [2]
> Signed-off-by: Erick Archer <erick.archer@outlook.com>
> ---
> Changes in v2:
> - Remove the "req_indir_tab" variable (Gustavo A. R. Silva).
> - Update the commit message.
> - Add the "__counted_by" attribute.
> 
> Previous versions:
> v1 -> https://lore.kernel.org/linux-hardening/AS8PR02MB7237974EF1B9BAFA618166C38B382@AS8PR02MB7237.eurprd02.prod.outlook.com/
> 
> Hi,
> 
> The Coccinelle script used to detect this code pattern is the following:
> 
> virtual report
> 
> @rule1@
> type t1;
> type t2;
> identifier i0;
> identifier i1;
> identifier i2;
> identifier ALLOC =~ "kmalloc|kzalloc|kmalloc_node|kzalloc_node|vmalloc|vzalloc|kvmalloc|kvzalloc";
> position p1;
> @@
> 
> i0 = sizeof(t1) + sizeof(t2) * i1;
> ...
> i2 = ALLOC@p1(..., i0, ...);
> 
> @script:python depends on report@
> p1 << rule1.p1;
> @@
> 
> msg = "WARNING: verify allocation on line %s" % (p1[0].line)
> coccilib.report.print_report(p1[0],msg)
> 
> Regards,
> Erick
> ---
>  drivers/infiniband/hw/mana/qp.c               | 12 +++++-------
>  drivers/net/ethernet/microsoft/mana/mana_en.c | 14 ++++++--------
>  include/net/mana/mana.h                       |  1 +
>  3 files changed, 12 insertions(+), 15 deletions(-)

Is it possible to separate this patch to two patches? One for netdev
with drivers/net/ethernet/microsoft/mana/mana_en.c changes and another
with drivers/infiniband/hw/mana/qp.c changes.

It will simplify the acceptance process.

Thanks

> 
> diff --git a/drivers/infiniband/hw/mana/qp.c b/drivers/infiniband/hw/mana/qp.c
> index 6e7627745c95..258f89464c10 100644
> --- a/drivers/infiniband/hw/mana/qp.c
> +++ b/drivers/infiniband/hw/mana/qp.c
> @@ -15,15 +15,13 @@ static int mana_ib_cfg_vport_steering(struct mana_ib_dev *dev,
>  	struct mana_port_context *mpc = netdev_priv(ndev);
>  	struct mana_cfg_rx_steer_req_v2 *req;
>  	struct mana_cfg_rx_steer_resp resp = {};
> -	mana_handle_t *req_indir_tab;
>  	struct gdma_context *gc;
>  	u32 req_buf_size;
>  	int i, err;
>  
>  	gc = mdev_to_gc(dev);
>  
> -	req_buf_size =
> -		sizeof(*req) + sizeof(mana_handle_t) * MANA_INDIRECT_TABLE_SIZE;
> +	req_buf_size = struct_size(req, indir_tab, MANA_INDIRECT_TABLE_SIZE);
>  	req = kzalloc(req_buf_size, GFP_KERNEL);
>  	if (!req)
>  		return -ENOMEM;
> @@ -44,20 +42,20 @@ static int mana_ib_cfg_vport_steering(struct mana_ib_dev *dev,
>  		req->rss_enable = true;
>  
>  	req->num_indir_entries = MANA_INDIRECT_TABLE_SIZE;
> -	req->indir_tab_offset = sizeof(*req);
> +	req->indir_tab_offset = offsetof(struct mana_cfg_rx_steer_req_v2,
> +					 indir_tab);
>  	req->update_indir_tab = true;
>  	req->cqe_coalescing_enable = 1;
>  
> -	req_indir_tab = (mana_handle_t *)(req + 1);
>  	/* The ind table passed to the hardware must have
>  	 * MANA_INDIRECT_TABLE_SIZE entries. Adjust the verb
>  	 * ind_table to MANA_INDIRECT_TABLE_SIZE if required
>  	 */
>  	ibdev_dbg(&dev->ib_dev, "ind table size %u\n", 1 << log_ind_tbl_size);
>  	for (i = 0; i < MANA_INDIRECT_TABLE_SIZE; i++) {
> -		req_indir_tab[i] = ind_table[i % (1 << log_ind_tbl_size)];
> +		req->indir_tab[i] = ind_table[i % (1 << log_ind_tbl_size)];
>  		ibdev_dbg(&dev->ib_dev, "index %u handle 0x%llx\n", i,
> -			  req_indir_tab[i]);
> +			  req->indir_tab[i]);
>  	}
>  
>  	req->update_hashkey = true;
> diff --git a/drivers/net/ethernet/microsoft/mana/mana_en.c b/drivers/net/ethernet/microsoft/mana/mana_en.c
> index 59287c6e6cee..62bf3e5661a6 100644
> --- a/drivers/net/ethernet/microsoft/mana/mana_en.c
> +++ b/drivers/net/ethernet/microsoft/mana/mana_en.c
> @@ -1058,11 +1058,10 @@ static int mana_cfg_vport_steering(struct mana_port_context *apc,
>  	struct mana_cfg_rx_steer_req_v2 *req;
>  	struct mana_cfg_rx_steer_resp resp = {};
>  	struct net_device *ndev = apc->ndev;
> -	mana_handle_t *req_indir_tab;
>  	u32 req_buf_size;
>  	int err;
>  
> -	req_buf_size = sizeof(*req) + sizeof(mana_handle_t) * num_entries;
> +	req_buf_size = struct_size(req, indir_tab, num_entries);
>  	req = kzalloc(req_buf_size, GFP_KERNEL);
>  	if (!req)
>  		return -ENOMEM;
> @@ -1074,7 +1073,8 @@ static int mana_cfg_vport_steering(struct mana_port_context *apc,
>  
>  	req->vport = apc->port_handle;
>  	req->num_indir_entries = num_entries;
> -	req->indir_tab_offset = sizeof(*req);
> +	req->indir_tab_offset = offsetof(struct mana_cfg_rx_steer_req_v2,
> +					 indir_tab);
>  	req->rx_enable = rx;
>  	req->rss_enable = apc->rss_state;
>  	req->update_default_rxobj = update_default_rxobj;
> @@ -1086,11 +1086,9 @@ static int mana_cfg_vport_steering(struct mana_port_context *apc,
>  	if (update_key)
>  		memcpy(&req->hashkey, apc->hashkey, MANA_HASH_KEY_SIZE);
>  
> -	if (update_tab) {
> -		req_indir_tab = (mana_handle_t *)(req + 1);
> -		memcpy(req_indir_tab, apc->rxobj_table,
> -		       req->num_indir_entries * sizeof(mana_handle_t));
> -	}
> +	if (update_tab)
> +		memcpy(req->indir_tab, apc->rxobj_table,
> +		       flex_array_size(req, indir_tab, req->num_indir_entries));
>  
>  	err = mana_send_request(apc->ac, req, req_buf_size, &resp,
>  				sizeof(resp));
> diff --git a/include/net/mana/mana.h b/include/net/mana/mana.h
> index 76147feb0d10..46f741ebce21 100644
> --- a/include/net/mana/mana.h
> +++ b/include/net/mana/mana.h
> @@ -671,6 +671,7 @@ struct mana_cfg_rx_steer_req_v2 {
>  	u8 hashkey[MANA_HASH_KEY_SIZE];
>  	u8 cqe_coalescing_enable;
>  	u8 reserved2[7];
> +	mana_handle_t indir_tab[] __counted_by(num_indir_entries);
>  }; /* HW DATA */
>  
>  struct mana_cfg_rx_steer_resp {
> -- 
> 2.25.1
> 
> 

^ permalink raw reply	[relevance 0%]

* [PATCH] batman-adv: Add flex array to struct batadv_tvlv_tt_data
@ 2024-04-02 17:23  5% Erick Archer
  2024-04-02 19:06  0% ` Sven Eckelmann
  0 siblings, 1 reply; 200+ results
From: Erick Archer @ 2024-04-02 17:23 UTC (permalink / raw)
  To: Marek Lindner, Simon Wunderlich, Antonio Quartulli,
	Sven Eckelmann, David S. Miller, Eric Dumazet, Jakub Kicinski,
	Paolo Abeni, Kees Cook, Gustavo A. R. Silva
  Cc: Erick Archer, b.a.t.m.a.n, linux-kernel, netdev, linux-hardening

The "struct batadv_tvlv_tt_data" uses a dynamically sized set of
trailing elements. Specifically, it uses an array of structures of type
"batadv_tvlv_tt_vlan_data". So, use the preferred way in the kernel
declaring a flexible array [1].

The order in which the structure batadv_tvlv_tt_data and the structure
batadv_tvlv_tt_vlan_data are defined must be swap to avoid an incomplete
type error.

Also, avoid the open-coded arithmetic in memory allocator functions [2]
using the "struct_size" macro and use the "flex_array_size" helper to
clarify some calculations, when possible.

Moreover, the new structure member also allow us to avoid the open-coded
arithmetic on pointers in some situations. Take advantage of this.

This code was detected with the help of Coccinelle, and audited and
modified manually.

Link: https://www.kernel.org/doc/html/next/process/deprecated.html#zero-length-and-one-element-arrays [1]
Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [2]
Signed-off-by: Erick Archer <erick.archer@outlook.com>
---
Hi,

I would like to add the "__counted_by(num_vlan)" tag to the new flex member
but I don't know if this line can affect it.

ntohs(tt_data->num_vlan)

If there is no problem I can send a v2 with the "__counted_by" tag.

The Coccinelle script used to detect this code pattern is the following:

virtual report

@rule1@
type t1;
type t2;
identifier i0;
identifier i1;
identifier i2;
identifier ALLOC =~ "kmalloc|kzalloc|kmalloc_node|kzalloc_node|vmalloc|vzalloc|kvmalloc|kvzalloc";
position p1;
@@

i0 = sizeof(t1) + sizeof(t2) * i1;
...
i2 = ALLOC@p1(..., i0, ...);

@script:python depends on report@
p1 << rule1.p1;
@@

msg = "WARNING: verify allocation on line %s" % (p1[0].line)
coccilib.report.print_report(p1[0],msg)

Regards,
Erick
---
 include/uapi/linux/batadv_packet.h | 28 +++++++++---------
 net/batman-adv/translation-table.c | 47 ++++++++++++------------------
 2 files changed, 33 insertions(+), 42 deletions(-)

diff --git a/include/uapi/linux/batadv_packet.h b/include/uapi/linux/batadv_packet.h
index 6e25753015df..49cd345b84a7 100644
--- a/include/uapi/linux/batadv_packet.h
+++ b/include/uapi/linux/batadv_packet.h
@@ -592,19 +592,6 @@ struct batadv_tvlv_gateway_data {
 	__be32 bandwidth_up;
 };
 
-/**
- * struct batadv_tvlv_tt_data - tt data propagated through the tt tvlv container
- * @flags: translation table flags (see batadv_tt_data_flags)
- * @ttvn: translation table version number
- * @num_vlan: number of announced VLANs. In the TVLV this struct is followed by
- *  one batadv_tvlv_tt_vlan_data object per announced vlan
- */
-struct batadv_tvlv_tt_data {
-	__u8   flags;
-	__u8   ttvn;
-	__be16 num_vlan;
-};
-
 /**
  * struct batadv_tvlv_tt_vlan_data - vlan specific tt data propagated through
  *  the tt tvlv container
@@ -618,6 +605,21 @@ struct batadv_tvlv_tt_vlan_data {
 	__u16  reserved;
 };
 
+/**
+ * struct batadv_tvlv_tt_data - tt data propagated through the tt tvlv container
+ * @flags: translation table flags (see batadv_tt_data_flags)
+ * @ttvn: translation table version number
+ * @num_vlan: number of announced VLANs. In the TVLV this struct is followed by
+ *  one batadv_tvlv_tt_vlan_data object per announced vlan
+ * @vlan_data: array of batadv_tvlv_tt_vlan_data objects
+ */
+struct batadv_tvlv_tt_data {
+	__u8   flags;
+	__u8   ttvn;
+	__be16 num_vlan;
+	struct batadv_tvlv_tt_vlan_data vlan_data[];
+};
+
 /**
  * struct batadv_tvlv_tt_change - translation table diff data
  * @flags: status indicators concerning the non-mesh client (see
diff --git a/net/batman-adv/translation-table.c b/net/batman-adv/translation-table.c
index b95c36765d04..96d22d8209f4 100644
--- a/net/batman-adv/translation-table.c
+++ b/net/batman-adv/translation-table.c
@@ -856,8 +856,7 @@ batadv_tt_prepare_tvlv_global_data(struct batadv_orig_node *orig_node,
 		num_entries += atomic_read(&vlan->tt.num_entries);
 	}
 
-	change_offset = sizeof(**tt_data);
-	change_offset += num_vlan * sizeof(*tt_vlan);
+	change_offset = struct_size(*tt_data, vlan_data, num_vlan);
 
 	/* if tt_len is negative, allocate the space needed by the full table */
 	if (*tt_len < 0)
@@ -876,7 +875,7 @@ batadv_tt_prepare_tvlv_global_data(struct batadv_orig_node *orig_node,
 	(*tt_data)->ttvn = atomic_read(&orig_node->last_ttvn);
 	(*tt_data)->num_vlan = htons(num_vlan);
 
-	tt_vlan = (struct batadv_tvlv_tt_vlan_data *)(*tt_data + 1);
+	tt_vlan = (*tt_data)->vlan_data;
 	hlist_for_each_entry(vlan, &orig_node->vlan_list, list) {
 		tt_vlan->vid = htons(vlan->vid);
 		tt_vlan->crc = htonl(vlan->tt.crc);
@@ -936,8 +935,7 @@ batadv_tt_prepare_tvlv_local_data(struct batadv_priv *bat_priv,
 		total_entries += vlan_entries;
 	}
 
-	change_offset = sizeof(**tt_data);
-	change_offset += num_vlan * sizeof(*tt_vlan);
+	change_offset = struct_size(*tt_data, vlan_data, num_vlan);
 
 	/* if tt_len is negative, allocate the space needed by the full table */
 	if (*tt_len < 0)
@@ -956,7 +954,7 @@ batadv_tt_prepare_tvlv_local_data(struct batadv_priv *bat_priv,
 	(*tt_data)->ttvn = atomic_read(&bat_priv->tt.vn);
 	(*tt_data)->num_vlan = htons(num_vlan);
 
-	tt_vlan = (struct batadv_tvlv_tt_vlan_data *)(*tt_data + 1);
+	tt_vlan = (*tt_data)->vlan_data;
 	hlist_for_each_entry(vlan, &bat_priv->softif_vlan_list, list) {
 		vlan_entries = atomic_read(&vlan->tt.num_entries);
 		if (vlan_entries < 1)
@@ -2916,7 +2914,6 @@ static bool batadv_send_tt_request(struct batadv_priv *bat_priv,
 {
 	struct batadv_tvlv_tt_data *tvlv_tt_data = NULL;
 	struct batadv_tt_req_node *tt_req_node = NULL;
-	struct batadv_tvlv_tt_vlan_data *tt_vlan_req;
 	struct batadv_hard_iface *primary_if;
 	bool ret = false;
 	int i, size;
@@ -2932,7 +2929,7 @@ static bool batadv_send_tt_request(struct batadv_priv *bat_priv,
 	if (!tt_req_node)
 		goto out;
 
-	size = sizeof(*tvlv_tt_data) + sizeof(*tt_vlan_req) * num_vlan;
+	size = struct_size(tvlv_tt_data, vlan_data, num_vlan);
 	tvlv_tt_data = kzalloc(size, GFP_ATOMIC);
 	if (!tvlv_tt_data)
 		goto out;
@@ -2944,12 +2941,10 @@ static bool batadv_send_tt_request(struct batadv_priv *bat_priv,
 	/* send all the CRCs within the request. This is needed by intermediate
 	 * nodes to ensure they have the correct table before replying
 	 */
-	tt_vlan_req = (struct batadv_tvlv_tt_vlan_data *)(tvlv_tt_data + 1);
 	for (i = 0; i < num_vlan; i++) {
-		tt_vlan_req->vid = tt_vlan->vid;
-		tt_vlan_req->crc = tt_vlan->crc;
+		tvlv_tt_data->vlan_data[i].vid = tt_vlan->vid;
+		tvlv_tt_data->vlan_data[i].crc = tt_vlan->crc;
 
-		tt_vlan_req++;
 		tt_vlan++;
 	}
 
@@ -3001,7 +2996,6 @@ static bool batadv_send_other_tt_response(struct batadv_priv *bat_priv,
 	struct batadv_orig_node *res_dst_orig_node = NULL;
 	struct batadv_tvlv_tt_change *tt_change;
 	struct batadv_tvlv_tt_data *tvlv_tt_data = NULL;
-	struct batadv_tvlv_tt_vlan_data *tt_vlan;
 	bool ret = false, full_table;
 	u8 orig_ttvn, req_ttvn;
 	u16 tvlv_len;
@@ -3024,10 +3018,9 @@ static bool batadv_send_other_tt_response(struct batadv_priv *bat_priv,
 	orig_ttvn = (u8)atomic_read(&req_dst_orig_node->last_ttvn);
 	req_ttvn = tt_data->ttvn;
 
-	tt_vlan = (struct batadv_tvlv_tt_vlan_data *)(tt_data + 1);
 	/* this node doesn't have the requested data */
 	if (orig_ttvn != req_ttvn ||
-	    !batadv_tt_global_check_crc(req_dst_orig_node, tt_vlan,
+	    !batadv_tt_global_check_crc(req_dst_orig_node, tt_data->vlan_data,
 					ntohs(tt_data->num_vlan)))
 		goto out;
 
@@ -3370,7 +3363,6 @@ static void batadv_handle_tt_response(struct batadv_priv *bat_priv,
 	struct batadv_orig_node *orig_node = NULL;
 	struct batadv_tvlv_tt_change *tt_change;
 	u8 *tvlv_ptr = (u8 *)tt_data;
-	u16 change_offset;
 
 	batadv_dbg(BATADV_DBG_TT, bat_priv,
 		   "Received TT_RESPONSE from %pM for ttvn %d t_size: %d [%c]\n",
@@ -3383,10 +3375,7 @@ static void batadv_handle_tt_response(struct batadv_priv *bat_priv,
 
 	spin_lock_bh(&orig_node->tt_lock);
 
-	change_offset = sizeof(struct batadv_tvlv_tt_vlan_data);
-	change_offset *= ntohs(tt_data->num_vlan);
-	change_offset += sizeof(*tt_data);
-	tvlv_ptr += change_offset;
+	tvlv_ptr += struct_size(tt_data, vlan_data, ntohs(tt_data->num_vlan));
 
 	tt_change = (struct batadv_tvlv_tt_change *)tvlv_ptr;
 	if (tt_data->flags & BATADV_TT_FULL_TABLE) {
@@ -3985,10 +3974,10 @@ static void batadv_tt_tvlv_ogm_handler_v1(struct batadv_priv *bat_priv,
 					  u8 flags, void *tvlv_value,
 					  u16 tvlv_value_len)
 {
-	struct batadv_tvlv_tt_vlan_data *tt_vlan;
 	struct batadv_tvlv_tt_change *tt_change;
 	struct batadv_tvlv_tt_data *tt_data;
 	u16 num_entries, num_vlan;
+	size_t flex_size;
 
 	if (tvlv_value_len < sizeof(*tt_data))
 		return;
@@ -3998,17 +3987,18 @@ static void batadv_tt_tvlv_ogm_handler_v1(struct batadv_priv *bat_priv,
 
 	num_vlan = ntohs(tt_data->num_vlan);
 
-	if (tvlv_value_len < sizeof(*tt_vlan) * num_vlan)
+	flex_size = flex_array_size(tt_data, vlan_data, num_vlan);
+	if (tvlv_value_len < flex_size)
 		return;
 
-	tt_vlan = (struct batadv_tvlv_tt_vlan_data *)(tt_data + 1);
-	tt_change = (struct batadv_tvlv_tt_change *)(tt_vlan + num_vlan);
-	tvlv_value_len -= sizeof(*tt_vlan) * num_vlan;
+	tt_change = (struct batadv_tvlv_tt_change *)(tt_data->vlan_data +
+						     num_vlan);
+	tvlv_value_len -= flex_size;
 
 	num_entries = batadv_tt_entries(tvlv_value_len);
 
-	batadv_tt_update_orig(bat_priv, orig, tt_vlan, num_vlan, tt_change,
-			      num_entries, tt_data->ttvn);
+	batadv_tt_update_orig(bat_priv, orig, tt_data->vlan_data, num_vlan,
+			      tt_change, num_entries, tt_data->ttvn);
 }
 
 /**
@@ -4039,8 +4029,7 @@ static int batadv_tt_tvlv_unicast_handler_v1(struct batadv_priv *bat_priv,
 	tt_data = tvlv_value;
 	tvlv_value_len -= sizeof(*tt_data);
 
-	tt_vlan_len = sizeof(struct batadv_tvlv_tt_vlan_data);
-	tt_vlan_len *= ntohs(tt_data->num_vlan);
+	tt_vlan_len = flex_array_size(tt_data, vlan_data, tt_data->num_vlan);
 
 	if (tvlv_value_len < tt_vlan_len)
 		return NET_RX_SUCCESS;
-- 
2.25.1


^ permalink raw reply related	[relevance 5%]

* [PATCH v2] RDMA/mana_ib: Add flex array to struct mana_cfg_rx_steer_req_v2
@ 2024-04-01 15:37  6% Erick Archer
  2024-04-02 18:58  0% ` Leon Romanovsky
  0 siblings, 1 reply; 200+ results
From: Erick Archer @ 2024-04-01 15:37 UTC (permalink / raw)
  To: Long Li, Ajay Sharma, Jason Gunthorpe, Leon Romanovsky,
	K. Y. Srinivasan, Haiyang Zhang, Wei Liu, Dexuan Cui,
	David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
	Shradha Gupta, Konstantin Taranov, Kees Cook,
	Gustavo A. R. Silva
  Cc: Erick Archer, linux-rdma, linux-kernel, linux-hyperv, netdev,
	linux-hardening

The "struct mana_cfg_rx_steer_req_v2" uses a dynamically sized set of
trailing elements. Specifically, it uses a "mana_handle_t" array. So,
use the preferred way in the kernel declaring a flexible array [1].

At the same time, prepare for the coming implementation by GCC and Clang
of the __counted_by attribute. Flexible array members annotated with
__counted_by can have their accesses bounds-checked at run-time via
CONFIG_UBSAN_BOUNDS (for array indexing) and CONFIG_FORTIFY_SOURCE (for
strcpy/memcpy-family functions).

Also, avoid the open-coded arithmetic in the memory allocator functions
[2] using the "struct_size" macro.

Moreover, use the "offsetof" helper to get the indirect table offset
instead of the "sizeof" operator and avoid the open-coded arithmetic in
pointers using the new flex member. This new structure member also allow
us to remove the "req_indir_tab" variable since it is no longer needed.

Now, it is also possible to use the "flex_array_size" helper to compute
the size of these trailing elements in the "memcpy" function.

This code was detected with the help of Coccinelle, and audited and
modified manually.

Link: https://www.kernel.org/doc/html/next/process/deprecated.html#zero-length-and-one-element-arrays [1]
Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [2]
Signed-off-by: Erick Archer <erick.archer@outlook.com>
---
Changes in v2:
- Remove the "req_indir_tab" variable (Gustavo A. R. Silva).
- Update the commit message.
- Add the "__counted_by" attribute.

Previous versions:
v1 -> https://lore.kernel.org/linux-hardening/AS8PR02MB7237974EF1B9BAFA618166C38B382@AS8PR02MB7237.eurprd02.prod.outlook.com/

Hi,

The Coccinelle script used to detect this code pattern is the following:

virtual report

@rule1@
type t1;
type t2;
identifier i0;
identifier i1;
identifier i2;
identifier ALLOC =~ "kmalloc|kzalloc|kmalloc_node|kzalloc_node|vmalloc|vzalloc|kvmalloc|kvzalloc";
position p1;
@@

i0 = sizeof(t1) + sizeof(t2) * i1;
...
i2 = ALLOC@p1(..., i0, ...);

@script:python depends on report@
p1 << rule1.p1;
@@

msg = "WARNING: verify allocation on line %s" % (p1[0].line)
coccilib.report.print_report(p1[0],msg)

Regards,
Erick
---
 drivers/infiniband/hw/mana/qp.c               | 12 +++++-------
 drivers/net/ethernet/microsoft/mana/mana_en.c | 14 ++++++--------
 include/net/mana/mana.h                       |  1 +
 3 files changed, 12 insertions(+), 15 deletions(-)

diff --git a/drivers/infiniband/hw/mana/qp.c b/drivers/infiniband/hw/mana/qp.c
index 6e7627745c95..258f89464c10 100644
--- a/drivers/infiniband/hw/mana/qp.c
+++ b/drivers/infiniband/hw/mana/qp.c
@@ -15,15 +15,13 @@ static int mana_ib_cfg_vport_steering(struct mana_ib_dev *dev,
 	struct mana_port_context *mpc = netdev_priv(ndev);
 	struct mana_cfg_rx_steer_req_v2 *req;
 	struct mana_cfg_rx_steer_resp resp = {};
-	mana_handle_t *req_indir_tab;
 	struct gdma_context *gc;
 	u32 req_buf_size;
 	int i, err;
 
 	gc = mdev_to_gc(dev);
 
-	req_buf_size =
-		sizeof(*req) + sizeof(mana_handle_t) * MANA_INDIRECT_TABLE_SIZE;
+	req_buf_size = struct_size(req, indir_tab, MANA_INDIRECT_TABLE_SIZE);
 	req = kzalloc(req_buf_size, GFP_KERNEL);
 	if (!req)
 		return -ENOMEM;
@@ -44,20 +42,20 @@ static int mana_ib_cfg_vport_steering(struct mana_ib_dev *dev,
 		req->rss_enable = true;
 
 	req->num_indir_entries = MANA_INDIRECT_TABLE_SIZE;
-	req->indir_tab_offset = sizeof(*req);
+	req->indir_tab_offset = offsetof(struct mana_cfg_rx_steer_req_v2,
+					 indir_tab);
 	req->update_indir_tab = true;
 	req->cqe_coalescing_enable = 1;
 
-	req_indir_tab = (mana_handle_t *)(req + 1);
 	/* The ind table passed to the hardware must have
 	 * MANA_INDIRECT_TABLE_SIZE entries. Adjust the verb
 	 * ind_table to MANA_INDIRECT_TABLE_SIZE if required
 	 */
 	ibdev_dbg(&dev->ib_dev, "ind table size %u\n", 1 << log_ind_tbl_size);
 	for (i = 0; i < MANA_INDIRECT_TABLE_SIZE; i++) {
-		req_indir_tab[i] = ind_table[i % (1 << log_ind_tbl_size)];
+		req->indir_tab[i] = ind_table[i % (1 << log_ind_tbl_size)];
 		ibdev_dbg(&dev->ib_dev, "index %u handle 0x%llx\n", i,
-			  req_indir_tab[i]);
+			  req->indir_tab[i]);
 	}
 
 	req->update_hashkey = true;
diff --git a/drivers/net/ethernet/microsoft/mana/mana_en.c b/drivers/net/ethernet/microsoft/mana/mana_en.c
index 59287c6e6cee..62bf3e5661a6 100644
--- a/drivers/net/ethernet/microsoft/mana/mana_en.c
+++ b/drivers/net/ethernet/microsoft/mana/mana_en.c
@@ -1058,11 +1058,10 @@ static int mana_cfg_vport_steering(struct mana_port_context *apc,
 	struct mana_cfg_rx_steer_req_v2 *req;
 	struct mana_cfg_rx_steer_resp resp = {};
 	struct net_device *ndev = apc->ndev;
-	mana_handle_t *req_indir_tab;
 	u32 req_buf_size;
 	int err;
 
-	req_buf_size = sizeof(*req) + sizeof(mana_handle_t) * num_entries;
+	req_buf_size = struct_size(req, indir_tab, num_entries);
 	req = kzalloc(req_buf_size, GFP_KERNEL);
 	if (!req)
 		return -ENOMEM;
@@ -1074,7 +1073,8 @@ static int mana_cfg_vport_steering(struct mana_port_context *apc,
 
 	req->vport = apc->port_handle;
 	req->num_indir_entries = num_entries;
-	req->indir_tab_offset = sizeof(*req);
+	req->indir_tab_offset = offsetof(struct mana_cfg_rx_steer_req_v2,
+					 indir_tab);
 	req->rx_enable = rx;
 	req->rss_enable = apc->rss_state;
 	req->update_default_rxobj = update_default_rxobj;
@@ -1086,11 +1086,9 @@ static int mana_cfg_vport_steering(struct mana_port_context *apc,
 	if (update_key)
 		memcpy(&req->hashkey, apc->hashkey, MANA_HASH_KEY_SIZE);
 
-	if (update_tab) {
-		req_indir_tab = (mana_handle_t *)(req + 1);
-		memcpy(req_indir_tab, apc->rxobj_table,
-		       req->num_indir_entries * sizeof(mana_handle_t));
-	}
+	if (update_tab)
+		memcpy(req->indir_tab, apc->rxobj_table,
+		       flex_array_size(req, indir_tab, req->num_indir_entries));
 
 	err = mana_send_request(apc->ac, req, req_buf_size, &resp,
 				sizeof(resp));
diff --git a/include/net/mana/mana.h b/include/net/mana/mana.h
index 76147feb0d10..46f741ebce21 100644
--- a/include/net/mana/mana.h
+++ b/include/net/mana/mana.h
@@ -671,6 +671,7 @@ struct mana_cfg_rx_steer_req_v2 {
 	u8 hashkey[MANA_HASH_KEY_SIZE];
 	u8 cqe_coalescing_enable;
 	u8 reserved2[7];
+	mana_handle_t indir_tab[] __counted_by(num_indir_entries);
 }; /* HW DATA */
 
 struct mana_cfg_rx_steer_resp {
-- 
2.25.1


^ permalink raw reply related	[relevance 6%]

* Re: [PATCH] RDMA/mana_ib: Add flex array to struct mana_cfg_rx_steer_req_v2
  2024-04-01  2:53  0% ` Gustavo A. R. Silva
@ 2024-04-01 14:47  0%   ` Erick Archer
  0 siblings, 0 replies; 200+ results
From: Erick Archer @ 2024-04-01 14:47 UTC (permalink / raw)
  To: Gustavo A. R. Silva
  Cc: Erick Archer, Long Li, Ajay Sharma, Jason Gunthorpe,
	Leon Romanovsky, K. Y. Srinivasan, Haiyang Zhang, Wei Liu,
	Dexuan Cui, David S. Miller, Eric Dumazet, Jakub Kicinski,
	Paolo Abeni, Shradha Gupta, Konstantin Taranov, Kees Cook,
	linux-rdma, linux-kernel, linux-hyperv, netdev, linux-hardening

Hi Gustavo,

On Sun, Mar 31, 2024 at 08:53:07PM -0600, Gustavo A. R. Silva wrote:
> 
> 
> On 31/03/24 09:04, Erick Archer wrote:
> > The "struct mana_cfg_rx_steer_req_v2" uses a dynamically sized set of
> > trailing elements. Specifically, it uses a "mana_handle_t" array. So,
> > use the preferred way in the kernel declaring a flexible array [1].
> > 
> > Also, avoid the open-coded arithmetic in the memory allocator functions
> > [2] using the "struct_size" macro.
> > 
> > Moreover, use the "offsetof" helper to get the indirect table offset
> > instead of the "sizeof" operator and avoid the open-coded arithmetic in
> > pointers using the new flex member.
> > 
> > Now, it is also possible to use the "flex_array_size" helper to compute
> > the size of these trailing elements in the "memcpy" function.
> > 
> > Link: https://www.kernel.org/doc/html/next/process/deprecated.html#zero-length-and-one-element-arrays [1]
> > Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [2]
> > Signed-off-by: Erick Archer <erick.archer@outlook.com>
> > ---
> >   drivers/infiniband/hw/mana/qp.c               | 8 ++++----
> >   drivers/net/ethernet/microsoft/mana/mana_en.c | 9 +++++----
> >   include/net/mana/mana.h                       | 1 +
> >   3 files changed, 10 insertions(+), 8 deletions(-)
> > 
> > diff --git a/drivers/infiniband/hw/mana/qp.c b/drivers/infiniband/hw/mana/qp.c
> > index 6e7627745c95..c2a39db8ef92 100644
> > --- a/drivers/infiniband/hw/mana/qp.c
> > +++ b/drivers/infiniband/hw/mana/qp.c
> > @@ -22,8 +22,7 @@ static int mana_ib_cfg_vport_steering(struct mana_ib_dev *dev,
> >   	gc = mdev_to_gc(dev);
> > -	req_buf_size =
> > -		sizeof(*req) + sizeof(mana_handle_t) * MANA_INDIRECT_TABLE_SIZE;
> > +	req_buf_size = struct_size(req, indir_tab, MANA_INDIRECT_TABLE_SIZE);
> >   	req = kzalloc(req_buf_size, GFP_KERNEL);
> >   	if (!req)
> >   		return -ENOMEM;
> > @@ -44,11 +43,12 @@ static int mana_ib_cfg_vport_steering(struct mana_ib_dev *dev,
> >   		req->rss_enable = true;
> >   	req->num_indir_entries = MANA_INDIRECT_TABLE_SIZE;
> > -	req->indir_tab_offset = sizeof(*req);
> > +	req->indir_tab_offset = offsetof(struct mana_cfg_rx_steer_req_v2,
> > +					 indir_tab);
> >   	req->update_indir_tab = true;
> >   	req->cqe_coalescing_enable = 1;
> > -	req_indir_tab = (mana_handle_t *)(req + 1);
> > +	req_indir_tab = req->indir_tab;
> 
> It seems that `req_indir_tab` can be removed, and `req->indir_tab` be directly used.

It seems reasonable to me. Thanks for looking at this.

Regards,
Erick

> 
> >   	/* The ind table passed to the hardware must have
> >   	 * MANA_INDIRECT_TABLE_SIZE entries. Adjust the verb
> >   	 * ind_table to MANA_INDIRECT_TABLE_SIZE if required
> > diff --git a/drivers/net/ethernet/microsoft/mana/mana_en.c b/drivers/net/ethernet/microsoft/mana/mana_en.c
> > index 59287c6e6cee..04aa096c6cc4 100644
> > --- a/drivers/net/ethernet/microsoft/mana/mana_en.c
> > +++ b/drivers/net/ethernet/microsoft/mana/mana_en.c
> > @@ -1062,7 +1062,7 @@ static int mana_cfg_vport_steering(struct mana_port_context *apc,
> >   	u32 req_buf_size;
> >   	int err;
> > -	req_buf_size = sizeof(*req) + sizeof(mana_handle_t) * num_entries;
> > +	req_buf_size = struct_size(req, indir_tab, num_entries);
> >   	req = kzalloc(req_buf_size, GFP_KERNEL);
> >   	if (!req)
> >   		return -ENOMEM;
> > @@ -1074,7 +1074,8 @@ static int mana_cfg_vport_steering(struct mana_port_context *apc,
> >   	req->vport = apc->port_handle;
> >   	req->num_indir_entries = num_entries;
> > -	req->indir_tab_offset = sizeof(*req);
> > +	req->indir_tab_offset = offsetof(struct mana_cfg_rx_steer_req_v2,
> > +					 indir_tab);
> >   	req->rx_enable = rx;
> >   	req->rss_enable = apc->rss_state;
> >   	req->update_default_rxobj = update_default_rxobj;
> > @@ -1087,9 +1088,9 @@ static int mana_cfg_vport_steering(struct mana_port_context *apc,
> >   		memcpy(&req->hashkey, apc->hashkey, MANA_HASH_KEY_SIZE);
> >   	if (update_tab) {
> > -		req_indir_tab = (mana_handle_t *)(req + 1);
> > +		req_indir_tab = req->indir_tab;
> 
> Ditto.
> 
> Thanks
> --
> Gustavo
> 
> >   		memcpy(req_indir_tab, apc->rxobj_table,
> > -		       req->num_indir_entries * sizeof(mana_handle_t));
> > +		       flex_array_size(req, indir_tab, req->num_indir_entries));
> >   	}
> >   	err = mana_send_request(apc->ac, req, req_buf_size, &resp,
> > diff --git a/include/net/mana/mana.h b/include/net/mana/mana.h
> > index 76147feb0d10..20ffcae29e1e 100644
> > --- a/include/net/mana/mana.h
> > +++ b/include/net/mana/mana.h
> > @@ -671,6 +671,7 @@ struct mana_cfg_rx_steer_req_v2 {
> >   	u8 hashkey[MANA_HASH_KEY_SIZE];
> >   	u8 cqe_coalescing_enable;
> >   	u8 reserved2[7];
> > +	mana_handle_t indir_tab[];
> >   }; /* HW DATA */
> >   struct mana_cfg_rx_steer_resp {

^ permalink raw reply	[relevance 0%]

* Re: [PATCH v2] drm/radeon/radeon_display: Decrease the size of allocated memory
  2024-03-30 16:34  4% [PATCH v2] drm/radeon/radeon_display: Decrease the size of allocated memory Erick Archer
@ 2024-04-01 12:35  0% ` Christian König
  2024-04-08 20:05  0%   ` Alex Deucher
  0 siblings, 1 reply; 200+ results
From: Christian König @ 2024-04-01 12:35 UTC (permalink / raw)
  To: Erick Archer, Alex Deucher, Pan, Xinhui, David Airlie,
	Daniel Vetter, Gustavo A. R. Silva, Kees Cook
  Cc: amd-gfx, dri-devel, linux-kernel, linux-hardening

Am 30.03.24 um 17:34 schrieb Erick Archer:
> This is an effort to get rid of all multiplications from allocation
> functions in order to prevent integer overflows [1] [2].
>
> In this case, the memory allocated to store RADEONFB_CONN_LIMIT pointers
> to "drm_connector" structures can be avoided. This is because this
> memory area is never accessed.
>
> Also, in the kzalloc function, it is preferred to use sizeof(*pointer)
> instead of sizeof(type) due to the type of the variable can change and
> one needs not change the former (unlike the latter).
>
> At the same time take advantage to remove the "#if 0" block, the code
> where the removed memory area was accessed, and the RADEONFB_CONN_LIMIT
> constant due to now is never used.
>
> Link: https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
> Link: https://github.com/KSPP/linux/issues/160 [2]
> Signed-off-by: Erick Archer <erick.archer@outlook.com>

Well in general we don't do any new feature development any more for the 
radeon driver.

But this cleanup looks so straight forward that the risk of breaking 
something is probably very low.

Acked-by from my side, but Alex should probably take a look as well.

Regards,
Christian.

> ---
> Changes in v2:
> - Rebase against linux-next.
>
> Previous versions:
> v1 -> https://lore.kernel.org/linux-hardening/20240222180431.7451-1-erick.archer@gmx.com/
>
> Hi everyone,
>
> Any comments would be greatly appreciated. The first version was
> not commented.
>
> Thanks,
> Erick
> ---
>   drivers/gpu/drm/radeon/radeon.h         | 1 -
>   drivers/gpu/drm/radeon/radeon_display.c | 8 +-------
>   2 files changed, 1 insertion(+), 8 deletions(-)
>
> diff --git a/drivers/gpu/drm/radeon/radeon.h b/drivers/gpu/drm/radeon/radeon.h
> index 3e5ff17e3caf..0999c8eaae94 100644
> --- a/drivers/gpu/drm/radeon/radeon.h
> +++ b/drivers/gpu/drm/radeon/radeon.h
> @@ -132,7 +132,6 @@ extern int radeon_cik_support;
>   /* RADEON_IB_POOL_SIZE must be a power of 2 */
>   #define RADEON_IB_POOL_SIZE			16
>   #define RADEON_DEBUGFS_MAX_COMPONENTS		32
> -#define RADEONFB_CONN_LIMIT			4
>   #define RADEON_BIOS_NUM_SCRATCH			8
>   
>   /* internal ring indices */
> diff --git a/drivers/gpu/drm/radeon/radeon_display.c b/drivers/gpu/drm/radeon/radeon_display.c
> index efd18c8d84c8..5f1d24d3120c 100644
> --- a/drivers/gpu/drm/radeon/radeon_display.c
> +++ b/drivers/gpu/drm/radeon/radeon_display.c
> @@ -683,7 +683,7 @@ static void radeon_crtc_init(struct drm_device *dev, int index)
>   	struct radeon_device *rdev = dev->dev_private;
>   	struct radeon_crtc *radeon_crtc;
>   
> -	radeon_crtc = kzalloc(sizeof(struct radeon_crtc) + (RADEONFB_CONN_LIMIT * sizeof(struct drm_connector *)), GFP_KERNEL);
> +	radeon_crtc = kzalloc(sizeof(*radeon_crtc), GFP_KERNEL);
>   	if (radeon_crtc == NULL)
>   		return;
>   
> @@ -709,12 +709,6 @@ static void radeon_crtc_init(struct drm_device *dev, int index)
>   	dev->mode_config.cursor_width = radeon_crtc->max_cursor_width;
>   	dev->mode_config.cursor_height = radeon_crtc->max_cursor_height;
>   
> -#if 0
> -	radeon_crtc->mode_set.crtc = &radeon_crtc->base;
> -	radeon_crtc->mode_set.connectors = (struct drm_connector **)(radeon_crtc + 1);
> -	radeon_crtc->mode_set.num_connectors = 0;
> -#endif
> -
>   	if (rdev->is_atom_bios && (ASIC_IS_AVIVO(rdev) || radeon_r4xx_atom))
>   		radeon_atombios_init_crtc(dev, radeon_crtc);
>   	else


^ permalink raw reply	[relevance 0%]

* Re: [PATCH] RDMA/mana_ib: Add flex array to struct mana_cfg_rx_steer_req_v2
  2024-03-31 15:04  6% [PATCH] RDMA/mana_ib: Add flex array to struct mana_cfg_rx_steer_req_v2 Erick Archer
@ 2024-04-01  2:53  0% ` Gustavo A. R. Silva
  2024-04-01 14:47  0%   ` Erick Archer
  0 siblings, 1 reply; 200+ results
From: Gustavo A. R. Silva @ 2024-04-01  2:53 UTC (permalink / raw)
  To: Erick Archer, Long Li, Ajay Sharma, Jason Gunthorpe,
	Leon Romanovsky, K. Y. Srinivasan, Haiyang Zhang, Wei Liu,
	Dexuan Cui, David S. Miller, Eric Dumazet, Jakub Kicinski,
	Paolo Abeni, Shradha Gupta, Konstantin Taranov, Kees Cook,
	Gustavo A. R. Silva
  Cc: linux-rdma, linux-kernel, linux-hyperv, netdev, linux-hardening



On 31/03/24 09:04, Erick Archer wrote:
> The "struct mana_cfg_rx_steer_req_v2" uses a dynamically sized set of
> trailing elements. Specifically, it uses a "mana_handle_t" array. So,
> use the preferred way in the kernel declaring a flexible array [1].
> 
> Also, avoid the open-coded arithmetic in the memory allocator functions
> [2] using the "struct_size" macro.
> 
> Moreover, use the "offsetof" helper to get the indirect table offset
> instead of the "sizeof" operator and avoid the open-coded arithmetic in
> pointers using the new flex member.
> 
> Now, it is also possible to use the "flex_array_size" helper to compute
> the size of these trailing elements in the "memcpy" function.
> 
> Link: https://www.kernel.org/doc/html/next/process/deprecated.html#zero-length-and-one-element-arrays [1]
> Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [2]
> Signed-off-by: Erick Archer <erick.archer@outlook.com>
> ---
>   drivers/infiniband/hw/mana/qp.c               | 8 ++++----
>   drivers/net/ethernet/microsoft/mana/mana_en.c | 9 +++++----
>   include/net/mana/mana.h                       | 1 +
>   3 files changed, 10 insertions(+), 8 deletions(-)
> 
> diff --git a/drivers/infiniband/hw/mana/qp.c b/drivers/infiniband/hw/mana/qp.c
> index 6e7627745c95..c2a39db8ef92 100644
> --- a/drivers/infiniband/hw/mana/qp.c
> +++ b/drivers/infiniband/hw/mana/qp.c
> @@ -22,8 +22,7 @@ static int mana_ib_cfg_vport_steering(struct mana_ib_dev *dev,
>   
>   	gc = mdev_to_gc(dev);
>   
> -	req_buf_size =
> -		sizeof(*req) + sizeof(mana_handle_t) * MANA_INDIRECT_TABLE_SIZE;
> +	req_buf_size = struct_size(req, indir_tab, MANA_INDIRECT_TABLE_SIZE);
>   	req = kzalloc(req_buf_size, GFP_KERNEL);
>   	if (!req)
>   		return -ENOMEM;
> @@ -44,11 +43,12 @@ static int mana_ib_cfg_vport_steering(struct mana_ib_dev *dev,
>   		req->rss_enable = true;
>   
>   	req->num_indir_entries = MANA_INDIRECT_TABLE_SIZE;
> -	req->indir_tab_offset = sizeof(*req);
> +	req->indir_tab_offset = offsetof(struct mana_cfg_rx_steer_req_v2,
> +					 indir_tab);
>   	req->update_indir_tab = true;
>   	req->cqe_coalescing_enable = 1;
>   
> -	req_indir_tab = (mana_handle_t *)(req + 1);
> +	req_indir_tab = req->indir_tab;

It seems that `req_indir_tab` can be removed, and `req->indir_tab` be directly used.

>   	/* The ind table passed to the hardware must have
>   	 * MANA_INDIRECT_TABLE_SIZE entries. Adjust the verb
>   	 * ind_table to MANA_INDIRECT_TABLE_SIZE if required
> diff --git a/drivers/net/ethernet/microsoft/mana/mana_en.c b/drivers/net/ethernet/microsoft/mana/mana_en.c
> index 59287c6e6cee..04aa096c6cc4 100644
> --- a/drivers/net/ethernet/microsoft/mana/mana_en.c
> +++ b/drivers/net/ethernet/microsoft/mana/mana_en.c
> @@ -1062,7 +1062,7 @@ static int mana_cfg_vport_steering(struct mana_port_context *apc,
>   	u32 req_buf_size;
>   	int err;
>   
> -	req_buf_size = sizeof(*req) + sizeof(mana_handle_t) * num_entries;
> +	req_buf_size = struct_size(req, indir_tab, num_entries);
>   	req = kzalloc(req_buf_size, GFP_KERNEL);
>   	if (!req)
>   		return -ENOMEM;
> @@ -1074,7 +1074,8 @@ static int mana_cfg_vport_steering(struct mana_port_context *apc,
>   
>   	req->vport = apc->port_handle;
>   	req->num_indir_entries = num_entries;
> -	req->indir_tab_offset = sizeof(*req);
> +	req->indir_tab_offset = offsetof(struct mana_cfg_rx_steer_req_v2,
> +					 indir_tab);
>   	req->rx_enable = rx;
>   	req->rss_enable = apc->rss_state;
>   	req->update_default_rxobj = update_default_rxobj;
> @@ -1087,9 +1088,9 @@ static int mana_cfg_vport_steering(struct mana_port_context *apc,
>   		memcpy(&req->hashkey, apc->hashkey, MANA_HASH_KEY_SIZE);
>   
>   	if (update_tab) {
> -		req_indir_tab = (mana_handle_t *)(req + 1);
> +		req_indir_tab = req->indir_tab;

Ditto.

Thanks
--
Gustavo

>   		memcpy(req_indir_tab, apc->rxobj_table,
> -		       req->num_indir_entries * sizeof(mana_handle_t));
> +		       flex_array_size(req, indir_tab, req->num_indir_entries));
>   	}
>   
>   	err = mana_send_request(apc->ac, req, req_buf_size, &resp,
> diff --git a/include/net/mana/mana.h b/include/net/mana/mana.h
> index 76147feb0d10..20ffcae29e1e 100644
> --- a/include/net/mana/mana.h
> +++ b/include/net/mana/mana.h
> @@ -671,6 +671,7 @@ struct mana_cfg_rx_steer_req_v2 {
>   	u8 hashkey[MANA_HASH_KEY_SIZE];
>   	u8 cqe_coalescing_enable;
>   	u8 reserved2[7];
> +	mana_handle_t indir_tab[];
>   }; /* HW DATA */
>   
>   struct mana_cfg_rx_steer_resp {

^ permalink raw reply	[relevance 0%]

* [PATCH] RDMA/mana_ib: Add flex array to struct mana_cfg_rx_steer_req_v2
@ 2024-03-31 15:04  6% Erick Archer
  2024-04-01  2:53  0% ` Gustavo A. R. Silva
  0 siblings, 1 reply; 200+ results
From: Erick Archer @ 2024-03-31 15:04 UTC (permalink / raw)
  To: Long Li, Ajay Sharma, Jason Gunthorpe, Leon Romanovsky,
	K. Y. Srinivasan, Haiyang Zhang, Wei Liu, Dexuan Cui,
	David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
	Shradha Gupta, Konstantin Taranov, Kees Cook,
	Gustavo A. R. Silva
  Cc: Erick Archer, linux-rdma, linux-kernel, linux-hyperv, netdev,
	linux-hardening

The "struct mana_cfg_rx_steer_req_v2" uses a dynamically sized set of
trailing elements. Specifically, it uses a "mana_handle_t" array. So,
use the preferred way in the kernel declaring a flexible array [1].

Also, avoid the open-coded arithmetic in the memory allocator functions
[2] using the "struct_size" macro.

Moreover, use the "offsetof" helper to get the indirect table offset
instead of the "sizeof" operator and avoid the open-coded arithmetic in
pointers using the new flex member.

Now, it is also possible to use the "flex_array_size" helper to compute
the size of these trailing elements in the "memcpy" function.

Link: https://www.kernel.org/doc/html/next/process/deprecated.html#zero-length-and-one-element-arrays [1]
Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [2]
Signed-off-by: Erick Archer <erick.archer@outlook.com>
---
 drivers/infiniband/hw/mana/qp.c               | 8 ++++----
 drivers/net/ethernet/microsoft/mana/mana_en.c | 9 +++++----
 include/net/mana/mana.h                       | 1 +
 3 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/drivers/infiniband/hw/mana/qp.c b/drivers/infiniband/hw/mana/qp.c
index 6e7627745c95..c2a39db8ef92 100644
--- a/drivers/infiniband/hw/mana/qp.c
+++ b/drivers/infiniband/hw/mana/qp.c
@@ -22,8 +22,7 @@ static int mana_ib_cfg_vport_steering(struct mana_ib_dev *dev,
 
 	gc = mdev_to_gc(dev);
 
-	req_buf_size =
-		sizeof(*req) + sizeof(mana_handle_t) * MANA_INDIRECT_TABLE_SIZE;
+	req_buf_size = struct_size(req, indir_tab, MANA_INDIRECT_TABLE_SIZE);
 	req = kzalloc(req_buf_size, GFP_KERNEL);
 	if (!req)
 		return -ENOMEM;
@@ -44,11 +43,12 @@ static int mana_ib_cfg_vport_steering(struct mana_ib_dev *dev,
 		req->rss_enable = true;
 
 	req->num_indir_entries = MANA_INDIRECT_TABLE_SIZE;
-	req->indir_tab_offset = sizeof(*req);
+	req->indir_tab_offset = offsetof(struct mana_cfg_rx_steer_req_v2,
+					 indir_tab);
 	req->update_indir_tab = true;
 	req->cqe_coalescing_enable = 1;
 
-	req_indir_tab = (mana_handle_t *)(req + 1);
+	req_indir_tab = req->indir_tab;
 	/* The ind table passed to the hardware must have
 	 * MANA_INDIRECT_TABLE_SIZE entries. Adjust the verb
 	 * ind_table to MANA_INDIRECT_TABLE_SIZE if required
diff --git a/drivers/net/ethernet/microsoft/mana/mana_en.c b/drivers/net/ethernet/microsoft/mana/mana_en.c
index 59287c6e6cee..04aa096c6cc4 100644
--- a/drivers/net/ethernet/microsoft/mana/mana_en.c
+++ b/drivers/net/ethernet/microsoft/mana/mana_en.c
@@ -1062,7 +1062,7 @@ static int mana_cfg_vport_steering(struct mana_port_context *apc,
 	u32 req_buf_size;
 	int err;
 
-	req_buf_size = sizeof(*req) + sizeof(mana_handle_t) * num_entries;
+	req_buf_size = struct_size(req, indir_tab, num_entries);
 	req = kzalloc(req_buf_size, GFP_KERNEL);
 	if (!req)
 		return -ENOMEM;
@@ -1074,7 +1074,8 @@ static int mana_cfg_vport_steering(struct mana_port_context *apc,
 
 	req->vport = apc->port_handle;
 	req->num_indir_entries = num_entries;
-	req->indir_tab_offset = sizeof(*req);
+	req->indir_tab_offset = offsetof(struct mana_cfg_rx_steer_req_v2,
+					 indir_tab);
 	req->rx_enable = rx;
 	req->rss_enable = apc->rss_state;
 	req->update_default_rxobj = update_default_rxobj;
@@ -1087,9 +1088,9 @@ static int mana_cfg_vport_steering(struct mana_port_context *apc,
 		memcpy(&req->hashkey, apc->hashkey, MANA_HASH_KEY_SIZE);
 
 	if (update_tab) {
-		req_indir_tab = (mana_handle_t *)(req + 1);
+		req_indir_tab = req->indir_tab;
 		memcpy(req_indir_tab, apc->rxobj_table,
-		       req->num_indir_entries * sizeof(mana_handle_t));
+		       flex_array_size(req, indir_tab, req->num_indir_entries));
 	}
 
 	err = mana_send_request(apc->ac, req, req_buf_size, &resp,
diff --git a/include/net/mana/mana.h b/include/net/mana/mana.h
index 76147feb0d10..20ffcae29e1e 100644
--- a/include/net/mana/mana.h
+++ b/include/net/mana/mana.h
@@ -671,6 +671,7 @@ struct mana_cfg_rx_steer_req_v2 {
 	u8 hashkey[MANA_HASH_KEY_SIZE];
 	u8 cqe_coalescing_enable;
 	u8 reserved2[7];
+	mana_handle_t indir_tab[];
 }; /* HW DATA */
 
 struct mana_cfg_rx_steer_resp {
-- 
2.25.1


^ permalink raw reply related	[relevance 6%]

* Re: [PATCH v2] perf/x86/amd/uncore: Use kcalloc*() instead of kzalloc*()
  2024-03-30 21:11  0% ` Ingo Molnar
@ 2024-03-31 13:30  4%   ` Erick Archer
  0 siblings, 0 replies; 200+ results
From: Erick Archer @ 2024-03-31 13:30 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: Erick Archer, Peter Zijlstra, Arnaldo Carvalho de Melo,
	Namhyung Kim, Thomas Gleixner, Borislav Petkov, Dave Hansen,
	Mark Rutland, Alexander Shishkin, Jiri Olsa, Ian Rogers,
	Adrian Hunter, H. Peter Anvin, Kees Cook, Gustavo A. R. Silva,
	x86, linux-perf-users, linux-kernel, linux-hardening

Hi Ingo,

On Sat, Mar 30, 2024 at 10:11:23PM +0100, Ingo Molnar wrote:
> 
> * Erick Archer <erick.archer@outlook.com> wrote:
> 
> > As noted in the "Deprecated Interfaces, Language Features, Attributes,
> > and Conventions" documentation [1], size calculations (especially
> > multiplication) should not be performed in memory allocator (or similar)
> > function arguments due to the risk of them overflowing. This could lead
> > to values wrapping around and a smaller allocation being made than the
> > caller was expecting. Using those allocations could lead to linear
> > overflows of heap memory and other misbehaviors.
> > 
> > So, use the purpose specific kcalloc*() function instead of the argument
> > size * count in the kzalloc*() function.
> > 
> > [1] https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments
> > 
> > Link: https://github.com/KSPP/linux/issues/162
> > Reviewed-by: Gustavo A. R. Silva <gustavoars@kernel.org>
> > Signed-off-by: Erick Archer <erick.archer@outlook.com>
> > ---
> > Changes in v2:
> > - Add the "Reviewed-by:" tag.
> > - Rebase against linux-next.
> > 
> > Previous versions:
> > v1 -> https://lore.kernel.org/linux-hardening/20240116125813.3754-1-erick.archer@gmx.com/
> > 
> > Hi everyone,
> > 
> > This patch seems to be lost. Gustavo reviewed it on January 16, 2024
> > but the patch has not been applied since.
> > 
> > Thanks,
> > Erick
> > ---
> >  arch/x86/events/amd/uncore.c | 6 +++---
> >  1 file changed, 3 insertions(+), 3 deletions(-)
> > 
> > diff --git a/arch/x86/events/amd/uncore.c b/arch/x86/events/amd/uncore.c
> > index 4ccb8fa483e6..61c0a2114183 100644
> > --- a/arch/x86/events/amd/uncore.c
> > +++ b/arch/x86/events/amd/uncore.c
> > @@ -479,8 +479,8 @@ static int amd_uncore_ctx_init(struct amd_uncore *uncore, unsigned int cpu)
> >  				goto fail;
> >  
> >  			curr->cpu = cpu;
> > -			curr->events = kzalloc_node(sizeof(*curr->events) *
> > -						    pmu->num_counters,
> > +			curr->events = kcalloc_node(pmu->num_counters,
> > +						    sizeof(*curr->events),
> >  						    GFP_KERNEL, node);
> >  			if (!curr->events) {
> >  				kfree(curr);
> > @@ -928,7 +928,7 @@ int amd_uncore_umc_ctx_init(struct amd_uncore *uncore, unsigned int cpu)
> >  		uncore->num_pmus += group_num_pmus[gid];
> >  	}
> >  
> > -	uncore->pmus = kzalloc(sizeof(*uncore->pmus) * uncore->num_pmus,
> > +	uncore->pmus = kcalloc(uncore->num_pmus, sizeof(*uncore->pmus),
> >  			       GFP_KERNEL);
> >  	if (!uncore->pmus) {
> >  		uncore->num_pmus = 0;
> 
> This change is nonsense, kzalloc() is a perfectly usable interface, and 
> none of the arguments are user-controlled, so I don't see how there 
> could be a real overflow bug here.

Yes, you are right. This scenario is obviously safe, but this is an
effort to get rid of all multiplications from allocations functions
in the kernel. Surely, the commit message is scarier than it really
is in reality.

If you prefer I can send a v3 with the following commit message in
order to better explain the change.

[start of commit message] -----------------------------------------
This is an effort to get rid of all multiplications from allocation
functions in order to prevent integer overflows [1].

Here the multiplication is obviously safe. However, using kcalloc*()
is more appropriate [2] and improves readability. This patch has no
effect on runtime behavior.

Link: https://github.com/KSPP/linux/issues/162 [1]
Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [2]
[end of commit message] -------------------------------------------

Best regards,
Erick

> Thanks,
> 
> 	Ingo

^ permalink raw reply	[relevance 4%]

* Re: [PATCH v2] perf/x86/amd/uncore: Use kcalloc*() instead of kzalloc*()
  2024-03-30 15:46  4% [PATCH v2] perf/x86/amd/uncore: Use kcalloc*() instead of kzalloc*() Erick Archer
@ 2024-03-30 21:11  0% ` Ingo Molnar
  2024-03-31 13:30  4%   ` Erick Archer
  0 siblings, 1 reply; 200+ results
From: Ingo Molnar @ 2024-03-30 21:11 UTC (permalink / raw)
  To: Erick Archer
  Cc: Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
	Namhyung Kim, Thomas Gleixner, Borislav Petkov, Dave Hansen,
	Mark Rutland, Alexander Shishkin, Jiri Olsa, Ian Rogers,
	Adrian Hunter, H. Peter Anvin, Kees Cook, Gustavo A. R. Silva,
	x86, linux-perf-users, linux-kernel, linux-hardening


* Erick Archer <erick.archer@outlook.com> wrote:

> As noted in the "Deprecated Interfaces, Language Features, Attributes,
> and Conventions" documentation [1], size calculations (especially
> multiplication) should not be performed in memory allocator (or similar)
> function arguments due to the risk of them overflowing. This could lead
> to values wrapping around and a smaller allocation being made than the
> caller was expecting. Using those allocations could lead to linear
> overflows of heap memory and other misbehaviors.
> 
> So, use the purpose specific kcalloc*() function instead of the argument
> size * count in the kzalloc*() function.
> 
> [1] https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments
> 
> Link: https://github.com/KSPP/linux/issues/162
> Reviewed-by: Gustavo A. R. Silva <gustavoars@kernel.org>
> Signed-off-by: Erick Archer <erick.archer@outlook.com>
> ---
> Changes in v2:
> - Add the "Reviewed-by:" tag.
> - Rebase against linux-next.
> 
> Previous versions:
> v1 -> https://lore.kernel.org/linux-hardening/20240116125813.3754-1-erick.archer@gmx.com/
> 
> Hi everyone,
> 
> This patch seems to be lost. Gustavo reviewed it on January 16, 2024
> but the patch has not been applied since.
> 
> Thanks,
> Erick
> ---
>  arch/x86/events/amd/uncore.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/arch/x86/events/amd/uncore.c b/arch/x86/events/amd/uncore.c
> index 4ccb8fa483e6..61c0a2114183 100644
> --- a/arch/x86/events/amd/uncore.c
> +++ b/arch/x86/events/amd/uncore.c
> @@ -479,8 +479,8 @@ static int amd_uncore_ctx_init(struct amd_uncore *uncore, unsigned int cpu)
>  				goto fail;
>  
>  			curr->cpu = cpu;
> -			curr->events = kzalloc_node(sizeof(*curr->events) *
> -						    pmu->num_counters,
> +			curr->events = kcalloc_node(pmu->num_counters,
> +						    sizeof(*curr->events),
>  						    GFP_KERNEL, node);
>  			if (!curr->events) {
>  				kfree(curr);
> @@ -928,7 +928,7 @@ int amd_uncore_umc_ctx_init(struct amd_uncore *uncore, unsigned int cpu)
>  		uncore->num_pmus += group_num_pmus[gid];
>  	}
>  
> -	uncore->pmus = kzalloc(sizeof(*uncore->pmus) * uncore->num_pmus,
> +	uncore->pmus = kcalloc(uncore->num_pmus, sizeof(*uncore->pmus),
>  			       GFP_KERNEL);
>  	if (!uncore->pmus) {
>  		uncore->num_pmus = 0;

This change is nonsense, kzalloc() is a perfectly usable interface, and 
none of the arguments are user-controlled, so I don't see how there 
could be a real overflow bug here.

Thanks,

	Ingo

^ permalink raw reply	[relevance 0%]

* [PATCH] mtd: maps: sa1100-flash: Prefer struct_size over open coded arithmetic
@ 2024-03-30 17:55 11% Erick Archer
  2024-04-09  6:40  7% ` Miquel Raynal
  0 siblings, 1 reply; 200+ results
From: Erick Archer @ 2024-03-30 17:55 UTC (permalink / raw)
  To: Miquel Raynal, Richard Weinberger, Vignesh Raghavendra,
	Tudor Ambarus, Uwe Kleine-König, Kees Cook,
	Gustavo A. R. Silva
  Cc: Erick Archer, linux-mtd, linux-kernel, linux-hardening

This is an effort to get rid of all multiplications from allocation
functions in order to prevent integer overflows [1][2].

As the "info" variable is a pointer to "struct sa_info" and this
structure ends in a flexible array:

struct sa_info {
	[...]
	struct sa_subdev_info	subdev[];
};

the preferred way in the kernel is to use the struct_size() helper to
do the arithmetic instead of the calculation "size + size * count" in
the kzalloc() function.

This way, the code is more readable and safer.

This code was detected with the help of Coccinelle, and audited and
modified manually.

Link: https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
Link: https://github.com/KSPP/linux/issues/160 [2]
Signed-off-by: Erick Archer <erick.archer@outlook.com>
---
Hi,

The Coccinelle script used to detect this code pattern is the following:

virtual report

@rule1@
type t1;
type t2;
identifier i0;
identifier i1;
identifier i2;
identifier ALLOC =~ "kmalloc|kzalloc|kmalloc_node|kzalloc_node|vmalloc|vzalloc|kvmalloc|kvzalloc";
position p1;
@@

i0 = sizeof(t1) + sizeof(t2) * i1;
...
i2 = ALLOC@p1(..., i0, ...);

@script:python depends on report@
p1 << rule1.p1;
@@

msg = "WARNING: verify allocation on line %s" % (p1[0].line)
coccilib.report.print_report(p1[0],msg)

Regards,
Erick
---
 drivers/mtd/maps/sa1100-flash.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/mtd/maps/sa1100-flash.c b/drivers/mtd/maps/sa1100-flash.c
index d4ce2376d33f..ac8a0a19a021 100644
--- a/drivers/mtd/maps/sa1100-flash.c
+++ b/drivers/mtd/maps/sa1100-flash.c
@@ -153,7 +153,7 @@ static struct sa_info *sa1100_setup_mtd(struct platform_device *pdev,
 					struct flash_platform_data *plat)
 {
 	struct sa_info *info;
-	int nr, size, i, ret = 0;
+	int nr, i, ret = 0;
 
 	/*
 	 * Count number of devices.
@@ -167,12 +167,10 @@ static struct sa_info *sa1100_setup_mtd(struct platform_device *pdev,
 		goto out;
 	}
 
-	size = sizeof(struct sa_info) + sizeof(struct sa_subdev_info) * nr;
-
 	/*
 	 * Allocate the map_info structs in one go.
 	 */
-	info = kzalloc(size, GFP_KERNEL);
+	info = kzalloc(struct_size(info, subdev, nr), GFP_KERNEL);
 	if (!info) {
 		ret = -ENOMEM;
 		goto out;
-- 
2.25.1


^ permalink raw reply related	[relevance 11%]

* [PATCH v2] drm/radeon/radeon_display: Decrease the size of allocated memory
@ 2024-03-30 16:34  4% Erick Archer
  2024-04-01 12:35  0% ` Christian König
  0 siblings, 1 reply; 200+ results
From: Erick Archer @ 2024-03-30 16:34 UTC (permalink / raw)
  To: Alex Deucher, Christian König, Pan, Xinhui, David Airlie,
	Daniel Vetter, Gustavo A. R. Silva, Kees Cook
  Cc: Erick Archer, amd-gfx, dri-devel, linux-kernel, linux-hardening

This is an effort to get rid of all multiplications from allocation
functions in order to prevent integer overflows [1] [2].

In this case, the memory allocated to store RADEONFB_CONN_LIMIT pointers
to "drm_connector" structures can be avoided. This is because this
memory area is never accessed.

Also, in the kzalloc function, it is preferred to use sizeof(*pointer)
instead of sizeof(type) due to the type of the variable can change and
one needs not change the former (unlike the latter).

At the same time take advantage to remove the "#if 0" block, the code
where the removed memory area was accessed, and the RADEONFB_CONN_LIMIT
constant due to now is never used.

Link: https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
Link: https://github.com/KSPP/linux/issues/160 [2]
Signed-off-by: Erick Archer <erick.archer@outlook.com>
---
Changes in v2:
- Rebase against linux-next.

Previous versions:
v1 -> https://lore.kernel.org/linux-hardening/20240222180431.7451-1-erick.archer@gmx.com/

Hi everyone,

Any comments would be greatly appreciated. The first version was
not commented.

Thanks,
Erick
---
 drivers/gpu/drm/radeon/radeon.h         | 1 -
 drivers/gpu/drm/radeon/radeon_display.c | 8 +-------
 2 files changed, 1 insertion(+), 8 deletions(-)

diff --git a/drivers/gpu/drm/radeon/radeon.h b/drivers/gpu/drm/radeon/radeon.h
index 3e5ff17e3caf..0999c8eaae94 100644
--- a/drivers/gpu/drm/radeon/radeon.h
+++ b/drivers/gpu/drm/radeon/radeon.h
@@ -132,7 +132,6 @@ extern int radeon_cik_support;
 /* RADEON_IB_POOL_SIZE must be a power of 2 */
 #define RADEON_IB_POOL_SIZE			16
 #define RADEON_DEBUGFS_MAX_COMPONENTS		32
-#define RADEONFB_CONN_LIMIT			4
 #define RADEON_BIOS_NUM_SCRATCH			8
 
 /* internal ring indices */
diff --git a/drivers/gpu/drm/radeon/radeon_display.c b/drivers/gpu/drm/radeon/radeon_display.c
index efd18c8d84c8..5f1d24d3120c 100644
--- a/drivers/gpu/drm/radeon/radeon_display.c
+++ b/drivers/gpu/drm/radeon/radeon_display.c
@@ -683,7 +683,7 @@ static void radeon_crtc_init(struct drm_device *dev, int index)
 	struct radeon_device *rdev = dev->dev_private;
 	struct radeon_crtc *radeon_crtc;
 
-	radeon_crtc = kzalloc(sizeof(struct radeon_crtc) + (RADEONFB_CONN_LIMIT * sizeof(struct drm_connector *)), GFP_KERNEL);
+	radeon_crtc = kzalloc(sizeof(*radeon_crtc), GFP_KERNEL);
 	if (radeon_crtc == NULL)
 		return;
 
@@ -709,12 +709,6 @@ static void radeon_crtc_init(struct drm_device *dev, int index)
 	dev->mode_config.cursor_width = radeon_crtc->max_cursor_width;
 	dev->mode_config.cursor_height = radeon_crtc->max_cursor_height;
 
-#if 0
-	radeon_crtc->mode_set.crtc = &radeon_crtc->base;
-	radeon_crtc->mode_set.connectors = (struct drm_connector **)(radeon_crtc + 1);
-	radeon_crtc->mode_set.num_connectors = 0;
-#endif
-
 	if (rdev->is_atom_bios && (ASIC_IS_AVIVO(rdev) || radeon_r4xx_atom))
 		radeon_atombios_init_crtc(dev, radeon_crtc);
 	else
-- 
2.25.1


^ permalink raw reply related	[relevance 4%]

* [PATCH v2] perf/x86/amd/uncore: Use kcalloc*() instead of kzalloc*()
@ 2024-03-30 15:46  4% Erick Archer
  2024-03-30 21:11  0% ` Ingo Molnar
  0 siblings, 1 reply; 200+ results
From: Erick Archer @ 2024-03-30 15:46 UTC (permalink / raw)
  To: Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
	Namhyung Kim, Thomas Gleixner, Borislav Petkov, Dave Hansen,
	Mark Rutland, Alexander Shishkin, Jiri Olsa, Ian Rogers,
	Adrian Hunter, H. Peter Anvin, Kees Cook, Gustavo A. R. Silva
  Cc: Erick Archer, x86, linux-perf-users, linux-kernel, linux-hardening

As noted in the "Deprecated Interfaces, Language Features, Attributes,
and Conventions" documentation [1], size calculations (especially
multiplication) should not be performed in memory allocator (or similar)
function arguments due to the risk of them overflowing. This could lead
to values wrapping around and a smaller allocation being made than the
caller was expecting. Using those allocations could lead to linear
overflows of heap memory and other misbehaviors.

So, use the purpose specific kcalloc*() function instead of the argument
size * count in the kzalloc*() function.

[1] https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments

Link: https://github.com/KSPP/linux/issues/162
Reviewed-by: Gustavo A. R. Silva <gustavoars@kernel.org>
Signed-off-by: Erick Archer <erick.archer@outlook.com>
---
Changes in v2:
- Add the "Reviewed-by:" tag.
- Rebase against linux-next.

Previous versions:
v1 -> https://lore.kernel.org/linux-hardening/20240116125813.3754-1-erick.archer@gmx.com/

Hi everyone,

This patch seems to be lost. Gustavo reviewed it on January 16, 2024
but the patch has not been applied since.

Thanks,
Erick
---
 arch/x86/events/amd/uncore.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/arch/x86/events/amd/uncore.c b/arch/x86/events/amd/uncore.c
index 4ccb8fa483e6..61c0a2114183 100644
--- a/arch/x86/events/amd/uncore.c
+++ b/arch/x86/events/amd/uncore.c
@@ -479,8 +479,8 @@ static int amd_uncore_ctx_init(struct amd_uncore *uncore, unsigned int cpu)
 				goto fail;
 
 			curr->cpu = cpu;
-			curr->events = kzalloc_node(sizeof(*curr->events) *
-						    pmu->num_counters,
+			curr->events = kcalloc_node(pmu->num_counters,
+						    sizeof(*curr->events),
 						    GFP_KERNEL, node);
 			if (!curr->events) {
 				kfree(curr);
@@ -928,7 +928,7 @@ int amd_uncore_umc_ctx_init(struct amd_uncore *uncore, unsigned int cpu)
 		uncore->num_pmus += group_num_pmus[gid];
 	}
 
-	uncore->pmus = kzalloc(sizeof(*uncore->pmus) * uncore->num_pmus,
+	uncore->pmus = kcalloc(uncore->num_pmus, sizeof(*uncore->pmus),
 			       GFP_KERNEL);
 	if (!uncore->pmus) {
 		uncore->num_pmus = 0;
-- 
2.25.1


^ permalink raw reply related	[relevance 4%]

* [PATCH v2] dmaengine: pl08x: Use kcalloc() instead of kzalloc()
@ 2024-03-30 15:23  4% Erick Archer
  2024-04-07 11:39  0% ` Vinod Koul
  0 siblings, 1 reply; 200+ results
From: Erick Archer @ 2024-03-30 15:23 UTC (permalink / raw)
  To: Vinod Koul, Kees Cook, Gustavo A. R. Silva
  Cc: Erick Archer, dmaengine, linux-kernel, linux-hardening

This is an effort to get rid of all multiplications from allocation
functions in order to prevent integer overflows [1].

Here the multiplication is obviously safe because the "channels"
member can only be 8 or 2. This value is set when the "vendor_data"
structs are initialized.

static struct vendor_data vendor_pl080 = {
	[...]
	.channels = 8,
	[...]
};

static struct vendor_data vendor_nomadik = {
	[...]
	.channels = 8,
	[...]
};

static struct vendor_data vendor_pl080s = {
	[...]
	.channels = 8,
	[...]
};

static struct vendor_data vendor_pl081 = {
	[...]
	.channels = 2,
	[...]
};

However, using kcalloc() is more appropriate [1] and improves
readability. This patch has no effect on runtime behavior.

Link: https://github.com/KSPP/linux/issues/162 [1]
Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
Reviewed-by: Gustavo A. R. Silva <gustavoars@kernel.org>
Signed-off-by: Erick Archer <erick.archer@outlook.com>
---
Changes in v2:
- Add the "Reviewed-by:" tag.
- Rebase against linux-next.

Previous versions:
v1 -> https://lore.kernel.org/linux-hardening/20240128115236.4791-1-erick.archer@gmx.com/

Hi everyone,

This patch seems to be lost. Gustavo reviewed it on January 30, 2024
but the patch has not been applied since.

Thanks,
Erick
---
 drivers/dma/amba-pl08x.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/dma/amba-pl08x.c b/drivers/dma/amba-pl08x.c
index fbf048f432bf..73a5cfb4da8a 100644
--- a/drivers/dma/amba-pl08x.c
+++ b/drivers/dma/amba-pl08x.c
@@ -2855,8 +2855,8 @@ static int pl08x_probe(struct amba_device *adev, const struct amba_id *id)
 	}
 
 	/* Initialize physical channels */
-	pl08x->phy_chans = kzalloc((vd->channels * sizeof(*pl08x->phy_chans)),
-			GFP_KERNEL);
+	pl08x->phy_chans = kcalloc(vd->channels, sizeof(*pl08x->phy_chans),
+				   GFP_KERNEL);
 	if (!pl08x->phy_chans) {
 		ret = -ENOMEM;
 		goto out_no_phychans;
-- 
2.25.1


^ permalink raw reply related	[relevance 4%]

* [PATCH] perf/x86/intel/uncore: Prefer struct_size over open coded arithmetic
@ 2024-03-30 14:32 11% Erick Archer
  0 siblings, 0 replies; 200+ results
From: Erick Archer @ 2024-03-30 14:32 UTC (permalink / raw)
  To: Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
	Namhyung Kim, Mark Rutland, Alexander Shishkin, Jiri Olsa,
	Ian Rogers, Adrian Hunter, Thomas Gleixner, Borislav Petkov,
	Dave Hansen, H. Peter Anvin, Kees Cook, Gustavo A. R. Silva
  Cc: Erick Archer, x86, linux-perf-users, linux-kernel, linux-hardening

This is an effort to get rid of all multiplications from allocation
functions in order to prevent integer overflows [1][2].

As the "box" variable is a pointer to "struct intel_uncore_box" and
this structure ends in a flexible array:

struct intel_uncore_box {
	[...]
	struct intel_uncore_extra_reg shared_regs[];
};

the preferred way in the kernel is to use the struct_size() helper to
do the arithmetic instead of the calculation "size + count * size" in
the kzalloc_node() function.

This way, the code is more readable and safer.

This code was detected with the help of Coccinelle, and audited and
modified manually.

Link: https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
Link: https://github.com/KSPP/linux/issues/160 [2]
Signed-off-by: Erick Archer <erick.archer@outlook.com>
---
Hi,

The Coccinelle script used to detect this code pattern is the following:

virtual report

@rule1@
type t1;
type t2;
identifier i0;
identifier i1;
identifier i2;
identifier ALLOC =~ "kmalloc|kzalloc|kmalloc_node|kzalloc_node|vmalloc|vzalloc|kvmalloc|kvzalloc";
position p1;
@@

i0 = sizeof(t1) + sizeof(t2) * i1;
...
i2 = ALLOC@p1(..., i0, ...);

@script:python depends on report@
p1 << rule1.p1;
@@

msg = "WARNING: verify allocation on line %s" % (p1[0].line)
coccilib.report.print_report(p1[0],msg)

Regards,
Erick
---
 arch/x86/events/intel/uncore.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/arch/x86/events/intel/uncore.c b/arch/x86/events/intel/uncore.c
index 258e2cdf28fa..ce756d24c370 100644
--- a/arch/x86/events/intel/uncore.c
+++ b/arch/x86/events/intel/uncore.c
@@ -350,12 +350,11 @@ static void uncore_pmu_init_hrtimer(struct intel_uncore_box *box)
 static struct intel_uncore_box *uncore_alloc_box(struct intel_uncore_type *type,
 						 int node)
 {
-	int i, size, numshared = type->num_shared_regs ;
+	int i, numshared = type->num_shared_regs;
 	struct intel_uncore_box *box;
 
-	size = sizeof(*box) + numshared * sizeof(struct intel_uncore_extra_reg);
-
-	box = kzalloc_node(size, GFP_KERNEL, node);
+	box = kzalloc_node(struct_size(box, shared_regs, numshared), GFP_KERNEL,
+			   node);
 	if (!box)
 		return NULL;
 
-- 
2.25.1


^ permalink raw reply related	[relevance 11%]

* [tip:perf/core] BUILD SUCCESS dfbc411e0a5ea72fdd563b2c7d627e9d993d865c
@ 2024-03-22  8:37  4% kernel test robot
  0 siblings, 0 replies; 200+ results
From: kernel test robot @ 2024-03-22  8:37 UTC (permalink / raw)
  To: x86-ml; +Cc: linux-kernel

tree/branch: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git perf/core
branch HEAD: dfbc411e0a5ea72fdd563b2c7d627e9d993d865c  perf/x86/rapl: Prefer struct_size() over open coded arithmetic

elapsed time: 733m

configs tested: 129
configs skipped: 135

The following configs have been built successfully.
More configs may be tested in the coming days.

tested configs:
alpha                             allnoconfig   gcc  
alpha                            allyesconfig   gcc  
alpha                               defconfig   gcc  
arc                               allnoconfig   gcc  
arc                      axs103_smp_defconfig   gcc  
arc                                 defconfig   gcc  
arc                   randconfig-001-20240322   gcc  
arc                   randconfig-002-20240322   gcc  
arm                         axm55xx_defconfig   clang
arm                   milbeaut_m10v_defconfig   clang
arm                          moxart_defconfig   gcc  
arm                   randconfig-001-20240322   gcc  
arm                   randconfig-004-20240322   gcc  
arm                           sama5_defconfig   gcc  
arm                        shmobile_defconfig   gcc  
arm64                            allmodconfig   clang
arm64                             allnoconfig   gcc  
arm64                               defconfig   gcc  
arm64                 randconfig-002-20240322   gcc  
arm64                 randconfig-003-20240322   gcc  
csky                              allnoconfig   gcc  
csky                                defconfig   gcc  
csky                  randconfig-001-20240322   gcc  
csky                  randconfig-002-20240322   gcc  
i386                             allmodconfig   gcc  
i386                              allnoconfig   gcc  
i386                             allyesconfig   gcc  
i386         buildonly-randconfig-001-20240322   gcc  
i386         buildonly-randconfig-002-20240322   gcc  
i386         buildonly-randconfig-003-20240322   clang
i386         buildonly-randconfig-004-20240322   clang
i386         buildonly-randconfig-005-20240322   gcc  
i386         buildonly-randconfig-006-20240322   clang
i386                                defconfig   clang
i386                  randconfig-001-20240322   clang
i386                  randconfig-002-20240322   clang
i386                  randconfig-003-20240322   gcc  
i386                  randconfig-004-20240322   gcc  
i386                  randconfig-005-20240322   clang
i386                  randconfig-006-20240322   clang
i386                  randconfig-011-20240322   gcc  
i386                  randconfig-012-20240322   clang
i386                  randconfig-013-20240322   clang
i386                  randconfig-014-20240322   clang
i386                  randconfig-015-20240322   gcc  
i386                  randconfig-016-20240322   clang
loongarch                        allmodconfig   gcc  
loongarch                         allnoconfig   gcc  
loongarch                           defconfig   gcc  
loongarch             randconfig-001-20240322   gcc  
loongarch             randconfig-002-20240322   gcc  
m68k                             allmodconfig   gcc  
m68k                              allnoconfig   gcc  
m68k                             allyesconfig   gcc  
m68k                         amcore_defconfig   gcc  
m68k                                defconfig   gcc  
m68k                           sun3_defconfig   gcc  
microblaze                       allmodconfig   gcc  
microblaze                        allnoconfig   gcc  
microblaze                       allyesconfig   gcc  
microblaze                          defconfig   gcc  
mips                              allnoconfig   gcc  
mips                             allyesconfig   gcc  
mips                           ip27_defconfig   gcc  
mips                    maltaup_xpa_defconfig   gcc  
mips                         rt305x_defconfig   clang
nios2                         10m50_defconfig   gcc  
nios2                            allmodconfig   gcc  
nios2                             allnoconfig   gcc  
nios2                            allyesconfig   gcc  
nios2                               defconfig   gcc  
nios2                 randconfig-001-20240322   gcc  
nios2                 randconfig-002-20240322   gcc  
openrisc                          allnoconfig   gcc  
openrisc                            defconfig   gcc  
parisc                            allnoconfig   gcc  
parisc                              defconfig   gcc  
parisc                randconfig-001-20240322   gcc  
parisc                randconfig-002-20240322   gcc  
parisc64                            defconfig   gcc  
powerpc                           allnoconfig   gcc  
powerpc                          allyesconfig   clang
powerpc                     asp8347_defconfig   clang
powerpc               randconfig-002-20240322   gcc  
powerpc64             randconfig-002-20240322   gcc  
riscv                            allmodconfig   clang
riscv                             allnoconfig   gcc  
riscv                            allyesconfig   clang
riscv                               defconfig   clang
riscv                 randconfig-001-20240322   gcc  
riscv                 randconfig-002-20240322   gcc  
s390                             allmodconfig   clang
s390                              allnoconfig   clang
s390                             allyesconfig   gcc  
s390                                defconfig   clang
s390                  randconfig-001-20240322   gcc  
sh                               allmodconfig   gcc  
sh                                allnoconfig   gcc  
sh                               allyesconfig   gcc  
sh                         ap325rxa_defconfig   gcc  
sh                                  defconfig   gcc  
sh                    randconfig-001-20240322   gcc  
sh                    randconfig-002-20240322   gcc  
sh                          rsk7201_defconfig   gcc  
sh                           se7724_defconfig   gcc  
sh                            shmin_defconfig   gcc  
sparc                            allmodconfig   gcc  
sparc                             allnoconfig   gcc  
sparc                               defconfig   gcc  
sparc                       sparc32_defconfig   gcc  
sparc64                          allmodconfig   gcc  
sparc64                          allyesconfig   gcc  
sparc64                             defconfig   gcc  
sparc64               randconfig-001-20240322   gcc  
sparc64               randconfig-002-20240322   gcc  
um                                allnoconfig   clang
um                               allyesconfig   gcc  
um                                  defconfig   clang
um                             i386_defconfig   gcc  
um                    randconfig-001-20240322   gcc  
um                           x86_64_defconfig   clang
x86_64                            allnoconfig   clang
x86_64                           allyesconfig   clang
x86_64                              defconfig   gcc  
x86_64                          rhel-8.3-rust   clang
x86_64                               rhel-8.3   gcc  
xtensa                            allnoconfig   gcc  
xtensa                randconfig-001-20240322   gcc  
xtensa                randconfig-002-20240322   gcc  

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

^ permalink raw reply	[relevance 4%]

* [tip: perf/core] perf/x86/rapl: Prefer struct_size() over open coded arithmetic
  2024-03-17 16:44 12% [PATCH] perf/x86/rapl: Prefer struct_size over open coded arithmetic Erick Archer
  2024-03-17 20:14  7% ` Gustavo A. R. Silva
  2024-03-18 23:40  6% ` Kees Cook
@ 2024-03-21 20:10 13% ` tip-bot2 for Erick Archer
  2 siblings, 0 replies; 200+ results
From: tip-bot2 for Erick Archer @ 2024-03-21 20:10 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: Erick Archer, Ingo Molnar, Gustavo A. R. Silva, Kees Cook, x86,
	linux-kernel

The following commit has been merged into the perf/core branch of tip:

Commit-ID:     dfbc411e0a5ea72fdd563b2c7d627e9d993d865c
Gitweb:        https://git.kernel.org/tip/dfbc411e0a5ea72fdd563b2c7d627e9d993d865c
Author:        Erick Archer <erick.archer@gmx.com>
AuthorDate:    Sun, 17 Mar 2024 17:44:42 +01:00
Committer:     Ingo Molnar <mingo@kernel.org>
CommitterDate: Thu, 21 Mar 2024 20:58:43 +01:00

perf/x86/rapl: Prefer struct_size() over open coded arithmetic

This is an effort to get rid of all multiplications from allocation
functions in order to prevent integer overflows:

  https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments
  https://github.com/KSPP/linux/issues/160

As the "rapl_pmus" variable is a pointer to "struct rapl_pmus" and
this structure ends in a flexible array:

  struct rapl_pmus {
	[...]
	struct rapl_pmu *pmus[] __counted_by(maxdie);
  };

the preferred way in the kernel is to use the struct_size() helper to
do the arithmetic instead of the calculation "size + count * size" in
the kzalloc() function.

This way, the code is more readable and safer.

Signed-off-by: Erick Archer <erick.archer@gmx.com>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Reviewed-by: Gustavo A. R. Silva <gustavoars@kernel.org>
Reviewed-by: Kees Cook <keescook@chromium.org>
Link: https://lore.kernel.org/r/20240317164442.6729-1-erick.archer@gmx.com
---
 arch/x86/events/rapl.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/arch/x86/events/rapl.c b/arch/x86/events/rapl.c
index fb2b196..8ef08b5 100644
--- a/arch/x86/events/rapl.c
+++ b/arch/x86/events/rapl.c
@@ -675,10 +675,8 @@ static const struct attribute_group *rapl_attr_update[] = {
 static int __init init_rapl_pmus(void)
 {
 	int maxdie = topology_max_packages() * topology_max_dies_per_package();
-	size_t size;
 
-	size = sizeof(*rapl_pmus) + maxdie * sizeof(struct rapl_pmu *);
-	rapl_pmus = kzalloc(size, GFP_KERNEL);
+	rapl_pmus = kzalloc(struct_size(rapl_pmus, pmus, maxdie), GFP_KERNEL);
 	if (!rapl_pmus)
 		return -ENOMEM;
 

^ permalink raw reply related	[relevance 13%]

* Re: [PATCH] perf/x86/rapl: Prefer struct_size over open coded arithmetic
  2024-03-18 23:40  6% ` Kees Cook
@ 2024-03-19  3:49  7%   ` Gustavo A. R. Silva
  0 siblings, 0 replies; 200+ results
From: Gustavo A. R. Silva @ 2024-03-19  3:49 UTC (permalink / raw)
  To: Kees Cook, Erick Archer
  Cc: Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
	Namhyung Kim, Mark Rutland, Alexander Shishkin, Jiri Olsa,
	Ian Rogers, Adrian Hunter, Thomas Gleixner, Borislav Petkov,
	Dave Hansen, H. Peter Anvin, Gustavo A. R. Silva, x86,
	linux-perf-users, linux-kernel, linux-hardening



On 18/03/24 17:40, Kees Cook wrote:
> On Sun, Mar 17, 2024 at 05:44:42PM +0100, Erick Archer wrote:
>> This is an effort to get rid of all multiplications from allocation
>> functions in order to prevent integer overflows [1][2].
>>
>> As the "rapl_pmus" variable is a pointer to "struct rapl_pmus" and
>> this structure ends in a flexible array:
>>
>> struct rapl_pmus {
>> 	[...]
>> 	struct rapl_pmu *pmus[] __counted_by(maxdie);
>> };
>>
>> the preferred way in the kernel is to use the struct_size() helper to
>> do the arithmetic instead of the calculation "size + count * size" in
>> the kzalloc() function.
>>
>> This way, the code is more readable and safer.
>>
>> Link: https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
>> Link: https://github.com/KSPP/linux/issues/160 [2]
>> Signed-off-by: Erick Archer <erick.archer@gmx.com>
> 
> Thanks!
> 
> Reviewed-by: Kees Cook <keescook@chromium.org>
> 
> I was inspired to come up with a Coccinelle script to find this pattern.
> This seems to do it, though it also removes the blank line. I'm not sure
> how to stop it from doing that. I'm running this treewide to see if I
> can find others...
> 
> // Options: --no-includes --include-headers

with --no-includes this one is missed in arch/x86/events/:

diff --git a/arch/x86/events/intel/uncore.c b/arch/x86/events/intel/uncore.c
index 258e2cdf28fa..213fe48f9391 100644
--- a/arch/x86/events/intel/uncore.c
+++ b/arch/x86/events/intel/uncore.c
@@ -350,12 +350,11 @@ static void uncore_pmu_init_hrtimer(struct intel_uncore_box *box)
  static struct intel_uncore_box *uncore_alloc_box(struct intel_uncore_type *type,
                                                  int node)
  {
-       int i, size, numshared = type->num_shared_regs ;
+       int i, numshared = type->num_shared_regs ;
         struct intel_uncore_box *box;

-       size = sizeof(*box) + numshared * sizeof(struct intel_uncore_extra_reg);
-
-       box = kzalloc_node(size, GFP_KERNEL, node);
+       box = kzalloc_node(struct_size(box, shared_regs, numshared),
+                          GFP_KERNEL, node);
         if (!box)
                 return NULL;

Funny thing is that in this case it's quite convenient that the script removes
the blank like. :P

--
Gustavo


^ permalink raw reply related	[relevance 7%]

* Re: [PATCH] perf/x86/rapl: Prefer struct_size over open coded arithmetic
  2024-03-17 16:44 12% [PATCH] perf/x86/rapl: Prefer struct_size over open coded arithmetic Erick Archer
  2024-03-17 20:14  7% ` Gustavo A. R. Silva
@ 2024-03-18 23:40  6% ` Kees Cook
  2024-03-19  3:49  7%   ` Gustavo A. R. Silva
  2024-03-21 20:10 13% ` [tip: perf/core] perf/x86/rapl: Prefer struct_size() " tip-bot2 for Erick Archer
  2 siblings, 1 reply; 200+ results
From: Kees Cook @ 2024-03-18 23:40 UTC (permalink / raw)
  To: Erick Archer
  Cc: Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
	Namhyung Kim, Mark Rutland, Alexander Shishkin, Jiri Olsa,
	Ian Rogers, Adrian Hunter, Thomas Gleixner, Borislav Petkov,
	Dave Hansen, H. Peter Anvin, Gustavo A. R. Silva, x86,
	linux-perf-users, linux-kernel, linux-hardening

On Sun, Mar 17, 2024 at 05:44:42PM +0100, Erick Archer wrote:
> This is an effort to get rid of all multiplications from allocation
> functions in order to prevent integer overflows [1][2].
> 
> As the "rapl_pmus" variable is a pointer to "struct rapl_pmus" and
> this structure ends in a flexible array:
> 
> struct rapl_pmus {
> 	[...]
> 	struct rapl_pmu *pmus[] __counted_by(maxdie);
> };
> 
> the preferred way in the kernel is to use the struct_size() helper to
> do the arithmetic instead of the calculation "size + count * size" in
> the kzalloc() function.
> 
> This way, the code is more readable and safer.
> 
> Link: https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
> Link: https://github.com/KSPP/linux/issues/160 [2]
> Signed-off-by: Erick Archer <erick.archer@gmx.com>

Thanks!

Reviewed-by: Kees Cook <keescook@chromium.org>

I was inspired to come up with a Coccinelle script to find this pattern.
This seems to do it, though it also removes the blank line. I'm not sure
how to stop it from doing that. I'm running this treewide to see if I
can find others...

// Options: --no-includes --include-headers

@allocation@
type SIZE_TYPE;
identifier SIZE;
type PTR_TYPE;
PTR_TYPE *PTR;
identifier ALLOC =~ "kmalloc|kzalloc|kmalloc_node|kzalloc_node|vmalloc|vzalloc|kvmalloc|kvzalloc";
@@

	SIZE_TYPE SIZE;
	...
	PTR = ALLOC(..., SIZE, ...)

@structure@
type allocation.PTR_TYPE;
type FLEX_TYPE;
identifier FLEX;
@@

	PTR_TYPE {
		...
 		FLEX_TYPE FLEX[];
		...
	};

@single_shot_sizing@
type allocation.SIZE_TYPE;
identifier allocation.SIZE;
type allocation.PTR_TYPE;
PTR_TYPE *allocation.PTR;
identifier allocation.ALLOC;
type structure.FLEX_TYPE;
identifier structure.FLEX;
expression COUNT;
@@

- 	SIZE_TYPE SIZE;
 	... when != SIZE
-	SIZE = (\(sizeof(*PTR)\|sizeof(PTR_TYPE)\) + ((COUNT) * \(sizeof(*PTR->FLEX)\|sizeof(PTR->FLEX[0])\|sizeof(FLEX_TYPE)\)));
 	... when != SIZE
 	PTR = ALLOC(...,
-			SIZE
+			struct_size(PTR, FLEX, COUNT)
 			, ...)
 	... when != SIZE

@reused_sizing@
type allocation.SIZE_TYPE;
identifier allocation.SIZE;
type allocation.PTR_TYPE;
PTR_TYPE *allocation.PTR;
identifier allocation.ALLOC;
type structure.FLEX_TYPE;
identifier structure.FLEX;
expression COUNT;
@@

  	SIZE_TYPE SIZE;
 	...
	SIZE =
-		(\(sizeof(*PTR)\|sizeof(PTR_TYPE)\) + ((COUNT) * \(sizeof(*PTR->FLEX)\|sizeof(PTR->FLEX[0])\|sizeof(FLEX_TYPE)\)))
+		struct_size(PTR, FLEX, COUNT)
	;
 	... when != SIZE
 	PTR = ALLOC(..., SIZE , ...)


-- 
Kees Cook

^ permalink raw reply	[relevance 6%]

* Re: [PATCH] perf/x86/rapl: Prefer struct_size over open coded arithmetic
  2024-03-17 16:44 12% [PATCH] perf/x86/rapl: Prefer struct_size over open coded arithmetic Erick Archer
@ 2024-03-17 20:14  7% ` Gustavo A. R. Silva
  2024-03-18 23:40  6% ` Kees Cook
  2024-03-21 20:10 13% ` [tip: perf/core] perf/x86/rapl: Prefer struct_size() " tip-bot2 for Erick Archer
  2 siblings, 0 replies; 200+ results
From: Gustavo A. R. Silva @ 2024-03-17 20:14 UTC (permalink / raw)
  To: Erick Archer, Peter Zijlstra, Ingo Molnar,
	Arnaldo Carvalho de Melo, Namhyung Kim, Mark Rutland,
	Alexander Shishkin, Jiri Olsa, Ian Rogers, Adrian Hunter,
	Thomas Gleixner, Borislav Petkov, Dave Hansen, H. Peter Anvin,
	Kees Cook, Gustavo A. R. Silva
  Cc: x86, linux-perf-users, linux-kernel, linux-hardening



On 3/17/24 10:44, Erick Archer wrote:
> This is an effort to get rid of all multiplications from allocation
> functions in order to prevent integer overflows [1][2].
> 
> As the "rapl_pmus" variable is a pointer to "struct rapl_pmus" and
> this structure ends in a flexible array:
> 
> struct rapl_pmus {
> 	[...]
> 	struct rapl_pmu *pmus[] __counted_by(maxdie);
> };
> 
> the preferred way in the kernel is to use the struct_size() helper to
> do the arithmetic instead of the calculation "size + count * size" in
> the kzalloc() function.
> 
> This way, the code is more readable and safer.
> 
> Link: https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
> Link: https://github.com/KSPP/linux/issues/160 [2]
> Signed-off-by: Erick Archer <erick.archer@gmx.com>
LGTM:

Reviewed-by: Gustavo A. R. Silva <gustavoars@kernel.org>

Thanks!
--
Gustavo

> ---
>   arch/x86/events/rapl.c | 4 +---
>   1 file changed, 1 insertion(+), 3 deletions(-)
> 
> diff --git a/arch/x86/events/rapl.c b/arch/x86/events/rapl.c
> index fb2b1961e5a3..8ef08b5d55a7 100644
> --- a/arch/x86/events/rapl.c
> +++ b/arch/x86/events/rapl.c
> @@ -675,10 +675,8 @@ static const struct attribute_group *rapl_attr_update[] = {
>   static int __init init_rapl_pmus(void)
>   {
>   	int maxdie = topology_max_packages() * topology_max_dies_per_package();
> -	size_t size;
> 
> -	size = sizeof(*rapl_pmus) + maxdie * sizeof(struct rapl_pmu *);
> -	rapl_pmus = kzalloc(size, GFP_KERNEL);
> +	rapl_pmus = kzalloc(struct_size(rapl_pmus, pmus, maxdie), GFP_KERNEL);
>   	if (!rapl_pmus)
>   		return -ENOMEM;
> 
> --
> 2.25.1
> 
> 

^ permalink raw reply	[relevance 7%]

* [PATCH] perf/x86/rapl: Prefer struct_size over open coded arithmetic
@ 2024-03-17 16:44 12% Erick Archer
  2024-03-17 20:14  7% ` Gustavo A. R. Silva
                   ` (2 more replies)
  0 siblings, 3 replies; 200+ results
From: Erick Archer @ 2024-03-17 16:44 UTC (permalink / raw)
  To: Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
	Namhyung Kim, Mark Rutland, Alexander Shishkin, Jiri Olsa,
	Ian Rogers, Adrian Hunter, Thomas Gleixner, Borislav Petkov,
	Dave Hansen, H. Peter Anvin, Kees Cook, Gustavo A. R. Silva
  Cc: Erick Archer, x86, linux-perf-users, linux-kernel, linux-hardening

This is an effort to get rid of all multiplications from allocation
functions in order to prevent integer overflows [1][2].

As the "rapl_pmus" variable is a pointer to "struct rapl_pmus" and
this structure ends in a flexible array:

struct rapl_pmus {
	[...]
	struct rapl_pmu *pmus[] __counted_by(maxdie);
};

the preferred way in the kernel is to use the struct_size() helper to
do the arithmetic instead of the calculation "size + count * size" in
the kzalloc() function.

This way, the code is more readable and safer.

Link: https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
Link: https://github.com/KSPP/linux/issues/160 [2]
Signed-off-by: Erick Archer <erick.archer@gmx.com>
---
 arch/x86/events/rapl.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/arch/x86/events/rapl.c b/arch/x86/events/rapl.c
index fb2b1961e5a3..8ef08b5d55a7 100644
--- a/arch/x86/events/rapl.c
+++ b/arch/x86/events/rapl.c
@@ -675,10 +675,8 @@ static const struct attribute_group *rapl_attr_update[] = {
 static int __init init_rapl_pmus(void)
 {
 	int maxdie = topology_max_packages() * topology_max_dies_per_package();
-	size_t size;

-	size = sizeof(*rapl_pmus) + maxdie * sizeof(struct rapl_pmu *);
-	rapl_pmus = kzalloc(size, GFP_KERNEL);
+	rapl_pmus = kzalloc(struct_size(rapl_pmus, pmus, maxdie), GFP_KERNEL);
 	if (!rapl_pmus)
 		return -ENOMEM;

--
2.25.1


^ permalink raw reply related	[relevance 12%]

* [GIT PULL] mtd: Changes for 6.9-rc1
@ 2024-03-15 11:21  2% Miquel Raynal
  0 siblings, 0 replies; 200+ results
From: Miquel Raynal @ 2024-03-15 11:21 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: linux-mtd, Richard Weinberger, Tudor Ambarus,
	Vignesh Raghavendra, Frieder Schrempf, Michael Walle,
	Pratyush Yadav, linux-kernel

Hello Linus,

This is the MTD PR for the opening v6.9-rc cycle.

Thanks,
Miquèl

The following changes since commit 6613476e225e090cc9aad49be7fa504e290dd33d:

  Linux 6.8-rc1 (2024-01-21 14:11:32 -0800)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux.git tags/mtd/for-6.9

for you to fetch changes up to 09888e973cc9d3615dbab5d178eecb58d8a0b7ab:

  Merge tag 'nand/for-6.9' into mtd/next (2024-03-15 12:00:45 +0100)

----------------------------------------------------------------
MTD

The Carillo Ranch driver has been removed. Top level mtd bindings have
received a couple of improvements (references, selects). The ssfdc
driver received few minor adjustments. These changes come with the usual
load of misc/small improvements and fixes.

Raw NAND

The main series brought is an update of the Broadcom support to support
all BCMBCA SoCs and their specificity (ECC, write protection,
configuration straps), plus a few misc fixes and changes in the main
driver. Device tree updates are also part of this PR, initially because
of a misunderstanding on my side.

The STM32_FMC2 controller driver is also upgraded to properly support
MP1 and MP25 SoCs.

A new compatible is added for an Atmel flavor.

Among all these feature changes, there is as well a load of continuous
read related fixes, avoiding more corner conditions and clarifying the
logic. Finally a few miscellaneous fixes are made to the core, the
lpx32xx_mlc, fsl_lbc, Meson and Atmel controller driver, as well as
final one in the Hynix vendor driver.

SPI-NAND

The ESMT support has been extended to match 5 bytes ID to avoid
collisions. Winbond support on its side receives support for W25N04KV
chips.

SPI NOR

SPI NOR gets the non uniform erase code cleaned. We stopped using
bitmasks for erase types and flags, and instead introduced dedicated
members. We then passed the SPI NOR erase map to MTD. Users can now
determine the erase regions and make informed decisions on partitions
size.

An optional interrupt property is now described in the bindings.

----------------------------------------------------------------
Alexander Dahl (1):
      mtd: nand: raw: atmel: Fix comment in timings preparation

Arnd Bergmann (1):
      mtd: rawnand: lpc32xx_mlc: fix irq handler prototype

Arseniy Krasnov (1):
      mtd: rawnand: meson: fix scrambling mode value in command macro

Baruch Siach (1):
      mtd: maps: physmap-core: fix flash size larger than 32-bit

Christophe Kerello (3):
      dt-bindings: mtd: st,stm32: add MP25 support
      mtd: rawnand: stm32_fmc2: use dma_get_slave_caps to get DMA max burst
      mtd: rawnand: stm32_fmc2: add MP25 support

Colin Ian King (2):
      mtd: chips: remove redundant assignment to variable timeo
      mtd: rawnand: remove redundant assignment to variable bbtblocks

David Regan (2):
      mtd: rawnand: brcmnand: exec_op helper functions return type fixes
      mtd: rawnand: brcmnand: update log level messages

Erick Archer (1):
      mtd: rawnand: Prefer struct_size over open coded arithmetic

Ezra Buehler (2):
      mtd: spinand: Add support for 5-byte IDs
      mtd: spinand: esmt: Extend IDs to 5 bytes

Josua Mayer (1):
      dt-bindings: mtd: spi-nor: add optional interrupts property

Krzysztof Kozlowski (1):
      mtd: lpc32xx: use typedef for dma_filter_fn

Marcel Hamer (1):
      mtd: fix minor comment typo for struct mtd_master

Markus Elfring (3):
      mtd: ssfdc: One function call less in ssfdcr_add_mtd() after error detection
      mtd: ssfdc: Fix indentation in ssfdcr_add_mtd()
      mtd: ssfdc: Improve a size determination in ssfdcr_add_mtd()

Matthew Wilcox (Oracle) (1):
      mtd: Remove support for Carillo Ranch driver

Miquel Raynal (7):
      Merge tag 'spi-nor/for-6.9' into mtd/next
      mtd: rawnand: Fix and simplify again the continuous read derivations
      mtd: rawnand: Add a helper for calculating a page index
      mtd: rawnand: Ensure all continuous terms are always in sync
      mtd: rawnand: Constrain even more when continuous reads are enabled
      mtd: rawnand: Ensure continuous reads are well disabled
      Merge tag 'nand/for-6.9' into mtd/next

Muhammad Usama Anjum (1):
      mtd: spi-nor: core: correct type of i

Nayab Sayed (1):
      dt-bindings: mtd: update references from partition.txt to mtd.yaml

Randy Dunlap (1):
      mtd: rawnand: hynix: remove @nand_technology kernel-doc description

Takahiro Kuwano (4):
      mtd: spi-nor: core: rework struct spi_nor_erase_region
      mtd: spi-nor: core: get rid of SNOR_LAST_REGION flag
      mtd: spi-nor: core: get rid of SNOR_OVERLAID_REGION flag
      mtd: spi-nor: core: set mtd->eraseregions for non-uniform erase map

Tudor Ambarus (1):
      mtd: flashchip: explicitly include <linux/wait.h>

Uwe Kleine-König (1):
      mtd: rawnand: fsl_elbc: Let .probe retry if local bus is missing

Varshini Rajendran (1):
      dt-bindings: atmel-nand: add microchip,sam9x7-pmecc

William Zhang (12):
      mtd: rawnand: brcmnand: fix style issues
      dt-bindings: mtd: brcmnand: Updates for bcmbca SoCs
      dt-bindings: mtd: brcmnand: Add WP pin connection property
      dt-bindings: mtd: brcmnand: Add ecc strap property
      ARM: dts: broadcom: bcmbca: Add NAND controller node
      arm64: dts: broadcom: bcmbca: Add NAND controller node
      arm64: dts: broadcom: bcmbca: Update router boards
      mtd: rawnand: brcmnand: Rename bcm63138 nand driver
      mtd: rawnand: brcmnand: Add BCMBCA read data bus interface
      mtd: rawnand: brcmnand: Support write protection setting from dts
      mtd: rawnand: brcmnand: fix sparse warnings
      mtd: rawnand: brcmnand: Add support for getting ecc setting from strap

Zhenhua Huang (1):
      dt-bindings: mtd: avoid automatically select from mtd.yaml

Zhi-Jun You (1):
      mtd: spinand: winbond: add support for W25N04KV

 Documentation/devicetree/bindings/mtd/atmel-nand.txt        |   1 +
 Documentation/devicetree/bindings/mtd/brcm,brcmnand.yaml    |  44 ++++-
 Documentation/devicetree/bindings/mtd/davinci-nand.txt      |   2 +-
 Documentation/devicetree/bindings/mtd/flctl-nand.txt        |   2 +-
 Documentation/devicetree/bindings/mtd/fsl-upm-nand.txt      |   2 +-
 Documentation/devicetree/bindings/mtd/gpio-control-nand.txt |   2 +-
 Documentation/devicetree/bindings/mtd/gpmi-nand.yaml        |   2 +-
 Documentation/devicetree/bindings/mtd/hisi504-nand.txt      |   2 +-
 Documentation/devicetree/bindings/mtd/jedec,spi-nor.yaml    |   3 +
 Documentation/devicetree/bindings/mtd/mtd.yaml              |   2 +
 .../devicetree/bindings/mtd/nvidia-tegra20-nand.txt         |   2 +-
 Documentation/devicetree/bindings/mtd/orion-nand.txt        |   2 +-
 Documentation/devicetree/bindings/mtd/samsung-s3c2410.txt   |   2 +-
 .../devicetree/bindings/mtd/st,stm32-fmc2-nand.yaml         |  25 ++-
 arch/arm/boot/dts/broadcom/bcm47622.dtsi                    |  14 ++
 arch/arm/boot/dts/broadcom/bcm63138.dtsi                    |   7 +-
 arch/arm/boot/dts/broadcom/bcm63148.dtsi                    |  14 ++
 arch/arm/boot/dts/broadcom/bcm63178.dtsi                    |  14 ++
 arch/arm/boot/dts/broadcom/bcm6756.dtsi                     |  14 ++
 arch/arm/boot/dts/broadcom/bcm6846.dtsi                     |  14 ++
 arch/arm/boot/dts/broadcom/bcm6855.dtsi                     |  14 ++
 arch/arm/boot/dts/broadcom/bcm6878.dtsi                     |  14 ++
 arch/arm/boot/dts/broadcom/bcm947622.dts                    |  10 +
 arch/arm/boot/dts/broadcom/bcm963138.dts                    |  10 +
 arch/arm/boot/dts/broadcom/bcm963138dvt.dts                 |  14 +-
 arch/arm/boot/dts/broadcom/bcm963148.dts                    |  10 +
 arch/arm/boot/dts/broadcom/bcm963178.dts                    |  10 +
 arch/arm/boot/dts/broadcom/bcm96756.dts                     |  10 +
 arch/arm/boot/dts/broadcom/bcm96846.dts                     |  10 +
 arch/arm/boot/dts/broadcom/bcm96855.dts                     |  10 +
 arch/arm/boot/dts/broadcom/bcm96878.dts                     |  10 +
 .../boot/dts/broadcom/bcmbca/bcm4906-netgear-r8000p.dts     |   5 +
 .../dts/broadcom/bcmbca/bcm4906-tplink-archer-c2300-v1.dts  |   5 +
 .../boot/dts/broadcom/bcmbca/bcm4908-asus-gt-ac5300.dts     |   6 +-
 arch/arm64/boot/dts/broadcom/bcmbca/bcm4908.dtsi            |   4 +-
 arch/arm64/boot/dts/broadcom/bcmbca/bcm4912.dtsi            |  14 ++
 arch/arm64/boot/dts/broadcom/bcmbca/bcm63146.dtsi           |  14 ++
 arch/arm64/boot/dts/broadcom/bcmbca/bcm63158.dtsi           |  14 ++
 arch/arm64/boot/dts/broadcom/bcmbca/bcm6813.dtsi            |  14 ++
 arch/arm64/boot/dts/broadcom/bcmbca/bcm6856.dtsi            |  14 ++
 arch/arm64/boot/dts/broadcom/bcmbca/bcm6858.dtsi            |  14 ++
 arch/arm64/boot/dts/broadcom/bcmbca/bcm94908.dts            |  10 +
 arch/arm64/boot/dts/broadcom/bcmbca/bcm94912.dts            |  10 +
 arch/arm64/boot/dts/broadcom/bcmbca/bcm963146.dts           |  10 +
 arch/arm64/boot/dts/broadcom/bcmbca/bcm963158.dts           |  10 +
 arch/arm64/boot/dts/broadcom/bcmbca/bcm96813.dts            |  10 +
 arch/arm64/boot/dts/broadcom/bcmbca/bcm96856.dts            |  10 +
 arch/arm64/boot/dts/broadcom/bcmbca/bcm96858.dts            |  10 +
 drivers/mtd/chips/cfi_cmdset_0002.c                         |   4 +-
 drivers/mtd/maps/Kconfig                                    |   7 -
 drivers/mtd/maps/Makefile                                   |   1 -
 drivers/mtd/maps/intel_vr_nor.c                             | 265 --------------------------
 drivers/mtd/maps/physmap-core.c                             |   2 +-
 drivers/mtd/nand/raw/atmel/nand-controller.c                |   2 +-
 drivers/mtd/nand/raw/brcmnand/Makefile                      |   2 +-
 drivers/mtd/nand/raw/brcmnand/bcm63138_nand.c               |  99 ----------
 drivers/mtd/nand/raw/brcmnand/bcmbca_nand.c                 | 126 ++++++++++++
 drivers/mtd/nand/raw/brcmnand/brcmnand.c                    | 148 +++++++++++---
 drivers/mtd/nand/raw/brcmnand/brcmnand.h                    |   2 +
 drivers/mtd/nand/raw/fsl_elbc_nand.c                        |   3 +-
 drivers/mtd/nand/raw/lpc32xx_mlc.c                          |   5 +-
 drivers/mtd/nand/raw/meson_nand.c                           |   2 +-
 drivers/mtd/nand/raw/mtk_nand.c                             |   2 +-
 drivers/mtd/nand/raw/nand_base.c                            |  92 ++++++---
 drivers/mtd/nand/raw/nand_bbt.c                             |   1 -
 drivers/mtd/nand/raw/nand_hynix.c                           |   1 -
 drivers/mtd/nand/raw/stm32_fmc2_nand.c                      |  83 ++++++--
 drivers/mtd/nand/spi/esmt.c                                 |   9 +-
 drivers/mtd/nand/spi/winbond.c                              |  12 ++
 drivers/mtd/spi-nor/core.c                                  | 187 +++++++++---------
 drivers/mtd/spi-nor/core.h                                  |  30 +--
 drivers/mtd/spi-nor/debugfs.c                               |  26 ++-
 drivers/mtd/spi-nor/sfdp.c                                  |  47 ++---
 drivers/mtd/ssfdc.c                                         |   7 +-
 include/linux/mtd/flashchip.h                               |   1 +
 include/linux/mtd/lpc32xx_mlc.h                             |   2 +-
 include/linux/mtd/lpc32xx_slc.h                             |   2 +-
 include/linux/mtd/mtd.h                                     |   2 +-
 include/linux/mtd/spinand.h                                 |   2 +-
 79 files changed, 982 insertions(+), 658 deletions(-)
 delete mode 100644 drivers/mtd/maps/intel_vr_nor.c
 delete mode 100644 drivers/mtd/nand/raw/brcmnand/bcm63138_nand.c
 create mode 100644 drivers/mtd/nand/raw/brcmnand/bcmbca_nand.c

^ permalink raw reply	[relevance 2%]

* [GIT PULL] bcachefs 6.9 updates v2
@ 2024-03-14  3:37  2% Kent Overstreet
  0 siblings, 0 replies; 200+ results
From: Kent Overstreet @ 2024-03-14  3:37 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: linux-bcachefs, linux-fsdevel, linux-kernel

The following changes since commit d206a76d7d2726f3b096037f2079ce0bd3ba329b:

  Linux 6.8-rc6 (2024-02-25 15:46:06 -0800)

are available in the Git repository at:

  https://evilpiepirate.org/git/bcachefs.git tags/bcachefs-2024-03-13

for you to fetch changes up to be28368b2ccb328b207c9f66c35bb088d91e6a03:

  bcachefs: time_stats: shrink time_stat_buffer for better alignment (2024-03-13 21:38:03 -0400)

----------------------------------------------------------------
bcachefs updates for 6.9

 - Subvolume children btree; this is needed for providing a userspace
   interface for walking subvolumes, which will come later
 - Lots of improvements to directory structure checking
 - Improved journal pipelining, significantly improving performance on
   high iodepth write workloads
 - Discard path improvements: the discard path is more efficient, and no
   longer flushes the journal unnecessarily
 - Buffered write path can now avoid taking the inode lock
 - new mm helper: memalloc_flags_{save|restore}
 - mempool now does kvmalloc mempools

----------------------------------------------------------------
Brian Foster (1):
      bcachefs: fix lost journal buf wakeup due to improved pipelining

Calvin Owens (1):
      bcachefs: Silence gcc warnings about arm arch ABI drift

Colin Ian King (1):
      bcachefs: remove redundant assignment to variable ret

Daniel Hill (1):
      bcachefs: rebalance_status now shows correct units

Darrick J. Wong (8):
      bcachefs: thread_with_file: allow creation of readonly files
      bcachefs: thread_with_file: fix various printf problems
      bcachefs: thread_with_file: create ops structure for thread_with_stdio
      bcachefs: thread_with_file: allow ioctls against these files
      bcachefs: time_stats: add larger units
      bcachefs: mean_and_variance: put struct mean_and_variance_weighted on a diet
      bcachefs: time_stats: split stats-with-quantiles into a separate structure
      bcachefs: time_stats: shrink time_stat_buffer for better alignment

Erick Archer (1):
      bcachefs: Prefer struct_size over open coded arithmetic

Guoyu Ou (1):
      bcachefs: skip invisible entries in empty subvolume checking

Hongbo Li (3):
      bcachefs: fix the error code when mounting with incorrect options.
      bcachefs: avoid returning private error code in bch2_xattr_bcachefs_set
      bcachefs: intercept mountoption value for bool type

Kent Overstreet (109):
      bcachefs: journal_seq_blacklist_add() now handles entries being added out of order
      bcachefs: extent_entry_next_safe()
      bcachefs: no_splitbrain_check option
      bcachefs: fix check_inode_deleted_list()
      bcachefs: Fix journal replay with unreadable btree roots
      bcachefs: Fix degraded mode fsck
      bcachefs: Correctly validate k->u64s in btree node read path
      bcachefs: Set path->uptodate when no node at level
      bcachefs: fix split brain message
      bcachefs: Kill unnecessary wakeups in journal reclaim
      bcachefs: Split out journal workqueue
      bcachefs: Avoid setting j->write_work unnecessarily
      bcachefs: Journal writes should be REQ_SYNC|REQ_META
      bcachefs: Avoid taking journal lock unnecessarily
      bcachefs: fixup for building in userspace
      bcachefs: Improve bch2_dirent_to_text()
      bcachefs: Workqueues should be WQ_HIGHPRI
      bcachefs: bch2_hash_set_snapshot() -> bch2_hash_set_in_snapshot()
      bcachefs: Cleanup bch2_dirent_lookup_trans()
      bcachefs: convert journal replay ptrs to darray
      bcachefs: improve journal entry read fsck error messages
      bcachefs: jset_entry_datetime
      bcachefs: bio per journal buf
      bcachefs: closure per journal buf
      bcachefs: better journal pipelining
      bcachefs: btree_and_journal_iter.trans
      bcachefs: btree node prefetching in check_topology
      bcachefs: Subvolumes may now be renamed
      bcachefs: Switch to uuid_to_fsid()
      bcachefs: Initialize super_block->s_uuid
      bcachefs: move fsck_write_inode() to inode.c
      bcachefs: bump max_active on btree_interior_update_worker
      bcachefs: Kill some -EINVALs
      bcachefs: Factor out check_subvol_dirent()
      bcachefs: factor out check_inode_backpointer()
      mm: introduce memalloc_flags_{save,restore}
      mm: introduce PF_MEMALLOC_NORECLAIM, PF_MEMALLOC_NOWARN
      bcachefs: bch2_inode_insert()
      bcachefs: bch2_lookup() gives better error message on inode not found
      mempool: kvmalloc pool
      bcachefs: kill kvpmalloc()
      bcachefs: thread_with_stdio: eliminate double buffering
      bcachefs: thread_with_stdio: convert to darray
      bcachefs: thread_with_stdio: kill thread_with_stdio_done()
      bcachefs: thread_with_stdio: fix bch2_stdio_redirect_readline()
      bcachefs: Thread with file documentation
      bcachefs: thread_with_stdio: Mark completed in ->release()
      kernel/hung_task.c: export sysctl_hung_task_timeout_secs
      bcachefs: thread_with_stdio: suppress hung task warning
      bcachefs: thread_with_file: Fix missing va_end()
      bcachefs: thread_with_file: add f_ops.flush
      bcachefs: Kill more -EIO error codes
      bcachefs: Check subvol <-> inode pointers in check_subvol()
      bcachefs: Check subvol <-> inode pointers in check_inode()
      bcachefs: check_inode_dirent_inode()
      bcachefs: better log message in lookup_inode_for_snapshot()
      bcachefs: check bi_parent_subvol in check_inode()
      bcachefs: simplify check_dirent_inode_dirent()
      bcachefs: delete duplicated checks in check_dirent_to_subvol()
      bcachefs: check inode->bi_parent_subvol against dirent
      bcachefs: check dirent->d_parent_subvol
      bcachefs: Repair subvol dirents that point to non subvols
      bcachefs: bch_subvolume::parent -> creation_parent
      bcachefs: Fix path where dirent -> subvol missing and we don't fix
      bcachefs: Pass inode bkey to check_path()
      bcachefs: check_path() now prints full inode when reattaching
      bcachefs: Correctly reattach subvolumes
      bcachefs: bch2_btree_bit_mod -> bch2_btree_bit_mod_buffered
      bcachefs: bch2_btree_bit_mod()
      bcachefs: bch_subvolume::fs_path_parent
      bcachefs: BTREE_ID_subvolume_children
      bcachefs: Check for subvolume children when deleting subvolumes
      bcachefs: Pin btree cache in ram for random access in fsck
      bcachefs: Save key_cache_path in peek_slot()
      bcachefs: Track iter->ip_allocated at bch2_trans_copy_iter()
      bcachefs: Use kvzalloc() when dynamically allocating btree paths
      bcachefs: Improve error messages in device remove path
      bcachefs: bch2_print_opts()
      bcachefs: bch2_trigger_alloc() handles state changes better
      bcachefs: bch2_check_subvolume_structure()
      bcachefs: check_path() now only needs to walk up to subvolume root
      bcachefs: more informative write path error message
      bcachefs: Drop redundant btree_path_downgrade()s
      bcachefs: improve bch2_journal_buf_to_text()
      bcachefs: Split out discard fastpath
      bcachefs: Fix journal_buf bitfield accesses
      bcachefs: Add journal.blocked to journal_debug_to_text()
      bcachefs: Errcode tracepoint, documentation
      bcachefs: jset_entry for loops declare loop iter
      bcachefs: Rename journal_keys.d -> journal_keys.data
      bcachefs: journal_keys now uses darray helpers
      bcachefs: improve move_gap()
      bcachefs: split out ignore_blacklisted, ignore_not_dirty
      bcachefs: Fix bch2_journal_noflush_seq()
      fs: file_remove_privs_flags()
      bcachefs: Buffered write path now can avoid the inode lock
      bcachefs: Split out bkey_types.h
      bcachefs: copy_(to|from)_user_errcode()
      lib/generic-radix-tree.c: Make nodes more reasonably sized
      bcachefs: fix bch2_journal_buf_to_text()
      bcachefs: Check for writing superblocks with nonsense member seq fields
      bcachefs: Kill unused flags argument to btree_split()
      bcachefs: fix deletion of indirect extents in btree_gc
      bcachefs: Fix order of gc_done passes
      bcachefs: Always flush write buffer in delete_dead_inodes()
      bcachefs: Fix btree key cache coherency during replay
      bcachefs: fix bch_folio_sector padding
      bcachefs: reconstruct_alloc cleanup
      bcachefs: pull out time_stats.[ch]

Li Zetao (1):
      bcachefs: Fix null-ptr-deref in bch2_fs_alloc()

Thomas Bertschinger (1):
      bcachefs: omit alignment attribute on big endian struct bkey

 Documentation/filesystems/bcachefs/errorcodes.rst |  30 +
 MAINTAINERS                                       |   1 +
 fs/bcachefs/Makefile                              |   4 +
 fs/bcachefs/alloc_background.c                    | 219 ++++--
 fs/bcachefs/alloc_background.h                    |   1 +
 fs/bcachefs/alloc_foreground.c                    |  13 +-
 fs/bcachefs/backpointers.c                        | 143 ++--
 fs/bcachefs/bbpos_types.h                         |   2 +-
 fs/bcachefs/bcachefs.h                            |  21 +-
 fs/bcachefs/bcachefs_format.h                     |  53 +-
 fs/bcachefs/bkey.h                                | 207 +-----
 fs/bcachefs/bkey_types.h                          | 213 ++++++
 fs/bcachefs/btree_cache.c                         |  37 +-
 fs/bcachefs/btree_gc.c                            | 151 ++--
 fs/bcachefs/btree_io.c                            |  22 +-
 fs/bcachefs/btree_iter.c                          |  20 +-
 fs/bcachefs/btree_journal_iter.c                  | 180 +++--
 fs/bcachefs/btree_journal_iter.h                  |  14 +-
 fs/bcachefs/btree_key_cache.c                     |   8 +-
 fs/bcachefs/btree_locking.c                       |   3 +-
 fs/bcachefs/btree_types.h                         |   9 +-
 fs/bcachefs/btree_update.c                        |  23 +-
 fs/bcachefs/btree_update.h                        |   3 +-
 fs/bcachefs/btree_update_interior.c               |  83 ++-
 fs/bcachefs/btree_update_interior.h               |   2 +
 fs/bcachefs/btree_write_buffer.c                  |   4 +-
 fs/bcachefs/buckets.c                             |  32 +-
 fs/bcachefs/chardev.c                             |  57 +-
 fs/bcachefs/checksum.c                            |   2 +-
 fs/bcachefs/compress.c                            |  14 +-
 fs/bcachefs/debug.c                               |   6 +-
 fs/bcachefs/dirent.c                              | 143 ++--
 fs/bcachefs/dirent.h                              |   6 +-
 fs/bcachefs/ec.c                                  |   4 +-
 fs/bcachefs/errcode.c                             |  15 +-
 fs/bcachefs/errcode.h                             |  18 +-
 fs/bcachefs/error.c                               |  10 +-
 fs/bcachefs/error.h                               |   2 +-
 fs/bcachefs/extents.h                             |  11 +-
 fs/bcachefs/fifo.h                                |   4 +-
 fs/bcachefs/fs-common.c                           |  74 +-
 fs/bcachefs/fs-io-buffered.c                      | 149 +++-
 fs/bcachefs/fs-io-pagecache.h                     |   9 +-
 fs/bcachefs/fs.c                                  | 222 ++++--
 fs/bcachefs/fsck.c                                | 847 ++++++++++++++--------
 fs/bcachefs/fsck.h                                |   1 +
 fs/bcachefs/inode.c                               |  55 +-
 fs/bcachefs/inode.h                               |  19 +
 fs/bcachefs/io_read.c                             |   2 +-
 fs/bcachefs/io_write.c                            |  18 +-
 fs/bcachefs/journal.c                             | 280 ++++---
 fs/bcachefs/journal.h                             |   7 +-
 fs/bcachefs/journal_io.c                          | 403 +++++-----
 fs/bcachefs/journal_io.h                          |  47 +-
 fs/bcachefs/journal_reclaim.c                     |  29 +-
 fs/bcachefs/journal_seq_blacklist.c               |  69 +-
 fs/bcachefs/journal_types.h                       |  30 +-
 fs/bcachefs/lru.c                                 |   7 +-
 fs/bcachefs/mean_and_variance.c                   |  28 +-
 fs/bcachefs/mean_and_variance.h                   |  14 +-
 fs/bcachefs/mean_and_variance_test.c              |  80 +-
 fs/bcachefs/migrate.c                             |   8 +-
 fs/bcachefs/opts.c                                |   8 +-
 fs/bcachefs/opts.h                                |  10 +
 fs/bcachefs/rebalance.c                           |   4 +-
 fs/bcachefs/recovery.c                            |  88 ++-
 fs/bcachefs/recovery_types.h                      |   2 +
 fs/bcachefs/sb-clean.c                            |  16 -
 fs/bcachefs/sb-downgrade.c                        |  10 +-
 fs/bcachefs/sb-errors_types.h                     |  19 +-
 fs/bcachefs/str_hash.h                            |  15 +-
 fs/bcachefs/subvolume.c                           | 187 ++++-
 fs/bcachefs/subvolume.h                           |   8 +-
 fs/bcachefs/subvolume_format.h                    |   4 +-
 fs/bcachefs/super-io.c                            |  22 +-
 fs/bcachefs/super.c                               |  93 ++-
 fs/bcachefs/sysfs.c                               |   4 +-
 fs/bcachefs/thread_with_file.c                    | 391 +++++++---
 fs/bcachefs/thread_with_file.h                    |  59 +-
 fs/bcachefs/thread_with_file_types.h              |  15 +-
 fs/bcachefs/time_stats.c                          | 165 +++++
 fs/bcachefs/time_stats.h                          | 159 ++++
 fs/bcachefs/trace.h                               |  19 +
 fs/bcachefs/util.c                                | 227 +-----
 fs/bcachefs/util.h                                | 142 +---
 fs/bcachefs/xattr.c                               |   5 +-
 fs/inode.c                                        |   7 +-
 include/linux/fs.h                                |   1 +
 include/linux/generic-radix-tree.h                |  29 +-
 include/linux/mempool.h                           |  13 +
 include/linux/sched.h                             |   4 +-
 include/linux/sched/mm.h                          |  60 +-
 kernel/hung_task.c                                |   1 +
 lib/generic-radix-tree.c                          |  35 +-
 mm/mempool.c                                      |  13 +
 95 files changed, 3770 insertions(+), 2253 deletions(-)
 create mode 100644 Documentation/filesystems/bcachefs/errorcodes.rst
 create mode 100644 fs/bcachefs/bkey_types.h
 create mode 100644 fs/bcachefs/time_stats.c
 create mode 100644 fs/bcachefs/time_stats.h

^ permalink raw reply	[relevance 2%]

* Re: [git pull] drm for 6.9-rc1
  2024-03-13  4:06  1% [git pull] drm for 6.9-rc1 Dave Airlie
@ 2024-03-13  4:16  0% ` Dave Airlie
  0 siblings, 0 replies; 200+ results
From: Dave Airlie @ 2024-03-13  4:16 UTC (permalink / raw)
  To: Linus Torvalds, Daniel Vetter; +Cc: dri-devel, LKML

On Wed, 13 Mar 2024 at 14:06, Dave Airlie <airlied@gmail.com> wrote:
>
> Hi Linus,
>
> This is the main drm pull request for 6.9.
>
> This is mostly self contained, some backlight bits in powerpc,
> and possibly some minor media/sound related nits.
>
> I've done a trial merge into your tree from a few hours ago, there
> are definitely some slighty messy conflicts, I've pushed a sample
> branch here:

Just realised I forgot to go back and fill it in
https://cgit.freedesktop.org/~airlied/linux/log/?h=drm-next-6.9-merged

Dave.
>
> This is also a PR from the tree hosted in fd.o gitlab (though I think I've
> probably done fixes from there without mentioning it), so there should
> be no problems.
>
> Highlights are usual, more AMD IP blocks for future hw, i915/xe changes,
> Displayport tunnelling support for i915, msm YUV over DP changes, new tests
> for ttm, but its mostly a lot of stuff all over the place from lots of people.
>
> Let me know if there any problems (esp if I messed up the sample merge).
>
> Regards,
> Dave.
>
>
> drm-next-2024-03-13:
> drm for 6.9:
>
> core:
> - EDID cleanups
> - scheduler error handling fixes
> - managed: add drmm_release_action() with tests
> - add ratelimited drm debug print
> - DPCD PSR early transport macro
> - DP tunneling and bandwidth allocation helpers
> - remove built-in edids
> - dp: Avoid AUX transfers on powered-down displays
> - dp: Add VSC SDP helpers
>
> cross drivers:
> - use new drm print helpers
> - switch to ->read_edid callback
> - gem: add stats for shared buffers plus updates to amdgpu, i915, xe
>
> syncobj:
> - fixes to waiting and sleeping
>
> ttm:
> - add tests
> - fix errno codes
> - simply busy-placement handling
> - fix page decryption
>
> media:
> - tc358743: fix v4l device registration
>
> video:
> - move all kernel parameters for video behind CONFIG_VIDEO
>
> sound:
> - remove <drm/drm_edid.h> include from header
>
> ci:
> - add tests for msm
> - fix apq8016 runner
>
> efifb:
> - use copy of global screen_info state
>
> vesafb:
> - use copy of global screen_info state
>
> simplefb:
> - fix logging
>
> bridge:
> - ite-6505: fix DP link-training bug
> - samsung-dsim: fix error checking in probe
> - samsung-dsim: add bsh-smm-s2/pro boards
> - tc358767: fix regmap usage
> - imx: add i.MX8MP HDMI PVI plus DT bindings
> - imx: add i.MX8MP HDMI TX plus DT bindings
> - sii902x: fix probing and unregistration
> - tc358767: limit pixel PLL input range
> - switch to new drm_bridge_read_edid() interface
>
> panel:
> - ltk050h3146w: error-handling fixes
> - panel-edp: support delay between power-on and enable; use put_sync in
>   unprepare; support Mediatek MT8173 Chromebooks, BOE NV116WHM-N49 V8.0,
>   BOE NV122WUM-N41, CSO MNC207QS1-1 plus DT bindings
> - panel-lvds: support EDT ETML0700Z9NDHA plus DT bindings
> - panel-novatek: FRIDA FRD400B25025-A-CTK plus DT bindings
> - add BOE TH101MB31IG002-28A plus DT bindings
> - add EDT ETML1010G3DRA plus DT bindings
> - add Novatek NT36672E LCD DSI plus DT bindings
> - nt36523: support 120Hz timings, fix includes
> - simple: fix display timings on RK32FN48H
> - visionox-vtdr6130: fix initialization
> - add Powkiddy RGB10MAX3 plus DT bindings
> - st7703: support panel rotation plus DT bindings
> - add Himax HX83112A plus DT bindings
> - ltk500hd1829: add support for ltk101b4029w and admatec 9904370
> - simple: add BOE BP082WX1-100 8.2" panel plus DT bindungs
>
> panel-orientation-quirks:
> - GPD Win Mini
>
> amdgpu:
> - Validate DMABuf imports in compute VMs
> - Add RAS ACA framework
> - PSP 13 fixes
> - Misc code cleanups
> - Replay fixes
> - Atom interpretor PS, WS bounds checking
> - DML2 fixes
> - Audio fixes
> - DCN 3.5 Z state fixes
> - Remove deprecated ida_simple usage
> - UBSAN fixes
> - RAS fixes
> - Enable seq64 infrastructure
> - DC color block enablement
> - Documentation updates
> - DC documentation updates
> - DMCUB updates
> - ATHUB 4.1 support
> - LSDMA 7.0 support
> - JPEG DPG support
> - IH 7.0 support
> - HDP 7.0 support
> - VCN 5.0 support
> - SMU 13.0.6 updates
> - NBIO 7.11 updates
> - SDMA 6.1 updates
> - MMHUB 3.3 updates
> - DCN 3.5.1 support
> - NBIF 6.3.1 support
> - VPE 6.1.1 support
>
> amdkfd:
> - Validate DMABuf imports in compute VMs
> - SVM fixes
> - Trap handler updates and enhancements
> - Fix cache size reporting
> - Relocate the trap handler
>
> radeon:
> - Atom interpretor PS, WS bounds checking
> - Misc code cleanups
>
> xe:
> - new query for GuC submission version
> - Remove unused persistent exec_queues
> - Add vram frequency sysfs attributes
> - Add the flag XE_VM_BIND_FLAG_DUMPABLE
> - Drop pre-production workarounds
> - Drop kunit tests for unsupported platforms
> - Start pumbling SR-IOV support with memory based interrupts for VF
> - Allow to map BO in GGTT with PAT index corresponding to
>   XE_CACHE_UC to work with memory based interrupts
> - Add GuC Doorbells Manager as prep work SR-IOV
> - Implement additional workarounds for xe2 and MTL
> - Program a few registers according to perfomance guide spec for Xe2
> - Fix remaining 32b build issues and enable it back
> - Fix build with CONFIG_DEBUG_FS=n
> - Fix warnings from GuC ABI headers
> - Introduce Relay Communication for SR-IOV for VF <-> GuC <-> PF
> - Release mmap mappings on rpm suspend
> - Disable mid-thread preemption when not properly supported by hardware
> - Fix xe_exec by reserving extra fence slot for CPU bind
> - Fix xe_exec with full long running exec queue
> - Canonicalize addresses where needed for Xe2 and add to devcoredum
> - Toggle USM support for Xe2
> - Only allow 1 ufence per exec / bind IOCTL
> - Add GuC firmware loading for Lunar Lake
> - Add XE_VMA_PTE_64K VMA flag
>
> i915:
> - Add more ADL-N PCI IDs
> - Enable fastboot also on older platforms
> - Early transport for panel replay and PSR
> - New ARL PCI IDs
> - DP TPS4 PHY test pattern support
> - Unify and improve VSC SDP for PSR and non-PSR cases
> - Refactor memory regions and improve debug logging
> - Rework global state serialization
> - Remove unused CDCLK divider fields
> - Unify HDCP connector logging format
> - Use display instead of graphics version in display code
> - Move VBT and opregion debugfs next to the implementation
> - Abstract opregion interface, use opaque type
> - MTL fixes
> - HPD handling fixes
> - Add GuC submission interface version query
> - Atomically invalidate userptr on mmu-notifier
> - Update handling of MMIO triggered reports
> - Don't make assumptions about intel_wakeref_t type
> - Extend driver code of Xe_LPG to Xe_LPG+
> - Add flex arrays to struct i915_syncmap
> - Allow for very slow HuC loading
> - DP tunneling and bandwidth allocation support
>
> msm:
> - Correct bindings for MSM8976 and SM8650 platforms
> - Start migration of MDP5 platforms to DPU driver
> - X1E80100 MDSS support
> - DPU:
> - Improve DSC allocation, fixing several important corner cases
> - Add support for SDM630/SDM660 platforms
> - Simplify dpu_encoder_phys_ops
> - Apply fixes targeting DSC support with a single DSC encoder
> - Apply fixes for HCTL_EN timing configuration
> - X1E80100 support
> - Add support for YUV420 over DP
> - GPU:
> - fix sc7180 UBWC config
> - fix a7xx LLC config
> - new gpu support: a305B, a750, a702
> - machine support: SM7150 (different power levels than other a618)
> - a7xx devcoredump support
>
> habanalabs:
> - configure IRQ affinity according to NUMA node
> - move HBM MMU page tables inside the HBM
> - improve device reset
> - check extended PCIe errors
>
> ivpu:
> - updates to firmware API
> - refactor BO allocation
>
> imx:
> - use devm_ functions during init
>
> hisilicon:
> - fix EDID includes
>
> mgag200:
> - improve ioremap usage
> - convert to struct drm_edid
> - Work around PCI write bursts
>
> nouveau:
> - disp: use kmemdup()
> - fix EDID includes
> - documentation fixes
>
> qaic:
> - fixes to BO handling
> - make use of DRM managed release
> - fix order of remove operations
>
> rockchip:
> - analogix_dp: get encoder port from DT
> - inno_hdmi: support HDMI for RK3128
> - lvds: error-handling fixes
>
> ssd130x:
> - support SSD133x plus DT bindings
>
> tegra:
> - fix error handling
>
> tilcdc:
> - make use of DRM managed release
>
> v3d:
> - show memory stats in debugfs
> - Support display MMU page size
>
> vc4:
> - fix error handling in plane prepare_fb
> - fix framebuffer test in plane helpers
>
> virtio:
> - add venus capset defines
>
> vkms:
> - fix OOB access when programming the LUT
> - Kconfig improvements
>
> vmwgfx:
> - unmap surface before changing plane state
> - fix memory leak in error handling
> - documentation fixes
> - list command SVGA_3D_CMD_DEFINE_GB_SURFACE_V4 as invalid
> - fix null-pointer deref in execbuf
> - refactor display-mode probing
> - fix fencing for creating cursor MOBs
> - fix cursor-memory lifetime
>
> xlnx:
> - fix live video input for ZynqMP DPSUB
>
> lima:
> - fix memory leak
>
> loongson:
> - fail if no VRAM present
>
> meson:
> - switch to new drm_bridge_read_edid() interface
>
> renesas:
> - add RZ/G2L DU support plus DT bindings
>
> mxsfb:
> - Use managed mode config
>
> sun4i:
> - HDMI: updates to atomic mode setting
>
> mediatek:
> - Add display driver for MT8188 VDOSYS1
> - DSI driver cleanups
> - Filter modes according to hardware capability
> - Fix a null pointer crash in mtk_drm_crtc_finish_page_flip
>
> etnaviv:
> - enhancements for NPU and MRT support
> The following changes since commit d206a76d7d2726f3b096037f2079ce0bd3ba329b:
>
>   Linux 6.8-rc6 (2024-02-25 15:46:06 -0800)
>
> are available in the Git repository at:
>
>   https://gitlab.freedesktop.org/drm/kernel.git tags/drm-next-2024-03-13
>
> for you to fetch changes up to 119b225f01e4d3ce974cd3b4d982c76a380c796d:
>
>   Merge tag 'amd-drm-next-6.9-2024-03-08-1' of
> https://gitlab.freedesktop.org/agd5f/linux into drm-next (2024-03-11
> 13:32:12 +1000)
>
> ----------------------------------------------------------------
> drm for 6.9:
>
> core:
> - EDID cleanups
> - scheduler error handling fixes
> - managed: add drmm_release_action() with tests
> - add ratelimited drm debug print
> - DPCD PSR early transport macro
> - DP tunneling and bandwidth allocation helpers
> - remove built-in edids
> - dp: Avoid AUX transfers on powered-down displays
> - dp: Add VSC SDP helpers
>
> cross drivers:
> - use new drm print helpers
> - switch to ->read_edid callback
> - gem: add stats for shared buffers plus updates to amdgpu, i915, xe
>
> syncobj:
> - fixes to waiting and sleeping
>
> ttm:
> - add tests
> - fix errno codes
> - simply busy-placement handling
> - fix page decryption
>
> media:
> - tc358743: fix v4l device registration
>
> video:
> - move all kernel parameters for video behind CONFIG_VIDEO
>
> sound:
> - remove <drm/drm_edid.h> include from header
>
> ci:
> - add tests for msm
> - fix apq8016 runner
>
> efifb:
> - use copy of global screen_info state
>
> vesafb:
> - use copy of global screen_info state
>
> simplefb:
> - fix logging
>
> bridge:
> - ite-6505: fix DP link-training bug
> - samsung-dsim: fix error checking in probe
> - samsung-dsim: add bsh-smm-s2/pro boards
> - tc358767: fix regmap usage
> - imx: add i.MX8MP HDMI PVI plus DT bindings
> - imx: add i.MX8MP HDMI TX plus DT bindings
> - sii902x: fix probing and unregistration
> - tc358767: limit pixel PLL input range
> - switch to new drm_bridge_read_edid() interface
>
> panel:
> - ltk050h3146w: error-handling fixes
> - panel-edp: support delay between power-on and enable; use put_sync in
>   unprepare; support Mediatek MT8173 Chromebooks, BOE NV116WHM-N49 V8.0,
>   BOE NV122WUM-N41, CSO MNC207QS1-1 plus DT bindings
> - panel-lvds: support EDT ETML0700Z9NDHA plus DT bindings
> - panel-novatek: FRIDA FRD400B25025-A-CTK plus DT bindings
> - add BOE TH101MB31IG002-28A plus DT bindings
> - add EDT ETML1010G3DRA plus DT bindings
> - add Novatek NT36672E LCD DSI plus DT bindings
> - nt36523: support 120Hz timings, fix includes
> - simple: fix display timings on RK32FN48H
> - visionox-vtdr6130: fix initialization
> - add Powkiddy RGB10MAX3 plus DT bindings
> - st7703: support panel rotation plus DT bindings
> - add Himax HX83112A plus DT bindings
> - ltk500hd1829: add support for ltk101b4029w and admatec 9904370
> - simple: add BOE BP082WX1-100 8.2" panel plus DT bindungs
>
> panel-orientation-quirks:
> - GPD Win Mini
>
> amdgpu:
> - Validate DMABuf imports in compute VMs
> - Add RAS ACA framework
> - PSP 13 fixes
> - Misc code cleanups
> - Replay fixes
> - Atom interpretor PS, WS bounds checking
> - DML2 fixes
> - Audio fixes
> - DCN 3.5 Z state fixes
> - Remove deprecated ida_simple usage
> - UBSAN fixes
> - RAS fixes
> - Enable seq64 infrastructure
> - DC color block enablement
> - Documentation updates
> - DC documentation updates
> - DMCUB updates
> - ATHUB 4.1 support
> - LSDMA 7.0 support
> - JPEG DPG support
> - IH 7.0 support
> - HDP 7.0 support
> - VCN 5.0 support
> - SMU 13.0.6 updates
> - NBIO 7.11 updates
> - SDMA 6.1 updates
> - MMHUB 3.3 updates
> - DCN 3.5.1 support
> - NBIF 6.3.1 support
> - VPE 6.1.1 support
>
> amdkfd:
> - Validate DMABuf imports in compute VMs
> - SVM fixes
> - Trap handler updates and enhancements
> - Fix cache size reporting
> - Relocate the trap handler
>
> radeon:
> - Atom interpretor PS, WS bounds checking
> - Misc code cleanups
>
> xe:
> - new query for GuC submission version
> - Remove unused persistent exec_queues
> - Add vram frequency sysfs attributes
> - Add the flag XE_VM_BIND_FLAG_DUMPABLE
> - Drop pre-production workarounds
> - Drop kunit tests for unsupported platforms
> - Start pumbling SR-IOV support with memory based interrupts for VF
> - Allow to map BO in GGTT with PAT index corresponding to
>   XE_CACHE_UC to work with memory based interrupts
> - Add GuC Doorbells Manager as prep work SR-IOV
> - Implement additional workarounds for xe2 and MTL
> - Program a few registers according to perfomance guide spec for Xe2
> - Fix remaining 32b build issues and enable it back
> - Fix build with CONFIG_DEBUG_FS=n
> - Fix warnings from GuC ABI headers
> - Introduce Relay Communication for SR-IOV for VF <-> GuC <-> PF
> - Release mmap mappings on rpm suspend
> - Disable mid-thread preemption when not properly supported by hardware
> - Fix xe_exec by reserving extra fence slot for CPU bind
> - Fix xe_exec with full long running exec queue
> - Canonicalize addresses where needed for Xe2 and add to devcoredum
> - Toggle USM support for Xe2
> - Only allow 1 ufence per exec / bind IOCTL
> - Add GuC firmware loading for Lunar Lake
> - Add XE_VMA_PTE_64K VMA flag
>
> i915:
> - Add more ADL-N PCI IDs
> - Enable fastboot also on older platforms
> - Early transport for panel replay and PSR
> - New ARL PCI IDs
> - DP TPS4 PHY test pattern support
> - Unify and improve VSC SDP for PSR and non-PSR cases
> - Refactor memory regions and improve debug logging
> - Rework global state serialization
> - Remove unused CDCLK divider fields
> - Unify HDCP connector logging format
> - Use display instead of graphics version in display code
> - Move VBT and opregion debugfs next to the implementation
> - Abstract opregion interface, use opaque type
> - MTL fixes
> - HPD handling fixes
> - Add GuC submission interface version query
> - Atomically invalidate userptr on mmu-notifier
> - Update handling of MMIO triggered reports
> - Don't make assumptions about intel_wakeref_t type
> - Extend driver code of Xe_LPG to Xe_LPG+
> - Add flex arrays to struct i915_syncmap
> - Allow for very slow HuC loading
> - DP tunneling and bandwidth allocation support
>
> msm:
> - Correct bindings for MSM8976 and SM8650 platforms
> - Start migration of MDP5 platforms to DPU driver
> - X1E80100 MDSS support
> - DPU:
> - Improve DSC allocation, fixing several important corner cases
> - Add support for SDM630/SDM660 platforms
> - Simplify dpu_encoder_phys_ops
> - Apply fixes targeting DSC support with a single DSC encoder
> - Apply fixes for HCTL_EN timing configuration
> - X1E80100 support
> - Add support for YUV420 over DP
> - GPU:
> - fix sc7180 UBWC config
> - fix a7xx LLC config
> - new gpu support: a305B, a750, a702
> - machine support: SM7150 (different power levels than other a618)
> - a7xx devcoredump support
>
> habanalabs:
> - configure IRQ affinity according to NUMA node
> - move HBM MMU page tables inside the HBM
> - improve device reset
> - check extended PCIe errors
>
> ivpu:
> - updates to firmware API
> - refactor BO allocation
>
> imx:
> - use devm_ functions during init
>
> hisilicon:
> - fix EDID includes
>
> mgag200:
> - improve ioremap usage
> - convert to struct drm_edid
> - Work around PCI write bursts
>
> nouveau:
> - disp: use kmemdup()
> - fix EDID includes
> - documentation fixes
>
> qaic:
> - fixes to BO handling
> - make use of DRM managed release
> - fix order of remove operations
>
> rockchip:
> - analogix_dp: get encoder port from DT
> - inno_hdmi: support HDMI for RK3128
> - lvds: error-handling fixes
>
> ssd130x:
> - support SSD133x plus DT bindings
>
> tegra:
> - fix error handling
>
> tilcdc:
> - make use of DRM managed release
>
> v3d:
> - show memory stats in debugfs
> - Support display MMU page size
>
> vc4:
> - fix error handling in plane prepare_fb
> - fix framebuffer test in plane helpers
>
> virtio:
> - add venus capset defines
>
> vkms:
> - fix OOB access when programming the LUT
> - Kconfig improvements
>
> vmwgfx:
> - unmap surface before changing plane state
> - fix memory leak in error handling
> - documentation fixes
> - list command SVGA_3D_CMD_DEFINE_GB_SURFACE_V4 as invalid
> - fix null-pointer deref in execbuf
> - refactor display-mode probing
> - fix fencing for creating cursor MOBs
> - fix cursor-memory lifetime
>
> xlnx:
> - fix live video input for ZynqMP DPSUB
>
> lima:
> - fix memory leak
>
> loongson:
> - fail if no VRAM present
>
> meson:
> - switch to new drm_bridge_read_edid() interface
>
> renesas:
> - add RZ/G2L DU support plus DT bindings
>
> mxsfb:
> - Use managed mode config
>
> sun4i:
> - HDMI: updates to atomic mode setting
>
> mediatek:
> - Add display driver for MT8188 VDOSYS1
> - DSI driver cleanups
> - Filter modes according to hardware capability
> - Fix a null pointer crash in mtk_drm_crtc_finish_page_flip
>
> etnaviv:
> - enhancements for NPU and MRT support
>
> ----------------------------------------------------------------
> Abel Vesa (4):
>       dt-bindings: display/msm: Document the DPU for X1E80100
>       dt-bindings: display/msm: Document MDSS on X1E80100
>       drm/msm: mdss: Add X1E80100 support
>       drm/msm/dpu: Add X1E80100 support
>
> Abhinav Kumar (3):
>       drm/msm/dpu: fix the programming of INTF_CFG2_DATA_HCTL_EN
>       drm/dp: move intel_dp_vsc_sdp_pack() to generic helper
>       drm/dp: drop the size parameter from drm_dp_vsc_sdp_pack()
>
> Adam Ford (1):
>       drm/bridge: imx8mp-hdmi-pvi: Fix build warnings
>
> Adam Skladowski (2):
>       dt-bindings: dsi-controller-main: Document missing msm8976 compatible
>       dt-bindings: msm: qcom, mdss: Include ommited fam-b compatible
>
> Alan Previn (2):
>       drm/i915/guc: Flush context destruction worker at suspend
>       drm/i915/guc: Close deregister-context race against CT-loss
>
> Alex Bee (14):
>       drm/rockchip: vop: Add output selection registers for RK312x
>       drm/rockchip: inno_hdmi: Fix video timing
>       drm/rockchip: inno_hdmi: Remove YUV-based csc coefficents
>       drm/rockchip: inno_hdmi: Drop irq struct member
>       drm/rockchip: inno_hdmi: Remove useless include
>       drm/rockchip: inno_hdmi: Subclass connector state
>       drm/rockchip: inno_hdmi: Correctly setup HDMI quantization range
>       drm/rockchip: inno_hdmi: Don't power up the phy after resetting
>       drm/rockchip: inno_hdmi: Split power mode setting
>       drm/rockchip: inno_hdmi: Add variant support
>       drm/rockchip: inno_hdmi: Add RK3128 support
>       drm/rockchip: inno_hdmi: Add basic mode validation
>       drm/rockchip: inno_hdmi: Drop custom fill_modes hook
>       drm/rockchip: inno_hdmi: Explicitly include drm_atomic.h
>
> Alex Deucher (20):
>       drm/amdgpu: add new INFO IOCTL query for input power
>       drm/amdgpu: move kiq_reg_write_reg_wait() out of amdgpu_virt.c
>       drm/amdgpu/pptable: convert some variable sized arrays to [] style
>       drm/amdgpu/gfx10: set UNORD_DISPATCH in compute MQDs
>       drm/amdgpu/gfx11: set UNORD_DISPATCH in compute MQDs
>       drm/amdgpu: convert some variable sized arrays to [] style
>       drm/amdgpu: update documentation on new chips
>       drm/amdgpu: fix typo in parameter description
>       drm/amdgpu/psp: update define to better align with its meaning
>       Documentation/gpu: Update documentation on drm-shared-*
>       drm: add drm_gem_object_is_shared_for_memory_stats() helper
>       drm: update drm_show_memory_stats() for dma-bufs
>       drm/amdgpu: add shared fdinfo stats
>       drm/i915: Update shared stats to use the new gem helper
>       drm/xe: Update shared stats to use the new gem helper
>       Revert "drm/amd/pm: resolve reboot exception for si oland"
>       Revert "drm/amd: Remove freesync video mode amdgpu parameter"
>       Reapply "Revert drm/amd/display: Enable Freesync Video Mode by default"
>       drm/amd/display: handle range offsets in VRR ranges
>       drm/amdgpu: add VPE 6.1.1 discovery support
>
> Alexander Richards (2):
>       drm/amdgpu: check PS, WS index
>       drm/radeon: check PS, WS index
>
> Alexander Stein (10):
>       drm/bridge: tc358767: Use regmap_access_table for writeable registers
>       drm/bridge: tc358767: Fix order of register defines
>       drm/bridge: tc358767: Add more registers to non-writeable range
>       drm/bridge: tc358767: Sort volatile registers according to address
>       drm/bridge: tc358767: Add more volatile registers
>       drm/bridge: tc358767: Add precious register SYSSTAT
>       drm/bridge: tc358767: Add descriptions to register definitions
>       drm: panel: simple: convert LG LB070WV8 fixed mode into display timings
>       media: tc358743: register v4l2 async device only after successful setup
>       drm: bridge: dw_hdmi: Set DRM bridge type
>
> Alexander Warnecke (1):
>       drm/panel: Add driver for BOE TH101MB31IG002-28A panel
>
> Allen Pan (2):
>       drm/amd/display: Add NULL-checks in dml2 assigned pipe search
>       drm/amd/display: correct static screen event mask
>
> Alvin Lee (8):
>       drm/amd/display: Add Replay IPS register for DMUB command table
>       drm/amd/display: Ensure populate uclk in bb construction
>       drm/amd/display: For FPO and SubVP/DRR configs program vmin/max sel
>       drm/amd/display: Populate invalid split index to be 0xF
>       Revert "drm/amd/display: For FPO and SubVP/DRR configs program
> vmin/max sel"
>       drm/amd/display: Update phantom pipe enable / disable sequence
>       drm/amd/display: Generalize new minimal transition path
>       drm/amd/display: Remove pixle rate limit for subvp
>
> Anatoliy Klymenko (4):
>       drm: xlnx: zynqmp_dpsub: Make drm bridge discoverable
>       drm: xlnx: zynqmp_dpsub: Fix timing for live mode
>       drm: xlnx: zynqmp_dpsub: Clear status register ASAP
>       drm: xlnx: zynqmp_dpsub: Filter interrupts against mask
>
> Andy Shevchenko (1):
>       drm/virtio: Spelling fixes
>
> AngeloGioacchino Del Regno (9):
>       drm/mediatek: dsi: Use GENMASK() for register mask definitions
>       drm/mediatek: dsi: Fix DSI RGB666 formats and definitions
>       drm/mediatek: dsi: Cleanup functions mtk_dsi_ps_control{_vact}()
>       drm/mediatek: dsi: Use bitfield macros where useful
>       drm/mediatek: dsi: Replace open-coded instance of HZ_PER_MHZ
>       drm/mediatek: dsi: Register DSI host after acquiring clocks and PHY
>       drm/mediatek: dsi: Simplify with dev_err_probe and remove gotos
>       drm/mediatek: dsi: Compress of_device_id entries and add sentinel
>       drm/mediatek: dsi: Use mipi_dsi_pixel_format_to_bpp() helper function
>
> Anirban Sk (1):
>       drm/i915/selftests: Increasing the sleep time for live_rc6_manual
>
> Ankit Nautiyal (1):
>       drm/i915/dp: Fix the max DSC bpc supported by source
>
> Anthony Koo (2):
>       drm/amd/display: [FW Promotion] Release 0.0.201.0
>       drm/amd/display: [FW Promotion] Release 0.0.202.0
>
> Aric Cyr (8):
>       drm/amd/display: Promote DAL to 3.2.268
>       drm/amd/display: Promote DAL to 3.2.269
>       drm/amd/display: Unify optimize_required flags and VRR adjustments
>       drm/amd/display: 3.2.270
>       drm/amd/display: 3.2.271
>       drm/amd/display: 3.2.272
>       drm/amd/display: Fix nanosec stat overflow
>       drm/amd/display: 3.2.273
>
> Armin Wolf (1):
>       drm/amd/display: Fix memory leak in dm_sw_fini()
>
> Arnd Bergmann (4):
>       drm/xe: circumvent bogus stringop-overflow warning
>       drm/xe: avoid function cast warnings
>       drm/xe/kunit: fix link failure with built-in xe
>       drm/xe/xe2: fix 64-bit division in pte_update_size
>
> Arunpravin Paneer Selvam (1):
>       drm/amdgpu: Enable seq64 manager and fix bugs
>
> Asad Kamal (5):
>       Revert "drm/amdgpu: Add pci usage to nbio v7.9"
>       Revert "drm/amdgpu: Add pcie usage callback to nbio"
>       drm/amdgpu: Remove pcie bw sys entry
>       drm/amd/pm: Skip reporting pcie width/speed on vfs
>       drm/amd/pm: Fix esm reg mask use to get pcie speed
>
> Ashutosh Dixit (2):
>       drm/xe/xe_gt_idle: Drop redundant newline in name
>       drm/xe: Fix modpost warning on xe_mocs kunit module
>
> Aurabindo Pillai (1):
>       drm/amd: Update atomfirmware.h for DCN401
>
> Avri Kehat (1):
>       accel/habanalabs: fix debugfs files permissions
>
> Badal Nilawar (3):
>       drm/xe/dgfx: Release mmap mappings on rpm suspend
>       drm/xe/xe_debugfs: Print skip_guc_pc in xe info
>       drm/hwmon: Fix abi doc warnings
>
> Bhanuprakash Modem (1):
>       drm/i915/display/debugfs: New entry "DRRS capable" to i915_drrs_status
>
> Biju Das (6):
>       dt-bindings: display: Document Renesas RZ/G2L DU bindings
>       dt-bindings: display: renesas,rzg2l-du: Document RZ/V2L DU bindings
>       drm: renesas: Add RZ/G2L DU Support
>       MAINTAINERS: Update entries for Renesas DRM drivers
>       MAINTAINERS: Create entry for Renesas RZ DRM drivers
>       drm: renesas: rz-du: Fix redefinition errors related to rzg2l_du_vsp_*()
>
> Bjorn Helgaas (1):
>       drm/amdgpu: remove misleading amdgpu_pmops_runtime_idle() comment
>
> Brian Masney (1):
>       fbdev/simplefb: change loglevel when the power domains cannot be parsed
>
> Brian Welty (7):
>       drm/xe: Fix guc_exec_queue_set_priority
>       drm/xe: Fix modifying exec_queue priority in xe_migrate_init
>       drm/xe: Refactor __xe_exec_queue_create()
>       drm/xe: Add exec_queue.sched_props.job_timeout_ms
>       drm/xe: Finish refactoring of exec_queue_create
>       drm/xe: Remove set_job_timeout_ms() from exec_queue_ops
>       drm/xe: Fix bounds checking in __xe_bo_placement_for_flags()
>
> Camille Cho (1):
>       drm/amd/display: correct comment in set_default_brightness_aux()
>
> Candice Li (3):
>       drm/amdgpu: Do bad page retirement for deferred errors
>       drm/amdgpu: Log deferred error separately
>       drm/amd/pm: Retrieve UMC ODECC error count from aca bank
>
> Charlene Liu (8):
>       drm/amd/display: Add logging resource checks
>       drm/amd/display: Update P010 scaling cap
>       drm/amd/display: Revert "Rework DC Z10 restore"
>       Revert "drm/amd/display: initialize all the dpm level's stutter latency"
>       drm/amd/display: fix USB-C flag update after enc10 feature init
>       drm/amd/display: fix DP audio settings
>       drm/amd/display: enable fgcg by default
>       drm/amd/display: allow psr-su/replay for z8
>
> Chen Haonan (2):
>       drm/nouveau/disp: switch to use kmemdup() helper
>       drm/panel: Simplify with dev_err_probe()
>
> Chen Ni (1):
>       drm/tegra: dsi: Add missing check for of_find_device_by_node
>
> Chris Morgan (4):
>       dt-bindings: display: Add Powkiddy RGB10MAX3 panel
>       drm/panel: st7703: Add Powkiddy RGB10MAX3 Panel Support
>       dt-bindings: display: rocktech,jh057n00900: Document panel rotation
>       drm/panel: st7703: Add Panel Rotation Support
>
> Christian Gmeiner (2):
>       drm/etnaviv: add sensitive state for PE_RT_ADDR_4_PIPE(3, 0|1) address
>       drm/etnaviv: Restore some id values
>
> Christian König (6):
>       drm/amdgpu: revert "Adjust removal control flow for smu v13_0_2"
>       drm/vmwgfx: remove vmw_vram_gmr_placement
>       drm/ttm: return ENOSPC from ttm_bo_mem_space v3
>       drm/i915: fix applying placement flag
>       drm/amdgpu: cleanup conditional execution
>       drm/amdgpu: workaround to avoid SET_Q_MODE packets v2
>
> Christophe JAILLET (9):
>       drm/tegra: dsi: Fix some error handling paths in tegra_dsi_probe()
>       drm/tegra: dsi: Fix missing pm_runtime_disable() in the error
> handling path of tegra_dsi_probe()
>       drm/tegra: hdmi: Fix some error handling paths in tegra_hdmi_probe()
>       drm/tegra: rgb: Fix some error handling paths in tegra_dc_rgb_probe()
>       drm/tegra: rgb: Fix missing clk_put() in the error handling
> paths of tegra_dc_rgb_probe()
>       drm/tegra: output: Fix missing i2c_put_adapter() in the error
> handling paths of tegra_output_probe()
>       drm/amd/display: Fix a switch statement in
> populate_dml_output_cfg_from_stream_state()
>       drm/amdgpu: Remove usage of the deprecated ida_simple_xx() API
>       drm/xe/guc: Remove usage of the deprecated ida_simple_xx() API
>
> ChunTao Tso (1):
>       drm/amd/display: Replay + IPS + ABM in Full Screen VPB
>
> Colin Ian King (4):
>       drm/xe: Fix spelling mistake "gueue" -> "queue"
>       gpu: host1x: remove redundant assignment to variable space
>       drm/msm/dp: Fix spelling mistake "enale" -> "enable"
>       accel/habanalabs/goya: remove redundant assignment to pointer 'input'
>
> Connor Abbott (4):
>       drm/msm: Import a7xx crashdump register lists from kgsl
>       drm/msm: Fix snapshotting a7xx indexed regs
>       drm/msm: More fully implement devcoredump for a7xx
>       drm/msm: Fix page fault client detection on a660 family and a7xx
>
> Dafna Hirschfeld (2):
>       drm/xe: Do not include current dir for generated/xe_wa_oob.h
>       drm/xe: Replace 'grouped target' in Makefile with pattern rule
>
> Dan Carpenter (6):
>       drm/xe/device: clean up on error in probe()
>       drm/xe/selftests: Fix an error pointer dereference bug
>       drm/xe: unlock on error path in xe_vm_add_compute_exec_queue()
>       drm/amd/display: Fix && vs || typos
>       firmware/sysfb: fix an error code in sysfb_init()
>       drm/imx/dcss: fix resource size calculation
>
> Dani Liberman (4):
>       drm/xe/irq: allocate all possible msix interrupts
>       accel/habanalabs/gaudi2: add interrupt affinity for user interrupts
>       accel/habanalabs: remove call to deprecated function
>       accel/habanalabs: fix error print
>
> Daniel Vetter (4):
>       Merge tag 'drm-misc-next-2024-02-22' of
> git://anongit.freedesktop.org/drm/drm-misc into drm-next
>       Merge tag 'drm-xe-next-2024-02-25' of
> ssh://gitlab.freedesktop.org/drm/xe/kernel into drm-next
>       Merge tag 'drm-habanalabs-next-2024-02-26' of
> https://git.kernel.org/pub/scm/linux/kernel/git/ogabbay/linux into
> drm-next
>       Merge v6.8-rc6 into drm-next
>
> Daniele Ceraolo Spurio (3):
>       drm/xe/guc: Use FAST_REQUEST for non-blocking H2G messages
>       drm/xe/gsc: Initialize GSC proxy
>       drm/xe/gsc: add support for GSC proxy interrupt
>
> Danila Tikhonov (1):
>       drm/msm/adreno: Add support for SM7150 SoC machine
>
> Dario Binacchi (7):
>       drm/bridge: samsung-dsim: check the return value only if necessary
>       drm/debugfs: drop unneeded DEBUG_FS guard
>       dt-bindings: nt35510: add compatible for FRIDA FRD400B25025-A-CTK
>       drm/panel: nt35510: move hardwired parameters to configuration
>       drm/panel: nt35510: support FRIDA FRD400B25025-A-CTK
>       drm: bridge: samsung-dsim: enter display mode in the enable() callback
>       drm: bridge: samsung-dsim: complete the CLKLANE_STOP setting
>
> Dave Airlie (19):
>       Merge tag 'drm-misc-next-2024-01-11' of
> git://anongit.freedesktop.org/drm/drm-misc into drm-next
>       Merge tag 'drm-misc-next-2024-02-08' of
> git://anongit.freedesktop.org/drm/drm-misc into drm-next
>       Merge tag 'amd-drm-next-6.9-2024-02-09' of
> https://gitlab.freedesktop.org/agd5f/linux into drm-next
>       Merge tag 'drm-intel-next-2024-02-07' of
> git://anongit.freedesktop.org/drm/drm-intel into drm-next
>       Merge tag 'drm-intel-gt-next-2024-02-15' of
> git://anongit.freedesktop.org/drm/drm-intel into drm-next
>       Merge tag 'drm-misc-next-2024-02-15' of
> git://anongit.freedesktop.org/drm/drm-misc into drm-next
>       Merge tag 'amd-drm-next-6.9-2024-02-19' of
> https://gitlab.freedesktop.org/agd5f/linux into drm-next
>       Merge tag 'drm-intel-next-2024-02-27-1' of
> git://anongit.freedesktop.org/drm/drm-intel into drm-next
>       Merge tag 'drm-intel-gt-next-2024-02-28' of
> git://anongit.freedesktop.org/drm/drm-intel into drm-next
>       Merge tag 'drm-misc-next-2024-02-29' of
> https://anongit.freedesktop.org/git/drm/drm-misc into drm-next
>       Merge tag 'mediatek-drm-next-6.9' of
> https://git.kernel.org/pub/scm/linux/kernel/git/chunkuang.hu/linux
> into drm-next
>       Merge tag 'drm-msm-next-2024-02-29' of
> https://gitlab.freedesktop.org/drm/msm into drm-next
>       Merge tag 'drm-misc-next-fixes-2024-02-29' of
> https://anongit.freedesktop.org/git/drm/drm-misc into drm-next
>       Merge tag 'amd-drm-next-6.9-2024-03-01' of
> https://gitlab.freedesktop.org/agd5f/linux into drm-next
>       Merge tag 'drm-misc-next-fixes-2024-03-07' of
> https://anongit.freedesktop.org/git/drm/drm-misc into drm-next
>       Merge tag 'drm-xe-next-fixes-2024-03-04' of
> ssh://gitlab.freedesktop.org/drm/xe/kernel into drm-next
>       Merge tag 'drm-etnaviv-next-2024-03-07' of
> https://git.pengutronix.de/git/lst/linux into drm-next
>       Merge tag 'drm-msm-next-2024-03-07' of
> https://gitlab.freedesktop.org/drm/msm into drm-next
>       Merge tag 'amd-drm-next-6.9-2024-03-08-1' of
> https://gitlab.freedesktop.org/agd5f/linux into drm-next
>
> David McFarland (1):
>       drm/amd: Don't init MEC2 firmware when it fails to load
>
> Devarsh Thakkar (1):
>       dt-bindings: display: ti,am65x-dss: Add support for common1 region
>
> Dillon Varone (1):
>       drm/amd/display: Init link enc resources in dc_state only if
> res_pool presents
>
> Dmitry Baryshkov (43):
>       drm/msm/dsi: do not store internal bridge pointer
>       drm/msm/dsi: drop msm_dsi_device_connected() function
>       drm/msm/dsi: stop calling set_split_display
>       drm/msm/dsi: remove msm_dsi::encoder
>       drm/msm/mdp5: drop split display support
>       drm/msm/dp: drop unused parser definitions
>       drm/msm/dp: drop unused fields from dp_power_private
>       drm/msm/dp: parse DT from dp_parser_get
>       drm/msm/dp: inline dp_power_(de)init
>       drm/msm/dp: fold dp_power into dp_ctrl module
>       drm/msm/dp: simplify stream clocks handling
>       drm/msm/dp: stop parsing clock names from DT
>       drm/msm/dp: split dp_ctrl_clk_enable into four functuions
>       drm/msm/dp: move phy_configure_opts to dp_ctrl
>       drm/msm/dp: remove PHY handling from dp_catalog.c
>       drm/msm/dp: handle PHY directly in dp_ctrl
>       drm/msm/dp: move all IO handling to dp_catalog
>       drm/msm/dp: move link property handling to dp_panel
>       drm/msm/dp: move next_bridge handling to dp_display
>       drm/msm/dp: drop dp_parser
>       drm/msm/dpu: split irq_control into irq_enable and _disable
>       drm/msm/dpu: split _dpu_encoder_resource_control_helper()
>       drm/msm/dpu: drop dpu_encoder_phys_ops.atomic_mode_set
>       drm/msm/dpu: move writeback's atomic_check to dpu_writeback.c
>       drm/msm/dpu: drop dpu_encoder_phys_ops::atomic_check()
>       drm/msm/dsi: Document DSC related pclk_rate and hdisplay calculations
>       drm: ci: use clk_ignore_unused for apq8016
>       drm/msm/mdss: generate MDSS data for MDP5 platforms
>       drm/msm/dpu: support binding to the mdp5 devices
>       drm/msm: add a kernel param to select between MDP5 and DPU drivers
>       drm/msm/dpu: add support for SDM660 and SDM630 platforms
>       drm/msm/dpu: finalise global state object
>       drm/msm/dpu: drop global_state_lock
>       drm/msm/mdp5: migrate SMP dumping to using atomic_print_state
>       drm/msm/mdp5: drop global_state_lock
>       drm/ci: skip suspend tests for both msm-sc7180 machines
>       drm/ci: update IGT test names
>       drm/ci: update msm-apq8096-fails list
>       drm/ci: mark universal-plane-sanity as failing on SC7180
>       drm/msm/a6xx: specify UBWC config for sc7180
>       drm/msm/dpu: make "vblank timeout" more useful
>       drm/msm/dpu: split dpu_encoder_wait_for_event into two functions
>       drm/msm/dpu: capture snapshot on the first commit_done timeout
>
> Dmytro Laktyushkin (2):
>       drm/amd/display: Fix dml2 assigned pipe search
>       drm/amd/display: Fix DPSTREAM CLK on and off sequence
>
> Donald Robson (1):
>       MAINTAINERS: Remove Donald Robson from powervr driver maintainers
>
> Douglas Anderson (2):
>       drm/panel: boe-tv101wum-nl6: make use of prepare_prev_first
>       drm/dp: Don't attempt AUX transfers when eDP panels are not powered
>
> Eric Huang (1):
>       amd/amdkfd: remove unused parameter
>
> Eric Yang (1):
>       drm/amd/display: fix invalid reg access on DCN35 FPGA
>
> Erick Archer (3):
>       drm/i915: Add flex arrays to struct i915_syncmap
>       drm/xe: Prefer struct_size over open coded arithmetic
>       accel/habanalabs: use kcalloc() instead of kzalloc()
>
> Erico Nunes (8):
>       drm/lima: reset async_reset on pp hard reset
>       drm/lima: reset async_reset on gp hard reset
>       drm/lima: set pp bus_stop bit before hard reset
>       drm/lima: set gp bus_stop bit before hard reset
>       drm/lima: handle spurious timeouts due to high irq latency
>       drm/lima: remove guilty drm_sched context handling
>       drm/lima: increase default job timeout to 10s
>       drm/lima: standardize debug messages by ip name
>
> Erik Kurzinger (3):
>       drm/syncobj: call drm_syncobj_fence_add_wait when WAIT_AVAILABLE
> flag is set
>       drm/syncobj: reject invalid flags in drm_syncobj_find_fence
>       drm/syncobj: call might_sleep before waiting for fence submission
>
> Ethan Bitnun (3):
>       drm/amd/display: Add delay before logging clks from hw
>       drm/amd/display: Adjust set_p_state calls to fix logging
>       drm/amd/display: Only log during optimize_bandwidth call
>
> Fangzhi Zuo (2):
>       drm/amd/display: Fix dcn35 8k30 Underflow/Corruption Issue
>       drm/amd/display: Fix MST Null Ptr for RV
>
> Farah Kassabri (2):
>       accel/habanalabs/gaudi2: move HMMU page tables to device memory
>       accel/habanalabs: remove hop size from asic properties
>
> Fedor Pchelkin (1):
>       drm/tegra: put drm_gem_object ref on error in tegra_fb_create
>
> Fei Yang (2):
>       drm/xe: correct the calculation of remaining size
>       drm/xe: correct the assertion for number of PTEs
>
> Felix Kuehling (5):
>       drm/amdgpu: Auto-validate DMABuf imports in compute VMs
>       drm/amdkfd: Bump KFD ioctl version
>       drm/amdgpu: Remove unnecessary NULL check
>       drm/amdgpu: Reduce VA_RESERVED_BOTTOM to 64KB
>       drm/amdkfd: Relocate TBA/TMA to opposite side of VM hole
>
> Flora Cui (1):
>       drm/amdkfd: init drm_client with funcs hook
>
> Friedrich Vock (1):
>       drm/amdgpu: Reset IH OVERFLOW_CLEAR bit
>
> Fudongwang (2):
>       drm/amd/display: Add GART memory support for dmcub
>       drm/amd/display: refine code for dmcub inbox1 ring buffer debug
>
> Gabe Teeger (1):
>       Revert "drm/amd/display: Send DTBCLK disable message on first commit"
>
> Geert Uytterhoeven (1):
>       drm: Spelling s/hardward/hardware/g
>
> George Shen (5):
>       drm/amd/display: Add DP audio BW validation
>       drm/amd/display: Add debug option to force 1-tap chroma subsampling
>       drm/amd/display: Add left edge pixel for YCbCr422/420 + ODM pipe split
>       Revert "drm/amd/display: Add left edge pixel for YCbCr422/420 +
> ODM pipe split"
>       drm/amd/display: Check DP Alt mode DPCS state via DMUB
>
> Ghanshyam Agrawal (1):
>       drm/vmwgfx: Fix typos in vmwgfx_execbuf.c
>
> GuoHua Chen (34):
>       drm/radeon: Clean up errors in si_dpm.c
>       drm/radeon/trinity_dpm: Clean up errors in trinity_dpm.c
>       drm/radeon: Clean up errors in trinity_dpm.c
>       drm/radeon: Clean up errors in radeon_atpx_handler.c
>       drm/radeon/r100: Clean up errors in r100.c
>       drm/radeon: Clean up errors in r600_dpm.h
>       drm/radeon: Clean up errors in ni.c
>       drm/radeon/dpm: Clean up errors in sumo_dpm.c
>       drm/radeon/ni_dpm: Clean up errors in ni_dpm.c
>       drm/radeon: Clean up errors in ni_dpm.c
>       drm/radeon: Clean up errors in smu7_discrete.h
>       drm/radeon/rv770: Clean up errors in rv770_dpm.c
>       drm/radeon/dpm: Clean up errors in trinity_dpm.h
>       drm/radeon/btc_dpm: Clean up errors in btc_dpm.c
>       drm/radeon/kms: Clean up errors in rv6xx_dpm.h
>       drm/radeon: Clean up errors in radeon_asic.c
>       drm/radeon: Clean up errors in uvd_v1_0.c
>       drm/radeon: Clean up errors in radeon_audio.h
>       drm/radeon: Clean up errors in rs400.c
>       drm/radeon: Clean up errors in radeon_audio.c
>       drm/radeon: Clean up errors in si_dpm.h
>       drm/radeon: Clean up errors in rs600.c
>       drm/radeon: Clean up errors in r600.c
>       drm/radeon/ci_dpm: Clean up errors in ci_dpm.c
>       drm/radeon: Clean up errors in rv770_smc.h
>       drm/radeon: Clean up errors in evergreen.c
>       gpu/drm/radeon: Clean up errors in evergreen.c
>       drm/radeon: Clean up errors in kv_smc.c
>       drm/radeon: Clean up errors in evergreen_reg.h
>       drm/radeon: Clean up errors in radeon_mode.h
>       drm/radeon: Clean up errors in rv515.c
>       drm/radeon: Clean up errors in r600_dpm.c
>       drm/radeon/kms: Clean up errors in smu7_fusion.h
>       drm/radeon/kms: Clean up errors in smu7.h
>
> Gustavo Sousa (6):
>       drm/i915/cdclk: Remove divider field from tables
>       drm/i915/xe2lpd: Update bxt_sanitize_cdclk()
>       drm/i915/cdclk: Extract bxt_cdclk_ctl()
>       drm/i915/cdclk: Reorder bxt_sanitize_cdclk()
>       drm/i915/cdclk: Re-use bxt_cdclk_ctl() when sanitizing
>       drm/i915: Update ADL-N PCI IDs
>
> Hamza Mahfooz (9):
>       drm/amd/display: add panel_power_savings sysfs entry to eDP connectors
>       drm/amdgpu: make damage clips support configurable
>       drm/amdgpu: respect the abmlevel module parameter value if it is set
>       drm/amd/display: add DCN351 version identifiers
>       drm/amd: add register headers for DCN351
>       drm/amd/display: add DMUB source files and changes for DCN351
>       drm/amd/display: add DCN351 IRQ changes
>       drm/amd/display: add DC changes for DCN351
>       drm/amd/display: add amdgpu_dm support for DCN351
>
> Haridhar Kalvala (1):
>       drm/i915/mtl: Add fake PCH for Meteor Lake
>
> Harish Chegondi (1):
>       drm/i915/xelpg: Extend driver code of Xe_LPG to Xe_LPG+
>
> Harry Wentland (4):
>       drm: Don't treat 0 as -1 in drm_fixp2int_ceil
>       drm/vkms: Create separate Kconfig file for VKMS
>       drm/vkms: Avoid reading beyond LUT array
>       drm/amd/display: Add dpp_get_gamut_remap functions
>
> Hawking Zhang (23):
>       drm/amdgpu: Replace DRM_* with dev_* in amdgpu_psp.c
>       drm/amdgpu: drop psp v13 query_boot_status implementation
>       drm/amdgpu: Init pcie_index/data address as fallback (v2)
>       drm/amdgpu: Add ras helper to query boot errors v2
>       drm/amdgpu: Query boot status if discovery failed
>       drm/amdgpu: Query boot status if boot failed
>       drm/amdgpu: Align ras block enum with firmware
>       drm/amdgpu: Query ras capablity from psp v2
>       drm/amdgpu: Centralize ras cap query to amdgpu_ras_check_supported
>       drm/amdgpu: Fix null pointer dereference
>       drm/amdgpu: Update boot time errors polling sequence
>       drm/amdgpu: Add athub v4_1_0 ip headers (v5)
>       drm/amdgpu: Add athub v4_1_0 ip block support
>       drm/amdgpu: Add lsdma v7_0_0 ip headers (v3)
>       drm/amdgpu: Add osssys v7_0_0 ip headers (v4)
>       drm/amdgpu: Add hdp v7_0_0 ip headers (v3)
>       drm/amdgpu: Add vcn v5_0_0 ip headers (v5)
>       drm/amdgpu: Add mp v14_0_2 ip headers (v5)
>       drm/amdgpu: Add psp v14_0 ip block support
>       drm/amdgpu: Do not toggle bif ras irq from guest
>       drm/amdgpu: Add nbif v6_3_1 ip headers (v5)
>       drm/amdgpu: Add pcie v6_1_0 ip headers (v5)
>       drm/amdgpu: Add nbif v6_3_1 ip block support
>
> Heiko Stuebner (5):
>       dt-bindings: vendor-prefixes: add prefix for admatec GmbH
>       dt-bindings: display: panel-lvds: Add compatible for admatec 9904370 panel
>       drm/panel: ltk500hd1829: make room for more similar panels
>       dt-bindings: display: ltk500hd1829: add variant compatible for
> ltk101b4029w
>       drm/panel: ltk500hd1829: add panel type for ltk101b4029w
>
> Hersen Wu (1):
>       drm/amd/display: add debugfs disallow edp psr
>
> Himal Prasad Ghimiray (1):
>       drm/xe/xe2: Use XE_CACHE_WB pat index
>
> Hsiao Chien Sung (3):
>       drm/mediatek: Add Padding to OVL adaptor
>       drm/mediatek: Support MT8188 VDOSYS1 in display driver
>       drm/mediatek: Filter modes according to hardware capability
>
> Hsin-Yi Wang (3):
>       drm/panel-edp: use put_sync in unprepare
>       Revert "drm/panel-edp: Add auo_b116xa3_mode"
>       drm/mediatek: Fix a null pointer crash in mtk_drm_crtc_finish_page_flip
>
> Huacai Chen (1):
>       drm/loongson: Error out if no VRAM detected
>
> Huang Rui (1):
>       drm/virtio: add definition for venus capset
>
> Ian Forbes (1):
>       drm/vmwgfx: Add SVGA_3D_CMD_DEFINE_GB_SURFACE_V4 to command array.
>
> Ilpo Järvinen (2):
>       drm/radeon: Use RMW accessors for changing LNKCTL2
>       drm/amdgpu: Use RMW accessors for changing LNKCTL2
>
> Ilya Bakoulin (1):
>       drm/amd/display: Clear OPTC mem select on disable
>
> Imre Deak (36):
>       drm/i915/dp: Fix the PSR debugfs entries wrt. MST connectors
>       drm/i915: Init DRM connector polled field early
>       drm/i915: Keep the connector polled state disabled after storm
>       drm/i915: Move audio deinit after disabling polling
>       drm/i915: Disable intel HPD poll after DRM poll init/enable
>       drm/i915: Suspend the framebuffer console during driver shutdown
>       drm/i915: Suspend the framebuffer console earlier during system suspend
>       drm/i915: Prevent modesets during driver init/shutdown
>       drm/i915: Disable hotplug detection works during driver init/shutdown
>       drm/i915: Disable hotplug detection handlers during driver init/shutdown
>       drm/i915: Add intel_digital_port lock/unlock hooks
>       drm/i915: Filter out glitches on HPD lines during hotplug detection
>       drm/i915/dp: Abort AUX on disconnected native DP ports
>       drm/i915: Prevent HW access during init from SDVO TV get_modes hook
>       drm/i915: Prevent HW access during init from connector get_modes hooks
>       drm/dp: Add drm_dp_max_dprx_data_rate()
>       drm/dp: Add support for DP tunneling
>       drm/i915: Fix display bpp limit computation during system resume
>       drm/i915/dp: Add support to notify MST connectors to retry modesets
>       drm/i915/dp: Use drm_dp_max_dprx_data_rate()
>       drm/i915/dp: Factor out intel_dp_config_required_rate()
>       drm/i915/dp: Export intel_dp_max_common_rate/lane_count()
>       drm/i915/dp: Factor out intel_dp_update_sink_caps()
>       drm/i915/dp: Factor out intel_dp_read_dprx_caps()
>       drm/i915/dp: Add intel_dp_max_link_data_rate()
>       drm/i915/dp: Sync instead of try-sync commits when getting active pipes
>       drm/i915/dp: Add support for DP tunnel BW allocation
>       drm/i915/dp: Add DP tunnel atomic state and check BW limit
>       drm/i915/dp: Account for tunnel BW limit in intel_dp_max_link_data_rate()
>       drm/i915/dp: Compute DP tunnel BW during encoder state computation
>       drm/i915/dp: Allocate/free DP tunnel BW during modeset
>       drm/i915/dp: Handle DP tunnel IRQs
>       drm/i915/dp: Call intel_dp_sync_state() always for DDI DP encoders
>       drm/i915/dp: Suspend/resume DP tunnels
>       drm/i915/dp: Read DPRX for all long HPD pulses
>       drm/i915/dp: Enable DP tunnel BW allocation mode
>
> Jacek Lawrynowicz (5):
>       accel/ivpu: Rename TILE_SKU_BOTH_MTL to TILE_SKU_BOTH
>       accel/ivpu: Remove legacy firmware name
>       accel/ivpu: Update FW API headers
>       accel/ivpu: Fix ivpu_reset_engine_fn merge issue
>       accel/ivpu: Rename VPU to NPU in message strings
>
> Jani Nikula (91):
>       drm/edid: replace __attribute__((packed)) with __packed
>       drm/ioc32: replace __attribute__((packed)) with __packed
>       drm/tegra: include drm/drm_edid.h only where needed
>       drm/i915/hdcp: unify connector logging format
>       drm/i915/hdcp: fix intel_hdcp_get_repeater_ctl() error return value
>       drm/i915/bios: remove some unused leftover declarations
>       drm/edid: prefer forward declarations over includes in drm_edid.h
>       drm/i915: don't make assumptions about intel_wakeref_t type
>       drm/i915/irq: use DISPLAY_VER instead of GRAPHICS_VER
>       drm/i915/dmc: use DISPLAY_VER instead of GRAPHICS_VER
>       drm/i915/hdcp: use DISPLAY_VER instead of GRAPHICS_VER
>       drm/i915/display: use IS_DISPLAY_VER instead of IS_GRAPHICS_VER
>       drm/i915/tv: use DISPLAY_VER instead of GRAPHICS_VER
>       drm/i915: don't make assumptions about intel_wakeref_t type
>       drm/mgag200: convert get modes to struct drm_edid
>       drm/probe-helper: remove unused drm_connector_helper_get_modes_from_ddc()
>       drm/nouveau: include drm/drm_edid.h only where needed
>       drm/hisilicon: include drm/drm_edid.h only where needed
>       drm/xe: display support should not depend on EXPERT
>       Merge drm/drm-next into drm-intel-next
>       drm/i915/bios: move i915_vbt debugfs to intel_bios.c
>       drm/i915/opregion: move i915_opregion debugfs to intel_opregion.c
>       drm/i915/opregion: abstract getting the opregion VBT
>       drm/i915/opregion: abstract ASLE presence check
>       drm/i915/gvt: use local INTEL_GVT_OPREGION_SIZE
>       drm/i915/opregion: make struct intel_opregion opaque
>       ASoC: hdmi-codec: drop drm/drm_edid.h include
>       drm/i915/opregion: remove unused lid_state
>       drm/xe: make xe_ttm_funcs const
>       drm/xe: make heci_gsc_irq_chip const
>       drm/xe: make hwmon_info const
>       drm/xe: make gpuvm_ops const
>       drm/xe: constify engine class sysfs attributes
>       drm/xe: don't build debugfs files when CONFIG_DEBUG_FS=n
>       drm/amdgpu: prefer snprintf over sprintf
>       drm/imx: prefer snprintf over sprintf
>       drm/xe: move xe_display.[ch] under display/
>       drm/xe: drop display/ subdir from include directories
>       drm/nouveau/acr/ga102: remove unused but set variable
>       drm/nouveau/svm: remove unused but set variables
>       drm/bridge: add ->edid_read hook and drm_bridge_edid_read()
>       drm/bridge: switch to drm_bridge_edid_read()
>       drm/bridge: chrontel-ch7033: switch to drm_bridge_edid_read()
>       drm/bridge: lt8912b: use drm_bridge_edid_read()
>       drm/bridge: lt8912b: clear the EDID property on failures
>       drm/bridge: lt8912b: use ->edid_read callback
>       drm/bridge: lt9611uxc: use drm_bridge_edid_read()
>       drm: bridge: simple-bridge: use drm_bridge_edid_read()
>       drm: bridge: simple-bridge: clear the EDID property on failures
>       drm/bridge: tfp410: use drm_bridge_edid_read()
>       drm/bridge: tfp410: clear the EDID property on failures
>       drm/meson: switch to drm_bridge_edid_read()
>       drm/bridge: remove drm_bridge_get_edid() in favour of
> drm_bridge_edid_read()
>       drm/bridge: anx7625: switch to ->edid_read callback
>       drm/bridge: cdns-mhdp8546: switch to ->edid_read callback
>       drm/bridge: cdns-mhdp8546: clear the EDID property on failures
>       drm/bridge: display-connector: switch to ->edid_read callback
>       drm/bridge: it6505: switch to ->edid_read callback
>       drm: bridge: it66121: switch to ->edid_read callback
>       drm/bridge: lt9611: switch to ->edid_read callback
>       drm/bridge: lt9611uxc: switch to ->edid_read callback
>       drm/bridge: megachips: switch to ->edid_read callback
>       drm/bridge: nxp-ptn3460: switch to ->edid_read callback
>       drm/bridge: sii902x: use display info is_hdmi
>       drm/bridge: sii902x: switch to ->edid_read callback
>       drm/mediatek/dp: switch to ->edid_read callback
>       drm/mediatek/hdmi: switch to ->edid_read callback
>       drm/msm/hdmi: fix indent
>       drm/msm/hdmi: switch to ->edid_read callback
>       drm/omap/hdmi4: switch to ->edid_read callback
>       drm/omap/hdmi5: switch to ->edid_read callback
>       drm: xlnx: zynqmp_dpsub: switch to ->edid_read callback
>       drm: adv7511: switch to ->edid_read callback
>       drm: bridge: dw_hdmi: switch to ->edid_read callback
>       drm: bridge: dw_hdmi: clear the EDID property and CEC address on failures
>       drm/bridge: tc358767: update the EDID property
>       drm/bridge: tc358767: switch to ->edid_read callback
>       drm/bridge: ti-sn65dsi86: switch to ->edid_read callback
>       drm/bridge: remove ->get_edid callback
>       drm/print: make drm_err_printer() device specific by using drm_err()
>       drm/print: move enum drm_debug_category etc. earlier in drm_print.h
>       drm/print: add drm_dbg_printer() for drm device specific printer
>       drm/dp_mst: switch from drm_debug_printer() to device specific
> drm_dbg_printer()
>       drm/mode: switch from drm_debug_printer() to device specific
> drm_dbg_printer()
>       drm/dp: switch drm_dp_vsc_sdp_log() to struct drm_printer
>       drm/i915: switch from drm_debug_printer() to device specific
> drm_dbg_printer()
>       drm/i915: use drm_printf() with the drm_err_printer intead of pr_err()
>       drm/xe: switch from drm_debug_printer() to device specific
> drm_dbg_printer()
>       drm: remove drm_debug_printer in favor of drm_dbg_printer
>       drm/xe: use drm based debugging instead of dev
>       drm/xe: fix arguments to drm_err_printer()
>
> Javier Martinez Canillas (5):
>       dt-bindings: display: ssd1307fb: Add vendor prefix to width and height
>       dt-bindings: display: ssd132x: Add vendor prefix to width and height
>       dt-bindings: display: Add SSD133x OLED controllers
>       drm/ssd130x: Add support for the SSD133x OLED controller family
>       drm: Move drm_set_preferred_mode() helper from drm_edid to drm_modes
>
> Jay Cornwall (1):
>       drm/amdkfd: Use S_ENDPGM_SAVED in trap handler
>
> Jeff Johnson (1):
>       accel/qaic: Constify aic100_channels
>
> Jeffrey Hugo (3):
>       accel/qaic: Fix MHI channel struct field order
>       accel/qaic: Order pci_remove() operations in reverse of probe()
>       dt-bindings: drm/bridge: ti-sn65dsi86: Fix bouncing @codeaurora address
>
> Jesse Zhang (2):
>       Revert "drm/amdgpu: remove vm sanity check from
> amdgpu_vm_make_compute" for Raven
>       drm/amdgpu: remove unused code
>
> Jessica Zhang (3):
>       drm/panel: visionox-vtdr6130: Set prepare_prev_first flag
>       dt-bindings: visionox-rm69299: Update maintainers
>       drm/panel: visionox-r66451: Set prepare_prev_first flag
>
> Jianhua Lu (1):
>       drm/panel: nt36523: Set 120Hz fps for xiaomi,elish panels
>
> Jiapeng Chong (1):
>       drm/amd/display: Simplify the calculation of variables
>
> Jiri Slaby (SUSE) (22):
>       char/agp: remove agp_bridge_data::type
>       drm/i915: remove unused intel_dvo_dev_ops hooks
>       drm/i915: remove structs intel_vgpu_pipe_format and intel_vgpu_fb_format
>       drm/i915: remove intel_dsi::{port_bits,hs}
>       drm/i915: remove intel_gvt_gtt::{mm_alloc_page_table, mm_free_page_table}
>       drm/i915: remove intel_gvt_mmio_info::{device, addr_range}
>       drm/i915: remove intel_vgpu_workload::{ring_context, restore_inhibit}
>       drm/i915: remove intel_vbt_panel_data::edp::initialized
>       drm/i915: remove intel_guc::ads_engine_usage_size
>       drm/i915: remove i915_drm_client::id
>       drm/i915: remove i915_perf_stream::size_exponent
>       drm/i915: remove intel_vgpu_gtt::active_ppgtt_mm_bitmap
>       drm/i915: remove intel_vgpu_fence::base
>       drm/i915: remove intel_vgpu_opregion::mapped
>       drm/i915: remove intel_vgpu::intx_trigger
>       drm/i915: remove gvt_mmio_block::device
>       drm/i915: remove intel_gvt_irq_info::warned
>       drm/i915: remove intel_gvt_event_info::policy
>       drm/i915: remove intel_gvt_irq::pending_events
>       drm/i915: remove execute_cb::signal
>       drm/i915: remove i915_vma::obj_hash
>       drm/i915: remove intel_memory_region_ops::flags
>
> Jocelyn Falempe (1):
>       drm/mgag200: Add a workaround for low-latency
>
> Johan Jonker (2):
>       dt-bindings: display: rockchip: rockchip,dw-hdmi: remove port property
>       dt-bindings: display: rockchip,dw-hdmi: add power-domains property
>
> John Harrison (6):
>       drm/i915/huc: Allow for very slow HuC loading
>       drm/i915/guc: Avoid circular locking issue on busyness flush
>       drm/xe/uc: Include patch version in expectations
>       drm/xe/guc: Update to GuC firmware 70.19.2
>       drm/xe/guc: Add support for LNL firmware
>       drm/i915/gt: Restart the heartbeat timer when forcing a pulse
>
> Jonathan Cavitt (1):
>       drm/i915/gem: Atomically invalidate userptr on mmu-notifier
>
> Jonathan Kim (2):
>       drm/amdkfd: fill in data for control stack header for gfx10
>       drm/amdkfd: fix process reference drop on debug ioctl
>
> Joseph Greathouse (1):
>       drm/amdkfd: Add cache line sizes to KFD topology
>
> José Roberto de Souza (15):
>       drm/xe/uapi: Remove DRM_XE_VM_BIND_FLAG_ASYNC comment left over
>       drm/i915: Disable DSB in Xe KMD
>       drm/xe: Fix definition of intel_wakeref_t
>       drm/xe: Use intel_wakeref_t in intel_runtime_pm functions
>       drm/xe: Remove double new lines in devcoredump
>       drm/xe: Change devcoredump functions parameters to xe_sched_job
>       drm/xe: Nuke xe from xe_devcoredump
>       drm/xe: Print more device information in devcoredump
>       drm/xe: Print registers spread in 2 u32 as u64
>       drm/xe: Remove additional spaces in devcoredump HW Engines section
>       drm/xe: Fix crash in trace_dma_fence_init()
>       drm/xe: Use function to emit PIPE_CONTROL
>       drm/xe: Add functions to convert regular address to canonical
> address and back
>       drm/xe: Add batch buffer addresses to devcoredump
>       drm/xe: Add uAPI to query GuC firmware submission version
>
> Jouni Högander (20):
>       drm/i915/display: Remove intel_crtc_state->psr_vsc
>       drm/i915/display: Move colorimetry_support from intel_psr to intel_dp
>       drm/i915/display: Unify VSC SPD preparation
>       drm/i915/display: Fix vsc_sdp computation
>       drm/i915/display: Ignore only psr specific part of vsc sdp
>       drm/i915/display: Read PSR configuration before VSC SDP
>       drm/i915/display: Take care of VSC select field in video dip ctl register
>       drm: Add eDP 1.5 early transport definition
>       drm/i915/psr: Extend SU area to cover cursor fully if needed
>       drm/i915/psr: Carry su area in crtc_state
>       drm/i915/psr: Calculate and configure CUR_POS_ERLY_TPT
>       drm/i915/psr: Configure PIPE_SRCSZ_ERLY_TPT for psr2 early transport
>       drm/i915/psr: Enable psr2 early transport as possible
>       drm/i915/psr: Disable early transport by default
>       drm/i915/display: No need for full modeset due to psr
>       drm/i915/psr: CAN_PSR and CAN_PANEL_REPLAY can be now local defines
>       drm/i915/alpm: Add ALPM register definitions
>       drm/i915/psr: Add alpm_parameters struct
>       drm/i915/alpm: Calculate ALPM Entry check
>       drm/i915/alpm: Alpm aux wake configuration for lnl
>
> Juan Escamilla (2):
>       drm/i915/gt: Use rc6.supported flag from intel_gt for rc6_enable sysfs
>       drm/i915/gt: Reflect the true and current status of rc6_enable
>
> Juha-Pekka Heikkila (1):
>       drm/i915/display: On Xe2 always enable decompression with tile4
>
> Justin Stitt (1):
>       drm/etnaviv: Replace strncpy with strscpy_pad
>
> Karolina Stolarek (4):
>       drm/ttm/tests: Add tests for ttm_resource and ttm_sys_man
>       drm/ttm/tests: Add tests for ttm_tt
>       drm/ttm/tests: Add tests for ttm_bo functions
>       drm/ttm/tests: Fix argument in ttm_tt_kunit_init()
>
> Karthik Poosa (3):
>       drm/xe/guc: Enable WA 14018913170
>       drm/xe/guc: Reduce a print from warn to debug
>       drm/xe/hwmon: Refactor xe hwmon
>
> Kenneth Feng (1):
>       drm/amd/pm: update the power cap setting
>
> Kent Russell (1):
>       drm/amdkfd: Fix L2 cache size reporting in GFX9.4.3
>
> Khaled Almahallawy (3):
>       drm/i915/dp: Use LINK_QUAL_PATTERN_* Phy test pattern names
>       drm/i915/dp: Add TPS4 PHY test pattern support
>       drm/i915/dp: Fix passing the correct DPCD_REV for
> drm_dp_set_phy_test_pattern
>
> Koby Elbaz (1):
>       accel/habanalabs: increase HL_MAX_STR to 64 bytes to avoid warnings
>
> Konrad Dybcio (2):
>       drm/panel: novatek-nt36523: Set prepare_prev_first
>       drm/msm/adreno: Add A702 support
>
> Krystian Pradzynski (1):
>       accel/ivpu: Add support for FW boot param system_time_us
>
> Kunwu Chan (4):
>       drm/amdgpu: Simplify the allocation of fence slab caches
>       drm/amdgpu: Simplify the allocation of mux_chunk slab caches
>       drm/amdgpu: Simplify the allocation of sync slab caches
>       drm/scheduler: Simplify the allocation of slab caches in
> drm_sched_fence_slab_init
>
> Kuogee Hsieh (3):
>       drm/msm/dpu: improve DSC allocation
>       drm/msm/dp: remove mdss_dp_test_bit_depth_to_bpc()
>       drm/msm/dpu: add support of new peripheral flush mechanism
>
> Lang Yu (6):
>       drm/amdkfd: reserve the BO before validating it
>       drm/amdgpu/vpe: add multi instance VPE support
>       drm/amdgpu/vpe: add PRED_EXE and COLLAB_SYNC OPCODE
>       drm/amdgpu/vpe: add collaborate mode support for VPE
>       drm/amdgpu/vpe: don't emit cond exec command under collaborate mode
>       drm/amdgpu/vpe: add VPE 6.1.1 support
>
> Laurent Morichetti (3):
>       drm/amdkfd: pass debug exceptions to second-level trap handler
>       drm/amdkfd: Increase the size of the memory reserved for the TBA
>       drm/amdkfd: Use SQC when TCP would fail in gfx10.1 context save
>
> Le Ma (1):
>       drm/amdgpu: move the drm client creation behind drm device registration
>
> Lenko Donchev (1):
>       drm/amd/display: Use kcalloc() instead of kzalloc()
>
> Leo (Hanghong) Ma (1):
>       drm/amd/display: Fix timing bandwidth calculation for HDMI
>
> Lewis Huang (1):
>       drm/amd/display: Only allow dig mapping to pwrseq in new asic
>
> Li Ma (2):
>       drm/amdgpu: remove asymmetrical irq disabling in jpeg 4.0.5 suspend
>       drm/amd/swsmu: modify the gfx activity scaling
>
> Lijo Lazar (10):
>       drm/amdgpu: Avoid fetching vram vendor information
>       drm/amdgpu: Show vram vendor only if available
>       drm/amd/pm: Fetch current power limit from FW
>       drm/amdgpu: Avoid fetching VRAM vendor info
>       drm/amdgpu: Fix HDP flush for VFs on nbio v7.9
>       drm/amd/pm: Allow setting max UCLK on SMU v13.0.6
>       drm/amdgpu: Add fatal error detected flag
>       drm/amdkfd: Skip packet submission on fatal error
>       drm/amdkfd: Add partition id field to location_id
>       drm/amd/pm: Increase SMUv13.0.6 mode-2 reset time
>
> Likun Gao (17):
>       drm/amd/swsmu: add judgement for vcn jpeg dpm set
>       drm/amdgpu: skip ucode bo reserve for RLC AUTOLOAD
>       drm/amdgpu: support rlc auotload type set
>       drm/amdgpu: Add lsdma v7_0 ip block support
>       drm/amdgpu/discovery: Add lsdma v7_0 ip block
>       drm/amdgpu: Add ih v7_0 ip block support
>       drm/amdgpu/discovery: Add ih v7_0 ip block
>       drm/amdgpu: Add hdp v7_0 ip block support
>       drm/amdgpu/discovery: Add hdp v7_0 ip block
>       drm/amdgpu: use spirom update wait_for helper for psp v14
>       drm/amdgpu: support psp ip block for psp v14
>       drm/amdgpu/psp: set autoload support by default
>       drm/amdgpu/psp: handle TMR type via flag
>       drm/amdgpu/psp: set boot_time_tmr flag
>       drm/amdgpu: add psp_timeout to limit PSP related operation
>       drm/amdgpu: support psp ip block discovery for psp v14
>       drm/amdgpu/discovery: add nbif v6_3_1 ip block
>
> Luca Weiss (4):
>       dt-bindings: display: panel: Add Himax HX83112A
>       drm/panel: Add driver for DJN HX83112A LCD panel
>       dt-bindings: display/msm: gpu: Allow multiple digits for patchid
>       drm/msm/adreno: Add A305B support
>
> Lucas De Marchi (21):
>       drm/xe: Fix warning on impossible condition
>       drm/xe: Disable 32bits build
>       drm/xe/xe2: Add workaround 16020183090
>       drm/xe/kunit: Drop xe_wa tests for pre-production DG2
>       drm/xe: Group normal kunit tests in a single module
>       drm/i915: Drop -Wstringop-overflow
>       drm/xe: Use _ULL for u64 division
>       drm/xe/mmio: Cast to u64 when printing
>       drm/xe/display: Avoid calling readq()
>       drm/xe: Fix cast on trace variable
>       drm/xe: Enable 32bits build
>       Merge drm/drm-next into drm-xe-next
>       drm/xe: Remove PVC from xe_wa kunit tests
>       drm/xe/xe2: Enable has_usm
>       drm/i915/xe2lpd: Move D2D enable/disable
>       drm/i915/xe2lpd: Move registers to PICA
>       drm/xe: Always allow to override firmware
>       drm/xe: Avoid cryptic message when there's no GuC definition
>       drm/xe: Enable 32bits build
>       Merge drm/drm-next into drm-xe-next
>       drm/xe: Use pointers in trace events
>
> Lucas Stach (6):
>       drm/rockchip: analogix_dp: get encoder port ID from DT
>       drm/etnaviv: disable MLCG and pulse eater on GPU reset
>       dt-bindings: display: imx: add binding for i.MX8MP HDMI PVI
>       drm/bridge: imx: add driver for HDMI TX Parallel Video Interface
>       dt-bindings: display: imx: add binding for i.MX8MP HDMI TX
>       drm/bridge: imx: add bridge wrapper driver for i.MX8MP DWC HDMI
>
> Lukas Bulwahn (1):
>       drm: Clean-up superfluously selecting VT_HW_CONSOLE_BINDING
>
> Ma Jun (12):
>       drm/amdgpu: Check extended configuration space register when
> system uses large bar
>       drm/amdgpu: Fix the null pointer when load rlc firmware
>       drm/amdgpu/pm: Fix the power source flag error
>       drm/amdgpu/pm: Add default case for smu IH process func
>       drm/amdgpu/pm: Use macro definitions in the smu IH process function
>       drm/amdgpu: Fix the warning info in mode1 reset
>       drm/amdgpu/pm: Use inline function for IP version check
>       drm/amdgpu: Drop redundant parameter in amdgpu_gfx_kiq_init_ring
>       drm/amdgpu: Fix the runtime resume failure issue
>       drm/amdgpu/pm: Fix the power1_min_cap value
>       drm/amdgpu/pm: Fix the error of pwm1_enable setting
>       drm/amdgpu: Use rpm_mode flag instead of checking it again for rpm
>
> Maarten Lankhorst (6):
>       drm/xe/snapshot: Remove drm_err on guc alloc failures
>       drm/xe: Clear all snapshot members after deleting coredump
>       drm/xe: Add uapi for dumpable bos
>       drm/xe: Annotate each dumpable vma as such
>       drm/xe: Add vm snapshot mutex for easily taking a vm snapshot
> during devcoredump
>       drm/xe: Implement VM snapshot support for BO's and userptr
>
> Maaz Mombasawala (2):
>       drm/vmwgfx: Make all surfaces shareable
>       drm/vmwgfx: Add SPDX header to vmwgfx_drm.h
>
> Mads Bligaard Nielsen (1):
>       drm/bridge: adv7511: fix crash on irq during probe
>
> Malkoot Khan (1):
>       accel/habanalabs: Remove unnecessary braces from if statement
>
> Manasi Navare (1):
>       drm/i915/dsc: Fix the macro that calculates DSCC_/DSCA_ PPS reg address
>
> Manuel Traut (1):
>       dt-bindings: display: panel: Add BOE TH101MB31IG002-28A panel
>
> Marek Vasut (3):
>       drm/bridge: tc358767: Limit the Pixel PLL input range
>       drm/mxsfb: Switch to drmm_mode_config_init
>       drm: lcdif: Switch to drmm_mode_config_init
>
> Marijn Suijten (2):
>       drm/msm/dsi: Replace dsi_get_bpp() with mipi_dsi header function
>       drm/msm/dpu: Only enable DSC_MODE_MULTIPLEX if dsc_merge is enabled
>
> Mario Limonciello (6):
>       Revert "drm/amd/pm: fix the high voltage and temperature issue"
>       drm/amd/display: Clear phantom stream count and plane count
>       drm/amd: Stop evicting resources on APUs in suspend
>       Revert "drm/amd: flush any delayed gfxoff on suspend entry"
>       drm/amd: Change `jpeg_v4_0_5_start_dpg_mode()` to void
>       drm/amd: Drop abm_level property
>
> Markus Elfring (2):
>       drm/sched: One function call less in drm_sched_init() after
> error detection
>       drm/sched: Return an error code only as a constant in drm_sched_init()
>
> Martin Blumenstingl (1):
>       drm/meson: improve encoder probe / initialization error handling
>
> Martin Krastev (2):
>       drm/vmwgfx: Refactor drm connector probing for display modes
>       drm/vmwgfx: Fix vmw_du_get_cursor_mob fencing of newly-created MOBs
>
> Martin Leung (1):
>       drm/amd/display: 3.2.267
>
> Martin Tsai (1):
>       drm/amd/display: should support dmub hw lock on Replay
>
> Matt Roper (7):
>       drm/xe/dg2: Drop pre-production workarounds
>       drm/xe/migrate: Cap PTEs written by MI_STORE_DATA_IMM to 510
>       drm/i915: Add additional ARL PCI IDs
>       drm/i915/xelpg: Extend some workarounds/tuning to gfx version 12.74
>       drm/xe: Stash GMD_ID value in xe_gt
>       drm/xe: Grab mem_access when disabling C6 on skip_guc_pc platforms
>       drm/xe: Convert job timeouts from assert to warning
>
> Matthew Auld (4):
>       drm/xe/exec: move fence reservation
>       drm/xe/exec: reserve fence slot for CPU bind
>       drm/xe/vm: don't ignore error when in_kthread
>       drm/xe/display: fix i915_gem_object_is_shmem() wrapper
>
> Matthew Brost (27):
>       drm/xe: Fix UBSAN splat in add_preempt_fences()
>       drm/xe: Fix exec IOCTL long running exec queue ring full condition
>       drm/xe/guc: Only take actions in CT irq handler if CTs are enabled
>       drm/xe: Add build on bug to assert page fault queue works
>       drm/xe: Invert page fault queue head / tail
>       drm/xe: Add build on bug to assert access counter queue works
>       drm/xe: Invert access counter queue head / tail
>       drm/xe/guc: Add more GuC CT states
>       drm/xe: Move TLB invalidation reset before HW reset
>       drm/xe/guc: Flush G2H handler when turning off CTs
>       drm/xe: Only allow 1 ufence per exec / bind IOCTL
>       drm/xe: Make all GuC ABI shift values unsigned
>       drm/xe: Use LRC prefix rather than CTX prefix in lrc desc defines
>       drm/xe: Fix loop in vm_bind_ioctl_ops_unwind
>       drm/xe: Drop rebind argument from xe_pt_prepare_bind
>       drm/xe: Take a reference in xe_exec_queue_last_fence_get()
>       drm/xe: Pick correct userptr VMA to repin on REMAP op failure
>       drm/xe: Map both mem.kernel_bb_pool and usm.bb_pool
>       drm/sched: Add Matthew Brost to maintainers
>       drm/xe: Assume large page size if VMA not yet bound
>       drm/xe: Remove TEST_VM_ASYNC_OPS_ERROR
>       drm/xe: Remove exec queue bind.fence_*
>       drm/xe: Fix xe_vma_set_pte_size
>       drm/xe: Add XE_VMA_PTE_64K VMA flag
>       drm/xe: Return 2MB page size for compact 64k PTEs
>       drm/xe: Add debug prints for skipping rebinds
>       drm/xe: Fix ref counting leak on page fault
>
> Maxime Ripard (31):
>       drm/atomic: Move the drm_atomic_state field doc inline
>       drm/atomic: Remove inexistent reference
>       drm/atomic: Rework the object doc a bit
>       drm/atomic: Make the drm_atomic_state documentation less ambiguous
>       drm/todo: Add entry to rename drm_atomic_state
>       drm/rockchip: inno_hdmi: Remove useless mode_fixup
>       drm/rockchip: inno_hdmi: Remove useless copy of drm_display_mode
>       drm/rockchip: inno_hdmi: Switch encoder hooks to atomic
>       drm/rockchip: inno_hdmi: Get rid of mode_set
>       drm/rockchip: inno_hdmi: no need to store vic
>       drm/rockchip: inno_hdmi: Remove unneeded has audio flag
>       drm/rockchip: inno_hdmi: Remove useless input format
>       drm/rockchip: inno_hdmi: Remove tmds rate from structure
>       drm/rockchip: inno_hdmi: Drop HDMI Vendor Infoframe support
>       drm/rockchip: inno_hdmi: Move infoframe disable to separate function
>       drm/rockchip: inno_hdmi: Switch to infoframe type
>       drm/rockchip: inno_hdmi: Remove unused drm device pointer
>       Merge drm/drm-next into drm-misc-next
>       drm/i915/tv: Fix TV mode
>       drm/sun4i: hdmi: Convert encoder to atomic
>       drm/sun4i: hdmi: Move mode_set into enable
>       drm/sun4i: hdmi: Switch to container_of_const
>       drm/sun4i: hdmi: Consolidate atomic_check and mode_valid
>       drm/edid/firmware: Remove built-in EDIDs
>       MAINTAINERS: Update drm.git URL
>       drm/tests: helpers: Include missing drm_drv header
>       drm/tests: helpers: Add atomic helpers
>       drm/tests: Add helper to create mock plane
>       drm/tests: Add helper to create mock crtc
>       drm/tests: connector: Add tests for drmm_connector_init
>       drm/sun4i: hdmi: Add missing drm_atomic header
>
> Maíra Canal (3):
>       drm/vc4: don't check if plane->state->fb == state->fb
>       drm/v3d: Show the memory-management stats on debugfs
>       drm/v3d: Enable V3D to use different PAGE_SIZE
>
> Melissa Wen (10):
>       drm/amd/display: decouple color state from hw state log
>       drm/amd/display: read gamut remap matrix in fixed-point 31.32 format
>       drm/amd/display: fill up DCN3 DPP color state
>       drm/amd/display: add get_gamut_remap helper for MPC3
>       drm/amd/display: create DCN3-specific log for MPC state
>       drm/amd/display: hook up DCN30 color blocks data to DTN log
>       drm/amd/display: add DPP and MPC color caps to DTN log
>       drm/amd/display: hook up DCN20 color blocks data to DTN log
>       drm/amd/display: fix null-pointer dereference on edid reading
>       drm/amd/display: check dc_link before dereferencing
>
> Michael Strauss (3):
>       drm/amd/display: Remove Legacy FIXED_VS Transparent LT Sequence
>       drm/amd/display: Don't perform rate toggle on DP2-capable
> FIXED_VS retimers
>       drm/amd/display: Update FIXED_VS Retimer HWSS Test Pattern Sequences
>
> Michal Wajdeczko (49):
>       drm/xe: Add command MI_LOAD_REGISTER_MEM
>       drm/xe: Define registers used by memory based irq processing
>       drm/xe: Update LRC context layout definitions
>       drm/xe: Update definition of GT_INTR_DW
>       drm/xe: Define IRQ offsets used by HW engines
>       drm/xe: Add XE_BO_NEEDS_UC flag to force UC mode instead WB
>       drm/xe/vf: Introduce Memory Based Interrupts Handler
>       drm/xe/vf: Update LRC with memory based interrupts data
>       drm/xe/vf: Setup memory based interrupts in GuC
>       drm/xe/vf: Add VF specific interrupt handler
>       drm/xe: Add GT oriented drm_printers
>       drm/xe: Report TLB timeout using GT oriented functions
>       drm/xe: Introduce GuC Doorbells Manager
>       drm/xe/kunit: Set SR-IOV mode of the fake device
>       drm/xe/kunit: Define helper functions to allocate fake xe device
>       drm/xe/kunit: Restore test->priv when done with fake xe device
>       drm/xe/kunit: Use xe kunit helper in RTP test
>       drm/xe/kunit: Use xe kunit helper in WA test
>       drm/xe/kunit: Enable CONFIG_LOCKDEP in tests
>       drm/xe/kunit: Add GuC Doorbells Manager tests
>       drm/xe: Allocate dedicated workqueue for SR-IOV workers
>       drm/xe: Define Virtual Function Identifier
>       drm/xe: Introduce GT-oriented SR-IOV logging macros
>       drm/xe/guc: Add helpers for HXG messages
>       drm/xe/guc: Update few GuC CTB ABI definitions
>       drm/xe/guc: Add Relay Communication ABI definitions
>       drm/xe/guc: Introduce Relay Communication for SR-IOV
>       drm/xe/kunit: Allow to replace xe_guc_ct_send_recv() with stub
>       drm/xe/kunit: Add GuC Relay kunit tests
>       drm/xe/guc: Start handling GuC Relay event messages
>       drm/xe: Fix compilation without CONFIG_KUNIT
>       drm/xe: Split GuC communication initialization
>       drm/xe/guc: Treat non-response message after BUSY as unexpected
>       drm/xe/guc: Return CTB response length
>       drm/xe/guc: Use HXG definitions on HXG messages
>       drm/xe: Allow to exclude part of GGTT from allocations
>       drm/xe: Fix potential deadlock in __fini_dbm
>       drm/xe: Use kstrdup while creating snapshot
>       drm/xe: Mark internal gmdid mappings as const
>       drm/xe/guc: Return CTB HXG response DATA0 if no buffer provided
>       drm/xe/guc: Add kernel-doc for xe_guc_ct_send_recv()
>       drm/xe/vf: Assume fixed GSM size if VF
>       drm/xe/vf: Don't try to capture engine data unavailable to VF
>       drm/xe/vf: Don't program MOCS if VF
>       drm/xe/vf: Don't initialize stolen memory manager if VF
>       drm/xe/vf: Don't check if LMEM is initialized if VF
>       drm/xe/vf: Don't enable hwmon if VF
>       drm/xe/vf: Don't program PAT if VF
>       drm/xe/vf: Don't support MCR registers if VF
>
> Michał Winiarski (10):
>       drm/managed: Add drmm_release_action
>       drm/tests: managed: Rename the suite name to match other DRM tests
>       drm/tests: managed: Add comments about test intent
>       drm/tests: managed: Extract device initialization into test init
>       drm/tests: managed: Add a simple test for drmm_managed_release
>       drm/tests: mm: Convert to drm_dbg_printer
>       drm/xe/guc: Allocate GuC data structures in system memory for initial load
>       drm/xe/huc: Realloc HuC FW in vram for post-hwconfig
>       drm/xe/guc: Move GuC power control init to "post-hwconfig"
>       drm/xe: Initialize GuC earlier during probe
>
> Mika Kahola (5):
>       drm/i915/display: Fix C20 pll selection for state verification
>       drm/i915/display: Store hw clock for C20
>       drm/i915/display: Cleanup mplla/mpllb selection
>       drm/i915/display: Skip C10 state verification in case of fastset
>       drm/i915/display: Use helper to select C20 MPLLA/B
>
> Mika Kuoppala (1):
>       drm/xe: Remove obsolete async_ops from struct xe_vm
>
> Moti Haimovski (1):
>       drm/xe/vm: bugfix in xe_vm_create_ioctl
>
> Mounika Adhuri (1):
>       drm/amd/display: clkmgr unittest with removal of warn & rename
> DCN35 ips handshake for idle
>
> Muhammad Ahmed (1):
>       drm/amd/display: add power_state and pme_pending flag
>
> Mukul Joshi (2):
>       drm/amdgpu: Fix module unload hang with RAS enabled
>       drm/amdkfd: Use correct drm device for cgroup permission check
>
> Nathan Chancellor (1):
>       drm/amd/display: Increase frame-larger-than for all display_mode_vba files
>
> Neil Armstrong (4):
>       dt-bindings: display/msm/gmu: Document Adreno 750 GMU
>       dt-bindings: arm-smmu: fix SM8[45]50 GPU SMMU if condition
>       dt-bindings: arm-smmu: Document SM8650 GPU SMMU
>       drm/msm: add support for A750 GPU
>
> Nicholas Kazlauskas (14):
>       drm/amd/display: Allow IPS2 during Replay
>       drm/amd/display: Port DENTIST hang and TDR fixes to OTG disable W/A
>       drm/amd/display: Rework DC Z10 restore
>       drm/amd/display: Set default Z8 minimum residency for DCN35
>       drm/amd/display: Allow Z8 for multiplane configurations on DCN35
>       drm/amd/display: Wait before sending idle allow and after idle disallow
>       drm/amd/display: Wait for mailbox ready when powering up DMCUB
>       drm/amd/display: Add more checks for exiting idle in DC
>       drm/amd/display: Disable timeout in more places for dc_dmub_srv
>       drm/amd/display: Increase eval/entry delay for DCN35
>       drm/amd/display: Disable idle reallow as part of command/gpint execution
>       drm/amd/display: Add shared firmware state for DMUB IPS handshake
>       drm/amd/display: Increase ips2_eval delay for DCN35
>       drm/amd/display: Fix S4 hang polling on HW power up done for VBIOS DMCUB
>
> Nicholas Susanto (1):
>       drm/amd/display: Underflow workaround by increasing SR exit latency
>
> Nikita Zhandarovich (4):
>       drm/radeon: remove dead code in ni_mc_load_microcode()
>       drm/radeon/ni_dpm: remove redundant NULL check
>       drm/radeon/ni: Fix wrong firmware size logging in ni_init_microcode()
>       drm/amd/display: fix NULL checks for adev->dm.dc in amdgpu_dm_fini()
>
> Nirmoy Das (5):
>       drm/print: Add drm_dbg_ratelimited
>       drm/i915: Ratelimit debug log in vm_fault_ttm
>       drm/xe/xe2: synchronise CS_CHICKEN1 with WMTP support
>       drm/xe/query: Use kzalloc for drm_xe_query_engines
>       drm/i915: Check before removing mm notifier
>
> Ofir Bitton (3):
>       accel/habanalabs/gaudi2: drain event lacks rd/wr indication
>       accel/habanalabs/hwmon: rate limit errors user can generate
>       accel/habanalabs: modify pci health check
>
> Ori Messinger (1):
>       drm/amdgpu: Enable GFXOFF for Compute on GFX11
>
> Ovidiu Bunea (1):
>       drm/amd/display: Fix DML2 watermark calculation
>
> Paloma Arellano (19):
>       drm/dp: add an API to indicate if sink supports VSC SDP
>       drm/msm/dpu: allow certain formats for CDM for DP
>       drm/msm/dpu: add division of drm_display_mode's hskew parameter
>       drm/msm/dpu: pass mode dimensions instead of fb size in CDM setup
>       drm/msm/dpu: allow dpu_encoder_helper_phys_setup_cdm to work for DP
>       drm/msm/dpu: move dpu_encoder_helper_phys_setup_cdm to dpu_encoder
>       drm/msm/dp: rename wide_bus_en to wide_bus_supported
>       drm/msm/dp: store mode YUV420 information to be used by rest of DP
>       drm/msm/dp: check if VSC SDP is supported in DP programming
>       drm/msm/dpu: move widebus logic to its own API
>       drm/msm/dp: program config ctrl for YUV420 over DP
>       drm/msm/dp: change clock related programming for YUV420 over DP
>       drm/msm/dp: move parity calculation to dp_utils
>       drm/msm/dp: add VSC SDP support for YUV420 over DP
>       drm/msm/dp: enable SDP and SDE periph flush update
>       drm/msm/dpu: modify encoder programming for CDM over DP
>       drm/msm/dpu: modify timing engine programming for YUV420 over DP
>       drm/msm/dpu: reserve CDM blocks for DP if mode is YUV420
>       drm/msm/dp: allow YUV420 mode for DP connector when CDM available
>
> Paul E. McKenney (1):
>       drm/xe: Fix build bug for GCC 11
>
> Paz Zcharya (1):
>       drm/i915/display: Include debugfs.h in intel_display_debugfs_params.c
>
> Peichen Huang (1):
>       drm/amd/display: Add usb4_bw_alloc_support flag
>
> Philip Yang (1):
>       drm/amdkfd: Correct partial migration virtual addr
>
> Philipp Stanner (3):
>       drm/tilcdc: request and mapp iomem with devres
>       drm/imx/dcss: request memory region
>       drm/imx/dcss: have all init functions use devres
>
> Pierre-Eric Pelloux-Prayer (1):
>       drm/amdgpu: disable ring_muxer if mcbp is off
>
> Pin-yen Lin (3):
>       drm/panel-edp: Add powered_on_to_enable delay
>       drm/edp-panel: Add panels delay entries
>       drm/panel-edp: Add some panels with conservative timings
>
> Pranjal Ramajor Asha Kanojiya (5):
>       accel/qaic: Deprecate ->size field from attach slice IOCTL structure
>       accel/qaic: Remove bo->queued field
>       accel/qaic: Drop the reference to BO in error path of create BO IOCTL
>       accel/qaic: Call drm_gem_create_mmap_offset() once for each BO
>       accel/qaic: Leverage DRM managed APIs to release resources
>
> Prike Liang (3):
>       drm/amdgpu: skip to program GFXDEC registers for suspend abort
>       drm/amdgpu: reset gpu for s3 suspend abort case
>       drm/amdgpu: Enable gpu reset for S3 abort cases on Raven series
>
> Primoz Fiser (1):
>       drm/panel: simple: Add EDT ETML1010G3DRA panel
>
> Priyanka Dandamudi (1):
>       drm/xe/xe_bo_move: Enhance xe_bo_move trace
>
> Qiang Ma (1):
>       drm/amdgpu: Clear the hotplug interrupt ack bit before hpd initialization
>
> Quentin Schulz (4):
>       drm/rockchip: lvds: do not overwrite error code
>       drm/rockchip: lvds: do not print scary message when probing defer
>       drm/panel: ltk050h3146w: only print message when GPIO getting is
> not EPROBE_DEFER
>       drm/panel: ltk050h3146w: use dev_err_probe wherever possible
>
> R SUNDAR (1):
>       drm/amd/display: Removed redundant @ symbol to fix kernel-doc
> warnings in -next repo
>
> Rajneesh Bhardwaj (2):
>       drm/amdkfd: update SIMD distribution algo for GFXIP 9.4.2 onwards
>       drm/amdgpu: Fix implicit assumtion in gfx11 debug flags
>
> Randy Dunlap (19):
>       drm/i915/gem: reconcile Excess struct member kernel-doc warnings
>       drm/i915/gt: reconcile Excess struct member kernel-doc warnings
>       drm/i915/guc: reconcile Excess struct member kernel-doc warnings
>       drm/i915/perf: reconcile Excess struct member kernel-doc warnings
>       drm/vmwgfx: fix all kernel-doc warnings in stdu
>       drm/vmwgfx: fix kernel-doc Excess struct member 'base'
>       drm/nouveau/bios/init: drop kernel-doc notation
>       drm/nouveau/disp: don't misuse kernel-doc comments
>       drm/nouveau: don't misuse kernel-doc comments
>       drm/nouveau/gr/gf100: don't misuse kernel-doc comments
>       drm/nouveau/volt/gk20a: don't misuse kernel-doc comments
>       drm/doc: internals: remove section on PCI legacy support
>       dma-buf/dma-resv: fix spelling
>       dma-buf/dma-fence: fix spelling
>       drm/rect: fix kernel-doc typos
>       drm/panel: re-alphabetize the menu list
>       drivers/ps3: select VIDEO to provide cmdline functions
>       drm: drm_crtc: correct some comments
>       iosys-map: fix typo
>
> Raphael Gallais-Pou (3):
>       dt-bindings: panel: lvds: Append edt,etml0700z9ndha in panel-lvds
>       drm/panel: simple: fix flags on RK043FN48H
>       drm/panel: simple: push blanking limit on RK32FN48H
>
> Ravi Kumar Vodapalli (1):
>       drm/i915/display: update pll values in sync with Bspec for MTL
>
> Riana Tauro (1):
>       drm/xe/pm: add debug logs for D3cold
>
> Ricardo B. Marliere (5):
>       drm: display: make dp_aux_bus_type const
>       drm: mipi-dsi: make mipi_dsi_bus_type const
>       gpu: host1x: bus: make host1x_bus_type const
>       accel: constify the struct device_type usage
>       drm/amdkfd: make kfd_class constant
>
> Ritesh Kumar (3):
>       dt-bindings: display: panel: Add Novatek NT36672E LCD DSI
>       drm/panel: Add support for Novatek NT36672E panel driver
>       drm/panel: novatek-nt36672e: Include <linux/of.h>
>
> Rob Clark (5):
>       drm/ci: Add msm tests
>       Merge tag 'drm-misc-next-2024-02-08' into msm-next
>       drm/msm/adreno: Update generated headers
>       drm/msm/a7xx: Fix LLC typo
>       Merge tag 'drm-misc-next-2024-02-29' into msm-next
>
> Rob Herring (1):
>       dt-bindings: display: msm: sm8650-mdss: Add missing explicit
> "additionalProperties"
>
> Rodrigo Siqueira (19):
>       Documentation/gpu: Add basic page for HUBP
>       Documentation/gpu: Add simple doc page for DCHUBBUB
>       drm/amd/include: Add missing registers/mask for DCN316 and 350
>       Documentation/gpu: Add kernel doc entry for DPP
>       Documentation/gpu: Add kernel doc entry for MPC
>       Documentation/gpu: Add entry for OPP in the kernel doc
>       Documentation/gpu: Add entry for the DIO component
>       Documentation/gpu: Add an explanation about the DC weekly patches
>       Documentation/gpu: Introduce a simple contribution list for display code
>       drm/amd/display: Drop legacy code
>       drm/amd/display: Disable ODM by default for DCN35
>       drm/amd/display: Trivial code style adjustment
>       drm/amd/display: Drop some unnecessary guards
>       drm/amd/display: Remove break after return
>       drm/amd/display: Initialize variable with default value
>       drm/amd/display: Remove unused file
>       drm/amd/display: Add SMU timeout check and retry
>       drm/amd/display: Remove redundant FPU guard
>       drm/amd/display: Drop unnecessary header
>
> Rodrigo Vivi (5):
>       drm/doc/rfc: Remove Xe's pre-merge plan
>       drm/xe: Do not flood dmesg with guc log
>       drm/doc/rfc: Removing missing reference to xe.rst
>       drm/i915: Fix doc build issue on intel_cdclk.c
>       drm/i915: convert remaining intel_dp_vsc_sdp_pack
>
> Roman Li (5):
>       drm/amd/display: Add IPS checks before dcn register access
>       drm/amd/display: Disable ips before dc interrupt setting
>       drm/amd: Add a DC debug mask for IPS
>       drm/amd/display: "Enable IPS by default"
>       drm/amd/display: Fix array-index-out-of-bounds in dcn35_clkmgr
>
> Ruthuvikas Ravikumar (1):
>       drm/xe: Add mocs reset kunit
>
> Saleemkhan Jamadar (3):
>       drm/amdgpu: add ucode id for jpeg DPG support
>       drm/amdgpu/jpeg: add support for jpeg DPG mode
>       drm/amdgpu/jpeg: add support for jpeg multi instance
>
> Samasth Norway Ananda (1):
>       drm/amdgpu: fix wrong sizeof argument
>
> Samuel Dionne-Riel (1):
>       drm: panel-orientation-quirks: Add quirk for GPD Win Mini
>
> Shashank Sharma (1):
>       drm/amdgpu: change vm->task_info handling
>
> Shekhar Chauhan (2):
>       drm/xe/xe2_lpg: Add Wa_16018610683
>       drm/xe/xe2_lpg: Introduce performance guide changes
>
> Shradha Gupta (2):
>       drm: Check output polling initialized before disabling
>       drm: Check polling initialized before enabling in
> drm_helper_probe_single_connector_modes
>
> Shuicheng Lin (1):
>       drm/i915/guc: Change wa and EU_PERF_CNTL registers to MCR type
>
> Simon Ser (1):
>       drm/vc4: plane: check drm_gem_plane_helper_prepare_fb() return value
>
> Sohaib Nadeem (3):
>       drm/amd/display: increased min_dcfclk_mhz and min_fclk_mhz
>       Revert "drm/amd/display: increased min_dcfclk_mhz and min_fclk_mhz"
>       drm/amd/display: fixed integer types and null check locations
>
> Somalapuram Amaranath (1):
>       drm/ttm: replace busy placement with flags v6
>
> Sonny Jiang (7):
>       drm/amdgpu: add VCN_5_0_0 firmware support
>       drm/amdgpu: add VCN_5_0_0 IP block support
>       amdgpu/drm: Add vcn_v5_0_0_ip_block support
>       drm/amdgpu: Add JPEG5 support
>       drm/amdgpu/jpeg5: add power gating support
>       drm/amdgpu/jpeg5: Enable doorbell
>       drm/amdgpu: Add jpeg_v5_0_0 ip block support
>
> Srinivasan Shanmugam (29):
>       drm/amdkfd: Fix variable dereferenced before NULL check in
> 'kfd_dbg_trap_device_snapshot()'
>       drm/amd/display: Fix late derefrence 'dsc' check in
> 'link_set_dsc_pps_packet()'
>       drm/amd/display: Drop 'acrtc' and add 'new_crtc_state' NULL
> check for writeback requests.
>       drm/amdgpu: Cleanup inconsistent indenting in 'amdgpu_gfx_enable_kcq()'
>       drm/amd/display: Drop kdoc markers for some Panel Replay functions
>       drm/amd/display: Fix uninitialized variable usage in core_link_
> 'read_dpcd() & write_dpcd()' functions
>       drm/amd/display: Address kdoc for eDP Panel Replay feature in
> 'amdgpu_dm_crtc_set_panel_sr_feature()'
>       drm/amdgpu: Fix return type in 'aca_bank_hwip_is_matched()'
>       drm/amd/display: Fix a potential buffer overflow in
> 'dp_dsc_clock_en_read()'
>       drm/amd/display: Fix potential NULL pointer dereferences in
> 'dcn10_set_output_transfer_func()'
>       drm/amdgpu: Fix missing error code in 'gmc_v6/7/8/9_0_hw_init()'
>       drm/amd/display: Add NULL check for kzalloc in
> 'amdgpu_dm_atomic_commit_tail()'
>       drm/amd/display: Fix buffer overflow in
> 'get_host_router_total_dp_tunnel_bw()'
>       drm/amd/display: Fix 'panel_cntl' could be null in
> 'dcn21_set_backlight_level()'
>       drm/amd/display: Add NULL test for 'timing generator' in
> 'dcn21_set_pipe()'
>       drm/amdgpu: Fix potential out-of-bounds access in
> 'amdgpu_discovery_reg_base_init()'
>       drm/amd/display: Implement bounds check for stream encoder
> creation in DCN301
>       drm/amd/display: Initialize 'wait_time_microsec' variable in
> link_dp_training_dpia.c
>       drm/amd/display: Fix possible use of uninitialized
> 'max_chunks_fbc_mode' in 'calculate_bandwidth()'
>       drm/amd/display: Fix possible buffer overflow in
> 'find_dcfclk_for_voltage()'
>       drm/amd/display: Fix possible NULL dereference on device
> remove/driver unload
>       drm/amdgpu/display: Initialize gamma correction mode variable in
> dcn30_get_gamcor_current()
>       drm/amdgpu: Fix missing parameter descriptions in ih_v7_0.c
>       drm/amd/display: Add 'replay' NULL check in
> 'edp_set_replay_allow_active()'
>       drm/amd/display: Fix potential null pointer dereference in dc_dmub_srv
>       drm/amdgpu/display: Address kdoc for 'is_psr_su' in 'fill_dc_dirty_rects'
>       drm/amd/display: Prevent potential buffer overflow in map_hw_resources
>       drm/amdgpu: Fix missing break in ATOM_ARG_IMM Case of atom_get_src_int()
>       drm/amd/amdgpu: Fix potential ioremap() memory leaks in
> amdgpu_device_init()
>
> Stanislav Lisovskiy (1):
>       drm/i915: Add bigjoiner force enable option to debugfs
>
> Stanley.Yang (5):
>       drm/amdgpu: Show deferred error count for UMC
>       drm/amdgpu: Skip do PCI error slot reset during RAS recovery
>       drm/amdgpu: Fix ras features value calltrace
>       drm/amdgpu: Fix shared buff copy to user
>       drm/amdgpu: Fix ineffective ras_mask settings
>
> Sui Jingfeng (6):
>       drm/etnaviv: Drop the second argument of the etnaviv_gem_new_impl()
>       drm/etnaviv: Fix coding style
>       drm/etnaviv: Add helper functions to create and destroy platform device
>       drm/etnaviv: Add a helper to get the first available GPU device node
>       drm/etnaviv: Clean up etnaviv_gem_get_pages
>       drm/etnaviv: Drop the 'len' parameter of etnaviv_iommu_map() function
>
> Sujaritha Sundaresan (2):
>       drm/xe: Add vram frequency sysfs attributes
>       drm/xe: Fix typo in vram frequency sysfs documentation
>
> Sunil Khatri (1):
>       drm/amdgpu: add ring timeout information in devcoredump
>
> Suraj Kandpal (17):
>       drm/i915/hdcp: Fail Repeater authentication if Type1 device not present
>       drm/xe/gsc: Add status check during gsc header readout
>       drm/i915/lnl: Add pkgc related register
>       drm/i915/lnl: Program PKGC_LATENCY register
>       drm/i915/hdcp: Move to direct reads for HDCP
>       drm/i915/hdcp: Move source hdcp2 checks into its own function
>       drm/i915/hdcp: Refactor intel_dp_hdcp2_capable
>       drm/i915/hdcp: Pass drm_dp_aux to read_bcaps function
>       drm/i915/hdcp: Rename hdcp capable functions
>       drm/i915/hdcp: Add new remote capability check shim function
>       drm/i915/hdcp: HDCP Capability for the downstream device
>       drm/i915/hdcp: Remove additional timing for reading mst hdcp message
>       drm/i915/hdcp: Extract hdcp structure from correct connector
>       drm/i915/hdcp: Don't enable HDCP2.2 directly from check_link
>       drm/i915/hdcp: Don't enable HDCP1.4 directly from check_link
>       drm/i915/hdcp: Allocate stream id after HDCP AKE stage
>       drm/i915/hdcp: Read Rxcaps for robustibility
>
> Swapnil Patel (1):
>       drm/amd/display: fix input states translation error for dcn35 & dcn351
>
> Taimur Hassan (1):
>       drm/amd/display: Send DTBCLK disable message on first commit
>
> Tal Risin (1):
>       accel/habanalabs: initialize maybe-uninitialized variables
>
> Tao Zhou (7):
>       drm/amdgpu: update error condition check for umc_v12_0_query_error_address
>       Revert "drm/amd/pm: smu v13_0_6 supports ecc info by default"
>       drm/amdgpu: update check condition of query for ras page retire
>       drm/amdgpu: disable RAS feature when fini
>       drm/amdgpu: add PSP RAS address query command
>       drm/amdgpu: use PSP address query command
>       drm/amdgpu: add deferred error check for UMC v12 address query
>
> Tejas Upadhyay (2):
>       drm/xe/xelpg: Extend Wa_14019877138 for Graphics 12.70/71
>       drm/i915/xelpg: Add workaround 14019877138
>
> Thierry Reding (1):
>       drm: Remove drm_num_crtcs() helper
>
> Thomas Hellström (17):
>       drm/xe/vm: Fix an error path
>       drm/xe: Use __iomem for the regs pointer
>       drm/xe: Annotate xe_mem_region::mapping with __iomem
>       drm/xe: Annotate multiple mmio pointers with __iomem
>       drm/xe: Annotate xe_ttm_stolen_mgr::mapping with __iomem
>       drm/xe/migrate: Fix CCS copy for small VRAM copy chunks
>       drm/xe/dmabuf: Make xe_dmabuf_ops static
>       drm/xe: Use a NULL pointer instead of 0.
>       drm/exec, drm/gpuvm: Prefer u32 over uint32_t
>       drm/xe: Document nested struct members according to guidelines
>       drm/xe: Annotate mcr_[un]lock()
>       drm/xe: Don't use __user error pointers
>       drm/xe/vm: Subclass userptr vmas
>       drm/xe/vm: Avoid reserving zero fences
>       drm/xe: Fix a missing argument to drm_err_printer
>       drm/xe/pt: Allow for stricter type- and range checking
>       drm/xe/uapi: Remove support for persistent exec_queues
>
> Thomas Zimmermann (33):
>       fbdev/efifb: Replace references to global screen_info by local pointer
>       fbdev/efifb: Use screen_info pointer from device
>       fbdev/vesafb: Replace references to global screen_info by local pointer
>       fbdev/vesafb: Use screen_info pointer from device
>       drm/mgag200: Fix caching setup for remapped video memory
>       Documentation/gpu: Reference articles on Linux graphics stack
>       video/cmdline: Introduce CONFIG_VIDEO for video= parameter
>       video/cmdline: Hide __video_get_options() behind CONFIG_FB_CORE
>       video/nomodeset: Select nomodeset= parameter with CONFIG_VIDEO
>       Merge drm/drm-next into drm-misc-next
>       video: Add helpers for decoding screen_info
>       video: Provide screen_info_get_pci_dev() to find screen_info's PCI device
>       firmware/sysfb: Set firmware-framebuffer parent device
>       fbdev/efifb: Remove PM for parent device
>       firmware/sysfb: Create firmware device only for enabled PCI devices
>       fbdev/efifb: Do not track parent device status
>       firmware/sysfb: Update screen_info for relocated EFI framebuffers
>       fbdev/efifb: Remove framebuffer relocation tracking
>       Merge drm/drm-next into drm-misc-next
>       Merge drm/drm-next into drm-misc-next-fixes
>       backlight/corgi-lcd: Include <linux/backlight.h>
>       drm/nouveau: Include <linux/backlight.h>
>       staging/fbtft: Include <linux/backlight.h>
>       fbdev: Do not include <linux/backlight.h> in header
>       fbdev: Do not include <linux/fs.h> in header
>       fbdev: Do not include <linux/notifier.h> in header
>       fbdev: Do not include <linux/slab.h> in header
>       fbdev: Clean up forward declarations in header file
>       fbdev: Clean up include statements in header file
>       Merge drm/drm-next into drm-misc-next-fixes
>       fbdev/chipsfb: Include <linux/backlight.h>
>       macintosh/via-pmu-backlight: Include <linux/backlight.h>
>       arch/powerpc: Remove <linux/fb.h> from backlight code
>
> Thong (1):
>       drm/amdgpu/soc21: update VCN 4 max HEVC encoding resolution
>
> Tim Huang (3):
>       drm/amdgpu: enable CGPG for GFX ip v11.5.1
>       drm/amdgpu: reserve more memory for MES runtime DRAM
>       drm/amd/pm: wait for completion of the EnableGfxImu message
>
> Tom Chung (2):
>       drm/amd/display: Enable Panel Replay for static screen use case
>       drm/amd/display: Preserve original aspect ratio in create stream
>
> Tom St Denis (1):
>       drm/amd/amdgpu: Assign GART pages to AMD device mapping
>
> Tomer Tayar (8):
>       accel/habanalabs: fix DRAM BAR base address calculation
>       accel/habanalabs: abort device reset for consecutive heartbeat failures
>       accel/habanalabs/gaudi2: fail memory memset when failing to copy
> QM packet to device
>       accel/habanalabs: modify print for skip loading linux FW to debug log
>       accel/habanalabs/gaudi2: check extended errors according to PCIe
> addr_dec interrupt info
>       accel/habanalabs: fix glbl error cause handling
>       accel/habanalabs: handle reserved memory request when working with full FW
>       accel/habanalabs: keep explicit size of reserved memory for FW
>
> Tomeu Vizoso (1):
>       drm/etnaviv: Expose a few more chipspecs to userspace
>
> Tomi Valkeinen (4):
>       drm/bridge: sii902x: Fix probing race issue
>       drm/bridge: sii902x: Fix audio codec unregistration
>       drm/tidss: Fix initial plane zpos values
>       drm/tidss: Fix sync-lost issue with two displays
>
> Tony Lindgren (2):
>       dt-bindings: display: simple: Add boe,bp082wx1-100 8.2" panel
>       drm/panel: simple: Add BOE BP082WX1-100 8.2" panel
>
> Tvrtko Ursulin (3):
>       drm/i915: Add GuC submission interface version query
>       drm/i915: Add some boring kerneldoc
>       drm/i915: Fix possible null pointer dereference after
> drm_dbg_printer conversion
>
> Umesh Nerlige Ramappa (1):
>       drm/i915/perf: Update handling of MMIO triggered reports
>
> Veerabadhran Gopalakrishnan (3):
>       drm/amdgpu/vcn: Enable VCN 4.0.6 Support
>       drm/amdgpu/soc21: Added Video Capabilities for VCN 406
>       drm/amdgpu/soc21: Enabling PG and CG flags for VCN 4.0.6
>
> Vegard Nossum (1):
>       drm/nouveau: uapi: fix kerneldoc warnings
>
> Victor Lu (4):
>       drm/amdgpu: Improve error checking in amdgpu_virt_rlcg_reg_rw (v2)
>       drm/amdgpu: Do not program IH_CHICKEN in vega20_ih.c under SRIOV
>       drm/amdgpu: Use correct SRIOV macro for gmc_v9_0_vm_fault_interrupt_state
>       drm/amdgpu: Do not program SQ_TIMEOUT_CONFIG in SRIOV
>
> Victor Skvortsov (2):
>       drm/amdgpu: Add RAS_POISON_READY host response message
>       amdgpu/drm: Use vram manager for virtualization page retirement
>
> Vignesh Raman (3):
>       drm/ci: Update xfails for newly added msm tests
>       drm/ci: uprev mesa version: fix kdl commit fetch
>       drm/ci: add sc7180-trogdor-kingoftown
>
> Ville Syrjälä (62):
>       drm/mm: Allow CONFIG_DRM_MM_DEBUG with DRM=m
>       Revert "drm/i915/dsi: Do display on sequence later on icl+"
>       drm/i915/psr: Only allow PSR in LPSP mode on HSW non-ULT
>       drm/i915: Replace a memset() with zero initialization
>       drm/i915: Decouple intel_crtc_vblank_evade_scanlines() from atomic commits
>       drm/i915: Reorder drm_vblank_put() vs. need_vlv_dsi_wa
>       drm/i915: Introduce struct intel_vblank_evade_ctx
>       drm/i915: Include need_vlv_dsi_wa in intel_vblank_evade_ctx
>       drm/i915: Extract intel_vblank_evade()
>       drm/i915: Move the min/max scanline sanity check into intel_vblank_evade()
>       drm/i915: Move intel_vblank_evade() & co. into intel_vblank.c
>       drm/i915: Perform vblank evasion around legacy cursor updates
>       Revert "drm/i915/xe2lpd: Treat cursor plane as regular plane for
> DDB allocation"
>       drm/i915: Try to preserve the current shared_dpll for fastset on
> type-c ports
>       drm/i915: Include the PLL name in the debug messages
>       drm/i915: Suppress old PLL pipe_mask checks for MG/TC/TBT PLLs
>       drm/i915: Convert PLL flags to booleans
>       drm/i915: Compute use_sagv_wm differently
>       drm/i915: Rework global state serializaiton
>       drm/i915: Extract intel_atomic_swap_state()
>       drm/i915/fbc: Allow FBC with CCS modifiers on SKL+
>       drm/i915/hdcp: Do intel_hdcp_component_init() much later during init
>       drm/i915/hdcp: Pin the hdcp gsc message high in ggtt
>       drm/i915: Use struct resource for memory region IO as well
>       drm/i915: Print memory region info during probe
>       drm/i915: Remove ad-hoc lmem/stolen debugs
>       drm/i915: Bypass LMEMBAR/GTTMMADR for MTL stolen memory access
>       drm/i915: Disable the "binder"
>       drm/i915: Rename the DSM/GSM registers
>       drm/i915: Fix PTE decode during initial plane readout
>       drm/i915: Fix region start during initial plane readout
>       drm/i915: Fix MTL initial plane readout
>       drm/i915: s/phys_base/dma_addr/
>       drm/i915: Split the smem and lmem plane readout apart
>       drm/i915: Simplify intel_initial_plane_config() calling convention
>       drm/i915/fbdev: Fix smem_start for LMEMBAR stolen objects
>       drm/i915: Tweak BIOS fb reuse check
>       drm/i915: Try to relocate the BIOS fb to the start of ggtt
>       drm/i915: Annotate more of the BIOS fb takeover failure paths
>       drm/i915/dp: Limit SST link rate to <=8.1Gbps
>       drm/i915: Correct for_each_old_global_obj_in_state() arguments
>       drm/i915/sdvo: Convert to per-device debugs
>       drm/i915/sdvo: Fix up code alignment
>       drm/i915/color: Use per-device debugs
>       drm/i915/fb: Use per-device debugs
>       drm/i915/bios: Switch to kms debugs
>       drm/i915/bios: Use per-device debugs for VBT related stuff
>       drm/i915/hdcp: Use per-device debugs
>       drm/i915/wm: Pass the whole i915 to intel_get_cxsr_latency()
>       drm/i915/wm: Use per-device debugs in pre-ilk wm code
>       drm/i915/wm: Use per-device debugs ilk wm code
>       drm/i915/dvo/ns2501: Nuke pointless casts
>       drm/i915/dvo: Use sizeof(*variable) instead of sizeof(type)
>       drm/i915: Fix PLL state check for gmch platforms
>       drm/i915: Include the CRTC name in the ELD buffer mismatch
>       drm/i915: Reuse ibx_dump_hw_state() for gmch platforms
>       drm/i915: Add PLL .compare_hw_state() vfunc
>       drm/i915: Enable fastboot across the board
>       drm/i915/cdclk: Extract cdclk_divider()
>       drm/i915/cdclk: Squash waveform is 16 bits
>       drm/i915/cdclk: Remove the hardcoded divider from
> cdclk_compute_crawl_and_squash_midpoint()
>       drm/i915/cdclk: Document CDCLK update methods
>
> Vinay Belgaumkar (2):
>       drm/xe: Check skip_guc_pc before setting SLPC flag
>       drm/i915/mtl: Wake GT before sending H2G message
>
> Vinod Govindapillai (1):
>       drm/xe: Modify the cfb size to be page size aligned for FBC
>
> Wachowski, Karol (2):
>       accel/ivpu: Use lazy allocation for doorbell IDs
>       accel/ivpu: Refactor BO creation functions
>
> Wayne Lin (2):
>       drm/amd/display: Align the returned error code with legacy DP
>       drm/amd/display: adjust few initialization order in dm
>
> Wenjing Liu (7):
>       drm/amd/display: Floor to mhz when requesting dpp disp clock
> changes to SMU
>       drm/amd/display: turn off windowed Mpo ODM feature for dcn321
>       drm/amd/display: fix incorrect mpc_combine array size
>       drm/amd/display: use correct phantom pipe when populating subvp pipe info
>       drm/amd/display: set odm_combine_policy based on context in dcn32 resource
>       drm/amd/display: treat plane clip size change as MED update type
>       drm/amd/display: reenable windowed mpo odm support on dcn32 and dcn321
>
> Xiaoming Wang (1):
>       drm/xe/display: Fix memleak in display initialization
>
> XueBing Chen (9):
>       drm/radeon/kms: Clean up errors in radeon_pm.c
>       drm/radeon: Clean up errors in clearstate_ci.h
>       drm/radeon: Clean up errors in clearstate_cayman.h
>       drm/radeon/dpm: Clean up errors in evergreen_smc.h
>       drm/radeon: Clean up errors in ci_dpm.h
>       drm/radeon: Clean up errors in radeon.h
>       drm/radeon: Clean up errors in si.c
>       drm/radeon/evergreen_cs: Clean up errors in evergreen_cs.c
>       drm/radeon/ni_dpm: Clean up errors in nislands_smc.h
>
> Xuxin Xiong (1):
>       drm/panel-edp: Add several generic edp panels
>
> Yang Wang (23):
>       drm/amdgpu: implement RAS ACA driver framework
>       drm/amdgpu: add ACA kernel hardware error log support
>       drm/amdgpu: add ACA bank dump debugfs support
>       drm/amd/pm: add aca smu backend support for smu v13.0.6
>       drm/amdgpu: add amdgpu ras aca query interface
>       drm/amdgpu: add aca sysfs support
>       drm/amdgpu: add umc v12.0 ACA support
>       drm/amdgpu: add gfx v9.4.3 ACA support
>       drm/amdgpu: add sdma v4.4.2 ACA support
>       drm/amdgpu: add mmhub v1.8 ACA support
>       drm/amdgpu: add xgmi v6.4.0 ACA support
>       drm/amdgpu: replace MCA macro with ACA for XGMI
>       drm/amdgpu: fix UBSAN array-index-out-of-bounds for ras_block_string[]
>       drm/amd/pm: enable amdgpu smu send message log
>       drm/amd/pm: udpate smu v13.0.6 message permission
>       drm/amdgpu: skip call ras_late_init if ras block is not supported
>       drm/amdgpu: add aca sysfs remove support
>       drm/amdgpu: adjust aca init/fini sequence to match gpu reset
>       drm/amdgpu: use helper macro HW_ERR instead of Hardware error string
>       drm/amdgpu: implement smu send rma reason for smu v13.0.6
>       drm/amdgpu: send smu rma reason event in ras eeprom driver
>       drm/amdgpu: enable pp_od_clk_voltage for gfx 9.4.3 SRIOV
>       drm/amd/pm: disable pp_dpm_dcefclk node for gfx 11.0.3 sriov
>
> Yannic Moog (1):
>       dt-bindings: display: panel-simple: add ETML1010G3DRA
>
> YiPeng Chai (7):
>       drm/amdgpu: Add log info for umc_v12_0
>       drm/amdgpu: Prepare for asynchronous processing of umc page retirement
>       drm/amdgpu: Use asynchronous polling to handle umc_v12_0 poisoning
>       drm/amdgpu: add interface to check mca umc status
>       drm/amdgpu:Support retiring multiple MCA error address pages
>       drm/amdgpu: Support passing poison consumption ras block to SRIOV
>       drm/amdgpu: Need to resume ras during gpu reset for gfx v9_4_3 sriov
>
> Yifan Zhang (26):
>       drm/amdgpu: drm/amdgpu: remove golden setting for gfx 11.5.0
>       drm/amdgpu: remove asymmetrical irq disabling in vcn 4.0.5 suspend
>       drm/amdgpu/nbio: Add NBIO 7.11.1 Support
>       drm/amdgpu: add nbio 7.11.1 discovery support
>       drm/amdgpu: add smuio 14.0.1 support
>       drm/amdgpu: add PSP 14.0.1 support
>       drm/amdgpu: add psp 14.0.1 discovery support
>       drm/amdgpu: add sdma 6.1.1 firmware
>       drm/amdgpu: add SDMA 6.1.1 discovery support
>       drm/amdgpu: add MMHUB 3.3.1 support
>       drm/amdgpu: add GFXHUB 11.5.1 support
>       drm/amdgpu: add tmz support for GC IP v11.5.1
>       drm/amdgpu: enable gmc11 discovery support for GC 11.5.1
>       drm/amdgpu: add initial GC 11.5.1 soc21 support
>       drm/amdgpu: enable soc21 discovery support for GC 11.5.1
>       drm/amdgpu: add GC 11.5.1 to GC 11.5.0 family
>       drm/amdgpu: add firmware for GC 11.5.1
>       drm/amdgpu: add imu firmware support for GC 11.5.1
>       drm/amdgpu: add mes firmware support for GC 11.5.1
>       drm/amdgpu: initialize gfx11.5.1
>       drm/amdkfd: add KFD support for GC 11.5.1
>       drm/amdgpu: add GC 11.5.1 discovery support
>       drm/amdgpu: enable MES discovery for GC 11.5.1
>       drm/amdgpu: add vcn 4.0.6 discovery support
>       drm/amdgpu: add dcn3.5.1 support
>       drm/amdgpu: add smu 14.0.1 support
>
> Yiling Chen (1):
>       drm/amd/display: Fix static screen event mask definition change
>
> YuanShang (1):
>       drm/amd/amdgpu: Update RLC_SPM_MC_CNT by ring wreg in guest
>
> Zack Rusin (4):
>       drm/vmwgfx: Unmap the surface before resetting it on a plane state
>       drm/vmwgfx: Fix possible null pointer derefence with invalid contexts
>       drm/ttm: Make sure the mapped tt pages are decrypted when needed
>       drm/vmwgfx: Fix the lifetime of the bo cursor memory
>
> Zhang Shurong (1):
>       drm/tegra: dpaux: Fix PM disable depth imbalance in tegra_dpaux_probe
>
> Zhanjun Dong (1):
>       drm/xe/guc: Fix missing topology init
>
> Zhikai Zhai (1):
>       drm/amd/display: Add align done check
>
> Zhipeng Lu (2):
>       drm/vmwgfx: fix a memleak in vmw_gmrid_man_get_node
>       drm/lima: fix a memleak in lima_heap_alloc
>
> chenxuebing (31):
>       drm/edid: Clean up errors in drm_edid.c
>       drm/amdgpu: Clean up errors in navi10_ih.c
>       drm/amdgpu: Clean up errors in clearstate_gfx9.h
>       drm/amdgpu: Clean up errors in amdgpu_atomfirmware.h
>       drm/amd/amdgpu: Clean up errors in amdgpu_umr.h
>       drm/amd: Clean up errors in sdma_v2_4.c
>       drm/amdgpu: Clean up errors in amdgpu_rlc.c
>       drm/amd: Clean up errors in amdgpu_vkms.c
>       drm/amdgpu: Clean up errors in amdgpu_drv.c
>       drm/amdgpu: Clean up errors in gfx_v9_4.c
>       drm/amdgpu: Clean up errors in jpeg_v2_5.c
>       drm/amdgpu: Clean up errors in amdgpu_gmc.c
>       drm/amdgpu: Clean up errors in amdgpu.h
>       drm/amdgpu: Clean up errors in clearstate_si.h
>       drm/amdgpu: Clean up errors in umc_v6_0.c
>       drm/amd/include: Clean up errors in arct_ip_offset.h
>       drm/amdgpu: Clean up errors in atom-bits.h
>       drm/amdgpu: Clean up errors in navi12_ip_offset.h
>       drm/amdgpu: Clean up errors in kgd_pp_interface.h
>       drm/amd/include/vega10_ip_offset:Clean up errors in vega10_ip_offset.h
>       drm/amd: Clean up errors in vega10_ip_offset.h
>       drm/amd/pp: Clean up errors in dm_pp_interface.h
>       drm/amdgpu: Clean up errors in dimgrey_cavefish_ip_offset.h
>       drm/amd/include/vangogh_ip_offset: Clean up errors in vangogh_ip_offset.h
>       drm/amd/include/sienna_cichlid_ip_offset: Clean up errors in
> sienna_cichlid_ip_offset.h
>       drm/amdgpu: Clean up errors in cgs_common.h
>       drm/amd/include/navi14_ip_offset: Clean up errors in navi14_ip_offset.h
>       drm/amdgpu: Clean up errors in v10_structs.h
>       drm/amd/amdgpu: Clean up errors in beige_goby_ip_offset.h
>       drm/amd/display: Clean up errors in renoir_ip_offset.h
>       drm/amd/include/vega20_ip_offset: Clean up errors in vega20_ip_offset.h
>
> lima1002 (1):
>       drm/amdgpu/soc21: add mode2 asic reset for SMU IP v14.0.1
>
> shaoyunl (1):
>       drm/amdgpu: Only create mes event log debugfs when mes is enabled
>
> xiazhengqiao (1):
>       drm/bridge: Fixed a DP link training bug
>
>  Documentation/admin-guide/edid.rst                 |    35 +-
>  Documentation/admin-guide/kernel-parameters.txt    |    14 +-
>  .../display/bridge/fsl,imx8mp-hdmi-tx.yaml         |   102 +
>  .../bindings/display/bridge/ti,sn65dsi86.yaml      |     2 +-
>  .../bindings/display/imx/fsl,imx8mp-hdmi-pvi.yaml  |    84 +
>  .../bindings/display/msm/dsi-controller-main.yaml  |     2 +
>  .../devicetree/bindings/display/msm/gmu.yaml       |     1 +
>  .../devicetree/bindings/display/msm/gpu.yaml       |     6 +-
>  .../devicetree/bindings/display/msm/qcom,mdss.yaml |     1 +
>  .../bindings/display/msm/qcom,sm8650-dpu.yaml      |     4 +-
>  .../bindings/display/msm/qcom,sm8650-mdss.yaml     |     4 +
>  .../bindings/display/msm/qcom,x1e80100-mdss.yaml   |   251 +
>  .../display/panel/boe,th101mb31ig002-28a.yaml      |    58 +
>  .../bindings/display/panel/himax,hx83112a.yaml     |    74 +
>  .../display/panel/leadtek,ltk500hd1829.yaml        |     4 +-
>  .../bindings/display/panel/novatek,nt35510.yaml    |     4 +-
>  .../bindings/display/panel/novatek,nt36672e.yaml   |    66 +
>  .../bindings/display/panel/panel-lvds.yaml         |     4 +
>  .../bindings/display/panel/panel-simple.yaml       |     4 +
>  .../display/panel/rocktech,jh057n00900.yaml        |     3 +
>  .../bindings/display/panel/visionox,rm69299.yaml   |     3 +-
>  .../bindings/display/renesas,rzg2l-du.yaml         |   126 +
>  .../display/rockchip/rockchip,dw-hdmi.yaml         |    33 +-
>  .../bindings/display/solomon,ssd1307fb.yaml        |    20 +-
>  .../bindings/display/solomon,ssd132x.yaml          |    12 +-
>  .../bindings/display/solomon,ssd133x.yaml          |    45 +
>  .../bindings/display/ti/ti,am65x-dss.yaml          |     7 +-
>  .../devicetree/bindings/iommu/arm,smmu.yaml        |    17 +-
>  .../devicetree/bindings/vendor-prefixes.yaml       |     2 +
>  Documentation/gpu/amdgpu/dgpu-asic-info-table.csv  |     2 +
>  Documentation/gpu/amdgpu/display/dcn-blocks.rst    |    78 +
>  .../gpu/amdgpu/display/display-contributing.rst    |   168 +
>  .../gpu/amdgpu/display/display-manager.rst         |     3 -
>  Documentation/gpu/amdgpu/display/index.rst         |    78 +-
>  Documentation/gpu/drm-internals.rst                |    12 -
>  Documentation/gpu/drm-usage-stats.rst              |     2 +-
>  Documentation/gpu/introduction.rst                 |     2 +
>  Documentation/gpu/rfc/index.rst                    |     4 -
>  Documentation/gpu/rfc/xe.rst                       |   234 -
>  Documentation/gpu/todo.rst                         |    23 +
>  MAINTAINERS                                        |    18 +-
>  arch/powerpc/include/asm/backlight.h               |     5 +-
>  arch/powerpc/platforms/powermac/backlight.c        |    26 -
>  arch/powerpc/platforms/ps3/Kconfig                 |     1 +
>  drivers/accel/drm_accel.c                          |     2 +-
>  .../accel/habanalabs/common/command_submission.c   |     3 +-
>  drivers/accel/habanalabs/common/debugfs.c          |    18 +-
>  drivers/accel/habanalabs/common/device.c           |    55 +-
>  drivers/accel/habanalabs/common/firmware_if.c      |    25 +-
>  drivers/accel/habanalabs/common/habanalabs.h       |    43 +-
>  drivers/accel/habanalabs/common/hw_queue.c         |    17 +
>  drivers/accel/habanalabs/common/hwmon.c            |    29 +-
>  drivers/accel/habanalabs/common/mmu/Makefile       |     2 +-
>  drivers/accel/habanalabs/common/mmu/mmu.c          |   223 +-
>  drivers/accel/habanalabs/common/mmu/mmu_v1.c       |   354 +-
>  drivers/accel/habanalabs/common/mmu/mmu_v2.c       |   338 +
>  drivers/accel/habanalabs/common/mmu/mmu_v2_hr.c    |    24 +-
>  drivers/accel/habanalabs/common/security.c         |    33 +-
>  drivers/accel/habanalabs/common/security.h         |     3 +-
>  drivers/accel/habanalabs/gaudi/gaudi.c             |     9 +-
>  drivers/accel/habanalabs/gaudi2/gaudi2.c           |   308 +-
>  drivers/accel/habanalabs/gaudi2/gaudi2P.h          |    15 +-
>  drivers/accel/habanalabs/goya/goya.c               |    12 +-
>  drivers/accel/habanalabs/goya/goya_coresight.c     |     3 +-
>  .../habanalabs/include/hw_ip/mmu/mmu_general.h     |     2 +
>  drivers/accel/ivpu/ivpu_debugfs.c                  |    32 +-
>  drivers/accel/ivpu/ivpu_drv.c                      |    12 +-
>  drivers/accel/ivpu/ivpu_drv.h                      |     7 +-
>  drivers/accel/ivpu/ivpu_fw.c                       |    49 +-
>  drivers/accel/ivpu/ivpu_fw_log.c                   |     6 +-
>  drivers/accel/ivpu/ivpu_gem.c                      |    70 +-
>  drivers/accel/ivpu/ivpu_gem.h                      |     6 +-
>  drivers/accel/ivpu/ivpu_hw_37xx.c                  |    10 +-
>  drivers/accel/ivpu/ivpu_hw_40xx.c                  |    10 +-
>  drivers/accel/ivpu/ivpu_ipc.c                      |    12 +-
>  drivers/accel/ivpu/ivpu_job.c                      |    20 +-
>  drivers/accel/ivpu/ivpu_pm.c                       |    10 +-
>  drivers/accel/ivpu/vpu_boot_api.h                  |    46 +-
>  drivers/accel/ivpu/vpu_jsm_api.h                   |    32 +-
>  drivers/accel/qaic/mhi_controller.c                |     6 +-
>  drivers/accel/qaic/qaic.h                          |     3 +-
>  drivers/accel/qaic/qaic_data.c                     |    59 +-
>  drivers/accel/qaic/qaic_drv.c                      |   140 +-
>  drivers/char/agp/agp.h                             |     1 -
>  drivers/dma-buf/dma-fence.c                        |     8 +-
>  drivers/dma-buf/dma-resv.c                         |     4 +-
>  drivers/firmware/Kconfig                           |     1 +
>  drivers/firmware/sysfb.c                           |    53 +-
>  drivers/firmware/sysfb_simplefb.c                  |     5 +-
>  drivers/gpu/drm/Kconfig                            |    19 +-
>  drivers/gpu/drm/amd/amdgpu/Makefile                |    17 +-
>  drivers/gpu/drm/amd/amdgpu/amdgpu.h                |    18 +-
>  drivers/gpu/drm/amd/amdgpu/amdgpu_aca.c            |   879 +
>  drivers/gpu/drm/amd/amdgpu/amdgpu_aca.h            |   202 +
>  drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c         |    10 +-
>  drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h         |    15 +-
>  drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c   |    42 +-
>  drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c       |    24 +-
>  drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c   |     3 +-
>  drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.h   |     2 +-
>  drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c             |     6 +-
>  drivers/gpu/drm/amd/amdgpu/amdgpu_csa.c            |     3 +-
>  drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c        |     9 +-
>  drivers/gpu/drm/amd/amdgpu/amdgpu_device.c         |    65 +-
>  drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c      |    62 +-
>  drivers/gpu/drm/amd/amdgpu/amdgpu_display.c        |     8 -
>  drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c        |     4 +
>  drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c            |    71 +-
>  drivers/gpu/drm/amd/amdgpu/amdgpu_fdinfo.c         |     4 +
>  drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c          |     4 +-
>  drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c            |    41 +-
>  drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c            |    13 +-
>  drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.h            |     4 +-
>  drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c            |    56 +-
>  drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.h            |     4 +
>  drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c             |    21 +-
>  drivers/gpu/drm/amd/amdgpu/amdgpu_ids.c            |     7 +-
>  drivers/gpu/drm/amd/amdgpu/amdgpu_job.c            |    18 +-
>  drivers/gpu/drm/amd/amdgpu/amdgpu_jpeg.c           |    46 +
>  drivers/gpu/drm/amd/amdgpu/amdgpu_jpeg.h           |    36 +
>  drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c            |    17 +-
>  drivers/gpu/drm/amd/amdgpu/amdgpu_mca.c            |    33 +-
>  drivers/gpu/drm/amd/amdgpu/amdgpu_mca.h            |     1 +
>  drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c            |     8 +-
>  drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h           |     2 -
>  drivers/gpu/drm/amd/amdgpu/amdgpu_nbio.c           |     8 -
>  drivers/gpu/drm/amd/amdgpu/amdgpu_nbio.h           |     3 -
>  drivers/gpu/drm/amd/amdgpu/amdgpu_object.c         |    17 +-
>  drivers/gpu/drm/amd/amdgpu/amdgpu_object.h         |     6 +
>  drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c            |   251 +-
>  drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h            |    14 +-
>  drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c            |   686 +-
>  drivers/gpu/drm/amd/amdgpu/amdgpu_ras.h            |    66 +-
>  drivers/gpu/drm/amd/amdgpu/amdgpu_ras_eeprom.c     |     3 +
>  drivers/gpu/drm/amd/amdgpu/amdgpu_reset.c          |    26 +-
>  drivers/gpu/drm/amd/amdgpu/amdgpu_reset.h          |     1 +
>  drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h           |    33 +-
>  drivers/gpu/drm/amd/amdgpu/amdgpu_ring_mux.c       |     4 +-
>  drivers/gpu/drm/amd/amdgpu/amdgpu_rlc.c            |     2 +-
>  drivers/gpu/drm/amd/amdgpu/amdgpu_rlc.h            |     2 +-
>  drivers/gpu/drm/amd/amdgpu/amdgpu_seq64.c          |    66 +-
>  drivers/gpu/drm/amd/amdgpu/amdgpu_seq64.h          |     9 +-
>  drivers/gpu/drm/amd/amdgpu/amdgpu_sync.c           |     4 +-
>  drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c            |    11 +-
>  drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c          |     7 +-
>  drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.h          |     1 +
>  drivers/gpu/drm/amd/amdgpu/amdgpu_umc.c            |   155 +-
>  drivers/gpu/drm/amd/amdgpu/amdgpu_umc.h            |    10 +-
>  drivers/gpu/drm/amd/amdgpu/amdgpu_umr.h            |     4 +-
>  drivers/gpu/drm/amd/amdgpu/amdgpu_umsch_mm.c       |     2 +-
>  drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c            |     6 +-
>  drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.h            |    42 +
>  drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c           |    88 +-
>  drivers/gpu/drm/amd/amdgpu/amdgpu_virt.h           |     8 +-
>  drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.c           |     3 +-
>  drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c             |   255 +-
>  drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h             |    55 +-
>  drivers/gpu/drm/amd/amdgpu/amdgpu_vm_pt.c          |   110 +-
>  drivers/gpu/drm/amd/amdgpu/amdgpu_vpe.c            |    77 +-
>  drivers/gpu/drm/amd/amdgpu/amdgpu_vpe.h            |     5 +
>  drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c           |    81 +-
>  drivers/gpu/drm/amd/amdgpu/athub_v4_1_0.c          |   122 +
>  drivers/gpu/drm/amd/amdgpu/athub_v4_1_0.h          |    30 +
>  drivers/gpu/drm/amd/amdgpu/atom.c                  |    43 +-
>  drivers/gpu/drm/amd/amdgpu/atom.h                  |     2 +-
>  drivers/gpu/drm/amd/amdgpu/atombios_crtc.c         |    28 +-
>  drivers/gpu/drm/amd/amdgpu/atombios_dp.c           |     4 +-
>  drivers/gpu/drm/amd/amdgpu/atombios_encoders.c     |    16 +-
>  drivers/gpu/drm/amd/amdgpu/atombios_i2c.c          |     4 +-
>  drivers/gpu/drm/amd/amdgpu/cik.c                   |    41 +-
>  drivers/gpu/drm/amd/amdgpu/clearstate_gfx9.h       |    27 +-
>  drivers/gpu/drm/amd/amdgpu/clearstate_si.h         |    24 +-
>  drivers/gpu/drm/amd/amdgpu/dce_v10_0.c             |     2 +
>  drivers/gpu/drm/amd/amdgpu/dce_v11_0.c             |     2 +
>  drivers/gpu/drm/amd/amdgpu/dce_v6_0.c              |    22 +-
>  drivers/gpu/drm/amd/amdgpu/dce_v8_0.c              |    22 +-
>  drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c             |    35 +-
>  drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c             |   146 +-
>  drivers/gpu/drm/amd/amdgpu/gfx_v11_0_3.c           |     2 +-
>  drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c              |     4 +-
>  drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c              |    37 +-
>  drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c              |    56 +-
>  drivers/gpu/drm/amd/amdgpu/gfx_v9_4.c              |     5 +-
>  drivers/gpu/drm/amd/amdgpu/gfx_v9_4_3.c            |    99 +-
>  drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c             |    33 +-
>  drivers/gpu/drm/amd/amdgpu/gmc_v11_0.c             |    35 +-
>  drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c              |     5 +-
>  drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c              |     5 +-
>  drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c              |    25 +-
>  drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c              |    43 +-
>  drivers/gpu/drm/amd/amdgpu/hdp_v7_0.c              |   142 +
>  drivers/gpu/drm/amd/amdgpu/hdp_v7_0.h              |    31 +
>  drivers/gpu/drm/amd/amdgpu/ih_v7_0.c               |   767 +
>  drivers/gpu/drm/amd/amdgpu/ih_v7_0.h               |    28 +
>  drivers/gpu/drm/amd/amdgpu/imu_v11_0.c             |     1 +
>  drivers/gpu/drm/amd/amdgpu/jpeg_v2_5.c             |    10 +-
>  drivers/gpu/drm/amd/amdgpu/jpeg_v4_0_3.c           |    16 +-
>  drivers/gpu/drm/amd/amdgpu/jpeg_v4_0_3.h           |    15 +
>  drivers/gpu/drm/amd/amdgpu/jpeg_v4_0_5.c           |   491 +-
>  drivers/gpu/drm/amd/amdgpu/jpeg_v5_0_0.c           |   570 +
>  drivers/gpu/drm/amd/amdgpu/jpeg_v5_0_0.h           |    29 +
>  drivers/gpu/drm/amd/amdgpu/lsdma_v7_0.c            |   121 +
>  drivers/gpu/drm/amd/amdgpu/lsdma_v7_0.h            |    31 +
>  drivers/gpu/drm/amd/amdgpu/mes_v11_0.c             |    15 +-
>  drivers/gpu/drm/amd/amdgpu/mmhub_v1_8.c            |    87 +
>  drivers/gpu/drm/amd/amdgpu/mmhub_v3_3.c            |     1 +
>  drivers/gpu/drm/amd/amdgpu/mxgpu_ai.c              |     3 +-
>  drivers/gpu/drm/amd/amdgpu/mxgpu_nv.c              |    29 +-
>  drivers/gpu/drm/amd/amdgpu/mxgpu_nv.h              |     1 +
>  drivers/gpu/drm/amd/amdgpu/navi10_ih.c             |     3 +-
>  drivers/gpu/drm/amd/amdgpu/nbif_v6_3_1.c           |   495 +
>  drivers/gpu/drm/amd/amdgpu/nbif_v6_3_1.h           |    33 +
>  drivers/gpu/drm/amd/amdgpu/nbio_v7_11.c            |     9 +-
>  drivers/gpu/drm/amd/amdgpu/nbio_v7_9.c             |    63 -
>  drivers/gpu/drm/amd/amdgpu/psp_gfx_if.h            |     1 +
>  drivers/gpu/drm/amd/amdgpu/psp_v11_0.c             |     2 +-
>  drivers/gpu/drm/amd/amdgpu/psp_v13_0.c             |   104 +-
>  drivers/gpu/drm/amd/amdgpu/psp_v14_0.c             |   672 +
>  drivers/gpu/drm/amd/amdgpu/psp_v14_0.h             |    32 +
>  drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c             |    15 +-
>  drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c             |    23 +-
>  drivers/gpu/drm/amd/amdgpu/sdma_v4_4_2.c           |    94 +-
>  drivers/gpu/drm/amd/amdgpu/sdma_v5_0.c             |    29 +-
>  drivers/gpu/drm/amd/amdgpu/sdma_v5_2.c             |    29 +-
>  drivers/gpu/drm/amd/amdgpu/sdma_v6_0.c             |    30 +-
>  drivers/gpu/drm/amd/amdgpu/si.c                    |    41 +-
>  drivers/gpu/drm/amd/amdgpu/soc15.c                 |    49 +-
>  drivers/gpu/drm/amd/amdgpu/soc21.c                 |    38 +
>  drivers/gpu/drm/amd/amdgpu/ta_ras_if.h             |    36 +
>  drivers/gpu/drm/amd/amdgpu/umc_v12_0.c             |   263 +-
>  drivers/gpu/drm/amd/amdgpu/umc_v12_0.h             |     3 +
>  drivers/gpu/drm/amd/amdgpu/umc_v6_0.c              |     2 +-
>  drivers/gpu/drm/amd/amdgpu/vcn_v4_0_5.c            |     3 +
>  drivers/gpu/drm/amd/amdgpu/vcn_v5_0_0.c            |  1339 +
>  drivers/gpu/drm/amd/amdgpu/vcn_v5_0_0.h            |    37 +
>  drivers/gpu/drm/amd/amdgpu/vega20_ih.c             |    38 +-
>  drivers/gpu/drm/amd/amdgpu/vpe_6_1_fw_if.h         |     3 +-
>  drivers/gpu/drm/amd/amdgpu/vpe_v6_1.c              |   281 +-
>  drivers/gpu/drm/amd/amdkfd/cwsr_trap_handler.h     |   545 +-
>  .../gpu/drm/amd/amdkfd/cwsr_trap_handler_gfx10.asm |   173 +-
>  drivers/gpu/drm/amd/amdkfd/kfd_chardev.c           |    24 +-
>  drivers/gpu/drm/amd/amdkfd/kfd_crat.c              |    94 +-
>  drivers/gpu/drm/amd/amdkfd/kfd_crat.h              |     1 +
>  drivers/gpu/drm/amd/amdkfd/kfd_debug.c             |     4 +-
>  drivers/gpu/drm/amd/amdkfd/kfd_device.c            |    30 +-
>  .../gpu/drm/amd/amdkfd/kfd_device_queue_manager.c  |     4 +
>  drivers/gpu/drm/amd/amdkfd/kfd_events.c            |     6 +-
>  drivers/gpu/drm/amd/amdkfd/kfd_flat_memory.c       |    29 +-
>  drivers/gpu/drm/amd/amdkfd/kfd_int_process_v10.c   |     7 +-
>  drivers/gpu/drm/amd/amdkfd/kfd_int_process_v11.c   |     7 +-
>  drivers/gpu/drm/amd/amdkfd/kfd_int_process_v9.c    |     7 +-
>  drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue.c      |     8 +-
>  drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue.h      |     2 +-
>  drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager.h       |    25 +
>  drivers/gpu/drm/amd/amdkfd/kfd_packet_manager.c    |    10 +-
>  drivers/gpu/drm/amd/amdkfd/kfd_priv.h              |     6 +-
>  drivers/gpu/drm/amd/amdkfd/kfd_smi_events.c        |    20 +-
>  drivers/gpu/drm/amd/amdkfd/kfd_svm.c               |    10 +-
>  drivers/gpu/drm/amd/amdkfd/kfd_topology.c          |     8 +-
>  drivers/gpu/drm/amd/display/TODO                   |   110 -
>  drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c  |   226 +-
>  drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h  |     1 +
>  .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c |    72 +-
>  .../drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c  |    55 +-
>  .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c |     1 +
>  .../drm/amd/display/amdgpu_dm/amdgpu_dm_replay.c   |   119 +-
>  .../drm/amd/display/amdgpu_dm/amdgpu_dm_replay.h   |     4 +-
>  drivers/gpu/drm/amd/display/dc/basics/conversion.c |    34 +
>  drivers/gpu/drm/amd/display/dc/basics/conversion.h |     4 +
>  drivers/gpu/drm/amd/display/dc/basics/dce_calcs.c  |     2 -
>  .../gpu/drm/amd/display/dc/bios/command_table.c    |     2 +-
>  .../gpu/drm/amd/display/dc/bios/command_table2.c   |     2 +-
>  .../amd/display/dc/bios/command_table_helper2.c    |     1 +
>  drivers/gpu/drm/amd/display/dc/clk_mgr/clk_mgr.c   |     3 -
>  .../amd/display/dc/clk_mgr/dce100/dce_clk_mgr.c    |     2 +-
>  .../drm/amd/display/dc/clk_mgr/dcn10/rv1_clk_mgr.c |     2 -
>  .../amd/display/dc/clk_mgr/dcn10/rv1_clk_mgr_clk.c |    79 -
>  .../drm/amd/display/dc/clk_mgr/dcn21/rn_clk_mgr.c  |     2 -
>  .../dc/clk_mgr/dcn21/rn_clk_mgr_vbios_smu.c        |    15 +-
>  .../drm/amd/display/dc/clk_mgr/dcn301/dcn301_smu.c |    10 +-
>  .../drm/amd/display/dc/clk_mgr/dcn31/dcn31_smu.c   |     4 -
>  .../drm/amd/display/dc/clk_mgr/dcn314/dcn314_smu.c |     6 -
>  .../drm/amd/display/dc/clk_mgr/dcn315/dcn315_smu.c |     4 -
>  .../drm/amd/display/dc/clk_mgr/dcn316/dcn316_smu.c |     4 -
>  .../amd/display/dc/clk_mgr/dcn32/dcn32_clk_mgr.c   |    46 +-
>  .../dc/clk_mgr/dcn32/dcn32_clk_mgr_smu_msg.h       |     3 +-
>  .../amd/display/dc/clk_mgr/dcn35/dcn35_clk_mgr.c   |    39 +-
>  .../drm/amd/display/dc/clk_mgr/dcn35/dcn35_smu.c   |    27 +-
>  drivers/gpu/drm/amd/display/dc/core/dc.c           |   217 +-
>  drivers/gpu/drm/amd/display/dc/core/dc_resource.c  |    23 +-
>  drivers/gpu/drm/amd/display/dc/core/dc_stream.c    |    18 +
>  drivers/gpu/drm/amd/display/dc/core/dc_surface.c   |     2 +
>  drivers/gpu/drm/amd/display/dc/dc.h                |    23 +-
>  drivers/gpu/drm/amd/display/dc/dc_dmub_srv.c       |   114 +-
>  drivers/gpu/drm/amd/display/dc/dc_hw_types.h       |     3 +-
>  drivers/gpu/drm/amd/display/dc/dce/dce_audio.c     |   293 +-
>  drivers/gpu/drm/amd/display/dc/dce/dce_audio.h     |     3 +-
>  .../gpu/drm/amd/display/dc/dce/dmub_hw_lock_mgr.c  |     4 +
>  drivers/gpu/drm/amd/display/dc/dce/dmub_replay.c   |     4 +-
>  .../gpu/drm/amd/display/dc/dcn10/dcn10_cm_common.c |    20 +
>  .../gpu/drm/amd/display/dc/dcn10/dcn10_cm_common.h |     4 +-
>  drivers/gpu/drm/amd/display/dc/dcn10/dcn10_dpp.c   |     3 +-
>  drivers/gpu/drm/amd/display/dc/dcn10/dcn10_dpp.h   |     3 +
>  .../gpu/drm/amd/display/dc/dcn10/dcn10_dpp_cm.c    |    70 +-
>  drivers/gpu/drm/amd/display/dc/dcn10/dcn10_opp.c   |     7 +
>  drivers/gpu/drm/amd/display/dc/dcn20/dcn20_dpp.c   |    31 +-
>  drivers/gpu/drm/amd/display/dc/dcn20/dcn20_dpp.h   |     3 +
>  .../gpu/drm/amd/display/dc/dcn20/dcn20_dpp_cm.c    |    55 +
>  drivers/gpu/drm/amd/display/dc/dcn20/dcn20_mpc.c   |    24 +-
>  drivers/gpu/drm/amd/display/dc/dcn201/dcn201_dpp.c |     1 +
>  drivers/gpu/drm/amd/display/dc/dcn30/dcn30_dpp.c   |    38 +-
>  drivers/gpu/drm/amd/display/dc/dcn30/dcn30_dpp.h   |     2 +
>  .../gpu/drm/amd/display/dc/dcn30/dcn30_dpp_cm.c    |    54 +
>  drivers/gpu/drm/amd/display/dc/dcn30/dcn30_mpc.c   |   106 +-
>  drivers/gpu/drm/amd/display/dc/dcn30/dcn30_mpc.h   |     4 +
>  .../amd/display/dc/dcn32/dcn32_dio_link_encoder.c  |    85 +-
>  .../amd/display/dc/dcn32/dcn32_dio_link_encoder.h  |     5 +
>  drivers/gpu/drm/amd/display/dc/dcn32/dcn32_dpp.c   |     1 +
>  .../display/dc/dcn35/dcn35_dio_stream_encoder.h    |     1 +
>  drivers/gpu/drm/amd/display/dc/dm_cp_psp.h         |     3 +
>  drivers/gpu/drm/amd/display/dc/dml/Makefile        |     3 +
>  .../amd/display/dc/dml/dcn30/display_mode_vba_30.c |    16 +-
>  .../gpu/drm/amd/display/dc/dml/dcn303/dcn303_fpu.c |    11 +
>  .../gpu/drm/amd/display/dc/dml/dcn32/dcn32_fpu.c   |     1 -
>  .../gpu/drm/amd/display/dc/dml/dcn35/dcn35_fpu.c   |    12 +-
>  .../gpu/drm/amd/display/dc/dml/dcn351/dcn351_fpu.c |   574 +
>  .../gpu/drm/amd/display/dc/dml/dcn351/dcn351_fpu.h |    19 +
>  .../amd/display/dc/dml2/dml2_dc_resource_mgmt.c    |    41 +-
>  drivers/gpu/drm/amd/display/dc/dml2/dml2_utils.c   |     2 +-
>  drivers/gpu/drm/amd/display/dc/dml2/dml2_wrapper.c |     5 +
>  drivers/gpu/drm/amd/display/dc/dsc/dc_dsc.c        |     5 +
>  drivers/gpu/drm/amd/display/dc/gpio/hw_factory.c   |     1 +
>  drivers/gpu/drm/amd/display/dc/gpio/hw_translate.c |     1 +
>  drivers/gpu/drm/amd/display/dc/hdcp/hdcp_msg.c     |     2 -
>  drivers/gpu/drm/amd/display/dc/hwss/Makefile       |     8 +
>  .../drm/amd/display/dc/hwss/dce110/dce110_hwseq.c  |    56 +-
>  .../drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.c    |    97 +-
>  .../drm/amd/display/dc/hwss/dcn20/dcn20_hwseq.c    |   109 +-
>  .../drm/amd/display/dc/hwss/dcn20/dcn20_hwseq.h    |     2 +
>  .../drm/amd/display/dc/hwss/dcn30/dcn30_hwseq.c    |   167 +-
>  .../drm/amd/display/dc/hwss/dcn30/dcn30_hwseq.h    |     6 +-
>  .../gpu/drm/amd/display/dc/hwss/dcn30/dcn30_init.c |     2 +-
>  .../drm/amd/display/dc/hwss/dcn31/dcn31_hwseq.c    |    20 +-
>  .../drm/amd/display/dc/hwss/dcn31/dcn31_hwseq.h    |     4 +
>  .../gpu/drm/amd/display/dc/hwss/dcn31/dcn31_init.c |     2 +-
>  .../drm/amd/display/dc/hwss/dcn314/dcn314_init.c   |     2 +-
>  .../gpu/drm/amd/display/dc/hwss/dcn32/dcn32_init.c |     2 +-
>  .../drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c    |    21 +-
>  .../drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.h    |     3 +
>  .../gpu/drm/amd/display/dc/hwss/dcn35/dcn35_init.c |     2 +-
>  .../drm/amd/display/dc/hwss/dcn351/CMakeLists.txt  |     4 -
>  .../drm/amd/display/dc/hwss/dcn351/dcn351_init.c   |     2 +-
>  drivers/gpu/drm/amd/display/dc/hwss/hw_sequencer.h |     2 +
>  .../drm/amd/display/dc/hwss/hw_sequencer_private.h |     2 -
>  drivers/gpu/drm/amd/display/dc/inc/core_types.h    |    31 +-
>  drivers/gpu/drm/amd/display/dc/inc/hw/audio.h      |     3 +-
>  .../drm/amd/display/dc/inc/hw/clk_mgr_internal.h   |     6 +
>  drivers/gpu/drm/amd/display/dc/inc/hw/dchubbub.h   |     6 +
>  drivers/gpu/drm/amd/display/dc/inc/hw/dpp.h        |    39 +
>  drivers/gpu/drm/amd/display/dc/inc/hw/hubp.h       |    15 +-
>  drivers/gpu/drm/amd/display/dc/inc/hw/mpc.h        |   256 +-
>  drivers/gpu/drm/amd/display/dc/inc/hw/opp.h        |    16 +
>  .../drm/amd/display/dc/inc/hw/timing_generator.h   |     2 -
>  drivers/gpu/drm/amd/display/dc/irq/Makefile        |    11 +-
>  .../amd/display/dc/irq/dcn20/irq_service_dcn20.c   |     2 -
>  .../amd/display/dc/irq/dcn21/irq_service_dcn21.c   |     2 -
>  .../amd/display/dc/irq/dcn351/irq_service_dcn351.c |   409 +
>  .../amd/display/dc/irq/dcn351/irq_service_dcn351.h |    12 +
>  .../amd/display/dc/link/accessories/link_dp_cts.c  |    27 +-
>  .../drm/amd/display/dc/link/hwss/link_hwss_dio.h   |    10 +
>  .../link/hwss/link_hwss_dio_fixed_vs_pe_retimer.c  |    16 +-
>  .../hwss/link_hwss_hpo_fixed_vs_pe_retimer_dp.c    |    51 +-
>  .../gpu/drm/amd/display/dc/link/link_detection.c   |    18 +
>  drivers/gpu/drm/amd/display/dc/link/link_dpms.c    |    58 +
>  .../gpu/drm/amd/display/dc/link/link_validation.c  |     2 -
>  .../amd/display/dc/link/protocols/link_dp_phy.c    |     6 +-
>  .../display/dc/link/protocols/link_dp_training.c   |     5 +-
>  .../link_dp_training_fixed_vs_pe_retimer.c         |   372 +-
>  .../link_dp_training_fixed_vs_pe_retimer.h         |     5 -
>  .../drm/amd/display/dc/link/protocols/link_dpcd.c  |     2 +-
>  .../dc/link/protocols/link_edp_panel_control.c     |     5 +-
>  drivers/gpu/drm/amd/display/dc/resource/Makefile   |     8 +
>  .../amd/display/dc/resource/dcn20/dcn20_resource.c |     2 -
>  .../amd/display/dc/resource/dcn30/dcn30_resource.c |    11 +
>  .../amd/display/dc/resource/dcn31/dcn31_resource.c |     2 -
>  .../amd/display/dc/resource/dcn32/dcn32_resource.c |     1 +
>  .../display/dc/resource/dcn321/dcn321_resource.c   |     1 +
>  .../amd/display/dc/resource/dcn35/dcn35_resource.c |     7 +-
>  .../display/dc/resource/dcn351/dcn351_resource.c   |  2156 +
>  .../display/dc/resource/dcn351/dcn351_resource.h   |    23 +
>  drivers/gpu/drm/amd/display/dmub/dmub_srv.h        |    23 +-
>  drivers/gpu/drm/amd/display/dmub/inc/dmub_cmd.h    |   145 +-
>  drivers/gpu/drm/amd/display/dmub/src/Makefile      |     1 +
>  drivers/gpu/drm/amd/display/dmub/src/dmub_dcn20.c  |     3 +-
>  drivers/gpu/drm/amd/display/dmub/src/dmub_dcn20.h  |     3 +-
>  drivers/gpu/drm/amd/display/dmub/src/dmub_dcn30.c  |     3 +-
>  drivers/gpu/drm/amd/display/dmub/src/dmub_dcn30.h  |     3 +-
>  drivers/gpu/drm/amd/display/dmub/src/dmub_dcn31.c  |     3 +-
>  drivers/gpu/drm/amd/display/dmub/src/dmub_dcn31.h  |     3 +-
>  drivers/gpu/drm/amd/display/dmub/src/dmub_dcn32.c  |     5 +-
>  drivers/gpu/drm/amd/display/dmub/src/dmub_dcn32.h  |     3 +-
>  drivers/gpu/drm/amd/display/dmub/src/dmub_dcn35.c  |    20 +-
>  drivers/gpu/drm/amd/display/dmub/src/dmub_dcn35.h  |     8 +-
>  drivers/gpu/drm/amd/display/dmub/src/dmub_dcn351.c |    34 +
>  drivers/gpu/drm/amd/display/dmub/src/dmub_dcn351.h |    13 +
>  drivers/gpu/drm/amd/display/dmub/src/dmub_srv.c    |   129 +-
>  drivers/gpu/drm/amd/display/include/audio_types.h  |    15 +
>  drivers/gpu/drm/amd/display/include/dal_asic_id.h  |     2 +
>  .../drm/amd/display/include/link_service_types.h   |     9 +
>  .../gpu/drm/amd/display/modules/inc/mod_stats.h    |     4 +-
>  drivers/gpu/drm/amd/include/amd_shared.h           |     2 +
>  drivers/gpu/drm/amd/include/arct_ip_offset.h       |     6 +-
>  .../include/asic_reg/athub/athub_4_1_0_offset.h    |   287 +
>  .../include/asic_reg/athub/athub_4_1_0_sh_mask.h   |  1348 +
>  .../amd/include/asic_reg/dcn/dcn_3_1_6_offset.h    |     4 +
>  .../amd/include/asic_reg/dcn/dcn_3_1_6_sh_mask.h   |    10 +
>  .../amd/include/asic_reg/dcn/dcn_3_5_0_offset.h    |    24 +
>  .../amd/include/asic_reg/dcn/dcn_3_5_0_sh_mask.h   |    65 +
>  .../amd/include/asic_reg/dcn/dcn_3_5_1_offset.h    | 15259 ++++++
>  .../amd/include/asic_reg/dcn/dcn_3_5_1_sh_mask.h   | 53464 +++++++++++++++++++
>  .../amd/include/asic_reg/hdp/hdp_7_0_0_offset.h    |   219 +
>  .../amd/include/asic_reg/hdp/hdp_7_0_0_sh_mask.h   |   735 +
>  .../include/asic_reg/lsdma/lsdma_7_0_0_offset.h    |   388 +
>  .../include/asic_reg/lsdma/lsdma_7_0_0_sh_mask.h   |  1411 +
>  .../drm/amd/include/asic_reg/mp/mp_14_0_2_offset.h |   468 +
>  .../amd/include/asic_reg/mp/mp_14_0_2_sh_mask.h    |   692 +
>  .../amd/include/asic_reg/nbif/nbif_6_3_1_offset.h  | 11287 ++++
>  .../amd/include/asic_reg/nbif/nbif_6_3_1_sh_mask.h | 32806 ++++++++++++
>  .../amd/include/asic_reg/nbio/nbio_7_11_0_offset.h |     2 +
>  .../amd/include/asic_reg/nbio/nbio_7_9_0_sh_mask.h |     8 -
>  .../amd/include/asic_reg/oss/osssys_7_0_0_offset.h |   279 +
>  .../include/asic_reg/oss/osssys_7_0_0_sh_mask.h    |  1029 +
>  .../amd/include/asic_reg/pcie/pcie_6_1_0_offset.h  |   630 +
>  .../amd/include/asic_reg/pcie/pcie_6_1_0_sh_mask.h |  4250 ++
>  .../amd/include/asic_reg/vcn/vcn_5_0_0_offset.h    |  1672 +
>  .../amd/include/asic_reg/vcn/vcn_5_0_0_sh_mask.h   |  7627 +++
>  drivers/gpu/drm/amd/include/atom-bits.h            |     2 +-
>  drivers/gpu/drm/amd/include/atomfirmware.h         |    32 +
>  drivers/gpu/drm/amd/include/beige_goby_ip_offset.h |     6 +-
>  drivers/gpu/drm/amd/include/cgs_common.h           |    23 +-
>  .../gpu/drm/amd/include/cyan_skillfish_ip_offset.h |     6 +-
>  .../drm/amd/include/dimgrey_cavefish_ip_offset.h   |     6 +-
>  drivers/gpu/drm/amd/include/dm_pp_interface.h      |     9 +-
>  drivers/gpu/drm/amd/include/kgd_pp_interface.h     |     6 +-
>  drivers/gpu/drm/amd/include/navi12_ip_offset.h     |     6 +-
>  drivers/gpu/drm/amd/include/navi14_ip_offset.h     |     6 +-
>  drivers/gpu/drm/amd/include/pptable.h              |     6 +-
>  drivers/gpu/drm/amd/include/renoir_ip_offset.h     |     6 +-
>  .../gpu/drm/amd/include/sienna_cichlid_ip_offset.h |     6 +-
>  drivers/gpu/drm/amd/include/v10_structs.h          |     3 +-
>  drivers/gpu/drm/amd/include/vangogh_ip_offset.h    |     6 +-
>  drivers/gpu/drm/amd/include/vega10_ip_offset.h     |     6 +-
>  drivers/gpu/drm/amd/include/vega20_ip_offset.h     |    78 +-
>  drivers/gpu/drm/amd/pm/amdgpu_dpm.c                |    15 +
>  drivers/gpu/drm/amd/pm/amdgpu_pm.c                 |    94 +-
>  drivers/gpu/drm/amd/pm/inc/amdgpu_dpm.h            |     1 +
>  drivers/gpu/drm/amd/pm/legacy-dpm/si_dpm.c         |    29 +
>  .../gpu/drm/amd/pm/powerplay/hwmgr/ppatomctrl.c    |    42 +-
>  .../gpu/drm/amd/pm/powerplay/hwmgr/ppatomfwctrl.c  |     4 +-
>  drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c          |    42 +-
>  drivers/gpu/drm/amd/pm/swsmu/inc/amdgpu_smu.h      |     6 +
>  .../amd/pm/swsmu/inc/pmfw_if/smu_v13_0_6_ppsmc.h   |     3 +-
>  drivers/gpu/drm/amd/pm/swsmu/inc/smu_types.h       |     3 +-
>  drivers/gpu/drm/amd/pm/swsmu/smu11/arcturus_ppt.c  |    13 +-
>  drivers/gpu/drm/amd/pm/swsmu/smu11/navi10_ppt.c    |     9 +-
>  .../drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c    |     9 +-
>  drivers/gpu/drm/amd/pm/swsmu/smu11/smu_v11_0.c     |    16 +-
>  drivers/gpu/drm/amd/pm/swsmu/smu12/smu_v12_0.c     |     2 +-
>  drivers/gpu/drm/amd/pm/swsmu/smu13/aldebaran_ppt.c |    14 +-
>  drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0.c     |    18 +-
>  .../gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c   |     9 +-
>  .../gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_6_ppt.c   |   332 +-
>  .../gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c   |     9 +-
>  drivers/gpu/drm/amd/pm/swsmu/smu14/smu_v14_0.c     |    20 +-
>  .../gpu/drm/amd/pm/swsmu/smu14/smu_v14_0_0_ppt.c   |     5 +-
>  drivers/gpu/drm/amd/pm/swsmu/smu_cmn.c             |     9 +-
>  drivers/gpu/drm/amd/pm/swsmu/smu_cmn.h             |    10 +
>  drivers/gpu/drm/bridge/adv7511/adv7511_drv.c       |    69 +-
>  drivers/gpu/drm/bridge/analogix/anx7625.c          |    30 +-
>  .../gpu/drm/bridge/cadence/cdns-mhdp8546-core.c    |    28 +-
>  drivers/gpu/drm/bridge/chrontel-ch7033.c           |    12 +-
>  drivers/gpu/drm/bridge/display-connector.c         |     8 +-
>  drivers/gpu/drm/bridge/imx/Kconfig                 |    18 +
>  drivers/gpu/drm/bridge/imx/Makefile                |     2 +
>  drivers/gpu/drm/bridge/imx/imx8mp-hdmi-pvi.c       |   207 +
>  drivers/gpu/drm/bridge/imx/imx8mp-hdmi-tx.c        |   154 +
>  drivers/gpu/drm/bridge/ite-it6505.c                |    21 +-
>  drivers/gpu/drm/bridge/ite-it66121.c               |    16 +-
>  drivers/gpu/drm/bridge/lontium-lt8912b.c           |    20 +-
>  drivers/gpu/drm/bridge/lontium-lt9611.c            |     9 +-
>  drivers/gpu/drm/bridge/lontium-lt9611uxc.c         |    19 +-
>  .../drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c   |    18 +-
>  drivers/gpu/drm/bridge/nxp-ptn3460.c               |    22 +-
>  drivers/gpu/drm/bridge/samsung-dsim.c              |    18 +-
>  drivers/gpu/drm/bridge/sii902x.c                   |    38 +-
>  drivers/gpu/drm/bridge/simple-bridge.c             |    17 +-
>  drivers/gpu/drm/bridge/synopsys/dw-hdmi.c          |    45 +-
>  drivers/gpu/drm/bridge/tc358767.c                  |   195 +-
>  drivers/gpu/drm/bridge/ti-sn65dsi86.c              |     8 +-
>  drivers/gpu/drm/bridge/ti-tfp410.c                 |    18 +-
>  drivers/gpu/drm/ci/build.sh                        |     1 +
>  drivers/gpu/drm/ci/gitlab-ci.yml                   |    14 +-
>  drivers/gpu/drm/ci/test.yml                        |    31 +-
>  drivers/gpu/drm/ci/testlist.txt                    |  1937 +-
>  drivers/gpu/drm/ci/xfails/msm-apq8016-fails.txt    |     3 +-
>  drivers/gpu/drm/ci/xfails/msm-apq8096-fails.txt    |     2 -
>  drivers/gpu/drm/ci/xfails/msm-sc7180-fails.txt     |    30 -
>  drivers/gpu/drm/ci/xfails/msm-sc7180-flakes.txt    |    17 -
>  drivers/gpu/drm/ci/xfails/msm-sc7180-skips.txt     |     7 -
>  .../xfails/msm-sc7180-trogdor-kingoftown-fails.txt |    18 +
>  .../xfails/msm-sc7180-trogdor-kingoftown-skips.txt |     2 +
>  .../msm-sc7180-trogdor-lazor-limozeen-fails.txt    |    18 +
>  .../msm-sc7180-trogdor-lazor-limozeen-skips.txt    |     2 +
>  drivers/gpu/drm/ci/xfails/msm-sdm845-fails.txt     |     5 +-
>  drivers/gpu/drm/ci/xfails/msm-sdm845-flakes.txt    |    28 +-
>  drivers/gpu/drm/ci/xfails/msm-sdm845-skips.txt     |     7 +-
>  drivers/gpu/drm/display/Kconfig                    |    21 +
>  drivers/gpu/drm/display/Makefile                   |     2 +
>  drivers/gpu/drm/display/drm_dp_aux_bus.c           |     2 +-
>  drivers/gpu/drm/display/drm_dp_helper.c            |   179 +-
>  drivers/gpu/drm/display/drm_dp_mst_topology.c      |    23 +-
>  drivers/gpu/drm/display/drm_dp_tunnel.c            |  1949 +
>  drivers/gpu/drm/drm_bridge.c                       |    17 +-
>  drivers/gpu/drm/drm_bridge_connector.c             |    16 +-
>  drivers/gpu/drm/drm_crtc.c                         |    23 +-
>  drivers/gpu/drm/drm_debugfs.c                      |     4 -
>  drivers/gpu/drm/drm_edid.c                         |    25 +-
>  drivers/gpu/drm/drm_edid_load.c                    |   162 +-
>  drivers/gpu/drm/drm_exec.c                         |     2 +-
>  drivers/gpu/drm/drm_file.c                         |     2 +-
>  drivers/gpu/drm/drm_gem_vram_helper.c              |     2 -
>  drivers/gpu/drm/drm_ioc32.c                        |     4 +-
>  drivers/gpu/drm/drm_managed.c                      |    39 +
>  drivers/gpu/drm/drm_mipi_dsi.c                     |     2 +-
>  drivers/gpu/drm/drm_mode_config.c                  |     2 +-
>  drivers/gpu/drm/drm_modes.c                        |    22 +
>  drivers/gpu/drm/drm_modeset_helper.c               |    19 +-
>  drivers/gpu/drm/drm_modeset_lock.c                 |     2 +-
>  drivers/gpu/drm/drm_panel_orientation_quirks.c     |    12 +
>  drivers/gpu/drm/drm_print.c                        |    29 +-
>  drivers/gpu/drm/drm_probe_helper.c                 |    57 +-
>  drivers/gpu/drm/drm_syncobj.c                      |     7 +-
>  drivers/gpu/drm/etnaviv/etnaviv_cmd_parser.c       |     1 +
>  drivers/gpu/drm/etnaviv/etnaviv_drv.c              |    93 +-
>  drivers/gpu/drm/etnaviv/etnaviv_gem.c              |    12 +-
>  drivers/gpu/drm/etnaviv/etnaviv_gpu.c              |    33 +-
>  drivers/gpu/drm/etnaviv/etnaviv_gpu.h              |    12 +
>  drivers/gpu/drm/etnaviv/etnaviv_hwdb.c             |    43 +
>  drivers/gpu/drm/etnaviv/etnaviv_mmu.c              |     4 +-
>  drivers/gpu/drm/etnaviv/etnaviv_perfmon.c          |     4 +-
>  drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.h    |     1 -
>  drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_vdac.c   |     1 +
>  drivers/gpu/drm/i915/Kconfig                       |    14 +
>  drivers/gpu/drm/i915/Kconfig.debug                 |     1 +
>  drivers/gpu/drm/i915/Makefile                      |     3 +
>  drivers/gpu/drm/i915/display/dvo_ch7017.c          |     2 +-
>  drivers/gpu/drm/i915/display/dvo_ch7xxx.c          |     2 +-
>  drivers/gpu/drm/i915/display/dvo_ivch.c            |     2 +-
>  drivers/gpu/drm/i915/display/dvo_ns2501.c          |     6 +-
>  drivers/gpu/drm/i915/display/dvo_sil164.c          |     2 +-
>  drivers/gpu/drm/i915/display/dvo_tfp410.c          |     2 +-
>  drivers/gpu/drm/i915/display/i9xx_plane.c          |    30 +
>  drivers/gpu/drm/i915/display/i9xx_plane.h          |     7 +
>  drivers/gpu/drm/i915/display/i9xx_wm.c             |    81 +-
>  drivers/gpu/drm/i915/display/intel_atomic.c        |    10 +
>  drivers/gpu/drm/i915/display/intel_atomic_plane.c  |     6 +-
>  drivers/gpu/drm/i915/display/intel_backlight.c     |     2 +-
>  drivers/gpu/drm/i915/display/intel_bios.c          |   109 +-
>  drivers/gpu/drm/i915/display/intel_bios.h          |     8 +-
>  drivers/gpu/drm/i915/display/intel_cdclk.c         |   426 +-
>  drivers/gpu/drm/i915/display/intel_color.c         |    11 +-
>  drivers/gpu/drm/i915/display/intel_crt.c           |     8 +
>  drivers/gpu/drm/i915/display/intel_crtc.c          |   128 +-
>  .../gpu/drm/i915/display/intel_crtc_state_dump.c   |     5 +-
>  drivers/gpu/drm/i915/display/intel_cursor.c        |    63 +-
>  drivers/gpu/drm/i915/display/intel_cx0_phy.c       |   261 +-
>  drivers/gpu/drm/i915/display/intel_cx0_phy_regs.h  |    63 +-
>  drivers/gpu/drm/i915/display/intel_ddi.c           |    70 +-
>  drivers/gpu/drm/i915/display/intel_display.c       |   235 +-
>  drivers/gpu/drm/i915/display/intel_display_core.h  |    19 +-
>  .../gpu/drm/i915/display/intel_display_debugfs.c   |    94 +-
>  .../i915/display/intel_display_debugfs_params.c    |     1 +
>  .../gpu/drm/i915/display/intel_display_device.c    |     2 +-
>  .../gpu/drm/i915/display/intel_display_driver.c    |   188 +-
>  .../gpu/drm/i915/display/intel_display_driver.h    |     6 +
>  drivers/gpu/drm/i915/display/intel_display_irq.c   |    10 +-
>  drivers/gpu/drm/i915/display/intel_display_types.h |    62 +-
>  drivers/gpu/drm/i915/display/intel_dmc.c           |     2 +-
>  drivers/gpu/drm/i915/display/intel_dp.c            |   559 +-
>  drivers/gpu/drm/i915/display/intel_dp.h            |    23 +-
>  drivers/gpu/drm/i915/display/intel_dp_aux.c        |    29 +-
>  drivers/gpu/drm/i915/display/intel_dp_hdcp.c       |   149 +-
>  .../gpu/drm/i915/display/intel_dp_link_training.c  |    33 +-
>  .../gpu/drm/i915/display/intel_dp_link_training.h  |     1 +
>  drivers/gpu/drm/i915/display/intel_dp_mst.c        |    26 +-
>  drivers/gpu/drm/i915/display/intel_dp_tunnel.c     |   811 +
>  drivers/gpu/drm/i915/display/intel_dp_tunnel.h     |   133 +
>  drivers/gpu/drm/i915/display/intel_dpll_mgr.c      |   186 +-
>  drivers/gpu/drm/i915/display/intel_dpll_mgr.h      |    21 +-
>  drivers/gpu/drm/i915/display/intel_drrs.c          |     6 +
>  drivers/gpu/drm/i915/display/intel_dsb.c           |     6 +-
>  drivers/gpu/drm/i915/display/intel_dsi.h           |     4 -
>  drivers/gpu/drm/i915/display/intel_dvo.c           |    10 +
>  drivers/gpu/drm/i915/display/intel_dvo_dev.h       |    25 -
>  drivers/gpu/drm/i915/display/intel_fb.c            |     7 +-
>  drivers/gpu/drm/i915/display/intel_fbc.c           |    13 +-
>  drivers/gpu/drm/i915/display/intel_fbdev_fb.c      |     5 +-
>  drivers/gpu/drm/i915/display/intel_global_state.c  |   137 +-
>  drivers/gpu/drm/i915/display/intel_global_state.h  |    13 +-
>  drivers/gpu/drm/i915/display/intel_gmbus.c         |     5 +-
>  drivers/gpu/drm/i915/display/intel_hdcp.c          |   296 +-
>  drivers/gpu/drm/i915/display/intel_hdcp.h          |     7 +-
>  drivers/gpu/drm/i915/display/intel_hdcp_gsc.c      |     2 +-
>  drivers/gpu/drm/i915/display/intel_hdcp_regs.h     |    28 +-
>  drivers/gpu/drm/i915/display/intel_hdmi.c          |    22 +-
>  drivers/gpu/drm/i915/display/intel_hotplug.c       |   165 +-
>  drivers/gpu/drm/i915/display/intel_hotplug.h       |     4 +
>  drivers/gpu/drm/i915/display/intel_hotplug_irq.c   |     6 +-
>  drivers/gpu/drm/i915/display/intel_link_bw.c       |    27 +-
>  drivers/gpu/drm/i915/display/intel_link_bw.h       |     2 +-
>  drivers/gpu/drm/i915/display/intel_opregion.c      |   182 +-
>  drivers/gpu/drm/i915/display/intel_opregion.h      |    47 +-
>  drivers/gpu/drm/i915/display/intel_panel.c         |     4 +
>  drivers/gpu/drm/i915/display/intel_plane_initial.c |   255 +-
>  drivers/gpu/drm/i915/display/intel_plane_initial.h |     4 +-
>  drivers/gpu/drm/i915/display/intel_pps.c           |     2 +-
>  drivers/gpu/drm/i915/display/intel_psr.c           |   202 +-
>  drivers/gpu/drm/i915/display/intel_psr.h           |     6 -
>  drivers/gpu/drm/i915/display/intel_psr_regs.h      |    63 +
>  drivers/gpu/drm/i915/display/intel_sdvo.c          |   230 +-
>  drivers/gpu/drm/i915/display/intel_tc.c            |    40 +-
>  drivers/gpu/drm/i915/display/intel_tc.h            |     2 +-
>  drivers/gpu/drm/i915/display/intel_tv.c            |     7 +-
>  drivers/gpu/drm/i915/display/intel_vblank.c        |   130 +
>  drivers/gpu/drm/i915/display/intel_vblank.h        |    12 +
>  drivers/gpu/drm/i915/display/skl_universal_plane.c |    33 +
>  drivers/gpu/drm/i915/display/skl_universal_plane.h |     2 +
>  drivers/gpu/drm/i915/display/skl_watermark.c       |   108 +-
>  drivers/gpu/drm/i915/display/skl_watermark.h       |     4 +-
>  drivers/gpu/drm/i915/display/skl_watermark_regs.h  |     4 +
>  drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c     |     8 -
>  drivers/gpu/drm/i915/gem/i915_gem_pm.c             |    10 +
>  drivers/gpu/drm/i915/gem/i915_gem_region.c         |     2 +-
>  drivers/gpu/drm/i915/gem/i915_gem_stolen.c         |    25 +-
>  drivers/gpu/drm/i915/gem/i915_gem_ttm.c            |    50 +-
>  drivers/gpu/drm/i915/gem/i915_gem_userptr.c        |    45 +-
>  drivers/gpu/drm/i915/gem/i915_gem_userptr.h        |    14 -
>  drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c |    18 +-
>  drivers/gpu/drm/i915/gt/gen8_engine_cs.c           |     4 +-
>  drivers/gpu/drm/i915/gt/intel_engine_cs.c          |     3 +-
>  drivers/gpu/drm/i915/gt/intel_engine_heartbeat.c   |     6 +-
>  drivers/gpu/drm/i915/gt/intel_ggtt.c               |    10 +-
>  drivers/gpu/drm/i915/gt/intel_gt_sysfs_pm.c        |    18 +-
>  drivers/gpu/drm/i915/gt/intel_gtt.c                |     3 +-
>  drivers/gpu/drm/i915/gt/intel_mocs.c               |     2 +-
>  drivers/gpu/drm/i915/gt/intel_rc6.c                |     2 +-
>  drivers/gpu/drm/i915/gt/intel_region_lmem.c        |    14 +-
>  drivers/gpu/drm/i915/gt/intel_reset.c              |     3 +-
>  drivers/gpu/drm/i915/gt/intel_workarounds.c        |    30 +-
>  drivers/gpu/drm/i915/gt/selftest_context.c         |     3 +-
>  .../gpu/drm/i915/gt/selftest_engine_heartbeat.c    |    10 +-
>  drivers/gpu/drm/i915/gt/selftest_rc6.c             |     4 +-
>  drivers/gpu/drm/i915/gt/selftest_tlb.c             |     4 +-
>  drivers/gpu/drm/i915/gt/uc/intel_guc.h             |     2 -
>  drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c         |    21 +-
>  drivers/gpu/drm/i915/gt/uc/intel_guc_fw.c          |    10 +-
>  drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c  |   126 +-
>  drivers/gpu/drm/i915/gt/uc/intel_guc_submission.h  |     2 +
>  drivers/gpu/drm/i915/gt/uc/intel_huc.c             |    64 +-
>  drivers/gpu/drm/i915/gt/uc/intel_uc.c              |     4 +-
>  drivers/gpu/drm/i915/gvt/fb_decoder.h              |    11 -
>  drivers/gpu/drm/i915/gvt/gtt.h                     |     3 -
>  drivers/gpu/drm/i915/gvt/gvt.h                     |     5 -
>  drivers/gpu/drm/i915/gvt/interrupt.c               |     1 -
>  drivers/gpu/drm/i915/gvt/interrupt.h               |     2 -
>  drivers/gpu/drm/i915/gvt/kvmgt.c                   |     2 +-
>  drivers/gpu/drm/i915/gvt/mmio.h                    |     2 -
>  drivers/gpu/drm/i915/gvt/scheduler.h               |     2 -
>  drivers/gpu/drm/i915/i915_debugfs.c                |     2 +-
>  drivers/gpu/drm/i915/i915_driver.c                 |    28 +-
>  drivers/gpu/drm/i915/i915_drm_client.c             |     2 +-
>  drivers/gpu/drm/i915/i915_drm_client.h             |     2 -
>  drivers/gpu/drm/i915/i915_drv.h                    |     8 -
>  drivers/gpu/drm/i915/i915_gem.c                    |     5 -
>  drivers/gpu/drm/i915/i915_gpu_error.c              |     2 +-
>  drivers/gpu/drm/i915/i915_perf.c                   |     2 +-
>  drivers/gpu/drm/i915/i915_perf_types.h             |     1 -
>  drivers/gpu/drm/i915/i915_query.c                  |    35 +-
>  drivers/gpu/drm/i915/i915_reg.h                    |    18 +-
>  drivers/gpu/drm/i915/i915_request.c                |     1 -
>  drivers/gpu/drm/i915/i915_syncmap.c                |    19 +-
>  drivers/gpu/drm/i915/i915_utils.c                  |    17 +
>  drivers/gpu/drm/i915/i915_utils.h                  |     2 +
>  drivers/gpu/drm/i915/i915_vma_types.h              |     1 -
>  drivers/gpu/drm/i915/intel_memory_region.c         |    33 +-
>  drivers/gpu/drm/i915/intel_memory_region.h         |     5 +-
>  drivers/gpu/drm/i915/intel_region_ttm.c            |     8 +-
>  drivers/gpu/drm/i915/intel_uncore.c                |     5 +-
>  drivers/gpu/drm/i915/selftests/i915_active.c       |     8 +-
>  .../gpu/drm/i915/selftests/intel_memory_region.c   |     4 +-
>  drivers/gpu/drm/i915/soc/intel_pch.c               |    16 +-
>  drivers/gpu/drm/i915/soc/intel_pch.h               |     6 +-
>  drivers/gpu/drm/imx/dcss/dcss-blkctl.c             |    13 +-
>  drivers/gpu/drm/imx/dcss/dcss-ctxld.c              |    14 +-
>  drivers/gpu/drm/imx/dcss/dcss-dev.c                |    17 +-
>  drivers/gpu/drm/imx/dcss/dcss-dev.h                |     1 -
>  drivers/gpu/drm/imx/dcss/dcss-dpr.c                |    21 +-
>  drivers/gpu/drm/imx/dcss/dcss-drv.c                |    12 +-
>  drivers/gpu/drm/imx/dcss/dcss-dtg.c                |    26 +-
>  drivers/gpu/drm/imx/dcss/dcss-scaler.c             |    21 +-
>  drivers/gpu/drm/imx/dcss/dcss-ss.c                 |    12 +-
>  drivers/gpu/drm/imx/ipuv3/imx-ldb.c                |     2 +-
>  drivers/gpu/drm/ingenic/Kconfig                    |     1 -
>  drivers/gpu/drm/lima/lima_ctx.c                    |     2 +-
>  drivers/gpu/drm/lima/lima_ctx.h                    |     1 -
>  drivers/gpu/drm/lima/lima_gem.c                    |    23 +-
>  drivers/gpu/drm/lima/lima_gp.c                     |    39 +-
>  drivers/gpu/drm/lima/lima_l2_cache.c               |     6 +-
>  drivers/gpu/drm/lima/lima_mmu.c                    |    18 +-
>  drivers/gpu/drm/lima/lima_pmu.c                    |     3 +-
>  drivers/gpu/drm/lima/lima_pp.c                     |    37 +-
>  drivers/gpu/drm/lima/lima_sched.c                  |    38 +-
>  drivers/gpu/drm/lima/lima_sched.h                  |     3 +-
>  drivers/gpu/drm/loongson/lsdc_drv.c                |     2 +-
>  drivers/gpu/drm/loongson/lsdc_ttm.c                |     2 -
>  drivers/gpu/drm/mcde/Kconfig                       |     1 -
>  drivers/gpu/drm/mediatek/mtk_disp_drv.h            |     4 +
>  drivers/gpu/drm/mediatek/mtk_disp_merge.c          |    65 +
>  drivers/gpu/drm/mediatek/mtk_disp_ovl_adaptor.c    |    43 +
>  drivers/gpu/drm/mediatek/mtk_dp.c                  |    31 +-
>  drivers/gpu/drm/mediatek/mtk_drm_crtc.c            |    29 +-
>  drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c        |     1 +
>  drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.h        |    12 +
>  drivers/gpu/drm/mediatek/mtk_drm_drv.c             |     4 +-
>  drivers/gpu/drm/mediatek/mtk_dsi.c                 |   310 +-
>  drivers/gpu/drm/mediatek/mtk_hdmi.c                |    26 +-
>  drivers/gpu/drm/meson/meson_drv.c                  |     6 +-
>  drivers/gpu/drm/meson/meson_encoder_cvbs.c         |    24 +-
>  drivers/gpu/drm/meson/meson_encoder_cvbs.h         |     2 +-
>  drivers/gpu/drm/meson/meson_encoder_dsi.c          |    23 +-
>  drivers/gpu/drm/meson/meson_encoder_dsi.h          |     2 +-
>  drivers/gpu/drm/meson/meson_encoder_hdmi.c         |    35 +-
>  drivers/gpu/drm/meson/meson_encoder_hdmi.h         |     2 +-
>  drivers/gpu/drm/mgag200/Kconfig                    |    12 +
>  drivers/gpu/drm/mgag200/mgag200_drv.c              |    26 +-
>  drivers/gpu/drm/mgag200/mgag200_mode.c             |    22 +-
>  drivers/gpu/drm/msm/Makefile                       |     5 +-
>  drivers/gpu/drm/msm/adreno/a2xx.xml.h              |    73 +-
>  drivers/gpu/drm/msm/adreno/a3xx.xml.h              |   131 +-
>  drivers/gpu/drm/msm/adreno/a3xx_gpu.c              |    13 +-
>  drivers/gpu/drm/msm/adreno/a4xx.xml.h              |   182 +-
>  drivers/gpu/drm/msm/adreno/a5xx.xml.h              |   666 +-
>  drivers/gpu/drm/msm/adreno/a6xx.xml.h              |  5275 +-
>  drivers/gpu/drm/msm/adreno/a6xx_gmu.c              |     8 +-
>  drivers/gpu/drm/msm/adreno/a6xx_gmu.xml.h          |   179 +-
>  drivers/gpu/drm/msm/adreno/a6xx_gpu.c              |   220 +-
>  drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c        |   727 +-
>  drivers/gpu/drm/msm/adreno/a6xx_gpu_state.h        |   311 +-
>  drivers/gpu/drm/msm/adreno/adreno_common.xml.h     |   260 +-
>  drivers/gpu/drm/msm/adreno/adreno_device.c         |    69 +-
>  .../gpu/drm/msm/adreno/adreno_gen7_0_0_snapshot.h  |   928 +
>  .../gpu/drm/msm/adreno/adreno_gen7_2_0_snapshot.h  |   753 +
>  drivers/gpu/drm/msm/adreno/adreno_gpu.h            |    31 +-
>  drivers/gpu/drm/msm/adreno/adreno_pm4.xml.h        |   573 +-
>  .../gpu/drm/msm/disp/dpu1/catalog/dpu_3_2_sdm660.h |   291 +
>  .../gpu/drm/msm/disp/dpu1/catalog/dpu_3_3_sdm630.h |   225 +
>  .../drm/msm/disp/dpu1/catalog/dpu_9_2_x1e80100.h   |   449 +
>  drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c        |   347 +-
>  drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.h        |    33 +-
>  drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys.h   |    41 +-
>  .../gpu/drm/msm/disp/dpu1/dpu_encoder_phys_cmd.c   |    95 +-
>  .../gpu/drm/msm/disp/dpu1/dpu_encoder_phys_vid.c   |    92 +-
>  .../gpu/drm/msm/disp/dpu1/dpu_encoder_phys_wb.c    |   188 +-
>  drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.c     |     4 +
>  drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.h     |     3 +
>  drivers/gpu/drm/msm/disp/dpu1/dpu_hw_cdm.c         |     2 +-
>  drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.c         |    17 +
>  drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.h         |    10 +
>  drivers/gpu/drm/msm/disp/dpu1/dpu_hw_intf.c        |    15 +-
>  drivers/gpu/drm/msm/disp/dpu1/dpu_hw_intf.h        |     1 +
>  drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c            |   133 +-
>  drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h            |     1 -
>  drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c             |   154 +-
>  drivers/gpu/drm/msm/disp/dpu1/dpu_trace.h          |    74 +-
>  drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.c      |    61 +-
>  drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.h      |     3 +-
>  drivers/gpu/drm/msm/disp/mdp5/mdp5_cmd_encoder.c   |    42 -
>  drivers/gpu/drm/msm/disp/mdp5/mdp5_encoder.c       |    42 -
>  drivers/gpu/drm/msm/disp/mdp5/mdp5_irq.c           |     2 -
>  drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c           |    71 +-
>  drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.h           |    10 -
>  drivers/gpu/drm/msm/disp/mdp5/mdp5_smp.c           |    12 +-
>  drivers/gpu/drm/msm/disp/mdp5/mdp5_smp.h           |     4 +-
>  drivers/gpu/drm/msm/dp/dp_audio.c                  |   101 +-
>  drivers/gpu/drm/msm/dp/dp_aux.c                    |     9 +-
>  drivers/gpu/drm/msm/dp/dp_aux.h                    |     2 +
>  drivers/gpu/drm/msm/dp/dp_catalog.c                |   271 +-
>  drivers/gpu/drm/msm/dp/dp_catalog.h                |    15 +-
>  drivers/gpu/drm/msm/dp/dp_ctrl.c                   |   375 +-
>  drivers/gpu/drm/msm/dp/dp_ctrl.h                   |    17 +-
>  drivers/gpu/drm/msm/dp/dp_debug.c                  |     3 +-
>  drivers/gpu/drm/msm/dp/dp_display.c                |   185 +-
>  drivers/gpu/drm/msm/dp/dp_display.h                |     3 +-
>  drivers/gpu/drm/msm/dp/dp_drm.c                    |     6 +-
>  drivers/gpu/drm/msm/dp/dp_drm.h                    |     3 +-
>  drivers/gpu/drm/msm/dp/dp_link.h                   |    23 -
>  drivers/gpu/drm/msm/dp/dp_panel.c                  |   119 +
>  drivers/gpu/drm/msm/dp/dp_panel.h                  |     2 +
>  drivers/gpu/drm/msm/dp/dp_parser.c                 |   327 -
>  drivers/gpu/drm/msm/dp/dp_parser.h                 |   155 -
>  drivers/gpu/drm/msm/dp/dp_power.c                  |   183 -
>  drivers/gpu/drm/msm/dp/dp_power.h                  |    95 -
>  drivers/gpu/drm/msm/dp/dp_reg.h                    |     9 +
>  drivers/gpu/drm/msm/dp/dp_utils.c                  |    96 +
>  drivers/gpu/drm/msm/dp/dp_utils.h                  |    36 +
>  drivers/gpu/drm/msm/dsi/dsi.c                      |    10 +-
>  drivers/gpu/drm/msm/dsi/dsi.h                      |    22 +-
>  drivers/gpu/drm/msm/dsi/dsi_host.c                 |    51 +-
>  drivers/gpu/drm/msm/dsi/dsi_manager.c              |    65 +-
>  drivers/gpu/drm/msm/hdmi/hdmi_bridge.c             |    33 +-
>  drivers/gpu/drm/msm/msm_drv.c                      |    33 +
>  drivers/gpu/drm/msm/msm_drv.h                      |    36 +-
>  drivers/gpu/drm/msm/msm_io_utils.c                 |    13 +
>  drivers/gpu/drm/msm/msm_kms.h                      |     4 -
>  drivers/gpu/drm/msm/msm_mdss.c                     |    64 +
>  drivers/gpu/drm/mxsfb/lcdif_drv.c                  |     7 +-
>  drivers/gpu/drm/mxsfb/mxsfb_drv.c                  |     7 +-
>  drivers/gpu/drm/nouveau/dispnv04/crtc.c            |     4 +-
>  drivers/gpu/drm/nouveau/dispnv50/disp.c            |     1 +
>  drivers/gpu/drm/nouveau/dispnv50/head.c            |     1 +
>  drivers/gpu/drm/nouveau/nouveau_bo.c               |    59 +-
>  drivers/gpu/drm/nouveau/nouveau_bo.h               |     1 -
>  drivers/gpu/drm/nouveau/nouveau_connector.h        |     2 +-
>  drivers/gpu/drm/nouveau/nouveau_ioc32.c            |     4 +-
>  drivers/gpu/drm/nouveau/nouveau_svm.c              |    10 +-
>  drivers/gpu/drm/nouveau/nvif/outp.c                |     3 +-
>  drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c     |     2 +-
>  drivers/gpu/drm/nouveau/nvkm/subdev/acr/lsfw.c     |     3 +-
>  drivers/gpu/drm/nouveau/nvkm/subdev/bios/init.c    |   136 +-
>  drivers/gpu/drm/nouveau/nvkm/subdev/volt/gk20a.c   |     4 +-
>  drivers/gpu/drm/omapdrm/dss/hdmi4.c                |    22 +-
>  drivers/gpu/drm/omapdrm/dss/hdmi5.c                |    12 +-
>  drivers/gpu/drm/panel/Kconfig                      |   231 +-
>  drivers/gpu/drm/panel/Makefile                     |     3 +
>  drivers/gpu/drm/panel/panel-boe-himax8279d.c       |    18 +-
>  .../gpu/drm/panel/panel-boe-th101mb31ig002-28a.c   |   322 +
>  drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c     |     2 +
>  drivers/gpu/drm/panel/panel-edp.c                  |   119 +-
>  drivers/gpu/drm/panel/panel-himax-hx83112a.c       |   372 +
>  drivers/gpu/drm/panel/panel-leadtek-ltk050h3146w.c |    23 +-
>  drivers/gpu/drm/panel/panel-leadtek-ltk500hd1829.c |   265 +-
>  drivers/gpu/drm/panel/panel-novatek-nt35510.c      |   424 +-
>  drivers/gpu/drm/panel/panel-novatek-nt36523.c      |     8 +-
>  drivers/gpu/drm/panel/panel-novatek-nt36672e.c     |   643 +
>  drivers/gpu/drm/panel/panel-samsung-atna33xc20.c   |     2 +
>  drivers/gpu/drm/panel/panel-simple.c               |    81 +-
>  drivers/gpu/drm/panel/panel-sitronix-st7703.c      |   104 +
>  drivers/gpu/drm/panel/panel-visionox-r66451.c      |     1 +
>  drivers/gpu/drm/panel/panel-visionox-vtdr6130.c    |     1 +
>  drivers/gpu/drm/pl111/Kconfig                      |     1 -
>  drivers/gpu/drm/qxl/qxl_object.c                   |     2 -
>  drivers/gpu/drm/qxl/qxl_ttm.c                      |     2 -
>  drivers/gpu/drm/radeon/atom-bits.h                 |     2 +-
>  drivers/gpu/drm/radeon/atom.c                      |    47 +-
>  drivers/gpu/drm/radeon/atom.h                      |     4 +-
>  drivers/gpu/drm/radeon/atombios_crtc.c             |    28 +-
>  drivers/gpu/drm/radeon/atombios_dp.c               |     4 +-
>  drivers/gpu/drm/radeon/atombios_encoders.c         |    38 +-
>  drivers/gpu/drm/radeon/atombios_i2c.c              |     2 +-
>  drivers/gpu/drm/radeon/btc_dpm.c                   |    90 +-
>  drivers/gpu/drm/radeon/ci_dpm.c                    |    31 +-
>  drivers/gpu/drm/radeon/ci_dpm.h                    |     6 +-
>  drivers/gpu/drm/radeon/cik.c                       |    40 +-
>  drivers/gpu/drm/radeon/clearstate_cayman.h         |     9 +-
>  drivers/gpu/drm/radeon/clearstate_ci.h             |     3 +-
>  drivers/gpu/drm/radeon/evergreen.c                 |    20 +-
>  drivers/gpu/drm/radeon/evergreen_cs.c              |     4 +-
>  drivers/gpu/drm/radeon/evergreen_reg.h             |    10 +-
>  drivers/gpu/drm/radeon/evergreen_smc.h             |     9 +-
>  drivers/gpu/drm/radeon/kv_dpm.c                    |     9 +-
>  drivers/gpu/drm/radeon/kv_smc.c                    |     2 +-
>  drivers/gpu/drm/radeon/ni.c                        |    33 +-
>  drivers/gpu/drm/radeon/ni_dpm.c                    |     3 -
>  drivers/gpu/drm/radeon/ni_dpm.h                    |    12 +-
>  drivers/gpu/drm/radeon/nislands_smc.h              |    51 +-
>  drivers/gpu/drm/radeon/r100.c                      |     2 +-
>  drivers/gpu/drm/radeon/r300_reg.h                  |     2 +-
>  drivers/gpu/drm/radeon/r600.c                      |     3 +-
>  drivers/gpu/drm/radeon/r600_dpm.c                  |     6 +-
>  drivers/gpu/drm/radeon/r600_dpm.h                  |     3 +-
>  drivers/gpu/drm/radeon/radeon.h                    |     6 +-
>  drivers/gpu/drm/radeon/radeon_asic.c               |     8 +-
>  drivers/gpu/drm/radeon/radeon_atombios.c           |    44 +-
>  drivers/gpu/drm/radeon/radeon_atpx_handler.c       |    12 +-
>  drivers/gpu/drm/radeon/radeon_audio.c              |    11 +-
>  drivers/gpu/drm/radeon/radeon_audio.h              |     6 +-
>  drivers/gpu/drm/radeon/radeon_mode.h               |     9 +-
>  drivers/gpu/drm/radeon/radeon_object.c             |     2 -
>  drivers/gpu/drm/radeon/radeon_pm.c                 |     4 +-
>  drivers/gpu/drm/radeon/radeon_ttm.c                |     8 +-
>  drivers/gpu/drm/radeon/radeon_uvd.c                |     1 -
>  drivers/gpu/drm/radeon/rs400.c                     |     4 +-
>  drivers/gpu/drm/radeon/rs600.c                     |     3 +-
>  drivers/gpu/drm/radeon/rv515.c                     |     3 +-
>  drivers/gpu/drm/radeon/rv6xx_dpm.h                 |     3 +-
>  drivers/gpu/drm/radeon/rv770_dpm.c                 |     4 +-
>  drivers/gpu/drm/radeon/rv770_smc.h                 |    27 +-
>  drivers/gpu/drm/radeon/si.c                        |   103 +-
>  drivers/gpu/drm/radeon/si_dpm.c                    |   132 +-
>  drivers/gpu/drm/radeon/si_dpm.h                    |    21 +-
>  drivers/gpu/drm/radeon/smu7.h                      |     6 +-
>  drivers/gpu/drm/radeon/smu7_discrete.h             |    51 +-
>  drivers/gpu/drm/radeon/smu7_fusion.h               |    42 +-
>  drivers/gpu/drm/radeon/sumo_dpm.c                  |    18 +-
>  drivers/gpu/drm/radeon/trinity_dpm.c               |    22 +-
>  drivers/gpu/drm/radeon/trinity_dpm.h               |     3 +-
>  drivers/gpu/drm/radeon/uvd_v1_0.c                  |     2 +-
>  drivers/gpu/drm/renesas/Kconfig                    |     1 +
>  drivers/gpu/drm/renesas/Makefile                   |     1 +
>  drivers/gpu/drm/renesas/rz-du/Kconfig              |    12 +
>  drivers/gpu/drm/renesas/rz-du/Makefile             |     8 +
>  drivers/gpu/drm/renesas/rz-du/rzg2l_du_crtc.c      |   422 +
>  drivers/gpu/drm/renesas/rz-du/rzg2l_du_crtc.h      |    89 +
>  drivers/gpu/drm/renesas/rz-du/rzg2l_du_drv.c       |   175 +
>  drivers/gpu/drm/renesas/rz-du/rzg2l_du_drv.h       |    78 +
>  drivers/gpu/drm/renesas/rz-du/rzg2l_du_encoder.c   |    72 +
>  drivers/gpu/drm/renesas/rz-du/rzg2l_du_encoder.h   |    32 +
>  drivers/gpu/drm/renesas/rz-du/rzg2l_du_kms.c       |   371 +
>  drivers/gpu/drm/renesas/rz-du/rzg2l_du_kms.h       |    43 +
>  drivers/gpu/drm/renesas/rz-du/rzg2l_du_vsp.c       |   349 +
>  drivers/gpu/drm/renesas/rz-du/rzg2l_du_vsp.h       |    82 +
>  drivers/gpu/drm/rockchip/analogix_dp-rockchip.c    |     3 +
>  drivers/gpu/drm/rockchip/inno_hdmi.c               |   549 +-
>  drivers/gpu/drm/rockchip/inno_hdmi.h               |     5 -
>  drivers/gpu/drm/rockchip/rockchip_lvds.c           |     3 +-
>  drivers/gpu/drm/rockchip/rockchip_vop_reg.c        |    13 +-
>  drivers/gpu/drm/rockchip/rockchip_vop_reg.h        |     3 +
>  drivers/gpu/drm/scheduler/sched_fence.c            |     4 +-
>  drivers/gpu/drm/scheduler/sched_main.c             |    11 +-
>  drivers/gpu/drm/solomon/ssd130x-spi.c              |     7 +
>  drivers/gpu/drm/solomon/ssd130x.c                  |   370 +
>  drivers/gpu/drm/solomon/ssd130x.h                  |     5 +-
>  drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c             |   134 +-
>  drivers/gpu/drm/tegra/dpaux.c                      |    14 +-
>  drivers/gpu/drm/tegra/drm.h                        |     2 +-
>  drivers/gpu/drm/tegra/dsi.c                        |    59 +-
>  drivers/gpu/drm/tegra/fb.c                         |     1 +
>  drivers/gpu/drm/tegra/hdmi.c                       |    21 +-
>  drivers/gpu/drm/tegra/output.c                     |    17 +-
>  drivers/gpu/drm/tegra/rgb.c                        |    18 +-
>  drivers/gpu/drm/tegra/sor.c                        |     1 +
>  drivers/gpu/drm/tests/drm_connector_test.c         |   170 +-
>  drivers/gpu/drm/tests/drm_kunit_helpers.c          |   150 +
>  drivers/gpu/drm/tests/drm_managed_test.c           |    77 +-
>  drivers/gpu/drm/tests/drm_mm_test.c                |     2 +-
>  drivers/gpu/drm/tidss/tidss_crtc.c                 |    10 +
>  drivers/gpu/drm/tidss/tidss_plane.c                |     2 +-
>  drivers/gpu/drm/tilcdc/tilcdc_drv.c                |    19 +-
>  drivers/gpu/drm/ttm/tests/Makefile                 |     3 +
>  drivers/gpu/drm/ttm/tests/ttm_bo_test.c            |   622 +
>  drivers/gpu/drm/ttm/tests/ttm_kunit_helpers.c      |    48 +-
>  drivers/gpu/drm/ttm/tests/ttm_kunit_helpers.h      |     3 +
>  drivers/gpu/drm/ttm/tests/ttm_pool_test.c          |     3 +-
>  drivers/gpu/drm/ttm/tests/ttm_resource_test.c      |   335 +
>  drivers/gpu/drm/ttm/tests/ttm_tt_test.c            |   295 +
>  drivers/gpu/drm/ttm/ttm_bo.c                       |    30 +-
>  drivers/gpu/drm/ttm/ttm_bo_util.c                  |    13 +-
>  drivers/gpu/drm/ttm/ttm_resource.c                 |    76 +-
>  drivers/gpu/drm/ttm/ttm_tt.c                       |    15 +
>  drivers/gpu/drm/tve200/Kconfig                     |     1 -
>  drivers/gpu/drm/v3d/v3d_bo.c                       |    12 +-
>  drivers/gpu/drm/v3d/v3d_debugfs.c                  |    17 +-
>  drivers/gpu/drm/v3d/v3d_drv.h                      |     2 +
>  drivers/gpu/drm/v3d/v3d_irq.c                      |     2 +-
>  drivers/gpu/drm/v3d/v3d_mmu.c                      |     2 -
>  drivers/gpu/drm/vc4/vc4_hdmi.c                     |     1 +
>  drivers/gpu/drm/vc4/vc4_plane.c                    |    10 +-
>  drivers/gpu/drm/virtio/virtgpu_submit.c            |     6 +-
>  drivers/gpu/drm/vkms/Kconfig                       |    15 +
>  drivers/gpu/drm/vkms/vkms_composer.c               |    14 +-
>  drivers/gpu/drm/vmwgfx/ttm_object.c                |     6 +-
>  drivers/gpu/drm/vmwgfx/ttm_object.h                |     3 +-
>  drivers/gpu/drm/vmwgfx/vmwgfx_bo.c                 |    33 +-
>  drivers/gpu/drm/vmwgfx/vmwgfx_drv.h                |     1 -
>  drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c            |    20 +-
>  drivers/gpu/drm/vmwgfx/vmwgfx_gmrid_manager.c      |     5 +-
>  drivers/gpu/drm/vmwgfx/vmwgfx_kms.c                |   300 +-
>  drivers/gpu/drm/vmwgfx/vmwgfx_kms.h                |     6 +-
>  drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c                |     5 +-
>  drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c               |     5 +-
>  drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c               |    21 +-
>  drivers/gpu/drm/vmwgfx/vmwgfx_surface.c            |    18 +-
>  drivers/gpu/drm/vmwgfx/vmwgfx_ttm_buffer.c         |    32 -
>  drivers/gpu/drm/xe/.kunitconfig                    |     5 +
>  drivers/gpu/drm/xe/Kconfig                         |     3 +-
>  drivers/gpu/drm/xe/Kconfig.debug                   |     1 -
>  drivers/gpu/drm/xe/Makefile                        |    45 +-
>  drivers/gpu/drm/xe/abi/gsc_proxy_commands_abi.h    |    44 +
>  drivers/gpu/drm/xe/abi/guc_actions_sriov_abi.h     |   174 +
>  drivers/gpu/drm/xe/abi/guc_communication_ctb_abi.h |     3 +-
>  drivers/gpu/drm/xe/abi/guc_messages_abi.h          |     2 +
>  drivers/gpu/drm/xe/abi/guc_relay_actions_abi.h     |    79 +
>  .../gpu/drm/xe/abi/guc_relay_communication_abi.h   |   118 +
>  drivers/gpu/drm/xe/compat-i915-headers/i915_drv.h  |    10 +-
>  .../drm/xe/compat-i915-headers/i915_gem_stolen.h   |     3 +
>  drivers/gpu/drm/xe/{ => display}/xe_display.c      |     0
>  drivers/gpu/drm/xe/{ => display}/xe_display.h      |     0
>  drivers/gpu/drm/xe/display/xe_plane_initial.c      |    67 +-
>  drivers/gpu/drm/xe/instructions/xe_mi_commands.h   |     3 +
>  drivers/gpu/drm/xe/regs/xe_engine_regs.h           |     6 +
>  drivers/gpu/drm/xe/regs/xe_gt_regs.h               |    27 +-
>  drivers/gpu/drm/xe/regs/xe_lrc_layout.h            |     9 +
>  drivers/gpu/drm/xe/regs/xe_pcode_regs.h            |    21 +
>  drivers/gpu/drm/xe/tests/Makefile                  |     7 +-
>  drivers/gpu/drm/xe/tests/xe_guc_db_mgr_test.c      |   201 +
>  drivers/gpu/drm/xe/tests/xe_guc_relay_test.c       |   522 +
>  drivers/gpu/drm/xe/tests/xe_kunit_helpers.c        |    90 +
>  drivers/gpu/drm/xe/tests/xe_kunit_helpers.h        |    17 +
>  drivers/gpu/drm/xe/tests/xe_mocs.c                 |    36 +
>  drivers/gpu/drm/xe/tests/xe_mocs_test.c            |     1 +
>  drivers/gpu/drm/xe/tests/xe_mocs_test.h            |     1 +
>  drivers/gpu/drm/xe/tests/xe_pci.c                  |     3 +
>  drivers/gpu/drm/xe/tests/xe_pci_test.c             |     5 -
>  drivers/gpu/drm/xe/tests/xe_pci_test.h             |     2 +
>  drivers/gpu/drm/xe/tests/xe_rtp_test.c             |    10 +-
>  drivers/gpu/drm/xe/tests/xe_test_mod.c             |    10 +
>  drivers/gpu/drm/xe/tests/xe_wa_test.c              |    16 +-
>  drivers/gpu/drm/xe/xe_bo.c                         |   134 +-
>  drivers/gpu/drm/xe/xe_bo.h                         |     7 +-
>  drivers/gpu/drm/xe/xe_bo_types.h                   |     3 +
>  drivers/gpu/drm/xe/xe_debugfs.c                    |     1 +
>  drivers/gpu/drm/xe/xe_devcoredump.c                |    55 +-
>  drivers/gpu/drm/xe/xe_devcoredump.h                |     6 +-
>  drivers/gpu/drm/xe/xe_devcoredump_types.h          |    13 +-
>  drivers/gpu/drm/xe/xe_device.c                     |    75 +-
>  drivers/gpu/drm/xe/xe_device.h                     |    10 +
>  drivers/gpu/drm/xe/xe_device_types.h               |   166 +-
>  drivers/gpu/drm/xe/xe_drm_client.c                 |    14 +-
>  drivers/gpu/drm/xe/xe_exec.c                       |    42 +-
>  drivers/gpu/drm/xe/xe_exec_queue.c                 |   133 +-
>  drivers/gpu/drm/xe/xe_exec_queue.h                 |     3 +-
>  drivers/gpu/drm/xe/xe_exec_queue_types.h           |    55 +-
>  drivers/gpu/drm/xe/xe_execlist.c                   |     8 -
>  drivers/gpu/drm/xe/xe_ggtt.c                       |    81 +-
>  drivers/gpu/drm/xe/xe_ggtt.h                       |     3 +
>  drivers/gpu/drm/xe/xe_gsc.c                        |    71 +-
>  drivers/gpu/drm/xe/xe_gsc.h                        |     1 +
>  drivers/gpu/drm/xe/xe_gsc_proxy.c                  |   537 +
>  drivers/gpu/drm/xe/xe_gsc_proxy.h                  |    20 +
>  drivers/gpu/drm/xe/xe_gsc_submit.c                 |    20 +
>  drivers/gpu/drm/xe/xe_gsc_submit.h                 |     1 +
>  drivers/gpu/drm/xe/xe_gsc_types.h                  |    33 +
>  drivers/gpu/drm/xe/xe_gt.c                         |    92 +-
>  drivers/gpu/drm/xe/xe_gt.h                         |     2 +
>  drivers/gpu/drm/xe/xe_gt_mcr.c                     |    17 +
>  drivers/gpu/drm/xe/xe_gt_pagefault.c               |    44 +-
>  drivers/gpu/drm/xe/xe_gt_printk.h                  |    44 +
>  drivers/gpu/drm/xe/xe_gt_sriov_printk.h            |    34 +
>  drivers/gpu/drm/xe/xe_gt_tlb_invalidation.c        |    13 +-
>  drivers/gpu/drm/xe/xe_gt_topology.c                |     4 +-
>  drivers/gpu/drm/xe/xe_gt_types.h                   |   118 +-
>  drivers/gpu/drm/xe/xe_guc.c                        |   115 +-
>  drivers/gpu/drm/xe/xe_guc.h                        |     1 +
>  drivers/gpu/drm/xe/xe_guc_ads.c                    |     2 +-
>  drivers/gpu/drm/xe/xe_guc_ct.c                     |   255 +-
>  drivers/gpu/drm/xe/xe_guc_ct.h                     |    12 +-
>  drivers/gpu/drm/xe/xe_guc_ct_types.h               |    22 +-
>  drivers/gpu/drm/xe/xe_guc_db_mgr.c                 |   266 +
>  drivers/gpu/drm/xe/xe_guc_db_mgr.h                 |    22 +
>  drivers/gpu/drm/xe/xe_guc_fwif.h                   |     1 +
>  drivers/gpu/drm/xe/xe_guc_hwconfig.c               |     2 +-
>  drivers/gpu/drm/xe/xe_guc_hxg_helpers.h            |   108 +
>  drivers/gpu/drm/xe/xe_guc_log.c                    |     2 +-
>  drivers/gpu/drm/xe/xe_guc_pc.c                     |    19 +-
>  drivers/gpu/drm/xe/xe_guc_pc.h                     |     1 -
>  drivers/gpu/drm/xe/xe_guc_relay.c                  |   941 +
>  drivers/gpu/drm/xe/xe_guc_relay.h                  |    37 +
>  drivers/gpu/drm/xe/xe_guc_relay_types.h            |    36 +
>  drivers/gpu/drm/xe/xe_guc_submit.c                 |    88 +-
>  drivers/gpu/drm/xe/xe_guc_submit.h                 |     4 +-
>  drivers/gpu/drm/xe/xe_guc_submit_types.h           |    18 +-
>  drivers/gpu/drm/xe/xe_guc_types.h                  |    47 +-
>  drivers/gpu/drm/xe/xe_heci_gsc.c                   |     2 +-
>  drivers/gpu/drm/xe/xe_huc.c                        |    19 +
>  drivers/gpu/drm/xe/xe_huc.h                        |     1 +
>  drivers/gpu/drm/xe/xe_hw_engine.c                  |   144 +-
>  drivers/gpu/drm/xe/xe_hw_engine_class_sysfs.c      |    38 +-
>  drivers/gpu/drm/xe/xe_hw_engine_types.h            |    82 +-
>  drivers/gpu/drm/xe/xe_hwmon.c                      |    32 +-
>  drivers/gpu/drm/xe/xe_irq.c                        |   136 +-
>  drivers/gpu/drm/xe/xe_lrc.c                        |    38 +
>  drivers/gpu/drm/xe/xe_lrc_types.h                  |     6 +-
>  drivers/gpu/drm/xe/xe_memirq.c                     |   430 +
>  drivers/gpu/drm/xe/xe_memirq.h                     |    26 +
>  drivers/gpu/drm/xe/xe_memirq_types.h               |    37 +
>  drivers/gpu/drm/xe/xe_migrate.c                    |    27 +-
>  drivers/gpu/drm/xe/xe_mmio.c                       |     9 +-
>  drivers/gpu/drm/xe/xe_mocs.c                       |    27 +-
>  drivers/gpu/drm/xe/xe_pat.c                        |     5 +
>  drivers/gpu/drm/xe/xe_pci.c                        |    10 +-
>  drivers/gpu/drm/xe/xe_pcode_api.h                  |     7 +
>  drivers/gpu/drm/xe/xe_pm.c                         |    38 +-
>  drivers/gpu/drm/xe/xe_pm.h                         |     1 +
>  drivers/gpu/drm/xe/xe_pt.c                         |     5 +-
>  drivers/gpu/drm/xe/xe_query.c                      |    50 +-
>  drivers/gpu/drm/xe/xe_reg_sr.c                     |     2 +-
>  drivers/gpu/drm/xe/xe_reg_whitelist.c              |     8 +
>  drivers/gpu/drm/xe/xe_ring_ops.c                   |    60 +-
>  drivers/gpu/drm/xe/xe_sched_job.c                  |    38 +
>  drivers/gpu/drm/xe/xe_sched_job.h                  |     5 +
>  drivers/gpu/drm/xe/xe_sched_job_types.h            |    11 +-
>  drivers/gpu/drm/xe/xe_sriov.c                      |    32 +
>  drivers/gpu/drm/xe/xe_sriov.h                      |     1 +
>  drivers/gpu/drm/xe/xe_sriov_types.h                |    12 +
>  drivers/gpu/drm/xe/xe_tile_sysfs.c                 |     3 +
>  drivers/gpu/drm/xe/xe_trace.h                      |    55 +-
>  drivers/gpu/drm/xe/xe_ttm_stolen_mgr.c             |     8 +-
>  drivers/gpu/drm/xe/xe_tuning.c                     |     9 +-
>  drivers/gpu/drm/xe/xe_uc.c                         |    33 +-
>  drivers/gpu/drm/xe/xe_uc.h                         |     1 +
>  drivers/gpu/drm/xe/xe_uc_fw.c                      |    60 +-
>  drivers/gpu/drm/xe/xe_uc_fw_types.h                |     9 +-
>  drivers/gpu/drm/xe/xe_vm.c                         |   202 +-
>  drivers/gpu/drm/xe/xe_vm.h                         |     7 +-
>  drivers/gpu/drm/xe/xe_vm_types.h                   |    32 +-
>  drivers/gpu/drm/xe/xe_vram_freq.c                  |   128 +
>  drivers/gpu/drm/xe/xe_vram_freq.h                  |    13 +
>  drivers/gpu/drm/xe/xe_wa.c                         |   191 +-
>  drivers/gpu/drm/xe/xe_wa_oob.rules                 |    12 +-
>  drivers/gpu/drm/xe/xe_wait_user_fence.c            |     2 +-
>  drivers/gpu/drm/xe/xe_wopcm_types.h                |     4 +-
>  drivers/gpu/drm/xlnx/zynqmp_disp.c                 |     2 +-
>  drivers/gpu/drm/xlnx/zynqmp_dp.c                   |    22 +-
>  drivers/gpu/host1x/bus.c                           |     2 +-
>  drivers/gpu/host1x/bus.h                           |     2 +-
>  drivers/gpu/host1x/cdma.c                          |     3 +-
>  drivers/macintosh/via-pmu-backlight.c              |     1 +
>  drivers/media/i2c/tc358743.c                       |     7 +-
>  drivers/staging/fbtft/fb_ssd1351.c                 |     2 +
>  drivers/staging/sm750fb/Kconfig                    |     1 -
>  drivers/video/Kconfig                              |     9 +-
>  drivers/video/Makefile                             |     7 +-
>  drivers/video/backlight/corgi_lcd.c                |     1 +
>  drivers/video/cmdline.c                            |     2 +
>  drivers/video/fbdev/Kconfig                        |    35 -
>  drivers/video/fbdev/chipsfb.c                      |     1 +
>  drivers/video/fbdev/core/Kconfig                   |     2 +-
>  drivers/video/fbdev/core/fbmem.c                   |     2 -
>  drivers/video/fbdev/efifb.c                        |   225 +-
>  drivers/video/fbdev/geode/Kconfig                  |     3 -
>  drivers/video/fbdev/simplefb.c                     |     2 +-
>  drivers/video/fbdev/vesafb.c                       |    78 +-
>  drivers/video/screen_info_generic.c                |   146 +
>  drivers/video/screen_info_pci.c                    |   136 +
>  include/drm/display/drm_dp.h                       |    62 +
>  include/drm/display/drm_dp_helper.h                |    14 +-
>  include/drm/display/drm_dp_tunnel.h                |   248 +
>  include/drm/drm_atomic.h                           |    70 +-
>  include/drm/drm_bridge.h                           |    27 +-
>  include/drm/drm_edid.h                             |    46 +-
>  include/drm/drm_exec.h                             |     4 +-
>  include/drm/drm_fixed.h                            |     2 +-
>  include/drm/drm_gem.h                              |    13 +
>  include/drm/drm_gpuvm.h                            |     2 +-
>  include/drm/drm_kunit_helpers.h                    |    23 +
>  include/drm/drm_managed.h                          |     4 +
>  include/drm/drm_modes.h                            |     2 +
>  include/drm/drm_print.h                            |   223 +-
>  include/drm/drm_probe_helper.h                     |     1 -
>  include/drm/drm_rect.h                             |     4 +-
>  include/drm/i915_pciids.h                          |     7 +-
>  include/drm/ttm/ttm_placement.h                    |    10 +-
>  include/drm/ttm/ttm_resource.h                     |     8 +-
>  include/drm/ttm/ttm_tt.h                           |     9 +-
>  include/linux/fb.h                                 |    31 +-
>  include/linux/iosys-map.h                          |     2 +-
>  include/linux/screen_info.h                        |   126 +
>  include/linux/sysfb.h                              |     6 +-
>  include/sound/hdmi-codec.h                         |     1 -
>  include/uapi/drm/amdgpu_drm.h                      |     2 +
>  include/uapi/drm/etnaviv_drm.h                     |     5 +
>  include/uapi/drm/i915_drm.h                        |    16 +
>  include/uapi/drm/nouveau_drm.h                     |    56 +-
>  include/uapi/drm/qaic_accel.h                      |    13 +-
>  include/uapi/drm/vmwgfx_drm.h                      |     6 +-
>  include/uapi/drm/xe_drm.h                          |    33 +-
>  include/uapi/linux/kfd_ioctl.h                     |     3 +-
>  include/uapi/linux/virtio_gpu.h                    |     2 +
>  include/video/cmdline.h                            |     8 +-
>  tools/edid/1024x768.S                              |    43 -
>  tools/edid/1280x1024.S                             |    43 -
>  tools/edid/1600x1200.S                             |    43 -
>  tools/edid/1680x1050.S                             |    43 -
>  tools/edid/1920x1080.S                             |    43 -
>  tools/edid/800x600.S                               |    40 -
>  tools/edid/Makefile                                |    37 -
>  tools/edid/edid.S                                  |   274 -
>  tools/edid/hex                                     |     1 -
>  1198 files changed, 189574 insertions(+), 16526 deletions(-)
>  create mode 100644
> Documentation/devicetree/bindings/display/bridge/fsl,imx8mp-hdmi-tx.yaml
>  create mode 100644
> Documentation/devicetree/bindings/display/imx/fsl,imx8mp-hdmi-pvi.yaml
>  create mode 100644
> Documentation/devicetree/bindings/display/msm/qcom,x1e80100-mdss.yaml
>  create mode 100644
> Documentation/devicetree/bindings/display/panel/boe,th101mb31ig002-28a.yaml
>  create mode 100644
> Documentation/devicetree/bindings/display/panel/himax,hx83112a.yaml
>  create mode 100644
> Documentation/devicetree/bindings/display/panel/novatek,nt36672e.yaml
>  create mode 100644
> Documentation/devicetree/bindings/display/renesas,rzg2l-du.yaml
>  create mode 100644
> Documentation/devicetree/bindings/display/solomon,ssd133x.yaml
>  create mode 100644 Documentation/gpu/amdgpu/display/dcn-blocks.rst
>  create mode 100644 Documentation/gpu/amdgpu/display/display-contributing.rst
>  delete mode 100644 Documentation/gpu/rfc/xe.rst
>  create mode 100644 drivers/accel/habanalabs/common/mmu/mmu_v2.c
>  create mode 100644 drivers/gpu/drm/amd/amdgpu/amdgpu_aca.c
>  create mode 100644 drivers/gpu/drm/amd/amdgpu/amdgpu_aca.h
>  create mode 100644 drivers/gpu/drm/amd/amdgpu/athub_v4_1_0.c
>  create mode 100644 drivers/gpu/drm/amd/amdgpu/athub_v4_1_0.h
>  create mode 100644 drivers/gpu/drm/amd/amdgpu/hdp_v7_0.c
>  create mode 100644 drivers/gpu/drm/amd/amdgpu/hdp_v7_0.h
>  create mode 100644 drivers/gpu/drm/amd/amdgpu/ih_v7_0.c
>  create mode 100644 drivers/gpu/drm/amd/amdgpu/ih_v7_0.h
>  create mode 100644 drivers/gpu/drm/amd/amdgpu/jpeg_v5_0_0.c
>  create mode 100644 drivers/gpu/drm/amd/amdgpu/jpeg_v5_0_0.h
>  create mode 100644 drivers/gpu/drm/amd/amdgpu/lsdma_v7_0.c
>  create mode 100644 drivers/gpu/drm/amd/amdgpu/lsdma_v7_0.h
>  create mode 100644 drivers/gpu/drm/amd/amdgpu/nbif_v6_3_1.c
>  create mode 100644 drivers/gpu/drm/amd/amdgpu/nbif_v6_3_1.h
>  create mode 100644 drivers/gpu/drm/amd/amdgpu/psp_v14_0.c
>  create mode 100644 drivers/gpu/drm/amd/amdgpu/psp_v14_0.h
>  create mode 100644 drivers/gpu/drm/amd/amdgpu/vcn_v5_0_0.c
>  create mode 100644 drivers/gpu/drm/amd/amdgpu/vcn_v5_0_0.h
>  delete mode 100644 drivers/gpu/drm/amd/display/TODO
>  delete mode 100644
> drivers/gpu/drm/amd/display/dc/clk_mgr/dcn10/rv1_clk_mgr_clk.c
>  create mode 100644 drivers/gpu/drm/amd/display/dc/dml/dcn351/dcn351_fpu.c
>  create mode 100644 drivers/gpu/drm/amd/display/dc/dml/dcn351/dcn351_fpu.h
>  delete mode 100644 drivers/gpu/drm/amd/display/dc/hwss/dcn351/CMakeLists.txt
>  create mode 100644
> drivers/gpu/drm/amd/display/dc/irq/dcn351/irq_service_dcn351.c
>  create mode 100644
> drivers/gpu/drm/amd/display/dc/irq/dcn351/irq_service_dcn351.h
>  create mode 100644
> drivers/gpu/drm/amd/display/dc/resource/dcn351/dcn351_resource.c
>  create mode 100644
> drivers/gpu/drm/amd/display/dc/resource/dcn351/dcn351_resource.h
>  create mode 100644 drivers/gpu/drm/amd/display/dmub/src/dmub_dcn351.c
>  create mode 100644 drivers/gpu/drm/amd/display/dmub/src/dmub_dcn351.h
>  create mode 100644
> drivers/gpu/drm/amd/include/asic_reg/athub/athub_4_1_0_offset.h
>  create mode 100644
> drivers/gpu/drm/amd/include/asic_reg/athub/athub_4_1_0_sh_mask.h
>  create mode 100644 drivers/gpu/drm/amd/include/asic_reg/dcn/dcn_3_5_1_offset.h
>  create mode 100644 drivers/gpu/drm/amd/include/asic_reg/dcn/dcn_3_5_1_sh_mask.h
>  create mode 100644 drivers/gpu/drm/amd/include/asic_reg/hdp/hdp_7_0_0_offset.h
>  create mode 100644 drivers/gpu/drm/amd/include/asic_reg/hdp/hdp_7_0_0_sh_mask.h
>  create mode 100644
> drivers/gpu/drm/amd/include/asic_reg/lsdma/lsdma_7_0_0_offset.h
>  create mode 100644
> drivers/gpu/drm/amd/include/asic_reg/lsdma/lsdma_7_0_0_sh_mask.h
>  create mode 100644 drivers/gpu/drm/amd/include/asic_reg/mp/mp_14_0_2_offset.h
>  create mode 100644 drivers/gpu/drm/amd/include/asic_reg/mp/mp_14_0_2_sh_mask.h
>  create mode 100644
> drivers/gpu/drm/amd/include/asic_reg/nbif/nbif_6_3_1_offset.h
>  create mode 100644
> drivers/gpu/drm/amd/include/asic_reg/nbif/nbif_6_3_1_sh_mask.h
>  create mode 100644
> drivers/gpu/drm/amd/include/asic_reg/oss/osssys_7_0_0_offset.h
>  create mode 100644
> drivers/gpu/drm/amd/include/asic_reg/oss/osssys_7_0_0_sh_mask.h
>  create mode 100644
> drivers/gpu/drm/amd/include/asic_reg/pcie/pcie_6_1_0_offset.h
>  create mode 100644
> drivers/gpu/drm/amd/include/asic_reg/pcie/pcie_6_1_0_sh_mask.h
>  create mode 100644 drivers/gpu/drm/amd/include/asic_reg/vcn/vcn_5_0_0_offset.h
>  create mode 100644 drivers/gpu/drm/amd/include/asic_reg/vcn/vcn_5_0_0_sh_mask.h
>  create mode 100644 drivers/gpu/drm/bridge/imx/imx8mp-hdmi-pvi.c
>  create mode 100644 drivers/gpu/drm/bridge/imx/imx8mp-hdmi-tx.c
>  delete mode 100644 drivers/gpu/drm/ci/xfails/msm-sc7180-fails.txt
>  delete mode 100644 drivers/gpu/drm/ci/xfails/msm-sc7180-flakes.txt
>  delete mode 100644 drivers/gpu/drm/ci/xfails/msm-sc7180-skips.txt
>  create mode 100644
> drivers/gpu/drm/ci/xfails/msm-sc7180-trogdor-kingoftown-fails.txt
>  create mode 100644
> drivers/gpu/drm/ci/xfails/msm-sc7180-trogdor-kingoftown-skips.txt
>  create mode 100644
> drivers/gpu/drm/ci/xfails/msm-sc7180-trogdor-lazor-limozeen-fails.txt
>  create mode 100644
> drivers/gpu/drm/ci/xfails/msm-sc7180-trogdor-lazor-limozeen-skips.txt
>  create mode 100644 drivers/gpu/drm/display/drm_dp_tunnel.c
>  create mode 100644 drivers/gpu/drm/i915/display/intel_dp_tunnel.c
>  create mode 100644 drivers/gpu/drm/i915/display/intel_dp_tunnel.h
>  delete mode 100644 drivers/gpu/drm/i915/gem/i915_gem_userptr.h
>  create mode 100644 drivers/gpu/drm/msm/adreno/adreno_gen7_0_0_snapshot.h
>  create mode 100644 drivers/gpu/drm/msm/adreno/adreno_gen7_2_0_snapshot.h
>  create mode 100644 drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_3_2_sdm660.h
>  create mode 100644 drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_3_3_sdm630.h
>  create mode 100644 drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_9_2_x1e80100.h
>  delete mode 100644 drivers/gpu/drm/msm/dp/dp_parser.c
>  delete mode 100644 drivers/gpu/drm/msm/dp/dp_parser.h
>  delete mode 100644 drivers/gpu/drm/msm/dp/dp_power.c
>  delete mode 100644 drivers/gpu/drm/msm/dp/dp_power.h
>  create mode 100644 drivers/gpu/drm/msm/dp/dp_utils.c
>  create mode 100644 drivers/gpu/drm/msm/dp/dp_utils.h
>  create mode 100644 drivers/gpu/drm/panel/panel-boe-th101mb31ig002-28a.c
>  create mode 100644 drivers/gpu/drm/panel/panel-himax-hx83112a.c
>  create mode 100644 drivers/gpu/drm/panel/panel-novatek-nt36672e.c
>  create mode 100644 drivers/gpu/drm/renesas/rz-du/Kconfig
>  create mode 100644 drivers/gpu/drm/renesas/rz-du/Makefile
>  create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg2l_du_crtc.c
>  create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg2l_du_crtc.h
>  create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg2l_du_drv.c
>  create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg2l_du_drv.h
>  create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg2l_du_encoder.c
>  create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg2l_du_encoder.h
>  create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg2l_du_kms.c
>  create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg2l_du_kms.h
>  create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg2l_du_vsp.c
>  create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg2l_du_vsp.h
>  create mode 100644 drivers/gpu/drm/ttm/tests/ttm_bo_test.c
>  create mode 100644 drivers/gpu/drm/ttm/tests/ttm_resource_test.c
>  create mode 100644 drivers/gpu/drm/ttm/tests/ttm_tt_test.c
>  create mode 100644 drivers/gpu/drm/vkms/Kconfig
>  create mode 100644 drivers/gpu/drm/xe/abi/gsc_proxy_commands_abi.h
>  create mode 100644 drivers/gpu/drm/xe/abi/guc_actions_sriov_abi.h
>  create mode 100644 drivers/gpu/drm/xe/abi/guc_relay_actions_abi.h
>  create mode 100644 drivers/gpu/drm/xe/abi/guc_relay_communication_abi.h
>  rename drivers/gpu/drm/xe/{ => display}/xe_display.c (100%)
>  rename drivers/gpu/drm/xe/{ => display}/xe_display.h (100%)
>  create mode 100644 drivers/gpu/drm/xe/regs/xe_pcode_regs.h
>  create mode 100644 drivers/gpu/drm/xe/tests/xe_guc_db_mgr_test.c
>  create mode 100644 drivers/gpu/drm/xe/tests/xe_guc_relay_test.c
>  create mode 100644 drivers/gpu/drm/xe/tests/xe_kunit_helpers.c
>  create mode 100644 drivers/gpu/drm/xe/tests/xe_kunit_helpers.h
>  create mode 100644 drivers/gpu/drm/xe/tests/xe_test_mod.c
>  create mode 100644 drivers/gpu/drm/xe/xe_gsc_proxy.c
>  create mode 100644 drivers/gpu/drm/xe/xe_gsc_proxy.h
>  create mode 100644 drivers/gpu/drm/xe/xe_gt_sriov_printk.h
>  create mode 100644 drivers/gpu/drm/xe/xe_guc_db_mgr.c
>  create mode 100644 drivers/gpu/drm/xe/xe_guc_db_mgr.h
>  create mode 100644 drivers/gpu/drm/xe/xe_guc_hxg_helpers.h
>  create mode 100644 drivers/gpu/drm/xe/xe_guc_relay.c
>  create mode 100644 drivers/gpu/drm/xe/xe_guc_relay.h
>  create mode 100644 drivers/gpu/drm/xe/xe_guc_relay_types.h
>  create mode 100644 drivers/gpu/drm/xe/xe_memirq.c
>  create mode 100644 drivers/gpu/drm/xe/xe_memirq.h
>  create mode 100644 drivers/gpu/drm/xe/xe_memirq_types.h
>  create mode 100644 drivers/gpu/drm/xe/xe_vram_freq.c
>  create mode 100644 drivers/gpu/drm/xe/xe_vram_freq.h
>  create mode 100644 drivers/video/screen_info_generic.c
>  create mode 100644 drivers/video/screen_info_pci.c
>  create mode 100644 include/drm/display/drm_dp_tunnel.h
>  delete mode 100644 tools/edid/1024x768.S
>  delete mode 100644 tools/edid/1280x1024.S
>  delete mode 100644 tools/edid/1600x1200.S
>  delete mode 100644 tools/edid/1680x1050.S
>  delete mode 100644 tools/edid/1920x1080.S
>  delete mode 100644 tools/edid/800x600.S
>  delete mode 100644 tools/edid/Makefile
>  delete mode 100644 tools/edid/edid.S
>  delete mode 100644 tools/edid/hex

^ permalink raw reply	[relevance 0%]

* [git pull] drm for 6.9-rc1
@ 2024-03-13  4:06  1% Dave Airlie
  2024-03-13  4:16  0% ` Dave Airlie
  0 siblings, 1 reply; 200+ results
From: Dave Airlie @ 2024-03-13  4:06 UTC (permalink / raw)
  To: Linus Torvalds, Daniel Vetter; +Cc: dri-devel, LKML

Hi Linus,

This is the main drm pull request for 6.9.

This is mostly self contained, some backlight bits in powerpc,
and possibly some minor media/sound related nits.

I've done a trial merge into your tree from a few hours ago, there
are definitely some slighty messy conflicts, I've pushed a sample
branch here:

This is also a PR from the tree hosted in fd.o gitlab (though I think I've
probably done fixes from there without mentioning it), so there should
be no problems.

Highlights are usual, more AMD IP blocks for future hw, i915/xe changes,
Displayport tunnelling support for i915, msm YUV over DP changes, new tests
for ttm, but its mostly a lot of stuff all over the place from lots of people.

Let me know if there any problems (esp if I messed up the sample merge).

Regards,
Dave.


drm-next-2024-03-13:
drm for 6.9:

core:
- EDID cleanups
- scheduler error handling fixes
- managed: add drmm_release_action() with tests
- add ratelimited drm debug print
- DPCD PSR early transport macro
- DP tunneling and bandwidth allocation helpers
- remove built-in edids
- dp: Avoid AUX transfers on powered-down displays
- dp: Add VSC SDP helpers

cross drivers:
- use new drm print helpers
- switch to ->read_edid callback
- gem: add stats for shared buffers plus updates to amdgpu, i915, xe

syncobj:
- fixes to waiting and sleeping

ttm:
- add tests
- fix errno codes
- simply busy-placement handling
- fix page decryption

media:
- tc358743: fix v4l device registration

video:
- move all kernel parameters for video behind CONFIG_VIDEO

sound:
- remove <drm/drm_edid.h> include from header

ci:
- add tests for msm
- fix apq8016 runner

efifb:
- use copy of global screen_info state

vesafb:
- use copy of global screen_info state

simplefb:
- fix logging

bridge:
- ite-6505: fix DP link-training bug
- samsung-dsim: fix error checking in probe
- samsung-dsim: add bsh-smm-s2/pro boards
- tc358767: fix regmap usage
- imx: add i.MX8MP HDMI PVI plus DT bindings
- imx: add i.MX8MP HDMI TX plus DT bindings
- sii902x: fix probing and unregistration
- tc358767: limit pixel PLL input range
- switch to new drm_bridge_read_edid() interface

panel:
- ltk050h3146w: error-handling fixes
- panel-edp: support delay between power-on and enable; use put_sync in
  unprepare; support Mediatek MT8173 Chromebooks, BOE NV116WHM-N49 V8.0,
  BOE NV122WUM-N41, CSO MNC207QS1-1 plus DT bindings
- panel-lvds: support EDT ETML0700Z9NDHA plus DT bindings
- panel-novatek: FRIDA FRD400B25025-A-CTK plus DT bindings
- add BOE TH101MB31IG002-28A plus DT bindings
- add EDT ETML1010G3DRA plus DT bindings
- add Novatek NT36672E LCD DSI plus DT bindings
- nt36523: support 120Hz timings, fix includes
- simple: fix display timings on RK32FN48H
- visionox-vtdr6130: fix initialization
- add Powkiddy RGB10MAX3 plus DT bindings
- st7703: support panel rotation plus DT bindings
- add Himax HX83112A plus DT bindings
- ltk500hd1829: add support for ltk101b4029w and admatec 9904370
- simple: add BOE BP082WX1-100 8.2" panel plus DT bindungs

panel-orientation-quirks:
- GPD Win Mini

amdgpu:
- Validate DMABuf imports in compute VMs
- Add RAS ACA framework
- PSP 13 fixes
- Misc code cleanups
- Replay fixes
- Atom interpretor PS, WS bounds checking
- DML2 fixes
- Audio fixes
- DCN 3.5 Z state fixes
- Remove deprecated ida_simple usage
- UBSAN fixes
- RAS fixes
- Enable seq64 infrastructure
- DC color block enablement
- Documentation updates
- DC documentation updates
- DMCUB updates
- ATHUB 4.1 support
- LSDMA 7.0 support
- JPEG DPG support
- IH 7.0 support
- HDP 7.0 support
- VCN 5.0 support
- SMU 13.0.6 updates
- NBIO 7.11 updates
- SDMA 6.1 updates
- MMHUB 3.3 updates
- DCN 3.5.1 support
- NBIF 6.3.1 support
- VPE 6.1.1 support

amdkfd:
- Validate DMABuf imports in compute VMs
- SVM fixes
- Trap handler updates and enhancements
- Fix cache size reporting
- Relocate the trap handler

radeon:
- Atom interpretor PS, WS bounds checking
- Misc code cleanups

xe:
- new query for GuC submission version
- Remove unused persistent exec_queues
- Add vram frequency sysfs attributes
- Add the flag XE_VM_BIND_FLAG_DUMPABLE
- Drop pre-production workarounds
- Drop kunit tests for unsupported platforms
- Start pumbling SR-IOV support with memory based interrupts for VF
- Allow to map BO in GGTT with PAT index corresponding to
  XE_CACHE_UC to work with memory based interrupts
- Add GuC Doorbells Manager as prep work SR-IOV
- Implement additional workarounds for xe2 and MTL
- Program a few registers according to perfomance guide spec for Xe2
- Fix remaining 32b build issues and enable it back
- Fix build with CONFIG_DEBUG_FS=n
- Fix warnings from GuC ABI headers
- Introduce Relay Communication for SR-IOV for VF <-> GuC <-> PF
- Release mmap mappings on rpm suspend
- Disable mid-thread preemption when not properly supported by hardware
- Fix xe_exec by reserving extra fence slot for CPU bind
- Fix xe_exec with full long running exec queue
- Canonicalize addresses where needed for Xe2 and add to devcoredum
- Toggle USM support for Xe2
- Only allow 1 ufence per exec / bind IOCTL
- Add GuC firmware loading for Lunar Lake
- Add XE_VMA_PTE_64K VMA flag

i915:
- Add more ADL-N PCI IDs
- Enable fastboot also on older platforms
- Early transport for panel replay and PSR
- New ARL PCI IDs
- DP TPS4 PHY test pattern support
- Unify and improve VSC SDP for PSR and non-PSR cases
- Refactor memory regions and improve debug logging
- Rework global state serialization
- Remove unused CDCLK divider fields
- Unify HDCP connector logging format
- Use display instead of graphics version in display code
- Move VBT and opregion debugfs next to the implementation
- Abstract opregion interface, use opaque type
- MTL fixes
- HPD handling fixes
- Add GuC submission interface version query
- Atomically invalidate userptr on mmu-notifier
- Update handling of MMIO triggered reports
- Don't make assumptions about intel_wakeref_t type
- Extend driver code of Xe_LPG to Xe_LPG+
- Add flex arrays to struct i915_syncmap
- Allow for very slow HuC loading
- DP tunneling and bandwidth allocation support

msm:
- Correct bindings for MSM8976 and SM8650 platforms
- Start migration of MDP5 platforms to DPU driver
- X1E80100 MDSS support
- DPU:
- Improve DSC allocation, fixing several important corner cases
- Add support for SDM630/SDM660 platforms
- Simplify dpu_encoder_phys_ops
- Apply fixes targeting DSC support with a single DSC encoder
- Apply fixes for HCTL_EN timing configuration
- X1E80100 support
- Add support for YUV420 over DP
- GPU:
- fix sc7180 UBWC config
- fix a7xx LLC config
- new gpu support: a305B, a750, a702
- machine support: SM7150 (different power levels than other a618)
- a7xx devcoredump support

habanalabs:
- configure IRQ affinity according to NUMA node
- move HBM MMU page tables inside the HBM
- improve device reset
- check extended PCIe errors

ivpu:
- updates to firmware API
- refactor BO allocation

imx:
- use devm_ functions during init

hisilicon:
- fix EDID includes

mgag200:
- improve ioremap usage
- convert to struct drm_edid
- Work around PCI write bursts

nouveau:
- disp: use kmemdup()
- fix EDID includes
- documentation fixes

qaic:
- fixes to BO handling
- make use of DRM managed release
- fix order of remove operations

rockchip:
- analogix_dp: get encoder port from DT
- inno_hdmi: support HDMI for RK3128
- lvds: error-handling fixes

ssd130x:
- support SSD133x plus DT bindings

tegra:
- fix error handling

tilcdc:
- make use of DRM managed release

v3d:
- show memory stats in debugfs
- Support display MMU page size

vc4:
- fix error handling in plane prepare_fb
- fix framebuffer test in plane helpers

virtio:
- add venus capset defines

vkms:
- fix OOB access when programming the LUT
- Kconfig improvements

vmwgfx:
- unmap surface before changing plane state
- fix memory leak in error handling
- documentation fixes
- list command SVGA_3D_CMD_DEFINE_GB_SURFACE_V4 as invalid
- fix null-pointer deref in execbuf
- refactor display-mode probing
- fix fencing for creating cursor MOBs
- fix cursor-memory lifetime

xlnx:
- fix live video input for ZynqMP DPSUB

lima:
- fix memory leak

loongson:
- fail if no VRAM present

meson:
- switch to new drm_bridge_read_edid() interface

renesas:
- add RZ/G2L DU support plus DT bindings

mxsfb:
- Use managed mode config

sun4i:
- HDMI: updates to atomic mode setting

mediatek:
- Add display driver for MT8188 VDOSYS1
- DSI driver cleanups
- Filter modes according to hardware capability
- Fix a null pointer crash in mtk_drm_crtc_finish_page_flip

etnaviv:
- enhancements for NPU and MRT support
The following changes since commit d206a76d7d2726f3b096037f2079ce0bd3ba329b:

  Linux 6.8-rc6 (2024-02-25 15:46:06 -0800)

are available in the Git repository at:

  https://gitlab.freedesktop.org/drm/kernel.git tags/drm-next-2024-03-13

for you to fetch changes up to 119b225f01e4d3ce974cd3b4d982c76a380c796d:

  Merge tag 'amd-drm-next-6.9-2024-03-08-1' of
https://gitlab.freedesktop.org/agd5f/linux into drm-next (2024-03-11
13:32:12 +1000)

----------------------------------------------------------------
drm for 6.9:

core:
- EDID cleanups
- scheduler error handling fixes
- managed: add drmm_release_action() with tests
- add ratelimited drm debug print
- DPCD PSR early transport macro
- DP tunneling and bandwidth allocation helpers
- remove built-in edids
- dp: Avoid AUX transfers on powered-down displays
- dp: Add VSC SDP helpers

cross drivers:
- use new drm print helpers
- switch to ->read_edid callback
- gem: add stats for shared buffers plus updates to amdgpu, i915, xe

syncobj:
- fixes to waiting and sleeping

ttm:
- add tests
- fix errno codes
- simply busy-placement handling
- fix page decryption

media:
- tc358743: fix v4l device registration

video:
- move all kernel parameters for video behind CONFIG_VIDEO

sound:
- remove <drm/drm_edid.h> include from header

ci:
- add tests for msm
- fix apq8016 runner

efifb:
- use copy of global screen_info state

vesafb:
- use copy of global screen_info state

simplefb:
- fix logging

bridge:
- ite-6505: fix DP link-training bug
- samsung-dsim: fix error checking in probe
- samsung-dsim: add bsh-smm-s2/pro boards
- tc358767: fix regmap usage
- imx: add i.MX8MP HDMI PVI plus DT bindings
- imx: add i.MX8MP HDMI TX plus DT bindings
- sii902x: fix probing and unregistration
- tc358767: limit pixel PLL input range
- switch to new drm_bridge_read_edid() interface

panel:
- ltk050h3146w: error-handling fixes
- panel-edp: support delay between power-on and enable; use put_sync in
  unprepare; support Mediatek MT8173 Chromebooks, BOE NV116WHM-N49 V8.0,
  BOE NV122WUM-N41, CSO MNC207QS1-1 plus DT bindings
- panel-lvds: support EDT ETML0700Z9NDHA plus DT bindings
- panel-novatek: FRIDA FRD400B25025-A-CTK plus DT bindings
- add BOE TH101MB31IG002-28A plus DT bindings
- add EDT ETML1010G3DRA plus DT bindings
- add Novatek NT36672E LCD DSI plus DT bindings
- nt36523: support 120Hz timings, fix includes
- simple: fix display timings on RK32FN48H
- visionox-vtdr6130: fix initialization
- add Powkiddy RGB10MAX3 plus DT bindings
- st7703: support panel rotation plus DT bindings
- add Himax HX83112A plus DT bindings
- ltk500hd1829: add support for ltk101b4029w and admatec 9904370
- simple: add BOE BP082WX1-100 8.2" panel plus DT bindungs

panel-orientation-quirks:
- GPD Win Mini

amdgpu:
- Validate DMABuf imports in compute VMs
- Add RAS ACA framework
- PSP 13 fixes
- Misc code cleanups
- Replay fixes
- Atom interpretor PS, WS bounds checking
- DML2 fixes
- Audio fixes
- DCN 3.5 Z state fixes
- Remove deprecated ida_simple usage
- UBSAN fixes
- RAS fixes
- Enable seq64 infrastructure
- DC color block enablement
- Documentation updates
- DC documentation updates
- DMCUB updates
- ATHUB 4.1 support
- LSDMA 7.0 support
- JPEG DPG support
- IH 7.0 support
- HDP 7.0 support
- VCN 5.0 support
- SMU 13.0.6 updates
- NBIO 7.11 updates
- SDMA 6.1 updates
- MMHUB 3.3 updates
- DCN 3.5.1 support
- NBIF 6.3.1 support
- VPE 6.1.1 support

amdkfd:
- Validate DMABuf imports in compute VMs
- SVM fixes
- Trap handler updates and enhancements
- Fix cache size reporting
- Relocate the trap handler

radeon:
- Atom interpretor PS, WS bounds checking
- Misc code cleanups

xe:
- new query for GuC submission version
- Remove unused persistent exec_queues
- Add vram frequency sysfs attributes
- Add the flag XE_VM_BIND_FLAG_DUMPABLE
- Drop pre-production workarounds
- Drop kunit tests for unsupported platforms
- Start pumbling SR-IOV support with memory based interrupts for VF
- Allow to map BO in GGTT with PAT index corresponding to
  XE_CACHE_UC to work with memory based interrupts
- Add GuC Doorbells Manager as prep work SR-IOV
- Implement additional workarounds for xe2 and MTL
- Program a few registers according to perfomance guide spec for Xe2
- Fix remaining 32b build issues and enable it back
- Fix build with CONFIG_DEBUG_FS=n
- Fix warnings from GuC ABI headers
- Introduce Relay Communication for SR-IOV for VF <-> GuC <-> PF
- Release mmap mappings on rpm suspend
- Disable mid-thread preemption when not properly supported by hardware
- Fix xe_exec by reserving extra fence slot for CPU bind
- Fix xe_exec with full long running exec queue
- Canonicalize addresses where needed for Xe2 and add to devcoredum
- Toggle USM support for Xe2
- Only allow 1 ufence per exec / bind IOCTL
- Add GuC firmware loading for Lunar Lake
- Add XE_VMA_PTE_64K VMA flag

i915:
- Add more ADL-N PCI IDs
- Enable fastboot also on older platforms
- Early transport for panel replay and PSR
- New ARL PCI IDs
- DP TPS4 PHY test pattern support
- Unify and improve VSC SDP for PSR and non-PSR cases
- Refactor memory regions and improve debug logging
- Rework global state serialization
- Remove unused CDCLK divider fields
- Unify HDCP connector logging format
- Use display instead of graphics version in display code
- Move VBT and opregion debugfs next to the implementation
- Abstract opregion interface, use opaque type
- MTL fixes
- HPD handling fixes
- Add GuC submission interface version query
- Atomically invalidate userptr on mmu-notifier
- Update handling of MMIO triggered reports
- Don't make assumptions about intel_wakeref_t type
- Extend driver code of Xe_LPG to Xe_LPG+
- Add flex arrays to struct i915_syncmap
- Allow for very slow HuC loading
- DP tunneling and bandwidth allocation support

msm:
- Correct bindings for MSM8976 and SM8650 platforms
- Start migration of MDP5 platforms to DPU driver
- X1E80100 MDSS support
- DPU:
- Improve DSC allocation, fixing several important corner cases
- Add support for SDM630/SDM660 platforms
- Simplify dpu_encoder_phys_ops
- Apply fixes targeting DSC support with a single DSC encoder
- Apply fixes for HCTL_EN timing configuration
- X1E80100 support
- Add support for YUV420 over DP
- GPU:
- fix sc7180 UBWC config
- fix a7xx LLC config
- new gpu support: a305B, a750, a702
- machine support: SM7150 (different power levels than other a618)
- a7xx devcoredump support

habanalabs:
- configure IRQ affinity according to NUMA node
- move HBM MMU page tables inside the HBM
- improve device reset
- check extended PCIe errors

ivpu:
- updates to firmware API
- refactor BO allocation

imx:
- use devm_ functions during init

hisilicon:
- fix EDID includes

mgag200:
- improve ioremap usage
- convert to struct drm_edid
- Work around PCI write bursts

nouveau:
- disp: use kmemdup()
- fix EDID includes
- documentation fixes

qaic:
- fixes to BO handling
- make use of DRM managed release
- fix order of remove operations

rockchip:
- analogix_dp: get encoder port from DT
- inno_hdmi: support HDMI for RK3128
- lvds: error-handling fixes

ssd130x:
- support SSD133x plus DT bindings

tegra:
- fix error handling

tilcdc:
- make use of DRM managed release

v3d:
- show memory stats in debugfs
- Support display MMU page size

vc4:
- fix error handling in plane prepare_fb
- fix framebuffer test in plane helpers

virtio:
- add venus capset defines

vkms:
- fix OOB access when programming the LUT
- Kconfig improvements

vmwgfx:
- unmap surface before changing plane state
- fix memory leak in error handling
- documentation fixes
- list command SVGA_3D_CMD_DEFINE_GB_SURFACE_V4 as invalid
- fix null-pointer deref in execbuf
- refactor display-mode probing
- fix fencing for creating cursor MOBs
- fix cursor-memory lifetime

xlnx:
- fix live video input for ZynqMP DPSUB

lima:
- fix memory leak

loongson:
- fail if no VRAM present

meson:
- switch to new drm_bridge_read_edid() interface

renesas:
- add RZ/G2L DU support plus DT bindings

mxsfb:
- Use managed mode config

sun4i:
- HDMI: updates to atomic mode setting

mediatek:
- Add display driver for MT8188 VDOSYS1
- DSI driver cleanups
- Filter modes according to hardware capability
- Fix a null pointer crash in mtk_drm_crtc_finish_page_flip

etnaviv:
- enhancements for NPU and MRT support

----------------------------------------------------------------
Abel Vesa (4):
      dt-bindings: display/msm: Document the DPU for X1E80100
      dt-bindings: display/msm: Document MDSS on X1E80100
      drm/msm: mdss: Add X1E80100 support
      drm/msm/dpu: Add X1E80100 support

Abhinav Kumar (3):
      drm/msm/dpu: fix the programming of INTF_CFG2_DATA_HCTL_EN
      drm/dp: move intel_dp_vsc_sdp_pack() to generic helper
      drm/dp: drop the size parameter from drm_dp_vsc_sdp_pack()

Adam Ford (1):
      drm/bridge: imx8mp-hdmi-pvi: Fix build warnings

Adam Skladowski (2):
      dt-bindings: dsi-controller-main: Document missing msm8976 compatible
      dt-bindings: msm: qcom, mdss: Include ommited fam-b compatible

Alan Previn (2):
      drm/i915/guc: Flush context destruction worker at suspend
      drm/i915/guc: Close deregister-context race against CT-loss

Alex Bee (14):
      drm/rockchip: vop: Add output selection registers for RK312x
      drm/rockchip: inno_hdmi: Fix video timing
      drm/rockchip: inno_hdmi: Remove YUV-based csc coefficents
      drm/rockchip: inno_hdmi: Drop irq struct member
      drm/rockchip: inno_hdmi: Remove useless include
      drm/rockchip: inno_hdmi: Subclass connector state
      drm/rockchip: inno_hdmi: Correctly setup HDMI quantization range
      drm/rockchip: inno_hdmi: Don't power up the phy after resetting
      drm/rockchip: inno_hdmi: Split power mode setting
      drm/rockchip: inno_hdmi: Add variant support
      drm/rockchip: inno_hdmi: Add RK3128 support
      drm/rockchip: inno_hdmi: Add basic mode validation
      drm/rockchip: inno_hdmi: Drop custom fill_modes hook
      drm/rockchip: inno_hdmi: Explicitly include drm_atomic.h

Alex Deucher (20):
      drm/amdgpu: add new INFO IOCTL query for input power
      drm/amdgpu: move kiq_reg_write_reg_wait() out of amdgpu_virt.c
      drm/amdgpu/pptable: convert some variable sized arrays to [] style
      drm/amdgpu/gfx10: set UNORD_DISPATCH in compute MQDs
      drm/amdgpu/gfx11: set UNORD_DISPATCH in compute MQDs
      drm/amdgpu: convert some variable sized arrays to [] style
      drm/amdgpu: update documentation on new chips
      drm/amdgpu: fix typo in parameter description
      drm/amdgpu/psp: update define to better align with its meaning
      Documentation/gpu: Update documentation on drm-shared-*
      drm: add drm_gem_object_is_shared_for_memory_stats() helper
      drm: update drm_show_memory_stats() for dma-bufs
      drm/amdgpu: add shared fdinfo stats
      drm/i915: Update shared stats to use the new gem helper
      drm/xe: Update shared stats to use the new gem helper
      Revert "drm/amd/pm: resolve reboot exception for si oland"
      Revert "drm/amd: Remove freesync video mode amdgpu parameter"
      Reapply "Revert drm/amd/display: Enable Freesync Video Mode by default"
      drm/amd/display: handle range offsets in VRR ranges
      drm/amdgpu: add VPE 6.1.1 discovery support

Alexander Richards (2):
      drm/amdgpu: check PS, WS index
      drm/radeon: check PS, WS index

Alexander Stein (10):
      drm/bridge: tc358767: Use regmap_access_table for writeable registers
      drm/bridge: tc358767: Fix order of register defines
      drm/bridge: tc358767: Add more registers to non-writeable range
      drm/bridge: tc358767: Sort volatile registers according to address
      drm/bridge: tc358767: Add more volatile registers
      drm/bridge: tc358767: Add precious register SYSSTAT
      drm/bridge: tc358767: Add descriptions to register definitions
      drm: panel: simple: convert LG LB070WV8 fixed mode into display timings
      media: tc358743: register v4l2 async device only after successful setup
      drm: bridge: dw_hdmi: Set DRM bridge type

Alexander Warnecke (1):
      drm/panel: Add driver for BOE TH101MB31IG002-28A panel

Allen Pan (2):
      drm/amd/display: Add NULL-checks in dml2 assigned pipe search
      drm/amd/display: correct static screen event mask

Alvin Lee (8):
      drm/amd/display: Add Replay IPS register for DMUB command table
      drm/amd/display: Ensure populate uclk in bb construction
      drm/amd/display: For FPO and SubVP/DRR configs program vmin/max sel
      drm/amd/display: Populate invalid split index to be 0xF
      Revert "drm/amd/display: For FPO and SubVP/DRR configs program
vmin/max sel"
      drm/amd/display: Update phantom pipe enable / disable sequence
      drm/amd/display: Generalize new minimal transition path
      drm/amd/display: Remove pixle rate limit for subvp

Anatoliy Klymenko (4):
      drm: xlnx: zynqmp_dpsub: Make drm bridge discoverable
      drm: xlnx: zynqmp_dpsub: Fix timing for live mode
      drm: xlnx: zynqmp_dpsub: Clear status register ASAP
      drm: xlnx: zynqmp_dpsub: Filter interrupts against mask

Andy Shevchenko (1):
      drm/virtio: Spelling fixes

AngeloGioacchino Del Regno (9):
      drm/mediatek: dsi: Use GENMASK() for register mask definitions
      drm/mediatek: dsi: Fix DSI RGB666 formats and definitions
      drm/mediatek: dsi: Cleanup functions mtk_dsi_ps_control{_vact}()
      drm/mediatek: dsi: Use bitfield macros where useful
      drm/mediatek: dsi: Replace open-coded instance of HZ_PER_MHZ
      drm/mediatek: dsi: Register DSI host after acquiring clocks and PHY
      drm/mediatek: dsi: Simplify with dev_err_probe and remove gotos
      drm/mediatek: dsi: Compress of_device_id entries and add sentinel
      drm/mediatek: dsi: Use mipi_dsi_pixel_format_to_bpp() helper function

Anirban Sk (1):
      drm/i915/selftests: Increasing the sleep time for live_rc6_manual

Ankit Nautiyal (1):
      drm/i915/dp: Fix the max DSC bpc supported by source

Anthony Koo (2):
      drm/amd/display: [FW Promotion] Release 0.0.201.0
      drm/amd/display: [FW Promotion] Release 0.0.202.0

Aric Cyr (8):
      drm/amd/display: Promote DAL to 3.2.268
      drm/amd/display: Promote DAL to 3.2.269
      drm/amd/display: Unify optimize_required flags and VRR adjustments
      drm/amd/display: 3.2.270
      drm/amd/display: 3.2.271
      drm/amd/display: 3.2.272
      drm/amd/display: Fix nanosec stat overflow
      drm/amd/display: 3.2.273

Armin Wolf (1):
      drm/amd/display: Fix memory leak in dm_sw_fini()

Arnd Bergmann (4):
      drm/xe: circumvent bogus stringop-overflow warning
      drm/xe: avoid function cast warnings
      drm/xe/kunit: fix link failure with built-in xe
      drm/xe/xe2: fix 64-bit division in pte_update_size

Arunpravin Paneer Selvam (1):
      drm/amdgpu: Enable seq64 manager and fix bugs

Asad Kamal (5):
      Revert "drm/amdgpu: Add pci usage to nbio v7.9"
      Revert "drm/amdgpu: Add pcie usage callback to nbio"
      drm/amdgpu: Remove pcie bw sys entry
      drm/amd/pm: Skip reporting pcie width/speed on vfs
      drm/amd/pm: Fix esm reg mask use to get pcie speed

Ashutosh Dixit (2):
      drm/xe/xe_gt_idle: Drop redundant newline in name
      drm/xe: Fix modpost warning on xe_mocs kunit module

Aurabindo Pillai (1):
      drm/amd: Update atomfirmware.h for DCN401

Avri Kehat (1):
      accel/habanalabs: fix debugfs files permissions

Badal Nilawar (3):
      drm/xe/dgfx: Release mmap mappings on rpm suspend
      drm/xe/xe_debugfs: Print skip_guc_pc in xe info
      drm/hwmon: Fix abi doc warnings

Bhanuprakash Modem (1):
      drm/i915/display/debugfs: New entry "DRRS capable" to i915_drrs_status

Biju Das (6):
      dt-bindings: display: Document Renesas RZ/G2L DU bindings
      dt-bindings: display: renesas,rzg2l-du: Document RZ/V2L DU bindings
      drm: renesas: Add RZ/G2L DU Support
      MAINTAINERS: Update entries for Renesas DRM drivers
      MAINTAINERS: Create entry for Renesas RZ DRM drivers
      drm: renesas: rz-du: Fix redefinition errors related to rzg2l_du_vsp_*()

Bjorn Helgaas (1):
      drm/amdgpu: remove misleading amdgpu_pmops_runtime_idle() comment

Brian Masney (1):
      fbdev/simplefb: change loglevel when the power domains cannot be parsed

Brian Welty (7):
      drm/xe: Fix guc_exec_queue_set_priority
      drm/xe: Fix modifying exec_queue priority in xe_migrate_init
      drm/xe: Refactor __xe_exec_queue_create()
      drm/xe: Add exec_queue.sched_props.job_timeout_ms
      drm/xe: Finish refactoring of exec_queue_create
      drm/xe: Remove set_job_timeout_ms() from exec_queue_ops
      drm/xe: Fix bounds checking in __xe_bo_placement_for_flags()

Camille Cho (1):
      drm/amd/display: correct comment in set_default_brightness_aux()

Candice Li (3):
      drm/amdgpu: Do bad page retirement for deferred errors
      drm/amdgpu: Log deferred error separately
      drm/amd/pm: Retrieve UMC ODECC error count from aca bank

Charlene Liu (8):
      drm/amd/display: Add logging resource checks
      drm/amd/display: Update P010 scaling cap
      drm/amd/display: Revert "Rework DC Z10 restore"
      Revert "drm/amd/display: initialize all the dpm level's stutter latency"
      drm/amd/display: fix USB-C flag update after enc10 feature init
      drm/amd/display: fix DP audio settings
      drm/amd/display: enable fgcg by default
      drm/amd/display: allow psr-su/replay for z8

Chen Haonan (2):
      drm/nouveau/disp: switch to use kmemdup() helper
      drm/panel: Simplify with dev_err_probe()

Chen Ni (1):
      drm/tegra: dsi: Add missing check for of_find_device_by_node

Chris Morgan (4):
      dt-bindings: display: Add Powkiddy RGB10MAX3 panel
      drm/panel: st7703: Add Powkiddy RGB10MAX3 Panel Support
      dt-bindings: display: rocktech,jh057n00900: Document panel rotation
      drm/panel: st7703: Add Panel Rotation Support

Christian Gmeiner (2):
      drm/etnaviv: add sensitive state for PE_RT_ADDR_4_PIPE(3, 0|1) address
      drm/etnaviv: Restore some id values

Christian König (6):
      drm/amdgpu: revert "Adjust removal control flow for smu v13_0_2"
      drm/vmwgfx: remove vmw_vram_gmr_placement
      drm/ttm: return ENOSPC from ttm_bo_mem_space v3
      drm/i915: fix applying placement flag
      drm/amdgpu: cleanup conditional execution
      drm/amdgpu: workaround to avoid SET_Q_MODE packets v2

Christophe JAILLET (9):
      drm/tegra: dsi: Fix some error handling paths in tegra_dsi_probe()
      drm/tegra: dsi: Fix missing pm_runtime_disable() in the error
handling path of tegra_dsi_probe()
      drm/tegra: hdmi: Fix some error handling paths in tegra_hdmi_probe()
      drm/tegra: rgb: Fix some error handling paths in tegra_dc_rgb_probe()
      drm/tegra: rgb: Fix missing clk_put() in the error handling
paths of tegra_dc_rgb_probe()
      drm/tegra: output: Fix missing i2c_put_adapter() in the error
handling paths of tegra_output_probe()
      drm/amd/display: Fix a switch statement in
populate_dml_output_cfg_from_stream_state()
      drm/amdgpu: Remove usage of the deprecated ida_simple_xx() API
      drm/xe/guc: Remove usage of the deprecated ida_simple_xx() API

ChunTao Tso (1):
      drm/amd/display: Replay + IPS + ABM in Full Screen VPB

Colin Ian King (4):
      drm/xe: Fix spelling mistake "gueue" -> "queue"
      gpu: host1x: remove redundant assignment to variable space
      drm/msm/dp: Fix spelling mistake "enale" -> "enable"
      accel/habanalabs/goya: remove redundant assignment to pointer 'input'

Connor Abbott (4):
      drm/msm: Import a7xx crashdump register lists from kgsl
      drm/msm: Fix snapshotting a7xx indexed regs
      drm/msm: More fully implement devcoredump for a7xx
      drm/msm: Fix page fault client detection on a660 family and a7xx

Dafna Hirschfeld (2):
      drm/xe: Do not include current dir for generated/xe_wa_oob.h
      drm/xe: Replace 'grouped target' in Makefile with pattern rule

Dan Carpenter (6):
      drm/xe/device: clean up on error in probe()
      drm/xe/selftests: Fix an error pointer dereference bug
      drm/xe: unlock on error path in xe_vm_add_compute_exec_queue()
      drm/amd/display: Fix && vs || typos
      firmware/sysfb: fix an error code in sysfb_init()
      drm/imx/dcss: fix resource size calculation

Dani Liberman (4):
      drm/xe/irq: allocate all possible msix interrupts
      accel/habanalabs/gaudi2: add interrupt affinity for user interrupts
      accel/habanalabs: remove call to deprecated function
      accel/habanalabs: fix error print

Daniel Vetter (4):
      Merge tag 'drm-misc-next-2024-02-22' of
git://anongit.freedesktop.org/drm/drm-misc into drm-next
      Merge tag 'drm-xe-next-2024-02-25' of
ssh://gitlab.freedesktop.org/drm/xe/kernel into drm-next
      Merge tag 'drm-habanalabs-next-2024-02-26' of
https://git.kernel.org/pub/scm/linux/kernel/git/ogabbay/linux into
drm-next
      Merge v6.8-rc6 into drm-next

Daniele Ceraolo Spurio (3):
      drm/xe/guc: Use FAST_REQUEST for non-blocking H2G messages
      drm/xe/gsc: Initialize GSC proxy
      drm/xe/gsc: add support for GSC proxy interrupt

Danila Tikhonov (1):
      drm/msm/adreno: Add support for SM7150 SoC machine

Dario Binacchi (7):
      drm/bridge: samsung-dsim: check the return value only if necessary
      drm/debugfs: drop unneeded DEBUG_FS guard
      dt-bindings: nt35510: add compatible for FRIDA FRD400B25025-A-CTK
      drm/panel: nt35510: move hardwired parameters to configuration
      drm/panel: nt35510: support FRIDA FRD400B25025-A-CTK
      drm: bridge: samsung-dsim: enter display mode in the enable() callback
      drm: bridge: samsung-dsim: complete the CLKLANE_STOP setting

Dave Airlie (19):
      Merge tag 'drm-misc-next-2024-01-11' of
git://anongit.freedesktop.org/drm/drm-misc into drm-next
      Merge tag 'drm-misc-next-2024-02-08' of
git://anongit.freedesktop.org/drm/drm-misc into drm-next
      Merge tag 'amd-drm-next-6.9-2024-02-09' of
https://gitlab.freedesktop.org/agd5f/linux into drm-next
      Merge tag 'drm-intel-next-2024-02-07' of
git://anongit.freedesktop.org/drm/drm-intel into drm-next
      Merge tag 'drm-intel-gt-next-2024-02-15' of
git://anongit.freedesktop.org/drm/drm-intel into drm-next
      Merge tag 'drm-misc-next-2024-02-15' of
git://anongit.freedesktop.org/drm/drm-misc into drm-next
      Merge tag 'amd-drm-next-6.9-2024-02-19' of
https://gitlab.freedesktop.org/agd5f/linux into drm-next
      Merge tag 'drm-intel-next-2024-02-27-1' of
git://anongit.freedesktop.org/drm/drm-intel into drm-next
      Merge tag 'drm-intel-gt-next-2024-02-28' of
git://anongit.freedesktop.org/drm/drm-intel into drm-next
      Merge tag 'drm-misc-next-2024-02-29' of
https://anongit.freedesktop.org/git/drm/drm-misc into drm-next
      Merge tag 'mediatek-drm-next-6.9' of
https://git.kernel.org/pub/scm/linux/kernel/git/chunkuang.hu/linux
into drm-next
      Merge tag 'drm-msm-next-2024-02-29' of
https://gitlab.freedesktop.org/drm/msm into drm-next
      Merge tag 'drm-misc-next-fixes-2024-02-29' of
https://anongit.freedesktop.org/git/drm/drm-misc into drm-next
      Merge tag 'amd-drm-next-6.9-2024-03-01' of
https://gitlab.freedesktop.org/agd5f/linux into drm-next
      Merge tag 'drm-misc-next-fixes-2024-03-07' of
https://anongit.freedesktop.org/git/drm/drm-misc into drm-next
      Merge tag 'drm-xe-next-fixes-2024-03-04' of
ssh://gitlab.freedesktop.org/drm/xe/kernel into drm-next
      Merge tag 'drm-etnaviv-next-2024-03-07' of
https://git.pengutronix.de/git/lst/linux into drm-next
      Merge tag 'drm-msm-next-2024-03-07' of
https://gitlab.freedesktop.org/drm/msm into drm-next
      Merge tag 'amd-drm-next-6.9-2024-03-08-1' of
https://gitlab.freedesktop.org/agd5f/linux into drm-next

David McFarland (1):
      drm/amd: Don't init MEC2 firmware when it fails to load

Devarsh Thakkar (1):
      dt-bindings: display: ti,am65x-dss: Add support for common1 region

Dillon Varone (1):
      drm/amd/display: Init link enc resources in dc_state only if
res_pool presents

Dmitry Baryshkov (43):
      drm/msm/dsi: do not store internal bridge pointer
      drm/msm/dsi: drop msm_dsi_device_connected() function
      drm/msm/dsi: stop calling set_split_display
      drm/msm/dsi: remove msm_dsi::encoder
      drm/msm/mdp5: drop split display support
      drm/msm/dp: drop unused parser definitions
      drm/msm/dp: drop unused fields from dp_power_private
      drm/msm/dp: parse DT from dp_parser_get
      drm/msm/dp: inline dp_power_(de)init
      drm/msm/dp: fold dp_power into dp_ctrl module
      drm/msm/dp: simplify stream clocks handling
      drm/msm/dp: stop parsing clock names from DT
      drm/msm/dp: split dp_ctrl_clk_enable into four functuions
      drm/msm/dp: move phy_configure_opts to dp_ctrl
      drm/msm/dp: remove PHY handling from dp_catalog.c
      drm/msm/dp: handle PHY directly in dp_ctrl
      drm/msm/dp: move all IO handling to dp_catalog
      drm/msm/dp: move link property handling to dp_panel
      drm/msm/dp: move next_bridge handling to dp_display
      drm/msm/dp: drop dp_parser
      drm/msm/dpu: split irq_control into irq_enable and _disable
      drm/msm/dpu: split _dpu_encoder_resource_control_helper()
      drm/msm/dpu: drop dpu_encoder_phys_ops.atomic_mode_set
      drm/msm/dpu: move writeback's atomic_check to dpu_writeback.c
      drm/msm/dpu: drop dpu_encoder_phys_ops::atomic_check()
      drm/msm/dsi: Document DSC related pclk_rate and hdisplay calculations
      drm: ci: use clk_ignore_unused for apq8016
      drm/msm/mdss: generate MDSS data for MDP5 platforms
      drm/msm/dpu: support binding to the mdp5 devices
      drm/msm: add a kernel param to select between MDP5 and DPU drivers
      drm/msm/dpu: add support for SDM660 and SDM630 platforms
      drm/msm/dpu: finalise global state object
      drm/msm/dpu: drop global_state_lock
      drm/msm/mdp5: migrate SMP dumping to using atomic_print_state
      drm/msm/mdp5: drop global_state_lock
      drm/ci: skip suspend tests for both msm-sc7180 machines
      drm/ci: update IGT test names
      drm/ci: update msm-apq8096-fails list
      drm/ci: mark universal-plane-sanity as failing on SC7180
      drm/msm/a6xx: specify UBWC config for sc7180
      drm/msm/dpu: make "vblank timeout" more useful
      drm/msm/dpu: split dpu_encoder_wait_for_event into two functions
      drm/msm/dpu: capture snapshot on the first commit_done timeout

Dmytro Laktyushkin (2):
      drm/amd/display: Fix dml2 assigned pipe search
      drm/amd/display: Fix DPSTREAM CLK on and off sequence

Donald Robson (1):
      MAINTAINERS: Remove Donald Robson from powervr driver maintainers

Douglas Anderson (2):
      drm/panel: boe-tv101wum-nl6: make use of prepare_prev_first
      drm/dp: Don't attempt AUX transfers when eDP panels are not powered

Eric Huang (1):
      amd/amdkfd: remove unused parameter

Eric Yang (1):
      drm/amd/display: fix invalid reg access on DCN35 FPGA

Erick Archer (3):
      drm/i915: Add flex arrays to struct i915_syncmap
      drm/xe: Prefer struct_size over open coded arithmetic
      accel/habanalabs: use kcalloc() instead of kzalloc()

Erico Nunes (8):
      drm/lima: reset async_reset on pp hard reset
      drm/lima: reset async_reset on gp hard reset
      drm/lima: set pp bus_stop bit before hard reset
      drm/lima: set gp bus_stop bit before hard reset
      drm/lima: handle spurious timeouts due to high irq latency
      drm/lima: remove guilty drm_sched context handling
      drm/lima: increase default job timeout to 10s
      drm/lima: standardize debug messages by ip name

Erik Kurzinger (3):
      drm/syncobj: call drm_syncobj_fence_add_wait when WAIT_AVAILABLE
flag is set
      drm/syncobj: reject invalid flags in drm_syncobj_find_fence
      drm/syncobj: call might_sleep before waiting for fence submission

Ethan Bitnun (3):
      drm/amd/display: Add delay before logging clks from hw
      drm/amd/display: Adjust set_p_state calls to fix logging
      drm/amd/display: Only log during optimize_bandwidth call

Fangzhi Zuo (2):
      drm/amd/display: Fix dcn35 8k30 Underflow/Corruption Issue
      drm/amd/display: Fix MST Null Ptr for RV

Farah Kassabri (2):
      accel/habanalabs/gaudi2: move HMMU page tables to device memory
      accel/habanalabs: remove hop size from asic properties

Fedor Pchelkin (1):
      drm/tegra: put drm_gem_object ref on error in tegra_fb_create

Fei Yang (2):
      drm/xe: correct the calculation of remaining size
      drm/xe: correct the assertion for number of PTEs

Felix Kuehling (5):
      drm/amdgpu: Auto-validate DMABuf imports in compute VMs
      drm/amdkfd: Bump KFD ioctl version
      drm/amdgpu: Remove unnecessary NULL check
      drm/amdgpu: Reduce VA_RESERVED_BOTTOM to 64KB
      drm/amdkfd: Relocate TBA/TMA to opposite side of VM hole

Flora Cui (1):
      drm/amdkfd: init drm_client with funcs hook

Friedrich Vock (1):
      drm/amdgpu: Reset IH OVERFLOW_CLEAR bit

Fudongwang (2):
      drm/amd/display: Add GART memory support for dmcub
      drm/amd/display: refine code for dmcub inbox1 ring buffer debug

Gabe Teeger (1):
      Revert "drm/amd/display: Send DTBCLK disable message on first commit"

Geert Uytterhoeven (1):
      drm: Spelling s/hardward/hardware/g

George Shen (5):
      drm/amd/display: Add DP audio BW validation
      drm/amd/display: Add debug option to force 1-tap chroma subsampling
      drm/amd/display: Add left edge pixel for YCbCr422/420 + ODM pipe split
      Revert "drm/amd/display: Add left edge pixel for YCbCr422/420 +
ODM pipe split"
      drm/amd/display: Check DP Alt mode DPCS state via DMUB

Ghanshyam Agrawal (1):
      drm/vmwgfx: Fix typos in vmwgfx_execbuf.c

GuoHua Chen (34):
      drm/radeon: Clean up errors in si_dpm.c
      drm/radeon/trinity_dpm: Clean up errors in trinity_dpm.c
      drm/radeon: Clean up errors in trinity_dpm.c
      drm/radeon: Clean up errors in radeon_atpx_handler.c
      drm/radeon/r100: Clean up errors in r100.c
      drm/radeon: Clean up errors in r600_dpm.h
      drm/radeon: Clean up errors in ni.c
      drm/radeon/dpm: Clean up errors in sumo_dpm.c
      drm/radeon/ni_dpm: Clean up errors in ni_dpm.c
      drm/radeon: Clean up errors in ni_dpm.c
      drm/radeon: Clean up errors in smu7_discrete.h
      drm/radeon/rv770: Clean up errors in rv770_dpm.c
      drm/radeon/dpm: Clean up errors in trinity_dpm.h
      drm/radeon/btc_dpm: Clean up errors in btc_dpm.c
      drm/radeon/kms: Clean up errors in rv6xx_dpm.h
      drm/radeon: Clean up errors in radeon_asic.c
      drm/radeon: Clean up errors in uvd_v1_0.c
      drm/radeon: Clean up errors in radeon_audio.h
      drm/radeon: Clean up errors in rs400.c
      drm/radeon: Clean up errors in radeon_audio.c
      drm/radeon: Clean up errors in si_dpm.h
      drm/radeon: Clean up errors in rs600.c
      drm/radeon: Clean up errors in r600.c
      drm/radeon/ci_dpm: Clean up errors in ci_dpm.c
      drm/radeon: Clean up errors in rv770_smc.h
      drm/radeon: Clean up errors in evergreen.c
      gpu/drm/radeon: Clean up errors in evergreen.c
      drm/radeon: Clean up errors in kv_smc.c
      drm/radeon: Clean up errors in evergreen_reg.h
      drm/radeon: Clean up errors in radeon_mode.h
      drm/radeon: Clean up errors in rv515.c
      drm/radeon: Clean up errors in r600_dpm.c
      drm/radeon/kms: Clean up errors in smu7_fusion.h
      drm/radeon/kms: Clean up errors in smu7.h

Gustavo Sousa (6):
      drm/i915/cdclk: Remove divider field from tables
      drm/i915/xe2lpd: Update bxt_sanitize_cdclk()
      drm/i915/cdclk: Extract bxt_cdclk_ctl()
      drm/i915/cdclk: Reorder bxt_sanitize_cdclk()
      drm/i915/cdclk: Re-use bxt_cdclk_ctl() when sanitizing
      drm/i915: Update ADL-N PCI IDs

Hamza Mahfooz (9):
      drm/amd/display: add panel_power_savings sysfs entry to eDP connectors
      drm/amdgpu: make damage clips support configurable
      drm/amdgpu: respect the abmlevel module parameter value if it is set
      drm/amd/display: add DCN351 version identifiers
      drm/amd: add register headers for DCN351
      drm/amd/display: add DMUB source files and changes for DCN351
      drm/amd/display: add DCN351 IRQ changes
      drm/amd/display: add DC changes for DCN351
      drm/amd/display: add amdgpu_dm support for DCN351

Haridhar Kalvala (1):
      drm/i915/mtl: Add fake PCH for Meteor Lake

Harish Chegondi (1):
      drm/i915/xelpg: Extend driver code of Xe_LPG to Xe_LPG+

Harry Wentland (4):
      drm: Don't treat 0 as -1 in drm_fixp2int_ceil
      drm/vkms: Create separate Kconfig file for VKMS
      drm/vkms: Avoid reading beyond LUT array
      drm/amd/display: Add dpp_get_gamut_remap functions

Hawking Zhang (23):
      drm/amdgpu: Replace DRM_* with dev_* in amdgpu_psp.c
      drm/amdgpu: drop psp v13 query_boot_status implementation
      drm/amdgpu: Init pcie_index/data address as fallback (v2)
      drm/amdgpu: Add ras helper to query boot errors v2
      drm/amdgpu: Query boot status if discovery failed
      drm/amdgpu: Query boot status if boot failed
      drm/amdgpu: Align ras block enum with firmware
      drm/amdgpu: Query ras capablity from psp v2
      drm/amdgpu: Centralize ras cap query to amdgpu_ras_check_supported
      drm/amdgpu: Fix null pointer dereference
      drm/amdgpu: Update boot time errors polling sequence
      drm/amdgpu: Add athub v4_1_0 ip headers (v5)
      drm/amdgpu: Add athub v4_1_0 ip block support
      drm/amdgpu: Add lsdma v7_0_0 ip headers (v3)
      drm/amdgpu: Add osssys v7_0_0 ip headers (v4)
      drm/amdgpu: Add hdp v7_0_0 ip headers (v3)
      drm/amdgpu: Add vcn v5_0_0 ip headers (v5)
      drm/amdgpu: Add mp v14_0_2 ip headers (v5)
      drm/amdgpu: Add psp v14_0 ip block support
      drm/amdgpu: Do not toggle bif ras irq from guest
      drm/amdgpu: Add nbif v6_3_1 ip headers (v5)
      drm/amdgpu: Add pcie v6_1_0 ip headers (v5)
      drm/amdgpu: Add nbif v6_3_1 ip block support

Heiko Stuebner (5):
      dt-bindings: vendor-prefixes: add prefix for admatec GmbH
      dt-bindings: display: panel-lvds: Add compatible for admatec 9904370 panel
      drm/panel: ltk500hd1829: make room for more similar panels
      dt-bindings: display: ltk500hd1829: add variant compatible for
ltk101b4029w
      drm/panel: ltk500hd1829: add panel type for ltk101b4029w

Hersen Wu (1):
      drm/amd/display: add debugfs disallow edp psr

Himal Prasad Ghimiray (1):
      drm/xe/xe2: Use XE_CACHE_WB pat index

Hsiao Chien Sung (3):
      drm/mediatek: Add Padding to OVL adaptor
      drm/mediatek: Support MT8188 VDOSYS1 in display driver
      drm/mediatek: Filter modes according to hardware capability

Hsin-Yi Wang (3):
      drm/panel-edp: use put_sync in unprepare
      Revert "drm/panel-edp: Add auo_b116xa3_mode"
      drm/mediatek: Fix a null pointer crash in mtk_drm_crtc_finish_page_flip

Huacai Chen (1):
      drm/loongson: Error out if no VRAM detected

Huang Rui (1):
      drm/virtio: add definition for venus capset

Ian Forbes (1):
      drm/vmwgfx: Add SVGA_3D_CMD_DEFINE_GB_SURFACE_V4 to command array.

Ilpo Järvinen (2):
      drm/radeon: Use RMW accessors for changing LNKCTL2
      drm/amdgpu: Use RMW accessors for changing LNKCTL2

Ilya Bakoulin (1):
      drm/amd/display: Clear OPTC mem select on disable

Imre Deak (36):
      drm/i915/dp: Fix the PSR debugfs entries wrt. MST connectors
      drm/i915: Init DRM connector polled field early
      drm/i915: Keep the connector polled state disabled after storm
      drm/i915: Move audio deinit after disabling polling
      drm/i915: Disable intel HPD poll after DRM poll init/enable
      drm/i915: Suspend the framebuffer console during driver shutdown
      drm/i915: Suspend the framebuffer console earlier during system suspend
      drm/i915: Prevent modesets during driver init/shutdown
      drm/i915: Disable hotplug detection works during driver init/shutdown
      drm/i915: Disable hotplug detection handlers during driver init/shutdown
      drm/i915: Add intel_digital_port lock/unlock hooks
      drm/i915: Filter out glitches on HPD lines during hotplug detection
      drm/i915/dp: Abort AUX on disconnected native DP ports
      drm/i915: Prevent HW access during init from SDVO TV get_modes hook
      drm/i915: Prevent HW access during init from connector get_modes hooks
      drm/dp: Add drm_dp_max_dprx_data_rate()
      drm/dp: Add support for DP tunneling
      drm/i915: Fix display bpp limit computation during system resume
      drm/i915/dp: Add support to notify MST connectors to retry modesets
      drm/i915/dp: Use drm_dp_max_dprx_data_rate()
      drm/i915/dp: Factor out intel_dp_config_required_rate()
      drm/i915/dp: Export intel_dp_max_common_rate/lane_count()
      drm/i915/dp: Factor out intel_dp_update_sink_caps()
      drm/i915/dp: Factor out intel_dp_read_dprx_caps()
      drm/i915/dp: Add intel_dp_max_link_data_rate()
      drm/i915/dp: Sync instead of try-sync commits when getting active pipes
      drm/i915/dp: Add support for DP tunnel BW allocation
      drm/i915/dp: Add DP tunnel atomic state and check BW limit
      drm/i915/dp: Account for tunnel BW limit in intel_dp_max_link_data_rate()
      drm/i915/dp: Compute DP tunnel BW during encoder state computation
      drm/i915/dp: Allocate/free DP tunnel BW during modeset
      drm/i915/dp: Handle DP tunnel IRQs
      drm/i915/dp: Call intel_dp_sync_state() always for DDI DP encoders
      drm/i915/dp: Suspend/resume DP tunnels
      drm/i915/dp: Read DPRX for all long HPD pulses
      drm/i915/dp: Enable DP tunnel BW allocation mode

Jacek Lawrynowicz (5):
      accel/ivpu: Rename TILE_SKU_BOTH_MTL to TILE_SKU_BOTH
      accel/ivpu: Remove legacy firmware name
      accel/ivpu: Update FW API headers
      accel/ivpu: Fix ivpu_reset_engine_fn merge issue
      accel/ivpu: Rename VPU to NPU in message strings

Jani Nikula (91):
      drm/edid: replace __attribute__((packed)) with __packed
      drm/ioc32: replace __attribute__((packed)) with __packed
      drm/tegra: include drm/drm_edid.h only where needed
      drm/i915/hdcp: unify connector logging format
      drm/i915/hdcp: fix intel_hdcp_get_repeater_ctl() error return value
      drm/i915/bios: remove some unused leftover declarations
      drm/edid: prefer forward declarations over includes in drm_edid.h
      drm/i915: don't make assumptions about intel_wakeref_t type
      drm/i915/irq: use DISPLAY_VER instead of GRAPHICS_VER
      drm/i915/dmc: use DISPLAY_VER instead of GRAPHICS_VER
      drm/i915/hdcp: use DISPLAY_VER instead of GRAPHICS_VER
      drm/i915/display: use IS_DISPLAY_VER instead of IS_GRAPHICS_VER
      drm/i915/tv: use DISPLAY_VER instead of GRAPHICS_VER
      drm/i915: don't make assumptions about intel_wakeref_t type
      drm/mgag200: convert get modes to struct drm_edid
      drm/probe-helper: remove unused drm_connector_helper_get_modes_from_ddc()
      drm/nouveau: include drm/drm_edid.h only where needed
      drm/hisilicon: include drm/drm_edid.h only where needed
      drm/xe: display support should not depend on EXPERT
      Merge drm/drm-next into drm-intel-next
      drm/i915/bios: move i915_vbt debugfs to intel_bios.c
      drm/i915/opregion: move i915_opregion debugfs to intel_opregion.c
      drm/i915/opregion: abstract getting the opregion VBT
      drm/i915/opregion: abstract ASLE presence check
      drm/i915/gvt: use local INTEL_GVT_OPREGION_SIZE
      drm/i915/opregion: make struct intel_opregion opaque
      ASoC: hdmi-codec: drop drm/drm_edid.h include
      drm/i915/opregion: remove unused lid_state
      drm/xe: make xe_ttm_funcs const
      drm/xe: make heci_gsc_irq_chip const
      drm/xe: make hwmon_info const
      drm/xe: make gpuvm_ops const
      drm/xe: constify engine class sysfs attributes
      drm/xe: don't build debugfs files when CONFIG_DEBUG_FS=n
      drm/amdgpu: prefer snprintf over sprintf
      drm/imx: prefer snprintf over sprintf
      drm/xe: move xe_display.[ch] under display/
      drm/xe: drop display/ subdir from include directories
      drm/nouveau/acr/ga102: remove unused but set variable
      drm/nouveau/svm: remove unused but set variables
      drm/bridge: add ->edid_read hook and drm_bridge_edid_read()
      drm/bridge: switch to drm_bridge_edid_read()
      drm/bridge: chrontel-ch7033: switch to drm_bridge_edid_read()
      drm/bridge: lt8912b: use drm_bridge_edid_read()
      drm/bridge: lt8912b: clear the EDID property on failures
      drm/bridge: lt8912b: use ->edid_read callback
      drm/bridge: lt9611uxc: use drm_bridge_edid_read()
      drm: bridge: simple-bridge: use drm_bridge_edid_read()
      drm: bridge: simple-bridge: clear the EDID property on failures
      drm/bridge: tfp410: use drm_bridge_edid_read()
      drm/bridge: tfp410: clear the EDID property on failures
      drm/meson: switch to drm_bridge_edid_read()
      drm/bridge: remove drm_bridge_get_edid() in favour of
drm_bridge_edid_read()
      drm/bridge: anx7625: switch to ->edid_read callback
      drm/bridge: cdns-mhdp8546: switch to ->edid_read callback
      drm/bridge: cdns-mhdp8546: clear the EDID property on failures
      drm/bridge: display-connector: switch to ->edid_read callback
      drm/bridge: it6505: switch to ->edid_read callback
      drm: bridge: it66121: switch to ->edid_read callback
      drm/bridge: lt9611: switch to ->edid_read callback
      drm/bridge: lt9611uxc: switch to ->edid_read callback
      drm/bridge: megachips: switch to ->edid_read callback
      drm/bridge: nxp-ptn3460: switch to ->edid_read callback
      drm/bridge: sii902x: use display info is_hdmi
      drm/bridge: sii902x: switch to ->edid_read callback
      drm/mediatek/dp: switch to ->edid_read callback
      drm/mediatek/hdmi: switch to ->edid_read callback
      drm/msm/hdmi: fix indent
      drm/msm/hdmi: switch to ->edid_read callback
      drm/omap/hdmi4: switch to ->edid_read callback
      drm/omap/hdmi5: switch to ->edid_read callback
      drm: xlnx: zynqmp_dpsub: switch to ->edid_read callback
      drm: adv7511: switch to ->edid_read callback
      drm: bridge: dw_hdmi: switch to ->edid_read callback
      drm: bridge: dw_hdmi: clear the EDID property and CEC address on failures
      drm/bridge: tc358767: update the EDID property
      drm/bridge: tc358767: switch to ->edid_read callback
      drm/bridge: ti-sn65dsi86: switch to ->edid_read callback
      drm/bridge: remove ->get_edid callback
      drm/print: make drm_err_printer() device specific by using drm_err()
      drm/print: move enum drm_debug_category etc. earlier in drm_print.h
      drm/print: add drm_dbg_printer() for drm device specific printer
      drm/dp_mst: switch from drm_debug_printer() to device specific
drm_dbg_printer()
      drm/mode: switch from drm_debug_printer() to device specific
drm_dbg_printer()
      drm/dp: switch drm_dp_vsc_sdp_log() to struct drm_printer
      drm/i915: switch from drm_debug_printer() to device specific
drm_dbg_printer()
      drm/i915: use drm_printf() with the drm_err_printer intead of pr_err()
      drm/xe: switch from drm_debug_printer() to device specific
drm_dbg_printer()
      drm: remove drm_debug_printer in favor of drm_dbg_printer
      drm/xe: use drm based debugging instead of dev
      drm/xe: fix arguments to drm_err_printer()

Javier Martinez Canillas (5):
      dt-bindings: display: ssd1307fb: Add vendor prefix to width and height
      dt-bindings: display: ssd132x: Add vendor prefix to width and height
      dt-bindings: display: Add SSD133x OLED controllers
      drm/ssd130x: Add support for the SSD133x OLED controller family
      drm: Move drm_set_preferred_mode() helper from drm_edid to drm_modes

Jay Cornwall (1):
      drm/amdkfd: Use S_ENDPGM_SAVED in trap handler

Jeff Johnson (1):
      accel/qaic: Constify aic100_channels

Jeffrey Hugo (3):
      accel/qaic: Fix MHI channel struct field order
      accel/qaic: Order pci_remove() operations in reverse of probe()
      dt-bindings: drm/bridge: ti-sn65dsi86: Fix bouncing @codeaurora address

Jesse Zhang (2):
      Revert "drm/amdgpu: remove vm sanity check from
amdgpu_vm_make_compute" for Raven
      drm/amdgpu: remove unused code

Jessica Zhang (3):
      drm/panel: visionox-vtdr6130: Set prepare_prev_first flag
      dt-bindings: visionox-rm69299: Update maintainers
      drm/panel: visionox-r66451: Set prepare_prev_first flag

Jianhua Lu (1):
      drm/panel: nt36523: Set 120Hz fps for xiaomi,elish panels

Jiapeng Chong (1):
      drm/amd/display: Simplify the calculation of variables

Jiri Slaby (SUSE) (22):
      char/agp: remove agp_bridge_data::type
      drm/i915: remove unused intel_dvo_dev_ops hooks
      drm/i915: remove structs intel_vgpu_pipe_format and intel_vgpu_fb_format
      drm/i915: remove intel_dsi::{port_bits,hs}
      drm/i915: remove intel_gvt_gtt::{mm_alloc_page_table, mm_free_page_table}
      drm/i915: remove intel_gvt_mmio_info::{device, addr_range}
      drm/i915: remove intel_vgpu_workload::{ring_context, restore_inhibit}
      drm/i915: remove intel_vbt_panel_data::edp::initialized
      drm/i915: remove intel_guc::ads_engine_usage_size
      drm/i915: remove i915_drm_client::id
      drm/i915: remove i915_perf_stream::size_exponent
      drm/i915: remove intel_vgpu_gtt::active_ppgtt_mm_bitmap
      drm/i915: remove intel_vgpu_fence::base
      drm/i915: remove intel_vgpu_opregion::mapped
      drm/i915: remove intel_vgpu::intx_trigger
      drm/i915: remove gvt_mmio_block::device
      drm/i915: remove intel_gvt_irq_info::warned
      drm/i915: remove intel_gvt_event_info::policy
      drm/i915: remove intel_gvt_irq::pending_events
      drm/i915: remove execute_cb::signal
      drm/i915: remove i915_vma::obj_hash
      drm/i915: remove intel_memory_region_ops::flags

Jocelyn Falempe (1):
      drm/mgag200: Add a workaround for low-latency

Johan Jonker (2):
      dt-bindings: display: rockchip: rockchip,dw-hdmi: remove port property
      dt-bindings: display: rockchip,dw-hdmi: add power-domains property

John Harrison (6):
      drm/i915/huc: Allow for very slow HuC loading
      drm/i915/guc: Avoid circular locking issue on busyness flush
      drm/xe/uc: Include patch version in expectations
      drm/xe/guc: Update to GuC firmware 70.19.2
      drm/xe/guc: Add support for LNL firmware
      drm/i915/gt: Restart the heartbeat timer when forcing a pulse

Jonathan Cavitt (1):
      drm/i915/gem: Atomically invalidate userptr on mmu-notifier

Jonathan Kim (2):
      drm/amdkfd: fill in data for control stack header for gfx10
      drm/amdkfd: fix process reference drop on debug ioctl

Joseph Greathouse (1):
      drm/amdkfd: Add cache line sizes to KFD topology

José Roberto de Souza (15):
      drm/xe/uapi: Remove DRM_XE_VM_BIND_FLAG_ASYNC comment left over
      drm/i915: Disable DSB in Xe KMD
      drm/xe: Fix definition of intel_wakeref_t
      drm/xe: Use intel_wakeref_t in intel_runtime_pm functions
      drm/xe: Remove double new lines in devcoredump
      drm/xe: Change devcoredump functions parameters to xe_sched_job
      drm/xe: Nuke xe from xe_devcoredump
      drm/xe: Print more device information in devcoredump
      drm/xe: Print registers spread in 2 u32 as u64
      drm/xe: Remove additional spaces in devcoredump HW Engines section
      drm/xe: Fix crash in trace_dma_fence_init()
      drm/xe: Use function to emit PIPE_CONTROL
      drm/xe: Add functions to convert regular address to canonical
address and back
      drm/xe: Add batch buffer addresses to devcoredump
      drm/xe: Add uAPI to query GuC firmware submission version

Jouni Högander (20):
      drm/i915/display: Remove intel_crtc_state->psr_vsc
      drm/i915/display: Move colorimetry_support from intel_psr to intel_dp
      drm/i915/display: Unify VSC SPD preparation
      drm/i915/display: Fix vsc_sdp computation
      drm/i915/display: Ignore only psr specific part of vsc sdp
      drm/i915/display: Read PSR configuration before VSC SDP
      drm/i915/display: Take care of VSC select field in video dip ctl register
      drm: Add eDP 1.5 early transport definition
      drm/i915/psr: Extend SU area to cover cursor fully if needed
      drm/i915/psr: Carry su area in crtc_state
      drm/i915/psr: Calculate and configure CUR_POS_ERLY_TPT
      drm/i915/psr: Configure PIPE_SRCSZ_ERLY_TPT for psr2 early transport
      drm/i915/psr: Enable psr2 early transport as possible
      drm/i915/psr: Disable early transport by default
      drm/i915/display: No need for full modeset due to psr
      drm/i915/psr: CAN_PSR and CAN_PANEL_REPLAY can be now local defines
      drm/i915/alpm: Add ALPM register definitions
      drm/i915/psr: Add alpm_parameters struct
      drm/i915/alpm: Calculate ALPM Entry check
      drm/i915/alpm: Alpm aux wake configuration for lnl

Juan Escamilla (2):
      drm/i915/gt: Use rc6.supported flag from intel_gt for rc6_enable sysfs
      drm/i915/gt: Reflect the true and current status of rc6_enable

Juha-Pekka Heikkila (1):
      drm/i915/display: On Xe2 always enable decompression with tile4

Justin Stitt (1):
      drm/etnaviv: Replace strncpy with strscpy_pad

Karolina Stolarek (4):
      drm/ttm/tests: Add tests for ttm_resource and ttm_sys_man
      drm/ttm/tests: Add tests for ttm_tt
      drm/ttm/tests: Add tests for ttm_bo functions
      drm/ttm/tests: Fix argument in ttm_tt_kunit_init()

Karthik Poosa (3):
      drm/xe/guc: Enable WA 14018913170
      drm/xe/guc: Reduce a print from warn to debug
      drm/xe/hwmon: Refactor xe hwmon

Kenneth Feng (1):
      drm/amd/pm: update the power cap setting

Kent Russell (1):
      drm/amdkfd: Fix L2 cache size reporting in GFX9.4.3

Khaled Almahallawy (3):
      drm/i915/dp: Use LINK_QUAL_PATTERN_* Phy test pattern names
      drm/i915/dp: Add TPS4 PHY test pattern support
      drm/i915/dp: Fix passing the correct DPCD_REV for
drm_dp_set_phy_test_pattern

Koby Elbaz (1):
      accel/habanalabs: increase HL_MAX_STR to 64 bytes to avoid warnings

Konrad Dybcio (2):
      drm/panel: novatek-nt36523: Set prepare_prev_first
      drm/msm/adreno: Add A702 support

Krystian Pradzynski (1):
      accel/ivpu: Add support for FW boot param system_time_us

Kunwu Chan (4):
      drm/amdgpu: Simplify the allocation of fence slab caches
      drm/amdgpu: Simplify the allocation of mux_chunk slab caches
      drm/amdgpu: Simplify the allocation of sync slab caches
      drm/scheduler: Simplify the allocation of slab caches in
drm_sched_fence_slab_init

Kuogee Hsieh (3):
      drm/msm/dpu: improve DSC allocation
      drm/msm/dp: remove mdss_dp_test_bit_depth_to_bpc()
      drm/msm/dpu: add support of new peripheral flush mechanism

Lang Yu (6):
      drm/amdkfd: reserve the BO before validating it
      drm/amdgpu/vpe: add multi instance VPE support
      drm/amdgpu/vpe: add PRED_EXE and COLLAB_SYNC OPCODE
      drm/amdgpu/vpe: add collaborate mode support for VPE
      drm/amdgpu/vpe: don't emit cond exec command under collaborate mode
      drm/amdgpu/vpe: add VPE 6.1.1 support

Laurent Morichetti (3):
      drm/amdkfd: pass debug exceptions to second-level trap handler
      drm/amdkfd: Increase the size of the memory reserved for the TBA
      drm/amdkfd: Use SQC when TCP would fail in gfx10.1 context save

Le Ma (1):
      drm/amdgpu: move the drm client creation behind drm device registration

Lenko Donchev (1):
      drm/amd/display: Use kcalloc() instead of kzalloc()

Leo (Hanghong) Ma (1):
      drm/amd/display: Fix timing bandwidth calculation for HDMI

Lewis Huang (1):
      drm/amd/display: Only allow dig mapping to pwrseq in new asic

Li Ma (2):
      drm/amdgpu: remove asymmetrical irq disabling in jpeg 4.0.5 suspend
      drm/amd/swsmu: modify the gfx activity scaling

Lijo Lazar (10):
      drm/amdgpu: Avoid fetching vram vendor information
      drm/amdgpu: Show vram vendor only if available
      drm/amd/pm: Fetch current power limit from FW
      drm/amdgpu: Avoid fetching VRAM vendor info
      drm/amdgpu: Fix HDP flush for VFs on nbio v7.9
      drm/amd/pm: Allow setting max UCLK on SMU v13.0.6
      drm/amdgpu: Add fatal error detected flag
      drm/amdkfd: Skip packet submission on fatal error
      drm/amdkfd: Add partition id field to location_id
      drm/amd/pm: Increase SMUv13.0.6 mode-2 reset time

Likun Gao (17):
      drm/amd/swsmu: add judgement for vcn jpeg dpm set
      drm/amdgpu: skip ucode bo reserve for RLC AUTOLOAD
      drm/amdgpu: support rlc auotload type set
      drm/amdgpu: Add lsdma v7_0 ip block support
      drm/amdgpu/discovery: Add lsdma v7_0 ip block
      drm/amdgpu: Add ih v7_0 ip block support
      drm/amdgpu/discovery: Add ih v7_0 ip block
      drm/amdgpu: Add hdp v7_0 ip block support
      drm/amdgpu/discovery: Add hdp v7_0 ip block
      drm/amdgpu: use spirom update wait_for helper for psp v14
      drm/amdgpu: support psp ip block for psp v14
      drm/amdgpu/psp: set autoload support by default
      drm/amdgpu/psp: handle TMR type via flag
      drm/amdgpu/psp: set boot_time_tmr flag
      drm/amdgpu: add psp_timeout to limit PSP related operation
      drm/amdgpu: support psp ip block discovery for psp v14
      drm/amdgpu/discovery: add nbif v6_3_1 ip block

Luca Weiss (4):
      dt-bindings: display: panel: Add Himax HX83112A
      drm/panel: Add driver for DJN HX83112A LCD panel
      dt-bindings: display/msm: gpu: Allow multiple digits for patchid
      drm/msm/adreno: Add A305B support

Lucas De Marchi (21):
      drm/xe: Fix warning on impossible condition
      drm/xe: Disable 32bits build
      drm/xe/xe2: Add workaround 16020183090
      drm/xe/kunit: Drop xe_wa tests for pre-production DG2
      drm/xe: Group normal kunit tests in a single module
      drm/i915: Drop -Wstringop-overflow
      drm/xe: Use _ULL for u64 division
      drm/xe/mmio: Cast to u64 when printing
      drm/xe/display: Avoid calling readq()
      drm/xe: Fix cast on trace variable
      drm/xe: Enable 32bits build
      Merge drm/drm-next into drm-xe-next
      drm/xe: Remove PVC from xe_wa kunit tests
      drm/xe/xe2: Enable has_usm
      drm/i915/xe2lpd: Move D2D enable/disable
      drm/i915/xe2lpd: Move registers to PICA
      drm/xe: Always allow to override firmware
      drm/xe: Avoid cryptic message when there's no GuC definition
      drm/xe: Enable 32bits build
      Merge drm/drm-next into drm-xe-next
      drm/xe: Use pointers in trace events

Lucas Stach (6):
      drm/rockchip: analogix_dp: get encoder port ID from DT
      drm/etnaviv: disable MLCG and pulse eater on GPU reset
      dt-bindings: display: imx: add binding for i.MX8MP HDMI PVI
      drm/bridge: imx: add driver for HDMI TX Parallel Video Interface
      dt-bindings: display: imx: add binding for i.MX8MP HDMI TX
      drm/bridge: imx: add bridge wrapper driver for i.MX8MP DWC HDMI

Lukas Bulwahn (1):
      drm: Clean-up superfluously selecting VT_HW_CONSOLE_BINDING

Ma Jun (12):
      drm/amdgpu: Check extended configuration space register when
system uses large bar
      drm/amdgpu: Fix the null pointer when load rlc firmware
      drm/amdgpu/pm: Fix the power source flag error
      drm/amdgpu/pm: Add default case for smu IH process func
      drm/amdgpu/pm: Use macro definitions in the smu IH process function
      drm/amdgpu: Fix the warning info in mode1 reset
      drm/amdgpu/pm: Use inline function for IP version check
      drm/amdgpu: Drop redundant parameter in amdgpu_gfx_kiq_init_ring
      drm/amdgpu: Fix the runtime resume failure issue
      drm/amdgpu/pm: Fix the power1_min_cap value
      drm/amdgpu/pm: Fix the error of pwm1_enable setting
      drm/amdgpu: Use rpm_mode flag instead of checking it again for rpm

Maarten Lankhorst (6):
      drm/xe/snapshot: Remove drm_err on guc alloc failures
      drm/xe: Clear all snapshot members after deleting coredump
      drm/xe: Add uapi for dumpable bos
      drm/xe: Annotate each dumpable vma as such
      drm/xe: Add vm snapshot mutex for easily taking a vm snapshot
during devcoredump
      drm/xe: Implement VM snapshot support for BO's and userptr

Maaz Mombasawala (2):
      drm/vmwgfx: Make all surfaces shareable
      drm/vmwgfx: Add SPDX header to vmwgfx_drm.h

Mads Bligaard Nielsen (1):
      drm/bridge: adv7511: fix crash on irq during probe

Malkoot Khan (1):
      accel/habanalabs: Remove unnecessary braces from if statement

Manasi Navare (1):
      drm/i915/dsc: Fix the macro that calculates DSCC_/DSCA_ PPS reg address

Manuel Traut (1):
      dt-bindings: display: panel: Add BOE TH101MB31IG002-28A panel

Marek Vasut (3):
      drm/bridge: tc358767: Limit the Pixel PLL input range
      drm/mxsfb: Switch to drmm_mode_config_init
      drm: lcdif: Switch to drmm_mode_config_init

Marijn Suijten (2):
      drm/msm/dsi: Replace dsi_get_bpp() with mipi_dsi header function
      drm/msm/dpu: Only enable DSC_MODE_MULTIPLEX if dsc_merge is enabled

Mario Limonciello (6):
      Revert "drm/amd/pm: fix the high voltage and temperature issue"
      drm/amd/display: Clear phantom stream count and plane count
      drm/amd: Stop evicting resources on APUs in suspend
      Revert "drm/amd: flush any delayed gfxoff on suspend entry"
      drm/amd: Change `jpeg_v4_0_5_start_dpg_mode()` to void
      drm/amd: Drop abm_level property

Markus Elfring (2):
      drm/sched: One function call less in drm_sched_init() after
error detection
      drm/sched: Return an error code only as a constant in drm_sched_init()

Martin Blumenstingl (1):
      drm/meson: improve encoder probe / initialization error handling

Martin Krastev (2):
      drm/vmwgfx: Refactor drm connector probing for display modes
      drm/vmwgfx: Fix vmw_du_get_cursor_mob fencing of newly-created MOBs

Martin Leung (1):
      drm/amd/display: 3.2.267

Martin Tsai (1):
      drm/amd/display: should support dmub hw lock on Replay

Matt Roper (7):
      drm/xe/dg2: Drop pre-production workarounds
      drm/xe/migrate: Cap PTEs written by MI_STORE_DATA_IMM to 510
      drm/i915: Add additional ARL PCI IDs
      drm/i915/xelpg: Extend some workarounds/tuning to gfx version 12.74
      drm/xe: Stash GMD_ID value in xe_gt
      drm/xe: Grab mem_access when disabling C6 on skip_guc_pc platforms
      drm/xe: Convert job timeouts from assert to warning

Matthew Auld (4):
      drm/xe/exec: move fence reservation
      drm/xe/exec: reserve fence slot for CPU bind
      drm/xe/vm: don't ignore error when in_kthread
      drm/xe/display: fix i915_gem_object_is_shmem() wrapper

Matthew Brost (27):
      drm/xe: Fix UBSAN splat in add_preempt_fences()
      drm/xe: Fix exec IOCTL long running exec queue ring full condition
      drm/xe/guc: Only take actions in CT irq handler if CTs are enabled
      drm/xe: Add build on bug to assert page fault queue works
      drm/xe: Invert page fault queue head / tail
      drm/xe: Add build on bug to assert access counter queue works
      drm/xe: Invert access counter queue head / tail
      drm/xe/guc: Add more GuC CT states
      drm/xe: Move TLB invalidation reset before HW reset
      drm/xe/guc: Flush G2H handler when turning off CTs
      drm/xe: Only allow 1 ufence per exec / bind IOCTL
      drm/xe: Make all GuC ABI shift values unsigned
      drm/xe: Use LRC prefix rather than CTX prefix in lrc desc defines
      drm/xe: Fix loop in vm_bind_ioctl_ops_unwind
      drm/xe: Drop rebind argument from xe_pt_prepare_bind
      drm/xe: Take a reference in xe_exec_queue_last_fence_get()
      drm/xe: Pick correct userptr VMA to repin on REMAP op failure
      drm/xe: Map both mem.kernel_bb_pool and usm.bb_pool
      drm/sched: Add Matthew Brost to maintainers
      drm/xe: Assume large page size if VMA not yet bound
      drm/xe: Remove TEST_VM_ASYNC_OPS_ERROR
      drm/xe: Remove exec queue bind.fence_*
      drm/xe: Fix xe_vma_set_pte_size
      drm/xe: Add XE_VMA_PTE_64K VMA flag
      drm/xe: Return 2MB page size for compact 64k PTEs
      drm/xe: Add debug prints for skipping rebinds
      drm/xe: Fix ref counting leak on page fault

Maxime Ripard (31):
      drm/atomic: Move the drm_atomic_state field doc inline
      drm/atomic: Remove inexistent reference
      drm/atomic: Rework the object doc a bit
      drm/atomic: Make the drm_atomic_state documentation less ambiguous
      drm/todo: Add entry to rename drm_atomic_state
      drm/rockchip: inno_hdmi: Remove useless mode_fixup
      drm/rockchip: inno_hdmi: Remove useless copy of drm_display_mode
      drm/rockchip: inno_hdmi: Switch encoder hooks to atomic
      drm/rockchip: inno_hdmi: Get rid of mode_set
      drm/rockchip: inno_hdmi: no need to store vic
      drm/rockchip: inno_hdmi: Remove unneeded has audio flag
      drm/rockchip: inno_hdmi: Remove useless input format
      drm/rockchip: inno_hdmi: Remove tmds rate from structure
      drm/rockchip: inno_hdmi: Drop HDMI Vendor Infoframe support
      drm/rockchip: inno_hdmi: Move infoframe disable to separate function
      drm/rockchip: inno_hdmi: Switch to infoframe type
      drm/rockchip: inno_hdmi: Remove unused drm device pointer
      Merge drm/drm-next into drm-misc-next
      drm/i915/tv: Fix TV mode
      drm/sun4i: hdmi: Convert encoder to atomic
      drm/sun4i: hdmi: Move mode_set into enable
      drm/sun4i: hdmi: Switch to container_of_const
      drm/sun4i: hdmi: Consolidate atomic_check and mode_valid
      drm/edid/firmware: Remove built-in EDIDs
      MAINTAINERS: Update drm.git URL
      drm/tests: helpers: Include missing drm_drv header
      drm/tests: helpers: Add atomic helpers
      drm/tests: Add helper to create mock plane
      drm/tests: Add helper to create mock crtc
      drm/tests: connector: Add tests for drmm_connector_init
      drm/sun4i: hdmi: Add missing drm_atomic header

Maíra Canal (3):
      drm/vc4: don't check if plane->state->fb == state->fb
      drm/v3d: Show the memory-management stats on debugfs
      drm/v3d: Enable V3D to use different PAGE_SIZE

Melissa Wen (10):
      drm/amd/display: decouple color state from hw state log
      drm/amd/display: read gamut remap matrix in fixed-point 31.32 format
      drm/amd/display: fill up DCN3 DPP color state
      drm/amd/display: add get_gamut_remap helper for MPC3
      drm/amd/display: create DCN3-specific log for MPC state
      drm/amd/display: hook up DCN30 color blocks data to DTN log
      drm/amd/display: add DPP and MPC color caps to DTN log
      drm/amd/display: hook up DCN20 color blocks data to DTN log
      drm/amd/display: fix null-pointer dereference on edid reading
      drm/amd/display: check dc_link before dereferencing

Michael Strauss (3):
      drm/amd/display: Remove Legacy FIXED_VS Transparent LT Sequence
      drm/amd/display: Don't perform rate toggle on DP2-capable
FIXED_VS retimers
      drm/amd/display: Update FIXED_VS Retimer HWSS Test Pattern Sequences

Michal Wajdeczko (49):
      drm/xe: Add command MI_LOAD_REGISTER_MEM
      drm/xe: Define registers used by memory based irq processing
      drm/xe: Update LRC context layout definitions
      drm/xe: Update definition of GT_INTR_DW
      drm/xe: Define IRQ offsets used by HW engines
      drm/xe: Add XE_BO_NEEDS_UC flag to force UC mode instead WB
      drm/xe/vf: Introduce Memory Based Interrupts Handler
      drm/xe/vf: Update LRC with memory based interrupts data
      drm/xe/vf: Setup memory based interrupts in GuC
      drm/xe/vf: Add VF specific interrupt handler
      drm/xe: Add GT oriented drm_printers
      drm/xe: Report TLB timeout using GT oriented functions
      drm/xe: Introduce GuC Doorbells Manager
      drm/xe/kunit: Set SR-IOV mode of the fake device
      drm/xe/kunit: Define helper functions to allocate fake xe device
      drm/xe/kunit: Restore test->priv when done with fake xe device
      drm/xe/kunit: Use xe kunit helper in RTP test
      drm/xe/kunit: Use xe kunit helper in WA test
      drm/xe/kunit: Enable CONFIG_LOCKDEP in tests
      drm/xe/kunit: Add GuC Doorbells Manager tests
      drm/xe: Allocate dedicated workqueue for SR-IOV workers
      drm/xe: Define Virtual Function Identifier
      drm/xe: Introduce GT-oriented SR-IOV logging macros
      drm/xe/guc: Add helpers for HXG messages
      drm/xe/guc: Update few GuC CTB ABI definitions
      drm/xe/guc: Add Relay Communication ABI definitions
      drm/xe/guc: Introduce Relay Communication for SR-IOV
      drm/xe/kunit: Allow to replace xe_guc_ct_send_recv() with stub
      drm/xe/kunit: Add GuC Relay kunit tests
      drm/xe/guc: Start handling GuC Relay event messages
      drm/xe: Fix compilation without CONFIG_KUNIT
      drm/xe: Split GuC communication initialization
      drm/xe/guc: Treat non-response message after BUSY as unexpected
      drm/xe/guc: Return CTB response length
      drm/xe/guc: Use HXG definitions on HXG messages
      drm/xe: Allow to exclude part of GGTT from allocations
      drm/xe: Fix potential deadlock in __fini_dbm
      drm/xe: Use kstrdup while creating snapshot
      drm/xe: Mark internal gmdid mappings as const
      drm/xe/guc: Return CTB HXG response DATA0 if no buffer provided
      drm/xe/guc: Add kernel-doc for xe_guc_ct_send_recv()
      drm/xe/vf: Assume fixed GSM size if VF
      drm/xe/vf: Don't try to capture engine data unavailable to VF
      drm/xe/vf: Don't program MOCS if VF
      drm/xe/vf: Don't initialize stolen memory manager if VF
      drm/xe/vf: Don't check if LMEM is initialized if VF
      drm/xe/vf: Don't enable hwmon if VF
      drm/xe/vf: Don't program PAT if VF
      drm/xe/vf: Don't support MCR registers if VF

Michał Winiarski (10):
      drm/managed: Add drmm_release_action
      drm/tests: managed: Rename the suite name to match other DRM tests
      drm/tests: managed: Add comments about test intent
      drm/tests: managed: Extract device initialization into test init
      drm/tests: managed: Add a simple test for drmm_managed_release
      drm/tests: mm: Convert to drm_dbg_printer
      drm/xe/guc: Allocate GuC data structures in system memory for initial load
      drm/xe/huc: Realloc HuC FW in vram for post-hwconfig
      drm/xe/guc: Move GuC power control init to "post-hwconfig"
      drm/xe: Initialize GuC earlier during probe

Mika Kahola (5):
      drm/i915/display: Fix C20 pll selection for state verification
      drm/i915/display: Store hw clock for C20
      drm/i915/display: Cleanup mplla/mpllb selection
      drm/i915/display: Skip C10 state verification in case of fastset
      drm/i915/display: Use helper to select C20 MPLLA/B

Mika Kuoppala (1):
      drm/xe: Remove obsolete async_ops from struct xe_vm

Moti Haimovski (1):
      drm/xe/vm: bugfix in xe_vm_create_ioctl

Mounika Adhuri (1):
      drm/amd/display: clkmgr unittest with removal of warn & rename
DCN35 ips handshake for idle

Muhammad Ahmed (1):
      drm/amd/display: add power_state and pme_pending flag

Mukul Joshi (2):
      drm/amdgpu: Fix module unload hang with RAS enabled
      drm/amdkfd: Use correct drm device for cgroup permission check

Nathan Chancellor (1):
      drm/amd/display: Increase frame-larger-than for all display_mode_vba files

Neil Armstrong (4):
      dt-bindings: display/msm/gmu: Document Adreno 750 GMU
      dt-bindings: arm-smmu: fix SM8[45]50 GPU SMMU if condition
      dt-bindings: arm-smmu: Document SM8650 GPU SMMU
      drm/msm: add support for A750 GPU

Nicholas Kazlauskas (14):
      drm/amd/display: Allow IPS2 during Replay
      drm/amd/display: Port DENTIST hang and TDR fixes to OTG disable W/A
      drm/amd/display: Rework DC Z10 restore
      drm/amd/display: Set default Z8 minimum residency for DCN35
      drm/amd/display: Allow Z8 for multiplane configurations on DCN35
      drm/amd/display: Wait before sending idle allow and after idle disallow
      drm/amd/display: Wait for mailbox ready when powering up DMCUB
      drm/amd/display: Add more checks for exiting idle in DC
      drm/amd/display: Disable timeout in more places for dc_dmub_srv
      drm/amd/display: Increase eval/entry delay for DCN35
      drm/amd/display: Disable idle reallow as part of command/gpint execution
      drm/amd/display: Add shared firmware state for DMUB IPS handshake
      drm/amd/display: Increase ips2_eval delay for DCN35
      drm/amd/display: Fix S4 hang polling on HW power up done for VBIOS DMCUB

Nicholas Susanto (1):
      drm/amd/display: Underflow workaround by increasing SR exit latency

Nikita Zhandarovich (4):
      drm/radeon: remove dead code in ni_mc_load_microcode()
      drm/radeon/ni_dpm: remove redundant NULL check
      drm/radeon/ni: Fix wrong firmware size logging in ni_init_microcode()
      drm/amd/display: fix NULL checks for adev->dm.dc in amdgpu_dm_fini()

Nirmoy Das (5):
      drm/print: Add drm_dbg_ratelimited
      drm/i915: Ratelimit debug log in vm_fault_ttm
      drm/xe/xe2: synchronise CS_CHICKEN1 with WMTP support
      drm/xe/query: Use kzalloc for drm_xe_query_engines
      drm/i915: Check before removing mm notifier

Ofir Bitton (3):
      accel/habanalabs/gaudi2: drain event lacks rd/wr indication
      accel/habanalabs/hwmon: rate limit errors user can generate
      accel/habanalabs: modify pci health check

Ori Messinger (1):
      drm/amdgpu: Enable GFXOFF for Compute on GFX11

Ovidiu Bunea (1):
      drm/amd/display: Fix DML2 watermark calculation

Paloma Arellano (19):
      drm/dp: add an API to indicate if sink supports VSC SDP
      drm/msm/dpu: allow certain formats for CDM for DP
      drm/msm/dpu: add division of drm_display_mode's hskew parameter
      drm/msm/dpu: pass mode dimensions instead of fb size in CDM setup
      drm/msm/dpu: allow dpu_encoder_helper_phys_setup_cdm to work for DP
      drm/msm/dpu: move dpu_encoder_helper_phys_setup_cdm to dpu_encoder
      drm/msm/dp: rename wide_bus_en to wide_bus_supported
      drm/msm/dp: store mode YUV420 information to be used by rest of DP
      drm/msm/dp: check if VSC SDP is supported in DP programming
      drm/msm/dpu: move widebus logic to its own API
      drm/msm/dp: program config ctrl for YUV420 over DP
      drm/msm/dp: change clock related programming for YUV420 over DP
      drm/msm/dp: move parity calculation to dp_utils
      drm/msm/dp: add VSC SDP support for YUV420 over DP
      drm/msm/dp: enable SDP and SDE periph flush update
      drm/msm/dpu: modify encoder programming for CDM over DP
      drm/msm/dpu: modify timing engine programming for YUV420 over DP
      drm/msm/dpu: reserve CDM blocks for DP if mode is YUV420
      drm/msm/dp: allow YUV420 mode for DP connector when CDM available

Paul E. McKenney (1):
      drm/xe: Fix build bug for GCC 11

Paz Zcharya (1):
      drm/i915/display: Include debugfs.h in intel_display_debugfs_params.c

Peichen Huang (1):
      drm/amd/display: Add usb4_bw_alloc_support flag

Philip Yang (1):
      drm/amdkfd: Correct partial migration virtual addr

Philipp Stanner (3):
      drm/tilcdc: request and mapp iomem with devres
      drm/imx/dcss: request memory region
      drm/imx/dcss: have all init functions use devres

Pierre-Eric Pelloux-Prayer (1):
      drm/amdgpu: disable ring_muxer if mcbp is off

Pin-yen Lin (3):
      drm/panel-edp: Add powered_on_to_enable delay
      drm/edp-panel: Add panels delay entries
      drm/panel-edp: Add some panels with conservative timings

Pranjal Ramajor Asha Kanojiya (5):
      accel/qaic: Deprecate ->size field from attach slice IOCTL structure
      accel/qaic: Remove bo->queued field
      accel/qaic: Drop the reference to BO in error path of create BO IOCTL
      accel/qaic: Call drm_gem_create_mmap_offset() once for each BO
      accel/qaic: Leverage DRM managed APIs to release resources

Prike Liang (3):
      drm/amdgpu: skip to program GFXDEC registers for suspend abort
      drm/amdgpu: reset gpu for s3 suspend abort case
      drm/amdgpu: Enable gpu reset for S3 abort cases on Raven series

Primoz Fiser (1):
      drm/panel: simple: Add EDT ETML1010G3DRA panel

Priyanka Dandamudi (1):
      drm/xe/xe_bo_move: Enhance xe_bo_move trace

Qiang Ma (1):
      drm/amdgpu: Clear the hotplug interrupt ack bit before hpd initialization

Quentin Schulz (4):
      drm/rockchip: lvds: do not overwrite error code
      drm/rockchip: lvds: do not print scary message when probing defer
      drm/panel: ltk050h3146w: only print message when GPIO getting is
not EPROBE_DEFER
      drm/panel: ltk050h3146w: use dev_err_probe wherever possible

R SUNDAR (1):
      drm/amd/display: Removed redundant @ symbol to fix kernel-doc
warnings in -next repo

Rajneesh Bhardwaj (2):
      drm/amdkfd: update SIMD distribution algo for GFXIP 9.4.2 onwards
      drm/amdgpu: Fix implicit assumtion in gfx11 debug flags

Randy Dunlap (19):
      drm/i915/gem: reconcile Excess struct member kernel-doc warnings
      drm/i915/gt: reconcile Excess struct member kernel-doc warnings
      drm/i915/guc: reconcile Excess struct member kernel-doc warnings
      drm/i915/perf: reconcile Excess struct member kernel-doc warnings
      drm/vmwgfx: fix all kernel-doc warnings in stdu
      drm/vmwgfx: fix kernel-doc Excess struct member 'base'
      drm/nouveau/bios/init: drop kernel-doc notation
      drm/nouveau/disp: don't misuse kernel-doc comments
      drm/nouveau: don't misuse kernel-doc comments
      drm/nouveau/gr/gf100: don't misuse kernel-doc comments
      drm/nouveau/volt/gk20a: don't misuse kernel-doc comments
      drm/doc: internals: remove section on PCI legacy support
      dma-buf/dma-resv: fix spelling
      dma-buf/dma-fence: fix spelling
      drm/rect: fix kernel-doc typos
      drm/panel: re-alphabetize the menu list
      drivers/ps3: select VIDEO to provide cmdline functions
      drm: drm_crtc: correct some comments
      iosys-map: fix typo

Raphael Gallais-Pou (3):
      dt-bindings: panel: lvds: Append edt,etml0700z9ndha in panel-lvds
      drm/panel: simple: fix flags on RK043FN48H
      drm/panel: simple: push blanking limit on RK32FN48H

Ravi Kumar Vodapalli (1):
      drm/i915/display: update pll values in sync with Bspec for MTL

Riana Tauro (1):
      drm/xe/pm: add debug logs for D3cold

Ricardo B. Marliere (5):
      drm: display: make dp_aux_bus_type const
      drm: mipi-dsi: make mipi_dsi_bus_type const
      gpu: host1x: bus: make host1x_bus_type const
      accel: constify the struct device_type usage
      drm/amdkfd: make kfd_class constant

Ritesh Kumar (3):
      dt-bindings: display: panel: Add Novatek NT36672E LCD DSI
      drm/panel: Add support for Novatek NT36672E panel driver
      drm/panel: novatek-nt36672e: Include <linux/of.h>

Rob Clark (5):
      drm/ci: Add msm tests
      Merge tag 'drm-misc-next-2024-02-08' into msm-next
      drm/msm/adreno: Update generated headers
      drm/msm/a7xx: Fix LLC typo
      Merge tag 'drm-misc-next-2024-02-29' into msm-next

Rob Herring (1):
      dt-bindings: display: msm: sm8650-mdss: Add missing explicit
"additionalProperties"

Rodrigo Siqueira (19):
      Documentation/gpu: Add basic page for HUBP
      Documentation/gpu: Add simple doc page for DCHUBBUB
      drm/amd/include: Add missing registers/mask for DCN316 and 350
      Documentation/gpu: Add kernel doc entry for DPP
      Documentation/gpu: Add kernel doc entry for MPC
      Documentation/gpu: Add entry for OPP in the kernel doc
      Documentation/gpu: Add entry for the DIO component
      Documentation/gpu: Add an explanation about the DC weekly patches
      Documentation/gpu: Introduce a simple contribution list for display code
      drm/amd/display: Drop legacy code
      drm/amd/display: Disable ODM by default for DCN35
      drm/amd/display: Trivial code style adjustment
      drm/amd/display: Drop some unnecessary guards
      drm/amd/display: Remove break after return
      drm/amd/display: Initialize variable with default value
      drm/amd/display: Remove unused file
      drm/amd/display: Add SMU timeout check and retry
      drm/amd/display: Remove redundant FPU guard
      drm/amd/display: Drop unnecessary header

Rodrigo Vivi (5):
      drm/doc/rfc: Remove Xe's pre-merge plan
      drm/xe: Do not flood dmesg with guc log
      drm/doc/rfc: Removing missing reference to xe.rst
      drm/i915: Fix doc build issue on intel_cdclk.c
      drm/i915: convert remaining intel_dp_vsc_sdp_pack

Roman Li (5):
      drm/amd/display: Add IPS checks before dcn register access
      drm/amd/display: Disable ips before dc interrupt setting
      drm/amd: Add a DC debug mask for IPS
      drm/amd/display: "Enable IPS by default"
      drm/amd/display: Fix array-index-out-of-bounds in dcn35_clkmgr

Ruthuvikas Ravikumar (1):
      drm/xe: Add mocs reset kunit

Saleemkhan Jamadar (3):
      drm/amdgpu: add ucode id for jpeg DPG support
      drm/amdgpu/jpeg: add support for jpeg DPG mode
      drm/amdgpu/jpeg: add support for jpeg multi instance

Samasth Norway Ananda (1):
      drm/amdgpu: fix wrong sizeof argument

Samuel Dionne-Riel (1):
      drm: panel-orientation-quirks: Add quirk for GPD Win Mini

Shashank Sharma (1):
      drm/amdgpu: change vm->task_info handling

Shekhar Chauhan (2):
      drm/xe/xe2_lpg: Add Wa_16018610683
      drm/xe/xe2_lpg: Introduce performance guide changes

Shradha Gupta (2):
      drm: Check output polling initialized before disabling
      drm: Check polling initialized before enabling in
drm_helper_probe_single_connector_modes

Shuicheng Lin (1):
      drm/i915/guc: Change wa and EU_PERF_CNTL registers to MCR type

Simon Ser (1):
      drm/vc4: plane: check drm_gem_plane_helper_prepare_fb() return value

Sohaib Nadeem (3):
      drm/amd/display: increased min_dcfclk_mhz and min_fclk_mhz
      Revert "drm/amd/display: increased min_dcfclk_mhz and min_fclk_mhz"
      drm/amd/display: fixed integer types and null check locations

Somalapuram Amaranath (1):
      drm/ttm: replace busy placement with flags v6

Sonny Jiang (7):
      drm/amdgpu: add VCN_5_0_0 firmware support
      drm/amdgpu: add VCN_5_0_0 IP block support
      amdgpu/drm: Add vcn_v5_0_0_ip_block support
      drm/amdgpu: Add JPEG5 support
      drm/amdgpu/jpeg5: add power gating support
      drm/amdgpu/jpeg5: Enable doorbell
      drm/amdgpu: Add jpeg_v5_0_0 ip block support

Srinivasan Shanmugam (29):
      drm/amdkfd: Fix variable dereferenced before NULL check in
'kfd_dbg_trap_device_snapshot()'
      drm/amd/display: Fix late derefrence 'dsc' check in
'link_set_dsc_pps_packet()'
      drm/amd/display: Drop 'acrtc' and add 'new_crtc_state' NULL
check for writeback requests.
      drm/amdgpu: Cleanup inconsistent indenting in 'amdgpu_gfx_enable_kcq()'
      drm/amd/display: Drop kdoc markers for some Panel Replay functions
      drm/amd/display: Fix uninitialized variable usage in core_link_
'read_dpcd() & write_dpcd()' functions
      drm/amd/display: Address kdoc for eDP Panel Replay feature in
'amdgpu_dm_crtc_set_panel_sr_feature()'
      drm/amdgpu: Fix return type in 'aca_bank_hwip_is_matched()'
      drm/amd/display: Fix a potential buffer overflow in
'dp_dsc_clock_en_read()'
      drm/amd/display: Fix potential NULL pointer dereferences in
'dcn10_set_output_transfer_func()'
      drm/amdgpu: Fix missing error code in 'gmc_v6/7/8/9_0_hw_init()'
      drm/amd/display: Add NULL check for kzalloc in
'amdgpu_dm_atomic_commit_tail()'
      drm/amd/display: Fix buffer overflow in
'get_host_router_total_dp_tunnel_bw()'
      drm/amd/display: Fix 'panel_cntl' could be null in
'dcn21_set_backlight_level()'
      drm/amd/display: Add NULL test for 'timing generator' in
'dcn21_set_pipe()'
      drm/amdgpu: Fix potential out-of-bounds access in
'amdgpu_discovery_reg_base_init()'
      drm/amd/display: Implement bounds check for stream encoder
creation in DCN301
      drm/amd/display: Initialize 'wait_time_microsec' variable in
link_dp_training_dpia.c
      drm/amd/display: Fix possible use of uninitialized
'max_chunks_fbc_mode' in 'calculate_bandwidth()'
      drm/amd/display: Fix possible buffer overflow in
'find_dcfclk_for_voltage()'
      drm/amd/display: Fix possible NULL dereference on device
remove/driver unload
      drm/amdgpu/display: Initialize gamma correction mode variable in
dcn30_get_gamcor_current()
      drm/amdgpu: Fix missing parameter descriptions in ih_v7_0.c
      drm/amd/display: Add 'replay' NULL check in
'edp_set_replay_allow_active()'
      drm/amd/display: Fix potential null pointer dereference in dc_dmub_srv
      drm/amdgpu/display: Address kdoc for 'is_psr_su' in 'fill_dc_dirty_rects'
      drm/amd/display: Prevent potential buffer overflow in map_hw_resources
      drm/amdgpu: Fix missing break in ATOM_ARG_IMM Case of atom_get_src_int()
      drm/amd/amdgpu: Fix potential ioremap() memory leaks in
amdgpu_device_init()

Stanislav Lisovskiy (1):
      drm/i915: Add bigjoiner force enable option to debugfs

Stanley.Yang (5):
      drm/amdgpu: Show deferred error count for UMC
      drm/amdgpu: Skip do PCI error slot reset during RAS recovery
      drm/amdgpu: Fix ras features value calltrace
      drm/amdgpu: Fix shared buff copy to user
      drm/amdgpu: Fix ineffective ras_mask settings

Sui Jingfeng (6):
      drm/etnaviv: Drop the second argument of the etnaviv_gem_new_impl()
      drm/etnaviv: Fix coding style
      drm/etnaviv: Add helper functions to create and destroy platform device
      drm/etnaviv: Add a helper to get the first available GPU device node
      drm/etnaviv: Clean up etnaviv_gem_get_pages
      drm/etnaviv: Drop the 'len' parameter of etnaviv_iommu_map() function

Sujaritha Sundaresan (2):
      drm/xe: Add vram frequency sysfs attributes
      drm/xe: Fix typo in vram frequency sysfs documentation

Sunil Khatri (1):
      drm/amdgpu: add ring timeout information in devcoredump

Suraj Kandpal (17):
      drm/i915/hdcp: Fail Repeater authentication if Type1 device not present
      drm/xe/gsc: Add status check during gsc header readout
      drm/i915/lnl: Add pkgc related register
      drm/i915/lnl: Program PKGC_LATENCY register
      drm/i915/hdcp: Move to direct reads for HDCP
      drm/i915/hdcp: Move source hdcp2 checks into its own function
      drm/i915/hdcp: Refactor intel_dp_hdcp2_capable
      drm/i915/hdcp: Pass drm_dp_aux to read_bcaps function
      drm/i915/hdcp: Rename hdcp capable functions
      drm/i915/hdcp: Add new remote capability check shim function
      drm/i915/hdcp: HDCP Capability for the downstream device
      drm/i915/hdcp: Remove additional timing for reading mst hdcp message
      drm/i915/hdcp: Extract hdcp structure from correct connector
      drm/i915/hdcp: Don't enable HDCP2.2 directly from check_link
      drm/i915/hdcp: Don't enable HDCP1.4 directly from check_link
      drm/i915/hdcp: Allocate stream id after HDCP AKE stage
      drm/i915/hdcp: Read Rxcaps for robustibility

Swapnil Patel (1):
      drm/amd/display: fix input states translation error for dcn35 & dcn351

Taimur Hassan (1):
      drm/amd/display: Send DTBCLK disable message on first commit

Tal Risin (1):
      accel/habanalabs: initialize maybe-uninitialized variables

Tao Zhou (7):
      drm/amdgpu: update error condition check for umc_v12_0_query_error_address
      Revert "drm/amd/pm: smu v13_0_6 supports ecc info by default"
      drm/amdgpu: update check condition of query for ras page retire
      drm/amdgpu: disable RAS feature when fini
      drm/amdgpu: add PSP RAS address query command
      drm/amdgpu: use PSP address query command
      drm/amdgpu: add deferred error check for UMC v12 address query

Tejas Upadhyay (2):
      drm/xe/xelpg: Extend Wa_14019877138 for Graphics 12.70/71
      drm/i915/xelpg: Add workaround 14019877138

Thierry Reding (1):
      drm: Remove drm_num_crtcs() helper

Thomas Hellström (17):
      drm/xe/vm: Fix an error path
      drm/xe: Use __iomem for the regs pointer
      drm/xe: Annotate xe_mem_region::mapping with __iomem
      drm/xe: Annotate multiple mmio pointers with __iomem
      drm/xe: Annotate xe_ttm_stolen_mgr::mapping with __iomem
      drm/xe/migrate: Fix CCS copy for small VRAM copy chunks
      drm/xe/dmabuf: Make xe_dmabuf_ops static
      drm/xe: Use a NULL pointer instead of 0.
      drm/exec, drm/gpuvm: Prefer u32 over uint32_t
      drm/xe: Document nested struct members according to guidelines
      drm/xe: Annotate mcr_[un]lock()
      drm/xe: Don't use __user error pointers
      drm/xe/vm: Subclass userptr vmas
      drm/xe/vm: Avoid reserving zero fences
      drm/xe: Fix a missing argument to drm_err_printer
      drm/xe/pt: Allow for stricter type- and range checking
      drm/xe/uapi: Remove support for persistent exec_queues

Thomas Zimmermann (33):
      fbdev/efifb: Replace references to global screen_info by local pointer
      fbdev/efifb: Use screen_info pointer from device
      fbdev/vesafb: Replace references to global screen_info by local pointer
      fbdev/vesafb: Use screen_info pointer from device
      drm/mgag200: Fix caching setup for remapped video memory
      Documentation/gpu: Reference articles on Linux graphics stack
      video/cmdline: Introduce CONFIG_VIDEO for video= parameter
      video/cmdline: Hide __video_get_options() behind CONFIG_FB_CORE
      video/nomodeset: Select nomodeset= parameter with CONFIG_VIDEO
      Merge drm/drm-next into drm-misc-next
      video: Add helpers for decoding screen_info
      video: Provide screen_info_get_pci_dev() to find screen_info's PCI device
      firmware/sysfb: Set firmware-framebuffer parent device
      fbdev/efifb: Remove PM for parent device
      firmware/sysfb: Create firmware device only for enabled PCI devices
      fbdev/efifb: Do not track parent device status
      firmware/sysfb: Update screen_info for relocated EFI framebuffers
      fbdev/efifb: Remove framebuffer relocation tracking
      Merge drm/drm-next into drm-misc-next
      Merge drm/drm-next into drm-misc-next-fixes
      backlight/corgi-lcd: Include <linux/backlight.h>
      drm/nouveau: Include <linux/backlight.h>
      staging/fbtft: Include <linux/backlight.h>
      fbdev: Do not include <linux/backlight.h> in header
      fbdev: Do not include <linux/fs.h> in header
      fbdev: Do not include <linux/notifier.h> in header
      fbdev: Do not include <linux/slab.h> in header
      fbdev: Clean up forward declarations in header file
      fbdev: Clean up include statements in header file
      Merge drm/drm-next into drm-misc-next-fixes
      fbdev/chipsfb: Include <linux/backlight.h>
      macintosh/via-pmu-backlight: Include <linux/backlight.h>
      arch/powerpc: Remove <linux/fb.h> from backlight code

Thong (1):
      drm/amdgpu/soc21: update VCN 4 max HEVC encoding resolution

Tim Huang (3):
      drm/amdgpu: enable CGPG for GFX ip v11.5.1
      drm/amdgpu: reserve more memory for MES runtime DRAM
      drm/amd/pm: wait for completion of the EnableGfxImu message

Tom Chung (2):
      drm/amd/display: Enable Panel Replay for static screen use case
      drm/amd/display: Preserve original aspect ratio in create stream

Tom St Denis (1):
      drm/amd/amdgpu: Assign GART pages to AMD device mapping

Tomer Tayar (8):
      accel/habanalabs: fix DRAM BAR base address calculation
      accel/habanalabs: abort device reset for consecutive heartbeat failures
      accel/habanalabs/gaudi2: fail memory memset when failing to copy
QM packet to device
      accel/habanalabs: modify print for skip loading linux FW to debug log
      accel/habanalabs/gaudi2: check extended errors according to PCIe
addr_dec interrupt info
      accel/habanalabs: fix glbl error cause handling
      accel/habanalabs: handle reserved memory request when working with full FW
      accel/habanalabs: keep explicit size of reserved memory for FW

Tomeu Vizoso (1):
      drm/etnaviv: Expose a few more chipspecs to userspace

Tomi Valkeinen (4):
      drm/bridge: sii902x: Fix probing race issue
      drm/bridge: sii902x: Fix audio codec unregistration
      drm/tidss: Fix initial plane zpos values
      drm/tidss: Fix sync-lost issue with two displays

Tony Lindgren (2):
      dt-bindings: display: simple: Add boe,bp082wx1-100 8.2" panel
      drm/panel: simple: Add BOE BP082WX1-100 8.2" panel

Tvrtko Ursulin (3):
      drm/i915: Add GuC submission interface version query
      drm/i915: Add some boring kerneldoc
      drm/i915: Fix possible null pointer dereference after
drm_dbg_printer conversion

Umesh Nerlige Ramappa (1):
      drm/i915/perf: Update handling of MMIO triggered reports

Veerabadhran Gopalakrishnan (3):
      drm/amdgpu/vcn: Enable VCN 4.0.6 Support
      drm/amdgpu/soc21: Added Video Capabilities for VCN 406
      drm/amdgpu/soc21: Enabling PG and CG flags for VCN 4.0.6

Vegard Nossum (1):
      drm/nouveau: uapi: fix kerneldoc warnings

Victor Lu (4):
      drm/amdgpu: Improve error checking in amdgpu_virt_rlcg_reg_rw (v2)
      drm/amdgpu: Do not program IH_CHICKEN in vega20_ih.c under SRIOV
      drm/amdgpu: Use correct SRIOV macro for gmc_v9_0_vm_fault_interrupt_state
      drm/amdgpu: Do not program SQ_TIMEOUT_CONFIG in SRIOV

Victor Skvortsov (2):
      drm/amdgpu: Add RAS_POISON_READY host response message
      amdgpu/drm: Use vram manager for virtualization page retirement

Vignesh Raman (3):
      drm/ci: Update xfails for newly added msm tests
      drm/ci: uprev mesa version: fix kdl commit fetch
      drm/ci: add sc7180-trogdor-kingoftown

Ville Syrjälä (62):
      drm/mm: Allow CONFIG_DRM_MM_DEBUG with DRM=m
      Revert "drm/i915/dsi: Do display on sequence later on icl+"
      drm/i915/psr: Only allow PSR in LPSP mode on HSW non-ULT
      drm/i915: Replace a memset() with zero initialization
      drm/i915: Decouple intel_crtc_vblank_evade_scanlines() from atomic commits
      drm/i915: Reorder drm_vblank_put() vs. need_vlv_dsi_wa
      drm/i915: Introduce struct intel_vblank_evade_ctx
      drm/i915: Include need_vlv_dsi_wa in intel_vblank_evade_ctx
      drm/i915: Extract intel_vblank_evade()
      drm/i915: Move the min/max scanline sanity check into intel_vblank_evade()
      drm/i915: Move intel_vblank_evade() & co. into intel_vblank.c
      drm/i915: Perform vblank evasion around legacy cursor updates
      Revert "drm/i915/xe2lpd: Treat cursor plane as regular plane for
DDB allocation"
      drm/i915: Try to preserve the current shared_dpll for fastset on
type-c ports
      drm/i915: Include the PLL name in the debug messages
      drm/i915: Suppress old PLL pipe_mask checks for MG/TC/TBT PLLs
      drm/i915: Convert PLL flags to booleans
      drm/i915: Compute use_sagv_wm differently
      drm/i915: Rework global state serializaiton
      drm/i915: Extract intel_atomic_swap_state()
      drm/i915/fbc: Allow FBC with CCS modifiers on SKL+
      drm/i915/hdcp: Do intel_hdcp_component_init() much later during init
      drm/i915/hdcp: Pin the hdcp gsc message high in ggtt
      drm/i915: Use struct resource for memory region IO as well
      drm/i915: Print memory region info during probe
      drm/i915: Remove ad-hoc lmem/stolen debugs
      drm/i915: Bypass LMEMBAR/GTTMMADR for MTL stolen memory access
      drm/i915: Disable the "binder"
      drm/i915: Rename the DSM/GSM registers
      drm/i915: Fix PTE decode during initial plane readout
      drm/i915: Fix region start during initial plane readout
      drm/i915: Fix MTL initial plane readout
      drm/i915: s/phys_base/dma_addr/
      drm/i915: Split the smem and lmem plane readout apart
      drm/i915: Simplify intel_initial_plane_config() calling convention
      drm/i915/fbdev: Fix smem_start for LMEMBAR stolen objects
      drm/i915: Tweak BIOS fb reuse check
      drm/i915: Try to relocate the BIOS fb to the start of ggtt
      drm/i915: Annotate more of the BIOS fb takeover failure paths
      drm/i915/dp: Limit SST link rate to <=8.1Gbps
      drm/i915: Correct for_each_old_global_obj_in_state() arguments
      drm/i915/sdvo: Convert to per-device debugs
      drm/i915/sdvo: Fix up code alignment
      drm/i915/color: Use per-device debugs
      drm/i915/fb: Use per-device debugs
      drm/i915/bios: Switch to kms debugs
      drm/i915/bios: Use per-device debugs for VBT related stuff
      drm/i915/hdcp: Use per-device debugs
      drm/i915/wm: Pass the whole i915 to intel_get_cxsr_latency()
      drm/i915/wm: Use per-device debugs in pre-ilk wm code
      drm/i915/wm: Use per-device debugs ilk wm code
      drm/i915/dvo/ns2501: Nuke pointless casts
      drm/i915/dvo: Use sizeof(*variable) instead of sizeof(type)
      drm/i915: Fix PLL state check for gmch platforms
      drm/i915: Include the CRTC name in the ELD buffer mismatch
      drm/i915: Reuse ibx_dump_hw_state() for gmch platforms
      drm/i915: Add PLL .compare_hw_state() vfunc
      drm/i915: Enable fastboot across the board
      drm/i915/cdclk: Extract cdclk_divider()
      drm/i915/cdclk: Squash waveform is 16 bits
      drm/i915/cdclk: Remove the hardcoded divider from
cdclk_compute_crawl_and_squash_midpoint()
      drm/i915/cdclk: Document CDCLK update methods

Vinay Belgaumkar (2):
      drm/xe: Check skip_guc_pc before setting SLPC flag
      drm/i915/mtl: Wake GT before sending H2G message

Vinod Govindapillai (1):
      drm/xe: Modify the cfb size to be page size aligned for FBC

Wachowski, Karol (2):
      accel/ivpu: Use lazy allocation for doorbell IDs
      accel/ivpu: Refactor BO creation functions

Wayne Lin (2):
      drm/amd/display: Align the returned error code with legacy DP
      drm/amd/display: adjust few initialization order in dm

Wenjing Liu (7):
      drm/amd/display: Floor to mhz when requesting dpp disp clock
changes to SMU
      drm/amd/display: turn off windowed Mpo ODM feature for dcn321
      drm/amd/display: fix incorrect mpc_combine array size
      drm/amd/display: use correct phantom pipe when populating subvp pipe info
      drm/amd/display: set odm_combine_policy based on context in dcn32 resource
      drm/amd/display: treat plane clip size change as MED update type
      drm/amd/display: reenable windowed mpo odm support on dcn32 and dcn321

Xiaoming Wang (1):
      drm/xe/display: Fix memleak in display initialization

XueBing Chen (9):
      drm/radeon/kms: Clean up errors in radeon_pm.c
      drm/radeon: Clean up errors in clearstate_ci.h
      drm/radeon: Clean up errors in clearstate_cayman.h
      drm/radeon/dpm: Clean up errors in evergreen_smc.h
      drm/radeon: Clean up errors in ci_dpm.h
      drm/radeon: Clean up errors in radeon.h
      drm/radeon: Clean up errors in si.c
      drm/radeon/evergreen_cs: Clean up errors in evergreen_cs.c
      drm/radeon/ni_dpm: Clean up errors in nislands_smc.h

Xuxin Xiong (1):
      drm/panel-edp: Add several generic edp panels

Yang Wang (23):
      drm/amdgpu: implement RAS ACA driver framework
      drm/amdgpu: add ACA kernel hardware error log support
      drm/amdgpu: add ACA bank dump debugfs support
      drm/amd/pm: add aca smu backend support for smu v13.0.6
      drm/amdgpu: add amdgpu ras aca query interface
      drm/amdgpu: add aca sysfs support
      drm/amdgpu: add umc v12.0 ACA support
      drm/amdgpu: add gfx v9.4.3 ACA support
      drm/amdgpu: add sdma v4.4.2 ACA support
      drm/amdgpu: add mmhub v1.8 ACA support
      drm/amdgpu: add xgmi v6.4.0 ACA support
      drm/amdgpu: replace MCA macro with ACA for XGMI
      drm/amdgpu: fix UBSAN array-index-out-of-bounds for ras_block_string[]
      drm/amd/pm: enable amdgpu smu send message log
      drm/amd/pm: udpate smu v13.0.6 message permission
      drm/amdgpu: skip call ras_late_init if ras block is not supported
      drm/amdgpu: add aca sysfs remove support
      drm/amdgpu: adjust aca init/fini sequence to match gpu reset
      drm/amdgpu: use helper macro HW_ERR instead of Hardware error string
      drm/amdgpu: implement smu send rma reason for smu v13.0.6
      drm/amdgpu: send smu rma reason event in ras eeprom driver
      drm/amdgpu: enable pp_od_clk_voltage for gfx 9.4.3 SRIOV
      drm/amd/pm: disable pp_dpm_dcefclk node for gfx 11.0.3 sriov

Yannic Moog (1):
      dt-bindings: display: panel-simple: add ETML1010G3DRA

YiPeng Chai (7):
      drm/amdgpu: Add log info for umc_v12_0
      drm/amdgpu: Prepare for asynchronous processing of umc page retirement
      drm/amdgpu: Use asynchronous polling to handle umc_v12_0 poisoning
      drm/amdgpu: add interface to check mca umc status
      drm/amdgpu:Support retiring multiple MCA error address pages
      drm/amdgpu: Support passing poison consumption ras block to SRIOV
      drm/amdgpu: Need to resume ras during gpu reset for gfx v9_4_3 sriov

Yifan Zhang (26):
      drm/amdgpu: drm/amdgpu: remove golden setting for gfx 11.5.0
      drm/amdgpu: remove asymmetrical irq disabling in vcn 4.0.5 suspend
      drm/amdgpu/nbio: Add NBIO 7.11.1 Support
      drm/amdgpu: add nbio 7.11.1 discovery support
      drm/amdgpu: add smuio 14.0.1 support
      drm/amdgpu: add PSP 14.0.1 support
      drm/amdgpu: add psp 14.0.1 discovery support
      drm/amdgpu: add sdma 6.1.1 firmware
      drm/amdgpu: add SDMA 6.1.1 discovery support
      drm/amdgpu: add MMHUB 3.3.1 support
      drm/amdgpu: add GFXHUB 11.5.1 support
      drm/amdgpu: add tmz support for GC IP v11.5.1
      drm/amdgpu: enable gmc11 discovery support for GC 11.5.1
      drm/amdgpu: add initial GC 11.5.1 soc21 support
      drm/amdgpu: enable soc21 discovery support for GC 11.5.1
      drm/amdgpu: add GC 11.5.1 to GC 11.5.0 family
      drm/amdgpu: add firmware for GC 11.5.1
      drm/amdgpu: add imu firmware support for GC 11.5.1
      drm/amdgpu: add mes firmware support for GC 11.5.1
      drm/amdgpu: initialize gfx11.5.1
      drm/amdkfd: add KFD support for GC 11.5.1
      drm/amdgpu: add GC 11.5.1 discovery support
      drm/amdgpu: enable MES discovery for GC 11.5.1
      drm/amdgpu: add vcn 4.0.6 discovery support
      drm/amdgpu: add dcn3.5.1 support
      drm/amdgpu: add smu 14.0.1 support

Yiling Chen (1):
      drm/amd/display: Fix static screen event mask definition change

YuanShang (1):
      drm/amd/amdgpu: Update RLC_SPM_MC_CNT by ring wreg in guest

Zack Rusin (4):
      drm/vmwgfx: Unmap the surface before resetting it on a plane state
      drm/vmwgfx: Fix possible null pointer derefence with invalid contexts
      drm/ttm: Make sure the mapped tt pages are decrypted when needed
      drm/vmwgfx: Fix the lifetime of the bo cursor memory

Zhang Shurong (1):
      drm/tegra: dpaux: Fix PM disable depth imbalance in tegra_dpaux_probe

Zhanjun Dong (1):
      drm/xe/guc: Fix missing topology init

Zhikai Zhai (1):
      drm/amd/display: Add align done check

Zhipeng Lu (2):
      drm/vmwgfx: fix a memleak in vmw_gmrid_man_get_node
      drm/lima: fix a memleak in lima_heap_alloc

chenxuebing (31):
      drm/edid: Clean up errors in drm_edid.c
      drm/amdgpu: Clean up errors in navi10_ih.c
      drm/amdgpu: Clean up errors in clearstate_gfx9.h
      drm/amdgpu: Clean up errors in amdgpu_atomfirmware.h
      drm/amd/amdgpu: Clean up errors in amdgpu_umr.h
      drm/amd: Clean up errors in sdma_v2_4.c
      drm/amdgpu: Clean up errors in amdgpu_rlc.c
      drm/amd: Clean up errors in amdgpu_vkms.c
      drm/amdgpu: Clean up errors in amdgpu_drv.c
      drm/amdgpu: Clean up errors in gfx_v9_4.c
      drm/amdgpu: Clean up errors in jpeg_v2_5.c
      drm/amdgpu: Clean up errors in amdgpu_gmc.c
      drm/amdgpu: Clean up errors in amdgpu.h
      drm/amdgpu: Clean up errors in clearstate_si.h
      drm/amdgpu: Clean up errors in umc_v6_0.c
      drm/amd/include: Clean up errors in arct_ip_offset.h
      drm/amdgpu: Clean up errors in atom-bits.h
      drm/amdgpu: Clean up errors in navi12_ip_offset.h
      drm/amdgpu: Clean up errors in kgd_pp_interface.h
      drm/amd/include/vega10_ip_offset:Clean up errors in vega10_ip_offset.h
      drm/amd: Clean up errors in vega10_ip_offset.h
      drm/amd/pp: Clean up errors in dm_pp_interface.h
      drm/amdgpu: Clean up errors in dimgrey_cavefish_ip_offset.h
      drm/amd/include/vangogh_ip_offset: Clean up errors in vangogh_ip_offset.h
      drm/amd/include/sienna_cichlid_ip_offset: Clean up errors in
sienna_cichlid_ip_offset.h
      drm/amdgpu: Clean up errors in cgs_common.h
      drm/amd/include/navi14_ip_offset: Clean up errors in navi14_ip_offset.h
      drm/amdgpu: Clean up errors in v10_structs.h
      drm/amd/amdgpu: Clean up errors in beige_goby_ip_offset.h
      drm/amd/display: Clean up errors in renoir_ip_offset.h
      drm/amd/include/vega20_ip_offset: Clean up errors in vega20_ip_offset.h

lima1002 (1):
      drm/amdgpu/soc21: add mode2 asic reset for SMU IP v14.0.1

shaoyunl (1):
      drm/amdgpu: Only create mes event log debugfs when mes is enabled

xiazhengqiao (1):
      drm/bridge: Fixed a DP link training bug

 Documentation/admin-guide/edid.rst                 |    35 +-
 Documentation/admin-guide/kernel-parameters.txt    |    14 +-
 .../display/bridge/fsl,imx8mp-hdmi-tx.yaml         |   102 +
 .../bindings/display/bridge/ti,sn65dsi86.yaml      |     2 +-
 .../bindings/display/imx/fsl,imx8mp-hdmi-pvi.yaml  |    84 +
 .../bindings/display/msm/dsi-controller-main.yaml  |     2 +
 .../devicetree/bindings/display/msm/gmu.yaml       |     1 +
 .../devicetree/bindings/display/msm/gpu.yaml       |     6 +-
 .../devicetree/bindings/display/msm/qcom,mdss.yaml |     1 +
 .../bindings/display/msm/qcom,sm8650-dpu.yaml      |     4 +-
 .../bindings/display/msm/qcom,sm8650-mdss.yaml     |     4 +
 .../bindings/display/msm/qcom,x1e80100-mdss.yaml   |   251 +
 .../display/panel/boe,th101mb31ig002-28a.yaml      |    58 +
 .../bindings/display/panel/himax,hx83112a.yaml     |    74 +
 .../display/panel/leadtek,ltk500hd1829.yaml        |     4 +-
 .../bindings/display/panel/novatek,nt35510.yaml    |     4 +-
 .../bindings/display/panel/novatek,nt36672e.yaml   |    66 +
 .../bindings/display/panel/panel-lvds.yaml         |     4 +
 .../bindings/display/panel/panel-simple.yaml       |     4 +
 .../display/panel/rocktech,jh057n00900.yaml        |     3 +
 .../bindings/display/panel/visionox,rm69299.yaml   |     3 +-
 .../bindings/display/renesas,rzg2l-du.yaml         |   126 +
 .../display/rockchip/rockchip,dw-hdmi.yaml         |    33 +-
 .../bindings/display/solomon,ssd1307fb.yaml        |    20 +-
 .../bindings/display/solomon,ssd132x.yaml          |    12 +-
 .../bindings/display/solomon,ssd133x.yaml          |    45 +
 .../bindings/display/ti/ti,am65x-dss.yaml          |     7 +-
 .../devicetree/bindings/iommu/arm,smmu.yaml        |    17 +-
 .../devicetree/bindings/vendor-prefixes.yaml       |     2 +
 Documentation/gpu/amdgpu/dgpu-asic-info-table.csv  |     2 +
 Documentation/gpu/amdgpu/display/dcn-blocks.rst    |    78 +
 .../gpu/amdgpu/display/display-contributing.rst    |   168 +
 .../gpu/amdgpu/display/display-manager.rst         |     3 -
 Documentation/gpu/amdgpu/display/index.rst         |    78 +-
 Documentation/gpu/drm-internals.rst                |    12 -
 Documentation/gpu/drm-usage-stats.rst              |     2 +-
 Documentation/gpu/introduction.rst                 |     2 +
 Documentation/gpu/rfc/index.rst                    |     4 -
 Documentation/gpu/rfc/xe.rst                       |   234 -
 Documentation/gpu/todo.rst                         |    23 +
 MAINTAINERS                                        |    18 +-
 arch/powerpc/include/asm/backlight.h               |     5 +-
 arch/powerpc/platforms/powermac/backlight.c        |    26 -
 arch/powerpc/platforms/ps3/Kconfig                 |     1 +
 drivers/accel/drm_accel.c                          |     2 +-
 .../accel/habanalabs/common/command_submission.c   |     3 +-
 drivers/accel/habanalabs/common/debugfs.c          |    18 +-
 drivers/accel/habanalabs/common/device.c           |    55 +-
 drivers/accel/habanalabs/common/firmware_if.c      |    25 +-
 drivers/accel/habanalabs/common/habanalabs.h       |    43 +-
 drivers/accel/habanalabs/common/hw_queue.c         |    17 +
 drivers/accel/habanalabs/common/hwmon.c            |    29 +-
 drivers/accel/habanalabs/common/mmu/Makefile       |     2 +-
 drivers/accel/habanalabs/common/mmu/mmu.c          |   223 +-
 drivers/accel/habanalabs/common/mmu/mmu_v1.c       |   354 +-
 drivers/accel/habanalabs/common/mmu/mmu_v2.c       |   338 +
 drivers/accel/habanalabs/common/mmu/mmu_v2_hr.c    |    24 +-
 drivers/accel/habanalabs/common/security.c         |    33 +-
 drivers/accel/habanalabs/common/security.h         |     3 +-
 drivers/accel/habanalabs/gaudi/gaudi.c             |     9 +-
 drivers/accel/habanalabs/gaudi2/gaudi2.c           |   308 +-
 drivers/accel/habanalabs/gaudi2/gaudi2P.h          |    15 +-
 drivers/accel/habanalabs/goya/goya.c               |    12 +-
 drivers/accel/habanalabs/goya/goya_coresight.c     |     3 +-
 .../habanalabs/include/hw_ip/mmu/mmu_general.h     |     2 +
 drivers/accel/ivpu/ivpu_debugfs.c                  |    32 +-
 drivers/accel/ivpu/ivpu_drv.c                      |    12 +-
 drivers/accel/ivpu/ivpu_drv.h                      |     7 +-
 drivers/accel/ivpu/ivpu_fw.c                       |    49 +-
 drivers/accel/ivpu/ivpu_fw_log.c                   |     6 +-
 drivers/accel/ivpu/ivpu_gem.c                      |    70 +-
 drivers/accel/ivpu/ivpu_gem.h                      |     6 +-
 drivers/accel/ivpu/ivpu_hw_37xx.c                  |    10 +-
 drivers/accel/ivpu/ivpu_hw_40xx.c                  |    10 +-
 drivers/accel/ivpu/ivpu_ipc.c                      |    12 +-
 drivers/accel/ivpu/ivpu_job.c                      |    20 +-
 drivers/accel/ivpu/ivpu_pm.c                       |    10 +-
 drivers/accel/ivpu/vpu_boot_api.h                  |    46 +-
 drivers/accel/ivpu/vpu_jsm_api.h                   |    32 +-
 drivers/accel/qaic/mhi_controller.c                |     6 +-
 drivers/accel/qaic/qaic.h                          |     3 +-
 drivers/accel/qaic/qaic_data.c                     |    59 +-
 drivers/accel/qaic/qaic_drv.c                      |   140 +-
 drivers/char/agp/agp.h                             |     1 -
 drivers/dma-buf/dma-fence.c                        |     8 +-
 drivers/dma-buf/dma-resv.c                         |     4 +-
 drivers/firmware/Kconfig                           |     1 +
 drivers/firmware/sysfb.c                           |    53 +-
 drivers/firmware/sysfb_simplefb.c                  |     5 +-
 drivers/gpu/drm/Kconfig                            |    19 +-
 drivers/gpu/drm/amd/amdgpu/Makefile                |    17 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu.h                |    18 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_aca.c            |   879 +
 drivers/gpu/drm/amd/amdgpu/amdgpu_aca.h            |   202 +
 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c         |    10 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h         |    15 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c   |    42 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c       |    24 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c   |     3 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.h   |     2 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c             |     6 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_csa.c            |     3 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c        |     9 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c         |    65 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c      |    62 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_display.c        |     8 -
 drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c        |     4 +
 drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c            |    71 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_fdinfo.c         |     4 +
 drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c          |     4 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c            |    41 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c            |    13 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.h            |     4 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c            |    56 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.h            |     4 +
 drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c             |    21 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_ids.c            |     7 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_job.c            |    18 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_jpeg.c           |    46 +
 drivers/gpu/drm/amd/amdgpu/amdgpu_jpeg.h           |    36 +
 drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c            |    17 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_mca.c            |    33 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_mca.h            |     1 +
 drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c            |     8 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h           |     2 -
 drivers/gpu/drm/amd/amdgpu/amdgpu_nbio.c           |     8 -
 drivers/gpu/drm/amd/amdgpu/amdgpu_nbio.h           |     3 -
 drivers/gpu/drm/amd/amdgpu/amdgpu_object.c         |    17 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_object.h         |     6 +
 drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c            |   251 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h            |    14 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c            |   686 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_ras.h            |    66 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_ras_eeprom.c     |     3 +
 drivers/gpu/drm/amd/amdgpu/amdgpu_reset.c          |    26 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_reset.h          |     1 +
 drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h           |    33 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_ring_mux.c       |     4 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_rlc.c            |     2 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_rlc.h            |     2 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_seq64.c          |    66 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_seq64.h          |     9 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_sync.c           |     4 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c            |    11 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c          |     7 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.h          |     1 +
 drivers/gpu/drm/amd/amdgpu/amdgpu_umc.c            |   155 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_umc.h            |    10 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_umr.h            |     4 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_umsch_mm.c       |     2 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c            |     6 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.h            |    42 +
 drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c           |    88 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_virt.h           |     8 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.c           |     3 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c             |   255 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h             |    55 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_vm_pt.c          |   110 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_vpe.c            |    77 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_vpe.h            |     5 +
 drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c           |    81 +-
 drivers/gpu/drm/amd/amdgpu/athub_v4_1_0.c          |   122 +
 drivers/gpu/drm/amd/amdgpu/athub_v4_1_0.h          |    30 +
 drivers/gpu/drm/amd/amdgpu/atom.c                  |    43 +-
 drivers/gpu/drm/amd/amdgpu/atom.h                  |     2 +-
 drivers/gpu/drm/amd/amdgpu/atombios_crtc.c         |    28 +-
 drivers/gpu/drm/amd/amdgpu/atombios_dp.c           |     4 +-
 drivers/gpu/drm/amd/amdgpu/atombios_encoders.c     |    16 +-
 drivers/gpu/drm/amd/amdgpu/atombios_i2c.c          |     4 +-
 drivers/gpu/drm/amd/amdgpu/cik.c                   |    41 +-
 drivers/gpu/drm/amd/amdgpu/clearstate_gfx9.h       |    27 +-
 drivers/gpu/drm/amd/amdgpu/clearstate_si.h         |    24 +-
 drivers/gpu/drm/amd/amdgpu/dce_v10_0.c             |     2 +
 drivers/gpu/drm/amd/amdgpu/dce_v11_0.c             |     2 +
 drivers/gpu/drm/amd/amdgpu/dce_v6_0.c              |    22 +-
 drivers/gpu/drm/amd/amdgpu/dce_v8_0.c              |    22 +-
 drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c             |    35 +-
 drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c             |   146 +-
 drivers/gpu/drm/amd/amdgpu/gfx_v11_0_3.c           |     2 +-
 drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c              |     4 +-
 drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c              |    37 +-
 drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c              |    56 +-
 drivers/gpu/drm/amd/amdgpu/gfx_v9_4.c              |     5 +-
 drivers/gpu/drm/amd/amdgpu/gfx_v9_4_3.c            |    99 +-
 drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c             |    33 +-
 drivers/gpu/drm/amd/amdgpu/gmc_v11_0.c             |    35 +-
 drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c              |     5 +-
 drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c              |     5 +-
 drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c              |    25 +-
 drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c              |    43 +-
 drivers/gpu/drm/amd/amdgpu/hdp_v7_0.c              |   142 +
 drivers/gpu/drm/amd/amdgpu/hdp_v7_0.h              |    31 +
 drivers/gpu/drm/amd/amdgpu/ih_v7_0.c               |   767 +
 drivers/gpu/drm/amd/amdgpu/ih_v7_0.h               |    28 +
 drivers/gpu/drm/amd/amdgpu/imu_v11_0.c             |     1 +
 drivers/gpu/drm/amd/amdgpu/jpeg_v2_5.c             |    10 +-
 drivers/gpu/drm/amd/amdgpu/jpeg_v4_0_3.c           |    16 +-
 drivers/gpu/drm/amd/amdgpu/jpeg_v4_0_3.h           |    15 +
 drivers/gpu/drm/amd/amdgpu/jpeg_v4_0_5.c           |   491 +-
 drivers/gpu/drm/amd/amdgpu/jpeg_v5_0_0.c           |   570 +
 drivers/gpu/drm/amd/amdgpu/jpeg_v5_0_0.h           |    29 +
 drivers/gpu/drm/amd/amdgpu/lsdma_v7_0.c            |   121 +
 drivers/gpu/drm/amd/amdgpu/lsdma_v7_0.h            |    31 +
 drivers/gpu/drm/amd/amdgpu/mes_v11_0.c             |    15 +-
 drivers/gpu/drm/amd/amdgpu/mmhub_v1_8.c            |    87 +
 drivers/gpu/drm/amd/amdgpu/mmhub_v3_3.c            |     1 +
 drivers/gpu/drm/amd/amdgpu/mxgpu_ai.c              |     3 +-
 drivers/gpu/drm/amd/amdgpu/mxgpu_nv.c              |    29 +-
 drivers/gpu/drm/amd/amdgpu/mxgpu_nv.h              |     1 +
 drivers/gpu/drm/amd/amdgpu/navi10_ih.c             |     3 +-
 drivers/gpu/drm/amd/amdgpu/nbif_v6_3_1.c           |   495 +
 drivers/gpu/drm/amd/amdgpu/nbif_v6_3_1.h           |    33 +
 drivers/gpu/drm/amd/amdgpu/nbio_v7_11.c            |     9 +-
 drivers/gpu/drm/amd/amdgpu/nbio_v7_9.c             |    63 -
 drivers/gpu/drm/amd/amdgpu/psp_gfx_if.h            |     1 +
 drivers/gpu/drm/amd/amdgpu/psp_v11_0.c             |     2 +-
 drivers/gpu/drm/amd/amdgpu/psp_v13_0.c             |   104 +-
 drivers/gpu/drm/amd/amdgpu/psp_v14_0.c             |   672 +
 drivers/gpu/drm/amd/amdgpu/psp_v14_0.h             |    32 +
 drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c             |    15 +-
 drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c             |    23 +-
 drivers/gpu/drm/amd/amdgpu/sdma_v4_4_2.c           |    94 +-
 drivers/gpu/drm/amd/amdgpu/sdma_v5_0.c             |    29 +-
 drivers/gpu/drm/amd/amdgpu/sdma_v5_2.c             |    29 +-
 drivers/gpu/drm/amd/amdgpu/sdma_v6_0.c             |    30 +-
 drivers/gpu/drm/amd/amdgpu/si.c                    |    41 +-
 drivers/gpu/drm/amd/amdgpu/soc15.c                 |    49 +-
 drivers/gpu/drm/amd/amdgpu/soc21.c                 |    38 +
 drivers/gpu/drm/amd/amdgpu/ta_ras_if.h             |    36 +
 drivers/gpu/drm/amd/amdgpu/umc_v12_0.c             |   263 +-
 drivers/gpu/drm/amd/amdgpu/umc_v12_0.h             |     3 +
 drivers/gpu/drm/amd/amdgpu/umc_v6_0.c              |     2 +-
 drivers/gpu/drm/amd/amdgpu/vcn_v4_0_5.c            |     3 +
 drivers/gpu/drm/amd/amdgpu/vcn_v5_0_0.c            |  1339 +
 drivers/gpu/drm/amd/amdgpu/vcn_v5_0_0.h            |    37 +
 drivers/gpu/drm/amd/amdgpu/vega20_ih.c             |    38 +-
 drivers/gpu/drm/amd/amdgpu/vpe_6_1_fw_if.h         |     3 +-
 drivers/gpu/drm/amd/amdgpu/vpe_v6_1.c              |   281 +-
 drivers/gpu/drm/amd/amdkfd/cwsr_trap_handler.h     |   545 +-
 .../gpu/drm/amd/amdkfd/cwsr_trap_handler_gfx10.asm |   173 +-
 drivers/gpu/drm/amd/amdkfd/kfd_chardev.c           |    24 +-
 drivers/gpu/drm/amd/amdkfd/kfd_crat.c              |    94 +-
 drivers/gpu/drm/amd/amdkfd/kfd_crat.h              |     1 +
 drivers/gpu/drm/amd/amdkfd/kfd_debug.c             |     4 +-
 drivers/gpu/drm/amd/amdkfd/kfd_device.c            |    30 +-
 .../gpu/drm/amd/amdkfd/kfd_device_queue_manager.c  |     4 +
 drivers/gpu/drm/amd/amdkfd/kfd_events.c            |     6 +-
 drivers/gpu/drm/amd/amdkfd/kfd_flat_memory.c       |    29 +-
 drivers/gpu/drm/amd/amdkfd/kfd_int_process_v10.c   |     7 +-
 drivers/gpu/drm/amd/amdkfd/kfd_int_process_v11.c   |     7 +-
 drivers/gpu/drm/amd/amdkfd/kfd_int_process_v9.c    |     7 +-
 drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue.c      |     8 +-
 drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue.h      |     2 +-
 drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager.h       |    25 +
 drivers/gpu/drm/amd/amdkfd/kfd_packet_manager.c    |    10 +-
 drivers/gpu/drm/amd/amdkfd/kfd_priv.h              |     6 +-
 drivers/gpu/drm/amd/amdkfd/kfd_smi_events.c        |    20 +-
 drivers/gpu/drm/amd/amdkfd/kfd_svm.c               |    10 +-
 drivers/gpu/drm/amd/amdkfd/kfd_topology.c          |     8 +-
 drivers/gpu/drm/amd/display/TODO                   |   110 -
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c  |   226 +-
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h  |     1 +
 .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c |    72 +-
 .../drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c  |    55 +-
 .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c |     1 +
 .../drm/amd/display/amdgpu_dm/amdgpu_dm_replay.c   |   119 +-
 .../drm/amd/display/amdgpu_dm/amdgpu_dm_replay.h   |     4 +-
 drivers/gpu/drm/amd/display/dc/basics/conversion.c |    34 +
 drivers/gpu/drm/amd/display/dc/basics/conversion.h |     4 +
 drivers/gpu/drm/amd/display/dc/basics/dce_calcs.c  |     2 -
 .../gpu/drm/amd/display/dc/bios/command_table.c    |     2 +-
 .../gpu/drm/amd/display/dc/bios/command_table2.c   |     2 +-
 .../amd/display/dc/bios/command_table_helper2.c    |     1 +
 drivers/gpu/drm/amd/display/dc/clk_mgr/clk_mgr.c   |     3 -
 .../amd/display/dc/clk_mgr/dce100/dce_clk_mgr.c    |     2 +-
 .../drm/amd/display/dc/clk_mgr/dcn10/rv1_clk_mgr.c |     2 -
 .../amd/display/dc/clk_mgr/dcn10/rv1_clk_mgr_clk.c |    79 -
 .../drm/amd/display/dc/clk_mgr/dcn21/rn_clk_mgr.c  |     2 -
 .../dc/clk_mgr/dcn21/rn_clk_mgr_vbios_smu.c        |    15 +-
 .../drm/amd/display/dc/clk_mgr/dcn301/dcn301_smu.c |    10 +-
 .../drm/amd/display/dc/clk_mgr/dcn31/dcn31_smu.c   |     4 -
 .../drm/amd/display/dc/clk_mgr/dcn314/dcn314_smu.c |     6 -
 .../drm/amd/display/dc/clk_mgr/dcn315/dcn315_smu.c |     4 -
 .../drm/amd/display/dc/clk_mgr/dcn316/dcn316_smu.c |     4 -
 .../amd/display/dc/clk_mgr/dcn32/dcn32_clk_mgr.c   |    46 +-
 .../dc/clk_mgr/dcn32/dcn32_clk_mgr_smu_msg.h       |     3 +-
 .../amd/display/dc/clk_mgr/dcn35/dcn35_clk_mgr.c   |    39 +-
 .../drm/amd/display/dc/clk_mgr/dcn35/dcn35_smu.c   |    27 +-
 drivers/gpu/drm/amd/display/dc/core/dc.c           |   217 +-
 drivers/gpu/drm/amd/display/dc/core/dc_resource.c  |    23 +-
 drivers/gpu/drm/amd/display/dc/core/dc_stream.c    |    18 +
 drivers/gpu/drm/amd/display/dc/core/dc_surface.c   |     2 +
 drivers/gpu/drm/amd/display/dc/dc.h                |    23 +-
 drivers/gpu/drm/amd/display/dc/dc_dmub_srv.c       |   114 +-
 drivers/gpu/drm/amd/display/dc/dc_hw_types.h       |     3 +-
 drivers/gpu/drm/amd/display/dc/dce/dce_audio.c     |   293 +-
 drivers/gpu/drm/amd/display/dc/dce/dce_audio.h     |     3 +-
 .../gpu/drm/amd/display/dc/dce/dmub_hw_lock_mgr.c  |     4 +
 drivers/gpu/drm/amd/display/dc/dce/dmub_replay.c   |     4 +-
 .../gpu/drm/amd/display/dc/dcn10/dcn10_cm_common.c |    20 +
 .../gpu/drm/amd/display/dc/dcn10/dcn10_cm_common.h |     4 +-
 drivers/gpu/drm/amd/display/dc/dcn10/dcn10_dpp.c   |     3 +-
 drivers/gpu/drm/amd/display/dc/dcn10/dcn10_dpp.h   |     3 +
 .../gpu/drm/amd/display/dc/dcn10/dcn10_dpp_cm.c    |    70 +-
 drivers/gpu/drm/amd/display/dc/dcn10/dcn10_opp.c   |     7 +
 drivers/gpu/drm/amd/display/dc/dcn20/dcn20_dpp.c   |    31 +-
 drivers/gpu/drm/amd/display/dc/dcn20/dcn20_dpp.h   |     3 +
 .../gpu/drm/amd/display/dc/dcn20/dcn20_dpp_cm.c    |    55 +
 drivers/gpu/drm/amd/display/dc/dcn20/dcn20_mpc.c   |    24 +-
 drivers/gpu/drm/amd/display/dc/dcn201/dcn201_dpp.c |     1 +
 drivers/gpu/drm/amd/display/dc/dcn30/dcn30_dpp.c   |    38 +-
 drivers/gpu/drm/amd/display/dc/dcn30/dcn30_dpp.h   |     2 +
 .../gpu/drm/amd/display/dc/dcn30/dcn30_dpp_cm.c    |    54 +
 drivers/gpu/drm/amd/display/dc/dcn30/dcn30_mpc.c   |   106 +-
 drivers/gpu/drm/amd/display/dc/dcn30/dcn30_mpc.h   |     4 +
 .../amd/display/dc/dcn32/dcn32_dio_link_encoder.c  |    85 +-
 .../amd/display/dc/dcn32/dcn32_dio_link_encoder.h  |     5 +
 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_dpp.c   |     1 +
 .../display/dc/dcn35/dcn35_dio_stream_encoder.h    |     1 +
 drivers/gpu/drm/amd/display/dc/dm_cp_psp.h         |     3 +
 drivers/gpu/drm/amd/display/dc/dml/Makefile        |     3 +
 .../amd/display/dc/dml/dcn30/display_mode_vba_30.c |    16 +-
 .../gpu/drm/amd/display/dc/dml/dcn303/dcn303_fpu.c |    11 +
 .../gpu/drm/amd/display/dc/dml/dcn32/dcn32_fpu.c   |     1 -
 .../gpu/drm/amd/display/dc/dml/dcn35/dcn35_fpu.c   |    12 +-
 .../gpu/drm/amd/display/dc/dml/dcn351/dcn351_fpu.c |   574 +
 .../gpu/drm/amd/display/dc/dml/dcn351/dcn351_fpu.h |    19 +
 .../amd/display/dc/dml2/dml2_dc_resource_mgmt.c    |    41 +-
 drivers/gpu/drm/amd/display/dc/dml2/dml2_utils.c   |     2 +-
 drivers/gpu/drm/amd/display/dc/dml2/dml2_wrapper.c |     5 +
 drivers/gpu/drm/amd/display/dc/dsc/dc_dsc.c        |     5 +
 drivers/gpu/drm/amd/display/dc/gpio/hw_factory.c   |     1 +
 drivers/gpu/drm/amd/display/dc/gpio/hw_translate.c |     1 +
 drivers/gpu/drm/amd/display/dc/hdcp/hdcp_msg.c     |     2 -
 drivers/gpu/drm/amd/display/dc/hwss/Makefile       |     8 +
 .../drm/amd/display/dc/hwss/dce110/dce110_hwseq.c  |    56 +-
 .../drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.c    |    97 +-
 .../drm/amd/display/dc/hwss/dcn20/dcn20_hwseq.c    |   109 +-
 .../drm/amd/display/dc/hwss/dcn20/dcn20_hwseq.h    |     2 +
 .../drm/amd/display/dc/hwss/dcn30/dcn30_hwseq.c    |   167 +-
 .../drm/amd/display/dc/hwss/dcn30/dcn30_hwseq.h    |     6 +-
 .../gpu/drm/amd/display/dc/hwss/dcn30/dcn30_init.c |     2 +-
 .../drm/amd/display/dc/hwss/dcn31/dcn31_hwseq.c    |    20 +-
 .../drm/amd/display/dc/hwss/dcn31/dcn31_hwseq.h    |     4 +
 .../gpu/drm/amd/display/dc/hwss/dcn31/dcn31_init.c |     2 +-
 .../drm/amd/display/dc/hwss/dcn314/dcn314_init.c   |     2 +-
 .../gpu/drm/amd/display/dc/hwss/dcn32/dcn32_init.c |     2 +-
 .../drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c    |    21 +-
 .../drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.h    |     3 +
 .../gpu/drm/amd/display/dc/hwss/dcn35/dcn35_init.c |     2 +-
 .../drm/amd/display/dc/hwss/dcn351/CMakeLists.txt  |     4 -
 .../drm/amd/display/dc/hwss/dcn351/dcn351_init.c   |     2 +-
 drivers/gpu/drm/amd/display/dc/hwss/hw_sequencer.h |     2 +
 .../drm/amd/display/dc/hwss/hw_sequencer_private.h |     2 -
 drivers/gpu/drm/amd/display/dc/inc/core_types.h    |    31 +-
 drivers/gpu/drm/amd/display/dc/inc/hw/audio.h      |     3 +-
 .../drm/amd/display/dc/inc/hw/clk_mgr_internal.h   |     6 +
 drivers/gpu/drm/amd/display/dc/inc/hw/dchubbub.h   |     6 +
 drivers/gpu/drm/amd/display/dc/inc/hw/dpp.h        |    39 +
 drivers/gpu/drm/amd/display/dc/inc/hw/hubp.h       |    15 +-
 drivers/gpu/drm/amd/display/dc/inc/hw/mpc.h        |   256 +-
 drivers/gpu/drm/amd/display/dc/inc/hw/opp.h        |    16 +
 .../drm/amd/display/dc/inc/hw/timing_generator.h   |     2 -
 drivers/gpu/drm/amd/display/dc/irq/Makefile        |    11 +-
 .../amd/display/dc/irq/dcn20/irq_service_dcn20.c   |     2 -
 .../amd/display/dc/irq/dcn21/irq_service_dcn21.c   |     2 -
 .../amd/display/dc/irq/dcn351/irq_service_dcn351.c |   409 +
 .../amd/display/dc/irq/dcn351/irq_service_dcn351.h |    12 +
 .../amd/display/dc/link/accessories/link_dp_cts.c  |    27 +-
 .../drm/amd/display/dc/link/hwss/link_hwss_dio.h   |    10 +
 .../link/hwss/link_hwss_dio_fixed_vs_pe_retimer.c  |    16 +-
 .../hwss/link_hwss_hpo_fixed_vs_pe_retimer_dp.c    |    51 +-
 .../gpu/drm/amd/display/dc/link/link_detection.c   |    18 +
 drivers/gpu/drm/amd/display/dc/link/link_dpms.c    |    58 +
 .../gpu/drm/amd/display/dc/link/link_validation.c  |     2 -
 .../amd/display/dc/link/protocols/link_dp_phy.c    |     6 +-
 .../display/dc/link/protocols/link_dp_training.c   |     5 +-
 .../link_dp_training_fixed_vs_pe_retimer.c         |   372 +-
 .../link_dp_training_fixed_vs_pe_retimer.h         |     5 -
 .../drm/amd/display/dc/link/protocols/link_dpcd.c  |     2 +-
 .../dc/link/protocols/link_edp_panel_control.c     |     5 +-
 drivers/gpu/drm/amd/display/dc/resource/Makefile   |     8 +
 .../amd/display/dc/resource/dcn20/dcn20_resource.c |     2 -
 .../amd/display/dc/resource/dcn30/dcn30_resource.c |    11 +
 .../amd/display/dc/resource/dcn31/dcn31_resource.c |     2 -
 .../amd/display/dc/resource/dcn32/dcn32_resource.c |     1 +
 .../display/dc/resource/dcn321/dcn321_resource.c   |     1 +
 .../amd/display/dc/resource/dcn35/dcn35_resource.c |     7 +-
 .../display/dc/resource/dcn351/dcn351_resource.c   |  2156 +
 .../display/dc/resource/dcn351/dcn351_resource.h   |    23 +
 drivers/gpu/drm/amd/display/dmub/dmub_srv.h        |    23 +-
 drivers/gpu/drm/amd/display/dmub/inc/dmub_cmd.h    |   145 +-
 drivers/gpu/drm/amd/display/dmub/src/Makefile      |     1 +
 drivers/gpu/drm/amd/display/dmub/src/dmub_dcn20.c  |     3 +-
 drivers/gpu/drm/amd/display/dmub/src/dmub_dcn20.h  |     3 +-
 drivers/gpu/drm/amd/display/dmub/src/dmub_dcn30.c  |     3 +-
 drivers/gpu/drm/amd/display/dmub/src/dmub_dcn30.h  |     3 +-
 drivers/gpu/drm/amd/display/dmub/src/dmub_dcn31.c  |     3 +-
 drivers/gpu/drm/amd/display/dmub/src/dmub_dcn31.h  |     3 +-
 drivers/gpu/drm/amd/display/dmub/src/dmub_dcn32.c  |     5 +-
 drivers/gpu/drm/amd/display/dmub/src/dmub_dcn32.h  |     3 +-
 drivers/gpu/drm/amd/display/dmub/src/dmub_dcn35.c  |    20 +-
 drivers/gpu/drm/amd/display/dmub/src/dmub_dcn35.h  |     8 +-
 drivers/gpu/drm/amd/display/dmub/src/dmub_dcn351.c |    34 +
 drivers/gpu/drm/amd/display/dmub/src/dmub_dcn351.h |    13 +
 drivers/gpu/drm/amd/display/dmub/src/dmub_srv.c    |   129 +-
 drivers/gpu/drm/amd/display/include/audio_types.h  |    15 +
 drivers/gpu/drm/amd/display/include/dal_asic_id.h  |     2 +
 .../drm/amd/display/include/link_service_types.h   |     9 +
 .../gpu/drm/amd/display/modules/inc/mod_stats.h    |     4 +-
 drivers/gpu/drm/amd/include/amd_shared.h           |     2 +
 drivers/gpu/drm/amd/include/arct_ip_offset.h       |     6 +-
 .../include/asic_reg/athub/athub_4_1_0_offset.h    |   287 +
 .../include/asic_reg/athub/athub_4_1_0_sh_mask.h   |  1348 +
 .../amd/include/asic_reg/dcn/dcn_3_1_6_offset.h    |     4 +
 .../amd/include/asic_reg/dcn/dcn_3_1_6_sh_mask.h   |    10 +
 .../amd/include/asic_reg/dcn/dcn_3_5_0_offset.h    |    24 +
 .../amd/include/asic_reg/dcn/dcn_3_5_0_sh_mask.h   |    65 +
 .../amd/include/asic_reg/dcn/dcn_3_5_1_offset.h    | 15259 ++++++
 .../amd/include/asic_reg/dcn/dcn_3_5_1_sh_mask.h   | 53464 +++++++++++++++++++
 .../amd/include/asic_reg/hdp/hdp_7_0_0_offset.h    |   219 +
 .../amd/include/asic_reg/hdp/hdp_7_0_0_sh_mask.h   |   735 +
 .../include/asic_reg/lsdma/lsdma_7_0_0_offset.h    |   388 +
 .../include/asic_reg/lsdma/lsdma_7_0_0_sh_mask.h   |  1411 +
 .../drm/amd/include/asic_reg/mp/mp_14_0_2_offset.h |   468 +
 .../amd/include/asic_reg/mp/mp_14_0_2_sh_mask.h    |   692 +
 .../amd/include/asic_reg/nbif/nbif_6_3_1_offset.h  | 11287 ++++
 .../amd/include/asic_reg/nbif/nbif_6_3_1_sh_mask.h | 32806 ++++++++++++
 .../amd/include/asic_reg/nbio/nbio_7_11_0_offset.h |     2 +
 .../amd/include/asic_reg/nbio/nbio_7_9_0_sh_mask.h |     8 -
 .../amd/include/asic_reg/oss/osssys_7_0_0_offset.h |   279 +
 .../include/asic_reg/oss/osssys_7_0_0_sh_mask.h    |  1029 +
 .../amd/include/asic_reg/pcie/pcie_6_1_0_offset.h  |   630 +
 .../amd/include/asic_reg/pcie/pcie_6_1_0_sh_mask.h |  4250 ++
 .../amd/include/asic_reg/vcn/vcn_5_0_0_offset.h    |  1672 +
 .../amd/include/asic_reg/vcn/vcn_5_0_0_sh_mask.h   |  7627 +++
 drivers/gpu/drm/amd/include/atom-bits.h            |     2 +-
 drivers/gpu/drm/amd/include/atomfirmware.h         |    32 +
 drivers/gpu/drm/amd/include/beige_goby_ip_offset.h |     6 +-
 drivers/gpu/drm/amd/include/cgs_common.h           |    23 +-
 .../gpu/drm/amd/include/cyan_skillfish_ip_offset.h |     6 +-
 .../drm/amd/include/dimgrey_cavefish_ip_offset.h   |     6 +-
 drivers/gpu/drm/amd/include/dm_pp_interface.h      |     9 +-
 drivers/gpu/drm/amd/include/kgd_pp_interface.h     |     6 +-
 drivers/gpu/drm/amd/include/navi12_ip_offset.h     |     6 +-
 drivers/gpu/drm/amd/include/navi14_ip_offset.h     |     6 +-
 drivers/gpu/drm/amd/include/pptable.h              |     6 +-
 drivers/gpu/drm/amd/include/renoir_ip_offset.h     |     6 +-
 .../gpu/drm/amd/include/sienna_cichlid_ip_offset.h |     6 +-
 drivers/gpu/drm/amd/include/v10_structs.h          |     3 +-
 drivers/gpu/drm/amd/include/vangogh_ip_offset.h    |     6 +-
 drivers/gpu/drm/amd/include/vega10_ip_offset.h     |     6 +-
 drivers/gpu/drm/amd/include/vega20_ip_offset.h     |    78 +-
 drivers/gpu/drm/amd/pm/amdgpu_dpm.c                |    15 +
 drivers/gpu/drm/amd/pm/amdgpu_pm.c                 |    94 +-
 drivers/gpu/drm/amd/pm/inc/amdgpu_dpm.h            |     1 +
 drivers/gpu/drm/amd/pm/legacy-dpm/si_dpm.c         |    29 +
 .../gpu/drm/amd/pm/powerplay/hwmgr/ppatomctrl.c    |    42 +-
 .../gpu/drm/amd/pm/powerplay/hwmgr/ppatomfwctrl.c  |     4 +-
 drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c          |    42 +-
 drivers/gpu/drm/amd/pm/swsmu/inc/amdgpu_smu.h      |     6 +
 .../amd/pm/swsmu/inc/pmfw_if/smu_v13_0_6_ppsmc.h   |     3 +-
 drivers/gpu/drm/amd/pm/swsmu/inc/smu_types.h       |     3 +-
 drivers/gpu/drm/amd/pm/swsmu/smu11/arcturus_ppt.c  |    13 +-
 drivers/gpu/drm/amd/pm/swsmu/smu11/navi10_ppt.c    |     9 +-
 .../drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c    |     9 +-
 drivers/gpu/drm/amd/pm/swsmu/smu11/smu_v11_0.c     |    16 +-
 drivers/gpu/drm/amd/pm/swsmu/smu12/smu_v12_0.c     |     2 +-
 drivers/gpu/drm/amd/pm/swsmu/smu13/aldebaran_ppt.c |    14 +-
 drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0.c     |    18 +-
 .../gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c   |     9 +-
 .../gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_6_ppt.c   |   332 +-
 .../gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c   |     9 +-
 drivers/gpu/drm/amd/pm/swsmu/smu14/smu_v14_0.c     |    20 +-
 .../gpu/drm/amd/pm/swsmu/smu14/smu_v14_0_0_ppt.c   |     5 +-
 drivers/gpu/drm/amd/pm/swsmu/smu_cmn.c             |     9 +-
 drivers/gpu/drm/amd/pm/swsmu/smu_cmn.h             |    10 +
 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c       |    69 +-
 drivers/gpu/drm/bridge/analogix/anx7625.c          |    30 +-
 .../gpu/drm/bridge/cadence/cdns-mhdp8546-core.c    |    28 +-
 drivers/gpu/drm/bridge/chrontel-ch7033.c           |    12 +-
 drivers/gpu/drm/bridge/display-connector.c         |     8 +-
 drivers/gpu/drm/bridge/imx/Kconfig                 |    18 +
 drivers/gpu/drm/bridge/imx/Makefile                |     2 +
 drivers/gpu/drm/bridge/imx/imx8mp-hdmi-pvi.c       |   207 +
 drivers/gpu/drm/bridge/imx/imx8mp-hdmi-tx.c        |   154 +
 drivers/gpu/drm/bridge/ite-it6505.c                |    21 +-
 drivers/gpu/drm/bridge/ite-it66121.c               |    16 +-
 drivers/gpu/drm/bridge/lontium-lt8912b.c           |    20 +-
 drivers/gpu/drm/bridge/lontium-lt9611.c            |     9 +-
 drivers/gpu/drm/bridge/lontium-lt9611uxc.c         |    19 +-
 .../drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c   |    18 +-
 drivers/gpu/drm/bridge/nxp-ptn3460.c               |    22 +-
 drivers/gpu/drm/bridge/samsung-dsim.c              |    18 +-
 drivers/gpu/drm/bridge/sii902x.c                   |    38 +-
 drivers/gpu/drm/bridge/simple-bridge.c             |    17 +-
 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c          |    45 +-
 drivers/gpu/drm/bridge/tc358767.c                  |   195 +-
 drivers/gpu/drm/bridge/ti-sn65dsi86.c              |     8 +-
 drivers/gpu/drm/bridge/ti-tfp410.c                 |    18 +-
 drivers/gpu/drm/ci/build.sh                        |     1 +
 drivers/gpu/drm/ci/gitlab-ci.yml                   |    14 +-
 drivers/gpu/drm/ci/test.yml                        |    31 +-
 drivers/gpu/drm/ci/testlist.txt                    |  1937 +-
 drivers/gpu/drm/ci/xfails/msm-apq8016-fails.txt    |     3 +-
 drivers/gpu/drm/ci/xfails/msm-apq8096-fails.txt    |     2 -
 drivers/gpu/drm/ci/xfails/msm-sc7180-fails.txt     |    30 -
 drivers/gpu/drm/ci/xfails/msm-sc7180-flakes.txt    |    17 -
 drivers/gpu/drm/ci/xfails/msm-sc7180-skips.txt     |     7 -
 .../xfails/msm-sc7180-trogdor-kingoftown-fails.txt |    18 +
 .../xfails/msm-sc7180-trogdor-kingoftown-skips.txt |     2 +
 .../msm-sc7180-trogdor-lazor-limozeen-fails.txt    |    18 +
 .../msm-sc7180-trogdor-lazor-limozeen-skips.txt    |     2 +
 drivers/gpu/drm/ci/xfails/msm-sdm845-fails.txt     |     5 +-
 drivers/gpu/drm/ci/xfails/msm-sdm845-flakes.txt    |    28 +-
 drivers/gpu/drm/ci/xfails/msm-sdm845-skips.txt     |     7 +-
 drivers/gpu/drm/display/Kconfig                    |    21 +
 drivers/gpu/drm/display/Makefile                   |     2 +
 drivers/gpu/drm/display/drm_dp_aux_bus.c           |     2 +-
 drivers/gpu/drm/display/drm_dp_helper.c            |   179 +-
 drivers/gpu/drm/display/drm_dp_mst_topology.c      |    23 +-
 drivers/gpu/drm/display/drm_dp_tunnel.c            |  1949 +
 drivers/gpu/drm/drm_bridge.c                       |    17 +-
 drivers/gpu/drm/drm_bridge_connector.c             |    16 +-
 drivers/gpu/drm/drm_crtc.c                         |    23 +-
 drivers/gpu/drm/drm_debugfs.c                      |     4 -
 drivers/gpu/drm/drm_edid.c                         |    25 +-
 drivers/gpu/drm/drm_edid_load.c                    |   162 +-
 drivers/gpu/drm/drm_exec.c                         |     2 +-
 drivers/gpu/drm/drm_file.c                         |     2 +-
 drivers/gpu/drm/drm_gem_vram_helper.c              |     2 -
 drivers/gpu/drm/drm_ioc32.c                        |     4 +-
 drivers/gpu/drm/drm_managed.c                      |    39 +
 drivers/gpu/drm/drm_mipi_dsi.c                     |     2 +-
 drivers/gpu/drm/drm_mode_config.c                  |     2 +-
 drivers/gpu/drm/drm_modes.c                        |    22 +
 drivers/gpu/drm/drm_modeset_helper.c               |    19 +-
 drivers/gpu/drm/drm_modeset_lock.c                 |     2 +-
 drivers/gpu/drm/drm_panel_orientation_quirks.c     |    12 +
 drivers/gpu/drm/drm_print.c                        |    29 +-
 drivers/gpu/drm/drm_probe_helper.c                 |    57 +-
 drivers/gpu/drm/drm_syncobj.c                      |     7 +-
 drivers/gpu/drm/etnaviv/etnaviv_cmd_parser.c       |     1 +
 drivers/gpu/drm/etnaviv/etnaviv_drv.c              |    93 +-
 drivers/gpu/drm/etnaviv/etnaviv_gem.c              |    12 +-
 drivers/gpu/drm/etnaviv/etnaviv_gpu.c              |    33 +-
 drivers/gpu/drm/etnaviv/etnaviv_gpu.h              |    12 +
 drivers/gpu/drm/etnaviv/etnaviv_hwdb.c             |    43 +
 drivers/gpu/drm/etnaviv/etnaviv_mmu.c              |     4 +-
 drivers/gpu/drm/etnaviv/etnaviv_perfmon.c          |     4 +-
 drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.h    |     1 -
 drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_vdac.c   |     1 +
 drivers/gpu/drm/i915/Kconfig                       |    14 +
 drivers/gpu/drm/i915/Kconfig.debug                 |     1 +
 drivers/gpu/drm/i915/Makefile                      |     3 +
 drivers/gpu/drm/i915/display/dvo_ch7017.c          |     2 +-
 drivers/gpu/drm/i915/display/dvo_ch7xxx.c          |     2 +-
 drivers/gpu/drm/i915/display/dvo_ivch.c            |     2 +-
 drivers/gpu/drm/i915/display/dvo_ns2501.c          |     6 +-
 drivers/gpu/drm/i915/display/dvo_sil164.c          |     2 +-
 drivers/gpu/drm/i915/display/dvo_tfp410.c          |     2 +-
 drivers/gpu/drm/i915/display/i9xx_plane.c          |    30 +
 drivers/gpu/drm/i915/display/i9xx_plane.h          |     7 +
 drivers/gpu/drm/i915/display/i9xx_wm.c             |    81 +-
 drivers/gpu/drm/i915/display/intel_atomic.c        |    10 +
 drivers/gpu/drm/i915/display/intel_atomic_plane.c  |     6 +-
 drivers/gpu/drm/i915/display/intel_backlight.c     |     2 +-
 drivers/gpu/drm/i915/display/intel_bios.c          |   109 +-
 drivers/gpu/drm/i915/display/intel_bios.h          |     8 +-
 drivers/gpu/drm/i915/display/intel_cdclk.c         |   426 +-
 drivers/gpu/drm/i915/display/intel_color.c         |    11 +-
 drivers/gpu/drm/i915/display/intel_crt.c           |     8 +
 drivers/gpu/drm/i915/display/intel_crtc.c          |   128 +-
 .../gpu/drm/i915/display/intel_crtc_state_dump.c   |     5 +-
 drivers/gpu/drm/i915/display/intel_cursor.c        |    63 +-
 drivers/gpu/drm/i915/display/intel_cx0_phy.c       |   261 +-
 drivers/gpu/drm/i915/display/intel_cx0_phy_regs.h  |    63 +-
 drivers/gpu/drm/i915/display/intel_ddi.c           |    70 +-
 drivers/gpu/drm/i915/display/intel_display.c       |   235 +-
 drivers/gpu/drm/i915/display/intel_display_core.h  |    19 +-
 .../gpu/drm/i915/display/intel_display_debugfs.c   |    94 +-
 .../i915/display/intel_display_debugfs_params.c    |     1 +
 .../gpu/drm/i915/display/intel_display_device.c    |     2 +-
 .../gpu/drm/i915/display/intel_display_driver.c    |   188 +-
 .../gpu/drm/i915/display/intel_display_driver.h    |     6 +
 drivers/gpu/drm/i915/display/intel_display_irq.c   |    10 +-
 drivers/gpu/drm/i915/display/intel_display_types.h |    62 +-
 drivers/gpu/drm/i915/display/intel_dmc.c           |     2 +-
 drivers/gpu/drm/i915/display/intel_dp.c            |   559 +-
 drivers/gpu/drm/i915/display/intel_dp.h            |    23 +-
 drivers/gpu/drm/i915/display/intel_dp_aux.c        |    29 +-
 drivers/gpu/drm/i915/display/intel_dp_hdcp.c       |   149 +-
 .../gpu/drm/i915/display/intel_dp_link_training.c  |    33 +-
 .../gpu/drm/i915/display/intel_dp_link_training.h  |     1 +
 drivers/gpu/drm/i915/display/intel_dp_mst.c        |    26 +-
 drivers/gpu/drm/i915/display/intel_dp_tunnel.c     |   811 +
 drivers/gpu/drm/i915/display/intel_dp_tunnel.h     |   133 +
 drivers/gpu/drm/i915/display/intel_dpll_mgr.c      |   186 +-
 drivers/gpu/drm/i915/display/intel_dpll_mgr.h      |    21 +-
 drivers/gpu/drm/i915/display/intel_drrs.c          |     6 +
 drivers/gpu/drm/i915/display/intel_dsb.c           |     6 +-
 drivers/gpu/drm/i915/display/intel_dsi.h           |     4 -
 drivers/gpu/drm/i915/display/intel_dvo.c           |    10 +
 drivers/gpu/drm/i915/display/intel_dvo_dev.h       |    25 -
 drivers/gpu/drm/i915/display/intel_fb.c            |     7 +-
 drivers/gpu/drm/i915/display/intel_fbc.c           |    13 +-
 drivers/gpu/drm/i915/display/intel_fbdev_fb.c      |     5 +-
 drivers/gpu/drm/i915/display/intel_global_state.c  |   137 +-
 drivers/gpu/drm/i915/display/intel_global_state.h  |    13 +-
 drivers/gpu/drm/i915/display/intel_gmbus.c         |     5 +-
 drivers/gpu/drm/i915/display/intel_hdcp.c          |   296 +-
 drivers/gpu/drm/i915/display/intel_hdcp.h          |     7 +-
 drivers/gpu/drm/i915/display/intel_hdcp_gsc.c      |     2 +-
 drivers/gpu/drm/i915/display/intel_hdcp_regs.h     |    28 +-
 drivers/gpu/drm/i915/display/intel_hdmi.c          |    22 +-
 drivers/gpu/drm/i915/display/intel_hotplug.c       |   165 +-
 drivers/gpu/drm/i915/display/intel_hotplug.h       |     4 +
 drivers/gpu/drm/i915/display/intel_hotplug_irq.c   |     6 +-
 drivers/gpu/drm/i915/display/intel_link_bw.c       |    27 +-
 drivers/gpu/drm/i915/display/intel_link_bw.h       |     2 +-
 drivers/gpu/drm/i915/display/intel_opregion.c      |   182 +-
 drivers/gpu/drm/i915/display/intel_opregion.h      |    47 +-
 drivers/gpu/drm/i915/display/intel_panel.c         |     4 +
 drivers/gpu/drm/i915/display/intel_plane_initial.c |   255 +-
 drivers/gpu/drm/i915/display/intel_plane_initial.h |     4 +-
 drivers/gpu/drm/i915/display/intel_pps.c           |     2 +-
 drivers/gpu/drm/i915/display/intel_psr.c           |   202 +-
 drivers/gpu/drm/i915/display/intel_psr.h           |     6 -
 drivers/gpu/drm/i915/display/intel_psr_regs.h      |    63 +
 drivers/gpu/drm/i915/display/intel_sdvo.c          |   230 +-
 drivers/gpu/drm/i915/display/intel_tc.c            |    40 +-
 drivers/gpu/drm/i915/display/intel_tc.h            |     2 +-
 drivers/gpu/drm/i915/display/intel_tv.c            |     7 +-
 drivers/gpu/drm/i915/display/intel_vblank.c        |   130 +
 drivers/gpu/drm/i915/display/intel_vblank.h        |    12 +
 drivers/gpu/drm/i915/display/skl_universal_plane.c |    33 +
 drivers/gpu/drm/i915/display/skl_universal_plane.h |     2 +
 drivers/gpu/drm/i915/display/skl_watermark.c       |   108 +-
 drivers/gpu/drm/i915/display/skl_watermark.h       |     4 +-
 drivers/gpu/drm/i915/display/skl_watermark_regs.h  |     4 +
 drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c     |     8 -
 drivers/gpu/drm/i915/gem/i915_gem_pm.c             |    10 +
 drivers/gpu/drm/i915/gem/i915_gem_region.c         |     2 +-
 drivers/gpu/drm/i915/gem/i915_gem_stolen.c         |    25 +-
 drivers/gpu/drm/i915/gem/i915_gem_ttm.c            |    50 +-
 drivers/gpu/drm/i915/gem/i915_gem_userptr.c        |    45 +-
 drivers/gpu/drm/i915/gem/i915_gem_userptr.h        |    14 -
 drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c |    18 +-
 drivers/gpu/drm/i915/gt/gen8_engine_cs.c           |     4 +-
 drivers/gpu/drm/i915/gt/intel_engine_cs.c          |     3 +-
 drivers/gpu/drm/i915/gt/intel_engine_heartbeat.c   |     6 +-
 drivers/gpu/drm/i915/gt/intel_ggtt.c               |    10 +-
 drivers/gpu/drm/i915/gt/intel_gt_sysfs_pm.c        |    18 +-
 drivers/gpu/drm/i915/gt/intel_gtt.c                |     3 +-
 drivers/gpu/drm/i915/gt/intel_mocs.c               |     2 +-
 drivers/gpu/drm/i915/gt/intel_rc6.c                |     2 +-
 drivers/gpu/drm/i915/gt/intel_region_lmem.c        |    14 +-
 drivers/gpu/drm/i915/gt/intel_reset.c              |     3 +-
 drivers/gpu/drm/i915/gt/intel_workarounds.c        |    30 +-
 drivers/gpu/drm/i915/gt/selftest_context.c         |     3 +-
 .../gpu/drm/i915/gt/selftest_engine_heartbeat.c    |    10 +-
 drivers/gpu/drm/i915/gt/selftest_rc6.c             |     4 +-
 drivers/gpu/drm/i915/gt/selftest_tlb.c             |     4 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc.h             |     2 -
 drivers/gpu/drm/i915/gt/uc/intel_guc_ads.c         |    21 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc_fw.c          |    10 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c  |   126 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc_submission.h  |     2 +
 drivers/gpu/drm/i915/gt/uc/intel_huc.c             |    64 +-
 drivers/gpu/drm/i915/gt/uc/intel_uc.c              |     4 +-
 drivers/gpu/drm/i915/gvt/fb_decoder.h              |    11 -
 drivers/gpu/drm/i915/gvt/gtt.h                     |     3 -
 drivers/gpu/drm/i915/gvt/gvt.h                     |     5 -
 drivers/gpu/drm/i915/gvt/interrupt.c               |     1 -
 drivers/gpu/drm/i915/gvt/interrupt.h               |     2 -
 drivers/gpu/drm/i915/gvt/kvmgt.c                   |     2 +-
 drivers/gpu/drm/i915/gvt/mmio.h                    |     2 -
 drivers/gpu/drm/i915/gvt/scheduler.h               |     2 -
 drivers/gpu/drm/i915/i915_debugfs.c                |     2 +-
 drivers/gpu/drm/i915/i915_driver.c                 |    28 +-
 drivers/gpu/drm/i915/i915_drm_client.c             |     2 +-
 drivers/gpu/drm/i915/i915_drm_client.h             |     2 -
 drivers/gpu/drm/i915/i915_drv.h                    |     8 -
 drivers/gpu/drm/i915/i915_gem.c                    |     5 -
 drivers/gpu/drm/i915/i915_gpu_error.c              |     2 +-
 drivers/gpu/drm/i915/i915_perf.c                   |     2 +-
 drivers/gpu/drm/i915/i915_perf_types.h             |     1 -
 drivers/gpu/drm/i915/i915_query.c                  |    35 +-
 drivers/gpu/drm/i915/i915_reg.h                    |    18 +-
 drivers/gpu/drm/i915/i915_request.c                |     1 -
 drivers/gpu/drm/i915/i915_syncmap.c                |    19 +-
 drivers/gpu/drm/i915/i915_utils.c                  |    17 +
 drivers/gpu/drm/i915/i915_utils.h                  |     2 +
 drivers/gpu/drm/i915/i915_vma_types.h              |     1 -
 drivers/gpu/drm/i915/intel_memory_region.c         |    33 +-
 drivers/gpu/drm/i915/intel_memory_region.h         |     5 +-
 drivers/gpu/drm/i915/intel_region_ttm.c            |     8 +-
 drivers/gpu/drm/i915/intel_uncore.c                |     5 +-
 drivers/gpu/drm/i915/selftests/i915_active.c       |     8 +-
 .../gpu/drm/i915/selftests/intel_memory_region.c   |     4 +-
 drivers/gpu/drm/i915/soc/intel_pch.c               |    16 +-
 drivers/gpu/drm/i915/soc/intel_pch.h               |     6 +-
 drivers/gpu/drm/imx/dcss/dcss-blkctl.c             |    13 +-
 drivers/gpu/drm/imx/dcss/dcss-ctxld.c              |    14 +-
 drivers/gpu/drm/imx/dcss/dcss-dev.c                |    17 +-
 drivers/gpu/drm/imx/dcss/dcss-dev.h                |     1 -
 drivers/gpu/drm/imx/dcss/dcss-dpr.c                |    21 +-
 drivers/gpu/drm/imx/dcss/dcss-drv.c                |    12 +-
 drivers/gpu/drm/imx/dcss/dcss-dtg.c                |    26 +-
 drivers/gpu/drm/imx/dcss/dcss-scaler.c             |    21 +-
 drivers/gpu/drm/imx/dcss/dcss-ss.c                 |    12 +-
 drivers/gpu/drm/imx/ipuv3/imx-ldb.c                |     2 +-
 drivers/gpu/drm/ingenic/Kconfig                    |     1 -
 drivers/gpu/drm/lima/lima_ctx.c                    |     2 +-
 drivers/gpu/drm/lima/lima_ctx.h                    |     1 -
 drivers/gpu/drm/lima/lima_gem.c                    |    23 +-
 drivers/gpu/drm/lima/lima_gp.c                     |    39 +-
 drivers/gpu/drm/lima/lima_l2_cache.c               |     6 +-
 drivers/gpu/drm/lima/lima_mmu.c                    |    18 +-
 drivers/gpu/drm/lima/lima_pmu.c                    |     3 +-
 drivers/gpu/drm/lima/lima_pp.c                     |    37 +-
 drivers/gpu/drm/lima/lima_sched.c                  |    38 +-
 drivers/gpu/drm/lima/lima_sched.h                  |     3 +-
 drivers/gpu/drm/loongson/lsdc_drv.c                |     2 +-
 drivers/gpu/drm/loongson/lsdc_ttm.c                |     2 -
 drivers/gpu/drm/mcde/Kconfig                       |     1 -
 drivers/gpu/drm/mediatek/mtk_disp_drv.h            |     4 +
 drivers/gpu/drm/mediatek/mtk_disp_merge.c          |    65 +
 drivers/gpu/drm/mediatek/mtk_disp_ovl_adaptor.c    |    43 +
 drivers/gpu/drm/mediatek/mtk_dp.c                  |    31 +-
 drivers/gpu/drm/mediatek/mtk_drm_crtc.c            |    29 +-
 drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c        |     1 +
 drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.h        |    12 +
 drivers/gpu/drm/mediatek/mtk_drm_drv.c             |     4 +-
 drivers/gpu/drm/mediatek/mtk_dsi.c                 |   310 +-
 drivers/gpu/drm/mediatek/mtk_hdmi.c                |    26 +-
 drivers/gpu/drm/meson/meson_drv.c                  |     6 +-
 drivers/gpu/drm/meson/meson_encoder_cvbs.c         |    24 +-
 drivers/gpu/drm/meson/meson_encoder_cvbs.h         |     2 +-
 drivers/gpu/drm/meson/meson_encoder_dsi.c          |    23 +-
 drivers/gpu/drm/meson/meson_encoder_dsi.h          |     2 +-
 drivers/gpu/drm/meson/meson_encoder_hdmi.c         |    35 +-
 drivers/gpu/drm/meson/meson_encoder_hdmi.h         |     2 +-
 drivers/gpu/drm/mgag200/Kconfig                    |    12 +
 drivers/gpu/drm/mgag200/mgag200_drv.c              |    26 +-
 drivers/gpu/drm/mgag200/mgag200_mode.c             |    22 +-
 drivers/gpu/drm/msm/Makefile                       |     5 +-
 drivers/gpu/drm/msm/adreno/a2xx.xml.h              |    73 +-
 drivers/gpu/drm/msm/adreno/a3xx.xml.h              |   131 +-
 drivers/gpu/drm/msm/adreno/a3xx_gpu.c              |    13 +-
 drivers/gpu/drm/msm/adreno/a4xx.xml.h              |   182 +-
 drivers/gpu/drm/msm/adreno/a5xx.xml.h              |   666 +-
 drivers/gpu/drm/msm/adreno/a6xx.xml.h              |  5275 +-
 drivers/gpu/drm/msm/adreno/a6xx_gmu.c              |     8 +-
 drivers/gpu/drm/msm/adreno/a6xx_gmu.xml.h          |   179 +-
 drivers/gpu/drm/msm/adreno/a6xx_gpu.c              |   220 +-
 drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c        |   727 +-
 drivers/gpu/drm/msm/adreno/a6xx_gpu_state.h        |   311 +-
 drivers/gpu/drm/msm/adreno/adreno_common.xml.h     |   260 +-
 drivers/gpu/drm/msm/adreno/adreno_device.c         |    69 +-
 .../gpu/drm/msm/adreno/adreno_gen7_0_0_snapshot.h  |   928 +
 .../gpu/drm/msm/adreno/adreno_gen7_2_0_snapshot.h  |   753 +
 drivers/gpu/drm/msm/adreno/adreno_gpu.h            |    31 +-
 drivers/gpu/drm/msm/adreno/adreno_pm4.xml.h        |   573 +-
 .../gpu/drm/msm/disp/dpu1/catalog/dpu_3_2_sdm660.h |   291 +
 .../gpu/drm/msm/disp/dpu1/catalog/dpu_3_3_sdm630.h |   225 +
 .../drm/msm/disp/dpu1/catalog/dpu_9_2_x1e80100.h   |   449 +
 drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c        |   347 +-
 drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.h        |    33 +-
 drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys.h   |    41 +-
 .../gpu/drm/msm/disp/dpu1/dpu_encoder_phys_cmd.c   |    95 +-
 .../gpu/drm/msm/disp/dpu1/dpu_encoder_phys_vid.c   |    92 +-
 .../gpu/drm/msm/disp/dpu1/dpu_encoder_phys_wb.c    |   188 +-
 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.c     |     4 +
 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.h     |     3 +
 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_cdm.c         |     2 +-
 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.c         |    17 +
 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.h         |    10 +
 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_intf.c        |    15 +-
 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_intf.h        |     1 +
 drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c            |   133 +-
 drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h            |     1 -
 drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c             |   154 +-
 drivers/gpu/drm/msm/disp/dpu1/dpu_trace.h          |    74 +-
 drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.c      |    61 +-
 drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.h      |     3 +-
 drivers/gpu/drm/msm/disp/mdp5/mdp5_cmd_encoder.c   |    42 -
 drivers/gpu/drm/msm/disp/mdp5/mdp5_encoder.c       |    42 -
 drivers/gpu/drm/msm/disp/mdp5/mdp5_irq.c           |     2 -
 drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c           |    71 +-
 drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.h           |    10 -
 drivers/gpu/drm/msm/disp/mdp5/mdp5_smp.c           |    12 +-
 drivers/gpu/drm/msm/disp/mdp5/mdp5_smp.h           |     4 +-
 drivers/gpu/drm/msm/dp/dp_audio.c                  |   101 +-
 drivers/gpu/drm/msm/dp/dp_aux.c                    |     9 +-
 drivers/gpu/drm/msm/dp/dp_aux.h                    |     2 +
 drivers/gpu/drm/msm/dp/dp_catalog.c                |   271 +-
 drivers/gpu/drm/msm/dp/dp_catalog.h                |    15 +-
 drivers/gpu/drm/msm/dp/dp_ctrl.c                   |   375 +-
 drivers/gpu/drm/msm/dp/dp_ctrl.h                   |    17 +-
 drivers/gpu/drm/msm/dp/dp_debug.c                  |     3 +-
 drivers/gpu/drm/msm/dp/dp_display.c                |   185 +-
 drivers/gpu/drm/msm/dp/dp_display.h                |     3 +-
 drivers/gpu/drm/msm/dp/dp_drm.c                    |     6 +-
 drivers/gpu/drm/msm/dp/dp_drm.h                    |     3 +-
 drivers/gpu/drm/msm/dp/dp_link.h                   |    23 -
 drivers/gpu/drm/msm/dp/dp_panel.c                  |   119 +
 drivers/gpu/drm/msm/dp/dp_panel.h                  |     2 +
 drivers/gpu/drm/msm/dp/dp_parser.c                 |   327 -
 drivers/gpu/drm/msm/dp/dp_parser.h                 |   155 -
 drivers/gpu/drm/msm/dp/dp_power.c                  |   183 -
 drivers/gpu/drm/msm/dp/dp_power.h                  |    95 -
 drivers/gpu/drm/msm/dp/dp_reg.h                    |     9 +
 drivers/gpu/drm/msm/dp/dp_utils.c                  |    96 +
 drivers/gpu/drm/msm/dp/dp_utils.h                  |    36 +
 drivers/gpu/drm/msm/dsi/dsi.c                      |    10 +-
 drivers/gpu/drm/msm/dsi/dsi.h                      |    22 +-
 drivers/gpu/drm/msm/dsi/dsi_host.c                 |    51 +-
 drivers/gpu/drm/msm/dsi/dsi_manager.c              |    65 +-
 drivers/gpu/drm/msm/hdmi/hdmi_bridge.c             |    33 +-
 drivers/gpu/drm/msm/msm_drv.c                      |    33 +
 drivers/gpu/drm/msm/msm_drv.h                      |    36 +-
 drivers/gpu/drm/msm/msm_io_utils.c                 |    13 +
 drivers/gpu/drm/msm/msm_kms.h                      |     4 -
 drivers/gpu/drm/msm/msm_mdss.c                     |    64 +
 drivers/gpu/drm/mxsfb/lcdif_drv.c                  |     7 +-
 drivers/gpu/drm/mxsfb/mxsfb_drv.c                  |     7 +-
 drivers/gpu/drm/nouveau/dispnv04/crtc.c            |     4 +-
 drivers/gpu/drm/nouveau/dispnv50/disp.c            |     1 +
 drivers/gpu/drm/nouveau/dispnv50/head.c            |     1 +
 drivers/gpu/drm/nouveau/nouveau_bo.c               |    59 +-
 drivers/gpu/drm/nouveau/nouveau_bo.h               |     1 -
 drivers/gpu/drm/nouveau/nouveau_connector.h        |     2 +-
 drivers/gpu/drm/nouveau/nouveau_ioc32.c            |     4 +-
 drivers/gpu/drm/nouveau/nouveau_svm.c              |    10 +-
 drivers/gpu/drm/nouveau/nvif/outp.c                |     3 +-
 drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c     |     2 +-
 drivers/gpu/drm/nouveau/nvkm/subdev/acr/lsfw.c     |     3 +-
 drivers/gpu/drm/nouveau/nvkm/subdev/bios/init.c    |   136 +-
 drivers/gpu/drm/nouveau/nvkm/subdev/volt/gk20a.c   |     4 +-
 drivers/gpu/drm/omapdrm/dss/hdmi4.c                |    22 +-
 drivers/gpu/drm/omapdrm/dss/hdmi5.c                |    12 +-
 drivers/gpu/drm/panel/Kconfig                      |   231 +-
 drivers/gpu/drm/panel/Makefile                     |     3 +
 drivers/gpu/drm/panel/panel-boe-himax8279d.c       |    18 +-
 .../gpu/drm/panel/panel-boe-th101mb31ig002-28a.c   |   322 +
 drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c     |     2 +
 drivers/gpu/drm/panel/panel-edp.c                  |   119 +-
 drivers/gpu/drm/panel/panel-himax-hx83112a.c       |   372 +
 drivers/gpu/drm/panel/panel-leadtek-ltk050h3146w.c |    23 +-
 drivers/gpu/drm/panel/panel-leadtek-ltk500hd1829.c |   265 +-
 drivers/gpu/drm/panel/panel-novatek-nt35510.c      |   424 +-
 drivers/gpu/drm/panel/panel-novatek-nt36523.c      |     8 +-
 drivers/gpu/drm/panel/panel-novatek-nt36672e.c     |   643 +
 drivers/gpu/drm/panel/panel-samsung-atna33xc20.c   |     2 +
 drivers/gpu/drm/panel/panel-simple.c               |    81 +-
 drivers/gpu/drm/panel/panel-sitronix-st7703.c      |   104 +
 drivers/gpu/drm/panel/panel-visionox-r66451.c      |     1 +
 drivers/gpu/drm/panel/panel-visionox-vtdr6130.c    |     1 +
 drivers/gpu/drm/pl111/Kconfig                      |     1 -
 drivers/gpu/drm/qxl/qxl_object.c                   |     2 -
 drivers/gpu/drm/qxl/qxl_ttm.c                      |     2 -
 drivers/gpu/drm/radeon/atom-bits.h                 |     2 +-
 drivers/gpu/drm/radeon/atom.c                      |    47 +-
 drivers/gpu/drm/radeon/atom.h                      |     4 +-
 drivers/gpu/drm/radeon/atombios_crtc.c             |    28 +-
 drivers/gpu/drm/radeon/atombios_dp.c               |     4 +-
 drivers/gpu/drm/radeon/atombios_encoders.c         |    38 +-
 drivers/gpu/drm/radeon/atombios_i2c.c              |     2 +-
 drivers/gpu/drm/radeon/btc_dpm.c                   |    90 +-
 drivers/gpu/drm/radeon/ci_dpm.c                    |    31 +-
 drivers/gpu/drm/radeon/ci_dpm.h                    |     6 +-
 drivers/gpu/drm/radeon/cik.c                       |    40 +-
 drivers/gpu/drm/radeon/clearstate_cayman.h         |     9 +-
 drivers/gpu/drm/radeon/clearstate_ci.h             |     3 +-
 drivers/gpu/drm/radeon/evergreen.c                 |    20 +-
 drivers/gpu/drm/radeon/evergreen_cs.c              |     4 +-
 drivers/gpu/drm/radeon/evergreen_reg.h             |    10 +-
 drivers/gpu/drm/radeon/evergreen_smc.h             |     9 +-
 drivers/gpu/drm/radeon/kv_dpm.c                    |     9 +-
 drivers/gpu/drm/radeon/kv_smc.c                    |     2 +-
 drivers/gpu/drm/radeon/ni.c                        |    33 +-
 drivers/gpu/drm/radeon/ni_dpm.c                    |     3 -
 drivers/gpu/drm/radeon/ni_dpm.h                    |    12 +-
 drivers/gpu/drm/radeon/nislands_smc.h              |    51 +-
 drivers/gpu/drm/radeon/r100.c                      |     2 +-
 drivers/gpu/drm/radeon/r300_reg.h                  |     2 +-
 drivers/gpu/drm/radeon/r600.c                      |     3 +-
 drivers/gpu/drm/radeon/r600_dpm.c                  |     6 +-
 drivers/gpu/drm/radeon/r600_dpm.h                  |     3 +-
 drivers/gpu/drm/radeon/radeon.h                    |     6 +-
 drivers/gpu/drm/radeon/radeon_asic.c               |     8 +-
 drivers/gpu/drm/radeon/radeon_atombios.c           |    44 +-
 drivers/gpu/drm/radeon/radeon_atpx_handler.c       |    12 +-
 drivers/gpu/drm/radeon/radeon_audio.c              |    11 +-
 drivers/gpu/drm/radeon/radeon_audio.h              |     6 +-
 drivers/gpu/drm/radeon/radeon_mode.h               |     9 +-
 drivers/gpu/drm/radeon/radeon_object.c             |     2 -
 drivers/gpu/drm/radeon/radeon_pm.c                 |     4 +-
 drivers/gpu/drm/radeon/radeon_ttm.c                |     8 +-
 drivers/gpu/drm/radeon/radeon_uvd.c                |     1 -
 drivers/gpu/drm/radeon/rs400.c                     |     4 +-
 drivers/gpu/drm/radeon/rs600.c                     |     3 +-
 drivers/gpu/drm/radeon/rv515.c                     |     3 +-
 drivers/gpu/drm/radeon/rv6xx_dpm.h                 |     3 +-
 drivers/gpu/drm/radeon/rv770_dpm.c                 |     4 +-
 drivers/gpu/drm/radeon/rv770_smc.h                 |    27 +-
 drivers/gpu/drm/radeon/si.c                        |   103 +-
 drivers/gpu/drm/radeon/si_dpm.c                    |   132 +-
 drivers/gpu/drm/radeon/si_dpm.h                    |    21 +-
 drivers/gpu/drm/radeon/smu7.h                      |     6 +-
 drivers/gpu/drm/radeon/smu7_discrete.h             |    51 +-
 drivers/gpu/drm/radeon/smu7_fusion.h               |    42 +-
 drivers/gpu/drm/radeon/sumo_dpm.c                  |    18 +-
 drivers/gpu/drm/radeon/trinity_dpm.c               |    22 +-
 drivers/gpu/drm/radeon/trinity_dpm.h               |     3 +-
 drivers/gpu/drm/radeon/uvd_v1_0.c                  |     2 +-
 drivers/gpu/drm/renesas/Kconfig                    |     1 +
 drivers/gpu/drm/renesas/Makefile                   |     1 +
 drivers/gpu/drm/renesas/rz-du/Kconfig              |    12 +
 drivers/gpu/drm/renesas/rz-du/Makefile             |     8 +
 drivers/gpu/drm/renesas/rz-du/rzg2l_du_crtc.c      |   422 +
 drivers/gpu/drm/renesas/rz-du/rzg2l_du_crtc.h      |    89 +
 drivers/gpu/drm/renesas/rz-du/rzg2l_du_drv.c       |   175 +
 drivers/gpu/drm/renesas/rz-du/rzg2l_du_drv.h       |    78 +
 drivers/gpu/drm/renesas/rz-du/rzg2l_du_encoder.c   |    72 +
 drivers/gpu/drm/renesas/rz-du/rzg2l_du_encoder.h   |    32 +
 drivers/gpu/drm/renesas/rz-du/rzg2l_du_kms.c       |   371 +
 drivers/gpu/drm/renesas/rz-du/rzg2l_du_kms.h       |    43 +
 drivers/gpu/drm/renesas/rz-du/rzg2l_du_vsp.c       |   349 +
 drivers/gpu/drm/renesas/rz-du/rzg2l_du_vsp.h       |    82 +
 drivers/gpu/drm/rockchip/analogix_dp-rockchip.c    |     3 +
 drivers/gpu/drm/rockchip/inno_hdmi.c               |   549 +-
 drivers/gpu/drm/rockchip/inno_hdmi.h               |     5 -
 drivers/gpu/drm/rockchip/rockchip_lvds.c           |     3 +-
 drivers/gpu/drm/rockchip/rockchip_vop_reg.c        |    13 +-
 drivers/gpu/drm/rockchip/rockchip_vop_reg.h        |     3 +
 drivers/gpu/drm/scheduler/sched_fence.c            |     4 +-
 drivers/gpu/drm/scheduler/sched_main.c             |    11 +-
 drivers/gpu/drm/solomon/ssd130x-spi.c              |     7 +
 drivers/gpu/drm/solomon/ssd130x.c                  |   370 +
 drivers/gpu/drm/solomon/ssd130x.h                  |     5 +-
 drivers/gpu/drm/sun4i/sun4i_hdmi_enc.c             |   134 +-
 drivers/gpu/drm/tegra/dpaux.c                      |    14 +-
 drivers/gpu/drm/tegra/drm.h                        |     2 +-
 drivers/gpu/drm/tegra/dsi.c                        |    59 +-
 drivers/gpu/drm/tegra/fb.c                         |     1 +
 drivers/gpu/drm/tegra/hdmi.c                       |    21 +-
 drivers/gpu/drm/tegra/output.c                     |    17 +-
 drivers/gpu/drm/tegra/rgb.c                        |    18 +-
 drivers/gpu/drm/tegra/sor.c                        |     1 +
 drivers/gpu/drm/tests/drm_connector_test.c         |   170 +-
 drivers/gpu/drm/tests/drm_kunit_helpers.c          |   150 +
 drivers/gpu/drm/tests/drm_managed_test.c           |    77 +-
 drivers/gpu/drm/tests/drm_mm_test.c                |     2 +-
 drivers/gpu/drm/tidss/tidss_crtc.c                 |    10 +
 drivers/gpu/drm/tidss/tidss_plane.c                |     2 +-
 drivers/gpu/drm/tilcdc/tilcdc_drv.c                |    19 +-
 drivers/gpu/drm/ttm/tests/Makefile                 |     3 +
 drivers/gpu/drm/ttm/tests/ttm_bo_test.c            |   622 +
 drivers/gpu/drm/ttm/tests/ttm_kunit_helpers.c      |    48 +-
 drivers/gpu/drm/ttm/tests/ttm_kunit_helpers.h      |     3 +
 drivers/gpu/drm/ttm/tests/ttm_pool_test.c          |     3 +-
 drivers/gpu/drm/ttm/tests/ttm_resource_test.c      |   335 +
 drivers/gpu/drm/ttm/tests/ttm_tt_test.c            |   295 +
 drivers/gpu/drm/ttm/ttm_bo.c                       |    30 +-
 drivers/gpu/drm/ttm/ttm_bo_util.c                  |    13 +-
 drivers/gpu/drm/ttm/ttm_resource.c                 |    76 +-
 drivers/gpu/drm/ttm/ttm_tt.c                       |    15 +
 drivers/gpu/drm/tve200/Kconfig                     |     1 -
 drivers/gpu/drm/v3d/v3d_bo.c                       |    12 +-
 drivers/gpu/drm/v3d/v3d_debugfs.c                  |    17 +-
 drivers/gpu/drm/v3d/v3d_drv.h                      |     2 +
 drivers/gpu/drm/v3d/v3d_irq.c                      |     2 +-
 drivers/gpu/drm/v3d/v3d_mmu.c                      |     2 -
 drivers/gpu/drm/vc4/vc4_hdmi.c                     |     1 +
 drivers/gpu/drm/vc4/vc4_plane.c                    |    10 +-
 drivers/gpu/drm/virtio/virtgpu_submit.c            |     6 +-
 drivers/gpu/drm/vkms/Kconfig                       |    15 +
 drivers/gpu/drm/vkms/vkms_composer.c               |    14 +-
 drivers/gpu/drm/vmwgfx/ttm_object.c                |     6 +-
 drivers/gpu/drm/vmwgfx/ttm_object.h                |     3 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_bo.c                 |    33 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_drv.h                |     1 -
 drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c            |    20 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_gmrid_manager.c      |     5 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_kms.c                |   300 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_kms.h                |     6 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c                |     5 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c               |     5 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c               |    21 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_surface.c            |    18 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_ttm_buffer.c         |    32 -
 drivers/gpu/drm/xe/.kunitconfig                    |     5 +
 drivers/gpu/drm/xe/Kconfig                         |     3 +-
 drivers/gpu/drm/xe/Kconfig.debug                   |     1 -
 drivers/gpu/drm/xe/Makefile                        |    45 +-
 drivers/gpu/drm/xe/abi/gsc_proxy_commands_abi.h    |    44 +
 drivers/gpu/drm/xe/abi/guc_actions_sriov_abi.h     |   174 +
 drivers/gpu/drm/xe/abi/guc_communication_ctb_abi.h |     3 +-
 drivers/gpu/drm/xe/abi/guc_messages_abi.h          |     2 +
 drivers/gpu/drm/xe/abi/guc_relay_actions_abi.h     |    79 +
 .../gpu/drm/xe/abi/guc_relay_communication_abi.h   |   118 +
 drivers/gpu/drm/xe/compat-i915-headers/i915_drv.h  |    10 +-
 .../drm/xe/compat-i915-headers/i915_gem_stolen.h   |     3 +
 drivers/gpu/drm/xe/{ => display}/xe_display.c      |     0
 drivers/gpu/drm/xe/{ => display}/xe_display.h      |     0
 drivers/gpu/drm/xe/display/xe_plane_initial.c      |    67 +-
 drivers/gpu/drm/xe/instructions/xe_mi_commands.h   |     3 +
 drivers/gpu/drm/xe/regs/xe_engine_regs.h           |     6 +
 drivers/gpu/drm/xe/regs/xe_gt_regs.h               |    27 +-
 drivers/gpu/drm/xe/regs/xe_lrc_layout.h            |     9 +
 drivers/gpu/drm/xe/regs/xe_pcode_regs.h            |    21 +
 drivers/gpu/drm/xe/tests/Makefile                  |     7 +-
 drivers/gpu/drm/xe/tests/xe_guc_db_mgr_test.c      |   201 +
 drivers/gpu/drm/xe/tests/xe_guc_relay_test.c       |   522 +
 drivers/gpu/drm/xe/tests/xe_kunit_helpers.c        |    90 +
 drivers/gpu/drm/xe/tests/xe_kunit_helpers.h        |    17 +
 drivers/gpu/drm/xe/tests/xe_mocs.c                 |    36 +
 drivers/gpu/drm/xe/tests/xe_mocs_test.c            |     1 +
 drivers/gpu/drm/xe/tests/xe_mocs_test.h            |     1 +
 drivers/gpu/drm/xe/tests/xe_pci.c                  |     3 +
 drivers/gpu/drm/xe/tests/xe_pci_test.c             |     5 -
 drivers/gpu/drm/xe/tests/xe_pci_test.h             |     2 +
 drivers/gpu/drm/xe/tests/xe_rtp_test.c             |    10 +-
 drivers/gpu/drm/xe/tests/xe_test_mod.c             |    10 +
 drivers/gpu/drm/xe/tests/xe_wa_test.c              |    16 +-
 drivers/gpu/drm/xe/xe_bo.c                         |   134 +-
 drivers/gpu/drm/xe/xe_bo.h                         |     7 +-
 drivers/gpu/drm/xe/xe_bo_types.h                   |     3 +
 drivers/gpu/drm/xe/xe_debugfs.c                    |     1 +
 drivers/gpu/drm/xe/xe_devcoredump.c                |    55 +-
 drivers/gpu/drm/xe/xe_devcoredump.h                |     6 +-
 drivers/gpu/drm/xe/xe_devcoredump_types.h          |    13 +-
 drivers/gpu/drm/xe/xe_device.c                     |    75 +-
 drivers/gpu/drm/xe/xe_device.h                     |    10 +
 drivers/gpu/drm/xe/xe_device_types.h               |   166 +-
 drivers/gpu/drm/xe/xe_drm_client.c                 |    14 +-
 drivers/gpu/drm/xe/xe_exec.c                       |    42 +-
 drivers/gpu/drm/xe/xe_exec_queue.c                 |   133 +-
 drivers/gpu/drm/xe/xe_exec_queue.h                 |     3 +-
 drivers/gpu/drm/xe/xe_exec_queue_types.h           |    55 +-
 drivers/gpu/drm/xe/xe_execlist.c                   |     8 -
 drivers/gpu/drm/xe/xe_ggtt.c                       |    81 +-
 drivers/gpu/drm/xe/xe_ggtt.h                       |     3 +
 drivers/gpu/drm/xe/xe_gsc.c                        |    71 +-
 drivers/gpu/drm/xe/xe_gsc.h                        |     1 +
 drivers/gpu/drm/xe/xe_gsc_proxy.c                  |   537 +
 drivers/gpu/drm/xe/xe_gsc_proxy.h                  |    20 +
 drivers/gpu/drm/xe/xe_gsc_submit.c                 |    20 +
 drivers/gpu/drm/xe/xe_gsc_submit.h                 |     1 +
 drivers/gpu/drm/xe/xe_gsc_types.h                  |    33 +
 drivers/gpu/drm/xe/xe_gt.c                         |    92 +-
 drivers/gpu/drm/xe/xe_gt.h                         |     2 +
 drivers/gpu/drm/xe/xe_gt_mcr.c                     |    17 +
 drivers/gpu/drm/xe/xe_gt_pagefault.c               |    44 +-
 drivers/gpu/drm/xe/xe_gt_printk.h                  |    44 +
 drivers/gpu/drm/xe/xe_gt_sriov_printk.h            |    34 +
 drivers/gpu/drm/xe/xe_gt_tlb_invalidation.c        |    13 +-
 drivers/gpu/drm/xe/xe_gt_topology.c                |     4 +-
 drivers/gpu/drm/xe/xe_gt_types.h                   |   118 +-
 drivers/gpu/drm/xe/xe_guc.c                        |   115 +-
 drivers/gpu/drm/xe/xe_guc.h                        |     1 +
 drivers/gpu/drm/xe/xe_guc_ads.c                    |     2 +-
 drivers/gpu/drm/xe/xe_guc_ct.c                     |   255 +-
 drivers/gpu/drm/xe/xe_guc_ct.h                     |    12 +-
 drivers/gpu/drm/xe/xe_guc_ct_types.h               |    22 +-
 drivers/gpu/drm/xe/xe_guc_db_mgr.c                 |   266 +
 drivers/gpu/drm/xe/xe_guc_db_mgr.h                 |    22 +
 drivers/gpu/drm/xe/xe_guc_fwif.h                   |     1 +
 drivers/gpu/drm/xe/xe_guc_hwconfig.c               |     2 +-
 drivers/gpu/drm/xe/xe_guc_hxg_helpers.h            |   108 +
 drivers/gpu/drm/xe/xe_guc_log.c                    |     2 +-
 drivers/gpu/drm/xe/xe_guc_pc.c                     |    19 +-
 drivers/gpu/drm/xe/xe_guc_pc.h                     |     1 -
 drivers/gpu/drm/xe/xe_guc_relay.c                  |   941 +
 drivers/gpu/drm/xe/xe_guc_relay.h                  |    37 +
 drivers/gpu/drm/xe/xe_guc_relay_types.h            |    36 +
 drivers/gpu/drm/xe/xe_guc_submit.c                 |    88 +-
 drivers/gpu/drm/xe/xe_guc_submit.h                 |     4 +-
 drivers/gpu/drm/xe/xe_guc_submit_types.h           |    18 +-
 drivers/gpu/drm/xe/xe_guc_types.h                  |    47 +-
 drivers/gpu/drm/xe/xe_heci_gsc.c                   |     2 +-
 drivers/gpu/drm/xe/xe_huc.c                        |    19 +
 drivers/gpu/drm/xe/xe_huc.h                        |     1 +
 drivers/gpu/drm/xe/xe_hw_engine.c                  |   144 +-
 drivers/gpu/drm/xe/xe_hw_engine_class_sysfs.c      |    38 +-
 drivers/gpu/drm/xe/xe_hw_engine_types.h            |    82 +-
 drivers/gpu/drm/xe/xe_hwmon.c                      |    32 +-
 drivers/gpu/drm/xe/xe_irq.c                        |   136 +-
 drivers/gpu/drm/xe/xe_lrc.c                        |    38 +
 drivers/gpu/drm/xe/xe_lrc_types.h                  |     6 +-
 drivers/gpu/drm/xe/xe_memirq.c                     |   430 +
 drivers/gpu/drm/xe/xe_memirq.h                     |    26 +
 drivers/gpu/drm/xe/xe_memirq_types.h               |    37 +
 drivers/gpu/drm/xe/xe_migrate.c                    |    27 +-
 drivers/gpu/drm/xe/xe_mmio.c                       |     9 +-
 drivers/gpu/drm/xe/xe_mocs.c                       |    27 +-
 drivers/gpu/drm/xe/xe_pat.c                        |     5 +
 drivers/gpu/drm/xe/xe_pci.c                        |    10 +-
 drivers/gpu/drm/xe/xe_pcode_api.h                  |     7 +
 drivers/gpu/drm/xe/xe_pm.c                         |    38 +-
 drivers/gpu/drm/xe/xe_pm.h                         |     1 +
 drivers/gpu/drm/xe/xe_pt.c                         |     5 +-
 drivers/gpu/drm/xe/xe_query.c                      |    50 +-
 drivers/gpu/drm/xe/xe_reg_sr.c                     |     2 +-
 drivers/gpu/drm/xe/xe_reg_whitelist.c              |     8 +
 drivers/gpu/drm/xe/xe_ring_ops.c                   |    60 +-
 drivers/gpu/drm/xe/xe_sched_job.c                  |    38 +
 drivers/gpu/drm/xe/xe_sched_job.h                  |     5 +
 drivers/gpu/drm/xe/xe_sched_job_types.h            |    11 +-
 drivers/gpu/drm/xe/xe_sriov.c                      |    32 +
 drivers/gpu/drm/xe/xe_sriov.h                      |     1 +
 drivers/gpu/drm/xe/xe_sriov_types.h                |    12 +
 drivers/gpu/drm/xe/xe_tile_sysfs.c                 |     3 +
 drivers/gpu/drm/xe/xe_trace.h                      |    55 +-
 drivers/gpu/drm/xe/xe_ttm_stolen_mgr.c             |     8 +-
 drivers/gpu/drm/xe/xe_tuning.c                     |     9 +-
 drivers/gpu/drm/xe/xe_uc.c                         |    33 +-
 drivers/gpu/drm/xe/xe_uc.h                         |     1 +
 drivers/gpu/drm/xe/xe_uc_fw.c                      |    60 +-
 drivers/gpu/drm/xe/xe_uc_fw_types.h                |     9 +-
 drivers/gpu/drm/xe/xe_vm.c                         |   202 +-
 drivers/gpu/drm/xe/xe_vm.h                         |     7 +-
 drivers/gpu/drm/xe/xe_vm_types.h                   |    32 +-
 drivers/gpu/drm/xe/xe_vram_freq.c                  |   128 +
 drivers/gpu/drm/xe/xe_vram_freq.h                  |    13 +
 drivers/gpu/drm/xe/xe_wa.c                         |   191 +-
 drivers/gpu/drm/xe/xe_wa_oob.rules                 |    12 +-
 drivers/gpu/drm/xe/xe_wait_user_fence.c            |     2 +-
 drivers/gpu/drm/xe/xe_wopcm_types.h                |     4 +-
 drivers/gpu/drm/xlnx/zynqmp_disp.c                 |     2 +-
 drivers/gpu/drm/xlnx/zynqmp_dp.c                   |    22 +-
 drivers/gpu/host1x/bus.c                           |     2 +-
 drivers/gpu/host1x/bus.h                           |     2 +-
 drivers/gpu/host1x/cdma.c                          |     3 +-
 drivers/macintosh/via-pmu-backlight.c              |     1 +
 drivers/media/i2c/tc358743.c                       |     7 +-
 drivers/staging/fbtft/fb_ssd1351.c                 |     2 +
 drivers/staging/sm750fb/Kconfig                    |     1 -
 drivers/video/Kconfig                              |     9 +-
 drivers/video/Makefile                             |     7 +-
 drivers/video/backlight/corgi_lcd.c                |     1 +
 drivers/video/cmdline.c                            |     2 +
 drivers/video/fbdev/Kconfig                        |    35 -
 drivers/video/fbdev/chipsfb.c                      |     1 +
 drivers/video/fbdev/core/Kconfig                   |     2 +-
 drivers/video/fbdev/core/fbmem.c                   |     2 -
 drivers/video/fbdev/efifb.c                        |   225 +-
 drivers/video/fbdev/geode/Kconfig                  |     3 -
 drivers/video/fbdev/simplefb.c                     |     2 +-
 drivers/video/fbdev/vesafb.c                       |    78 +-
 drivers/video/screen_info_generic.c                |   146 +
 drivers/video/screen_info_pci.c                    |   136 +
 include/drm/display/drm_dp.h                       |    62 +
 include/drm/display/drm_dp_helper.h                |    14 +-
 include/drm/display/drm_dp_tunnel.h                |   248 +
 include/drm/drm_atomic.h                           |    70 +-
 include/drm/drm_bridge.h                           |    27 +-
 include/drm/drm_edid.h                             |    46 +-
 include/drm/drm_exec.h                             |     4 +-
 include/drm/drm_fixed.h                            |     2 +-
 include/drm/drm_gem.h                              |    13 +
 include/drm/drm_gpuvm.h                            |     2 +-
 include/drm/drm_kunit_helpers.h                    |    23 +
 include/drm/drm_managed.h                          |     4 +
 include/drm/drm_modes.h                            |     2 +
 include/drm/drm_print.h                            |   223 +-
 include/drm/drm_probe_helper.h                     |     1 -
 include/drm/drm_rect.h                             |     4 +-
 include/drm/i915_pciids.h                          |     7 +-
 include/drm/ttm/ttm_placement.h                    |    10 +-
 include/drm/ttm/ttm_resource.h                     |     8 +-
 include/drm/ttm/ttm_tt.h                           |     9 +-
 include/linux/fb.h                                 |    31 +-
 include/linux/iosys-map.h                          |     2 +-
 include/linux/screen_info.h                        |   126 +
 include/linux/sysfb.h                              |     6 +-
 include/sound/hdmi-codec.h                         |     1 -
 include/uapi/drm/amdgpu_drm.h                      |     2 +
 include/uapi/drm/etnaviv_drm.h                     |     5 +
 include/uapi/drm/i915_drm.h                        |    16 +
 include/uapi/drm/nouveau_drm.h                     |    56 +-
 include/uapi/drm/qaic_accel.h                      |    13 +-
 include/uapi/drm/vmwgfx_drm.h                      |     6 +-
 include/uapi/drm/xe_drm.h                          |    33 +-
 include/uapi/linux/kfd_ioctl.h                     |     3 +-
 include/uapi/linux/virtio_gpu.h                    |     2 +
 include/video/cmdline.h                            |     8 +-
 tools/edid/1024x768.S                              |    43 -
 tools/edid/1280x1024.S                             |    43 -
 tools/edid/1600x1200.S                             |    43 -
 tools/edid/1680x1050.S                             |    43 -
 tools/edid/1920x1080.S                             |    43 -
 tools/edid/800x600.S                               |    40 -
 tools/edid/Makefile                                |    37 -
 tools/edid/edid.S                                  |   274 -
 tools/edid/hex                                     |     1 -
 1198 files changed, 189574 insertions(+), 16526 deletions(-)
 create mode 100644
Documentation/devicetree/bindings/display/bridge/fsl,imx8mp-hdmi-tx.yaml
 create mode 100644
Documentation/devicetree/bindings/display/imx/fsl,imx8mp-hdmi-pvi.yaml
 create mode 100644
Documentation/devicetree/bindings/display/msm/qcom,x1e80100-mdss.yaml
 create mode 100644
Documentation/devicetree/bindings/display/panel/boe,th101mb31ig002-28a.yaml
 create mode 100644
Documentation/devicetree/bindings/display/panel/himax,hx83112a.yaml
 create mode 100644
Documentation/devicetree/bindings/display/panel/novatek,nt36672e.yaml
 create mode 100644
Documentation/devicetree/bindings/display/renesas,rzg2l-du.yaml
 create mode 100644
Documentation/devicetree/bindings/display/solomon,ssd133x.yaml
 create mode 100644 Documentation/gpu/amdgpu/display/dcn-blocks.rst
 create mode 100644 Documentation/gpu/amdgpu/display/display-contributing.rst
 delete mode 100644 Documentation/gpu/rfc/xe.rst
 create mode 100644 drivers/accel/habanalabs/common/mmu/mmu_v2.c
 create mode 100644 drivers/gpu/drm/amd/amdgpu/amdgpu_aca.c
 create mode 100644 drivers/gpu/drm/amd/amdgpu/amdgpu_aca.h
 create mode 100644 drivers/gpu/drm/amd/amdgpu/athub_v4_1_0.c
 create mode 100644 drivers/gpu/drm/amd/amdgpu/athub_v4_1_0.h
 create mode 100644 drivers/gpu/drm/amd/amdgpu/hdp_v7_0.c
 create mode 100644 drivers/gpu/drm/amd/amdgpu/hdp_v7_0.h
 create mode 100644 drivers/gpu/drm/amd/amdgpu/ih_v7_0.c
 create mode 100644 drivers/gpu/drm/amd/amdgpu/ih_v7_0.h
 create mode 100644 drivers/gpu/drm/amd/amdgpu/jpeg_v5_0_0.c
 create mode 100644 drivers/gpu/drm/amd/amdgpu/jpeg_v5_0_0.h
 create mode 100644 drivers/gpu/drm/amd/amdgpu/lsdma_v7_0.c
 create mode 100644 drivers/gpu/drm/amd/amdgpu/lsdma_v7_0.h
 create mode 100644 drivers/gpu/drm/amd/amdgpu/nbif_v6_3_1.c
 create mode 100644 drivers/gpu/drm/amd/amdgpu/nbif_v6_3_1.h
 create mode 100644 drivers/gpu/drm/amd/amdgpu/psp_v14_0.c
 create mode 100644 drivers/gpu/drm/amd/amdgpu/psp_v14_0.h
 create mode 100644 drivers/gpu/drm/amd/amdgpu/vcn_v5_0_0.c
 create mode 100644 drivers/gpu/drm/amd/amdgpu/vcn_v5_0_0.h
 delete mode 100644 drivers/gpu/drm/amd/display/TODO
 delete mode 100644
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn10/rv1_clk_mgr_clk.c
 create mode 100644 drivers/gpu/drm/amd/display/dc/dml/dcn351/dcn351_fpu.c
 create mode 100644 drivers/gpu/drm/amd/display/dc/dml/dcn351/dcn351_fpu.h
 delete mode 100644 drivers/gpu/drm/amd/display/dc/hwss/dcn351/CMakeLists.txt
 create mode 100644
drivers/gpu/drm/amd/display/dc/irq/dcn351/irq_service_dcn351.c
 create mode 100644
drivers/gpu/drm/amd/display/dc/irq/dcn351/irq_service_dcn351.h
 create mode 100644
drivers/gpu/drm/amd/display/dc/resource/dcn351/dcn351_resource.c
 create mode 100644
drivers/gpu/drm/amd/display/dc/resource/dcn351/dcn351_resource.h
 create mode 100644 drivers/gpu/drm/amd/display/dmub/src/dmub_dcn351.c
 create mode 100644 drivers/gpu/drm/amd/display/dmub/src/dmub_dcn351.h
 create mode 100644
drivers/gpu/drm/amd/include/asic_reg/athub/athub_4_1_0_offset.h
 create mode 100644
drivers/gpu/drm/amd/include/asic_reg/athub/athub_4_1_0_sh_mask.h
 create mode 100644 drivers/gpu/drm/amd/include/asic_reg/dcn/dcn_3_5_1_offset.h
 create mode 100644 drivers/gpu/drm/amd/include/asic_reg/dcn/dcn_3_5_1_sh_mask.h
 create mode 100644 drivers/gpu/drm/amd/include/asic_reg/hdp/hdp_7_0_0_offset.h
 create mode 100644 drivers/gpu/drm/amd/include/asic_reg/hdp/hdp_7_0_0_sh_mask.h
 create mode 100644
drivers/gpu/drm/amd/include/asic_reg/lsdma/lsdma_7_0_0_offset.h
 create mode 100644
drivers/gpu/drm/amd/include/asic_reg/lsdma/lsdma_7_0_0_sh_mask.h
 create mode 100644 drivers/gpu/drm/amd/include/asic_reg/mp/mp_14_0_2_offset.h
 create mode 100644 drivers/gpu/drm/amd/include/asic_reg/mp/mp_14_0_2_sh_mask.h
 create mode 100644
drivers/gpu/drm/amd/include/asic_reg/nbif/nbif_6_3_1_offset.h
 create mode 100644
drivers/gpu/drm/amd/include/asic_reg/nbif/nbif_6_3_1_sh_mask.h
 create mode 100644
drivers/gpu/drm/amd/include/asic_reg/oss/osssys_7_0_0_offset.h
 create mode 100644
drivers/gpu/drm/amd/include/asic_reg/oss/osssys_7_0_0_sh_mask.h
 create mode 100644
drivers/gpu/drm/amd/include/asic_reg/pcie/pcie_6_1_0_offset.h
 create mode 100644
drivers/gpu/drm/amd/include/asic_reg/pcie/pcie_6_1_0_sh_mask.h
 create mode 100644 drivers/gpu/drm/amd/include/asic_reg/vcn/vcn_5_0_0_offset.h
 create mode 100644 drivers/gpu/drm/amd/include/asic_reg/vcn/vcn_5_0_0_sh_mask.h
 create mode 100644 drivers/gpu/drm/bridge/imx/imx8mp-hdmi-pvi.c
 create mode 100644 drivers/gpu/drm/bridge/imx/imx8mp-hdmi-tx.c
 delete mode 100644 drivers/gpu/drm/ci/xfails/msm-sc7180-fails.txt
 delete mode 100644 drivers/gpu/drm/ci/xfails/msm-sc7180-flakes.txt
 delete mode 100644 drivers/gpu/drm/ci/xfails/msm-sc7180-skips.txt
 create mode 100644
drivers/gpu/drm/ci/xfails/msm-sc7180-trogdor-kingoftown-fails.txt
 create mode 100644
drivers/gpu/drm/ci/xfails/msm-sc7180-trogdor-kingoftown-skips.txt
 create mode 100644
drivers/gpu/drm/ci/xfails/msm-sc7180-trogdor-lazor-limozeen-fails.txt
 create mode 100644
drivers/gpu/drm/ci/xfails/msm-sc7180-trogdor-lazor-limozeen-skips.txt
 create mode 100644 drivers/gpu/drm/display/drm_dp_tunnel.c
 create mode 100644 drivers/gpu/drm/i915/display/intel_dp_tunnel.c
 create mode 100644 drivers/gpu/drm/i915/display/intel_dp_tunnel.h
 delete mode 100644 drivers/gpu/drm/i915/gem/i915_gem_userptr.h
 create mode 100644 drivers/gpu/drm/msm/adreno/adreno_gen7_0_0_snapshot.h
 create mode 100644 drivers/gpu/drm/msm/adreno/adreno_gen7_2_0_snapshot.h
 create mode 100644 drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_3_2_sdm660.h
 create mode 100644 drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_3_3_sdm630.h
 create mode 100644 drivers/gpu/drm/msm/disp/dpu1/catalog/dpu_9_2_x1e80100.h
 delete mode 100644 drivers/gpu/drm/msm/dp/dp_parser.c
 delete mode 100644 drivers/gpu/drm/msm/dp/dp_parser.h
 delete mode 100644 drivers/gpu/drm/msm/dp/dp_power.c
 delete mode 100644 drivers/gpu/drm/msm/dp/dp_power.h
 create mode 100644 drivers/gpu/drm/msm/dp/dp_utils.c
 create mode 100644 drivers/gpu/drm/msm/dp/dp_utils.h
 create mode 100644 drivers/gpu/drm/panel/panel-boe-th101mb31ig002-28a.c
 create mode 100644 drivers/gpu/drm/panel/panel-himax-hx83112a.c
 create mode 100644 drivers/gpu/drm/panel/panel-novatek-nt36672e.c
 create mode 100644 drivers/gpu/drm/renesas/rz-du/Kconfig
 create mode 100644 drivers/gpu/drm/renesas/rz-du/Makefile
 create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg2l_du_crtc.c
 create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg2l_du_crtc.h
 create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg2l_du_drv.c
 create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg2l_du_drv.h
 create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg2l_du_encoder.c
 create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg2l_du_encoder.h
 create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg2l_du_kms.c
 create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg2l_du_kms.h
 create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg2l_du_vsp.c
 create mode 100644 drivers/gpu/drm/renesas/rz-du/rzg2l_du_vsp.h
 create mode 100644 drivers/gpu/drm/ttm/tests/ttm_bo_test.c
 create mode 100644 drivers/gpu/drm/ttm/tests/ttm_resource_test.c
 create mode 100644 drivers/gpu/drm/ttm/tests/ttm_tt_test.c
 create mode 100644 drivers/gpu/drm/vkms/Kconfig
 create mode 100644 drivers/gpu/drm/xe/abi/gsc_proxy_commands_abi.h
 create mode 100644 drivers/gpu/drm/xe/abi/guc_actions_sriov_abi.h
 create mode 100644 drivers/gpu/drm/xe/abi/guc_relay_actions_abi.h
 create mode 100644 drivers/gpu/drm/xe/abi/guc_relay_communication_abi.h
 rename drivers/gpu/drm/xe/{ => display}/xe_display.c (100%)
 rename drivers/gpu/drm/xe/{ => display}/xe_display.h (100%)
 create mode 100644 drivers/gpu/drm/xe/regs/xe_pcode_regs.h
 create mode 100644 drivers/gpu/drm/xe/tests/xe_guc_db_mgr_test.c
 create mode 100644 drivers/gpu/drm/xe/tests/xe_guc_relay_test.c
 create mode 100644 drivers/gpu/drm/xe/tests/xe_kunit_helpers.c
 create mode 100644 drivers/gpu/drm/xe/tests/xe_kunit_helpers.h
 create mode 100644 drivers/gpu/drm/xe/tests/xe_test_mod.c
 create mode 100644 drivers/gpu/drm/xe/xe_gsc_proxy.c
 create mode 100644 drivers/gpu/drm/xe/xe_gsc_proxy.h
 create mode 100644 drivers/gpu/drm/xe/xe_gt_sriov_printk.h
 create mode 100644 drivers/gpu/drm/xe/xe_guc_db_mgr.c
 create mode 100644 drivers/gpu/drm/xe/xe_guc_db_mgr.h
 create mode 100644 drivers/gpu/drm/xe/xe_guc_hxg_helpers.h
 create mode 100644 drivers/gpu/drm/xe/xe_guc_relay.c
 create mode 100644 drivers/gpu/drm/xe/xe_guc_relay.h
 create mode 100644 drivers/gpu/drm/xe/xe_guc_relay_types.h
 create mode 100644 drivers/gpu/drm/xe/xe_memirq.c
 create mode 100644 drivers/gpu/drm/xe/xe_memirq.h
 create mode 100644 drivers/gpu/drm/xe/xe_memirq_types.h
 create mode 100644 drivers/gpu/drm/xe/xe_vram_freq.c
 create mode 100644 drivers/gpu/drm/xe/xe_vram_freq.h
 create mode 100644 drivers/video/screen_info_generic.c
 create mode 100644 drivers/video/screen_info_pci.c
 create mode 100644 include/drm/display/drm_dp_tunnel.h
 delete mode 100644 tools/edid/1024x768.S
 delete mode 100644 tools/edid/1280x1024.S
 delete mode 100644 tools/edid/1600x1200.S
 delete mode 100644 tools/edid/1680x1050.S
 delete mode 100644 tools/edid/1920x1080.S
 delete mode 100644 tools/edid/800x600.S
 delete mode 100644 tools/edid/Makefile
 delete mode 100644 tools/edid/edid.S
 delete mode 100644 tools/edid/hex

^ permalink raw reply	[relevance 1%]

* [GIT PULL] bcachefs updates for 6.9
@ 2024-03-13  1:10  2% Kent Overstreet
  0 siblings, 0 replies; 200+ results
From: Kent Overstreet @ 2024-03-13  1:10 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: linux-bcachefs, linux-fsdevel, linux-kernel

Hi Linus, few patches for you - plus a simple merge conflict with VFS
changes:

Cheers,
Kent

diff --cc fs/bcachefs/super-io.c
index 010daebf987b,bd64eb68e84a..000000000000
--- a/fs/bcachefs/super-io.c
+++ b/fs/bcachefs/super-io.c
@@@ -723,12 -715,11 +723,12 @@@ retry
  			opt_set(*opts, nochanges, true);
  	}
  
- 	if (IS_ERR(sb->bdev_handle)) {
- 		ret = PTR_ERR(sb->bdev_handle);
+ 	if (IS_ERR(sb->s_bdev_file)) {
+ 		ret = PTR_ERR(sb->s_bdev_file);
 +		prt_printf(&err, "error opening %s: %s", path, bch2_err_str(ret));
  		goto err;
  	}
- 	sb->bdev = sb->bdev_handle->bdev;
+ 	sb->bdev = file_bdev(sb->s_bdev_file);
  
  	ret = bch2_sb_realloc(sb, 0);
  	if (ret) {

The following changes since commit d206a76d7d2726f3b096037f2079ce0bd3ba329b:

  Linux 6.8-rc6 (2024-02-25 15:46:06 -0800)

are available in the Git repository at:

  https://evilpiepirate.org/git/bcachefs.git tags/bcachefs-20240312

for you to fetch changes up to 243c934566b7b0f9103201e259f5373ba38126c6:

  bcachefs: reconstruct_alloc cleanup (2024-03-12 02:19:54 -0400)

----------------------------------------------------------------
bcachefs updates for 6.9

 - Subvolume children btree; this is needed for providing a userspace
   interface for walking subvolumes, which will come later
 - Lots of improvements to directory structure checking
 - Improved journal pipelining, significantly improving performance on
   high iodepth write workloads
 - Discard path improvements: the discard path is more efficient, and no
   longer flushes the journal unnecessarily
 - Buffered write path can now avoid taking the inode lock
 - Pull out various library code for use in XFS: time stats,
   mean_and_variance, darray, eytzinger, thread_with_file
 - new mm helper: memalloc_flags_{save|restore}
 - mempool now does kvmalloc mempools

----------------------------------------------------------------
Brian Foster (1):
      bcachefs: fix lost journal buf wakeup due to improved pipelining

Calvin Owens (1):
      bcachefs: Silence gcc warnings about arm arch ABI drift

Colin Ian King (1):
      bcachefs: remove redundant assignment to variable ret

Daniel Hill (1):
      bcachefs: rebalance_status now shows correct units

Darrick J. Wong (13):
      time_stats: report lifetime of the stats object
      time_stats: split stats-with-quantiles into a separate structure
      time_stats: fix struct layout bloat
      time_stats: add larger units
      time_stats: don't print any output if event count is zero
      time_stats: allow custom epoch names
      mean_and_variance: put struct mean_and_variance_weighted on a diet
      time_stats: shrink time_stat_buffer for better alignment
      time_stats: report information in json format
      thread_with_file: allow creation of readonly files
      thread_with_file: fix various printf problems
      thread_with_file: create ops structure for thread_with_stdio
      thread_with_file: allow ioctls against these files

Erick Archer (1):
      bcachefs: Prefer struct_size over open coded arithmetic

Guoyu Ou (1):
      bcachefs: skip invisible entries in empty subvolume checking

Hongbo Li (3):
      bcachefs: fix the error code when mounting with incorrect options.
      bcachefs: avoid returning private error code in bch2_xattr_bcachefs_set
      bcachefs: intercept mountoption value for bool type

Kent Overstreet (116):
      bcachefs: journal_seq_blacklist_add() now handles entries being added out of order
      bcachefs: extent_entry_next_safe()
      bcachefs: no_splitbrain_check option
      bcachefs: fix check_inode_deleted_list()
      bcachefs: Fix journal replay with unreadable btree roots
      bcachefs: Fix degraded mode fsck
      bcachefs: Correctly validate k->u64s in btree node read path
      bcachefs: Set path->uptodate when no node at level
      bcachefs: fix split brain message
      bcachefs: Kill unnecessary wakeups in journal reclaim
      bcachefs: Split out journal workqueue
      bcachefs: Avoid setting j->write_work unnecessarily
      bcachefs: Journal writes should be REQ_SYNC|REQ_META
      bcachefs: Avoid taking journal lock unnecessarily
      bcachefs: fixup for building in userspace
      bcachefs: Improve bch2_dirent_to_text()
      bcachefs: Workqueues should be WQ_HIGHPRI
      bcachefs: bch2_hash_set_snapshot() -> bch2_hash_set_in_snapshot()
      bcachefs: Cleanup bch2_dirent_lookup_trans()
      bcachefs: convert journal replay ptrs to darray
      bcachefs: improve journal entry read fsck error messages
      bcachefs: jset_entry_datetime
      bcachefs: bio per journal buf
      bcachefs: closure per journal buf
      bcachefs: better journal pipelining
      bcachefs: btree_and_journal_iter.trans
      bcachefs: btree node prefetching in check_topology
      bcachefs: Subvolumes may now be renamed
      bcachefs: Switch to uuid_to_fsid()
      bcachefs: Initialize super_block->s_uuid
      bcachefs: move fsck_write_inode() to inode.c
      bcachefs: bump max_active on btree_interior_update_worker
      bcachefs: Kill some -EINVALs
      bcachefs: Factor out check_subvol_dirent()
      bcachefs: factor out check_inode_backpointer()
      mm: introduce memalloc_flags_{save,restore}
      mm: introduce PF_MEMALLOC_NORECLAIM, PF_MEMALLOC_NOWARN
      bcachefs: bch2_inode_insert()
      bcachefs: bch2_lookup() gives better error message on inode not found
      mean and variance: Promote to lib/math
      eytzinger: Promote to include/linux/
      bcachefs: bch2_time_stats_to_seq_buf()
      time_stats: Promote to lib/
      bcache: Convert to lib/time_stats
      time_stats: Kill TIME_STATS_HAVE_QUANTILES
      mempool: kvmalloc pool
      bcachefs: kill kvpmalloc()
      bcachefs: thread_with_stdio: eliminate double buffering
      bcachefs: thread_with_stdio: convert to darray
      bcachefs: thread_with_stdio: kill thread_with_stdio_done()
      bcachefs: thread_with_stdio: fix bch2_stdio_redirect_readline()
      bcachefs: Thread with file documentation
      darray: lift from bcachefs
      thread_with_file: Lift from bcachefs
      thread_with_stdio: Mark completed in ->release()
      kernel/hung_task.c: export sysctl_hung_task_timeout_secs
      thread_with_stdio: suppress hung task warning
      bcachefs: Kill more -EIO error codes
      bcachefs: Check subvol <-> inode pointers in check_subvol()
      bcachefs: Check subvol <-> inode pointers in check_inode()
      bcachefs: check_inode_dirent_inode()
      bcachefs: better log message in lookup_inode_for_snapshot()
      bcachefs: check bi_parent_subvol in check_inode()
      bcachefs: simplify check_dirent_inode_dirent()
      bcachefs: delete duplicated checks in check_dirent_to_subvol()
      bcachefs: check inode->bi_parent_subvol against dirent
      bcachefs: check dirent->d_parent_subvol
      bcachefs: Repair subvol dirents that point to non subvols
      bcachefs: bch_subvolume::parent -> creation_parent
      bcachefs: Fix path where dirent -> subvol missing and we don't fix
      bcachefs: Pass inode bkey to check_path()
      bcachefs: check_path() now prints full inode when reattaching
      bcachefs: Correctly reattach subvolumes
      bcachefs: bch2_btree_bit_mod -> bch2_btree_bit_mod_buffered
      bcachefs: bch2_btree_bit_mod()
      bcachefs: bch_subvolume::fs_path_parent
      bcachefs: BTREE_ID_subvolume_children
      bcachefs: Check for subvolume children when deleting subvolumes
      bcachefs: Pin btree cache in ram for random access in fsck
      bcachefs: Save key_cache_path in peek_slot()
      bcachefs: Track iter->ip_allocated at bch2_trans_copy_iter()
      bcachefs: Use kvzalloc() when dynamically allocating btree paths
      bcachefs: Improve error messages in device remove path
      bcachefs: bch2_print_opts()
      thread_with_file: Fix missing va_end()
      bcachefs: bch2_trigger_alloc() handles state changes better
      bcachefs: bch2_check_subvolume_structure()
      bcachefs: check_path() now only needs to walk up to subvolume root
      bcachefs: more informative write path error message
      bcachefs: Drop redundant btree_path_downgrade()s
      bcachefs: improve bch2_journal_buf_to_text()
      bcachefs: Split out discard fastpath
      bcachefs: Fix journal_buf bitfield accesses
      bcachefs: Add journal.blocked to journal_debug_to_text()
      thread_with_file: add f_ops.flush
      bcachefs: Errcode tracepoint, documentation
      bcachefs: jset_entry for loops declare loop iter
      bcachefs: Rename journal_keys.d -> journal_keys.data
      bcachefs: journal_keys now uses darray helpers
      bcachefs: improve move_gap()
      bcachefs: split out ignore_blacklisted, ignore_not_dirty
      bcachefs: Fix bch2_journal_noflush_seq()
      fs: file_remove_privs_flags()
      bcachefs: Buffered write path now can avoid the inode lock
      bcachefs: Split out bkey_types.h
      bcachefs: copy_(to|from)_user_errcode()
      lib/generic-radix-tree.c: Make nodes more reasonably sized
      bcachefs: fix bch2_journal_buf_to_text()
      bcachefs: Check for writing superblocks with nonsense member seq fields
      bcachefs: Kill unused flags argument to btree_split()
      bcachefs: fix deletion of indirect extents in btree_gc
      bcachefs: Fix order of gc_done passes
      bcachefs: Always flush write buffer in delete_dead_inodes()
      bcachefs: Fix btree key cache coherency during replay
      bcachefs: fix bch_folio_sector padding
      bcachefs: reconstruct_alloc cleanup

Li Zetao (1):
      bcachefs: Fix null-ptr-deref in bch2_fs_alloc()

Lukas Bulwahn (1):
      MAINTAINERS: repair file entries in THREAD WITH FILE

Thomas Bertschinger (1):
      bcachefs: omit alignment attribute on big endian struct bkey

 Documentation/filesystems/bcachefs/errorcodes.rst  |  30 +
 MAINTAINERS                                        |  39 +
 drivers/md/bcache/Kconfig                          |   1 +
 drivers/md/bcache/bcache.h                         |   1 +
 drivers/md/bcache/bset.c                           |   6 +-
 drivers/md/bcache/bset.h                           |   1 +
 drivers/md/bcache/btree.c                          |   6 +-
 drivers/md/bcache/super.c                          |   7 +
 drivers/md/bcache/sysfs.c                          |  25 +-
 drivers/md/bcache/util.c                           |  30 -
 drivers/md/bcache/util.h                           |  52 +-
 fs/bcachefs/Kconfig                                |  11 +-
 fs/bcachefs/Makefile                               |   6 +-
 fs/bcachefs/alloc_background.c                     | 219 +++++-
 fs/bcachefs/alloc_background.h                     |   1 +
 fs/bcachefs/alloc_foreground.c                     |  13 +-
 fs/bcachefs/backpointers.c                         | 143 ++--
 fs/bcachefs/bbpos_types.h                          |   2 +-
 fs/bcachefs/bcachefs.h                             |  29 +-
 fs/bcachefs/bcachefs_format.h                      |  53 +-
 fs/bcachefs/bkey.h                                 | 207 +----
 fs/bcachefs/bkey_types.h                           | 213 ++++++
 fs/bcachefs/bset.c                                 |   2 +-
 fs/bcachefs/btree_cache.c                          |  39 +-
 fs/bcachefs/btree_gc.c                             | 153 ++--
 fs/bcachefs/btree_io.c                             |  30 +-
 fs/bcachefs/btree_iter.c                           |  28 +-
 fs/bcachefs/btree_journal_iter.c                   | 180 +++--
 fs/bcachefs/btree_journal_iter.h                   |  14 +-
 fs/bcachefs/btree_key_cache.c                      |   8 +-
 fs/bcachefs/btree_locking.c                        |   3 +-
 fs/bcachefs/btree_locking.h                        |   2 +-
 fs/bcachefs/btree_types.h                          |  11 +-
 fs/bcachefs/btree_update.c                         |  25 +-
 fs/bcachefs/btree_update.h                         |   3 +-
 fs/bcachefs/btree_update_interior.c                |  91 ++-
 fs/bcachefs/btree_update_interior.h                |   2 +
 fs/bcachefs/btree_write_buffer.c                   |   4 +-
 fs/bcachefs/btree_write_buffer_types.h             |   2 +-
 fs/bcachefs/buckets.c                              |  32 +-
 fs/bcachefs/chardev.c                              |  63 +-
 fs/bcachefs/checksum.c                             |   2 +-
 fs/bcachefs/compress.c                             |  14 +-
 fs/bcachefs/debug.c                                |   6 +-
 fs/bcachefs/dirent.c                               | 143 ++--
 fs/bcachefs/dirent.h                               |   6 +-
 fs/bcachefs/ec.c                                   |   4 +-
 fs/bcachefs/errcode.c                              |  15 +-
 fs/bcachefs/errcode.h                              |  18 +-
 fs/bcachefs/error.c                                |  14 +-
 fs/bcachefs/error.h                                |   2 +-
 fs/bcachefs/extents.h                              |  11 +-
 fs/bcachefs/fifo.h                                 |   4 +-
 fs/bcachefs/fs-common.c                            |  74 +-
 fs/bcachefs/fs-io-buffered.c                       | 149 +++-
 fs/bcachefs/fs-io-pagecache.h                      |   9 +-
 fs/bcachefs/fs.c                                   | 222 ++++--
 fs/bcachefs/fsck.c                                 | 849 ++++++++++++++-------
 fs/bcachefs/fsck.h                                 |   1 +
 fs/bcachefs/inode.c                                |  55 +-
 fs/bcachefs/inode.h                                |  19 +
 fs/bcachefs/io_read.c                              |   6 +-
 fs/bcachefs/io_write.c                             |  20 +-
 fs/bcachefs/journal.c                              | 282 ++++---
 fs/bcachefs/journal.h                              |   7 +-
 fs/bcachefs/journal_io.c                           | 409 +++++-----
 fs/bcachefs/journal_io.h                           |  47 +-
 fs/bcachefs/journal_reclaim.c                      |  29 +-
 fs/bcachefs/journal_sb.c                           |   2 +-
 fs/bcachefs/journal_seq_blacklist.c                |  75 +-
 fs/bcachefs/journal_types.h                        |  36 +-
 fs/bcachefs/lru.c                                  |   7 +-
 fs/bcachefs/migrate.c                              |   8 +-
 fs/bcachefs/nocow_locking.c                        |   2 +-
 fs/bcachefs/opts.c                                 |   8 +-
 fs/bcachefs/opts.h                                 |  10 +
 fs/bcachefs/rebalance.c                            |   4 +-
 fs/bcachefs/recovery.c                             |  88 ++-
 fs/bcachefs/recovery_types.h                       |   2 +
 fs/bcachefs/replicas.c                             |  19 +-
 fs/bcachefs/replicas.h                             |   3 +-
 fs/bcachefs/sb-clean.c                             |  16 -
 fs/bcachefs/sb-downgrade.c                         |  13 +-
 fs/bcachefs/sb-errors_types.h                      |  21 +-
 fs/bcachefs/sb-members.h                           |   2 +-
 fs/bcachefs/str_hash.h                             |  15 +-
 fs/bcachefs/subvolume.c                            | 187 ++++-
 fs/bcachefs/subvolume.h                            |   9 +-
 fs/bcachefs/subvolume_format.h                     |   4 +-
 fs/bcachefs/subvolume_types.h                      |   2 +-
 fs/bcachefs/super-io.c                             |  22 +-
 fs/bcachefs/super-io.h                             |   2 +-
 fs/bcachefs/super.c                                |  97 ++-
 fs/bcachefs/sysfs.c                                |   4 +-
 fs/bcachefs/thread_with_file.c                     | 299 --------
 fs/bcachefs/thread_with_file.h                     |  41 -
 fs/bcachefs/thread_with_file_types.h               |  16 -
 fs/bcachefs/trace.h                                |  19 +
 fs/bcachefs/util.c                                 | 374 +--------
 fs/bcachefs/util.h                                 | 180 +----
 fs/bcachefs/xattr.c                                |   5 +-
 fs/inode.c                                         |   7 +-
 {fs/bcachefs => include/linux}/darray.h            |  59 +-
 include/linux/darray_types.h                       |  22 +
 {fs/bcachefs => include/linux}/eytzinger.h         |  58 +-
 include/linux/fs.h                                 |   1 +
 include/linux/generic-radix-tree.h                 |  29 +-
 {fs/bcachefs => include/linux}/mean_and_variance.h |  14 +-
 include/linux/mempool.h                            |  13 +
 include/linux/sched.h                              |   4 +-
 include/linux/sched/mm.h                           |  60 +-
 include/linux/thread_with_file.h                   |  79 ++
 include/linux/thread_with_file_types.h             |  25 +
 include/linux/time_stats.h                         | 167 ++++
 kernel/hung_task.c                                 |   1 +
 lib/Kconfig                                        |   7 +
 lib/Kconfig.debug                                  |   9 +
 lib/Makefile                                       |   5 +-
 {fs/bcachefs => lib}/darray.c                      |  12 +-
 lib/generic-radix-tree.c                           |  35 +-
 lib/math/Kconfig                                   |   3 +
 lib/math/Makefile                                  |   2 +
 {fs/bcachefs => lib/math}/mean_and_variance.c      |  31 +-
 {fs/bcachefs => lib/math}/mean_and_variance_test.c |  83 +-
 lib/sort.c                                         |  89 +++
 lib/thread_with_file.c                             | 454 +++++++++++
 lib/time_stats.c                                   | 373 +++++++++
 mm/mempool.c                                       |  13 +
 128 files changed, 4583 insertions(+), 2868 deletions(-)
 create mode 100644 Documentation/filesystems/bcachefs/errorcodes.rst
 create mode 100644 fs/bcachefs/bkey_types.h
 delete mode 100644 fs/bcachefs/thread_with_file.c
 delete mode 100644 fs/bcachefs/thread_with_file.h
 delete mode 100644 fs/bcachefs/thread_with_file_types.h
 rename {fs/bcachefs => include/linux}/darray.h (66%)
 create mode 100644 include/linux/darray_types.h
 rename {fs/bcachefs => include/linux}/eytzinger.h (77%)
 rename {fs/bcachefs => include/linux}/mean_and_variance.h (96%)
 create mode 100644 include/linux/thread_with_file.h
 create mode 100644 include/linux/thread_with_file_types.h
 create mode 100644 include/linux/time_stats.h
 rename {fs/bcachefs => lib}/darray.c (56%)
 rename {fs/bcachefs => lib/math}/mean_and_variance.c (90%)
 rename {fs/bcachefs => lib/math}/mean_and_variance_test.c (78%)
 create mode 100644 lib/thread_with_file.c
 create mode 100644 lib/time_stats.c

^ permalink raw reply	[relevance 2%]

* [GIT PULL] Networking for v6.9
@ 2024-03-12  4:25  1% Jakub Kicinski
  0 siblings, 0 replies; 200+ results
From: Jakub Kicinski @ 2024-03-12  4:25 UTC (permalink / raw)
  To: torvalds; +Cc: kuba, davem, netdev, linux-kernel, pabeni, bpf

Hi Linus!

I get what looks like blk-iocost deadlock when I try to run
your current tree on real Meta servers :( So tested the PR
merged with your tree only on QEMU and on real HW pure net-next
without pulling in your tree.

The following changes since commit df4793505abd5df399bc6d9a4d8fe81761f557cd:

  Merge tag 'net-6.8-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net (2024-03-07 09:23:33 -0800)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next.git tags/net-next-6.9

for you to fetch changes up to ed1f164038b50c5864aa85389f3ffd456f050cca:

  Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net (2024-03-11 20:38:36 -0700)

----------------------------------------------------------------
Networking changes for 6.9.

Core & protocols
----------------

 - Large effort by Eric to lower rtnl_lock pressure and remove locks:

   - Make commonly used parts of rtnetlink (address, route dumps etc.)
     lockless, protected by RCU instead of rtnl_lock.

   - Add a netns exit callback which already holds rtnl_lock,
     allowing netns exit to take rtnl_lock once in the core
     instead of once for each driver / callback.

   - Remove locks / serialization in the socket diag interface.

   - Remove 6 calls to synchronize_rcu() while holding rtnl_lock.

   - Remove the dev_base_lock, depend on RCU where necessary.

 - Support busy polling on a per-epoll context basis. Poll length
   and budget parameters can be set independently of system defaults.

 - Introduce struct net_hotdata, to make sure read-mostly global config
   variables fit in as few cache lines as possible.

 - Add optional per-nexthop statistics to ease monitoring / debug
   of ECMP imbalance problems.

 - Support TCP_NOTSENT_LOWAT in MPTCP.

 - Ensure that IPv6 temporary addresses' preferred lifetimes are long
   enough, compared to other configured lifetimes, and at least 2 sec.

 - Support forwarding of ICMP Error messages in IPSec, per RFC 4301.

 - Add support for the independent control state machine for bonding
   per IEEE 802.1AX-2008 5.4.15 in addition to the existing coupled
   control state machine.

 - Add "network ID" to MCTP socket APIs to support hosts with multiple
   disjoint MCTP networks.

 - Re-use the mono_delivery_time skbuff bit for packets which user
   space wants to be sent at a specified time. Maintain the timing
   information while traversing veth links, bridge etc.

 - Take advantage of MSG_SPLICE_PAGES for RxRPC DATA and ACK packets.

 - Simplify many places iterating over netdevs by using an xarray
   instead of a hash table walk (hash table remains in place, for
   use on fastpaths).

 - Speed up scanning for expired routes by keeping a dedicated list.

 - Speed up "generic" XDP by trying harder to avoid large allocations.

 - Support attaching arbitrary metadata to netconsole messages.

Things we sprinkled into general kernel code
--------------------------------------------

 - Enforce VM_IOREMAP flag and range in ioremap_page_range and introduce
   VM_SPARSE kind and vm_area_[un]map_pages (used by bpf_arena).

 - Rework selftest harness to enable the use of the full range of
   ksft exit code (pass, fail, skip, xfail, xpass).

Netfilter
---------

 - Allow userspace to define a table that is exclusively owned by a daemon
   (via netlink socket aliveness) without auto-removing this table when
   the userspace program exits. Such table gets marked as orphaned and
   a restarting management daemon can re-attach/regain ownership.

 - Speed up element insertions to nftables' concatenated-ranges set type.
   Compact a few related data structures.

BPF
---

 - Add BPF token support for delegating a subset of BPF subsystem
   functionality from privileged system-wide daemons such as systemd
   through special mount options for userns-bound BPF fs to a trusted
   & unprivileged application.

 - Introduce bpf_arena which is sparse shared memory region between BPF
   program and user space where structures inside the arena can have
   pointers to other areas of the arena, and pointers work seamlessly
   for both user-space programs and BPF programs.

 - Introduce may_goto instruction that is a contract between the verifier
   and the program. The verifier allows the program to loop assuming it's
   behaving well, but reserves the right to terminate it.

 - Extend the BPF verifier to enable static subprog calls in spin lock
   critical sections.

 - Support registration of struct_ops types from modules which helps
   projects like fuse-bpf that seeks to implement a new struct_ops type.

 - Add support for retrieval of cookies for perf/kprobe multi links.

 - Support arbitrary TCP SYN cookie generation / validation in the TC
   layer with BPF to allow creating SYN flood handling in BPF firewalls.

 - Add code generation to inline the bpf_kptr_xchg() helper which
   improves performance when stashing/popping the allocated BPF objects.

Wireless
--------

 - Add SPP (signaling and payload protected) AMSDU support.

 - Support wider bandwidth OFDMA, as required for EHT operation.

Driver API
----------

 - Major overhaul of the Energy Efficient Ethernet internals to support
   new link modes (2.5GE, 5GE), share more code between drivers
   (especially those using phylib), and encourage more uniform behavior.
   Convert and clean up drivers.

 - Define an API for querying per netdev queue statistics from drivers.

 - IPSec: account in global stats for fully offloaded sessions.

 - Create a concept of Ethernet PHY Packages at the Device Tree level,
   to allow parameterizing the existing PHY package code.

 - Enable Rx hashing (RSS) on GTP protocol fields.

Misc
----

 - Improvements and refactoring all over networking selftests.

 - Create uniform module aliases for TC classifiers, actions,
   and packet schedulers to simplify creating modprobe policies.

 - Address all missing MODULE_DESCRIPTION() warnings in networking.

 - Extend the Netlink descriptions in YAML to cover message encapsulation
   or "Netlink polymorphism", where interpretation of nested attributes
   depends on link type, classifier type or some other "class type".

Drivers
-------

 - Ethernet high-speed NICs:
   - Add a new driver for Marvell's Octeon PCI Endpoint NIC VF.
   - Intel (100G, ice, idpf):
     - support E825-C devices
   - nVidia/Mellanox:
     - support devices with one port and multiple PCIe links
   - Broadcom (bnxt):
     - support n-tuple filters
     - support configuring the RSS key
   - Wangxun (ngbe/txgbe):
     - implement irq_domain for TXGBE's sub-interrupts
   - Pensando/AMD:
     - support XDP
     - optimize queue submission and wakeup handling (+17% bps)
     - optimize struct layout, saving 28% of memory on queues

 - Ethernet NICs embedded and virtual:
   - Google cloud vNIC:
     - refactor driver to perform memory allocations for new queue
       config before stopping and freeing the old queue memory
   - Synopsys (stmmac):
     - obey queueMaxSDU and implement counters required by 802.1Qbv
   - Renesas (ravb):
     - support packet checksum offload
     - suspend to RAM and runtime PM support

 - Ethernet switches:
   - nVidia/Mellanox:
     - support for nexthop group statistics
   - Microchip:
     - ksz8: implement PHY loopback
     - add support for KSZ8567, a 7-port 10/100Mbps switch

 - PTP:
   - New driver for RENESAS FemtoClock3 Wireless clock generator.
   - Support OCP PTP cards designed and built by Adva.

 - CAN:
   - Support recvmsg() flags for own, local and remote traffic
     on CAN BCM sockets.
   - Support for esd GmbH PCIe/402 CAN device family.
   - m_can:
     - Rx/Tx submission coalescing
     - wake on frame Rx

 - WiFi:
   - Intel (iwlwifi):
     - enable signaling and payload protected A-MSDUs
     - support wider-bandwidth OFDMA
     - support for new devices
     - bump FW API to 89 for AX devices; 90 for BZ/SC devices
   - MediaTek (mt76):
     - mt7915: newer ADIE version support
     - mt7925: radio temperature sensor support
   - Qualcomm (ath11k):
     - support 6 GHz station power modes: Low Power Indoor (LPI),
       Standard Power) SP and Very Low Power (VLP)
     - QCA6390 & WCN6855: support 2 concurrent station interfaces
     - QCA2066 support
   - Qualcomm (ath12k):
     - refactoring in preparation for Multi-Link Operation (MLO) support
     - 1024 Block Ack window size support
     - firmware-2.bin support
     - support having multiple identical PCI devices (firmware needs to
       have ATH12K_FW_FEATURE_MULTI_QRTR_ID)
     - QCN9274: support split-PHY devices
     - WCN7850: enable Power Save Mode in station mode
     - WCN7850: P2P support
   - RealTek:
     - rtw88: support for more rtw8811cu and rtw8821cu devices
     - rtw89: support SCAN_RANDOM_SN and SET_SCAN_DWELL
     - rtlwifi: speed up USB firmware initialization
     - rtwl8xxxu:
       - RTL8188F: concurrent interface support
       - Channel Switch Announcement (CSA) support in AP mode
   - Broadcom (brcmfmac):
     - per-vendor feature support
     - per-vendor SAE password setup
     - DMI nvram filename quirk for ACEPC W5 Pro

Signed-off-by: Jakub Kicinski <kuba@kernel.org>

----------------------------------------------------------------
Aahil Awatramani (1):
      bonding: Add independent control state machine

Aaradhana Sahu (1):
      wifi: ath12k: fix firmware assert during insmod in memory segment mode

Abhishek Chauhan (2):
      net: stmmac: dwmac-qcom-ethqos: Enable TBS on all queues but 0
      net: Re-use and set mono_delivery_time bit for userspace tstamp packets

Adam Li (1):
      net: make SK_MEMORY_PCPU_RESERV tunable

Aditya Kumar Singh (11):
      wifi: cfg80211: send link id in channel_switch ops
      wifi: mac80211: update beacon counters per link basis
      wifi: mac80211: handle set csa/after_csa beacon on per link basis
      wifi: mac80211: start and finalize channel switch on link basis
      wifi: mac80211: add support to call csa_finish on a link
      wifi: cfg80211: add support for link id attribute in NL80211_CMD_DEL_STATION
      wifi: mac80211: flush only stations using requests links
      wifi: mac80211: remove only own link stations during stop_ap
      wifi: mac80211: check beacon countdown is complete on per link basis
      wifi: mac80211_hwsim: add support for switch_vif_chanctx callback
      wifi: mac80211: handle netif carrier up/down with link AP during MLO

Ajay Singh (6):
      wifi: wilc1000: fix driver_handler when committing initial configuration
      wifi: wilc1000: do not realloc workqueue everytime an interface is added
      wifi: wilc1000: fix incorrect power down sequence
      wifi: wilc1000: fix multi-vif management when deleting a vif
      wifi: wilc1000: set preamble size to auto as default in wilc_init_fw_config()
      wifi: wilc1000: add missing read critical sections around vif list traversal

Ajit Khaparde (1):
      bnxt_en: Add RSS support for IPSEC headers

Alan Brady (11):
      idpf: add idpf_virtchnl.h
      idpf: implement virtchnl transaction manager
      idpf: refactor vport virtchnl messages
      idpf: refactor queue related virtchnl messages
      idpf: refactor remaining virtchnl messages
      idpf: add async_handler for MAC filter messages
      idpf: refactor idpf_recv_mb_msg
      idpf: cleanup virtchnl cruft
      idpf: prevent deinit uninitialized virtchnl core
      idpf: fix minor controlq issues
      idpf: remove dealloc vector msg err in idpf_intr_rel

Alessandro Marcolini (4):
      taprio: validate TCA_TAPRIO_ATTR_FLAGS through policy instead of open-coding
      tools: ynl: correct typo and docstring
      doc: netlink: specs: tc: add multi-attr to tc-taprio-sched-entry
      tools: ynl: add support for encoding multi-attr

Alex Elder (20):
      net: ipa: stash modem TX and RX endpoints
      net: ipa: begin simplifying TX queue stop
      net: ipa: kill the STARTED IPA power flag
      net: ipa: kill the IPA power STOPPED flag
      net: ipa: kill ipa_power_modem_queue_stop()
      net: ipa: kill ipa_power_modem_queue_active()
      net: ipa: kill ipa_power_modem_queue_wake()
      net: ipa: don't bother aborting system resume
      net: ipa: kill IPA_POWER_FLAG_SYSTEM
      net: ipa: kill the IPA_POWER_FLAG_RESUMED flag
      net: ipa: move ipa_interrupt_suspend_clear_all() up
      net: ipa: kill ipa_power_suspend_handler()
      net: ipa: don't bother zeroing an already zero register
      net: ipa: change ipa_interrupt_config() prototype
      net: ipa: introduce ipa_interrupt_init()
      net: ipa: pass a platform device to ipa_reg_init()
      net: ipa: pass a platform device to ipa_mem_init()
      net: ipa: pass a platform device to ipa_smp2p_irq_init()
      net: ipa: pass a platform device to ipa_smp2p_init()
      net: ipa: don't save the platform device

Alex Henrie (3):
      net: ipv6/addrconf: ensure that regen_advance is at least 2 seconds
      net: ipv6/addrconf: introduce a regen_min_advance sysctl
      net: ipv6/addrconf: clamp preferred_lft to the minimum required

Alexander Gordeev (2):
      net/iucv: fix virtual vs physical address confusion
      net/af_iucv: fix virtual vs physical address confusion

Alexander Lobakin (2):
      page_pool: disable direct recycling based on pool->cpuid on destroy
      bnxt_en: fix accessing vnic_info before allocating it

Alexander Stein (1):
      net: phy: dp83867: Add support for active-low LEDs

Alexei Starovoitov (42):
      Merge branch 'bpf-inline-bpf_kptr_xchg'
      bpf: Minor improvements for bpf_cmp.
      Merge branch 'enable-the-inline-of-kptr_xchg-for-arm64'
      Merge branch 'bpf-add-cookies-retrieval-for-perf-kprobe-multi-links'
      Merge branch 'trusted-ptr_to_btf_id-arg-support-in-global-subprogs'
      Merge branch 'annotate-kfuncs-in-btf_ids-section'
      Merge branch 'two-small-fixes-for-global-subprog-tagging'
      Merge branch 'enable-static-subprog-calls-in-spin-lock-critical-sections'
      Merge branch 'transfer-rcu-lock-state-across-subprog-calls'
      Merge branch 'xsk-support-redirect-to-any-socket-bound-to-the-same-umem'
      Merge branch 'fix-global-subprog-ptr_to_ctx-arg-handling'
      selftests/bpf: Remove intermediate test files.
      bpf: Shrink size of struct bpf_map/bpf_array.
      Merge branch 'selftests-bpf-reduce-tcp_custom_syncookie-verification-complexity'
      Merge branch 'bpf-arm64-support-exceptions'
      Merge branch 'bpf-arm64-use-bpf-prog-pack-allocator-in-bpf-jit'
      mm: Enforce VM_IOREMAP flag and range in ioremap_page_range.
      mm: Introduce VM_SPARSE kind and vm_area_[un]map_pages().
      bpf: Introduce may_goto instruction
      bpf: Recognize that two registers are safe when their ranges match
      bpf: Add cond_break macro
      selftests/bpf: Test may_goto
      bpf: Allow kfuncs return 'void *'
      bpf: Recognize '__map' suffix in kfunc arguments
      bpf: Plumb get_unmapped_area() callback into bpf_map_ops
      libbpf: Allow specifying 64-bit integers in map BTF.
      bpf: Tell bpf programs kernel's PAGE_SIZE
      Merge branch 'fix-hash-bucket-overflow-checks-for-32-bit-arches'
      mm: Introduce vmap_page_range() to map pages in PCI address space
      bpf: Introduce bpf_arena.
      bpf: Disasm support for addr_space_cast instruction.
      bpf: Add x86-64 JIT support for PROBE_MEM32 pseudo instructions.
      bpf: Add x86-64 JIT support for bpf_addr_space_cast instruction.
      bpf: Recognize addr_space_cast instruction in the verifier.
      bpf: Recognize btf_decl_tag("arg: Arena") as PTR_TO_ARENA.
      libbpf: Add __arg_arena to bpf_helpers.h
      libbpf: Add support for bpf_arena.
      bpftool: Recognize arena map type
      bpf: Add helper macro bpf_addr_space_cast()
      selftests/bpf: Add unit tests for bpf_arena_alloc/free_pages
      selftests/bpf: Add bpf_arena_list test.
      selftests/bpf: Add bpf_arena_htab test.

Alexey Berezhok (2):
      wifi: brcmfmac: do not cast hidden SSID attribute value to boolean
      wifi: brcmfmac: do not pass hidden SSID attribute as value directly

Alexey Kodanev (2):
      iavf: drop duplicate iavf_{add|del}_cloud_filter() calls
      i40e: remove unnecessary qv_info ptr NULL checks

Alexis Lothoré (9):
      wifi: wilc1000: fix declarations ordering
      wifi: wilc1000: fix RCU usage in connect path
      wifi: wilc1000: prevent use-after-free on vif when cleaning up all interfaces
      wifi: wilc1000: split deeply nested RCU list traversal in dedicated helper
      wifi: wilc1000: use SRCU instead of RCU for vif list traversal
      wifi: wilc1000: fix declarations ordering
      wifi: nl80211: force WLAN_AKM_SUITE_SAE in big endian in NL80211_CMD_EXTERNAL_AUTH
      wifi: wilc1000: remove AKM suite be32 conversion for external auth request
      wifi: wilc1000: revert reset line logic flip

Amit Cohen (7):
      mlxsw: spectrum: Change mlxsw_sp_upper to LAG structure
      mlxsw: spectrum: Remove mlxsw_sp_lag_get()
      mlxsw: spectrum: Query max_lag once
      mlxsw: spectrum: Search for free LAD ID once
      mlxsw: spectrum: Refactor LAG create and destroy code
      mlxsw: Use refcount_t for reference counting
      net: Do not return value from init_dummy_netdev()

Andre Werner (2):
      net: phy: phy_device: Prevent nullptr exceptions on ISR
      net: phy: adin1100: Add interrupt support for link change

Andrei Otcheretianski (1):
      wifi: mac80211_hwsim: Add 160MHz bw range to regdom_custom_04

Andrew Lunn (17):
      net: phy: c45 scanning: Don't consider -ENODEV fatal
      net: dsa: mv88e6xxx: Return -ENODEV when C45 not supported
      net: usb: r8152: Use linkmode helpers for EEE
      net: usb: ax88179_178a: Use linkmode helpers for EEE
      net: qlogic: qede: Use linkmode helpers for EEE
      net: ethernet: ixgbe: Convert EEE to use linkmodes
      net: intel: i40e/igc: Remove setting Autoneg in EEE capabilities
      net: intel: e1000e: Use linkmode helpers for EEE
      net: intel: igb: Use linkmode helpers for EEE
      net: intel: igc: Use linkmode helpers for EEE
      net: ethtool: eee: Remove legacy _u32 from keee
      net: phy: Add phydev->enable_tx_lpi to simplify adjust link callbacks
      net: phy: Keep track of EEE configuration
      net: phy: Immediately call adjust_link if only tx_lpi_enabled changes
      net: phy: Add phy_support_eee() indicating MAC support EEE
      net: fec: Move fec_enet_eee_mode_set() and helper earlier
      net: fec: Fixup EEE

Andrey Grafin (2):
      libbpf: Apply map_set_def_max_entries() for inner_maps on creation
      selftest/bpf: Add map_in_maps with BPF_MAP_TYPE_PERF_EVENT_ARRAY values

Andrey Skvortsov (2):
      Bluetooth: hci_h5: Add ability to allocate memory for private data
      Bluetooth: btrtl: fix out of bounds memory access

Andrii Nakryiko (77):
      selftests/bpf: fix test_loader check message
      bpf: make sure scalar args don't accept __arg_nonnull tag
      bpf: prepare btf_prepare_func_args() for multiple tags per argument
      bpf: support multiple tags per argument
      selftests/bpf: detect testing prog flags support
      libbpf: call dup2() syscall directly
      Merge branch 'skip-callback-tests-if-jit-is-disabled-in-test_verifier'
      bpf: Align CAP_NET_ADMIN checks with bpf_capable() approach
      bpf: Add BPF token delegation mount options to BPF FS
      bpf: Introduce BPF token object
      bpf: Add BPF token support to BPF_MAP_CREATE command
      bpf: Add BPF token support to BPF_BTF_LOAD command
      bpf: Add BPF token support to BPF_PROG_LOAD command
      bpf: Take into account BPF token when fetching helper protos
      bpf: Consistently use BPF token throughout BPF verifier logic
      bpf,lsm: Refactor bpf_prog_alloc/bpf_prog_free LSM hooks
      bpf,lsm: Refactor bpf_map_alloc/bpf_map_free LSM hooks
      bpf,lsm: Add BPF token LSM hooks
      libbpf: Add bpf_token_create() API
      libbpf: Add BPF token support to bpf_map_create() API
      libbpf: Add BPF token support to bpf_btf_load() API
      libbpf: Add BPF token support to bpf_prog_load() API
      selftests/bpf: Add BPF token-enabled tests
      bpf,selinux: Allocate bpf_security_struct per BPF token
      bpf: Fail BPF_TOKEN_CREATE if no delegation option was set on BPF FS
      bpf: Support symbolic BPF FS delegation mount options
      selftests/bpf: Utilize string values for delegate_xxx mount options
      libbpf: Split feature detectors definitions from cached results
      libbpf: Further decouple feature checking logic from bpf_object
      libbpf: Move feature detection code into its own file
      libbpf: Wire up token_fd into feature probing logic
      libbpf: Wire up BPF token support at BPF object level
      selftests/bpf: Add BPF object loading tests with explicit token passing
      selftests/bpf: Add tests for BPF object load with implicit token
      libbpf: Support BPF token path setting through LIBBPF_BPF_TOKEN_PATH envvar
      selftests/bpf: Add tests for LIBBPF_BPF_TOKEN_PATH envvar
      selftests/bpf: Incorporate LSM policy to token-based tests
      Merge branch 'bpf-token'
      libbpf: Fix faccessat() usage on Android
      libbpf: integrate __arg_ctx feature detector into kernel_supports()
      libbpf: fix __arg_ctx type enforcement for perf_event programs
      bpf: move arg:ctx type enforcement check inside the main logic loop
      bpf: add __arg_trusted global func arg tag
      bpf: add arg:nullable tag to be combined with trusted pointers
      libbpf: add __arg_trusted and __arg_nullable tag macros
      selftests/bpf: add trusted global subprog arg tests
      libbpf: add bpf_core_cast() macro
      selftests/bpf: convert bpf_rdonly_cast() uses to bpf_core_cast() macro
      libbpf: Call memfd_create() syscall directly
      libbpf: Add missing LIBBPF_API annotation to libbpf_set_memlock_rlim API
      libbpf: Add btf__new_split() API that was declared but not implemented
      libbpf: Add missed btf_ext__raw_data() API
      selftests/bpf: Fix bench runner SIGSEGV
      Merge branch 'improvements-for-tracking-scalars-in-the-bpf-verifier'
      bpf: handle trusted PTR_TO_BTF_ID_OR_NULL in argument check logic
      selftests/bpf: add more cases for __arg_trusted __arg_nullable args
      bpf: don't emit warnings intended for global subprogs for static subprogs
      libbpf: fix return value for PERF_EVENT __arg_ctx type fix up check
      selftests/bpf: mark dynptr kfuncs __weak to make them optional on old kernels
      Merge branch 'tools-resolve_btfids-fix-cross-compilation-to-non-host-endianness'
      bpf: simplify btf_get_prog_ctx_type() into btf_is_prog_ctx_type()
      bpf: handle bpf_user_pt_regs_t typedef explicitly for PTR_TO_CTX global arg
      bpf: don't infer PTR_TO_CTX for programs with unnamed context type
      selftests/bpf: add anonymous user struct as global subprog arg test
      bpf: emit source code file name and line number in verifier log
      bpf: Use O(log(N)) binary search to find line info record
      bpf: improve duplicate source code line detection
      Merge branch 'create-shadow-types-for-struct_ops-maps-in-skeletons'
      selftests/bpf: Extend uprobe/uretprobe triggering benchmarks
      Merge branch 'mm-enforce-ioremap-address-space-and-introduce-sparse-vm_area'
      Merge branch 'bpf-introduce-may_goto-and-cond_break'
      Merge branch 'libbpf-type-suffixes-and-autocreate-flag-for-struct_ops-maps'
      bpftool: rename is_internal_mmapable_map into is_mmapable_map
      selftests/bpf: Add fexit and kretprobe triggering benchmarks
      libbpf: Recognize __arena global variables.
      Merge branch 'bpf-introduce-bpf-arena'
      bpf: move sleepable flag from bpf_prog_aux to bpf_prog

Andy Shevchenko (6):
      wifi: cfg80211: Add KHZ_PER_GHZ to units.h and reuse
      ieee802154: at86rf230: Replace of_gpio.h by proper one
      ieee802154: mcr20a: Remove unused of_gpio.h
      lib/bitmap: Introduce bitmap_scatter() and bitmap_gather() helpers
      net: mdio_bus: Remove unused of_gpio.h
      net: phy: marvell-88x2222: Remove unused of_gpio.h

Aniruddha Paul (1):
      ice: Add a new counter for Rx EIPE errors

Anjaneyulu (1):
      wifi: iwlwifi: Add support for PPAG cmd v5 and PPAG revision 3

Ankit Garg (1):
      gve: Modify rx_buf_alloc_fail counter centrally and closer to failure

Antony Antony (1):
      xfrm: introduce forwarding of ICMP Error messages

Arend van Spriel (7):
      wifi: brcmfmac: export firmware interface functions
      wifi: brcmfmac: add per-vendor feature detection callback
      wifi: brcmfmac: move feature overrides before feature_disable
      wifi: brcmfmac: avoid invalid list operation when vendor attach fails
      wifi: brcmfmac: allow per-vendor event handling
      wifi: brcmfmac: add linefeed at end of file
      wifi: brcmfmac: fix copyright year mentioned in platform_data header

Arnaldo Carvalho de Melo (1):
      bpftool: Be more portable by using POSIX's basename()

Arnd Bergmann (3):
      wifi: iwlwifi: fix #ifdef CONFIG_ACPI check
      wifi: brcmsmac: avoid function pointer casts
      igc: fix LEDS_CLASS dependency

Arseniy Krasnov (2):
      vsock/test: add '--peer-port' input argument
      vsock/test: print type for SOCK_SEQPACKET

Artem Chernyshev (1):
      wifi: brcmsmac: phy: Remove unreachable code

Artem Savkov (1):
      selftests/bpf: Fix potential premature unload in bpf_testmod

Arınç ÜNAL (26):
      net: dsa: mt7530: support OF-based registration of switch MDIO bus
      net: dsa: mt7530: select MEDIATEK_GE_PHY for NET_DSA_MT7530_MDIO
      net: dsa: mt7530: always trap frames to active CPU port on MT7530
      net: dsa: mt7530: use p5_interface_select as data type for p5_intf_sel
      net: dsa: mt7530: store port 5 SGMII capability of MT7531
      net: dsa: mt7530: improve comments regarding switch ports
      net: dsa: mt7530: improve code path for setting up port 5
      net: dsa: mt7530: do not set priv->p5_interface on mt7530_setup_port5()
      net: dsa: mt7530: do not run mt7530_setup_port5() if port 5 is disabled
      net: dsa: mt7530: empty default case on mt7530_setup_port5()
      net: dsa: mt7530: move XTAL check to mt7530_setup()
      net: dsa: mt7530: simplify mt7530_pad_clk_setup()
      net: dsa: mt7530: call port 6 setup from mt7530_mac_config()
      net: dsa: mt7530: remove pad_setup function pointer
      net: dsa: mt7530: correct port capabilities of MT7988
      net: dsa: mt7530: do not clear config->supported_interfaces
      net: dsa: remove OF-based MDIO bus registration from DSA core
      net: dsa: mt7530: remove .mac_port_config for MT7988 and make it optional
      net: dsa: mt7530: set interrupt register only for MT7530
      net: dsa: mt7530: do not use SW_PHY_RST to reset MT7531 switch
      net: dsa: mt7530: get rid of useless error returns on phylink code path
      net: dsa: mt7530: get rid of priv->info->cpu_port_config()
      net: dsa: mt7530: get rid of mt753x_mac_config()
      net: dsa: mt7530: put initialising PCS devices code back to original order
      net: dsa: mt7530: sort link settings ops and force link down on all ports
      net: dsa: mt7530: simplify link operations

Avraham Stern (1):
      wifi: iwlwifi: mvm: advertise support for protected ranging negotiation

Ayala Beker (7):
      wifi: ieee80211: add definitions for negotiated TID to Link map
      wifi: mac80211: process and save negotiated TID to Link mapping request
      wifi: mac80211_hwsim: handle TID to link mapping neg request
      wifi: mac80211_hwsim: handle BSS_CHANGED_MLD_TTLM
      wifi: mac80211: add support for negotiated TTLM request
      wifi: iwlwifi: mvm: add support for TID to link mapping neg request
      wifi: iwlwifi: mvm: use fast balance scan in case of an active P2P GO

Baochen Qiang (21):
      wifi: ath12k: support default regdb while searching board-2.bin for WCN7850
      wifi: ath11k: fix a possible dead lock caused by ab->base_lock
      wifi: ath12k: fix wrong definitions of hal_reo_update_rx_queue
      wifi: ath12k: add support for BA1024
      wifi: ath12k: change MAC buffer ring size to 2048
      wifi: ath12k: add support for collecting firmware log
      wifi: ath11k: enable 36 bit mask for stream DMA
      wifi: ath11k: remove invalid peer create logic
      wifi: ath11k: rename ath11k_start_vdev_delay()
      wifi: ath11k: avoid forward declaration of ath11k_mac_start_vdev_delay()
      wifi: ath11k: fix connection failure due to unexpected peer delete
      wifi: ath12k: enable 802.11 power save mode in station mode
      wifi: ath11k: initialize rx_mcs_80 and rx_mcs_160 before use
      wifi: ath11k: initialize eirp_power before use
      wifi: ath11k: move pci.ops registration ahead
      wifi: ath11k: add support for QCA2066
      wifi: ath11k: rearrange IRQ enable/disable in reset path
      wifi: ath11k: remove MHI LOOPBACK channels
      wifi: ath11k: do not dump SRNG statistics during resume
      wifi: ath11k: fix warning on DMA ring capabilities event
      wifi: ath11k: decrease MHI channel buffer length to 8KB

Bartosz Golaszewski (1):
      Bluetooth: hci_qca: don't use IS_ERR_OR_NULL() with gpiod_get_optional()

Benjamin Berg (7):
      wifi: cfg80211: add RNR with reporting AP information
      wifi: mac80211: use deflink and fix typo in link ID check
      wifi: iwlwifi: skip affinity setting on non-SMP
      wifi: cfg80211: add a kunit test for 6 GHz colocated AP parsing
      wifi: cfg80211: tests: verify BSS use flags of NSTR links
      wifi: cfg80211: set correct param change count in ML element
      wifi: iwlwifi: mvm: unlock mvm if there is no primary link

Benjamin Lin (3):
      wifi: mt76: mt7996: fix incorrect interpretation of EHT MCS caps
      wifi: mt76: mt7996: ensure 4-byte alignment for beacon commands
      wifi: mt76: mt7996: fix HIF_TXD_V2_1 value

Benjamin Poirier (5):
      selftests: Introduce Makefile variable to list shared bash scripts
      selftests: bonding: Add net/forwarding/lib.sh to TEST_INCLUDES
      selftests: team: Add shared library scripts to TEST_INCLUDES
      selftests: dsa: Replace test symlinks by wrapper script
      selftests: forwarding: Redefine relative_path variable

Benjamin Tissoires (3):
      bpf: allow more maps in sleepable bpf programs
      bpf: introduce in_sleepable() helper
      bpf: add is_async_callback_calling_insn() helper

Biju Das (2):
      ravb: Add Rx checksum offload support for GbEth
      ravb: Add Tx checksum offload support for GbEth

Bitterblue Smith (13):
      wifi: rtl8xxxu: Fix LED control code of RTL8192FU
      wifi: rtl8xxxu: Fix off by one initial RTS rate
      wifi: rtlwifi: rtl_usb: Use sync register writes
      wifi: rtlwifi: rtl8192de: Don't read register in _rtl92de_query_rxphystatus
      wifi: rtlwifi: Speed up firmware loading for USB
      wifi: rtlwifi: rtl8192cu: Fix 2T2R chip type detection
      wifi: rtlwifi: rtl_usb: Store the endpoint addresses
      wifi: rtlwifi: rtl8192cu: Fix TX aggregation
      wifi: rtw88: 8821cu: Fix firmware upload fail
      wifi: rtw88: 8821cu: Fix connection failure
      wifi: rtw88: 8821c: Fix beacon loss and disconnect
      wifi: rtw88: 8821c: Fix false alarm count
      wifi: rtlwifi: Remove rtl_intf_ops.read_efuse_byte

Bo Liu (4):
      net: encx24j600: convert to use maple tree register cache
      net: ieee802154: at86rf230: convert to use maple tree register cache
      net: ieee802154: mcr20a: convert to use maple tree register cache
      net: ieee802154: mrf24j40: convert to use maple tree register cache

Brad Cowie (1):
      selftests: openvswitch: Test ICMP related matches work with SNAT

Breno Leitao (44):
      net/ipv6: Remove unnecessary pr_debug() logs
      net/ipv6: resolve warning in ip6_fib.c
      net: fill in MODULE_DESCRIPTION()s for encx24j600
      net: fill in MODULE_DESCRIPTION()s for ocelot
      net: fill in MODULE_DESCRIPTION()s for SMSC drivers
      net: fill in MODULE_DESCRIPTION()s for Qualcom drivers
      net: fill in MODULE_DESCRIPTION()s for dwmac-socfpga
      net: fill in MODULE_DESCRIPTION()s for cpsw-common
      net: fill in MODULE_DESCRIPTION()s for ec_bhf
      net: fill in MODULE_DESCRIPTION()s for PCS drivers
      net: fill in MODULE_DESCRIPTION()s for ieee802154
      net: fill in MODULE_DESCRIPTION()s for arcnet
      net: blackhole_dev: fix build warning for ethh set but not used
      net: ocelot: update the MODULE_DESCRIPTION()
      net: bql: allow the config to be disabled
      net: sysfs: Do not create sysfs for non BQL device
      net/dummy: Move stats allocation to core
      ipv6/sit: Do not allocate stats in the driver
      net/vsockmon: Leverage core stats allocator
      net/vsockmon: Do not set zeroed statistics
      xfrm: Do not allocate stats in the driver
      net: bridge: Do not allocate stats in the driver
      net: bridge: Exit if multicast_init_stats fails
      net: get stats64 if device if driver is configured
      net: sit: Do not set .ndo_get_stats64
      net: bareudp: Do not allocate stats in the driver
      net: bareudp: Remove generic .ndo_get_stats64
      net: ip6_tunnel: Leverage core stats allocator
      net: nlmon: Remove init and uninit functions
      net: nlmon: Simplify nlmon_get_stats64
      net: tuntap: Leverage core stats allocator
      net: tap: Remove generic .ndo_get_stats64
      net: macsec: Leverage core stats allocator
      net: gtp: Leverage core stats allocator
      net: gtp: Remove generic .ndo_get_stats64
      net: gtp: Move net_device assigned in setup
      net: geneve: Leverage core stats allocator
      net: geneve: Remove generic .ndo_get_stats64
      net: usbnet: Leverage core stats allocator
      net: usbnet: Remove generic .ndo_get_stats64
      net: amt: Move stats allocation to core
      net: amt: Remove generic .ndo_get_stats64
      vxlan: Do not alloc tstats manually
      vxlan: Remove generic .ndo_get_stats64

Brett Creeley (14):
      pds_core: Don't assign interrupt index/bound_intr to notifyq
      pds_core: Unmask adminq interrupt in work thread
      pds_core: Fix up some minor issues
      pds_core: Clean up init/uninit flows to be more readable
      ionic: Rework Tx start/stop flow
      ionic: Change default number of descriptors for Tx and Rx
      ionic: Shorten a Tx hotpath
      ionic: Make use napi_consume_skb
      ionic: Clean up BQL logic
      ionic: Check stop no restart
      ionic: Pass local netdev instead of referencing struct
      ionic: change the hwstamp likely check
      ionic: Use CQE profile for dim
      ionic: Clean RCT ordering issues

Carl Huang (2):
      wifi: ath11k: support 2 station interfaces
      wifi: ath11k: provide address list if chip supports 2 stations

Carolina Jubran (2):
      net/mlx5e: XSK, Exclude tailroom from non-linear SKBs memory calculations
      net/mlx5e: XDP, Exclude headroom and tailroom from memory calculations

Catalin Popescu (3):
      dt-bindings: net: dp83826: support TX data voltage tuning
      net: phy: dp83826: support TX data voltage tuning
      net: phy: dp83826: disable WOL at init

Chen Ni (1):
      sr9800: Add check for usbnet_get_endpoints

Chen Shen (1):
      libbpf: Correct debug message in btf__load_vmlinux_btf

Cheng-Chieh Hsieh (1):
      wifi: rtw89: 8922a: update the register used in DIG and the DIG flow

Chengming Zhou (1):
      net: remove SLAB_MEM_SPREAD flag usage

Chih-Kang Chang (3):
      wifi: rtw89: fix HW scan timeout due to TSF sync issue
      wifi: rtw89: fix disabling concurrent mode TX hang issue
      wifi: rtw89: 8922a: implement AP mode related reg for BE generation

Chin-Yen Lee (11):
      wifi: rtw89: pci: use DBI function for 8852AE/8852BE/8851BE
      wifi: rtw89: add new H2C for PS mode in 802.11be chip
      wifi: rtw89: update ps_state register for chips with different generation
      wifi: rtw89: pci: implement PCI CLK/ASPM/L1SS for WiFi 7 chips
      wifi: rtw89: wow: update WoWLAN reason register for different chips
      wifi: rtw89: wow: update WoWLAN status register for different generation
      wifi: rtw89: update DMA function with different generation
      wifi: rtw89: wow: update config mac function with different generation
      wifi: rtw89: update suspend/resume for different generation
      wifi: rtw89: wow: set security engine options for 802.11ax chips only
      wifi: rtw89: wow: move release offload packet earlier for WoWLAN mode

Ching-Te Ku (6):
      wifi: rtw89: coex: add init_info H2C command format version 7
      wifi: rtw89: coex: add BTC ctrl_info version 7 and related logic
      wifi: rtw89: coex: Reorder H2C command index to align with firmware
      wifi: rtw89: coex: add return value to ensure H2C command is success or not
      wifi: rtw89: coex: When Bluetooth not available don't set power/gain
      wifi: rtw89: coex: Add coexistence policy to decrease WiFi packet CRC-ERR

Christian Marangi (26):
      dt-bindings: net: phy: Make LED active-low property common
      dt-bindings: net: phy: Document LED inactive high impedance mode
      net: phy: add support for PHY LEDs polarity modes
      dt-bindings: net: Document QCA808x PHYs
      net: phy: at803x: add LED support for qca808x
      net: phy: move at803x PHY driver to dedicated directory
      net: phy: qcom: create and move functions to shared library
      net: phy: qcom: deatch qca83xx PHY driver from at803x
      net: phy: qcom: move additional functions to shared library
      net: phy: qcom: detach qca808x PHY driver from at803x
      dt-bindings: net: ipq4019-mdio: document now supported clock-frequency
      net: mdio: ipq4019: add support for clock-frequency property
      net: phy: qcom: qca808x: fix logic error in LED brightness set
      net: phy: qcom: qca808x: default to LED active High if not set
      dt-bindings: net: document ethernet PHY package nodes
      net: phy: add support for scanning PHY in PHY packages nodes
      net: phy: add devm/of_phy_package_join helper
      net: phy: qcom: move more function to shared library
      dt-bindings: net: Document Qcom QCA807x PHY package
      net: phy: provide whether link has changed in c37_read_status
      net: phy: qcom: move common qca808x LED define to shared header
      net: phy: qcom: generalize some qca808x LED functions
      net: phy: qca807x: add support for configurable LED
      net: phy: aquantia: add AQR111 and AQR111B0 PHY ID
      net: phy: aquantia: add AQR113 PHY ID
      net: phy: aquantia: add AQR813 PHY ID

Christoph Paasch (1):
      mpls: Do not orphan the skb

Christophe JAILLET (6):
      xdp: Remove usage of the deprecated ida_simple_xx() API
      nfc: hci: Introduce nfc_llc_del_engine() to reduce code duplication
      nfc: hci: Save a few bytes of memory when registering a 'nfc_llc' engine
      Bluetooth: Remove usage of the deprecated ida_simple_xx() API
      Bluetooth: btbcm: Use strreplace()
      Bluetooth: btbcm: Use devm_kstrdup()

Chun Qiu (1):
      wifi: rtl8xxxu: Add TP-Link TL-WN823N V2

Chung-Hsuan Hung (3):
      wifi: rtw89: phy: add parser to support RX gain dynamic setting flow
      wifi: rtw89: 8922a: set RX gain along with set_channel operation
      wifi: rtw89: 8922a: add BTG functions to assist BT coexistence to control TX/RX

Ciprian Regus (1):
      net: ethernet: adi: adin1110: Reduce the MDIO_TRDONE poll interval

Claudiu Beznea (21):
      net: ravb: Let IP-specific receive function to interrogate descriptors
      net: ravb: Rely on PM domain to enable gptp_clk
      net: ravb: Make reset controller support mandatory
      net: ravb: Switch to SYSTEM_SLEEP_PM_OPS()/RUNTIME_PM_OPS() and pm_ptr()
      net: ravb: Use tabs instead of spaces
      net: ravb: Assert/de-assert reset on suspend/resume
      net: ravb: Move reference clock enable/disable on runtime PM APIs
      net: ravb: Move getting/requesting IRQs in the probe() method
      net: ravb: Split GTI computation and set operations
      net: ravb: Move delay mode set in the driver's ndo_open API
      net: ravb: Move DBAT configuration to the driver's ndo_open API
      net: ravb: Move PTP initialization in the driver's ndo_open API for ccc_gac platorms
      net: ravb: Set config mode in ndo_open and reset mode in ndo_close
      net: ravb: Simplify ravb_suspend()
      net: ravb: Simplify ravb_resume()
      net: ravb: Get rid of the temporary variable irq
      net: ravb: Keep the reverse order of operations in ravb_close()
      net: ravb: Return cached statistics if the interface is down
      net: ravb: Move the update of ndev->features to ravb_set_features()
      net: ravb: Do not apply features to hardware if the interface is down
      net: ravb: Add runtime PM support

Colin Ian King (13):
      wifi: rtw89: mac: Fix spelling mistakes "notfify" -> "notify"
      wifi: ath9k:  remove redundant assignment to variable ret
      wifi: iwlwifi: Fix spelling mistake "SESION" -> "SESSION"
      xirc2ps_cs: remove redundant assignment to variable okay, clean up freespace
      qed: remove duplicated assignment to variable opaque_fid
      netxen_nic: remove redundant assignment to variable capability
      wifi: carl9170: Remove redundant assignment to pointer super
      net: tcp: Remove redundant initialization of variable len
      wifi: mac80211: clean up assignments to pointer cache.
      wifi: mt76: Remove redundant assignment to variable tidno
      net: microchip: lan743x: Fix spelling mistake "erro" -> "error"
      net: chelsio: remove unused function calc_tx_descs
      tools: ynl: Fix spelling mistake "Constructred" -> "Constructed"

Conor Dooley (1):
      dt-bindings: leds: pwm-multicolour: re-allow active-low

Cristian Ciocaltea (2):
      dt-bindings: net: starfive,jh7110-dwmac: Add JH7100 SoC compatible
      net: stmmac: dwmac-starfive: Add support for JH7100 SoC

Csókás Bence (2):
      net: fec: Refactor: #define magic constants
      net: fec: Refactor: Replace FEC_ENET_FCE with FEC_RCR_FLOWCTL

Cupertino Miranda (1):
      libbpf: Add support to GCC in CORE macro definitions

Dacio Romero (1):
      wifi: mt76: mt76x2u: add netgear wdna3100v3 to device table

Dan Carpenter (3):
      wifi: rtl8xxxu: fix error messages
      wifi: iwlwifi: return negative -EINVAL instead of positive EINVAL
      Bluetooth: ISO: Clean up returns values in iso_connect_ind()

Daniel Amosi (1):
      wifi: iwlwifi: mvm: Keep connection in case of missed beacons during RX

Daniel Borkmann (1):
      bpf: Sync uapi bpf.h header for the tooling infra

Daniel Gabay (1):
      wifi: iwlwifi: mvm: log dropped packets due to MIC error

Daniel Xu (4):
      bpf: btf: Support flags for BTF_SET8 sets
      bpf: btf: Add BTF_KFUNCS_START/END macro pair
      bpf: treewide: Annotate BPF kfuncs in BTF
      bpf: Have bpf_rdonly_cast() take a const pointer

Daniil Dulov (1):
      can: softing: remove redundant NULL check

Dave Thaler (11):
      Introduce concept of conformance groups
      bpf, docs: Clarify that MOVSX is only for BPF_X not BPF_K
      bpf, docs: Clarify definitions of various instructions
      bpf, docs: Clarify which legacy packet instructions existed
      bpf, docs: Expand set of initial conformance groups
      bpf, docs: Fix typos in instructions-set.rst
      bpf, docs: Update ISA document title
      bpf, docs: Fix typos in instruction-set.rst
      bpf, docs: specify which BPF_ABS and BPF_IND fields were zero
      bpf, docs: Use IETF format for field definitions in instruction-set.rst
      bpf, docs: Rename legacy conformance group to packet

David Ahern (4):
      selftest: Update PATH for nettest in fcnal-test
      selftest: Fix set of ping_group_range in fcnal-test
      selftest: Show expected and actual return codes for test failures in fcnal-test
      selftests: Declare local variable for pause in fcnal-test.sh

David Arinzon (11):
      net: ena: Remove an unused field
      net: ena: Add more documentation for RX copybreak
      net: ena: Minor cosmetic changes
      net: ena: Enable DIM by default
      net: ena: Remove CQ tail pointer update
      net: ena: Change error print during ena_device_init()
      net: ena: Add more information on TX timeouts
      net: ena: Relocate skb_tx_timestamp() to improve time stamping accuracy
      net: ena: Change default print level for netif_ prints
      net: ena: handle ena_calc_io_queue_size() possible errors
      net: ena: Reduce lines with longer column width boundary

David Howells (21):
      rxrpc: Record the Tx serial in the rxrpc_txbuf and retransmit trace
      rxrpc: Convert rxrpc_txbuf::flags into a mask and don't use atomics
      rxrpc: Note cksum in txbuf
      rxrpc: Fix the names of the fields in the ACK trailer struct
      rxrpc: Strip barriers and atomics off of timer tracking
      rxrpc: Remove atomic handling on some fields only used in I/O thread
      rxrpc: Do lazy DF flag resetting
      rxrpc: Merge together DF/non-DF branches of data Tx function
      rxrpc: Add a kvec[] to the rxrpc_txbuf struct
      rxrpc: Split up the DATA packet transmission function
      rxrpc: Don't pick values out of the wire header when setting up security
      rxrpc: Move rxrpc_send_ACK() to output.c with rxrpc_send_ack_packet()
      rxrpc: Use rxrpc_txbuf::kvec[0] instead of rxrpc_txbuf::wire
      rxrpc: Do zerocopy using MSG_SPLICE_PAGES and page frags
      rxrpc: Parse received packets before dealing with timeouts
      rxrpc: Don't permit resending after all Tx packets acked
      rxrpc: Differentiate PING ACK transmission traces.
      rxrpc: Use ktimes for call timeout tracking and set the timer lazily
      rxrpc: Record probes after transmission and reduce number of time-gets
      rxrpc: Clean up the resend algorithm
      rxrpc: Extract useful fields from a received ACK to skb priv data

David Lechner (1):
      wifi: wilc1000: remove setting msg.spi

David Mosberger-Tang (2):
      wifi: wilc1000: correct CRC7 calculation
      wifi: wilc1000: validate chip id during bus probe

David S. Miller (71):
      Merge branch 'txgbe-irq_domain'
      Merge branch 'net-module-description'
      Merge branch 'stmmac-jh7100'
      Merge branch 'selftests-TEST_INCLUDES'
      Merge branch 'stmmac-EST'
      Merge branch 'ethtool-EEE'
      Merge branch 'qca_spi-improvements'
      Merge tag 'nf-next-24-01-29' of https://git.kernel.org/pub/scm/linux/kernel/git/netfilter/nf-next Florian Westphal says:
      Merge branch 'net-ipq4019-rate'
      Merge branch 'octeontx2-af-dynamically-allocate-BPIDs'
      Merge tag 'batadv-next-pullrequest-20240201' of git://git.open-mesh.org/linux-merge
      Merge branch 'qca-phy-led-fixes'
      Merge branch 'mptcp-annotate-lockless'
      Merge branch 'qca8k-cleanup-fixes'
      Merge branch 'net-phy-c22-c45-enumeration'
      Merge branch 'netconsole-userdata-append'
      Merge branch 'wan-t7x-fastboot'
      Merge branch 'phy-package'
      Merge branch 'octeon_ep_vf'
      Merge branch 'ipv6-expired-routes'
      Merge branch 'dsa-realtek-common'
      Merge branch 'eth-common-fault-irq-support'
      Merge branch 'net-avoid-slow-rcu'
      Merge tag 'linux-can-next-for-6.9-20240213' of git://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can-next
      Merge branch '100GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/next-queue
      Merge branch 'per-epoll-context-busy-poll'
      Merge branch 'dev_base_lock-remove'
      Merge branch 'ravb-rutime-PM-support'
      Merge branch 'ionic-xdp-support'
      Merge branch 'net-phy-eee-2'
      Merge branch '40GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/next -queue
      Merge branch 'pds_core-AER-handling'
      Merge branch 'net-constify-device_type'
      Merge branch 'net-kmem-cache-create'
      Merge tag 'wireless-next-2024-02-20' of git://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless-next
      Merge branch 'rework-genet-mdioclocking'
      Merge branch 'dp83826'
      Merge branch 'rtnetlink-reduce-rtnl-pressure'
      Merge branch 'pcs-xpcs-cleanups'
      Merge branch 'dsa-realtek-reset'
      Merge branch 'tcp-rcv-drop-reasons'
      Merge branch 'ioam6-mcast-events'
      Merge branch 'eee-linkmode-bitmaps'
      Merge branch 'ipv6-devconf-lockless'
      Merge branch 'qcom-phy-possible'
      Merge branch 'net-asp22-optimizations'
      Merge branch 'selftests-xfail'
      Merge branch 'netdevsim-link'
      Merge branch 'inet_dump_ifaddr-no-rtnl'
      Merge branch 'skb-helpers'
      Merge branch 'ionic-cleanups-and-perf-tuning'
      Merge branch 'net-gve-header-split-support'
      Merge branch 'mptcp-lowat-sockopt'
      Merge branch 'ipa-device-pointer-access'
      Merge branch 'mptcp-userspace-pm'
      Merge branch 'netlink-emsgsize'
      Merge branch '200GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/next-queue
      Merge branch 'ravb-cleanups'
      Merge branch '100GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/next-queue
      Merge branch 'tools-ynl-make-clean'
      Merge branch 'ynl-small-recv'
      Merge branch 'nexthop-group-stats'
      Merge tag 'ipsec-next-2024-03-06' of git://git.kernel.org/pub/scm/linux/kernel/git/klassert/ipsec-next
      Merge branch 'ipv6-lockless-dump-addrs'
      Merge branch '40GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/next-queue
      Merge branch 'ionic-diet'
      Merge branch 'hns3-fixes'
      Merge branch '100GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/next-queue
      Merge branch 'qmc-hdlc'
      Merge branch 'getsockopt-parameter-validation'
      Merge branch 'tcp-wmem-data-races'

David Thompson (1):
      mlxbf_gige: add support to display pause frame counters

David Wei (6):
      netdevsim: add Makefile for selftests
      netdevsim: allow two netdevsim ports to be connected
      netdevsim: forward skbs from one connected port to another
      netdevsim: add ndo_get_iflink() implementation
      netdevsim: add selftest for forwarding skb between connected ports
      netdevsim: fix rtnetlink.sh selftest

Deren Wu (5):
      wifi: mt76: mt792xu: enable dmashdl support
      wifi: mt76: mt7925: update PCIe DMA settings
      wifi: mt76: mt7925: support temperature sensor
      wifi: mt76: mt7921e: fix use-after-free in free_irq()
      wifi: mt76: mt7925e: fix use-after-free in free_irq()

Dima Tisnek (1):
      libbpf: Correct bpf_core_read.h comment wrt bpf_core_relo struct

Dimitri Fedrau (14):
      net: phy: Add BaseT1 auto-negotiation constants
      net: phy: Support 100/1000BT1 linkmode advertisements
      net: phy: c45: detect 100/1000BASE-T1 linkmode advertisements
      net: phy: marvell-88q2xxx: fix typos
      net: phy: marvell-88q2xxx: add driver for the Marvell 88Q2220 PHY
      net: phy: marvell-88q2xxx: add interrupt support for link detection
      net: phy: marvell-88q2xxx: add suspend / resume ops
      net: phy: marvell-88q2xxx: add support for temperature sensor
      net: phy: marvell-88q2xxx: add cable test support
      net: phy: marvell-88q2xxx: make mv88q2xxx_config_aneg generic
      net: phy: marvell-88q2xxx: switch to mv88q2xxx_config_aneg
      net: phy: marvell-88q2xxx: cleanup mv88q2xxx_config_init
      net: phy: marvell-88q2xxx: remove duplicated assignment of pma_extable
      net: phy: marvell-88q2xxx: move interrupt configuration

Diogo Ivo (1):
      net: ti: icssg-prueth: Remove duplicate cleanup calls in emac_ndo_stop()

Dmitry Antipov (8):
      wifi: ath11k: refactor ath11k_wmi_tlv_parse_alloc()
      wifi: ath9k: fix LNA selection in ath_ant_try_scan()
      wifi: ath12k: refactor ath12k_wmi_tlv_parse_alloc()
      wifi: rtlwifi: cleanup few rtlxxx_tx_fill_desc() routines
      wifi: rtw88: use kstrtoX_from_user() in debugfs handlers
      wifi: rt2x00: simplify rt2x00crypto_rx_insert_iv()
      wifi: wireless: avoid strlen() in cfg80211_michael_mic_failure()
      wifi: mwifiex: use kstrtoX_from_user() in debugfs handlers

Donald Hunter (19):
      tools/net/ynl: Add --output-json arg to ynl cli
      tools/net/ynl: Support sub-messages in nested attribute spaces
      doc/netlink: Describe sub-message selector resolution
      tools/net/ynl: Refactor fixed header encoding into separate method
      tools/net/ynl: Add support for encoding sub-messages
      tools/net/ynl: Encode default values for binary blobs
      tools/net/ynl: Combine struct decoding logic in ynl
      tools/net/ynl: Rename _fixed_header_size() to _struct_size()
      tools/net/ynl: Move formatted_string method out of NlAttr
      tools/net/ynl: Add support for nested structs
      doc/netlink: Describe nested structs in netlink raw docs
      tools/net/ynl: Add type info to struct members in generated docs
      doc/netlink/specs: Update the tc spec
      tools/net/ynl: Fix extack decoding for netlink-raw
      tools/net/ynl: Report netlink errors without stacktrace
      tools/net/ynl: Fix c codegen for array-nest
      tools/net/ynl: Add nest-type-value decoding
      doc/netlink: Allow empty enum-name in ynl specs
      doc/netlink/specs: Add spec for nlctrl netlink family

Duoming Zhou (2):
      wifi: brcm80211: handle pmk_op allocation failure
      nfp: flower: handle acti_netdevs allocation failure

Eduard Zingerman (22):
      bpf: make infinite loop detection in is_state_visited() exact
      selftests/bpf: check if imprecise stack spills confuse infinite loop detection
      bpf: One more maintainer for libbpf and BPF selftests
      libbpf: Remove unnecessary null check in kernel_supports()
      bpf: Handle scalar spill vs all MISC in stacksafe()
      selftests/bpf: States pruning checks for scalar vs STACK_MISC
      selftests/bpf: update tcp_custom_syncookie to use scalar packet offset
      libbpf: Allow version suffixes (___smth) for struct_ops types
      libbpf: Tie struct_ops programs to kernel BTF ids, not to local ids
      libbpf: Honor autocreate flag for struct_ops maps
      selftests/bpf: Test struct_ops map definition with type suffix
      selftests/bpf: Utility functions to capture libbpf log in test_progs
      selftests/bpf: Bad_struct_ops test
      selftests/bpf: Test autocreate behavior for struct_ops maps
      libbpf: Sync progs autoload with maps autocreate for struct_ops maps
      selftests/bpf: Verify struct_ops autoload/autocreate sync
      libbpf: Replace elf_state->st_ops_* fields with SEC_ST_OPS sec_type
      libbpf: Struct_ops in SEC("?.struct_ops") / SEC("?.struct_ops.link")
      libbpf: Rewrite btf datasec names starting from '?'
      selftests/bpf: Test case for SEC("?.struct_ops")
      bpf: Allow all printable characters in BTF DATASEC names
      selftests/bpf: Test cases for '?' in BTF names

Edward Adam Davis (1):
      Bluetooth: btintel: Fix null ptr deref in btintel_read_version

Edwin Peer (1):
      bnxt_en: implement fully specified 5-tuple masks

Emmanuel Grumbach (9):
      wifi: iwlwifi: mvm: introduce PHY_CONTEXT_CMD_API_VER_5
      wifi: iwlwifi: mvm: disconnect station vifs if recovery failed
      wifi: iwlwifi: mvm: fix the TLC command after ADD_STA
      iwlwifi: fw: fix more kernel-doc warnings
      wifi: iwlwifi: mvm: don't send NDPs for new tx devices
      wifi: iwlwifi: mvm: don't send BT_COEX_CI command on new devices
      wifi: iwlwifi: mvm: don't support reduced tx power on ack for new devices
      wifi: iwlwifi: mvm: don't set the MFP flag for the GTK
      wifi: iwlwifi: mvm: don't send the smart fifo command if not needed

Eric Dumazet (134):
      sock_diag: annotate data-races around sock_diag_handlers[family]
      inet_diag: annotate data-races around inet_diag_table[]
      inet_diag: add module pointer to "struct inet_diag_handler"
      inet_diag: allow concurrent operations
      sock_diag: add module pointer to "struct sock_diag_handler"
      sock_diag: allow concurrent operations
      sock_diag: allow concurrent operation in sock_diag_rcv_msg()
      sock_diag: remove sock_diag_mutex
      inet_diag: skip over empty buckets
      ipv6: make addrconf_wq single threaded
      net: make dev_unreg_count global
      sctp: preserve const qualifier in sctp_sk()
      net: add exit_batch_rtnl() method
      nexthop: convert nexthop_net_exit_batch to exit_batch_rtnl method
      bareudp: use exit_batch_rtnl() method
      bonding: use exit_batch_rtnl() method
      geneve: use exit_batch_rtnl() method
      gtp: use exit_batch_rtnl() method
      ipv4: add __unregister_nexthop_notifier()
      vxlan: use exit_batch_rtnl() method
      ip6_gre: use exit_batch_rtnl() method
      ip6_tunnel: use exit_batch_rtnl() method
      ip6_vti: use exit_batch_rtnl() method
      sit: use exit_batch_rtnl() method
      ip_tunnel: use exit_batch_rtnl() method
      bridge: use exit_batch_rtnl() method
      xfrm: interface: use exit_batch_rtnl() method
      net-procfs: use xarray iterator to implement /proc/net/dev
      ethtool: do not use rtnl in ethnl_default_dumpit()
      ipv6: mcast: remove one synchronize_net() barrier in ipv6_mc_down()
      net: use synchronize_net() in dev_change_name()
      bridge: vlan: use synchronize_net() when holding RTNL
      ipv4/fib: use synchronize_net() when holding RTNL
      net: use synchronize_rcu_expedited in cleanup_net()
      netfilter: conntrack: expedite rcu in nf_conntrack_cleanup_net_list
      vlan: use xarray iterator to implement /proc/net/vlan/config
      rtnetlink: use xarray iterator to implement rtnl_dump_ifinfo()
      vlan: use netdev_lockdep_set_classes()
      net: bridge: use netdev_lockdep_set_classes()
      net: add netdev_lockdep_set_classes() to virtual drivers
      net: annotate data-races around dev->name_assign_type
      ip_tunnel: annotate data-races around t->parms.link
      dev: annotate accesses to dev->link
      net: convert dev->reg_state to u8
      net-sysfs: convert netdev_show() to RCU
      net-sysfs: use dev_addr_sem to remove races in address_show()
      net-sysfs: convert dev->operstate reads to lockless ones
      net-sysfs: convert netstat_show() to RCU
      net: remove stale mentions of dev_base_lock in comments
      net: add netdev_set_operstate() helper
      net: remove dev_base_lock from do_setlink()
      net: remove dev_base_lock from register_netdevice() and friends.
      net: remove dev_base_lock
      net: reorganize "struct sock" fields
      rtnetlink: prepare nla_put_iflink() to run under RCU
      ipv6: prepare inet6_fill_ifla6_attrs() for RCU
      ipv6: prepare inet6_fill_ifinfo() for RCU protection
      ipv6: use xarray iterator to implement inet6_dump_ifinfo()
      netlink: fix netlink_diag_dump() return value
      netlink: hold nlk->cb_mutex longer in __netlink_dump_start()
      rtnetlink: change nlk->cb_mutex role
      rtnetlink: add RTNL_FLAG_DUMP_UNLOCKED flag
      ipv6: switch inet6_dump_ifinfo() to RCU protection
      inet: allow ip_valid_fib_dump_req() to be called with RTNL or RCU
      nexthop: allow nexthop_mpath_fill_node() to be called without RTNL
      inet: switch inet_dump_fib() to RCU protection
      rtnetlink: make rtnl_fill_link_ifmap() RCU ready
      rtnetlink: provide RCU protection to rtnl_fill_prop_list()
      ipv6: anycast: complete RCU handling of struct ifacaddr6
      netlink: use kvmalloc() in netlink_alloc_large_skb()
      inet: annotate devconf data-races
      inet: do not use RTNL in inet_netconf_get_devconf()
      inet: use xa_array iterator to implement inet_netconf_dump_devconf()
      tcp: remove some holes in struct tcp_sock
      net: call skb_defer_free_flush() from __napi_busy_loop()
      inet6: expand rcu_read_lock() scope in inet6_dump_addr()
      ipv6: add ipv6_devconf_read_txrx cacheline_group
      ipv6: annotate data-races around cnf.disable_ipv6
      ipv6: addrconf_disable_ipv6() optimization
      ipv6: annotate data-races around cnf.mtu6
      ipv6: annotate data-races around cnf.hop_limit
      ipv6: annotate data-races around cnf.forwarding
      ipv6: annotate data-races in ndisc_router_discovery()
      ipv6: annotate data-races around idev->cnf.ignore_routes_with_linkdown
      ipv6: annotate data-races in rt6_probe()
      ipv6: annotate data-races around devconf->proxy_ndp
      ipv6: annotate data-races around devconf->disable_policy
      ipv6: addrconf_disable_policy() optimization
      ipv6/addrconf: annotate data-races around devconf fields (I)
      ipv6/addrconf: annotate data-races around devconf fields (II)
      ipv6: use xa_array iterator to implement inet6_netconf_dump_devconf()
      inet: annotate data-races around ifa->ifa_tstamp and ifa->ifa_cstamp
      inet: annotate data-races around ifa->ifa_valid_lft
      inet: annotate data-races around ifa->ifa_preferred_lft
      inet: annotate data-races around ifa->ifa_flags
      inet: prepare inet_base_seq() to run without RTNL
      inet: use xa_array iterator to implement inet_dump_ifaddr()
      net: adopt skb_network_offset() and similar helpers
      net: adopt skb_network_header_len() more broadly
      tcp: align tcp_sock_write_rx group
      net: gro: rename skb_gro_header_hard()
      net: gro: change skb_gro_network_header()
      net: gro: enable fast path for more cases
      tcp: gro: micro optimizations in tcp[4]_gro_complete()
      net/smc: reduce rtnl pressure in smc_pnet_create_pnetids_list()
      netlink: let core handle error cases in dump operations
      net: introduce struct net_hotdata
      net: move netdev_budget and netdev_budget to net_hotdata
      net: move netdev_tstamp_prequeue into net_hotdata
      net: move ptype_all into net_hotdata
      net: move netdev_max_backlog to net_hotdata
      net: move ip_packet_offload and ipv6_packet_offload to net_hotdata
      net: move tcpv4_offload and tcpv6_offload to net_hotdata
      net: move dev_tx_weight to net_hotdata
      net: move dev_rx_weight to net_hotdata
      net: move skbuff_cache(s) to net_hotdata
      udp: move udpv4_offload and udpv6_offload to net_hotdata
      ipv6: move tcpv6_protocol and udpv6_protocol to net_hotdata
      inet: move tcp_protocol and udp_protocol to net_hotdata
      inet: move inet_ehash_secret and udp_ehash_secret into net_hotdata
      ipv6: move inet6_ehash_secret and udp6_ehash_secret into net_hotdata
      ipv6: move tcp_ipv6_hash_secret and udp_ipv6_hash_secret to net_hotdata
      net: introduce include/net/rps.h
      net: move rps_sock_flow_table to net_hotdata
      net: ip_tunnel: make sure to pull inner header in ip_tunnel_rcv()
      ipv6: make inet6_fill_ifaddr() lockless
      ipv6: make in6_dump_addrs() lockless
      ipv6: use xa_array iterator to implement inet6_dump_addr()
      ipv6: remove RTNL protection from inet6_dump_addr()
      net: add skb_data_unref() helper
      ipv6: raw: check sk->sk_rcvbuf earlier
      ipv4: raw: check sk->sk_rcvbuf earlier
      udp: no longer touch sk->sk_refcnt in early demux
      net: gro: move two declarations to include/net/gro.h

Erick Archer (2):
      wifi: iwlegacy: Use kcalloc() instead of kzalloc()
      net: wwan: t7xx: Prefer struct_size over open coded arithmetic

Ernesto Castellotti (1):
      ixgbe: Add 1000BASE-BX support

FUJITA Tomonori (2):
      rust: phy: use `srctree`-relative links
      rust: phy: use VTABLE_DEFAULT_ERROR

Fedor Pchelkin (1):
      mac802154: fix llsec key resources release in mac802154_llsec_key_del

Felix Fietkau (1):
      wifi: mt76: mt7915: fix error recovery with WED enabled

Florian Fainelli (4):
      net: mdio: mdio-bcm-unimac: Manage clock around I/O accesses
      net: bcmgenet: Pass "main" clock down to the MDIO driver
      Revert "net: bcmgenet: Ensure MDIO unregistration has clocks enabled"
      net: dsa: Leverage core stats allocator

Florian Lehner (1):
      perf/bpf: Fix duplicate type check

Florian Westphal (12):
      netfilter: arptables: allow xtables-nft only builds
      netfilter: xtables: allow xtables-nft only builds
      netfilter: ebtables: allow xtables-nft only builds
      net: skbuff: add overflow debug check to pull/push helpers
      netfilter: xtables: fix up kconfig dependencies
      netfilter: nft_set_pipapo: constify lookup fn args where possible
      netfilter: nft_set_pipapo: do not rely on ZERO_SIZE_PTR
      netfilter: nft_set_pipapo: shrink data structures
      netfilter: nft_set_pipapo: speed up bulk element insertions
      netfilter: nft_set_pipapo: use GFP_KERNEL for insertions
      netfilter: move nf_reinject into nfnetlink_queue modules
      net: mpls: error out if inner headers are not set

Francesco Dolcini (1):
      can: m_can: remove redundant check for pm_clock_support

Frank Li (1):
      dt-bindings: net: fec: add iommus property

Frédéric Danis (1):
      Bluetooth: Fix eir name length

Gal Pressman (2):
      net/mlx5: Remove initial segmentation duplicate definitions
      net/mlx5: Change missing SyncE capability print to debug

Ganesh Babu Jothiram (1):
      wifi: ath12k: Read board id to support split-PHY QCN9274

Gavrilov Ilia (6):
      tcp: fix incorrect parameter validation in the do_tcp_getsockopt() function
      ipmr: fix incorrect parameter validation in the ip_mroute_getsockopt() function
      l2tp: fix incorrect parameter validation in the pppol2tp_getsockopt() function
      udp: fix incorrect parameter validation in the udp_lib_getsockopt() function
      net: kcm: fix incorrect parameter validation in the kcm_getsockopt) function
      net/x25: fix incorrect parameter validation in the x25_getsockopt() function

Geert Uytterhoeven (3):
      tcp: Spelling s/curcuit/circuit/
      octeon_ep_vf: Improve help text grammar
      Simplify net_dbg_ratelimited() dummy

Geetha sowjanya (2):
      octeontx2-af: Create BPIDs free pool
      octeontx2-af: Cleanup loopback device checks

Geliang Tang (47):
      selftests/bpf: Drop return in bpf_testmod_exit
      bpf, btf: Fix return value of register_btf_id_dtor_kfuncs
      bpf, btf: Add check_btf_kconfigs helper
      bpf, btf: Check btf for register_bpf_struct_ops
      selftests: mptcp: netlink: drop duplicate var ret
      selftests: mptcp: simult flows: define missing vars
      selftests: mptcp: join: change capture/checksum as bool
      selftests: mptcp: diag: change timeout_poll to 30
      mptcp: make pm_remove_addrs_and_subflows static
      mptcp: export mptcp_genl_family & mptcp_nl_fill_addr
      mptcp: implement mptcp_userspace_pm_dump_addr
      mptcp: add token for get-addr in yaml
      mptcp: dump addrs in userspace pm list
      mptcp: check userspace pm flags
      selftests: mptcp: add userspace pm subflow flag
      selftests: mptcp: add token for dump_addr
      selftests: mptcp: add mptcp_lib_check_output helper
      selftests: mptcp: dump userspace addrs list
      mptcp: add userspace_pm_lookup_addr_by_id helper
      mptcp: implement mptcp_userspace_pm_get_addr
      mptcp: get addr in userspace pm list
      selftests: mptcp: add token for get_addr
      selftests: mptcp: userspace pm get addr tests
      mptcp: drop duplicate header inclusions
      mptcp: update set_flags interfaces
      mptcp: set error messages for set_flags
      mptcp: drop lookup_by_id in lookup_addr
      selftests: mptcp: add mptcp_lib_check_tools helper
      selftests: mptcp: add local variables rndh
      selftests: mptcp: add mptcp_lib_ns_init/exit helpers
      selftests: mptcp: more operations in ns_init/exit
      selftests: mptcp: add mptcp_lib_events helper
      selftests: mptcp: print all error messages to stdout
      selftests: mptcp: connect: add dedicated port counter
      selftests: mptcp: connect: fix misaligned output
      selftests: mptcp: sockopt: print every test result
      selftests: mptcp: export TEST_COUNTER variable
      selftests: mptcp: add print_title in mptcp_lib
      selftests: mptcp: print test results with counters
      selftests: mptcp: use += operator to append strings
      selftests: mptcp: print test results with colors
      selftests: mptcp: call test_fail without argument
      selftests: mptcp: extract mptcp_lib_check_expected
      selftests: mptcp: print_test out of verify_listener_events
      selftests: mptcp: add mptcp_lib_verify_listener_events
      selftests: mptcp: declare event macros in mptcp_lib
      selftests: mptcp: use KSFT_SKIP/KSFT_PASS/KSFT_FAIL

Gen Xu (1):
      wifi: mt76: mt792x: fix ethtool warning

George Guo (1):
      netlabel: cleanup struct netlbl_lsm_catmap

Gerhard Engleder (2):
      tsnep: Add link down PHY loopback support
      tsnep: Add helper for RX XDP_RING_NEED_WAKEUP flag

Gregory Greenman (1):
      wifi: iwlwifi: bump FW API to 87 for AX/BZ/SC devices

Grzegorz Nitka (3):
      ice: introduce new E825C devices family
      ice: Add helper function ice_is_generic_mac
      ice: add support for 3k signing DDP sections for E825C

Guillaume Nault (1):
      ipv4: Set the routing scope properly in ip_route_output_ports().

Gustavo A. R. Silva (1):
      wifi: brcmfmac: fweh: Fix boot crash on Raspberry Pi 4

Haiyue Wang (1):
      bpf,token: Use BIT_ULL() to convert the bit mask

Hamdan Igbaria (1):
      net/mlx5: DR, Change SWS usage to debug fs seq_file interface

Hangbin Liu (7):
      selftests/net/forwarding: add slowwait functions
      selftests: bonding: use tc filter to check if LACP was sent
      selftests: bonding: reduce garp_test/arp_validate test time
      selftests: bonding: use slowwait instead of hard code sleep
      selftests: bonding: make sure new active is not null
      tools: ynl-gen: support using pre-defined values in attr checks
      netlink: specs: support unterminated-ok

Hans de Goede (1):
      wifi: brcmfmac: Add DMI nvram filename quirk for ACEPC W5 Pro

Hao Lan (2):
      net: hns3: add new 200G link modes for hisilicon device
      net: hns3: Disable SerDes serial loopback for HiLink H60

Hao Sun (1):
      bpf: Refactor ptr alu checking rules to allow alu explicitly

Hao Zhang (1):
      wifi: mt76: mt7925: fix mcu query command fail

Hariprasad Kelam (2):
      Octeontx2-af: Fetch MAC channel info from firmware
      Octeontx2-af: Fix an issue in firmware shared data reserved space

Harshit Mogalapalli (1):
      net: sched: Remove NET_ACT_IPT from Kconfig

Harshitha Prem (1):
      wifi: ath12k: add support for peer meta data version

Hayes Wang (1):
      r8152: fix unknown device for choose_configuration

Hector Martin (2):
      wifi: brcmfmac: cfg80211: Use WSEC to set SAE password
      wifi: brcmfmac: Demote vendor-specific attach/detach messages to info

Heiner Kallweit (39):
      mlxsw: remove I2C_CLASS_HWMON from drivers w/o detect and address_list
      ethtool: replace struct ethtool_eee with a new struct ethtool_keee on kernel side
      ethtool: switch back from ethtool_keee to ethtool_eee for ioctl
      ethtool: adjust struct ethtool_keee to kernel needs
      ethtool: add suffix _u32 to legacy bitmap members of struct ethtool_keee
      ethtool: add linkmode bitmap support to struct ethtool_keee
      net: phy: c45: change genphy_c45_ethtool_[get|set]_eee to use EEE linkmode bitmaps
      net: phy: realtek: add support for RTL8126A-integrated 5Gbps PHY
      r8169: simplify EEE handling
      r8169: add support for RTL8126A
      net: phy: add helper phy_advertise_eee_all
      r8169: use new helper phy_advertise_eee_all
      tg3: convert EEE handling to use linkmode bitmaps
      net: phy: realtek: add 5Gbps support to rtl822x_config_aneg()
      r8169: remove setting LED default trigger, this is done by LED core now
      bnxt: convert EEE handling to use linkmode bitmaps
      r8169: improve checking for valid LED modes
      bnx2x: convert EEE handling to use linkmode bitmaps
      net: atlantic: convert EEE handling to use linkmode bitmaps
      net: phy: realtek: use generic MDIO helpers to simplify the code
      tg3: fix bug caused by uninitialized variable
      r8169: simplify code by using core-provided pcpu stats allocation
      r8169: add LED support for RTL8125/RTL8126
      r8169: add generic rtl_set_eee_txidle_timer function
      r8169: support setting the EEE tx idle timer on RTL8168h
      r8169: add support for returning tx_lpi_timer in ethtool get_eee
      net: mdio: add helpers for accessing the EEE CAP2 registers
      net: phy: add PHY_EEE_CAP2_FEATURES
      net: phy: c45: add and use genphy_c45_read_eee_cap2
      net: phy: c45: add support for EEE link partner ability 2 to genphy_c45_read_eee_lpa
      net: phy: c45: add support for MDIO_AN_EEE_ADV2
      r8169: add MODULE_FIRMWARE entry for RTL8126A
      tg3: copy only needed fields from userspace-provided EEE data
      tg3: simplify tg3_phy_autoneg_cfg
      net: phy: simplify genphy_c45_ethtool_set_eee
      ethtool: ignore unused/unreliable fields in set_eee op
      ethtool: remove ethtool_eee_use_linkmodes
      net: phy: simplify a check in phy_check_link_status
      r8169: switch to new function phy_support_eee

Herve Codina (4):
      net: wan: Add support for QMC HDLC
      MAINTAINERS: Add the Freescale QMC HDLC driver entry
      net: wan: fsl_qmc_hdlc: Add runtime timeslots changes support
      net: wan: fsl_qmc_hdlc: Add framer support

Horatiu Vultur (5):
      net: micrel: Fix set/get PHC time for lan8814
      net: lan966x: debugfs: Fix showing the port keyset
      net: micrel: Fix the frequency adjustments
      net: phy: micrel: lan8814 led errata
      net: phy: micrel: lan8814 cable improvement errata

Hou Tao (5):
      bpf: Support inlining bpf_kptr_xchg() helper
      selftests/bpf: Factor out get_xlated_program() helper
      selftests/bpf: Test the inlining of bpf_kptr_xchg()
      bpf, arm64: Enable the inline of bpf_kptr_xchg()
      selftests/bpf: Enable kptr_xchg_inline test for arm64

Howard Hsu (1):
      wifi: mt76: mt7996: fix HE beamformer phy cap for station vif

Ian Rogers (1):
      libbpf: Add some details for BTF parsing failures

Ido Schimmel (18):
      selftests: forwarding: Add missing multicast routing config entries
      selftests: vxlan_mdb: Avoid duplicate test names
      selftests: forwarding: Remove IPv6 L3 multipath hash tests
      selftests: forwarding: Parametrize mausezahn delay
      selftests: forwarding: Make tc-police pass on debug kernels
      selftests: forwarding: Make vxlan-bridge-1q pass on debug kernels
      selftests: forwarding: Make VXLAN ECN encap tests more robust
      selftests: forwarding: Make {, ip6}gre-inner-v6-multipath tests more robust
      net: nexthop: Add nexthop group entry stats
      net: nexthop: Expose nexthop group stats to user space
      net: nexthop: Add hardware statistics notifications
      net: nexthop: Add ability to enable / disable hardware statistics
      net: nexthop: Expose nexthop group HW stats to user space
      nexthop: Simplify dump error handling
      nexthop: Only parse NHA_OP_FLAGS for get messages that require it
      nexthop: Only parse NHA_OP_FLAGS for dump messages that require it
      nexthop: Fix out-of-bounds access during attribute validation
      nexthop: Fix splat with CONFIG_DEBUG_PREEMPT=y

Ilan Peer (8):
      wifi: mac80211_hwsim: Declare support for negotiated TTLM
      wifi: iwlwifi: mvm: Add support for removing responder TKs
      wifi: iwlwifi: mvm: Fix FTM initiator flags
      wifi: iwlwifi: mvm: Declare support for secure LTF measurement
      wifi: iwlwifi: mvm: Extend support for P2P service discovery
      wifi: iwlwifi: mvm: Fix the listener MAC filter flags
      wifi: mac80211: Allow beacons to update BSS table regardless of scan
      wifi: mac80211: Adjust CQM handling for MLO

Iulia Tanasescu (2):
      Bluetooth: ISO: Add hcon for listening bis sk
      Bluetooth: ISO: Reassemble PA data for bcast sink

Ivan Vecera (5):
      i40e: Use existing helper to find flow director VSI
      i40e: Introduce and use macros for iterating VSIs and VEBs
      i40e: Add helpers to find VSI and VEB by SEID and use them
      i40e: Fix broken support for floating VEBs
      i40e: Remove VEB recursion

Jacob Keller (14):
      ice: introduce PTP state machine
      ice: pass reset type to PTP reset functions
      ice: rename verify_cached to has_ready_bitmap
      ice: don't check has_ready_bitmap in E810 functions
      ice: rename ice_ptp_tx_cfg_intr
      ice: factor out ice_ptp_rebuild_owner()
      ice: stop destroying and reinitalizing Tx tracker during reset
      ice: pass VSI pointer into ice_vc_isvalid_q_id
      ice: remove unnecessary duplicate checks for VF VSI ID
      ice: use relative VSI index for VFs instead of PF VSI number
      ice: remove vf->lan_vsi_num field
      ice: rename ice_write_* functions to ice_pack_ctx_*
      ice: use GENMASK instead of BIT(n) - 1 in pack functions
      ice: cleanup line splitting for context set functions

Jakub Kicinski (128):
      Merge branch 'gve-alloc-before-freeing-when-changing-config'
      Revert "net: ethernet: qualcomm: Remove QDF24xx support"
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
      Merge branch 'selftests-tc-testing-misc-changes-for-tdc'
      Merge tag 'wireless-next-2024-01-25' of git://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless-next
      Merge branch 'selftests-updates-to-fcnal-test-for-autoamted-environment'
      Merge branch 'af_unix-random-improvements-for-gc'
      Merge branch 'net-phy-generic-polarity-led-support-for-qca808x'
      Merge tag 'for-netdev' of https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next
      Merge branch 'net-dsa-microchip-implement-phy-loopback'
      net: free altname using an RCU callback
      Merge branch 'mt7530-dsa-subdriver-improvements-act-i'
      Merge branch 'prevent-nullptr-exceptions-in-isr'
      Merge branch 'net-phy-split-at803x'
      Merge branch 'af_unix-remove-io_uring-dead-code-in-gc'
      Merge branch 'tools-net-ynl-add-features-for-tc-family'
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
      Merge branch 'net-ipa-simplify-tx-power-handling'
      Merge branch 'net-sched-load-modules-via-alias'
      tools: ynl: include dpll and mptcp_pm in C codegen
      tools: ynl: generate code for ovs families
      tools: ynl: auto-gen for all genetlink families
      Merge branch 'tools-ynl-auto-gen-for-all-genetlink-families'
      selftests: netdevsim: stop using ifconfig
      Merge branch 'add-support-for-encoding-multi-attr-to-ynl'
      Merge branch 'net-phy-add-and-use-helper-phy_advertise_eee_all'
      Merge branch 'net-eee-network-driver-cleanups'
      Merge branch 'net-phy-realtek-complete-5gbps-support-and-replace-private-constants'
      Merge branch 'selftests-bonding-use-slowwait-when-waiting'
      Merge tag 'mlx5-updates-2024-02-01' of git://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux
      Merge branch 'mt7530-dsa-subdriver-improvements-act-ii'
      Merge branch 'net-more-factorization-in-cleanup_net-paths'
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
      Merge branch 'add-hw-checksum-offload-support-for-rz-g2l-gbethernet-ip'
      Merge branch '10GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/next-queue
      Merge branch 'for-io_uring-add-napi-busy-polling-support'
      Merge branch 'bnxt_en-ntuple-and-rss-updates'
      Merge branch '1GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/next-queue
      Merge branch 'net-use-net-dev_by_index-in-two-places'
      Merge branch 'net-adopt-netdev_lockdep_set_classes'
      Merge branch 'r8169-extend-eee-tx-idle-timer-support'
      Merge branch 'add-multi-buff-support-for-xdp-running-in-generic-mode'
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
      Merge branch 'for-thermal-genetlink-family-bind-unbind-callbacks'
      Merge branch 'net-phy-marvell-88q2xxx-add-driver-for-the-marvell-88q2220-phy'
      Merge tag 'wireless-next-2024-02-22' of git://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless-next
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
      Merge tag 'nf-next-24-02-21' of https://git.kernel.org/pub/scm/linux/kernel/git/netfilter/nf-next
      Merge branch 'net-staging-don-t-bother-filling-in-ethtool-driver-version'
      Merge branch 'tools-ynl-couple-of-cmdline-enhancements'
      genetlink: make info in GENL_REQ_ATTR_CHECK() const
      tools: ynl: fix header guards
      Merge branch 'mptcp-various-small-improvements'
      selftests: netdevsim: be less selective for FW for the devlink test
      tools: ynl: protect from old OvS headers
      tools: ynl: give up on libmnl for auto-ints
      tools: ynl: create local attribute helpers
      tools: ynl: create local for_each helpers
      tools: ynl: create local nlmsg access helpers
      tools: ynl: create local ARRAY_SIZE() helper
      tools: ynl: make yarg the first member of struct ynl_dump_state
      tools: ynl-gen: remove unused parse code
      tools: ynl: wrap recv() + mnl_cb_run2() into a single helper
      tools: ynl: use ynl_sock_read_msgs() for ACK handling
      tools: ynl: stop using mnl_cb_run2()
      tools: ynl: switch away from mnl_cb_t
      tools: ynl: switch away from MNL_CB_*
      tools: ynl: stop using mnl socket helpers
      tools: ynl: remove the libmnl dependency
      tools: ynl: use MSG_DONTWAIT for getting notifications
      Merge branch 'tools-ynl-stop-using-libmnl'
      Merge branch 'inet-implement-lockless-rtm_getnetconf-ops'
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
      selftests: kselftest_harness: use KSFT_* exit codes
      selftests: kselftest_harness: generate test name once
      selftests: kselftest_harness: save full exit code in metadata
      selftests: kselftest_harness: use exit code to store skip
      selftests: kselftest: add ksft_test_result_code(), handling all exit codes
      selftests: kselftest_harness: print test name for SKIP
      selftests: kselftest_harness: separate diagnostic message with # in ksft_test_result_code()
      selftests: kselftest_harness: let PASS / FAIL provide diagnostic
      selftests: kselftest_harness: support using xfail
      selftests: ip_local_port_range: use XFAIL instead of SKIP
      Merge tag 'for-netdev' of https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next
      eth: igc: remove unused embedded struct net_device
      Merge branch 'intel-wired-lan-driver-updates-2024-02-28-ixgbe-igc-igb-e1000e-e100'
      Merge branch 'selftests-forwarding-various-improvements'
      Merge branch 'net-phy-micrel-lan8814-erratas'
      Merge branch 'net-constify-struct-class-usage'
      Merge branch 'net-ethernet-rework-eee'
      selftests: avoid using SKIP(exit()) in harness fixure setup
      netlink: handle EMSGSIZE errors in the core
      netdev: let netlink core handle -EMSGSIZE errors
      genetlink: fit NLMSG_DONE into same read() as families
      tools: ynl: rename make hardclean -> distclean
      tools: ynl: add distclean to .PHONY in all makefiles
      tools: ynl: remove __pycache__ during clean
      tools: ynl: move the new line in NlMsg __repr__
      tools: ynl: allow setting recv() size
      tools: ynl: support debug printing messages
      tools: ynl: add --dbg-small-recv for easier kernel testing
      Merge branch 'mptcp-some-clean-up-patches'
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
      tools: ynl: check for overflow of constructed messages
      Merge branch 'isdn-constify-struct-class-usage'
      Merge branch 'tools-net-ynl-add-support-for-nlctrl-netlink-family'
      Merge tag 'rxrpc-iothread-20240305' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs
      Merge branch 'selftests-mptcp-share-code-and-fix-shellcheck-warnings'
      Merge branch 'net-group-together-hot-data'
      netdev: add per-queue statistics
      netdev: add queue stat for alloc failures
      eth: bnxt: support per-queue statistics
      Merge branch 'netdev-add-per-queue-statistics'
      net: dqs: add NIC stall detector based on BQL
      Add Jeff Kirsher to .get_maintainer.ignore
      Merge tag 'wireless-next-2024-03-08' of git://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless-next
      Merge branch '1GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/net-queue
      Merge tag 'ieee802154-for-net-next-2024-03-07' of git://git.kernel.org/pub/scm/linux/kernel/git/wpan/wpan-next
      Merge tag 'for-net-next-2024-03-08' of git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth-next
      Merge tag 'mlx5-socket-direct-v3' of git://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux
      ynl: samples: fix recycling rate calculation
      Merge branch 'mlxsw-support-for-nexthop-group-statistics'
      Merge branch 'selftests-mptcp-various-improvements'
      tools: ynl: remove trailing semicolon
      netlink: specs: support generating code for genl socket priv
      Merge tag 'for-netdev' of https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next
      Merge branch 'nexthop-fix-two-nexthop-group-statistics-issues'
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net

Jakub Sitnicki (1):
      selftests: udpgso: Pull up network setup into shell script

Jann Horn (1):
      net: ethtool: avoid rebuilds on UTS_RELEASE change

Jason Xing (15):
      tcp: no need to use acceptable for conn_request
      tcp: add a dropreason definitions and prepare for cookie check
      tcp: directly drop skb in cookie check for ipv4
      tcp: use drop reasons in cookie check for ipv4
      tcp: directly drop skb in cookie check for ipv6
      tcp: use drop reasons in cookie check for ipv6
      tcp: introduce dropreasons in receive path
      tcp: add more specific possible drop reasons in tcp_rcv_synsent_state_process()
      tcp: add dropreasons in tcp_rcv_state_process()
      tcp: make the dropreason really work when calling tcp_rcv_state_process()
      tcp: make dropreason in tcp_child_process() work
      tcp: add tracing of skb/skaddr in tcp_event_sk_skb class
      tcp: add tracing of skbaddr in tcp_event_skb class
      mptcp: annotate a data-race around sysctl_tcp_wmem[0]
      tcp: annotate a data-race around sysctl_tcp_wmem[0]

Javier Martinez Canillas (1):
      wifi: wlcore: sdio: Rate limit wl12xx_sdio_raw_{read,write}() failures warns

Jedrzej Jagielski (3):
      ixgbe: Convert ret val type from s32 to int
      ixgbe: Rearrange args to fix reverse Christmas tree
      ixgbe: Clarify the values of the returning status

Jeff Johnson (20):
      wifi: ath10k: use flexible array in struct wmi_host_mem_chunks
      wifi: ath10k: use flexible arrays for WMI start scan TLVs
      wifi: ath10k: remove struct wmi_pdev_chanlist_update_event
      wifi: ath10k: remove unused template structs
      wifi: ath10k: use flexible array in struct wmi_tdls_peer_capabilities
      wifi: ath10k: remove duplicate memset() in 10.4 TDLS peer update
      wifi: ath12k: Make QMI message rules const
      wifi: ath12k: Remove unnecessary struct qmi_txn initializers
      wifi: ath12k: Add missing qmi_txn_cancel() calls
      wifi: ath12k: Use initializers for QMI message buffers
      wifi: ath11k: document HAL_RX_BUF_RBM_SW4_BM
      wifi: ath10k: add missing wmi_10_4_feature_mask documentation
      wifi: ath10k: correctly document enum wmi_tlv_tx_pause_id
      wifi: ath10k: fix htt_q_state_conf & htt_q_state kernel-doc
      wifi: ath10k: Fix htt_data_tx_completion kernel-doc warning
      wifi: ath10k: Fix enum ath10k_fw_crash_dump_type kernel-doc
      Revert "nl80211/cfg80211: Specify band specific min RSSI thresholds with sched scan"
      wifi: ath11k: Really consistently use ath11k_vif_to_arvif()
      dt-bindings: net: wireless: qcom: Update maintainers
      wifi: ath11k: constify MHI channel and controller configs

Jeremy Kerr (11):
      net: mctp: avoid confusion over local/peer dest/source addresses
      net: mctp: Add some detail on the key allocation implementation
      net: mctp: make key lookups match the ANY address on either local or peer
      net: mctp: tests: create test skbs with the correct net and device
      net: mctp: separate key correlation across nets
      net: mctp: provide a more specific tag allocation ioctl
      net: mctp: tests: Add netid argument to __mctp_route_test_init
      net: mctp: tests: Add MCTP net isolation tests
      net: mctp: copy skb ext data when fragmenting
      net: mctp: tests: Test that outgoing skbs have flow data populated
      net: mctp: tests: Add a test for proper tag creation on local output

Jeroen de Borst (3):
      gve: Add header split device option
      gve: Add header split data path
      gve: Add header split ethtool stats

Jesper Nilsson (1):
      net: stmmac: mmc_core: Drop interrupt registers from stats

Jian Shen (1):
      net: hns3: add checking for vf id of mailbox

Jiawen Wu (4):
      net: txgbe: move interrupt codes to a separate file
      net: txgbe: use irq_domain for interrupt controller
      net: txgbe: fix GPIO interrupt blocking
      net: txgbe: fix to clear interrupt status after handling IRQ

Jie Wang (1):
      net: hns3: fix port duplex configure error in IMP reset

Jijie Shao (2):
      net: hns3: fix wrong judgment condition issue
      net: hns3: fix delete tc fail issue

Jimmy Assarsson (2):
      can: kvaser_pciefd: Add support for Kvaser M.2 PCIe 4xCAN
      can: kvaser_usb: Add support for Leaf v3

Jinjian Song (4):
      wwan: core: Add WWAN fastboot port type
      net: wwan: t7xx: Add sysfs attribute for device state machine
      net: wwan: t7xx: Infrastructure for early port configuration
      net: wwan: t7xx: Add fastboot WWAN port

Jinjie Ruan (1):
      wifi: mwifiex: debugfs: Drop unnecessary error check for debugfs_create_dir()

Jiri Olsa (9):
      bpf: Add cookie to perf_event bpf_link_info records
      bpf: Store cookies in kprobe_multi bpf_link_info data
      bpftool: Fix wrong free call in do_show_link
      selftests/bpf: Add cookies check for kprobe_multi fill_link_info test
      selftests/bpf: Add cookies check for perf_event fill_link_info test
      selftests/bpf: Add fill_link_info test for perf event
      bpftool: Display cookie for perf event link probes
      bpftool: Display cookie for kprobe multi link
      selftests/bpf: Add kprobe multi triggering benchmarks

Jiri Pirko (11):
      dpll: move xa_erase() call in to match dpll_pin_alloc() error path order
      dpll: extend uapi by lock status error attribute
      dpll: extend lock_status_get() op by status error and expose to user
      net/mlx5: DPLL, Implement lock status error value
      dpll: check that pin is registered in __dpll_pin_unregister()
      tools: ynl: don't access uninitialized attr_space variable
      tools: ynl: allow user to specify flag attr with bool values
      tools: ynl: process all scalar types encoding in single elif statement
      tools: ynl: allow user to pass enum string instead of scalar value
      dpll: spec: use proper enum for pin capabilities attribute
      dpll: fix dpll_xa_ref_*_del() for multiple registrations

Joe Damato (5):
      net/mlx5e: link NAPI instances to queues and IRQs
      eventpoll: support busy poll per epoll instance
      eventpoll: Add per-epoll busy poll packet budget
      eventpoll: Add per-epoll prefer busy poll option
      eventpoll: Add epoll ioctl for epoll_params

Johannes Berg (155):
      wifi: cfg80211: add support for SPP A-MSDUs
      wifi: mac80211: add support for SPP A-MSDUs
      wifi: mac80211_hwsim: advertise AP-side EMLSR/EMLMR capa
      wifi: mac80211: take EML/MLD capa from assoc response
      wifi: cfg80211: validate MLO connections better
      wifi: mac80211_hwsim: advertise 15 simultaneous links
      wifi: mac80211: simplify ieee80211_config_bw() prototype
      wifi: mac80211: remove extra element parsing
      wifi: mac80211: simplify HE capability access
      wifi: mac80211: disallow drivers with HT wider than HE
      wifi: mac80211: don't set bss_conf in parsing
      wifi: iwlwifi: add kunit test for devinfo ordering
      wifi: iwlwifi: make TB reallocation a debug message
      wifi: iwlwifi: mvm: limit EHT 320 MHz MCS for STEP URM
      wifi: iwlwifi: remove retry loops in start
      wifi: iwlwifi: nvm-parse: advertise common packet padding
      kunit: add wireless unit tests
      wifi: iwlwifi: mvm: report beacon protection failures
      wifi: iwlwifi: mvm: d3: disconnect on GTK rekey failure
      wifi: iwlwifi: fix some kernel-doc issues
      wifi: iwlwifi: dbg-tlv: avoid extra allocation/copy
      wifi: iwlwifi: dbg-tlv: use struct_size() for allocation
      wifi: iwlwifi: dbg-tlv: ensure NUL termination
      wifi: iwlwifi: fw: dbg: ensure correct config name sizes
      wifi: iwlwifi: acpi: fix WPFC reading
      wifi: iwlwifi: mvm: initialize rates in FW earlier
      wifi: iwlwifi: mvm: d3: fix IPN byte order
      wifi: iwlwifi: mvm: don't set trigger frame padding in AP mode
      wifi: iwlwifi: always have 'uats_enabled'
      wifi: iwlwifi: remove Gl A-step remnants
      wifi: iwlwifi: mvm: use FW rate for non-data only on new devices
      wifi: iwlwifi: mvm: support SPP A-MSDUs
      wifi: iwlwifi: mvm: refactor duplicate chanctx condition
      wifi: iwlwifi: mvm: d3: implement suspend with MLO
      wifi: iwlwifi: mvm: check AP supports EMLSR
      wifi: mac80211_hwsim: add control to skip beacons
      wifi: mac80211: trace SMPS requests from driver
      wifi: mac80211: clean up FILS discovery change flags handling
      wifi: nl80211: move WPA version validation to policy
      wifi: iwlwifi: remove unused function prototype
      wifi: iwlwifi: api: clean up some kernel-doc/typos
      wifi: iwlwifi: fw: fix compile w/o CONFIG_ACPI
      wifi: iwlwifi: fw: fix compiler warning for NULL string print
      wifi: iwlwifi: mvm: fix warnings from dmi_get_system_info()
      wifi: cfg80211: fix kunit exports
      Merge wireless into wireless-next
      wifi: mac80211: remove unused MAX_MSG_LEN define
      wifi: mac80211: remove extra shadowing variable
      wifi: mac80211: clean up band switch in duration
      wifi: mac80211: clean up connection process
      wifi: mac80211: clean up HE 6 GHz and EHT chandef parsing
      wifi: mac80211: simplify non-chanctx drivers
      wifi: mac80211: chan: chandef is non-NULL for reserved
      wifi: mac80211: introduce 'channel request'
      wifi: mac80211: add and use a link iteration macro
      wifi: mac80211: support wider bandwidth OFDMA config
      wifi: mac80211: validate assoc response channel config
      wifi: cfg80211: move puncturing validation code
      wifi: mac80211: refactor puncturing bitmap extraction
      wifi: wireless: declare different S1G chandefs incompatible
      wifi: cfg80211: simplify cfg80211_chandef_compatible()
      wifi: mac80211: use cfg80211_chandef_primary_freq()
      wifi: cfg80211/mac80211: move puncturing into chandef
      wifi: mac80211: add/use ieee80211_get_sn()
      wifi: mac80211: implement MLO multicast deduplication
      wifi: mac80211: disambiguate element parsing errors
      wifi: mac80211: disallow basic multi-link element in per-STA profile
      wifi: mac80211: simplify HE/EHT element length functions
      wifi: mac80211: adjust EHT capa when lowering bandwidth
      wifi: mac80211: limit HE RU capabilities when limiting bandwidth
      wifi: mac80211: rename ieee80211_ie_build_he_6ghz_cap()
      wifi: mac80211: tdls: use ieee80211_put_he_6ghz_cap()
      wifi: mac80211: simplify adding supported rates
      wifi: mac80211: start building elements in SKBs
      wifi: mac80211: move element parsing to a new file
      wifi: mac80211: convert ieee80211_ie_build_he_cap() to SKB use
      wifi: mac80211: convert ieee80211_ie_build_eht_cap() to SKB use
      wifi: mac80211: allow CSA to same channel
      wifi: mac80211: clarify vif handling in TX dequeue
      wifi: mac80211: add missing kernel-doc for fast_tx_check
      wifi: mac80211_hwsim: add missing kernel-doc
      wifi: mac80211: don't use sband->band early
      wifi: iwlwifi: pcie: don't allow hw-rfkill to stop device on gen2
      wifi: iwlwifi: mvm: const-ify chandef pointers
      wifi: iwlwifi: mvm: remove EHT code from mac80211.c
      wifi: iwlwifi: use system_unbound_wq for debug dump
      wifi: iwlwifi: mvm: remove one queue sync on BA session stop
      wifi: iwlwifi: mvm: expand queue sync warning messages
      wifi: iwlwifi: mvm: don't abort queue sync in CT-kill
      wifi: iwlwifi: mvm: combine condition/warning
      wifi: iwlwifi: mvm: limit pseudo-D3 to 60 seconds
      wifi: iwlwifi: mvm: fix erroneous queue index mask
      wifi: iwlwifi: mvm: don't do duplicate detection for nullfunc packets
      wifi: iwlwifi: fw: allow vmalloc for PNVM image
      wifi: iwlwifi: mvm: don't set replay counters to 0xff
      wifi: iwlwifi: mvm: remove flags for enable/disable beacon filter
      wifi: iwlwifi: mvm: show skb_mac_gso_segment() failure reason
      wifi: iwlwifi: mvm: move BA notif messages before action
      wifi: iwlwifi: queue: improve warning for no skb in reclaim
      wifi: cfg80211: fix kernel-doc for cfg80211_chandef_primary
      wifi: cfg80211: rename UHB to 6 GHz
      wifi: cfg80211: optionally support monitor on disabled channels
      wifi: mac80211: drop injection on disabled-chan monitor
      wifi: iwlwifi: mvm: work around A-MSDU size problem
      wifi: iwlwifi: api: fix constant version to match FW
      wifi: iwlwifi: don't use TRUE/FALSE with bool
      wifi: iwlwifi: mvm: fix thermal kernel-doc
      wifi: iwlwifi: error-dump: fix kernel-doc issues
      wifi: iwlwifi: api: dbg-tlv: fix up kernel-doc
      wifi: iwlwifi: fw: file: clean up kernel-doc
      wifi: iwlwifi: iwl-trans.h: clean up kernel-doc
      wifi: iwlwifi: mvm: check own capabilities for EMLSR
      Merge wireless into wireless-next
      wifi: cfg80211: use IEEE80211_MAX_MESH_ID_LEN appropriately
      wifi: cfg80211: remove cfg80211_inform_single_bss_frame_data()
      wifi: cfg80211: clean up cfg80211_inform_bss_frame_data()
      wifi: cfg80211: refactor RNR parsing
      wifi: mac80211: align ieee80211_mle_get_bss_param_ch_cnt()
      wifi: cfg80211: use ML element parsing helpers
      wifi: iwlwifi: mvm: support wider-bandwidth OFDMA
      wifi: iwlwifi: mvm: partially support PHY context version 6
      wifi: iwlwifi: mvm: support PHY context version 6
      wifi: iwlwifi: api: fix kernel-doc reference
      wifi: iwlwifi: iwl-fh.h: fix kernel-doc issues
      wifi: nl80211: refactor parsing CSA offsets
      wifi: b43: silence sparse warnings
      wifi: brcmsmac: silence sparse warnings
      wifi: rt2x00: silence sparse warnings
      wifi: zd1211rw: silence sparse warnings
      bitfield: suppress "dubious: x & !y" sparse warning
      wifi: mac80211: always initialize match_auth
      wifi: mac80211: check link exists before use
      wifi: mac80211: fix supported rate masking in scan
      wifi: mac80211: track capability/opmode NSS separately
      wifi: cfg80211: check A-MSDU format more carefully
      wifi: mac80211: don't add VHT capa on links without them
      wifi: mac80211: obtain AP HT/VHT data for assoc request
      wifi: cfg80211: print flags in tracing in hex
      wifi: mac80211: update scratch_pos after defrag
      wifi: mac80211: remove unnecessary ML element type check
      wifi: mac80211: add ieee80211_vif_link_active() helper
      wifi: mac80211: remove unnecessary ML element checks
      wifi: mac80211: simplify multi-link element parsing
      wifi: mac80211: defragment reconfiguration MLE when parsing
      wifi: mac80211: remove unneeded scratch_len subtraction
      wifi: mac80211: hide element parsing internals
      wifi: cfg80211: expose cfg80211_iter_rnr() to drivers
      wifi: cfg80211: allow cfg80211_defragment_element() without output
      wifi: mac80211: pass link_id to channel switch ops
      wifi: mac80211: pass link conf to abort_channel_switch
      wifi: mac80211: introduce a feature flag for quiet in CSA
      wifi: mac80211: mlme: unify CSA handling
      wifi: mac80211: remove TDLS peers only on affected link
      wifi: mac80211: remove TDLS peers on link deactivation
      wifi: cw1200: restore endian swapping

John Garry (2):
      rocker: Don't bother filling in ethtool driver version
      net: team: Don't bother filling in ethtool driver version

Jon Maxwell (1):
      intel: make module parameters readable in sys filesystem

Jonas Dreßler (8):
      Bluetooth: Remove HCI_POWER_OFF_TIMEOUT
      Bluetooth: mgmt: Remove leftover queuing of power_off work
      Bluetooth: Add new state HCI_POWERING_DOWN
      Bluetooth: Disconnect connected devices before rfkilling adapter
      Bluetooth: Remove superfluous call to hci_conn_check_pending()
      Bluetooth: hci_event: Use HCI error defines instead of magic values
      Bluetooth: hci_conn: Only do ACL connections sequentially
      Bluetooth: Remove pending ACL connection attempts

Jones Syue 薛懷宗 (1):
      bonding: 802.3ad replace MAC_ADDRESS_EQUAL with __agg_has_partner

Jose E. Marchesi (9):
      bpf: avoid VLAs in progs/test_xdp_dynptr.c
      bpf: fix constraint in test_tcpbpf_kern.c
      bpf: Use r constraint instead of p constraint in selftests
      bpf: Use -Wno-error in certain tests when building with GCC
      bpf: Generate const static pointers for kernel helpers
      bpf: Build type-punning BPF selftests with -fno-strict-aliasing
      bpf: Move -Wno-compare-distinct-pointer-types to BPF_CFLAGS
      bpf: Use -Wno-address-of-packed-member in some selftests
      bpf: Abstract loop unrolling pragmas in BPF selftests

Juntong Deng (3):
      inet: Add getsockopt support for IP_ROUTER_ALERT and IPV6_ROUTER_ALERT
      net/netlink: Add getsockopt support for NETLINK_LISTEN_ALL_NSID
      net/packet: Add getsockopt support for PACKET_COPY_THRESH

Justin Chen (6):
      dt-bindings: net: brcm,unimac-mdio: Add asp-v2.2
      dt-bindings: net: brcm,asp-v2.0: Add asp-v2.2
      net: bcmasp: Add support for ASP 2.2
      net: phy: mdio-bcm-unimac: Add asp v2.2 support
      net: bcmasp: Keep buffers through power management
      net: bcmasp: Add support for PHY interrupts

Justin Iurman (4):
      uapi: ioam6: API for netlink multicast events
      net: ioam6: multicast event
      net: exthdrs: ioam6: send trace event
      net: ipv6: exthdrs: get rid of ipv6_skb_net()

Justin Swartz (2):
      net: x25: remove dead links from Kconfig
      net: dsa: mt7530: disable LEDs before reset

Jérémie Dautheribes (4):
      dt-bindings: net: dp83822: support configuring RMII master/slave mode
      net: phy: dp83826: Add support for phy-mode configuration
      net: phy: dp83826: support configuring RMII master/slave operation mode
      dt-bindings: net: dp83822: change ti,rmii-mode description

Jérôme Pouiller (1):
      wifi: wfx: fix memory leak when starting AP

Kalle Valo (9):
      Merge tag 'ath-next-20240130' of git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath
      wifi: zd1211rw: remove __nocast from zd_addr_t
      wifi: rsi: fix restricted __le32 degrades to integer sparse warnings
      wifi: cw1200: fix __le16 sparse warnings
      Merge tag 'ath-next-20240222' of git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath
      wifi: ath11k: thermal: don't try to register multiple times
      Merge tag 'mt76-for-kvalo-2024-02-22' of https://github.com/nbd168/wireless
      wifi: ath12k: fix license in p2p.c and p2p.h
      Merge tag 'ath-next-20240305' of git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath

Kamal Heib (3):
      net: ena: Remove redundant assignment
      net: ena: Remove unlikely() from IS_ERR() condition
      net: ena: Remove ena_select_queue

Kang Yang (12):
      wifi: ath12k: fix broken structure wmi_vdev_create_cmd
      wifi: ath12k: fix incorrect logic of calculating vdev_stats_id
      wifi: ath12k: change interface combination for P2P mode
      wifi: ath12k: add P2P IE in beacon template
      wifi: ath12k: implement handling of P2P NoA event
      wifi: ath12k: implement remain on channel for P2P mode
      wifi: ath12k: change WLAN_SCAN_PARAMS_MAX_IE_LEN from 256 to 512
      wifi: ath12k: allow specific mgmt frame tx while vdev is not up
      wifi: ath12k: move peer delete after vdev stop of station for WCN7850
      wifi: ath12k: designating channel frequency for ROC scan
      wifi: ath12k: advertise P2P dev support for WCN7850
      wifi: ath12k: add rcu lock for ath12k_wmi_p2p_noa_event()

Karthikeyan Kathirvel (1):
      wifi: ath12k: subscribe required word mask from rx tlv

Karthikeyan Periyasamy (23):
      wifi: ath12k: relocate ath12k_dp_pdev_pre_alloc() call
      wifi: ath12k: refactor ath12k_mac_allocate() and ath12k_mac_destroy()
      wifi: ath12k: refactor ath12k_mac_setup_channels_rates()
      wifi: ath12k: refactor ath12k_mac_register() and ath12k_mac_unregister()
      wifi: ath12k: refactor ath12k_mac_op_config()
      wifi: ath12k: refactor ath12k_bss_assoc()
      wifi: ath12k: refactor ath12k_mac_op_conf_tx()
      wifi: ath12k: refactor ath12k_mac_op_start()
      wifi: ath12k: refactor ath12k_mac_op_stop()
      wifi: ath12k: refactor ath12k_mac_op_update_vif_offload()
      wifi: ath12k: refactor ath12k_mac_op_configure_filter()
      wifi: ath12k: refactor ath12k_mac_op_ampdu_action()
      wifi: ath12k: refactor ath12k_mac_op_flush()
      wifi: ath12k: ath12k_start_vdev_delay(): convert to use ar
      wifi: ath12k: refactor QMI MLO host capability helper function
      wifi: ath12k: add QMI PHY capability learn support
      wifi: ath12k: replace ENOTSUPP with EOPNOTSUPP
      wifi: ath11k: replace ENOTSUPP with EOPNOTSUPP
      wifi: ath10k: replace ENOTSUPP with EOPNOTSUPP
      wifi: ath12k: Refactor the mac80211 hw access from link/radio
      wifi: ath12k: Introduce the container for mac80211 hw
      wifi: ath12k: add MAC id support in WBM error path
      wifi: ath12k: refactor the rfkill worker

Kees Cook (7):
      bnx2x: Fix firmware version string character counts
      net/sun3_82586: Avoid reading past buffer in debug output
      wifi: mwifiex: Refactor 1-element array into flexible array in struct mwifiex_ie_types_chan_list_param_set
      net: sched: Annotate struct tc_pedit with __counted_by
      netfilter: x_tables: Use unsafe_memcpy() for 0-sized destination
      bpf: Replace bpf_lpm_trie_key 0-length array with flexible array
      sock: Use unsafe_memcpy() for sock_copy()

Kiran K (1):
      Bluetooth: btintel: Print Firmware Sequencer information

Konrad Dybcio (1):
      net: ethernet: qualcomm: Remove QDF24xx support

Kory Maincent (1):
      ptp: Move from simple ida to xarray

Krzysztof Kozlowski (4):
      dt-bindings: net: qcom,ipa: do not override firmware-name $ref
      dt-bindings: net: qca,ar9331: convert to DT schema
      net: wan: framer: constify of_phandle_args in xlate
      dt-bindings: net: ethernet-controller: drop redundant type from label

Kuan-Chung Chen (2):
      wifi: rtw89: advertise missing extended scan feature
      wifi: rtw89: Update EHT PHY beamforming capability

Kui-Feng Lee (37):
      bpf: refactory struct_ops type initialization to a function.
      bpf: get type information with BTF_ID_LIST
      bpf, net: introduce bpf_struct_ops_desc.
      bpf: add struct_ops_tab to btf.
      bpf: make struct_ops_map support btfs other than btf_vmlinux.
      bpf: pass btf object id in bpf_map_info.
      bpf: lookup struct_ops types from a given module BTF.
      bpf: pass attached BTF to the bpf_struct_ops subsystem
      bpf: hold module refcnt in bpf_struct_ops map creation and prog verification.
      bpf: validate value_type
      bpf, net: switch to dynamic registration
      libbpf: Find correct module BTFs for struct_ops maps and progs.
      bpf: export btf_ctx_access to modules.
      selftests/bpf: test case for register_bpf_struct_ops().
      bpf: Fix error checks against bpf_get_btf_vmlinux().
      bpf: Remove an unnecessary check.
      selftests/bpf: Suppress warning message of an unused variable.
      net/ipv6: set expires in rt6_add_dflt_router().
      net/ipv6: Remove unnecessary clean.
      net/ipv6: Remove expired routes with a separated list of routes.
      net/ipv6: set expires in modify_prefix_route() if RTF_EXPIRES is set.
      selftests/net: Adding test cases of replacing routes and route advertisements.
      bpf: add btf pointer to struct bpf_ctx_arg_aux.
      bpf: Move __kfunc_param_match_suffix() to btf.c.
      bpf: Create argument information for nullable arguments.
      selftests/bpf: Test PTR_MAYBE_NULL arguments of struct_ops operators.
      bpf: Check cfi_stubs before registering a struct_ops type.
      selftests/bpf: Test case for lacking CFI stub functions.
      libbpf: Set btf_value_type_id of struct bpf_map for struct_ops.
      libbpf: Convert st_ops->data to shadow type.
      bpftool: Generated shadow variables for struct_ops maps.
      bpftool: Add an example for struct_ops map and shadow type.
      selftests/bpf: Test if shadow types work correctly.
      bpf, net: validate struct_ops when updating value.
      bpf: struct_ops supports more than one page for trampolines.
      selftests/bpf: Test struct_ops maps with a large number of struct_ops program.
      selftests/net: fix waiting time for ipv6_gc test in fib_tests.sh.

Kumar Kartikeya Dwivedi (4):
      bpf: Allow calling static subprogs while holding a bpf_spin_lock
      selftests/bpf: Add test for static subprog call in lock cs
      bpf: Transfer RCU lock state between subprog calls
      selftests/bpf: Add tests for RCU lock transfer between subprogs

Kuniyuki Iwashima (15):
      tcp: Move tcp_ns_to_ts() to tcp.h
      tcp: Move skb_steal_sock() to request_sock.h
      bpf: tcp: Handle BPF SYN Cookie in skb_steal_sock().
      bpf: tcp: Handle BPF SYN Cookie in cookie_v[46]_check().
      bpf: tcp: Support arbitrary SYN Cookie.
      selftest: bpf: Test bpf_sk_assign_tcp_reqsk().
      bpf: Define struct bpf_tcp_req_attrs when CONFIG_SYN_COOKIES=n.
      af_unix: Annotate data-race of gc_in_progress in wait_for_unix_gc().
      af_unix: Do not use atomic ops for unix_sk(sk)->inflight.
      af_unix: Return struct unix_sock from unix_get_socket().
      af_unix: Run GC on only one CPU.
      af_unix: Try to run GC async.
      af_unix: Replace BUG_ON() with WARN_ON_ONCE().
      af_unix: Remove io_uring code for GC.
      af_unix: Remove CONFIG_UNIX_SCM.

Kunwu Chan (15):
      xfrm6_tunnel: Use KMEM_CACHE instead of kmem_cache_create
      netfilter: nf_conncount: Use KMEM_CACHE instead of kmem_cache_create()
      ipvs: Simplify the allocation of ip_vs_conn slab caches
      net: rds: Simplify the allocation of slab caches in rds_conn_init
      net: ipv4: Simplify the allocation of slab caches in inet_initpeers
      net: bridge: Use KMEM_CACHE instead of kmem_cache_create
      sctp: Simplify the allocation of slab caches
      net: dccp: Simplify the allocation of slab caches in dccp_ackvec_init
      xfrm: Simplify the allocation of slab caches in xfrm_policy_init
      netfilter: expect: Simplify the allocation of slab caches in nf_conntrack_expect_init
      net: kcm: Simplify the allocation of slab caches
      ip6mr: Simplify the allocation of slab caches in ip6_mr_init
      ipmr: Simplify the allocation of slab caches
      ipv4: Simplify the allocation of slab caches in ip_rt_init
      ipv6: Simplify the allocation of slab caches

Kurt Kanzenbach (5):
      igc: Use reverse xmas tree
      igc: Use netdev printing functions for flex filters
      igc: Unify filtering rule fields
      net: stmmac: Simplify mtl IRQ status checking
      igc: Add support for LEDs on i225/i226

Kévin L'hôpital (1):
      net: phy: fix phy_get_internal_delay accessing an empty array

Leon Romanovsky (4):
      xfrm: generalize xdo_dev_state_update_curlft to allow statistics update
      xfrm: get global statistics from the offloaded device
      net/mlx5e: Connect mlx5 IPsec statistics with XFRM core
      net/mlx5e: Delete obsolete IPsec code

Leon Yen (1):
      wifi: mt76: mt7921: fix a potential association failure upon resuming

Li Zhijian (1):
      drivers/ptp: Convert snprintf to sysfs_emit

Lingbo Kong (2):
      wifi: ath12k: add processing for TWT enable event
      wifi: ath12k: add processing for TWT disable event

Linus Walleij (5):
      wifi: ti: wlcore: sdio: Drop unused include
      wifi: brcmsmac: Drop legacy header
      wifi: mwifiex: Drop unused headers
      wifi: plfxlc: Drop unused include
      wifi: cw1200: Convert to GPIO descriptors

Lorenzo Bianconi (12):
      wifi: mac80211: remove gfp parameter from ieee80211_obss_color_collision_notify
      net: add generic percpu page_pool allocator
      xdp: rely on skb pointer reference in do_xdp_generic and netif_receive_generic_xdp
      xdp: add multi-buff support for xdp running in generic mode
      veth: rely on skb_pp_cow_data utility routine
      net: page_pool: fix recycle stats for system page_pool allocator
      net: fix pointer check in skb_pp_cow_data routine
      wifi: mt76: mt7996: fix fw loading timeout
      wifi: mt76: usb: create a dedicated queue for psd traffic
      wifi: mt76: usb: store usb endpoint in mt76_queue
      wifi: mt76: move wed common utilities in wed.c
      wifi: mt76: set page_pool napi pointer for mmio devices

Lucas Tanure (1):
      ptp: lan743x: Use spin_lock instead of spin_lock_bh

Luiz Angelo Daros de Luca (15):
      net: dsa: realtek: drop cleanup from realtek_ops
      net: dsa: realtek: introduce REALTEK_DSA namespace
      net: dsa: realtek: convert variants into real drivers
      net: dsa: realtek: keep variant reference in realtek_priv
      net: dsa: realtek: common rtl83xx module
      net: dsa: realtek: merge rtl83xx and interface modules into realtek_dsa
      net: dsa: realtek: get internal MDIO node by name
      net: dsa: realtek: clean user_mii_bus setup
      net: dsa: realtek: migrate user_mii_bus setup to realtek_dsa
      net: dsa: realtek: use the same mii bus driver for both interfaces
      net: dsa: realtek: embed dsa_switch into realtek_priv
      net: dsa: realtek: fix digital interface select macro for EXT0
      dt-bindings: net: dsa: realtek: reset-gpios is not required
      dt-bindings: net: dsa: realtek: add reset controller
      net: dsa: realtek: support reset controller

Luiz Augusto von Dentz (20):
      Bluetooth: hci_core: Cancel request on command timeout
      Bluetooth: Remove BT_HS
      Bluetooth: hci_event: Fix not indicating new connection for BIG Sync
      Bluetooth: hci_conn: Always use sk_timeo as conn_timeout
      Bluetooth: hci_conn: Fix UAF Write in __hci_acl_create_connection_sync
      Bluetooth: hci_sync: Add helper functions to manipulate cmd_sync queue
      Bluetooth: hci_sync: Attempt to dequeue connection attempt
      Bluetooth: hci_sync: Fix UAF on hci_abort_conn_sync
      Bluetooth: hci_sync: Fix UAF on create_le_conn_complete
      Bluetooth: btintel: Fixe build regression
      Bluetooth: hci_sync: Use address filtering when HCI_PA_SYNC is set
      Bluetooth: hci_sync: Use QoS to determine which PHY to scan
      Bluetooth: hci_sync: Fix overwriting request callback
      Bluetooth: hci_core: Fix possible buffer overflow
      Bluetooth: msft: Fix memory leak
      Bluetooth: btusb: Fix memory leak
      Bluetooth: bnep: Fix out-of-bound access
      Bluetooth: af_bluetooth: Fix deadlock
      Bluetooth: ISO: Align broadcast sync_timeout with connection timeout
      Bluetooth: hci_sync: Fix UAF in hci_acl_create_conn_sync

Lukas Bulwahn (1):
      Bluetooth: hci_event: Remove code to removed CONFIG_BT_HS

Maciej Fijalkowski (5):
      ice: make ice_vsi_cfg_rxq() static
      ice: make ice_vsi_cfg_txq() static
      ice: do not disable Tx queues twice in ice_down()
      ice: avoid unnecessary devm_ usage
      ixgbe: pull out stats update to common routines

Magnus Karlsson (2):
      xsk: support redirect to any socket bound to the same umem
      xsk: document ability to redirect to any socket bound to the same umem

Manu Bretelle (1):
      selftests/bpf: Disable IPv6 for lwt_redirect test

Marc Kleine-Budde (9):
      Merge patch series "can: esd: add support for esd GmbH PCIe/402 CAN interface"
      Merge patch series "can: m_can: Optimizations for m_can/tcan part 2"
      Merge patch "can network drivers maintainer"
      MAINTAINERS: can: xilinx_can: remove Naga Sureshkumar Relli
      Merge patch series "can: tcan4x5x: support resume upon rx can frame"
      Merge patch series "Add ECC feature support to Tx and Rx FIFOs for Xilinx CAN Controller."
      can: raw: raw_getsockopt(): reduce scope of err
      can: gs_usb: gs_cmd_reset(): use cpu_to_le32() to assign mode
      can: mcp251xfd: __mcp251xfd_get_berr_counter(): use CAN_BUS_OFF_THRESHOLD instead of open coding it

Marcel Ziswiler (1):
      Bluetooth: btnxpuart: Fix btnxpuart_close

Marco Elver (1):
      bpf: Allow compiler to inline most of bpf_local_storage_lookup()

Marcos Paulo de Souza (1):
      selftests/bpf: Remove empty TEST_CUSTOM_PROGS

Marek Behún (2):
      net: mdio: add 2.5g and 5g related PMA speed constants
      net: phy: realtek: use generic MDIO constants

Markus Elfring (5):
      batman-adv: Return directly after a failed batadv_dat_select_candidates() in batadv_dat_forward_data()
      batman-adv: Improve exception handling in batadv_throw_uevent()
      tsnep: Use devm_platform_get_and_ioremap_resource() in tsnep_probe()
      ethernet: wiznet: Use devm_platform_get_and_ioremap_resource() in w5300_hw_probe()
      net: emaclite: Use devm_platform_get_and_ioremap_resource() in xemaclite_of_probe()

Markus Schneider-Pargmann (14):
      can: m_can: Start/Cancel polling timer together with interrupts
      can: m_can: Move hrtimer init to m_can_class_register
      can: m_can: Write transmit header and data in one transaction
      can: m_can: Implement receive coalescing
      can: m_can: Implement transmit coalescing
      can: m_can: Add rx coalescing ethtool support
      can: m_can: Add tx coalescing ethtool support
      can: m_can: Use u32 for putidx
      can: m_can: Cache tx putidx
      can: m_can: Use the workqueue as queue
      can: m_can: Introduce a tx_fifo_in_flight counter
      can: m_can: Use tx_fifo_in_flight for netif_queue control
      can: m_can: Implement BQL
      can: m_can: Implement transmit submission coalescing

Martin Hundebøll (3):
      dt-bindings: can: tcan4x5x: Document the wakeup-source flag
      can: m_can: allow keeping the transceiver running in suspend
      can: tcan4x5x: support resuming from rx interrupt signal

Martin Jocić (1):
      can: kvaser_pciefd: Add support for Kvaser PCIe 8xCAN

Martin KaFai Lau (12):
      Merge branch 'bpf: tcp: Support arbitrary SYN Cookie at TC.'
      Merge branch 'Registrating struct_ops types from modules'
      selftests/bpf: Fix the flaky tc_redirect_dtime test
      selftests/bpf: Wait for the netstamp_needed_key static key to be turned on
      libbpf: Ensure undefined bpf_attr field stays 0
      selftests/bpf: Remove "&>" usage in the selftests
      Merge branch 'libbpf: add bpf_core_cast() helper'
      Merge branch 'bpf, btf: Add DEBUG_INFO_BTF checks for __register_bpf_struct_ops'
      Merge branch 'Support PTR_MAYBE_NULL for struct_ops arguments.'
      Merge branch 'Check cfi_stubs before registering a struct_ops type.'
      Merge branch 'Allow struct_ops maps with a large number of programs'
      Merge branch 'bpf: arena prerequisites'

Martin Kaistra (25):
      wifi: rtl8xxxu: remove assignment of priv->vif in rtl8xxxu_bss_info_changed()
      wifi: rtl8xxxu: prepare supporting two virtual interfaces
      wifi: rtl8xxxu: support setting linktype for both interfaces
      wifi: rtl8xxxu: 8188e: convert usage of priv->vif to priv->vifs[0]
      wifi: rtl8xxxu: support setting mac address register for both interfaces
      wifi: rtl8xxxu: extend wifi connected check to both interfaces
      wifi: rtl8xxxu: extend check for matching bssid to both interfaces
      wifi: rtl8xxxu: don't parse CFO, if both interfaces are connected in STA mode
      wifi: rtl8xxxu: support setting bssid register for multiple interfaces
      wifi: rtl8xxxu: support multiple interfaces in set_aifs()
      wifi: rtl8xxxu: support multiple interfaces in update_beacon_work_callback()
      wifi: rtl8xxxu: support multiple interfaces in configure_filter()
      wifi: rtl8xxxu: support multiple interfaces in watchdog_callback()
      wifi: rtl8xxxu: support multiple interfaces in {add,remove}_interface()
      wifi: rtl8xxxu: support multiple interfaces in bss_info_changed()
      wifi: rtl8xxxu: support multiple interface in start_ap()
      wifi: rtl8xxxu: add macids for STA mode
      wifi: rtl8xxxu: remove obsolete priv->vif
      wifi: rtl8xxxu: add hw crypto support for AP mode
      wifi: rtl8xxxu: make supporting AP mode only on port 0 transparent
      wifi: rtl8xxxu: declare concurrent mode support for 8188f
      wifi: rtl8xxxu: add cancel_work_sync() for c2hcmd_work
      wifi: rtl8xxxu: enable channel switch support
      wifi: rtl8xxxu: add missing number of sec cam entries for all variants
      wifi: rtl8xxxu: update rate mask per sta

Martin Kelly (1):
      bpf: Clarify batch lookup/lookup_and_delete semantics

Masahiro Yamada (3):
      net: ethernet: remove duplicated CONFIG_SUNGEM_PHY entry
      net: tipc: remove redundant 'bool' from CONFIG_TIPC_{MEDIA_UDP,CRYPTO}
      bpf: Merge two CONFIG_BPF entries

Matt Bobrowski (2):
      bpf: Minor clean-up to sleepable_lsm_hooks BTF set
      libbpf: Make remark about zero-initializing bpf_*_info structs

Matthew Wood (9):
      net: netconsole: cleanup formatting lints
      net: netconsole: move netconsole_target config_item to config_group
      net: netconsole: move newline trimming to function
      net: netconsole: add docs for appending netconsole user data
      net: netconsole: add a userdata config_group member to netconsole_target
      net: netconsole: cache userdata formatted string in netconsole_target
      net: netconsole: append userdata to netconsole messages
      net: netconsole: append userdata to fragmented netconsole messages
      net: netconsole: Add continuation line prefix to userdata messages

Matthieu Baerts (NGI0) (12):
      configs/debug: add NET debug config
      selftests: mptcp: lib: catch duplicated subtest entries
      mptcp: token kunit: set protocol
      mptcp: check the protocol in tcp_sk() with DEBUG_NET
      mptcp: check the protocol in mptcp_sk() with DEBUG_NET
      selftests: mptcp: stop forcing iptables-legacy
      selftests: mptcp: diag: fix shellcheck warnings
      selftests: mptcp: connect: fix shellcheck warnings
      selftests: mptcp: sockopt: fix shellcheck warnings
      selftests: mptcp: pm netlink: fix shellcheck warnings
      selftests: mptcp: simult flows: fix shellcheck warnings
      selftests: userspace pm: avoid relaunching pm events

Max Chou (1):
      Bluetooth: btrtl: Add the support for RTL8852BT/RTL8852BE-VT

Maxim Mikityanskiy (11):
      selftests/bpf: Fix the u64_offset_to_skb_data test
      bpf: Make bpf_for_each_spilled_reg consider narrow spills
      selftests/bpf: Add a test case for 32-bit spill tracking
      bpf: Add the assign_scalar_id_before_mov function
      bpf: Add the get_reg_width function
      bpf: Assign ID to scalars on spill
      selftests/bpf: Test assigning ID to scalars on spill
      bpf: Track spilled unbounded scalars
      selftests/bpf: Test tracking spilled unbounded scalars
      bpf: Preserve boundaries and track scalars on narrowing fill
      selftests/bpf: Add test cases for narrowing fill

Maxime Chevallier (2):
      doc: sfp-phylink: update the porting guide with PCS handling
      net: phylink: clean the pcs_get_state documentation

Menglong Dong (2):
      bpf: Remove unused field "mod" in struct bpf_trampoline
      net: tcp: accept old ack during closing

Michael Chan (6):
      bnxt_en: Use firmware provided maximum filter counts.
      bnxt_en: Add ethtool -N support for ether filters.
      bnxt_en: Support ethtool -n to display ether filters.
      bnxt_en: Refactor ring reservation functions
      bnxt_en: Explicitly specify P5 completion rings to reserve
      bnxt_en: Check additional resources in bnxt_check_rings()

Michael Lo (1):
      wifi: mt76: mt7921: fix suspend issue on MediaTek COB platform

Michael-CY Lee (4):
      wifi: mac80211: apply duration for SW scan
      wifi: cfg80211: Add utility for converting op_class into chandef
      wifi: mac80211: refactor STA CSA parsing flows
      wifi: mt76: mt7996: mark GCMP IGTK unsupported

Michal Koutný (4):
      net/sched: Add helper macros with module names
      net/sched: Add module aliases for cls_,sch_,act_ modules
      net/sched: Load modules via their alias
      net/sched: Remove alias of sch_clsact

Mickaël Salaün (3):
      selftests/landlock: Redefine TEST_F() as TEST_F_FORK()
      selftests/harness: Merge TEST_F_FORK() into TEST_F()
      selftests/harness: Fix TEST_F()'s vfork handling

Min Li (2):
      ptp: introduce PTP_CLOCK_EXTOFF event for the measured external offset
      ptp: add FemtoClock3 Wireless as ptp hardware clock

Mina Almasry (3):
      net: introduce abstraction for network memory
      net: add netmem to skb_frag_t
      net: page_pool: factor out page_pool recycle check

Ming Yen Hsieh (13):
      wifi: mt76: mt7925: fix connect to 80211b mode fail in 2Ghz band
      wifi: mt76: mt7925: fix wmm queue mapping
      wifi: mt76: mt7925: fix fw download fail
      wifi: mt76: mt7925: fix WoW failed in encrypted mode
      wifi: mt76: mt7925: fix the wrong header translation config
      wifi: mt76: mt7925: add support to set ifs time by mcu command
      wifi: mt76: mt7925: fix the wrong data type for scan command
      wifi: mt76: mt792x: add the illegal value check for mtcl table of acpi
      wifi: mt76: mt7921: fix incorrect type conversion for CLC command
      wifi: mt76: mt792x: fix a potential loading failure of the 6Ghz channel config from ACPI
      wifi: mt76: mt792x: update the country list of EU for ACPI SAR
      wifi: mt76: mt7921: fix the unfinished command of regd_notifier before suspend
      wifi: mt76: fix the issue of missing txpwr settings from ch153 to ch177

Miri Korenblit (43):
      wifi: iwlwifi: change link id in time event to s8
      wifi: iwlwifi: implement can_activate_links callback
      wifi: iwlwifi: add support for a wiphy_work rx handler
      wifi: iwlwifi: disable eSR when BT is active
      wifi: iwlwifi: implement GLAI ACPI table loading
      wifi: iwlwifi: cleanup uefi variables loading
      wifi: iwlwifi: fix EWRD table validity check
      wifi: iwlwifi: read BIOS PNVM only for non-Intel SKU
      wifi: iwlwifi: prepare for reading SAR tables from UEFI
      wifi: iwlwifi: cleanup sending PER_CHAIN_LIMIT_OFFSET_CMD
      wifi: iwlwifi: read SAR tables from UEFI
      wifi: iwlwifi: small cleanups in PPAG table flows
      wifi: iwlwifi: prepare for reading PPAG table from UEFI
      wifi: iwlwifi: validate PPAG table when sent to FW
      wifi: iwlwifi: read PPAG table from UEFI
      wifi: iwlwifi: don't check TAS block list size twice
      wifi: iwlwifi: prepare for reading TAS table from UEFI
      wifi: iwlwifi: separate TAS 'read-from-BIOS' and 'send-to-FW' flows
      wifi: iwlwifi: read WTAS table from UEFI
      wifi: mac80211_hwsim: enable all links only in MLO
      wifi: mac80211: don't allow deactivation of all links
      wifi: iwlwifi: prepare for reading SPLC from UEFI
      wifi: iwlwifi: read SPLC from UEFI
      wifi: iwlwifi: read WRDD table from UEFI
      wifi: iwlwifi: read ECKV table from UEFI
      wifi: iwlwifi: rfi: use a single DSM function for all RFI configurations
      wifi: iwlwifi: take send-DSM-to-FW flows out of ACPI ifdef
      wifi: iwlwifi: simplify getting DSM from ACPI
      wifi: iwlwifi: prepare for reading DSM from UEFI
      wifi: iwlwifi: read DSM functions from UEFI
      wifi: iwlwifi: bump FW API to 88 for AX/BZ/SC devices
      wifi: iwlwifi: add HONOR to PPAG approved list
      wifi: iwlwifi: adjust rx_phyinfo debugfs to MLO
      wifi: iwlwifi: read mac step from aux register
      wifi: iwlwifi: support EHT for WH
      wifi: iwlwifi: take SGOM and UATS code out of ACPI ifdef
      wifi: iwlwifi: properly check if link is active
      wifi: iwlwifi: bump FW API to 89 for AX/BZ/SC devices
      wifi: iwlwifi: mvm: remove IWL_MVM_STATUS_NEED_FLUSH_P2P
      wifi: iwlwifi: cancel session protection only if there is one
      wifi: mac80211: make associated BSS pointer visible to the driver
      wifi: iwlwifi: bump FW API to 90 for BZ/SC devices
      wifi: iwlwifi: handle per-phy statistics from fw

Moshe Shemesh (6):
      Documentation: Fix counter name of mlx5 vnic reporter
      net/mlx5: Rename mlx5_sf_dev_remove
      net/mlx5: remove fw_fatal reporter dump option for non PF
      net/mlx5: remove fw reporter dump option for non PF
      net/mlx5: SF, Stop waiting for FW as teardown was called
      net/mlx5: Return specific error code for timeout on wait_fw_init

Mukesh Sisodiya (6):
      wifi: iwlwifi: Add support for new 802.11be device
      wifi: iwlwifi: disable 160 MHz based on subsystem device ID
      wifi: iwlwifi: pcie: Add the PCI device id for new hardware
      wifi: iwlwifi: pcie: Add new PCI device id and CNVI
      wifi: iwlwifi: nvm: parse the VLP/AFC bit from regulatory
      wifi: iwlwifi: load b0 version of ucode for HR1/HR2

Nathan Chancellor (2):
      selftests/bpf: Update LLVM Phabricator links
      wifi: ath12k: Fix uninitialized use of ret in ath12k_mac_allocate()

Neeraj Sanjay Kale (1):
      Bluetooth: btnxpuart: Resolve TX timeout error in power save stress test

Nick Morrow (1):
      wifi: rtw88: Add missing VID/PIDs for 8811CU and 8821CU

Nicolas Escande (6):
      wifi: ath11k: Do not directly use scan_flags in struct scan_req_params
      wifi: ath11k: Remove scan_flags union from struct scan_req_params
      wifi: ath12k: Do not use scan_flags from struct ath12k_wmi_scan_req_arg
      wifi: ath12k: Remove unused scan_flags from struct ath12k_wmi_scan_req_arg
      wifi: ath12k: remove the unused scan_events from ath12k_wmi_scan_req_arg
      wifi: ath11k: remove unused scan_events from struct scan_req_params

Nicolas Maier (1):
      can: bcm: add recvmsg flags for own, local and remote traffic

Niklas Söderlund (7):
      ravb: Group descriptor types used in Rx ring
      ravb: Make it clear the information relates to maximum frame size
      ravb: Create helper to allocate skb and align it
      ravb: Use the max frame size from hardware info for RZ/G2L
      ravb: Move maximum Rx descriptor data usage to info struct
      ravb: Unify Rx ring maintenance code paths
      ravb: Correct buffer size to map for R-Car Rx

Oleksij Rempel (5):
      net: dsa: microchip: ksz8: move BMCR specific code to separate function
      net: dsa: microchip: Remove redundant optimization in ksz8_w_phy_bmcr
      net: dsa: microchip: implement PHY loopback configuration for KSZ8794 and KSZ8873
      net: dsa: microchip: Add support for bridge port isolation
      net: dsa: microchip: make sure drive strength configuration is not lost by soft reset

Oliver Crumrine (1):
      bpf: remove check in __cgroup_bpf_run_filter_skb

Oliver Hartkopp (3):
      can: isotp: support dynamic flow control parameters
      can: canxl: add virtual CAN network identifier support
      can: raw: fix getsockopt() for new CAN_RAW_XL_VCID_OPTS

P Praneesh (2):
      wifi: ath12k: Add logic to write QRTR node id to scratch
      wifi: ath12k: fix PCI read and write

Pablo Neira Ayuso (4):
      netfilter: nf_tables: pass flags to set backend selection routine
      netfilter: nf_log: consolidate check for NULL logger in lookup function
      netfilter: nf_log: validate nf_logger_find_get()
      netfilter: nft_osf: simplify init path

Paolo Abeni (36):
      Merge branch 'inet_diag-remove-three-mutexes-in-diag-dumps'
      Merge branch 'ice-fix-timestamping-in-reset-process'
      Merge branch 'mlxsw-refactor-reference-counting-code'
      Merge branch 'net-mana-assigning-irq-affinity-on-ht-cores'
      Merge branch 'ena-driver-changes'
      Merge branch 'dpll-expose-lock-status-error-value-to-user'
      mptcp: annotate access for msk keys
      mptcp: annotate lockless access for the tx path
      mptcp: annotate lockless access for RX path fields
      mptcp: annotate lockless access for token
      mptcp: annotate lockless accesses around read-mostly fields
      Merge branch 'net-ravb-prepare-for-suspend-to-ram-and-runtime-pm-support-part-1'
      Merge branch '100GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/next-queue
      Merge branch 'pds_core-various-improvements-cleanups'
      Merge branch 'nfc-hci-save-a-few-bytes-of-memory-when-registering-a-nfc_llc-engine'
      selftests: net: include forwarding lib
      selftests: net: ignore timing errors in txtimestamp if KSFT_MACHINE_SLOW
      Merge branch 'net-ipv6-addrconf-ensure-that-temporary-addresses-preferred-lifetimes-are-long-enough'
      Merge branch 'abstract-page-from-net-stack'
      Merge tag 'linux-can-next-for-6.9-20240220' of git://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can-next
      udp: add local "peek offset enabled" flag
      Merge branch 'mctp-core-protocol-updates-minor-fixes-tests'
      Merge branch 'bnxt_en-ntuple-filter-improvements'
      Merge branch 'net-ipa-don-t-abort-system-suspend'
      Merge branch 'net-dsa-mv88e6xxx-add-amethyst-specific-smi-gpio-function'
      Merge branch 'net-collect-tstats-automatically'
      mptcp: cleanup writer wake-up
      mptcp: avoid some duplicate code in socket option handling
      mptcp: implement TCP_NOTSENT_LOWAT support
      mptcp: cleanup SOL_TCP handling
      Merge branch 'remove-page-frag-implementation-in-vhost_net'
      Merge branch 'mt7530-dsa-subdriver-improvements-act-iii'
      Merge branch 'net-gro-cleanups-and-fast-path-refinement'
      Merge tag 'linux-can-next-for-6.9-20240304' of git://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can-next
      Merge branch 'doc-sfp-phylink-update-the-porting-guide'
      Merge branch 'tcp-add-two-missing-addresses-when-using-trace'

Paul M Stillwell Jr (1):
      ice: remove incorrect comment

Pauli Virtanen (1):
      Bluetooth: fix use-after-free in accessing skb after sending it

Pavan Chebbi (12):
      bnxt_en: Add separate function to delete the filter structure
      bnxt_en: Save user configured filters in a lookup list
      bnxt_en: Retain user configured filters when closing
      bnxt_en: Restore all the user created L2 and ntuple filters
      bnxt_en: Add support for user configured RSS key
      bnxt_en: Invalidate user filters when needed
      bnxt_en: Improve RSS context reservation infrastructure
      bnxt_en: Refactor bnxt_set_features()
      bnxt_en: Define BNXT_VNIC_DEFAULT for the default vnic index
      bnxt_en: Provision for an additional VNIC for ntuple filters
      bnxt_en: Create and setup the additional VNIC for adding ntuple filters
      bnxt_en: Use the new VNIC to create ntuple filters

Pedro Tammela (6):
      selftests: tc-testing: add missing netfilter config
      selftests: tc-testing: check if 'jq' is available in taprio tests
      selftests: tc-testing: adjust fq test to latest iproute2
      selftests: tc-testing: enable all tdc tests
      selftests: tc-testing: return fail if a test fails in setup/teardown
      selftests/tc-testing: require an up to date iproute2 for blockcast tests

Peiyang Wang (1):
      net: hns3: fix reset timeout under full functions and queues

Peter Chiu (8):
      wifi: mt76: disable HW AMSDU when using fixed rate
      wifi: mt76: check txs format before getting skb by pid
      wifi: mt76: mt7915: update mt798x_wmac_adie_patch_7976
      dt-bindings: net: wireless: mt76: add interrupts description for MT7986
      wifi: mt76: mt7996: check txs format before getting skb by pid
      wifi: mt76: mt7996: fix TWT issues
      wifi: mt76: mt7996: disable AMSDU for non-data frames
      wifi: mt76: mt7996: remove TXS queue setting

Peter Tsao (1):
      Bluetooth: btusb: Add support Mediatek MT7920

Petr Machata (15):
      selftests: forwarding: Add missing config entries
      selftests: forwarding: Remove duplicated lib.sh content
      net: nexthop: Adjust netlink policy parsing for a new attribute
      net: nexthop: Add NHA_OP_FLAGS
      net: nexthop: Initialize NH group ID in resilient NH group notifiers
      net: nexthop: Have all NH notifiers carry NH ID
      mlxsw: spectrum_router: Rename two functions
      mlxsw: spectrum_router: Have mlxsw_sp_nexthop_counter_enable() return int
      mlxsw: spectrum: Allow fetch-and-clear of flow counters
      mlxsw: spectrum_router: Avoid allocating NH counters twice
      mlxsw: spectrum_router: Add helpers for nexthop counters
      mlxsw: spectrum_router: Track NH ID's of group members
      mlxsw: spectrum_router: Support nexthop group hardware statistics
      mlxsw: spectrum_router: Share nexthop counters in resilient groups
      selftests: forwarding: Add a test for NH group stats

Phil Sutter (3):
      netfilter: uapi: Document NFT_TABLE_F_OWNER flag
      netfilter: nf_tables: Introduce NFT_TABLE_F_PERSIST
      netfilter: nf_tables: Implement table adoption support

Philippe Schenker (2):
      dt-bindings: net: dsa: Add KSZ8567 switch support
      net: dsa: Add KSZ8567 switch support

Ping-Ke Shih (76):
      wifi: rtw89: phy: move bb_gain_info used by WiFi 6 chips to union
      wifi: rtw89: phy: ignore special data from BB parameter file
      wifi: rtw89: 8922a: add NCTL pre-settings for WiFi 7 chips
      wifi: rtw89: phy: add BB wrapper of TX power for WiFi 7 chips
      wifi: rtw89: phy: set channel_info for WiFi 7 chips
      wifi: rtw88: 8822ce: refine power parameters for RFE type 5
      wifi: rtw89: add firmware H2C command of BA CAM V1
      wifi: rtw89: mac: add feature_init to initialize BA CAM V1
      wifi: rtw89: add chip_ops::h2c_ba_cam() to configure BA CAM
      wifi: rtw89: 8922a: update BA CAM number to 24
      wifi: rtw89: fw: use struct to fill BA CAM H2C commands
      wifi: rtw89: refine H2C command that pause transmitting by MAC ID
      wifi: rtw89: add new H2C command to pause/sleep transmitting by MAC ID
      wifi: rtw89: use struct to fill H2C command to download beacon frame
      wifi: rtw89: add H2C command to download beacon frame for WiFi 7 chips
      wifi: rtw89: add chip_ops::update_beacon to abstract update beacon operation
      wifi: rtw89: adjust init_he_cap() to add EHT cap into iftype_data
      wifi: rtw89: change supported bandwidths of chip_info to bit mask
      wifi: rtw89: add EHT capabilities for WiFi 7 chips
      wifi: rtw89: declare EXT NSS BW of VHT capability
      wifi: rtw89: fw: add H2C command to update security CAM v2
      wifi: rtw89: fw: fill CMAC table to associated station for WiFi 7 chips
      wifi: rtw89: fw: add chip_ops to update CMAC table to associated station
      wifi: rtw89: fw: update TX AMPDU parameter to CMAC table
      wifi: rtw89: fw: add H2C command to reset CMAC table for WiFi 7
      wifi: rtw89: fw: add H2C command to reset DMAC table for WiFi 7
      wifi: rtw89: fw: use struct to fill JOIN H2C command
      wifi: rtw89: fw: extend JOIN H2C command to support WiFi 7 chips
      wifi: rtl8xxxu: convert EN_DESC_ID of TX descriptor to le32 type
      wifi: rtl8xxxu: make instances of iface limit and combination to be static const
      wifi: rtw89: add mlo_dbcc_mode for WiFi 7 chips
      wifi: rtw89: 8922a: add chip_ops::{enable,disable}_bb_rf
      wifi: rtw89: 8922a: add chip_ops related to BB init
      wifi: rtw89: 8922a: add register definitions of H2C, C2H, page, RRSR and EDCCA
      wifi: rtw89: 8922a: add TX power related ops
      wifi: rtw89: pci: update SER timer unit and timeout time
      wifi: rtw89: pci: validate RX tag for RXQ and RPQ
      wifi: rtw89: pci: enlarge RX DMA buffer to consider size of RX descriptor
      wifi: rtw89: 8922a: hook handlers of TX/RX descriptors to chip_ops
      wifi: rtw89: 8922a: implement {stop,resume}_sch_tx and cfg_ppdu
      wifi: rtw89: 8922a: add chip_ops::cfg_txrx_path
      wifi: rtw89: 8922a: add RF read/write v2
      wifi: rtw89: 8922a: add chip_ops to get thermal value
      wifi: rtw89: 8922a: set chip_ops FEM and GPIO to NULL
      wifi: rtw89: rfk: add a completion to wait RF calibration report from C2H event
      wifi: rtw89: rfk: send channel information to firmware for RF calibrations
      wifi: rtw89: rfk: add H2C command to trigger IQK
      wifi: rtw89: rfk: add H2C command to trigger RX DCK
      wifi: rtw89: rfk: add H2C command to trigger DPK
      wifi: rtw89: rfk: add H2C command to trigger DACK
      wifi: rtw89: rfk: add H2C command to trigger TXGAPK
      wifi: rtw89: rfk: add H2C command to trigger TSSI
      wifi: rtw89: 8922a: rfk: implement chip_ops to call RF calibrations
      wifi: rtw89: 8922a: add chip_ops::rfk_init_late to do initial RF calibrations later
      wifi: rtw89: 8922a: add chip_ops::rfk_hw_init
      wifi: rtw89: fw: consider checksum length of security data
      wifi: rtw89: fw: read firmware secure information from efuse
      wifi: rtw89: fw: parse secure section from firmware file
      wifi: rtw89: fw: download firmware with key data for secure boot
      wifi: rtw89: correct PHY register offset for PHY-1
      wifi: rtw89: load BB parameters to PHY-1
      wifi: rtw89: mac: return held quota of DLE when changing MAC-1
      wifi: rtw89: mac: correct MUEDCA setting for MAC-1
      wifi: rtw89: mac: reset PHY-1 hardware when going to enable/disable
      wifi: rtw89: use PLCP information to match BSS_COLOR and AID
      wifi: rtw89: 8922a: correct register definition and merge IO for ctrl_nbtg_bt_tx()
      wifi: rtw89: change qutoa to DBCC by default for WiFi 7 chips
      wifi: rtw89: fw: remove unnecessary rcu_read_unlock() for punctured
      wifi: rtw89: 8922a: add set_channel MAC part
      wifi: rtw89: 8922a: add set_channel BB part
      wifi: rtw89: 8922a: add set_channel RF part
      wifi: rtw89: 8922a: add helper of set_channel
      wifi: rtl8xxxu: check vif before using in rtl8xxxu_tx()
      wifi: rtlwifi: set initial values for unexpected cases of USB endpoint priority
      wifi: rtw89: mac: add coexistence helpers {cfg/get}_plt
      wifi: rtw89: 8922a: add coexistence helpers of SW grant

Po-Hao Huang (12):
      wifi: rtw89: refine add_chan H2C command to encode_bits
      wifi: rtw89: refine hardware scan C2H events
      wifi: rtw89: Set default CQM config if not present
      wifi: rtw89: disable RTS when broadcast/multicast
      wifi: rtw89: fix null pointer access when abort scan
      wifi: rtw89: add wait/completion for abort scan
      wifi: rtw89: update scan C2H messages for wifi 7 IC
      wifi: rtw89: debug: add FW log component for scan
      wifi: rtw89: prepare scan leaf functions for wifi 7 ICs
      wifi: rtw89: 8922a: add ieee80211_ops::hw_scan
      wifi: rtw89: 8922a: add more fields to beacon H2C command to support multi-links
      wifi: rtw89: reference quota mode when setting Tx power

Prabhav Kumar Vaish (1):
      selftests: net: Correct couple of spelling mistakes

Praveen Kumar Kannoju (1):
      bonding: rate-limit bonding driver inspect messages

Przemek Kitszel (1):
      ice: fix stats being updated by way too large values

Pu Lehui (8):
      riscv, bpf: Unify 32-bit sign-extension to emit_sextw
      riscv, bpf: Unify 32-bit zero-extension to emit_zextw
      riscv, bpf: Simplify sext and zext logics in branch instructions
      riscv, bpf: Add necessary Zbb instructions
      riscv, bpf: Optimize sign-extention mov insns with Zbb support
      riscv, bpf: Optimize bswap insns with Zbb support
      riscv, bpf: Enable inline bpf_kptr_xchg() for RV64
      selftests/bpf: Enable inline bpf_kptr_xchg() test for RV64

Puranjay Mohan (7):
      arm64: stacktrace: Implement arch_bpf_stack_walk() for the BPF JIT
      bpf, arm64: support exceptions
      arm64: patching: implement text_poke API
      bpf, arm64: use bpf_prog_pack for memory management
      bpf, riscv64/cfi: Support kCFI + BPF on riscv64
      arm64, bpf: Use bpf_prog_pack for arm64 bpf trampoline
      bpf: hardcode BPF_PROG_PACK_SIZE to 2MB * num_possible_nodes()

Quan Zhou (1):
      wifi: mt76: mt7925: add flow to avoid chip bt function fail

Rafał Miłecki (1):
      dt-bindings: net: wireless: mt76: allow all 4 interrupts for MT7981

Rahul Rameshbabu (4):
      wifi: b43: Stop/wake correct queue in DMA Tx path when QoS is disabled
      wifi: b43: Stop/wake correct queue in PIO Tx path when QoS is disabled
      wifi: b43: Stop correct queue in DMA worker when QoS is disabled
      wifi: b43: Disable QoS for bcm4331

Raj Kumar Bhagat (5):
      wifi: ath12k: add firmware-2.bin support
      wifi: ath12k: fix fetching MCBC flag for QCN9274
      wifi: ath12k: split hal_ops to support RX TLVs word mask compaction
      wifi: ath12k: remove hal_desc_sz from hw params
      wifi: ath12k: disable QMI PHY capability learn in split-phy QCN9274

Raju Lakkaraju (1):
      net: phy: mxl-gpy: fill in possible_interfaces for GPY21x chipset

Rameshkumar Sundaram (1):
      wifi: mac80211: remove only link keys during stopping link AP

Randy Dunlap (3):
      net: filter: fix spelling mistakes
      tipc: socket: remove Excess struct member kernel-doc warning
      tipc: node: remove Excess struct member kernel-doc warnings

Ravi Gunasekaran (1):
      dt-bindings: net: ti: Update maintainers list

Ricardo B. Marliere (27):
      ssb: make ssb_bustype const
      bcma: make bcma_bus_type const
      netdevsim: make nsim_bus const
      net: mdio_bus: make mdio_bus_type const
      net: usbnet: constify the struct device_type usage
      net: dsa: constify the struct device_type usage
      net: bridge: constify the struct device_type usage
      net: vxlan: constify the struct device_type usage
      net: ppp: constify the struct device_type usage
      net: geneve: constify the struct device_type usage
      net: hsr: constify the struct device_type usage
      net: l2tp: constify the struct device_type usage
      net: vlan: constify the struct device_type usage
      net: netdevsim: constify the struct device_type usage
      net: wwan: core: constify the struct device_type usage
      net: hso: constify the struct device_type usage
      net: hns: make hnae_class constant
      net: wan: framer: make framer_class constant
      net: ppp: make ppp_class constant
      net: wwan: hwsim: make wwan_hwsim_class constant
      net: wwan: core: make wwan_class constant
      nfc: core: make nfc_class constant
      ieee802154: cfg802154: make wpan_phy_class constant
      Bluetooth: constify the struct device_type usage
      isdn: mISDN: make elements_class constant
      isdn: capi: make capi_class constant
      ptp: make ptp_class constant

Robert Marko (8):
      net: phy: qcom: add support for QCA807x PHY Family
      net: phy: aquantia: clear PMD Global Transmit Disable bit during init
      net: phy: qca807x: move interface mode check to .config_init_once
      net: dsa: mv88e6xxx: rename mv88e6xxx_g2_scratch_gpio_set_smi
      net: dsa: mv88e6xxx: add Amethyst specific SMI GPIO function
      net: phy: qcom: qca808x: add helper for checking for 1G only model
      net: phy: qcom: qca808x: fill in possible_interfaces
      net: phy: qca807x: fix compilation when CONFIG_GPIOLIB is not set

Rohan G Thomas (3):
      net: stmmac: Offload queueMaxSDU from tc-taprio
      net: stmmac: est: Per Tx-queue error count for HLBF
      net: stmmac: Report taprio offload status

Roman Smirnov (2):
      Bluetooth: mgmt: remove NULL check in mgmt_set_connectable_complete()
      Bluetooth: mgmt: remove NULL check in add_ext_adv_params_complete()

Ruan Jinjie (1):
      wifi: mwifiex: Use helpers to check multicast addresses

Russell King (1):
      net: add helpers for EEE configuration

Russell King (Oracle) (10):
      net: phy: constify phydev->drv
      net: stmmac: remove eee_enabled/eee_active in stmmac_ethtool_op_get_eee()
      net: sxgbe: remove eee_enabled/eee_active in sxgbe_get_eee()
      net: fec: remove eee_enabled/eee_active in fec_enet_get_eee()
      net: bcmgenet: remove eee_enabled/eee_active in bcmgenet_get_eee()
      net: bcmasp: remove eee_enabled/eee_active in bcmasp_get_eee()
      net: dsa: b53: remove eee_enabled/eee_active in b53_get_mac_eee()
      net: phy: marvell: add comment about m88e1111_config_init_1000basex()
      net: pcs: rzn1-miic: update PCS driver to use neg_mode
      net: dsa: mv88e6xxx: update 88e6185 PCS driver to use neg_mode

Sagi Maimon (1):
      ptp: ocp: add Adva timecard support

Sai Krishna (1):
      octeontx2-pf: Add TC flower offload support for TCP flags

Samuel Thibault (1):
      PPPoL2TP: Add more code snippets

Sarosh Hasan (1):
      net: stmmac: dwmac-qcom-ethqos: Update link clock rate only for RGMII

Sebastian Andrzej Siewior (1):
      net: dst: Make dst_destroy() static and return void.

Serge Semin (4):
      net: pcs: xpcs: Drop sentinel entry from 2500basex ifaces list
      net: pcs: xpcs: Drop redundant workqueue.h include directive
      net: pcs: xpcs: Return EINVAL in the internal methods
      net: pcs: xpcs: Explicitly return error on caps validation

Shailend Chand (6):
      gve: Define config structs for queue allocation
      gve: Refactor napi add and remove functions
      gve: Switch to config-aware queue allocation
      gve: Refactor gve_open and gve_close
      gve: Alloc before freeing when adjusting queues
      gve: Alloc before freeing when changing features

Shannon Nelson (28):
      ionic: set adminq irq affinity
      ionic: add helpers for accessing buffer info
      ionic: use dma range APIs
      ionic: add initial framework for XDP support
      ionic: Add XDP packet headroom
      ionic: Add XDP_TX support
      ionic: Add XDP_REDIRECT support
      ionic: add ndo_xdp_xmit
      ionic: implement xdp frags support
      pds_core: add simple AER handler
      pds_core: delete VF dev on reset
      pds_core: use pci_reset_function for health reset
      ionic: reduce the use of netdev
      ionic: change MODULE_AUTHOR to person name
      ionic: remove desc, sg_desc and cmb_desc from desc_info
      ionic: drop q mapping
      ionic: move adminq-notifyq handling to main file
      ionic: remove callback pointer from desc_info
      ionic: remove the cq_info to save more memory
      ionic: use specialized desc info structs
      ionic: fold adminq clean into service routine
      ionic: refactor skb building
      ionic: carry idev in ionic_cq struct
      ionic: rearrange ionic_qcq
      ionic: rearrange ionic_queue for better layout
      ionic: remove unnecessary NULL test
      ionic: better dma-map error handling
      ionic: keep stats struct local to error handling

Shaul Triebitz (10):
      wifi: iwlwifi: support link command version 2
      wifi: iwlwifi: mvm: make functions public
      wifi: iwlwifi: mvm: define RX queue sync timeout as a macro
      wifi: iwlwifi: mvm: fix the key PN index
      wifi: iwlwifi: mvm: always update keys in D3 exit
      wifi: iwlwifi: mvm: avoid garbage iPN
      wifi: nl80211: allow reporting wakeup for unprot deauth/disassoc
      wifi: cfg80211: report unprotected deauth/disassoc in wowlan
      wifi: iwlwifi: iwlmvm: handle unprotected deauth/disassoc in d3
      wifi: mac80211: add link id to ieee80211_gtk_rekey_add()

Shayne Chen (3):
      wifi: mt76: mt7915: add locking for accessing mapped registers
      wifi: mt76: mt7996: add locking for accessing mapped registers
      wifi: mt76: connac: set correct muar_idx for mt799x chipsets

Shigeru Yoshida (1):
      tipc: Cleanup tipc_nl_bearer_add() error paths

Shiji Yang (1):
      wifi: rtl8xxxu: fix mixed declarations in rtl8xxxu_set_aifs()

Shiming Cheng (1):
      ipv6: fib6_rules: flush route cache when rule is changed

Shinas Rasheed (8):
      octeon_ep_vf: Add driver framework and device initialization
      octeon_ep_vf: add hardware configuration APIs
      octeon_ep_vf: add VF-PF mailbox communication.
      octeon_ep_vf: add Tx/Rx ring resource setup and cleanup
      octeon_ep_vf: add support for ndo ops
      octeon_ep_vf: add Tx/Rx processing and interrupt support
      octeon_ep_vf: add ethtool support
      octeon_ep_vf: update MAINTAINERS

Shung-Hsi Yu (1):
      selftests/bpf: trace_helpers.c: do not use poisoned type

Simon Horman (3):
      mlx4: Address spelling errors
      net: wan: framer: remove children from struct framer_ops kdoc
      ps3/gelic: minor Kernel Doc corrections

Simon Wunderlich (1):
      batman-adv: Start new development cycle

Sneh Shah (1):
      net: stmmac: dwmac-qcom-ethqos: Add support for 2.5G SGMII

Song Yoong Siang (1):
      selftests/bpf: xdp_hw_metadata reduce sleep interval

Souradeep Chakrabarti (1):
      net: mana: Assigning IRQ affinity on HT cores

Sowmiya Sree Elavalagan (1):
      wifi: ath12k: fetch correct pdev id from WMI_SERVICE_READY_EXT_EVENTID

Srinivas Goud (3):
      dt-bindings: can: xilinx_can: Add 'xlnx,has-ecc' optional property
      can: xilinx_can: Add ECC support
      can: xilinx_can: Add ethtool stats interface for ECC errors

Sriram R (2):
      wifi: ath12k: Fix issues in channel list update
      wifi: ath12k: indicate NON MBSSID vdev by default during vdev start

Stanislaw Gruszka (1):
      genetlink: Add per family bind/unbind callbacks

StanleyYP Wang (1):
      wifi: mt76: mt7996: fix efuse reading issue

Stefan Mätje (2):
      MAINTAINERS: add Stefan Mätje as maintainer for the esd electronics GmbH PCIe/402 CAN drivers
      can: esd: add support for esd GmbH PCIe/402 CAN interface family

Stefan Wahren (15):
      qca_spi: Add check for kthread_stop
      qca_spi: Improve SPI thread creation
      qca_spi: Improve SPI IRQ handling
      qca_spi: Avoid skb_copy_expand in TX path
      qca_7k_common: Drop unnecessary function description
      qca_7k_common: Drop unused len from qcafrm_handle
      qca_spi: Add QCASPI prefix to ring defines
      qca_spi: Introduce QCASPI_RX_MAX_FRAMES
      qca_spi: Improve calculation of RX buffer size
      qca_spi: Log expected signature in error case
      qca_spi: Adjust log of SPI_REG_RDBUF_BYTE_AVA
      qca_7k: Replace BSD boilerplate with SPDX
      qca_7k: Replace old mail address
      mailmap: add entry for Stefan Wahren
      MAINTAINERS: add entry for qca7k driver(s)

Stephen Hemminger (2):
      net/tun: use reciprocal_scale
      net: sched: codel replace GPLv2/BSD boilerplate

Suman Ghosh (1):
      octeontx2-af: Add filter profiles in hardware to extract packet headers

Sunil Goutham (1):
      octeontx2-af: Fix devlink params

Suraj Jaiswal (2):
      dt-bindings: net: qcom,ethqos: add binding doc for safety IRQ for sa8775p
      net: stmmac: Add driver support for common safety IRQ

Sven Eckelmann (1):
      batman-adv: Drop usage of export.h

Takashi Iwai (2):
      wifi: iwlwifi: Add missing MODULE_FIRMWARE() for *.pnvm
      Bluetooth: btmtk: Add MODULE_FIRMWARE() for MT7922

Takeru Hayasaka (2):
      ethtool: Add GTP RSS hash options to ethtool.h
      ice: Implement RSS settings for GTP using ethtool

Tariq Toukan (15):
      net/mlx5: Add MPIR bit in mcam_access_reg
      net/mlx5: SD, Introduce SD lib
      net/mlx5: SD, Implement basic query and instantiation
      net/mlx5: SD, Implement devcom communication and primary election
      net/mlx5: SD, Implement steering for primary and secondaries
      net/mlx5: SD, Add informative prints in kernel log
      net/mlx5: SD, Add debugfs
      net/mlx5e: Create single netdev per SD group
      net/mlx5e: Create EN core HW resources for all secondary devices
      net/mlx5e: Let channels be SD-aware
      net/mlx5e: Support cross-vhca RSS
      net/mlx5e: Support per-mdev queue counter
      net/mlx5e: Block TLS device offload on combined SD netdev
      net/mlx5: Enable SD feature
      Documentation: networking: Add description for multi-pf netdev

Tejun Heo (1):
      ieee802154: ca8210: Drop spurious WQ_UNBOUND from alloc_ordered_workqueue() call

Thanh Quan (1):
      dt-bindings: net: renesas,etheravb: Add support for R-Car V4M

Tiezhu Yang (4):
      bpftool: Silence build warning about calloc()
      selftests/bpf: Move is_jit_enabled() into testing_helpers
      selftests/bpf: Skip callback tests if jit is disabled in test_verifier
      selftests/bpf: Add missing line break in test_verifier

Tim Pambor (1):
      net: phy: dp83822: Fix RGMII TX delay configuration

Tobias Schramm (1):
      dt-bindings: nfc: ti,trf7970a: fix usage example

Toke Høiland-Jørgensen (5):
      wifi: ath9k: delay all of ath9k_wmi_event_tasklet() until init is complete
      libbpf: Use OPTS_SET() macro in bpf_xdp_query()
      bpf: Fix DEVMAP_HASH overflow check on 32-bit arches
      bpf: Fix hashtab overflow check on 32-bit arches
      bpf: Fix stackmap overflow check on 32-bit arches

Ulrik Strid (1):
      Bluetooth: btusb: Add new VID/PID 13d3/3602 for MT7925

Uwe Kleine-König (4):
      wifi: ath9k: Convert to platform remove callback returning void
      ptp: fc3: Convert to platform remove callback returning void
      atm: fore200e: Convert to platform remove callback returning void
      net: wan: framer/pef2256: Convert to platform remove callback returning void

Varshini Rajendran (1):
      dt-bindings: net: cdns,macb: add sam9x7 ethernet interface

Venkat Duvvuru (1):
      bnxt_en: Add bnxt_get_total_vnics() to calculate number of VNICs

Victor Nogueira (1):
      selftests: tc-testing: add mirred to block tdc tests

Victor Stewart (1):
      bpf, docs: Fix bpf_redirect_peer header doc

Vikas Gupta (2):
      bnxt_en: Enhance ethtool ntuple support for ip flows besides TCP/UDP
      bnxt_en: Add drop action support for ntuple

Viktor Malik (2):
      tools/resolve_btfids: Refactor set sorting with types from btf_ids.h
      tools/resolve_btfids: Fix cross-compilation to non-host endianness

Vincent Mailhol (1):
      can: change can network drivers maintainer

Vinicius Costa Gomes (2):
      igc: Fix missing time sync events
      igb: Fix missing time sync events

Vinicius Peixoto (1):
      Bluetooth: Add new quirk for broken read key length on ATS2851

Vitaly Lifshits (1):
      e1000e: Minor flow correction in e1000_shutdown function

Vladimir Oltean (6):
      net: dsa: reindent arguments of dsa_user_vlan_for_each()
      net: dsa: qca8k: put MDIO controller OF node if unavailable
      net: dsa: qca8k: consistently use "ret" rather than "err" for error codes
      net: dsa: b53: unexport and move b53_eee_enable_set()
      net: dsa: remove "inline" from dsa_user_netpoll_send_skb()
      net: dsa: tag_sja1105: remove "inline" keyword

Wen Gong (16):
      wifi: ath12k: add string type to search board data in board-2.bin for WCN7850
      wifi: ath12k: add fallback board name without variant while searching board-2.bin
      wifi: ath12k: remove unused ATH12K_BD_IE_BOARD_EXT
      wifi: ath12k: add support to search regdb data in board-2.bin for WCN7850
      wifi: ath11k: add support to select 6 GHz regulatory type
      wifi: ath11k: store cur_regulatory_info for each radio
      wifi: ath11k: update regulatory rules when interface added
      wifi: ath11k: update regulatory rules when connect to AP on 6 GHz band for station
      wifi: ath11k: save power spectral density(PSD) of regulatory rule
      wifi: ath11k: add parse of transmit power envelope element
      wifi: ath11k: save max transmit power in vdev start response event from firmware
      wifi: ath11k: fill parameters for vdev set tpc power WMI command
      wifi: ath11k: add WMI_TLV_SERVICE_EXT_TPC_REG_SUPPORT service bit
      wifi: ath11k: add handler for WMI_VDEV_SET_TPC_POWER_CMDID
      wifi: ath11k: use WMI_VDEV_SET_TPC_POWER_CMDID when EXT_TPC_REG_SUPPORT for 6 GHz
      wifi: ath11k: change to move WMI_VDEV_PARAM_SET_HEMU_MODE before WMI_PEER_ASSOC_CMDID

Wen Gu (1):
      net/smc: change the term virtual ISM to Emulated-ISM

Wenli Looi (1):
      wifi: ath9k: delete some unused/duplicate macros

Willem de Bruijn (3):
      selftests/net: calibrate fq_band_pktlimit
      selftests/net: calibrate txtimestamp
      selftests/net: ignore timing errors in so_txtime if KSFT_MACHINE_SLOW

William Tu (3):
      Documentation: mlx5.rst: Add note for eswitch MD
      devlink: Fix length of eswitch inline-mode
      devlink: Add comments to use netlink gen tool

Wojciech Drewek (2):
      ice: Remove and readd netdev during devlink reload
      ice: Fix debugfs with devlink reload

Xin Long (1):
      tipc: rename the module name diag to tipc_diag

Xingyuan Mo (1):
      wifi: ath10k: fix NULL pointer dereference in ath10k_wmi_tlv_op_pull_mgmt_tx_compl_ev()

Yafang Shao (2):
      selftests/bpf: Fix error checking for cpumask_success__load()
      selftests/bpf: Mark cpumask kfunc declarations as __weak

Yanteng Si (1):
      net: stmmac: fix typo in comment

Yonghong Song (9):
      bpf: Track aligned st store as imprecise spilled registers
      selftests/bpf: Add a selftest with not-8-byte aligned BPF_ST
      docs/bpf: Fix an incorrect statement in verifier.rst
      docs/bpf: Improve documentation of 64-bit immediate instructions
      selftests/bpf: Fix flaky test ptr_untrusted
      selftests/bpf: Fix flaky selftest lwt_redirect/lwt_reroute
      bpf: Mark bpf_spin_{lock,unlock}() helpers with notrace correctly
      selftests/bpf: Ensure fentry prog cannot attach to bpf_spin_{lock,unlcok}()
      bpf: Fix test verif_scale_strobemeta_subprogs failure due to llvm19

Yonglong Liu (1):
      net: hns3: fix kernel crash when 1588 is received on HIP08 devices

Yunjian Wang (2):
      tun: Fix code style issues in <linux/if_tun.h>
      tun: Implement ethtool's get_channels() callback

Yunsheng Lin (5):
      mm/page_alloc: modify page_frag_alloc_align() to accept align as an argument
      page_frag: unify gfp bits for order 3 page allocation
      net: introduce page_frag_cache_drain()
      vhost/net: remove vhost_net_page_frag_refill()
      tools: virtio: introduce vhost_net_test

Yury Norov (3):
      cpumask: add cpumask_weight_andnot()
      cpumask: define cleanup function for cpumasks
      net: mana: add a function to spread IRQs per CPUs

Zheng Wang (1):
      wifi: brcmfmac: Fix use-after-free bug in brcmf_cfg80211_detach

Zhengchao Shao (4):
      ipv6: raw: remove useless input parameter in rawv6_err
      ipv6: raw: remove useless input parameter in rawv6_get/seticmpfilter
      netlabel: remove impossible return value in netlbl_bitmap_walk
      ipv4: raw: remove useless input parameter in do_raw_set/getsockopt

Zhenghao Gu (1):
      wifi: ath11k: fix IOMMU errors on buffer rings

Zhipeng Lu (1):
      wifi: libertas: fix some memleaks in lbs_allocate_cmd_buffer()

Zong-Zhe Yang (15):
      wifi: rtw89: 8852b: update TX power tables to R36
      wifi: rtw89: 8851b: update TX power tables to R37
      wifi: rtw89: pci: interrupt v2 refine IMR for SER
      wifi: rtw89: drop TIMING_BEACON_ONLY and sync beacon TSF by self
      wifi: rtw89: chan: add sub-entity swap function to cover replacing
      wifi: rtw89: chan: tweak bitmap recalc ahead before MLO
      wifi: rtw89: chan: tweak weight recalc ahead before MLO
      wifi: rtw89: chan: move handling from add/remove to assign/unassign for MLO
      wifi: rtw89: chan: MCC take reconfig into account
      wifi: rtw89: differentiate narrow_bw_ru_dis setting according to chip gen
      wifi: rtw89: fw: add definition of H2C command and C2H event for MRC series
      wifi: rtw89: mac: implement MRC C2H event handling
      wifi: rtw89: fw: implement MRC H2C command functions
      wifi: rtw89: chan: support MCC on Wi-Fi 7 chips
      wifi: rtw89: 8922a: declare to support two chanctx

fuyuanli (1):
      tcp: Add skb addr and sock addr to arguments of tracepoint tcp_probe.

rong.yan (1):
      wifi: mt76: mt7925: fix SAP no beacon issue in 5Ghz and 6Ghz band

 .get_maintainer.ignore                             |    1 +
 .mailmap                                           |    1 +
 Documentation/ABI/testing/sysfs-class-net-queues   |   23 +
 Documentation/admin-guide/sysctl/net.rst           |    5 +
 Documentation/bpf/kfuncs.rst                       |    8 +-
 Documentation/bpf/map_lpm_trie.rst                 |    2 +-
 .../bpf/standardization/instruction-set.rst        |  580 ++--
 Documentation/bpf/verifier.rst                     |    2 +-
 Documentation/dev-tools/kselftest.rst              |   12 +
 Documentation/devicetree/bindings/leds/common.yaml |   12 +
 .../devicetree/bindings/leds/leds-bcm63138.yaml    |    4 -
 .../devicetree/bindings/leds/leds-bcm6328.yaml     |    4 -
 .../devicetree/bindings/leds/leds-bcm6358.txt      |    2 -
 .../bindings/leds/leds-pwm-multicolor.yaml         |    4 +-
 .../devicetree/bindings/leds/leds-pwm.yaml         |    5 -
 .../devicetree/bindings/net/brcm,asp-v2.0.yaml     |    4 +
 .../devicetree/bindings/net/brcm,unimac-mdio.yaml  |    1 +
 .../devicetree/bindings/net/can/tcan4x5x.txt       |    3 +
 .../devicetree/bindings/net/can/xilinx,can.yaml    |    5 +
 .../devicetree/bindings/net/cdns,macb.yaml         |    5 +
 .../devicetree/bindings/net/dsa/ar9331.txt         |  147 -
 .../devicetree/bindings/net/dsa/microchip,ksz.yaml |    1 +
 .../devicetree/bindings/net/dsa/qca,ar9331.yaml    |  161 +
 .../devicetree/bindings/net/dsa/realtek.yaml       |    4 +-
 .../bindings/net/ethernet-controller.yaml          |    1 -
 .../bindings/net/ethernet-phy-package.yaml         |   52 +
 Documentation/devicetree/bindings/net/fsl,fec.yaml |    3 +
 .../devicetree/bindings/net/nfc/ti,trf7970a.yaml   |    2 +-
 .../devicetree/bindings/net/qca,qca808x.yaml       |   54 +
 .../devicetree/bindings/net/qcom,ethqos.yaml       |    9 +-
 .../devicetree/bindings/net/qcom,ipa.yaml          |    2 +-
 .../devicetree/bindings/net/qcom,ipq4019-mdio.yaml |   15 +
 .../devicetree/bindings/net/qcom,qca807x.yaml      |  184 ++
 .../devicetree/bindings/net/renesas,etheravb.yaml  |    1 +
 .../devicetree/bindings/net/snps,dwmac.yaml        |   17 +-
 .../bindings/net/starfive,jh7110-dwmac.yaml        |   72 +-
 .../devicetree/bindings/net/ti,cpsw-switch.yaml    |    5 +-
 .../devicetree/bindings/net/ti,dp83822.yaml        |   34 +
 .../bindings/net/ti,k3-am654-cpsw-nuss.yaml        |    5 +-
 .../devicetree/bindings/net/ti,k3-am654-cpts.yaml  |    5 +-
 .../bindings/net/wireless/mediatek,mt76.yaml       |   33 +-
 .../bindings/net/wireless/qcom,ath10k.yaml         |    1 +
 .../bindings/net/wireless/qcom,ath11k-pci.yaml     |    1 +
 .../bindings/net/wireless/qcom,ath11k.yaml         |    1 +
 Documentation/netlink/genetlink-c.yaml             |   41 +-
 Documentation/netlink/genetlink-legacy.yaml        |   41 +-
 Documentation/netlink/genetlink.yaml               |   21 +-
 Documentation/netlink/netlink-raw.yaml             |   37 +-
 Documentation/netlink/specs/devlink.yaml           |    2 +-
 Documentation/netlink/specs/dpll.yaml              |   40 +
 Documentation/netlink/specs/mptcp_pm.yaml          |    3 +-
 Documentation/netlink/specs/netdev.yaml            |   91 +
 Documentation/netlink/specs/nlctrl.yaml            |  206 ++
 Documentation/netlink/specs/tc.yaml                | 2135 ++++++++++++-
 Documentation/networking/af_xdp.rst                |   31 +-
 Documentation/networking/bonding.rst               |   12 +
 Documentation/networking/can.rst                   |   34 +-
 .../device_drivers/ethernet/amazon/ena.rst         |    6 +
 .../networking/device_drivers/ethernet/index.rst   |    1 +
 .../device_drivers/ethernet/intel/ice.rst          |   21 +-
 .../ethernet/marvell/octeon_ep_vf.rst              |   24 +
 .../networking/device_drivers/wwan/t7xx.rst        |   46 +
 Documentation/networking/devlink/mlx5.rst          |    9 +-
 Documentation/networking/index.rst                 |    1 +
 Documentation/networking/ip-sysctl.rst             |   14 +-
 Documentation/networking/l2tp.rst                  |  137 +-
 Documentation/networking/multi-pf-netdev.rst       |  174 ++
 Documentation/networking/netconsole.rst            |   66 +
 Documentation/networking/netdevices.rst            |    4 +-
 Documentation/networking/sfp-phylink.rst           |  147 +-
 Documentation/networking/statistics.rst            |   15 +
 Documentation/networking/xfrm_device.rst           |    4 +-
 Documentation/userspace-api/ioctl/ioctl-number.rst |    1 +
 .../userspace-api/netlink/netlink-raw.rst          |   42 +
 MAINTAINERS                                        |   37 +-
 arch/arm/mm/ioremap.c                              |    8 +-
 arch/arm64/include/asm/patching.h                  |    2 +
 arch/arm64/kernel/patching.c                       |   75 +
 arch/arm64/kernel/stacktrace.c                     |   26 +
 arch/arm64/net/bpf_jit_comp.c                      |  284 +-
 arch/loongarch/kernel/setup.c                      |    2 +-
 arch/mips/loongson64/init.c                        |    2 +-
 arch/powerpc/kernel/isa-bridge.c                   |    4 +-
 arch/riscv/include/asm/cfi.h                       |   17 +
 arch/riscv/kernel/cfi.c                            |   53 +
 arch/riscv/net/bpf_jit.h                           |  136 +-
 arch/riscv/net/bpf_jit_comp32.c                    |    2 +-
 arch/riscv/net/bpf_jit_comp64.c                    |  229 +-
 arch/riscv/net/bpf_jit_core.c                      |    9 +-
 arch/x86/net/bpf_jit_comp.c                        |  236 +-
 drivers/atm/fore200e.c                             |    6 +-
 drivers/bcma/main.c                                |    2 +-
 drivers/bluetooth/btbcm.c                          |   12 +-
 drivers/bluetooth/btintel.c                        |  116 +-
 drivers/bluetooth/btmtk.c                          |    5 +-
 drivers/bluetooth/btmtk.h                          |    1 +
 drivers/bluetooth/btnxpuart.c                      |   27 +-
 drivers/bluetooth/btrtl.c                          |   14 +
 drivers/bluetooth/btusb.c                          |   30 +-
 drivers/bluetooth/hci_h5.c                         |    5 +-
 drivers/bluetooth/hci_qca.c                        |    6 +-
 drivers/bluetooth/hci_serdev.c                     |    9 +-
 drivers/bluetooth/hci_uart.h                       |   12 +-
 drivers/dpll/dpll_core.c                           |   13 +-
 drivers/dpll/dpll_netlink.c                        |    9 +-
 drivers/hid/bpf/hid_bpf_dispatch.c                 |    8 +-
 drivers/infiniband/ulp/ipoib/ipoib_main.c          |    4 +-
 drivers/isdn/capi/capi.c                           |   21 +-
 drivers/isdn/mISDN/dsp_pipeline.c                  |   16 +-
 drivers/media/rc/bpf-lirc.c                        |    2 +-
 drivers/net/amt.c                                  |   10 +-
 drivers/net/arcnet/arcnet.c                        |    1 +
 drivers/net/bareudp.c                              |   25 +-
 drivers/net/bonding/bond_3ad.c                     |  165 +-
 drivers/net/bonding/bond_main.c                    |   56 +-
 drivers/net/bonding/bond_netlink.c                 |   16 +
 drivers/net/bonding/bond_options.c                 |   28 +-
 drivers/net/can/Kconfig                            |    3 +
 drivers/net/can/Makefile                           |    1 +
 drivers/net/can/esd/Kconfig                        |   12 +
 drivers/net/can/esd/Makefile                       |    7 +
 drivers/net/can/esd/esd_402_pci-core.c             |  514 ++++
 drivers/net/can/esd/esdacc.c                       |  764 +++++
 drivers/net/can/esd/esdacc.h                       |  356 +++
 drivers/net/can/kvaser_pciefd.c                    |   62 +-
 drivers/net/can/m_can/m_can.c                      |  579 +++-
 drivers/net/can/m_can/m_can.h                      |   35 +-
 drivers/net/can/m_can/m_can_pci.c                  |    1 +
 drivers/net/can/m_can/m_can_platform.c             |    5 +-
 drivers/net/can/m_can/tcan4x5x-core.c              |   33 +-
 drivers/net/can/softing/softing_fw.c               |    2 +-
 drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c     |    2 +-
 drivers/net/can/usb/Kconfig                        |    1 +
 drivers/net/can/usb/gs_usb.c                       |    2 +-
 drivers/net/can/usb/kvaser_usb/kvaser_usb_core.c   |    3 +
 drivers/net/can/vxcan.c                            |    2 +-
 drivers/net/can/xilinx_can.c                       |  169 +-
 drivers/net/dsa/Kconfig                            |    2 +-
 drivers/net/dsa/b53/b53_common.c                   |   42 +-
 drivers/net/dsa/b53/b53_priv.h                     |    7 +-
 drivers/net/dsa/bcm_sf2.c                          |    2 +-
 drivers/net/dsa/microchip/ksz8795.c                |  410 ++-
 drivers/net/dsa/microchip/ksz8795_reg.h            |    1 +
 drivers/net/dsa/microchip/ksz9477_i2c.c            |    4 +
 drivers/net/dsa/microchip/ksz_common.c             |  112 +-
 drivers/net/dsa/microchip/ksz_common.h             |    2 +
 drivers/net/dsa/microchip/ksz_spi.c                |    5 +
 drivers/net/dsa/mt7530-mdio.c                      |    7 +-
 drivers/net/dsa/mt7530.c                           |  574 ++--
 drivers/net/dsa/mt7530.h                           |   38 +-
 drivers/net/dsa/mv88e6xxx/chip.c                   |   11 +-
 drivers/net/dsa/mv88e6xxx/global2.h                |    4 +-
 drivers/net/dsa/mv88e6xxx/global2_scratch.c        |   35 +-
 drivers/net/dsa/mv88e6xxx/pcs-6185.c               |    3 +-
 drivers/net/dsa/qca/qca8k-8xxx.c                   |   19 +-
 drivers/net/dsa/qca/qca8k-common.c                 |    4 +-
 drivers/net/dsa/qca/qca8k.h                        |    4 +-
 drivers/net/dsa/realtek/Kconfig                    |   20 +-
 drivers/net/dsa/realtek/Makefile                   |   13 +-
 drivers/net/dsa/realtek/realtek-mdio.c             |  205 +-
 drivers/net/dsa/realtek/realtek-mdio.h             |   48 +
 drivers/net/dsa/realtek/realtek-smi.c              |  279 +-
 drivers/net/dsa/realtek/realtek-smi.h              |   48 +
 drivers/net/dsa/realtek/realtek.h                  |   14 +-
 drivers/net/dsa/realtek/rtl8365mb.c                |  132 +-
 drivers/net/dsa/realtek/rtl8366-core.c             |   22 +-
 drivers/net/dsa/realtek/rtl8366rb.c                |  119 +-
 drivers/net/dsa/realtek/rtl83xx.c                  |  335 +++
 drivers/net/dsa/realtek/rtl83xx.h                  |   24 +
 drivers/net/dummy.c                                |   11 +-
 drivers/net/ethernet/Kconfig                       |    3 -
 drivers/net/ethernet/adi/adin1110.c                |   10 +-
 drivers/net/ethernet/amazon/ena/ena_com.c          |  323 +-
 drivers/net/ethernet/amazon/ena/ena_com.h          |    7 +-
 drivers/net/ethernet/amazon/ena/ena_eth_com.c      |   49 +-
 drivers/net/ethernet/amazon/ena/ena_eth_com.h      |   39 +-
 drivers/net/ethernet/amazon/ena/ena_netdev.c       |  181 +-
 drivers/net/ethernet/amazon/ena/ena_regs_defs.h    |    1 +
 drivers/net/ethernet/amazon/ena/ena_xdp.c          |    1 -
 drivers/net/ethernet/amd/pds_core/adminq.c         |   10 +-
 drivers/net/ethernet/amd/pds_core/auxbus.c         |   18 +-
 drivers/net/ethernet/amd/pds_core/core.c           |   95 +-
 drivers/net/ethernet/amd/pds_core/core.h           |    4 +-
 drivers/net/ethernet/amd/pds_core/debugfs.c        |    8 +-
 drivers/net/ethernet/amd/pds_core/dev.c            |   22 +-
 drivers/net/ethernet/amd/pds_core/main.c           |   47 +-
 .../net/ethernet/aquantia/atlantic/aq_ethtool.c    |   25 +-
 drivers/net/ethernet/broadcom/asp2/bcmasp.c        |   90 +-
 drivers/net/ethernet/broadcom/asp2/bcmasp.h        |   25 +-
 .../net/ethernet/broadcom/asp2/bcmasp_ethtool.c    |   12 +-
 drivers/net/ethernet/broadcom/asp2/bcmasp_intf.c   |  210 +-
 drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c    |   23 +-
 .../net/ethernet/broadcom/bnx2x/bnx2x_ethtool.c    |   50 +-
 drivers/net/ethernet/broadcom/bnx2x/bnx2x_link.c   |   14 +-
 drivers/net/ethernet/broadcom/bnxt/bnxt.c          |  921 ++++--
 drivers/net/ethernet/broadcom/bnxt/bnxt.h          |   74 +-
 drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c  |  466 ++-
 drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.h  |    6 +-
 drivers/net/ethernet/broadcom/genet/bcmgenet.c     |   16 +-
 drivers/net/ethernet/broadcom/genet/bcmgenet.h     |    2 +-
 drivers/net/ethernet/broadcom/genet/bcmmii.c       |   11 +-
 drivers/net/ethernet/broadcom/tg3.c                |   54 +-
 drivers/net/ethernet/broadcom/tg3.h                |    2 +-
 drivers/net/ethernet/chelsio/cxgb4/sge.c           |   14 -
 drivers/net/ethernet/cisco/enic/enic_main.c        |    2 +-
 drivers/net/ethernet/ec_bhf.c                      |    1 +
 drivers/net/ethernet/engleder/tsnep_main.c         |   36 +-
 drivers/net/ethernet/freescale/enetc/enetc.c       |    4 +-
 drivers/net/ethernet/freescale/fec.h               |    2 +-
 drivers/net/ethernet/freescale/fec_main.c          |  148 +-
 drivers/net/ethernet/freescale/gianfar.c           |    4 +-
 drivers/net/ethernet/google/gve/gve.h              |  171 +-
 drivers/net/ethernet/google/gve/gve_adminq.c       |   50 +-
 drivers/net/ethernet/google/gve/gve_adminq.h       |   20 +-
 drivers/net/ethernet/google/gve/gve_dqo.h          |   18 +-
 drivers/net/ethernet/google/gve/gve_ethtool.c      |   62 +-
 drivers/net/ethernet/google/gve/gve_main.c         |  936 +++---
 drivers/net/ethernet/google/gve/gve_rx.c           |  135 +-
 drivers/net/ethernet/google/gve/gve_rx_dqo.c       |  159 +-
 drivers/net/ethernet/google/gve/gve_tx.c           |  128 +-
 drivers/net/ethernet/google/gve/gve_tx_dqo.c       |  108 +-
 drivers/net/ethernet/google/gve/gve_utils.c        |   48 +-
 drivers/net/ethernet/google/gve/gve_utils.h        |    8 +
 drivers/net/ethernet/hisilicon/hns/hnae.c          |   13 +-
 drivers/net/ethernet/hisilicon/hns3/hnae3.h        |    2 +
 .../hisilicon/hns3/hns3_common/hclge_comm_cmd.c    |    2 +-
 .../hisilicon/hns3/hns3_common/hclge_comm_cmd.h    |    2 +-
 drivers/net/ethernet/hisilicon/hns3/hns3_dcbnl.c   |    2 +-
 drivers/net/ethernet/hisilicon/hns3/hns3_debugfs.c |    2 +
 drivers/net/ethernet/hisilicon/hns3/hns3_enet.c    |    4 +-
 .../net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.h |    3 +-
 .../net/ethernet/hisilicon/hns3/hns3pf/hclge_dcb.c |    2 +
 .../ethernet/hisilicon/hns3/hns3pf/hclge_main.c    |   44 +-
 .../ethernet/hisilicon/hns3/hns3pf/hclge_main.h    |   11 +-
 .../net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c |    7 +-
 .../net/ethernet/hisilicon/hns3/hns3pf/hclge_ptp.c |    2 +-
 .../net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c  |   16 +
 .../net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.h  |    1 +
 drivers/net/ethernet/i825xx/sun3_82586.c           |    2 +-
 drivers/net/ethernet/intel/Kconfig                 |    9 +
 drivers/net/ethernet/intel/e100.c                  |    4 +-
 drivers/net/ethernet/intel/e1000e/ethtool.c        |   23 +-
 drivers/net/ethernet/intel/e1000e/netdev.c         |    8 +-
 drivers/net/ethernet/intel/i40e/i40e.h             |   93 +-
 drivers/net/ethernet/intel/i40e/i40e_client.c      |    4 -
 drivers/net/ethernet/intel/i40e/i40e_dcb_nl.c      |   10 +-
 drivers/net/ethernet/intel/i40e/i40e_debugfs.c     |   97 +-
 drivers/net/ethernet/intel/i40e/i40e_ethtool.c     |   13 +-
 drivers/net/ethernet/intel/i40e/i40e_main.c        |  567 ++--
 drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c |    4 -
 drivers/net/ethernet/intel/iavf/iavf_main.c        |   13 +-
 drivers/net/ethernet/intel/ice/ice.h               |    5 +-
 drivers/net/ethernet/intel/ice/ice_arfs.c          |    1 +
 drivers/net/ethernet/intel/ice/ice_base.c          |  134 +-
 drivers/net/ethernet/intel/ice/ice_base.h          |   10 +-
 drivers/net/ethernet/intel/ice/ice_common.c        |  183 +-
 drivers/net/ethernet/intel/ice/ice_common.h        |   12 +-
 drivers/net/ethernet/intel/ice/ice_controlq.c      |    2 +-
 drivers/net/ethernet/intel/ice/ice_ddp.c           |    4 +
 drivers/net/ethernet/intel/ice/ice_debugfs.c       |   13 +-
 drivers/net/ethernet/intel/ice/ice_devids.h        |    8 +
 drivers/net/ethernet/intel/ice/ice_devlink.c       |   68 +-
 drivers/net/ethernet/intel/ice/ice_dpll.c          |    2 +
 drivers/net/ethernet/intel/ice/ice_ethtool.c       |   95 +-
 drivers/net/ethernet/intel/ice/ice_flow.h          |   31 +-
 drivers/net/ethernet/intel/ice/ice_fwlog.c         |    2 +
 drivers/net/ethernet/intel/ice/ice_lib.c           |  221 +-
 drivers/net/ethernet/intel/ice/ice_lib.h           |   12 -
 drivers/net/ethernet/intel/ice/ice_main.c          |  275 +-
 drivers/net/ethernet/intel/ice/ice_ptp.c           |  233 +-
 drivers/net/ethernet/intel/ice/ice_ptp.h           |   34 +-
 drivers/net/ethernet/intel/ice/ice_sriov.c         |    1 -
 drivers/net/ethernet/intel/ice/ice_txrx_lib.c      |    8 +-
 drivers/net/ethernet/intel/ice/ice_type.h          |    1 +
 drivers/net/ethernet/intel/ice/ice_vf_lib.c        |   10 +-
 drivers/net/ethernet/intel/ice/ice_vf_lib.h        |    5 -
 drivers/net/ethernet/intel/ice/ice_virtchnl.c      |   31 +-
 drivers/net/ethernet/intel/ice/ice_virtchnl.h      |    9 +
 drivers/net/ethernet/intel/ice/ice_virtchnl_fdir.c |    3 -
 drivers/net/ethernet/intel/ice/ice_xsk.c           |   22 +-
 drivers/net/ethernet/intel/idpf/idpf.h             |  146 +-
 drivers/net/ethernet/intel/idpf/idpf_controlq.c    |    7 +-
 .../net/ethernet/intel/idpf/idpf_controlq_api.h    |    5 +
 drivers/net/ethernet/intel/idpf/idpf_dev.c         |    1 +
 drivers/net/ethernet/intel/idpf/idpf_lib.c         |   39 +-
 drivers/net/ethernet/intel/idpf/idpf_main.c        |    6 +-
 drivers/net/ethernet/intel/idpf/idpf_txrx.c        |    1 +
 drivers/net/ethernet/intel/idpf/idpf_vf_dev.c      |    3 +-
 drivers/net/ethernet/intel/idpf/idpf_virtchnl.c    | 2296 +++++++-------
 drivers/net/ethernet/intel/idpf/idpf_virtchnl.h    |   70 +
 drivers/net/ethernet/intel/igb/igb_ethtool.c       |   43 +-
 drivers/net/ethernet/intel/igb/igb_main.c          |   27 +-
 drivers/net/ethernet/intel/igbvf/netdev.c          |    2 +-
 drivers/net/ethernet/intel/igc/Makefile            |    1 +
 drivers/net/ethernet/intel/igc/igc.h               |   10 +-
 drivers/net/ethernet/intel/igc/igc_ethtool.c       |   25 +-
 drivers/net/ethernet/intel/igc/igc_leds.c          |  280 ++
 drivers/net/ethernet/intel/igc/igc_main.c          |   41 +-
 drivers/net/ethernet/intel/igc/igc_regs.h          |    1 +
 drivers/net/ethernet/intel/ixgbe/ixgbe.h           |   16 +-
 drivers/net/ethernet/intel/ixgbe/ixgbe_82598.c     |   72 +-
 drivers/net/ethernet/intel/ixgbe/ixgbe_82599.c     |  155 +-
 drivers/net/ethernet/intel/ixgbe/ixgbe_common.c    |  266 +-
 drivers/net/ethernet/intel/ixgbe/ixgbe_common.h    |  112 +-
 drivers/net/ethernet/intel/ixgbe/ixgbe_dcb.c       |   12 +-
 drivers/net/ethernet/intel/ixgbe/ixgbe_dcb.h       |   10 +-
 drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_82598.c |   26 +-
 drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_82598.h |   24 +-
 drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_82599.c |   12 +-
 drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_82599.h |   29 +-
 drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c   |   70 +-
 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c      |   62 +-
 drivers/net/ethernet/intel/ixgbe/ixgbe_mbx.c       |   46 +-
 drivers/net/ethernet/intel/ixgbe/ixgbe_mbx.h       |   10 +-
 drivers/net/ethernet/intel/ixgbe/ixgbe_phy.c       |  244 +-
 drivers/net/ethernet/intel/ixgbe/ixgbe_phy.h       |   54 +-
 drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c     |    8 +-
 .../net/ethernet/intel/ixgbe/ixgbe_txrx_common.h   |    7 +
 drivers/net/ethernet/intel/ixgbe/ixgbe_type.h      |  189 +-
 drivers/net/ethernet/intel/ixgbe/ixgbe_x540.c      |   66 +-
 drivers/net/ethernet/intel/ixgbe/ixgbe_x540.h      |   18 +-
 drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c      |  300 +-
 drivers/net/ethernet/intel/ixgbe/ixgbe_xsk.c       |   17 +-
 drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c  |    2 +-
 drivers/net/ethernet/marvell/Kconfig               |    1 +
 drivers/net/ethernet/marvell/Makefile              |    1 +
 drivers/net/ethernet/marvell/mvneta.c              |    4 +-
 drivers/net/ethernet/marvell/octeon_ep_vf/Kconfig  |   19 +
 drivers/net/ethernet/marvell/octeon_ep_vf/Makefile |   10 +
 .../ethernet/marvell/octeon_ep_vf/octep_vf_cn9k.c  |  489 +++
 .../ethernet/marvell/octeon_ep_vf/octep_vf_cnxk.c  |  500 ++++
 .../marvell/octeon_ep_vf/octep_vf_config.h         |  160 +
 .../marvell/octeon_ep_vf/octep_vf_ethtool.c        |  273 ++
 .../ethernet/marvell/octeon_ep_vf/octep_vf_main.c  | 1231 ++++++++
 .../ethernet/marvell/octeon_ep_vf/octep_vf_main.h  |  334 +++
 .../ethernet/marvell/octeon_ep_vf/octep_vf_mbox.c  |  430 +++
 .../ethernet/marvell/octeon_ep_vf/octep_vf_mbox.h  |  166 +
 .../marvell/octeon_ep_vf/octep_vf_regs_cn9k.h      |  154 +
 .../marvell/octeon_ep_vf/octep_vf_regs_cnxk.h      |  162 +
 .../ethernet/marvell/octeon_ep_vf/octep_vf_rx.c    |  510 ++++
 .../ethernet/marvell/octeon_ep_vf/octep_vf_rx.h    |  224 ++
 .../ethernet/marvell/octeon_ep_vf/octep_vf_tx.c    |  330 ++
 .../ethernet/marvell/octeon_ep_vf/octep_vf_tx.h    |  276 ++
 drivers/net/ethernet/marvell/octeontx2/af/mbox.h   |    4 +
 drivers/net/ethernet/marvell/octeontx2/af/npc.h    |   16 +-
 .../ethernet/marvell/octeontx2/af/npc_profile.h    |  621 +++-
 drivers/net/ethernet/marvell/octeontx2/af/rvu.c    |   16 +-
 drivers/net/ethernet/marvell/octeontx2/af/rvu.h    |   32 +-
 .../ethernet/marvell/octeontx2/af/rvu_debugfs.c    |    4 +
 .../ethernet/marvell/octeontx2/af/rvu_devlink.c    |   20 +-
 .../net/ethernet/marvell/octeontx2/af/rvu_nix.c    |  188 +-
 .../net/ethernet/marvell/octeontx2/af/rvu_npc.c    |    8 +-
 .../net/ethernet/marvell/octeontx2/af/rvu_npc_fs.c |    8 +-
 .../net/ethernet/marvell/octeontx2/af/rvu_reg.h    |    3 +
 .../net/ethernet/marvell/octeontx2/af/rvu_sdp.c    |   14 +-
 .../net/ethernet/marvell/octeontx2/nic/otx2_tc.c   |   11 +
 drivers/net/ethernet/mediatek/mtk_wed_wo.c         |   17 +-
 drivers/net/ethernet/mellanox/mlx4/cmd.c           |    7 +-
 drivers/net/ethernet/mellanox/mlx4/cq.c            |    4 +-
 drivers/net/ethernet/mellanox/mlx4/en_clock.c      |    4 +-
 drivers/net/ethernet/mellanox/mlx4/en_netdev.c     |    6 +-
 drivers/net/ethernet/mellanox/mlx4/en_rx.c         |    2 +-
 drivers/net/ethernet/mellanox/mlx4/en_tx.c         |    2 +-
 drivers/net/ethernet/mellanox/mlx4/eq.c            |    2 +-
 drivers/net/ethernet/mellanox/mlx4/fw_qos.h        |    8 +-
 drivers/net/ethernet/mellanox/mlx4/main.c          |    4 +-
 drivers/net/ethernet/mellanox/mlx4/mlx4_stats.h    |    2 +-
 drivers/net/ethernet/mellanox/mlx4/port.c          |    2 +-
 drivers/net/ethernet/mellanox/mlx5/core/Makefile   |    2 +-
 drivers/net/ethernet/mellanox/mlx5/core/dev.c      |    2 +-
 drivers/net/ethernet/mellanox/mlx5/core/dpll.c     |   32 +-
 drivers/net/ethernet/mellanox/mlx5/core/en.h       |    9 +-
 .../net/ethernet/mellanox/mlx5/core/en/channels.c  |   10 +-
 .../net/ethernet/mellanox/mlx5/core/en/channels.h  |    6 +-
 .../ethernet/mellanox/mlx5/core/en/monitor_stats.c |   48 +-
 .../net/ethernet/mellanox/mlx5/core/en/params.c    |   33 +-
 .../net/ethernet/mellanox/mlx5/core/en/params.h    |    3 -
 drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c   |   17 +-
 drivers/net/ethernet/mellanox/mlx5/core/en/qos.c   |    8 +-
 .../ethernet/mellanox/mlx5/core/en/reporter_rx.c   |    4 +-
 .../ethernet/mellanox/mlx5/core/en/reporter_tx.c   |    3 +-
 drivers/net/ethernet/mellanox/mlx5/core/en/rqt.c   |  125 +-
 drivers/net/ethernet/mellanox/mlx5/core/en/rqt.h   |    9 +-
 drivers/net/ethernet/mellanox/mlx5/core/en/rss.c   |   17 +-
 drivers/net/ethernet/mellanox/mlx5/core/en/rss.h   |    4 +-
 .../net/ethernet/mellanox/mlx5/core/en/rx_res.c    |   62 +-
 .../net/ethernet/mellanox/mlx5/core/en/rx_res.h    |    1 +
 drivers/net/ethernet/mellanox/mlx5/core/en/trap.c  |   11 +-
 .../net/ethernet/mellanox/mlx5/core/en/xsk/pool.c  |    6 +-
 .../net/ethernet/mellanox/mlx5/core/en/xsk/setup.c |    8 +-
 .../ethernet/mellanox/mlx5/core/en_accel/ipsec.c   |   26 +-
 .../ethernet/mellanox/mlx5/core/en_accel/ipsec.h   |    1 -
 .../mellanox/mlx5/core/en_accel/ipsec_rxtx.c       |   25 +-
 .../mellanox/mlx5/core/en_accel/ipsec_rxtx.h       |    1 -
 .../mellanox/mlx5/core/en_accel/ipsec_stats.c      |    1 -
 .../ethernet/mellanox/mlx5/core/en_accel/ktls.c    |    2 +-
 .../ethernet/mellanox/mlx5/core/en_accel/ktls.h    |    4 +-
 .../ethernet/mellanox/mlx5/core/en_accel/ktls_rx.c |    6 +-
 drivers/net/ethernet/mellanox/mlx5/core/en_arfs.c  |    1 +
 drivers/net/ethernet/mellanox/mlx5/core/en_main.c  |  187 +-
 drivers/net/ethernet/mellanox/mlx5/core/en_stats.c |   39 +-
 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c    |    4 +-
 drivers/net/ethernet/mellanox/mlx5/core/fw.c       |    6 +-
 drivers/net/ethernet/mellanox/mlx5/core/health.c   |   45 +-
 .../net/ethernet/mellanox/mlx5/core/lib/devcom.h   |    1 +
 drivers/net/ethernet/mellanox/mlx5/core/lib/mlx5.h |   12 +
 drivers/net/ethernet/mellanox/mlx5/core/lib/sd.c   |  524 ++++
 drivers/net/ethernet/mellanox/mlx5/core/lib/sd.h   |   38 +
 drivers/net/ethernet/mellanox/mlx5/core/main.c     |   38 +-
 .../net/ethernet/mellanox/mlx5/core/mlx5_core.h    |    7 -
 .../net/ethernet/mellanox/mlx5/core/sf/dev/dev.c   |    9 +-
 .../ethernet/mellanox/mlx5/core/sf/dev/driver.c    |   21 +-
 .../ethernet/mellanox/mlx5/core/steering/dr_dbg.c  |  734 ++++-
 .../ethernet/mellanox/mlx5/core/steering/dr_dbg.h  |   20 +
 .../mellanox/mlxbf_gige/mlxbf_gige_ethtool.c       |   36 +
 .../ethernet/mellanox/mlxbf_gige/mlxbf_gige_regs.h |   30 +
 .../mellanox/mlxsw/core_acl_flex_actions.c         |   16 +-
 .../ethernet/mellanox/mlxsw/core_acl_flex_keys.c   |    9 +-
 drivers/net/ethernet/mellanox/mlxsw/minimal.c      |    1 -
 drivers/net/ethernet/mellanox/mlxsw/spectrum.c     |  168 +-
 drivers/net/ethernet/mellanox/mlxsw/spectrum.h     |   19 +-
 drivers/net/ethernet/mellanox/mlxsw/spectrum_acl.c |   13 +-
 .../ethernet/mellanox/mlxsw/spectrum_acl_tcam.c    |   17 +-
 .../net/ethernet/mellanox/mlxsw/spectrum_dpipe.c   |   22 +-
 .../net/ethernet/mellanox/mlxsw/spectrum_mr_tcam.c |    2 +-
 .../net/ethernet/mellanox/mlxsw/spectrum_router.c  |  333 ++-
 .../net/ethernet/mellanox/mlxsw/spectrum_router.h  |    6 +-
 .../ethernet/mellanox/mlxsw/spectrum_switchdev.c   |    8 +-
 drivers/net/ethernet/microchip/encx24j600-regmap.c |    5 +-
 drivers/net/ethernet/microchip/lan743x_ethtool.c   |    4 +-
 drivers/net/ethernet/microchip/lan743x_main.c      |    2 +-
 drivers/net/ethernet/microchip/lan743x_ptp.c       |    4 +-
 .../microchip/lan966x/lan966x_vcap_debugfs.c       |    2 +
 drivers/net/ethernet/microsoft/mana/gdma_main.c    |   86 +-
 drivers/net/ethernet/mscc/ocelot.c                 |    1 +
 drivers/net/ethernet/netronome/nfp/flower/action.c |    2 +-
 .../net/ethernet/netronome/nfp/flower/lag_conf.c   |    5 +
 drivers/net/ethernet/nvidia/forcedeth.c            |    4 +-
 drivers/net/ethernet/pensando/ionic/ionic.h        |    2 +
 .../net/ethernet/pensando/ionic/ionic_debugfs.c    |    2 +-
 drivers/net/ethernet/pensando/ionic/ionic_dev.c    |  105 +-
 drivers/net/ethernet/pensando/ionic/ionic_dev.h    |   90 +-
 .../net/ethernet/pensando/ionic/ionic_ethtool.c    |    5 +
 drivers/net/ethernet/pensando/ionic/ionic_lif.c    |  372 ++-
 drivers/net/ethernet/pensando/ionic/ionic_lif.h    |   23 +-
 drivers/net/ethernet/pensando/ionic/ionic_main.c   |  117 +-
 drivers/net/ethernet/pensando/ionic/ionic_stats.c  |   18 +
 drivers/net/ethernet/pensando/ionic/ionic_txrx.c   |  945 ++++--
 drivers/net/ethernet/pensando/ionic/ionic_txrx.h   |    4 +-
 .../net/ethernet/qlogic/netxen/netxen_nic_init.c   |    2 -
 drivers/net/ethernet/qlogic/qed/qed_rdma.c         |    2 -
 drivers/net/ethernet/qlogic/qede/qede_ethtool.c    |   64 +-
 drivers/net/ethernet/qlogic/qede/qede_fp.c         |    2 +-
 drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c     |    3 +-
 drivers/net/ethernet/qualcomm/emac/emac.c          |    1 +
 drivers/net/ethernet/qualcomm/qca_7k.c             |   17 +-
 drivers/net/ethernet/qualcomm/qca_7k.h             |   16 +-
 drivers/net/ethernet/qualcomm/qca_7k_common.c      |   17 +-
 drivers/net/ethernet/qualcomm/qca_7k_common.h      |   29 +-
 drivers/net/ethernet/qualcomm/qca_debug.c          |   21 +-
 drivers/net/ethernet/qualcomm/qca_debug.h          |   15 +-
 drivers/net/ethernet/qualcomm/qca_spi.c            |   71 +-
 drivers/net/ethernet/qualcomm/qca_spi.h            |   22 +-
 drivers/net/ethernet/qualcomm/qca_uart.c           |   17 +-
 drivers/net/ethernet/qualcomm/rmnet/rmnet_config.c |    1 +
 drivers/net/ethernet/qualcomm/rmnet/rmnet_vnd.c    |    2 +-
 drivers/net/ethernet/realtek/r8169.h               |    4 +
 drivers/net/ethernet/realtek/r8169_leds.c          |  145 +-
 drivers/net/ethernet/realtek/r8169_main.c          |  271 +-
 drivers/net/ethernet/realtek/r8169_phy_config.c    |    7 +
 drivers/net/ethernet/renesas/Kconfig               |    1 +
 drivers/net/ethernet/renesas/ravb.h                |   60 +-
 drivers/net/ethernet/renesas/ravb_main.c           | 1205 ++++----
 drivers/net/ethernet/rocker/rocker_main.c          |    2 -
 drivers/net/ethernet/samsung/sxgbe/sxgbe_common.h  |    1 -
 drivers/net/ethernet/samsung/sxgbe/sxgbe_ethtool.c |    6 +-
 drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c    |    1 -
 drivers/net/ethernet/sfc/efx_common.c              |    2 +-
 drivers/net/ethernet/sfc/falcon/efx.c              |    2 +-
 drivers/net/ethernet/sfc/rx_common.c               |    1 +
 drivers/net/ethernet/sfc/siena/efx_common.c        |    2 +-
 drivers/net/ethernet/sfc/siena/rx_common.c         |    1 +
 drivers/net/ethernet/sfc/siena/tx_common.c         |    5 +-
 drivers/net/ethernet/sfc/tx_common.c               |    5 +-
 drivers/net/ethernet/sfc/tx_tso.c                  |    4 +-
 drivers/net/ethernet/smsc/smc91x.c                 |    1 +
 drivers/net/ethernet/smsc/smsc911x.c               |    1 +
 drivers/net/ethernet/smsc/smsc9420.c               |    1 +
 drivers/net/ethernet/stmicro/stmmac/Kconfig        |    6 +-
 drivers/net/ethernet/stmicro/stmmac/common.h       |    3 +
 .../ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c    |   35 +-
 .../net/ethernet/stmicro/stmmac/dwmac-socfpga.c    |    1 +
 .../net/ethernet/stmicro/stmmac/dwmac-starfive.c   |   32 +-
 drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.h   |    2 +-
 drivers/net/ethernet/stmicro/stmmac/mmc.h          |    4 -
 drivers/net/ethernet/stmicro/stmmac/mmc_core.c     |    3 -
 drivers/net/ethernet/stmicro/stmmac/stmmac.h       |    3 +
 drivers/net/ethernet/stmicro/stmmac/stmmac_est.c   |    6 +
 .../net/ethernet/stmicro/stmmac/stmmac_ethtool.c   |    8 +-
 drivers/net/ethernet/stmicro/stmmac/stmmac_main.c  |   69 +-
 drivers/net/ethernet/stmicro/stmmac/stmmac_pcs.h   |    2 +
 .../net/ethernet/stmicro/stmmac/stmmac_platform.c  |    8 +
 drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c    |   87 +-
 drivers/net/ethernet/sun/sunvnet_common.c          |    4 +-
 drivers/net/ethernet/ti/am65-cpsw-ethtool.c        |    4 +-
 drivers/net/ethernet/ti/cpsw-common.c              |    1 +
 drivers/net/ethernet/ti/cpsw_ethtool.c             |    4 +-
 drivers/net/ethernet/ti/cpsw_priv.h                |    4 +-
 drivers/net/ethernet/ti/icssg/icssg_ethtool.c      |    4 +-
 drivers/net/ethernet/ti/icssg/icssg_prueth.c       |    4 -
 drivers/net/ethernet/toshiba/ps3_gelic_net.c       |    8 +-
 drivers/net/ethernet/wangxun/libwx/wx_hw.c         |    2 -
 drivers/net/ethernet/wangxun/libwx/wx_lib.c        |   22 +-
 drivers/net/ethernet/wangxun/libwx/wx_type.h       |    1 -
 drivers/net/ethernet/wangxun/txgbe/Makefile        |    1 +
 drivers/net/ethernet/wangxun/txgbe/txgbe_irq.c     |  269 ++
 drivers/net/ethernet/wangxun/txgbe/txgbe_irq.h     |    7 +
 drivers/net/ethernet/wangxun/txgbe/txgbe_main.c    |  141 +-
 drivers/net/ethernet/wangxun/txgbe/txgbe_phy.c     |   82 +-
 drivers/net/ethernet/wangxun/txgbe/txgbe_phy.h     |    3 +
 drivers/net/ethernet/wangxun/txgbe/txgbe_type.h    |   17 +
 drivers/net/ethernet/wiznet/w5300.c                |    3 +-
 drivers/net/ethernet/xilinx/xilinx_emaclite.c      |    3 +-
 drivers/net/ethernet/xircom/xirc2ps_cs.c           |    4 +-
 drivers/net/geneve.c                               |   40 +-
 drivers/net/gtp.c                                  |   39 +-
 drivers/net/ieee802154/at86rf230.c                 |    5 +-
 drivers/net/ieee802154/ca8210.c                    |   10 +-
 drivers/net/ieee802154/mcr20a.c                    |    5 +-
 drivers/net/ieee802154/mrf24j40.c                  |    4 +-
 drivers/net/ipa/ipa.h                              |    5 +-
 drivers/net/ipa/ipa_cmd.c                          |    6 +-
 drivers/net/ipa/ipa_endpoint.c                     |   29 +-
 drivers/net/ipa/ipa_interrupt.c                    |  119 +-
 drivers/net/ipa/ipa_interrupt.h                    |   30 +-
 drivers/net/ipa/ipa_main.c                         |   60 +-
 drivers/net/ipa/ipa_mem.c                          |   37 +-
 drivers/net/ipa/ipa_mem.h                          |    5 +-
 drivers/net/ipa/ipa_modem.c                        |  110 +-
 drivers/net/ipa/ipa_power.c                        |  108 +-
 drivers/net/ipa/ipa_power.h                        |   29 -
 drivers/net/ipa/ipa_qmi.c                          |   10 +-
 drivers/net/ipa/ipa_reg.c                          |    8 +-
 drivers/net/ipa/ipa_reg.h                          |    4 +-
 drivers/net/ipa/ipa_smp2p.c                        |   33 +-
 drivers/net/ipa/ipa_smp2p.h                        |    7 +-
 drivers/net/ipa/ipa_table.c                        |   18 +-
 drivers/net/ipa/ipa_uc.c                           |    9 +-
 drivers/net/ipvlan/ipvlan_main.c                   |    2 +-
 drivers/net/loopback.c                             |    1 +
 drivers/net/macsec.c                               |   12 +-
 drivers/net/macvlan.c                              |    2 +-
 drivers/net/mdio/mdio-bcm-unimac.c                 |   94 +-
 drivers/net/mdio/mdio-ipq4019.c                    |  109 +-
 drivers/net/mdio/of_mdio.c                         |   79 +-
 drivers/net/netconsole.c                           |  359 ++-
 drivers/net/netdevsim/bus.c                        |  149 +-
 drivers/net/netdevsim/netdev.c                     |   53 +-
 drivers/net/netdevsim/netdevsim.h                  |    3 +
 drivers/net/netkit.c                               |    2 +-
 drivers/net/nlmon.c                                |   24 +-
 drivers/net/pcs/pcs-lynx.c                         |    1 +
 drivers/net/pcs/pcs-mtk-lynxi.c                    |    1 +
 drivers/net/pcs/pcs-rzn1-miic.c                    |    5 +-
 drivers/net/pcs/pcs-xpcs.c                         |   18 +-
 drivers/net/phy/Kconfig                            |    8 +-
 drivers/net/phy/Makefile                           |    2 +-
 drivers/net/phy/adin1100.c                         |   55 +
 drivers/net/phy/aquantia/aquantia_main.c           |  103 +
 drivers/net/phy/at803x.c                           | 2432 ---------------
 drivers/net/phy/broadcom.c                         |    3 +-
 drivers/net/phy/dp83822.c                          |  211 +-
 drivers/net/phy/dp83867.c                          |   22 +
 drivers/net/phy/marvell-88q2xxx.c                  |  644 +++-
 drivers/net/phy/marvell-88x2222.c                  |    2 -
 drivers/net/phy/marvell.c                          |    7 +-
 drivers/net/phy/mdio_bus.c                         |   48 +-
 drivers/net/phy/micrel.c                           |  109 +-
 drivers/net/phy/mxl-gpy.c                          |   20 +-
 drivers/net/phy/phy-c45.c                          |  139 +-
 drivers/net/phy/phy.c                              |   61 +-
 drivers/net/phy/phy_device.c                       |  208 +-
 drivers/net/phy/phylink.c                          |    8 +-
 drivers/net/phy/qcom/Kconfig                       |   30 +
 drivers/net/phy/qcom/Makefile                      |    6 +
 drivers/net/phy/qcom/at803x.c                      | 1106 +++++++
 drivers/net/phy/qcom/qca807x.c                     |  849 ++++++
 drivers/net/phy/qcom/qca808x.c                     |  663 ++++
 drivers/net/phy/qcom/qca83xx.c                     |  275 ++
 drivers/net/phy/qcom/qcom-phy-lib.c                |  676 +++++
 drivers/net/phy/qcom/qcom.h                        |  243 ++
 drivers/net/phy/realtek.c                          |   44 +-
 drivers/net/phy/xilinx_gmii2rgmii.c                |    2 +-
 drivers/net/ppp/ppp_generic.c                      |   20 +-
 drivers/net/team/team.c                            |    2 -
 drivers/net/tun.c                                  |   34 +-
 drivers/net/usb/Kconfig                            |    1 +
 drivers/net/usb/ax88179_178a.c                     |   20 +-
 drivers/net/usb/cdc_mbim.c                         |    2 +-
 drivers/net/usb/hso.c                              |    2 +-
 drivers/net/usb/lan78xx.c                          |    4 +-
 drivers/net/usb/r8152.c                            |   49 +-
 drivers/net/usb/sr9800.c                           |    4 +-
 drivers/net/usb/usbnet.c                           |   13 +-
 drivers/net/veth.c                                 |   77 +-
 drivers/net/vsockmon.c                             |   19 +-
 drivers/net/vxlan/vxlan_core.c                     |   78 +-
 drivers/net/wan/Kconfig                            |   12 +
 drivers/net/wan/Makefile                           |    1 +
 drivers/net/wan/framer/framer-core.c               |   30 +-
 drivers/net/wan/framer/pef2256/pef2256.c           |    6 +-
 drivers/net/wan/fsl_qmc_hdlc.c                     |  797 +++++
 drivers/net/wireguard/receive.c                    |    2 +-
 drivers/net/wireless/admtek/adm8211.c              |    4 +
 drivers/net/wireless/ath/ar5523/ar5523.c           |    4 +
 drivers/net/wireless/ath/ath10k/core.c             |    4 +-
 drivers/net/wireless/ath/ath10k/coredump.h         |    8 +-
 drivers/net/wireless/ath/ath10k/htt.c              |    3 +-
 drivers/net/wireless/ath/ath10k/htt.h              |   12 +-
 drivers/net/wireless/ath/ath10k/mac.c              |   12 +-
 drivers/net/wireless/ath/ath10k/pci.c              |   10 +-
 drivers/net/wireless/ath/ath10k/wmi-tlv.c          |   11 +-
 drivers/net/wireless/ath/ath10k/wmi-tlv.h          |    4 +-
 drivers/net/wireless/ath/ath10k/wmi.c              |   26 +-
 drivers/net/wireless/ath/ath10k/wmi.h              |   62 +-
 drivers/net/wireless/ath/ath11k/core.c             |  108 +-
 drivers/net/wireless/ath/ath11k/core.h             |   42 +
 drivers/net/wireless/ath/ath11k/dp.c               |   20 +-
 drivers/net/wireless/ath/ath11k/dp_tx.c            |    6 +-
 drivers/net/wireless/ath/ath11k/hal.c              |   19 +-
 drivers/net/wireless/ath/ath11k/hal.h              |    3 +-
 drivers/net/wireless/ath/ath11k/hal_rx.c           |    4 +-
 drivers/net/wireless/ath/ath11k/hw.c               |    2 +-
 drivers/net/wireless/ath/ath11k/hw.h               |    1 +
 drivers/net/wireless/ath/ath11k/mac.c              | 1200 ++++++--
 drivers/net/wireless/ath/ath11k/mac.h              |    5 +-
 drivers/net/wireless/ath/ath11k/mhi.c              |   73 +-
 drivers/net/wireless/ath/ath11k/pci.c              |   62 +-
 drivers/net/wireless/ath/ath11k/pci.h              |    3 +-
 drivers/net/wireless/ath/ath11k/pcic.c             |   11 +
 drivers/net/wireless/ath/ath11k/qmi.c              |    5 +-
 drivers/net/wireless/ath/ath11k/reg.c              |  267 +-
 drivers/net/wireless/ath/ath11k/reg.h              |   11 +-
 drivers/net/wireless/ath/ath11k/testmode.c         |    2 +-
 drivers/net/wireless/ath/ath11k/thermal.c          |    5 +-
 drivers/net/wireless/ath/ath11k/wmi.c              |  303 +-
 drivers/net/wireless/ath/ath11k/wmi.h              |  151 +-
 drivers/net/wireless/ath/ath12k/Makefile           |    4 +-
 drivers/net/wireless/ath/ath12k/core.c             |  270 +-
 drivers/net/wireless/ath/ath12k/core.h             |   84 +-
 drivers/net/wireless/ath/ath12k/dp.c               |   25 +-
 drivers/net/wireless/ath/ath12k/dp.h               |   20 +-
 drivers/net/wireless/ath/ath12k/dp_mon.c           |    9 +-
 drivers/net/wireless/ath/ath12k/dp_rx.c            |  166 +-
 drivers/net/wireless/ath/ath12k/dp_tx.c            |   30 +-
 drivers/net/wireless/ath/ath12k/fw.c               |  171 ++
 drivers/net/wireless/ath/ath12k/fw.h               |   33 +
 drivers/net/wireless/ath/ath12k/hal.c              |  415 ++-
 drivers/net/wireless/ath/ath12k/hal.h              |   20 +-
 drivers/net/wireless/ath/ath12k/hal_desc.h         |   20 +-
 drivers/net/wireless/ath/ath12k/hal_rx.c           |   15 +-
 drivers/net/wireless/ath/ath12k/hw.c               |   33 +-
 drivers/net/wireless/ath/ath12k/hw.h               |   55 +-
 drivers/net/wireless/ath/ath12k/mac.c              | 1307 +++++---
 drivers/net/wireless/ath/ath12k/mac.h              |    4 +-
 drivers/net/wireless/ath/ath12k/mhi.c              |   52 +-
 drivers/net/wireless/ath/ath12k/p2p.c              |  142 +
 drivers/net/wireless/ath/ath12k/p2p.h              |   23 +
 drivers/net/wireless/ath/ath12k/pci.c              |   94 +-
 drivers/net/wireless/ath/ath12k/pci.h              |    6 +-
 drivers/net/wireless/ath/ath12k/qmi.c              |  429 ++-
 drivers/net/wireless/ath/ath12k/qmi.h              |   35 +-
 drivers/net/wireless/ath/ath12k/reg.c              |   13 +-
 drivers/net/wireless/ath/ath12k/rx_desc.h          |  116 +-
 drivers/net/wireless/ath/ath12k/trace.h            |   29 +-
 drivers/net/wireless/ath/ath12k/wmi.c              |  330 +-
 drivers/net/wireless/ath/ath12k/wmi.h              |  202 +-
 drivers/net/wireless/ath/ath5k/mac80211-ops.c      |    4 +
 drivers/net/wireless/ath/ath6kl/cfg80211.c         |    2 +-
 drivers/net/wireless/ath/ath9k/ahb.c               |    6 +-
 drivers/net/wireless/ath/ath9k/antenna.c           |    2 +-
 drivers/net/wireless/ath/ath9k/ar9003_phy.h        |    9 -
 drivers/net/wireless/ath/ath9k/beacon.c            |    4 +-
 drivers/net/wireless/ath/ath9k/htc.h               |    2 +-
 drivers/net/wireless/ath/ath9k/htc_drv_beacon.c    |    4 +-
 drivers/net/wireless/ath/ath9k/htc_drv_init.c      |    4 +
 drivers/net/wireless/ath/ath9k/htc_drv_main.c      |    4 +
 drivers/net/wireless/ath/ath9k/htc_drv_txrx.c      |    4 -
 drivers/net/wireless/ath/ath9k/main.c              |    4 +
 drivers/net/wireless/ath/ath9k/reg_aic.h           |    4 -
 drivers/net/wireless/ath/ath9k/wmi.c               |   10 +-
 drivers/net/wireless/ath/ath9k/xmit.c              |    3 +-
 drivers/net/wireless/ath/carl9170/main.c           |    4 +
 drivers/net/wireless/ath/carl9170/tx.c             |    2 +-
 drivers/net/wireless/ath/wcn36xx/main.c            |    4 +
 drivers/net/wireless/atmel/at76c50x-usb.c          |    4 +
 drivers/net/wireless/broadcom/b43/b43.h            |   16 +
 drivers/net/wireless/broadcom/b43/dma.c            |    4 +-
 drivers/net/wireless/broadcom/b43/main.c           |   20 +-
 drivers/net/wireless/broadcom/b43/phy_ht.c         |    6 +-
 drivers/net/wireless/broadcom/b43/phy_n.c          |    4 +-
 drivers/net/wireless/broadcom/b43/pio.c            |    6 +-
 drivers/net/wireless/broadcom/b43legacy/main.c     |    4 +
 .../broadcom/brcm80211/brcmfmac/bca/core.c         |   30 +-
 .../broadcom/brcm80211/brcmfmac/cfg80211.c         |   76 +-
 .../broadcom/brcm80211/brcmfmac/cfg80211.h         |    2 +
 .../wireless/broadcom/brcm80211/brcmfmac/common.c  |   18 +-
 .../wireless/broadcom/brcm80211/brcmfmac/core.c    |   12 +-
 .../wireless/broadcom/brcm80211/brcmfmac/core.h    |    2 +-
 .../broadcom/brcm80211/brcmfmac/cyw/core.c         |   50 +-
 .../net/wireless/broadcom/brcm80211/brcmfmac/dmi.c |    9 +
 .../wireless/broadcom/brcm80211/brcmfmac/feature.c |   11 +-
 .../wireless/broadcom/brcm80211/brcmfmac/fweh.c    |  152 +-
 .../wireless/broadcom/brcm80211/brcmfmac/fweh.h    |   60 +-
 .../wireless/broadcom/brcm80211/brcmfmac/fwil.c    |  116 +-
 .../wireless/broadcom/brcm80211/brcmfmac/fwil.h    |  125 +-
 .../broadcom/brcm80211/brcmfmac/fwil_types.h       |    2 +-
 .../wireless/broadcom/brcm80211/brcmfmac/fwvid.c   |   13 +-
 .../wireless/broadcom/brcm80211/brcmfmac/fwvid.h   |   48 +-
 .../broadcom/brcm80211/brcmfmac/wcc/core.c         |   31 +-
 .../net/wireless/broadcom/brcm80211/brcmsmac/led.c |    1 -
 .../broadcom/brcm80211/brcmsmac/mac80211_if.c      |    4 +
 .../broadcom/brcm80211/brcmsmac/phy/phy_cmn.c      |    6 +-
 .../broadcom/brcm80211/brcmsmac/phy/phy_int.h      |    2 +-
 .../broadcom/brcm80211/brcmsmac/phy/phy_lcn.c      |    2 +-
 .../broadcom/brcm80211/brcmsmac/phy/phy_n.c        |   27 +-
 .../broadcom/brcm80211/brcmsmac/phy_shim.c         |    5 +-
 .../broadcom/brcm80211/brcmsmac/phy_shim.h         |    2 +-
 drivers/net/wireless/intel/iwlegacy/3945-mac.c     |    4 +
 drivers/net/wireless/intel/iwlegacy/4965-mac.c     |    4 +
 drivers/net/wireless/intel/iwlegacy/common.c       |    4 +-
 drivers/net/wireless/intel/iwlwifi/Kconfig         |    9 +
 drivers/net/wireless/intel/iwlwifi/Makefile        |    3 +
 drivers/net/wireless/intel/iwlwifi/cfg/ax210.c     |   10 +-
 drivers/net/wireless/intel/iwlwifi/cfg/bz.c        |   11 +-
 drivers/net/wireless/intel/iwlwifi/cfg/sc.c        |   40 +-
 drivers/net/wireless/intel/iwlwifi/dvm/mac80211.c  |    4 +
 drivers/net/wireless/intel/iwlwifi/fw/acpi.c       |  623 +---
 drivers/net/wireless/intel/iwlwifi/fw/acpi.h       |  220 +-
 drivers/net/wireless/intel/iwlwifi/fw/api/coex.h   |   14 +-
 drivers/net/wireless/intel/iwlwifi/fw/api/d3.h     |    2 +-
 .../net/wireless/intel/iwlwifi/fw/api/datapath.h   |    2 +-
 .../net/wireless/intel/iwlwifi/fw/api/dbg-tlv.h    |    8 +-
 drivers/net/wireless/intel/iwlwifi/fw/api/debug.h  |    2 +-
 .../net/wireless/intel/iwlwifi/fw/api/location.h   |    1 +
 .../net/wireless/intel/iwlwifi/fw/api/mac-cfg.h    |   27 +-
 drivers/net/wireless/intel/iwlwifi/fw/api/mac.h    |   10 +-
 .../net/wireless/intel/iwlwifi/fw/api/nvm-reg.h    |   32 +-
 .../net/wireless/intel/iwlwifi/fw/api/phy-ctxt.h   |   17 +-
 drivers/net/wireless/intel/iwlwifi/fw/api/power.h  |   40 +-
 drivers/net/wireless/intel/iwlwifi/fw/api/sta.h    |    4 +-
 drivers/net/wireless/intel/iwlwifi/fw/api/tx.h     |    4 +
 drivers/net/wireless/intel/iwlwifi/fw/dbg.c        |   27 +-
 drivers/net/wireless/intel/iwlwifi/fw/dbg.h        |    2 -
 drivers/net/wireless/intel/iwlwifi/fw/error-dump.h |   23 +-
 drivers/net/wireless/intel/iwlwifi/fw/file.h       |   27 +-
 drivers/net/wireless/intel/iwlwifi/fw/pnvm.c       |   49 +-
 drivers/net/wireless/intel/iwlwifi/fw/regulatory.c |  500 ++++
 drivers/net/wireless/intel/iwlwifi/fw/regulatory.h |  199 ++
 drivers/net/wireless/intel/iwlwifi/fw/runtime.h    |   22 +-
 drivers/net/wireless/intel/iwlwifi/fw/uefi.c       |  427 ++-
 drivers/net/wireless/intel/iwlwifi/fw/uefi.h       |  210 +-
 drivers/net/wireless/intel/iwlwifi/iwl-config.h    |   22 +-
 drivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.c   |   67 +-
 drivers/net/wireless/intel/iwlwifi/iwl-drv.c       |   31 +-
 drivers/net/wireless/intel/iwlwifi/iwl-drv.h       |   10 +-
 .../net/wireless/intel/iwlwifi/iwl-eeprom-parse.c  |    2 +-
 drivers/net/wireless/intel/iwlwifi/iwl-fh.h        |   36 +-
 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c |   75 +-
 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.h |    2 +-
 drivers/net/wireless/intel/iwlwifi/iwl-op-mode.h   |    4 +-
 drivers/net/wireless/intel/iwlwifi/iwl-prph.h      |    9 +-
 drivers/net/wireless/intel/iwlwifi/iwl-trans.h     |   69 +-
 drivers/net/wireless/intel/iwlwifi/mvm/coex.c      |  132 +
 drivers/net/wireless/intel/iwlwifi/mvm/constants.h |    3 +
 drivers/net/wireless/intel/iwlwifi/mvm/d3.c        |  150 +-
 .../net/wireless/intel/iwlwifi/mvm/debugfs-vif.c   |   55 +-
 drivers/net/wireless/intel/iwlwifi/mvm/debugfs.c   |   10 +-
 .../net/wireless/intel/iwlwifi/mvm/ftm-initiator.c |    9 +-
 .../net/wireless/intel/iwlwifi/mvm/ftm-responder.c |   19 +-
 drivers/net/wireless/intel/iwlwifi/mvm/fw.c        |  346 +--
 drivers/net/wireless/intel/iwlwifi/mvm/link.c      |   27 +-
 drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c  |   38 +-
 drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c  |  234 +-
 drivers/net/wireless/intel/iwlwifi/mvm/mld-key.c   |   36 +-
 drivers/net/wireless/intel/iwlwifi/mvm/mld-mac.c   |   11 +-
 .../net/wireless/intel/iwlwifi/mvm/mld-mac80211.c  |  162 +-
 drivers/net/wireless/intel/iwlwifi/mvm/mvm.h       |   87 +-
 drivers/net/wireless/intel/iwlwifi/mvm/nvm.c       |    2 +-
 drivers/net/wireless/intel/iwlwifi/mvm/ops.c       |  100 +-
 drivers/net/wireless/intel/iwlwifi/mvm/phy-ctxt.c  |   40 +-
 drivers/net/wireless/intel/iwlwifi/mvm/power.c     |   29 +-
 drivers/net/wireless/intel/iwlwifi/mvm/rs-fw.c     |   16 +-
 drivers/net/wireless/intel/iwlwifi/mvm/rs.c        |    2 +
 drivers/net/wireless/intel/iwlwifi/mvm/rx.c        |   30 +-
 drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c      |   51 +-
 drivers/net/wireless/intel/iwlwifi/mvm/scan.c      |    8 +-
 drivers/net/wireless/intel/iwlwifi/mvm/sf.c        |    5 +-
 drivers/net/wireless/intel/iwlwifi/mvm/sta.c       |   34 +-
 drivers/net/wireless/intel/iwlwifi/mvm/sta.h       |    3 +-
 .../net/wireless/intel/iwlwifi/mvm/time-event.c    |  192 +-
 drivers/net/wireless/intel/iwlwifi/mvm/tx.c        |   82 +-
 drivers/net/wireless/intel/iwlwifi/mvm/utils.c     |    2 +
 .../wireless/intel/iwlwifi/pcie/ctxt-info-gen3.c   |    2 +-
 .../net/wireless/intel/iwlwifi/pcie/ctxt-info.c    |    4 +-
 drivers/net/wireless/intel/iwlwifi/pcie/drv.c      |   49 +-
 drivers/net/wireless/intel/iwlwifi/pcie/trans.c    |   11 +-
 drivers/net/wireless/intel/iwlwifi/pcie/tx.c       |    2 +-
 drivers/net/wireless/intel/iwlwifi/queue/tx.c      |   18 +-
 drivers/net/wireless/intel/iwlwifi/tests/Makefile  |    7 +
 drivers/net/wireless/intel/iwlwifi/tests/devinfo.c |   54 +
 drivers/net/wireless/intel/iwlwifi/tests/module.c  |   10 +
 drivers/net/wireless/intersil/p54/main.c           |    4 +
 drivers/net/wireless/marvell/libertas/cmd.c        |   13 +-
 drivers/net/wireless/marvell/libertas_tf/main.c    |    4 +
 drivers/net/wireless/marvell/mwifiex/11h.c         |    2 +-
 drivers/net/wireless/marvell/mwifiex/11n.c         |   12 +-
 drivers/net/wireless/marvell/mwifiex/cfg80211.c    |    2 +-
 drivers/net/wireless/marvell/mwifiex/debugfs.c     |   22 +-
 drivers/net/wireless/marvell/mwifiex/fw.h          |    2 +-
 drivers/net/wireless/marvell/mwifiex/main.h        |    2 -
 drivers/net/wireless/marvell/mwifiex/scan.c        |   14 +-
 drivers/net/wireless/marvell/mwifiex/wmm.c         |    2 +-
 drivers/net/wireless/marvell/mwl8k.c               |    4 +
 drivers/net/wireless/mediatek/mt76/Makefile        |    2 +-
 drivers/net/wireless/mediatek/mt76/agg-rx.c        |    2 +-
 drivers/net/wireless/mediatek/mt76/dma.c           |  106 +-
 drivers/net/wireless/mediatek/mt76/dma.h           |    9 +-
 drivers/net/wireless/mediatek/mt76/mac80211.c      |   32 +-
 drivers/net/wireless/mediatek/mt76/mmio.c          |  107 -
 drivers/net/wireless/mediatek/mt76/mt76.h          |   61 +-
 drivers/net/wireless/mediatek/mt76/mt7603/main.c   |    4 +
 drivers/net/wireless/mediatek/mt76/mt7615/mcu.c    |    2 +-
 drivers/net/wireless/mediatek/mt76/mt76_connac.h   |    5 +
 .../net/wireless/mediatek/mt76/mt76_connac2_mac.h  |    5 +
 .../net/wireless/mediatek/mt76/mt76_connac_mac.c   |    7 +-
 .../net/wireless/mediatek/mt76/mt76_connac_mcu.c   |    7 +-
 .../net/wireless/mediatek/mt76/mt76_connac_mcu.h   |    4 +
 drivers/net/wireless/mediatek/mt76/mt76x0/pci.c    |    4 +
 drivers/net/wireless/mediatek/mt76/mt76x0/usb.c    |    4 +
 .../net/wireless/mediatek/mt76/mt76x02_usb_core.c  |    2 +-
 .../net/wireless/mediatek/mt76/mt76x2/pci_main.c   |    4 +
 drivers/net/wireless/mediatek/mt76/mt76x2/usb.c    |    1 +
 .../net/wireless/mediatek/mt76/mt76x2/usb_main.c   |    4 +
 drivers/net/wireless/mediatek/mt76/mt7915/dma.c    |    2 +-
 drivers/net/wireless/mediatek/mt76/mt7915/mac.c    |    9 +-
 drivers/net/wireless/mediatek/mt76/mt7915/main.c   |    2 +-
 drivers/net/wireless/mediatek/mt76/mt7915/mcu.c    |    6 +-
 drivers/net/wireless/mediatek/mt76/mt7915/mmio.c   |   55 +-
 drivers/net/wireless/mediatek/mt76/mt7915/mt7915.h |    1 +
 drivers/net/wireless/mediatek/mt76/mt7915/soc.c    |    3 +-
 drivers/net/wireless/mediatek/mt76/mt7921/init.c   |    6 +
 drivers/net/wireless/mediatek/mt76/mt7921/main.c   |   13 +
 drivers/net/wireless/mediatek/mt76/mt7921/mcu.c    |    4 +-
 drivers/net/wireless/mediatek/mt76/mt7921/mt7921.h |    1 +
 drivers/net/wireless/mediatek/mt76/mt7921/pci.c    |   13 +
 drivers/net/wireless/mediatek/mt76/mt7921/sdio.c   |    2 +
 drivers/net/wireless/mediatek/mt76/mt7925/init.c   |   56 +
 drivers/net/wireless/mediatek/mt76/mt7925/main.c   |   26 +-
 drivers/net/wireless/mediatek/mt76/mt7925/mcu.c    |  212 +-
 drivers/net/wireless/mediatek/mt76/mt7925/mcu.h    |   94 +-
 drivers/net/wireless/mediatek/mt76/mt7925/mt7925.h |    1 +
 drivers/net/wireless/mediatek/mt76/mt7925/pci.c    |    3 +
 drivers/net/wireless/mediatek/mt76/mt792x.h        |    2 +
 .../net/wireless/mediatek/mt76/mt792x_acpi_sar.c   |   38 +-
 drivers/net/wireless/mediatek/mt76/mt792x_core.c   |    8 +-
 drivers/net/wireless/mediatek/mt76/mt792x_dma.c    |   15 +-
 drivers/net/wireless/mediatek/mt76/mt792x_regs.h   |    8 +
 drivers/net/wireless/mediatek/mt76/mt792x_usb.c    |   72 +-
 drivers/net/wireless/mediatek/mt76/mt7996/dma.c    |    5 +-
 drivers/net/wireless/mediatek/mt76/mt7996/init.c   |   12 +-
 drivers/net/wireless/mediatek/mt76/mt7996/mac.c    |   81 +-
 drivers/net/wireless/mediatek/mt76/mt7996/main.c   |   11 +-
 drivers/net/wireless/mediatek/mt76/mt7996/mcu.c    |   34 +-
 drivers/net/wireless/mediatek/mt76/mt7996/mcu.h    |    4 +-
 drivers/net/wireless/mediatek/mt76/mt7996/mmio.c   |   74 +-
 drivers/net/wireless/mediatek/mt76/mt7996/mt7996.h |    6 +-
 drivers/net/wireless/mediatek/mt76/usb.c           |   52 +-
 drivers/net/wireless/mediatek/mt76/wed.c           |  213 ++
 drivers/net/wireless/mediatek/mt7601u/main.c       |    4 +
 drivers/net/wireless/microchip/wilc1000/cfg80211.c |   16 +-
 drivers/net/wireless/microchip/wilc1000/hif.c      |  110 +-
 drivers/net/wireless/microchip/wilc1000/netdev.c   |   95 +-
 drivers/net/wireless/microchip/wilc1000/netdev.h   |    6 +
 drivers/net/wireless/microchip/wilc1000/spi.c      |   81 +-
 drivers/net/wireless/microchip/wilc1000/wlan.c     |   42 +-
 drivers/net/wireless/microchip/wilc1000/wlan.h     |   11 +
 drivers/net/wireless/purelifi/plfxlc/mac.c         |    5 +-
 drivers/net/wireless/quantenna/qtnfmac/event.c     |    2 +-
 drivers/net/wireless/ralink/rt2x00/rt2400pci.c     |    4 +
 drivers/net/wireless/ralink/rt2x00/rt2500pci.c     |    4 +
 drivers/net/wireless/ralink/rt2x00/rt2500usb.c     |    4 +
 drivers/net/wireless/ralink/rt2x00/rt2800lib.c     |    8 +-
 drivers/net/wireless/ralink/rt2x00/rt2800pci.c     |    4 +
 drivers/net/wireless/ralink/rt2x00/rt2800soc.c     |    4 +
 drivers/net/wireless/ralink/rt2x00/rt2800usb.c     |    4 +
 drivers/net/wireless/ralink/rt2x00/rt2x00crypto.c  |    5 +-
 drivers/net/wireless/ralink/rt2x00/rt61pci.c       |    4 +
 drivers/net/wireless/ralink/rt2x00/rt73usb.c       |    4 +
 drivers/net/wireless/realtek/rtl818x/rtl8180/dev.c |    4 +
 drivers/net/wireless/realtek/rtl818x/rtl8187/dev.c |    4 +
 drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h   |   28 +-
 .../net/wireless/realtek/rtl8xxxu/rtl8xxxu_8188e.c |    3 +-
 .../net/wireless/realtek/rtl8xxxu/rtl8xxxu_8188f.c |    2 +
 .../net/wireless/realtek/rtl8xxxu/rtl8xxxu_8192c.c |    1 +
 .../net/wireless/realtek/rtl8xxxu/rtl8xxxu_8192e.c |    1 +
 .../net/wireless/realtek/rtl8xxxu/rtl8xxxu_8192f.c |   33 +-
 .../net/wireless/realtek/rtl8xxxu/rtl8xxxu_8710b.c |    1 +
 .../net/wireless/realtek/rtl8xxxu/rtl8xxxu_8723a.c |    1 +
 .../net/wireless/realtek/rtl8xxxu/rtl8xxxu_8723b.c |    1 +
 .../net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c  |  596 +++-
 .../net/wireless/realtek/rtl8xxxu/rtl8xxxu_regs.h  |   15 +
 drivers/net/wireless/realtek/rtlwifi/core.c        |    4 +
 drivers/net/wireless/realtek/rtlwifi/efuse.c       |   36 +-
 drivers/net/wireless/realtek/rtlwifi/efuse.h       |    4 +-
 drivers/net/wireless/realtek/rtlwifi/pci.c         |   13 +-
 .../net/wireless/realtek/rtlwifi/rtl8192ce/trx.c   |    4 -
 .../net/wireless/realtek/rtlwifi/rtl8192cu/def.h   |    2 +-
 .../net/wireless/realtek/rtlwifi/rtl8192cu/hw.c    |    6 +-
 .../net/wireless/realtek/rtlwifi/rtl8192cu/mac.c   |    3 +-
 .../net/wireless/realtek/rtlwifi/rtl8192cu/sw.c    |    7 +-
 .../net/wireless/realtek/rtlwifi/rtl8192cu/trx.c   |  109 +-
 .../net/wireless/realtek/rtlwifi/rtl8192cu/trx.h   |    3 -
 .../net/wireless/realtek/rtlwifi/rtl8192de/hw.c    |    6 +-
 .../net/wireless/realtek/rtlwifi/rtl8192de/trx.c   |    5 +-
 .../net/wireless/realtek/rtlwifi/rtl8723ae/trx.c   |    6 +-
 drivers/net/wireless/realtek/rtlwifi/usb.c         |  195 +-
 drivers/net/wireless/realtek/rtlwifi/usb.h         |    2 +
 drivers/net/wireless/realtek/rtlwifi/wifi.h        |   43 +-
 drivers/net/wireless/realtek/rtw88/debug.c         |   44 +-
 drivers/net/wireless/realtek/rtw88/mac.c           |    7 +
 drivers/net/wireless/realtek/rtw88/mac80211.c      |    4 +
 drivers/net/wireless/realtek/rtw88/main.c          |    2 -
 drivers/net/wireless/realtek/rtw88/pci.c           |    4 +
 drivers/net/wireless/realtek/rtw88/phy.c           |    3 +
 drivers/net/wireless/realtek/rtw88/reg.h           |    3 +
 drivers/net/wireless/realtek/rtw88/rtw8821c.c      |    2 +-
 drivers/net/wireless/realtek/rtw88/rtw8821cu.c     |   46 +-
 drivers/net/wireless/realtek/rtw88/usb.c           |   40 +
 drivers/net/wireless/realtek/rtw89/cam.c           |   61 +
 drivers/net/wireless/realtek/rtw89/cam.h           |  109 +
 drivers/net/wireless/realtek/rtw89/chan.c          |  648 +++-
 drivers/net/wireless/realtek/rtw89/chan.h          |    5 +
 drivers/net/wireless/realtek/rtw89/coex.c          |  393 ++-
 drivers/net/wireless/realtek/rtw89/coex.h          |   21 +
 drivers/net/wireless/realtek/rtw89/core.c          |  382 ++-
 drivers/net/wireless/realtek/rtw89/core.h          |  362 ++-
 drivers/net/wireless/realtek/rtw89/debug.c         |    9 +-
 drivers/net/wireless/realtek/rtw89/efuse.h         |    1 +
 drivers/net/wireless/realtek/rtw89/efuse_be.c      |  142 +
 drivers/net/wireless/realtek/rtw89/fw.c            | 2494 +++++++++++++++-
 drivers/net/wireless/realtek/rtw89/fw.h            | 1522 +++++++---
 drivers/net/wireless/realtek/rtw89/mac.c           |  341 ++-
 drivers/net/wireless/realtek/rtw89/mac.h           |   93 +-
 drivers/net/wireless/realtek/rtw89/mac80211.c      |   19 +-
 drivers/net/wireless/realtek/rtw89/mac_be.c        |  363 ++-
 drivers/net/wireless/realtek/rtw89/pci.c           |  215 +-
 drivers/net/wireless/realtek/rtw89/pci.h           |   67 +-
 drivers/net/wireless/realtek/rtw89/pci_be.c        |  121 +-
 drivers/net/wireless/realtek/rtw89/phy.c           | 1105 ++++++-
 drivers/net/wireless/realtek/rtw89/phy.h           |  113 +
 drivers/net/wireless/realtek/rtw89/phy_be.c        |  331 ++
 drivers/net/wireless/realtek/rtw89/ps.c            |   10 +-
 drivers/net/wireless/realtek/rtw89/reg.h           |  572 +++-
 drivers/net/wireless/realtek/rtw89/rtw8851b.c      |  160 +-
 .../net/wireless/realtek/rtw89/rtw8851b_table.c    |   72 +-
 drivers/net/wireless/realtek/rtw89/rtw8851be.c     |    2 +
 drivers/net/wireless/realtek/rtw89/rtw8852a.c      |   78 +-
 drivers/net/wireless/realtek/rtw89/rtw8852ae.c     |    1 +
 drivers/net/wireless/realtek/rtw89/rtw8852b.c      |   82 +-
 .../net/wireless/realtek/rtw89/rtw8852b_table.c    |  142 +-
 drivers/net/wireless/realtek/rtw89/rtw8852be.c     |    1 +
 drivers/net/wireless/realtek/rtw89/rtw8852c.c      |   81 +-
 drivers/net/wireless/realtek/rtw89/rtw8852ce.c     |    1 +
 drivers/net/wireless/realtek/rtw89/rtw8922a.c      | 1773 ++++++++++-
 drivers/net/wireless/realtek/rtw89/rtw8922a_rfk.c  |  378 +++
 drivers/net/wireless/realtek/rtw89/rtw8922a_rfk.h  |   18 +
 drivers/net/wireless/realtek/rtw89/rtw8922ae.c     |    3 +-
 drivers/net/wireless/realtek/rtw89/wow.c           |   50 +-
 drivers/net/wireless/rsi/rsi_91x_mac80211.c        |    8 +-
 drivers/net/wireless/rsi/rsi_91x_usb.c             |   12 +-
 drivers/net/wireless/silabs/wfx/sta.c              |   19 +-
 drivers/net/wireless/st/cw1200/cw1200_sdio.c       |   42 +-
 drivers/net/wireless/st/cw1200/cw1200_spi.c        |   77 +-
 drivers/net/wireless/st/cw1200/main.c              |    4 +
 drivers/net/wireless/ti/wl1251/main.c              |    4 +
 drivers/net/wireless/ti/wlcore/event.c             |    2 +-
 drivers/net/wireless/ti/wlcore/main.c              |    6 +-
 drivers/net/wireless/ti/wlcore/sdio.c              |    9 +-
 drivers/net/wireless/virtual/mac80211_hwsim.c      |  147 +-
 drivers/net/wireless/virtual/mac80211_hwsim.h      |    5 +-
 drivers/net/wireless/virtual/virt_wifi.c           |    2 +-
 drivers/net/wireless/zydas/zd1211rw/zd_def.h       |    2 +-
 drivers/net/wireless/zydas/zd1211rw/zd_mac.c       |    4 +
 drivers/net/wireless/zydas/zd1211rw/zd_usb.c       |    5 +-
 drivers/net/wwan/t7xx/t7xx_hif_cldma.c             |   47 +-
 drivers/net/wwan/t7xx/t7xx_hif_cldma.h             |   18 +-
 drivers/net/wwan/t7xx/t7xx_modem_ops.c             |   14 +-
 drivers/net/wwan/t7xx/t7xx_modem_ops.h             |    1 +
 drivers/net/wwan/t7xx/t7xx_pci.c                   |  103 +-
 drivers/net/wwan/t7xx/t7xx_pci.h                   |   14 +-
 drivers/net/wwan/t7xx/t7xx_port.h                  |    4 +
 drivers/net/wwan/t7xx/t7xx_port_proxy.c            |  114 +-
 drivers/net/wwan/t7xx/t7xx_port_proxy.h            |   10 +
 drivers/net/wwan/t7xx/t7xx_port_wwan.c             |  115 +-
 drivers/net/wwan/t7xx/t7xx_reg.h                   |   24 +-
 drivers/net/wwan/t7xx/t7xx_state_monitor.c         |  134 +-
 drivers/net/wwan/t7xx/t7xx_state_monitor.h         |    1 +
 drivers/net/wwan/wwan_core.c                       |   36 +-
 drivers/net/wwan/wwan_hwsim.c                      |   16 +-
 drivers/nvme/host/tcp.c                            |    7 +-
 drivers/nvme/target/tcp.c                          |    4 +-
 drivers/pci/pci.c                                  |    4 +-
 drivers/ptp/Kconfig                                |   12 +
 drivers/ptp/Makefile                               |    1 +
 drivers/ptp/ptp_clock.c                            |   68 +-
 drivers/ptp/ptp_fc3.c                              | 1014 +++++++
 drivers/ptp/ptp_fc3.h                              |   45 +
 drivers/ptp/ptp_ocp.c                              |  311 +-
 drivers/ptp/ptp_private.h                          |    2 +-
 drivers/ptp/ptp_sysfs.c                            |   13 +-
 drivers/ptp/ptp_vclock.c                           |    2 +-
 drivers/ssb/main.c                                 |    2 +-
 drivers/staging/vt6655/device_main.c               |    6 +-
 drivers/staging/vt6656/main_usb.c                  |    6 +-
 drivers/vhost/net.c                                |   91 +-
 fs/eventpoll.c                                     |  131 +-
 fs/verity/measure.c                                |    4 +-
 include/linux/bitfield.h                           |    3 +-
 include/linux/bitmap.h                             |  113 +
 include/linux/bpf-cgroup.h                         |    3 +-
 include/linux/bpf.h                                |  202 +-
 include/linux/bpf_local_storage.h                  |   30 +-
 include/linux/bpf_types.h                          |    1 +
 include/linux/bpf_verifier.h                       |   16 +-
 include/linux/btf.h                                |   36 +-
 include/linux/btf_ids.h                            |   21 +-
 include/linux/cpumask.h                            |   16 +
 include/linux/dpll.h                               |    1 +
 include/linux/dynamic_queue_limits.h               |   45 +
 include/linux/ethtool.h                            |   14 +-
 include/linux/filter.h                             |   28 +-
 include/linux/framer/framer-provider.h             |   15 +-
 include/linux/gfp.h                                |   16 +-
 include/linux/ieee80211.h                          |  169 +-
 include/linux/if_tun.h                             |   16 +-
 include/linux/inet_diag.h                          |    1 +
 include/linux/inetdevice.h                         |   14 +-
 include/linux/io.h                                 |    7 +
 include/linux/ipv6.h                               |   14 +-
 include/linux/lsm_hook_defs.h                      |   15 +-
 include/linux/marvell_phy.h                        |    1 +
 include/linux/mdio.h                               |   63 +
 include/linux/mfd/idtRC38xxx_reg.h                 |  273 ++
 include/linux/mlx5/driver.h                        |    1 +
 include/linux/mlx5/mlx5_ifc.h                      |   13 +-
 include/linux/net.h                                |    5 +-
 include/linux/netdevice.h                          |  132 +-
 include/linux/netfilter.h                          |    1 -
 include/linux/netlink.h                            |    2 +
 include/linux/phy.h                                |   53 +-
 include/linux/phylink.h                            |    7 +-
 include/linux/platform_data/brcmfmac.h             |    2 +-
 include/linux/platform_data/mdio-bcm-unimac.h      |    3 +
 include/linux/platform_data/microchip-ksz.h        |    1 +
 include/linux/platform_data/net-cw1200.h           |    4 -
 include/linux/ptp_clock_kernel.h                   |    3 +
 include/linux/rtnetlink.h                          |    3 +
 include/linux/security.h                           |   43 +-
 include/linux/skbuff.h                             |  141 +-
 include/linux/sock_diag.h                          |   10 +-
 include/linux/stmmac.h                             |    1 +
 include/linux/tcp.h                                |   10 +-
 include/linux/udp.h                                |   10 +
 include/linux/units.h                              |    5 +-
 include/linux/vmalloc.h                            |    5 +
 include/linux/wwan.h                               |    2 +
 include/net/act_api.h                              |    2 +
 include/net/addrconf.h                             |    7 +-
 include/net/af_unix.h                              |   22 +-
 include/net/bluetooth/bluetooth.h                  |    2 +
 include/net/bluetooth/hci.h                        |   19 +-
 include/net/bluetooth/hci_core.h                   |   37 +-
 include/net/bluetooth/hci_sync.h                   |   22 +-
 include/net/bluetooth/l2cap.h                      |   44 +-
 include/net/bond_3ad.h                             |    2 +
 include/net/bond_options.h                         |    1 +
 include/net/bonding.h                              |   23 +
 include/net/busy_poll.h                            |    4 +
 include/net/cfg80211.h                             |  138 +-
 include/net/cfg802154.h                            |    1 +
 include/net/dropreason-core.h                      |   26 +-
 include/net/dsa.h                                  |    4 +-
 include/net/dst.h                                  |    1 -
 include/net/eee.h                                  |   38 +
 include/net/genetlink.h                            |    6 +-
 include/net/gro.h                                  |   46 +-
 include/net/hotdata.h                              |   52 +
 include/net/if_inet6.h                             |    4 +-
 include/net/inet_sock.h                            |    1 +
 include/net/ioam6.h                                |    4 +
 include/net/ip6_fib.h                              |   52 +-
 include/net/ip6_route.h                            |    5 +-
 include/net/ip_fib.h                               |    1 +
 include/net/ip_tunnels.h                           |    3 +-
 include/net/ipv6.h                                 |    8 +-
 include/net/mac80211.h                             |  163 +-
 include/net/mctp.h                                 |    6 +-
 include/net/net_namespace.h                        |    5 +-
 include/net/netdev_queues.h                        |   56 +
 include/net/netfilter/nf_queue.h                   |    1 -
 include/net/netfilter/nf_tables.h                  |    6 +
 include/net/netlabel.h                             |    7 +-
 include/net/netmem.h                               |   41 +
 include/net/nexthop.h                              |   34 +-
 include/net/nfc/nfc.h                              |    2 +-
 include/net/page_pool/types.h                      |   13 +-
 include/net/pkt_cls.h                              |    2 +
 include/net/pkt_sched.h                            |    2 +
 include/net/protocol.h                             |    3 +
 include/net/request_sock.h                         |   39 +
 include/net/route.h                                |    7 +-
 include/net/rps.h                                  |  125 +
 include/net/rtnetlink.h                            |    1 +
 include/net/scm.h                                  |    1 +
 include/net/sctp/structs.h                         |    5 +-
 include/net/sock.h                                 |  177 +-
 include/net/tcp.h                                  |   51 +-
 include/net/xfrm.h                                 |   14 +-
 include/trace/events/napi.h                        |   33 +
 include/trace/events/rxrpc.h                       |  200 +-
 include/trace/events/tcp.h                         |   16 +-
 include/uapi/linux/bpf.h                           |  122 +-
 include/uapi/linux/can.h                           |    9 +-
 include/uapi/linux/can/isotp.h                     |    1 +
 include/uapi/linux/can/raw.h                       |   16 +
 include/uapi/linux/devlink.h                       |    5 +-
 include/uapi/linux/dpll.h                          |   30 +
 include/uapi/linux/ethtool.h                       |   48 +
 include/uapi/linux/eventpoll.h                     |   13 +
 include/uapi/linux/if_link.h                       |    1 +
 include/uapi/linux/ioam6_genl.h                    |   20 +
 include/uapi/linux/mctp.h                          |   32 +
 include/uapi/linux/mdio.h                          |    4 +
 include/uapi/linux/netdev.h                        |   20 +
 include/uapi/linux/netfilter/nf_tables.h           |    6 +-
 include/uapi/linux/nexthop.h                       |   45 +
 include/uapi/linux/nl80211.h                       |   71 +-
 include/uapi/linux/ptp_clock.h                     |   13 +-
 include/uapi/linux/tc_act/tc_pedit.h               |    2 +-
 init/Kconfig                                       |    5 -
 kernel/bpf/Kconfig                                 |    1 +
 kernel/bpf/Makefile                                |    5 +-
 kernel/bpf/arena.c                                 |  558 ++++
 kernel/bpf/arraymap.c                              |    2 +-
 kernel/bpf/bpf_iter.c                              |    4 +-
 kernel/bpf/bpf_local_storage.c                     |   52 +-
 kernel/bpf/bpf_lsm.c                               |   21 +-
 kernel/bpf/bpf_struct_ops.c                        |  773 +++--
 kernel/bpf/bpf_struct_ops_types.h                  |   12 -
 kernel/bpf/btf.c                                   |  574 +++-
 kernel/bpf/cgroup.c                                |   11 +-
 kernel/bpf/core.c                                  |   46 +-
 kernel/bpf/cpumap.c                                |    4 +-
 kernel/bpf/cpumask.c                               |    4 +-
 kernel/bpf/devmap.c                                |   11 +-
 kernel/bpf/disasm.c                                |   14 +
 kernel/bpf/hashtab.c                               |   14 +-
 kernel/bpf/helpers.c                               |   23 +-
 kernel/bpf/inode.c                                 |  276 +-
 kernel/bpf/log.c                                   |   65 +-
 kernel/bpf/lpm_trie.c                              |   20 +-
 kernel/bpf/map_iter.c                              |    4 +-
 kernel/bpf/stackmap.c                              |    9 +-
 kernel/bpf/syscall.c                               |  298 +-
 kernel/bpf/token.c                                 |  278 ++
 kernel/bpf/trampoline.c                            |    4 +-
 kernel/bpf/verifier.c                              |  744 +++--
 kernel/cgroup/rstat.c                              |    4 +-
 kernel/configs/debug.config                        |    6 +
 kernel/events/core.c                               |    8 +-
 kernel/trace/bpf_trace.c                           |   27 +-
 lib/bitmap.c                                       |    7 +
 lib/dynamic_queue_limits.c                         |   74 +
 lib/test_bitmap.c                                  |   42 +
 lib/test_blackhole_dev.c                           |    3 +-
 mm/page_alloc.c                                    |   22 +-
 mm/vmalloc.c                                       |   83 +-
 net/8021q/vlan_dev.c                               |   30 +-
 net/8021q/vlanproc.c                               |   46 +-
 net/Kconfig                                        |    1 +
 net/Makefile                                       |    2 +-
 net/batman-adv/distributed-arp-table.c             |    3 +-
 net/batman-adv/main.c                              |   14 +-
 net/batman-adv/main.h                              |    2 +-
 net/batman-adv/netlink.c                           |    1 -
 net/bluetooth/6lowpan.c                            |    4 +-
 net/bluetooth/Kconfig                              |    8 -
 net/bluetooth/Makefile                             |    1 -
 net/bluetooth/a2mp.c                               | 1054 -------
 net/bluetooth/a2mp.h                               |  154 -
 net/bluetooth/af_bluetooth.c                       |   10 +-
 net/bluetooth/amp.c                                |  590 ----
 net/bluetooth/amp.h                                |   60 -
 net/bluetooth/bnep/core.c                          |    5 +-
 net/bluetooth/eir.c                                |   29 +-
 net/bluetooth/hci_conn.c                           |  200 +-
 net/bluetooth/hci_core.c                           |  170 +-
 net/bluetooth/hci_event.c                          |  236 +-
 net/bluetooth/hci_request.c                        |    2 +-
 net/bluetooth/hci_sock.c                           |    4 +-
 net/bluetooth/hci_sync.c                           |  447 ++-
 net/bluetooth/iso.c                                |  104 +-
 net/bluetooth/l2cap_core.c                         | 1079 +------
 net/bluetooth/l2cap_sock.c                         |   21 +-
 net/bluetooth/mgmt.c                               |  120 +-
 net/bluetooth/msft.c                               |    3 +
 net/bluetooth/sco.c                                |    3 +-
 net/bpf/bpf_dummy_struct_ops.c                     |   36 +-
 net/bpf/test_run.c                                 |   12 +-
 net/bridge/br.c                                    |   15 +-
 net/bridge/br_device.c                             |   27 +-
 net/bridge/br_fdb.c                                |    5 +-
 net/bridge/br_netlink.c                            |    3 +-
 net/bridge/br_vlan.c                               |    4 +-
 net/bridge/netfilter/Kconfig                       |    7 +
 net/bridge/netfilter/Makefile                      |    2 +-
 net/can/af_can.c                                   |    2 +
 net/can/bcm.c                                      |   69 +-
 net/can/isotp.c                                    |    5 +-
 net/can/raw.c                                      |  104 +-
 net/core/Makefile                                  |    1 +
 net/core/dev.c                                     |  419 +--
 net/core/dev.h                                     |    7 +-
 net/core/dst.c                                     |    6 +-
 net/core/filter.c                                  |  173 +-
 net/core/gro.c                                     |   40 +-
 net/core/gro_cells.c                               |    3 +-
 net/core/gso.c                                     |    4 +-
 net/core/hotdata.c                                 |   22 +
 net/core/link_watch.c                              |   13 +-
 net/core/net-procfs.c                              |   55 +-
 net/core/net-sysfs.c                               |  137 +-
 net/core/net_namespace.c                           |   33 +-
 net/core/netdev-genl-gen.c                         |   12 +
 net/core/netdev-genl-gen.h                         |    2 +
 net/core/netdev-genl.c                             |  227 +-
 net/core/page_pool.c                               |   64 +-
 net/core/page_pool_user.c                          |    2 -
 net/core/rtnetlink.c                               |  132 +-
 net/core/scm.c                                     |    5 +
 net/core/skbuff.c                                  |  196 +-
 net/core/sock.c                                    |   82 +-
 net/core/sock_diag.c                               |  120 +-
 net/core/sysctl_net_core.c                         |   34 +-
 net/core/xdp.c                                     |   15 +-
 net/dccp/ackvec.c                                  |    8 +-
 net/dccp/diag.c                                    |    1 +
 net/devlink/netlink_gen.c                          |    2 +-
 net/dsa/dsa.c                                      |    7 +-
 net/dsa/tag_sja1105.c                              |    4 +-
 net/dsa/user.c                                     |   28 +-
 net/ethtool/eee.c                                  |   62 +-
 net/ethtool/ioctl.c                                |   60 +-
 net/ethtool/netlink.c                              |   14 +-
 net/hsr/hsr_device.c                               |   30 +-
 net/ieee802154/6lowpan/core.c                      |    3 +-
 net/ieee802154/socket.c                            |    1 +
 net/ieee802154/sysfs.c                             |    2 +-
 net/ieee802154/sysfs.h                             |    2 +-
 net/ipv4/af_inet.c                                 |   53 +-
 net/ipv4/bpf_tcp_ca.c                              |   26 +-
 net/ipv4/cipso_ipv4.c                              |    5 +-
 net/ipv4/datagram.c                                |    2 +-
 net/ipv4/devinet.c                                 |  309 +-
 net/ipv4/fib_frontend.c                            |   51 +-
 net/ipv4/fib_trie.c                                |    6 +-
 net/ipv4/fou_bpf.c                                 |    4 +-
 net/ipv4/fou_core.c                                |    2 +-
 net/ipv4/gre_offload.c                             |    2 +-
 net/ipv4/igmp.c                                    |    4 +-
 net/ipv4/inet_connection_sock.c                    |    7 +-
 net/ipv4/inet_diag.c                               |  101 +-
 net/ipv4/inet_hashtables.c                         |    3 +-
 net/ipv4/inetpeer.c                                |    5 +-
 net/ipv4/ip_gre.c                                  |   24 +-
 net/ipv4/ip_output.c                               |    3 +-
 net/ipv4/ip_sockglue.c                             |   13 +-
 net/ipv4/ip_tunnel.c                               |   53 +-
 net/ipv4/ip_vti.c                                  |    8 +-
 net/ipv4/ipip.c                                    |    8 +-
 net/ipv4/ipmr.c                                    |   13 +-
 net/ipv4/netfilter/Kconfig                         |   44 +-
 net/ipv4/netfilter/Makefile                        |    2 +-
 net/ipv4/nexthop.c                                 |  367 ++-
 net/ipv4/proc.c                                    |    2 +-
 net/ipv4/raw.c                                     |   20 +-
 net/ipv4/raw_diag.c                                |    1 +
 net/ipv4/route.c                                   |    9 +-
 net/ipv4/syncookies.c                              |   61 +-
 net/ipv4/tcp.c                                     |    9 +-
 net/ipv4/tcp_ao.c                                  |    2 +-
 net/ipv4/tcp_bbr.c                                 |    4 +-
 net/ipv4/tcp_cong.c                                |    6 +-
 net/ipv4/tcp_cubic.c                               |    4 +-
 net/ipv4/tcp_dctcp.c                               |    4 +-
 net/ipv4/tcp_diag.c                                |    1 +
 net/ipv4/tcp_input.c                               |   49 +-
 net/ipv4/tcp_ipv4.c                                |   17 +-
 net/ipv4/tcp_minisocks.c                           |   10 +-
 net/ipv4/tcp_offload.c                             |   36 +-
 net/ipv4/udp.c                                     |   14 +-
 net/ipv4/udp_diag.c                                |    2 +
 net/ipv4/udp_offload.c                             |   17 +-
 net/ipv4/xfrm4_input.c                             |    2 +-
 net/ipv6/addrconf.c                                |  782 ++---
 net/ipv6/af_inet6.c                                |    3 +-
 net/ipv6/anycast.c                                 |   61 +-
 net/ipv6/calipso.c                                 |    5 +-
 net/ipv6/exthdrs.c                                 |   34 +-
 net/ipv6/fib6_rules.c                              |    6 +
 net/ipv6/inet6_hashtables.c                        |    8 +-
 net/ipv6/ioam6.c                                   |   72 +-
 net/ipv6/ip6_fib.c                                 |   92 +-
 net/ipv6/ip6_gre.c                                 |   14 +-
 net/ipv6/ip6_input.c                               |    6 +-
 net/ipv6/ip6_offload.c                             |   18 +-
 net/ipv6/ip6_output.c                              |   12 +-
 net/ipv6/ip6_tunnel.c                              |   25 +-
 net/ipv6/ip6_vti.c                                 |   13 +-
 net/ipv6/ip6mr.c                                   |    9 +-
 net/ipv6/ipv6_sockglue.c                           |    8 +-
 net/ipv6/mcast.c                                   |   15 +-
 net/ipv6/ndisc.c                                   |   84 +-
 net/ipv6/netfilter/Kconfig                         |   20 +-
 net/ipv6/netfilter/Makefile                        |    2 +-
 net/ipv6/netfilter/nf_conntrack_reasm.c            |    4 +-
 net/ipv6/netfilter/nf_reject_ipv6.c                |    4 +-
 net/ipv6/output_core.c                             |    4 +-
 net/ipv6/raw.c                                     |   22 +-
 net/ipv6/reassembly.c                              |    4 +-
 net/ipv6/route.c                                   |   47 +-
 net/ipv6/seg6_hmac.c                               |    8 +-
 net/ipv6/sit.c                                     |   27 +-
 net/ipv6/syncookies.c                              |   31 +-
 net/ipv6/tcp_ipv6.c                                |   39 +-
 net/ipv6/tcpv6_offload.c                           |   16 +-
 net/ipv6/udp.c                                     |   24 +-
 net/ipv6/udp_offload.c                             |   21 +-
 net/ipv6/xfrm6_input.c                             |    2 +-
 net/ipv6/xfrm6_tunnel.c                            |    5 +-
 net/iucv/af_iucv.c                                 |   10 +-
 net/iucv/iucv.c                                    |   15 +-
 net/kcm/kcmsock.c                                  |   18 +-
 net/l2tp/l2tp_eth.c                                |    2 +-
 net/l2tp/l2tp_ip.c                                 |    2 +-
 net/l2tp/l2tp_ppp.c                                |    4 +-
 net/mac80211/Makefile                              |    2 +-
 net/mac80211/agg-tx.c                              |    2 +-
 net/mac80211/cfg.c                                 |  374 ++-
 net/mac80211/chan.c                                |  710 ++---
 net/mac80211/debug.h                               |   18 +-
 net/mac80211/debugfs.c                             |    3 +-
 net/mac80211/driver-ops.c                          |   14 +-
 net/mac80211/driver-ops.h                          |   27 +-
 net/mac80211/ht.c                                  |    6 +-
 net/mac80211/ibss.c                                |   55 +-
 net/mac80211/ieee80211_i.h                         |  205 +-
 net/mac80211/iface.c                               |   36 +-
 net/mac80211/key.c                                 |   20 +-
 net/mac80211/link.c                                |   15 +-
 net/mac80211/main.c                                |  231 +-
 net/mac80211/mesh.c                                |  162 +-
 net/mac80211/mesh.h                                |    3 +-
 net/mac80211/mesh_pathtbl.c                        |    6 +-
 net/mac80211/mesh_plink.c                          |   28 +-
 net/mac80211/mlme.c                                | 3156 +++++++++++---------
 net/mac80211/ocb.c                                 |    5 +-
 net/mac80211/offchannel.c                          |   21 +-
 net/mac80211/parse.c                               |  971 ++++++
 net/mac80211/rate.c                                |   14 +-
 net/mac80211/rx.c                                  |   53 +-
 net/mac80211/scan.c                                |   64 +-
 net/mac80211/spectmgmt.c                           |  337 ++-
 net/mac80211/sta_info.c                            |   21 +-
 net/mac80211/sta_info.h                            |   20 +-
 net/mac80211/tdls.c                                |   73 +-
 net/mac80211/tests/elems.c                         |    5 +-
 net/mac80211/trace.h                               |  201 +-
 net/mac80211/trace_msg.h                           |    2 -
 net/mac80211/tx.c                                  |   60 +-
 net/mac80211/util.c                                | 1806 ++++-------
 net/mac80211/vht.c                                 |   52 +-
 net/mac80211/wpa.c                                 |   33 +-
 net/mac802154/llsec.c                              |   18 +-
 net/mctp/Kconfig                                   |    1 +
 net/mctp/af_mctp.c                                 |  117 +-
 net/mctp/route.c                                   |  105 +-
 net/mctp/test/route-test.c                         |  413 ++-
 net/mctp/test/utils.c                              |    2 +
 net/mpls/af_mpls.c                                 |    4 +-
 net/mpls/mpls_gso.c                                |    3 +
 net/mpls/mpls_iptunnel.c                           |    2 -
 net/mptcp/diag.c                                   |    1 -
 net/mptcp/mptcp_diag.c                             |    2 +-
 net/mptcp/mptcp_pm_gen.c                           |    7 +-
 net/mptcp/mptcp_pm_gen.h                           |    2 +-
 net/mptcp/options.c                                |   20 +-
 net/mptcp/pm.c                                     |   29 +-
 net/mptcp/pm_netlink.c                             |  137 +-
 net/mptcp/pm_userspace.c                           |  221 +-
 net/mptcp/protocol.c                               |  107 +-
 net/mptcp/protocol.h                               |   93 +-
 net/mptcp/sockopt.c                                |   73 +-
 net/mptcp/subflow.c                                |   12 +-
 net/mptcp/token_test.c                             |    7 +-
 net/netfilter/Kconfig                              |   12 +-
 net/netfilter/ipvs/ip_vs_conn.c                    |    4 +-
 net/netfilter/nf_bpf_link.c                        |    2 +-
 net/netfilter/nf_conncount.c                       |    8 +-
 net/netfilter/nf_conntrack_bpf.c                   |    4 +-
 net/netfilter/nf_conntrack_core.c                  |    2 +-
 net/netfilter/nf_conntrack_expect.c                |    4 +-
 net/netfilter/nf_log.c                             |    9 +-
 net/netfilter/nf_nat_bpf.c                         |    4 +-
 net/netfilter/nf_queue.c                           |  106 -
 net/netfilter/nf_synproxy_core.c                   |    2 +-
 net/netfilter/nf_tables_api.c                      |   35 +-
 net/netfilter/nfnetlink_queue.c                    |  142 +
 net/netfilter/nft_osf.c                            |   11 +-
 net/netfilter/nft_set_pipapo.c                     |  193 +-
 net/netfilter/nft_set_pipapo.h                     |   37 +-
 net/netfilter/nft_set_pipapo_avx2.c                |   59 +-
 net/netfilter/utils.c                              |   37 -
 net/netfilter/x_tables.c                           |    3 +-
 net/netlabel/netlabel_kapi.c                       |   10 +-
 net/netlink/af_netlink.c                           |   76 +-
 net/netlink/af_netlink.h                           |    5 +-
 net/netlink/diag.c                                 |    3 +-
 net/netlink/genetlink.c                            |   42 +-
 net/nfc/core.c                                     |    2 +-
 net/nfc/hci/llc.c                                  |   20 +-
 net/packet/af_packet.c                             |   11 +-
 net/packet/diag.c                                  |    3 +-
 net/rds/connection.c                               |    4 +-
 net/rxrpc/af_rxrpc.c                               |   12 +-
 net/rxrpc/ar-internal.h                            |   88 +-
 net/rxrpc/call_event.c                             |  359 +--
 net/rxrpc/call_object.c                            |   54 +-
 net/rxrpc/conn_client.c                            |    4 +-
 net/rxrpc/conn_event.c                             |   16 +-
 net/rxrpc/conn_object.c                            |    4 +
 net/rxrpc/input.c                                  |  114 +-
 net/rxrpc/insecure.c                               |   11 +-
 net/rxrpc/io_thread.c                              |   11 +
 net/rxrpc/local_object.c                           |    3 +
 net/rxrpc/misc.c                                   |    8 +-
 net/rxrpc/output.c                                 |  441 ++-
 net/rxrpc/proc.c                                   |   10 +-
 net/rxrpc/protocol.h                               |    6 +-
 net/rxrpc/rtt.c                                    |   36 +-
 net/rxrpc/rxkad.c                                  |   57 +-
 net/rxrpc/sendmsg.c                                |   63 +-
 net/rxrpc/sysctl.c                                 |   16 +-
 net/rxrpc/txbuf.c                                  |  172 +-
 net/sched/Kconfig                                  |   10 -
 net/sched/act_api.c                                |    2 +-
 net/sched/act_bpf.c                                |    1 +
 net/sched/act_connmark.c                           |    1 +
 net/sched/act_csum.c                               |    1 +
 net/sched/act_ct.c                                 |    1 +
 net/sched/act_ctinfo.c                             |    1 +
 net/sched/act_gact.c                               |    1 +
 net/sched/act_gate.c                               |    1 +
 net/sched/act_ife.c                                |    1 +
 net/sched/act_mirred.c                             |    1 +
 net/sched/act_mpls.c                               |    1 +
 net/sched/act_nat.c                                |    1 +
 net/sched/act_pedit.c                              |    3 +-
 net/sched/act_police.c                             |    1 +
 net/sched/act_sample.c                             |    1 +
 net/sched/act_simple.c                             |    1 +
 net/sched/act_skbedit.c                            |    1 +
 net/sched/act_skbmod.c                             |    1 +
 net/sched/act_tunnel_key.c                         |    1 +
 net/sched/act_vlan.c                               |    1 +
 net/sched/cls_api.c                                |    2 +-
 net/sched/cls_basic.c                              |    1 +
 net/sched/cls_bpf.c                                |    1 +
 net/sched/cls_cgroup.c                             |    1 +
 net/sched/cls_flow.c                               |    1 +
 net/sched/cls_flower.c                             |    1 +
 net/sched/cls_fw.c                                 |    1 +
 net/sched/cls_matchall.c                           |    1 +
 net/sched/cls_route.c                              |    1 +
 net/sched/cls_u32.c                                |    1 +
 net/sched/sch_api.c                                |    4 +-
 net/sched/sch_cake.c                               |    1 +
 net/sched/sch_cbs.c                                |    1 +
 net/sched/sch_choke.c                              |    1 +
 net/sched/sch_codel.c                              |   33 +-
 net/sched/sch_drr.c                                |    1 +
 net/sched/sch_etf.c                                |    1 +
 net/sched/sch_ets.c                                |    1 +
 net/sched/sch_fq.c                                 |    1 +
 net/sched/sch_fq_codel.c                           |    1 +
 net/sched/sch_generic.c                            |    3 +-
 net/sched/sch_gred.c                               |    1 +
 net/sched/sch_hfsc.c                               |    1 +
 net/sched/sch_hhf.c                                |    1 +
 net/sched/sch_htb.c                                |    1 +
 net/sched/sch_ingress.c                            |    3 +-
 net/sched/sch_mqprio.c                             |    1 +
 net/sched/sch_multiq.c                             |    1 +
 net/sched/sch_netem.c                              |    1 +
 net/sched/sch_pie.c                                |    1 +
 net/sched/sch_plug.c                               |    1 +
 net/sched/sch_prio.c                               |    1 +
 net/sched/sch_qfq.c                                |    1 +
 net/sched/sch_red.c                                |    1 +
 net/sched/sch_sfb.c                                |    1 +
 net/sched/sch_sfq.c                                |    1 +
 net/sched/sch_skbprio.c                            |    1 +
 net/sched/sch_taprio.c                             |   73 +-
 net/sched/sch_tbf.c                                |    1 +
 net/sctp/diag.c                                    |    1 +
 net/sctp/protocol.c                                |   10 +-
 net/sctp/socket.c                                  |    1 +
 net/smc/af_smc.c                                   |   22 +-
 net/smc/smc.h                                      |    4 +-
 net/smc/smc_clc.c                                  |    6 +-
 net/smc/smc_clc.h                                  |    2 +-
 net/smc/smc_core.c                                 |    4 +-
 net/smc/smc_diag.c                                 |    1 +
 net/smc/smc_ism.h                                  |   10 +-
 net/smc/smc_pnet.c                                 |   10 +
 net/socket.c                                       |    2 +-
 net/tipc/Kconfig                                   |    7 +-
 net/tipc/Makefile                                  |    4 +-
 net/tipc/bearer.c                                  |   15 +-
 net/tipc/diag.c                                    |    1 +
 net/tipc/node.c                                    |    2 -
 net/tipc/socket.c                                  |    1 -
 net/unix/Kconfig                                   |    5 -
 net/unix/Makefile                                  |    2 -
 net/unix/af_unix.c                                 |   73 +-
 net/unix/diag.c                                    |    1 +
 net/unix/garbage.c                                 |  200 +-
 net/unix/scm.c                                     |  159 -
 net/unix/scm.h                                     |   10 -
 net/vmw_vsock/diag.c                               |    1 +
 net/wireless/chan.c                                |  397 +--
 net/wireless/core.h                                |   52 +-
 net/wireless/mlme.c                                |  146 +-
 net/wireless/nl80211.c                             |  389 ++-
 net/wireless/reg.c                                 |   17 +-
 net/wireless/scan.c                                |  796 ++---
 net/wireless/sme.c                                 |    3 +-
 net/wireless/tests/Makefile                        |    2 +-
 net/wireless/tests/chan.c                          |  228 ++
 net/wireless/tests/fragmentation.c                 |   30 +-
 net/wireless/tests/scan.c                          |  277 +-
 net/wireless/trace.h                               |   62 +-
 net/wireless/util.c                                |   90 +-
 net/x25/Kconfig                                    |    2 -
 net/x25/af_x25.c                                   |    4 +-
 net/xdp/xsk.c                                      |    5 +-
 net/xdp/xsk_diag.c                                 |    1 +
 net/xfrm/espintcp.c                                |    4 +-
 net/xfrm/xfrm_input.c                              |    3 +-
 net/xfrm/xfrm_interface_bpf.c                      |    4 +-
 net/xfrm/xfrm_interface_core.c                     |   26 +-
 net/xfrm/xfrm_policy.c                             |  147 +-
 net/xfrm/xfrm_proc.c                               |    1 +
 net/xfrm/xfrm_state.c                              |   17 +-
 net/xfrm/xfrm_state_bpf.c                          |    4 +-
 net/xfrm/xfrm_user.c                               |    2 +-
 rust/kernel/net/phy.rs                             |   24 +-
 samples/bpf/map_perf_test_user.c                   |    2 +-
 samples/bpf/xdp_router_ipv4_user.c                 |    2 +-
 scripts/bpf_doc.py                                 |    2 +-
 security/security.c                                |  101 +-
 security/selinux/hooks.c                           |   47 +-
 tools/bpf/bpftool/Documentation/bpftool-gen.rst    |   58 +-
 tools/bpf/bpftool/Documentation/bpftool-map.rst    |    2 +-
 tools/bpf/bpftool/gen.c                            |  277 +-
 tools/bpf/bpftool/link.c                           |   96 +-
 tools/bpf/bpftool/map.c                            |    2 +-
 tools/bpf/bpftool/prog.c                           |    2 +-
 tools/bpf/resolve_btfids/main.c                    |   70 +-
 tools/include/linux/btf_ids.h                      |    9 +
 tools/include/uapi/linux/bpf.h                     |  123 +-
 tools/include/uapi/linux/if_link.h                 |    1 +
 tools/include/uapi/linux/netdev.h                  |   20 +
 tools/lib/bpf/Build                                |    2 +-
 tools/lib/bpf/bpf.c                                |   42 +-
 tools/lib/bpf/bpf.h                                |   79 +-
 tools/lib/bpf/bpf_core_read.h                      |   60 +-
 tools/lib/bpf/bpf_helpers.h                        |    4 +
 tools/lib/bpf/btf.c                                |   43 +-
 tools/lib/bpf/elf.c                                |    2 -
 tools/lib/bpf/features.c                           |  583 ++++
 tools/lib/bpf/libbpf.c                             | 1160 ++++---
 tools/lib/bpf/libbpf.h                             |   23 +-
 tools/lib/bpf/libbpf.map                           |    6 +-
 tools/lib/bpf/libbpf_internal.h                    |   68 +-
 tools/lib/bpf/libbpf_probes.c                      |   19 +-
 tools/lib/bpf/linker.c                             |    2 +-
 tools/lib/bpf/netlink.c                            |    4 +-
 tools/lib/bpf/str_error.h                          |    3 +
 tools/net/ynl/Makefile                             |    4 +-
 tools/net/ynl/Makefile.deps                        |    5 +
 tools/net/ynl/cli.py                               |   43 +-
 tools/net/ynl/generated/Makefile                   |    9 +-
 tools/net/ynl/lib/Makefile                         |    5 +-
 tools/net/ynl/lib/__init__.py                      |    4 +-
 tools/net/ynl/lib/nlspec.py                        |   11 +-
 tools/net/ynl/lib/ynl-priv.h                       |  359 ++-
 tools/net/ynl/lib/ynl.c                            |  401 +--
 tools/net/ynl/lib/ynl.h                            |    5 +-
 tools/net/ynl/lib/ynl.py                           |  311 +-
 tools/net/ynl/samples/.gitignore                   |    1 +
 tools/net/ynl/samples/Makefile                     |    6 +-
 tools/net/ynl/samples/ovs.c                        |   60 +
 tools/net/ynl/samples/page-pool.c                  |    2 +
 tools/net/ynl/ynl-gen-c.py                         |  124 +-
 tools/net/ynl/ynl-gen-rst.py                       |    9 +-
 tools/testing/kunit/configs/all_tests.config       |    6 +
 tools/testing/selftests/Makefile                   |    7 +-
 tools/testing/selftests/alsa/test-pcmtest-driver.c |    4 +-
 tools/testing/selftests/bpf/DENYLIST.aarch64       |    3 +-
 tools/testing/selftests/bpf/DENYLIST.s390x         |    3 +
 tools/testing/selftests/bpf/Makefile               |   51 +-
 tools/testing/selftests/bpf/README.rst             |   32 +-
 tools/testing/selftests/bpf/bench.c                |   40 +-
 tools/testing/selftests/bpf/benchs/bench_trigger.c |  182 +-
 .../selftests/bpf/benchs/run_bench_uprobes.sh      |    9 +
 tools/testing/selftests/bpf/bpf_arena_alloc.h      |   67 +
 tools/testing/selftests/bpf/bpf_arena_common.h     |   70 +
 tools/testing/selftests/bpf/bpf_arena_htab.h       |  100 +
 tools/testing/selftests/bpf/bpf_arena_list.h       |   92 +
 tools/testing/selftests/bpf/bpf_experimental.h     |   76 +-
 tools/testing/selftests/bpf/bpf_kfuncs.h           |   30 +-
 .../testing/selftests/bpf/bpf_test_no_cfi/Makefile |   19 +
 .../bpf/bpf_test_no_cfi/bpf_test_no_cfi.c          |   84 +
 .../selftests/bpf/bpf_testmod/bpf_testmod.c        |  129 +-
 .../selftests/bpf/bpf_testmod/bpf_testmod.h        |   65 +
 tools/testing/selftests/bpf/config                 |    1 +
 .../testing/selftests/bpf/prog_tests/arena_htab.c  |   88 +
 .../testing/selftests/bpf/prog_tests/arena_list.c  |   68 +
 .../selftests/bpf/prog_tests/bad_struct_ops.c      |   67 +
 .../selftests/bpf/prog_tests/bpf_verif_scale.c     |    2 +-
 tools/testing/selftests/bpf/prog_tests/btf.c       |   29 +
 tools/testing/selftests/bpf/prog_tests/cpumask.c   |    6 +-
 .../testing/selftests/bpf/prog_tests/ctx_rewrite.c |   44 -
 .../selftests/bpf/prog_tests/decap_sanity.c        |    2 +-
 .../testing/selftests/bpf/prog_tests/fib_lookup.c  |    2 +-
 .../selftests/bpf/prog_tests/fill_link_info.c      |  114 +-
 .../selftests/bpf/prog_tests/ip_check_defrag.c     |    4 +-
 .../selftests/bpf/prog_tests/kptr_xchg_inline.c    |   52 +
 .../selftests/bpf/prog_tests/libbpf_probes.c       |    4 +
 .../testing/selftests/bpf/prog_tests/libbpf_str.c  |    6 +
 tools/testing/selftests/bpf/prog_tests/log_fixup.c |    4 +-
 .../testing/selftests/bpf/prog_tests/lwt_helpers.h |    2 -
 .../selftests/bpf/prog_tests/lwt_redirect.c        |    4 +-
 .../testing/selftests/bpf/prog_tests/lwt_reroute.c |    3 +-
 tools/testing/selftests/bpf/prog_tests/mptcp.c     |    2 +-
 .../selftests/bpf/prog_tests/rcu_read_lock.c       |    6 +
 .../testing/selftests/bpf/prog_tests/reg_bounds.c  |    2 +-
 .../selftests/bpf/prog_tests/sock_destroy.c        |    2 +-
 .../selftests/bpf/prog_tests/sock_iter_batch.c     |    4 +-
 tools/testing/selftests/bpf/prog_tests/spin_lock.c |    2 +
 .../bpf/prog_tests/struct_ops_autocreate.c         |  159 +
 .../selftests/bpf/prog_tests/task_local_storage.c  |    6 -
 .../testing/selftests/bpf/prog_tests/tc_redirect.c |   90 +-
 .../bpf/prog_tests/tcp_custom_syncookie.c          |  150 +
 .../bpf/prog_tests/test_struct_ops_maybe_null.c    |   46 +
 .../bpf/prog_tests/test_struct_ops_module.c        |  101 +
 .../bpf/prog_tests/test_struct_ops_multi_pages.c   |   30 +
 .../bpf/prog_tests/test_struct_ops_no_cfi.c        |   35 +
 .../testing/selftests/bpf/prog_tests/test_tunnel.c |   18 +-
 tools/testing/selftests/bpf/prog_tests/token.c     | 1052 +++++++
 .../selftests/bpf/prog_tests/tracing_failure.c     |   37 +
 tools/testing/selftests/bpf/prog_tests/verifier.c  |    4 +
 tools/testing/selftests/bpf/prog_tests/xdpwall.c   |    2 +-
 tools/testing/selftests/bpf/progs/arena_htab.c     |   48 +
 tools/testing/selftests/bpf/progs/arena_htab_asm.c |    5 +
 tools/testing/selftests/bpf/progs/arena_list.c     |   87 +
 .../selftests/bpf/progs/async_stack_depth.c        |    4 +-
 tools/testing/selftests/bpf/progs/bad_struct_ops.c |   25 +
 .../testing/selftests/bpf/progs/bad_struct_ops2.c  |   14 +
 tools/testing/selftests/bpf/progs/bpf_compiler.h   |   33 +
 tools/testing/selftests/bpf/progs/bpf_misc.h       |    2 +-
 .../testing/selftests/bpf/progs/bpf_tracing_net.h  |   16 +
 .../selftests/bpf/progs/cgrp_ls_recursion.c        |   26 -
 .../selftests/bpf/progs/connect_unix_prog.c        |    3 +-
 tools/testing/selftests/bpf/progs/cpumask_common.h |   55 +-
 .../selftests/bpf/progs/getpeername_unix_prog.c    |    3 +-
 .../selftests/bpf/progs/getsockname_unix_prog.c    |    3 +-
 tools/testing/selftests/bpf/progs/iters.c          |    9 +-
 .../testing/selftests/bpf/progs/kptr_xchg_inline.c |   48 +
 tools/testing/selftests/bpf/progs/loop4.c          |    4 +-
 tools/testing/selftests/bpf/progs/map_ptr_kern.c   |    2 +-
 tools/testing/selftests/bpf/progs/priv_map.c       |   13 +
 tools/testing/selftests/bpf/progs/priv_prog.c      |   13 +
 tools/testing/selftests/bpf/progs/profiler.inc.h   |   17 +-
 tools/testing/selftests/bpf/progs/pyperf.h         |    7 +-
 tools/testing/selftests/bpf/progs/rcu_read_lock.c  |  120 +
 .../selftests/bpf/progs/recvmsg_unix_prog.c        |    3 +-
 .../selftests/bpf/progs/sendmsg_unix_prog.c        |    3 +-
 .../selftests/bpf/progs/sk_storage_omem_uncharge.c |    4 +-
 .../testing/selftests/bpf/progs/sock_iter_batch.c  |    4 +-
 tools/testing/selftests/bpf/progs/strobemeta.h     |   18 +-
 .../selftests/bpf/progs/struct_ops_autocreate.c    |   52 +
 .../selftests/bpf/progs/struct_ops_autocreate2.c   |   32 +
 .../selftests/bpf/progs/struct_ops_maybe_null.c    |   29 +
 .../bpf/progs/struct_ops_maybe_null_fail.c         |   24 +
 .../selftests/bpf/progs/struct_ops_module.c        |   56 +
 .../selftests/bpf/progs/struct_ops_multi_pages.c   |  102 +
 .../selftests/bpf/progs/task_ls_recursion.c        |   17 -
 .../selftests/bpf/progs/test_cls_redirect.c        |    7 +-
 .../selftests/bpf/progs/test_cls_redirect_dynptr.c |    2 +
 .../selftests/bpf/progs/test_core_reloc_type_id.c  |    2 +-
 .../selftests/bpf/progs/test_fill_link_info.c      |    6 +
 .../selftests/bpf/progs/test_global_func1.c        |    8 +-
 .../bpf/progs/test_global_func_ctx_args.c          |   19 +
 .../selftests/bpf/progs/test_lwt_seg6local.c       |    6 +-
 .../testing/selftests/bpf/progs/test_map_in_map.c  |   26 +
 .../selftests/bpf/progs/test_ptr_untrusted.c       |    6 +-
 tools/testing/selftests/bpf/progs/test_seg6_loop.c |    4 +-
 tools/testing/selftests/bpf/progs/test_siphash.h   |   64 +
 tools/testing/selftests/bpf/progs/test_skb_ctx.c   |    4 +-
 tools/testing/selftests/bpf/progs/test_spin_lock.c |   65 +
 .../selftests/bpf/progs/test_spin_lock_fail.c      |   44 +
 .../selftests/bpf/progs/test_sysctl_loop1.c        |    6 +-
 .../selftests/bpf/progs/test_sysctl_loop2.c        |    6 +-
 .../testing/selftests/bpf/progs/test_sysctl_prog.c |    6 +-
 tools/testing/selftests/bpf/progs/test_tc_tunnel.c |    5 +-
 .../bpf/progs/test_tcp_custom_syncookie.c          |  595 ++++
 .../bpf/progs/test_tcp_custom_syncookie.h          |  140 +
 .../testing/selftests/bpf/progs/test_tcpbpf_kern.c |    2 +-
 tools/testing/selftests/bpf/progs/test_xdp.c       |    3 +-
 .../testing/selftests/bpf/progs/test_xdp_dynptr.c  |   10 +-
 tools/testing/selftests/bpf/progs/test_xdp_loop.c  |    3 +-
 .../selftests/bpf/progs/test_xdp_noinline.c        |    5 +-
 tools/testing/selftests/bpf/progs/token_lsm.c      |   32 +
 .../testing/selftests/bpf/progs/tracing_failure.c  |   20 +
 tools/testing/selftests/bpf/progs/trigger_bench.c  |   28 +
 tools/testing/selftests/bpf/progs/type_cast.c      |   13 +-
 tools/testing/selftests/bpf/progs/verifier_arena.c |  146 +
 .../bpf/progs/verifier_direct_packet_access.c      |    2 +-
 .../selftests/bpf/progs/verifier_global_ptr_args.c |  182 ++
 .../selftests/bpf/progs/verifier_global_subprogs.c |   29 +
 .../bpf/progs/verifier_iterating_callbacks.c       |  103 +-
 .../testing/selftests/bpf/progs/verifier_loops1.c  |   24 +
 .../selftests/bpf/progs/verifier_spill_fill.c      |  553 +++-
 .../selftests/bpf/progs/verifier_spin_lock.c       |    2 +-
 .../selftests/bpf/progs/xdp_synproxy_kern.c        |    6 +-
 tools/testing/selftests/bpf/progs/xdping_kern.c    |    3 +-
 tools/testing/selftests/bpf/test_loader.c          |   13 +-
 tools/testing/selftests/bpf/test_lpm_map.c         |   18 +-
 tools/testing/selftests/bpf/test_maps.c            |    6 +-
 tools/testing/selftests/bpf/test_progs.c           |   77 +-
 tools/testing/selftests/bpf/test_progs.h           |   10 +-
 tools/testing/selftests/bpf/test_sock_addr.c       |    3 +-
 tools/testing/selftests/bpf/test_verifier.c        |   60 +-
 tools/testing/selftests/bpf/testing_helpers.c      |   96 +-
 tools/testing/selftests/bpf/testing_helpers.h      |   10 +
 tools/testing/selftests/bpf/trace_helpers.c        |    2 +-
 .../selftests/bpf/verifier/bpf_loop_inline.c       |    6 +
 tools/testing/selftests/bpf/verifier/precise.c     |    6 +-
 tools/testing/selftests/bpf/xdp_hw_metadata.c      |    2 +-
 .../testing/selftests/drivers/net/bonding/Makefile |    7 +-
 .../drivers/net/bonding/bond-break-lacpdu-tx.sh    |   19 +-
 .../drivers/net/bonding/bond-eth-type-change.sh    |    2 +-
 .../drivers/net/bonding/bond-lladdr-target.sh      |   21 +-
 .../selftests/drivers/net/bonding/bond_options.sh  |   38 +-
 .../drivers/net/bonding/bond_topo_2d1c.sh          |    8 +-
 .../drivers/net/bonding/dev_addr_lists.sh          |    2 +-
 .../selftests/drivers/net/bonding/lag_lib.sh       |    7 +-
 .../drivers/net/bonding/mode-1-recovery-updelay.sh |    2 +-
 .../drivers/net/bonding/mode-2-recovery-updelay.sh |    2 +-
 .../drivers/net/bonding/net_forwarding_lib.sh      |    1 -
 tools/testing/selftests/drivers/net/dsa/Makefile   |   18 +-
 .../drivers/net/dsa/bridge_locked_port.sh          |    2 +-
 .../selftests/drivers/net/dsa/bridge_mdb.sh        |    2 +-
 .../selftests/drivers/net/dsa/bridge_mld.sh        |    2 +-
 .../selftests/drivers/net/dsa/bridge_vlan_aware.sh |    2 +-
 .../selftests/drivers/net/dsa/bridge_vlan_mcast.sh |    2 +-
 .../drivers/net/dsa/bridge_vlan_unaware.sh         |    2 +-
 tools/testing/selftests/drivers/net/dsa/lib.sh     |    1 -
 .../selftests/drivers/net/dsa/local_termination.sh |    2 +-
 .../selftests/drivers/net/dsa/no_forwarding.sh     |    2 +-
 .../drivers/net/dsa/run_net_forwarding_test.sh     |    9 +
 .../selftests/drivers/net/dsa/tc_actions.sh        |    2 +-
 .../testing/selftests/drivers/net/dsa/tc_common.sh |    1 -
 .../drivers/net/dsa/test_bridge_fdb_stress.sh      |    2 +-
 .../drivers/net/mlxsw/spectrum-2/tc_flower.sh      |    2 +-
 .../selftests/drivers/net/netdevsim/Makefile       |   18 +
 .../selftests/drivers/net/netdevsim/devlink.sh     |    2 +-
 .../selftests/drivers/net/netdevsim/ethtool-fec.sh |    2 +-
 .../selftests/drivers/net/netdevsim/peer.sh        |  143 +
 .../drivers/net/netdevsim/udp_tunnel_nic.sh        |   40 +-
 tools/testing/selftests/drivers/net/team/Makefile  |    7 +-
 .../selftests/drivers/net/team/dev_addr_lists.sh   |    4 +-
 .../testing/selftests/drivers/net/team/lag_lib.sh  |    1 -
 .../drivers/net/team/net_forwarding_lib.sh         |    1 -
 tools/testing/selftests/kselftest.h                |   45 +
 tools/testing/selftests/kselftest_harness.h        |  198 +-
 tools/testing/selftests/landlock/base_test.c       |    2 +-
 tools/testing/selftests/landlock/common.h          |   58 +-
 tools/testing/selftests/landlock/fs_test.c         |   26 +-
 tools/testing/selftests/landlock/net_test.c        |    4 +-
 tools/testing/selftests/landlock/ptrace_test.c     |    7 +-
 tools/testing/selftests/lib.mk                     |   19 +
 tools/testing/selftests/mm/hmm-tests.c             |    4 +-
 tools/testing/selftests/net/Makefile               |    2 +
 tools/testing/selftests/net/fcnal-test.sh          |   34 +-
 tools/testing/selftests/net/fib_nexthops.sh        |    6 +
 tools/testing/selftests/net/fib_tests.sh           |  148 +-
 tools/testing/selftests/net/forwarding/Makefile    |    4 +
 tools/testing/selftests/net/forwarding/config      |   35 +
 .../net/forwarding/custom_multipath_hash.sh        |   16 +-
 .../net/forwarding/forwarding.config.sample        |    2 +
 .../net/forwarding/gre_custom_multipath_hash.sh    |   16 +-
 .../net/forwarding/gre_inner_v4_multipath.sh       |    2 +-
 .../net/forwarding/gre_inner_v6_multipath.sh       |    6 +-
 .../selftests/net/forwarding/gre_multipath.sh      |    2 +-
 .../selftests/net/forwarding/gre_multipath_nh.sh   |   41 +-
 .../net/forwarding/gre_multipath_nh_res.sh         |   42 +-
 .../net/forwarding/ip6gre_custom_multipath_hash.sh |   16 +-
 .../net/forwarding/ip6gre_inner_v4_multipath.sh    |    2 +-
 .../net/forwarding/ip6gre_inner_v6_multipath.sh    |    6 +-
 .../testing/selftests/net/forwarding/ip6gre_lib.sh |    4 +-
 tools/testing/selftests/net/forwarding/lib.sh      |   67 +-
 .../selftests/net/forwarding/mirror_gre_lib.sh     |    2 +-
 .../net/forwarding/mirror_gre_topo_lib.sh          |    2 +-
 .../selftests/net/forwarding/router_mpath_nh.sh    |   52 +-
 .../net/forwarding/router_mpath_nh_lib.sh          |  129 +
 .../net/forwarding/router_mpath_nh_res.sh          |   17 +-
 .../selftests/net/forwarding/router_multipath.sh   |   43 +-
 .../testing/selftests/net/forwarding/tc_police.sh  |   16 +-
 .../selftests/net/forwarding/vxlan_bridge_1d.sh    |    4 +-
 .../net/forwarding/vxlan_bridge_1d_ipv6.sh         |    4 +-
 .../selftests/net/forwarding/vxlan_bridge_1q.sh    |   10 +-
 tools/testing/selftests/net/fq_band_pktlimit.sh    |   14 +-
 tools/testing/selftests/net/ip_local_port_range.c  |    6 +-
 tools/testing/selftests/net/mptcp/diag.sh          |   56 +-
 tools/testing/selftests/net/mptcp/mptcp_connect.sh |  248 +-
 tools/testing/selftests/net/mptcp/mptcp_join.sh    |  293 +-
 tools/testing/selftests/net/mptcp/mptcp_lib.sh     |  213 +-
 tools/testing/selftests/net/mptcp/mptcp_sockopt.sh |  104 +-
 tools/testing/selftests/net/mptcp/pm_netlink.sh    |   63 +-
 tools/testing/selftests/net/mptcp/pm_nl_ctl.c      |   39 +-
 tools/testing/selftests/net/mptcp/simult_flows.sh  |   60 +-
 tools/testing/selftests/net/mptcp/userspace_pm.sh  |  173 +-
 .../selftests/net/openvswitch/openvswitch.sh       |   62 +
 tools/testing/selftests/net/rtnetlink.sh           |    2 +
 tools/testing/selftests/net/so_txtime.c            |    7 +-
 tools/testing/selftests/net/test_vxlan_mdb.sh      |   36 +-
 tools/testing/selftests/net/tls.c                  |    2 +-
 tools/testing/selftests/net/txtimestamp.c          |    3 +-
 tools/testing/selftests/net/txtimestamp.sh         |   12 +-
 tools/testing/selftests/net/udpgso.c               |  134 +-
 tools/testing/selftests/net/udpgso.sh              |   49 +-
 tools/testing/selftests/seccomp/seccomp_bpf.c      |    9 +-
 tools/testing/selftests/tc-testing/config          |    1 +
 .../tc-testing/tc-tests/actions/mirred.json        |  403 +++
 .../selftests/tc-testing/tc-tests/qdiscs/fq.json   |    2 +-
 .../tc-testing/tc-tests/qdiscs/taprio.json         |    2 +
 tools/testing/selftests/tc-testing/tdc.py          |    2 +-
 tools/testing/selftests/tc-testing/tdc.sh          |    3 +-
 tools/testing/vsock/util.c                         |   17 +-
 tools/testing/vsock/util.h                         |    4 +
 tools/testing/vsock/vsock_diag_test.c              |   23 +-
 tools/testing/vsock/vsock_test.c                   |  102 +-
 tools/testing/vsock/vsock_test_zerocopy.c          |   12 +-
 tools/testing/vsock/vsock_uring_test.c             |   17 +-
 tools/virtio/.gitignore                            |    1 +
 tools/virtio/Makefile                              |    8 +-
 tools/virtio/linux/virtio_config.h                 |    4 +
 tools/virtio/vhost_net_test.c                      |  532 ++++
 1882 files changed, 91719 insertions(+), 36268 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/net/dsa/ar9331.txt
 create mode 100644 Documentation/devicetree/bindings/net/dsa/qca,ar9331.yaml
 create mode 100644 Documentation/devicetree/bindings/net/ethernet-phy-package.yaml
 create mode 100644 Documentation/devicetree/bindings/net/qca,qca808x.yaml
 create mode 100644 Documentation/devicetree/bindings/net/qcom,qca807x.yaml
 create mode 100644 Documentation/netlink/specs/nlctrl.yaml
 create mode 100644 Documentation/networking/device_drivers/ethernet/marvell/octeon_ep_vf.rst
 create mode 100644 Documentation/networking/multi-pf-netdev.rst
 create mode 100644 drivers/net/can/esd/Kconfig
 create mode 100644 drivers/net/can/esd/Makefile
 create mode 100644 drivers/net/can/esd/esd_402_pci-core.c
 create mode 100644 drivers/net/can/esd/esdacc.c
 create mode 100644 drivers/net/can/esd/esdacc.h
 create mode 100644 drivers/net/dsa/realtek/realtek-mdio.h
 create mode 100644 drivers/net/dsa/realtek/realtek-smi.h
 create mode 100644 drivers/net/dsa/realtek/rtl83xx.c
 create mode 100644 drivers/net/dsa/realtek/rtl83xx.h
 create mode 100644 drivers/net/ethernet/intel/idpf/idpf_virtchnl.h
 create mode 100644 drivers/net/ethernet/intel/igc/igc_leds.c
 create mode 100644 drivers/net/ethernet/marvell/octeon_ep_vf/Kconfig
 create mode 100644 drivers/net/ethernet/marvell/octeon_ep_vf/Makefile
 create mode 100644 drivers/net/ethernet/marvell/octeon_ep_vf/octep_vf_cn9k.c
 create mode 100644 drivers/net/ethernet/marvell/octeon_ep_vf/octep_vf_cnxk.c
 create mode 100644 drivers/net/ethernet/marvell/octeon_ep_vf/octep_vf_config.h
 create mode 100644 drivers/net/ethernet/marvell/octeon_ep_vf/octep_vf_ethtool.c
 create mode 100644 drivers/net/ethernet/marvell/octeon_ep_vf/octep_vf_main.c
 create mode 100644 drivers/net/ethernet/marvell/octeon_ep_vf/octep_vf_main.h
 create mode 100644 drivers/net/ethernet/marvell/octeon_ep_vf/octep_vf_mbox.c
 create mode 100644 drivers/net/ethernet/marvell/octeon_ep_vf/octep_vf_mbox.h
 create mode 100644 drivers/net/ethernet/marvell/octeon_ep_vf/octep_vf_regs_cn9k.h
 create mode 100644 drivers/net/ethernet/marvell/octeon_ep_vf/octep_vf_regs_cnxk.h
 create mode 100644 drivers/net/ethernet/marvell/octeon_ep_vf/octep_vf_rx.c
 create mode 100644 drivers/net/ethernet/marvell/octeon_ep_vf/octep_vf_rx.h
 create mode 100644 drivers/net/ethernet/marvell/octeon_ep_vf/octep_vf_tx.c
 create mode 100644 drivers/net/ethernet/marvell/octeon_ep_vf/octep_vf_tx.h
 create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/lib/sd.c
 create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/lib/sd.h
 create mode 100644 drivers/net/ethernet/wangxun/txgbe/txgbe_irq.c
 create mode 100644 drivers/net/ethernet/wangxun/txgbe/txgbe_irq.h
 delete mode 100644 drivers/net/phy/at803x.c
 create mode 100644 drivers/net/phy/qcom/Kconfig
 create mode 100644 drivers/net/phy/qcom/Makefile
 create mode 100644 drivers/net/phy/qcom/at803x.c
 create mode 100644 drivers/net/phy/qcom/qca807x.c
 create mode 100644 drivers/net/phy/qcom/qca808x.c
 create mode 100644 drivers/net/phy/qcom/qca83xx.c
 create mode 100644 drivers/net/phy/qcom/qcom-phy-lib.c
 create mode 100644 drivers/net/phy/qcom/qcom.h
 create mode 100644 drivers/net/wan/fsl_qmc_hdlc.c
 create mode 100644 drivers/net/wireless/ath/ath12k/fw.c
 create mode 100644 drivers/net/wireless/ath/ath12k/fw.h
 create mode 100644 drivers/net/wireless/ath/ath12k/p2p.c
 create mode 100644 drivers/net/wireless/ath/ath12k/p2p.h
 create mode 100644 drivers/net/wireless/intel/iwlwifi/fw/regulatory.c
 create mode 100644 drivers/net/wireless/intel/iwlwifi/fw/regulatory.h
 create mode 100644 drivers/net/wireless/intel/iwlwifi/tests/Makefile
 create mode 100644 drivers/net/wireless/intel/iwlwifi/tests/devinfo.c
 create mode 100644 drivers/net/wireless/intel/iwlwifi/tests/module.c
 create mode 100644 drivers/net/wireless/mediatek/mt76/wed.c
 create mode 100644 drivers/net/wireless/realtek/rtw89/rtw8922a_rfk.c
 create mode 100644 drivers/net/wireless/realtek/rtw89/rtw8922a_rfk.h
 create mode 100644 drivers/ptp/ptp_fc3.c
 create mode 100644 drivers/ptp/ptp_fc3.h
 create mode 100644 include/linux/mfd/idtRC38xxx_reg.h
 create mode 100644 include/net/eee.h
 create mode 100644 include/net/hotdata.h
 create mode 100644 include/net/netmem.h
 create mode 100644 include/net/rps.h
 create mode 100644 kernel/bpf/arena.c
 delete mode 100644 kernel/bpf/bpf_struct_ops_types.h
 create mode 100644 kernel/bpf/token.c
 delete mode 100644 net/bluetooth/a2mp.c
 delete mode 100644 net/bluetooth/a2mp.h
 delete mode 100644 net/bluetooth/amp.c
 delete mode 100644 net/bluetooth/amp.h
 create mode 100644 net/core/hotdata.c
 create mode 100644 net/mac80211/parse.c
 delete mode 100644 net/unix/scm.c
 delete mode 100644 net/unix/scm.h
 create mode 100644 net/wireless/tests/chan.c
 create mode 100644 tools/lib/bpf/features.c
 create mode 100644 tools/net/ynl/samples/ovs.c
 create mode 100755 tools/testing/selftests/bpf/benchs/run_bench_uprobes.sh
 create mode 100644 tools/testing/selftests/bpf/bpf_arena_alloc.h
 create mode 100644 tools/testing/selftests/bpf/bpf_arena_common.h
 create mode 100644 tools/testing/selftests/bpf/bpf_arena_htab.h
 create mode 100644 tools/testing/selftests/bpf/bpf_arena_list.h
 create mode 100644 tools/testing/selftests/bpf/bpf_test_no_cfi/Makefile
 create mode 100644 tools/testing/selftests/bpf/bpf_test_no_cfi/bpf_test_no_cfi.c
 create mode 100644 tools/testing/selftests/bpf/prog_tests/arena_htab.c
 create mode 100644 tools/testing/selftests/bpf/prog_tests/arena_list.c
 create mode 100644 tools/testing/selftests/bpf/prog_tests/bad_struct_ops.c
 create mode 100644 tools/testing/selftests/bpf/prog_tests/kptr_xchg_inline.c
 create mode 100644 tools/testing/selftests/bpf/prog_tests/struct_ops_autocreate.c
 create mode 100644 tools/testing/selftests/bpf/prog_tests/tcp_custom_syncookie.c
 create mode 100644 tools/testing/selftests/bpf/prog_tests/test_struct_ops_maybe_null.c
 create mode 100644 tools/testing/selftests/bpf/prog_tests/test_struct_ops_module.c
 create mode 100644 tools/testing/selftests/bpf/prog_tests/test_struct_ops_multi_pages.c
 create mode 100644 tools/testing/selftests/bpf/prog_tests/test_struct_ops_no_cfi.c
 create mode 100644 tools/testing/selftests/bpf/prog_tests/token.c
 create mode 100644 tools/testing/selftests/bpf/prog_tests/tracing_failure.c
 create mode 100644 tools/testing/selftests/bpf/progs/arena_htab.c
 create mode 100644 tools/testing/selftests/bpf/progs/arena_htab_asm.c
 create mode 100644 tools/testing/selftests/bpf/progs/arena_list.c
 create mode 100644 tools/testing/selftests/bpf/progs/bad_struct_ops.c
 create mode 100644 tools/testing/selftests/bpf/progs/bad_struct_ops2.c
 create mode 100644 tools/testing/selftests/bpf/progs/bpf_compiler.h
 create mode 100644 tools/testing/selftests/bpf/progs/kptr_xchg_inline.c
 create mode 100644 tools/testing/selftests/bpf/progs/priv_map.c
 create mode 100644 tools/testing/selftests/bpf/progs/priv_prog.c
 create mode 100644 tools/testing/selftests/bpf/progs/struct_ops_autocreate.c
 create mode 100644 tools/testing/selftests/bpf/progs/struct_ops_autocreate2.c
 create mode 100644 tools/testing/selftests/bpf/progs/struct_ops_maybe_null.c
 create mode 100644 tools/testing/selftests/bpf/progs/struct_ops_maybe_null_fail.c
 create mode 100644 tools/testing/selftests/bpf/progs/struct_ops_module.c
 create mode 100644 tools/testing/selftests/bpf/progs/struct_ops_multi_pages.c
 create mode 100644 tools/testing/selftests/bpf/progs/test_siphash.h
 create mode 100644 tools/testing/selftests/bpf/progs/test_tcp_custom_syncookie.c
 create mode 100644 tools/testing/selftests/bpf/progs/test_tcp_custom_syncookie.h
 create mode 100644 tools/testing/selftests/bpf/progs/token_lsm.c
 create mode 100644 tools/testing/selftests/bpf/progs/tracing_failure.c
 create mode 100644 tools/testing/selftests/bpf/progs/verifier_arena.c
 create mode 100644 tools/testing/selftests/bpf/progs/verifier_global_ptr_args.c
 delete mode 120000 tools/testing/selftests/drivers/net/bonding/net_forwarding_lib.sh
 delete mode 120000 tools/testing/selftests/drivers/net/dsa/lib.sh
 create mode 100755 tools/testing/selftests/drivers/net/dsa/run_net_forwarding_test.sh
 delete mode 120000 tools/testing/selftests/drivers/net/dsa/tc_common.sh
 create mode 100644 tools/testing/selftests/drivers/net/netdevsim/Makefile
 create mode 100755 tools/testing/selftests/drivers/net/netdevsim/peer.sh
 delete mode 120000 tools/testing/selftests/drivers/net/team/lag_lib.sh
 delete mode 120000 tools/testing/selftests/drivers/net/team/net_forwarding_lib.sh
 create mode 100644 tools/testing/selftests/net/forwarding/router_mpath_nh_lib.sh
 create mode 100644 tools/virtio/vhost_net_test.c

^ permalink raw reply	[relevance 1%]

* [GIT pull] irq/core for v6.9-rc1
@ 2024-03-10 23:38  2% Thomas Gleixner
  0 siblings, 0 replies; 200+ results
From: Thomas Gleixner @ 2024-03-10 23:38 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: linux-kernel, x86

Linus,

please pull the latest irq/core branch from:

   git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git irq-core-2024-03-10

up to:  f7f56d59a392: irqchip/ts4800: Convert to platform_driver::remove_new() callback

Updates for the interrupt subsystem:

 - Core:

   - Make affinity changes immediately effective for interrupt
     threads. This reduces the impact on isolated CPUs as it pulls over the
     thread right away instead of doing it after the next hardware
     interrupt arrived.

   - Cleanup and improvements for the interrupt chip simulator

   - Deduplication of the interrupt descriptor initialization code so the
     sparse and non-sparse mode share more code.

 - Drivers:

   - A set of conversions to platform_drivers::remove_new() which gets rid
     of the pointless return value.

   - A new driver for the Starfive JH8100 SoC

   - Support for Amlogic-T7 SoCs

   - Improvement for the interrupt handling and EOI management for the
     loongson interrupt controller.

   - The usual fixes and improvements all over the place.

Thanks,

	tglx

------------------>
Bartosz Golaszewski (4):
      bitmap: Define a cleanup function for bitmaps
      genirq/irq_sim: Remove unused field from struct irq_sim_irq_ctx
      genirq/irq_sim: Order headers alphabetically
      genirq/irq_sim: Shrink code by using <linux/cleanup.h> helpers

Bibo Mao (2):
      irqchip/loongson-eiointc: Skip handling if there is no pending interrupt
      irqchip/loongson-eiointc: Remove explicit interrupt affinity restore on resume

Changhuang Liang (2):
      dt-bindings: interrupt-controller: Add starfive,jh8100-intc
      irqchip: Add StarFive external interrupt controller

Christophe JAILLET (1):
      irqchip/gic-v3-its: Remove usage of the deprecated ida_simple_xx() API

Crystal Wood (1):
      genirq: Wake interrupt threads immediately when changing affinity

Dawei Li (4):
      irqchip/gic-v3: Use readl_relaxed_poll_timeout_atomic()
      irqchip/gic(v3): Replace gic_irq() with irqd_to_hwirq()
      genirq: Remove unneeded forward declaration
      genirq: Deduplicate interrupt descriptor initialization

Erick Archer (2):
      irqchip/bcm-6345-l1: Prefer struct_size)_ over open coded arithmetic
      irqchip/irq-bcm7038-l1: Prefer struct_size over open coded arithmetic

Huqiang Qin (3):
      dt-bindings: interrupt-controller: Add support for Amlogic-T7 SoCs
      irqchip/meson-gpio: Add support for Amlogic-T7 SoCs
      arm64: dts: Add gpio_intc node for Amlogic-T7 SoCs

Randy Dunlap (1):
      irqchip/vic: Fix a kernel-doc warning

Uwe Kleine-König (13):
      irqchip/imgpdc: Convert to platform_driver::remove_new() callback
      irqchip/imx-intmux: Convert to platform_driver::remove_new() callback
      irqchip/imx-irqsteer: Convert to platform_driver::remove_new() callback
      irqchip/keystone: Convert to platform_driver::remove_new() callback
      irqchip/ls-scfg-msi: Convert to platform_driver::remove_new() callback
      irqchip/madera: Convert to platform_driver::remove_new() callback
      irqchip/mvebu-pic: Convert to platform_driver::remove_new() callback
      irqchip/pruss-intc: Convert to platform_driver::remove_new() callback
      irqchip/renesas-intc-irqpin: Convert to platform_driver::remove_new() callback
      irqchip/renesas-irqc: Convert to platform_driver::remove_new() callback
      irqchip/renesas-rza1: Convert to platform_driver::remove_new() callback
      irqchip/stm32-exti: Convert to platform_driver::remove_new() callback
      irqchip/ts4800: Convert to platform_driver::remove_new() callback


 .../amlogic,meson-gpio-intc.yaml                   |   1 +
 .../interrupt-controller/starfive,jh8100-intc.yaml |  61 ++++++
 MAINTAINERS                                        |   6 +
 arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi        |  10 +
 drivers/irqchip/Kconfig                            |  11 ++
 drivers/irqchip/Makefile                           |   1 +
 drivers/irqchip/irq-bcm6345-l1.c                   |   2 +-
 drivers/irqchip/irq-bcm7038-l1.c                   |   2 +-
 drivers/irqchip/irq-gic-v3-its.c                   |   4 +-
 drivers/irqchip/irq-gic-v3.c                       |  51 ++---
 drivers/irqchip/irq-gic.c                          |  27 ++-
 drivers/irqchip/irq-imgpdc.c                       |   7 +-
 drivers/irqchip/irq-imx-intmux.c                   |  14 +-
 drivers/irqchip/irq-imx-irqsteer.c                 |  14 +-
 drivers/irqchip/irq-keystone.c                     |   5 +-
 drivers/irqchip/irq-loongson-eiointc.c             |  22 +--
 drivers/irqchip/irq-ls-scfg-msi.c                  |  12 +-
 drivers/irqchip/irq-madera.c                       |   8 +-
 drivers/irqchip/irq-meson-gpio.c                   |   5 +
 drivers/irqchip/irq-mvebu-pic.c                    |  12 +-
 drivers/irqchip/irq-pruss-intc.c                   |  14 +-
 drivers/irqchip/irq-renesas-intc-irqpin.c          |  11 +-
 drivers/irqchip/irq-renesas-irqc.c                 |   9 +-
 drivers/irqchip/irq-renesas-rza1.c                 |   7 +-
 drivers/irqchip/irq-starfive-jh8100-intc.c         | 207 +++++++++++++++++++++
 drivers/irqchip/irq-stm32-exti.c                   |   9 +-
 drivers/irqchip/irq-ts4800.c                       |  12 +-
 drivers/irqchip/irq-vic.c                          |   3 +-
 include/linux/bitmap.h                             |   3 +
 include/linux/irq.h                                |   2 +-
 include/linux/irqhandler.h                         |   2 +-
 kernel/irq/irq_sim.c                               |  28 ++-
 kernel/irq/irqdesc.c                               | 112 ++++++-----
 kernel/irq/manage.c                                | 109 +++++------
 34 files changed, 537 insertions(+), 266 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/interrupt-controller/starfive,jh8100-intc.yaml
 create mode 100644 drivers/irqchip/irq-starfive-jh8100-intc.c

diff --git a/Documentation/devicetree/bindings/interrupt-controller/amlogic,meson-gpio-intc.yaml b/Documentation/devicetree/bindings/interrupt-controller/amlogic,meson-gpio-intc.yaml
index 3d06db98e978..a93744763787 100644
--- a/Documentation/devicetree/bindings/interrupt-controller/amlogic,meson-gpio-intc.yaml
+++ b/Documentation/devicetree/bindings/interrupt-controller/amlogic,meson-gpio-intc.yaml
@@ -36,6 +36,7 @@ properties:
               - amlogic,meson-a1-gpio-intc
               - amlogic,meson-s4-gpio-intc
               - amlogic,c3-gpio-intc
+              - amlogic,t7-gpio-intc
           - const: amlogic,meson-gpio-intc
 
   reg:
diff --git a/Documentation/devicetree/bindings/interrupt-controller/starfive,jh8100-intc.yaml b/Documentation/devicetree/bindings/interrupt-controller/starfive,jh8100-intc.yaml
new file mode 100644
index 000000000000..ada5788602d6
--- /dev/null
+++ b/Documentation/devicetree/bindings/interrupt-controller/starfive,jh8100-intc.yaml
@@ -0,0 +1,61 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/interrupt-controller/starfive,jh8100-intc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: StarFive External Interrupt Controller
+
+description:
+  StarFive SoC JH8100 contain a external interrupt controller. It can be used
+  to handle high-level input interrupt signals. It also send the output
+  interrupt signal to RISC-V PLIC.
+
+maintainers:
+  - Changhuang Liang <changhuang.liang@starfivetech.com>
+
+properties:
+  compatible:
+    const: starfive,jh8100-intc
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    description: APB clock for the interrupt controller
+    maxItems: 1
+
+  resets:
+    description: APB reset for the interrupt controller
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  interrupt-controller: true
+
+  "#interrupt-cells":
+    const: 1
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - resets
+  - interrupts
+  - interrupt-controller
+  - "#interrupt-cells"
+
+additionalProperties: false
+
+examples:
+  - |
+    interrupt-controller@12260000 {
+      compatible = "starfive,jh8100-intc";
+      reg = <0x12260000 0x10000>;
+      clocks = <&syscrg_ne 76>;
+      resets = <&syscrg_ne 13>;
+      interrupts = <45>;
+      interrupt-controller;
+      #interrupt-cells = <1>;
+    };
diff --git a/MAINTAINERS b/MAINTAINERS
index 8d1052fa6a69..ef678f04c830 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -20956,6 +20956,12 @@ F:	Documentation/devicetree/bindings/phy/starfive,jh7110-usb-phy.yaml
 F:	drivers/phy/starfive/phy-jh7110-pcie.c
 F:	drivers/phy/starfive/phy-jh7110-usb.c
 
+STARFIVE JH8100 EXTERNAL INTERRUPT CONTROLLER DRIVER
+M:	Changhuang Liang <changhuang.liang@starfivetech.com>
+S:	Supported
+F:	Documentation/devicetree/bindings/interrupt-controller/starfive,jh8100-intc.yaml
+F:	drivers/irqchip/irq-starfive-jh8100-intc.c
+
 STATIC BRANCH/CALL
 M:	Peter Zijlstra <peterz@infradead.org>
 M:	Josh Poimboeuf <jpoimboe@kernel.org>
diff --git a/arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi b/arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi
index a03c7667d2b6..2bfe2c431611 100644
--- a/arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi
+++ b/arch/arm64/boot/dts/amlogic/amlogic-t7.dtsi
@@ -171,6 +171,16 @@ gpio: bank@4000 {
 				};
 			};
 
+			gpio_intc: interrupt-controller@4080 {
+				compatible = "amlogic,t7-gpio-intc",
+					     "amlogic,meson-gpio-intc";
+				reg = <0x0 0x4080 0x0 0x20>;
+				interrupt-controller;
+				#interrupt-cells = <2>;
+				amlogic,channel-interrupts =
+					<10 11 12 13 14 15 16 17 18 19 20 21>;
+			};
+
 			uart_a: serial@78000 {
 				compatible = "amlogic,t7-uart", "amlogic,meson-s4-uart";
 				reg = <0x0 0x78000 0x0 0x18>;
diff --git a/drivers/irqchip/Kconfig b/drivers/irqchip/Kconfig
index f7149d0f3d45..72c07a12f5e1 100644
--- a/drivers/irqchip/Kconfig
+++ b/drivers/irqchip/Kconfig
@@ -546,6 +546,17 @@ config SIFIVE_PLIC
 	select IRQ_DOMAIN_HIERARCHY
 	select GENERIC_IRQ_EFFECTIVE_AFF_MASK if SMP
 
+config STARFIVE_JH8100_INTC
+	bool "StarFive JH8100 External Interrupt Controller"
+	depends on ARCH_STARFIVE || COMPILE_TEST
+	default ARCH_STARFIVE
+	select IRQ_DOMAIN_HIERARCHY
+	help
+	  This enables support for the INTC chip found in StarFive JH8100
+	  SoC.
+
+	  If you don't know what to do here, say Y.
+
 config EXYNOS_IRQ_COMBINER
 	bool "Samsung Exynos IRQ combiner support" if COMPILE_TEST
 	depends on (ARCH_EXYNOS && ARM) || COMPILE_TEST
diff --git a/drivers/irqchip/Makefile b/drivers/irqchip/Makefile
index ffd945fe71aa..ec4a18380998 100644
--- a/drivers/irqchip/Makefile
+++ b/drivers/irqchip/Makefile
@@ -96,6 +96,7 @@ obj-$(CONFIG_CSKY_MPINTC)		+= irq-csky-mpintc.o
 obj-$(CONFIG_CSKY_APB_INTC)		+= irq-csky-apb-intc.o
 obj-$(CONFIG_RISCV_INTC)		+= irq-riscv-intc.o
 obj-$(CONFIG_SIFIVE_PLIC)		+= irq-sifive-plic.o
+obj-$(CONFIG_STARFIVE_JH8100_INTC)	+= irq-starfive-jh8100-intc.o
 obj-$(CONFIG_IMX_IRQSTEER)		+= irq-imx-irqsteer.o
 obj-$(CONFIG_IMX_INTMUX)		+= irq-imx-intmux.o
 obj-$(CONFIG_IMX_MU_MSI)		+= irq-imx-mu-msi.o
diff --git a/drivers/irqchip/irq-bcm6345-l1.c b/drivers/irqchip/irq-bcm6345-l1.c
index 9745a119d0e6..eb02d203c963 100644
--- a/drivers/irqchip/irq-bcm6345-l1.c
+++ b/drivers/irqchip/irq-bcm6345-l1.c
@@ -242,7 +242,7 @@ static int __init bcm6345_l1_init_one(struct device_node *dn,
 	else if (intc->n_words != n_words)
 		return -EINVAL;
 
-	cpu = intc->cpus[idx] = kzalloc(sizeof(*cpu) + n_words * sizeof(u32),
+	cpu = intc->cpus[idx] = kzalloc(struct_size(cpu, enable_cache, n_words),
 					GFP_KERNEL);
 	if (!cpu)
 		return -ENOMEM;
diff --git a/drivers/irqchip/irq-bcm7038-l1.c b/drivers/irqchip/irq-bcm7038-l1.c
index 24ca1d656adc..36e71af054e9 100644
--- a/drivers/irqchip/irq-bcm7038-l1.c
+++ b/drivers/irqchip/irq-bcm7038-l1.c
@@ -249,7 +249,7 @@ static int __init bcm7038_l1_init_one(struct device_node *dn,
 		return -EINVAL;
 	}
 
-	cpu = intc->cpus[idx] = kzalloc(sizeof(*cpu) + n_words * sizeof(u32),
+	cpu = intc->cpus[idx] = kzalloc(struct_size(cpu, mask_cache, n_words),
 					GFP_KERNEL);
 	if (!cpu)
 		return -ENOMEM;
diff --git a/drivers/irqchip/irq-gic-v3-its.c b/drivers/irqchip/irq-gic-v3-its.c
index d097001c1e3e..cd950f435cf0 100644
--- a/drivers/irqchip/irq-gic-v3-its.c
+++ b/drivers/irqchip/irq-gic-v3-its.c
@@ -4419,12 +4419,12 @@ static const struct irq_domain_ops its_sgi_domain_ops = {
 
 static int its_vpe_id_alloc(void)
 {
-	return ida_simple_get(&its_vpeid_ida, 0, ITS_MAX_VPEID, GFP_KERNEL);
+	return ida_alloc_max(&its_vpeid_ida, ITS_MAX_VPEID - 1, GFP_KERNEL);
 }
 
 static void its_vpe_id_free(u16 id)
 {
-	ida_simple_remove(&its_vpeid_ida, id);
+	ida_free(&its_vpeid_ida, id);
 }
 
 static int its_vpe_init(struct its_vpe *vpe)
diff --git a/drivers/irqchip/irq-gic-v3.c b/drivers/irqchip/irq-gic-v3.c
index 98b0329b7154..20a75f0353cd 100644
--- a/drivers/irqchip/irq-gic-v3.c
+++ b/drivers/irqchip/irq-gic-v3.c
@@ -19,6 +19,7 @@
 #include <linux/percpu.h>
 #include <linux/refcount.h>
 #include <linux/slab.h>
+#include <linux/iopoll.h>
 
 #include <linux/irqchip.h>
 #include <linux/irqchip/arm-gic-common.h>
@@ -180,11 +181,6 @@ static enum gic_intid_range get_intid_range(struct irq_data *d)
 	return __get_intid_range(d->hwirq);
 }
 
-static inline unsigned int gic_irq(struct irq_data *d)
-{
-	return d->hwirq;
-}
-
 static inline bool gic_irq_in_rdist(struct irq_data *d)
 {
 	switch (get_intid_range(d)) {
@@ -251,17 +247,13 @@ static inline void __iomem *gic_dist_base(struct irq_data *d)
 
 static void gic_do_wait_for_rwp(void __iomem *base, u32 bit)
 {
-	u32 count = 1000000;	/* 1s! */
+	u32 val;
+	int ret;
 
-	while (readl_relaxed(base + GICD_CTLR) & bit) {
-		count--;
-		if (!count) {
-			pr_err_ratelimited("RWP timeout, gone fishing\n");
-			return;
-		}
-		cpu_relax();
-		udelay(1);
-	}
+	ret = readl_relaxed_poll_timeout_atomic(base + GICD_CTLR, val, !(val & bit),
+						1, USEC_PER_SEC);
+	if (ret == -ETIMEDOUT)
+		pr_err_ratelimited("RWP timeout, gone fishing\n");
 }
 
 /* Wait for completion of a distributor change */
@@ -279,8 +271,8 @@ static void gic_redist_wait_for_rwp(void)
 static void gic_enable_redist(bool enable)
 {
 	void __iomem *rbase;
-	u32 count = 1000000;	/* 1s! */
 	u32 val;
+	int ret;
 
 	if (gic_data.flags & FLAGS_WORKAROUND_GICR_WAKER_MSM8996)
 		return;
@@ -301,16 +293,13 @@ static void gic_enable_redist(bool enable)
 			return;	/* No PM support in this redistributor */
 	}
 
-	while (--count) {
-		val = readl_relaxed(rbase + GICR_WAKER);
-		if (enable ^ (bool)(val & GICR_WAKER_ChildrenAsleep))
-			break;
-		cpu_relax();
-		udelay(1);
-	}
-	if (!count)
+	ret = readl_relaxed_poll_timeout_atomic(rbase + GICR_WAKER, val,
+						enable ^ (bool)(val & GICR_WAKER_ChildrenAsleep),
+						1, USEC_PER_SEC);
+	if (ret == -ETIMEDOUT) {
 		pr_err_ratelimited("redistributor failed to %s...\n",
 				   enable ? "wakeup" : "sleep");
+	}
 }
 
 /*
@@ -548,7 +537,7 @@ static int gic_irq_nmi_setup(struct irq_data *d)
 	 * A secondary irq_chip should be in charge of LPI request,
 	 * it should not be possible to get there
 	 */
-	if (WARN_ON(gic_irq(d) >= 8192))
+	if (WARN_ON(irqd_to_hwirq(d) >= 8192))
 		return -EINVAL;
 
 	/* desc lock should already be held */
@@ -588,7 +577,7 @@ static void gic_irq_nmi_teardown(struct irq_data *d)
 	 * A secondary irq_chip should be in charge of LPI request,
 	 * it should not be possible to get there
 	 */
-	if (WARN_ON(gic_irq(d) >= 8192))
+	if (WARN_ON(irqd_to_hwirq(d) >= 8192))
 		return;
 
 	/* desc lock should already be held */
@@ -626,7 +615,7 @@ static bool gic_arm64_erratum_2941627_needed(struct irq_data *d)
 
 static void gic_eoi_irq(struct irq_data *d)
 {
-	write_gicreg(gic_irq(d), ICC_EOIR1_EL1);
+	write_gicreg(irqd_to_hwirq(d), ICC_EOIR1_EL1);
 	isb();
 
 	if (gic_arm64_erratum_2941627_needed(d)) {
@@ -646,19 +635,19 @@ static void gic_eoimode1_eoi_irq(struct irq_data *d)
 	 * No need to deactivate an LPI, or an interrupt that
 	 * is is getting forwarded to a vcpu.
 	 */
-	if (gic_irq(d) >= 8192 || irqd_is_forwarded_to_vcpu(d))
+	if (irqd_to_hwirq(d) >= 8192 || irqd_is_forwarded_to_vcpu(d))
 		return;
 
 	if (!gic_arm64_erratum_2941627_needed(d))
-		gic_write_dir(gic_irq(d));
+		gic_write_dir(irqd_to_hwirq(d));
 	else
 		gic_poke_irq(d, GICD_ICACTIVER);
 }
 
 static int gic_set_type(struct irq_data *d, unsigned int type)
 {
+	irq_hw_number_t irq = irqd_to_hwirq(d);
 	enum gic_intid_range range;
-	unsigned int irq = gic_irq(d);
 	void __iomem *base;
 	u32 offset, index;
 	int ret;
@@ -684,7 +673,7 @@ static int gic_set_type(struct irq_data *d, unsigned int type)
 	ret = gic_configure_irq(index, type, base + offset, NULL);
 	if (ret && (range == PPI_RANGE || range == EPPI_RANGE)) {
 		/* Misconfigured PPIs are usually not fatal */
-		pr_warn("GIC: PPI INTID%d is secure or misconfigured\n", irq);
+		pr_warn("GIC: PPI INTID%ld is secure or misconfigured\n", irq);
 		ret = 0;
 	}
 
diff --git a/drivers/irqchip/irq-gic.c b/drivers/irqchip/irq-gic.c
index 412196a7dad5..98aa383e39db 100644
--- a/drivers/irqchip/irq-gic.c
+++ b/drivers/irqchip/irq-gic.c
@@ -162,11 +162,6 @@ static inline void __iomem *gic_cpu_base(struct irq_data *d)
 	return gic_data_cpu_base(gic_data);
 }
 
-static inline unsigned int gic_irq(struct irq_data *d)
-{
-	return d->hwirq;
-}
-
 static inline bool cascading_gic_irq(struct irq_data *d)
 {
 	void *data = irq_data_get_irq_handler_data(d);
@@ -183,14 +178,16 @@ static inline bool cascading_gic_irq(struct irq_data *d)
  */
 static void gic_poke_irq(struct irq_data *d, u32 offset)
 {
-	u32 mask = 1 << (gic_irq(d) % 32);
-	writel_relaxed(mask, gic_dist_base(d) + offset + (gic_irq(d) / 32) * 4);
+	u32 mask = 1 << (irqd_to_hwirq(d) % 32);
+
+	writel_relaxed(mask, gic_dist_base(d) + offset + (irqd_to_hwirq(d) / 32) * 4);
 }
 
 static int gic_peek_irq(struct irq_data *d, u32 offset)
 {
-	u32 mask = 1 << (gic_irq(d) % 32);
-	return !!(readl_relaxed(gic_dist_base(d) + offset + (gic_irq(d) / 32) * 4) & mask);
+	u32 mask = 1 << (irqd_to_hwirq(d) % 32);
+
+	return !!(readl_relaxed(gic_dist_base(d) + offset + (irqd_to_hwirq(d) / 32) * 4) & mask);
 }
 
 static void gic_mask_irq(struct irq_data *d)
@@ -220,7 +217,7 @@ static void gic_unmask_irq(struct irq_data *d)
 
 static void gic_eoi_irq(struct irq_data *d)
 {
-	u32 hwirq = gic_irq(d);
+	irq_hw_number_t hwirq = irqd_to_hwirq(d);
 
 	if (hwirq < 16)
 		hwirq = this_cpu_read(sgi_intid);
@@ -230,7 +227,7 @@ static void gic_eoi_irq(struct irq_data *d)
 
 static void gic_eoimode1_eoi_irq(struct irq_data *d)
 {
-	u32 hwirq = gic_irq(d);
+	irq_hw_number_t hwirq = irqd_to_hwirq(d);
 
 	/* Do not deactivate an IRQ forwarded to a vcpu. */
 	if (irqd_is_forwarded_to_vcpu(d))
@@ -293,8 +290,8 @@ static int gic_irq_get_irqchip_state(struct irq_data *d,
 
 static int gic_set_type(struct irq_data *d, unsigned int type)
 {
+	irq_hw_number_t gicirq = irqd_to_hwirq(d);
 	void __iomem *base = gic_dist_base(d);
-	unsigned int gicirq = gic_irq(d);
 	int ret;
 
 	/* Interrupt configuration for SGIs can't be changed */
@@ -309,7 +306,7 @@ static int gic_set_type(struct irq_data *d, unsigned int type)
 	ret = gic_configure_irq(gicirq, type, base + GIC_DIST_CONFIG, NULL);
 	if (ret && gicirq < 32) {
 		/* Misconfigured PPIs are usually not fatal */
-		pr_warn("GIC: PPI%d is secure or misconfigured\n", gicirq - 16);
+		pr_warn("GIC: PPI%ld is secure or misconfigured\n", gicirq - 16);
 		ret = 0;
 	}
 
@@ -319,7 +316,7 @@ static int gic_set_type(struct irq_data *d, unsigned int type)
 static int gic_irq_set_vcpu_affinity(struct irq_data *d, void *vcpu)
 {
 	/* Only interrupts on the primary GIC can be forwarded to a vcpu. */
-	if (cascading_gic_irq(d) || gic_irq(d) < 16)
+	if (cascading_gic_irq(d) || irqd_to_hwirq(d) < 16)
 		return -EINVAL;
 
 	if (vcpu)
@@ -796,7 +793,7 @@ static void rmw_writeb(u8 bval, void __iomem *addr)
 static int gic_set_affinity(struct irq_data *d, const struct cpumask *mask_val,
 			    bool force)
 {
-	void __iomem *reg = gic_dist_base(d) + GIC_DIST_TARGET + gic_irq(d);
+	void __iomem *reg = gic_dist_base(d) + GIC_DIST_TARGET + irqd_to_hwirq(d);
 	struct gic_chip_data *gic = irq_data_get_irq_chip_data(d);
 	unsigned int cpu;
 
diff --git a/drivers/irqchip/irq-imgpdc.c b/drivers/irqchip/irq-imgpdc.c
index 5831be454673..b42ed68acfa6 100644
--- a/drivers/irqchip/irq-imgpdc.c
+++ b/drivers/irqchip/irq-imgpdc.c
@@ -461,12 +461,11 @@ static int pdc_intc_probe(struct platform_device *pdev)
 	return ret;
 }
 
-static int pdc_intc_remove(struct platform_device *pdev)
+static void pdc_intc_remove(struct platform_device *pdev)
 {
 	struct pdc_intc_priv *priv = platform_get_drvdata(pdev);
 
 	irq_domain_remove(priv->domain);
-	return 0;
 }
 
 static const struct of_device_id pdc_intc_match[] = {
@@ -479,8 +478,8 @@ static struct platform_driver pdc_intc_driver = {
 		.name		= "pdc-intc",
 		.of_match_table	= pdc_intc_match,
 	},
-	.probe = pdc_intc_probe,
-	.remove = pdc_intc_remove,
+	.probe		= pdc_intc_probe,
+	.remove_new	= pdc_intc_remove,
 };
 
 static int __init pdc_intc_init(void)
diff --git a/drivers/irqchip/irq-imx-intmux.c b/drivers/irqchip/irq-imx-intmux.c
index aa041e4dfee0..656eab21285c 100644
--- a/drivers/irqchip/irq-imx-intmux.c
+++ b/drivers/irqchip/irq-imx-intmux.c
@@ -282,7 +282,7 @@ static int imx_intmux_probe(struct platform_device *pdev)
 	return ret;
 }
 
-static int imx_intmux_remove(struct platform_device *pdev)
+static void imx_intmux_remove(struct platform_device *pdev)
 {
 	struct intmux_data *data = platform_get_drvdata(pdev);
 	int i;
@@ -298,8 +298,6 @@ static int imx_intmux_remove(struct platform_device *pdev)
 	}
 
 	pm_runtime_disable(&pdev->dev);
-
-	return 0;
 }
 
 #ifdef CONFIG_PM
@@ -354,11 +352,11 @@ static const struct of_device_id imx_intmux_id[] = {
 
 static struct platform_driver imx_intmux_driver = {
 	.driver = {
-		.name = "imx-intmux",
-		.of_match_table = imx_intmux_id,
-		.pm = &imx_intmux_pm_ops,
+		.name		= "imx-intmux",
+		.of_match_table	= imx_intmux_id,
+		.pm		= &imx_intmux_pm_ops,
 	},
-	.probe = imx_intmux_probe,
-	.remove = imx_intmux_remove,
+	.probe		= imx_intmux_probe,
+	.remove_new	= imx_intmux_remove,
 };
 builtin_platform_driver(imx_intmux_driver);
diff --git a/drivers/irqchip/irq-imx-irqsteer.c b/drivers/irqchip/irq-imx-irqsteer.c
index bd9543314539..20cf7a9e9ece 100644
--- a/drivers/irqchip/irq-imx-irqsteer.c
+++ b/drivers/irqchip/irq-imx-irqsteer.c
@@ -231,7 +231,7 @@ static int imx_irqsteer_probe(struct platform_device *pdev)
 	return ret;
 }
 
-static int imx_irqsteer_remove(struct platform_device *pdev)
+static void imx_irqsteer_remove(struct platform_device *pdev)
 {
 	struct irqsteer_data *irqsteer_data = platform_get_drvdata(pdev);
 	int i;
@@ -243,8 +243,6 @@ static int imx_irqsteer_remove(struct platform_device *pdev)
 	irq_domain_remove(irqsteer_data->domain);
 
 	clk_disable_unprepare(irqsteer_data->ipg_clk);
-
-	return 0;
 }
 
 #ifdef CONFIG_PM
@@ -307,11 +305,11 @@ static const struct of_device_id imx_irqsteer_dt_ids[] = {
 
 static struct platform_driver imx_irqsteer_driver = {
 	.driver = {
-		.name = "imx-irqsteer",
-		.of_match_table = imx_irqsteer_dt_ids,
-		.pm = &imx_irqsteer_pm_ops,
+		.name		= "imx-irqsteer",
+		.of_match_table	= imx_irqsteer_dt_ids,
+		.pm		= &imx_irqsteer_pm_ops,
 	},
-	.probe = imx_irqsteer_probe,
-	.remove = imx_irqsteer_remove,
+	.probe		= imx_irqsteer_probe,
+	.remove_new	= imx_irqsteer_remove,
 };
 builtin_platform_driver(imx_irqsteer_driver);
diff --git a/drivers/irqchip/irq-keystone.c b/drivers/irqchip/irq-keystone.c
index a36396db4b08..30f1979fa124 100644
--- a/drivers/irqchip/irq-keystone.c
+++ b/drivers/irqchip/irq-keystone.c
@@ -190,7 +190,7 @@ static int keystone_irq_probe(struct platform_device *pdev)
 	return 0;
 }
 
-static int keystone_irq_remove(struct platform_device *pdev)
+static void keystone_irq_remove(struct platform_device *pdev)
 {
 	struct keystone_irq_device *kirq = platform_get_drvdata(pdev);
 	int hwirq;
@@ -201,7 +201,6 @@ static int keystone_irq_remove(struct platform_device *pdev)
 		irq_dispose_mapping(irq_find_mapping(kirq->irqd, hwirq));
 
 	irq_domain_remove(kirq->irqd);
-	return 0;
 }
 
 static const struct of_device_id keystone_irq_dt_ids[] = {
@@ -212,7 +211,7 @@ MODULE_DEVICE_TABLE(of, keystone_irq_dt_ids);
 
 static struct platform_driver keystone_irq_device_driver = {
 	.probe		= keystone_irq_probe,
-	.remove		= keystone_irq_remove,
+	.remove_new	= keystone_irq_remove,
 	.driver		= {
 		.name	= "keystone_irq",
 		.of_match_table	= of_match_ptr(keystone_irq_dt_ids),
diff --git a/drivers/irqchip/irq-loongson-eiointc.c b/drivers/irqchip/irq-loongson-eiointc.c
index 1623cd779175..405f622a26ad 100644
--- a/drivers/irqchip/irq-loongson-eiointc.c
+++ b/drivers/irqchip/irq-loongson-eiointc.c
@@ -198,6 +198,12 @@ static void eiointc_irq_dispatch(struct irq_desc *desc)
 
 	for (i = 0; i < eiointc_priv[0]->vec_count / VEC_COUNT_PER_REG; i++) {
 		pending = iocsr_read64(EIOINTC_REG_ISR + (i << 3));
+
+		/* Skip handling if pending bitmap is zero */
+		if (!pending)
+			continue;
+
+		/* Clear the IRQs */
 		iocsr_write64(pending, EIOINTC_REG_ISR + (i << 3));
 		while (pending) {
 			int bit = __ffs(pending);
@@ -304,23 +310,7 @@ static int eiointc_suspend(void)
 
 static void eiointc_resume(void)
 {
-	int i, j;
-	struct irq_desc *desc;
-	struct irq_data *irq_data;
-
 	eiointc_router_init(0);
-
-	for (i = 0; i < nr_pics; i++) {
-		for (j = 0; j < eiointc_priv[0]->vec_count; j++) {
-			desc = irq_resolve_mapping(eiointc_priv[i]->eiointc_domain, j);
-			if (desc && desc->handle_irq && desc->handle_irq != handle_bad_irq) {
-				raw_spin_lock(&desc->lock);
-				irq_data = irq_domain_get_irq_data(eiointc_priv[i]->eiointc_domain, irq_desc_get_irq(desc));
-				eiointc_set_irq_affinity(irq_data, irq_data->common->affinity, 0);
-				raw_spin_unlock(&desc->lock);
-			}
-		}
-	}
 }
 
 static struct syscore_ops eiointc_syscore_ops = {
diff --git a/drivers/irqchip/irq-ls-scfg-msi.c b/drivers/irqchip/irq-ls-scfg-msi.c
index 15cf80b46322..1aef5c4d27c6 100644
--- a/drivers/irqchip/irq-ls-scfg-msi.c
+++ b/drivers/irqchip/irq-ls-scfg-msi.c
@@ -398,7 +398,7 @@ static int ls_scfg_msi_probe(struct platform_device *pdev)
 	return 0;
 }
 
-static int ls_scfg_msi_remove(struct platform_device *pdev)
+static void ls_scfg_msi_remove(struct platform_device *pdev)
 {
 	struct ls_scfg_msi *msi_data = platform_get_drvdata(pdev);
 	int i;
@@ -410,17 +410,15 @@ static int ls_scfg_msi_remove(struct platform_device *pdev)
 	irq_domain_remove(msi_data->parent);
 
 	platform_set_drvdata(pdev, NULL);
-
-	return 0;
 }
 
 static struct platform_driver ls_scfg_msi_driver = {
 	.driver = {
-		.name = "ls-scfg-msi",
-		.of_match_table = ls_scfg_msi_id,
+		.name		= "ls-scfg-msi",
+		.of_match_table	= ls_scfg_msi_id,
 	},
-	.probe = ls_scfg_msi_probe,
-	.remove = ls_scfg_msi_remove,
+	.probe		= ls_scfg_msi_probe,
+	.remove_new	= ls_scfg_msi_remove,
 };
 
 module_platform_driver(ls_scfg_msi_driver);
diff --git a/drivers/irqchip/irq-madera.c b/drivers/irqchip/irq-madera.c
index 3eb1f8cdf674..acceb6e7fa95 100644
--- a/drivers/irqchip/irq-madera.c
+++ b/drivers/irqchip/irq-madera.c
@@ -222,7 +222,7 @@ static int madera_irq_probe(struct platform_device *pdev)
 	return 0;
 }
 
-static int madera_irq_remove(struct platform_device *pdev)
+static void madera_irq_remove(struct platform_device *pdev)
 {
 	struct madera *madera = dev_get_drvdata(pdev->dev.parent);
 
@@ -232,13 +232,11 @@ static int madera_irq_remove(struct platform_device *pdev)
 	 */
 	madera->irq_dev = NULL;
 	regmap_del_irq_chip(madera->irq, madera->irq_data);
-
-	return 0;
 }
 
 static struct platform_driver madera_irq_driver = {
-	.probe	= &madera_irq_probe,
-	.remove = &madera_irq_remove,
+	.probe		= madera_irq_probe,
+	.remove_new	= madera_irq_remove,
 	.driver = {
 		.name	= "madera-irq",
 		.pm	= &madera_irq_pm_ops,
diff --git a/drivers/irqchip/irq-meson-gpio.c b/drivers/irqchip/irq-meson-gpio.c
index f88df39f4129..9a1791908598 100644
--- a/drivers/irqchip/irq-meson-gpio.c
+++ b/drivers/irqchip/irq-meson-gpio.c
@@ -154,6 +154,10 @@ static const struct meson_gpio_irq_params c3_params = {
 	INIT_MESON_S4_COMMON_DATA(55)
 };
 
+static const struct meson_gpio_irq_params t7_params = {
+	INIT_MESON_S4_COMMON_DATA(157)
+};
+
 static const struct of_device_id meson_irq_gpio_matches[] __maybe_unused = {
 	{ .compatible = "amlogic,meson8-gpio-intc", .data = &meson8_params },
 	{ .compatible = "amlogic,meson8b-gpio-intc", .data = &meson8b_params },
@@ -165,6 +169,7 @@ static const struct of_device_id meson_irq_gpio_matches[] __maybe_unused = {
 	{ .compatible = "amlogic,meson-a1-gpio-intc", .data = &a1_params },
 	{ .compatible = "amlogic,meson-s4-gpio-intc", .data = &s4_params },
 	{ .compatible = "amlogic,c3-gpio-intc", .data = &c3_params },
+	{ .compatible = "amlogic,t7-gpio-intc", .data = &t7_params },
 	{ }
 };
 
diff --git a/drivers/irqchip/irq-mvebu-pic.c b/drivers/irqchip/irq-mvebu-pic.c
index ef3d3646ccc2..d17d9c0e2880 100644
--- a/drivers/irqchip/irq-mvebu-pic.c
+++ b/drivers/irqchip/irq-mvebu-pic.c
@@ -167,14 +167,12 @@ static int mvebu_pic_probe(struct platform_device *pdev)
 	return 0;
 }
 
-static int mvebu_pic_remove(struct platform_device *pdev)
+static void mvebu_pic_remove(struct platform_device *pdev)
 {
 	struct mvebu_pic *pic = platform_get_drvdata(pdev);
 
 	on_each_cpu(mvebu_pic_disable_percpu_irq, pic, 1);
 	irq_domain_remove(pic->domain);
-
-	return 0;
 }
 
 static const struct of_device_id mvebu_pic_of_match[] = {
@@ -184,11 +182,11 @@ static const struct of_device_id mvebu_pic_of_match[] = {
 MODULE_DEVICE_TABLE(of, mvebu_pic_of_match);
 
 static struct platform_driver mvebu_pic_driver = {
-	.probe  = mvebu_pic_probe,
-	.remove = mvebu_pic_remove,
+	.probe		= mvebu_pic_probe,
+	.remove_new	= mvebu_pic_remove,
 	.driver = {
-		.name = "mvebu-pic",
-		.of_match_table = mvebu_pic_of_match,
+		.name		= "mvebu-pic",
+		.of_match_table	= mvebu_pic_of_match,
 	},
 };
 module_platform_driver(mvebu_pic_driver);
diff --git a/drivers/irqchip/irq-pruss-intc.c b/drivers/irqchip/irq-pruss-intc.c
index 0f64ecb9b1f4..060eb000e9d3 100644
--- a/drivers/irqchip/irq-pruss-intc.c
+++ b/drivers/irqchip/irq-pruss-intc.c
@@ -599,7 +599,7 @@ static int pruss_intc_probe(struct platform_device *pdev)
 	return ret;
 }
 
-static int pruss_intc_remove(struct platform_device *pdev)
+static void pruss_intc_remove(struct platform_device *pdev)
 {
 	struct pruss_intc *intc = platform_get_drvdata(pdev);
 	u8 max_system_events = intc->soc_config->num_system_events;
@@ -616,8 +616,6 @@ static int pruss_intc_remove(struct platform_device *pdev)
 		irq_dispose_mapping(irq_find_mapping(intc->domain, hwirq));
 
 	irq_domain_remove(intc->domain);
-
-	return 0;
 }
 
 static const struct pruss_intc_match_data pruss_intc_data = {
@@ -645,12 +643,12 @@ MODULE_DEVICE_TABLE(of, pruss_intc_of_match);
 
 static struct platform_driver pruss_intc_driver = {
 	.driver = {
-		.name = "pruss-intc",
-		.of_match_table = pruss_intc_of_match,
-		.suppress_bind_attrs = true,
+		.name			= "pruss-intc",
+		.of_match_table		= pruss_intc_of_match,
+		.suppress_bind_attrs	= true,
 	},
-	.probe  = pruss_intc_probe,
-	.remove = pruss_intc_remove,
+	.probe		= pruss_intc_probe,
+	.remove_new	= pruss_intc_remove,
 };
 module_platform_driver(pruss_intc_driver);
 
diff --git a/drivers/irqchip/irq-renesas-intc-irqpin.c b/drivers/irqchip/irq-renesas-intc-irqpin.c
index fa19585f3dee..9ad37237ba95 100644
--- a/drivers/irqchip/irq-renesas-intc-irqpin.c
+++ b/drivers/irqchip/irq-renesas-intc-irqpin.c
@@ -561,14 +561,13 @@ static int intc_irqpin_probe(struct platform_device *pdev)
 	return ret;
 }
 
-static int intc_irqpin_remove(struct platform_device *pdev)
+static void intc_irqpin_remove(struct platform_device *pdev)
 {
 	struct intc_irqpin_priv *p = platform_get_drvdata(pdev);
 
 	irq_domain_remove(p->irq_domain);
 	pm_runtime_put(&pdev->dev);
 	pm_runtime_disable(&pdev->dev);
-	return 0;
 }
 
 static int __maybe_unused intc_irqpin_suspend(struct device *dev)
@@ -585,11 +584,11 @@ static SIMPLE_DEV_PM_OPS(intc_irqpin_pm_ops, intc_irqpin_suspend, NULL);
 
 static struct platform_driver intc_irqpin_device_driver = {
 	.probe		= intc_irqpin_probe,
-	.remove		= intc_irqpin_remove,
+	.remove_new	= intc_irqpin_remove,
 	.driver		= {
-		.name	= "renesas_intc_irqpin",
-		.of_match_table = intc_irqpin_dt_ids,
-		.pm	= &intc_irqpin_pm_ops,
+		.name		= "renesas_intc_irqpin",
+		.of_match_table	= intc_irqpin_dt_ids,
+		.pm		= &intc_irqpin_pm_ops,
 	}
 };
 
diff --git a/drivers/irqchip/irq-renesas-irqc.c b/drivers/irqchip/irq-renesas-irqc.c
index 49b446b396f9..76026e0b8e20 100644
--- a/drivers/irqchip/irq-renesas-irqc.c
+++ b/drivers/irqchip/irq-renesas-irqc.c
@@ -218,14 +218,13 @@ static int irqc_probe(struct platform_device *pdev)
 	return ret;
 }
 
-static int irqc_remove(struct platform_device *pdev)
+static void irqc_remove(struct platform_device *pdev)
 {
 	struct irqc_priv *p = platform_get_drvdata(pdev);
 
 	irq_domain_remove(p->irq_domain);
 	pm_runtime_put(&pdev->dev);
 	pm_runtime_disable(&pdev->dev);
-	return 0;
 }
 
 static int __maybe_unused irqc_suspend(struct device *dev)
@@ -248,11 +247,11 @@ MODULE_DEVICE_TABLE(of, irqc_dt_ids);
 
 static struct platform_driver irqc_device_driver = {
 	.probe		= irqc_probe,
-	.remove		= irqc_remove,
+	.remove_new	= irqc_remove,
 	.driver		= {
-		.name	= "renesas_irqc",
+		.name		= "renesas_irqc",
 		.of_match_table	= irqc_dt_ids,
-		.pm	= &irqc_pm_ops,
+		.pm		= &irqc_pm_ops,
 	}
 };
 
diff --git a/drivers/irqchip/irq-renesas-rza1.c b/drivers/irqchip/irq-renesas-rza1.c
index e4c99c2e0373..f05afe82db4d 100644
--- a/drivers/irqchip/irq-renesas-rza1.c
+++ b/drivers/irqchip/irq-renesas-rza1.c
@@ -244,12 +244,11 @@ static int rza1_irqc_probe(struct platform_device *pdev)
 	return ret;
 }
 
-static int rza1_irqc_remove(struct platform_device *pdev)
+static void rza1_irqc_remove(struct platform_device *pdev)
 {
 	struct rza1_irqc_priv *priv = platform_get_drvdata(pdev);
 
 	irq_domain_remove(priv->irq_domain);
-	return 0;
 }
 
 static const struct of_device_id rza1_irqc_dt_ids[] = {
@@ -260,9 +259,9 @@ MODULE_DEVICE_TABLE(of, rza1_irqc_dt_ids);
 
 static struct platform_driver rza1_irqc_device_driver = {
 	.probe		= rza1_irqc_probe,
-	.remove		= rza1_irqc_remove,
+	.remove_new	= rza1_irqc_remove,
 	.driver		= {
-		.name	= "renesas_rza1_irqc",
+		.name		= "renesas_rza1_irqc",
 		.of_match_table	= rza1_irqc_dt_ids,
 	}
 };
diff --git a/drivers/irqchip/irq-starfive-jh8100-intc.c b/drivers/irqchip/irq-starfive-jh8100-intc.c
new file mode 100644
index 000000000000..0f5837176e53
--- /dev/null
+++ b/drivers/irqchip/irq-starfive-jh8100-intc.c
@@ -0,0 +1,207 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * StarFive JH8100 External Interrupt Controller driver
+ *
+ * Copyright (C) 2023 StarFive Technology Co., Ltd.
+ *
+ * Author: Changhuang Liang <changhuang.liang@starfivetech.com>
+ */
+
+#define pr_fmt(fmt) "irq-starfive-jh8100: " fmt
+
+#include <linux/bitops.h>
+#include <linux/clk.h>
+#include <linux/irq.h>
+#include <linux/irqchip.h>
+#include <linux/irqchip/chained_irq.h>
+#include <linux/irqdomain.h>
+#include <linux/of_address.h>
+#include <linux/of_irq.h>
+#include <linux/reset.h>
+#include <linux/spinlock.h>
+
+#define STARFIVE_INTC_SRC0_CLEAR	0x10
+#define STARFIVE_INTC_SRC0_MASK		0x14
+#define STARFIVE_INTC_SRC0_INT		0x1c
+
+#define STARFIVE_INTC_SRC_IRQ_NUM	32
+
+struct starfive_irq_chip {
+	void __iomem		*base;
+	struct irq_domain	*domain;
+	raw_spinlock_t		lock;
+};
+
+static void starfive_intc_bit_set(struct starfive_irq_chip *irqc,
+				  u32 reg, u32 bit_mask)
+{
+	u32 value;
+
+	value = ioread32(irqc->base + reg);
+	value |= bit_mask;
+	iowrite32(value, irqc->base + reg);
+}
+
+static void starfive_intc_bit_clear(struct starfive_irq_chip *irqc,
+				    u32 reg, u32 bit_mask)
+{
+	u32 value;
+
+	value = ioread32(irqc->base + reg);
+	value &= ~bit_mask;
+	iowrite32(value, irqc->base + reg);
+}
+
+static void starfive_intc_unmask(struct irq_data *d)
+{
+	struct starfive_irq_chip *irqc = irq_data_get_irq_chip_data(d);
+
+	raw_spin_lock(&irqc->lock);
+	starfive_intc_bit_clear(irqc, STARFIVE_INTC_SRC0_MASK, BIT(d->hwirq));
+	raw_spin_unlock(&irqc->lock);
+}
+
+static void starfive_intc_mask(struct irq_data *d)
+{
+	struct starfive_irq_chip *irqc = irq_data_get_irq_chip_data(d);
+
+	raw_spin_lock(&irqc->lock);
+	starfive_intc_bit_set(irqc, STARFIVE_INTC_SRC0_MASK, BIT(d->hwirq));
+	raw_spin_unlock(&irqc->lock);
+}
+
+static struct irq_chip intc_dev = {
+	.name		= "StarFive JH8100 INTC",
+	.irq_unmask	= starfive_intc_unmask,
+	.irq_mask	= starfive_intc_mask,
+};
+
+static int starfive_intc_map(struct irq_domain *d, unsigned int irq,
+			     irq_hw_number_t hwirq)
+{
+	irq_domain_set_info(d, irq, hwirq, &intc_dev, d->host_data,
+			    handle_level_irq, NULL, NULL);
+
+	return 0;
+}
+
+static const struct irq_domain_ops starfive_intc_domain_ops = {
+	.xlate	= irq_domain_xlate_onecell,
+	.map	= starfive_intc_map,
+};
+
+static void starfive_intc_irq_handler(struct irq_desc *desc)
+{
+	struct starfive_irq_chip *irqc = irq_data_get_irq_handler_data(&desc->irq_data);
+	struct irq_chip *chip = irq_desc_get_chip(desc);
+	unsigned long value;
+	int hwirq;
+
+	chained_irq_enter(chip, desc);
+
+	value = ioread32(irqc->base + STARFIVE_INTC_SRC0_INT);
+	while (value) {
+		hwirq = ffs(value) - 1;
+
+		generic_handle_domain_irq(irqc->domain, hwirq);
+
+		starfive_intc_bit_set(irqc, STARFIVE_INTC_SRC0_CLEAR, BIT(hwirq));
+		starfive_intc_bit_clear(irqc, STARFIVE_INTC_SRC0_CLEAR, BIT(hwirq));
+
+		__clear_bit(hwirq, &value);
+	}
+
+	chained_irq_exit(chip, desc);
+}
+
+static int __init starfive_intc_init(struct device_node *intc,
+				     struct device_node *parent)
+{
+	struct starfive_irq_chip *irqc;
+	struct reset_control *rst;
+	struct clk *clk;
+	int parent_irq;
+	int ret;
+
+	irqc = kzalloc(sizeof(*irqc), GFP_KERNEL);
+	if (!irqc)
+		return -ENOMEM;
+
+	irqc->base = of_iomap(intc, 0);
+	if (!irqc->base) {
+		pr_err("Unable to map registers\n");
+		ret = -ENXIO;
+		goto err_free;
+	}
+
+	rst = of_reset_control_get_exclusive(intc, NULL);
+	if (IS_ERR(rst)) {
+		pr_err("Unable to get reset control %pe\n", rst);
+		ret = PTR_ERR(rst);
+		goto err_unmap;
+	}
+
+	clk = of_clk_get(intc, 0);
+	if (IS_ERR(clk)) {
+		pr_err("Unable to get clock %pe\n", clk);
+		ret = PTR_ERR(clk);
+		goto err_reset_put;
+	}
+
+	ret = reset_control_deassert(rst);
+	if (ret)
+		goto err_clk_put;
+
+	ret = clk_prepare_enable(clk);
+	if (ret)
+		goto err_reset_assert;
+
+	raw_spin_lock_init(&irqc->lock);
+
+	irqc->domain = irq_domain_add_linear(intc, STARFIVE_INTC_SRC_IRQ_NUM,
+					     &starfive_intc_domain_ops, irqc);
+	if (!irqc->domain) {
+		pr_err("Unable to create IRQ domain\n");
+		ret = -EINVAL;
+		goto err_clk_disable;
+	}
+
+	parent_irq = of_irq_get(intc, 0);
+	if (parent_irq < 0) {
+		pr_err("Failed to get main IRQ: %d\n", parent_irq);
+		ret = parent_irq;
+		goto err_remove_domain;
+	}
+
+	irq_set_chained_handler_and_data(parent_irq, starfive_intc_irq_handler,
+					 irqc);
+
+	pr_info("Interrupt controller register, nr_irqs %d\n",
+		STARFIVE_INTC_SRC_IRQ_NUM);
+
+	return 0;
+
+err_remove_domain:
+	irq_domain_remove(irqc->domain);
+err_clk_disable:
+	clk_disable_unprepare(clk);
+err_reset_assert:
+	reset_control_assert(rst);
+err_clk_put:
+	clk_put(clk);
+err_reset_put:
+	reset_control_put(rst);
+err_unmap:
+	iounmap(irqc->base);
+err_free:
+	kfree(irqc);
+	return ret;
+}
+
+IRQCHIP_PLATFORM_DRIVER_BEGIN(starfive_intc)
+IRQCHIP_MATCH("starfive,jh8100-intc", starfive_intc_init)
+IRQCHIP_PLATFORM_DRIVER_END(starfive_intc)
+
+MODULE_DESCRIPTION("StarFive JH8100 External Interrupt Controller");
+MODULE_LICENSE("GPL");
+MODULE_AUTHOR("Changhuang Liang <changhuang.liang@starfivetech.com>");
diff --git a/drivers/irqchip/irq-stm32-exti.c b/drivers/irqchip/irq-stm32-exti.c
index 971240e2e31b..26a5193d0ae4 100644
--- a/drivers/irqchip/irq-stm32-exti.c
+++ b/drivers/irqchip/irq-stm32-exti.c
@@ -898,10 +898,9 @@ static void stm32_exti_remove_irq(void *data)
 	irq_domain_remove(domain);
 }
 
-static int stm32_exti_remove(struct platform_device *pdev)
+static void stm32_exti_remove(struct platform_device *pdev)
 {
 	stm32_exti_h_syscore_deinit();
-	return 0;
 }
 
 static int stm32_exti_probe(struct platform_device *pdev)
@@ -991,10 +990,10 @@ MODULE_DEVICE_TABLE(of, stm32_exti_ids);
 
 static struct platform_driver stm32_exti_driver = {
 	.probe		= stm32_exti_probe,
-	.remove		= stm32_exti_remove,
+	.remove_new	= stm32_exti_remove,
 	.driver		= {
-		.name	= "stm32_exti",
-		.of_match_table = stm32_exti_ids,
+		.name		= "stm32_exti",
+		.of_match_table	= stm32_exti_ids,
 	},
 };
 
diff --git a/drivers/irqchip/irq-ts4800.c b/drivers/irqchip/irq-ts4800.c
index b2d61d4f6fe6..57f610dab6b8 100644
--- a/drivers/irqchip/irq-ts4800.c
+++ b/drivers/irqchip/irq-ts4800.c
@@ -139,13 +139,11 @@ static int ts4800_ic_probe(struct platform_device *pdev)
 	return 0;
 }
 
-static int ts4800_ic_remove(struct platform_device *pdev)
+static void ts4800_ic_remove(struct platform_device *pdev)
 {
 	struct ts4800_irq_data *data = platform_get_drvdata(pdev);
 
 	irq_domain_remove(data->domain);
-
-	return 0;
 }
 
 static const struct of_device_id ts4800_ic_of_match[] = {
@@ -155,11 +153,11 @@ static const struct of_device_id ts4800_ic_of_match[] = {
 MODULE_DEVICE_TABLE(of, ts4800_ic_of_match);
 
 static struct platform_driver ts4800_ic_driver = {
-	.probe  = ts4800_ic_probe,
-	.remove = ts4800_ic_remove,
+	.probe		= ts4800_ic_probe,
+	.remove_new	= ts4800_ic_remove,
 	.driver = {
-		.name = "ts4800-irqc",
-		.of_match_table = ts4800_ic_of_match,
+		.name		= "ts4800-irqc",
+		.of_match_table	= ts4800_ic_of_match,
 	},
 };
 module_platform_driver(ts4800_ic_driver);
diff --git a/drivers/irqchip/irq-vic.c b/drivers/irqchip/irq-vic.c
index 9e3d5561e04e..ea93e7236c4a 100644
--- a/drivers/irqchip/irq-vic.c
+++ b/drivers/irqchip/irq-vic.c
@@ -47,9 +47,8 @@
 
 /**
  * struct vic_device - VIC PM device
- * @parent_irq: The parent IRQ number of the VIC if cascaded, or 0.
- * @irq: The IRQ number for the base of the VIC.
  * @base: The register base for the VIC.
+ * @irq: The IRQ number for the base of the VIC.
  * @valid_sources: A bitmask of valid interrupts
  * @resume_sources: A bitmask of interrupts for resume.
  * @resume_irqs: The IRQs enabled for resume.
diff --git a/include/linux/bitmap.h b/include/linux/bitmap.h
index 99451431e4d6..df24c8fb1009 100644
--- a/include/linux/bitmap.h
+++ b/include/linux/bitmap.h
@@ -6,6 +6,7 @@
 
 #include <linux/align.h>
 #include <linux/bitops.h>
+#include <linux/cleanup.h>
 #include <linux/errno.h>
 #include <linux/find.h>
 #include <linux/limits.h>
@@ -127,6 +128,8 @@ unsigned long *bitmap_alloc_node(unsigned int nbits, gfp_t flags, int node);
 unsigned long *bitmap_zalloc_node(unsigned int nbits, gfp_t flags, int node);
 void bitmap_free(const unsigned long *bitmap);
 
+DEFINE_FREE(bitmap, unsigned long *, if (_T) bitmap_free(_T))
+
 /* Managed variants of the above. */
 unsigned long *devm_bitmap_alloc(struct device *dev,
 				 unsigned int nbits, gfp_t flags);
diff --git a/include/linux/irq.h b/include/linux/irq.h
index 90081afa10ce..97baa937ab5b 100644
--- a/include/linux/irq.h
+++ b/include/linux/irq.h
@@ -179,7 +179,7 @@ struct irq_common_data {
 struct irq_data {
 	u32			mask;
 	unsigned int		irq;
-	unsigned long		hwirq;
+	irq_hw_number_t		hwirq;
 	struct irq_common_data	*common;
 	struct irq_chip		*chip;
 	struct irq_domain	*domain;
diff --git a/include/linux/irqhandler.h b/include/linux/irqhandler.h
index c30f454a9518..72dd1eb3a0e7 100644
--- a/include/linux/irqhandler.h
+++ b/include/linux/irqhandler.h
@@ -8,7 +8,7 @@
  */
 
 struct irq_desc;
-struct irq_data;
+
 typedef	void (*irq_flow_handler_t)(struct irq_desc *desc);
 
 #endif
diff --git a/kernel/irq/irq_sim.c b/kernel/irq/irq_sim.c
index dd76323ea3fd..38d6ae651ac7 100644
--- a/kernel/irq/irq_sim.c
+++ b/kernel/irq/irq_sim.c
@@ -4,10 +4,11 @@
  * Copyright (C) 2020 Bartosz Golaszewski <bgolaszewski@baylibre.com>
  */
 
+#include <linux/cleanup.h>
+#include <linux/interrupt.h>
 #include <linux/irq.h>
 #include <linux/irq_sim.h>
 #include <linux/irq_work.h>
-#include <linux/interrupt.h>
 #include <linux/slab.h>
 
 struct irq_sim_work_ctx {
@@ -19,7 +20,6 @@ struct irq_sim_work_ctx {
 };
 
 struct irq_sim_irq_ctx {
-	int			irqnum;
 	bool			enabled;
 	struct irq_sim_work_ctx	*work_ctx;
 };
@@ -164,33 +164,27 @@ static const struct irq_domain_ops irq_sim_domain_ops = {
 struct irq_domain *irq_domain_create_sim(struct fwnode_handle *fwnode,
 					 unsigned int num_irqs)
 {
-	struct irq_sim_work_ctx *work_ctx;
+	struct irq_sim_work_ctx *work_ctx __free(kfree) =
+				kmalloc(sizeof(*work_ctx), GFP_KERNEL);
 
-	work_ctx = kmalloc(sizeof(*work_ctx), GFP_KERNEL);
 	if (!work_ctx)
-		goto err_out;
+		return ERR_PTR(-ENOMEM);
 
-	work_ctx->pending = bitmap_zalloc(num_irqs, GFP_KERNEL);
-	if (!work_ctx->pending)
-		goto err_free_work_ctx;
+	unsigned long *pending __free(bitmap) = bitmap_zalloc(num_irqs, GFP_KERNEL);
+	if (!pending)
+		return ERR_PTR(-ENOMEM);
 
 	work_ctx->domain = irq_domain_create_linear(fwnode, num_irqs,
 						    &irq_sim_domain_ops,
 						    work_ctx);
 	if (!work_ctx->domain)
-		goto err_free_bitmap;
+		return ERR_PTR(-ENOMEM);
 
 	work_ctx->irq_count = num_irqs;
 	work_ctx->work = IRQ_WORK_INIT_HARD(irq_sim_handle_irq);
+	work_ctx->pending = no_free_ptr(pending);
 
-	return work_ctx->domain;
-
-err_free_bitmap:
-	bitmap_free(work_ctx->pending);
-err_free_work_ctx:
-	kfree(work_ctx);
-err_out:
-	return ERR_PTR(-ENOMEM);
+	return no_free_ptr(work_ctx)->domain;
 }
 EXPORT_SYMBOL_GPL(irq_domain_create_sim);
 
diff --git a/kernel/irq/irqdesc.c b/kernel/irq/irqdesc.c
index 371eb1711d34..4c6b32318ce3 100644
--- a/kernel/irq/irqdesc.c
+++ b/kernel/irq/irqdesc.c
@@ -92,11 +92,23 @@ static void desc_smp_init(struct irq_desc *desc, int node,
 #endif
 }
 
+static void free_masks(struct irq_desc *desc)
+{
+#ifdef CONFIG_GENERIC_PENDING_IRQ
+	free_cpumask_var(desc->pending_mask);
+#endif
+	free_cpumask_var(desc->irq_common_data.affinity);
+#ifdef CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK
+	free_cpumask_var(desc->irq_common_data.effective_affinity);
+#endif
+}
+
 #else
 static inline int
 alloc_masks(struct irq_desc *desc, int node) { return 0; }
 static inline void
 desc_smp_init(struct irq_desc *desc, int node, const struct cpumask *affinity) { }
+static inline void free_masks(struct irq_desc *desc) { }
 #endif
 
 static void desc_set_defaults(unsigned int irq, struct irq_desc *desc, int node,
@@ -165,6 +177,39 @@ static void delete_irq_desc(unsigned int irq)
 	mas_erase(&mas);
 }
 
+#ifdef CONFIG_SPARSE_IRQ
+static const struct kobj_type irq_kobj_type;
+#endif
+
+static int init_desc(struct irq_desc *desc, int irq, int node,
+		     unsigned int flags,
+		     const struct cpumask *affinity,
+		     struct module *owner)
+{
+	desc->kstat_irqs = alloc_percpu(unsigned int);
+	if (!desc->kstat_irqs)
+		return -ENOMEM;
+
+	if (alloc_masks(desc, node)) {
+		free_percpu(desc->kstat_irqs);
+		return -ENOMEM;
+	}
+
+	raw_spin_lock_init(&desc->lock);
+	lockdep_set_class(&desc->lock, &irq_desc_lock_class);
+	mutex_init(&desc->request_mutex);
+	init_waitqueue_head(&desc->wait_for_threads);
+	desc_set_defaults(irq, desc, node, affinity, owner);
+	irqd_set(&desc->irq_data, flags);
+	irq_resend_init(desc);
+#ifdef CONFIG_SPARSE_IRQ
+	kobject_init(&desc->kobj, &irq_kobj_type);
+	init_rcu_head(&desc->rcu);
+#endif
+
+	return 0;
+}
+
 #ifdef CONFIG_SPARSE_IRQ
 
 static void irq_kobj_release(struct kobject *kobj);
@@ -384,21 +429,6 @@ struct irq_desc *irq_to_desc(unsigned int irq)
 EXPORT_SYMBOL_GPL(irq_to_desc);
 #endif
 
-#ifdef CONFIG_SMP
-static void free_masks(struct irq_desc *desc)
-{
-#ifdef CONFIG_GENERIC_PENDING_IRQ
-	free_cpumask_var(desc->pending_mask);
-#endif
-	free_cpumask_var(desc->irq_common_data.affinity);
-#ifdef CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK
-	free_cpumask_var(desc->irq_common_data.effective_affinity);
-#endif
-}
-#else
-static inline void free_masks(struct irq_desc *desc) { }
-#endif
-
 void irq_lock_sparse(void)
 {
 	mutex_lock(&sparse_irq_lock);
@@ -414,36 +444,19 @@ static struct irq_desc *alloc_desc(int irq, int node, unsigned int flags,
 				   struct module *owner)
 {
 	struct irq_desc *desc;
+	int ret;
 
 	desc = kzalloc_node(sizeof(*desc), GFP_KERNEL, node);
 	if (!desc)
 		return NULL;
-	/* allocate based on nr_cpu_ids */
-	desc->kstat_irqs = alloc_percpu(unsigned int);
-	if (!desc->kstat_irqs)
-		goto err_desc;
-
-	if (alloc_masks(desc, node))
-		goto err_kstat;
 
-	raw_spin_lock_init(&desc->lock);
-	lockdep_set_class(&desc->lock, &irq_desc_lock_class);
-	mutex_init(&desc->request_mutex);
-	init_rcu_head(&desc->rcu);
-	init_waitqueue_head(&desc->wait_for_threads);
-
-	desc_set_defaults(irq, desc, node, affinity, owner);
-	irqd_set(&desc->irq_data, flags);
-	kobject_init(&desc->kobj, &irq_kobj_type);
-	irq_resend_init(desc);
+	ret = init_desc(desc, irq, node, flags, affinity, owner);
+	if (unlikely(ret)) {
+		kfree(desc);
+		return NULL;
+	}
 
 	return desc;
-
-err_kstat:
-	free_percpu(desc->kstat_irqs);
-err_desc:
-	kfree(desc);
-	return NULL;
 }
 
 static void irq_kobj_release(struct kobject *kobj)
@@ -583,26 +596,29 @@ struct irq_desc irq_desc[NR_IRQS] __cacheline_aligned_in_smp = {
 int __init early_irq_init(void)
 {
 	int count, i, node = first_online_node;
-	struct irq_desc *desc;
+	int ret;
 
 	init_irq_default_affinity();
 
 	printk(KERN_INFO "NR_IRQS: %d\n", NR_IRQS);
 
-	desc = irq_desc;
 	count = ARRAY_SIZE(irq_desc);
 
 	for (i = 0; i < count; i++) {
-		desc[i].kstat_irqs = alloc_percpu(unsigned int);
-		alloc_masks(&desc[i], node);
-		raw_spin_lock_init(&desc[i].lock);
-		lockdep_set_class(&desc[i].lock, &irq_desc_lock_class);
-		mutex_init(&desc[i].request_mutex);
-		init_waitqueue_head(&desc[i].wait_for_threads);
-		desc_set_defaults(i, &desc[i], node, NULL, NULL);
-		irq_resend_init(&desc[i]);
+		ret = init_desc(irq_desc + i, i, node, 0, NULL, NULL);
+		if (unlikely(ret))
+			goto __free_desc_res;
 	}
+
 	return arch_early_irq_init();
+
+__free_desc_res:
+	while (--i >= 0) {
+		free_masks(irq_desc + i);
+		free_percpu(irq_desc[i].kstat_irqs);
+	}
+
+	return ret;
 }
 
 struct irq_desc *irq_to_desc(unsigned int irq)
diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c
index 1782f90cd8c6..ad3eaf2ab959 100644
--- a/kernel/irq/manage.c
+++ b/kernel/irq/manage.c
@@ -192,10 +192,14 @@ void irq_set_thread_affinity(struct irq_desc *desc)
 	struct irqaction *action;
 
 	for_each_action_of_desc(desc, action) {
-		if (action->thread)
+		if (action->thread) {
 			set_bit(IRQTF_AFFINITY, &action->thread_flags);
-		if (action->secondary && action->secondary->thread)
+			wake_up_process(action->thread);
+		}
+		if (action->secondary && action->secondary->thread) {
 			set_bit(IRQTF_AFFINITY, &action->secondary->thread_flags);
+			wake_up_process(action->secondary->thread);
+		}
 	}
 }
 
@@ -1049,10 +1053,57 @@ static irqreturn_t irq_forced_secondary_handler(int irq, void *dev_id)
 	return IRQ_NONE;
 }
 
-static int irq_wait_for_interrupt(struct irqaction *action)
+#ifdef CONFIG_SMP
+/*
+ * Check whether we need to change the affinity of the interrupt thread.
+ */
+static void irq_thread_check_affinity(struct irq_desc *desc, struct irqaction *action)
+{
+	cpumask_var_t mask;
+	bool valid = false;
+
+	if (!test_and_clear_bit(IRQTF_AFFINITY, &action->thread_flags))
+		return;
+
+	__set_current_state(TASK_RUNNING);
+
+	/*
+	 * In case we are out of memory we set IRQTF_AFFINITY again and
+	 * try again next time
+	 */
+	if (!alloc_cpumask_var(&mask, GFP_KERNEL)) {
+		set_bit(IRQTF_AFFINITY, &action->thread_flags);
+		return;
+	}
+
+	raw_spin_lock_irq(&desc->lock);
+	/*
+	 * This code is triggered unconditionally. Check the affinity
+	 * mask pointer. For CPU_MASK_OFFSTACK=n this is optimized out.
+	 */
+	if (cpumask_available(desc->irq_common_data.affinity)) {
+		const struct cpumask *m;
+
+		m = irq_data_get_effective_affinity_mask(&desc->irq_data);
+		cpumask_copy(mask, m);
+		valid = true;
+	}
+	raw_spin_unlock_irq(&desc->lock);
+
+	if (valid)
+		set_cpus_allowed_ptr(current, mask);
+	free_cpumask_var(mask);
+}
+#else
+static inline void irq_thread_check_affinity(struct irq_desc *desc, struct irqaction *action) { }
+#endif
+
+static int irq_wait_for_interrupt(struct irq_desc *desc,
+				  struct irqaction *action)
 {
 	for (;;) {
 		set_current_state(TASK_INTERRUPTIBLE);
+		irq_thread_check_affinity(desc, action);
 
 		if (kthread_should_stop()) {
 			/* may need to run one last time */
@@ -1129,52 +1180,6 @@ static void irq_finalize_oneshot(struct irq_desc *desc,
 	chip_bus_sync_unlock(desc);
 }
 
-#ifdef CONFIG_SMP
-/*
- * Check whether we need to change the affinity of the interrupt thread.
- */
-static void
-irq_thread_check_affinity(struct irq_desc *desc, struct irqaction *action)
-{
-	cpumask_var_t mask;
-	bool valid = true;
-
-	if (!test_and_clear_bit(IRQTF_AFFINITY, &action->thread_flags))
-		return;
-
-	/*
-	 * In case we are out of memory we set IRQTF_AFFINITY again and
-	 * try again next time
-	 */
-	if (!alloc_cpumask_var(&mask, GFP_KERNEL)) {
-		set_bit(IRQTF_AFFINITY, &action->thread_flags);
-		return;
-	}
-
-	raw_spin_lock_irq(&desc->lock);
-	/*
-	 * This code is triggered unconditionally. Check the affinity
-	 * mask pointer. For CPU_MASK_OFFSTACK=n this is optimized out.
-	 */
-	if (cpumask_available(desc->irq_common_data.affinity)) {
-		const struct cpumask *m;
-
-		m = irq_data_get_effective_affinity_mask(&desc->irq_data);
-		cpumask_copy(mask, m);
-	} else {
-		valid = false;
-	}
-	raw_spin_unlock_irq(&desc->lock);
-
-	if (valid)
-		set_cpus_allowed_ptr(current, mask);
-	free_cpumask_var(mask);
-}
-#else
-static inline void
-irq_thread_check_affinity(struct irq_desc *desc, struct irqaction *action) { }
-#endif
-
 /*
  * Interrupts which are not explicitly requested as threaded
  * interrupts rely on the implicit bh/preempt disable of the hard irq
@@ -1312,13 +1317,9 @@ static int irq_thread(void *data)
 	init_task_work(&on_exit_work, irq_thread_dtor);
 	task_work_add(current, &on_exit_work, TWA_NONE);
 
-	irq_thread_check_affinity(desc, action);
-
-	while (!irq_wait_for_interrupt(action)) {
+	while (!irq_wait_for_interrupt(desc, action)) {
 		irqreturn_t action_ret;
 
-		irq_thread_check_affinity(desc, action);
-
 		action_ret = handler_fn(desc, action);
 		if (action_ret == IRQ_WAKE_THREAD)
 			irq_wake_secondary(desc, action);


^ permalink raw reply related	[relevance 2%]

* Re: [PATCH v2] bcachefs: Prefer struct_size over open coded arithmetic
  2024-03-10 11:02 11% [PATCH v2] bcachefs: Prefer struct_size over open coded arithmetic Erick Archer
@ 2024-03-10 19:41  7% ` Kent Overstreet
  0 siblings, 0 replies; 200+ results
From: Kent Overstreet @ 2024-03-10 19:41 UTC (permalink / raw)
  To: Erick Archer
  Cc: Brian Foster, Gustavo A. R. Silva, Kees Cook, linux-bcachefs,
	linux-kernel, linux-hardening

On Sun, Mar 10, 2024 at 12:02:26PM +0100, Erick Archer wrote:
> This is an effort to get rid of all multiplications from allocation
> functions in order to prevent integer overflows [1][2].
> 
> As the "op" variable is a pointer to "struct promote_op" and this
> structure ends in a flexible array:
> 
> struct promote_op {
> 	[...]
> 	struct bio_vec bi_inline_vecs[];
> };
> 
> and the "t" variable is a pointer to "struct journal_seq_blacklist_table"
> and this structure also ends in a flexible array:
> 
> struct journal_seq_blacklist_table {
> 	[...]
> 	struct journal_seq_blacklist_table_entry {
> 		u64		start;
> 		u64		end;
> 		bool		dirty;
> 	}			entries[];
> };
> 
> the preferred way in the kernel is to use the struct_size() helper to
> do the arithmetic instead of the argument "size + size * count" in the
> kzalloc() functions.
> 
> This way, the code is more readable and safer.
> 
> Link: https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
> Link: https://github.com/KSPP/linux/issues/160 [2]
> Signed-off-by: Erick Archer <erick.archer@gmx.com>

applied

^ permalink raw reply	[relevance 7%]

* [PATCH v2] bcachefs: Prefer struct_size over open coded arithmetic
@ 2024-03-10 11:02 11% Erick Archer
  2024-03-10 19:41  7% ` Kent Overstreet
  0 siblings, 1 reply; 200+ results
From: Erick Archer @ 2024-03-10 11:02 UTC (permalink / raw)
  To: Kent Overstreet, Brian Foster, Gustavo A. R. Silva, Kees Cook
  Cc: Erick Archer, linux-bcachefs, linux-kernel, linux-hardening

This is an effort to get rid of all multiplications from allocation
functions in order to prevent integer overflows [1][2].

As the "op" variable is a pointer to "struct promote_op" and this
structure ends in a flexible array:

struct promote_op {
	[...]
	struct bio_vec bi_inline_vecs[];
};

and the "t" variable is a pointer to "struct journal_seq_blacklist_table"
and this structure also ends in a flexible array:

struct journal_seq_blacklist_table {
	[...]
	struct journal_seq_blacklist_table_entry {
		u64		start;
		u64		end;
		bool		dirty;
	}			entries[];
};

the preferred way in the kernel is to use the struct_size() helper to
do the arithmetic instead of the argument "size + size * count" in the
kzalloc() functions.

This way, the code is more readable and safer.

Link: https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
Link: https://github.com/KSPP/linux/issues/160 [2]
Signed-off-by: Erick Archer <erick.archer@gmx.com>
---
Changes in v2:
- Merge the two patches in one single patch (Kent Overstreet).

Previous versions:
v1 -> https://lore.kernel.org/linux-hardening/20240224145924.7468-1-erick.archer@gmx.com/
v1 -> https://lore.kernel.org/linux-hardening/20240224151658.8272-1-erick.archer@gmx.com/
---
 fs/bcachefs/io_read.c               | 2 +-
 fs/bcachefs/journal_seq_blacklist.c | 3 +--
 2 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/fs/bcachefs/io_read.c b/fs/bcachefs/io_read.c
index dce136cd2271..01beab55c6b3 100644
--- a/fs/bcachefs/io_read.c
+++ b/fs/bcachefs/io_read.c
@@ -174,7 +174,7 @@ static struct promote_op *__promote_alloc(struct btree_trans *trans,
 	if (!bch2_write_ref_tryget(c, BCH_WRITE_REF_promote))
 		return ERR_PTR(-BCH_ERR_nopromote_no_writes);

-	op = kzalloc(sizeof(*op) + sizeof(struct bio_vec) * pages, GFP_KERNEL);
+	op = kzalloc(struct_size(op, bi_inline_vecs, pages), GFP_KERNEL);
 	if (!op) {
 		ret = -BCH_ERR_nopromote_enomem;
 		goto err;
diff --git a/fs/bcachefs/journal_seq_blacklist.c b/fs/bcachefs/journal_seq_blacklist.c
index 024c9b1b323f..2c2490aa15fe 100644
--- a/fs/bcachefs/journal_seq_blacklist.c
+++ b/fs/bcachefs/journal_seq_blacklist.c
@@ -165,8 +165,7 @@ int bch2_blacklist_table_initialize(struct bch_fs *c)
 	if (!bl)
 		return 0;

-	t = kzalloc(sizeof(*t) + sizeof(t->entries[0]) * nr,
-		    GFP_KERNEL);
+	t = kzalloc(struct_size(t, entries, nr), GFP_KERNEL);
 	if (!t)
 		return -BCH_ERR_ENOMEM_blacklist_table_init;

--
2.25.1


^ permalink raw reply related	[relevance 11%]

* Re: [PATCH] net: wwan: t7xx: Prefer struct_size over open coded arithmetic
  2024-02-24 18:19 12% [PATCH] net: wwan: t7xx: " Erick Archer
  2024-02-24 21:39  7% ` Sergey Ryazanov
@ 2024-02-28  2:20 12% ` patchwork-bot+netdevbpf
  1 sibling, 0 replies; 200+ results
From: patchwork-bot+netdevbpf @ 2024-02-28  2:20 UTC (permalink / raw)
  To: Erick Archer
  Cc: chandrashekar.devegowda, chiranjeevi.rapolu, haijun.liu,
	m.chetan.kumar, ricardo.martinez, loic.poulain, ryazanov.s.a,
	johannes, davem, edumazet, kuba, pabeni, gustavoars, keescook,
	netdev, linux-kernel, linux-hardening

Hello:

This patch was applied to netdev/net-next.git (main)
by Jakub Kicinski <kuba@kernel.org>:

On Sat, 24 Feb 2024 19:19:32 +0100 you wrote:
> This is an effort to get rid of all multiplications from allocation
> functions in order to prevent integer overflows [1][2].
> 
> As the "port_prox" variable is a pointer to "struct port_proxy" and
> this structure ends in a flexible array:
> 
> struct port_proxy {
> 	[...]
> 	struct t7xx_port ports[];
> };
> 
> [...]

Here is the summary with links:
  - net: wwan: t7xx: Prefer struct_size over open coded arithmetic
    https://git.kernel.org/netdev/net-next/c/848e34ca2030

You are awesome, thank you!
-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html



^ permalink raw reply	[relevance 12%]

* [PATCH 2/8] iommu/vt-d: Use kcalloc() instead of kzalloc()
  @ 2024-02-27  2:14  5% ` Lu Baolu
  0 siblings, 0 replies; 200+ results
From: Lu Baolu @ 2024-02-27  2:14 UTC (permalink / raw)
  To: Joerg Roedel; +Cc: Tina Zhang, Erick Archer, Jingqi Liu, iommu, linux-kernel

From: Erick Archer <erick.archer@gmx.com>

This is an effort to get rid of all multiplications from allocation
functions in order to prevent integer overflows [1].

Here the multiplication is obviously safe because DMAR_LATENCY_NUM
is the number of latency types defined in the "latency_type" enum.

enum latency_type {
	DMAR_LATENCY_INV_IOTLB = 0,
	DMAR_LATENCY_INV_DEVTLB,
	DMAR_LATENCY_INV_IEC,
	DMAR_LATENCY_PRQ,
	DMAR_LATENCY_NUM
};

However, using kcalloc() is more appropriate [2] and improves
readability. This patch has no effect on runtime behavior.

Link: https://github.com/KSPP/linux/issues/162 [1]
Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [2]
Signed-off-by: Erick Archer <erick.archer@gmx.com>
Reviewed-by: Kees Cook <keescook@chromium.org>
Reviewed-by: Gustavo A. R. Silva <gustavoars@kernel.org>
Link: https://lore.kernel.org/r/20240211175143.9229-1-erick.archer@gmx.com
Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com>
---
 drivers/iommu/intel/perf.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/iommu/intel/perf.c b/drivers/iommu/intel/perf.c
index 94ee70ac38e3..adc4de6bbd88 100644
--- a/drivers/iommu/intel/perf.c
+++ b/drivers/iommu/intel/perf.c
@@ -33,7 +33,7 @@ int dmar_latency_enable(struct intel_iommu *iommu, enum latency_type type)
 
 	spin_lock_irqsave(&latency_lock, flags);
 	if (!iommu->perf_statistic) {
-		iommu->perf_statistic = kzalloc(sizeof(*lstat) * DMAR_LATENCY_NUM,
+		iommu->perf_statistic = kcalloc(DMAR_LATENCY_NUM, sizeof(*lstat),
 						GFP_ATOMIC);
 		if (!iommu->perf_statistic) {
 			ret = -ENOMEM;
-- 
2.34.1


^ permalink raw reply related	[relevance 5%]

* Re: [PATCH v2] mtd: rawnand: Prefer struct_size over open coded arithmetic
  2024-02-11  9:16 12% [PATCH v2] mtd: rawnand: Prefer struct_size over open coded arithmetic Erick Archer
                   ` (2 preceding siblings ...)
  2024-02-12 15:50  7% ` Matthias Brugger
@ 2024-02-26 10:44  7% ` Miquel Raynal
  3 siblings, 0 replies; 200+ results
From: Miquel Raynal @ 2024-02-26 10:44 UTC (permalink / raw)
  To: Erick Archer, Miquel Raynal, Richard Weinberger,
	Vignesh Raghavendra, Matthias Brugger,
	AngeloGioacchino Del Regno, Martin Blumenstingl, Heiko Stuebner,
	Philippe Mathieu-Daudé,
	Rob Herring, Li Zetao, Uwe Kleine-König,
	Gustavo A. R. Silva, Kees Cook
  Cc: linux-mtd, linux-kernel, linux-arm-kernel, linux-mediatek,
	linux-hardening

On Sun, 2024-02-11 at 09:16:33 UTC, Erick Archer wrote:
> This is an effort to get rid of all multiplications from allocation
> functions in order to prevent integer overflows [1].
> 
> As the "chip" variable is a pointer to "struct mtk_nfc_nand_chip" and
> this structure ends in a flexible array:
> 
> struct mtk_nfc_nand_chip {
> 	[...]
> 	u8 sels[] __counted_by(nsels);
> };
> 
> the preferred way in the kernel is to use the struct_size() helper to
> do the arithmetic instead of the argument "size + count * size" in the
> devm_kzalloc() function.
> 
> This way, the code is more readable and safer.
> 
> Link: https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
> Link: https://github.com/KSPP/linux/issues/160 [2]
> Reviewed-by: Gustavo A. R. Silva <gustavoars@kernel.org>
> Signed-off-by: Erick Archer <erick.archer@gmx.com>
> Acked-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
> Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
> Reviewed-by: Matthias Brugger <matthias.bgg@gmail.com>

Applied to https://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux.git nand/next, thanks.

Miquel

^ permalink raw reply	[relevance 7%]

* Re: [PATCH] iommu/vt-d: Use kcalloc() instead of kzalloc()
  2024-02-11 17:51  5% [PATCH] iommu/vt-d: Use kcalloc() instead of kzalloc() Erick Archer
  2024-02-12 18:31  0% ` Kees Cook
  2024-02-12 20:41  0% ` Gustavo A. R. Silva
@ 2024-02-26  6:09  0% ` Baolu Lu
  2 siblings, 0 replies; 200+ results
From: Baolu Lu @ 2024-02-26  6:09 UTC (permalink / raw)
  To: Erick Archer, David Woodhouse, Joerg Roedel, Will Deacon,
	Robin Murphy, Gustavo A. R. Silva, Kees Cook
  Cc: baolu.lu, iommu, linux-kernel, linux-hardening

On 2/12/24 1:51 AM, Erick Archer wrote:
> This is an effort to get rid of all multiplications from allocation
> functions in order to prevent integer overflows [1].
> 
> Here the multiplication is obviously safe because DMAR_LATENCY_NUM
> is the number of latency types defined in the "latency_type" enum.
> 
> enum latency_type {
> 	DMAR_LATENCY_INV_IOTLB = 0,
> 	DMAR_LATENCY_INV_DEVTLB,
> 	DMAR_LATENCY_INV_IEC,
> 	DMAR_LATENCY_PRQ,
> 	DMAR_LATENCY_NUM
> };
> 
> However, using kcalloc() is more appropriate [2] and improves
> readability. This patch has no effect on runtime behavior.
> 
> Link:https://github.com/KSPP/linux/issues/162  [1]
> Link:https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments  [2]
> Signed-off-by: Erick Archer<erick.archer@gmx.com>
> ---
>   drivers/iommu/intel/perf.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)

I have queued this patch for v6.9.

Best regards,
baolu

^ permalink raw reply	[relevance 0%]

* Re: [PATCH] bcachefs: Prefer struct_size over open coded arithmetic
  2024-02-24 15:16 12% Erick Archer
@ 2024-02-25  0:52  7% ` Kent Overstreet
  0 siblings, 0 replies; 200+ results
From: Kent Overstreet @ 2024-02-25  0:52 UTC (permalink / raw)
  To: Erick Archer
  Cc: Brian Foster, Gustavo A. R. Silva, Kees Cook, linux-bcachefs,
	linux-kernel, linux-hardening

On Sat, Feb 24, 2024 at 04:16:58PM +0100, Erick Archer wrote:
> This is an effort to get rid of all multiplications from allocation
> functions in order to prevent integer overflows [1][2].
> 
> As the "t" variable is a pointer to "struct journal_seq_blacklist_table"
> and this structure ends in a flexible array:

there's no reason to break these out into multiple patches, just send me
a single patch when you're done - thanks!

^ permalink raw reply	[relevance 7%]

* Re: [PATCH] net: wwan: t7xx: Prefer struct_size over open coded arithmetic
  2024-02-24 18:19 12% [PATCH] net: wwan: t7xx: " Erick Archer
@ 2024-02-24 21:39  7% ` Sergey Ryazanov
  2024-02-28  2:20 12% ` patchwork-bot+netdevbpf
  1 sibling, 0 replies; 200+ results
From: Sergey Ryazanov @ 2024-02-24 21:39 UTC (permalink / raw)
  To: Erick Archer, Chandrashekar Devegowda, Chiranjeevi Rapolu,
	Liu Haijun, M Chetan Kumar, Ricardo Martinez, Loic Poulain,
	Johannes Berg, David S. Miller, Eric Dumazet, Jakub Kicinski,
	Paolo Abeni, Gustavo A. R. Silva, Kees Cook
  Cc: netdev, linux-kernel, linux-hardening

On 24.02.2024 20:19, Erick Archer wrote:
> This is an effort to get rid of all multiplications from allocation
> functions in order to prevent integer overflows [1][2].
> 
> As the "port_prox" variable is a pointer to "struct port_proxy" and
> this structure ends in a flexible array:
> 
> struct port_proxy {
> 	[...]
> 	struct t7xx_port ports[];
> };
> 
> the preferred way in the kernel is to use the struct_size() helper to
> do the arithmetic instead of the argument "size + size * count" in the
> devm_kzalloc() function.
> 
> This way, the code is more readable and safer.
> 
> Link: https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
> Link: https://github.com/KSPP/linux/issues/160 [2]
> 
> Signed-off-by: Erick Archer <erick.archer@gmx.com>

Reviewed-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>

^ permalink raw reply	[relevance 7%]

* [PATCH] net: wwan: t7xx: Prefer struct_size over open coded arithmetic
@ 2024-02-24 18:19 12% Erick Archer
  2024-02-24 21:39  7% ` Sergey Ryazanov
  2024-02-28  2:20 12% ` patchwork-bot+netdevbpf
  0 siblings, 2 replies; 200+ results
From: Erick Archer @ 2024-02-24 18:19 UTC (permalink / raw)
  To: Chandrashekar Devegowda, Chiranjeevi Rapolu, Liu Haijun,
	M Chetan Kumar, Ricardo Martinez, Loic Poulain, Sergey Ryazanov,
	Johannes Berg, David S. Miller, Eric Dumazet, Jakub Kicinski,
	Paolo Abeni, Gustavo A. R. Silva, Kees Cook
  Cc: Erick Archer, netdev, linux-kernel, linux-hardening

This is an effort to get rid of all multiplications from allocation
functions in order to prevent integer overflows [1][2].

As the "port_prox" variable is a pointer to "struct port_proxy" and
this structure ends in a flexible array:

struct port_proxy {
	[...]
	struct t7xx_port ports[];
};

the preferred way in the kernel is to use the struct_size() helper to
do the arithmetic instead of the argument "size + size * count" in the
devm_kzalloc() function.

This way, the code is more readable and safer.

Link: https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
Link: https://github.com/KSPP/linux/issues/160 [2]

Signed-off-by: Erick Archer <erick.archer@gmx.com>
---
 drivers/net/wwan/t7xx/t7xx_port_proxy.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/net/wwan/t7xx/t7xx_port_proxy.c b/drivers/net/wwan/t7xx/t7xx_port_proxy.c
index 8f5e01705af2..7d6388bf1d7c 100644
--- a/drivers/net/wwan/t7xx/t7xx_port_proxy.c
+++ b/drivers/net/wwan/t7xx/t7xx_port_proxy.c
@@ -543,8 +543,10 @@ static int t7xx_proxy_alloc(struct t7xx_modem *md)
 	struct device *dev = &md->t7xx_dev->pdev->dev;
 	struct port_proxy *port_prox;

-	port_prox = devm_kzalloc(dev, sizeof(*port_prox) +
-				 sizeof(struct t7xx_port) * T7XX_MAX_POSSIBLE_PORTS_NUM,
+	port_prox = devm_kzalloc(dev,
+				 struct_size(port_prox,
+					     ports,
+					     T7XX_MAX_POSSIBLE_PORTS_NUM),
 				 GFP_KERNEL);
 	if (!port_prox)
 		return -ENOMEM;
--
2.25.1


^ permalink raw reply related	[relevance 12%]

* [PATCH] bcachefs: Prefer struct_size over open coded arithmetic
@ 2024-02-24 15:16 12% Erick Archer
  2024-02-25  0:52  7% ` Kent Overstreet
  0 siblings, 1 reply; 200+ results
From: Erick Archer @ 2024-02-24 15:16 UTC (permalink / raw)
  To: Kent Overstreet, Brian Foster, Gustavo A. R. Silva, Kees Cook
  Cc: Erick Archer, linux-bcachefs, linux-kernel, linux-hardening

This is an effort to get rid of all multiplications from allocation
functions in order to prevent integer overflows [1][2].

As the "t" variable is a pointer to "struct journal_seq_blacklist_table"
and this structure ends in a flexible array:

struct journal_seq_blacklist_table {
	[...]
	struct journal_seq_blacklist_table_entry {
		u64		start;
		u64		end;
		bool		dirty;
	}			entries[];
};

the preferred way in the kernel is to use the struct_size() helper to
do the arithmetic instead of the argument "size + size * count" in the
kzalloc() function.

This way, the code is more readable and safer.

Link: https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
Link: https://github.com/KSPP/linux/issues/160 [2]
Signed-off-by: Erick Archer <erick.archer@gmx.com>
---
 fs/bcachefs/journal_seq_blacklist.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/fs/bcachefs/journal_seq_blacklist.c b/fs/bcachefs/journal_seq_blacklist.c
index 024c9b1b323f..2c2490aa15fe 100644
--- a/fs/bcachefs/journal_seq_blacklist.c
+++ b/fs/bcachefs/journal_seq_blacklist.c
@@ -165,8 +165,7 @@ int bch2_blacklist_table_initialize(struct bch_fs *c)
 	if (!bl)
 		return 0;

-	t = kzalloc(sizeof(*t) + sizeof(t->entries[0]) * nr,
-		    GFP_KERNEL);
+	t = kzalloc(struct_size(t, entries, nr), GFP_KERNEL);
 	if (!t)
 		return -BCH_ERR_ENOMEM_blacklist_table_init;

--
2.25.1


^ permalink raw reply related	[relevance 12%]

* [PATCH] bcachefs: Prefer struct_size over open coded arithmetic
@ 2024-02-24 14:59 12% Erick Archer
  0 siblings, 0 replies; 200+ results
From: Erick Archer @ 2024-02-24 14:59 UTC (permalink / raw)
  To: Kent Overstreet, Brian Foster, Gustavo A. R. Silva, Kees Cook
  Cc: Erick Archer, linux-bcachefs, linux-kernel, linux-hardening

This is an effort to get rid of all multiplications from allocation
functions in order to prevent integer overflows [1][2].

As the "op" variable is a pointer to "struct promote_op" and this
structure ends in a flexible array:

struct promote_op {
	[...]
	struct bio_vec bi_inline_vecs[];
};

the preferred way in the kernel is to use the struct_size() helper to
do the arithmetic instead of the argument "size + size * count" in the
kzalloc() function.

This way, the code is more readable and safer.

Link: https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
Link: https://github.com/KSPP/linux/issues/160 [2]
Signed-off-by: Erick Archer <erick.archer@gmx.com>
---
 fs/bcachefs/io_read.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/bcachefs/io_read.c b/fs/bcachefs/io_read.c
index dce136cd2271..01beab55c6b3 100644
--- a/fs/bcachefs/io_read.c
+++ b/fs/bcachefs/io_read.c
@@ -174,7 +174,7 @@ static struct promote_op *__promote_alloc(struct btree_trans *trans,
 	if (!bch2_write_ref_tryget(c, BCH_WRITE_REF_promote))
 		return ERR_PTR(-BCH_ERR_nopromote_no_writes);

-	op = kzalloc(sizeof(*op) + sizeof(struct bio_vec) * pages, GFP_KERNEL);
+	op = kzalloc(struct_size(op, bi_inline_vecs, pages), GFP_KERNEL);
 	if (!op) {
 		ret = -BCH_ERR_nopromote_enomem;
 		goto err;
--
2.25.1


^ permalink raw reply related	[relevance 12%]

* Re: Re: [PATCH] drm/xe: Prefer struct_size over open coded arithmetic
  2024-02-10 16:49  7% ` Gustavo A. R. Silva
@ 2024-02-23  5:00  7%   ` Lucas De Marchi
  0 siblings, 0 replies; 200+ results
From: Lucas De Marchi @ 2024-02-23  5:00 UTC (permalink / raw)
  To: Gustavo A. R. Silva
  Cc: Erick Archer, Oded Gabbay, Thomas Hellström,
	Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann,
	David Airlie, Daniel Vetter, Gustavo A. R. Silva, Kees Cook,
	intel-xe, dri-devel, linux-kernel, linux-hardening

On Sat, Feb 10, 2024 at 10:49:57AM -0600, Gustavo A. R. Silva wrote:
>
>
>On 2/10/24 08:19, Erick Archer wrote:
>>This is an effort to get rid of all multiplications from allocation
>>functions in order to prevent integer overflows [1].
>>
>>As the "q" variable is a pointer to "struct xe_exec_queue" and this
>>structure ends in a flexible array:
>>
>>struct xe_exec_queue {
>>	[...]
>>	struct xe_lrc lrc[];
>>};
>>
>>the preferred way in the kernel is to use the struct_size() helper to
>>do the arithmetic instead of the argument "size + size * count" in the
>>kzalloc() function.
>>
>>This way, the code is more readable and more safer.
>>
>>Link: https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
>>Link: https://github.com/KSPP/linux/issues/160 [2]
>>Signed-off-by: Erick Archer <erick.archer@gmx.com>
>
>LGTM:
>
>Reviewed-by: Gustavo A. R. Silva <gustavoars@kernel.org>

applied to drm-xe-next. Thanks for the patch and review.

Lucas De Marchi

^ permalink raw reply	[relevance 7%]

* [PATCH] drm/radeon/radeon_display: Decrease the size of allocated memory
@ 2024-02-22 18:04  4% Erick Archer
  0 siblings, 0 replies; 200+ results
From: Erick Archer @ 2024-02-22 18:04 UTC (permalink / raw)
  To: Alex Deucher, Christian König, Pan, Xinhui, David Airlie,
	Daniel Vetter, Gustavo A. R. Silva, Kees Cook
  Cc: Erick Archer, amd-gfx, dri-devel, linux-kernel, linux-hardening

This is an effort to get rid of all multiplications from allocation
functions in order to prevent integer overflows [1] [2].

In this case, the memory allocated to store RADEONFB_CONN_LIMIT pointers
to "drm_connector" structures can be avoided. This is because this
memory area is never accessed.

Also, in the kzalloc function, it is preferred to use sizeof(*pointer)
instead of sizeof(type) due to the type of the variable can change and
one needs not change the former (unlike the latter).

At the same time take advantage to remove the "#if 0" block, the code
where the removed memory area was accessed, and the RADEONFB_CONN_LIMIT
constant due to now is never used.

Link: https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
Link: https://github.com/KSPP/linux/issues/160 [2]
Signed-off-by: Erick Archer <erick.archer@gmx.com>
---
 drivers/gpu/drm/radeon/radeon.h         | 1 -
 drivers/gpu/drm/radeon/radeon_display.c | 8 +-------
 2 files changed, 1 insertion(+), 8 deletions(-)

diff --git a/drivers/gpu/drm/radeon/radeon.h b/drivers/gpu/drm/radeon/radeon.h
index 3e5ff17e3caf..0999c8eaae94 100644
--- a/drivers/gpu/drm/radeon/radeon.h
+++ b/drivers/gpu/drm/radeon/radeon.h
@@ -132,7 +132,6 @@ extern int radeon_cik_support;
 /* RADEON_IB_POOL_SIZE must be a power of 2 */
 #define RADEON_IB_POOL_SIZE			16
 #define RADEON_DEBUGFS_MAX_COMPONENTS		32
-#define RADEONFB_CONN_LIMIT			4
 #define RADEON_BIOS_NUM_SCRATCH			8

 /* internal ring indices */
diff --git a/drivers/gpu/drm/radeon/radeon_display.c b/drivers/gpu/drm/radeon/radeon_display.c
index efd18c8d84c8..5f1d24d3120c 100644
--- a/drivers/gpu/drm/radeon/radeon_display.c
+++ b/drivers/gpu/drm/radeon/radeon_display.c
@@ -683,7 +683,7 @@ static void radeon_crtc_init(struct drm_device *dev, int index)
 	struct radeon_device *rdev = dev->dev_private;
 	struct radeon_crtc *radeon_crtc;

-	radeon_crtc = kzalloc(sizeof(struct radeon_crtc) + (RADEONFB_CONN_LIMIT * sizeof(struct drm_connector *)), GFP_KERNEL);
+	radeon_crtc = kzalloc(sizeof(*radeon_crtc), GFP_KERNEL);
 	if (radeon_crtc == NULL)
 		return;

@@ -709,12 +709,6 @@ static void radeon_crtc_init(struct drm_device *dev, int index)
 	dev->mode_config.cursor_width = radeon_crtc->max_cursor_width;
 	dev->mode_config.cursor_height = radeon_crtc->max_cursor_height;

-#if 0
-	radeon_crtc->mode_set.crtc = &radeon_crtc->base;
-	radeon_crtc->mode_set.connectors = (struct drm_connector **)(radeon_crtc + 1);
-	radeon_crtc->mode_set.num_connectors = 0;
-#endif
-
 	if (rdev->is_atom_bios && (ASIC_IS_AVIVO(rdev) || radeon_r4xx_atom))
 		radeon_atombios_init_crtc(dev, radeon_crtc);
 	else
--
2.25.1


^ permalink raw reply related	[relevance 4%]

* Re: [PATCH] clk: hisilicon: Use devm_kcalloc() instead of devm_kzalloc()
  2024-01-21 14:29  5% [PATCH] clk: hisilicon: Use devm_kcalloc() instead of devm_kzalloc() Erick Archer
  2024-01-22  6:56  0% ` Uwe Kleine-König
  2024-01-22 17:51  0% ` Gustavo A. R. Silva
@ 2024-02-22  4:27  0% ` Stephen Boyd
  2 siblings, 0 replies; 200+ results
From: Stephen Boyd @ 2024-02-22  4:27 UTC (permalink / raw)
  To: Conor Dooley, Dinh Nguyen, Erick Archer, Gustavo A. R. Silva,
	Heiko Stuebner, Michael Turquette, Nick Alcock, Rob Herring,
	Uwe Kleine-König
  Cc: Erick Archer, linux-clk, linux-kernel, linux-hardening

Quoting Erick Archer (2024-01-21 06:29:46)
> As noted in the "Deprecated Interfaces, Language Features, Attributes,
> and Conventions" documentation [1], size calculations (especially
> multiplication) should not be performed in memory allocator (or similar)
> function arguments due to the risk of them overflowing. This could lead
> to values wrapping around and a smaller allocation being made than the
> caller was expecting. Using those allocations could lead to linear
> overflows of heap memory and other misbehaviors.
> 
> So, use the purpose specific devm_kcalloc() function instead of the
> argument size * count in the devm_kzalloc() function.
> 
> Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
> Link: https://github.com/KSPP/linux/issues/162
> Signed-off-by: Erick Archer <erick.archer@gmx.com>
> ---

Applied to clk-next

^ permalink raw reply	[relevance 0%]

* Re: [PATCH] drm/amd/display: Use kcalloc() instead of kzalloc()
  2024-01-28  9:04  5% [PATCH] drm/amd/display: Use kcalloc() instead of kzalloc() Lenko Donchev
@ 2024-02-21 23:04  0% ` Rodrigo Siqueira Jordao
  0 siblings, 0 replies; 200+ results
From: Rodrigo Siqueira Jordao @ 2024-02-21 23:04 UTC (permalink / raw)
  To: Lenko Donchev
  Cc: Harry Wentland, Leo Li, Alex Deucher, Christian König, Pan,
	Xinhui, David Airlie, Daniel Vetter, amd-gfx, dri-devel,
	linux-kernel



On 1/28/24 02:04, Lenko Donchev wrote:
> We are trying to get rid of all multiplications from allocation
> functions to prevent integer overflows. Here the multiplication is
> obviously safe, but using kcalloc() is more appropriate and improves
> readability. This patch has no effect on runtime behavior.
> 
> Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments
> Link: https://github.com/KSPP/linux/issues/162
> 
> Signed-off-by: Lenko Donchev <lenko.donchev@gmail.com>
> ---
>   drivers/gpu/drm/amd/display/dc/link/protocols/link_dpcd.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/amd/display/dc/link/protocols/link_dpcd.c b/drivers/gpu/drm/amd/display/dc/link/protocols/link_dpcd.c
> index 5c9a30211c10..b67cd78e7c58 100644
> --- a/drivers/gpu/drm/amd/display/dc/link/protocols/link_dpcd.c
> +++ b/drivers/gpu/drm/amd/display/dc/link/protocols/link_dpcd.c
> @@ -164,7 +164,7 @@ static void dpcd_extend_address_range(
>   	if (new_addr_range.start != in_address || new_addr_range.end != end_address) {
>   		*out_address = new_addr_range.start;
>   		*out_size = ADDRESS_RANGE_SIZE(new_addr_range.start, new_addr_range.end);
> -		*out_data = kzalloc(*out_size * sizeof(**out_data), GFP_KERNEL);
> +		*out_data = kcalloc(*out_size, sizeof(**out_data), GFP_KERNEL);
>   	}
>   }
>   

lgtm,

Reviewed-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com>

^ permalink raw reply	[relevance 0%]

* Re: [PATCH] MIPS: Alchemy: Use kcalloc() instead of kzalloc()
  2024-01-20 13:34  5% [PATCH] MIPS: Alchemy: " Erick Archer
  2024-01-22 16:43  0% ` Gustavo A. R. Silva
@ 2024-02-20 13:37  0% ` Thomas Bogendoerfer
  1 sibling, 0 replies; 200+ results
From: Thomas Bogendoerfer @ 2024-02-20 13:37 UTC (permalink / raw)
  To: Erick Archer
  Cc: Gustavo A. R. Silva, linux-mips, linux-kernel, linux-hardening

On Sat, Jan 20, 2024 at 02:34:43PM +0100, Erick Archer wrote:
> As noted in the "Deprecated Interfaces, Language Features, Attributes,
> and Conventions" documentation [1], size calculations (especially
> multiplication) should not be performed in memory allocator (or similar)
> function arguments due to the risk of them overflowing. This could lead
> to values wrapping around and a smaller allocation being made than the
> caller was expecting. Using those allocations could lead to linear
> overflows of heap memory and other misbehaviors.
> 
> So, use the purpose specific kcalloc() function instead of the argument
> size * count in the kzalloc() function.
> 
> Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
> Link: https://github.com/KSPP/linux/issues/162
> Signed-off-by: Erick Archer <erick.archer@gmx.com>
> ---
>  arch/mips/alchemy/common/clock.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/arch/mips/alchemy/common/clock.c b/arch/mips/alchemy/common/clock.c
> index c01be8c45271..6c8996e20a7d 100644
> --- a/arch/mips/alchemy/common/clock.c
> +++ b/arch/mips/alchemy/common/clock.c
> @@ -771,7 +771,7 @@ static int __init alchemy_clk_init_fgens(int ctype)
>  	}
>  	id.flags = CLK_SET_RATE_PARENT | CLK_GET_RATE_NOCACHE;
> 
> -	a = kzalloc((sizeof(*a)) * 6, GFP_KERNEL);
> +	a = kcalloc(6, sizeof(*a), GFP_KERNEL);
>  	if (!a)
>  		return -ENOMEM;
> 
> --
> 2.25.1

applied to mips-next.

Thomas.

-- 
Crap can work. Given enough thrust pigs will fly, but it's not necessarily a
good idea.                                                [ RFC1925, 2.3 ]

^ permalink raw reply	[relevance 0%]

* Re: [PATCH] iommu/mtk_iommu: Use devm_kcalloc() instead of devm_kzalloc()
  2024-02-11 18:22  4% [PATCH] iommu/mtk_iommu: Use devm_kcalloc() instead of devm_kzalloc() Erick Archer
                   ` (2 preceding siblings ...)
  2024-02-12 20:41  0% ` Gustavo A. R. Silva
@ 2024-02-16 14:18  0% ` Joerg Roedel
  3 siblings, 0 replies; 200+ results
From: Joerg Roedel @ 2024-02-16 14:18 UTC (permalink / raw)
  To: Erick Archer
  Cc: Yong Wu, Will Deacon, Robin Murphy, Matthias Brugger,
	AngeloGioacchino Del Regno, Gustavo A. R. Silva, Kees Cook,
	iommu, linux-mediatek, linux-kernel, linux-arm-kernel,
	linux-hardening

On Sun, Feb 11, 2024 at 07:22:50PM +0100, Erick Archer wrote:
> Link: https://github.com/KSPP/linux/issues/162 [1]
> Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [2]
> Signed-off-by: Erick Archer <erick.archer@gmx.com>
> ---
>  drivers/iommu/mtk_iommu.c    | 2 +-
>  drivers/iommu/mtk_iommu_v1.c | 4 ++--
>  2 files changed, 3 insertions(+), 3 deletions(-)

Applied, thanks.

^ permalink raw reply	[relevance 0%]

* [tip: irq/core] irqchip/bcm-6345-l1: Prefer struct_size)_ over open coded arithmetic
  2024-02-09 18:16 12% [PATCH] irqchip/bcm-6345-l1: Prefer struct_size over open coded arithmetic Erick Archer
                   ` (2 preceding siblings ...)
  2024-02-10  1:19  7% ` Florian Fainelli
@ 2024-02-13  9:56 13% ` tip-bot2 for Erick Archer
  3 siblings, 0 replies; 200+ results
From: tip-bot2 for Erick Archer @ 2024-02-13  9:56 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: Erick Archer, Thomas Gleixner, Gustavo A. R. Silva, Kees Cook,
	Florian Fainelli, x86, linux-kernel, maz

The following commit has been merged into the irq/core branch of tip:

Commit-ID:     004c7a6bf43edbd4b092fb6ebba8991d56bc3428
Gitweb:        https://git.kernel.org/tip/004c7a6bf43edbd4b092fb6ebba8991d56bc3428
Author:        Erick Archer <erick.archer@gmx.com>
AuthorDate:    Fri, 09 Feb 2024 19:16:00 +01:00
Committer:     Thomas Gleixner <tglx@linutronix.de>
CommitterDate: Tue, 13 Feb 2024 10:53:15 +01:00

irqchip/bcm-6345-l1: Prefer struct_size)_ over open coded arithmetic

This is an effort to get rid of all multiplications from allocation
functions in order to prevent integer overflows.

The cpu variable is a pointer to "struct bcm6345_l1_cpu" and this structure
ends in a flexible array:

struct bcm6345_l1_cpu {
	[...]
	u32	enable_cache[];
};

The preferred way in the kernel is to use the struct_size() helper to do
the arithmetic instead of the argument "size + count * size" in the
kzalloc() function.

This way, the code is more readable and safer.

Signed-off-by: Erick Archer <erick.archer@gmx.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Gustavo A. R. Silva <gustavoars@kernel.org>
Reviewed-by: Kees Cook <keescook@chromium.org>
Reviewed-by: Florian Fainelli <florian.fainelli@broadcom.com>
Link: https://lore.kernel.org/r/20240209181600.9472-1-erick.archer@gmx.com
Link: https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
Link: https://github.com/KSPP/linux/issues/162 [2]

---
 drivers/irqchip/irq-bcm6345-l1.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/irqchip/irq-bcm6345-l1.c b/drivers/irqchip/irq-bcm6345-l1.c
index 9745a11..eb02d20 100644
--- a/drivers/irqchip/irq-bcm6345-l1.c
+++ b/drivers/irqchip/irq-bcm6345-l1.c
@@ -242,7 +242,7 @@ static int __init bcm6345_l1_init_one(struct device_node *dn,
 	else if (intc->n_words != n_words)
 		return -EINVAL;
 
-	cpu = intc->cpus[idx] = kzalloc(sizeof(*cpu) + n_words * sizeof(u32),
+	cpu = intc->cpus[idx] = kzalloc(struct_size(cpu, enable_cache, n_words),
 					GFP_KERNEL);
 	if (!cpu)
 		return -ENOMEM;

^ permalink raw reply related	[relevance 13%]

* [tip: irq/core] irqchip/irq-bcm7038-l1: Prefer struct_size over open coded arithmetic
  2024-02-09 18:31 12% [PATCH] irqchip/irq-bcm7038-l1: Prefer struct_size " Erick Archer
                   ` (2 preceding siblings ...)
  2024-02-10  1:21  7% ` Florian Fainelli
@ 2024-02-13  9:56 13% ` tip-bot2 for Erick Archer
  3 siblings, 0 replies; 200+ results
From: tip-bot2 for Erick Archer @ 2024-02-13  9:56 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: Erick Archer, Thomas Gleixner, Florian Fainelli, Kees Cook,
	Gustavo A. R. Silva, x86, linux-kernel, maz

The following commit has been merged into the irq/core branch of tip:

Commit-ID:     e955a71f83598a347eb45af5576e7eb6cb5bf285
Gitweb:        https://git.kernel.org/tip/e955a71f83598a347eb45af5576e7eb6cb5bf285
Author:        Erick Archer <erick.archer@gmx.com>
AuthorDate:    Fri, 09 Feb 2024 19:31:28 +01:00
Committer:     Thomas Gleixner <tglx@linutronix.de>
CommitterDate: Tue, 13 Feb 2024 10:53:15 +01:00

irqchip/irq-bcm7038-l1: Prefer struct_size over open coded arithmetic

This is an effort to get rid of all multiplications from allocation
functions in order to prevent integer overflows.

The cpu variable is a pointer to "struct bcm7038_l1_cpu" and this structure
ends in a flexible array:

struct bcm7038_l1_cpu {
	void __iomem	*map_base;
	u32		mask_cache[];
};

The preferred way in the kernel is to use the struct_size() helper to
do the arithmetic instead of the argument "size + count * size" in the
kzalloc() function.

This way, the code is more readable and more safer.

Signed-off-by: Erick Archer <erick.archer@gmx.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Florian Fainelli <florian.fainelli@broadcom.com>
Reviewed-by: Kees Cook <keescook@chromium.org>
Reviewed-by: Gustavo A. R. Silva <gustavoars@kernel.org>
Link: https://lore.kernel.org/r/20240209183128.10273-1-erick.archer@gmx.com
Link: https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
Link: https://github.com/KSPP/linux/issues/162 [2]
---
 drivers/irqchip/irq-bcm7038-l1.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/irqchip/irq-bcm7038-l1.c b/drivers/irqchip/irq-bcm7038-l1.c
index 24ca1d6..36e71af 100644
--- a/drivers/irqchip/irq-bcm7038-l1.c
+++ b/drivers/irqchip/irq-bcm7038-l1.c
@@ -249,7 +249,7 @@ static int __init bcm7038_l1_init_one(struct device_node *dn,
 		return -EINVAL;
 	}
 
-	cpu = intc->cpus[idx] = kzalloc(sizeof(*cpu) + n_words * sizeof(u32),
+	cpu = intc->cpus[idx] = kzalloc(struct_size(cpu, mask_cache, n_words),
 					GFP_KERNEL);
 	if (!cpu)
 		return -ENOMEM;

^ permalink raw reply related	[relevance 13%]

* [PATCH v2] fs/ntfs3: use kcalloc() instead of kzalloc()
@ 2024-02-13  9:17  5% Lenko Donchev
  0 siblings, 0 replies; 200+ results
From: Lenko Donchev @ 2024-02-13  9:17 UTC (permalink / raw)
  To: Konstantin Komarov, Gustavo A. R. Silva
  Cc: ntfs3, linux-kernel, linux-hardening

We are trying to get rid of all multiplications from allocation
functions to prevent integer overflows[1]. Here the multiplication is
obviously safe, but using kcalloc() is more appropriate and improves
readability. This patch has no effect on runtime behavior.

Link: https://github.com/KSPP/linux/issues/162 [1]
Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [2]

Signed-off-by: Lenko Donchev <lenko.donchev@gmail.com>
---
Changes in v2:
  - Use sizeof on actual pointer.
---
 fs/ntfs3/frecord.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/ntfs3/frecord.c b/fs/ntfs3/frecord.c
index d435446537ca..725aa84dbd22 100644
--- a/fs/ntfs3/frecord.c
+++ b/fs/ntfs3/frecord.c
@@ -2636,7 +2636,7 @@ int ni_read_frame(struct ntfs_inode *ni, u64 frame_vbo, struct page **pages,
 		goto out1;
 	}
 
-	pages_disk = kzalloc(npages_disk, sizeof(struct page *), GFP_NOFS);
+	pages_disk = kcalloc(npages_disk, sizeof(*pages_disk), GFP_NOFS);
 	if (!pages_disk) {
 		err = -ENOMEM;
 		goto out2;
-- 
2.43.0


^ permalink raw reply related	[relevance 5%]

* Re: [PATCH] iommu/vt-d: Use kcalloc() instead of kzalloc()
  2024-02-11 17:51  5% [PATCH] iommu/vt-d: Use kcalloc() instead of kzalloc() Erick Archer
  2024-02-12 18:31  0% ` Kees Cook
@ 2024-02-12 20:41  0% ` Gustavo A. R. Silva
  2024-02-26  6:09  0% ` Baolu Lu
  2 siblings, 0 replies; 200+ results
From: Gustavo A. R. Silva @ 2024-02-12 20:41 UTC (permalink / raw)
  To: Erick Archer, David Woodhouse, Lu Baolu, Joerg Roedel,
	Will Deacon, Robin Murphy, Gustavo A. R. Silva, Kees Cook
  Cc: iommu, linux-kernel, linux-hardening



On 2/11/24 11:51, Erick Archer wrote:
> This is an effort to get rid of all multiplications from allocation
> functions in order to prevent integer overflows [1].
> 
> Here the multiplication is obviously safe because DMAR_LATENCY_NUM
> is the number of latency types defined in the "latency_type" enum.
> 
> enum latency_type {
> 	DMAR_LATENCY_INV_IOTLB = 0,
> 	DMAR_LATENCY_INV_DEVTLB,
> 	DMAR_LATENCY_INV_IEC,
> 	DMAR_LATENCY_PRQ,
> 	DMAR_LATENCY_NUM
> };
> 
> However, using kcalloc() is more appropriate [2] and improves
> readability. This patch has no effect on runtime behavior.
> 
> Link: https://github.com/KSPP/linux/issues/162 [1]
> Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [2]
> Signed-off-by: Erick Archer <erick.archer@gmx.com>

LGTM:

Reviewed-by: Gustavo A. R. Silva <gustavoars@kernel.org>

Thanks!
-- 
Gustavo

> ---
>   drivers/iommu/intel/perf.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/iommu/intel/perf.c b/drivers/iommu/intel/perf.c
> index 94ee70ac38e3..adc4de6bbd88 100644
> --- a/drivers/iommu/intel/perf.c
> +++ b/drivers/iommu/intel/perf.c
> @@ -33,7 +33,7 @@ int dmar_latency_enable(struct intel_iommu *iommu, enum latency_type type)
> 
>   	spin_lock_irqsave(&latency_lock, flags);
>   	if (!iommu->perf_statistic) {
> -		iommu->perf_statistic = kzalloc(sizeof(*lstat) * DMAR_LATENCY_NUM,
> +		iommu->perf_statistic = kcalloc(DMAR_LATENCY_NUM, sizeof(*lstat),
>   						GFP_ATOMIC);
>   		if (!iommu->perf_statistic) {
>   			ret = -ENOMEM;
> --
> 2.25.1
> 
> 

^ permalink raw reply	[relevance 0%]

* Re: [PATCH] iommu/mtk_iommu: Use devm_kcalloc() instead of devm_kzalloc()
  2024-02-11 18:22  4% [PATCH] iommu/mtk_iommu: Use devm_kcalloc() instead of devm_kzalloc() Erick Archer
  2024-02-12  8:49  0% ` AngeloGioacchino Del Regno
  2024-02-12 15:50  0% ` Matthias Brugger
@ 2024-02-12 20:41  0% ` Gustavo A. R. Silva
  2024-02-16 14:18  0% ` Joerg Roedel
  3 siblings, 0 replies; 200+ results
From: Gustavo A. R. Silva @ 2024-02-12 20:41 UTC (permalink / raw)
  To: Erick Archer, Yong Wu, Joerg Roedel, Will Deacon, Robin Murphy,
	Matthias Brugger, AngeloGioacchino Del Regno,
	Gustavo A. R. Silva, Kees Cook
  Cc: iommu, linux-mediatek, linux-kernel, linux-arm-kernel, linux-hardening



On 2/11/24 12:22, Erick Archer wrote:
> This is an effort to get rid of all multiplications from allocation
> functions in order to prevent integer overflows [1].
> 
> Here the multiplication is obviously safe because MTK_PROTECT_PA_ALIGN
> is defined as a literal value of 256 or 128.
> 
> For the "mtk_iommu.c" file: 256
> For the "mtk_iommu_v1.c" file: 128
> 
> However, using devm_kcalloc() is more appropriate [2] and improves
> readability. This patch has no effect on runtime behavior.
> 
> Link: https://github.com/KSPP/linux/issues/162 [1]
> Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [2]
> Signed-off-by: Erick Archer <erick.archer@gmx.com>

LGTM:

Reviewed-by: Gustavo A. R. Silva <gustavoars@kernel.org>

Thanks!
-- 
Gustavo

> ---
>   drivers/iommu/mtk_iommu.c    | 2 +-
>   drivers/iommu/mtk_iommu_v1.c | 4 ++--
>   2 files changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/iommu/mtk_iommu.c b/drivers/iommu/mtk_iommu.c
> index 7abe9e85a570..9aae6eb604b1 100644
> --- a/drivers/iommu/mtk_iommu.c
> +++ b/drivers/iommu/mtk_iommu.c
> @@ -1264,7 +1264,7 @@ static int mtk_iommu_probe(struct platform_device *pdev)
>   	data->plat_data = of_device_get_match_data(dev);
> 
>   	/* Protect memory. HW will access here while translation fault.*/
> -	protect = devm_kzalloc(dev, MTK_PROTECT_PA_ALIGN * 2, GFP_KERNEL);
> +	protect = devm_kcalloc(dev, 2, MTK_PROTECT_PA_ALIGN, GFP_KERNEL);
>   	if (!protect)
>   		return -ENOMEM;
>   	data->protect_base = ALIGN(virt_to_phys(protect), MTK_PROTECT_PA_ALIGN);
> diff --git a/drivers/iommu/mtk_iommu_v1.c b/drivers/iommu/mtk_iommu_v1.c
> index 25b41222abae..45cd845d153f 100644
> --- a/drivers/iommu/mtk_iommu_v1.c
> +++ b/drivers/iommu/mtk_iommu_v1.c
> @@ -621,8 +621,8 @@ static int mtk_iommu_v1_probe(struct platform_device *pdev)
>   	data->dev = dev;
> 
>   	/* Protect memory. HW will access here while translation fault.*/
> -	protect = devm_kzalloc(dev, MTK_PROTECT_PA_ALIGN * 2,
> -			GFP_KERNEL | GFP_DMA);
> +	protect = devm_kcalloc(dev, 2, MTK_PROTECT_PA_ALIGN,
> +			       GFP_KERNEL | GFP_DMA);
>   	if (!protect)
>   		return -ENOMEM;
>   	data->protect_base = ALIGN(virt_to_phys(protect), MTK_PROTECT_PA_ALIGN);
> --
> 2.25.1
> 
> 

^ permalink raw reply	[relevance 0%]

* Re: [PATCH] iommu/vt-d: Use kcalloc() instead of kzalloc()
  2024-02-11 17:51  5% [PATCH] iommu/vt-d: Use kcalloc() instead of kzalloc() Erick Archer
@ 2024-02-12 18:31  0% ` Kees Cook
  2024-02-12 20:41  0% ` Gustavo A. R. Silva
  2024-02-26  6:09  0% ` Baolu Lu
  2 siblings, 0 replies; 200+ results
From: Kees Cook @ 2024-02-12 18:31 UTC (permalink / raw)
  To: Erick Archer
  Cc: David Woodhouse, Lu Baolu, Joerg Roedel, Will Deacon,
	Robin Murphy, Gustavo A. R. Silva, iommu, linux-kernel,
	linux-hardening

On Sun, Feb 11, 2024 at 06:51:43PM +0100, Erick Archer wrote:
> This is an effort to get rid of all multiplications from allocation
> functions in order to prevent integer overflows [1].
> 
> Here the multiplication is obviously safe because DMAR_LATENCY_NUM
> is the number of latency types defined in the "latency_type" enum.
> 
> enum latency_type {
> 	DMAR_LATENCY_INV_IOTLB = 0,
> 	DMAR_LATENCY_INV_DEVTLB,
> 	DMAR_LATENCY_INV_IEC,
> 	DMAR_LATENCY_PRQ,
> 	DMAR_LATENCY_NUM
> };
> 
> However, using kcalloc() is more appropriate [2] and improves
> readability. This patch has no effect on runtime behavior.
> 
> Link: https://github.com/KSPP/linux/issues/162 [1]
> Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [2]
> Signed-off-by: Erick Archer <erick.archer@gmx.com>

Looks reasonable.

Reviewed-by: Kees Cook <keescook@chromium.org>

-- 
Kees Cook

^ permalink raw reply	[relevance 0%]

* Re: [PATCH v2] mtd: rawnand: Prefer struct_size over open coded arithmetic
  2024-02-11  9:16 12% [PATCH v2] mtd: rawnand: Prefer struct_size over open coded arithmetic Erick Archer
  2024-02-11 11:51  7% ` Uwe Kleine-König
  2024-02-12  8:46  7% ` AngeloGioacchino Del Regno
@ 2024-02-12 15:50  7% ` Matthias Brugger
  2024-02-26 10:44  7% ` Miquel Raynal
  3 siblings, 0 replies; 200+ results
From: Matthias Brugger @ 2024-02-12 15:50 UTC (permalink / raw)
  To: Erick Archer, Miquel Raynal, Richard Weinberger,
	Vignesh Raghavendra, AngeloGioacchino Del Regno,
	Martin Blumenstingl, Heiko Stuebner, Philippe Mathieu-Daudé,
	Rob Herring, Li Zetao, Uwe Kleine-König,
	Gustavo A. R. Silva, Kees Cook
  Cc: linux-mtd, linux-kernel, linux-arm-kernel, linux-mediatek,
	linux-hardening



On 11/02/2024 10:16, Erick Archer wrote:
> This is an effort to get rid of all multiplications from allocation
> functions in order to prevent integer overflows [1].
> 
> As the "chip" variable is a pointer to "struct mtk_nfc_nand_chip" and
> this structure ends in a flexible array:
> 
> struct mtk_nfc_nand_chip {
> 	[...]
> 	u8 sels[] __counted_by(nsels);
> };
> 
> the preferred way in the kernel is to use the struct_size() helper to
> do the arithmetic instead of the argument "size + count * size" in the
> devm_kzalloc() function.
> 
> This way, the code is more readable and safer.
> 
> Link: https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
> Link: https://github.com/KSPP/linux/issues/160 [2]
> Reviewed-by: Gustavo A. R. Silva <gustavoars@kernel.org>
> Signed-off-by: Erick Archer <erick.archer@gmx.com>

Reviewed-by: Matthias Brugger <matthias.bgg@gmail.com>

> ---
> Changes in v2:
> - Add the "Reviewed-by:" tag.
> - Fix a spelling error in the commit message. Change "more safer" for
>    "safer" (Uwe Kleine-König)
> ---
>   drivers/mtd/nand/raw/mtk_nand.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/mtd/nand/raw/mtk_nand.c b/drivers/mtd/nand/raw/mtk_nand.c
> index 60198e33d2d5..17477bb2d48f 100644
> --- a/drivers/mtd/nand/raw/mtk_nand.c
> +++ b/drivers/mtd/nand/raw/mtk_nand.c
> @@ -1356,7 +1356,7 @@ static int mtk_nfc_nand_chip_init(struct device *dev, struct mtk_nfc *nfc,
>   		return -EINVAL;
>   	}
> 
> -	chip = devm_kzalloc(dev, sizeof(*chip) + nsels * sizeof(u8),
> +	chip = devm_kzalloc(dev, struct_size(chip, sels, nsels),
>   			    GFP_KERNEL);
>   	if (!chip)
>   		return -ENOMEM;
> --
> 2.25.1
> 

^ permalink raw reply	[relevance 7%]

* Re: [PATCH] iommu/mtk_iommu: Use devm_kcalloc() instead of devm_kzalloc()
  2024-02-11 18:22  4% [PATCH] iommu/mtk_iommu: Use devm_kcalloc() instead of devm_kzalloc() Erick Archer
  2024-02-12  8:49  0% ` AngeloGioacchino Del Regno
@ 2024-02-12 15:50  0% ` Matthias Brugger
  2024-02-12 20:41  0% ` Gustavo A. R. Silva
  2024-02-16 14:18  0% ` Joerg Roedel
  3 siblings, 0 replies; 200+ results
From: Matthias Brugger @ 2024-02-12 15:50 UTC (permalink / raw)
  To: Erick Archer, Yong Wu, Joerg Roedel, Will Deacon, Robin Murphy,
	AngeloGioacchino Del Regno, Gustavo A. R. Silva, Kees Cook
  Cc: iommu, linux-mediatek, linux-kernel, linux-arm-kernel, linux-hardening



On 11/02/2024 19:22, Erick Archer wrote:
> This is an effort to get rid of all multiplications from allocation
> functions in order to prevent integer overflows [1].
> 
> Here the multiplication is obviously safe because MTK_PROTECT_PA_ALIGN
> is defined as a literal value of 256 or 128.
> 
> For the "mtk_iommu.c" file: 256
> For the "mtk_iommu_v1.c" file: 128
> 
> However, using devm_kcalloc() is more appropriate [2] and improves
> readability. This patch has no effect on runtime behavior.
> 
> Link: https://github.com/KSPP/linux/issues/162 [1]
> Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [2]
> Signed-off-by: Erick Archer <erick.archer@gmx.com>

Reviewed-by: Matthias Brugger <matthias.bgg@gmail.com>

> ---
>   drivers/iommu/mtk_iommu.c    | 2 +-
>   drivers/iommu/mtk_iommu_v1.c | 4 ++--
>   2 files changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/iommu/mtk_iommu.c b/drivers/iommu/mtk_iommu.c
> index 7abe9e85a570..9aae6eb604b1 100644
> --- a/drivers/iommu/mtk_iommu.c
> +++ b/drivers/iommu/mtk_iommu.c
> @@ -1264,7 +1264,7 @@ static int mtk_iommu_probe(struct platform_device *pdev)
>   	data->plat_data = of_device_get_match_data(dev);
> 
>   	/* Protect memory. HW will access here while translation fault.*/
> -	protect = devm_kzalloc(dev, MTK_PROTECT_PA_ALIGN * 2, GFP_KERNEL);
> +	protect = devm_kcalloc(dev, 2, MTK_PROTECT_PA_ALIGN, GFP_KERNEL);
>   	if (!protect)
>   		return -ENOMEM;
>   	data->protect_base = ALIGN(virt_to_phys(protect), MTK_PROTECT_PA_ALIGN);
> diff --git a/drivers/iommu/mtk_iommu_v1.c b/drivers/iommu/mtk_iommu_v1.c
> index 25b41222abae..45cd845d153f 100644
> --- a/drivers/iommu/mtk_iommu_v1.c
> +++ b/drivers/iommu/mtk_iommu_v1.c
> @@ -621,8 +621,8 @@ static int mtk_iommu_v1_probe(struct platform_device *pdev)
>   	data->dev = dev;
> 
>   	/* Protect memory. HW will access here while translation fault.*/
> -	protect = devm_kzalloc(dev, MTK_PROTECT_PA_ALIGN * 2,
> -			GFP_KERNEL | GFP_DMA);
> +	protect = devm_kcalloc(dev, 2, MTK_PROTECT_PA_ALIGN,
> +			       GFP_KERNEL | GFP_DMA);
>   	if (!protect)
>   		return -ENOMEM;
>   	data->protect_base = ALIGN(virt_to_phys(protect), MTK_PROTECT_PA_ALIGN);
> --
> 2.25.1
> 

^ permalink raw reply	[relevance 0%]

* Re: [PATCH] drm/i915: Add flex arrays to struct i915_syncmap
  2024-02-08 18:13  6% [PATCH] drm/i915: Add flex arrays to struct i915_syncmap Erick Archer
  2024-02-08 18:39  0% ` Gustavo A. R. Silva
  2024-02-10  7:25  0% ` Kees Cook
@ 2024-02-12 12:01  0% ` Tvrtko Ursulin
  2 siblings, 0 replies; 200+ results
From: Tvrtko Ursulin @ 2024-02-12 12:01 UTC (permalink / raw)
  To: Erick Archer, Jani Nikula, Joonas Lahtinen, Rodrigo Vivi,
	David Airlie, Daniel Vetter, Gustavo A. R. Silva
  Cc: intel-gfx, dri-devel, linux-kernel, linux-hardening


On 08/02/2024 18:13, Erick Archer wrote:
> The "struct i915_syncmap" uses a dynamically sized set of trailing
> elements. It can use an "u32" array or a "struct i915_syncmap *"
> array.
> 
> So, use the preferred way in the kernel declaring flexible arrays [1].
> Because there are two possibilities for the trailing arrays, it is
> necessary to declare a union and use the DECLARE_FLEX_ARRAY macro.
> 
> The comment can be removed as the union is now clear enough.
> 
> Also, avoid the open-coded arithmetic in the memory allocator functions
> [2] using the "struct_size" macro.
> 
> Moreover, refactor the "__sync_seqno" and "__sync_child" functions due
> to now it is possible to use the union members added to the structure.
> This way, it is also possible to avoid the open-coded arithmetic in
> pointers.
> 
> Link: https://www.kernel.org/doc/html/next/process/deprecated.html#zero-length-and-one-element-arrays [1]
> Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [2]
> Signed-off-by: Erick Archer <erick.archer@gmx.com>

Looks good to me too so I've pushed it to drm-intel-gt-next, thanks!

Regards,

Tvrtko

> ---
>   drivers/gpu/drm/i915/i915_syncmap.c | 19 ++++++++-----------
>   1 file changed, 8 insertions(+), 11 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_syncmap.c b/drivers/gpu/drm/i915/i915_syncmap.c
> index 60404dbb2e9f..df6437c37373 100644
> --- a/drivers/gpu/drm/i915/i915_syncmap.c
> +++ b/drivers/gpu/drm/i915/i915_syncmap.c
> @@ -75,13 +75,10 @@ struct i915_syncmap {
>   	unsigned int height;
>   	unsigned int bitmap;
>   	struct i915_syncmap *parent;
> -	/*
> -	 * Following this header is an array of either seqno or child pointers:
> -	 * union {
> -	 *	u32 seqno[KSYNCMAP];
> -	 *	struct i915_syncmap *child[KSYNCMAP];
> -	 * };
> -	 */
> +	union {
> +		DECLARE_FLEX_ARRAY(u32, seqno);
> +		DECLARE_FLEX_ARRAY(struct i915_syncmap *, child);
> +	};
>   };
> 
>   /**
> @@ -99,13 +96,13 @@ void i915_syncmap_init(struct i915_syncmap **root)
>   static inline u32 *__sync_seqno(struct i915_syncmap *p)
>   {
>   	GEM_BUG_ON(p->height);
> -	return (u32 *)(p + 1);
> +	return p->seqno;
>   }
> 
>   static inline struct i915_syncmap **__sync_child(struct i915_syncmap *p)
>   {
>   	GEM_BUG_ON(!p->height);
> -	return (struct i915_syncmap **)(p + 1);
> +	return p->child;
>   }
> 
>   static inline unsigned int
> @@ -200,7 +197,7 @@ __sync_alloc_leaf(struct i915_syncmap *parent, u64 id)
>   {
>   	struct i915_syncmap *p;
> 
> -	p = kmalloc(sizeof(*p) + KSYNCMAP * sizeof(u32), GFP_KERNEL);
> +	p = kmalloc(struct_size(p, seqno, KSYNCMAP), GFP_KERNEL);
>   	if (unlikely(!p))
>   		return NULL;
> 
> @@ -282,7 +279,7 @@ static noinline int __sync_set(struct i915_syncmap **root, u64 id, u32 seqno)
>   			unsigned int above;
> 
>   			/* Insert a join above the current layer */
> -			next = kzalloc(sizeof(*next) + KSYNCMAP * sizeof(next),
> +			next = kzalloc(struct_size(next, child, KSYNCMAP),
>   				       GFP_KERNEL);
>   			if (unlikely(!next))
>   				return -ENOMEM;
> --
> 2.25.1
> 

^ permalink raw reply	[relevance 0%]

* Re: [PATCH] iommu/mtk_iommu: Use devm_kcalloc() instead of devm_kzalloc()
  2024-02-11 18:22  4% [PATCH] iommu/mtk_iommu: Use devm_kcalloc() instead of devm_kzalloc() Erick Archer
@ 2024-02-12  8:49  0% ` AngeloGioacchino Del Regno
  2024-02-12 15:50  0% ` Matthias Brugger
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 200+ results
From: AngeloGioacchino Del Regno @ 2024-02-12  8:49 UTC (permalink / raw)
  To: Erick Archer, Yong Wu, Joerg Roedel, Will Deacon, Robin Murphy,
	Matthias Brugger, Gustavo A. R. Silva, Kees Cook
  Cc: iommu, linux-mediatek, linux-kernel, linux-arm-kernel, linux-hardening

Il 11/02/24 19:22, Erick Archer ha scritto:
> This is an effort to get rid of all multiplications from allocation
> functions in order to prevent integer overflows [1].
> 
> Here the multiplication is obviously safe because MTK_PROTECT_PA_ALIGN
> is defined as a literal value of 256 or 128.
> 
> For the "mtk_iommu.c" file: 256
> For the "mtk_iommu_v1.c" file: 128
> 
> However, using devm_kcalloc() is more appropriate [2] and improves
> readability. This patch has no effect on runtime behavior.
> 
> Link: https://github.com/KSPP/linux/issues/162 [1]
> Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [2]
> Signed-off-by: Erick Archer <erick.archer@gmx.com>

Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>

> ---
>   drivers/iommu/mtk_iommu.c    | 2 +-
>   drivers/iommu/mtk_iommu_v1.c | 4 ++--
>   2 files changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/iommu/mtk_iommu.c b/drivers/iommu/mtk_iommu.c
> index 7abe9e85a570..9aae6eb604b1 100644
> --- a/drivers/iommu/mtk_iommu.c
> +++ b/drivers/iommu/mtk_iommu.c
> @@ -1264,7 +1264,7 @@ static int mtk_iommu_probe(struct platform_device *pdev)
>   	data->plat_data = of_device_get_match_data(dev);
> 
>   	/* Protect memory. HW will access here while translation fault.*/
> -	protect = devm_kzalloc(dev, MTK_PROTECT_PA_ALIGN * 2, GFP_KERNEL);
> +	protect = devm_kcalloc(dev, 2, MTK_PROTECT_PA_ALIGN, GFP_KERNEL);
>   	if (!protect)
>   		return -ENOMEM;
>   	data->protect_base = ALIGN(virt_to_phys(protect), MTK_PROTECT_PA_ALIGN);
> diff --git a/drivers/iommu/mtk_iommu_v1.c b/drivers/iommu/mtk_iommu_v1.c
> index 25b41222abae..45cd845d153f 100644
> --- a/drivers/iommu/mtk_iommu_v1.c
> +++ b/drivers/iommu/mtk_iommu_v1.c
> @@ -621,8 +621,8 @@ static int mtk_iommu_v1_probe(struct platform_device *pdev)
>   	data->dev = dev;
> 
>   	/* Protect memory. HW will access here while translation fault.*/
> -	protect = devm_kzalloc(dev, MTK_PROTECT_PA_ALIGN * 2,
> -			GFP_KERNEL | GFP_DMA);
> +	protect = devm_kcalloc(dev, 2, MTK_PROTECT_PA_ALIGN,
> +			       GFP_KERNEL | GFP_DMA);
>   	if (!protect)
>   		return -ENOMEM;
>   	data->protect_base = ALIGN(virt_to_phys(protect), MTK_PROTECT_PA_ALIGN);
> --
> 2.25.1
> 



^ permalink raw reply	[relevance 0%]

* Re: [PATCH v2] mtd: rawnand: Prefer struct_size over open coded arithmetic
  2024-02-11  9:16 12% [PATCH v2] mtd: rawnand: Prefer struct_size over open coded arithmetic Erick Archer
  2024-02-11 11:51  7% ` Uwe Kleine-König
@ 2024-02-12  8:46  7% ` AngeloGioacchino Del Regno
  2024-02-12 15:50  7% ` Matthias Brugger
  2024-02-26 10:44  7% ` Miquel Raynal
  3 siblings, 0 replies; 200+ results
From: AngeloGioacchino Del Regno @ 2024-02-12  8:46 UTC (permalink / raw)
  To: Erick Archer, Miquel Raynal, Richard Weinberger,
	Vignesh Raghavendra, Matthias Brugger, Martin Blumenstingl,
	Heiko Stuebner, Philippe Mathieu-Daudé,
	Rob Herring, Li Zetao, Uwe Kleine-König,
	Gustavo A. R. Silva, Kees Cook
  Cc: linux-mtd, linux-kernel, linux-arm-kernel, linux-mediatek,
	linux-hardening

Il 11/02/24 10:16, Erick Archer ha scritto:
> This is an effort to get rid of all multiplications from allocation
> functions in order to prevent integer overflows [1].
> 
> As the "chip" variable is a pointer to "struct mtk_nfc_nand_chip" and
> this structure ends in a flexible array:
> 
> struct mtk_nfc_nand_chip {
> 	[...]
> 	u8 sels[] __counted_by(nsels);
> };
> 
> the preferred way in the kernel is to use the struct_size() helper to
> do the arithmetic instead of the argument "size + count * size" in the
> devm_kzalloc() function.
> 
> This way, the code is more readable and safer.
> 
> Link: https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
> Link: https://github.com/KSPP/linux/issues/160 [2]
> Reviewed-by: Gustavo A. R. Silva <gustavoars@kernel.org>
> Signed-off-by: Erick Archer <erick.archer@gmx.com>

Just noticed that there was a v2 already addressing the commit description issue.

Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>



^ permalink raw reply	[relevance 7%]

* Re: [PATCH] mtd: rawnand: Prefer struct_size over open coded arithmetic
  2024-02-10 16:16 12% [PATCH] mtd: rawnand: " Erick Archer
  2024-02-10 16:52  7% ` Gustavo A. R. Silva
  2024-02-10 17:22  7% ` Uwe Kleine-König
@ 2024-02-12  8:45  7% ` AngeloGioacchino Del Regno
  2 siblings, 0 replies; 200+ results
From: AngeloGioacchino Del Regno @ 2024-02-12  8:45 UTC (permalink / raw)
  To: Erick Archer, Miquel Raynal, Richard Weinberger,
	Vignesh Raghavendra, Matthias Brugger, Martin Blumenstingl,
	Heiko Stuebner, Philippe Mathieu-Daudé,
	Rob Herring, Li Zetao, Uwe Kleine-König,
	Gustavo A. R. Silva, Kees Cook
  Cc: linux-mtd, linux-kernel, linux-arm-kernel, linux-mediatek,
	linux-hardening

Il 10/02/24 17:16, Erick Archer ha scritto:
> This is an effort to get rid of all multiplications from allocation
> functions in order to prevent integer overflows [1].
> 
> As the "chip" variable is a pointer to "struct mtk_nfc_nand_chip" and
> this structure ends in a flexible array:
> 
> struct mtk_nfc_nand_chip {
> 	[...]
> 	u8 sels[] __counted_by(nsels);
> };
> 
> the preferred way in the kernel is to use the struct_size() helper to
> do the arithmetic instead of the argument "size + count * size" in the
> devm_kzalloc() function.
> 
> This way, the code is more readable and more safer.

This way, the code is more readable and safer.

Apart from that,
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>

> 
> Link: https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
> Link: https://github.com/KSPP/linux/issues/160 [2]
> Signed-off-by: Erick Archer <erick.archer@gmx.com>
> ---
>   drivers/mtd/nand/raw/mtk_nand.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/mtd/nand/raw/mtk_nand.c b/drivers/mtd/nand/raw/mtk_nand.c
> index 60198e33d2d5..17477bb2d48f 100644
> --- a/drivers/mtd/nand/raw/mtk_nand.c
> +++ b/drivers/mtd/nand/raw/mtk_nand.c
> @@ -1356,7 +1356,7 @@ static int mtk_nfc_nand_chip_init(struct device *dev, struct mtk_nfc *nfc,
>   		return -EINVAL;
>   	}
> 
> -	chip = devm_kzalloc(dev, sizeof(*chip) + nsels * sizeof(u8),
> +	chip = devm_kzalloc(dev, struct_size(chip, sels, nsels),
>   			    GFP_KERNEL);
>   	if (!chip)
>   		return -ENOMEM;
> --
> 2.25.1
> 



^ permalink raw reply	[relevance 7%]

* [PATCH] iommu/mtk_iommu: Use devm_kcalloc() instead of devm_kzalloc()
@ 2024-02-11 18:22  4% Erick Archer
  2024-02-12  8:49  0% ` AngeloGioacchino Del Regno
                   ` (3 more replies)
  0 siblings, 4 replies; 200+ results
From: Erick Archer @ 2024-02-11 18:22 UTC (permalink / raw)
  To: Yong Wu, Joerg Roedel, Will Deacon, Robin Murphy,
	Matthias Brugger, AngeloGioacchino Del Regno,
	Gustavo A. R. Silva, Kees Cook
  Cc: Erick Archer, iommu, linux-mediatek, linux-kernel,
	linux-arm-kernel, linux-hardening

This is an effort to get rid of all multiplications from allocation
functions in order to prevent integer overflows [1].

Here the multiplication is obviously safe because MTK_PROTECT_PA_ALIGN
is defined as a literal value of 256 or 128.

For the "mtk_iommu.c" file: 256
For the "mtk_iommu_v1.c" file: 128

However, using devm_kcalloc() is more appropriate [2] and improves
readability. This patch has no effect on runtime behavior.

Link: https://github.com/KSPP/linux/issues/162 [1]
Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [2]
Signed-off-by: Erick Archer <erick.archer@gmx.com>
---
 drivers/iommu/mtk_iommu.c    | 2 +-
 drivers/iommu/mtk_iommu_v1.c | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/iommu/mtk_iommu.c b/drivers/iommu/mtk_iommu.c
index 7abe9e85a570..9aae6eb604b1 100644
--- a/drivers/iommu/mtk_iommu.c
+++ b/drivers/iommu/mtk_iommu.c
@@ -1264,7 +1264,7 @@ static int mtk_iommu_probe(struct platform_device *pdev)
 	data->plat_data = of_device_get_match_data(dev);

 	/* Protect memory. HW will access here while translation fault.*/
-	protect = devm_kzalloc(dev, MTK_PROTECT_PA_ALIGN * 2, GFP_KERNEL);
+	protect = devm_kcalloc(dev, 2, MTK_PROTECT_PA_ALIGN, GFP_KERNEL);
 	if (!protect)
 		return -ENOMEM;
 	data->protect_base = ALIGN(virt_to_phys(protect), MTK_PROTECT_PA_ALIGN);
diff --git a/drivers/iommu/mtk_iommu_v1.c b/drivers/iommu/mtk_iommu_v1.c
index 25b41222abae..45cd845d153f 100644
--- a/drivers/iommu/mtk_iommu_v1.c
+++ b/drivers/iommu/mtk_iommu_v1.c
@@ -621,8 +621,8 @@ static int mtk_iommu_v1_probe(struct platform_device *pdev)
 	data->dev = dev;

 	/* Protect memory. HW will access here while translation fault.*/
-	protect = devm_kzalloc(dev, MTK_PROTECT_PA_ALIGN * 2,
-			GFP_KERNEL | GFP_DMA);
+	protect = devm_kcalloc(dev, 2, MTK_PROTECT_PA_ALIGN,
+			       GFP_KERNEL | GFP_DMA);
 	if (!protect)
 		return -ENOMEM;
 	data->protect_base = ALIGN(virt_to_phys(protect), MTK_PROTECT_PA_ALIGN);
--
2.25.1


^ permalink raw reply related	[relevance 4%]

* [PATCH] iommu/vt-d: Use kcalloc() instead of kzalloc()
@ 2024-02-11 17:51  5% Erick Archer
  2024-02-12 18:31  0% ` Kees Cook
                   ` (2 more replies)
  0 siblings, 3 replies; 200+ results
From: Erick Archer @ 2024-02-11 17:51 UTC (permalink / raw)
  To: David Woodhouse, Lu Baolu, Joerg Roedel, Will Deacon,
	Robin Murphy, Gustavo A. R. Silva, Kees Cook
  Cc: Erick Archer, iommu, linux-kernel, linux-hardening

This is an effort to get rid of all multiplications from allocation
functions in order to prevent integer overflows [1].

Here the multiplication is obviously safe because DMAR_LATENCY_NUM
is the number of latency types defined in the "latency_type" enum.

enum latency_type {
	DMAR_LATENCY_INV_IOTLB = 0,
	DMAR_LATENCY_INV_DEVTLB,
	DMAR_LATENCY_INV_IEC,
	DMAR_LATENCY_PRQ,
	DMAR_LATENCY_NUM
};

However, using kcalloc() is more appropriate [2] and improves
readability. This patch has no effect on runtime behavior.

Link: https://github.com/KSPP/linux/issues/162 [1]
Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [2]
Signed-off-by: Erick Archer <erick.archer@gmx.com>
---
 drivers/iommu/intel/perf.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/iommu/intel/perf.c b/drivers/iommu/intel/perf.c
index 94ee70ac38e3..adc4de6bbd88 100644
--- a/drivers/iommu/intel/perf.c
+++ b/drivers/iommu/intel/perf.c
@@ -33,7 +33,7 @@ int dmar_latency_enable(struct intel_iommu *iommu, enum latency_type type)

 	spin_lock_irqsave(&latency_lock, flags);
 	if (!iommu->perf_statistic) {
-		iommu->perf_statistic = kzalloc(sizeof(*lstat) * DMAR_LATENCY_NUM,
+		iommu->perf_statistic = kcalloc(DMAR_LATENCY_NUM, sizeof(*lstat),
 						GFP_ATOMIC);
 		if (!iommu->perf_statistic) {
 			ret = -ENOMEM;
--
2.25.1


^ permalink raw reply related	[relevance 5%]

* Re: [PATCH v2] mtd: rawnand: Prefer struct_size over open coded arithmetic
  2024-02-11  9:16 12% [PATCH v2] mtd: rawnand: Prefer struct_size over open coded arithmetic Erick Archer
@ 2024-02-11 11:51  7% ` Uwe Kleine-König
  2024-02-12  8:46  7% ` AngeloGioacchino Del Regno
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 200+ results
From: Uwe Kleine-König @ 2024-02-11 11:51 UTC (permalink / raw)
  To: Erick Archer
  Cc: Miquel Raynal, Richard Weinberger, Vignesh Raghavendra,
	Matthias Brugger, AngeloGioacchino Del Regno,
	Martin Blumenstingl, Heiko Stuebner, Philippe Mathieu-Daudé,
	Rob Herring, Li Zetao, Gustavo A. R. Silva, Kees Cook, linux-mtd,
	linux-kernel, linux-arm-kernel, linux-mediatek, linux-hardening

[-- Attachment #1: Type: text/plain, Size: 1165 bytes --]

On Sun, Feb 11, 2024 at 10:16:33AM +0100, Erick Archer wrote:
> This is an effort to get rid of all multiplications from allocation
> functions in order to prevent integer overflows [1].
> 
> As the "chip" variable is a pointer to "struct mtk_nfc_nand_chip" and
> this structure ends in a flexible array:
> 
> struct mtk_nfc_nand_chip {
> 	[...]
> 	u8 sels[] __counted_by(nsels);
> };
> 
> the preferred way in the kernel is to use the struct_size() helper to
> do the arithmetic instead of the argument "size + count * size" in the
> devm_kzalloc() function.
> 
> This way, the code is more readable and safer.
> 
> Link: https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
> Link: https://github.com/KSPP/linux/issues/160 [2]
> Reviewed-by: Gustavo A. R. Silva <gustavoars@kernel.org>
> Signed-off-by: Erick Archer <erick.archer@gmx.com>

Acked-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>

Best regards
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-König            |
Industrial Linux Solutions                 | https://www.pengutronix.de/ |

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[relevance 7%]

* [PATCH v2] mtd: rawnand: Prefer struct_size over open coded arithmetic
@ 2024-02-11  9:16 12% Erick Archer
  2024-02-11 11:51  7% ` Uwe Kleine-König
                   ` (3 more replies)
  0 siblings, 4 replies; 200+ results
From: Erick Archer @ 2024-02-11  9:16 UTC (permalink / raw)
  To: Miquel Raynal, Richard Weinberger, Vignesh Raghavendra,
	Matthias Brugger, AngeloGioacchino Del Regno,
	Martin Blumenstingl, Heiko Stuebner, Philippe Mathieu-Daudé,
	Rob Herring, Li Zetao, Uwe Kleine-König,
	Gustavo A. R. Silva, Kees Cook
  Cc: Erick Archer, linux-mtd, linux-kernel, linux-arm-kernel,
	linux-mediatek, linux-hardening

This is an effort to get rid of all multiplications from allocation
functions in order to prevent integer overflows [1].

As the "chip" variable is a pointer to "struct mtk_nfc_nand_chip" and
this structure ends in a flexible array:

struct mtk_nfc_nand_chip {
	[...]
	u8 sels[] __counted_by(nsels);
};

the preferred way in the kernel is to use the struct_size() helper to
do the arithmetic instead of the argument "size + count * size" in the
devm_kzalloc() function.

This way, the code is more readable and safer.

Link: https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
Link: https://github.com/KSPP/linux/issues/160 [2]
Reviewed-by: Gustavo A. R. Silva <gustavoars@kernel.org>
Signed-off-by: Erick Archer <erick.archer@gmx.com>
---
Changes in v2:
- Add the "Reviewed-by:" tag.
- Fix a spelling error in the commit message. Change "more safer" for
  "safer" (Uwe Kleine-König)
---
 drivers/mtd/nand/raw/mtk_nand.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/mtd/nand/raw/mtk_nand.c b/drivers/mtd/nand/raw/mtk_nand.c
index 60198e33d2d5..17477bb2d48f 100644
--- a/drivers/mtd/nand/raw/mtk_nand.c
+++ b/drivers/mtd/nand/raw/mtk_nand.c
@@ -1356,7 +1356,7 @@ static int mtk_nfc_nand_chip_init(struct device *dev, struct mtk_nfc *nfc,
 		return -EINVAL;
 	}

-	chip = devm_kzalloc(dev, sizeof(*chip) + nsels * sizeof(u8),
+	chip = devm_kzalloc(dev, struct_size(chip, sels, nsels),
 			    GFP_KERNEL);
 	if (!chip)
 		return -ENOMEM;
--
2.25.1


^ permalink raw reply related	[relevance 12%]

* Re: [PATCH] fs/ntfs3: use kcalloc() instead of kzalloc()
  2024-02-11  1:53  5% [PATCH] fs/ntfs3: use kcalloc() instead of kzalloc() Lenko Donchev
@ 2024-02-11  4:31  0% ` Gustavo A. R. Silva
  0 siblings, 0 replies; 200+ results
From: Gustavo A. R. Silva @ 2024-02-11  4:31 UTC (permalink / raw)
  To: Lenko Donchev, Konstantin Komarov, Gustavo A. R. Silva
  Cc: ntfs3, linux-kernel, linux-hardening



On 2/10/24 19:53, Lenko Donchev wrote:
> We are trying to get rid of all multiplications from allocation
> functions to prevent integer overflows[1]. Here the multiplication is
> obviously safe, but using kcalloc() is more appropriate and improves
> readability. This patch has no effect on runtime behavior.
> 
> Link: https://github.com/KSPP/linux/issues/162 [1]
> Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [2]
> 
> Signed-off-by: Lenko Donchev <lenko.donchev@gmail.com>
> ---
>   fs/ntfs3/frecord.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/fs/ntfs3/frecord.c b/fs/ntfs3/frecord.c
> index 3b42938a9d3b..d435446537ca 100644
> --- a/fs/ntfs3/frecord.c
> +++ b/fs/ntfs3/frecord.c
> @@ -2636,7 +2636,7 @@ int ni_read_frame(struct ntfs_inode *ni, u64 frame_vbo, struct page **pages,
>   		goto out1;
>   	}
>   
> -	pages_disk = kzalloc(npages_disk * sizeof(struct page *), GFP_NOFS);
> +	pages_disk = kcalloc(npages_disk, sizeof(struct page *), GFP_NOFS);

`sizeof(*pages_disk)` is preferable over `sizeof(struct page *)`

Thanks
--
Gustavo

>   	if (!pages_disk) {
>   		err = -ENOMEM;
>   		goto out2;

^ permalink raw reply	[relevance 0%]

* [PATCH] fs/ntfs3: use kcalloc() instead of kzalloc()
@ 2024-02-11  1:53  5% Lenko Donchev
  2024-02-11  4:31  0% ` Gustavo A. R. Silva
  0 siblings, 1 reply; 200+ results
From: Lenko Donchev @ 2024-02-11  1:53 UTC (permalink / raw)
  To: Konstantin Komarov, Gustavo A. R. Silva
  Cc: ntfs3, linux-kernel, linux-hardening

We are trying to get rid of all multiplications from allocation
functions to prevent integer overflows[1]. Here the multiplication is
obviously safe, but using kcalloc() is more appropriate and improves
readability. This patch has no effect on runtime behavior.

Link: https://github.com/KSPP/linux/issues/162 [1]
Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [2]

Signed-off-by: Lenko Donchev <lenko.donchev@gmail.com>
---
 fs/ntfs3/frecord.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/ntfs3/frecord.c b/fs/ntfs3/frecord.c
index 3b42938a9d3b..d435446537ca 100644
--- a/fs/ntfs3/frecord.c
+++ b/fs/ntfs3/frecord.c
@@ -2636,7 +2636,7 @@ int ni_read_frame(struct ntfs_inode *ni, u64 frame_vbo, struct page **pages,
 		goto out1;
 	}
 
-	pages_disk = kzalloc(npages_disk * sizeof(struct page *), GFP_NOFS);
+	pages_disk = kcalloc(npages_disk, sizeof(struct page *), GFP_NOFS);
 	if (!pages_disk) {
 		err = -ENOMEM;
 		goto out2;
-- 
2.43.0


^ permalink raw reply related	[relevance 5%]

* Re: [PATCH] mtd: rawnand: Prefer struct_size over open coded arithmetic
  2024-02-10 16:16 12% [PATCH] mtd: rawnand: " Erick Archer
  2024-02-10 16:52  7% ` Gustavo A. R. Silva
@ 2024-02-10 17:22  7% ` Uwe Kleine-König
  2024-02-12  8:45  7% ` AngeloGioacchino Del Regno
  2 siblings, 0 replies; 200+ results
From: Uwe Kleine-König @ 2024-02-10 17:22 UTC (permalink / raw)
  To: Erick Archer
  Cc: Miquel Raynal, Richard Weinberger, Vignesh Raghavendra,
	Matthias Brugger, AngeloGioacchino Del Regno,
	Martin Blumenstingl, Heiko Stuebner, Philippe Mathieu-Daudé,
	Rob Herring, Li Zetao, Gustavo A. R. Silva, Kees Cook, linux-mtd,
	linux-kernel, linux-arm-kernel, linux-mediatek, linux-hardening

[-- Attachment #1: Type: text/plain, Size: 885 bytes --]

On Sat, Feb 10, 2024 at 05:16:19PM +0100, Erick Archer wrote:
> This is an effort to get rid of all multiplications from allocation
> functions in order to prevent integer overflows [1].
> 
> As the "chip" variable is a pointer to "struct mtk_nfc_nand_chip" and
> this structure ends in a flexible array:
> 
> struct mtk_nfc_nand_chip {
> 	[...]
> 	u8 sels[] __counted_by(nsels);
> };
> 
> the preferred way in the kernel is to use the struct_size() helper to
> do the arithmetic instead of the argument "size + count * size" in the
> devm_kzalloc() function.
> 
> This way, the code is more readable and more safer.

Unless you intend this non-English comparative: s/more safer/safer/

Best regards
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-König            |
Industrial Linux Solutions                 | https://www.pengutronix.de/ |

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[relevance 7%]

* Re: [PATCH] mtd: rawnand: Prefer struct_size over open coded arithmetic
  2024-02-10 16:16 12% [PATCH] mtd: rawnand: " Erick Archer
@ 2024-02-10 16:52  7% ` Gustavo A. R. Silva
  2024-02-10 17:22  7% ` Uwe Kleine-König
  2024-02-12  8:45  7% ` AngeloGioacchino Del Regno
  2 siblings, 0 replies; 200+ results
From: Gustavo A. R. Silva @ 2024-02-10 16:52 UTC (permalink / raw)
  To: Erick Archer, Miquel Raynal, Richard Weinberger,
	Vignesh Raghavendra, Matthias Brugger,
	AngeloGioacchino Del Regno, Martin Blumenstingl, Heiko Stuebner,
	Philippe Mathieu-Daudé,
	Rob Herring, Li Zetao, Uwe Kleine-König,
	Gustavo A. R. Silva, Kees Cook
  Cc: linux-mtd, linux-kernel, linux-arm-kernel, linux-mediatek,
	linux-hardening



On 2/10/24 10:16, Erick Archer wrote:
> This is an effort to get rid of all multiplications from allocation
> functions in order to prevent integer overflows [1].
> 
> As the "chip" variable is a pointer to "struct mtk_nfc_nand_chip" and
> this structure ends in a flexible array:
> 
> struct mtk_nfc_nand_chip {
> 	[...]
> 	u8 sels[] __counted_by(nsels);
> };
> 
> the preferred way in the kernel is to use the struct_size() helper to
> do the arithmetic instead of the argument "size + count * size" in the
> devm_kzalloc() function.
> 
> This way, the code is more readable and more safer.
> 
> Link: https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
> Link: https://github.com/KSPP/linux/issues/160 [2]
> Signed-off-by: Erick Archer <erick.archer@gmx.com>

LGTM:

Reviewed-by: Gustavo A. R. Silva <gustavoars@kernel.org>

Thanks!
-- 
Gustavo

> ---
>   drivers/mtd/nand/raw/mtk_nand.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/mtd/nand/raw/mtk_nand.c b/drivers/mtd/nand/raw/mtk_nand.c
> index 60198e33d2d5..17477bb2d48f 100644
> --- a/drivers/mtd/nand/raw/mtk_nand.c
> +++ b/drivers/mtd/nand/raw/mtk_nand.c
> @@ -1356,7 +1356,7 @@ static int mtk_nfc_nand_chip_init(struct device *dev, struct mtk_nfc *nfc,
>   		return -EINVAL;
>   	}
> 
> -	chip = devm_kzalloc(dev, sizeof(*chip) + nsels * sizeof(u8),
> +	chip = devm_kzalloc(dev, struct_size(chip, sels, nsels),
>   			    GFP_KERNEL);
>   	if (!chip)
>   		return -ENOMEM;
> --
> 2.25.1
> 
> 

^ permalink raw reply	[relevance 7%]

* Re: [PATCH] drm/xe: Prefer struct_size over open coded arithmetic
  2024-02-10 14:19 12% [PATCH] drm/xe: " Erick Archer
@ 2024-02-10 16:49  7% ` Gustavo A. R. Silva
  2024-02-23  5:00  7%   ` Lucas De Marchi
  0 siblings, 1 reply; 200+ results
From: Gustavo A. R. Silva @ 2024-02-10 16:49 UTC (permalink / raw)
  To: Erick Archer, Lucas De Marchi, Oded Gabbay,
	Thomas Hellström, Maarten Lankhorst, Maxime Ripard,
	Thomas Zimmermann, David Airlie, Daniel Vetter,
	Gustavo A. R. Silva, Kees Cook
  Cc: intel-xe, dri-devel, linux-kernel, linux-hardening



On 2/10/24 08:19, Erick Archer wrote:
> This is an effort to get rid of all multiplications from allocation
> functions in order to prevent integer overflows [1].
> 
> As the "q" variable is a pointer to "struct xe_exec_queue" and this
> structure ends in a flexible array:
> 
> struct xe_exec_queue {
> 	[...]
> 	struct xe_lrc lrc[];
> };
> 
> the preferred way in the kernel is to use the struct_size() helper to
> do the arithmetic instead of the argument "size + size * count" in the
> kzalloc() function.
> 
> This way, the code is more readable and more safer.
> 
> Link: https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
> Link: https://github.com/KSPP/linux/issues/160 [2]
> Signed-off-by: Erick Archer <erick.archer@gmx.com>

LGTM:

Reviewed-by: Gustavo A. R. Silva <gustavoars@kernel.org>

Thanks!
-- 
Gustavo

> ---
>   drivers/gpu/drm/xe/xe_exec_queue.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/xe/xe_exec_queue.c b/drivers/gpu/drm/xe/xe_exec_queue.c
> index bcfc4127c7c5..f4e53cbccd04 100644
> --- a/drivers/gpu/drm/xe/xe_exec_queue.c
> +++ b/drivers/gpu/drm/xe/xe_exec_queue.c
> @@ -44,7 +44,7 @@ static struct xe_exec_queue *__xe_exec_queue_create(struct xe_device *xe,
>   	/* only kernel queues can be permanent */
>   	XE_WARN_ON((flags & EXEC_QUEUE_FLAG_PERMANENT) && !(flags & EXEC_QUEUE_FLAG_KERNEL));
> 
> -	q = kzalloc(sizeof(*q) + sizeof(struct xe_lrc) * width, GFP_KERNEL);
> +	q = kzalloc(struct_size(q, lrc, width), GFP_KERNEL);
>   	if (!q)
>   		return ERR_PTR(-ENOMEM);
> 
> --
> 2.25.1
> 
> 

^ permalink raw reply	[relevance 7%]

* [PATCH] mtd: rawnand: Prefer struct_size over open coded arithmetic
@ 2024-02-10 16:16 12% Erick Archer
  2024-02-10 16:52  7% ` Gustavo A. R. Silva
                   ` (2 more replies)
  0 siblings, 3 replies; 200+ results
From: Erick Archer @ 2024-02-10 16:16 UTC (permalink / raw)
  To: Miquel Raynal, Richard Weinberger, Vignesh Raghavendra,
	Matthias Brugger, AngeloGioacchino Del Regno,
	Martin Blumenstingl, Heiko Stuebner, Philippe Mathieu-Daudé,
	Rob Herring, Li Zetao, Uwe Kleine-König,
	Gustavo A. R. Silva, Kees Cook
  Cc: Erick Archer, linux-mtd, linux-kernel, linux-arm-kernel,
	linux-mediatek, linux-hardening

This is an effort to get rid of all multiplications from allocation
functions in order to prevent integer overflows [1].

As the "chip" variable is a pointer to "struct mtk_nfc_nand_chip" and
this structure ends in a flexible array:

struct mtk_nfc_nand_chip {
	[...]
	u8 sels[] __counted_by(nsels);
};

the preferred way in the kernel is to use the struct_size() helper to
do the arithmetic instead of the argument "size + count * size" in the
devm_kzalloc() function.

This way, the code is more readable and more safer.

Link: https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
Link: https://github.com/KSPP/linux/issues/160 [2]
Signed-off-by: Erick Archer <erick.archer@gmx.com>
---
 drivers/mtd/nand/raw/mtk_nand.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/mtd/nand/raw/mtk_nand.c b/drivers/mtd/nand/raw/mtk_nand.c
index 60198e33d2d5..17477bb2d48f 100644
--- a/drivers/mtd/nand/raw/mtk_nand.c
+++ b/drivers/mtd/nand/raw/mtk_nand.c
@@ -1356,7 +1356,7 @@ static int mtk_nfc_nand_chip_init(struct device *dev, struct mtk_nfc *nfc,
 		return -EINVAL;
 	}

-	chip = devm_kzalloc(dev, sizeof(*chip) + nsels * sizeof(u8),
+	chip = devm_kzalloc(dev, struct_size(chip, sels, nsels),
 			    GFP_KERNEL);
 	if (!chip)
 		return -ENOMEM;
--
2.25.1


^ permalink raw reply related	[relevance 12%]

* [PATCH] drm/xe: Prefer struct_size over open coded arithmetic
@ 2024-02-10 14:19 12% Erick Archer
  2024-02-10 16:49  7% ` Gustavo A. R. Silva
  0 siblings, 1 reply; 200+ results
From: Erick Archer @ 2024-02-10 14:19 UTC (permalink / raw)
  To: Lucas De Marchi, Oded Gabbay, Thomas Hellström,
	Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann,
	David Airlie, Daniel Vetter, Gustavo A. R. Silva, Kees Cook
  Cc: Erick Archer, intel-xe, dri-devel, linux-kernel, linux-hardening

This is an effort to get rid of all multiplications from allocation
functions in order to prevent integer overflows [1].

As the "q" variable is a pointer to "struct xe_exec_queue" and this
structure ends in a flexible array:

struct xe_exec_queue {
	[...]
	struct xe_lrc lrc[];
};

the preferred way in the kernel is to use the struct_size() helper to
do the arithmetic instead of the argument "size + size * count" in the
kzalloc() function.

This way, the code is more readable and more safer.

Link: https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
Link: https://github.com/KSPP/linux/issues/160 [2]
Signed-off-by: Erick Archer <erick.archer@gmx.com>
---
 drivers/gpu/drm/xe/xe_exec_queue.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/xe/xe_exec_queue.c b/drivers/gpu/drm/xe/xe_exec_queue.c
index bcfc4127c7c5..f4e53cbccd04 100644
--- a/drivers/gpu/drm/xe/xe_exec_queue.c
+++ b/drivers/gpu/drm/xe/xe_exec_queue.c
@@ -44,7 +44,7 @@ static struct xe_exec_queue *__xe_exec_queue_create(struct xe_device *xe,
 	/* only kernel queues can be permanent */
 	XE_WARN_ON((flags & EXEC_QUEUE_FLAG_PERMANENT) && !(flags & EXEC_QUEUE_FLAG_KERNEL));

-	q = kzalloc(sizeof(*q) + sizeof(struct xe_lrc) * width, GFP_KERNEL);
+	q = kzalloc(struct_size(q, lrc, width), GFP_KERNEL);
 	if (!q)
 		return ERR_PTR(-ENOMEM);

--
2.25.1


^ permalink raw reply related	[relevance 12%]

* Re: [PATCH] drm/i915: Add flex arrays to struct i915_syncmap
  2024-02-08 18:13  6% [PATCH] drm/i915: Add flex arrays to struct i915_syncmap Erick Archer
  2024-02-08 18:39  0% ` Gustavo A. R. Silva
@ 2024-02-10  7:25  0% ` Kees Cook
  2024-02-12 12:01  0% ` Tvrtko Ursulin
  2 siblings, 0 replies; 200+ results
From: Kees Cook @ 2024-02-10  7:25 UTC (permalink / raw)
  To: Erick Archer
  Cc: Jani Nikula, Joonas Lahtinen, Rodrigo Vivi, Tvrtko Ursulin,
	David Airlie, Daniel Vetter, Gustavo A. R. Silva, intel-gfx,
	dri-devel, linux-kernel, linux-hardening

On Thu, Feb 08, 2024 at 07:13:18PM +0100, Erick Archer wrote:
> The "struct i915_syncmap" uses a dynamically sized set of trailing
> elements. It can use an "u32" array or a "struct i915_syncmap *"
> array.
> 
> So, use the preferred way in the kernel declaring flexible arrays [1].
> Because there are two possibilities for the trailing arrays, it is
> necessary to declare a union and use the DECLARE_FLEX_ARRAY macro.
> 
> The comment can be removed as the union is now clear enough.
> 
> Also, avoid the open-coded arithmetic in the memory allocator functions
> [2] using the "struct_size" macro.
> 
> Moreover, refactor the "__sync_seqno" and "__sync_child" functions due
> to now it is possible to use the union members added to the structure.
> This way, it is also possible to avoid the open-coded arithmetic in
> pointers.
> 
> Link: https://www.kernel.org/doc/html/next/process/deprecated.html#zero-length-and-one-element-arrays [1]
> Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [2]
> Signed-off-by: Erick Archer <erick.archer@gmx.com>
> ---
>  drivers/gpu/drm/i915/i915_syncmap.c | 19 ++++++++-----------
>  1 file changed, 8 insertions(+), 11 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_syncmap.c b/drivers/gpu/drm/i915/i915_syncmap.c
> index 60404dbb2e9f..df6437c37373 100644
> --- a/drivers/gpu/drm/i915/i915_syncmap.c
> +++ b/drivers/gpu/drm/i915/i915_syncmap.c
> @@ -75,13 +75,10 @@ struct i915_syncmap {
>  	unsigned int height;
>  	unsigned int bitmap;
>  	struct i915_syncmap *parent;
> -	/*
> -	 * Following this header is an array of either seqno or child pointers:
> -	 * union {
> -	 *	u32 seqno[KSYNCMAP];
> -	 *	struct i915_syncmap *child[KSYNCMAP];
> -	 * };
> -	 */
> +	union {
> +		DECLARE_FLEX_ARRAY(u32, seqno);
> +		DECLARE_FLEX_ARRAY(struct i915_syncmap *, child);
> +	};

This is a new code pattern for me! Trailing arrays of different element
sizes but with a fixed element count. :)

I hope when __counted_by is expanded to take expressions we can add a
literal. :)

Reviewed-by: Kees Cook <keescook@chromium.org>

-- 
Kees Cook

^ permalink raw reply	[relevance 0%]

* Re: [PATCH] irqchip/irq-bcm7038-l1: Prefer struct_size over open coded arithmetic
  2024-02-09 18:31 12% [PATCH] irqchip/irq-bcm7038-l1: Prefer struct_size " Erick Archer
  2024-02-09 18:40  7% ` Gustavo A. R. Silva
  2024-02-10  0:20  7% ` Kees Cook
@ 2024-02-10  1:21  7% ` Florian Fainelli
  2024-02-13  9:56 13% ` [tip: irq/core] " tip-bot2 for Erick Archer
  3 siblings, 0 replies; 200+ results
From: Florian Fainelli @ 2024-02-10  1:21 UTC (permalink / raw)
  To: Erick Archer, Thomas Gleixner, Gustavo A. R. Silva
  Cc: linux-mips, linux-kernel, Broadcom internal kernel review list,
	linux-arm-kernel, linux-hardening

[-- Attachment #1: Type: text/plain, Size: 898 bytes --]



On 2/9/2024 10:31 AM, Erick Archer wrote:
> This is an effort to get rid of all multiplications from allocation
> functions in order to prevent integer overflows [1].
> 
> As the cpu variable is a pointer to "struct bcm7038_l1_cpu" and this
> structure ends in a flexible array:
> 
> struct bcm7038_l1_cpu {
> 	void __iomem	*map_base;
> 	u32		mask_cache[];
> };
> 
> the preferred way in the kernel is to use the struct_size() helper to
> do the arithmetic instead of the argument "size + count * size" in the
> kzalloc() function.
> 
> This way, the code is more readable and more safer.
> 
> Link: https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
> Link: https://github.com/KSPP/linux/issues/162 [2]
> 
> Signed-off-by: Erick Archer <erick.archer@gmx.com>

Reviewed-by: Florian Fainelli <florian.fainelli@broadcom.com>
-- 
Florian

[-- Attachment #2: S/MIME Cryptographic Signature --]
[-- Type: application/pkcs7-signature, Size: 4221 bytes --]

^ permalink raw reply	[relevance 7%]

* Re: [PATCH] irqchip/bcm-6345-l1: Prefer struct_size over open coded arithmetic
  2024-02-09 18:16 12% [PATCH] irqchip/bcm-6345-l1: Prefer struct_size over open coded arithmetic Erick Archer
  2024-02-09 18:38  7% ` Gustavo A. R. Silva
  2024-02-10  0:19  7% ` Kees Cook
@ 2024-02-10  1:19  7% ` Florian Fainelli
  2024-02-13  9:56 13% ` [tip: irq/core] irqchip/bcm-6345-l1: Prefer struct_size)_ " tip-bot2 for Erick Archer
  3 siblings, 0 replies; 200+ results
From: Florian Fainelli @ 2024-02-10  1:19 UTC (permalink / raw)
  To: Erick Archer, Thomas Gleixner, Gustavo A. R. Silva
  Cc: linux-mips, linux-kernel, Broadcom internal kernel review list,
	linux-hardening

[-- Attachment #1: Type: text/plain, Size: 878 bytes --]



On 2/9/2024 10:16 AM, Erick Archer wrote:
> This is an effort to get rid of all multiplications from allocation
> functions in order to prevent integer overflows [1].
> 
> As the cpu variable is a pointer to "struct bcm6345_l1_cpu" and this
> structure ends in a flexible array:
> 
> struct bcm6345_l1_cpu {
> 	[...]
> 	u32	enable_cache[];
> };
> 
> the preferred way in the kernel is to use the struct_size() helper to
> do the arithmetic instead of the argument "size + count * size" in the
> kzalloc() function.
> 
> This way, the code is more readable and more safer.
> 
> Link: https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
> Link: https://github.com/KSPP/linux/issues/162 [2]
> Signed-off-by: Erick Archer <erick.archer@gmx.com>

Reviewed-by: Florian Fainelli <florian.fainelli@broadcom.com>
-- 
Florian

[-- Attachment #2: S/MIME Cryptographic Signature --]
[-- Type: application/pkcs7-signature, Size: 4221 bytes --]

^ permalink raw reply	[relevance 7%]

* Re: [PATCH] irqchip/irq-bcm7038-l1: Prefer struct_size over open coded arithmetic
  2024-02-09 18:31 12% [PATCH] irqchip/irq-bcm7038-l1: Prefer struct_size " Erick Archer
  2024-02-09 18:40  7% ` Gustavo A. R. Silva
@ 2024-02-10  0:20  7% ` Kees Cook
  2024-02-10  1:21  7% ` Florian Fainelli
  2024-02-13  9:56 13% ` [tip: irq/core] " tip-bot2 for Erick Archer
  3 siblings, 0 replies; 200+ results
From: Kees Cook @ 2024-02-10  0:20 UTC (permalink / raw)
  To: Erick Archer
  Cc: Florian Fainelli, Thomas Gleixner, Gustavo A. R. Silva,
	linux-mips, linux-kernel, Broadcom internal kernel review list,
	linux-arm-kernel, linux-hardening

On Fri, Feb 09, 2024 at 07:31:28PM +0100, Erick Archer wrote:
> This is an effort to get rid of all multiplications from allocation
> functions in order to prevent integer overflows [1].
> 
> As the cpu variable is a pointer to "struct bcm7038_l1_cpu" and this
> structure ends in a flexible array:
> 
> struct bcm7038_l1_cpu {
> 	void __iomem	*map_base;
> 	u32		mask_cache[];
> };
> 
> the preferred way in the kernel is to use the struct_size() helper to
> do the arithmetic instead of the argument "size + count * size" in the
> kzalloc() function.
> 
> This way, the code is more readable and more safer.
> 
> Link: https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
> Link: https://github.com/KSPP/linux/issues/162 [2]
> 
> Signed-off-by: Erick Archer <erick.archer@gmx.com>

Yeah, looks right to me.

Reviewed-by: Kees Cook <keescook@chromium.org>

-- 
Kees Cook

^ permalink raw reply	[relevance 7%]

* Re: [PATCH] irqchip/bcm-6345-l1: Prefer struct_size over open coded arithmetic
  2024-02-09 18:16 12% [PATCH] irqchip/bcm-6345-l1: Prefer struct_size over open coded arithmetic Erick Archer
  2024-02-09 18:38  7% ` Gustavo A. R. Silva
@ 2024-02-10  0:19  7% ` Kees Cook
  2024-02-10  1:19  7% ` Florian Fainelli
  2024-02-13  9:56 13% ` [tip: irq/core] irqchip/bcm-6345-l1: Prefer struct_size)_ " tip-bot2 for Erick Archer
  3 siblings, 0 replies; 200+ results
From: Kees Cook @ 2024-02-10  0:19 UTC (permalink / raw)
  To: Erick Archer
  Cc: Florian Fainelli, Thomas Gleixner, Gustavo A. R. Silva,
	linux-mips, linux-kernel, Broadcom internal kernel review list,
	linux-hardening

On Fri, Feb 09, 2024 at 07:16:00PM +0100, Erick Archer wrote:
> This is an effort to get rid of all multiplications from allocation
> functions in order to prevent integer overflows [1].
> 
> As the cpu variable is a pointer to "struct bcm6345_l1_cpu" and this
> structure ends in a flexible array:
> 
> struct bcm6345_l1_cpu {
> 	[...]
> 	u32	enable_cache[];
> };
> 
> the preferred way in the kernel is to use the struct_size() helper to
> do the arithmetic instead of the argument "size + count * size" in the
> kzalloc() function.
> 
> This way, the code is more readable and more safer.
> 
> Link: https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
> Link: https://github.com/KSPP/linux/issues/162 [2]
> Signed-off-by: Erick Archer <erick.archer@gmx.com>

Thanks!

Reviewed-by: Kees Cook <keescook@chromium.org>

-- 
Kees Cook

^ permalink raw reply	[relevance 7%]

* Re: [PATCH] irqchip/irq-bcm7038-l1: Prefer struct_size over open coded arithmetic
  2024-02-09 18:31 12% [PATCH] irqchip/irq-bcm7038-l1: Prefer struct_size " Erick Archer
@ 2024-02-09 18:40  7% ` Gustavo A. R. Silva
  2024-02-10  0:20  7% ` Kees Cook
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 200+ results
From: Gustavo A. R. Silva @ 2024-02-09 18:40 UTC (permalink / raw)
  To: Erick Archer, Florian Fainelli, Thomas Gleixner, Gustavo A. R. Silva
  Cc: linux-mips, linux-kernel, Broadcom internal kernel review list,
	linux-arm-kernel, linux-hardening



On 2/9/24 12:31, Erick Archer wrote:
> This is an effort to get rid of all multiplications from allocation
> functions in order to prevent integer overflows [1].
> 
> As the cpu variable is a pointer to "struct bcm7038_l1_cpu" and this
> structure ends in a flexible array:
> 
> struct bcm7038_l1_cpu {
> 	void __iomem	*map_base;
> 	u32		mask_cache[];
> };
> 
> the preferred way in the kernel is to use the struct_size() helper to
> do the arithmetic instead of the argument "size + count * size" in the
> kzalloc() function.
> 
> This way, the code is more readable and more safer.
> 
> Link: https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
> Link: https://github.com/KSPP/linux/issues/162 [2]
> 
> Signed-off-by: Erick Archer <erick.archer@gmx.com>

LGTM:

Reviewed-by: Gustavo A. R. Silva <gustavoars@kernel.org>

Thanks
-- 
Gustavo

> ---
>   drivers/irqchip/irq-bcm7038-l1.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/irqchip/irq-bcm7038-l1.c b/drivers/irqchip/irq-bcm7038-l1.c
> index 24ca1d656adc..36e71af054e9 100644
> --- a/drivers/irqchip/irq-bcm7038-l1.c
> +++ b/drivers/irqchip/irq-bcm7038-l1.c
> @@ -249,7 +249,7 @@ static int __init bcm7038_l1_init_one(struct device_node *dn,
>   		return -EINVAL;
>   	}
> 
> -	cpu = intc->cpus[idx] = kzalloc(sizeof(*cpu) + n_words * sizeof(u32),
> +	cpu = intc->cpus[idx] = kzalloc(struct_size(cpu, mask_cache, n_words),
>   					GFP_KERNEL);
>   	if (!cpu)
>   		return -ENOMEM;
> --
> 2.25.1
> 

^ permalink raw reply	[relevance 7%]

* Re: [PATCH] irqchip/bcm-6345-l1: Prefer struct_size over open coded arithmetic
  2024-02-09 18:16 12% [PATCH] irqchip/bcm-6345-l1: Prefer struct_size over open coded arithmetic Erick Archer
@ 2024-02-09 18:38  7% ` Gustavo A. R. Silva
  2024-02-10  0:19  7% ` Kees Cook
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 200+ results
From: Gustavo A. R. Silva @ 2024-02-09 18:38 UTC (permalink / raw)
  To: Erick Archer, Florian Fainelli, Thomas Gleixner, Gustavo A. R. Silva
  Cc: linux-mips, linux-kernel, Broadcom internal kernel review list,
	linux-hardening



On 2/9/24 12:16, Erick Archer wrote:
> This is an effort to get rid of all multiplications from allocation
> functions in order to prevent integer overflows [1].
> 
> As the cpu variable is a pointer to "struct bcm6345_l1_cpu" and this
> structure ends in a flexible array:
> 
> struct bcm6345_l1_cpu {
> 	[...]
> 	u32	enable_cache[];
> };
> 
> the preferred way in the kernel is to use the struct_size() helper to
> do the arithmetic instead of the argument "size + count * size" in the
> kzalloc() function.
> 
> This way, the code is more readable and more safer.
> 
> Link: https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
> Link: https://github.com/KSPP/linux/issues/162 [2]
> Signed-off-by: Erick Archer <erick.archer@gmx.com>

LGTM:

Reviewed-by: Gustavo A. R. Silva <gustavoars@kernel.org>

Thanks
-- 
Gustavo

> ---
>   drivers/irqchip/irq-bcm6345-l1.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/irqchip/irq-bcm6345-l1.c b/drivers/irqchip/irq-bcm6345-l1.c
> index 9745a119d0e6..eb02d203c963 100644
> --- a/drivers/irqchip/irq-bcm6345-l1.c
> +++ b/drivers/irqchip/irq-bcm6345-l1.c
> @@ -242,7 +242,7 @@ static int __init bcm6345_l1_init_one(struct device_node *dn,
>   	else if (intc->n_words != n_words)
>   		return -EINVAL;
> 
> -	cpu = intc->cpus[idx] = kzalloc(sizeof(*cpu) + n_words * sizeof(u32),
> +	cpu = intc->cpus[idx] = kzalloc(struct_size(cpu, enable_cache, n_words),
>   					GFP_KERNEL);
>   	if (!cpu)
>   		return -ENOMEM;
> --
> 2.25.1
> 
> 

^ permalink raw reply	[relevance 7%]

* [PATCH] irqchip/irq-bcm7038-l1: Prefer struct_size over open coded arithmetic
@ 2024-02-09 18:31 12% Erick Archer
  2024-02-09 18:40  7% ` Gustavo A. R. Silva
                   ` (3 more replies)
  0 siblings, 4 replies; 200+ results
From: Erick Archer @ 2024-02-09 18:31 UTC (permalink / raw)
  To: Florian Fainelli, Thomas Gleixner, Gustavo A. R. Silva
  Cc: Erick Archer, linux-mips, linux-kernel,
	Broadcom internal kernel review list, linux-arm-kernel,
	linux-hardening

This is an effort to get rid of all multiplications from allocation
functions in order to prevent integer overflows [1].

As the cpu variable is a pointer to "struct bcm7038_l1_cpu" and this
structure ends in a flexible array:

struct bcm7038_l1_cpu {
	void __iomem	*map_base;
	u32		mask_cache[];
};

the preferred way in the kernel is to use the struct_size() helper to
do the arithmetic instead of the argument "size + count * size" in the
kzalloc() function.

This way, the code is more readable and more safer.

Link: https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
Link: https://github.com/KSPP/linux/issues/162 [2]

Signed-off-by: Erick Archer <erick.archer@gmx.com>
---
 drivers/irqchip/irq-bcm7038-l1.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/irqchip/irq-bcm7038-l1.c b/drivers/irqchip/irq-bcm7038-l1.c
index 24ca1d656adc..36e71af054e9 100644
--- a/drivers/irqchip/irq-bcm7038-l1.c
+++ b/drivers/irqchip/irq-bcm7038-l1.c
@@ -249,7 +249,7 @@ static int __init bcm7038_l1_init_one(struct device_node *dn,
 		return -EINVAL;
 	}

-	cpu = intc->cpus[idx] = kzalloc(sizeof(*cpu) + n_words * sizeof(u32),
+	cpu = intc->cpus[idx] = kzalloc(struct_size(cpu, mask_cache, n_words),
 					GFP_KERNEL);
 	if (!cpu)
 		return -ENOMEM;
--
2.25.1


^ permalink raw reply related	[relevance 12%]

* [PATCH] irqchip/bcm-6345-l1: Prefer struct_size over open coded arithmetic
@ 2024-02-09 18:16 12% Erick Archer
  2024-02-09 18:38  7% ` Gustavo A. R. Silva
                   ` (3 more replies)
  0 siblings, 4 replies; 200+ results
From: Erick Archer @ 2024-02-09 18:16 UTC (permalink / raw)
  To: Florian Fainelli, Thomas Gleixner, Gustavo A. R. Silva
  Cc: Erick Archer, linux-mips, linux-kernel,
	Broadcom internal kernel review list, linux-hardening

This is an effort to get rid of all multiplications from allocation
functions in order to prevent integer overflows [1].

As the cpu variable is a pointer to "struct bcm6345_l1_cpu" and this
structure ends in a flexible array:

struct bcm6345_l1_cpu {
	[...]
	u32	enable_cache[];
};

the preferred way in the kernel is to use the struct_size() helper to
do the arithmetic instead of the argument "size + count * size" in the
kzalloc() function.

This way, the code is more readable and more safer.

Link: https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
Link: https://github.com/KSPP/linux/issues/162 [2]
Signed-off-by: Erick Archer <erick.archer@gmx.com>
---
 drivers/irqchip/irq-bcm6345-l1.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/irqchip/irq-bcm6345-l1.c b/drivers/irqchip/irq-bcm6345-l1.c
index 9745a119d0e6..eb02d203c963 100644
--- a/drivers/irqchip/irq-bcm6345-l1.c
+++ b/drivers/irqchip/irq-bcm6345-l1.c
@@ -242,7 +242,7 @@ static int __init bcm6345_l1_init_one(struct device_node *dn,
 	else if (intc->n_words != n_words)
 		return -EINVAL;

-	cpu = intc->cpus[idx] = kzalloc(sizeof(*cpu) + n_words * sizeof(u32),
+	cpu = intc->cpus[idx] = kzalloc(struct_size(cpu, enable_cache, n_words),
 					GFP_KERNEL);
 	if (!cpu)
 		return -ENOMEM;
--
2.25.1


^ permalink raw reply related	[relevance 12%]

* Re: [PATCH] drm/i915: Add flex arrays to struct i915_syncmap
  2024-02-08 18:13  6% [PATCH] drm/i915: Add flex arrays to struct i915_syncmap Erick Archer
@ 2024-02-08 18:39  0% ` Gustavo A. R. Silva
  2024-02-10  7:25  0% ` Kees Cook
  2024-02-12 12:01  0% ` Tvrtko Ursulin
  2 siblings, 0 replies; 200+ results
From: Gustavo A. R. Silva @ 2024-02-08 18:39 UTC (permalink / raw)
  To: Erick Archer, Jani Nikula, Joonas Lahtinen, Rodrigo Vivi,
	Tvrtko Ursulin, David Airlie, Daniel Vetter, Gustavo A. R. Silva
  Cc: intel-gfx, dri-devel, linux-kernel, linux-hardening



On 2/8/24 12:13, Erick Archer wrote:
> The "struct i915_syncmap" uses a dynamically sized set of trailing
> elements. It can use an "u32" array or a "struct i915_syncmap *"
> array.
> 
> So, use the preferred way in the kernel declaring flexible arrays [1].
> Because there are two possibilities for the trailing arrays, it is
> necessary to declare a union and use the DECLARE_FLEX_ARRAY macro.
> 
> The comment can be removed as the union is now clear enough.
> 
> Also, avoid the open-coded arithmetic in the memory allocator functions
> [2] using the "struct_size" macro.
> 
> Moreover, refactor the "__sync_seqno" and "__sync_child" functions due
> to now it is possible to use the union members added to the structure.
> This way, it is also possible to avoid the open-coded arithmetic in
> pointers.
> 
> Link: https://www.kernel.org/doc/html/next/process/deprecated.html#zero-length-and-one-element-arrays [1]
> Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [2]
> Signed-off-by: Erick Archer <erick.archer@gmx.com>

Nice transformation!

LGTM:

Reviewed-by: Gustavo A. R. Silva <gustavoars@kernel.org>

Thanks
--
Gustavo

> ---
>   drivers/gpu/drm/i915/i915_syncmap.c | 19 ++++++++-----------
>   1 file changed, 8 insertions(+), 11 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_syncmap.c b/drivers/gpu/drm/i915/i915_syncmap.c
> index 60404dbb2e9f..df6437c37373 100644
> --- a/drivers/gpu/drm/i915/i915_syncmap.c
> +++ b/drivers/gpu/drm/i915/i915_syncmap.c
> @@ -75,13 +75,10 @@ struct i915_syncmap {
>   	unsigned int height;
>   	unsigned int bitmap;
>   	struct i915_syncmap *parent;
> -	/*
> -	 * Following this header is an array of either seqno or child pointers:
> -	 * union {
> -	 *	u32 seqno[KSYNCMAP];
> -	 *	struct i915_syncmap *child[KSYNCMAP];
> -	 * };
> -	 */
> +	union {
> +		DECLARE_FLEX_ARRAY(u32, seqno);
> +		DECLARE_FLEX_ARRAY(struct i915_syncmap *, child);
> +	};
>   };
> 
>   /**
> @@ -99,13 +96,13 @@ void i915_syncmap_init(struct i915_syncmap **root)
>   static inline u32 *__sync_seqno(struct i915_syncmap *p)
>   {
>   	GEM_BUG_ON(p->height);
> -	return (u32 *)(p + 1);
> +	return p->seqno;
>   }
> 
>   static inline struct i915_syncmap **__sync_child(struct i915_syncmap *p)
>   {
>   	GEM_BUG_ON(!p->height);
> -	return (struct i915_syncmap **)(p + 1);
> +	return p->child;
>   }
> 
>   static inline unsigned int
> @@ -200,7 +197,7 @@ __sync_alloc_leaf(struct i915_syncmap *parent, u64 id)
>   {
>   	struct i915_syncmap *p;
> 
> -	p = kmalloc(sizeof(*p) + KSYNCMAP * sizeof(u32), GFP_KERNEL);
> +	p = kmalloc(struct_size(p, seqno, KSYNCMAP), GFP_KERNEL);
>   	if (unlikely(!p))
>   		return NULL;
> 
> @@ -282,7 +279,7 @@ static noinline int __sync_set(struct i915_syncmap **root, u64 id, u32 seqno)
>   			unsigned int above;
> 
>   			/* Insert a join above the current layer */
> -			next = kzalloc(sizeof(*next) + KSYNCMAP * sizeof(next),
> +			next = kzalloc(struct_size(next, child, KSYNCMAP),
>   				       GFP_KERNEL);
>   			if (unlikely(!next))
>   				return -ENOMEM;
> --
> 2.25.1
> 
> 

^ permalink raw reply	[relevance 0%]

* [PATCH] drm/i915: Add flex arrays to struct i915_syncmap
@ 2024-02-08 18:13  6% Erick Archer
  2024-02-08 18:39  0% ` Gustavo A. R. Silva
                   ` (2 more replies)
  0 siblings, 3 replies; 200+ results
From: Erick Archer @ 2024-02-08 18:13 UTC (permalink / raw)
  To: Jani Nikula, Joonas Lahtinen, Rodrigo Vivi, Tvrtko Ursulin,
	David Airlie, Daniel Vetter, Gustavo A. R. Silva
  Cc: Erick Archer, intel-gfx, dri-devel, linux-kernel, linux-hardening

The "struct i915_syncmap" uses a dynamically sized set of trailing
elements. It can use an "u32" array or a "struct i915_syncmap *"
array.

So, use the preferred way in the kernel declaring flexible arrays [1].
Because there are two possibilities for the trailing arrays, it is
necessary to declare a union and use the DECLARE_FLEX_ARRAY macro.

The comment can be removed as the union is now clear enough.

Also, avoid the open-coded arithmetic in the memory allocator functions
[2] using the "struct_size" macro.

Moreover, refactor the "__sync_seqno" and "__sync_child" functions due
to now it is possible to use the union members added to the structure.
This way, it is also possible to avoid the open-coded arithmetic in
pointers.

Link: https://www.kernel.org/doc/html/next/process/deprecated.html#zero-length-and-one-element-arrays [1]
Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [2]
Signed-off-by: Erick Archer <erick.archer@gmx.com>
---
 drivers/gpu/drm/i915/i915_syncmap.c | 19 ++++++++-----------
 1 file changed, 8 insertions(+), 11 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_syncmap.c b/drivers/gpu/drm/i915/i915_syncmap.c
index 60404dbb2e9f..df6437c37373 100644
--- a/drivers/gpu/drm/i915/i915_syncmap.c
+++ b/drivers/gpu/drm/i915/i915_syncmap.c
@@ -75,13 +75,10 @@ struct i915_syncmap {
 	unsigned int height;
 	unsigned int bitmap;
 	struct i915_syncmap *parent;
-	/*
-	 * Following this header is an array of either seqno or child pointers:
-	 * union {
-	 *	u32 seqno[KSYNCMAP];
-	 *	struct i915_syncmap *child[KSYNCMAP];
-	 * };
-	 */
+	union {
+		DECLARE_FLEX_ARRAY(u32, seqno);
+		DECLARE_FLEX_ARRAY(struct i915_syncmap *, child);
+	};
 };

 /**
@@ -99,13 +96,13 @@ void i915_syncmap_init(struct i915_syncmap **root)
 static inline u32 *__sync_seqno(struct i915_syncmap *p)
 {
 	GEM_BUG_ON(p->height);
-	return (u32 *)(p + 1);
+	return p->seqno;
 }

 static inline struct i915_syncmap **__sync_child(struct i915_syncmap *p)
 {
 	GEM_BUG_ON(!p->height);
-	return (struct i915_syncmap **)(p + 1);
+	return p->child;
 }

 static inline unsigned int
@@ -200,7 +197,7 @@ __sync_alloc_leaf(struct i915_syncmap *parent, u64 id)
 {
 	struct i915_syncmap *p;

-	p = kmalloc(sizeof(*p) + KSYNCMAP * sizeof(u32), GFP_KERNEL);
+	p = kmalloc(struct_size(p, seqno, KSYNCMAP), GFP_KERNEL);
 	if (unlikely(!p))
 		return NULL;

@@ -282,7 +279,7 @@ static noinline int __sync_set(struct i915_syncmap **root, u64 id, u32 seqno)
 			unsigned int above;

 			/* Insert a join above the current layer */
-			next = kzalloc(sizeof(*next) + KSYNCMAP * sizeof(next),
+			next = kzalloc(struct_size(next, child, KSYNCMAP),
 				       GFP_KERNEL);
 			if (unlikely(!next))
 				return -ENOMEM;
--
2.25.1


^ permalink raw reply related	[relevance 6%]

* Re: [PATCH] crypto: qat - use kcalloc() instead of kzalloc()
  2024-01-29 12:57  5% [PATCH] crypto: qat - use " Lenko Donchev
  2024-01-30 18:35  0% ` Gustavo A. R. Silva
@ 2024-02-06 12:26  0% ` Cabiddu, Giovanni
  1 sibling, 0 replies; 200+ results
From: Cabiddu, Giovanni @ 2024-02-06 12:26 UTC (permalink / raw)
  To: Lenko Donchev
  Cc: Herbert Xu, David S. Miller, Gustavo A. R. Silva, qat-linux,
	linux-crypto, linux-kernel, linux-hardening

On Mon, Jan 29, 2024 at 06:57:28AM -0600, Lenko Donchev wrote:
> We are trying to get rid of all multiplications from allocation
> functions to prevent integer overflows[1]. Here the multiplication is
> obviously safe, but using kcalloc() is more appropriate and improves
> readability. This patch has no effect on runtime behavior.
> 
> Link: https://github.com/KSPP/linux/issues/162 [1]
> Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [2]
> 
> Signed-off-by: Lenko Donchev <lenko.donchev@gmail.com>
Thanks for your patch.
The same change was already applied to the cryptodev tree about two
weeks ago. See 4da3bc65d218 ("crypto: qat - use kcalloc_node() instead of
kzalloc_node()") [1].

[1] https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git/commit/?id=4da3bc65d218605557696109e42cfeee666d601f

Regards,

-- 
Giovanni

^ permalink raw reply	[relevance 0%]

* [v6.6][PATCH 44/57] eventfs: Use kcalloc() instead of kzalloc()
  @ 2024-02-06 12:09  4% ` Steven Rostedt
  0 siblings, 0 replies; 200+ results
From: Steven Rostedt @ 2024-02-06 12:09 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: Linus Torvalds, Greg Kroah-Hartman, Sasha Levin,
	Masami Hiramatsu, Mark Rutland, Mathieu Desnoyers, Erick Archer,
	Gustavo A. R. Silva

From: Erick Archer <erick.archer@gmx.com>

As noted in the "Deprecated Interfaces, Language Features, Attributes,
and Conventions" documentation [1], size calculations (especially
multiplication) should not be performed in memory allocator (or similar)
function arguments due to the risk of them overflowing. This could lead
to values wrapping around and a smaller allocation being made than the
caller was expecting. Using those allocations could lead to linear
overflows of heap memory and other misbehaviors.

So, use the purpose specific kcalloc() function instead of the argument
size * count in the kzalloc() function.

[1] https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments

Link: https://lore.kernel.org/linux-trace-kernel/20240115181658.4562-1-erick.archer@gmx.com

Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Link: https://github.com/KSPP/linux/issues/162
Signed-off-by: Erick Archer <erick.archer@gmx.com>
Reviewed-by: Gustavo A. R. Silva <gustavoars@kernel.org>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
(cherry picked from commit 1057066009c4325bb1d8430c9274894d0860e7c3)
---
 fs/tracefs/event_inode.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/fs/tracefs/event_inode.c b/fs/tracefs/event_inode.c
index 10580d6b5012..6795fda2af19 100644
--- a/fs/tracefs/event_inode.c
+++ b/fs/tracefs/event_inode.c
@@ -97,7 +97,7 @@ static int eventfs_set_attr(struct mnt_idmap *idmap, struct dentry *dentry,
 	/* Preallocate the children mode array if necessary */
 	if (!(dentry->d_inode->i_mode & S_IFDIR)) {
 		if (!ei->entry_attrs) {
-			ei->entry_attrs = kzalloc(sizeof(*ei->entry_attrs) * ei->nr_entries,
+			ei->entry_attrs = kcalloc(ei->nr_entries, sizeof(*ei->entry_attrs),
 						  GFP_NOFS);
 			if (!ei->entry_attrs) {
 				ret = -ENOMEM;
@@ -874,7 +874,7 @@ struct eventfs_inode *eventfs_create_dir(const char *name, struct eventfs_inode
 	}
 
 	if (size) {
-		ei->d_children = kzalloc(sizeof(*ei->d_children) * size, GFP_KERNEL);
+		ei->d_children = kcalloc(size, sizeof(*ei->d_children), GFP_KERNEL);
 		if (!ei->d_children) {
 			kfree_const(ei->name);
 			kfree(ei);
@@ -941,7 +941,7 @@ struct eventfs_inode *eventfs_create_events_dir(const char *name, struct dentry
 		goto fail;
 
 	if (size) {
-		ei->d_children = kzalloc(sizeof(*ei->d_children) * size, GFP_KERNEL);
+		ei->d_children = kcalloc(size, sizeof(*ei->d_children), GFP_KERNEL);
 		if (!ei->d_children)
 			goto fail;
 	}
-- 
2.43.0



^ permalink raw reply related	[relevance 4%]

* [v6.7][PATCH v2 10/23] eventfs: Use kcalloc() instead of kzalloc()
  @ 2024-02-06 11:32  4% ` Steven Rostedt
  0 siblings, 0 replies; 200+ results
From: Steven Rostedt @ 2024-02-06 11:32 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: Linus Torvalds, Greg Kroah-Hartman, Sasha Levin,
	Masami Hiramatsu, Mark Rutland, Mathieu Desnoyers, Erick Archer,
	Gustavo A. R. Silva

From: Erick Archer <erick.archer@gmx.com>

As noted in the "Deprecated Interfaces, Language Features, Attributes,
and Conventions" documentation [1], size calculations (especially
multiplication) should not be performed in memory allocator (or similar)
function arguments due to the risk of them overflowing. This could lead
to values wrapping around and a smaller allocation being made than the
caller was expecting. Using those allocations could lead to linear
overflows of heap memory and other misbehaviors.

So, use the purpose specific kcalloc() function instead of the argument
size * count in the kzalloc() function.

[1] https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments

Link: https://lore.kernel.org/linux-trace-kernel/20240115181658.4562-1-erick.archer@gmx.com

Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Link: https://github.com/KSPP/linux/issues/162
Signed-off-by: Erick Archer <erick.archer@gmx.com>
Reviewed-by: Gustavo A. R. Silva <gustavoars@kernel.org>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
(cherry picked from commit 1057066009c4325bb1d8430c9274894d0860e7c3)
---
 fs/tracefs/event_inode.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/fs/tracefs/event_inode.c b/fs/tracefs/event_inode.c
index 10580d6b5012..6795fda2af19 100644
--- a/fs/tracefs/event_inode.c
+++ b/fs/tracefs/event_inode.c
@@ -97,7 +97,7 @@ static int eventfs_set_attr(struct mnt_idmap *idmap, struct dentry *dentry,
 	/* Preallocate the children mode array if necessary */
 	if (!(dentry->d_inode->i_mode & S_IFDIR)) {
 		if (!ei->entry_attrs) {
-			ei->entry_attrs = kzalloc(sizeof(*ei->entry_attrs) * ei->nr_entries,
+			ei->entry_attrs = kcalloc(ei->nr_entries, sizeof(*ei->entry_attrs),
 						  GFP_NOFS);
 			if (!ei->entry_attrs) {
 				ret = -ENOMEM;
@@ -874,7 +874,7 @@ struct eventfs_inode *eventfs_create_dir(const char *name, struct eventfs_inode
 	}
 
 	if (size) {
-		ei->d_children = kzalloc(sizeof(*ei->d_children) * size, GFP_KERNEL);
+		ei->d_children = kcalloc(size, sizeof(*ei->d_children), GFP_KERNEL);
 		if (!ei->d_children) {
 			kfree_const(ei->name);
 			kfree(ei);
@@ -941,7 +941,7 @@ struct eventfs_inode *eventfs_create_events_dir(const char *name, struct dentry
 		goto fail;
 
 	if (size) {
-		ei->d_children = kzalloc(sizeof(*ei->d_children) * size, GFP_KERNEL);
+		ei->d_children = kcalloc(size, sizeof(*ei->d_children), GFP_KERNEL);
 		if (!ei->d_children)
 			goto fail;
 	}
-- 
2.43.0



^ permalink raw reply related	[relevance 4%]

* [v6.7][PATCH 10/23] eventfs: Use kcalloc() instead of kzalloc()
  @ 2024-02-04  1:16  4% ` Steven Rostedt
  0 siblings, 0 replies; 200+ results
From: Steven Rostedt @ 2024-02-04  1:16 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: Linus Torvalds, Greg Kroah-Hartman, Sasha Levin,
	Masami Hiramatsu, Mark Rutland, Mathieu Desnoyers, Andrew Morton,
	Erick Archer, Gustavo A. R. Silva

From: Erick Archer <erick.archer@gmx.com>

As noted in the "Deprecated Interfaces, Language Features, Attributes,
and Conventions" documentation [1], size calculations (especially
multiplication) should not be performed in memory allocator (or similar)
function arguments due to the risk of them overflowing. This could lead
to values wrapping around and a smaller allocation being made than the
caller was expecting. Using those allocations could lead to linear
overflows of heap memory and other misbehaviors.

So, use the purpose specific kcalloc() function instead of the argument
size * count in the kzalloc() function.

[1] https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments

Link: https://lore.kernel.org/linux-trace-kernel/20240115181658.4562-1-erick.archer@gmx.com

Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Link: https://github.com/KSPP/linux/issues/162
Signed-off-by: Erick Archer <erick.archer@gmx.com>
Reviewed-by: Gustavo A. R. Silva <gustavoars@kernel.org>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
---
 fs/tracefs/event_inode.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/fs/tracefs/event_inode.c b/fs/tracefs/event_inode.c
index 10580d6b5012..6795fda2af19 100644
--- a/fs/tracefs/event_inode.c
+++ b/fs/tracefs/event_inode.c
@@ -97,7 +97,7 @@ static int eventfs_set_attr(struct mnt_idmap *idmap, struct dentry *dentry,
 	/* Preallocate the children mode array if necessary */
 	if (!(dentry->d_inode->i_mode & S_IFDIR)) {
 		if (!ei->entry_attrs) {
-			ei->entry_attrs = kzalloc(sizeof(*ei->entry_attrs) * ei->nr_entries,
+			ei->entry_attrs = kcalloc(ei->nr_entries, sizeof(*ei->entry_attrs),
 						  GFP_NOFS);
 			if (!ei->entry_attrs) {
 				ret = -ENOMEM;
@@ -874,7 +874,7 @@ struct eventfs_inode *eventfs_create_dir(const char *name, struct eventfs_inode
 	}
 
 	if (size) {
-		ei->d_children = kzalloc(sizeof(*ei->d_children) * size, GFP_KERNEL);
+		ei->d_children = kcalloc(size, sizeof(*ei->d_children), GFP_KERNEL);
 		if (!ei->d_children) {
 			kfree_const(ei->name);
 			kfree(ei);
@@ -941,7 +941,7 @@ struct eventfs_inode *eventfs_create_events_dir(const char *name, struct dentry
 		goto fail;
 
 	if (size) {
-		ei->d_children = kzalloc(sizeof(*ei->d_children) * size, GFP_KERNEL);
+		ei->d_children = kcalloc(size, sizeof(*ei->d_children), GFP_KERNEL);
 		if (!ei->d_children)
 			goto fail;
 	}
-- 
2.43.0



^ permalink raw reply related	[relevance 4%]

* Re: [PATCH v2] bus: mhi: ep: Use kcalloc() instead of kzalloc()
  2024-01-28 11:27  4% [PATCH v2] bus: mhi: ep: " Erick Archer
  2024-01-30  8:35  0% ` Manivannan Sadhasivam
  2024-01-30 11:23  0% ` Alex Elder
@ 2024-02-03  4:56  0% ` Manivannan Sadhasivam
  2 siblings, 0 replies; 200+ results
From: Manivannan Sadhasivam @ 2024-02-03  4:56 UTC (permalink / raw)
  To: Erick Archer
  Cc: Jeffrey Hugo, Rafael J. Wysocki, Dan Carpenter,
	Greg Kroah-Hartman, Alex Elder, Gustavo A. R. Silva,
	linux-arm-msm, mhi, linux-kernel, linux-hardening

On Sun, Jan 28, 2024 at 12:27:22PM +0100, Erick Archer wrote:
> This is an effort to get rid of all multiplications from allocation
> functions in order to prevent integer overflows [1].
> 
> Here the multiplication is obviously safe because the "event_rings"
> member never can have a value greater than 255 (8 bits). This member
> is set twice using always FIELD_GET:
> 
> mhi_cntrl->event_rings = FIELD_GET(MHICFG_NER_MASK, regval);
> mhi_cntrl->event_rings = FIELD_GET(MHICFG_NER_MASK, regval);
> 
> And the MHICFG_NER_MASK macro defines the 8 bits mask that guarantees
> a maximum value of 255.
> 
> However, using kcalloc() is more appropriate [1] and improves
> readability. This patch has no effect on runtime behavior.
> 
> Link: https://github.com/KSPP/linux/issues/162 [1]
> Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
> Reviewed-by: Gustavo A. R. Silva <gustavoars@kernel.org>
> Signed-off-by: Erick Archer <erick.archer@gmx.com>

Applied to mhi-next!

- Mani

> ---
> Changes in v2:
> - Add more info in the commit message to better explain the change.
>   (Dan Carpenter)
> - Add the "Reviewed-by:" tag.
> 
> Previous versions:
> v1 - https://lore.kernel.org/linux-hardening/20240120152518.13006-1-erick.archer@gmx.com/
> ---
>  drivers/bus/mhi/ep/main.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/bus/mhi/ep/main.c b/drivers/bus/mhi/ep/main.c
> index 65fc1d738bec..8d7a4102bdb7 100644
> --- a/drivers/bus/mhi/ep/main.c
> +++ b/drivers/bus/mhi/ep/main.c
> @@ -1149,8 +1149,9 @@ int mhi_ep_power_up(struct mhi_ep_cntrl *mhi_cntrl)
>  	mhi_ep_mmio_mask_interrupts(mhi_cntrl);
>  	mhi_ep_mmio_init(mhi_cntrl);
> 
> -	mhi_cntrl->mhi_event = kzalloc(mhi_cntrl->event_rings * (sizeof(*mhi_cntrl->mhi_event)),
> -					GFP_KERNEL);
> +	mhi_cntrl->mhi_event = kcalloc(mhi_cntrl->event_rings,
> +				       sizeof(*mhi_cntrl->mhi_event),
> +				       GFP_KERNEL);
>  	if (!mhi_cntrl->mhi_event)
>  		return -ENOMEM;
> 
> --
> 2.25.1
> 

-- 
மணிவண்ணன் சதாசிவம்

^ permalink raw reply	[relevance 0%]

* Re: [PATCH] crypto: qat - use kcalloc() instead of kzalloc()
  2024-01-29 12:57  5% [PATCH] crypto: qat - use " Lenko Donchev
@ 2024-01-30 18:35  0% ` Gustavo A. R. Silva
  2024-02-06 12:26  0% ` Cabiddu, Giovanni
  1 sibling, 0 replies; 200+ results
From: Gustavo A. R. Silva @ 2024-01-30 18:35 UTC (permalink / raw)
  To: Lenko Donchev, Giovanni Cabiddu, Herbert Xu, David S. Miller,
	Gustavo A. R. Silva
  Cc: qat-linux, linux-crypto, linux-kernel, linux-hardening



On 1/29/24 06:57, Lenko Donchev wrote:
> We are trying to get rid of all multiplications from allocation
> functions to prevent integer overflows[1]. Here the multiplication is
> obviously safe, but using kcalloc() is more appropriate and improves
> readability. This patch has no effect on runtime behavior.
> 
> Link: https://github.com/KSPP/linux/issues/162 [1]
> Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [2]
> 
> Signed-off-by: Lenko Donchev <lenko.donchev@gmail.com>

Reviewed-by: Gustavo A. R. Silva <gustavoars@kernel.org>

Thanks!
-- 
Gustavo

> ---
>   drivers/crypto/intel/qat/qat_common/adf_isr.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/crypto/intel/qat/qat_common/adf_isr.c b/drivers/crypto/intel/qat/qat_common/adf_isr.c
> index 3557a0d6dea2..a13d9885d60f 100644
> --- a/drivers/crypto/intel/qat/qat_common/adf_isr.c
> +++ b/drivers/crypto/intel/qat/qat_common/adf_isr.c
> @@ -272,7 +272,7 @@ static int adf_isr_alloc_msix_vectors_data(struct adf_accel_dev *accel_dev)
>   	if (!accel_dev->pf.vf_info)
>   		msix_num_entries += hw_data->num_banks;
>   
> -	irqs = kzalloc_node(msix_num_entries * sizeof(*irqs),
> +	irqs = kcalloc_node(msix_num_entries, sizeof(*irqs),
>   			    GFP_KERNEL, dev_to_node(&GET_DEV(accel_dev)));
>   	if (!irqs)
>   		return -ENOMEM;

^ permalink raw reply	[relevance 0%]

* Re: [PATCH] dmaengine: pl08x: Use kcalloc() instead of kzalloc()
  2024-01-28 11:52  5% [PATCH] dmaengine: pl08x: " Erick Archer
@ 2024-01-30 18:33  0% ` Gustavo A. R. Silva
  0 siblings, 0 replies; 200+ results
From: Gustavo A. R. Silva @ 2024-01-30 18:33 UTC (permalink / raw)
  To: Erick Archer, Vinod Koul, Gustavo A. R. Silva
  Cc: dmaengine, linux-kernel, linux-hardening



On 1/28/24 05:52, Erick Archer wrote:
> This is an effort to get rid of all multiplications from allocation
> functions in order to prevent integer overflows [1].
> 
> Here the multiplication is obviously safe because the "channels"
> member can only be 8 or 2. This value is set when the "vendor_data"
> structs are initialized.
> 
> static struct vendor_data vendor_pl080 = {
> 	[...]
> 	.channels = 8,
> 	[...]
> };
> 
> static struct vendor_data vendor_nomadik = {
> 	[...]
> 	.channels = 8,
> 	[...]
> };
> 
> static struct vendor_data vendor_pl080s = {
> 	[...]
> 	.channels = 8,
> 	[...]
> };
> 
> static struct vendor_data vendor_pl081 = {
> 	[...]
> 	.channels = 2,
> 	[...]
> };
> 
> However, using kcalloc() is more appropriate [1] and improves
> readability. This patch has no effect on runtime behavior.
> 
> Link: https://github.com/KSPP/linux/issues/162 [1]
> Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
> Signed-off-by: Erick Archer <erick.archer@gmx.com>

Reviewed-by: Gustavo A. R. Silva <gustavoars@kernel.org>

Thanks!
-- 
Gustavo

> ---
>   drivers/dma/amba-pl08x.c | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/dma/amba-pl08x.c b/drivers/dma/amba-pl08x.c
> index eea8bd33b4b7..e40766108787 100644
> --- a/drivers/dma/amba-pl08x.c
> +++ b/drivers/dma/amba-pl08x.c
> @@ -2855,8 +2855,8 @@ static int pl08x_probe(struct amba_device *adev, const struct amba_id *id)
>   	}
> 
>   	/* Initialize physical channels */
> -	pl08x->phy_chans = kzalloc((vd->channels * sizeof(*pl08x->phy_chans)),
> -			GFP_KERNEL);
> +	pl08x->phy_chans = kcalloc(vd->channels, sizeof(*pl08x->phy_chans),
> +				   GFP_KERNEL);
>   	if (!pl08x->phy_chans) {
>   		ret = -ENOMEM;
>   		goto out_no_phychans;
> --
> 2.25.1
> 

^ permalink raw reply	[relevance 0%]

* Re: [PATCH v2] bus: mhi: ep: Use kcalloc() instead of kzalloc()
  2024-01-28 11:27  4% [PATCH v2] bus: mhi: ep: " Erick Archer
  2024-01-30  8:35  0% ` Manivannan Sadhasivam
@ 2024-01-30 11:23  0% ` Alex Elder
  2024-02-03  4:56  0% ` Manivannan Sadhasivam
  2 siblings, 0 replies; 200+ results
From: Alex Elder @ 2024-01-30 11:23 UTC (permalink / raw)
  To: Erick Archer, Manivannan Sadhasivam, Jeffrey Hugo,
	Rafael J. Wysocki, Dan Carpenter, Greg Kroah-Hartman,
	Gustavo A. R. Silva
  Cc: linux-arm-msm, mhi, linux-kernel, linux-hardening

On 1/28/24 5:27 AM, Erick Archer wrote:
> This is an effort to get rid of all multiplications from allocation
> functions in order to prevent integer overflows [1].
> 
> Here the multiplication is obviously safe because the "event_rings"
> member never can have a value greater than 255 (8 bits). This member
> is set twice using always FIELD_GET:
> 
> mhi_cntrl->event_rings = FIELD_GET(MHICFG_NER_MASK, regval);
> mhi_cntrl->event_rings = FIELD_GET(MHICFG_NER_MASK, regval);
> 
> And the MHICFG_NER_MASK macro defines the 8 bits mask that guarantees
> a maximum value of 255.
> 
> However, using kcalloc() is more appropriate [1] and improves
> readability. This patch has no effect on runtime behavior.
> 
> Link: https://github.com/KSPP/linux/issues/162 [1]
> Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
> Reviewed-by: Gustavo A. R. Silva <gustavoars@kernel.org>
> Signed-off-by: Erick Archer <erick.archer@gmx.com>
> ---
> Changes in v2:
> - Add more info in the commit message to better explain the change.
>    (Dan Carpenter)
> - Add the "Reviewed-by:" tag.

Looks good.

Reviewed-by: Alex Elder <elder@linaro.org>

> 
> Previous versions:
> v1 - https://lore.kernel.org/linux-hardening/20240120152518.13006-1-erick.archer@gmx.com/
> ---
>   drivers/bus/mhi/ep/main.c | 5 +++--
>   1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/bus/mhi/ep/main.c b/drivers/bus/mhi/ep/main.c
> index 65fc1d738bec..8d7a4102bdb7 100644
> --- a/drivers/bus/mhi/ep/main.c
> +++ b/drivers/bus/mhi/ep/main.c
> @@ -1149,8 +1149,9 @@ int mhi_ep_power_up(struct mhi_ep_cntrl *mhi_cntrl)
>   	mhi_ep_mmio_mask_interrupts(mhi_cntrl);
>   	mhi_ep_mmio_init(mhi_cntrl);
> 
> -	mhi_cntrl->mhi_event = kzalloc(mhi_cntrl->event_rings * (sizeof(*mhi_cntrl->mhi_event)),
> -					GFP_KERNEL);
> +	mhi_cntrl->mhi_event = kcalloc(mhi_cntrl->event_rings,
> +				       sizeof(*mhi_cntrl->mhi_event),
> +				       GFP_KERNEL);
>   	if (!mhi_cntrl->mhi_event)
>   		return -ENOMEM;
> 
> --
> 2.25.1
> 


^ permalink raw reply	[relevance 0%]

* Re: [PATCH v2] bus: mhi: ep: Use kcalloc() instead of kzalloc()
  2024-01-28 11:27  4% [PATCH v2] bus: mhi: ep: " Erick Archer
@ 2024-01-30  8:35  0% ` Manivannan Sadhasivam
  2024-01-30 11:23  0% ` Alex Elder
  2024-02-03  4:56  0% ` Manivannan Sadhasivam
  2 siblings, 0 replies; 200+ results
From: Manivannan Sadhasivam @ 2024-01-30  8:35 UTC (permalink / raw)
  To: Erick Archer
  Cc: Manivannan Sadhasivam, Jeffrey Hugo, Rafael J. Wysocki,
	Dan Carpenter, Greg Kroah-Hartman, Alex Elder,
	Gustavo A. R. Silva, linux-arm-msm, mhi, linux-kernel,
	linux-hardening

On Sun, Jan 28, 2024 at 12:27:22PM +0100, Erick Archer wrote:
> This is an effort to get rid of all multiplications from allocation
> functions in order to prevent integer overflows [1].
> 
> Here the multiplication is obviously safe because the "event_rings"
> member never can have a value greater than 255 (8 bits). This member
> is set twice using always FIELD_GET:
> 
> mhi_cntrl->event_rings = FIELD_GET(MHICFG_NER_MASK, regval);
> mhi_cntrl->event_rings = FIELD_GET(MHICFG_NER_MASK, regval);
> 
> And the MHICFG_NER_MASK macro defines the 8 bits mask that guarantees
> a maximum value of 255.
> 
> However, using kcalloc() is more appropriate [1] and improves
> readability. This patch has no effect on runtime behavior.
> 
> Link: https://github.com/KSPP/linux/issues/162 [1]
> Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
> Reviewed-by: Gustavo A. R. Silva <gustavoars@kernel.org>
> Signed-off-by: Erick Archer <erick.archer@gmx.com>

Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>

- Mani

> ---
> Changes in v2:
> - Add more info in the commit message to better explain the change.
>   (Dan Carpenter)
> - Add the "Reviewed-by:" tag.
> 
> Previous versions:
> v1 - https://lore.kernel.org/linux-hardening/20240120152518.13006-1-erick.archer@gmx.com/
> ---
>  drivers/bus/mhi/ep/main.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/bus/mhi/ep/main.c b/drivers/bus/mhi/ep/main.c
> index 65fc1d738bec..8d7a4102bdb7 100644
> --- a/drivers/bus/mhi/ep/main.c
> +++ b/drivers/bus/mhi/ep/main.c
> @@ -1149,8 +1149,9 @@ int mhi_ep_power_up(struct mhi_ep_cntrl *mhi_cntrl)
>  	mhi_ep_mmio_mask_interrupts(mhi_cntrl);
>  	mhi_ep_mmio_init(mhi_cntrl);
> 
> -	mhi_cntrl->mhi_event = kzalloc(mhi_cntrl->event_rings * (sizeof(*mhi_cntrl->mhi_event)),
> -					GFP_KERNEL);
> +	mhi_cntrl->mhi_event = kcalloc(mhi_cntrl->event_rings,
> +				       sizeof(*mhi_cntrl->mhi_event),
> +				       GFP_KERNEL);
>  	if (!mhi_cntrl->mhi_event)
>  		return -ENOMEM;
> 
> --
> 2.25.1
> 

-- 
மணிவண்ணன் சதாசிவம்

^ permalink raw reply	[relevance 0%]

* [PATCH] crypto: qat - use kcalloc() instead of kzalloc()
@ 2024-01-29 12:57  5% Lenko Donchev
  2024-01-30 18:35  0% ` Gustavo A. R. Silva
  2024-02-06 12:26  0% ` Cabiddu, Giovanni
  0 siblings, 2 replies; 200+ results
From: Lenko Donchev @ 2024-01-29 12:57 UTC (permalink / raw)
  To: Giovanni Cabiddu, Herbert Xu, David S. Miller, Gustavo A. R. Silva
  Cc: qat-linux, linux-crypto, linux-kernel, linux-hardening

We are trying to get rid of all multiplications from allocation
functions to prevent integer overflows[1]. Here the multiplication is
obviously safe, but using kcalloc() is more appropriate and improves
readability. This patch has no effect on runtime behavior.

Link: https://github.com/KSPP/linux/issues/162 [1]
Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [2]

Signed-off-by: Lenko Donchev <lenko.donchev@gmail.com>
---
 drivers/crypto/intel/qat/qat_common/adf_isr.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/crypto/intel/qat/qat_common/adf_isr.c b/drivers/crypto/intel/qat/qat_common/adf_isr.c
index 3557a0d6dea2..a13d9885d60f 100644
--- a/drivers/crypto/intel/qat/qat_common/adf_isr.c
+++ b/drivers/crypto/intel/qat/qat_common/adf_isr.c
@@ -272,7 +272,7 @@ static int adf_isr_alloc_msix_vectors_data(struct adf_accel_dev *accel_dev)
 	if (!accel_dev->pf.vf_info)
 		msix_num_entries += hw_data->num_banks;
 
-	irqs = kzalloc_node(msix_num_entries * sizeof(*irqs),
+	irqs = kcalloc_node(msix_num_entries, sizeof(*irqs),
 			    GFP_KERNEL, dev_to_node(&GET_DEV(accel_dev)));
 	if (!irqs)
 		return -ENOMEM;
-- 
2.43.0


^ permalink raw reply related	[relevance 5%]

* Re: [PATCH 00/82] overflow: Refactor open-coded arithmetic wrap-around
  2024-01-23  9:46  7% ` Mark Rutland
  2024-01-23 21:56  7%   ` Kees Cook
@ 2024-01-29  6:27  7%   ` Kees Cook
  1 sibling, 0 replies; 200+ results
From: Kees Cook @ 2024-01-29  6:27 UTC (permalink / raw)
  To: Mark Rutland
  Cc: linux-hardening, Gustavo A. R. Silva, Bill Wendling,
	Justin Stitt, linux-kernel

On Tue, Jan 23, 2024 at 09:46:35AM +0000, Mark Rutland wrote:
> This also misses the include/linux/atomic/atomic-arch-fallback.h
> implementations. Those are generated from the scripts/atomic/fallbacks/*
> templates, and you'll need to adjust at least fetch_add_unless and
> inc_unless_negative. As noted on other patches, my preference is to use
> add_wrap() in those.

How do I regenerate the header files using the templates? I found a
script, but its use eluded me, and it doesn't seem wired up to the
top-level Makefile? Maybe I missed something obvious...

-- 
Kees Cook

^ permalink raw reply	[relevance 7%]

* [PATCH] dmaengine: pl08x: Use kcalloc() instead of kzalloc()
@ 2024-01-28 11:52  5% Erick Archer
  2024-01-30 18:33  0% ` Gustavo A. R. Silva
  0 siblings, 1 reply; 200+ results
From: Erick Archer @ 2024-01-28 11:52 UTC (permalink / raw)
  To: Vinod Koul, Gustavo A. R. Silva
  Cc: Erick Archer, dmaengine, linux-kernel, linux-hardening

This is an effort to get rid of all multiplications from allocation
functions in order to prevent integer overflows [1].

Here the multiplication is obviously safe because the "channels"
member can only be 8 or 2. This value is set when the "vendor_data"
structs are initialized.

static struct vendor_data vendor_pl080 = {
	[...]
	.channels = 8,
	[...]
};

static struct vendor_data vendor_nomadik = {
	[...]
	.channels = 8,
	[...]
};

static struct vendor_data vendor_pl080s = {
	[...]
	.channels = 8,
	[...]
};

static struct vendor_data vendor_pl081 = {
	[...]
	.channels = 2,
	[...]
};

However, using kcalloc() is more appropriate [1] and improves
readability. This patch has no effect on runtime behavior.

Link: https://github.com/KSPP/linux/issues/162 [1]
Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
Signed-off-by: Erick Archer <erick.archer@gmx.com>
---
 drivers/dma/amba-pl08x.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/dma/amba-pl08x.c b/drivers/dma/amba-pl08x.c
index eea8bd33b4b7..e40766108787 100644
--- a/drivers/dma/amba-pl08x.c
+++ b/drivers/dma/amba-pl08x.c
@@ -2855,8 +2855,8 @@ static int pl08x_probe(struct amba_device *adev, const struct amba_id *id)
 	}

 	/* Initialize physical channels */
-	pl08x->phy_chans = kzalloc((vd->channels * sizeof(*pl08x->phy_chans)),
-			GFP_KERNEL);
+	pl08x->phy_chans = kcalloc(vd->channels, sizeof(*pl08x->phy_chans),
+				   GFP_KERNEL);
 	if (!pl08x->phy_chans) {
 		ret = -ENOMEM;
 		goto out_no_phychans;
--
2.25.1


^ permalink raw reply related	[relevance 5%]

* [PATCH v2] bus: mhi: ep: Use kcalloc() instead of kzalloc()
@ 2024-01-28 11:27  4% Erick Archer
  2024-01-30  8:35  0% ` Manivannan Sadhasivam
                   ` (2 more replies)
  0 siblings, 3 replies; 200+ results
From: Erick Archer @ 2024-01-28 11:27 UTC (permalink / raw)
  To: Manivannan Sadhasivam, Jeffrey Hugo, Rafael J. Wysocki,
	Dan Carpenter, Greg Kroah-Hartman, Alex Elder,
	Gustavo A. R. Silva
  Cc: Erick Archer, linux-arm-msm, mhi, linux-kernel, linux-hardening

This is an effort to get rid of all multiplications from allocation
functions in order to prevent integer overflows [1].

Here the multiplication is obviously safe because the "event_rings"
member never can have a value greater than 255 (8 bits). This member
is set twice using always FIELD_GET:

mhi_cntrl->event_rings = FIELD_GET(MHICFG_NER_MASK, regval);
mhi_cntrl->event_rings = FIELD_GET(MHICFG_NER_MASK, regval);

And the MHICFG_NER_MASK macro defines the 8 bits mask that guarantees
a maximum value of 255.

However, using kcalloc() is more appropriate [1] and improves
readability. This patch has no effect on runtime behavior.

Link: https://github.com/KSPP/linux/issues/162 [1]
Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
Reviewed-by: Gustavo A. R. Silva <gustavoars@kernel.org>
Signed-off-by: Erick Archer <erick.archer@gmx.com>
---
Changes in v2:
- Add more info in the commit message to better explain the change.
  (Dan Carpenter)
- Add the "Reviewed-by:" tag.

Previous versions:
v1 - https://lore.kernel.org/linux-hardening/20240120152518.13006-1-erick.archer@gmx.com/
---
 drivers/bus/mhi/ep/main.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/bus/mhi/ep/main.c b/drivers/bus/mhi/ep/main.c
index 65fc1d738bec..8d7a4102bdb7 100644
--- a/drivers/bus/mhi/ep/main.c
+++ b/drivers/bus/mhi/ep/main.c
@@ -1149,8 +1149,9 @@ int mhi_ep_power_up(struct mhi_ep_cntrl *mhi_cntrl)
 	mhi_ep_mmio_mask_interrupts(mhi_cntrl);
 	mhi_ep_mmio_init(mhi_cntrl);

-	mhi_cntrl->mhi_event = kzalloc(mhi_cntrl->event_rings * (sizeof(*mhi_cntrl->mhi_event)),
-					GFP_KERNEL);
+	mhi_cntrl->mhi_event = kcalloc(mhi_cntrl->event_rings,
+				       sizeof(*mhi_cntrl->mhi_event),
+				       GFP_KERNEL);
 	if (!mhi_cntrl->mhi_event)
 		return -ENOMEM;

--
2.25.1


^ permalink raw reply related	[relevance 4%]

* [PATCH] drm/amd/display: Use kcalloc() instead of kzalloc()
@ 2024-01-28  9:04  5% Lenko Donchev
  2024-02-21 23:04  0% ` Rodrigo Siqueira Jordao
  0 siblings, 1 reply; 200+ results
From: Lenko Donchev @ 2024-01-28  9:04 UTC (permalink / raw)
  To: Harry Wentland, Leo Li, Rodrigo Siqueira, Alex Deucher,
	Christian König, Pan, Xinhui, David Airlie, Daniel Vetter,
	amd-gfx, dri-devel, linux-kernel

We are trying to get rid of all multiplications from allocation
functions to prevent integer overflows. Here the multiplication is
obviously safe, but using kcalloc() is more appropriate and improves
readability. This patch has no effect on runtime behavior.

Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments
Link: https://github.com/KSPP/linux/issues/162

Signed-off-by: Lenko Donchev <lenko.donchev@gmail.com>
---
 drivers/gpu/drm/amd/display/dc/link/protocols/link_dpcd.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/amd/display/dc/link/protocols/link_dpcd.c b/drivers/gpu/drm/amd/display/dc/link/protocols/link_dpcd.c
index 5c9a30211c10..b67cd78e7c58 100644
--- a/drivers/gpu/drm/amd/display/dc/link/protocols/link_dpcd.c
+++ b/drivers/gpu/drm/amd/display/dc/link/protocols/link_dpcd.c
@@ -164,7 +164,7 @@ static void dpcd_extend_address_range(
 	if (new_addr_range.start != in_address || new_addr_range.end != end_address) {
 		*out_address = new_addr_range.start;
 		*out_size = ADDRESS_RANGE_SIZE(new_addr_range.start, new_addr_range.end);
-		*out_data = kzalloc(*out_size * sizeof(**out_data), GFP_KERNEL);
+		*out_data = kcalloc(*out_size, sizeof(**out_data), GFP_KERNEL);
 	}
 }
 
-- 
2.43.0


^ permalink raw reply related	[relevance 5%]

* Re: [PATCH] pinctrl: pinctrl-zynqmp: Use devm_kcalloc() instead of devm_kzalloc()
  2024-01-19 18:19  4% [PATCH] pinctrl: pinctrl-zynqmp: Use devm_kcalloc() instead of devm_kzalloc() Erick Archer
  2024-01-19 18:26  0% ` Gustavo A. R. Silva
  2024-01-22  6:55  0% ` Michal Simek
@ 2024-01-28  0:17  0% ` Linus Walleij
  2 siblings, 0 replies; 200+ results
From: Linus Walleij @ 2024-01-28  0:17 UTC (permalink / raw)
  To: Erick Archer
  Cc: Michal Simek, Gustavo A. R. Silva, linux-gpio, linux-arm-kernel,
	linux-kernel, linux-hardening

On Fri, Jan 19, 2024 at 7:19 PM Erick Archer <erick.archer@gmx.com> wrote:

> As noted in the "Deprecated Interfaces, Language Features, Attributes,
> and Conventions" documentation [1], size calculations (especially
> multiplication) should not be performed in memory allocator (or similar)
> function arguments due to the risk of them overflowing. This could lead
> to values wrapping around and a smaller allocation being made than the
> caller was expecting. Using those allocations could lead to linear
> overflows of heap memory and other misbehaviors.
>
> So, use the purpose specific devm_kcalloc() function instead of the
> argument size * count in the devm_kzalloc() function.
>
> Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
> Link: https://github.com/KSPP/linux/issues/162
> Signed-off-by: Erick Archer <erick.archer@gmx.com>

Patch applied!

Yours,
Linus Walleij

^ permalink raw reply	[relevance 0%]

* Re: [PATCH] crypto: sun8i-ce - Use kcalloc() instead of kzalloc()
  2024-01-21 15:34  4% [PATCH] crypto: sun8i-ce - Use kcalloc() instead of kzalloc() Erick Archer
  2024-01-22 17:53  0% ` Gustavo A. R. Silva
  2024-01-23 17:45  0% ` Jernej Škrabec
@ 2024-01-26  9:06  0% ` Herbert Xu
  2 siblings, 0 replies; 200+ results
From: Herbert Xu @ 2024-01-26  9:06 UTC (permalink / raw)
  To: Erick Archer
  Cc: Corentin Labbe, David S. Miller, Chen-Yu Tsai, Jernej Skrabec,
	Samuel Holland, Jonathan Corbet, Gustavo A. R. Silva,
	linux-crypto, linux-arm-kernel, linux-sunxi, linux-kernel,
	linux-hardening

On Sun, Jan 21, 2024 at 04:34:07PM +0100, Erick Archer wrote:
> As noted in the "Deprecated Interfaces, Language Features, Attributes,
> and Conventions" documentation [1], size calculations (especially
> multiplication) should not be performed in memory allocator (or similar)
> function arguments due to the risk of them overflowing. This could lead
> to values wrapping around and a smaller allocation being made than the
> caller was expecting. Using those allocations could lead to linear
> overflows of heap memory and other misbehaviors.
> 
> So, use the purpose specific kcalloc() function instead of the argument
> size * count in the kzalloc() function.
> 
> Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
> Link: https://github.com/KSPP/linux/issues/162
> Signed-off-by: Erick Archer <erick.archer@gmx.com>
> ---
>  drivers/crypto/allwinner/sun8i-ce/sun8i-ce-hash.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)

Patch applied.  Thanks.
-- 
Email: Herbert Xu <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt

^ permalink raw reply	[relevance 0%]

* Re: [PATCH] crypto: qat - use kcalloc_node() instead of kzalloc_node()
  2024-01-21 16:40  4% [PATCH] crypto: qat - use kcalloc_node() instead of kzalloc_node() Erick Archer
  2024-01-22 17:55  0% ` Gustavo A. R. Silva
  2024-01-23 12:16  0% ` Cabiddu, Giovanni
@ 2024-01-26  9:06  0% ` Herbert Xu
  2 siblings, 0 replies; 200+ results
From: Herbert Xu @ 2024-01-26  9:06 UTC (permalink / raw)
  To: Erick Archer
  Cc: Giovanni Cabiddu, David S. Miller, Tero Kristo, Andy Shevchenko,
	Damian Muszynski, Shashank Gupta, Tom Zanussi,
	Gustavo A. R. Silva, qat-linux, linux-crypto, linux-kernel,
	linux-hardening

On Sun, Jan 21, 2024 at 05:40:43PM +0100, Erick Archer wrote:
> As noted in the "Deprecated Interfaces, Language Features, Attributes,
> and Conventions" documentation [1], size calculations (especially
> multiplication) should not be performed in memory allocator (or similar)
> function arguments due to the risk of them overflowing. This could lead
> to values wrapping around and a smaller allocation being made than the
> caller was expecting. Using those allocations could lead to linear
> overflows of heap memory and other misbehaviors.
> 
> So, use the purpose specific kcalloc_node() function instead of the
> argument count * size in the kzalloc_node() function.
> 
> Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
> Link: https://github.com/KSPP/linux/issues/162
> Signed-off-by: Erick Archer <erick.archer@gmx.com>
> ---
>  drivers/crypto/intel/qat/qat_common/adf_isr.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)

Patch applied.  Thanks.
-- 
Email: Herbert Xu <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt

^ permalink raw reply	[relevance 0%]

* Re: [PATCH] accel/habanalabs: use kcalloc() instead of kzalloc()
  2024-01-22 16:45  0% ` Gustavo A. R. Silva
@ 2024-01-25 10:38  0%   ` Oded Gabbay
  0 siblings, 0 replies; 200+ results
From: Oded Gabbay @ 2024-01-25 10:38 UTC (permalink / raw)
  To: Gustavo A. R. Silva, Erick Archer, Marco Pagani, Gustavo A. R. Silva
  Cc: dri-devel, linux-kernel, linux-hardening

On 22/01/2024 18:45, Gustavo A. R. Silva wrote:
> 
> 
> On 1/20/24 09:10, Erick Archer wrote:
>> As noted in the "Deprecated Interfaces, Language Features, Attributes,
>> and Conventions" documentation [1], size calculations (especially
>> multiplication) should not be performed in memory allocator (or similar)
>> function arguments due to the risk of them overflowing. This could lead
>> to values wrapping around and a smaller allocation being made than the
>> caller was expecting. Using those allocations could lead to linear
>> overflows of heap memory and other misbehaviors.
>>
>> So, use the purpose specific kcalloc() function instead of the argument
>> size * count in the kzalloc() function.
>>
>> Link: 
>> https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
>> Link: https://github.com/KSPP/linux/issues/162
>>
>> Signed-off-by: Erick Archer <erick.archer@gmx.com>
> 
> Reviewed-by: Gustavo A. R. Silva <gustavoars@kernel.org>
> 
> Thanks!
Applied to -next.
Thanks,
Oded

^ permalink raw reply	[relevance 0%]

* Re: [PATCH] staging: rtl8723bs: Use kcalloc() instead of kzalloc()
  2024-01-22 18:16  0%   ` Erick Archer
@ 2024-01-24 14:48  0%     ` Dan Carpenter
  0 siblings, 0 replies; 200+ results
From: Dan Carpenter @ 2024-01-24 14:48 UTC (permalink / raw)
  To: Erick Archer
  Cc: Greg Kroah-Hartman, Franziska Naepelt, Hans de Goede,
	Johannes Berg, Jeff Johnson, Aloka Dixit, Gustavo A. R. Silva,
	linux-staging, linux-kernel, linux-hardening

On Mon, Jan 22, 2024 at 07:16:54PM +0100, Erick Archer wrote:
> Hi Dan,
> 
> On Mon, Jan 22, 2024 at 09:55:11AM +0300, Dan Carpenter wrote:
> > On Fri, Jan 19, 2024 at 06:39:00PM +0100, Erick Archer wrote:
> > > As noted in the "Deprecated Interfaces, Language Features, Attributes,
> > > and Conventions" documentation [1], size calculations (especially
> > > multiplication) should not be performed in memory allocator (or similar)
> > > function arguments due to the risk of them overflowing. This could lead
> > > to values wrapping around and a smaller allocation being made than the
> > > caller was expecting. Using those allocations could lead to linear
> > > overflows of heap memory and other misbehaviors.
> > >
> > > So, use the purpose specific kcalloc() function instead of the argument
> > > count * size in the kzalloc() function.
> > >
> > > Also, it is preferred to use sizeof(*pointer) instead of sizeof(type)
> > > due to the type of the variable can change and one needs not change the
> > > former (unlike the latter).
> > >
> > > Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
> > > Link: https://github.com/KSPP/linux/issues/162
> > > Signed-off-by: Erick Archer <erick.archer@gmx.com>
> >
> > I quite often write responses to patches and then never send them.  I
> > wrote this response and debated sending it but in the end I decided to
> > send it because you have sent multiple patches.  If you had only sent
> > one patch then I wouldn't have bothered.
> 
> My intention is not to bother anyone. I'm a linux kernel developer newbie
> and I try to do my best.
> 

Yeah.  It's not a problem, we all started as newbies.  I guess what I
was trying to say is that if you're going to be sending a lot of patches
then it's worth explaining this but if you're only sending one then I
wouldn't bother.

I don't really expect people to figure out all the code, it's just that
if you can see the effect of a patch right away then, please, include
that in the patch.  Even when it's like in this case, "This patch should
have no effect on runtime."  That sort of information is still useful.

Or if you can't figure out the implications that's also useful
information to me as a reviewer.  Just put those I don't know comments
under the --- cut off.

regards,
dan carpenter


^ permalink raw reply	[relevance 0%]

* Re: [PATCH 00/82] overflow: Refactor open-coded arithmetic wrap-around
  2024-01-23  9:46  7% ` Mark Rutland
@ 2024-01-23 21:56  7%   ` Kees Cook
  2024-01-29  6:27  7%   ` Kees Cook
  1 sibling, 0 replies; 200+ results
From: Kees Cook @ 2024-01-23 21:56 UTC (permalink / raw)
  To: Mark Rutland
  Cc: linux-hardening, Gustavo A. R. Silva, Bill Wendling,
	Justin Stitt, linux-kernel

On Tue, Jan 23, 2024 at 09:46:35AM +0000, Mark Rutland wrote:
> With that in mind, I note that this patch primarily modifies addition
> operations, but leaves subtraction operations unchanged (even though those
> permit the value to go below the minimum, or above the maximum if a negative
> value is used as the subtrahend).

Right, this was kind of a "first pass" on what I'd found so far.

> Shouldn't we address both at the same time? I'll note that in many places the
> same logic is used for both the add and sub, and can legitimately overflow or
> underflow; I hope that whatever we use to suppress overflow warnings also
> ignores underflow.
> 
> [...]
> 
> Looking at the diffstat, I think you've missed a few places:
> 
> [...]
> 
> This misses the include/asm-generic/{atomic,atomic64}.h implementations.
> 
> This also misses the include/linux/atomic/atomic-arch-fallback.h
> implementations. Those are generated from the scripts/atomic/fallbacks/*
> templates, and you'll need to adjust at least fetch_add_unless and
> inc_unless_negative. As noted on other patches, my preference is to use
> add_wrap() in those.
> [...]
> This misses lib/atomic64.c.

Thanks! I'll take a closer look at places we can use the helpers on the
atomics.

-Kees

-- 
Kees Cook

^ permalink raw reply	[relevance 7%]

* Re: [PATCH] crypto: sun8i-ce - Use kcalloc() instead of kzalloc()
  2024-01-21 15:34  4% [PATCH] crypto: sun8i-ce - Use kcalloc() instead of kzalloc() Erick Archer
  2024-01-22 17:53  0% ` Gustavo A. R. Silva
@ 2024-01-23 17:45  0% ` Jernej Škrabec
  2024-01-26  9:06  0% ` Herbert Xu
  2 siblings, 0 replies; 200+ results
From: Jernej Škrabec @ 2024-01-23 17:45 UTC (permalink / raw)
  To: Corentin Labbe, Herbert Xu, David S. Miller, Chen-Yu Tsai,
	Samuel Holland, Jonathan Corbet, Gustavo A. R. Silva,
	Erick Archer
  Cc: Erick Archer, linux-crypto, linux-arm-kernel, linux-sunxi,
	linux-kernel, linux-hardening

Dne nedelja, 21. januar 2024 ob 16:34:07 CET je Erick Archer napisal(a):
> As noted in the "Deprecated Interfaces, Language Features, Attributes,
> and Conventions" documentation [1], size calculations (especially
> multiplication) should not be performed in memory allocator (or similar)
> function arguments due to the risk of them overflowing. This could lead
> to values wrapping around and a smaller allocation being made than the
> caller was expecting. Using those allocations could lead to linear
> overflows of heap memory and other misbehaviors.
> 
> So, use the purpose specific kcalloc() function instead of the argument
> size * count in the kzalloc() function.
> 
> Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
> Link: https://github.com/KSPP/linux/issues/162
> Signed-off-by: Erick Archer <erick.archer@gmx.com>

Acked-by: Jernej Skrabec <jernej.skrabec@gmail.com>

Best regards,
Jernej





^ permalink raw reply	[relevance 0%]

* Re: [PATCH] crypto: qat - use kcalloc_node() instead of kzalloc_node()
  2024-01-21 16:40  4% [PATCH] crypto: qat - use kcalloc_node() instead of kzalloc_node() Erick Archer
  2024-01-22 17:55  0% ` Gustavo A. R. Silva
@ 2024-01-23 12:16  0% ` Cabiddu, Giovanni
  2024-01-26  9:06  0% ` Herbert Xu
  2 siblings, 0 replies; 200+ results
From: Cabiddu, Giovanni @ 2024-01-23 12:16 UTC (permalink / raw)
  To: Erick Archer
  Cc: Herbert Xu, David S. Miller, Tero Kristo, Andy Shevchenko,
	Damian Muszynski, Shashank Gupta, Tom Zanussi,
	Gustavo A. R. Silva, qat-linux, linux-crypto, linux-kernel,
	linux-hardening

On Sun, Jan 21, 2024 at 05:40:43PM +0100, Erick Archer wrote:
> As noted in the "Deprecated Interfaces, Language Features, Attributes,
> and Conventions" documentation [1], size calculations (especially
> multiplication) should not be performed in memory allocator (or similar)
> function arguments due to the risk of them overflowing. This could lead
> to values wrapping around and a smaller allocation being made than the
> caller was expecting. Using those allocations could lead to linear
> overflows of heap memory and other misbehaviors.
> 
> So, use the purpose specific kcalloc_node() function instead of the
> argument count * size in the kzalloc_node() function.
> 
> Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
> Link: https://github.com/KSPP/linux/issues/162
> Signed-off-by: Erick Archer <erick.archer@gmx.com>
Acked-by: Giovanni Cabiddu <giovanni.cabiddu@intel.com>

^ permalink raw reply	[relevance 0%]

* Re: [PATCH] wifi: iwlegacy: Use kcalloc() instead of kzalloc()
  2024-01-19 17:16  5% [PATCH] wifi: iwlegacy: " Erick Archer
  2024-01-19 17:44  0% ` Gustavo A. R. Silva
  2024-01-21 12:15  0% ` Stanislaw Gruszka
@ 2024-01-23 11:51  0% ` Kalle Valo
  2 siblings, 0 replies; 200+ results
From: Kalle Valo @ 2024-01-23 11:51 UTC (permalink / raw)
  To: Erick Archer
  Cc: Stanislaw Gruszka, Gustavo A. R. Silva, Erick Archer,
	linux-wireless, linux-kernel, linux-hardening

Erick Archer <erick.archer@gmx.com> wrote:

> As noted in the "Deprecated Interfaces, Language Features, Attributes,
> and Conventions" documentation [1], size calculations (especially
> multiplication) should not be performed in memory allocator (or similar)
> function arguments due to the risk of them overflowing. This could lead
> to values wrapping around and a smaller allocation being made than the
> caller was expecting. Using those allocations could lead to linear
> overflows of heap memory and other misbehaviors.
> 
> So, use the purpose specific kcalloc() function instead of the argument
> size * count in the kzalloc() function.
> 
> Also, it is preferred to use sizeof(*pointer) instead of sizeof(type)
> due to the type of the variable can change and one needs not change the
> former (unlike the latter).
> 
> Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
> Link: https://github.com/KSPP/linux/issues/162
> Signed-off-by: Erick Archer <erick.archer@gmx.com>
> Reviewed-by: Gustavo A. R. Silva <gustavoars@kernel.org>
> Acked-by: Stanislaw Gruszka <stf_xl@wp.pl>

Patch applied to wireless-next.git, thanks.

acf868ff60b1 wifi: iwlegacy: Use kcalloc() instead of kzalloc()

-- 
https://patchwork.kernel.org/project/linux-wireless/patch/20240119171655.7740-1-erick.archer@gmx.com/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches


^ permalink raw reply	[relevance 0%]

* Re: [PATCH 00/82] overflow: Refactor open-coded arithmetic wrap-around
  2024-01-23  0:26  9% [PATCH 00/82] overflow: Refactor open-coded arithmetic wrap-around Kees Cook
                   ` (2 preceding siblings ...)
  2024-01-23  2:22  7% ` [PATCH 00/82] overflow: " Kent Overstreet
@ 2024-01-23  9:46  7% ` Mark Rutland
  2024-01-23 21:56  7%   ` Kees Cook
  2024-01-29  6:27  7%   ` Kees Cook
  3 siblings, 2 replies; 200+ results
From: Mark Rutland @ 2024-01-23  9:46 UTC (permalink / raw)
  To: Kees Cook
  Cc: linux-hardening, Gustavo A. R. Silva, Bill Wendling,
	Justin Stitt, linux-kernel

On Mon, Jan 22, 2024 at 04:26:35PM -0800, Kees Cook wrote:
> Hi,

Hi Kees,

> In our continuing effort to eliminate root causes of flaws in the kernel,
> this series is the start to providing a way to have sensible coverage
> for catching unexpected arithmetic wrap-around.
> 
> A quick word on language: while discussing[1] the finer details of
> the C standard's view on arithmetic, I was disabused of using the term
> "overflow" when what I really mean is "wrap-around". When describing
> security vulnerabilities, "overflow" is the common term and often used
> interchangeably with "wrap-around". Strictly speaking, though, "overflow"
> applies only to signed[2] and pointer[3] types, and "wrap-around" is for
> unsigned[4]. An arithmetic "overflow" is considered undefined behavior,
> which has caused our builds pain in the past, since "impossible"
> conditions might get elided by the compiler. As a result, we build
> with -fno-strict-overflow which coverts all "overflow" conditions into
> "wrap-around" (i.e. 2s complement), regardless of type.
> 
> All this is to say I am discussing arithmetic wrap-around, which is
> the condition where the value exceeds a type's maximum value (or goes
> below its minimum value) and wraps around. I'm not interested in the
> narrow definition of "undefined behavior" -- we need to stamp out the
> _unexpected_ behavior, where the kernel operates on a pathological value
> that wrapped around without the code author's intent.

With that in mind, I note that this patch primarily modifies addition
operations, but leaves subtraction operations unchanged (even though those
permit the value to go below the minimum, or above the maximum if a negative
value is used as the subtrahend).

Shouldn't we address both at the same time? I'll note that in many places the
same logic is used for both the add and sub, and can legitimately overflow or
underflow; I hope that whatever we use to suppress overflow warnings also
ignores underflow.

[...]

Looking at the diffstat, I think you've missed a few places:

>  Documentation/process/deprecated.rst          | 36 ++++++++
>  arch/arc/kernel/unwind.c                      |  7 +-
>  arch/arm/nwfpe/softfloat.c                    |  2 +-
>  arch/arm64/include/asm/atomic_lse.h           |  8 +-
>  arch/arm64/include/asm/stacktrace/common.h    |  2 +-
>  arch/arm64/kvm/vgic/vgic-kvm-device.c         |  6 +-
>  arch/arm64/kvm/vgic/vgic-mmio-v3.c            |  2 +-
>  arch/arm64/kvm/vgic/vgic-v2.c                 | 10 ++-
>  arch/m68k/kernel/sys_m68k.c                   |  5 +-
>  arch/nios2/kernel/sys_nios2.c                 |  2 +-
>  arch/powerpc/platforms/powernv/opal-prd.c     |  2 +-
>  arch/powerpc/xmon/xmon.c                      |  2 +-
>  arch/s390/include/asm/stacktrace.h            |  6 +-
>  arch/s390/kernel/machine_kexec_file.c         |  5 +-
>  arch/s390/mm/gmap.c                           |  4 +-
>  arch/s390/mm/vmem.c                           |  2 +-
>  arch/sh/kernel/sys_sh.c                       |  2 +-
>  arch/x86/include/asm/atomic.h                 |  2 +-
>  arch/x86/kernel/cpu/sgx/ioctl.c               |  6 +-
>  arch/x86/kvm/svm/sev.c                        |  5 +-
>  crypto/adiantum.c                             |  2 +-
>  drivers/acpi/custom_method.c                  |  2 +-
>  drivers/char/agp/generic.c                    |  2 +-
>  drivers/crypto/amcc/crypto4xx_alg.c           |  2 +-
>  drivers/crypto/axis/artpec6_crypto.c          |  2 +-
>  drivers/dma-buf/dma-buf.c                     |  7 +-
>  drivers/fpga/dfl.c                            |  5 +-
>  drivers/fsi/fsi-core.c                        |  6 +-
>  drivers/gpu/drm/i915/i915_vma.c               |  2 +-
>  drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.c |  8 +-
>  drivers/gpu/drm/vc4/vc4_validate.c            |  7 +-
>  drivers/md/dm-switch.c                        |  2 +-
>  drivers/md/dm-verity-target.c                 |  2 +-
>  drivers/md/dm-writecache.c                    |  2 +-
>  drivers/net/ethernet/sun/niu.c                |  5 +-
>  drivers/net/wireless/ath/wil6210/wmi.c        |  2 +-
>  drivers/net/wireless/marvell/mwifiex/pcie.c   |  6 +-
>  drivers/net/xen-netback/hash.c                |  2 +-
>  drivers/pci/pci.c                             |  2 +-
>  drivers/remoteproc/pru_rproc.c                |  2 +-
>  drivers/remoteproc/remoteproc_elf_loader.c    |  2 +-
>  drivers/remoteproc/remoteproc_virtio.c        |  4 +-
>  drivers/scsi/mpt3sas/mpt3sas_ctl.c            |  2 +-
>  drivers/scsi/sd_zbc.c                         |  2 +-
>  drivers/staging/vme_user/vme.c                |  2 +-
>  drivers/vhost/vringh.c                        |  8 +-
>  drivers/virtio/virtio_pci_modern_dev.c        |  4 +-
>  fs/aio.c                                      |  2 +-
>  fs/bcachefs/bkey.c                            |  4 +-
>  fs/bcachefs/fs.c                              |  2 +-
>  fs/bcachefs/quota.c                           |  2 +-
>  fs/bcachefs/util.c                            |  2 +-
>  fs/btrfs/extent_map.c                         |  6 +-
>  fs/btrfs/extent_map.h                         |  6 +-
>  fs/btrfs/ordered-data.c                       |  2 +-
>  fs/ext4/block_validity.c                      |  2 +-
>  fs/ext4/extents.c                             |  5 +-
>  fs/ext4/resize.c                              |  2 +-
>  fs/f2fs/file.c                                |  2 +-
>  fs/f2fs/verity.c                              |  2 +-
>  fs/hpfs/alloc.c                               |  2 +-
>  fs/ntfs3/record.c                             |  4 +-
>  fs/ocfs2/resize.c                             |  2 +-
>  fs/read_write.c                               |  8 +-
>  fs/remap_range.c                              |  2 +-
>  fs/select.c                                   | 13 +--
>  fs/smb/client/readdir.c                       |  5 +-
>  fs/smb/client/smb2pdu.c                       |  4 +-
>  fs/udf/balloc.c                               |  4 +-
>  include/linux/compiler_types.h                | 29 +++++-

This misses the include/asm-generic/{atomic,atomic64}.h implementations.

This also misses the include/linux/atomic/atomic-arch-fallback.h
implementations. Those are generated from the scripts/atomic/fallbacks/*
templates, and you'll need to adjust at least fetch_add_unless and
inc_unless_negative. As noted on other patches, my preference is to use
add_wrap() in those.

>  include/linux/overflow.h                      | 76 +++++++++++++++-
>  ipc/mqueue.c                                  |  2 +-
>  ipc/shm.c                                     |  6 +-
>  kernel/bpf/verifier.c                         | 12 +--
>  kernel/time/timekeeping.c                     |  2 +-
>  lib/Kconfig.ubsan                             | 27 ++++++

This misses lib/atomic64.c.

Thanks,
Mark.

^ permalink raw reply	[relevance 7%]

* Re: [PATCH v2] Documentation: power: Use kcalloc() instead of kzalloc()
  2024-01-21 10:43  4% [PATCH v2] Documentation: power: " Erick Archer
  2024-01-22 17:11  0% ` Hu Haowen
@ 2024-01-23  6:11  0% ` Viresh Kumar
  1 sibling, 0 replies; 200+ results
From: Viresh Kumar @ 2024-01-23  6:11 UTC (permalink / raw)
  To: Erick Archer
  Cc: Viresh Kumar, Nishanth Menon, Stephen Boyd, Rafael J. Wysocki,
	Len Brown, Pavel Machek, Alex Shi, Yanteng Si, Jonathan Corbet,
	Gustavo A. R. Silva, Hu Haowen, linux-pm, linux-kernel,
	linux-doc, linux-hardening

On 21-01-24, 11:43, Erick Archer wrote:
> As noted in the "Deprecated Interfaces, Language Features, Attributes,
> and Conventions" documentation [1], size calculations (especially
> multiplication) should not be performed in memory allocator (or similar)
> function arguments due to the risk of them overflowing. This could lead
> to values wrapping around and a smaller allocation being made than the
> caller was expecting. Using those allocations could lead to linear
> overflows of heap memory and other misbehaviors.
> 
> So, in the example code use the purpose specific kcalloc() function
> instead of the argument size * count in the kzalloc() function.
> 
> At the same time, modify the translations accordingly.
> 
> Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
> Link: https://github.com/KSPP/linux/issues/162
> Signed-off-by: Erick Archer <erick.archer@gmx.com>

Applied. Thanks.

-- 
viresh

^ permalink raw reply	[relevance 0%]

* Re: [PATCH 00/82] overflow: Refactor open-coded arithmetic wrap-around
  2024-01-23  2:22  7% ` [PATCH 00/82] overflow: " Kent Overstreet
@ 2024-01-23  2:51  7%   ` Kees Cook
  0 siblings, 0 replies; 200+ results
From: Kees Cook @ 2024-01-23  2:51 UTC (permalink / raw)
  To: Kent Overstreet, Kees Cook
  Cc: linux-hardening, Gustavo A. R. Silva, Bill Wendling,
	Justin Stitt, linux-kernel



On January 22, 2024 6:22:13 PM PST, Kent Overstreet <kent.overstreet@linux.dev> wrote:
>On Mon, Jan 22, 2024 at 04:26:35PM -0800, Kees Cook wrote:
>> In our continuing effort to eliminate root causes of flaws in the kernel,
>> this series is the start to providing a way to have sensible coverage
>> for catching unexpected arithmetic wrap-around.
>> 
>This all seems fine, but... Rust already has this at the type system
>level....
>
>I know you're not one of the people bringing bickering into the Rust
>threads, so I'm wondering if perhaps your secret plan is to annoy the
>die hard "I want everything to be fast with razor blades everywhere" C
>programmers enough to finally get onboard the "let's just switch to a
>language with less razor wire" train.

I don't want to annoy anyone, but yeah, in the process of getting rid of dangerous stuff we do end up asking people to make changes they're not used to. I hope to make it as easy as possible, though.

I'm a big fan of Rust, but I know it's not going to happen over night; there is a LOT of C code in Linux. :) I look at making the kernel safer by removing as many C foot-guns as possible. As we remove the ambiguities in C that lead to vulnerabilities, we'll eventually meet halfway with the new Rust code.

-Kees

-- 
Kees Cook

^ permalink raw reply	[relevance 7%]

* Re: [PATCH 00/82] overflow: Refactor open-coded arithmetic wrap-around
  2024-01-23  0:26  9% [PATCH 00/82] overflow: Refactor open-coded arithmetic wrap-around Kees Cook
  2024-01-23  0:26  6% ` [PATCH 04/82] docs: deprecated.rst: deprecate " Kees Cook
  2024-01-23  0:26  6% ` [PATCH 05/82] cocci: Refactor " Kees Cook
@ 2024-01-23  2:22  7% ` Kent Overstreet
  2024-01-23  2:51  7%   ` Kees Cook
  2024-01-23  9:46  7% ` Mark Rutland
  3 siblings, 1 reply; 200+ results
From: Kent Overstreet @ 2024-01-23  2:22 UTC (permalink / raw)
  To: Kees Cook
  Cc: linux-hardening, Gustavo A. R. Silva, Bill Wendling,
	Justin Stitt, linux-kernel

On Mon, Jan 22, 2024 at 04:26:35PM -0800, Kees Cook wrote:
> Hi,
> 
> In our continuing effort to eliminate root causes of flaws in the kernel,
> this series is the start to providing a way to have sensible coverage
> for catching unexpected arithmetic wrap-around.
> 
> A quick word on language: while discussing[1] the finer details of
> the C standard's view on arithmetic, I was disabused of using the term
> "overflow" when what I really mean is "wrap-around". When describing
> security vulnerabilities, "overflow" is the common term and often used
> interchangeably with "wrap-around". Strictly speaking, though, "overflow"
> applies only to signed[2] and pointer[3] types, and "wrap-around" is for
> unsigned[4]. An arithmetic "overflow" is considered undefined behavior,
> which has caused our builds pain in the past, since "impossible"
> conditions might get elided by the compiler. As a result, we build
> with -fno-strict-overflow which coverts all "overflow" conditions into
> "wrap-around" (i.e. 2s complement), regardless of type.
> 
> All this is to say I am discussing arithmetic wrap-around, which is
> the condition where the value exceeds a type's maximum value (or goes
> below its minimum value) and wraps around. I'm not interested in the
> narrow definition of "undefined behavior" -- we need to stamp out the
> _unexpected_ behavior, where the kernel operates on a pathological value
> that wrapped around without the code author's intent.
> 
> As always, this is about being able disambiguate the intent of arithmetic
> in the kernel. We intentionally use wrapping arithmetic in all kinds of
> places, but we need to be able to annotate it as such going forward so
> the compiler can distinguish when it needs to perform instrumentation
> (when such instrumentation is enabled).
> 
> Getting back to my earlier mention of -fno-strict-overflow, the bulk of
> the series is refactoring for a common code pattern in the kernel where
> to test for potentially overflowing addition, the addition is performed,
> and wrap-around is tested for. This is what originally[5] caused us to
> enable -fno-strict-overflow:
> 
> 	var + offset < var
> 
> For these cases we can use either check_add_overflow() or
> add_would_overflow(). These helpers will not trip the wrap-around
> instrumentation, and do not depend on the whims of the compiler options.
> (Note that I have no intention of removing -fno-strict-overflow any
> time soon, if ever. As with all these kinds of changes, we need to
> evolve our support for it, and we can't introduce undefined behavior
> into the kernel.)
> 
> This series is mainly 3 parts:

This all seems fine, but... Rust already has this at the type system
level....

I know you're not one of the people bringing bickering into the Rust
threads, so I'm wondering if perhaps your secret plan is to annoy the
die hard "I want everything to be fast with razor blades everywhere" C
programmers enough to finally get onboard the "let's just switch to a
language with less razor wire" train.

^ permalink raw reply	[relevance 7%]

* Re: [PATCH v2] Documentation: power: Use kcalloc() instead of kzalloc()
  2024-01-22 17:11  0% ` Hu Haowen
@ 2024-01-23  1:30  0%   ` Yanteng Si
  0 siblings, 0 replies; 200+ results
From: Yanteng Si @ 2024-01-23  1:30 UTC (permalink / raw)
  To: Hu Haowen, Erick Archer, Viresh Kumar, Nishanth Menon,
	Stephen Boyd, Rafael J. Wysocki, Len Brown, Pavel Machek,
	Alex Shi, Jonathan Corbet, Gustavo A. R. Silva
  Cc: linux-pm, linux-kernel, linux-doc, linux-hardening


在 2024/1/23 01:11, Hu Haowen 写道:
>
> 在 2024/1/21 18:43, Erick Archer 写道:
>> As noted in the "Deprecated Interfaces, Language Features, Attributes,
>> and Conventions" documentation [1], size calculations (especially
>> multiplication) should not be performed in memory allocator (or similar)
>> function arguments due to the risk of them overflowing. This could lead
>> to values wrapping around and a smaller allocation being made than the
>> caller was expecting. Using those allocations could lead to linear
>> overflows of heap memory and other misbehaviors.
>>
>> So, in the example code use the purpose specific kcalloc() function
>> instead of the argument size * count in the kzalloc() function.
>>
>> At the same time, modify the translations accordingly.
>>
>> Link: 
>> https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments 
>> [1]
>> Link: https://github.com/KSPP/linux/issues/162
>> Signed-off-by: Erick Archer <erick.archer@gmx.com>
>> ---
>> Hi,
>>
>> This patch is a merger of two previous ones [1] [2].
>> As Hu Haowen and Jonathan Corbet suggested, the translation change
>> only makes sense if the original file is modified. So, with this
>> v2 version the original file and the translations are modified at
>> the same time.
>>
>> [1] 
>> https://lore.kernel.org/linux-hardening/20240120120527.3866-1-erick.archer@gmx.com/
>> [2] 
>> https://lore.kernel.org/linux-hardening/20240120122204.4287-1-erick.archer@gmx.com/
>>
>> Thanks,
>> Erick
>> ---
>>   Documentation/power/opp.rst                    | 2 +-
>>   Documentation/translations/zh_CN/power/opp.rst | 2 +-
>>   2 files changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/Documentation/power/opp.rst b/Documentation/power/opp.rst
>> index a7c03c470980..1b7f1d854f14 100644
>> --- a/Documentation/power/opp.rst
>> +++ b/Documentation/power/opp.rst
>> @@ -305,7 +305,7 @@ dev_pm_opp_get_opp_count
>>        {
>>           /* Do things */
>>           num_available = dev_pm_opp_get_opp_count(dev);
>> -        speeds = kzalloc(sizeof(u32) * num_available, GFP_KERNEL);
>> +        speeds = kcalloc(num_available, sizeof(u32), GFP_KERNEL);
>>           /* populate the table in increasing order */
>>           freq = 0;
>>           while (!IS_ERR(opp = dev_pm_opp_find_freq_ceil(dev, &freq))) {
>> diff --git a/Documentation/translations/zh_CN/power/opp.rst 
>> b/Documentation/translations/zh_CN/power/opp.rst
>> index 8d6e3f6f6202..7470fa2d4c43 100644
>> --- a/Documentation/translations/zh_CN/power/opp.rst
>> +++ b/Documentation/translations/zh_CN/power/opp.rst
>> @@ -274,7 +274,7 @@ dev_pm_opp_get_opp_count
>>        {
>>           /* 做一些事情 */
>>           num_available = dev_pm_opp_get_opp_count(dev);
>> -        speeds = kzalloc(sizeof(u32) * num_available, GFP_KERNEL);
>> +        speeds = kcalloc(num_available, sizeof(u32), GFP_KERNEL);
>
>
> For the zh_CN translation,
>
> Reviewed-by: Hu Haowen <2023002089@link.tyut.edu.cn>


Same here,

Reviewed-by: Yanteng Si <siyanteng@loongson.cn>


Thanks,

Yanteng

>
>
> Thanks,
>
> Hu Haowen
>
>
>>           /* 按升序填充表 */
>>           freq = 0;
>>           while (!IS_ERR(opp = dev_pm_opp_find_freq_ceil(dev, &freq))) {
>> -- 
>> 2.25.1
>>
>>
>>


^ permalink raw reply	[relevance 0%]

* [PATCH 05/82] cocci: Refactor open-coded arithmetic wrap-around
  2024-01-23  0:26  9% [PATCH 00/82] overflow: Refactor open-coded arithmetic wrap-around Kees Cook
  2024-01-23  0:26  6% ` [PATCH 04/82] docs: deprecated.rst: deprecate " Kees Cook
@ 2024-01-23  0:26  6% ` Kees Cook
  2024-01-23  2:22  7% ` [PATCH 00/82] overflow: " Kent Overstreet
  2024-01-23  9:46  7% ` Mark Rutland
  3 siblings, 0 replies; 200+ results
From: Kees Cook @ 2024-01-23  0:26 UTC (permalink / raw)
  To: linux-hardening
  Cc: Kees Cook, Julia Lawall, Nicolas Palix, Gustavo A. R. Silva,
	Justin Stitt, cocci, Bill Wendling, linux-kernel

In pursuit of gaining full kernel instrumentation for signed[1],
unsigned[2], and pointer[3] arithmetic overflow, we need to replace
the handful of instances in the kernel where we intentionally depend on
arithmetic wrap-around. Introduce Coccinelle script for finding these
and replacing them with the new add_would_overflow() helper, for this
common code pattern:

	if (VAR + OFFSET < VAR) ...

Link: https://github.com/KSPP/linux/issues/26 [1]
Link: https://github.com/KSPP/linux/issues/27 [2]
Link: https://github.com/KSPP/linux/issues/344 [3]
Cc: Julia Lawall <Julia.Lawall@inria.fr>
Cc: Nicolas Palix <nicolas.palix@imag.fr>
Cc: "Gustavo A. R. Silva" <gustavoars@kernel.org>
Cc: Justin Stitt <justinstitt@google.com>
Cc: cocci@inria.fr
Signed-off-by: Kees Cook <keescook@chromium.org>
---
 .../coccinelle/misc/add_would_overflow.cocci  | 70 +++++++++++++++++++
 1 file changed, 70 insertions(+)
 create mode 100644 scripts/coccinelle/misc/add_would_overflow.cocci

diff --git a/scripts/coccinelle/misc/add_would_overflow.cocci b/scripts/coccinelle/misc/add_would_overflow.cocci
new file mode 100644
index 000000000000..b9b67c9c3714
--- /dev/null
+++ b/scripts/coccinelle/misc/add_would_overflow.cocci
@@ -0,0 +1,70 @@
+// SPDX-License-Identifier: GPL-2.0-only
+///
+/// Replace intentional wrap-around addition with calls to
+/// check_add_overflow() and add_would_overflow(), see
+/// Documentation/process/deprecated.rst
+///
+//
+// Confidence: High
+// Comments:
+// Options: --no-includes --include-headers
+
+virtual context
+virtual report
+virtual org
+virtual patch
+
+@report_wrap_sum depends on !patch@
+type RESULT;
+RESULT VAR;
+expression OFFSET;
+@@
+
+ {
+        RESULT sum;
+        ...
+        (
+*       VAR + OFFSET < VAR
+        )
+        ...
+        (
+        VAR + OFFSET
+        )
+        ...
+ }
+
+@wrap_sum depends on patch@
+type RESULT;
+RESULT VAR;
+expression OFFSET;
+@@
+
+ {
++       RESULT sum;
+        ...
+        (
+-       VAR + OFFSET < VAR
++       check_add_overflow(VAR, OFFSET, &sum)
+        )
+        ...
+        (
+-       VAR + OFFSET
++       sum
+        )
+        ...
+ }
+
+@report_wrap depends on !patch && !report_wrap_sum@
+identifier PTR;
+expression OFFSET;
+@@
+
+*       PTR + OFFSET < PTR
+
+@patch_wrap depends on patch && !wrap_sum@
+identifier PTR;
+expression OFFSET;
+@@
+
+-       PTR + OFFSET < PTR
++       add_would_overflow(PTR, OFFSET)
-- 
2.34.1


^ permalink raw reply related	[relevance 6%]

* [PATCH 04/82] docs: deprecated.rst: deprecate open-coded arithmetic wrap-around
  2024-01-23  0:26  9% [PATCH 00/82] overflow: Refactor open-coded arithmetic wrap-around Kees Cook
@ 2024-01-23  0:26  6% ` Kees Cook
  2024-01-23  0:26  6% ` [PATCH 05/82] cocci: Refactor " Kees Cook
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 200+ results
From: Kees Cook @ 2024-01-23  0:26 UTC (permalink / raw)
  To: linux-hardening
  Cc: Kees Cook, Jonathan Corbet, Gustavo A. R. Silva, Justin Stitt,
	workflows, linux-doc, Bill Wendling, linux-kernel

In pursuit of gaining full kernel instrumentation for signed[1],
unsigned[2], and pointer[3] arithmetic overflow, we need to replace
the handful of instances in the kernel where we intentionally depend on
arithmetic wrap-around. Document this goal and provide an example for
the most common code pattern, checking for simple overflow:

	if (VAR + OFFSET < VAR) ...

Link: https://github.com/KSPP/linux/issues/26 [1]
Link: https://github.com/KSPP/linux/issues/27 [2]
Link: https://github.com/KSPP/linux/issues/344 [3]
Cc: Jonathan Corbet <corbet@lwn.net>
Cc: "Gustavo A. R. Silva" <gustavoars@kernel.org>
Cc: Justin Stitt <justinstitt@google.com>
Cc: workflows@vger.kernel.org
Cc: linux-doc@vger.kernel.org
Signed-off-by: Kees Cook <keescook@chromium.org>
---
 Documentation/process/deprecated.rst | 32 ++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)

diff --git a/Documentation/process/deprecated.rst b/Documentation/process/deprecated.rst
index 1f7f3e6c9cda..270f3af13b86 100644
--- a/Documentation/process/deprecated.rst
+++ b/Documentation/process/deprecated.rst
@@ -109,6 +109,38 @@ For more details, also see array3_size() and flex_array_size(),
 as well as the related check_mul_overflow(), check_add_overflow(),
 check_sub_overflow(), and check_shl_overflow() family of functions.
 
+open-coded intentional arithmetic wrap-around
+---------------------------------------------
+Depending on arithmetic wrap-around without annotations means the
+kernel cannot distinguish between intentional wrap-around and accidental
+wrap-around (when using things like the overflow sanitizers).
+
+For example, where an addition is intended to wrap around::
+
+	magic = counter + rotation;
+
+please use the add_wrap() helper::
+
+	magic = add_wrap(counter, rotation);
+
+Another common code pattern in the kernel open coded testing for overflow
+by performing an overflow and looking for wrap-around::
+
+	if (var + offset < var) ...
+
+Instead, use either check_add_overflow() (when you want to use the
+resulting sum when it doesn't overflow) or add_would_overflow()::
+
+	if (add_would_overflow(var, offset)) ...
+
+In rare cases where helpers aren't available (e.g. in early boot code,
+etc) but overflow instrumentation still needs to be avoided, it can be
+replaced with a type max subtraction test instead::
+
+	int var;
+	...
+	if (INT_MAX - var < offset) ...
+
 simple_strtol(), simple_strtoll(), simple_strtoul(), simple_strtoull()
 ----------------------------------------------------------------------
 The simple_strtol(), simple_strtoll(),
-- 
2.34.1


^ permalink raw reply related	[relevance 6%]

* [PATCH 00/82] overflow: Refactor open-coded arithmetic wrap-around
@ 2024-01-23  0:26  9% Kees Cook
  2024-01-23  0:26  6% ` [PATCH 04/82] docs: deprecated.rst: deprecate " Kees Cook
                   ` (3 more replies)
  0 siblings, 4 replies; 200+ results
From: Kees Cook @ 2024-01-23  0:26 UTC (permalink / raw)
  To: linux-hardening
  Cc: Kees Cook, Gustavo A. R. Silva, Bill Wendling, Justin Stitt,
	linux-kernel

Hi,

In our continuing effort to eliminate root causes of flaws in the kernel,
this series is the start to providing a way to have sensible coverage
for catching unexpected arithmetic wrap-around.

A quick word on language: while discussing[1] the finer details of
the C standard's view on arithmetic, I was disabused of using the term
"overflow" when what I really mean is "wrap-around". When describing
security vulnerabilities, "overflow" is the common term and often used
interchangeably with "wrap-around". Strictly speaking, though, "overflow"
applies only to signed[2] and pointer[3] types, and "wrap-around" is for
unsigned[4]. An arithmetic "overflow" is considered undefined behavior,
which has caused our builds pain in the past, since "impossible"
conditions might get elided by the compiler. As a result, we build
with -fno-strict-overflow which coverts all "overflow" conditions into
"wrap-around" (i.e. 2s complement), regardless of type.

All this is to say I am discussing arithmetic wrap-around, which is
the condition where the value exceeds a type's maximum value (or goes
below its minimum value) and wraps around. I'm not interested in the
narrow definition of "undefined behavior" -- we need to stamp out the
_unexpected_ behavior, where the kernel operates on a pathological value
that wrapped around without the code author's intent.

As always, this is about being able disambiguate the intent of arithmetic
in the kernel. We intentionally use wrapping arithmetic in all kinds of
places, but we need to be able to annotate it as such going forward so
the compiler can distinguish when it needs to perform instrumentation
(when such instrumentation is enabled).

Getting back to my earlier mention of -fno-strict-overflow, the bulk of
the series is refactoring for a common code pattern in the kernel where
to test for potentially overflowing addition, the addition is performed,
and wrap-around is tested for. This is what originally[5] caused us to
enable -fno-strict-overflow:

	var + offset < var

For these cases we can use either check_add_overflow() or
add_would_overflow(). These helpers will not trip the wrap-around
instrumentation, and do not depend on the whims of the compiler options.
(Note that I have no intention of removing -fno-strict-overflow any
time soon, if ever. As with all these kinds of changes, we need to
evolve our support for it, and we can't introduce undefined behavior
into the kernel.)

This series is mainly 3 parts:

 - documentation, a coccinelle script, and new/improved helpers
 - (re)introduction of the overflow sanitizers
 - refactoring the "please wrap around to see if I wrapped around" tests

While this work is underway in the kernel, there will be complementary
work happening in GCC and Clang to expand the existing sanitizers
to behave correctly with -fno-strict-overflow. In the meantime, the
sanitizers are excluded from CONFIG_COMPILE_TEST.

-Kees

[1] https://gcc.gnu.org/pipermail/gcc-patches/2023-September/630578.html
[2] https://github.com/KSPP/linux/issues/26
[3] https://github.com/KSPP/linux/issues/344
[4] https://github.com/KSPP/linux/issues/27
[5] https://bugzilla.kernel.org/show_bug.cgi?id=12597

Kees Cook (82):
  overflow: Expand check_add_overflow() for pointer addition
  overflow: Introduce add_would_overflow()
  overflow: Introduce add_wrap()
  docs: deprecated.rst: deprecate open-coded arithmetic wrap-around
  cocci: Refactor open-coded arithmetic wrap-around
  overflow: Reintroduce signed and unsigned overflow sanitizers
  overflow: Introduce CONFIG_UBSAN_POINTER_WRAP
  iov_iter: Avoid wrap-around instrumentation in
    copy_compat_iovec_from_user
  select: Avoid wrap-around instrumentation in do_sys_poll()
  locking/atomic/x86: Silence intentional wrapping addition
  arm64: atomics: lse: Silence intentional wrapping addition
  ipv4: Silence intentional wrapping addition
  btrfs: Refactor intentional wrap-around calculation
  smb: client: Refactor intentional wrap-around calculation
  dma-buf: Refactor intentional wrap-around calculation
  drm/nouveau/mmu: Refactor intentional wrap-around calculation
  drm/vc4: Refactor intentional wrap-around calculation
  ext4: Refactor intentional wrap-around calculation
  fs: Refactor intentional wrap-around calculation
  fpga: dfl: Refactor intentional wrap-around calculation
  drivers/fsi: Refactor intentional wrap-around calculation
  x86/sgx: Refactor intentional wrap-around calculation
  KVM: Refactor intentional wrap-around calculation
  KVM: arm64: vgic: Refactor intentional wrap-around calculation
  KVM: SVM: Refactor intentional wrap-around calculation
  buildid: Refactor intentional wrap-around calculation
  m68k: Refactor intentional wrap-around calculation
  niu: Refactor intentional wrap-around calculation
  rds: Refactor intentional wrap-around calculation
  s390/kexec_file: Refactor intentional wrap-around calculation
  ARC: dw2 unwind: Refactor intentional wrap-around calculation
  vringh: Refactor intentional wrap-around calculation
  mm/vmalloc: Refactor intentional wrap-around calculation
  ipc: Refactor intentional wrap-around calculation
  ACPI: custom_method: Refactor intentional wrap-around test
  agp: Refactor intentional wrap-around test
  aio: Refactor intentional wrap-around test
  arm: 3117/1: Refactor intentional wrap-around test
  crypto: Refactor intentional wrap-around test
  arm64: stacktrace: Refactor intentional wrap-around test
  wil6210: Refactor intentional wrap-around test
  bcachefs: Refactor intentional wrap-around test
  bpf: Refactor intentional wrap-around test
  btrfs: Refactor intentional wrap-around test
  cifs: Refactor intentional wrap-around test
  crypto: Refactor intentional wrap-around test
  dm verity: Refactor intentional wrap-around test
  drm/nouveau/mmu: Refactor intentional wrap-around test
  drm/i915: Refactor intentional wrap-around test
  drm/vc4: Refactor intentional wrap-around test
  ext4: Refactor intentional wrap-around test
  f2fs: Refactor intentional wrap-around test
  fs: Refactor intentional wrap-around test
  hpfs: Refactor intentional wrap-around test
  kasan: Refactor intentional wrap-around test
  usercopy: Refactor intentional wrap-around test
  KVM: arm64: vgic-v3: Refactor intentional wrap-around test
  s390/mm: Refactor intentional wrap-around test
  lib/scatterlist: Refactor intentional wrap-around test
  powerpc: Refactor intentional wrap-around test
  scsi: mpt3sas: Refactor intentional wrap-around test
  mwifiex: pcie: Refactor intentional wrap-around test
  mm: Refactor intentional wrap-around test
  netfilter: Refactor intentional wrap-around test
  nios2: Refactor intentional wrap-around test
  fs/ntfs3: Refactor intentional wrap-around test
  ocfs2: Refactor intentional wrap-around test
  PCI: Refactor intentional wrap-around test
  perf tools: Refactor intentional wrap-around test
  remoteproc: Refactor intentional wrap-around test
  s390/mm: Refactor intentional wrap-around test
  scsi: sd_zbc: Refactor intentional wrap-around test
  sh: Refactor intentional wrap-around test
  ARC: dw2 unwind: Refactor intentional wrap-around test
  timekeeping: Refactor intentional wrap-around test
  udf: Refactor intentional wrap-around test
  virtio: Refactor intentional wrap-around test
  mm/vmalloc: Refactor intentional wrap-around test
  staging: vme_user: Refactor intentional wrap-around test
  xen-netback: Refactor intentional wrap-around test
  lib: zstd: Refactor intentional wrap-around test
  mqueue: Refactor intentional wrap-around test

 Documentation/process/deprecated.rst          | 36 ++++++++
 arch/arc/kernel/unwind.c                      |  7 +-
 arch/arm/nwfpe/softfloat.c                    |  2 +-
 arch/arm64/include/asm/atomic_lse.h           |  8 +-
 arch/arm64/include/asm/stacktrace/common.h    |  2 +-
 arch/arm64/kvm/vgic/vgic-kvm-device.c         |  6 +-
 arch/arm64/kvm/vgic/vgic-mmio-v3.c            |  2 +-
 arch/arm64/kvm/vgic/vgic-v2.c                 | 10 ++-
 arch/m68k/kernel/sys_m68k.c                   |  5 +-
 arch/nios2/kernel/sys_nios2.c                 |  2 +-
 arch/powerpc/platforms/powernv/opal-prd.c     |  2 +-
 arch/powerpc/xmon/xmon.c                      |  2 +-
 arch/s390/include/asm/stacktrace.h            |  6 +-
 arch/s390/kernel/machine_kexec_file.c         |  5 +-
 arch/s390/mm/gmap.c                           |  4 +-
 arch/s390/mm/vmem.c                           |  2 +-
 arch/sh/kernel/sys_sh.c                       |  2 +-
 arch/x86/include/asm/atomic.h                 |  2 +-
 arch/x86/kernel/cpu/sgx/ioctl.c               |  6 +-
 arch/x86/kvm/svm/sev.c                        |  5 +-
 crypto/adiantum.c                             |  2 +-
 drivers/acpi/custom_method.c                  |  2 +-
 drivers/char/agp/generic.c                    |  2 +-
 drivers/crypto/amcc/crypto4xx_alg.c           |  2 +-
 drivers/crypto/axis/artpec6_crypto.c          |  2 +-
 drivers/dma-buf/dma-buf.c                     |  7 +-
 drivers/fpga/dfl.c                            |  5 +-
 drivers/fsi/fsi-core.c                        |  6 +-
 drivers/gpu/drm/i915/i915_vma.c               |  2 +-
 drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.c |  8 +-
 drivers/gpu/drm/vc4/vc4_validate.c            |  7 +-
 drivers/md/dm-switch.c                        |  2 +-
 drivers/md/dm-verity-target.c                 |  2 +-
 drivers/md/dm-writecache.c                    |  2 +-
 drivers/net/ethernet/sun/niu.c                |  5 +-
 drivers/net/wireless/ath/wil6210/wmi.c        |  2 +-
 drivers/net/wireless/marvell/mwifiex/pcie.c   |  6 +-
 drivers/net/xen-netback/hash.c                |  2 +-
 drivers/pci/pci.c                             |  2 +-
 drivers/remoteproc/pru_rproc.c                |  2 +-
 drivers/remoteproc/remoteproc_elf_loader.c    |  2 +-
 drivers/remoteproc/remoteproc_virtio.c        |  4 +-
 drivers/scsi/mpt3sas/mpt3sas_ctl.c            |  2 +-
 drivers/scsi/sd_zbc.c                         |  2 +-
 drivers/staging/vme_user/vme.c                |  2 +-
 drivers/vhost/vringh.c                        |  8 +-
 drivers/virtio/virtio_pci_modern_dev.c        |  4 +-
 fs/aio.c                                      |  2 +-
 fs/bcachefs/bkey.c                            |  4 +-
 fs/bcachefs/fs.c                              |  2 +-
 fs/bcachefs/quota.c                           |  2 +-
 fs/bcachefs/util.c                            |  2 +-
 fs/btrfs/extent_map.c                         |  6 +-
 fs/btrfs/extent_map.h                         |  6 +-
 fs/btrfs/ordered-data.c                       |  2 +-
 fs/ext4/block_validity.c                      |  2 +-
 fs/ext4/extents.c                             |  5 +-
 fs/ext4/resize.c                              |  2 +-
 fs/f2fs/file.c                                |  2 +-
 fs/f2fs/verity.c                              |  2 +-
 fs/hpfs/alloc.c                               |  2 +-
 fs/ntfs3/record.c                             |  4 +-
 fs/ocfs2/resize.c                             |  2 +-
 fs/read_write.c                               |  8 +-
 fs/remap_range.c                              |  2 +-
 fs/select.c                                   | 13 +--
 fs/smb/client/readdir.c                       |  5 +-
 fs/smb/client/smb2pdu.c                       |  4 +-
 fs/udf/balloc.c                               |  4 +-
 include/linux/compiler_types.h                | 29 +++++-
 include/linux/overflow.h                      | 76 +++++++++++++++-
 ipc/mqueue.c                                  |  2 +-
 ipc/shm.c                                     |  6 +-
 kernel/bpf/verifier.c                         | 12 +--
 kernel/time/timekeeping.c                     |  2 +-
 lib/Kconfig.ubsan                             | 27 ++++++
 lib/buildid.c                                 |  6 +-
 lib/iov_iter.c                                |  5 +-
 lib/overflow_kunit.c                          | 77 ++++++++++++++--
 lib/scatterlist.c                             |  2 +-
 lib/test_ubsan.c                              | 82 +++++++++++++++++
 lib/ubsan.c                                   | 89 +++++++++++++++++++
 lib/ubsan.h                                   |  5 ++
 lib/zstd/decompress/zstd_decompress.c         |  4 +-
 mm/kasan/generic.c                            |  2 +-
 mm/kasan/sw_tags.c                            |  2 +-
 mm/memory.c                                   |  4 +-
 mm/mmap.c                                     |  2 +-
 mm/mremap.c                                   |  2 +-
 mm/nommu.c                                    |  4 +-
 mm/usercopy.c                                 |  2 +-
 mm/util.c                                     |  2 +-
 mm/vmalloc.c                                  |  7 +-
 net/ipv4/route.c                              |  8 +-
 net/netfilter/xt_u32.c                        |  4 +-
 net/rds/info.c                                |  6 +-
 scripts/Makefile.ubsan                        |  3 +
 .../coccinelle/misc/add_would_overflow.cocci  | 70 +++++++++++++++
 tools/perf/util/dso.c                         |  2 +-
 tools/perf/util/unwind-libdw.c                |  2 +-
 tools/perf/util/unwind-libunwind-local.c      |  2 +-
 virt/kvm/coalesced_mmio.c                     |  6 +-
 102 files changed, 680 insertions(+), 167 deletions(-)
 create mode 100644 scripts/coccinelle/misc/add_would_overflow.cocci

-- 
2.34.1


^ permalink raw reply	[relevance 9%]

* Re: [PATCH v2] Documentation: power: Use kcalloc() instead of kzalloc()
  2024-01-21 10:43  4% [PATCH v2] Documentation: power: " Erick Archer
@ 2024-01-22 17:11  0% ` Hu Haowen
  2024-01-23  1:30  0%   ` Yanteng Si
  2024-01-23  6:11  0% ` Viresh Kumar
  1 sibling, 1 reply; 200+ results
From: Hu Haowen @ 2024-01-22 17:11 UTC (permalink / raw)
  To: Erick Archer, Viresh Kumar, Nishanth Menon, Stephen Boyd,
	Rafael J. Wysocki, Len Brown, Pavel Machek, Alex Shi, Yanteng Si,
	Jonathan Corbet, Gustavo A. R. Silva
  Cc: linux-pm, linux-kernel, linux-doc, linux-hardening


在 2024/1/21 18:43, Erick Archer 写道:
> As noted in the "Deprecated Interfaces, Language Features, Attributes,
> and Conventions" documentation [1], size calculations (especially
> multiplication) should not be performed in memory allocator (or similar)
> function arguments due to the risk of them overflowing. This could lead
> to values wrapping around and a smaller allocation being made than the
> caller was expecting. Using those allocations could lead to linear
> overflows of heap memory and other misbehaviors.
>
> So, in the example code use the purpose specific kcalloc() function
> instead of the argument size * count in the kzalloc() function.
>
> At the same time, modify the translations accordingly.
>
> Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
> Link: https://github.com/KSPP/linux/issues/162
> Signed-off-by: Erick Archer <erick.archer@gmx.com>
> ---
> Hi,
>
> This patch is a merger of two previous ones [1] [2].
> As Hu Haowen and Jonathan Corbet suggested, the translation change
> only makes sense if the original file is modified. So, with this
> v2 version the original file and the translations are modified at
> the same time.
>
> [1] https://lore.kernel.org/linux-hardening/20240120120527.3866-1-erick.archer@gmx.com/
> [2] https://lore.kernel.org/linux-hardening/20240120122204.4287-1-erick.archer@gmx.com/
>
> Thanks,
> Erick
> ---
>   Documentation/power/opp.rst                    | 2 +-
>   Documentation/translations/zh_CN/power/opp.rst | 2 +-
>   2 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/Documentation/power/opp.rst b/Documentation/power/opp.rst
> index a7c03c470980..1b7f1d854f14 100644
> --- a/Documentation/power/opp.rst
> +++ b/Documentation/power/opp.rst
> @@ -305,7 +305,7 @@ dev_pm_opp_get_opp_count
>   	 {
>   		/* Do things */
>   		num_available = dev_pm_opp_get_opp_count(dev);
> -		speeds = kzalloc(sizeof(u32) * num_available, GFP_KERNEL);
> +		speeds = kcalloc(num_available, sizeof(u32), GFP_KERNEL);
>   		/* populate the table in increasing order */
>   		freq = 0;
>   		while (!IS_ERR(opp = dev_pm_opp_find_freq_ceil(dev, &freq))) {
> diff --git a/Documentation/translations/zh_CN/power/opp.rst b/Documentation/translations/zh_CN/power/opp.rst
> index 8d6e3f6f6202..7470fa2d4c43 100644
> --- a/Documentation/translations/zh_CN/power/opp.rst
> +++ b/Documentation/translations/zh_CN/power/opp.rst
> @@ -274,7 +274,7 @@ dev_pm_opp_get_opp_count
>   	 {
>   		/* 做一些事情 */
>   		num_available = dev_pm_opp_get_opp_count(dev);
> -		speeds = kzalloc(sizeof(u32) * num_available, GFP_KERNEL);
> +		speeds = kcalloc(num_available, sizeof(u32), GFP_KERNEL);


For the zh_CN translation,

Reviewed-by: Hu Haowen <2023002089@link.tyut.edu.cn>


Thanks,

Hu Haowen


>   		/* 按升序填充表 */
>   		freq = 0;
>   		while (!IS_ERR(opp = dev_pm_opp_find_freq_ceil(dev, &freq))) {
> --
> 2.25.1
>
>
>

^ permalink raw reply	[relevance 0%]

* Re: [PATCH] staging: rtl8723bs: Use kcalloc() instead of kzalloc()
  2024-01-22  6:55  0% ` Dan Carpenter
@ 2024-01-22 18:16  0%   ` Erick Archer
  2024-01-24 14:48  0%     ` Dan Carpenter
  0 siblings, 1 reply; 200+ results
From: Erick Archer @ 2024-01-22 18:16 UTC (permalink / raw)
  To: Dan Carpenter
  Cc: Erick Archer, Greg Kroah-Hartman, Franziska Naepelt,
	Hans de Goede, Johannes Berg, Jeff Johnson, Aloka Dixit,
	Gustavo A. R. Silva, linux-staging, linux-kernel,
	linux-hardening

Hi Dan,

On Mon, Jan 22, 2024 at 09:55:11AM +0300, Dan Carpenter wrote:
> On Fri, Jan 19, 2024 at 06:39:00PM +0100, Erick Archer wrote:
> > As noted in the "Deprecated Interfaces, Language Features, Attributes,
> > and Conventions" documentation [1], size calculations (especially
> > multiplication) should not be performed in memory allocator (or similar)
> > function arguments due to the risk of them overflowing. This could lead
> > to values wrapping around and a smaller allocation being made than the
> > caller was expecting. Using those allocations could lead to linear
> > overflows of heap memory and other misbehaviors.
> >
> > So, use the purpose specific kcalloc() function instead of the argument
> > count * size in the kzalloc() function.
> >
> > Also, it is preferred to use sizeof(*pointer) instead of sizeof(type)
> > due to the type of the variable can change and one needs not change the
> > former (unlike the latter).
> >
> > Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
> > Link: https://github.com/KSPP/linux/issues/162
> > Signed-off-by: Erick Archer <erick.archer@gmx.com>
>
> I quite often write responses to patches and then never send them.  I
> wrote this response and debated sending it but in the end I decided to
> send it because you have sent multiple patches.  If you had only sent
> one patch then I wouldn't have bothered.

My intention is not to bother anyone. I'm a linux kernel developer newbie
and I try to do my best.

> Generally, commit messages should say what the user visible effects of
> a patch are.  Sometimes with these sorts of commits, it's hard to
> determine the effect.  For example, Kees went through and changed dozens
> or hundreds of these allocations to use safer constructs and we don't
> necessarily expect him to audit all the code.  They should already have
> been fine, but it's better to be safe.
>
> However in this case obviously the patch is small and just by glancing
> at it we can see that it has no effect on rutime.
>
> But if someone is reviewing patches with "git log" instead of
> "git log -p" they aren't going to see the patch. I can almost always
> figure out what a commit does without looking at the commit message,
> that doesn't mean that the commit messages are unnecessary.
>
> So I really prefer if commit message say, "This commit is just to make
> static checkers happy and to make the code more readable.  It has no
> effect on runtime."  The commit message you wrote is way more scary than
> is warranted.  Here is my proposed commit message:
>
> "We are trying to get rid of all multiplications from allocation
> functions to prevent integer overflows.  Here the multiplication is
> obviously safe, but using kcalloc() is more appropriate and improves
> readability.  This patch has no effect on runtime behavior."
>

Understood. Thank you very much for your guidance and advices. I will
change the commit message and I will send a more appropiate v2 patch.

Best regards,
Erick

> regards,
> dan carpenter
>

^ permalink raw reply	[relevance 0%]

* Re: [PATCH] crypto: qat - use kcalloc_node() instead of kzalloc_node()
  2024-01-21 16:40  4% [PATCH] crypto: qat - use kcalloc_node() instead of kzalloc_node() Erick Archer
@ 2024-01-22 17:55  0% ` Gustavo A. R. Silva
  2024-01-23 12:16  0% ` Cabiddu, Giovanni
  2024-01-26  9:06  0% ` Herbert Xu
  2 siblings, 0 replies; 200+ results
From: Gustavo A. R. Silva @ 2024-01-22 17:55 UTC (permalink / raw)
  To: Erick Archer, Giovanni Cabiddu, Herbert Xu, David S. Miller,
	Tero Kristo, Andy Shevchenko, Damian Muszynski, Shashank Gupta,
	Tom Zanussi, Gustavo A. R. Silva
  Cc: qat-linux, linux-crypto, linux-kernel, linux-hardening



On 1/21/24 10:40, Erick Archer wrote:
> As noted in the "Deprecated Interfaces, Language Features, Attributes,
> and Conventions" documentation [1], size calculations (especially
> multiplication) should not be performed in memory allocator (or similar)
> function arguments due to the risk of them overflowing. This could lead
> to values wrapping around and a smaller allocation being made than the
> caller was expecting. Using those allocations could lead to linear
> overflows of heap memory and other misbehaviors.
> 
> So, use the purpose specific kcalloc_node() function instead of the
> argument count * size in the kzalloc_node() function.
> 
> Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
> Link: https://github.com/KSPP/linux/issues/162
> Signed-off-by: Erick Archer <erick.archer@gmx.com>

Reviewed-by: Gustavo A. R. Silva <gustavoars@kernel.org>

Thanks!
-- 
Gustavo

> ---
>   drivers/crypto/intel/qat/qat_common/adf_isr.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/crypto/intel/qat/qat_common/adf_isr.c b/drivers/crypto/intel/qat/qat_common/adf_isr.c
> index 3557a0d6dea2..a13d9885d60f 100644
> --- a/drivers/crypto/intel/qat/qat_common/adf_isr.c
> +++ b/drivers/crypto/intel/qat/qat_common/adf_isr.c
> @@ -272,7 +272,7 @@ static int adf_isr_alloc_msix_vectors_data(struct adf_accel_dev *accel_dev)
>   	if (!accel_dev->pf.vf_info)
>   		msix_num_entries += hw_data->num_banks;
> 
> -	irqs = kzalloc_node(msix_num_entries * sizeof(*irqs),
> +	irqs = kcalloc_node(msix_num_entries, sizeof(*irqs),
>   			    GFP_KERNEL, dev_to_node(&GET_DEV(accel_dev)));
>   	if (!irqs)
>   		return -ENOMEM;
> --
> 2.25.1
> 

^ permalink raw reply	[relevance 0%]

* Re: [PATCH] crypto: sun8i-ce - Use kcalloc() instead of kzalloc()
  2024-01-21 15:34  4% [PATCH] crypto: sun8i-ce - Use kcalloc() instead of kzalloc() Erick Archer
@ 2024-01-22 17:53  0% ` Gustavo A. R. Silva
  2024-01-23 17:45  0% ` Jernej Škrabec
  2024-01-26  9:06  0% ` Herbert Xu
  2 siblings, 0 replies; 200+ results
From: Gustavo A. R. Silva @ 2024-01-22 17:53 UTC (permalink / raw)
  To: Erick Archer, Corentin Labbe, Herbert Xu, David S. Miller,
	Chen-Yu Tsai, Jernej Skrabec, Samuel Holland, Jonathan Corbet,
	Gustavo A. R. Silva
  Cc: linux-crypto, linux-arm-kernel, linux-sunxi, linux-kernel,
	linux-hardening



On 1/21/24 09:34, Erick Archer wrote:
> As noted in the "Deprecated Interfaces, Language Features, Attributes,
> and Conventions" documentation [1], size calculations (especially
> multiplication) should not be performed in memory allocator (or similar)
> function arguments due to the risk of them overflowing. This could lead
> to values wrapping around and a smaller allocation being made than the
> caller was expecting. Using those allocations could lead to linear
> overflows of heap memory and other misbehaviors.
> 
> So, use the purpose specific kcalloc() function instead of the argument
> size * count in the kzalloc() function.
> 
> Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
> Link: https://github.com/KSPP/linux/issues/162
> Signed-off-by: Erick Archer <erick.archer@gmx.com>

Reviewed-by: Gustavo A. R. Silva <gustavoars@kernel.org>

Thanks!
-- 
Gustavo

> ---
>   drivers/crypto/allwinner/sun8i-ce/sun8i-ce-hash.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-hash.c b/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-hash.c
> index d358334e5981..ee2a28c906ed 100644
> --- a/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-hash.c
> +++ b/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-hash.c
> @@ -362,7 +362,7 @@ int sun8i_ce_hash_run(struct crypto_engine *engine, void *breq)
>   		digestsize = SHA512_DIGEST_SIZE;
> 
>   	/* the padding could be up to two block. */
> -	buf = kzalloc(bs * 2, GFP_KERNEL | GFP_DMA);
> +	buf = kcalloc(2, bs, GFP_KERNEL | GFP_DMA);
>   	if (!buf) {
>   		err = -ENOMEM;
>   		goto theend;
> --
> 2.25.1
> 

^ permalink raw reply	[relevance 0%]

* Re: [PATCH] clk: hisilicon: Use devm_kcalloc() instead of devm_kzalloc()
  2024-01-21 14:29  5% [PATCH] clk: hisilicon: Use devm_kcalloc() instead of devm_kzalloc() Erick Archer
  2024-01-22  6:56  0% ` Uwe Kleine-König
@ 2024-01-22 17:51  0% ` Gustavo A. R. Silva
  2024-02-22  4:27  0% ` Stephen Boyd
  2 siblings, 0 replies; 200+ results
From: Gustavo A. R. Silva @ 2024-01-22 17:51 UTC (permalink / raw)
  To: Erick Archer, Michael Turquette, Stephen Boyd, Conor Dooley,
	Heiko Stuebner, Dinh Nguyen, Rob Herring, Nick Alcock,
	Uwe Kleine-König, Gustavo A. R. Silva
  Cc: linux-clk, linux-kernel, linux-hardening



On 1/21/24 08:29, Erick Archer wrote:
> As noted in the "Deprecated Interfaces, Language Features, Attributes,
> and Conventions" documentation [1], size calculations (especially
> multiplication) should not be performed in memory allocator (or similar)
> function arguments due to the risk of them overflowing. This could lead
> to values wrapping around and a smaller allocation being made than the
> caller was expecting. Using those allocations could lead to linear
> overflows of heap memory and other misbehaviors.
> 
> So, use the purpose specific devm_kcalloc() function instead of the
> argument size * count in the devm_kzalloc() function.
> 
> Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
> Link: https://github.com/KSPP/linux/issues/162
> Signed-off-by: Erick Archer <erick.archer@gmx.com>

Reviewed-by: Gustavo A. R. Silva <gustavoars@kernel.org>

Thanks!
-- 
Gustavo

> ---
>   drivers/clk/hisilicon/clk-hi3559a.c | 3 +--
>   1 file changed, 1 insertion(+), 2 deletions(-)
> 
> diff --git a/drivers/clk/hisilicon/clk-hi3559a.c b/drivers/clk/hisilicon/clk-hi3559a.c
> index ff4ca0edce06..da476f940326 100644
> --- a/drivers/clk/hisilicon/clk-hi3559a.c
> +++ b/drivers/clk/hisilicon/clk-hi3559a.c
> @@ -461,8 +461,7 @@ static void hisi_clk_register_pll(struct hi3559av100_pll_clock *clks,
>   	struct clk_init_data init;
>   	int i;
> 
> -	p_clk = devm_kzalloc(dev, sizeof(*p_clk) * nums, GFP_KERNEL);
> -
> +	p_clk = devm_kcalloc(dev, nums, sizeof(*p_clk), GFP_KERNEL);
>   	if (!p_clk)
>   		return;
> 
> --
> 2.25.1
> 
> 

^ permalink raw reply	[relevance 0%]

* Re: [PATCH] bus: mhi: ep: Use kcalloc() instead of kzalloc()
  2024-01-20 15:25  5% [PATCH] bus: mhi: ep: Use " Erick Archer
@ 2024-01-22 17:50  0% ` Gustavo A. R. Silva
  0 siblings, 0 replies; 200+ results
From: Gustavo A. R. Silva @ 2024-01-22 17:50 UTC (permalink / raw)
  To: Erick Archer, Manivannan Sadhasivam, Jeffrey Hugo,
	Rafael J. Wysocki, Dan Carpenter, Greg Kroah-Hartman,
	Gustavo A. R. Silva
  Cc: linux-arm-msm, mhi, linux-kernel, linux-hardening



On 1/20/24 09:25, Erick Archer wrote:
> As noted in the "Deprecated Interfaces, Language Features, Attributes,
> and Conventions" documentation [1], size calculations (especially
> multiplication) should not be performed in memory allocator (or similar)
> function arguments due to the risk of them overflowing. This could lead
> to values wrapping around and a smaller allocation being made than the
> caller was expecting. Using those allocations could lead to linear
> overflows of heap memory and other misbehaviors.
> 
> So, use the purpose specific kcalloc() function instead of the argument
> count * size in the kzalloc() function.
> 
> Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
> Link: https://github.com/KSPP/linux/issues/162
> Signed-off-by: Erick Archer <erick.archer@gmx.com>

Reviewed-by: Gustavo A. R. Silva <gustavoars@kernel.org>

Thanks!
-- 
Gustavo

> ---
>   drivers/bus/mhi/ep/main.c | 5 +++--
>   1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/bus/mhi/ep/main.c b/drivers/bus/mhi/ep/main.c
> index 65fc1d738bec..8d7a4102bdb7 100644
> --- a/drivers/bus/mhi/ep/main.c
> +++ b/drivers/bus/mhi/ep/main.c
> @@ -1149,8 +1149,9 @@ int mhi_ep_power_up(struct mhi_ep_cntrl *mhi_cntrl)
>   	mhi_ep_mmio_mask_interrupts(mhi_cntrl);
>   	mhi_ep_mmio_init(mhi_cntrl);
> 
> -	mhi_cntrl->mhi_event = kzalloc(mhi_cntrl->event_rings * (sizeof(*mhi_cntrl->mhi_event)),
> -					GFP_KERNEL);
> +	mhi_cntrl->mhi_event = kcalloc(mhi_cntrl->event_rings,
> +				       sizeof(*mhi_cntrl->mhi_event),
> +				       GFP_KERNEL);
>   	if (!mhi_cntrl->mhi_event)
>   		return -ENOMEM;
> 
> --
> 2.25.1
> 
> 

^ permalink raw reply	[relevance 0%]

* Re: [PATCH] riscv: Use kcalloc() instead of kzalloc()
  2024-01-20 13:54  4% [PATCH] riscv: " Erick Archer
  2024-01-22  7:58  0% ` Alexandre Ghiti
  2024-01-22  8:52  0% ` Andrew Jones
@ 2024-01-22 17:45  0% ` Gustavo A. R. Silva
  2 siblings, 0 replies; 200+ results
From: Gustavo A. R. Silva @ 2024-01-22 17:45 UTC (permalink / raw)
  To: Erick Archer, Paul Walmsley, Palmer Dabbelt, Albert Ou,
	Conor Dooley, Andrew Jones, Evan Green, Clément Léger,
	Jisheng Zhang, Charlie Jenkins, Gustavo A. R. Silva
  Cc: linux-riscv, linux-kernel, linux-hardening



On 1/20/24 07:54, Erick Archer wrote:
> As noted in the "Deprecated Interfaces, Language Features, Attributes,
> and Conventions" documentation [1], size calculations (especially
> multiplication) should not be performed in memory allocator (or similar)
> function arguments due to the risk of them overflowing. This could lead
> to values wrapping around and a smaller allocation being made than the
> caller was expecting. Using those allocations could lead to linear
> overflows of heap memory and other misbehaviors.
> 
> So, use the purpose specific kcalloc() function instead of the argument
> count * size in the kzalloc() function.
> 
> Also, it is preferred to use sizeof(*pointer) instead of sizeof(type)
> due to the type of the variable can change and one needs not change the
> former (unlike the latter).
> 
> Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
> Link: https://github.com/KSPP/linux/issues/162
> Signed-off-by: Erick Archer <erick.archer@gmx.com>

Reviewed-by: Gustavo A. R. Silva <gustavoars@kernel.org>

Thanks!
-- 
Gustavo

> ---
>   arch/riscv/kernel/cpufeature.c | 3 +--
>   1 file changed, 1 insertion(+), 2 deletions(-)
> 
> diff --git a/arch/riscv/kernel/cpufeature.c b/arch/riscv/kernel/cpufeature.c
> index 89920f84d0a3..549a76e34c4e 100644
> --- a/arch/riscv/kernel/cpufeature.c
> +++ b/arch/riscv/kernel/cpufeature.c
> @@ -901,8 +901,7 @@ static int check_unaligned_access_all_cpus(void)
>   {
>   	unsigned int cpu;
>   	unsigned int cpu_count = num_possible_cpus();
> -	struct page **bufs = kzalloc(cpu_count * sizeof(struct page *),
> -				     GFP_KERNEL);
> +	struct page **bufs = kcalloc(cpu_count, sizeof(*bufs), GFP_KERNEL);
> 
>   	if (!bufs) {
>   		pr_warn("Allocation failure, not measuring misaligned performance\n");
> --
> 2.25.1
> 
> 

^ permalink raw reply	[relevance 0%]

* Re: [PATCH] accel/habanalabs: use kcalloc() instead of kzalloc()
  2024-01-20 15:10  5% [PATCH] accel/habanalabs: use " Erick Archer
@ 2024-01-22 16:45  0% ` Gustavo A. R. Silva
  2024-01-25 10:38  0%   ` Oded Gabbay
  0 siblings, 1 reply; 200+ results
From: Gustavo A. R. Silva @ 2024-01-22 16:45 UTC (permalink / raw)
  To: Erick Archer, Oded Gabbay, Marco Pagani, Gustavo A. R. Silva
  Cc: dri-devel, linux-kernel, linux-hardening



On 1/20/24 09:10, Erick Archer wrote:
> As noted in the "Deprecated Interfaces, Language Features, Attributes,
> and Conventions" documentation [1], size calculations (especially
> multiplication) should not be performed in memory allocator (or similar)
> function arguments due to the risk of them overflowing. This could lead
> to values wrapping around and a smaller allocation being made than the
> caller was expecting. Using those allocations could lead to linear
> overflows of heap memory and other misbehaviors.
> 
> So, use the purpose specific kcalloc() function instead of the argument
> size * count in the kzalloc() function.
> 
> Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
> Link: https://github.com/KSPP/linux/issues/162
> 
> Signed-off-by: Erick Archer <erick.archer@gmx.com>

Reviewed-by: Gustavo A. R. Silva <gustavoars@kernel.org>

Thanks!
-- 
Gustavo

> ---
>   drivers/accel/habanalabs/common/mmu/mmu_v1.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/accel/habanalabs/common/mmu/mmu_v1.c b/drivers/accel/habanalabs/common/mmu/mmu_v1.c
> index d925dc4dd097..e3d42cfead27 100644
> --- a/drivers/accel/habanalabs/common/mmu/mmu_v1.c
> +++ b/drivers/accel/habanalabs/common/mmu/mmu_v1.c
> @@ -232,7 +232,7 @@ static int dram_default_mapping_init(struct hl_ctx *ctx)
>   	/* add hop1 and hop2 */
>   	total_hops = num_of_hop3 + 2;
> 
> -	ctx->dram_default_hops = kzalloc(HL_PTE_SIZE * total_hops,  GFP_KERNEL);
> +	ctx->dram_default_hops = kcalloc(total_hops, HL_PTE_SIZE,  GFP_KERNEL);
>   	if (!ctx->dram_default_hops)
>   		return -ENOMEM;
> 
> --
> 2.25.1
> 
> 

^ permalink raw reply	[relevance 0%]

* Re: [PATCH] MIPS: Alchemy: Use kcalloc() instead of kzalloc()
  2024-01-20 13:34  5% [PATCH] MIPS: Alchemy: " Erick Archer
@ 2024-01-22 16:43  0% ` Gustavo A. R. Silva
  2024-02-20 13:37  0% ` Thomas Bogendoerfer
  1 sibling, 0 replies; 200+ results
From: Gustavo A. R. Silva @ 2024-01-22 16:43 UTC (permalink / raw)
  To: Erick Archer, Thomas Bogendoerfer, Gustavo A. R. Silva
  Cc: linux-mips, linux-kernel, linux-hardening



On 1/20/24 07:34, Erick Archer wrote:
> As noted in the "Deprecated Interfaces, Language Features, Attributes,
> and Conventions" documentation [1], size calculations (especially
> multiplication) should not be performed in memory allocator (or similar)
> function arguments due to the risk of them overflowing. This could lead
> to values wrapping around and a smaller allocation being made than the
> caller was expecting. Using those allocations could lead to linear
> overflows of heap memory and other misbehaviors.
> 
> So, use the purpose specific kcalloc() function instead of the argument
> size * count in the kzalloc() function.
> 
> Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
> Link: https://github.com/KSPP/linux/issues/162
> Signed-off-by: Erick Archer <erick.archer@gmx.com>

Reviewed-by: Gustavo A. R. Silva <gustavoars@kernel.org>

Thanks!
-- 
Gustavo

> ---
>   arch/mips/alchemy/common/clock.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/arch/mips/alchemy/common/clock.c b/arch/mips/alchemy/common/clock.c
> index c01be8c45271..6c8996e20a7d 100644
> --- a/arch/mips/alchemy/common/clock.c
> +++ b/arch/mips/alchemy/common/clock.c
> @@ -771,7 +771,7 @@ static int __init alchemy_clk_init_fgens(int ctype)
>   	}
>   	id.flags = CLK_SET_RATE_PARENT | CLK_GET_RATE_NOCACHE;
> 
> -	a = kzalloc((sizeof(*a)) * 6, GFP_KERNEL);
> +	a = kcalloc(6, sizeof(*a), GFP_KERNEL);
>   	if (!a)
>   		return -ENOMEM;
> 
> --
> 2.25.1
> 
> 

^ permalink raw reply	[relevance 0%]

* Re: [PATCH] riscv: Use kcalloc() instead of kzalloc()
  2024-01-20 13:54  4% [PATCH] riscv: " Erick Archer
  2024-01-22  7:58  0% ` Alexandre Ghiti
@ 2024-01-22  8:52  0% ` Andrew Jones
  2024-01-22 17:45  0% ` Gustavo A. R. Silva
  2 siblings, 0 replies; 200+ results
From: Andrew Jones @ 2024-01-22  8:52 UTC (permalink / raw)
  To: Erick Archer
  Cc: Paul Walmsley, Palmer Dabbelt, Albert Ou, Conor Dooley,
	Evan Green, Clément Léger, Jisheng Zhang,
	Charlie Jenkins, Gustavo A. R. Silva, linux-riscv, linux-kernel,
	linux-hardening

On Sat, Jan 20, 2024 at 02:54:00PM +0100, Erick Archer wrote:
> As noted in the "Deprecated Interfaces, Language Features, Attributes,
> and Conventions" documentation [1], size calculations (especially
> multiplication) should not be performed in memory allocator (or similar)
> function arguments due to the risk of them overflowing. This could lead
> to values wrapping around and a smaller allocation being made than the
> caller was expecting. Using those allocations could lead to linear
> overflows of heap memory and other misbehaviors.
> 
> So, use the purpose specific kcalloc() function instead of the argument
> count * size in the kzalloc() function.
> 
> Also, it is preferred to use sizeof(*pointer) instead of sizeof(type)
> due to the type of the variable can change and one needs not change the
> former (unlike the latter).
> 
> Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
> Link: https://github.com/KSPP/linux/issues/162
> Signed-off-by: Erick Archer <erick.archer@gmx.com>
> ---
>  arch/riscv/kernel/cpufeature.c | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
> 
> diff --git a/arch/riscv/kernel/cpufeature.c b/arch/riscv/kernel/cpufeature.c
> index 89920f84d0a3..549a76e34c4e 100644
> --- a/arch/riscv/kernel/cpufeature.c
> +++ b/arch/riscv/kernel/cpufeature.c
> @@ -901,8 +901,7 @@ static int check_unaligned_access_all_cpus(void)
>  {
>  	unsigned int cpu;
>  	unsigned int cpu_count = num_possible_cpus();
> -	struct page **bufs = kzalloc(cpu_count * sizeof(struct page *),
> -				     GFP_KERNEL);
> +	struct page **bufs = kcalloc(cpu_count, sizeof(*bufs), GFP_KERNEL);
> 
>  	if (!bufs) {
>  		pr_warn("Allocation failure, not measuring misaligned performance\n");
> --
> 2.25.1
>

Reviewed-by: Andrew Jones <ajones@ventanamicro.com>

^ permalink raw reply	[relevance 0%]

* Re: [PATCH] riscv: Use kcalloc() instead of kzalloc()
  2024-01-20 13:54  4% [PATCH] riscv: " Erick Archer
@ 2024-01-22  7:58  0% ` Alexandre Ghiti
  2024-01-22  8:52  0% ` Andrew Jones
  2024-01-22 17:45  0% ` Gustavo A. R. Silva
  2 siblings, 0 replies; 200+ results
From: Alexandre Ghiti @ 2024-01-22  7:58 UTC (permalink / raw)
  To: Erick Archer, Paul Walmsley, Palmer Dabbelt, Albert Ou,
	Conor Dooley, Andrew Jones, Evan Green, Clément Léger,
	Jisheng Zhang, Charlie Jenkins, Gustavo A. R. Silva
  Cc: linux-riscv, linux-kernel, linux-hardening

Hi Erick,

On 20/01/2024 14:54, Erick Archer wrote:
> As noted in the "Deprecated Interfaces, Language Features, Attributes,
> and Conventions" documentation [1], size calculations (especially
> multiplication) should not be performed in memory allocator (or similar)
> function arguments due to the risk of them overflowing. This could lead
> to values wrapping around and a smaller allocation being made than the
> caller was expecting. Using those allocations could lead to linear
> overflows of heap memory and other misbehaviors.
>
> So, use the purpose specific kcalloc() function instead of the argument
> count * size in the kzalloc() function.
>
> Also, it is preferred to use sizeof(*pointer) instead of sizeof(type)
> due to the type of the variable can change and one needs not change the
> former (unlike the latter).
>
> Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
> Link: https://github.com/KSPP/linux/issues/162
> Signed-off-by: Erick Archer <erick.archer@gmx.com>
> ---
>   arch/riscv/kernel/cpufeature.c | 3 +--
>   1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/arch/riscv/kernel/cpufeature.c b/arch/riscv/kernel/cpufeature.c
> index 89920f84d0a3..549a76e34c4e 100644
> --- a/arch/riscv/kernel/cpufeature.c
> +++ b/arch/riscv/kernel/cpufeature.c
> @@ -901,8 +901,7 @@ static int check_unaligned_access_all_cpus(void)
>   {
>   	unsigned int cpu;
>   	unsigned int cpu_count = num_possible_cpus();
> -	struct page **bufs = kzalloc(cpu_count * sizeof(struct page *),
> -				     GFP_KERNEL);
> +	struct page **bufs = kcalloc(cpu_count, sizeof(*bufs), GFP_KERNEL);
>
>   	if (!bufs) {
>   		pr_warn("Allocation failure, not measuring misaligned performance\n");
> --
> 2.25.1
>
>
> _______________________________________________
> linux-riscv mailing list
> linux-riscv@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-riscv


You can add:

Reviewed-by: Alexandre Ghiti <alexghiti@rivosinc.com>

Thanks,

Alex


^ permalink raw reply	[relevance 0%]

* Re: [PATCH] clk: hisilicon: Use devm_kcalloc() instead of devm_kzalloc()
  2024-01-21 14:29  5% [PATCH] clk: hisilicon: Use devm_kcalloc() instead of devm_kzalloc() Erick Archer
@ 2024-01-22  6:56  0% ` Uwe Kleine-König
  2024-01-22 17:51  0% ` Gustavo A. R. Silva
  2024-02-22  4:27  0% ` Stephen Boyd
  2 siblings, 0 replies; 200+ results
From: Uwe Kleine-König @ 2024-01-22  6:56 UTC (permalink / raw)
  To: Erick Archer
  Cc: Michael Turquette, Stephen Boyd, Conor Dooley, Heiko Stuebner,
	Dinh Nguyen, Rob Herring, Nick Alcock, Gustavo A. R. Silva,
	linux-clk, linux-kernel, linux-hardening

[-- Attachment #1: Type: text/plain, Size: 2003 bytes --]

On Sun, Jan 21, 2024 at 03:29:46PM +0100, Erick Archer wrote:
> As noted in the "Deprecated Interfaces, Language Features, Attributes,
> and Conventions" documentation [1], size calculations (especially
> multiplication) should not be performed in memory allocator (or similar)
> function arguments due to the risk of them overflowing. This could lead
> to values wrapping around and a smaller allocation being made than the
> caller was expecting. Using those allocations could lead to linear
> overflows of heap memory and other misbehaviors.
> 
> So, use the purpose specific devm_kcalloc() function instead of the
> argument size * count in the devm_kzalloc() function.
> 
> Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
> Link: https://github.com/KSPP/linux/issues/162
> Signed-off-by: Erick Archer <erick.archer@gmx.com>
> ---
>  drivers/clk/hisilicon/clk-hi3559a.c | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
> 
> diff --git a/drivers/clk/hisilicon/clk-hi3559a.c b/drivers/clk/hisilicon/clk-hi3559a.c
> index ff4ca0edce06..da476f940326 100644
> --- a/drivers/clk/hisilicon/clk-hi3559a.c
> +++ b/drivers/clk/hisilicon/clk-hi3559a.c
> @@ -461,8 +461,7 @@ static void hisi_clk_register_pll(struct hi3559av100_pll_clock *clks,
>  	struct clk_init_data init;
>  	int i;
> 
> -	p_clk = devm_kzalloc(dev, sizeof(*p_clk) * nums, GFP_KERNEL);
> -
> +	p_clk = devm_kcalloc(dev, nums, sizeof(*p_clk), GFP_KERNEL);
>  	if (!p_clk)
>  		return;

Looks good,

Reviewed-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>

My first impulse was to ask why hisi_clk_register_pll doesn't return an
error if the allocation fails, but I guess that happens so early that no
sensible error handling is possible?

Best regards
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-König            |
Industrial Linux Solutions                 | https://www.pengutronix.de/ |

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[relevance 0%]

* Re: [PATCH] pinctrl: pinctrl-zynqmp: Use devm_kcalloc() instead of devm_kzalloc()
  2024-01-19 18:19  4% [PATCH] pinctrl: pinctrl-zynqmp: Use devm_kcalloc() instead of devm_kzalloc() Erick Archer
  2024-01-19 18:26  0% ` Gustavo A. R. Silva
@ 2024-01-22  6:55  0% ` Michal Simek
  2024-01-28  0:17  0% ` Linus Walleij
  2 siblings, 0 replies; 200+ results
From: Michal Simek @ 2024-01-22  6:55 UTC (permalink / raw)
  To: Erick Archer, Linus Walleij, Gustavo A. R. Silva
  Cc: linux-gpio, linux-arm-kernel, linux-kernel, linux-hardening



On 1/19/24 19:19, Erick Archer wrote:
> As noted in the "Deprecated Interfaces, Language Features, Attributes,
> and Conventions" documentation [1], size calculations (especially
> multiplication) should not be performed in memory allocator (or similar)
> function arguments due to the risk of them overflowing. This could lead
> to values wrapping around and a smaller allocation being made than the
> caller was expecting. Using those allocations could lead to linear
> overflows of heap memory and other misbehaviors.
> 
> So, use the purpose specific devm_kcalloc() function instead of the
> argument size * count in the devm_kzalloc() function.
> 
> Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
> Link: https://github.com/KSPP/linux/issues/162
> Signed-off-by: Erick Archer <erick.archer@gmx.com>
> ---
>   drivers/pinctrl/pinctrl-zynqmp.c | 8 ++++----
>   1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/pinctrl/pinctrl-zynqmp.c b/drivers/pinctrl/pinctrl-zynqmp.c
> index f2be341f73e1..5c46b7d7ebcb 100644
> --- a/drivers/pinctrl/pinctrl-zynqmp.c
> +++ b/drivers/pinctrl/pinctrl-zynqmp.c
> @@ -562,7 +562,7 @@ static int zynqmp_pinctrl_prepare_func_groups(struct device *dev, u32 fid,
>   	const char **fgroups;
>   	int ret, index, i;
> 
> -	fgroups = devm_kzalloc(dev, sizeof(*fgroups) * func->ngroups, GFP_KERNEL);
> +	fgroups = devm_kcalloc(dev, func->ngroups, sizeof(*fgroups), GFP_KERNEL);
>   	if (!fgroups)
>   		return -ENOMEM;
> 
> @@ -754,7 +754,7 @@ static int zynqmp_pinctrl_prepare_function_info(struct device *dev,
>   	if (ret)
>   		return ret;
> 
> -	funcs = devm_kzalloc(dev, sizeof(*funcs) * pctrl->nfuncs, GFP_KERNEL);
> +	funcs = devm_kcalloc(dev, pctrl->nfuncs, sizeof(*funcs), GFP_KERNEL);
>   	if (!funcs)
>   		return -ENOMEM;
> 
> @@ -768,7 +768,7 @@ static int zynqmp_pinctrl_prepare_function_info(struct device *dev,
>   		pctrl->ngroups += funcs[i].ngroups;
>   	}
> 
> -	groups = devm_kzalloc(dev, sizeof(*groups) * pctrl->ngroups, GFP_KERNEL);
> +	groups = devm_kcalloc(dev, pctrl->ngroups, sizeof(*groups), GFP_KERNEL);
>   	if (!groups)
>   		return -ENOMEM;
> 
> @@ -830,7 +830,7 @@ static int zynqmp_pinctrl_prepare_pin_desc(struct device *dev,
>   	if (ret)
>   		return ret;
> 
> -	pins = devm_kzalloc(dev, sizeof(*pins) * *npins, GFP_KERNEL);
> +	pins = devm_kcalloc(dev, *npins, sizeof(*pins), GFP_KERNEL);
>   	if (!pins)
>   		return -ENOMEM;
> 
> --
> 2.25.1
> 

Acked-by: Michal Simek <michal.simek@amd.com>

Thanks,
Michal

^ permalink raw reply	[relevance 0%]

* Re: [PATCH] staging: rtl8723bs: Use kcalloc() instead of kzalloc()
  2024-01-19 17:39  4% [PATCH] staging: rtl8723bs: " Erick Archer
  2024-01-19 17:48  0% ` Gustavo A. R. Silva
@ 2024-01-22  6:55  0% ` Dan Carpenter
  2024-01-22 18:16  0%   ` Erick Archer
  1 sibling, 1 reply; 200+ results
From: Dan Carpenter @ 2024-01-22  6:55 UTC (permalink / raw)
  To: Erick Archer
  Cc: Greg Kroah-Hartman, Franziska Naepelt, Hans de Goede,
	Johannes Berg, Jeff Johnson, Aloka Dixit, Gustavo A. R. Silva,
	linux-staging, linux-kernel, linux-hardening

On Fri, Jan 19, 2024 at 06:39:00PM +0100, Erick Archer wrote:
> As noted in the "Deprecated Interfaces, Language Features, Attributes,
> and Conventions" documentation [1], size calculations (especially
> multiplication) should not be performed in memory allocator (or similar)
> function arguments due to the risk of them overflowing. This could lead
> to values wrapping around and a smaller allocation being made than the
> caller was expecting. Using those allocations could lead to linear
> overflows of heap memory and other misbehaviors.
> 
> So, use the purpose specific kcalloc() function instead of the argument
> count * size in the kzalloc() function.
> 
> Also, it is preferred to use sizeof(*pointer) instead of sizeof(type)
> due to the type of the variable can change and one needs not change the
> former (unlike the latter).
> 
> Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
> Link: https://github.com/KSPP/linux/issues/162
> Signed-off-by: Erick Archer <erick.archer@gmx.com>

I quite often write responses to patches and then never send them.  I
wrote this response and debated sending it but in the end I decided to
send it because you have sent multiple patches.  If you had only sent
one patch then I wouldn't have bothered.

Generally, commit messages should say what the user visible effects of
a patch are.  Sometimes with these sorts of commits, it's hard to
determine the effect.  For example, Kees went through and changed dozens
or hundreds of these allocations to use safer constructs and we don't
necessarily expect him to audit all the code.  They should already have
been fine, but it's better to be safe.

However in this case obviously the patch is small and just by glancing
at it we can see that it has no effect on rutime.

But if someone is reviewing patches with "git log" instead of
"git log -p" they aren't going to see the patch. I can almost always
figure out what a commit does without looking at the commit message,
that doesn't mean that the commit messages are unnecessary.

So I really prefer if commit message say, "This commit is just to make
static checkers happy and to make the code more readable.  It has no
effect on runtime."  The commit message you wrote is way more scary than
is warranted.  Here is my proposed commit message:

"We are trying to get rid of all multiplications from allocation
functions to prevent integer overflows.  Here the multiplication is
obviously safe, but using kcalloc() is more appropriate and improves
readability.  This patch has no effect on runtime behavior."

regards,
dan carpenter


^ permalink raw reply	[relevance 0%]

* [PATCH] crypto: qat - use kcalloc_node() instead of kzalloc_node()
@ 2024-01-21 16:40  4% Erick Archer
  2024-01-22 17:55  0% ` Gustavo A. R. Silva
                   ` (2 more replies)
  0 siblings, 3 replies; 200+ results
From: Erick Archer @ 2024-01-21 16:40 UTC (permalink / raw)
  To: Giovanni Cabiddu, Herbert Xu, David S. Miller, Erick Archer,
	Tero Kristo, Andy Shevchenko, Damian Muszynski, Shashank Gupta,
	Tom Zanussi, Gustavo A. R. Silva
  Cc: qat-linux, linux-crypto, linux-kernel, linux-hardening

As noted in the "Deprecated Interfaces, Language Features, Attributes,
and Conventions" documentation [1], size calculations (especially
multiplication) should not be performed in memory allocator (or similar)
function arguments due to the risk of them overflowing. This could lead
to values wrapping around and a smaller allocation being made than the
caller was expecting. Using those allocations could lead to linear
overflows of heap memory and other misbehaviors.

So, use the purpose specific kcalloc_node() function instead of the
argument count * size in the kzalloc_node() function.

Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
Link: https://github.com/KSPP/linux/issues/162
Signed-off-by: Erick Archer <erick.archer@gmx.com>
---
 drivers/crypto/intel/qat/qat_common/adf_isr.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/crypto/intel/qat/qat_common/adf_isr.c b/drivers/crypto/intel/qat/qat_common/adf_isr.c
index 3557a0d6dea2..a13d9885d60f 100644
--- a/drivers/crypto/intel/qat/qat_common/adf_isr.c
+++ b/drivers/crypto/intel/qat/qat_common/adf_isr.c
@@ -272,7 +272,7 @@ static int adf_isr_alloc_msix_vectors_data(struct adf_accel_dev *accel_dev)
 	if (!accel_dev->pf.vf_info)
 		msix_num_entries += hw_data->num_banks;

-	irqs = kzalloc_node(msix_num_entries * sizeof(*irqs),
+	irqs = kcalloc_node(msix_num_entries, sizeof(*irqs),
 			    GFP_KERNEL, dev_to_node(&GET_DEV(accel_dev)));
 	if (!irqs)
 		return -ENOMEM;
--
2.25.1


^ permalink raw reply related	[relevance 4%]

* [PATCH] crypto: sun8i-ce - Use kcalloc() instead of kzalloc()
@ 2024-01-21 15:34  4% Erick Archer
  2024-01-22 17:53  0% ` Gustavo A. R. Silva
                   ` (2 more replies)
  0 siblings, 3 replies; 200+ results
From: Erick Archer @ 2024-01-21 15:34 UTC (permalink / raw)
  To: Corentin Labbe, Herbert Xu, David S. Miller, Chen-Yu Tsai,
	Jernej Skrabec, Samuel Holland, Jonathan Corbet,
	Gustavo A. R. Silva
  Cc: Erick Archer, linux-crypto, linux-arm-kernel, linux-sunxi,
	linux-kernel, linux-hardening

As noted in the "Deprecated Interfaces, Language Features, Attributes,
and Conventions" documentation [1], size calculations (especially
multiplication) should not be performed in memory allocator (or similar)
function arguments due to the risk of them overflowing. This could lead
to values wrapping around and a smaller allocation being made than the
caller was expecting. Using those allocations could lead to linear
overflows of heap memory and other misbehaviors.

So, use the purpose specific kcalloc() function instead of the argument
size * count in the kzalloc() function.

Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
Link: https://github.com/KSPP/linux/issues/162
Signed-off-by: Erick Archer <erick.archer@gmx.com>
---
 drivers/crypto/allwinner/sun8i-ce/sun8i-ce-hash.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-hash.c b/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-hash.c
index d358334e5981..ee2a28c906ed 100644
--- a/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-hash.c
+++ b/drivers/crypto/allwinner/sun8i-ce/sun8i-ce-hash.c
@@ -362,7 +362,7 @@ int sun8i_ce_hash_run(struct crypto_engine *engine, void *breq)
 		digestsize = SHA512_DIGEST_SIZE;

 	/* the padding could be up to two block. */
-	buf = kzalloc(bs * 2, GFP_KERNEL | GFP_DMA);
+	buf = kcalloc(2, bs, GFP_KERNEL | GFP_DMA);
 	if (!buf) {
 		err = -ENOMEM;
 		goto theend;
--
2.25.1


^ permalink raw reply related	[relevance 4%]

* [PATCH] clk: hisilicon: Use devm_kcalloc() instead of devm_kzalloc()
@ 2024-01-21 14:29  5% Erick Archer
  2024-01-22  6:56  0% ` Uwe Kleine-König
                   ` (2 more replies)
  0 siblings, 3 replies; 200+ results
From: Erick Archer @ 2024-01-21 14:29 UTC (permalink / raw)
  To: Michael Turquette, Stephen Boyd, Conor Dooley, Heiko Stuebner,
	Dinh Nguyen, Rob Herring, Nick Alcock, Uwe Kleine-König,
	Gustavo A. R. Silva
  Cc: Erick Archer, linux-clk, linux-kernel, linux-hardening

As noted in the "Deprecated Interfaces, Language Features, Attributes,
and Conventions" documentation [1], size calculations (especially
multiplication) should not be performed in memory allocator (or similar)
function arguments due to the risk of them overflowing. This could lead
to values wrapping around and a smaller allocation being made than the
caller was expecting. Using those allocations could lead to linear
overflows of heap memory and other misbehaviors.

So, use the purpose specific devm_kcalloc() function instead of the
argument size * count in the devm_kzalloc() function.

Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
Link: https://github.com/KSPP/linux/issues/162
Signed-off-by: Erick Archer <erick.archer@gmx.com>
---
 drivers/clk/hisilicon/clk-hi3559a.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/clk/hisilicon/clk-hi3559a.c b/drivers/clk/hisilicon/clk-hi3559a.c
index ff4ca0edce06..da476f940326 100644
--- a/drivers/clk/hisilicon/clk-hi3559a.c
+++ b/drivers/clk/hisilicon/clk-hi3559a.c
@@ -461,8 +461,7 @@ static void hisi_clk_register_pll(struct hi3559av100_pll_clock *clks,
 	struct clk_init_data init;
 	int i;

-	p_clk = devm_kzalloc(dev, sizeof(*p_clk) * nums, GFP_KERNEL);
-
+	p_clk = devm_kcalloc(dev, nums, sizeof(*p_clk), GFP_KERNEL);
 	if (!p_clk)
 		return;

--
2.25.1


^ permalink raw reply related	[relevance 5%]

* Re: [PATCH] wifi: iwlegacy: Use kcalloc() instead of kzalloc()
  2024-01-19 17:16  5% [PATCH] wifi: iwlegacy: " Erick Archer
  2024-01-19 17:44  0% ` Gustavo A. R. Silva
@ 2024-01-21 12:15  0% ` Stanislaw Gruszka
  2024-01-23 11:51  0% ` Kalle Valo
  2 siblings, 0 replies; 200+ results
From: Stanislaw Gruszka @ 2024-01-21 12:15 UTC (permalink / raw)
  To: Erick Archer
  Cc: Kalle Valo, Gustavo A. R. Silva, linux-wireless, linux-kernel,
	linux-hardening

On Fri, Jan 19, 2024 at 06:16:55PM +0100, Erick Archer wrote:
> As noted in the "Deprecated Interfaces, Language Features, Attributes,
> and Conventions" documentation [1], size calculations (especially
> multiplication) should not be performed in memory allocator (or similar)
> function arguments due to the risk of them overflowing. This could lead
> to values wrapping around and a smaller allocation being made than the
> caller was expecting. Using those allocations could lead to linear
> overflows of heap memory and other misbehaviors.
> 
> So, use the purpose specific kcalloc() function instead of the argument
> size * count in the kzalloc() function.
> 
> Also, it is preferred to use sizeof(*pointer) instead of sizeof(type)
> due to the type of the variable can change and one needs not change the
> former (unlike the latter).
> 
> Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
> Link: https://github.com/KSPP/linux/issues/162
> Signed-off-by: Erick Archer <erick.archer@gmx.com>

Acked-by: Stanislaw Gruszka <stf_xl@wp.pl>

^ permalink raw reply	[relevance 0%]

* Re: [PATCH] Documentation: power: Use kcalloc() instead of kzalloc()
  2024-01-20 12:05  5% [PATCH] Documentation: power: Use kcalloc() instead of kzalloc() Erick Archer
@ 2024-01-21 11:44  0% ` Erick Archer
  0 siblings, 0 replies; 200+ results
From: Erick Archer @ 2024-01-21 11:44 UTC (permalink / raw)
  To: Viresh Kumar, Nishanth Menon, Stephen Boyd, Rafael J. Wysocki,
	Len Brown, Pavel Machek, Gustavo A. R. Silva
  Cc: Erick Archer, linux-pm, linux-kernel, linux-hardening

On Sat, Jan 20, 2024 at 01:05:27PM +0100, Erick Archer wrote:
> As noted in the "Deprecated Interfaces, Language Features, Attributes,
> and Conventions" documentation [1], size calculations (especially
> multiplication) should not be performed in memory allocator (or similar)
> function arguments due to the risk of them overflowing. This could lead
> to values wrapping around and a smaller allocation being made than the
> caller was expecting. Using those allocations could lead to linear
> overflows of heap memory and other misbehaviors.
>
> So, in the example code use the purpose specific kcalloc() function
> instead of the argument size * count in the kzalloc() function.
>
> Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
> Link: https://github.com/KSPP/linux/issues/162
> Signed-off-by: Erick Archer <erick.archer@gmx.com>

Hi,

Drop this patch as a new version has been sent to change at the
same time the translations.

Thanks,
Erick

> ---
>  Documentation/power/opp.rst | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/Documentation/power/opp.rst b/Documentation/power/opp.rst
> index a7c03c470980..1b7f1d854f14 100644
> --- a/Documentation/power/opp.rst
> +++ b/Documentation/power/opp.rst
> @@ -305,7 +305,7 @@ dev_pm_opp_get_opp_count
>  	 {
>  		/* Do things */
>  		num_available = dev_pm_opp_get_opp_count(dev);
> -		speeds = kzalloc(sizeof(u32) * num_available, GFP_KERNEL);
> +		speeds = kcalloc(num_available, sizeof(u32), GFP_KERNEL);
>  		/* populate the table in increasing order */
>  		freq = 0;
>  		while (!IS_ERR(opp = dev_pm_opp_find_freq_ceil(dev, &freq))) {
> --
> 2.25.1
>

^ permalink raw reply	[relevance 0%]

* [PATCH v2] Documentation: power: Use kcalloc() instead of kzalloc()
@ 2024-01-21 10:43  4% Erick Archer
  2024-01-22 17:11  0% ` Hu Haowen
  2024-01-23  6:11  0% ` Viresh Kumar
  0 siblings, 2 replies; 200+ results
From: Erick Archer @ 2024-01-21 10:43 UTC (permalink / raw)
  To: Viresh Kumar, Nishanth Menon, Stephen Boyd, Rafael J. Wysocki,
	Len Brown, Pavel Machek, Alex Shi, Yanteng Si, Jonathan Corbet,
	Gustavo A. R. Silva, Hu Haowen
  Cc: Erick Archer, linux-pm, linux-kernel, linux-doc, linux-hardening

As noted in the "Deprecated Interfaces, Language Features, Attributes,
and Conventions" documentation [1], size calculations (especially
multiplication) should not be performed in memory allocator (or similar)
function arguments due to the risk of them overflowing. This could lead
to values wrapping around and a smaller allocation being made than the
caller was expecting. Using those allocations could lead to linear
overflows of heap memory and other misbehaviors.

So, in the example code use the purpose specific kcalloc() function
instead of the argument size * count in the kzalloc() function.

At the same time, modify the translations accordingly.

Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
Link: https://github.com/KSPP/linux/issues/162
Signed-off-by: Erick Archer <erick.archer@gmx.com>
---
Hi,

This patch is a merger of two previous ones [1] [2].
As Hu Haowen and Jonathan Corbet suggested, the translation change
only makes sense if the original file is modified. So, with this
v2 version the original file and the translations are modified at
the same time.

[1] https://lore.kernel.org/linux-hardening/20240120120527.3866-1-erick.archer@gmx.com/
[2] https://lore.kernel.org/linux-hardening/20240120122204.4287-1-erick.archer@gmx.com/

Thanks,
Erick
---
 Documentation/power/opp.rst                    | 2 +-
 Documentation/translations/zh_CN/power/opp.rst | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/Documentation/power/opp.rst b/Documentation/power/opp.rst
index a7c03c470980..1b7f1d854f14 100644
--- a/Documentation/power/opp.rst
+++ b/Documentation/power/opp.rst
@@ -305,7 +305,7 @@ dev_pm_opp_get_opp_count
 	 {
 		/* Do things */
 		num_available = dev_pm_opp_get_opp_count(dev);
-		speeds = kzalloc(sizeof(u32) * num_available, GFP_KERNEL);
+		speeds = kcalloc(num_available, sizeof(u32), GFP_KERNEL);
 		/* populate the table in increasing order */
 		freq = 0;
 		while (!IS_ERR(opp = dev_pm_opp_find_freq_ceil(dev, &freq))) {
diff --git a/Documentation/translations/zh_CN/power/opp.rst b/Documentation/translations/zh_CN/power/opp.rst
index 8d6e3f6f6202..7470fa2d4c43 100644
--- a/Documentation/translations/zh_CN/power/opp.rst
+++ b/Documentation/translations/zh_CN/power/opp.rst
@@ -274,7 +274,7 @@ dev_pm_opp_get_opp_count
 	 {
 		/* 做一些事情 */
 		num_available = dev_pm_opp_get_opp_count(dev);
-		speeds = kzalloc(sizeof(u32) * num_available, GFP_KERNEL);
+		speeds = kcalloc(num_available, sizeof(u32), GFP_KERNEL);
 		/* 按升序填充表 */
 		freq = 0;
 		while (!IS_ERR(opp = dev_pm_opp_find_freq_ceil(dev, &freq))) {
--
2.25.1


^ permalink raw reply related	[relevance 4%]

* Re: [PATCH] docs/zh_CN/power: Use kcalloc() instead of kzalloc()
  2024-01-20 14:24  0% ` Hu Haowen
@ 2024-01-21 10:02  0%   ` Erick Archer
  0 siblings, 0 replies; 200+ results
From: Erick Archer @ 2024-01-21 10:02 UTC (permalink / raw)
  To: Hu Haowen, Jonathan Corbet
  Cc: Erick Archer, Alex Shi, Yanteng Si, Gustavo A. R. Silva,
	linux-doc, linux-kernel, linux-hardening

Hi Hu and Jonathan,

On Sat, Jan 20, 2024 at 10:24:42PM +0800, Hu Haowen wrote:
>
> 在 2024/1/20 20:22, Erick Archer 写道:
> > As noted in the "Deprecated Interfaces, Language Features, Attributes,
> > and Conventions" documentation [1], size calculations (especially
> > multiplication) should not be performed in memory allocator (or similar)
> > function arguments due to the risk of them overflowing. This could lead
> > to values wrapping around and a smaller allocation being made than the
> > caller was expecting. Using those allocations could lead to linear
> > overflows of heap memory and other misbehaviors.
> >
> > So, in the example code use the purpose specific kcalloc() function
> > instead of the argument size * count in the kzalloc() function.
> >
> > Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
> > Link: https://github.com/KSPP/linux/issues/162
> > Signed-off-by: Erick Archer <erick.archer@gmx.com>
> > ---
> >   Documentation/translations/zh_CN/power/opp.rst | 2 +-
> >   1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/Documentation/translations/zh_CN/power/opp.rst b/Documentation/translations/zh_CN/power/opp.rst
> > index 8d6e3f6f6202..7470fa2d4c43 100644
> > --- a/Documentation/translations/zh_CN/power/opp.rst
> > +++ b/Documentation/translations/zh_CN/power/opp.rst
> > @@ -274,7 +274,7 @@ dev_pm_opp_get_opp_count
> >   	 {
> >   		/* 做一些事情 */
> >   		num_available = dev_pm_opp_get_opp_count(dev);
> > -		speeds = kzalloc(sizeof(u32) * num_available, GFP_KERNEL);
> > +		speeds = kcalloc(num_available, sizeof(u32), GFP_KERNEL);
>
>
> If the translated version is modified, I think the original file should
> follow as well at Documentation/power/opp.rst line 308:
>
> diff --git a/Documentation/power/opp.rst b/Documentation/power/opp.rst
> index a7c03c470980..dca35018214a 100644
> --- a/Documentation/power/opp.rst
> +++ b/Documentation/power/opp.rst
> @@ -305,7 +305,7 @@ dev_pm_opp_get_opp_count
>          {
>                 /* Do things */
>                 num_available = dev_pm_opp_get_opp_count(dev);
> -               speeds = kzalloc(sizeof(u32) * num_available, GFP_KERNEL);
> +               speeds = kcalloc(sizeof(u32) * num_available, GFP_KERNEL);
>                 /* populate the table in increasing order */
>                 freq = 0;
>                 while (!IS_ERR(opp = dev_pm_opp_find_freq_ceil(dev, &freq)))
> {

As you both suggested, this change should be made if the original file is
changed. Therefore, before this patch I already sent another one [1] that
made the proposed changes to the original file.

[1] https://lore.kernel.org/linux-hardening/20240120120527.3866-1-erick.archer@gmx.com/

But if you prefer, I can send just one patch with the two changes.

Best regards,
Erick

>
> Thanks,
> Hu Haowen
>
>
> >   		/* 按升序填充表 */
> >   		freq = 0;
> >   		while (!IS_ERR(opp = dev_pm_opp_find_freq_ceil(dev, &freq))) {
> > --
> > 2.25.1
> >
> >
> >

^ permalink raw reply	[relevance 0%]

* Re: [PATCH] docs/zh_CN/power: Use kcalloc() instead of kzalloc()
  2024-01-20 12:22  5% [PATCH] docs/zh_CN/power: " Erick Archer
  2024-01-20 14:24  0% ` Hu Haowen
@ 2024-01-20 15:38  0% ` Jonathan Corbet
  1 sibling, 0 replies; 200+ results
From: Jonathan Corbet @ 2024-01-20 15:38 UTC (permalink / raw)
  To: Erick Archer, Alex Shi, Yanteng Si, Gustavo A. R. Silva
  Cc: Erick Archer, linux-doc, linux-kernel, linux-hardening

Erick Archer <erick.archer@gmx.com> writes:

> As noted in the "Deprecated Interfaces, Language Features, Attributes,
> and Conventions" documentation [1], size calculations (especially
> multiplication) should not be performed in memory allocator (or similar)
> function arguments due to the risk of them overflowing. This could lead
> to values wrapping around and a smaller allocation being made than the
> caller was expecting. Using those allocations could lead to linear
> overflows of heap memory and other misbehaviors.
>
> So, in the example code use the purpose specific kcalloc() function
> instead of the argument size * count in the kzalloc() function.
>
> Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
> Link: https://github.com/KSPP/linux/issues/162
> Signed-off-by: Erick Archer <erick.archer@gmx.com>
> ---
>  Documentation/translations/zh_CN/power/opp.rst | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/Documentation/translations/zh_CN/power/opp.rst b/Documentation/translations/zh_CN/power/opp.rst
> index 8d6e3f6f6202..7470fa2d4c43 100644
> --- a/Documentation/translations/zh_CN/power/opp.rst
> +++ b/Documentation/translations/zh_CN/power/opp.rst
> @@ -274,7 +274,7 @@ dev_pm_opp_get_opp_count
>  	 {
>  		/* 做一些事情 */
>  		num_available = dev_pm_opp_get_opp_count(dev);
> -		speeds = kzalloc(sizeof(u32) * num_available, GFP_KERNEL);
> +		speeds = kcalloc(num_available, sizeof(u32), GFP_KERNEL);

Without addressing the validity of this change, as Hu says, we should
never change the translations without fixing the original as well -
otherwise they aren't really translations anymore.

Thanks,

jon

^ permalink raw reply	[relevance 0%]

* [PATCH] bus: mhi: ep: Use kcalloc() instead of kzalloc()
@ 2024-01-20 15:25  5% Erick Archer
  2024-01-22 17:50  0% ` Gustavo A. R. Silva
  0 siblings, 1 reply; 200+ results
From: Erick Archer @ 2024-01-20 15:25 UTC (permalink / raw)
  To: Manivannan Sadhasivam, Jeffrey Hugo, Erick Archer,
	Rafael J. Wysocki, Dan Carpenter, Greg Kroah-Hartman,
	Gustavo A. R. Silva
  Cc: linux-arm-msm, mhi, linux-kernel, linux-hardening

As noted in the "Deprecated Interfaces, Language Features, Attributes,
and Conventions" documentation [1], size calculations (especially
multiplication) should not be performed in memory allocator (or similar)
function arguments due to the risk of them overflowing. This could lead
to values wrapping around and a smaller allocation being made than the
caller was expecting. Using those allocations could lead to linear
overflows of heap memory and other misbehaviors.

So, use the purpose specific kcalloc() function instead of the argument
count * size in the kzalloc() function.

Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
Link: https://github.com/KSPP/linux/issues/162
Signed-off-by: Erick Archer <erick.archer@gmx.com>
---
 drivers/bus/mhi/ep/main.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/bus/mhi/ep/main.c b/drivers/bus/mhi/ep/main.c
index 65fc1d738bec..8d7a4102bdb7 100644
--- a/drivers/bus/mhi/ep/main.c
+++ b/drivers/bus/mhi/ep/main.c
@@ -1149,8 +1149,9 @@ int mhi_ep_power_up(struct mhi_ep_cntrl *mhi_cntrl)
 	mhi_ep_mmio_mask_interrupts(mhi_cntrl);
 	mhi_ep_mmio_init(mhi_cntrl);

-	mhi_cntrl->mhi_event = kzalloc(mhi_cntrl->event_rings * (sizeof(*mhi_cntrl->mhi_event)),
-					GFP_KERNEL);
+	mhi_cntrl->mhi_event = kcalloc(mhi_cntrl->event_rings,
+				       sizeof(*mhi_cntrl->mhi_event),
+				       GFP_KERNEL);
 	if (!mhi_cntrl->mhi_event)
 		return -ENOMEM;

--
2.25.1


^ permalink raw reply related	[relevance 5%]

* [PATCH] accel/habanalabs: use kcalloc() instead of kzalloc()
@ 2024-01-20 15:10  5% Erick Archer
  2024-01-22 16:45  0% ` Gustavo A. R. Silva
  0 siblings, 1 reply; 200+ results
From: Erick Archer @ 2024-01-20 15:10 UTC (permalink / raw)
  To: Oded Gabbay, Marco Pagani, Gustavo A. R. Silva
  Cc: Erick Archer, dri-devel, linux-kernel, linux-hardening

As noted in the "Deprecated Interfaces, Language Features, Attributes,
and Conventions" documentation [1], size calculations (especially
multiplication) should not be performed in memory allocator (or similar)
function arguments due to the risk of them overflowing. This could lead
to values wrapping around and a smaller allocation being made than the
caller was expecting. Using those allocations could lead to linear
overflows of heap memory and other misbehaviors.

So, use the purpose specific kcalloc() function instead of the argument
size * count in the kzalloc() function.

Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
Link: https://github.com/KSPP/linux/issues/162

Signed-off-by: Erick Archer <erick.archer@gmx.com>
---
 drivers/accel/habanalabs/common/mmu/mmu_v1.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/accel/habanalabs/common/mmu/mmu_v1.c b/drivers/accel/habanalabs/common/mmu/mmu_v1.c
index d925dc4dd097..e3d42cfead27 100644
--- a/drivers/accel/habanalabs/common/mmu/mmu_v1.c
+++ b/drivers/accel/habanalabs/common/mmu/mmu_v1.c
@@ -232,7 +232,7 @@ static int dram_default_mapping_init(struct hl_ctx *ctx)
 	/* add hop1 and hop2 */
 	total_hops = num_of_hop3 + 2;

-	ctx->dram_default_hops = kzalloc(HL_PTE_SIZE * total_hops,  GFP_KERNEL);
+	ctx->dram_default_hops = kcalloc(total_hops, HL_PTE_SIZE,  GFP_KERNEL);
 	if (!ctx->dram_default_hops)
 		return -ENOMEM;

--
2.25.1


^ permalink raw reply related	[relevance 5%]

* Re: [PATCH] docs/zh_CN/power: Use kcalloc() instead of kzalloc()
  2024-01-20 12:22  5% [PATCH] docs/zh_CN/power: " Erick Archer
@ 2024-01-20 14:24  0% ` Hu Haowen
  2024-01-21 10:02  0%   ` Erick Archer
  2024-01-20 15:38  0% ` Jonathan Corbet
  1 sibling, 1 reply; 200+ results
From: Hu Haowen @ 2024-01-20 14:24 UTC (permalink / raw)
  To: Erick Archer, Alex Shi, Yanteng Si, Jonathan Corbet, Gustavo A. R. Silva
  Cc: linux-doc, linux-kernel, linux-hardening


在 2024/1/20 20:22, Erick Archer 写道:
> As noted in the "Deprecated Interfaces, Language Features, Attributes,
> and Conventions" documentation [1], size calculations (especially
> multiplication) should not be performed in memory allocator (or similar)
> function arguments due to the risk of them overflowing. This could lead
> to values wrapping around and a smaller allocation being made than the
> caller was expecting. Using those allocations could lead to linear
> overflows of heap memory and other misbehaviors.
>
> So, in the example code use the purpose specific kcalloc() function
> instead of the argument size * count in the kzalloc() function.
>
> Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
> Link: https://github.com/KSPP/linux/issues/162
> Signed-off-by: Erick Archer <erick.archer@gmx.com>
> ---
>   Documentation/translations/zh_CN/power/opp.rst | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/Documentation/translations/zh_CN/power/opp.rst b/Documentation/translations/zh_CN/power/opp.rst
> index 8d6e3f6f6202..7470fa2d4c43 100644
> --- a/Documentation/translations/zh_CN/power/opp.rst
> +++ b/Documentation/translations/zh_CN/power/opp.rst
> @@ -274,7 +274,7 @@ dev_pm_opp_get_opp_count
>   	 {
>   		/* 做一些事情 */
>   		num_available = dev_pm_opp_get_opp_count(dev);
> -		speeds = kzalloc(sizeof(u32) * num_available, GFP_KERNEL);
> +		speeds = kcalloc(num_available, sizeof(u32), GFP_KERNEL);


If the translated version is modified, I think the original file should
follow as well at Documentation/power/opp.rst line 308:

diff --git a/Documentation/power/opp.rst b/Documentation/power/opp.rst
index a7c03c470980..dca35018214a 100644
--- a/Documentation/power/opp.rst
+++ b/Documentation/power/opp.rst
@@ -305,7 +305,7 @@ dev_pm_opp_get_opp_count
          {
                 /* Do things */
                 num_available = dev_pm_opp_get_opp_count(dev);
-               speeds = kzalloc(sizeof(u32) * num_available, GFP_KERNEL);
+               speeds = kcalloc(sizeof(u32) * num_available, GFP_KERNEL);
                 /* populate the table in increasing order */
                 freq = 0;
                 while (!IS_ERR(opp = dev_pm_opp_find_freq_ceil(dev, 
&freq))) {

Thanks,
Hu Haowen


>   		/* 按升序填充表 */
>   		freq = 0;
>   		while (!IS_ERR(opp = dev_pm_opp_find_freq_ceil(dev, &freq))) {
> --
> 2.25.1
>
>
>

^ permalink raw reply related	[relevance 0%]

* [PATCH] riscv: Use kcalloc() instead of kzalloc()
@ 2024-01-20 13:54  4% Erick Archer
  2024-01-22  7:58  0% ` Alexandre Ghiti
                   ` (2 more replies)
  0 siblings, 3 replies; 200+ results
From: Erick Archer @ 2024-01-20 13:54 UTC (permalink / raw)
  To: Paul Walmsley, Palmer Dabbelt, Albert Ou, Conor Dooley,
	Andrew Jones, Evan Green, Clément Léger, Jisheng Zhang,
	Charlie Jenkins, Gustavo A. R. Silva
  Cc: Erick Archer, linux-riscv, linux-kernel, linux-hardening

As noted in the "Deprecated Interfaces, Language Features, Attributes,
and Conventions" documentation [1], size calculations (especially
multiplication) should not be performed in memory allocator (or similar)
function arguments due to the risk of them overflowing. This could lead
to values wrapping around and a smaller allocation being made than the
caller was expecting. Using those allocations could lead to linear
overflows of heap memory and other misbehaviors.

So, use the purpose specific kcalloc() function instead of the argument
count * size in the kzalloc() function.

Also, it is preferred to use sizeof(*pointer) instead of sizeof(type)
due to the type of the variable can change and one needs not change the
former (unlike the latter).

Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
Link: https://github.com/KSPP/linux/issues/162
Signed-off-by: Erick Archer <erick.archer@gmx.com>
---
 arch/riscv/kernel/cpufeature.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/arch/riscv/kernel/cpufeature.c b/arch/riscv/kernel/cpufeature.c
index 89920f84d0a3..549a76e34c4e 100644
--- a/arch/riscv/kernel/cpufeature.c
+++ b/arch/riscv/kernel/cpufeature.c
@@ -901,8 +901,7 @@ static int check_unaligned_access_all_cpus(void)
 {
 	unsigned int cpu;
 	unsigned int cpu_count = num_possible_cpus();
-	struct page **bufs = kzalloc(cpu_count * sizeof(struct page *),
-				     GFP_KERNEL);
+	struct page **bufs = kcalloc(cpu_count, sizeof(*bufs), GFP_KERNEL);

 	if (!bufs) {
 		pr_warn("Allocation failure, not measuring misaligned performance\n");
--
2.25.1


^ permalink raw reply related	[relevance 4%]

* [PATCH] MIPS: Alchemy: Use kcalloc() instead of kzalloc()
@ 2024-01-20 13:34  5% Erick Archer
  2024-01-22 16:43  0% ` Gustavo A. R. Silva
  2024-02-20 13:37  0% ` Thomas Bogendoerfer
  0 siblings, 2 replies; 200+ results
From: Erick Archer @ 2024-01-20 13:34 UTC (permalink / raw)
  To: Thomas Bogendoerfer, Gustavo A. R. Silva
  Cc: Erick Archer, linux-mips, linux-kernel, linux-hardening

As noted in the "Deprecated Interfaces, Language Features, Attributes,
and Conventions" documentation [1], size calculations (especially
multiplication) should not be performed in memory allocator (or similar)
function arguments due to the risk of them overflowing. This could lead
to values wrapping around and a smaller allocation being made than the
caller was expecting. Using those allocations could lead to linear
overflows of heap memory and other misbehaviors.

So, use the purpose specific kcalloc() function instead of the argument
size * count in the kzalloc() function.

Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
Link: https://github.com/KSPP/linux/issues/162
Signed-off-by: Erick Archer <erick.archer@gmx.com>
---
 arch/mips/alchemy/common/clock.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/mips/alchemy/common/clock.c b/arch/mips/alchemy/common/clock.c
index c01be8c45271..6c8996e20a7d 100644
--- a/arch/mips/alchemy/common/clock.c
+++ b/arch/mips/alchemy/common/clock.c
@@ -771,7 +771,7 @@ static int __init alchemy_clk_init_fgens(int ctype)
 	}
 	id.flags = CLK_SET_RATE_PARENT | CLK_GET_RATE_NOCACHE;

-	a = kzalloc((sizeof(*a)) * 6, GFP_KERNEL);
+	a = kcalloc(6, sizeof(*a), GFP_KERNEL);
 	if (!a)
 		return -ENOMEM;

--
2.25.1


^ permalink raw reply related	[relevance 5%]

* [PATCH] docs/zh_CN/power: Use kcalloc() instead of kzalloc()
@ 2024-01-20 12:22  5% Erick Archer
  2024-01-20 14:24  0% ` Hu Haowen
  2024-01-20 15:38  0% ` Jonathan Corbet
  0 siblings, 2 replies; 200+ results
From: Erick Archer @ 2024-01-20 12:22 UTC (permalink / raw)
  To: Alex Shi, Yanteng Si, Jonathan Corbet, Gustavo A. R. Silva
  Cc: Erick Archer, linux-doc, linux-kernel, linux-hardening

As noted in the "Deprecated Interfaces, Language Features, Attributes,
and Conventions" documentation [1], size calculations (especially
multiplication) should not be performed in memory allocator (or similar)
function arguments due to the risk of them overflowing. This could lead
to values wrapping around and a smaller allocation being made than the
caller was expecting. Using those allocations could lead to linear
overflows of heap memory and other misbehaviors.

So, in the example code use the purpose specific kcalloc() function
instead of the argument size * count in the kzalloc() function.

Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
Link: https://github.com/KSPP/linux/issues/162
Signed-off-by: Erick Archer <erick.archer@gmx.com>
---
 Documentation/translations/zh_CN/power/opp.rst | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Documentation/translations/zh_CN/power/opp.rst b/Documentation/translations/zh_CN/power/opp.rst
index 8d6e3f6f6202..7470fa2d4c43 100644
--- a/Documentation/translations/zh_CN/power/opp.rst
+++ b/Documentation/translations/zh_CN/power/opp.rst
@@ -274,7 +274,7 @@ dev_pm_opp_get_opp_count
 	 {
 		/* 做一些事情 */
 		num_available = dev_pm_opp_get_opp_count(dev);
-		speeds = kzalloc(sizeof(u32) * num_available, GFP_KERNEL);
+		speeds = kcalloc(num_available, sizeof(u32), GFP_KERNEL);
 		/* 按升序填充表 */
 		freq = 0;
 		while (!IS_ERR(opp = dev_pm_opp_find_freq_ceil(dev, &freq))) {
--
2.25.1


^ permalink raw reply related	[relevance 5%]

* [PATCH] Documentation: power: Use kcalloc() instead of kzalloc()
@ 2024-01-20 12:05  5% Erick Archer
  2024-01-21 11:44  0% ` Erick Archer
  0 siblings, 1 reply; 200+ results
From: Erick Archer @ 2024-01-20 12:05 UTC (permalink / raw)
  To: Viresh Kumar, Nishanth Menon, Stephen Boyd, Rafael J. Wysocki,
	Len Brown, Pavel Machek, Gustavo A. R. Silva
  Cc: Erick Archer, linux-pm, linux-kernel, linux-hardening

As noted in the "Deprecated Interfaces, Language Features, Attributes,
and Conventions" documentation [1], size calculations (especially
multiplication) should not be performed in memory allocator (or similar)
function arguments due to the risk of them overflowing. This could lead
to values wrapping around and a smaller allocation being made than the
caller was expecting. Using those allocations could lead to linear
overflows of heap memory and other misbehaviors.

So, in the example code use the purpose specific kcalloc() function
instead of the argument size * count in the kzalloc() function.

Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
Link: https://github.com/KSPP/linux/issues/162
Signed-off-by: Erick Archer <erick.archer@gmx.com>
---
 Documentation/power/opp.rst | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Documentation/power/opp.rst b/Documentation/power/opp.rst
index a7c03c470980..1b7f1d854f14 100644
--- a/Documentation/power/opp.rst
+++ b/Documentation/power/opp.rst
@@ -305,7 +305,7 @@ dev_pm_opp_get_opp_count
 	 {
 		/* Do things */
 		num_available = dev_pm_opp_get_opp_count(dev);
-		speeds = kzalloc(sizeof(u32) * num_available, GFP_KERNEL);
+		speeds = kcalloc(num_available, sizeof(u32), GFP_KERNEL);
 		/* populate the table in increasing order */
 		freq = 0;
 		while (!IS_ERR(opp = dev_pm_opp_find_freq_ceil(dev, &freq))) {
--
2.25.1


^ permalink raw reply related	[relevance 5%]

* Re: [PATCH] pinctrl: pinctrl-zynqmp: Use devm_kcalloc() instead of devm_kzalloc()
  2024-01-19 18:19  4% [PATCH] pinctrl: pinctrl-zynqmp: Use devm_kcalloc() instead of devm_kzalloc() Erick Archer
@ 2024-01-19 18:26  0% ` Gustavo A. R. Silva
  2024-01-22  6:55  0% ` Michal Simek
  2024-01-28  0:17  0% ` Linus Walleij
  2 siblings, 0 replies; 200+ results
From: Gustavo A. R. Silva @ 2024-01-19 18:26 UTC (permalink / raw)
  To: Erick Archer, Linus Walleij, Michal Simek, Gustavo A. R. Silva
  Cc: linux-gpio, linux-arm-kernel, linux-kernel, linux-hardening



On 1/19/24 12:19, Erick Archer wrote:
> As noted in the "Deprecated Interfaces, Language Features, Attributes,
> and Conventions" documentation [1], size calculations (especially
> multiplication) should not be performed in memory allocator (or similar)
> function arguments due to the risk of them overflowing. This could lead
> to values wrapping around and a smaller allocation being made than the
> caller was expecting. Using those allocations could lead to linear
> overflows of heap memory and other misbehaviors.
> 
> So, use the purpose specific devm_kcalloc() function instead of the
> argument size * count in the devm_kzalloc() function.
> 
> Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
> Link: https://github.com/KSPP/linux/issues/162
> Signed-off-by: Erick Archer <erick.archer@gmx.com>

Reviewed-by: Gustavo A. R. Silva <gustavoars@kernel.org>

Thanks!
-- 
Gustavo

> ---
>   drivers/pinctrl/pinctrl-zynqmp.c | 8 ++++----
>   1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/pinctrl/pinctrl-zynqmp.c b/drivers/pinctrl/pinctrl-zynqmp.c
> index f2be341f73e1..5c46b7d7ebcb 100644
> --- a/drivers/pinctrl/pinctrl-zynqmp.c
> +++ b/drivers/pinctrl/pinctrl-zynqmp.c
> @@ -562,7 +562,7 @@ static int zynqmp_pinctrl_prepare_func_groups(struct device *dev, u32 fid,
>   	const char **fgroups;
>   	int ret, index, i;
> 
> -	fgroups = devm_kzalloc(dev, sizeof(*fgroups) * func->ngroups, GFP_KERNEL);
> +	fgroups = devm_kcalloc(dev, func->ngroups, sizeof(*fgroups), GFP_KERNEL);
>   	if (!fgroups)
>   		return -ENOMEM;
> 
> @@ -754,7 +754,7 @@ static int zynqmp_pinctrl_prepare_function_info(struct device *dev,
>   	if (ret)
>   		return ret;
> 
> -	funcs = devm_kzalloc(dev, sizeof(*funcs) * pctrl->nfuncs, GFP_KERNEL);
> +	funcs = devm_kcalloc(dev, pctrl->nfuncs, sizeof(*funcs), GFP_KERNEL);
>   	if (!funcs)
>   		return -ENOMEM;
> 
> @@ -768,7 +768,7 @@ static int zynqmp_pinctrl_prepare_function_info(struct device *dev,
>   		pctrl->ngroups += funcs[i].ngroups;
>   	}
> 
> -	groups = devm_kzalloc(dev, sizeof(*groups) * pctrl->ngroups, GFP_KERNEL);
> +	groups = devm_kcalloc(dev, pctrl->ngroups, sizeof(*groups), GFP_KERNEL);
>   	if (!groups)
>   		return -ENOMEM;
> 
> @@ -830,7 +830,7 @@ static int zynqmp_pinctrl_prepare_pin_desc(struct device *dev,
>   	if (ret)
>   		return ret;
> 
> -	pins = devm_kzalloc(dev, sizeof(*pins) * *npins, GFP_KERNEL);
> +	pins = devm_kcalloc(dev, *npins, sizeof(*pins), GFP_KERNEL);
>   	if (!pins)
>   		return -ENOMEM;
> 
> --
> 2.25.1
> 
> 

^ permalink raw reply	[relevance 0%]

* [PATCH] pinctrl: pinctrl-zynqmp: Use devm_kcalloc() instead of devm_kzalloc()
@ 2024-01-19 18:19  4% Erick Archer
  2024-01-19 18:26  0% ` Gustavo A. R. Silva
                   ` (2 more replies)
  0 siblings, 3 replies; 200+ results
From: Erick Archer @ 2024-01-19 18:19 UTC (permalink / raw)
  To: Linus Walleij, Michal Simek, Gustavo A. R. Silva
  Cc: Erick Archer, linux-gpio, linux-arm-kernel, linux-kernel,
	linux-hardening

As noted in the "Deprecated Interfaces, Language Features, Attributes,
and Conventions" documentation [1], size calculations (especially
multiplication) should not be performed in memory allocator (or similar)
function arguments due to the risk of them overflowing. This could lead
to values wrapping around and a smaller allocation being made than the
caller was expecting. Using those allocations could lead to linear
overflows of heap memory and other misbehaviors.

So, use the purpose specific devm_kcalloc() function instead of the
argument size * count in the devm_kzalloc() function.

Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
Link: https://github.com/KSPP/linux/issues/162
Signed-off-by: Erick Archer <erick.archer@gmx.com>
---
 drivers/pinctrl/pinctrl-zynqmp.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/pinctrl/pinctrl-zynqmp.c b/drivers/pinctrl/pinctrl-zynqmp.c
index f2be341f73e1..5c46b7d7ebcb 100644
--- a/drivers/pinctrl/pinctrl-zynqmp.c
+++ b/drivers/pinctrl/pinctrl-zynqmp.c
@@ -562,7 +562,7 @@ static int zynqmp_pinctrl_prepare_func_groups(struct device *dev, u32 fid,
 	const char **fgroups;
 	int ret, index, i;

-	fgroups = devm_kzalloc(dev, sizeof(*fgroups) * func->ngroups, GFP_KERNEL);
+	fgroups = devm_kcalloc(dev, func->ngroups, sizeof(*fgroups), GFP_KERNEL);
 	if (!fgroups)
 		return -ENOMEM;

@@ -754,7 +754,7 @@ static int zynqmp_pinctrl_prepare_function_info(struct device *dev,
 	if (ret)
 		return ret;

-	funcs = devm_kzalloc(dev, sizeof(*funcs) * pctrl->nfuncs, GFP_KERNEL);
+	funcs = devm_kcalloc(dev, pctrl->nfuncs, sizeof(*funcs), GFP_KERNEL);
 	if (!funcs)
 		return -ENOMEM;

@@ -768,7 +768,7 @@ static int zynqmp_pinctrl_prepare_function_info(struct device *dev,
 		pctrl->ngroups += funcs[i].ngroups;
 	}

-	groups = devm_kzalloc(dev, sizeof(*groups) * pctrl->ngroups, GFP_KERNEL);
+	groups = devm_kcalloc(dev, pctrl->ngroups, sizeof(*groups), GFP_KERNEL);
 	if (!groups)
 		return -ENOMEM;

@@ -830,7 +830,7 @@ static int zynqmp_pinctrl_prepare_pin_desc(struct device *dev,
 	if (ret)
 		return ret;

-	pins = devm_kzalloc(dev, sizeof(*pins) * *npins, GFP_KERNEL);
+	pins = devm_kcalloc(dev, *npins, sizeof(*pins), GFP_KERNEL);
 	if (!pins)
 		return -ENOMEM;

--
2.25.1


^ permalink raw reply related	[relevance 4%]

* Re: [PATCH] staging: rtl8723bs: Use kcalloc() instead of kzalloc()
  2024-01-19 17:39  4% [PATCH] staging: rtl8723bs: " Erick Archer
@ 2024-01-19 17:48  0% ` Gustavo A. R. Silva
  2024-01-22  6:55  0% ` Dan Carpenter
  1 sibling, 0 replies; 200+ results
From: Gustavo A. R. Silva @ 2024-01-19 17:48 UTC (permalink / raw)
  To: Erick Archer, Greg Kroah-Hartman, Franziska Naepelt,
	Hans de Goede, Johannes Berg, Jeff Johnson, Aloka Dixit,
	Gustavo A. R. Silva
  Cc: linux-staging, linux-kernel, linux-hardening



On 1/19/24 11:39, Erick Archer wrote:
> As noted in the "Deprecated Interfaces, Language Features, Attributes,
> and Conventions" documentation [1], size calculations (especially
> multiplication) should not be performed in memory allocator (or similar)
> function arguments due to the risk of them overflowing. This could lead
> to values wrapping around and a smaller allocation being made than the
> caller was expecting. Using those allocations could lead to linear
> overflows of heap memory and other misbehaviors.
> 
> So, use the purpose specific kcalloc() function instead of the argument
> count * size in the kzalloc() function.
> 
> Also, it is preferred to use sizeof(*pointer) instead of sizeof(type)
> due to the type of the variable can change and one needs not change the
> former (unlike the latter).
> 
> Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
> Link: https://github.com/KSPP/linux/issues/162
> Signed-off-by: Erick Archer <erick.archer@gmx.com>

Reviewed-by: Gustavo A. R. Silva <gustavoars@kernel.org>

Thanks!
-- 
Gustavo

> ---
>   drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c | 3 +--
>   1 file changed, 1 insertion(+), 2 deletions(-)
> 
> diff --git a/drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c b/drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c
> index 1ff763c10064..65a450fcdce7 100644
> --- a/drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c
> +++ b/drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c
> @@ -1259,8 +1259,7 @@ static int cfg80211_rtw_scan(struct wiphy *wiphy
>   		goto check_need_indicate_scan_done;
>   	}
> 
> -	ssid = kzalloc(RTW_SSID_SCAN_AMOUNT * sizeof(struct ndis_802_11_ssid),
> -		       GFP_KERNEL);
> +	ssid = kcalloc(RTW_SSID_SCAN_AMOUNT, sizeof(*ssid), GFP_KERNEL);
>   	if (!ssid) {
>   		ret = -ENOMEM;
>   		goto check_need_indicate_scan_done;
> --
> 2.25.1
> 
> 

^ permalink raw reply	[relevance 0%]

* Re: [PATCH] wifi: iwlegacy: Use kcalloc() instead of kzalloc()
  2024-01-19 17:16  5% [PATCH] wifi: iwlegacy: " Erick Archer
@ 2024-01-19 17:44  0% ` Gustavo A. R. Silva
  2024-01-21 12:15  0% ` Stanislaw Gruszka
  2024-01-23 11:51  0% ` Kalle Valo
  2 siblings, 0 replies; 200+ results
From: Gustavo A. R. Silva @ 2024-01-19 17:44 UTC (permalink / raw)
  To: Erick Archer, Stanislaw Gruszka, Kalle Valo, Gustavo A. R. Silva
  Cc: linux-wireless, linux-kernel, linux-hardening



On 1/19/24 11:16, Erick Archer wrote:
> As noted in the "Deprecated Interfaces, Language Features, Attributes,
> and Conventions" documentation [1], size calculations (especially
> multiplication) should not be performed in memory allocator (or similar)
> function arguments due to the risk of them overflowing. This could lead
> to values wrapping around and a smaller allocation being made than the
> caller was expecting. Using those allocations could lead to linear
> overflows of heap memory and other misbehaviors.
> 
> So, use the purpose specific kcalloc() function instead of the argument
> size * count in the kzalloc() function.
> 
> Also, it is preferred to use sizeof(*pointer) instead of sizeof(type)
> due to the type of the variable can change and one needs not change the
> former (unlike the latter).
> 
> Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
> Link: https://github.com/KSPP/linux/issues/162
> Signed-off-by: Erick Archer <erick.archer@gmx.com>

Reviewed-by: Gustavo A. R. Silva <gustavoars@kernel.org>

Thanks!
-- 
Gustavo

> ---
>   drivers/net/wireless/intel/iwlegacy/common.c | 4 +---
>   1 file changed, 1 insertion(+), 3 deletions(-)
> 
> diff --git a/drivers/net/wireless/intel/iwlegacy/common.c b/drivers/net/wireless/intel/iwlegacy/common.c
> index 17570d62c896..9d33a66a49b5 100644
> --- a/drivers/net/wireless/intel/iwlegacy/common.c
> +++ b/drivers/net/wireless/intel/iwlegacy/common.c
> @@ -3438,9 +3438,7 @@ il_init_geos(struct il_priv *il)
>   	if (!channels)
>   		return -ENOMEM;
> 
> -	rates =
> -	    kzalloc((sizeof(struct ieee80211_rate) * RATE_COUNT_LEGACY),
> -		    GFP_KERNEL);
> +	rates = kcalloc(RATE_COUNT_LEGACY, sizeof(*rates), GFP_KERNEL);
>   	if (!rates) {
>   		kfree(channels);
>   		return -ENOMEM;
> --
> 2.25.1
> 
> 

^ permalink raw reply	[relevance 0%]

* [PATCH] staging: rtl8723bs: Use kcalloc() instead of kzalloc()
@ 2024-01-19 17:39  4% Erick Archer
  2024-01-19 17:48  0% ` Gustavo A. R. Silva
  2024-01-22  6:55  0% ` Dan Carpenter
  0 siblings, 2 replies; 200+ results
From: Erick Archer @ 2024-01-19 17:39 UTC (permalink / raw)
  To: Greg Kroah-Hartman, Franziska Naepelt, Hans de Goede,
	Johannes Berg, Jeff Johnson, Aloka Dixit, Gustavo A. R. Silva
  Cc: Erick Archer, linux-staging, linux-kernel, linux-hardening

As noted in the "Deprecated Interfaces, Language Features, Attributes,
and Conventions" documentation [1], size calculations (especially
multiplication) should not be performed in memory allocator (or similar)
function arguments due to the risk of them overflowing. This could lead
to values wrapping around and a smaller allocation being made than the
caller was expecting. Using those allocations could lead to linear
overflows of heap memory and other misbehaviors.

So, use the purpose specific kcalloc() function instead of the argument
count * size in the kzalloc() function.

Also, it is preferred to use sizeof(*pointer) instead of sizeof(type)
due to the type of the variable can change and one needs not change the
former (unlike the latter).

Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
Link: https://github.com/KSPP/linux/issues/162
Signed-off-by: Erick Archer <erick.archer@gmx.com>
---
 drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c b/drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c
index 1ff763c10064..65a450fcdce7 100644
--- a/drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c
+++ b/drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c
@@ -1259,8 +1259,7 @@ static int cfg80211_rtw_scan(struct wiphy *wiphy
 		goto check_need_indicate_scan_done;
 	}

-	ssid = kzalloc(RTW_SSID_SCAN_AMOUNT * sizeof(struct ndis_802_11_ssid),
-		       GFP_KERNEL);
+	ssid = kcalloc(RTW_SSID_SCAN_AMOUNT, sizeof(*ssid), GFP_KERNEL);
 	if (!ssid) {
 		ret = -ENOMEM;
 		goto check_need_indicate_scan_done;
--
2.25.1


^ permalink raw reply related	[relevance 4%]

* [PATCH] wifi: iwlegacy: Use kcalloc() instead of kzalloc()
@ 2024-01-19 17:16  5% Erick Archer
  2024-01-19 17:44  0% ` Gustavo A. R. Silva
                   ` (2 more replies)
  0 siblings, 3 replies; 200+ results
From: Erick Archer @ 2024-01-19 17:16 UTC (permalink / raw)
  To: Stanislaw Gruszka, Kalle Valo, Gustavo A. R. Silva
  Cc: Erick Archer, linux-wireless, linux-kernel, linux-hardening

As noted in the "Deprecated Interfaces, Language Features, Attributes,
and Conventions" documentation [1], size calculations (especially
multiplication) should not be performed in memory allocator (or similar)
function arguments due to the risk of them overflowing. This could lead
to values wrapping around and a smaller allocation being made than the
caller was expecting. Using those allocations could lead to linear
overflows of heap memory and other misbehaviors.

So, use the purpose specific kcalloc() function instead of the argument
size * count in the kzalloc() function.

Also, it is preferred to use sizeof(*pointer) instead of sizeof(type)
due to the type of the variable can change and one needs not change the
former (unlike the latter).

Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments [1]
Link: https://github.com/KSPP/linux/issues/162
Signed-off-by: Erick Archer <erick.archer@gmx.com>
---
 drivers/net/wireless/intel/iwlegacy/common.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/net/wireless/intel/iwlegacy/common.c b/drivers/net/wireless/intel/iwlegacy/common.c
index 17570d62c896..9d33a66a49b5 100644
--- a/drivers/net/wireless/intel/iwlegacy/common.c
+++ b/drivers/net/wireless/intel/iwlegacy/common.c
@@ -3438,9 +3438,7 @@ il_init_geos(struct il_priv *il)
 	if (!channels)
 		return -ENOMEM;

-	rates =
-	    kzalloc((sizeof(struct ieee80211_rate) * RATE_COUNT_LEGACY),
-		    GFP_KERNEL);
+	rates = kcalloc(RATE_COUNT_LEGACY, sizeof(*rates), GFP_KERNEL);
 	if (!rates) {
 		kfree(channels);
 		return -ENOMEM;
--
2.25.1


^ permalink raw reply related	[relevance 5%]

* [for-linus][PATCH 3/3] eventfs: Use kcalloc() instead of kzalloc()
  @ 2024-01-17 14:35  4% ` Steven Rostedt
  0 siblings, 0 replies; 200+ results
From: Steven Rostedt @ 2024-01-17 14:35 UTC (permalink / raw)
  To: linux-kernel
  Cc: Masami Hiramatsu, Mark Rutland, Mathieu Desnoyers, Andrew Morton,
	Erick Archer, Gustavo A. R. Silva

From: Erick Archer <erick.archer@gmx.com>

As noted in the "Deprecated Interfaces, Language Features, Attributes,
and Conventions" documentation [1], size calculations (especially
multiplication) should not be performed in memory allocator (or similar)
function arguments due to the risk of them overflowing. This could lead
to values wrapping around and a smaller allocation being made than the
caller was expecting. Using those allocations could lead to linear
overflows of heap memory and other misbehaviors.

So, use the purpose specific kcalloc() function instead of the argument
size * count in the kzalloc() function.

[1] https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments

Link: https://lore.kernel.org/linux-trace-kernel/20240115181658.4562-1-erick.archer@gmx.com

Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Link: https://github.com/KSPP/linux/issues/162
Signed-off-by: Erick Archer <erick.archer@gmx.com>
Reviewed-by: Gustavo A. R. Silva <gustavoars@kernel.org>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
---
 fs/tracefs/event_inode.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/fs/tracefs/event_inode.c b/fs/tracefs/event_inode.c
index 10580d6b5012..6795fda2af19 100644
--- a/fs/tracefs/event_inode.c
+++ b/fs/tracefs/event_inode.c
@@ -97,7 +97,7 @@ static int eventfs_set_attr(struct mnt_idmap *idmap, struct dentry *dentry,
 	/* Preallocate the children mode array if necessary */
 	if (!(dentry->d_inode->i_mode & S_IFDIR)) {
 		if (!ei->entry_attrs) {
-			ei->entry_attrs = kzalloc(sizeof(*ei->entry_attrs) * ei->nr_entries,
+			ei->entry_attrs = kcalloc(ei->nr_entries, sizeof(*ei->entry_attrs),
 						  GFP_NOFS);
 			if (!ei->entry_attrs) {
 				ret = -ENOMEM;
@@ -874,7 +874,7 @@ struct eventfs_inode *eventfs_create_dir(const char *name, struct eventfs_inode
 	}
 
 	if (size) {
-		ei->d_children = kzalloc(sizeof(*ei->d_children) * size, GFP_KERNEL);
+		ei->d_children = kcalloc(size, sizeof(*ei->d_children), GFP_KERNEL);
 		if (!ei->d_children) {
 			kfree_const(ei->name);
 			kfree(ei);
@@ -941,7 +941,7 @@ struct eventfs_inode *eventfs_create_events_dir(const char *name, struct dentry
 		goto fail;
 
 	if (size) {
-		ei->d_children = kzalloc(sizeof(*ei->d_children) * size, GFP_KERNEL);
+		ei->d_children = kcalloc(size, sizeof(*ei->d_children), GFP_KERNEL);
 		if (!ei->d_children)
 			goto fail;
 	}
-- 
2.43.0



^ permalink raw reply related	[relevance 4%]

* Re: [PATCH] perf/x86/amd/uncore: Use kcalloc*() instead of kzalloc*()
  2024-01-16 12:58  4% [PATCH] perf/x86/amd/uncore: Use kcalloc*() instead of kzalloc*() Erick Archer
@ 2024-01-16 16:30  0% ` Gustavo A. R. Silva
  0 siblings, 0 replies; 200+ results
From: Gustavo A. R. Silva @ 2024-01-16 16:30 UTC (permalink / raw)
  To: Erick Archer, Peter Zijlstra, Ingo Molnar,
	Arnaldo Carvalho de Melo, Namhyung Kim, Thomas Gleixner,
	Borislav Petkov, Dave Hansen, Gustavo A. R. Silva, x86
  Cc: Mark Rutland, Alexander Shishkin, Jiri Olsa, Ian Rogers,
	Adrian Hunter, H. Peter Anvin, linux-perf-users, linux-kernel,
	linux-hardening



On 1/16/24 06:58, Erick Archer wrote:
> As noted in the "Deprecated Interfaces, Language Features, Attributes,
> and Conventions" documentation [1], size calculations (especially
> multiplication) should not be performed in memory allocator (or similar)
> function arguments due to the risk of them overflowing. This could lead
> to values wrapping around and a smaller allocation being made than the
> caller was expecting. Using those allocations could lead to linear
> overflows of heap memory and other misbehaviors.
> 
> So, use the purpose specific kcalloc*() function instead of the argument
> size * count in the kzalloc*() function.
> 
> [1] https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments
> 
> Link: https://github.com/KSPP/linux/issues/162
> Signed-off-by: Erick Archer <erick.archer@gmx.com>

Reviewed-by: Gustavo A. R. Silva <gustavoars@kernel.org>

Thanks!
-- 
Gustavo

> ---
>   arch/x86/events/amd/uncore.c | 6 +++---
>   1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/arch/x86/events/amd/uncore.c b/arch/x86/events/amd/uncore.c
> index 5bf03c575812..9073eb0613cf 100644
> --- a/arch/x86/events/amd/uncore.c
> +++ b/arch/x86/events/amd/uncore.c
> @@ -479,8 +479,8 @@ static int amd_uncore_ctx_init(struct amd_uncore *uncore, unsigned int cpu)
>   				goto fail;
> 
>   			curr->cpu = cpu;
> -			curr->events = kzalloc_node(sizeof(*curr->events) *
> -						    pmu->num_counters,
> +			curr->events = kcalloc_node(pmu->num_counters,
> +						    sizeof(*curr->events),
>   						    GFP_KERNEL, node);
>   			if (!curr->events) {
>   				kfree(curr);
> @@ -928,7 +928,7 @@ int amd_uncore_umc_ctx_init(struct amd_uncore *uncore, unsigned int cpu)
>   		uncore->num_pmus += group_num_pmus[gid];
>   	}
> 
> -	uncore->pmus = kzalloc(sizeof(*uncore->pmus) * uncore->num_pmus,
> +	uncore->pmus = kcalloc(uncore->num_pmus, sizeof(*uncore->pmus),
>   			       GFP_KERNEL);
>   	if (!uncore->pmus) {
>   		uncore->num_pmus = 0;
> --
> 2.25.1
> 
> 

^ permalink raw reply	[relevance 0%]

* [PATCH] perf/x86/amd/uncore: Use kcalloc*() instead of kzalloc*()
@ 2024-01-16 12:58  4% Erick Archer
  2024-01-16 16:30  0% ` Gustavo A. R. Silva
  0 siblings, 1 reply; 200+ results
From: Erick Archer @ 2024-01-16 12:58 UTC (permalink / raw)
  To: Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
	Namhyung Kim, Thomas Gleixner, Borislav Petkov, Dave Hansen,
	Gustavo A. R. Silva, x86
  Cc: Erick Archer, Mark Rutland, Alexander Shishkin, Jiri Olsa,
	Ian Rogers, Adrian Hunter, H. Peter Anvin, linux-perf-users,
	linux-kernel, linux-hardening

As noted in the "Deprecated Interfaces, Language Features, Attributes,
and Conventions" documentation [1], size calculations (especially
multiplication) should not be performed in memory allocator (or similar)
function arguments due to the risk of them overflowing. This could lead
to values wrapping around and a smaller allocation being made than the
caller was expecting. Using those allocations could lead to linear
overflows of heap memory and other misbehaviors.

So, use the purpose specific kcalloc*() function instead of the argument
size * count in the kzalloc*() function.

[1] https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments

Link: https://github.com/KSPP/linux/issues/162
Signed-off-by: Erick Archer <erick.archer@gmx.com>
---
 arch/x86/events/amd/uncore.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/arch/x86/events/amd/uncore.c b/arch/x86/events/amd/uncore.c
index 5bf03c575812..9073eb0613cf 100644
--- a/arch/x86/events/amd/uncore.c
+++ b/arch/x86/events/amd/uncore.c
@@ -479,8 +479,8 @@ static int amd_uncore_ctx_init(struct amd_uncore *uncore, unsigned int cpu)
 				goto fail;

 			curr->cpu = cpu;
-			curr->events = kzalloc_node(sizeof(*curr->events) *
-						    pmu->num_counters,
+			curr->events = kcalloc_node(pmu->num_counters,
+						    sizeof(*curr->events),
 						    GFP_KERNEL, node);
 			if (!curr->events) {
 				kfree(curr);
@@ -928,7 +928,7 @@ int amd_uncore_umc_ctx_init(struct amd_uncore *uncore, unsigned int cpu)
 		uncore->num_pmus += group_num_pmus[gid];
 	}

-	uncore->pmus = kzalloc(sizeof(*uncore->pmus) * uncore->num_pmus,
+	uncore->pmus = kcalloc(uncore->num_pmus, sizeof(*uncore->pmus),
 			       GFP_KERNEL);
 	if (!uncore->pmus) {
 		uncore->num_pmus = 0;
--
2.25.1


^ permalink raw reply related	[relevance 4%]

* Re: [PATCH v2] eventfs: Use kcalloc() instead of kzalloc()
  2024-01-15 18:16  4% [PATCH v2] eventfs: Use kcalloc() instead of kzalloc() Erick Archer
@ 2024-01-15 18:24  0% ` Gustavo A. R. Silva
  0 siblings, 0 replies; 200+ results
From: Gustavo A. R. Silva @ 2024-01-15 18:24 UTC (permalink / raw)
  To: Erick Archer, Steven Rostedt, Masami Hiramatsu, Gustavo A. R. Silva
  Cc: Mathieu Desnoyers, Mark Rutland, linux-kernel,
	linux-trace-kernel, linux-hardening



On 1/15/24 12:16, Erick Archer wrote:
> As noted in the "Deprecated Interfaces, Language Features, Attributes,
> and Conventions" documentation [1], size calculations (especially
> multiplication) should not be performed in memory allocator (or similar)
> function arguments due to the risk of them overflowing. This could lead
> to values wrapping around and a smaller allocation being made than the
> caller was expecting. Using those allocations could lead to linear
> overflows of heap memory and other misbehaviors.
> 
> So, use the purpose specific kcalloc() function instead of the argument
> size * count in the kzalloc() function.
> 
> [1] https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments
> 
> Link: https://github.com/KSPP/linux/issues/162
> Signed-off-by: Erick Archer <erick.archer@gmx.com>

Reviewed-by: Gustavo A. R. Silva <gustavoars@kernel.org>

Thanks!
-- 
Gustavo

> ---
> Changes in v2:
> - Update the commit message to better explain the changes (Mark Rutland)
> 
> Previous versions:
> v1: https://lore.kernel.org/linux-hardening/20240114105340.5746-1-erick.archer@gmx.com/
> ---
>   fs/tracefs/event_inode.c | 6 +++---
>   1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/fs/tracefs/event_inode.c b/fs/tracefs/event_inode.c
> index fdff53d5a1f8..f8196289692c 100644
> --- a/fs/tracefs/event_inode.c
> +++ b/fs/tracefs/event_inode.c
> @@ -93,7 +93,7 @@ static int eventfs_set_attr(struct mnt_idmap *idmap, struct dentry *dentry,
>   	/* Preallocate the children mode array if necessary */
>   	if (!(dentry->d_inode->i_mode & S_IFDIR)) {
>   		if (!ei->entry_attrs) {
> -			ei->entry_attrs = kzalloc(sizeof(*ei->entry_attrs) * ei->nr_entries,
> +			ei->entry_attrs = kcalloc(ei->nr_entries, sizeof(*ei->entry_attrs),
>   						  GFP_NOFS);
>   			if (!ei->entry_attrs) {
>   				ret = -ENOMEM;
> @@ -874,7 +874,7 @@ struct eventfs_inode *eventfs_create_dir(const char *name, struct eventfs_inode
>   	}
> 
>   	if (size) {
> -		ei->d_children = kzalloc(sizeof(*ei->d_children) * size, GFP_KERNEL);
> +		ei->d_children = kcalloc(size, sizeof(*ei->d_children), GFP_KERNEL);
>   		if (!ei->d_children) {
>   			kfree_const(ei->name);
>   			kfree(ei);
> @@ -941,7 +941,7 @@ struct eventfs_inode *eventfs_create_events_dir(const char *name, struct dentry
>   		goto fail;
> 
>   	if (size) {
> -		ei->d_children = kzalloc(sizeof(*ei->d_children) * size, GFP_KERNEL);
> +		ei->d_children = kcalloc(size, sizeof(*ei->d_children), GFP_KERNEL);
>   		if (!ei->d_children)
>   			goto fail;
>   	}
> --
> 2.25.1
> 
> 

^ permalink raw reply	[relevance 0%]

* [PATCH v2] eventfs: Use kcalloc() instead of kzalloc()
@ 2024-01-15 18:16  4% Erick Archer
  2024-01-15 18:24  0% ` Gustavo A. R. Silva
  0 siblings, 1 reply; 200+ results
From: Erick Archer @ 2024-01-15 18:16 UTC (permalink / raw)
  To: Steven Rostedt, Masami Hiramatsu, Gustavo A. R. Silva
  Cc: Erick Archer, Mathieu Desnoyers, Mark Rutland, linux-kernel,
	linux-trace-kernel, linux-hardening

As noted in the "Deprecated Interfaces, Language Features, Attributes,
and Conventions" documentation [1], size calculations (especially
multiplication) should not be performed in memory allocator (or similar)
function arguments due to the risk of them overflowing. This could lead
to values wrapping around and a smaller allocation being made than the
caller was expecting. Using those allocations could lead to linear
overflows of heap memory and other misbehaviors.

So, use the purpose specific kcalloc() function instead of the argument
size * count in the kzalloc() function.

[1] https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments

Link: https://github.com/KSPP/linux/issues/162
Signed-off-by: Erick Archer <erick.archer@gmx.com>
---
Changes in v2:
- Update the commit message to better explain the changes (Mark Rutland)

Previous versions:
v1: https://lore.kernel.org/linux-hardening/20240114105340.5746-1-erick.archer@gmx.com/
---
 fs/tracefs/event_inode.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/fs/tracefs/event_inode.c b/fs/tracefs/event_inode.c
index fdff53d5a1f8..f8196289692c 100644
--- a/fs/tracefs/event_inode.c
+++ b/fs/tracefs/event_inode.c
@@ -93,7 +93,7 @@ static int eventfs_set_attr(struct mnt_idmap *idmap, struct dentry *dentry,
 	/* Preallocate the children mode array if necessary */
 	if (!(dentry->d_inode->i_mode & S_IFDIR)) {
 		if (!ei->entry_attrs) {
-			ei->entry_attrs = kzalloc(sizeof(*ei->entry_attrs) * ei->nr_entries,
+			ei->entry_attrs = kcalloc(ei->nr_entries, sizeof(*ei->entry_attrs),
 						  GFP_NOFS);
 			if (!ei->entry_attrs) {
 				ret = -ENOMEM;
@@ -874,7 +874,7 @@ struct eventfs_inode *eventfs_create_dir(const char *name, struct eventfs_inode
 	}

 	if (size) {
-		ei->d_children = kzalloc(sizeof(*ei->d_children) * size, GFP_KERNEL);
+		ei->d_children = kcalloc(size, sizeof(*ei->d_children), GFP_KERNEL);
 		if (!ei->d_children) {
 			kfree_const(ei->name);
 			kfree(ei);
@@ -941,7 +941,7 @@ struct eventfs_inode *eventfs_create_events_dir(const char *name, struct dentry
 		goto fail;

 	if (size) {
-		ei->d_children = kzalloc(sizeof(*ei->d_children) * size, GFP_KERNEL);
+		ei->d_children = kcalloc(size, sizeof(*ei->d_children), GFP_KERNEL);
 		if (!ei->d_children)
 			goto fail;
 	}
--
2.25.1


^ permalink raw reply related	[relevance 4%]

* [PATCH linux-next] drm/amd/display: use kcalloc instead of open coded arithmetic
@ 2023-12-20  2:46  7% yang.guang5
  0 siblings, 0 replies; 200+ results
From: yang.guang5 @ 2023-12-20  2:46 UTC (permalink / raw)
  To: harry.wentland
  Cc: jiang.xuexin, chen.haonan2, cgel.zte, sunpeng.li,
	rodrigo.siqueira, alexander.deucher, christian.koenig,
	xinhui.pan, airlied, daniel, alex.hung, hamza.mahfooz, wayne.lin,
	hersenxs.wu, srinivasan.shanmugam, mario.limonciello, amd-gfx,
	dri-devel, linux-kernel

From: Yang Guang <yang.guang5@zte.com.cn>

Dynamic size calculations (especially multiplication) should not be 
performed in memory allocator (or similar) function arguments due 
to the risk of them overflowing. This could lead to values wrapping 
around and a smaller allocation being made than the caller was 
expecting. Using those allocations could lead to linear overflows 
of heap memory and other misbehaviors. 

Signed-off-by: Chen Haonan <chen.haonan2@zte.com.cn>
---
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
index d7ac020bd8af..d6d63bd7482e 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -9204,7 +9204,7 @@ static void amdgpu_dm_atomic_commit_tail(struct drm_atomic_state *state)
 		 * Here we create an empty update on each plane.
 		 * To fix this, DC should permit updating only stream properties.
 		 */
-		dummy_updates = kzalloc(sizeof(struct dc_surface_update) * MAX_SURFACES, GFP_ATOMIC);
+		dummy_updates = kcalloc(MAX_SURFACES, sizeof(struct dc_surface_update), GFP_ATOMIC);
 		for (j = 0; j < status->plane_count; j++)
 			dummy_updates[j].surface = status->plane_states[0];

-- 
2.25.1

^ permalink raw reply related	[relevance 7%]

* [PATCH linux-next] ext4: use kcalloc instead of open coded arithmetic
@ 2023-12-15 13:43  7% yang.guang5
  0 siblings, 0 replies; 200+ results
From: yang.guang5 @ 2023-12-15 13:43 UTC (permalink / raw)
  To: tytso
  Cc: jiang.xuexin, chen.haonan2, cgel.zte, adilger.kernel, linux-ext4,
	linux-kernel

From: Yang Guang <yang.guang5@zte.com.cn>

Dynamic size calculations (especially multiplication) should not be 
performed in memory allocator (or similar) function arguments due 
to the risk of them overflowing. This could lead to values wrapping 
around and a smaller allocation being made than the caller was 
expecting. Using those allocations could lead to linear overflows 
of heap memory and other misbehaviors. 

So, use the purpose specific kcalloc() function instead of the argument
size * count in the kzalloc() function.

Signed-off-by: Chen Haonan <chen.haonan2@zte.com.cn>
---
 fs/ext4/hash.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/ext4/hash.c b/fs/ext4/hash.c
index deabe29da7fb..7a9afac1597c 100644
--- a/fs/ext4/hash.c
+++ b/fs/ext4/hash.c
@@ -302,7 +302,7 @@ int ext4fs_dirhash(const struct inode *dir, const char *name, int len,

 	if (len && IS_CASEFOLDED(dir) &&
 	   (!IS_ENCRYPTED(dir) || fscrypt_has_encryption_key(dir))) {
-		buff = kzalloc(sizeof(char) * PATH_MAX, GFP_KERNEL);
+		buff = kcalloc(PATH_MAX, sizeof(char), GFP_KERNEL);
 		if (!buff)
 			return -ENOMEM;

-- 
2.25.1

^ permalink raw reply related	[relevance 7%]

* Re: [PATCH wireless 1/2] ath: dfs_pattern_detector: Fix a memory initialization issue
  2023-09-24  6:57  5% [PATCH wireless 1/2] ath: dfs_pattern_detector: Fix a memory initialization issue Christophe JAILLET
  2023-09-25 18:46  0% ` Jeff Johnson
  2023-09-26  0:44  0% ` Jeff Johnson
@ 2023-10-02 16:58  0% ` Kalle Valo
  2 siblings, 0 replies; 200+ results
From: Kalle Valo @ 2023-10-02 16:58 UTC (permalink / raw)
  To: Christophe JAILLET
  Cc: Christophe JAILLET, linux-kernel, kernel-janitors, Kalle Valo,
	linux-wireless

Christophe JAILLET <christophe.jaillet@wanadoo.fr> wrote:

> If an error occurs and channel_detector_exit() is called, it relies on
> entries of the 'detectors' array to be NULL.
> Otherwise, it may access to un-initialized memory.
> 
> Fix it and initialize the memory, as what was done before the commit in
> Fixes.
> 
> Fixes: a063b650ce5d ("ath: dfs_pattern_detector: Avoid open coded arithmetic in memory allocation")
> Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
> Reviewed-by: Jeff Johnson <quic_jjohnson@quicinc.com>
> Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>

2 patches applied to ath-next branch of ath.git, thanks.

79bd60ee87e1 wifi: ath: dfs_pattern_detector: Fix a memory initialization issue
27e154abf694 wifi: ath: dfs_pattern_detector: Use flex array to simplify code

-- 
https://patchwork.kernel.org/project/linux-wireless/patch/ad8c55b97ee4b330cb053ce2c448123c309cc91c.1695538105.git.christophe.jaillet@wanadoo.fr/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches


^ permalink raw reply	[relevance 0%]

* Re: [PATCH][next] ASoC: SOF: ipc4-topology: Use size_add() in call to struct_size()
  2023-10-02 15:17  0% ` Mark Brown
@ 2023-10-02 16:49  0%   ` Kees Cook
  0 siblings, 0 replies; 200+ results
From: Kees Cook @ 2023-10-02 16:49 UTC (permalink / raw)
  To: Mark Brown
  Cc: Pierre-Louis Bossart, Liam Girdwood, Peter Ujfalusi, Bard Liao,
	Ranjani Sridharan, Daniel Baluta, Kai Vehmanen, Jaroslav Kysela,
	Takashi Iwai, Gustavo A. R. Silva, sound-open-firmware,
	alsa-devel, linux-kernel, linux-hardening

On Mon, Oct 02, 2023 at 04:17:24PM +0100, Mark Brown wrote:
> On Fri, 15 Sep 2023 13:09:11 -0600, Gustavo A. R. Silva wrote:
> > If, for any reason, the open-coded arithmetic causes a wraparound,
> > the protection that `struct_size()` adds against potential integer
> > overflows is defeated. Fix this by hardening call to `struct_size()`
> > with `size_add()`.
> > 
> > 
> 
> Applied to
> 
>    https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next
> 
> Thanks!
> 
> [1/1] ASoC: SOF: ipc4-topology: Use size_add() in call to struct_size()
>       commit: 3746284c233d5cf5f456400e61cd4a46a69c6e8c

Thanks! I've dropped it from my tree.

-Kees

-- 
Kees Cook

^ permalink raw reply	[relevance 0%]

* Re: [PATCH][next] ASoC: SOF: ipc4-topology: Use size_add() in call to struct_size()
    2023-09-29 19:14  0% ` Kees Cook
@ 2023-10-02 15:17  0% ` Mark Brown
  2023-10-02 16:49  0%   ` Kees Cook
  1 sibling, 1 reply; 200+ results
From: Mark Brown @ 2023-10-02 15:17 UTC (permalink / raw)
  To: Pierre-Louis Bossart, Liam Girdwood, Peter Ujfalusi, Bard Liao,
	Ranjani Sridharan, Daniel Baluta, Kai Vehmanen, Jaroslav Kysela,
	Takashi Iwai, Gustavo A. R. Silva
  Cc: sound-open-firmware, alsa-devel, linux-kernel, linux-hardening

On Fri, 15 Sep 2023 13:09:11 -0600, Gustavo A. R. Silva wrote:
> If, for any reason, the open-coded arithmetic causes a wraparound,
> the protection that `struct_size()` adds against potential integer
> overflows is defeated. Fix this by hardening call to `struct_size()`
> with `size_add()`.
> 
> 

Applied to

   https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next

Thanks!

[1/1] ASoC: SOF: ipc4-topology: Use size_add() in call to struct_size()
      commit: 3746284c233d5cf5f456400e61cd4a46a69c6e8c

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

Thanks,
Mark


^ permalink raw reply	[relevance 0%]

* Re: [PATCH][next] ASoC: SOF: ipc4-topology: Use size_add() in call to struct_size()
  2023-10-01 10:25  0%   ` Mark Brown
@ 2023-10-01 20:37  0%     ` Kees Cook
  0 siblings, 0 replies; 200+ results
From: Kees Cook @ 2023-10-01 20:37 UTC (permalink / raw)
  To: Mark Brown
  Cc: Pierre-Louis Bossart, Liam Girdwood, Peter Ujfalusi, Bard Liao,
	Ranjani Sridharan, Daniel Baluta, Kai Vehmanen, Jaroslav Kysela,
	Takashi Iwai, Gustavo A. R. Silva, sound-open-firmware,
	alsa-devel, linux-kernel, linux-hardening

On Sun, Oct 01, 2023 at 11:25:59AM +0100, Mark Brown wrote:
> On Fri, Sep 29, 2023 at 12:14:59PM -0700, Kees Cook wrote:
> > On Fri, 15 Sep 2023 13:09:11 -0600, Gustavo A. R. Silva wrote:
> 
> > > If, for any reason, the open-coded arithmetic causes a wraparound,
> > > the protection that `struct_size()` adds against potential integer
> > > overflows is defeated. Fix this by hardening call to `struct_size()`
> > > with `size_add()`.
> 
> > [1/1] ASoC: SOF: ipc4-topology: Use size_add() in call to struct_size()
> >       https://git.kernel.org/kees/c/93d2858dd630
> 
> Why is this bypassing the ASoC tree?

Hi! Sorry, I can drop it if you want to take it? I tend to collect trivial
hardening changes with reviews that haven't been otherwise commented on
for at least 2 weeks.

-Kees

-- 
Kees Cook

^ permalink raw reply	[relevance 0%]

* Re: [PATCH][next] ASoC: SOF: ipc4-topology: Use size_add() in call to struct_size()
  2023-09-29 19:14  0% ` Kees Cook
@ 2023-10-01 10:25  0%   ` Mark Brown
  2023-10-01 20:37  0%     ` Kees Cook
  0 siblings, 1 reply; 200+ results
From: Mark Brown @ 2023-10-01 10:25 UTC (permalink / raw)
  To: Kees Cook
  Cc: Pierre-Louis Bossart, Liam Girdwood, Peter Ujfalusi, Bard Liao,
	Ranjani Sridharan, Daniel Baluta, Kai Vehmanen, Jaroslav Kysela,
	Takashi Iwai, Gustavo A. R. Silva, sound-open-firmware,
	alsa-devel, linux-kernel, linux-hardening

[-- Attachment #1: Type: text/plain, Size: 527 bytes --]

On Fri, Sep 29, 2023 at 12:14:59PM -0700, Kees Cook wrote:
> On Fri, 15 Sep 2023 13:09:11 -0600, Gustavo A. R. Silva wrote:

> > If, for any reason, the open-coded arithmetic causes a wraparound,
> > the protection that `struct_size()` adds against potential integer
> > overflows is defeated. Fix this by hardening call to `struct_size()`
> > with `size_add()`.

> [1/1] ASoC: SOF: ipc4-topology: Use size_add() in call to struct_size()
>       https://git.kernel.org/kees/c/93d2858dd630

Why is this bypassing the ASoC tree?

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[relevance 0%]

* Re: [PATCH][next] drm/gud: Use size_add() in call to struct_size()
  @ 2023-09-29 19:15  0% ` Kees Cook
  0 siblings, 0 replies; 200+ results
From: Kees Cook @ 2023-09-29 19:15 UTC (permalink / raw)
  To: Noralf Trønnes, David Airlie, Daniel Vetter, Peter Stuge,
	Gustavo A. R. Silva
  Cc: Kees Cook, dri-devel, linux-kernel, linux-hardening

On Fri, 15 Sep 2023 12:43:20 -0600, Gustavo A. R. Silva wrote:
> If, for any reason, the open-coded arithmetic causes a wraparound, the
> protection that `struct_size()` adds against potential integer overflows
> is defeated. Fix this by hardening call to `struct_size()` with `size_add()`.
> 
> 

Applied to for-next/hardening, thanks!

[1/1] drm/gud: Use size_add() in call to struct_size()
      https://git.kernel.org/kees/c/836ccb46073e

Take care,

-- 
Kees Cook


^ permalink raw reply	[relevance 0%]

* Re: [PATCH][next] ASoC: SOF: ipc4-topology: Use size_add() in call to struct_size()
  @ 2023-09-29 19:14  0% ` Kees Cook
  2023-10-01 10:25  0%   ` Mark Brown
  2023-10-02 15:17  0% ` Mark Brown
  1 sibling, 1 reply; 200+ results
From: Kees Cook @ 2023-09-29 19:14 UTC (permalink / raw)
  To: Pierre-Louis Bossart, Liam Girdwood, Peter Ujfalusi, Bard Liao,
	Ranjani Sridharan, Daniel Baluta, Kai Vehmanen, Mark Brown,
	Jaroslav Kysela, Takashi Iwai, Gustavo A. R. Silva
  Cc: Kees Cook, sound-open-firmware, alsa-devel, linux-kernel,
	linux-hardening

On Fri, 15 Sep 2023 13:09:11 -0600, Gustavo A. R. Silva wrote:
> If, for any reason, the open-coded arithmetic causes a wraparound,
> the protection that `struct_size()` adds against potential integer
> overflows is defeated. Fix this by hardening call to `struct_size()`
> with `size_add()`.
> 
> 

Applied to for-next/hardening, thanks!

[1/1] ASoC: SOF: ipc4-topology: Use size_add() in call to struct_size()
      https://git.kernel.org/kees/c/93d2858dd630

Take care,

-- 
Kees Cook


^ permalink raw reply	[relevance 0%]

* Re: [PATCH][next] usb: atm: Use size_add() in call to struct_size()
    2023-09-15 19:43  0% ` Kees Cook
@ 2023-09-29 19:15  0% ` Kees Cook
  1 sibling, 0 replies; 200+ results
From: Kees Cook @ 2023-09-29 19:15 UTC (permalink / raw)
  To: Duncan Sands, Greg Kroah-Hartman, Gustavo A. R. Silva
  Cc: Kees Cook, linux-usb, linux-kernel, linux-hardening

On Fri, 15 Sep 2023 13:20:14 -0600, Gustavo A. R. Silva wrote:
> If, for any reason, the open-coded arithmetic causes a wraparound,
> the protection that `struct_size()` adds against potential integer
> overflows is defeated. Fix this by hardening call to `struct_size()`
> with `size_add()`.
> 
> 

Applied to for-next/hardening, thanks!

[1/1] usb: atm: Use size_add() in call to struct_size()
      https://git.kernel.org/kees/c/13f1a60fe04f

Take care,

-- 
Kees Cook


^ permalink raw reply	[relevance 0%]

* Re: [PATCH wireless 1/2] ath: dfs_pattern_detector: Fix a memory initialization issue
  2023-09-24  6:57  5% [PATCH wireless 1/2] ath: dfs_pattern_detector: Fix a memory initialization issue Christophe JAILLET
  2023-09-25 18:46  0% ` Jeff Johnson
@ 2023-09-26  0:44  0% ` Jeff Johnson
  2023-10-02 16:58  0% ` Kalle Valo
  2 siblings, 0 replies; 200+ results
From: Jeff Johnson @ 2023-09-26  0:44 UTC (permalink / raw)
  To: Christophe JAILLET, Kalle Valo
  Cc: linux-kernel, kernel-janitors, Kalle Valo, linux-wireless

On 9/23/2023 11:57 PM, Christophe JAILLET wrote:
> If an error occurs and channel_detector_exit() is called, it relies on
> entries of the 'detectors' array to be NULL.
> Otherwise, it may access to un-initialized memory.
> 
> Fix it and initialize the memory, as what was done before the commit in
> Fixes.
> 
> Fixes: a063b650ce5d ("ath: dfs_pattern_detector: Avoid open coded arithmetic in memory allocation")
> Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>

Reviewed-by: Jeff Johnson <quic_jjohnson@quicinc.com>


^ permalink raw reply	[relevance 0%]

* Re: [PATCH wireless 1/2] ath: dfs_pattern_detector: Fix a memory initialization issue
  2023-09-25 18:46  0% ` Jeff Johnson
@ 2023-09-25 20:54  0%   ` Christophe JAILLET
  0 siblings, 0 replies; 200+ results
From: Christophe JAILLET @ 2023-09-25 20:54 UTC (permalink / raw)
  To: quic_jjohnson
  Cc: christophe.jaillet, kernel-janitors, kvalo, linux-kernel,
	linux-wireless, quic_kvalo

Le 25/09/2023 à 20:46, Jeff Johnson a écrit :
> On 9/23/2023 11:57 PM, Christophe JAILLET wrote:
>> If an error occurs and channel_detector_exit() is called, it relies on
>> entries of the 'detectors' array to be NULL.
>> Otherwise, it may access to un-initialized memory.
>>
>> Fix it and initialize the memory, as what was done before the commit in
>> Fixes.
>>
>> Fixes: a063b650ce5d ("ath: dfs_pattern_detector: Avoid open coded 
>> arithmetic in memory allocation")
>> Signed-off-by: Christophe JAILLET 
>> <christophe.jaillet-39ZsbGIQGT5GWvitb5QawA@public.gmane.org>
>> ---
>> Patch #1/2 is a fix, for for wireless.
>> Patch #2/2 is for wireless-next I guess, but depnds on #1
>>
>> Not sure if we can mix different target in the same serie. Let me know.
>>
>> BTW, sorry for messing up things with a063b650ce5d :(
>> ---
>>   drivers/net/wireless/ath/dfs_pattern_detector.c | 2 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/net/wireless/ath/dfs_pattern_detector.c 
>> b/drivers/net/wireless/ath/dfs_pattern_detector.c
>> index 27f4d74a41c8..2788a1b06c17 100644
>> --- a/drivers/net/wireless/ath/dfs_pattern_detector.c
>> +++ b/drivers/net/wireless/ath/dfs_pattern_detector.c
>> @@ -206,7 +206,7 @@ channel_detector_create(struct 
>> dfs_pattern_detector *dpd, u16 freq)
>>       INIT_LIST_HEAD(&cd->head);
>>       cd->freq = freq;
>> -    cd->detectors = kmalloc_array(dpd->num_radar_types,
>> +    cd->detectors = kcalloc(dpd->num_radar_types,
>>                         sizeof(*cd->detectors), GFP_ATOMIC);
> 
> nit: align descendant on (

Agreed, but as the code is removed in patch 2/2, I thought that having a 
smaller diff was a better option.

Let me know if I should resend the serie.

CJ

> 
>>       if (cd->detectors == NULL)
>>           goto fail;
> 
> 


^ permalink raw reply	[relevance 0%]

* Re: [PATCH wireless 1/2] ath: dfs_pattern_detector: Fix a memory initialization issue
  2023-09-24  6:57  5% [PATCH wireless 1/2] ath: dfs_pattern_detector: Fix a memory initialization issue Christophe JAILLET
@ 2023-09-25 18:46  0% ` Jeff Johnson
  2023-09-25 20:54  0%   ` Christophe JAILLET
  2023-09-26  0:44  0% ` Jeff Johnson
  2023-10-02 16:58  0% ` Kalle Valo
  2 siblings, 1 reply; 200+ results
From: Jeff Johnson @ 2023-09-25 18:46 UTC (permalink / raw)
  To: Christophe JAILLET, Kalle Valo
  Cc: linux-kernel, kernel-janitors, Kalle Valo, linux-wireless

On 9/23/2023 11:57 PM, Christophe JAILLET wrote:
> If an error occurs and channel_detector_exit() is called, it relies on
> entries of the 'detectors' array to be NULL.
> Otherwise, it may access to un-initialized memory.
> 
> Fix it and initialize the memory, as what was done before the commit in
> Fixes.
> 
> Fixes: a063b650ce5d ("ath: dfs_pattern_detector: Avoid open coded arithmetic in memory allocation")
> Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
> ---
> Patch #1/2 is a fix, for for wireless.
> Patch #2/2 is for wireless-next I guess, but depnds on #1
> 
> Not sure if we can mix different target in the same serie. Let me know.
> 
> BTW, sorry for messing up things with a063b650ce5d :(
> ---
>   drivers/net/wireless/ath/dfs_pattern_detector.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/net/wireless/ath/dfs_pattern_detector.c b/drivers/net/wireless/ath/dfs_pattern_detector.c
> index 27f4d74a41c8..2788a1b06c17 100644
> --- a/drivers/net/wireless/ath/dfs_pattern_detector.c
> +++ b/drivers/net/wireless/ath/dfs_pattern_detector.c
> @@ -206,7 +206,7 @@ channel_detector_create(struct dfs_pattern_detector *dpd, u16 freq)
>   
>   	INIT_LIST_HEAD(&cd->head);
>   	cd->freq = freq;
> -	cd->detectors = kmalloc_array(dpd->num_radar_types,
> +	cd->detectors = kcalloc(dpd->num_radar_types,
>   				      sizeof(*cd->detectors), GFP_ATOMIC);

nit: align descendant on (

>   	if (cd->detectors == NULL)
>   		goto fail;


^ permalink raw reply	[relevance 0%]

* [PATCH wireless 1/2] ath: dfs_pattern_detector: Fix a memory initialization issue
@ 2023-09-24  6:57  5% Christophe JAILLET
  2023-09-25 18:46  0% ` Jeff Johnson
                   ` (2 more replies)
  0 siblings, 3 replies; 200+ results
From: Christophe JAILLET @ 2023-09-24  6:57 UTC (permalink / raw)
  To: Kalle Valo, Christophe JAILLET
  Cc: linux-kernel, kernel-janitors, Kalle Valo, linux-wireless

If an error occurs and channel_detector_exit() is called, it relies on
entries of the 'detectors' array to be NULL.
Otherwise, it may access to un-initialized memory.

Fix it and initialize the memory, as what was done before the commit in
Fixes.

Fixes: a063b650ce5d ("ath: dfs_pattern_detector: Avoid open coded arithmetic in memory allocation")
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
---
Patch #1/2 is a fix, for for wireless.
Patch #2/2 is for wireless-next I guess, but depnds on #1

Not sure if we can mix different target in the same serie. Let me know.

BTW, sorry for messing up things with a063b650ce5d :(
---
 drivers/net/wireless/ath/dfs_pattern_detector.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/wireless/ath/dfs_pattern_detector.c b/drivers/net/wireless/ath/dfs_pattern_detector.c
index 27f4d74a41c8..2788a1b06c17 100644
--- a/drivers/net/wireless/ath/dfs_pattern_detector.c
+++ b/drivers/net/wireless/ath/dfs_pattern_detector.c
@@ -206,7 +206,7 @@ channel_detector_create(struct dfs_pattern_detector *dpd, u16 freq)
 
 	INIT_LIST_HEAD(&cd->head);
 	cd->freq = freq;
-	cd->detectors = kmalloc_array(dpd->num_radar_types,
+	cd->detectors = kcalloc(dpd->num_radar_types,
 				      sizeof(*cd->detectors), GFP_ATOMIC);
 	if (cd->detectors == NULL)
 		goto fail;
-- 
2.34.1


^ permalink raw reply related	[relevance 5%]

* Re: [PATCH v3][next] RDMA/core: Use size_{add,sub,mul}() in calls to struct_size()
  2023-09-17 21:21  4% [PATCH v3][next] RDMA/core: Use size_{add,sub,mul}() in calls " Gustavo A. R. Silva
  2023-09-19  7:37  0% ` Leon Romanovsky
@ 2023-09-19  7:37  0% ` Leon Romanovsky
  1 sibling, 0 replies; 200+ results
From: Leon Romanovsky @ 2023-09-19  7:37 UTC (permalink / raw)
  To: Jason Gunthorpe, Parav Pandit, Jack Morgenstein,
	Gustavo A. R. Silva, Gustavo A. R. Silva
  Cc: linux-rdma, linux-kernel, linux-hardening


On Sun, 17 Sep 2023 15:21:36 -0600, Gustavo A. R. Silva wrote:
> If, for any reason, the open-coded arithmetic causes a wraparound,
> the protection that `struct_size()` provides against potential integer
> overflows is defeated. Fix this by hardening calls to `struct_size()`
> with `size_add()`, `size_sub()` and `size_mul()`.
> 
> 

Applied, thanks!

[1/1] RDMA/core: Use size_{add,sub,mul}() in calls to struct_size()
      https://git.kernel.org/rdma/rdma/c/81760bedc65194

Best regards,
-- 
Leon Romanovsky <leon@kernel.org>

^ permalink raw reply	[relevance 0%]

* Re: [PATCH v3][next] RDMA/core: Use size_{add,sub,mul}() in calls to struct_size()
  2023-09-17 21:21  4% [PATCH v3][next] RDMA/core: Use size_{add,sub,mul}() in calls " Gustavo A. R. Silva
@ 2023-09-19  7:37  0% ` Leon Romanovsky
  2023-09-19  7:37  0% ` Leon Romanovsky
  1 sibling, 0 replies; 200+ results
From: Leon Romanovsky @ 2023-09-19  7:37 UTC (permalink / raw)
  To: Gustavo A. R. Silva
  Cc: Jason Gunthorpe, Parav Pandit, Jack Morgenstein,
	Gustavo A. R. Silva, linux-rdma, linux-kernel, linux-hardening

On Sun, Sep 17, 2023 at 03:21:36PM -0600, Gustavo A. R. Silva wrote:
> If, for any reason, the open-coded arithmetic causes a wraparound,

The thing is that it doesn't.

> the protection that `struct_size()` provides against potential integer
> overflows is defeated. Fix this by hardening calls to `struct_size()`
> with `size_add()`, `size_sub()` and `size_mul()`.
> 
> Fixes: 467f432a521a ("RDMA/core: Split port and device counter sysfs attributes")
> Fixes: a4676388e2e2 ("RDMA/core: Simplify how the gid_attrs sysfs is created")
> Fixes: e9dd5daf884c ("IB/umad: Refactor code to use cdev_device_add()")
> Fixes: 324e227ea7c9 ("RDMA/device: Add ib_device_get_by_netdev()")
> Fixes: 5aad26a7eac5 ("IB/core: Use struct_size() in kzalloc()")
> Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
> ---
> Changes in v3:
>  - Include changes to other files in drivers/infiniband/core/
>  - Update changelog text with a more descriptive argument for the
>    changes.
>  - Add more `Fixes:` tags.

I don't think that any of these Fixes are necessary, as nothing wrong
in the code you changed.

Thanks

^ permalink raw reply	[relevance 0%]

* Re: [PATCH v2][next] RDMA/core: Use size_{add,mul}() in calls to struct_size()
  2023-09-18 12:41  0%         ` Leon Romanovsky
@ 2023-09-18  1:58  0%           ` Gustavo A. R. Silva
  0 siblings, 0 replies; 200+ results
From: Gustavo A. R. Silva @ 2023-09-18  1:58 UTC (permalink / raw)
  To: Leon Romanovsky
  Cc: Kees Cook, Gustavo A. R. Silva, Jason Gunthorpe, linux-rdma,
	linux-kernel, linux-hardening



On 9/18/23 06:41, Leon Romanovsky wrote:
> On Sun, Sep 17, 2023 at 01:59:26PM -0600, Gustavo A. R. Silva wrote:
>>
>>
>> On 9/18/23 04:49, Leon Romanovsky wrote:
>>> On Fri, Sep 15, 2023 at 12:06:21PM -0600, Gustavo A. R. Silva wrote:
>>>>
>>>>
>>>> On 9/14/23 21:29, Kees Cook wrote:
>>>>> On Mon, Sep 11, 2023 at 05:27:59PM -0600, Gustavo A. R. Silva wrote:
>>>>>> Harden calls to struct_size() with size_add() and size_mul().
>>>>>
>>>>> Specifically, make sure that open-coded arithmetic cannot cause an
>>>>> overflow/wraparound. (i.e. it will stay saturated at SIZE_MAX.)
>>>>
>>>> Yep; I have another patch where I explain this in similar terms.
>>>>
>>>> I'll send it, shortly.
>>>
>>> You missed other places with similar arithmetic.
>>> drivers/infiniband/core/device.c:       pdata_rcu = kzalloc(struct_size(pdata_rcu, pdata,
>>> drivers/infiniband/core/device.c-                                       rdma_end_port(device) + 1),
>>> drivers/infiniband/core/device.c-                           GFP_KERNEL);
>>>
>>> drivers/infiniband/core/sa_query.c:     sa_dev = kzalloc(struct_size(sa_dev, port, e - s + 1), GFP_KERNEL);
>>> drivers/infiniband/core/user_mad.c:     umad_dev = kzalloc(struct_size(umad_dev, ports, e - s + 1), GFP_KERNEL);
>>
>> I haven't sent all my patches.
> 
> Please sent one patch for whole drivers/infiniband/core/ folder as your
> title: "RDMA/core ..." suggests.

OK. Done:

https://lore.kernel.org/linux-hardening/ZQdt4NsJFwwOYxUR@work/

Thanks
--
Gustavo

^ permalink raw reply	[relevance 0%]

* [PATCH v3][next] RDMA/core: Use size_{add,sub,mul}() in calls to struct_size()
@ 2023-09-17 21:21  4% Gustavo A. R. Silva
  2023-09-19  7:37  0% ` Leon Romanovsky
  2023-09-19  7:37  0% ` Leon Romanovsky
  0 siblings, 2 replies; 200+ results
From: Gustavo A. R. Silva @ 2023-09-17 21:21 UTC (permalink / raw)
  To: Jason Gunthorpe, Leon Romanovsky, Parav Pandit, Jack Morgenstein,
	Gustavo A. R. Silva
  Cc: linux-rdma, linux-kernel, Gustavo A. R. Silva, linux-hardening

If, for any reason, the open-coded arithmetic causes a wraparound,
the protection that `struct_size()` provides against potential integer
overflows is defeated. Fix this by hardening calls to `struct_size()`
with `size_add()`, `size_sub()` and `size_mul()`.

Fixes: 467f432a521a ("RDMA/core: Split port and device counter sysfs attributes")
Fixes: a4676388e2e2 ("RDMA/core: Simplify how the gid_attrs sysfs is created")
Fixes: e9dd5daf884c ("IB/umad: Refactor code to use cdev_device_add()")
Fixes: 324e227ea7c9 ("RDMA/device: Add ib_device_get_by_netdev()")
Fixes: 5aad26a7eac5 ("IB/core: Use struct_size() in kzalloc()")
Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
---
Changes in v3:
 - Include changes to other files in drivers/infiniband/core/
 - Update changelog text with a more descriptive argument for the
   changes.
 - Add more `Fixes:` tags.

Changes in v2:
 - Update changelog text: remove the part about binary differences (it
   was added by mistake).
   Link: https://lore.kernel.org/linux-hardening/ZP+if342EMhModzZ@work/

v1:
 - Link: https://lore.kernel.org/linux-hardening/ZP+g+KfsEmEBAHmk@work/

 drivers/infiniband/core/device.c   |  2 +-
 drivers/infiniband/core/sa_query.c |  4 +++-
 drivers/infiniband/core/sysfs.c    | 10 +++++-----
 drivers/infiniband/core/user_mad.c |  4 +++-
 4 files changed, 12 insertions(+), 8 deletions(-)

diff --git a/drivers/infiniband/core/device.c b/drivers/infiniband/core/device.c
index a666847bd714..010718738d04 100644
--- a/drivers/infiniband/core/device.c
+++ b/drivers/infiniband/core/device.c
@@ -804,7 +804,7 @@ static int alloc_port_data(struct ib_device *device)
 	 * empty slots at the beginning.
 	 */
 	pdata_rcu = kzalloc(struct_size(pdata_rcu, pdata,
-					rdma_end_port(device) + 1),
+					size_add(rdma_end_port(device), 1)),
 			    GFP_KERNEL);
 	if (!pdata_rcu)
 		return -ENOMEM;
diff --git a/drivers/infiniband/core/sa_query.c b/drivers/infiniband/core/sa_query.c
index 59179cfc20ef..8175dde60b0a 100644
--- a/drivers/infiniband/core/sa_query.c
+++ b/drivers/infiniband/core/sa_query.c
@@ -2159,7 +2159,9 @@ static int ib_sa_add_one(struct ib_device *device)
 	s = rdma_start_port(device);
 	e = rdma_end_port(device);
 
-	sa_dev = kzalloc(struct_size(sa_dev, port, e - s + 1), GFP_KERNEL);
+	sa_dev = kzalloc(struct_size(sa_dev, port,
+				     size_add(size_sub(e, s), 1)),
+			 GFP_KERNEL);
 	if (!sa_dev)
 		return -ENOMEM;
 
diff --git a/drivers/infiniband/core/sysfs.c b/drivers/infiniband/core/sysfs.c
index ee59d7391568..ec5efdc16660 100644
--- a/drivers/infiniband/core/sysfs.c
+++ b/drivers/infiniband/core/sysfs.c
@@ -903,7 +903,7 @@ alloc_hw_stats_device(struct ib_device *ibdev)
 	 * Two extra attribue elements here, one for the lifespan entry and
 	 * one to NULL terminate the list for the sysfs core code
 	 */
-	data = kzalloc(struct_size(data, attrs, stats->num_counters + 1),
+	data = kzalloc(struct_size(data, attrs, size_add(stats->num_counters, 1)),
 		       GFP_KERNEL);
 	if (!data)
 		goto err_free_stats;
@@ -1009,7 +1009,7 @@ alloc_hw_stats_port(struct ib_port *port, struct attribute_group *group)
 	 * Two extra attribue elements here, one for the lifespan entry and
 	 * one to NULL terminate the list for the sysfs core code
 	 */
-	data = kzalloc(struct_size(data, attrs, stats->num_counters + 1),
+	data = kzalloc(struct_size(data, attrs, size_add(stats->num_counters, 1)),
 		       GFP_KERNEL);
 	if (!data)
 		goto err_free_stats;
@@ -1140,7 +1140,7 @@ static int setup_gid_attrs(struct ib_port *port,
 	int ret;
 
 	gid_attr_group = kzalloc(struct_size(gid_attr_group, attrs_list,
-					     attr->gid_tbl_len * 2),
+					     size_mul(attr->gid_tbl_len, 2)),
 				 GFP_KERNEL);
 	if (!gid_attr_group)
 		return -ENOMEM;
@@ -1205,8 +1205,8 @@ static struct ib_port *setup_port(struct ib_core_device *coredev, int port_num,
 	int ret;
 
 	p = kvzalloc(struct_size(p, attrs_list,
-				attr->gid_tbl_len + attr->pkey_tbl_len),
-		    GFP_KERNEL);
+				size_add(attr->gid_tbl_len, attr->pkey_tbl_len)),
+		     GFP_KERNEL);
 	if (!p)
 		return ERR_PTR(-ENOMEM);
 	p->ibdev = device;
diff --git a/drivers/infiniband/core/user_mad.c b/drivers/infiniband/core/user_mad.c
index 7e5c33aad161..f5feca7fa9b9 100644
--- a/drivers/infiniband/core/user_mad.c
+++ b/drivers/infiniband/core/user_mad.c
@@ -1378,7 +1378,9 @@ static int ib_umad_add_one(struct ib_device *device)
 	s = rdma_start_port(device);
 	e = rdma_end_port(device);
 
-	umad_dev = kzalloc(struct_size(umad_dev, ports, e - s + 1), GFP_KERNEL);
+	umad_dev = kzalloc(struct_size(umad_dev, ports,
+				       size_add(size_sub(e, s), 1)),
+			   GFP_KERNEL);
 	if (!umad_dev)
 		return -ENOMEM;
 
-- 
2.34.1


^ permalink raw reply related	[relevance 4%]

* Re: [PATCH v2][next] RDMA/core: Use size_{add,mul}() in calls to struct_size()
  2023-09-17 19:59  0%       ` Gustavo A. R. Silva
@ 2023-09-18 12:41  0%         ` Leon Romanovsky
  2023-09-18  1:58  0%           ` Gustavo A. R. Silva
  0 siblings, 1 reply; 200+ results
From: Leon Romanovsky @ 2023-09-18 12:41 UTC (permalink / raw)
  To: Gustavo A. R. Silva
  Cc: Kees Cook, Gustavo A. R. Silva, Jason Gunthorpe, linux-rdma,
	linux-kernel, linux-hardening

On Sun, Sep 17, 2023 at 01:59:26PM -0600, Gustavo A. R. Silva wrote:
> 
> 
> On 9/18/23 04:49, Leon Romanovsky wrote:
> > On Fri, Sep 15, 2023 at 12:06:21PM -0600, Gustavo A. R. Silva wrote:
> > > 
> > > 
> > > On 9/14/23 21:29, Kees Cook wrote:
> > > > On Mon, Sep 11, 2023 at 05:27:59PM -0600, Gustavo A. R. Silva wrote:
> > > > > Harden calls to struct_size() with size_add() and size_mul().
> > > > 
> > > > Specifically, make sure that open-coded arithmetic cannot cause an
> > > > overflow/wraparound. (i.e. it will stay saturated at SIZE_MAX.)
> > > 
> > > Yep; I have another patch where I explain this in similar terms.
> > > 
> > > I'll send it, shortly.
> > 
> > You missed other places with similar arithmetic.
> > drivers/infiniband/core/device.c:       pdata_rcu = kzalloc(struct_size(pdata_rcu, pdata,
> > drivers/infiniband/core/device.c-                                       rdma_end_port(device) + 1),
> > drivers/infiniband/core/device.c-                           GFP_KERNEL);
> > 
> > drivers/infiniband/core/sa_query.c:     sa_dev = kzalloc(struct_size(sa_dev, port, e - s + 1), GFP_KERNEL);
> > drivers/infiniband/core/user_mad.c:     umad_dev = kzalloc(struct_size(umad_dev, ports, e - s + 1), GFP_KERNEL);
> 
> I haven't sent all my patches.

Please sent one patch for whole drivers/infiniband/core/ folder as your
title: "RDMA/core ..." suggests.

Thanks

> 
> --
> Gustavo

^ permalink raw reply	[relevance 0%]

* Re: [PATCH v2][next] RDMA/core: Use size_{add,mul}() in calls to struct_size()
  2023-09-18 10:49  0%     ` Leon Romanovsky
@ 2023-09-17 19:59  0%       ` Gustavo A. R. Silva
  2023-09-18 12:41  0%         ` Leon Romanovsky
  0 siblings, 1 reply; 200+ results
From: Gustavo A. R. Silva @ 2023-09-17 19:59 UTC (permalink / raw)
  To: Leon Romanovsky
  Cc: Kees Cook, Gustavo A. R. Silva, Jason Gunthorpe, linux-rdma,
	linux-kernel, linux-hardening



On 9/18/23 04:49, Leon Romanovsky wrote:
> On Fri, Sep 15, 2023 at 12:06:21PM -0600, Gustavo A. R. Silva wrote:
>>
>>
>> On 9/14/23 21:29, Kees Cook wrote:
>>> On Mon, Sep 11, 2023 at 05:27:59PM -0600, Gustavo A. R. Silva wrote:
>>>> Harden calls to struct_size() with size_add() and size_mul().
>>>
>>> Specifically, make sure that open-coded arithmetic cannot cause an
>>> overflow/wraparound. (i.e. it will stay saturated at SIZE_MAX.)
>>
>> Yep; I have another patch where I explain this in similar terms.
>>
>> I'll send it, shortly.
> 
> You missed other places with similar arithmetic.
> drivers/infiniband/core/device.c:       pdata_rcu = kzalloc(struct_size(pdata_rcu, pdata,
> drivers/infiniband/core/device.c-                                       rdma_end_port(device) + 1),
> drivers/infiniband/core/device.c-                           GFP_KERNEL);
> 
> drivers/infiniband/core/sa_query.c:     sa_dev = kzalloc(struct_size(sa_dev, port, e - s + 1), GFP_KERNEL);
> drivers/infiniband/core/user_mad.c:     umad_dev = kzalloc(struct_size(umad_dev, ports, e - s + 1), GFP_KERNEL);

I haven't sent all my patches.

--
Gustavo

^ permalink raw reply	[relevance 0%]

* Re: [PATCH v2][next] RDMA/core: Use size_{add,mul}() in calls to struct_size()
  @ 2023-09-18 10:49  0%     ` Leon Romanovsky
  2023-09-17 19:59  0%       ` Gustavo A. R. Silva
  0 siblings, 1 reply; 200+ results
From: Leon Romanovsky @ 2023-09-18 10:49 UTC (permalink / raw)
  To: Gustavo A. R. Silva
  Cc: Kees Cook, Gustavo A. R. Silva, Jason Gunthorpe, linux-rdma,
	linux-kernel, linux-hardening

On Fri, Sep 15, 2023 at 12:06:21PM -0600, Gustavo A. R. Silva wrote:
> 
> 
> On 9/14/23 21:29, Kees Cook wrote:
> > On Mon, Sep 11, 2023 at 05:27:59PM -0600, Gustavo A. R. Silva wrote:
> > > Harden calls to struct_size() with size_add() and size_mul().
> > 
> > Specifically, make sure that open-coded arithmetic cannot cause an
> > overflow/wraparound. (i.e. it will stay saturated at SIZE_MAX.)
> 
> Yep; I have another patch where I explain this in similar terms.
> 
> I'll send it, shortly.

You missed other places with similar arithmetic.
drivers/infiniband/core/device.c:       pdata_rcu = kzalloc(struct_size(pdata_rcu, pdata,
drivers/infiniband/core/device.c-                                       rdma_end_port(device) + 1),
drivers/infiniband/core/device.c-                           GFP_KERNEL);

drivers/infiniband/core/sa_query.c:     sa_dev = kzalloc(struct_size(sa_dev, port, e - s + 1), GFP_KERNEL);
drivers/infiniband/core/user_mad.c:     umad_dev = kzalloc(struct_size(umad_dev, ports, e - s + 1), GFP_KERNEL);

Thanks

> 
> > 
> > > 
> > > Fixes: 467f432a521a ("RDMA/core: Split port and device counter sysfs attributes")
> > > Fixes: a4676388e2e2 ("RDMA/core: Simplify how the gid_attrs sysfs is created")
> > > Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
> > 
> > Reviewed-by: Kees Cook <keescook@chromium.org>
> 
> Thanks!
> 
> --
> Gustavo
> 
> > 
> > -Kees
> > 
> > > ---
> > > Changes in v2:
> > >   - Update changelog text: remove the part about binary differences (it
> > >     was added by mistake).
> > > 
> > >   drivers/infiniband/core/sysfs.c | 10 +++++-----
> > >   1 file changed, 5 insertions(+), 5 deletions(-)
> > > 
> > > diff --git a/drivers/infiniband/core/sysfs.c b/drivers/infiniband/core/sysfs.c
> > > index ee59d7391568..ec5efdc16660 100644
> > > --- a/drivers/infiniband/core/sysfs.c
> > > +++ b/drivers/infiniband/core/sysfs.c
> > > @@ -903,7 +903,7 @@ alloc_hw_stats_device(struct ib_device *ibdev)
> > >   	 * Two extra attribue elements here, one for the lifespan entry and
> > >   	 * one to NULL terminate the list for the sysfs core code
> > >   	 */
> > > -	data = kzalloc(struct_size(data, attrs, stats->num_counters + 1),
> > > +	data = kzalloc(struct_size(data, attrs, size_add(stats->num_counters, 1)),
> > >   		       GFP_KERNEL);
> > >   	if (!data)
> > >   		goto err_free_stats;
> > > @@ -1009,7 +1009,7 @@ alloc_hw_stats_port(struct ib_port *port, struct attribute_group *group)
> > >   	 * Two extra attribue elements here, one for the lifespan entry and
> > >   	 * one to NULL terminate the list for the sysfs core code
> > >   	 */
> > > -	data = kzalloc(struct_size(data, attrs, stats->num_counters + 1),
> > > +	data = kzalloc(struct_size(data, attrs, size_add(stats->num_counters, 1)),
> > >   		       GFP_KERNEL);
> > >   	if (!data)
> > >   		goto err_free_stats;
> > > @@ -1140,7 +1140,7 @@ static int setup_gid_attrs(struct ib_port *port,
> > >   	int ret;
> > >   	gid_attr_group = kzalloc(struct_size(gid_attr_group, attrs_list,
> > > -					     attr->gid_tbl_len * 2),
> > > +					     size_mul(attr->gid_tbl_len, 2)),
> > >   				 GFP_KERNEL);
> > >   	if (!gid_attr_group)
> > >   		return -ENOMEM;
> > > @@ -1205,8 +1205,8 @@ static struct ib_port *setup_port(struct ib_core_device *coredev, int port_num,
> > >   	int ret;
> > >   	p = kvzalloc(struct_size(p, attrs_list,
> > > -				attr->gid_tbl_len + attr->pkey_tbl_len),
> > > -		    GFP_KERNEL);
> > > +				size_add(attr->gid_tbl_len, attr->pkey_tbl_len)),
> > > +		     GFP_KERNEL);
> > >   	if (!p)
> > >   		return ERR_PTR(-ENOMEM);
> > >   	p->ibdev = device;
> > > -- 
> > > 2.34.1
> > > 
> > 

^ permalink raw reply	[relevance 0%]

* Re: [PATCH][next] mlxsw: Use size_mul() in call to struct_size()
    2023-09-15 19:42  0% ` Kees Cook
@ 2023-09-18  7:31  0% ` Ido Schimmel
  1 sibling, 0 replies; 200+ results
From: Ido Schimmel @ 2023-09-18  7:31 UTC (permalink / raw)
  To: Gustavo A. R. Silva
  Cc: Ido Schimmel, Petr Machata, David S. Miller, Eric Dumazet,
	Jakub Kicinski, Paolo Abeni, Gustavo A. R. Silva, netdev,
	linux-kernel, linux-hardening

On Fri, Sep 15, 2023 at 01:01:23PM -0600, Gustavo A. R. Silva wrote:
> If, for any reason, the open-coded arithmetic causes a wraparound, the
> protection that `struct_size()` adds against potential integer overflows
> is defeated. Fix this by hardening call to `struct_size()` with `size_mul()`.
> 
> Fixes: 2285ec872d9d ("mlxsw: spectrum_acl_bloom_filter: use struct_size() in kzalloc()")
> Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>

Reviewed-by: Ido Schimmel <idosch@nvidia.com>

^ permalink raw reply	[relevance 0%]

* Re: [PATCH][next] net: spider_net: Use size_add() in call to struct_size()
    2023-09-15 19:53  0% ` Kees Cook
@ 2023-09-16  0:21  0% ` Geoff Levand
  1 sibling, 0 replies; 200+ results
From: Geoff Levand @ 2023-09-16  0:21 UTC (permalink / raw)
  To: Gustavo A. R. Silva, Ishizaki Kou, David S. Miller, Eric Dumazet,
	Jakub Kicinski, Paolo Abeni, Gustavo A. R. Silva
  Cc: netdev, linuxppc-dev, linux-kernel, linux-hardening

On 9/15/23 14:25, Gustavo A. R. Silva wrote:
> If, for any reason, the open-coded arithmetic causes a wraparound,
> the protection that `struct_size()` adds against potential integer
> overflows is defeated. Fix this by hardening call to `struct_size()`
> with `size_add()`.
> 
> Fixes: 3f1071ec39f7 ("net: spider_net: Use struct_size() helper")
> Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
> ---
>  drivers/net/ethernet/toshiba/spider_net.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/net/ethernet/toshiba/spider_net.c b/drivers/net/ethernet/toshiba/spider_net.c
> index 50d7eacfec58..87e67121477c 100644
> --- a/drivers/net/ethernet/toshiba/spider_net.c
> +++ b/drivers/net/ethernet/toshiba/spider_net.c
> @@ -2332,7 +2332,7 @@ spider_net_alloc_card(void)
>  	struct spider_net_card *card;
>  
>  	netdev = alloc_etherdev(struct_size(card, darray,
> -					    tx_descriptors + rx_descriptors));
> +					    size_add(tx_descriptors, rx_descriptors)));
>  	if (!netdev)
>  		return NULL;
>  

Looks good to me.  Thanks for your fix-up.

Signed-off-by: Geoff Levand <geoff@infradead.org>



^ permalink raw reply	[relevance 0%]

* Re: [PATCH][next] net: spider_net: Use size_add() in call to struct_size()
  @ 2023-09-15 19:53  0% ` Kees Cook
  2023-09-16  0:21  0% ` Geoff Levand
  1 sibling, 0 replies; 200+ results
From: Kees Cook @ 2023-09-15 19:53 UTC (permalink / raw)
  To: Gustavo A. R. Silva
  Cc: Ishizaki Kou, Geoff Levand, David S. Miller, Eric Dumazet,
	Jakub Kicinski, Paolo Abeni, Gustavo A. R. Silva, netdev,
	linuxppc-dev, linux-kernel, linux-hardening

On Fri, Sep 15, 2023 at 01:25:36PM -0600, Gustavo A. R. Silva wrote:
> If, for any reason, the open-coded arithmetic causes a wraparound,
> the protection that `struct_size()` adds against potential integer
> overflows is defeated. Fix this by hardening call to `struct_size()`
> with `size_add()`.
> 
> Fixes: 3f1071ec39f7 ("net: spider_net: Use struct_size() helper")
> Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>

Reviewed-by: Kees Cook <keescook@chromium.org>

-- 
Kees Cook

^ permalink raw reply	[relevance 0%]

* Re: [PATCH][next] usb: atm: Use size_add() in call to struct_size()
  @ 2023-09-15 19:43  0% ` Kees Cook
  2023-09-29 19:15  0% ` Kees Cook
  1 sibling, 0 replies; 200+ results
From: Kees Cook @ 2023-09-15 19:43 UTC (permalink / raw)
  To: Gustavo A. R. Silva
  Cc: Duncan Sands, Greg Kroah-Hartman, linux-usb, linux-kernel,
	linux-hardening

On Fri, Sep 15, 2023 at 01:20:14PM -0600, Gustavo A. R. Silva wrote:
> If, for any reason, the open-coded arithmetic causes a wraparound,
> the protection that `struct_size()` adds against potential integer
> overflows is defeated. Fix this by hardening call to `struct_size()`
> with `size_add()`.
> 
> Fixes: b626871a7cda ("usb: atm: Use struct_size() helper")
> Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>

Reviewed-by: Kees Cook <keescook@chromium.org>

-- 
Kees Cook

^ permalink raw reply	[relevance 0%]

* Re: [PATCH][next] tipc: Use size_add() in calls to struct_size()
  @ 2023-09-15 19:43  0% ` Kees Cook
  0 siblings, 0 replies; 200+ results
From: Kees Cook @ 2023-09-15 19:43 UTC (permalink / raw)
  To: Gustavo A. R. Silva
  Cc: Jon Maloy, Ying Xue, David S. Miller, Eric Dumazet,
	Jakub Kicinski, Paolo Abeni, netdev, tipc-discussion,
	linux-kernel, linux-hardening

On Fri, Sep 15, 2023 at 01:16:26PM -0600, Gustavo A. R. Silva wrote:
> If, for any reason, the open-coded arithmetic causes a wraparound,
> the protection that `struct_size()` adds against potential integer
> overflows is defeated. Fix this by hardening call to `struct_size()`
> with `size_add()`.
> 
> Fixes: e034c6d23bc4 ("tipc: Use struct_size() helper")
> Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>

Reviewed-by: Kees Cook <keescook@chromium.org>

-- 
Kees Cook

^ permalink raw reply	[relevance 0%]

* Re: [PATCH][next] tls: Use size_add() in call to struct_size()
  @ 2023-09-15 19:42  0% ` Kees Cook
  0 siblings, 0 replies; 200+ results
From: Kees Cook @ 2023-09-15 19:42 UTC (permalink / raw)
  To: Gustavo A. R. Silva
  Cc: Boris Pismenny, John Fastabend, Jakub Kicinski, David S. Miller,
	Eric Dumazet, Paolo Abeni, netdev, linux-kernel, linux-hardening

On Fri, Sep 15, 2023 at 01:12:38PM -0600, Gustavo A. R. Silva wrote:
> If, for any reason, the open-coded arithmetic causes a wraparound,
> the protection that `struct_size()` adds against potential integer
> overflows is defeated. Fix this by hardening call to `struct_size()`
> with `size_add()`.
> 
> Fixes: b89fec54fd61 ("tls: rx: wrap decrypt params in a struct")
> Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>

Reviewed-by: Kees Cook <keescook@chromium.org>

-- 
Kees Cook

^ permalink raw reply	[relevance 0%]

* Re: [PATCH][next] mlxsw: Use size_mul() in call to struct_size()
  @ 2023-09-15 19:42  0% ` Kees Cook
  2023-09-18  7:31  0% ` Ido Schimmel
  1 sibling, 0 replies; 200+ results
From: Kees Cook @ 2023-09-15 19:42 UTC (permalink / raw)
  To: Gustavo A. R. Silva
  Cc: Ido Schimmel, Petr Machata, David S. Miller, Eric Dumazet,
	Jakub Kicinski, Paolo Abeni, Gustavo A. R. Silva, netdev,
	linux-kernel, linux-hardening

On Fri, Sep 15, 2023 at 01:01:23PM -0600, Gustavo A. R. Silva wrote:
> If, for any reason, the open-coded arithmetic causes a wraparound, the
> protection that `struct_size()` adds against potential integer overflows
> is defeated. Fix this by hardening call to `struct_size()` with `size_mul()`.
> 
> Fixes: 2285ec872d9d ("mlxsw: spectrum_acl_bloom_filter: use struct_size() in kzalloc()")
> Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>

Reviewed-by: Kees Cook <keescook@chromium.org>

-- 
Kees Cook

^ permalink raw reply	[relevance 0%]

Results 1-200 of ~700   | reverse | options above
-- pct% links below jump to the message on this page, permalinks otherwise --
2023-09-11 23:27     [PATCH v2][next] RDMA/core: Use size_{add,mul}() in calls to struct_size() Gustavo A. R. Silva
2023-09-15  3:29     ` Kees Cook
2023-09-15 18:06       ` Gustavo A. R. Silva
2023-09-18 10:49  0%     ` Leon Romanovsky
2023-09-17 19:59  0%       ` Gustavo A. R. Silva
2023-09-18 12:41  0%         ` Leon Romanovsky
2023-09-18  1:58  0%           ` Gustavo A. R. Silva
2023-09-15 18:43     [PATCH][next] drm/gud: Use size_add() in call " Gustavo A. R. Silva
2023-09-29 19:15  0% ` Kees Cook
2023-09-15 19:01     [PATCH][next] mlxsw: Use size_mul() " Gustavo A. R. Silva
2023-09-15 19:42  0% ` Kees Cook
2023-09-18  7:31  0% ` Ido Schimmel
2023-09-15 19:09     [PATCH][next] ASoC: SOF: ipc4-topology: Use size_add() " Gustavo A. R. Silva
2023-09-29 19:14  0% ` Kees Cook
2023-10-01 10:25  0%   ` Mark Brown
2023-10-01 20:37  0%     ` Kees Cook
2023-10-02 15:17  0% ` Mark Brown
2023-10-02 16:49  0%   ` Kees Cook
2023-09-15 19:12     [PATCH][next] tls: " Gustavo A. R. Silva
2023-09-15 19:42  0% ` Kees Cook
2023-09-15 19:16     [PATCH][next] tipc: Use size_add() in calls " Gustavo A. R. Silva
2023-09-15 19:43  0% ` Kees Cook
2023-09-15 19:20     [PATCH][next] usb: atm: Use size_add() in call " Gustavo A. R. Silva
2023-09-15 19:43  0% ` Kees Cook
2023-09-29 19:15  0% ` Kees Cook
2023-09-15 19:25     [PATCH][next] net: spider_net: " Gustavo A. R. Silva
2023-09-15 19:53  0% ` Kees Cook
2023-09-16  0:21  0% ` Geoff Levand
2023-09-17 21:21  4% [PATCH v3][next] RDMA/core: Use size_{add,sub,mul}() in calls " Gustavo A. R. Silva
2023-09-19  7:37  0% ` Leon Romanovsky
2023-09-19  7:37  0% ` Leon Romanovsky
2023-09-24  6:57  5% [PATCH wireless 1/2] ath: dfs_pattern_detector: Fix a memory initialization issue Christophe JAILLET
2023-09-25 18:46  0% ` Jeff Johnson
2023-09-25 20:54  0%   ` Christophe JAILLET
2023-09-26  0:44  0% ` Jeff Johnson
2023-10-02 16:58  0% ` Kalle Valo
2023-12-15 13:43  7% [PATCH linux-next] ext4: use kcalloc instead of open coded arithmetic yang.guang5
2023-12-20  2:46  7% [PATCH linux-next] drm/amd/display: " yang.guang5
2024-01-15 18:16  4% [PATCH v2] eventfs: Use kcalloc() instead of kzalloc() Erick Archer
2024-01-15 18:24  0% ` Gustavo A. R. Silva
2024-01-16 12:58  4% [PATCH] perf/x86/amd/uncore: Use kcalloc*() instead of kzalloc*() Erick Archer
2024-01-16 16:30  0% ` Gustavo A. R. Silva
2024-01-17 14:35     [for-linus][PATCH 0/3] eventfs: A few more fixes for 6.8 Steven Rostedt
2024-01-17 14:35  4% ` [for-linus][PATCH 3/3] eventfs: Use kcalloc() instead of kzalloc() Steven Rostedt
2024-01-19 17:16  5% [PATCH] wifi: iwlegacy: " Erick Archer
2024-01-19 17:44  0% ` Gustavo A. R. Silva
2024-01-21 12:15  0% ` Stanislaw Gruszka
2024-01-23 11:51  0% ` Kalle Valo
2024-01-19 17:39  4% [PATCH] staging: rtl8723bs: " Erick Archer
2024-01-19 17:48  0% ` Gustavo A. R. Silva
2024-01-22  6:55  0% ` Dan Carpenter
2024-01-22 18:16  0%   ` Erick Archer
2024-01-24 14:48  0%     ` Dan Carpenter
2024-01-19 18:19  4% [PATCH] pinctrl: pinctrl-zynqmp: Use devm_kcalloc() instead of devm_kzalloc() Erick Archer
2024-01-19 18:26  0% ` Gustavo A. R. Silva
2024-01-22  6:55  0% ` Michal Simek
2024-01-28  0:17  0% ` Linus Walleij
2024-01-20 12:05  5% [PATCH] Documentation: power: Use kcalloc() instead of kzalloc() Erick Archer
2024-01-21 11:44  0% ` Erick Archer
2024-01-20 12:22  5% [PATCH] docs/zh_CN/power: " Erick Archer
2024-01-20 14:24  0% ` Hu Haowen
2024-01-21 10:02  0%   ` Erick Archer
2024-01-20 15:38  0% ` Jonathan Corbet
2024-01-20 13:34  5% [PATCH] MIPS: Alchemy: " Erick Archer
2024-01-22 16:43  0% ` Gustavo A. R. Silva
2024-02-20 13:37  0% ` Thomas Bogendoerfer
2024-01-20 13:54  4% [PATCH] riscv: " Erick Archer
2024-01-22  7:58  0% ` Alexandre Ghiti
2024-01-22  8:52  0% ` Andrew Jones
2024-01-22 17:45  0% ` Gustavo A. R. Silva
2024-01-20 15:10  5% [PATCH] accel/habanalabs: use " Erick Archer
2024-01-22 16:45  0% ` Gustavo A. R. Silva
2024-01-25 10:38  0%   ` Oded Gabbay
2024-01-20 15:25  5% [PATCH] bus: mhi: ep: Use " Erick Archer
2024-01-22 17:50  0% ` Gustavo A. R. Silva
2024-01-21 10:43  4% [PATCH v2] Documentation: power: " Erick Archer
2024-01-22 17:11  0% ` Hu Haowen
2024-01-23  1:30  0%   ` Yanteng Si
2024-01-23  6:11  0% ` Viresh Kumar
2024-01-21 14:29  5% [PATCH] clk: hisilicon: Use devm_kcalloc() instead of devm_kzalloc() Erick Archer
2024-01-22  6:56  0% ` Uwe Kleine-König
2024-01-22 17:51  0% ` Gustavo A. R. Silva
2024-02-22  4:27  0% ` Stephen Boyd
2024-01-21 15:34  4% [PATCH] crypto: sun8i-ce - Use kcalloc() instead of kzalloc() Erick Archer
2024-01-22 17:53  0% ` Gustavo A. R. Silva
2024-01-23 17:45  0% ` Jernej Škrabec
2024-01-26  9:06  0% ` Herbert Xu
2024-01-21 16:40  4% [PATCH] crypto: qat - use kcalloc_node() instead of kzalloc_node() Erick Archer
2024-01-22 17:55  0% ` Gustavo A. R. Silva
2024-01-23 12:16  0% ` Cabiddu, Giovanni
2024-01-26  9:06  0% ` Herbert Xu
2024-01-23  0:26  9% [PATCH 00/82] overflow: Refactor open-coded arithmetic wrap-around Kees Cook
2024-01-23  0:26  6% ` [PATCH 04/82] docs: deprecated.rst: deprecate " Kees Cook
2024-01-23  0:26  6% ` [PATCH 05/82] cocci: Refactor " Kees Cook
2024-01-23  2:22  7% ` [PATCH 00/82] overflow: " Kent Overstreet
2024-01-23  2:51  7%   ` Kees Cook
2024-01-23  9:46  7% ` Mark Rutland
2024-01-23 21:56  7%   ` Kees Cook
2024-01-29  6:27  7%   ` Kees Cook
2024-01-28  9:04  5% [PATCH] drm/amd/display: Use kcalloc() instead of kzalloc() Lenko Donchev
2024-02-21 23:04  0% ` Rodrigo Siqueira Jordao
2024-01-28 11:27  4% [PATCH v2] bus: mhi: ep: " Erick Archer
2024-01-30  8:35  0% ` Manivannan Sadhasivam
2024-01-30 11:23  0% ` Alex Elder
2024-02-03  4:56  0% ` Manivannan Sadhasivam
2024-01-28 11:52  5% [PATCH] dmaengine: pl08x: " Erick Archer
2024-01-30 18:33  0% ` Gustavo A. R. Silva
2024-01-29 12:57  5% [PATCH] crypto: qat - use " Lenko Donchev
2024-01-30 18:35  0% ` Gustavo A. R. Silva
2024-02-06 12:26  0% ` Cabiddu, Giovanni
2024-02-04  1:16     [v6.7][PATCH 00/23] eventfs: Linus's updates for 6.7 Steven Rostedt
2024-02-04  1:16  4% ` [v6.7][PATCH 10/23] eventfs: Use kcalloc() instead of kzalloc() Steven Rostedt
2024-02-06 11:31     [v6.7][PATCH v2 00/23] eventfs: Linus's updates for 6.7 Steven Rostedt
2024-02-06 11:32  4% ` [v6.7][PATCH v2 10/23] eventfs: Use kcalloc() instead of kzalloc() Steven Rostedt
2024-02-06 12:09     [v6.6][PATCH 00/57] eventfs: Linus's updates for 6.6 Steven Rostedt
2024-02-06 12:09  4% ` [v6.6][PATCH 44/57] eventfs: Use kcalloc() instead of kzalloc() Steven Rostedt
2024-02-08 18:13  6% [PATCH] drm/i915: Add flex arrays to struct i915_syncmap Erick Archer
2024-02-08 18:39  0% ` Gustavo A. R. Silva
2024-02-10  7:25  0% ` Kees Cook
2024-02-12 12:01  0% ` Tvrtko Ursulin
2024-02-09 18:16 12% [PATCH] irqchip/bcm-6345-l1: Prefer struct_size over open coded arithmetic Erick Archer
2024-02-09 18:38  7% ` Gustavo A. R. Silva
2024-02-10  0:19  7% ` Kees Cook
2024-02-10  1:19  7% ` Florian Fainelli
2024-02-13  9:56 13% ` [tip: irq/core] irqchip/bcm-6345-l1: Prefer struct_size)_ " tip-bot2 for Erick Archer
2024-02-09 18:31 12% [PATCH] irqchip/irq-bcm7038-l1: Prefer struct_size " Erick Archer
2024-02-09 18:40  7% ` Gustavo A. R. Silva
2024-02-10  0:20  7% ` Kees Cook
2024-02-10  1:21  7% ` Florian Fainelli
2024-02-13  9:56 13% ` [tip: irq/core] " tip-bot2 for Erick Archer
2024-02-10 14:19 12% [PATCH] drm/xe: " Erick Archer
2024-02-10 16:49  7% ` Gustavo A. R. Silva
2024-02-23  5:00  7%   ` Lucas De Marchi
2024-02-10 16:16 12% [PATCH] mtd: rawnand: " Erick Archer
2024-02-10 16:52  7% ` Gustavo A. R. Silva
2024-02-10 17:22  7% ` Uwe Kleine-König
2024-02-12  8:45  7% ` AngeloGioacchino Del Regno
2024-02-11  1:53  5% [PATCH] fs/ntfs3: use kcalloc() instead of kzalloc() Lenko Donchev
2024-02-11  4:31  0% ` Gustavo A. R. Silva
2024-02-11  9:16 12% [PATCH v2] mtd: rawnand: Prefer struct_size over open coded arithmetic Erick Archer
2024-02-11 11:51  7% ` Uwe Kleine-König
2024-02-12  8:46  7% ` AngeloGioacchino Del Regno
2024-02-12 15:50  7% ` Matthias Brugger
2024-02-26 10:44  7% ` Miquel Raynal
2024-02-11 17:51  5% [PATCH] iommu/vt-d: Use kcalloc() instead of kzalloc() Erick Archer
2024-02-12 18:31  0% ` Kees Cook
2024-02-12 20:41  0% ` Gustavo A. R. Silva
2024-02-26  6:09  0% ` Baolu Lu
2024-02-11 18:22  4% [PATCH] iommu/mtk_iommu: Use devm_kcalloc() instead of devm_kzalloc() Erick Archer
2024-02-12  8:49  0% ` AngeloGioacchino Del Regno
2024-02-12 15:50  0% ` Matthias Brugger
2024-02-12 20:41  0% ` Gustavo A. R. Silva
2024-02-16 14:18  0% ` Joerg Roedel
2024-02-13  9:17  5% [PATCH v2] fs/ntfs3: use kcalloc() instead of kzalloc() Lenko Donchev
2024-02-22 18:04  4% [PATCH] drm/radeon/radeon_display: Decrease the size of allocated memory Erick Archer
2024-02-24 14:59 12% [PATCH] bcachefs: Prefer struct_size over open coded arithmetic Erick Archer
2024-02-24 15:16 12% Erick Archer
2024-02-25  0:52  7% ` Kent Overstreet
2024-02-24 18:19 12% [PATCH] net: wwan: t7xx: " Erick Archer
2024-02-24 21:39  7% ` Sergey Ryazanov
2024-02-28  2:20 12% ` patchwork-bot+netdevbpf
2024-02-27  2:14     [PATCH 0/8] [PULL REQUEST] Intel IOMMU updates for Linux v6.9 Lu Baolu
2024-02-27  2:14  5% ` [PATCH 2/8] iommu/vt-d: Use kcalloc() instead of kzalloc() Lu Baolu
2024-03-10 11:02 11% [PATCH v2] bcachefs: Prefer struct_size over open coded arithmetic Erick Archer
2024-03-10 19:41  7% ` Kent Overstreet
2024-03-10 23:38  2% [GIT pull] irq/core for v6.9-rc1 Thomas Gleixner
2024-03-12  4:25  1% [GIT PULL] Networking for v6.9 Jakub Kicinski
2024-03-13  1:10  2% [GIT PULL] bcachefs updates for 6.9 Kent Overstreet
2024-03-13  4:06  1% [git pull] drm for 6.9-rc1 Dave Airlie
2024-03-13  4:16  0% ` Dave Airlie
2024-03-14  3:37  2% [GIT PULL] bcachefs 6.9 updates v2 Kent Overstreet
2024-03-15 11:21  2% [GIT PULL] mtd: Changes for 6.9-rc1 Miquel Raynal
2024-03-17 16:44 12% [PATCH] perf/x86/rapl: Prefer struct_size over open coded arithmetic Erick Archer
2024-03-17 20:14  7% ` Gustavo A. R. Silva
2024-03-18 23:40  6% ` Kees Cook
2024-03-19  3:49  7%   ` Gustavo A. R. Silva
2024-03-21 20:10 13% ` [tip: perf/core] perf/x86/rapl: Prefer struct_size() " tip-bot2 for Erick Archer
2024-03-22  8:37  4% [tip:perf/core] BUILD SUCCESS dfbc411e0a5ea72fdd563b2c7d627e9d993d865c kernel test robot
2024-03-30 14:32 11% [PATCH] perf/x86/intel/uncore: Prefer struct_size over open coded arithmetic Erick Archer
2024-03-30 15:23  4% [PATCH v2] dmaengine: pl08x: Use kcalloc() instead of kzalloc() Erick Archer
2024-04-07 11:39  0% ` Vinod Koul
2024-04-07 17:22  6%   ` Erick Archer
2024-03-30 15:46  4% [PATCH v2] perf/x86/amd/uncore: Use kcalloc*() instead of kzalloc*() Erick Archer
2024-03-30 21:11  0% ` Ingo Molnar
2024-03-31 13:30  4%   ` Erick Archer
2024-03-30 16:34  4% [PATCH v2] drm/radeon/radeon_display: Decrease the size of allocated memory Erick Archer
2024-04-01 12:35  0% ` Christian König
2024-04-08 20:05  0%   ` Alex Deucher
2024-03-30 17:55 11% [PATCH] mtd: maps: sa1100-flash: Prefer struct_size over open coded arithmetic Erick Archer
2024-04-09  6:40  7% ` Miquel Raynal
2024-03-31 15:04  6% [PATCH] RDMA/mana_ib: Add flex array to struct mana_cfg_rx_steer_req_v2 Erick Archer
2024-04-01  2:53  0% ` Gustavo A. R. Silva
2024-04-01 14:47  0%   ` Erick Archer
2024-04-01 15:37  6% [PATCH v2] " Erick Archer
2024-04-02 18:58  0% ` Leon Romanovsky
2024-04-02 17:23  5% [PATCH] batman-adv: Add flex array to struct batadv_tvlv_tt_data Erick Archer
2024-04-02 19:06  0% ` Sven Eckelmann
2024-04-06 16:46  0%   ` Erick Archer
2024-04-06 14:23  7% [PATCH v3 0/3] RDMA/mana_ib: Add flex array to struct mana_cfg_rx_steer_req_v2 Erick Archer
2024-04-08 11:07  0% ` Leon Romanovsky
2024-04-11 14:50  6% ` patchwork-bot+netdevbpf
     [not found]     <20240406142337.16241-1-erick.archer@outlook.com>
2024-04-06 14:23  6% ` [PATCH v3 1/3] net: mana: " Erick Archer
2024-04-08 19:42  0%   ` Long Li
2024-04-08 21:34  0%   ` Justin Stitt
2024-04-08 21:43  0%     ` Justin Stitt
2024-04-06 14:23 12% ` [PATCH v3 2/3] RDMA/mana_ib: Prefer struct_size over open coded arithmetic Erick Archer
2024-04-08 19:42  7%   ` Long Li
2024-04-08 21:38  7%   ` Justin Stitt
2024-04-06 14:23 12% ` [PATCH v3 3/3] net: mana: Avoid " Erick Archer
2024-04-08 21:45  7%   ` Justin Stitt
2024-04-10  4:53  1% linux-next: Tree for Apr 10 Stephen Rothwell
2024-04-11  6:27  1% linux-next: Tree for Apr 11 Stephen Rothwell
2024-04-12  7:09  2% linux-next: Tree for Apr 12 Stephen Rothwell
2024-04-15  5:56  1% linux-next: Tree for Apr 15 Stephen Rothwell
2024-04-26 17:22  4% [PATCH v2] batman-adv: Add flex array to struct batadv_tvlv_tt_data Erick Archer

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).