* [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 next (older) | 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).