linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
Search results ordered by [date|relevance]  view[summary|nested|Atom feed]
thread overview below | download mbox.gz: |
* Re: splice: move balance_dirty_pages_ratelimited() outside of    splice actor
  @ 2007-06-12 16:02  5%                 ` Andrew Morton
  0 siblings, 0 replies; 200+ results
From: Andrew Morton @ 2007-06-12 16:02 UTC (permalink / raw)
  To: Jens Axboe; +Cc: Peter Zijlstra, linux-kernel

On Tue, 12 Jun 2007 14:44:50 +0200 Jens Axboe <jens.axboe@oracle.com> wrote:

> On Tue, Jun 12 2007, Peter Zijlstra wrote:
> > On Tue, 2007-06-12 at 14:10 +0200, Jens Axboe wrote:
> > > On Tue, Jun 12 2007, Peter Zijlstra wrote:
> > > > On Tue, 2007-06-12 at 13:31 +0200, Jens Axboe wrote:
> > > > 
> > > > > Would you prefer this change, then? I'd prefer keeping the current code,
> > > > > unless it's absolutely critical that we call
> > > > > balance_dirty_pages_ratelimited() for each and every page instead of eg
> > > > > every 16 pages here.
> > > > 
> > > > For that we should call:
> > > >   balance_dirty_pages_ratelimited_nr(mapping, nr);
> > > > 
> > > > Which is ok, for small nr.
> > > 
> > > OK, then this should be better:

yup, the patch looks fine, thanks.

It will in practice be OK calling balance_dirty_pages() once per 16 pages
but one should try to be a good little kernel citizen and do the right
thing, I guess.

> > > diff --git a/fs/splice.c b/fs/splice.c
> > > index 25ec9c8..ed40967 100644
> > > --- a/fs/splice.c
> > > +++ b/fs/splice.c
> > > @@ -844,6 +883,9 @@ generic_file_splice_write_nolock(struct pipe_inode_info *pipe, struct file *out,
> > >  	sd.file = out;
> > >  	ret = __splice_from_pipe(pipe, &sd, pipe_to_file);
> > >  	if (ret > 0) {
> > > +		unsigned long nr_pages;
> > > +
> > > +		nr_pages = (ret + PAGE_CACHE_SIZE - 1) >> PAGE_CACHE_SHIFT;
> > 
> > perhaps?
> > 	nr_pages = DIV_ROUND_UP(ret, PAGE_CACHE_SIZE); 
> > 
> > not sure how horrid that turns out to be; you never know with gcc.
> 
> Well, I think such macros are horribly ugly and that the original code
> is MUCH easier to read.

I think the macros are pretty foul too (perhaps we should migrate it to
"div_round_up()").

But we should migrate to them.  Because once one has learned what a
particular helper like this does, the code becomes more readable, more
understandable and easier to verify correct behaviour.  Whereas the
open-coded arithmetic is _always_ suspect and always needs to be checked
each time one's eye passes over it.

And then there's the ongoing pitter-patter of "convert to DIV_ROUND_UP"
patches in my inbox ;)

It's not, however, our biggest problem.

^ permalink raw reply	[relevance 5%]

* [PATCH] docs: Introduce deprecated APIs list
@ 2018-10-17  2:17  4% Kees Cook
  2018-10-17 12:50  0% ` Jonathan Corbet
  0 siblings, 1 reply; 200+ results
From: Kees Cook @ 2018-10-17  2:17 UTC (permalink / raw)
  To: Jonathan Corbet; +Cc: linux-doc, linux-kernel, Stephen Rothwell

As discussed in the "API replacement/deprecation" thread[1], this
makes an effort to document what things shouldn't get (re)added to the
kernel, by introducing Documentation/process/deprecated.rst. It also
adds the overflow kerndoc to ReST output, and tweaks the struct_size()
documentation to parse correctly.

[1] https://lists.linuxfoundation.org/pipermail/ksummit-discuss/2018-September/005282.html

Signed-off-by: Kees Cook <keescook@chromium.org>
---
 Documentation/driver-api/basics.rst  |  3 +
 Documentation/process/deprecated.rst | 99 ++++++++++++++++++++++++++++
 Documentation/process/index.rst      |  1 +
 include/linux/overflow.h             |  2 +-
 4 files changed, 104 insertions(+), 1 deletion(-)
 create mode 100644 Documentation/process/deprecated.rst

diff --git a/Documentation/driver-api/basics.rst b/Documentation/driver-api/basics.rst
index 826e85d50a16..e970fadf4d1a 100644
--- a/Documentation/driver-api/basics.rst
+++ b/Documentation/driver-api/basics.rst
@@ -121,6 +121,9 @@ Kernel utility functions
 .. kernel-doc:: kernel/rcu/update.c
    :export:
 
+.. kernel-doc:: include/linux/overflow.h
+   :internal:
+
 Device Resource Management
 --------------------------
 
diff --git a/Documentation/process/deprecated.rst b/Documentation/process/deprecated.rst
new file mode 100644
index 000000000000..95e261224a81
--- /dev/null
+++ b/Documentation/process/deprecated.rst
@@ -0,0 +1,99 @@
+.. SPDX-License-Identifier: GPL-2.0
+
+=====================================================================
+Deprecated Interfaces, Language Features, Attributes, and Conventions
+=====================================================================
+
+In a perfect world, it would be possible to convert all instances of
+some deprecated API into the new API and entirely remove the old API in
+a single development cycle. However, due to the size of the kernel, the
+maintainership hierarchy, and timing, it's not always feasible to do these
+kinds of conversions at once. This means that new instances may sneak into
+the kernel while old ones are being removed, only making the amount of
+work to remove the API grow. In order to educate developers about what
+has been deprecated and why, this list has been created as a place to
+point when uses of deprecated things are proposed for inclusion in the
+kernel.
+
+__deprecated
+------------
+While this attribute does visually mark an interface as deprecated,
+it `does not produce warnings during builds any more
+<https://git.kernel.org/linus/771c035372a036f83353eef46dbb829780330234>`_
+because one of the standing goals of the kernel is to build without
+warnings and no one was actually doing anything to remove these deprecated
+interfaces. While using `__deprecated` is nice to note an old API in
+a header file, it isn't the full solution. Such interfaces must either
+be fully removed from the kernel, or added to this file to discourage
+others from using them in the future.
+
+open-coded arithmetic in allocator arguments
+--------------------------------------------
+Dynamic size calculations (especially multiplication)
+should not be performed in memory allocator (or similar)
+function arguments.
+
+For example, do not use ``rows * cols`` as an argument, as in:
+``kmalloc(rows * cols, GFP_KERNEL)``.
+Instead, the 2-factor form of the allocator should be used:
+``kmalloc_array(rows, cols, GFP_KERNEL)``.
+If no 2-factor form is available, the saturate-on-overflow helpers should
+be used:
+``vmalloc(array_size(rows, cols))``.
+
+See :c:func:`array_size`, :c:func:`array3_size`, and :c:func:`struct_size`,
+for more details as well as the related :c:func:`check_add_overflow` and
+:c:func:`check_mul_overflow` family of functions.
+
+simple_strtol(), simple_strtoll(), simple_strtoul(), simple_strtoull()
+----------------------------------------------------------------------
+The :c:func:`simple_strtol`, :c:func:`simple_strtoll`,
+:c:func:`simple_strtoul`, and :c:func:`simple_strtoull` functions
+explicitly ignore overflows, which may lead to unexpected results
+in callers. The respective :c:func:`kstrtol`, :c:func:`kstrtoll`,
+:c:func:`kstrtoul`, and :c:func:`kstrtoull` functions tend to be the
+correct replacements, though note that those require the string to be
+NUL or newline terminated.
+
+strcpy()
+--------
+:c:func:`strcpy` performs no bounds checking on the destination
+buffer. This could result in linear overflows beyond the
+end of the buffer, leading to all kinds of misbehaviors. While
+`CONFIG_FORTIFY_SOURCE=y` and various compiler flags help reduce the
+risk of using this function, there is no good reason to add new uses of
+this function. The safe replacement is :c:func:`strscpy`.
+
+strncpy() on NUL-terminated strings
+-----------------------------------
+Use of :c:func:`strncpy` does not guarantee that the destination buffer
+will be NUL terminated. This can lead to various linear read overflows
+and other misbehavior due to the missing termination. It also NUL-pads the
+destination buffer if the source contents are shorter than the destination
+buffer size, which may be a needless performance penalty for callers using
+only NUL-terminated strings. The safe replacement is :c:func:`strscpy`.
+(Users of :c:func:`strscpy` still needing NUL-padding will need an
+explicit :c:func:`memset` added.)
+
+If a caller is using non-NUL-terminated strings, :c:func:`strncpy()` can
+still be used, but destinations should be marked with the `__nonstring
+<https://gcc.gnu.org/onlinedocs/gcc/Common-Variable-Attributes.html>`_
+attribute to avoid future compiler warnings.
+
+strlcpy()
+---------
+:c:func:`strlcpy` reads the entire source buffer first, possibly exceeding
+the given limit of bytes to copy. This is inefficient and can lead to
+linear read overflows if a source string is not NUL-terminated. The
+safe replacement is :c:func:`strscpy`.
+
+Variable Length Arrays (VLAs)
+-----------------------------
+Using stack VLAs produces much worse machine code than statically
+sized stack arrays. While these non-trivial `performance issues
+<https://git.kernel.org/linus/02361bc77888>`_ are reason enough to
+eliminate VLAs, they are also a security risk. Dynamic growth of a stack
+array may exceed the remaining memory in the stack segment. This could
+lead to a crash, possible overwriting sensitive contents at the end of the
+stack (when built without `CONFIG_THREAD_INFO_IN_TASK=y`), or overwriting
+memory adjacent to the stack (when built without `CONFIG_VMAP_STACK=y`)
diff --git a/Documentation/process/index.rst b/Documentation/process/index.rst
index 9ae3e317bddf..b4de2c682255 100644
--- a/Documentation/process/index.rst
+++ b/Documentation/process/index.rst
@@ -41,6 +41,7 @@ Other guides to the community that are of interest to most developers are:
    stable-kernel-rules
    submit-checklist
    kernel-docs
+   deprecated
 
 These are some overall technical guides that have been put here for now for
 lack of a better place.
diff --git a/include/linux/overflow.h b/include/linux/overflow.h
index 40b48e2133cb..2f224f43dd06 100644
--- a/include/linux/overflow.h
+++ b/include/linux/overflow.h
@@ -291,7 +291,7 @@ static inline __must_check size_t __ab_c_size(size_t n, size_t size, size_t c)
 }
 
 /**
- * struct_size() - Calculate size of structure with trailing array.
+ * function struct_size() - Calculate size of structure with trailing array.
  * @p: Pointer to the structure.
  * @member: Name of the array member.
  * @n: Number of elements in the array.
-- 
2.17.1


-- 
Kees Cook
Pixel Security

^ permalink raw reply related	[relevance 4%]

* Re: [PATCH] docs: Introduce deprecated APIs list
  2018-10-17  2:17  4% [PATCH] docs: Introduce deprecated APIs list Kees Cook
@ 2018-10-17 12:50  0% ` Jonathan Corbet
  2018-10-17 22:51  0%   ` Kees Cook
  0 siblings, 1 reply; 200+ results
From: Jonathan Corbet @ 2018-10-17 12:50 UTC (permalink / raw)
  To: Kees Cook; +Cc: linux-doc, linux-kernel, Stephen Rothwell

On Tue, 16 Oct 2018 19:17:08 -0700
Kees Cook <keescook@chromium.org> wrote:

> As discussed in the "API replacement/deprecation" thread[1], this
> makes an effort to document what things shouldn't get (re)added to the
> kernel, by introducing Documentation/process/deprecated.rst. It also
> adds the overflow kerndoc to ReST output, and tweaks the struct_size()
> documentation to parse correctly.

Seems like a good idea overall...a couple of quick comments

> [1] https://lists.linuxfoundation.org/pipermail/ksummit-discuss/2018-September/005282.html
> 
> Signed-off-by: Kees Cook <keescook@chromium.org>
> ---
>  Documentation/driver-api/basics.rst  |  3 +
>  Documentation/process/deprecated.rst | 99 ++++++++++++++++++++++++++++
>  Documentation/process/index.rst      |  1 +

I wonder if "process" is the right place, or core-api?  I guess we have a
lot of similar stuff in process now.

[...]

> +open-coded arithmetic in allocator arguments
> +--------------------------------------------
> +Dynamic size calculations (especially multiplication)
> +should not be performed in memory allocator (or similar)
> +function arguments.
> +
> +For example, do not use ``rows * cols`` as an argument, as in:
> +``kmalloc(rows * cols, GFP_KERNEL)``.
> +Instead, the 2-factor form of the allocator should be used:
> +``kmalloc_array(rows, cols, GFP_KERNEL)``.
> +If no 2-factor form is available, the saturate-on-overflow helpers should
> +be used:
> +``vmalloc(array_size(rows, cols))``.
> +
> +See :c:func:`array_size`, :c:func:`array3_size`, and :c:func:`struct_size`,
> +for more details as well as the related :c:func:`check_add_overflow` and
> +:c:func:`check_mul_overflow` family of functions.

I think this should say *why* developers are being told not to do it.  Does
this advice hold even in cases where the dimensions are known, under the
kernel's control, and guaranteed not to overflow even on Alan's port to
eight-bit CPUs?

To me it's also a bit confusing to present the arguments to kmalloc_array()
as "rows" and "cols" when they are really "n" and "size".

Thanks,

jon

^ permalink raw reply	[relevance 0%]

* Re: [PATCH] docs: Introduce deprecated APIs list
  2018-10-17 12:50  0% ` Jonathan Corbet
@ 2018-10-17 22:51  0%   ` Kees Cook
  0 siblings, 0 replies; 200+ results
From: Kees Cook @ 2018-10-17 22:51 UTC (permalink / raw)
  To: Jonathan Corbet; +Cc: open list:DOCUMENTATION, LKML, Stephen Rothwell

On Wed, Oct 17, 2018 at 5:50 AM, Jonathan Corbet <corbet@lwn.net> wrote:
> On Tue, 16 Oct 2018 19:17:08 -0700
> Kees Cook <keescook@chromium.org> wrote:
>
>> As discussed in the "API replacement/deprecation" thread[1], this
>> makes an effort to document what things shouldn't get (re)added to the
>> kernel, by introducing Documentation/process/deprecated.rst. It also
>> adds the overflow kerndoc to ReST output, and tweaks the struct_size()
>> documentation to parse correctly.
>
> Seems like a good idea overall...a couple of quick comments
>
>> [1] https://lists.linuxfoundation.org/pipermail/ksummit-discuss/2018-September/005282.html
>>
>> Signed-off-by: Kees Cook <keescook@chromium.org>
>> ---
>>  Documentation/driver-api/basics.rst  |  3 +
>>  Documentation/process/deprecated.rst | 99 ++++++++++++++++++++++++++++
>>  Documentation/process/index.rst      |  1 +
>
> I wonder if "process" is the right place, or core-api?  I guess we have a
> lot of similar stuff in process now.

Totally up to you. It seemed better suited for "process" (here's
things NOT to do) than "core-api" (here's things to use).

>
> [...]
>
>> +open-coded arithmetic in allocator arguments
>> +--------------------------------------------
>> +Dynamic size calculations (especially multiplication)
>> +should not be performed in memory allocator (or similar)
>> +function arguments.
>> +
>> +For example, do not use ``rows * cols`` as an argument, as in:
>> +``kmalloc(rows * cols, GFP_KERNEL)``.
>> +Instead, the 2-factor form of the allocator should be used:
>> +``kmalloc_array(rows, cols, GFP_KERNEL)``.
>> +If no 2-factor form is available, the saturate-on-overflow helpers should
>> +be used:
>> +``vmalloc(array_size(rows, cols))``.
>> +
>> +See :c:func:`array_size`, :c:func:`array3_size`, and :c:func:`struct_size`,
>> +for more details as well as the related :c:func:`check_add_overflow` and
>> +:c:func:`check_mul_overflow` family of functions.
>
> I think this should say *why* developers are being told not to do it.  Does
> this advice hold even in cases where the dimensions are known, under the
> kernel's control, and guaranteed not to overflow even on Alan's port to
> eight-bit CPUs?

I will attempt to explain this better. When all factors are constants,
the compiler will warn if there is an overflow. If, however, anything
is a dynamic size, we run the risk of overflow. It's not true in all
cases (e.g. u8 var * sizeof()) but it's more robust to globally avoid
it. (What happens when that u8 becomes a u64 at some future time?)

> To me it's also a bit confusing to present the arguments to kmalloc_array()
> as "rows" and "cols" when they are really "n" and "size".

That's true, though I used rows * cols as an example because people
aren't always thinking about their multiplications as having n-many
sizes. e.g. "I just want a full screen of pixels." Let me see if I can
adjust it...

Thanks for the feedback!

-Kees

-- 
Kees Cook
Pixel Security

^ permalink raw reply	[relevance 0%]

* [PATCH v2] docs: Introduce deprecated APIs list
@ 2018-10-17 23:45  4% Kees Cook
  0 siblings, 0 replies; 200+ results
From: Kees Cook @ 2018-10-17 23:45 UTC (permalink / raw)
  To: Jonathan Corbet
  Cc: Randy Dunlap, Jani Nikula, linux-doc, linux-kernel, Stephen Rothwell

As discussed in the "API replacement/deprecation" thread[1], this makes
an effort to document what things shouldn't get (re)added to the kernel,
by introducing Documentation/process/deprecated.rst.

[1] https://lists.linuxfoundation.org/pipermail/ksummit-discuss/2018-September/005282.html

Signed-off-by: Kees Cook <keescook@chromium.org>
---
v2: drop overflow.h hack, try to clarify open-coded math description
---
 Documentation/driver-api/basics.rst  |   3 +
 Documentation/process/deprecated.rst | 119 +++++++++++++++++++++++++++
 Documentation/process/index.rst      |   1 +
 3 files changed, 123 insertions(+)
 create mode 100644 Documentation/process/deprecated.rst

diff --git a/Documentation/driver-api/basics.rst b/Documentation/driver-api/basics.rst
index 826e85d50a16..e970fadf4d1a 100644
--- a/Documentation/driver-api/basics.rst
+++ b/Documentation/driver-api/basics.rst
@@ -121,6 +121,9 @@ Kernel utility functions
 .. kernel-doc:: kernel/rcu/update.c
    :export:
 
+.. kernel-doc:: include/linux/overflow.h
+   :internal:
+
 Device Resource Management
 --------------------------
 
diff --git a/Documentation/process/deprecated.rst b/Documentation/process/deprecated.rst
new file mode 100644
index 000000000000..0ef5a63c06ba
--- /dev/null
+++ b/Documentation/process/deprecated.rst
@@ -0,0 +1,119 @@
+.. SPDX-License-Identifier: GPL-2.0
+
+=====================================================================
+Deprecated Interfaces, Language Features, Attributes, and Conventions
+=====================================================================
+
+In a perfect world, it would be possible to convert all instances of
+some deprecated API into the new API and entirely remove the old API in
+a single development cycle. However, due to the size of the kernel, the
+maintainership hierarchy, and timing, it's not always feasible to do these
+kinds of conversions at once. This means that new instances may sneak into
+the kernel while old ones are being removed, only making the amount of
+work to remove the API grow. In order to educate developers about what
+has been deprecated and why, this list has been created as a place to
+point when uses of deprecated things are proposed for inclusion in the
+kernel.
+
+__deprecated
+------------
+While this attribute does visually mark an interface as deprecated,
+it `does not produce warnings during builds any more
+<https://git.kernel.org/linus/771c035372a036f83353eef46dbb829780330234>`_
+because one of the standing goals of the kernel is to build without
+warnings and no one was actually doing anything to remove these deprecated
+interfaces. While using `__deprecated` is nice to note an old API in
+a header file, it isn't the full solution. Such interfaces must either
+be fully removed from the kernel, or added to this file to discourage
+others from using them in the future.
+
+open-coded arithmetic in allocator arguments
+--------------------------------------------
+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. (One exception to this is literal values where the compiler
+can warn if they might overflow. Though using literals for arguments as
+suggested below is also harmless.)
+
+For example, do not use ``count * size`` as an argument, as in::
+
+	foo = kmalloc(count * size, GFP_KERNEL);
+
+Instead, the 2-factor form of the allocator should be used::
+
+	foo = kmalloc_array(count, size, GFP_KERNEL);
+
+If no 2-factor form is available, the saturate-on-overflow helpers should
+be used::
+
+	bar = vmalloc(array_size(count, size));
+
+Another common case to avoid is calculating the size of a structure with
+a trailing array of others structures, as in::
+
+	header = kzalloc(sizeof(*header) + count * sizeof(*header->item),
+			 GFP_KERNEL);
+
+Instead, use the helper::
+
+	header = kzalloc(struct_size(header, item, count), GFP_KERNEL);
+
+See :c:func:`array_size`, :c:func:`array3_size`, and :c:func:`struct_size`,
+for more details as well as the related :c:func:`check_add_overflow` and
+:c:func:`check_mul_overflow` family of functions.
+
+simple_strtol(), simple_strtoll(), simple_strtoul(), simple_strtoull()
+----------------------------------------------------------------------
+The :c:func:`simple_strtol`, :c:func:`simple_strtoll`,
+:c:func:`simple_strtoul`, and :c:func:`simple_strtoull` functions
+explicitly ignore overflows, which may lead to unexpected results
+in callers. The respective :c:func:`kstrtol`, :c:func:`kstrtoll`,
+:c:func:`kstrtoul`, and :c:func:`kstrtoull` functions tend to be the
+correct replacements, though note that those require the string to be
+NUL or newline terminated.
+
+strcpy()
+--------
+:c:func:`strcpy` performs no bounds checking on the destination
+buffer. This could result in linear overflows beyond the
+end of the buffer, leading to all kinds of misbehaviors. While
+`CONFIG_FORTIFY_SOURCE=y` and various compiler flags help reduce the
+risk of using this function, there is no good reason to add new uses of
+this function. The safe replacement is :c:func:`strscpy`.
+
+strncpy() on NUL-terminated strings
+-----------------------------------
+Use of :c:func:`strncpy` does not guarantee that the destination buffer
+will be NUL terminated. This can lead to various linear read overflows
+and other misbehavior due to the missing termination. It also NUL-pads the
+destination buffer if the source contents are shorter than the destination
+buffer size, which may be a needless performance penalty for callers using
+only NUL-terminated strings. The safe replacement is :c:func:`strscpy`.
+(Users of :c:func:`strscpy` still needing NUL-padding will need an
+explicit :c:func:`memset` added.)
+
+If a caller is using non-NUL-terminated strings, :c:func:`strncpy()` can
+still be used, but destinations should be marked with the `__nonstring
+<https://gcc.gnu.org/onlinedocs/gcc/Common-Variable-Attributes.html>`_
+attribute to avoid future compiler warnings.
+
+strlcpy()
+---------
+:c:func:`strlcpy` reads the entire source buffer first, possibly exceeding
+the given limit of bytes to copy. This is inefficient and can lead to
+linear read overflows if a source string is not NUL-terminated. The
+safe replacement is :c:func:`strscpy`.
+
+Variable Length Arrays (VLAs)
+-----------------------------
+Using stack VLAs produces much worse machine code than statically
+sized stack arrays. While these non-trivial `performance issues
+<https://git.kernel.org/linus/02361bc77888>`_ are reason enough to
+eliminate VLAs, they are also a security risk. Dynamic growth of a stack
+array may exceed the remaining memory in the stack segment. This could
+lead to a crash, possible overwriting sensitive contents at the end of the
+stack (when built without `CONFIG_THREAD_INFO_IN_TASK=y`), or overwriting
+memory adjacent to the stack (when built without `CONFIG_VMAP_STACK=y`)
diff --git a/Documentation/process/index.rst b/Documentation/process/index.rst
index 9ae3e317bddf..b4de2c682255 100644
--- a/Documentation/process/index.rst
+++ b/Documentation/process/index.rst
@@ -41,6 +41,7 @@ Other guides to the community that are of interest to most developers are:
    stable-kernel-rules
    submit-checklist
    kernel-docs
+   deprecated
 
 These are some overall technical guides that have been put here for now for
 lack of a better place.
-- 
2.17.1


-- 
Kees Cook
Pixel Security

^ permalink raw reply related	[relevance 4%]

* [PATCH] docs: deprecated.rst: Add BUG()-family
@ 2020-03-14 22:29  6% Kees Cook
  0 siblings, 0 replies; 200+ results
From: Kees Cook @ 2020-03-14 22:29 UTC (permalink / raw)
  To: Jonathan Corbet
  Cc: Gustavo A. R. Silva, Linus Torvalds, Joe Perches, linux-doc,
	linux-kernel

Linus continues to remind[1] people to stop using the BUG()-family of
functions. We should have this better documented (even if checkpatch.pl
has been warning[2] since 2015), so add more details to deprecated.rst,
as a distinct place to point people to for guidance.

[1] https://lore.kernel.org/lkml/CAHk-=whDHsbK3HTOpTF=ue_o04onRwTEaK_ZoJp_fjbqq4+=Jw@mail.gmail.com/
[2] https://git.kernel.org/linus/9d3e3c705eb395528fd8f17208c87581b134da48

Signed-off-by: Kees Cook <keescook@chromium.org>
---
 Documentation/process/deprecated.rst | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

diff --git a/Documentation/process/deprecated.rst b/Documentation/process/deprecated.rst
index 8965446f0b71..38843c7a9ad6 100644
--- a/Documentation/process/deprecated.rst
+++ b/Documentation/process/deprecated.rst
@@ -29,6 +29,28 @@ a header file, it isn't the full solution. Such interfaces must either
 be fully removed from the kernel, or added to this file to discourage
 others from using them in the future.
 
+BUG() and BUG_ON()
+------------------
+Use WARN() and WARN_ON() instead, and handle the "impossible"
+error condition as gracefully as possible. While the BUG()-family
+of APIs were originally designed to act as an "impossible situation"
+assert and to kill a kernel thread "safely", they turn out to just be
+too risky. (e.g. "In what order do locks need to be released? Have
+various states been restored?") Very commonly, using BUG() will
+destabilize a system or entirely break it, which makes it impossible
+to debug or even get viable crash reports. Linus has `very strong
+<https://lore.kernel.org/lkml/CA+55aFy6jNLsywVYdGp83AMrXBo_P-pkjkphPGrO=82SPKCpLQ@mail.gmail.com/>`_
+feelings `about this
+<https://lore.kernel.org/lkml/CAHk-=whDHsbK3HTOpTF=ue_o04onRwTEaK_ZoJp_fjbqq4+=Jw@mail.gmail.com/>`_.
+
+Note that the WARN()-family should only be used for "expected to
+be unreachable" situations. If you want to warn about "reachable
+but undesirable" situations, please use the pr_warn()-family of
+functions. System owners may have set the *panic_on_warn* sysctl,
+to make sure their systems do not continue running in the face of
+"unreachable" conditions. (For example, see commits like `this one
+<https://git.kernel.org/linus/d4689846881d160a4d12a514e991a740bcb5d65a>`_.)
+
 open-coded arithmetic in allocator arguments
 --------------------------------------------
 Dynamic size calculations (especially multiplication) should not be
-- 
2.20.1


-- 
Kees Cook

^ permalink raw reply related	[relevance 6%]

* [PATCH] docs: deprecated.rst: Add zero-length and one-element arrays
@ 2020-06-05  2:29  3% Gustavo A. R. Silva
  0 siblings, 0 replies; 200+ results
From: Gustavo A. R. Silva @ 2020-06-05  2:29 UTC (permalink / raw)
  To: Jonathan Corbet, Kees Cook; +Cc: linux-doc, linux-kernel, Gustavo A. R. Silva

Add zero-length and one-element arrays to the list.

While I continue replacing zero-length and one-element arrays with
flexible-array members, I need a reference to point people to, so
they don't introduce more instances of such arrays. And while here,
add a note to the "open-coded arithmetic in allocator arguments"
section, on the use of struct_size() and the arrays-to-deprecate
mentioned here.

Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
---
 Documentation/process/deprecated.rst | 84 ++++++++++++++++++++++++++++
 1 file changed, 84 insertions(+)

diff --git a/Documentation/process/deprecated.rst b/Documentation/process/deprecated.rst
index 652e2aa02a66c..622c8ac72a615 100644
--- a/Documentation/process/deprecated.rst
+++ b/Documentation/process/deprecated.rst
@@ -85,6 +85,12 @@ Instead, use the helper::
 
 	header = kzalloc(struct_size(header, item, count), GFP_KERNEL);
 
+NOTE: If you are using struct_size() on a structure containing a zero-length
+or a one-element array as a trailing array member, stop using such arrays
+and switch to `flexible arrays
+<https://www.kernel.org/doc/html/latest/process/deprecated.html#zero-length-and-one-element-arrays>`_
+instead.
+
 See array_size(), array3_size(), and struct_size(),
 for more details as well as the related check_add_overflow() and
 check_mul_overflow() family of functions.
@@ -200,3 +206,81 @@ All switch/case blocks must end in one of:
 * continue;
 * goto <label>;
 * return [expression];
+
+Zero-length and one-element arrays
+----------------------------------
+Old code in the kernel uses the zero-length and one-element array extensions
+to the C90 standard, but the `preferred mechanism to declare variable-length
+types
+<https://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html>`_
+such as these ones is a `flexible array member`, introduced in C99::
+
+        struct something {
+                int length;
+                char data[];
+        };
+
+        struct something *instance;
+
+        instance = kmalloc(struct_size(instance, data, size), GFP_KERNEL);
+        instance->length = size;
+        memcpy(instance->data, source, size);
+
+By making use of the mechanism above, we get a compiler error in case the
+flexible array does not occur last in the structure, which helps to prevent
+some kind of `undefined behavior <https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=76497732932f15e7323dc805e8ea8dc11bb587cf>`_ bugs from being inadvertently introduced to
+the codebase.
+
+It is also important to notice that zero-length and one-element arrays pose
+confusion for things like sizeof() and `CONFIG_FORTIFY_SOURCE`. For instance,
+there is no mechanism that warns us that the following application of the
+sizeof() operator to a zero-length array always results in zero::
+
+        struct something {
+                int length;
+                char data[0];
+        };
+
+        struct something *instance;
+
+        instance = kmalloc(struct_size(instance, data, size), GFP_KERNEL);
+        instance->length = size;
+        memcpy(instance->data, source, size);
+        ...
+        size = sizeof(instance->data);
+
+At the last line of code above, ``size`` turns out to be zero --when one might have
+thought differently. Here are a couple examples of this issue `link 1
+<https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=f2cd32a443da694ac4e28fbf4ac6f9d5cc63a539>`_,
+`link 2
+<https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=ab91c2a89f86be2898cee208d492816ec238b2cf>`_.
+On the other hand, `flexible array members have incomplete type, and so the sizeof()
+operator may not be applied <https://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html>`_,
+so any  misuse of such  operator will be immediately noticed at build time.
+
+
+With respect to one-element arrays, one has to be acutely aware that `such arrays
+occupy at least as much space as a single object of the type
+<https://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html>`_,
+hence they contribute to the size of the enclosing structure. This is prone
+to error every time people want to calculate the total size of dynamic memory
+to allocate for a structure containing an array of this kind as a member::
+
+        struct something {
+                int length;
+                char data[1];
+        };
+
+        struct something *instance;
+
+        instance = kmalloc(struct_size(instance, data, size - 1), GFP_KERNEL);
+        instance->length = size;
+        memcpy(instance->data, source, size);
+
+In the example above, we had to remember to calculate ``size - 1`` when using
+the struct_size() helper, otherwise we would have --unintentionally-- allocated
+memory for one too many ``data`` objects. The cleanest and least error-prone way
+to implement this is through the use of a `flexible array member`, which is
+exemplified at the `beginning
+<https://www.kernel.org/doc/html/latest/process/deprecated.html#zero-length-and-one-element-arrays>`_
+of this section.
-- 
2.27.0


^ permalink raw reply related	[relevance 3%]

* [PATCH v2] docs: deprecated.rst: Add zero-length and one-element arrays
@ 2020-06-05 16:21  3% Gustavo A. R. Silva
  2020-06-05 19:30  0% ` Kees Cook
  0 siblings, 1 reply; 200+ results
From: Gustavo A. R. Silva @ 2020-06-05 16:21 UTC (permalink / raw)
  To: Jonathan Corbet, Kees Cook; +Cc: linux-doc, linux-kernel, Gustavo A. R. Silva

Add zero-length and one-element arrays to the list.

While I continue replacing zero-length and one-element arrays with
flexible-array members, I need a reference to point people to, so
they don't introduce more instances of such arrays. And while here,
add a note to the "open-coded arithmetic in allocator arguments"
section, on the use of struct_size() and the arrays-to-deprecate
mentioned here.

Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
---
Changes in v2:
 - Adjust some markup links for readability.

 Documentation/process/deprecated.rst | 83 ++++++++++++++++++++++++++++
 1 file changed, 83 insertions(+)

diff --git a/Documentation/process/deprecated.rst b/Documentation/process/deprecated.rst
index 652e2aa02a66c..042c21c968e19 100644
--- a/Documentation/process/deprecated.rst
+++ b/Documentation/process/deprecated.rst
@@ -85,6 +85,11 @@ Instead, use the helper::
 
 	header = kzalloc(struct_size(header, item, count), GFP_KERNEL);
 
+NOTE: If you are using struct_size() on a structure containing a zero-length
+or a one-element array as a trailing array member, stop using such arrays
+and switch to `flexible arrays <#zero-length-and-one-element-arrays>`_
+instead.
+
 See array_size(), array3_size(), and struct_size(),
 for more details as well as the related check_add_overflow() and
 check_mul_overflow() family of functions.
@@ -200,3 +205,81 @@ All switch/case blocks must end in one of:
 * continue;
 * goto <label>;
 * return [expression];
+
+Zero-length and one-element arrays
+----------------------------------
+Old code in the kernel uses the zero-length and one-element array extensions
+to the C90 standard, but the `preferred mechanism to declare variable-length
+types
+<https://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html>`_
+such as these ones is a `flexible array member`, introduced in C99::
+
+        struct something {
+                int length;
+                char data[];
+        };
+
+        struct something *instance;
+
+        instance = kmalloc(struct_size(instance, data, size), GFP_KERNEL);
+        instance->length = size;
+        memcpy(instance->data, source, size);
+
+By making use of the mechanism above, we get a compiler error in case the
+flexible array does not occur last in the structure, which helps to prevent
+some kind of `undefined behavior
+<https://git.kernel.org/linus/76497732932f15e7323dc805e8ea8dc11bb587cf>`_
+bugs from being inadvertently introduced to the codebase.
+
+It is also important to notice that zero-length and one-element arrays pose
+confusion for things like sizeof() and `CONFIG_FORTIFY_SOURCE`. For instance,
+there is no mechanism that warns us that the following application of the
+sizeof() operator to a zero-length array always results in zero::
+
+        struct something {
+                int length;
+                char data[0];
+        };
+
+        struct something *instance;
+
+        instance = kmalloc(struct_size(instance, data, size), GFP_KERNEL);
+        instance->length = size;
+        memcpy(instance->data, source, size);
+        ...
+        size = sizeof(instance->data);
+
+At the last line of code above, ``size`` turns out to be zero --when one might have
+thought differently. Here are a couple examples of this issue: `link 1
+<https://git.kernel.org/linus/f2cd32a443da694ac4e28fbf4ac6f9d5cc63a539>`_,
+`link 2
+<https://git.kernel.org/linus/ab91c2a89f86be2898cee208d492816ec238b2cf>`_.
+On the other hand, `flexible array members have incomplete type, and so the sizeof()
+operator may not be applied <https://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html>`_,
+so any  misuse of such  operator will be immediately noticed at build time.
+
+
+With respect to one-element arrays, one has to be acutely aware that `such arrays
+occupy at least as much space as a single object of the type
+<https://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html>`_,
+hence they contribute to the size of the enclosing structure. This is prone
+to error every time people want to calculate the total size of dynamic memory
+to allocate for a structure containing an array of this kind as a member::
+
+        struct something {
+                int length;
+                char data[1];
+        };
+
+        struct something *instance;
+
+        instance = kmalloc(struct_size(instance, data, size - 1), GFP_KERNEL);
+        instance->length = size;
+        memcpy(instance->data, source, size);
+
+In the example above, we had to remember to calculate ``size - 1`` when using
+the struct_size() helper, otherwise we would have --unintentionally-- allocated
+memory for one too many ``data`` objects. The cleanest and least error-prone way
+to implement this is through the use of a `flexible array member`, which is
+exemplified at the `beginning <#zero-length-and-one-element-arrays>`_ of this
+section.
-- 
2.27.0


^ permalink raw reply related	[relevance 3%]

* Re: [PATCH v2] docs: deprecated.rst: Add zero-length and one-element arrays
  2020-06-05 16:21  3% [PATCH v2] " Gustavo A. R. Silva
@ 2020-06-05 19:30  0% ` Kees Cook
  2020-06-05 21:36  0%   ` Gustavo A. R. Silva
  0 siblings, 1 reply; 200+ results
From: Kees Cook @ 2020-06-05 19:30 UTC (permalink / raw)
  To: Gustavo A. R. Silva
  Cc: Jonathan Corbet, linux-doc, linux-kernel, Gustavo A. R. Silva

On Fri, Jun 05, 2020 at 11:21:42AM -0500, Gustavo A. R. Silva wrote:
> Add zero-length and one-element arrays to the list.
> 
> While I continue replacing zero-length and one-element arrays with
> flexible-array members, I need a reference to point people to, so
> they don't introduce more instances of such arrays. And while here,
> add a note to the "open-coded arithmetic in allocator arguments"
> section, on the use of struct_size() and the arrays-to-deprecate
> mentioned here.
> 
> Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
> ---
> Changes in v2:
>  - Adjust some markup links for readability.
> 
>  Documentation/process/deprecated.rst | 83 ++++++++++++++++++++++++++++
>  1 file changed, 83 insertions(+)
> 
> diff --git a/Documentation/process/deprecated.rst b/Documentation/process/deprecated.rst
> index 652e2aa02a66c..042c21c968e19 100644
> --- a/Documentation/process/deprecated.rst
> +++ b/Documentation/process/deprecated.rst
> @@ -85,6 +85,11 @@ Instead, use the helper::
>  
>  	header = kzalloc(struct_size(header, item, count), GFP_KERNEL);
>  
> +NOTE: If you are using struct_size() on a structure containing a zero-length

Please use:

.. note::

for this kind of "NOTE:"

> +or a one-element array as a trailing array member, stop using such arrays

And I think it was likely my language suggestion to say "stop using", but
probably this should be more friendly. How about "please refactor such
arrays ..."

> +and switch to `flexible arrays <#zero-length-and-one-element-arrays>`_

... to a `flexible array member <#...

> +instead.
> +

>  See array_size(), array3_size(), and struct_size(),
>  for more details as well as the related check_add_overflow() and
>  check_mul_overflow() family of functions.
> @@ -200,3 +205,81 @@ All switch/case blocks must end in one of:
>  * continue;
>  * goto <label>;
>  * return [expression];
> +
> +Zero-length and one-element arrays
> +----------------------------------
> +Old code in the kernel uses the zero-length and one-element array extensions
> +to the C90 standard, but the `preferred mechanism to declare variable-length

I'd like to reword this to make an immediate statement about what _should_
be done, and then move into the details on an as accurate as possible
review of the history of these work-arounds. How about this, which I
mixed some of your earlier paragraphs into:



There is a regular need in the kernel to provide a way to declare having
a dynamically sized set of trailing elements in a structure. Kernel code
should always use `"flexible array members" <https://en.wikipedia.org/wiki/Flexible_array_member>`_
for these cases. The older style of one-element or zero-length arrays should
no longer be used.

In older C code, dynamically sized trailing elements were done by specifying
a one-element array at the end of a structure::

        struct something {
                int count;
                struct items[1];
        };

This led to fragile size calculations via sizeof() (which would need to
remove the size of the single trailing element to get a correct size of
the "header"). A `GNU C extension <https://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html>`_
was introduced to allow for zero-length arrays, to avoid these kinds of
size problems::

        struct something {
                int count;
                struct items[0];
        };

But this led to other problems, and didn't solve some problems shared by
both styles, like not being to able to detect when such an array is
accidentally being used _not_ at the end of a structure (which could happen
directly, or when such a struct was in unions, structs of structs, etc).

C99 introduced "flexible array members", which lacks a numeric size for
the array declaration entirely::

        struct something {
                int count;
                struct items[];
        };

This is the way the kernel expects dynamically sized trailing elements
to be declared. It allows the compiler to generate errors when the
flexible array does not occur last in the structure, which helps to prevent
some kind of `undefined behavior
<https://git.kernel.org/linus/76497732932f15e7323dc805e8ea8dc11bb587cf>`_
bugs from being inadvertently introduced to the codebase. It also allows
the compiler to correctly analyze array sizes (via sizeof(),
`CONFIG_FORTIFY_SOURCE`, and `CONFIG_UBSAN_BOUNDS`). For instance,
there is no mechanism that warns us that the following application of the
sizeof() operator to a zero-length array always results in zero::

        struct something {
                int count;
                struct items[0];
        };

        struct something *instance;

        instance = kmalloc(struct_size(instance, items, size), GFP_KERNEL);
        instance->length = size;
        memcpy(instance->items, source, size);
        ...
        size = sizeof(instance->items);


[and then continue with the rest of the details you wrote below...]

> +
> +At the last line of code above, ``size`` turns out to be zero --when one might have
> +thought differently. Here are a couple examples of this issue: `link 1
> +<https://git.kernel.org/linus/f2cd32a443da694ac4e28fbf4ac6f9d5cc63a539>`_,
> +`link 2
> +<https://git.kernel.org/linus/ab91c2a89f86be2898cee208d492816ec238b2cf>`_.
> +On the other hand, `flexible array members have incomplete type, and so the sizeof()
> +operator may not be applied <https://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html>`_,
> +so any  misuse of such  operator will be immediately noticed at build time.
> +
> +With respect to one-element arrays, one has to be acutely aware that `such arrays
> +occupy at least as much space as a single object of the type
> +<https://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html>`_,
> +hence they contribute to the size of the enclosing structure. This is prone
> +to error every time people want to calculate the total size of dynamic memory
> +to allocate for a structure containing an array of this kind as a member::
> +
> +        struct something {
> +                int length;
> +                char data[1];
> +        };

And for all of these examples, I'd like to avoid using "char" as the type
for the flex array member, since it doesn't drive home the idea of
having a multiplier (i.e. "length" matches the size of "data") And
similarly, "length" should, I think, be called "count". That way the
bytes is separate from count, but is the result of sizeof(*items) *
count.

> +
> +        struct something *instance;
> +
> +        instance = kmalloc(struct_size(instance, data, size - 1), GFP_KERNEL);
> +        instance->length = size;
> +        memcpy(instance->data, source, size);
> +
> +In the example above, we had to remember to calculate ``size - 1`` when using

I don't want to get people confused between "size" (in bytes) vs "count"
(of trailing elements).

> +the struct_size() helper, otherwise we would have --unintentionally-- allocated
> +memory for one too many ``data`` objects. The cleanest and least error-prone way
> +to implement this is through the use of a `flexible array member`, which is
> +exemplified at the `beginning <#zero-length-and-one-element-arrays>`_ of this
> +section.
> -- 
> 2.27.0
> 

How does that look?

-- 
Kees Cook

^ permalink raw reply	[relevance 0%]

* Re: [PATCH v2] docs: deprecated.rst: Add zero-length and one-element arrays
  2020-06-05 19:30  0% ` Kees Cook
@ 2020-06-05 21:36  0%   ` Gustavo A. R. Silva
  0 siblings, 0 replies; 200+ results
From: Gustavo A. R. Silva @ 2020-06-05 21:36 UTC (permalink / raw)
  To: Kees Cook, Gustavo A. R. Silva; +Cc: Jonathan Corbet, linux-doc, linux-kernel



On 6/5/20 14:30, Kees Cook wrote:
> On Fri, Jun 05, 2020 at 11:21:42AM -0500, Gustavo A. R. Silva wrote:
>> Add zero-length and one-element arrays to the list.
>>
>> While I continue replacing zero-length and one-element arrays with
>> flexible-array members, I need a reference to point people to, so
>> they don't introduce more instances of such arrays. And while here,
>> add a note to the "open-coded arithmetic in allocator arguments"
>> section, on the use of struct_size() and the arrays-to-deprecate
>> mentioned here.
>>
>> Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
>> ---
>> Changes in v2:
>>  - Adjust some markup links for readability.
>>
>>  Documentation/process/deprecated.rst | 83 ++++++++++++++++++++++++++++
>>  1 file changed, 83 insertions(+)
>>
>> diff --git a/Documentation/process/deprecated.rst b/Documentation/process/deprecated.rst
>> index 652e2aa02a66c..042c21c968e19 100644
>> --- a/Documentation/process/deprecated.rst
>> +++ b/Documentation/process/deprecated.rst
>> @@ -85,6 +85,11 @@ Instead, use the helper::
>>  
>>  	header = kzalloc(struct_size(header, item, count), GFP_KERNEL);
>>  
>> +NOTE: If you are using struct_size() on a structure containing a zero-length
> 
> Please use:
> 
> .. note::
> 

OK.

> for this kind of "NOTE:"
> 
>> +or a one-element array as a trailing array member, stop using such arrays
> 
> And I think it was likely my language suggestion to say "stop using", but
> probably this should be more friendly. How about "please refactor such
> arrays ..."
> 
>> +and switch to `flexible arrays <#zero-length-and-one-element-arrays>`_
> 
> ... to a `flexible array member <#...
> 
>> +instead.
>> +
> 
>>  See array_size(), array3_size(), and struct_size(),
>>  for more details as well as the related check_add_overflow() and
>>  check_mul_overflow() family of functions.
>> @@ -200,3 +205,81 @@ All switch/case blocks must end in one of:
>>  * continue;
>>  * goto <label>;
>>  * return [expression];
>> +
>> +Zero-length and one-element arrays
>> +----------------------------------
>> +Old code in the kernel uses the zero-length and one-element array extensions
>> +to the C90 standard, but the `preferred mechanism to declare variable-length
> 
> I'd like to reword this to make an immediate statement about what _should_
> be done, and then move into the details on an as accurate as possible
> review of the history of these work-arounds. How about this, which I
> mixed some of your earlier paragraphs into:
> 
> 
> 
> There is a regular need in the kernel to provide a way to declare having
> a dynamically sized set of trailing elements in a structure. Kernel code
> should always use `"flexible array members" <https://en.wikipedia.org/wiki/Flexible_array_member>`_
> for these cases. The older style of one-element or zero-length arrays should
> no longer be used.
> 
> In older C code, dynamically sized trailing elements were done by specifying
> a one-element array at the end of a structure::
> 
>         struct something {
>                 int count;
>                 struct items[1];
>         };
> 
> This led to fragile size calculations via sizeof() (which would need to
> remove the size of the single trailing element to get a correct size of
> the "header"). A `GNU C extension <https://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html>`_
> was introduced to allow for zero-length arrays, to avoid these kinds of
> size problems::
> 
>         struct something {
>                 int count;
>                 struct items[0];
>         };
> 
> But this led to other problems, and didn't solve some problems shared by
> both styles, like not being to able to detect when such an array is
> accidentally being used _not_ at the end of a structure (which could happen
> directly, or when such a struct was in unions, structs of structs, etc).
> 
> C99 introduced "flexible array members", which lacks a numeric size for
> the array declaration entirely::
> 
>         struct something {
>                 int count;
>                 struct items[];
>         };
> 
> This is the way the kernel expects dynamically sized trailing elements
> to be declared. It allows the compiler to generate errors when the
> flexible array does not occur last in the structure, which helps to prevent
> some kind of `undefined behavior
> <https://git.kernel.org/linus/76497732932f15e7323dc805e8ea8dc11bb587cf>`_
> bugs from being inadvertently introduced to the codebase. It also allows
> the compiler to correctly analyze array sizes (via sizeof(),
> `CONFIG_FORTIFY_SOURCE`, and `CONFIG_UBSAN_BOUNDS`). For instance,
> there is no mechanism that warns us that the following application of the
> sizeof() operator to a zero-length array always results in zero::
> 
>         struct something {
>                 int count;
>                 struct items[0];
>         };
> 
>         struct something *instance;
> 
>         instance = kmalloc(struct_size(instance, items, size), GFP_KERNEL);
>         instance->length = size;
>         memcpy(instance->items, source, size);
>         ...
>         size = sizeof(instance->items);
> 
> 
> [and then continue with the rest of the details you wrote below...]
> 
>> +
>> +At the last line of code above, ``size`` turns out to be zero --when one might have
>> +thought differently. Here are a couple examples of this issue: `link 1
>> +<https://git.kernel.org/linus/f2cd32a443da694ac4e28fbf4ac6f9d5cc63a539>`_,
>> +`link 2
>> +<https://git.kernel.org/linus/ab91c2a89f86be2898cee208d492816ec238b2cf>`_.
>> +On the other hand, `flexible array members have incomplete type, and so the sizeof()
>> +operator may not be applied <https://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html>`_,
>> +so any  misuse of such  operator will be immediately noticed at build time.
>> +
>> +With respect to one-element arrays, one has to be acutely aware that `such arrays
>> +occupy at least as much space as a single object of the type
>> +<https://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html>`_,
>> +hence they contribute to the size of the enclosing structure. This is prone
>> +to error every time people want to calculate the total size of dynamic memory
>> +to allocate for a structure containing an array of this kind as a member::
>> +
>> +        struct something {
>> +                int length;
>> +                char data[1];
>> +        };
> 
> And for all of these examples, I'd like to avoid using "char" as the type
> for the flex array member, since it doesn't drive home the idea of
> having a multiplier (i.e. "length" matches the size of "data") And
> similarly, "length" should, I think, be called "count". That way the
> bytes is separate from count, but is the result of sizeof(*items) *
> count.
> 
>> +
>> +        struct something *instance;
>> +
>> +        instance = kmalloc(struct_size(instance, data, size - 1), GFP_KERNEL);
>> +        instance->length = size;
>> +        memcpy(instance->data, source, size);
>> +
>> +In the example above, we had to remember to calculate ``size - 1`` when using
> 
> I don't want to get people confused between "size" (in bytes) vs "count"
> (of trailing elements).
> 

Yep. I'll change that to avoid confusion.

>> +the struct_size() helper, otherwise we would have --unintentionally-- allocated
>> +memory for one too many ``data`` objects. The cleanest and least error-prone way
>> +to implement this is through the use of a `flexible array member`, which is
>> +exemplified at the `beginning <#zero-length-and-one-element-arrays>`_ of this
>> +section.
>> -- 
>> 2.27.0
>>
> 
> How does that look?
> 

Got it. Working on the changes right now...

Thanks for the feedback!
--
Gustavo

^ permalink raw reply	[relevance 0%]

* [PATCH v3] docs: deprecated.rst: Add zero-length and one-element arrays
@ 2020-06-08 21:37  3% Gustavo A. R. Silva
  2020-06-10  5:56  0% ` Kees Cook
  2020-06-19 19:39  0% ` Jonathan Corbet
  0 siblings, 2 replies; 200+ results
From: Gustavo A. R. Silva @ 2020-06-08 21:37 UTC (permalink / raw)
  To: Jonathan Corbet, Kees Cook; +Cc: linux-doc, linux-kernel, Gustavo A. R. Silva

Add zero-length and one-element arrays to the list.

While I continue replacing zero-length and one-element arrays with
flexible-array members, I need a reference to point people to, so
they don't introduce more instances of such arrays. And while here,
add a note to the "open-coded arithmetic in allocator arguments"
section, on the use of struct_size() and the arrays-to-deprecate
mentioned here.

Co-developed-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
---
Changes in v3:
 - Add changes written by Kees.
 - Add Co-developed-by tag to include Kees in the changelog text.

Changes in v2:
 - Adjust some markup links for readability.

 Documentation/process/deprecated.rst | 118 +++++++++++++++++++++++++++
 1 file changed, 118 insertions(+)

diff --git a/Documentation/process/deprecated.rst b/Documentation/process/deprecated.rst
index 652e2aa02a66c..bd4c92244de31 100644
--- a/Documentation/process/deprecated.rst
+++ b/Documentation/process/deprecated.rst
@@ -85,6 +85,11 @@ Instead, use the helper::
 
 	header = kzalloc(struct_size(header, item, count), GFP_KERNEL);
 
+.. note:: If you are using struct_size() on a structure containing a zero-length
+        or a one-element array as a trailing array member, please refactor such
+        array usage and switch to a `flexible array member
+        <#zero-length-and-one-element-arrays>`_ instead.
+
 See array_size(), array3_size(), and struct_size(),
 for more details as well as the related check_add_overflow() and
 check_mul_overflow() family of functions.
@@ -200,3 +205,116 @@ All switch/case blocks must end in one of:
 * continue;
 * goto <label>;
 * return [expression];
+
+Zero-length and one-element arrays
+----------------------------------
+There is a regular need in the kernel to provide a way to declare having
+a dynamically sized set of trailing elements in a structure. Kernel code
+should always use `"flexible array members" <https://en.wikipedia.org/wiki/Flexible_array_member>`_
+for these cases. The older style of one-element or zero-length arrays should
+no longer be used.
+
+In older C code, dynamically sized trailing elements were done by specifying
+a one-element array at the end of a structure::
+
+        struct something {
+                size_t count;
+                struct foo items[1];
+        };
+
+This led to fragile size calculations via sizeof() (which would need to
+remove the size of the single trailing element to get a correct size of
+the "header"). A `GNU C extension <https://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html>`_
+was introduced to allow for zero-length arrays, to avoid these kinds of
+size problems::
+
+        struct something {
+                size_t count;
+                struct foo items[0];
+        };
+
+But this led to other problems, and didn't solve some problems shared by
+both styles, like not being able to detect when such an array is accidentally
+being used _not_ at the end of a structure (which could happen directly, or
+when such a struct was in unions, structs of structs, etc).
+
+C99 introduced "flexible array members", which lacks a numeric size for
+the array declaration entirely::
+
+        struct something {
+                size_t count;
+                struct foo items[];
+        };
+
+This is the way the kernel expects dynamically sized trailing elements
+to be declared. It allows the compiler to generate errors when the
+flexible array does not occur last in the structure, which helps to prevent
+some kind of `undefined behavior
+<https://git.kernel.org/linus/76497732932f15e7323dc805e8ea8dc11bb587cf>`_
+bugs from being inadvertently introduced to the codebase. It also allows
+the compiler to correctly analyze array sizes (via sizeof(),
+`CONFIG_FORTIFY_SOURCE`, and `CONFIG_UBSAN_BOUNDS`). For instance,
+there is no mechanism that warns us that the following application of the
+sizeof() operator to a zero-length array always results in zero::
+
+        struct something {
+                size_t count;
+                struct foo items[0];
+        };
+
+        struct something *instance;
+
+        instance = kmalloc(struct_size(instance, items, count), GFP_KERNEL);
+        instance->count = count;
+
+        size = sizeof(instance->items) * instance->count;
+        memcpy(instance->items, source, size);
+
+At the last line of code above, ``size`` turns out to be ``zero``, when one might
+have thought it represents the total size in bytes of the dynamic memory recently
+allocated for the trailing array ``items``. Here are a couple examples of this
+issue: `link 1
+<https://git.kernel.org/linus/f2cd32a443da694ac4e28fbf4ac6f9d5cc63a539>`_,
+`link 2
+<https://git.kernel.org/linus/ab91c2a89f86be2898cee208d492816ec238b2cf>`_.
+Instead, `flexible array members have incomplete type, and so the sizeof()
+operator may not be applied <https://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html>`_,
+so any misuse of such operators will be immediately noticed at build time.
+
+With respect to one-element arrays, one has to be acutely aware that `such arrays
+occupy at least as much space as a single object of the type
+<https://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html>`_,
+hence they contribute to the size of the enclosing structure. This is prone
+to error every time people want to calculate the total size of dynamic memory
+to allocate for a structure containing an array of this kind as a member::
+
+        struct something {
+                size_t count;
+                struct foo items[1];
+        };
+
+        struct something *instance;
+
+        instance = kmalloc(struct_size(instance, items, count - 1), GFP_KERNEL);
+        instance->count = count;
+
+        size = sizeof(instance->items) * instance->count;
+        memcpy(instance->items, source, size);
+
+In the example above, we had to remember to calculate ``count - 1`` when using
+the struct_size() helper, otherwise we would have --unintentionally-- allocated
+memory for one too many ``items`` objects. The cleanest and least error-prone way
+to implement this is through the use of a `flexible array member`::
+
+        struct something {
+                size_t count;
+                struct foo items[];
+        };
+
+        struct something *instance;
+
+        instance = kmalloc(struct_size(instance, items, count), GFP_KERNEL);
+        instance->count = count;
+
+        size = sizeof(instance->items[0]) * instance->count;
+        memcpy(instance->items, source, size);
-- 
2.27.0


^ permalink raw reply related	[relevance 3%]

* Re: [PATCH v3] docs: deprecated.rst: Add zero-length and one-element arrays
  2020-06-08 21:37  3% [PATCH v3] " Gustavo A. R. Silva
@ 2020-06-10  5:56  0% ` Kees Cook
  2020-06-19 19:39  0% ` Jonathan Corbet
  1 sibling, 0 replies; 200+ results
From: Kees Cook @ 2020-06-10  5:56 UTC (permalink / raw)
  To: Gustavo A. R. Silva
  Cc: Jonathan Corbet, linux-doc, linux-kernel, Gustavo A. R. Silva

On Mon, Jun 08, 2020 at 04:37:11PM -0500, Gustavo A. R. Silva wrote:
> Add zero-length and one-element arrays to the list.
> 
> While I continue replacing zero-length and one-element arrays with
> flexible-array members, I need a reference to point people to, so
> they don't introduce more instances of such arrays. And while here,
> add a note to the "open-coded arithmetic in allocator arguments"
> section, on the use of struct_size() and the arrays-to-deprecate
> mentioned here.
> 
> Co-developed-by: Kees Cook <keescook@chromium.org>
> Signed-off-by: Kees Cook <keescook@chromium.org>
> Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>

We hammered this out offlist, hence my SoB, but just in case it's
useful:

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

-- 
Kees Cook

^ permalink raw reply	[relevance 0%]

* Re: [PATCH v3] docs: deprecated.rst: Add zero-length and one-element arrays
  2020-06-08 21:37  3% [PATCH v3] " Gustavo A. R. Silva
  2020-06-10  5:56  0% ` Kees Cook
@ 2020-06-19 19:39  0% ` Jonathan Corbet
  1 sibling, 0 replies; 200+ results
From: Jonathan Corbet @ 2020-06-19 19:39 UTC (permalink / raw)
  To: Gustavo A. R. Silva
  Cc: Kees Cook, linux-doc, linux-kernel, Gustavo A. R. Silva

On Mon, 8 Jun 2020 16:37:11 -0500
"Gustavo A. R. Silva" <gustavoars@kernel.org> wrote:

> Add zero-length and one-element arrays to the list.
> 
> While I continue replacing zero-length and one-element arrays with
> flexible-array members, I need a reference to point people to, so
> they don't introduce more instances of such arrays. And while here,
> add a note to the "open-coded arithmetic in allocator arguments"
> section, on the use of struct_size() and the arrays-to-deprecate
> mentioned here.
> 
> Co-developed-by: Kees Cook <keescook@chromium.org>
> Signed-off-by: Kees Cook <keescook@chromium.org>
> Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
> ---
> Changes in v3:
>  - Add changes written by Kees.
>  - Add Co-developed-by tag to include Kees in the changelog text.
> 
> Changes in v2:
>  - Adjust some markup links for readability.
> 
>  Documentation/process/deprecated.rst | 118 +++++++++++++++++++++++++++
>  1 file changed, 118 insertions(+)

Applied, thanks.

jon

^ permalink raw reply	[relevance 0%]

* [PATCH v2 01/16] docs: deprecated.rst: Add uninitialized_var()
  @ 2020-06-20  3:29  6% ` Kees Cook
  2020-06-22 16:59  0%   ` Nick Desaulniers
  0 siblings, 1 reply; 200+ results
From: Kees Cook @ 2020-06-20  3:29 UTC (permalink / raw)
  To: linux-kernel
  Cc: Kees Cook, Linus Torvalds, Miguel Ojeda, Alexander Potapenko,
	Joe Perches, Andy Whitcroft, x86, drbd-dev, linux-block, b43-dev,
	netdev, linux-doc, linux-wireless, linux-ide, linux-clk,
	linux-spi, linux-mm, clang-built-linux

Nothing should be using this macro, and the entire idea of tricking the
compiler into silencing such warnings is a mistake.

Signed-off-by: Kees Cook <keescook@chromium.org>
---
 Documentation/process/deprecated.rst | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/Documentation/process/deprecated.rst b/Documentation/process/deprecated.rst
index 652e2aa02a66..943a926ecbbb 100644
--- a/Documentation/process/deprecated.rst
+++ b/Documentation/process/deprecated.rst
@@ -51,6 +51,24 @@ to make sure their systems do not continue running in the face of
 "unreachable" conditions. (For example, see commits like `this one
 <https://git.kernel.org/linus/d4689846881d160a4d12a514e991a740bcb5d65a>`_.)
 
+uninitialized_var()
+-------------------
+For any compiler warnings about uninitialized variables, just add
+an initializer. Using the uninitialized_var() macro (or similar
+warning-silencing tricks) is dangerous as it papers over `real bugs
+<https://lore.kernel.org/lkml/20200603174714.192027-1-glider@google.com/>`_
+(or can in the future), and suppresses unrelated compiler warnings
+(e.g. "unused variable"). If the compiler thinks it is uninitialized,
+either simply initialize the variable or make compiler changes. Keep in
+mind that in most cases, if an initialization is obviously redundant,
+the compiler's dead-store elimination pass will make sure there are no
+needless variable writes.
+
+As Linus has said, this macro
+`must <https://lore.kernel.org/lkml/CA+55aFw+Vbj0i=1TGqCR5vQkCzWJ0QxK6CernOU6eedsudAixw@mail.gmail.com/>`_
+`be <https://lore.kernel.org/lkml/CA+55aFwgbgqhbp1fkxvRKEpzyR5J8n1vKT1VZdz9knmPuXhOeg@mail.gmail.com/>`_
+`removed <https://lore.kernel.org/lkml/CA+55aFz2500WfbKXAx8s67wrm9=yVJu65TpLgN_ybYNv0VEOKA@mail.gmail.com/>`_.
+
 open-coded arithmetic in allocator arguments
 --------------------------------------------
 Dynamic size calculations (especially multiplication) should not be
-- 
2.25.1


^ permalink raw reply related	[relevance 6%]

* Re: [PATCH v2 01/16] docs: deprecated.rst: Add uninitialized_var()
  2020-06-20  3:29  6% ` [PATCH v2 01/16] docs: deprecated.rst: Add uninitialized_var() Kees Cook
@ 2020-06-22 16:59  0%   ` Nick Desaulniers
  0 siblings, 0 replies; 200+ results
From: Nick Desaulniers @ 2020-06-22 16:59 UTC (permalink / raw)
  To: Kees Cook
  Cc: LKML, Linus Torvalds, Miguel Ojeda, Alexander Potapenko,
	Joe Perches, Andy Whitcroft,
	maintainer:X86 ARCHITECTURE (32-BIT AND 64-BIT),
	drbd-dev, linux-block, b43-dev, Network Development,
	Linux Doc Mailing List, linux-wireless, linux-ide, linux-clk,
	linux-spi, Linux Memory Management List, clang-built-linux

On Fri, Jun 19, 2020 at 8:30 PM Kees Cook <keescook@chromium.org> wrote:
>
> Nothing should be using this macro, and the entire idea of tricking the
> compiler into silencing such warnings is a mistake.
>
> Signed-off-by: Kees Cook <keescook@chromium.org>

Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>

> ---
>  Documentation/process/deprecated.rst | 18 ++++++++++++++++++
>  1 file changed, 18 insertions(+)
>
> diff --git a/Documentation/process/deprecated.rst b/Documentation/process/deprecated.rst
> index 652e2aa02a66..943a926ecbbb 100644
> --- a/Documentation/process/deprecated.rst
> +++ b/Documentation/process/deprecated.rst
> @@ -51,6 +51,24 @@ to make sure their systems do not continue running in the face of
>  "unreachable" conditions. (For example, see commits like `this one
>  <https://git.kernel.org/linus/d4689846881d160a4d12a514e991a740bcb5d65a>`_.)
>
> +uninitialized_var()
> +-------------------
> +For any compiler warnings about uninitialized variables, just add
> +an initializer. Using the uninitialized_var() macro (or similar
> +warning-silencing tricks) is dangerous as it papers over `real bugs
> +<https://lore.kernel.org/lkml/20200603174714.192027-1-glider@google.com/>`_
> +(or can in the future), and suppresses unrelated compiler warnings
> +(e.g. "unused variable"). If the compiler thinks it is uninitialized,
> +either simply initialize the variable or make compiler changes. Keep in
> +mind that in most cases, if an initialization is obviously redundant,
> +the compiler's dead-store elimination pass will make sure there are no
> +needless variable writes.
> +
> +As Linus has said, this macro
> +`must <https://lore.kernel.org/lkml/CA+55aFw+Vbj0i=1TGqCR5vQkCzWJ0QxK6CernOU6eedsudAixw@mail.gmail.com/>`_
> +`be <https://lore.kernel.org/lkml/CA+55aFwgbgqhbp1fkxvRKEpzyR5J8n1vKT1VZdz9knmPuXhOeg@mail.gmail.com/>`_
> +`removed <https://lore.kernel.org/lkml/CA+55aFz2500WfbKXAx8s67wrm9=yVJu65TpLgN_ybYNv0VEOKA@mail.gmail.com/>`_.
> +
>  open-coded arithmetic in allocator arguments
>  --------------------------------------------
>  Dynamic size calculations (especially multiplication) should not be
> --
> 2.25.1
>
> --
> You received this message because you are subscribed to the Google Groups "Clang Built Linux" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to clang-built-linux+unsubscribe@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/clang-built-linux/20200620033007.1444705-2-keescook%40chromium.org.



-- 
Thanks,
~Nick Desaulniers

^ permalink raw reply	[relevance 0%]

* [PATCH] deprecated.rst: Remove now removed uninitialized_var
@ 2020-08-27  3:12  7% Joe Perches
  2020-08-27  3:27  0% ` Nick Desaulniers
  0 siblings, 1 reply; 200+ results
From: Joe Perches @ 2020-08-27  3:12 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Jonathan Corbet, Kees Cook, Nick Desaulniers, LKML, linux-doc

It's now gone from the kernel so remove it from the deprecated API text.

Signed-off-by: Joe Perches <joe@perches.com>
---
 Documentation/process/deprecated.rst | 18 ------------------
 1 file changed, 18 deletions(-)

diff --git a/Documentation/process/deprecated.rst b/Documentation/process/deprecated.rst
index 918e32d76fc4..70720f00b9aa 100644
--- a/Documentation/process/deprecated.rst
+++ b/Documentation/process/deprecated.rst
@@ -51,24 +51,6 @@ to make sure their systems do not continue running in the face of
 "unreachable" conditions. (For example, see commits like `this one
 <https://git.kernel.org/linus/d4689846881d160a4d12a514e991a740bcb5d65a>`_.)
 
-uninitialized_var()
--------------------
-For any compiler warnings about uninitialized variables, just add
-an initializer. Using the uninitialized_var() macro (or similar
-warning-silencing tricks) is dangerous as it papers over `real bugs
-<https://lore.kernel.org/lkml/20200603174714.192027-1-glider@google.com/>`_
-(or can in the future), and suppresses unrelated compiler warnings
-(e.g. "unused variable"). If the compiler thinks it is uninitialized,
-either simply initialize the variable or make compiler changes. Keep in
-mind that in most cases, if an initialization is obviously redundant,
-the compiler's dead-store elimination pass will make sure there are no
-needless variable writes.
-
-As Linus has said, this macro
-`must <https://lore.kernel.org/lkml/CA+55aFw+Vbj0i=1TGqCR5vQkCzWJ0QxK6CernOU6eedsudAixw@mail.gmail.com/>`_
-`be <https://lore.kernel.org/lkml/CA+55aFwgbgqhbp1fkxvRKEpzyR5J8n1vKT1VZdz9knmPuXhOeg@mail.gmail.com/>`_
-`removed <https://lore.kernel.org/lkml/CA+55aFz2500WfbKXAx8s67wrm9=yVJu65TpLgN_ybYNv0VEOKA@mail.gmail.com/>`_.
-
 open-coded arithmetic in allocator arguments
 --------------------------------------------
 Dynamic size calculations (especially multiplication) should not be



^ permalink raw reply related	[relevance 7%]

* Re: [PATCH] deprecated.rst: Remove now removed uninitialized_var
  2020-08-27  3:12  7% [PATCH] deprecated.rst: Remove now removed uninitialized_var Joe Perches
@ 2020-08-27  3:27  0% ` Nick Desaulniers
  0 siblings, 0 replies; 200+ results
From: Nick Desaulniers @ 2020-08-27  3:27 UTC (permalink / raw)
  To: Joe Perches; +Cc: Linus Torvalds, Jonathan Corbet, Kees Cook, LKML, linux-doc

On Wed, Aug 26, 2020 at 8:12 PM Joe Perches <joe@perches.com> wrote:
>
> It's now gone from the kernel so remove it from the deprecated API text.
>
> Signed-off-by: Joe Perches <joe@perches.com>

Thanks Joe.
Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>

> ---
>  Documentation/process/deprecated.rst | 18 ------------------
>  1 file changed, 18 deletions(-)
>
> diff --git a/Documentation/process/deprecated.rst b/Documentation/process/deprecated.rst
> index 918e32d76fc4..70720f00b9aa 100644
> --- a/Documentation/process/deprecated.rst
> +++ b/Documentation/process/deprecated.rst
> @@ -51,24 +51,6 @@ to make sure their systems do not continue running in the face of
>  "unreachable" conditions. (For example, see commits like `this one
>  <https://git.kernel.org/linus/d4689846881d160a4d12a514e991a740bcb5d65a>`_.)
>
> -uninitialized_var()
> --------------------
> -For any compiler warnings about uninitialized variables, just add
> -an initializer. Using the uninitialized_var() macro (or similar
> -warning-silencing tricks) is dangerous as it papers over `real bugs
> -<https://lore.kernel.org/lkml/20200603174714.192027-1-glider@google.com/>`_
> -(or can in the future), and suppresses unrelated compiler warnings
> -(e.g. "unused variable"). If the compiler thinks it is uninitialized,
> -either simply initialize the variable or make compiler changes. Keep in
> -mind that in most cases, if an initialization is obviously redundant,
> -the compiler's dead-store elimination pass will make sure there are no
> -needless variable writes.
> -
> -As Linus has said, this macro
> -`must <https://lore.kernel.org/lkml/CA+55aFw+Vbj0i=1TGqCR5vQkCzWJ0QxK6CernOU6eedsudAixw@mail.gmail.com/>`_
> -`be <https://lore.kernel.org/lkml/CA+55aFwgbgqhbp1fkxvRKEpzyR5J8n1vKT1VZdz9knmPuXhOeg@mail.gmail.com/>`_
> -`removed <https://lore.kernel.org/lkml/CA+55aFz2500WfbKXAx8s67wrm9=yVJu65TpLgN_ybYNv0VEOKA@mail.gmail.com/>`_.
> -
>  open-coded arithmetic in allocator arguments
>  --------------------------------------------
>  Dynamic size calculations (especially multiplication) should not be
>
>


-- 
Thanks,
~Nick Desaulniers

^ permalink raw reply	[relevance 0%]

* [PATCH] ARC: unwind: Use struct_size helper instead of open-coded arithmetic
@ 2021-07-16 17:03  7% Len Baker
  2021-07-16 19:41  7% ` Gustavo A. R. Silva
  0 siblings, 1 reply; 200+ results
From: Len Baker @ 2021-07-16 17:03 UTC (permalink / raw)
  To: Vineet Gupta
  Cc: Len Baker, dean.yang_cp, Gustavo A. R. Silva, linux-snps-arc,
	linux-kernel

Dynamic size calculations (especially multiplication) should not be
performed in memory allocator 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.

To avoid this scenario, use the struct_size helper.

Signed-off-by: Len Baker <len.baker@gmx.com>
---
 arch/arc/kernel/unwind.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/arch/arc/kernel/unwind.c b/arch/arc/kernel/unwind.c
index 47bab67f8649..af18052b86a7 100644
--- a/arch/arc/kernel/unwind.c
+++ b/arch/arc/kernel/unwind.c
@@ -13,6 +13,7 @@
 #include <linux/sched.h>
 #include <linux/module.h>
 #include <linux/memblock.h>
+#include <linux/overflow.h>
 #include <linux/sort.h>
 #include <linux/slab.h>
 #include <linux/stop_machine.h>
@@ -312,9 +313,7 @@ static void init_unwind_hdr(struct unwind_table *table,
 	if (tableSize || !n)
 		goto ret_err;

-	hdrSize = 4 + sizeof(unsigned long) + sizeof(unsigned int)
-	    + 2 * n * sizeof(unsigned long);
-
+	hdrSize = struct_size(header, table, n);
 	header = alloc(hdrSize);
 	if (!header)
 		goto ret_err;
--
2.25.1


^ permalink raw reply related	[relevance 7%]

* Re: [PATCH] ARC: unwind: Use struct_size helper instead of open-coded arithmetic
  2021-07-16 17:03  7% [PATCH] ARC: unwind: Use struct_size helper instead of open-coded arithmetic Len Baker
@ 2021-07-16 19:41  7% ` Gustavo A. R. Silva
  0 siblings, 0 replies; 200+ results
From: Gustavo A. R. Silva @ 2021-07-16 19:41 UTC (permalink / raw)
  To: Len Baker, Vineet Gupta
  Cc: dean.yang_cp, Gustavo A. R. Silva, linux-snps-arc, linux-kernel



On 7/16/21 12:03, Len Baker wrote:
> Dynamic size calculations (especially multiplication) should not be
> performed in memory allocator 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.
> 
> To avoid this scenario, use the struct_size helper.
> 
> Signed-off-by: Len Baker <len.baker@gmx.com>

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

Thanks!
--
Gustavo

> ---
>  arch/arc/kernel/unwind.c | 5 ++---
>  1 file changed, 2 insertions(+), 3 deletions(-)
> 
> diff --git a/arch/arc/kernel/unwind.c b/arch/arc/kernel/unwind.c
> index 47bab67f8649..af18052b86a7 100644
> --- a/arch/arc/kernel/unwind.c
> +++ b/arch/arc/kernel/unwind.c
> @@ -13,6 +13,7 @@
>  #include <linux/sched.h>
>  #include <linux/module.h>
>  #include <linux/memblock.h>
> +#include <linux/overflow.h>
>  #include <linux/sort.h>
>  #include <linux/slab.h>
>  #include <linux/stop_machine.h>
> @@ -312,9 +313,7 @@ static void init_unwind_hdr(struct unwind_table *table,
>  	if (tableSize || !n)
>  		goto ret_err;
> 
> -	hdrSize = 4 + sizeof(unsigned long) + sizeof(unsigned int)
> -	    + 2 * n * sizeof(unsigned long);
> -
> +	hdrSize = struct_size(header, table, n);
>  	header = alloc(hdrSize);
>  	if (!header)
>  		goto ret_err;
> --
> 2.25.1
> 

^ permalink raw reply	[relevance 7%]

* [PATCH] ipw2x00: Use struct_size helper instead of open-coded arithmetic
@ 2021-07-17 14:25  7% Len Baker
  2021-07-21 10:20  7% ` Stanislav Yakovlev
  2021-08-21 17:15 12% ` Kalle Valo
  0 siblings, 2 replies; 200+ results
From: Len Baker @ 2021-07-17 14:25 UTC (permalink / raw)
  To: Stanislav Yakovlev, Kalle Valo, David S. Miller, Jakub Kicinski
  Cc: Len Baker, linux-wireless, netdev, linux-kernel

Dynamic size calculations (especially multiplication) should not be
performed in memory allocator 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.

To avoid this scenario, use the struct_size helper.

Signed-off-by: Len Baker <len.baker@gmx.com>
---
 drivers/net/wireless/intel/ipw2x00/libipw_tx.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/wireless/intel/ipw2x00/libipw_tx.c b/drivers/net/wireless/intel/ipw2x00/libipw_tx.c
index d9baa2fa603b..36d1e6b2568d 100644
--- a/drivers/net/wireless/intel/ipw2x00/libipw_tx.c
+++ b/drivers/net/wireless/intel/ipw2x00/libipw_tx.c
@@ -179,8 +179,8 @@ static struct libipw_txb *libipw_alloc_txb(int nr_frags, int txb_size,
 {
 	struct libipw_txb *txb;
 	int i;
-	txb = kmalloc(sizeof(struct libipw_txb) + (sizeof(u8 *) * nr_frags),
-		      gfp_mask);
+
+	txb = kmalloc(struct_size(txb, fragments, nr_frags), gfp_mask);
 	if (!txb)
 		return NULL;

--
2.25.1


^ permalink raw reply related	[relevance 7%]

* Re: [PATCH] ipw2x00: Use struct_size helper instead of open-coded arithmetic
  2021-07-17 14:25  7% [PATCH] ipw2x00: " Len Baker
@ 2021-07-21 10:20  7% ` Stanislav Yakovlev
  2021-08-21 17:15 12% ` Kalle Valo
  1 sibling, 0 replies; 200+ results
From: Stanislav Yakovlev @ 2021-07-21 10:20 UTC (permalink / raw)
  To: Len Baker
  Cc: Kalle Valo, David S. Miller, Jakub Kicinski, wireless, netdev,
	linux-kernel

On Sat, 17 Jul 2021 at 18:25, Len Baker <len.baker@gmx.com> wrote:
>
> Dynamic size calculations (especially multiplication) should not be
> performed in memory allocator 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.
>
> To avoid this scenario, use the struct_size helper.
>
> Signed-off-by: Len Baker <len.baker@gmx.com>
> ---
>  drivers/net/wireless/intel/ipw2x00/libipw_tx.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>

Looks fine, thanks!

Stanislav.

^ permalink raw reply	[relevance 7%]

* Re: [PATCH] ipw2x00: Use struct_size helper instead of open-coded arithmetic
  2021-07-17 14:25  7% [PATCH] ipw2x00: " Len Baker
  2021-07-21 10:20  7% ` Stanislav Yakovlev
@ 2021-08-21 17:15 12% ` Kalle Valo
  1 sibling, 0 replies; 200+ results
From: Kalle Valo @ 2021-08-21 17:15 UTC (permalink / raw)
  To: Len Baker
  Cc: Stanislav Yakovlev, David S. Miller, Jakub Kicinski, Len Baker,
	linux-wireless, netdev, linux-kernel

Len Baker <len.baker@gmx.com> wrote:

> Dynamic size calculations (especially multiplication) should not be
> performed in memory allocator 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.
> 
> To avoid this scenario, use the struct_size helper.
> 
> Signed-off-by: Len Baker <len.baker@gmx.com>

Patch applied to wireless-drivers-next.git, thanks.

6f78f4a41ee0 ipw2x00: Use struct_size helper instead of open-coded arithmetic

-- 
https://patchwork.kernel.org/project/linux-wireless/patch/20210717142513.5411-1-len.baker@gmx.com/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches


^ permalink raw reply	[relevance 12%]

* [PATCH 0/2] staging/rtl8192u: Prefer kcalloc over open coded arithmetic
@ 2021-08-22 14:28 12% Len Baker
  2021-08-22 14:28  7% ` [PATCH 2/2] " Len Baker
  0 siblings, 1 reply; 200+ results
From: Len Baker @ 2021-08-22 14:28 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: Len Baker, Kees Cook, Michael Straube, Lee Jones, linux-staging,
	linux-kernel, linux-hardening

The main reason of this patch serie is to avoid dynamic size
calculations (especially multiplication) in memory allocator 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.

However, there is a previous patch to avoid CamelCase in the name of
variables.

Len Baker (2):
  staging/rtl8192u: Avoid CamelCase in names of variables
  staging/rtl8192u: Prefer kcalloc over open coded arithmetic

 drivers/staging/rtl8192u/r819xU_phy.c | 92 +++++++++++++--------------
 1 file changed, 44 insertions(+), 48 deletions(-)

--
2.25.1


^ permalink raw reply	[relevance 12%]

* [PATCH 2/2] staging/rtl8192u: Prefer kcalloc over open coded arithmetic
  2021-08-22 14:28 12% [PATCH 0/2] staging/rtl8192u: Prefer kcalloc over open coded arithmetic Len Baker
@ 2021-08-22 14:28  7% ` Len Baker
  2021-08-22 14:59 13%   ` Kees Cook
  0 siblings, 1 reply; 200+ results
From: Len Baker @ 2021-08-22 14:28 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: Len Baker, Kees Cook, Michael Straube, Lee Jones, linux-staging,
	linux-kernel, linux-hardening

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: Len Baker <len.baker@gmx.com>
---
 drivers/staging/rtl8192u/r819xU_phy.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/staging/rtl8192u/r819xU_phy.c b/drivers/staging/rtl8192u/r819xU_phy.c
index ff6fe2ee3349..97f4d89500ae 100644
--- a/drivers/staging/rtl8192u/r819xU_phy.c
+++ b/drivers/staging/rtl8192u/r819xU_phy.c
@@ -1195,17 +1195,17 @@ static u8 rtl8192_phy_SwChnlStepByStep(struct net_device *dev, u8 channel,
 	u8 e_rfpath;
 	bool ret;

-	pre_cmd = kzalloc(sizeof(*pre_cmd) * MAX_PRECMD_CNT, GFP_KERNEL);
+	pre_cmd = kcalloc(MAX_PRECMD_CNT, sizeof(*pre_cmd), GFP_KERNEL);
 	if (!pre_cmd)
 		return false;

-	post_cmd = kzalloc(sizeof(*post_cmd) * MAX_POSTCMD_CNT, GFP_KERNEL);
+	post_cmd = kcalloc(MAX_POSTCMD_CNT, sizeof(*post_cmd), GFP_KERNEL);
 	if (!post_cmd) {
 		kfree(pre_cmd);
 		return false;
 	}

-	rf_cmd = kzalloc(sizeof(*rf_cmd) * MAX_RFDEPENDCMD_CNT, GFP_KERNEL);
+	rf_cmd = kcalloc(MAX_RFDEPENDCMD_CNT, sizeof(*rf_cmd), GFP_KERNEL);
 	if (!rf_cmd) {
 		kfree(pre_cmd);
 		kfree(post_cmd);
--
2.25.1


^ permalink raw reply related	[relevance 7%]

* Re: [PATCH 2/2] staging/rtl8192u: Prefer kcalloc over open coded arithmetic
  2021-08-22 14:28  7% ` [PATCH 2/2] " Len Baker
@ 2021-08-22 14:59 13%   ` Kees Cook
  2021-08-22 15:41  7%     ` Len Baker
  0 siblings, 1 reply; 200+ results
From: Kees Cook @ 2021-08-22 14:59 UTC (permalink / raw)
  To: Len Baker
  Cc: Greg Kroah-Hartman, Michael Straube, Lee Jones, linux-staging,
	linux-kernel, linux-hardening

On Sun, Aug 22, 2021 at 04:28:20PM +0200, Len Baker wrote:
> 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.

It might be useful to reference the documentation on why this change is
desired:
https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments

Here and in the docs, though, it's probably worth noting that these
aren't actually dynamic sizes: both sides of the multiplication are
constant values. I still think it's best to refactor these anyway, just
to keep the open-coded math idiom out of code, though.

Also, have you looked at Coccinelle at all? I have a hideous pile of
rules that try to find these instances, but it really needs improvement:
https://github.com/kees/coccinelle-linux-allocator-overflow/tree/trunk/array_size

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

> 
> Signed-off-by: Len Baker <len.baker@gmx.com>
> ---
>  drivers/staging/rtl8192u/r819xU_phy.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/staging/rtl8192u/r819xU_phy.c b/drivers/staging/rtl8192u/r819xU_phy.c
> index ff6fe2ee3349..97f4d89500ae 100644
> --- a/drivers/staging/rtl8192u/r819xU_phy.c
> +++ b/drivers/staging/rtl8192u/r819xU_phy.c
> @@ -1195,17 +1195,17 @@ static u8 rtl8192_phy_SwChnlStepByStep(struct net_device *dev, u8 channel,
>  	u8 e_rfpath;
>  	bool ret;
> 
> -	pre_cmd = kzalloc(sizeof(*pre_cmd) * MAX_PRECMD_CNT, GFP_KERNEL);
> +	pre_cmd = kcalloc(MAX_PRECMD_CNT, sizeof(*pre_cmd), GFP_KERNEL);
>  	if (!pre_cmd)
>  		return false;
> 
> -	post_cmd = kzalloc(sizeof(*post_cmd) * MAX_POSTCMD_CNT, GFP_KERNEL);
> +	post_cmd = kcalloc(MAX_POSTCMD_CNT, sizeof(*post_cmd), GFP_KERNEL);
>  	if (!post_cmd) {
>  		kfree(pre_cmd);
>  		return false;
>  	}
> 
> -	rf_cmd = kzalloc(sizeof(*rf_cmd) * MAX_RFDEPENDCMD_CNT, GFP_KERNEL);
> +	rf_cmd = kcalloc(MAX_RFDEPENDCMD_CNT, sizeof(*rf_cmd), GFP_KERNEL);
>  	if (!rf_cmd) {
>  		kfree(pre_cmd);
>  		kfree(post_cmd);
> --
> 2.25.1
> 

-- 
Kees Cook

^ permalink raw reply	[relevance 13%]

* Re: [PATCH 2/2] staging/rtl8192u: Prefer kcalloc over open coded arithmetic
  2021-08-22 14:59 13%   ` Kees Cook
@ 2021-08-22 15:41  7%     ` Len Baker
  0 siblings, 0 replies; 200+ results
From: Len Baker @ 2021-08-22 15:41 UTC (permalink / raw)
  To: Kees Cook
  Cc: Len Baker, Greg Kroah-Hartman, Michael Straube, Lee Jones,
	linux-staging, linux-kernel, linux-hardening

Hi Kees,

On Sun, Aug 22, 2021 at 07:59:51AM -0700, Kees Cook wrote:
> On Sun, Aug 22, 2021 at 04:28:20PM +0200, Len Baker wrote:
> > 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.
>
> It might be useful to reference the documentation on why this change is
> desired:
> https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments

Ok, I will add this info to the next version. Thanks for the advise.

> Here and in the docs, though, it's probably worth noting that these
> aren't actually dynamic sizes: both sides of the multiplication are
> constant values. I still think it's best to refactor these anyway, just
> to keep the open-coded math idiom out of code, though.

Ok, I will change the commit message to note this. Also I will send
a patch to add this info to the documentation.

> Also, have you looked at Coccinelle at all? I have a hideous pile of
> rules that try to find these instances, but it really needs improvement:
> https://github.com/kees/coccinelle-linux-allocator-overflow/tree/trunk/array_size

I think my script is even worst ;) but find some arithmetic to improve :)
I will take a look. Thanks for the info.

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

Regards,
Len

> >
> > Signed-off-by: Len Baker <len.baker@gmx.com>
> > ---
> >  drivers/staging/rtl8192u/r819xU_phy.c | 6 +++---
> >  1 file changed, 3 insertions(+), 3 deletions(-)
> >
> > diff --git a/drivers/staging/rtl8192u/r819xU_phy.c b/drivers/staging/rtl8192u/r819xU_phy.c
> > index ff6fe2ee3349..97f4d89500ae 100644
> > --- a/drivers/staging/rtl8192u/r819xU_phy.c
> > +++ b/drivers/staging/rtl8192u/r819xU_phy.c
> > @@ -1195,17 +1195,17 @@ static u8 rtl8192_phy_SwChnlStepByStep(struct net_device *dev, u8 channel,
> >  	u8 e_rfpath;
> >  	bool ret;
> >
> > -	pre_cmd = kzalloc(sizeof(*pre_cmd) * MAX_PRECMD_CNT, GFP_KERNEL);
> > +	pre_cmd = kcalloc(MAX_PRECMD_CNT, sizeof(*pre_cmd), GFP_KERNEL);
> >  	if (!pre_cmd)
> >  		return false;
> >
> > -	post_cmd = kzalloc(sizeof(*post_cmd) * MAX_POSTCMD_CNT, GFP_KERNEL);
> > +	post_cmd = kcalloc(MAX_POSTCMD_CNT, sizeof(*post_cmd), GFP_KERNEL);
> >  	if (!post_cmd) {
> >  		kfree(pre_cmd);
> >  		return false;
> >  	}
> >
> > -	rf_cmd = kzalloc(sizeof(*rf_cmd) * MAX_RFDEPENDCMD_CNT, GFP_KERNEL);
> > +	rf_cmd = kcalloc(MAX_RFDEPENDCMD_CNT, sizeof(*rf_cmd), GFP_KERNEL);
> >  	if (!rf_cmd) {
> >  		kfree(pre_cmd);
> >  		kfree(post_cmd);
> > --
> > 2.25.1
> >
>
> --
> Kees Cook

^ permalink raw reply	[relevance 7%]

* [PATCH v2 0/3] staging/rtl8192u: Prefer kcalloc over open coded arithmetic
@ 2021-08-24  7:25 13% Len Baker
  2021-08-24  9:00 12% ` [PATCH v2 3/3] " Len Baker
  0 siblings, 1 reply; 200+ results
From: Len Baker @ 2021-08-24  7:25 UTC (permalink / raw)
  To: Greg Kroah-Hartman, Kees Cook
  Cc: Len Baker, Dan Carpenter, Michael Straube, Lee Jones,
	linux-staging, linux-kernel, linux-hardening

The main reason of this patch serie is to avoid size calculations
(especially multiplication) in memory allocator function arguments due
to the risk of them overflowing [1]. 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.

At the same time, take the opportunity to refactor the function avoiding
CamelCase in the name of variables and moving some initializations to
the variables definition block.

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

Changelog v1 -> v2
- Split the CamelCase refactoring and the moving of initializations in
  two separate commits (Kees Cook).
- Link to the documentation to clarify the change in the 3/3 patch (Kees
  Cook).
- Modify the commit message to clarify in the 3/3 patch that these
  changes are not dynamic sizes but it is best to do the change to keep
  the open-coded math idiom out of code (Kees Cook).

Len Baker (3):
  staging/rtl8192u: Avoid CamelCase in names of variables
  staging/rtl8192u: Initialize variables in the definition block
  staging/rtl8192u: Prefer kcalloc over open coded arithmetic

 drivers/staging/rtl8192u/r819xU_phy.c | 92 +++++++++++++--------------
 1 file changed, 44 insertions(+), 48 deletions(-)

--
2.25.1


^ permalink raw reply	[relevance 13%]

* [PATCH v2 3/3] staging/rtl8192u: Prefer kcalloc over open coded arithmetic
  2021-08-24  7:25 13% [PATCH v2 0/3] " Len Baker
@ 2021-08-24  9:00 12% ` Len Baker
  0 siblings, 0 replies; 200+ results
From: Len Baker @ 2021-08-24  9:00 UTC (permalink / raw)
  To: Greg Kroah-Hartman, Kees Cook
  Cc: Len Baker, Dan Carpenter, Michael Straube, Lee Jones,
	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.

In this case these aren't actually dynamic sizes: both sides of the
multiplication are constant values. However it is best to refactor these
anyway, just to keep the open-coded math idiom out of code.

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

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

Reviewed-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Len Baker <len.baker@gmx.com>
---
 drivers/staging/rtl8192u/r819xU_phy.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/staging/rtl8192u/r819xU_phy.c b/drivers/staging/rtl8192u/r819xU_phy.c
index ff6fe2ee3349..97f4d89500ae 100644
--- a/drivers/staging/rtl8192u/r819xU_phy.c
+++ b/drivers/staging/rtl8192u/r819xU_phy.c
@@ -1195,17 +1195,17 @@ static u8 rtl8192_phy_SwChnlStepByStep(struct net_device *dev, u8 channel,
 	u8 e_rfpath;
 	bool ret;

-	pre_cmd = kzalloc(sizeof(*pre_cmd) * MAX_PRECMD_CNT, GFP_KERNEL);
+	pre_cmd = kcalloc(MAX_PRECMD_CNT, sizeof(*pre_cmd), GFP_KERNEL);
 	if (!pre_cmd)
 		return false;

-	post_cmd = kzalloc(sizeof(*post_cmd) * MAX_POSTCMD_CNT, GFP_KERNEL);
+	post_cmd = kcalloc(MAX_POSTCMD_CNT, sizeof(*post_cmd), GFP_KERNEL);
 	if (!post_cmd) {
 		kfree(pre_cmd);
 		return false;
 	}

-	rf_cmd = kzalloc(sizeof(*rf_cmd) * MAX_RFDEPENDCMD_CNT, GFP_KERNEL);
+	rf_cmd = kcalloc(MAX_RFDEPENDCMD_CNT, sizeof(*rf_cmd), GFP_KERNEL);
 	if (!rf_cmd) {
 		kfree(pre_cmd);
 		kfree(post_cmd);
--
2.25.1

^ permalink raw reply related	[relevance 12%]

* [PATCH] docs: deprecated.rst: Clarify open-coded arithmetic with literals
@ 2021-08-27 17:12  7% Len Baker
  2021-08-27 19:06  7% ` Joe Perches
  0 siblings, 1 reply; 200+ results
From: Len Baker @ 2021-08-27 17:12 UTC (permalink / raw)
  To: Jonathan Corbet, Kees Cook
  Cc: Len Baker, Gustavo A. R. Silva, Joe Perches, linux-doc,
	linux-kernel, linux-hardening

Although using literals for size calculation in allocator arguments may
be harmless due to compiler warnings in case of overflows, it is better
to refactor the code to avoid the use of open-coded math idiom.

So, clarify the preferred way in these cases.

Suggested-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Len Baker <len.baker@gmx.com>
---
 Documentation/process/deprecated.rst | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/Documentation/process/deprecated.rst b/Documentation/process/deprecated.rst
index 9d83b8db8874..fdfafdefe296 100644
--- a/Documentation/process/deprecated.rst
+++ b/Documentation/process/deprecated.rst
@@ -60,7 +60,8 @@ smaller allocation being made than the caller was expecting. Using those
 allocations could lead to linear overflows of heap memory and other
 misbehaviors. (One exception to this is literal values where the compiler
 can warn if they might overflow. Though using literals for arguments as
-suggested below is also harmless.)
+suggested below is also harmless. So, the preferred way in these cases is
+to refactor the code to keep the open-coded math idiom out.)

 For example, do not use ``count * size`` as an argument, as in::

--
2.25.1


^ permalink raw reply related	[relevance 7%]

* Re: [PATCH] docs: deprecated.rst: Clarify open-coded arithmetic with literals
  2021-08-27 17:12  7% [PATCH] docs: deprecated.rst: Clarify open-coded arithmetic with literals Len Baker
@ 2021-08-27 19:06  7% ` Joe Perches
  2021-08-27 19:22  7%   ` Gustavo A. R. Silva
  2021-08-29 14:32  7%   ` Len Baker
  0 siblings, 2 replies; 200+ results
From: Joe Perches @ 2021-08-27 19:06 UTC (permalink / raw)
  To: Len Baker, Jonathan Corbet, Kees Cook
  Cc: Gustavo A. R. Silva, linux-doc, linux-kernel, linux-hardening

On Fri, 2021-08-27 at 19:12 +0200, Len Baker wrote:
> Although using literals for size calculation in allocator arguments may
> be harmless due to compiler warnings in case of overflows, it is better
> to refactor the code to avoid the use of open-coded math idiom.
> 
> So, clarify the preferred way in these cases.
[]
> diff --git a/Documentation/process/deprecated.rst b/Documentation/process/deprecated.rst
[]
> @@ -60,7 +60,8 @@ smaller allocation being made than the caller was expecting. Using those
>  allocations could lead to linear overflows of heap memory and other
>  misbehaviors. (One exception to this is literal values where the compiler
>  can warn if they might overflow. Though using literals for arguments as
> -suggested below is also harmless.)
> +suggested below is also harmless. So, the preferred way in these cases is
> +to refactor the code to keep the open-coded math idiom out.)

wordsmithing trivia:

'keep <foo> out' is difficult to parse as 'keep' is generally a positive
word but its meaning is later reversed with out.

'avoid <foo>' maybe be better phrasing.



^ permalink raw reply	[relevance 7%]

* Re: [PATCH] docs: deprecated.rst: Clarify open-coded arithmetic with literals
  2021-08-27 19:06  7% ` Joe Perches
@ 2021-08-27 19:22  7%   ` Gustavo A. R. Silva
  2021-08-29 14:32  7%   ` Len Baker
  1 sibling, 0 replies; 200+ results
From: Gustavo A. R. Silva @ 2021-08-27 19:22 UTC (permalink / raw)
  To: Joe Perches, Len Baker, Jonathan Corbet, Kees Cook
  Cc: Gustavo A. R. Silva, linux-doc, linux-kernel, linux-hardening



On 8/27/21 14:06, Joe Perches wrote:
> On Fri, 2021-08-27 at 19:12 +0200, Len Baker wrote:
>> Although using literals for size calculation in allocator arguments may
>> be harmless due to compiler warnings in case of overflows, it is better
>> to refactor the code to avoid the use of open-coded math idiom.
>>
>> So, clarify the preferred way in these cases.
> []
>> diff --git a/Documentation/process/deprecated.rst b/Documentation/process/deprecated.rst
> []
>> @@ -60,7 +60,8 @@ smaller allocation being made than the caller was expecting. Using those
>>  allocations could lead to linear overflows of heap memory and other
>>  misbehaviors. (One exception to this is literal values where the compiler
>>  can warn if they might overflow. Though using literals for arguments as
>> -suggested below is also harmless.)
>> +suggested below is also harmless. So, the preferred way in these cases is
>> +to refactor the code to keep the open-coded math idiom out.)
> 
> wordsmithing trivia:
> 
> 'keep <foo> out' is difficult to parse as 'keep' is generally a positive
> word but its meaning is later reversed with out.
> 
> 'avoid <foo>' maybe be better phrasing.

+1

--
Gustavo

^ permalink raw reply	[relevance 7%]

* Re: [PATCH] docs: deprecated.rst: Clarify open-coded arithmetic with literals
  2021-08-27 19:06  7% ` Joe Perches
  2021-08-27 19:22  7%   ` Gustavo A. R. Silva
@ 2021-08-29 14:32  7%   ` Len Baker
  1 sibling, 0 replies; 200+ results
From: Len Baker @ 2021-08-29 14:32 UTC (permalink / raw)
  To: Joe Perches
  Cc: Len Baker, Jonathan Corbet, Kees Cook, Gustavo A. R. Silva,
	linux-doc, linux-kernel, linux-hardening

Hi,

On Fri, Aug 27, 2021 at 12:06:18PM -0700, Joe Perches wrote:
> On Fri, 2021-08-27 at 19:12 +0200, Len Baker wrote:
> > Although using literals for size calculation in allocator arguments may
> > be harmless due to compiler warnings in case of overflows, it is better
> > to refactor the code to avoid the use of open-coded math idiom.
> >
> > So, clarify the preferred way in these cases.
> []
> > diff --git a/Documentation/process/deprecated.rst b/Documentation/process/deprecated.rst
> []
> > @@ -60,7 +60,8 @@ smaller allocation being made than the caller was expecting. Using those
> >  allocations could lead to linear overflows of heap memory and other
> >  misbehaviors. (One exception to this is literal values where the compiler
> >  can warn if they might overflow. Though using literals for arguments as
> > -suggested below is also harmless.)
> > +suggested below is also harmless. So, the preferred way in these cases is
> > +to refactor the code to keep the open-coded math idiom out.)
>
> wordsmithing trivia:
>
> 'keep <foo> out' is difficult to parse as 'keep' is generally a positive
> word but its meaning is later reversed with out.
>
> 'avoid <foo>' maybe be better phrasing.
>
Understood. I will do this change and I will send a new version.
Thanks for the review.

Regards,
Len

^ permalink raw reply	[relevance 7%]

* [PATCH v2] docs: deprecated.rst: Clarify open-coded arithmetic with literals
@ 2021-08-29 14:47  7% Len Baker
  2021-09-14 21:07  7% ` Jonathan Corbet
  0 siblings, 1 reply; 200+ results
From: Len Baker @ 2021-08-29 14:47 UTC (permalink / raw)
  To: Jonathan Corbet, Kees Cook
  Cc: Len Baker, Gustavo A. R. Silva, Joe Perches, linux-doc,
	linux-kernel, linux-hardening

Although using literals for size calculation in allocator arguments may
be harmless due to compiler warnings in case of overflows, it is better
to refactor the code to avoid the use of open-coded math idiom.

So, clarify the preferred way in these cases.

Suggested-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Len Baker <len.baker@gmx.com>
---
Changelog v1 -> v2
 - Clarify the sentence by changing "keep <foo> out" with "avoid <foo>"
   (Joe Perches).

 Documentation/process/deprecated.rst | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/Documentation/process/deprecated.rst b/Documentation/process/deprecated.rst
index 9d83b8db8874..b5a8be914178 100644
--- a/Documentation/process/deprecated.rst
+++ b/Documentation/process/deprecated.rst
@@ -60,7 +60,8 @@ smaller allocation being made than the caller was expecting. Using those
 allocations could lead to linear overflows of heap memory and other
 misbehaviors. (One exception to this is literal values where the compiler
 can warn if they might overflow. Though using literals for arguments as
-suggested below is also harmless.)
+suggested below is also harmless. So, the preferred way in these cases is
+to refactor the code to avoid the open-coded math idiom.)

 For example, do not use ``count * size`` as an argument, as in::

--
2.25.1


^ permalink raw reply related	[relevance 7%]

* [GIT PULL] Networking for v5.15
@ 2021-08-31 20:37  1% Jakub Kicinski
  0 siblings, 0 replies; 200+ results
From: Jakub Kicinski @ 2021-08-31 20:37 UTC (permalink / raw)
  To: torvalds; +Cc: kuba, davem, netdev, linux-kernel, gregkh

Hi Linus!

No conflicts at the time of writing. There were conflicts with
char-misc but I believe Greg dropped the commits in question.

The following changes since commit 73367f05b25dbd064061aee780638564d15b01d1:

  Merge tag 'nfsd-5.14-1' of git://linux-nfs.org/~bfields/linux (2021-08-26 13:26:40 -0700)

are available in the Git repository at:

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

for you to fetch changes up to 29ce8f9701072fc221d9c38ad952de1a9578f95c:

  Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net (2021-08-31 09:06:04 -0700)

----------------------------------------------------------------
Core:

 - Enable memcg accounting for various networking objects.

BPF:

 - Introduce bpf timers.

 - Add perf link and opaque bpf_cookie which the program can read
   out again, to be used in libbpf-based USDT library.

 - Add bpf_task_pt_regs() helper to access user space pt_regs
   in kprobes, to help user space stack unwinding.

 - Add support for UNIX sockets for BPF sockmap.

 - Extend BPF iterator support for UNIX domain sockets.

 - Allow BPF TCP congestion control progs and bpf iterators to call
   bpf_setsockopt(), e.g. to switch to another congestion control
   algorithm.

Protocols:

 - Support IOAM Pre-allocated Trace with IPv6.

 - Support Management Component Transport Protocol.

 - bridge: multicast: add vlan support.

 - netfilter: add hooks for the SRv6 lightweight tunnel driver.

 - tcp:
    - enable mid-stream window clamping (by user space or BPF)
    - allow data-less, empty-cookie SYN with TFO_SERVER_COOKIE_NOT_REQD
    - more accurate DSACK processing for RACK-TLP

 - mptcp:
    - add full mesh path manager option
    - add partial support for MP_FAIL
    - improve use of backup subflows
    - optimize option processing

 - af_unix: add OOB notification support.

 - ipv6: add IFLA_INET6_RA_MTU to expose MTU value advertised by
         the router.

 - mac80211: Target Wake Time support in AP mode.

 - can: j1939: extend UAPI to notify about RX status.

Driver APIs:

 - Add page frag support in page pool API.

 - Many improvements to the DSA (distributed switch) APIs.

 - ethtool: extend IRQ coalesce uAPI with timer reset modes.

 - devlink: control which auxiliary devices are created.

 - Support CAN PHYs via the generic PHY subsystem.

 - Proper cross-chip support for tag_8021q.

 - Allow TX forwarding for the software bridge data path to be
   offloaded to capable devices.

Drivers:

 - veth: more flexible channels number configuration.

 - openvswitch: introduce per-cpu upcall dispatch.

 - Add internet mix (IMIX) mode to pktgen.

 - Transparently handle XDP operations in the bonding driver.

 - Add LiteETH network driver.

 - Renesas (ravb):
   - support Gigabit Ethernet IP

 - NXP Ethernet switch (sja1105)
   - fast aging support
   - support for "H" switch topologies
   - traffic termination for ports under VLAN-aware bridge

 - Intel 1G Ethernet
    - support getcrosststamp() with PCIe PTM (Precision Time
      Measurement) for better time sync
    - support Credit-Based Shaper (CBS) offload, enabling HW traffic
      prioritization and bandwidth reservation

 - Broadcom Ethernet (bnxt)
    - support pulse-per-second output
    - support larger Rx rings

 - Mellanox Ethernet (mlx5)
    - support ethtool RSS contexts and MQPRIO channel mode
    - support LAG offload with bridging
    - support devlink rate limit API
    - support packet sampling on tunnels

 - Huawei Ethernet (hns3):
    - basic devlink support
    - add extended IRQ coalescing support
    - report extended link state

 - Netronome Ethernet (nfp):
    - add conntrack offload support

 - Broadcom WiFi (brcmfmac):
    - add WPA3 Personal with FT to supported cipher suites
    - support 43752 SDIO device

 - Intel WiFi (iwlwifi):
    - support scanning hidden 6GHz networks
    - support for a new hardware family (Bz)

 - Xen pv driver:
    - harden netfront against malicious backends

 - Qualcomm mobile
    - ipa: refactor power management and enable automatic suspend
    - mhi: move MBIM to WWAN subsystem interfaces

Refactor:

 - Ambient BPF run context and cgroup storage cleanup.

 - Compat rework for ndo_ioctl.

Old code removal:

 - prism54 remove the obsoleted driver, deprecated by the p54 driver.

 - wan: remove sbni/granch driver.

Signed-off-by: Jakub Kicinski <kuba@kernel.org>

----------------------------------------------------------------
Aaron Ma (1):
      Bluetooth: btusb: Add support for Foxconn Mediatek Chip

Abhishek Naik (1):
      iwlwifi: skip first element in the WTAS ACPI table

Ahmad Fatoum (1):
      brcmfmac: pcie: fix oops on failure to resume and reprobe

Alan Maguire (10):
      libbpf: Allow specification of "kprobe/function+offset"
      libbpf: BTF dumper support for typed data
      selftests/bpf: Add ASSERT_STRNEQ() variant for test_progs
      selftests/bpf: Add dump type data tests to btf dump tests
      libbpf: Clarify/fix unaligned data issues for btf typed dump
      libbpf: Fix compilation errors on ppc64le for btf dump typed data
      libbpf: Btf typed dump does not need to allocate dump data
      libbpf: Avoid use of __int128 in typed dump display
      selftests/bpf: Add __int128-specific tests for typed data dump
      libbpf: Propagate errors when retrieving enum value for typed data display

Alex Elder (61):
      net: ipa: fix IPA v4.11 interconnect data
      dt-bindings: net: qcom,ipa: make imem interconnect optional
      arm64: dts: qcom: sc7280: add IPA information
      arm64: dts: qcom: sc7180: define ipa_fw_mem node
      net: ipa: fix ipa_cmd_table_valid()
      net: ipa: always validate filter and route tables
      net: ipa: kill the remaining conditional validation code
      net: ipa: use WARN_ON() rather than assertions
      net: ipa: enable inline checksum offload for IPA v4.5+
      net: ipa: kill ipa_modem_setup()
      net: ipa: configure memory regions early
      net: ipa: set up IPA interrupts earlier
      net: ipa: set up the microcontroller earlier
      net: ipa: introduce ipa_uc_clock()
      net: ipa: make IPA interrupt handler threaded only
      net: ipa: clear disabled IPA interrupt conditions
      net: ipa: get rid of some unneeded IPA interrupt code
      net: ipa: kill ipa_interrupt_process_all()
      net: ipa: get clock in ipa_probe()
      net: ipa: get another clock for ipa_setup()
      net: ipa: add clock reference for remoteproc SSR
      net: ipa: add a clock reference for netdev operations
      net: ipa: don't suspend endpoints if setup not complete
      Revert "Merge branch 'qcom-dts-updates'"
      net: ipa: use gsi->version for channel suspend/resume
      net: ipa: move version check for channel suspend/resume
      net: ipa: move some GSI setup functions
      net: ipa: have gsi_irq_setup() return an error code
      net: ipa: move gsi_irq_init() code into setup
      net: ipa: disable GSI interrupts while suspended
      net: ipa: fix IPA v4.9 interconnects
      net: ipa: don't suspend/resume modem if not up
      net: ipa: reorder netdev pointer assignments
      net: ipa: improve IPA clock error messages
      net: ipa: move IPA power operations to ipa_clock.c
      net: ipa: move ipa_suspend_handler()
      net: ipa: move IPA flags field
      net: ipa: have ipa_clock_get() return a value
      net: ipa: disable clock in suspend
      net: ipa: resume in ipa_clock_get()
      net: ipa: use runtime PM core
      net: ipa: get rid of extra clock reference
      net: ipa: kill IPA clock reference count
      net: ipa: kill ipa_clock_get_additional()
      net: ipa: always inline ipa_aggr_granularity_val()
      dt-bindings: net: qcom,ipa: make imem interconnect optional
      net: ipa: enable wakeup in ipa_power_setup()
      net: ipa: distinguish system from runtime suspend
      net: ipa: re-enable transmit in PM WQ context
      net: ipa: ensure hardware has power in ipa_start_xmit()
      net: ipa: don't stop TX on suspend
      net: ipa: don't hold clock reference while netdev open
      net: ipa: fix TX queue race
      net: ipa: don't use ipa_clock_get() in "ipa_main.c"
      net: ipa: don't use ipa_clock_get() in "ipa_smp2p.c"
      net: ipa: don't use ipa_clock_get() in "ipa_uc.c"
      net: ipa: don't use ipa_clock_get() in "ipa_modem.c"
      net: ipa: kill ipa_clock_get()
      net: ipa: use autosuspend
      net: ipa: rename ipa_clock_* symbols
      net: ipa: rename "ipa_clock.c"

Alexandra Winter (3):
      s390/qeth: Register switchdev event handler
      s390/qeth: Switchdev event handler
      s390/qeth: Update MACs of LEARNING_SYNC device

Alexei Starovoitov (27):
      Merge branch 'bpf: support input xdp_md context in BPF_PROG_TEST_RUN'
      Merge branch 'Generic XDP improvements'
      bpf: Sync tools/include/uapi/linux/bpf.h
      bpf: Prepare bpf_prog_put() to be called from irq context.
      bpf: Factor out bpf_spin_lock into helpers.
      bpf: Introduce bpf timers.
      bpf: Add map side support for bpf timers.
      bpf: Prevent pointer mismatch in bpf_timer_init.
      bpf: Remember BTF of inner maps.
      bpf: Relax verifier recursion check.
      bpf: Implement verifier support for validation of async callbacks.
      bpf: Teach stack depth check about async callbacks.
      selftests/bpf: Add bpf_timer test.
      selftests/bpf: Add a test with bpf_timer in inner map.
      Merge branch 'Add bpf_get_func_ip helper'
      Merge branch 'sockmap: add sockmap support for unix datagram socket'
      libbpf: Cleanup the layering between CORE and bpf_program.
      libbpf: Split bpf_core_apply_relo() into bpf_program independent helper.
      libbpf: Move CO-RE types into relo_core.h.
      libbpf: Split CO-RE logic into relo_core.c.
      Merge branch 'Refactor cgroup_bpf internals to use more specific attach_type'
      Merge branch 'selftests/bpf: minor fixups'
      Merge branch 'bpf: Allow bpf_get_netns_cookie in BPF_PROG_TYPE_SK_MSG'
      Merge branch 'Improve XDP samples usability and output'
      Merge branch 'bpf: Add bpf_task_pt_regs() helper'
      Merge branch 'selftests: xsk: various simplifications'
      Merge branch 'bpf: tcp: Allow bpf-tcp-cc to call bpf_(get|set)sockopt'

Alok Prasad (1):
      qed: Enable automatic recovery on error condition.

Amit Cohen (4):
      mlxsw: spectrum: Add infrastructure for parsing configuration
      mlxsw: Convert existing consumers to use new API for parsing configuration
      mlxsw: Remove old parsing depth infrastructure
      mlxsw: spectrum_router: Increase parsing depth for multipath hash

Andrey Ignatov (1):
      bpf: Fix possible out of bound write in narrow load handling

Andrii Nakryiko (33):
      bpf: Add ambient BPF runtime context stored in current
      Merge branch 'Add btf_custom_path in bpf_obj_open_opts'
      Merge branch 'libbpf: BTF dumper support for typed data'
      Merge branch 'libbpf: BTF typed dump cleanups'
      Merge branch 'libbpf: btf typed data dumping fixes (__int128 usage, error propagation)'
      Merge branch 'bpf: Allow bpf tcp iter to do bpf_(get|set)sockopt'
      Merge branch 'libbpf: Move CO-RE logic into separate file.'
      Merge branch 'libbpf: rename btf__get_from_id() and btf__load() APIs, support split BTF'
      Merge branch 'tools: bpftool: update, synchronise and validate types and options'
      bpf: Fix bpf_prog_test_run_xdp logic after incorrect merge resolution
      selftests/bpf: Rename reference_tracking BPF programs
      Merge branch 'samples/bpf: xdpsock: Minor enhancements'
      Merge branch 'bpf: Allow bpf_get_netns_cookie in BPF_PROG_TYPE_CGROUP_SOCKOPT'
      Merge branch 'BPF iterator for UNIX domain socket.'
      bpf: Refactor BPF_PROG_RUN into a function
      bpf: Refactor BPF_PROG_RUN_ARRAY family of macros into functions
      bpf: Refactor perf_event_set_bpf_prog() to use struct bpf_prog input
      bpf: Implement minimal BPF perf link
      bpf: Allow to specify user-provided bpf_cookie for BPF perf links
      bpf: Add bpf_get_attach_cookie() BPF helper to access bpf_cookie value
      libbpf: Re-build libbpf.so when libbpf.map changes
      libbpf: Remove unused bpf_link's destroy operation, but add dealloc
      libbpf: Use BPF perf link when supported by kernel
      libbpf: Add bpf_cookie support to bpf_link_create() API
      libbpf: Add bpf_cookie to perf_event, kprobe, uprobe, and tp attach APIs
      selftests/bpf: Test low-level perf BPF link API
      selftests/bpf: Extract uprobe-related helpers into trace_helpers.{c,h}
      selftests/bpf: Add bpf_cookie selftests for high-level APIs
      libbpf: Add uprobe ref counter offset support for USDT semaphores
      selftests/bpf: Add ref_ctr_offset selftests
      Merge branch 'sockmap: add sockmap support for unix stream socket'
      Merge branch 'selftests/bpf: Improve the usability of test_progs'
      Merge branch 'selftests/bpf: fix flaky send_signal test'

Andy Shevchenko (6):
      net: wwan: iosm: Switch to use module_pci_driver() macro
      can: mcp251xfd: mcp251xfd_probe(): try to get crystal clock rate from property
      can: mcp251xfd: Fix header block to clarify independence from OF
      Bluetooth: hci_bcm: Fix kernel doc comments
      wwan: core: Unshadow error code returned by ida_alloc_range()
      ray_cs: use %*ph to print small buffer

Angelo Dureghello (3):
      can: flexcan: add platform data header
      can: flexcan: add mcf5441x support
      can: flexcan: update Kconfig to enable coldfire

Angus Ainslie (2):
      Bluetooth: btbcm: add patch ram for bluetooth
      brcmfmac: add 43752 SDIO ids and initialization

Antoine Tenart (1):
      bonding: improve nl error msg when device can't be enslaved because of IFF_MASTER

Aravindhan Gunasekaran (1):
      igc: Add support for CBS offloading

Archie Pusaka (4):
      Bluetooth: btrtl: Set MSFT opcode for RTL8852
      Bluetooth: hci_h5: add WAKEUP_DISABLE flag
      Bluetooth: hci_h5: btrtl: Maintain flow control if wakeup is enabled
      Bluetooth: hci_h5: Add runtime suspend

Arend van Spriel (4):
      brcmfmac: use different error value for invalid ram base address
      brcmfmac: increase core revision column aligning core list
      brcmfmac: add xtlv support to firmware interface layer
      brcmfmac: support chipsets with different core enumeration space

Ariel Levkovich (1):
      net/mlx5: E-Switch, set flow source for send to uplink rule

Arnd Bergmann (53):
      bpf: Fix pointer cast warning
      compat: make linux/compat.h available everywhere
      ethtool: improve compat ioctl handling
      net: socket: rework SIOC?IFMAP ioctls
      net: socket: remove register_gifconf
      net: socket: simplify dev_ifconf handling
      net: socket: rework compat_ifreq_ioctl()
      net: split out SIOCDEVPRIVATE handling from dev_ioctl
      staging: rtlwifi: use siocdevprivate
      staging: wlan-ng: use siocdevprivate
      hostap: use ndo_siocdevprivate
      bridge: use ndo_siocdevprivate
      phonet: use siocdevprivate
      tulip: use ndo_siocdevprivate
      bonding: use siocdevprivate
      appletalk: use ndo_siocdevprivate
      hamachi: use ndo_siocdevprivate
      tehuti: use ndo_siocdevprivate
      eql: use ndo_siocdevprivate
      fddi: use ndo_siocdevprivate
      net: usb: use ndo_siocdevprivate
      slip/plip: use ndo_siocdevprivate
      qeth: use ndo_siocdevprivate
      cxgb3: use ndo_siocdevprivate
      hamradio: use ndo_siocdevprivate
      airo: use ndo_siocdevprivate
      ip_tunnel: use ndo_siocdevprivate
      hippi: use ndo_siocdevprivate
      sb1000: use ndo_siocdevprivate
      ppp: use ndo_siocdevprivate
      wan: use ndo_siocdevprivate
      wan: cosa: remove dead cosa_net_ioctl() function
      dev_ioctl: pass SIOCDEVPRIVATE data separately
      dev_ioctl: split out ndo_eth_ioctl
      net: split out ndo_siowandev ioctl
      net: socket: return changed ifreq from SIOCDEVPRIVATE
      net: bridge: move bridge ioctls out of .ndo_do_ioctl
      net: bonding: move ioctl handling to private ndo operation
      bcmgenet: remove call to netdev_boot_setup_check
      natsemi: sonic: stop calling netdev_boot_setup_check
      appletalk: ltpc: remove static probing
      3c509: stop calling netdev_boot_setup_check
      cs89x0: rework driver configuration
      m68k: remove legacy probing
      move netdev_boot_setup into Space.c
      make legacy ISA probe optional
      wan: remove stale Kconfig entries
      wan: remove sbni/granch driver
      wan: hostess_sv11: use module_init/module_exit helpers
      ethernet: isa: convert to module_init/module_exit
      ethernet: fix PTP_1588_CLOCK dependencies
      ixp4xx_eth: make ptp support a platform driver
      ixp4xx_eth: fix compile-testing

Aswath Govindraju (1):
      dt-bindings: net: can: Document power-domains property

Avraham Stern (4):
      iwlwifi: mvm: silently drop encrypted frames for unknown station
      iwlwifi: mvm: don't schedule the roc_done_wk if it is already running
      iwlwifi: mvm: add support for range request command version 13
      iwlwifi: mvm: add support for responder config command version 9

Benjamin Poirier (1):
      doc: Document unexpected tcp_l3mdev_accept=1 behavior

Biju Das (22):
      ravb: Use unsigned int for num_tx_desc variable in struct ravb_private
      ravb: Add struct ravb_hw_info to driver data
      ravb: Add aligned_tx to struct ravb_hw_info
      ravb: Add max_rx_len to struct ravb_hw_info
      ravb: Add stats_len to struct ravb_hw_info
      ravb: Add gstrings_stats and gstrings_size to struct ravb_hw_info
      ravb: Add net_features and net_hw_features to struct ravb_hw_info
      ravb: Add internal delay hw feature to struct ravb_hw_info
      ravb: Add tx_counters to struct ravb_hw_info
      ravb: Remove the macros NUM_TX_DESC_GEN[23]
      ravb: Add multi_irq to struct ravb_hw_info
      ravb: Add no_ptp_cfg_active to struct ravb_hw_info
      ravb: Add ptp_cfg_active to struct ravb_hw_info
      ravb: Factorise ravb_ring_free function
      ravb: Factorise ravb_ring_format function
      ravb: Factorise ravb_ring_init function
      ravb: Factorise ravb_rx function
      ravb: Factorise ravb_adjust_link function
      ravb: Factorise ravb_set_features
      ravb: Factorise ravb_dmac_init function
      ravb: Factorise ravb_emac_init function
      ravb: Add reset support

Bill Wendling (1):
      bnx2x: remove unused variable 'cur_data_offset'

Bjorn Andersson (1):
      wcn36xx: Allow firmware name to be overridden by DT

Bodong Wang (1):
      net/mlx5: DR, Reduce print level for FT chaining level check

Bongsu Jeon (8):
      nfc: virtual_ncidev: Use wait queue instead of polling
      selftests: nci: Remove the polling code to read a NCI frame
      selftests: nci: Fix the typo
      selftests: nci: Fix the code for next nlattr offset
      selftests: nci: Fix the wrong condition
      selftests: nci: Add the flags parameter for the send_cmd_mt_nla
      selftests: nci: Extract the start/stop discovery function
      selftests: nci: Add the NCI testcase reading T4T Tag

Brett Creeley (1):
      ice: Only lock to update netdev dev_addr

Cai Huoqing (10):
      net: bonding: bond_alb: Remove the dependency on ipx network layer
      net/mlx5: Fix typo in comments
      net/mlx5e: Make use of netdev_warn()
      net: Remove net/ipx.h and uapi/linux/ipx.h header files
      MAINTAINERS: Remove the ipx network layer info
      can: rcar: Kconfig: Add helper dependency on COMPILE_TEST
      net: ethernet: actions: Add helper dependency on COMPILE_TEST
      net: mdio-ipq4019: Make use of devm_platform_ioremap_resource()
      net: mdio: mscc-miim: Make use of the helper function devm_platform_ioremap_resource()
      net/mlxbf_gige: Make use of devm_platform_ioremap_resourcexxx()

Changbin Du (2):
      net: in_irq() cleanup
      s390/net: replace in_irq() with in_hardirq()

Chengfeng Ye (1):
      selftests/bpf: Fix potential unreleased lock

Chethan T N (1):
      Bluetooth: btusb: Enable MSFT extension for Intel next generation controllers

Chih-Kang Chang (1):
      mac80211: Fix insufficient headroom issue for AMSDU

Chin-Yen Lee (6):
      rtw88: adjust the log level for failure of tx report
      rtw88: 8822ce: set CLKREQ# signal to low during suspend
      rtw88: use read_poll_timeout instead of fixed sleep
      rtw88: refine the setting of rsvd pages for different firmware
      rtw88: wow: report wow reason through mac80211 api
      rtw88: wow: fix size access error of probe request

Chris Chiu (2):
      rtl8xxxu: disable interrupt_in transfer for 8188cu and 8192cu
      rtl8xxxu: Fix the handling of TX A-MPDU aggregation

Chris Mi (8):
      net/mlx5e: Move esw/sample to en/tc/sample
      net/mlx5e: Move sample attribute to flow attribute
      net/mlx5e: CT, Use xarray to manage fte ids
      net/mlx5e: Introduce post action infrastructure
      net/mlx5e: Refactor ct to use post action infrastructure
      net/mlx5e: TC, Remove CONFIG_NET_TC_SKB_EXT dependency when restoring tunnel
      net/mlx5e: TC, Restore tunnel info for sample offload
      net/mlx5e: TC, Support sample offload action for tunneled traffic

Christophe JAILLET (24):
      ath: switch from 'pci_' to 'dma_' API
      ath11k: Remove some duplicate code
      net: switchdev: Simplify 'mlxsw_sp_mc_write_mdb_entry()'
      cavium: switch from 'pci_' to 'dma_' API
      net: wwan: iosm: switch from 'pci_' to 'dma_' API
      net: atlantic: switch from 'pci_' to 'dma_' API
      net: broadcom: switch from 'pci_' to 'dma_' API
      net: chelsio: switch from 'pci_' to 'dma_' API
      net: ec_bhf: switch from 'pci_' to 'dma_' API
      net: jme: switch from 'pci_' to 'dma_' API
      forcedeth: switch from 'pci_' to 'dma_' API
      qtnfmac: switch from 'pci_' to 'dma_' API
      net: sunhme: Remove unused macros
      myri10ge: switch from 'pci_' to 'dma_' API
      vmxnet3: switch from 'pci_' to 'dma_' API
      net: 8139cp: switch from 'pci_' to 'dma_' API
      net/mellanox: switch from 'pci_' to 'dma_' API
      qlcnic: switch from 'pci_' to 'dma_' API
      hinic: switch from 'pci_' to 'dma_' API
      net: spider_net: switch from 'pci_' to 'dma_' API
      fddi: switch from 'pci_' to 'dma_' API
      niu: switch from 'pci_' to 'dma_' API
      intel: switch from 'pci_' to 'dma_' API
      net: pasemi: Remove usage of the deprecated "pci-dma-compat.h" API

Claudiu Beznea (3):
      wilc1000: use goto labels on error path
      wilc1000: dispose irq on failure path
      wilc1000: use devm_clk_get_optional()

Coco Li (2):
      selftests/net: GRO coalesce test
      selftests/net: toeplitz test

Colin Ian King (29):
      atm: idt77252: clean up trigraph warning on ??) string
      net: marvell: clean up trigraph warning on ??! string
      6lowpan: iphc: Fix an off-by-one check of array index
      bpf: Remove redundant intiialization of variable stype
      net: dsa: sja1105: remove redundant re-assignment of pointer table
      netdevsim: make array res_ids static const, makes object smaller
      net: phy: mscc: make some arrays static const, makes object smaller
      cxgb4: make the array match_all_mac static, makes object smaller
      net: marvell: make the array name static, makes object smaller
      qlcnic: make the array random_data static const, makes object smaller
      dpaa2-eth: make the array faf_bits static const, makes object smaller
      net: 3c509: make the array if_names static const, makes object smaller
      net/mlx4: make the array states static const, makes object smaller
      octeontx2-af: Fix spelling mistake "Makesure" -> "Make sure"
      mctp: remove duplicated assignment of pointer hdr
      Bluetooth: increase BTNAMSIZ to 21 chars to fix potential buffer overflow
      tulip: Remove deadcode on startup true condition
      bpf, tests: Fix spelling mistake "shoft" -> "shift"
      i40e: Fix spelling mistake "dissable" -> "disable"
      bpf: Remove redundant initialization of variable allow
      hinic: make array speeds static const, makes object smaller
      net: hns3: make array spec_opcode static const, makes object smaller
      net: ethernet: ti: cpsw: make array stpa static const, makes object smaller
      octeontx2-af: remove redudant second error check on variable err
      rtlwifi: rtl8192de: Remove redundant variable initializations
      rtlwifi: rtl8192de: make arrays static const, makes object smaller
      mwifiex: make arrays static const, makes object smaller
      brcmsmac: make array addr static const, makes object smaller
      rsi: make array fsm_state static const, makes object smaller

Cong Wang (14):
      sock_map: Relax config dependency to CONFIG_NET
      sock_map: Lift socket state restriction for datagram sockets
      af_unix: Implement ->read_sock() for sockmap
      af_unix: Set TCP_ESTABLISHED for datagram sockets too
      af_unix: Add a dummy ->close() for sockmap
      af_unix: Implement ->psock_update_sk_prot()
      af_unix: Implement unix_dgram_bpf_recvmsg()
      selftests/bpf: Factor out udp_socketpair()
      selftests/bpf: Factor out add_to_sockmap()
      selftests/bpf: Add a test case for unix sockmap
      selftests/bpf: Add test cases for redirection between udp and unix
      unix_bpf: Fix a potential deadlock in unix_dgram_bpf_recvmsg()
      net_sched: refactor TC action init API
      bpf, unix: Check socket type in unix_bpf_update_proto()

Corey Minyard (1):
      ipsec: Remove unneeded extra variable in esp4 esp_ssg_unref()

DENG Qingfang (7):
      net: dsa: mt7530: enable assisted learning on CPU port
      net: dsa: mt7530: use independent VLAN learning on VLAN-unaware bridges
      net: dsa: mt7530: set STP state on filter ID 1
      net: dsa: mt7530: always install FDB entries with IVL and FID 1
      net: dsa: mt7530: drop untagged frames on VLAN-aware ports without PVID
      net: dsa: mt7530: fix VLAN traffic leaks again
      net: dsa: mt7530: manually set up VLAN ID 0

Dan Carpenter (7):
      Bluetooth: sco: prevent information leak in sco_conn_defer_accept()
      vrf: fix NULL dereference in vrf_finish_output()
      mac80211: remove unnecessary NULL check in ieee80211_register_hw()
      rsi: fix error code in rsi_load_9116_firmware()
      rsi: fix an error code in rsi_probe()
      ath6kl: wmi: fix an error code in ath6kl_wmi_sync_point()
      net: qrtr: make checks in qrtr_endpoint_post() stricter

Daniel Borkmann (3):
      Merge branch 'bpf-timers'
      Merge branch 'bpf-perf-link'
      bpf: Undo off-by-one in interpreter tail call count limit

Daniel Xu (6):
      bpf: Add BTF_ID_LIST_GLOBAL_SINGLE macro
      bpf: Consolidate task_struct BTF_ID declarations
      bpf: Extend bpf_base_func_proto helpers with bpf_get_current_task_btf()
      bpf: Add bpf_task_pt_regs() helper
      bpf: selftests: Add bpf_task_pt_regs() selftest
      bpf: Fix bpf-next builds without CONFIG_BPF_EVENTS

Dario Binacchi (5):
      dt-bindings: net: can: c_can: convert to json-schema
      can: c_can: remove struct c_can_priv::priv field
      can: c_can: exit c_can_do_tx() early if no frames have been sent
      can: c_can: support tx ring algorithm
      can: c_can: cache frames to operate as a true FIFO

Dave Marchevsky (1):
      bpf: Migrate cgroup_bpf to internal cgroup_bpf_attach_type enum

David Ahern (1):
      ipv4: Fix refcount warning for new fib_info

David Mosberger-Tang (1):
      wilc1000: Convert module-global "isinit" to device-specific variable

David S. Miller (149):
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next
      Merge branch '1GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/t nguy/next-queue
      Merge branch 'vmxnet3-version-6'
      Merge branch 'bridge-vlan-multicast'
      Merge branch 'veth-flexible-channel-numbers'
      Merge branch '40GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/next-queue
      Merge branch 'bridge-vlan-multicast'
      Merge branch 'veth-flexible-channel-numbers'
      Merge branch 's390-next'
      Merge branch 'tag_8021q-cross-chip'
      Merge branch 'fdb-fanout'
      Merge branch 'qcom-dts-updates'
      Merge branch '1GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/next-queue
      Merge branch 'ipv6-ioam'
      Merge branch 'bridge-port-offload'
      Merge branch 'nfp-flower-ct-offload'
      Merge branch 'net-remove-compat-alloc-user-space'
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
      Merge branch 'bridge-tx-fwd'
      Merge branch '1GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/next-queue
      Merge branch 'nfc-const'
      Merge branch 'hns3-devlink'
      Merge tag 'linux-can-next-for-5.15-20210725' of git://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can-next
      Merge tag 'mlx5-updates-2021-07-24' of git://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux
      Merge branch 'sja1105-bridge-port-traffic-termination'
      Merge branch 'ipa-kill-validation'
      Merge branch 'ipa-clock'
      Merge branch 'ovs-upcall-issues'
      Merge branch 'tcp-rack'
      Merge branch 'ndo_ioctl-rework'
      Merge branch 'ionic-next'
      Merge branch 'ipa-interrupts'
      Merge branch 'ipa-clock-refs'
      Merge branch 'devlink-register'
      Merge branch 'fec-next'
      Merge branch 'bnxt_en-ptp'
      Merge branch 'switchdev-notifiers'
      Merge branch 'skb-gro-optimize'
      Merge branch 'nfc-const'
      Merge branch 'mctp'
      Merge branch 'sja110-vlan-fixes'
      Merge branch 'dpaa2-switch-add-mirroring-support'
      Merge branch 'octeon-drr-config'
      Merge tag 'mlx5-updates-2021-08-02' of git://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux
      Merge branch 'skb_expand_head'
      Merge branch 'bnxt_en-rx-ring'
      Merge branch 'ethtool-runtime-pm'
      Merge branch 'Space-cleanup'
      Merge branch 'dpaa2-switch-next'
      Merge branch 'queues'
      Merge branch 'mhi-mbim'
      Merge branch 'ipa-pm-irqs'
      Merge branch 'm7530-sw-fallback'
      Merge tag 'linux-can-next-for-5.15-20210804' of git://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can-next
      Merge branch 'sja1105-H'
      Merge branch 'ipa-runtime-pm'
      Merge branch 'bridge-ioctl-fixes'
      wwan: mhi: Fix build.
      Merge branch 'GRO-Toeplitz-selftests'
      Revert "wwan: mhi: Fix build."
      Merge branch 'cpsw-emac-skb_put_padto'
      Merge branch 'ptp-ocp-fixes'
      Merge branch 'dsa-cpu-flood'
      Merge branch 's390-qeth'
      Merge branch 'sja1105-fast-ageing'
      Merge branch 'dsa-fast-ageing'
      Merge branch 'iucv-next'
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf-next
      Merge branch 'ipa-runtime-pm'
      Merge branch 'bridge-global-mcast'
      Merge branch 'devlink-aux-devices'
      Merge branch 'dsa-tagger-helpers'
      Merge branch 'pktgen-imix'
      Merge branch 'dsa-cross-chip-notifiers'
      Merge tag 'mlx5-updates-2021-08-11' of git://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux
      Merge branch 'mptcp-improve-backup-subflows'
      Merge branch 'devlink-cleanup-for-delay-event'
      Merge branch 'bridgge-mcast'
      Merge branch 'iupa-last-things-before-pm-conversion'
      Merge branch 'ipq-mdio'
      Merge branch 'pktgen-samples'
      Merge branch 'ocelot-phylink'
      Merge branch 'stmmac-per-queue-stats'
      Merge branch 'bridge-mcast-fixes'
      Merge tag 'mlx5-updates-2021-08-16' of git://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux
      Merge branch 'octeonx2-mcam-management-rework'
      Merge branch 'bridge-vlan-fixes'
      Merge branch 'mptcp-mesh-path-manager'
      Merge branch 'nci-ext'
      Merge branch 'ravb-gbit'
      Merge branch 'indirect-qdisc-order'
      Merge tag 'batadv-next-pullrequest-20210819' of git://git.open-mesh.org/linux-merge
      Merge tag 'for-net-next-2021-08-19' of git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth-next
      Merge tag 'mlx5-updates-2021-08-19' of git://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux
      Merge tag 'batadv-next-pullrequest-20210820' of git://git.open-mesh.org/linux-merge
      Merge branch 'sparx5-dma'
      Merge branch 'gmii2rgmii-loopback'
      Merge branch 'dpaa2-switch-phylikn-fixes'
      Merge branch 'ocelot-phylink-fixes'
      Merge branch 'ocelot-vlan'
      Merge branch 'ipa-kill-off-ipa_clock_get'
      Merge branch 'bridge-vlan'
      Merge branch 'ipa-autosuspend'
      Merge branch 'dsa-docs'
      Merge branch 'octeontx2-misc-fixes'
      Merge branch 'mlxsw-refactor-parser'
      Revert "cxgb4: Search VPD with pci_vpd_find_ro_info_keyword()"
      Revert "bnxt: Search VPD with pci_vpd_find_ro_info_keyword()"
      Revert "bnxt: Read VPD with pci_vpd_alloc()"
      Revert "bnx2x: Search VPD with pci_vpd_find_ro_info_keyword()"
      Revert "bnxt: Search VPD with pci_vpd_find_ro_info_keyword()"
      Revert "bnx2: Search VPD with pci_vpd_find_ro_info_keyword()"
      Revert "Revert "cxgb4: Search VPD with pci_vpd_find_ro_info_keyword()""
      Revert "bnx2x: Read VPD with pci_vpd_alloc()"
      Revert "cxgb4: Validate VPD checksum with pci_vpd_check_csum()"
      Revert "sfc: falcon: Search VPD with pci_vpd_find_ro_info_keyword()"
      Revert "sfc: falcon: Read VPD with pci_vpd_alloc()"
      Merge tag 'wireless-drivers-next-2021-08-22' of git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-next
      Merge branch 'mptcp-refactor'
      Merge branch 'dsa-sw-bridging'
      Merge branch 'xen-harden-netfront'
      Merge branch 'lan7800-improvements'
      Merge branch '1GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/next-queue
      Merge branch 'mptcp-next'
      Merge branch 'mana-EQ-sharing'
      Merge branch 'dsa-sja1105-vlan-tags'
      Merge branch 'ravb-gbit-refactor'
      Merge tag 'linux-can-next-for-5.15-20210825' of git://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can-next
      Merge branch 'octeontx2-traffic-shaping'
      Merge branch 'pktgen-samples-next'
      Merge branch 'ionic-next'
      Merge tag 'mac80211-next-for-net-next-2021-08-26' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next
      Merge branch 'LiteETH-driver'
      Merge tag 'mlx5-fixes-2021-08-26' of git://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux
      Merge branch 'mptcp-Optimize-received-options-handling'
      Merge tag 'mlx5-updates-2021-08-26' of git://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux
      Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/klassert/ ipsec-next
      Merge branch 'hns3-cleanups'
      Merge branch 'hns3-next'
      Merge branch 'ionic-queue-mgmt'
      Merge branch '100GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/net-queue
      Merge branch '1GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/next- queue
      Merge tag 'wireless-drivers-next-2021-08-29' of git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-next
      Merge branch 'bnxt_en-fw-messages'
      Merge branch 'hns3-cleanups'
      Merge branch 'IXP46x-PTP-Timer'
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf-next
      Merge branch 'inet-exceptions-less-predictable'
      Merge branch 'octeon-npc-fixes'

Davide Caratti (1):
      net/sched: store the last executed chain also for clsact egress

Desmond Cheong Zhi Xi (7):
      Bluetooth: skip invalid hci_sync_conn_complete_evt
      Bluetooth: schedule SCO timeouts with delayed_work
      Bluetooth: avoid circular locks in sco_sock_connect
      Bluetooth: switch to lock_sock in SCO
      Bluetooth: serialize calls to sco_sock_{set,clear}_timer
      Bluetooth: switch to lock_sock in RFCOMM
      Bluetooth: fix repeated calls to sco_sock_kill

Di Zhu (1):
      ipvlan: Add handling of NETDEV_UP events

Dima Chumak (1):
      net/mlx5: Lag, fix multipath lag activation

Dmytro Linkin (7):
      net/mlx5: E-switch, Move QoS related code to dedicated file
      net/mlx5: E-switch, Enable devlink port tx_{share|max} rate control
      net/mlx5: E-switch, Introduce rate limiting groups API
      net/mlx5: E-switch, Allow setting share/max tx rate limits of rate groups
      net/mlx5: E-switch, Allow to add vports to rate groups
      net/mlx5: E-switch, Add QoS tracepoints
      net/mlx5e: Use correct eswitch for stack devices with lag

Dongliang Mu (2):
      usb: hso: fix error handling code of hso_create_net_device
      usb: hso: remove the bailout parameter

Dror Moshe (1):
      iwlwifi: move get pnvm file name to a separate function

Dust Li (1):
      selftests/net: remove min gso test in packet_snd

Edwin Peer (11):
      bnxt_en: remove DMA mapping for KONG response
      bnxt_en: Refactor the HWRM_VER_GET firmware calls
      bnxt_en: move HWRM API implementation into separate file
      bnxt_en: introduce new firmware message API based on DMA pools
      bnxt_en: discard out of sequence HWRM responses
      bnxt_en: add HWRM request assignment API
      bnxt_en: add support for HWRM request slices
      bnxt_en: use link_lock instead of hwrm_cmd_lock to protect link_info
      bnxt_en: update all firmware calls to use the new APIs
      bnxt_en: remove legacy HWRM interface
      bnxt_en: support multiple HWRM commands in flight

Eli Cohen (2):
      net/core: Remove unused field from struct flow_indr_dev
      net: Fix offloading indirect devices dependency on qdisc order creation

Emmanuel Grumbach (1):
      nl80211: vendor-cmd: add Intel vendor commands for iwlmei usage

Eran Ben Elisha (1):
      net/mlx5: Fix variable type to match 64bit

Eric Dumazet (9):
      net/tcp_fastopen: remove tcp_fastopen_ctx_lock
      tcp: avoid indirect call in tcp_new_space()
      tcp: tweak len/truesize ratio for coalesce candidates
      ipv6: exthdrs: get rid of indirect calls in ip6_parse_tlv()
      ipv6: make exception cache less predictible
      ipv4: make exception cache less predictible
      af_unix: fix potential NULL deref in unix_dgram_connect()
      ipv4: fix endianness issue in inet_rtm_getroute_build_skb()
      fou: remove sparse errors

Evgeniy Litvinenko (2):
      libbpf: Add bpf_map__pin_path function
      selftests/bpf: Document vmtest.sh dependencies

Fabio Estevam (1):
      dt-bindings: net: fec: Fix indentation

Faiz Abbas (2):
      dt-bindings: net: can: Document transceiver implementation as phy
      can: m_can: Add support for transceiver as phy

Florian Westphal (13):
      netfilter: ipt_CLUSTERIP: only add arp mangle hook when required
      netfilter: ipt_CLUSTERIP: use clusterip_net to store pernet warning
      netfilter: remove xt pernet data
      netfilter: ebtables: do not hook tables by default
      netfilter: ctnetlink: add and use a helper for mark parsing
      netfilter: ctnetlink: allow to filter dump by status bits
      netfilter: x_tables: never register tables by default
      netfilter: nf_queue: move hookfn registration out of struct net
      netfilter: ecache: remove one indent level
      netfilter: ecache: remove another indent level
      netfilter: ecache: add common helper for nf_conntrack_eventmask_report
      netfilter: ecache: prepare for event notifier merge
      netfilter: ecache: remove nf_exp_event_notifier structure

Forest Crossman (1):
      Bluetooth: btusb: Add support for LG LGSBWAC92/TWCM-K505D

Fugang Duan (3):
      net: fec: add imx8mq and imx8qm new versions support
      net: fec: add eee mode tx lpi support
      net: fec: add MAC internal delayed clock feature support

Geert Uytterhoeven (1):
      ravb: Remove checks for unsupported internal delay modes

Geetha sowjanya (6):
      octeontx2-af: Handle return value in block reset.
      octeontx2-af: Use DMA_ATTR_FORCE_CONTIGUOUS attribute in DMA alloc
      octeontx2-af: Check capability flag while freeing ipolicer memory
      octeontx2-af: cn10k: Use FLIT0 register instead of FLIT1
      octeontx2-af: cn10k: Set cache lines for NPA batch alloc
      octeontx2-af: Use NDC TX for transmit packet data

Geliang Tang (11):
      mptcp: drop flags and ifindex arguments
      mptcp: remote addresses fullmesh
      mptcp: local addresses fullmesh
      selftests: mptcp: set and print the fullmesh flag
      selftests: mptcp: add fullmesh testcases
      selftests: mptcp: delete uncontinuous removing ids
      mptcp: MP_FAIL suboption sending
      mptcp: MP_FAIL suboption receiving
      mptcp: send out MP_FAIL when data checksum fails
      mptcp: add the mibs for MP_FAIL
      selftests: mptcp: add MP_FAIL mibs check

George Cherian (1):
      octeontx2-af: Add free rsrc count mbox msg

Gerhard Engleder (3):
      net: phy: Support set_loopback override
      net: phy: Uniform PHY driver access
      net: phy: gmii2rgmii: Support PHY loopback

Gilad Naaman (1):
      net-next: When a bond have a massive amount of VLANs with IPv6 addresses, performance of changing link state, attaching a VRF, changing an IPv6 address, etc. go down dramtically.

Grant Seltzer (1):
      libbpf: Rename libbpf documentation index file

Gregory Greenman (2):
      iwlwifi: mvm: support version 11 of wowlan statuses notification
      iwlwifi: mvm: introduce iwl_stored_beacon_notif_v3

Grygorii Strashko (5):
      net: ethernet: ti: cpsw: switch to use skb_put_padto()
      net: ethernet: ti: davinci_emac: switch to use skb_put_padto()
      net: ethernet: ti: davinci_cpdma: drop frame padding
      net: ethernet: ti: am65-cpsw: use napi_complete_done() in TX completion
      net: ethernet: ti: davinci_cpdma: revert "drop frame padding"

Grzegorz Siwik (1):
      igb: Add counter to i21x doublecheck

Guangbin Huang (11):
      docs: ethtool: Add two link extended substates of bad signal integrity
      ethtool: add two link extended substates of bad signal integrity
      net: hns3: add header file hns3_ethtoo.h
      net: hns3: add support ethtool extended link state
      net: hns3: add macros for mac speeds of firmware command
      net: hns3: refactor function hclge_parse_capability()
      net: hns3: refactor function hclgevf_parse_capability()
      net: hns3: add new function hclge_get_speed_bit()
      net: hns3: don't config TM DWRR twice when set ETS
      net: hns3: reconstruct function hclge_ets_validate()
      net: hns3: refine function hclge_dbg_dump_tm_pri()

Guojia Liao (1):
      net: hns3: clean up a type mismatch warning

Gustavo A. R. Silva (8):
      ipv4: ip_output.c: Fix out-of-bounds warning in ip_copy_addrs()
      flow_dissector: Fix out-of-bounds warnings
      net/ipv4: Replace one-element array with flexible-array member
      net/ipv4: Revert use of struct_size() helper
      net/ipv4/ipv6: Replace one-element arraya with flexible-array members
      net/ipv4/igmp: Use struct_size() helper
      net/ipv6/mcast: Use struct_size() helper
      mwifiex: usb: Replace one-element array with flexible-array member

Haimin Zhang (1):
      fix array-index-out-of-bounds in taprio_change

Haiyang Zhang (3):
      net: mana: Move NAPI from EQ to CQ
      net: mana: Add support for EQ sharing
      net: mana: Add WARN_ON_ONCE in case of CQE read overflow

Haiyue Wang (1):
      gve: fix the wrong AdminQ buffer overflow check

Hangbin Liu (1):
      bonding: add new option lacp_active

Hans de Goede (1):
      Bluetooth: hci_h5: Disable the hci_suspend_notifier for btrtl devices

Hao Chen (11):
      devlink: add documentation for hns3 driver
      net: hns3: add devlink reload support for PF
      net: hns3: add devlink reload support for VF
      net: hns3: uniform type of function parameter cmd
      net: hns3: remove unnecessary "static" of local variables in function
      net: hns3: add required space in comment
      net: hns3: modify a print format of hns3_dbg_queue_map()
      net: hnss3: use max() to simplify code
      net: hns3: uniform parameter name of hclge_ptp_clean_tx_hwts()
      net: hns3: add some required spaces
      net: hns3: remove unnecessary spaces

Hao Luo (1):
      libbpf: Support weak typed ksyms.

Hari Prasath (2):
      net: macb: Add PTP support for SAMA5D29
      dt-bindings: net: macb: add documentation for sama5d29 ethernet interface

Hariprasad Kelam (2):
      octeontx2-af: cn10K: Get NPC counters value
      octeontx2-pf: Don't mask out supported link modes

Harman Kalra (2):
      octeontx2-af: nix and lbk in loop mode in 98xx
      octeontx2-af: cn10K: support for sched lmtst and other features

He Fengqing (1):
      bpf: Fix potential memleak and UAF in the verifier.

Heiko Carstens (1):
      net/iucv: get rid of register asm usage

Heiner Kallweit (20):
      ethtool: runtime-resume netdev parent before ethtool ioctl ops
      ethtool: move implementation of ethnl_ops_begin/complete to netlink.c
      ethtool: move netif_device_present check from ethnl_parse_header_dev_get to ethnl_ops_begin
      ethtool: runtime-resume netdev parent in ethnl_ops_begin
      ethtool: return error from ethnl_ops_begin if dev is NULL
      r8169: rename rtl_csi_access_enable to rtl_set_aspm_entry_latency
      sfc: falcon: Read VPD with pci_vpd_alloc()
      sfc: falcon: Search VPD with pci_vpd_find_ro_info_keyword()
      bnx2: Search VPD with pci_vpd_find_ro_info_keyword()
      bnx2: Replace open-coded version with swab32s()
      bnx2x: Read VPD with pci_vpd_alloc()
      bnx2x: Search VPD with pci_vpd_find_ro_info_keyword()
      bnxt: Read VPD with pci_vpd_alloc()
      bnxt: Search VPD with pci_vpd_find_ro_info_keyword()
      cxgb4: Validate VPD checksum with pci_vpd_check_csum()
      cxgb4: Remove unused vpd_param member ec
      cxgb4: Search VPD with pci_vpd_find_ro_info_keyword()
      cxgb4: improve printing NIC information
      r8169: enable ASPM L0s state
      r8169: add rtl_enable_exit_l1

Hengqi Chen (3):
      tools/resolve_btfids: Emit warnings and patch zero id for missing symbols
      libbpf: Add btf__load_vmlinux_btf/btf__load_module_btf
      selftests/bpf: Test btf__load_vmlinux_btf/btf__load_module_btf APIs

Horatiu Vultur (1):
      net: mscc: ocelot: be able to reuse a devlink_port after teardown

Hu Haowen (1):
      Documentation: networking: add ioam6-sysctl into index

Huazhong Tan (1):
      net: hns3: add hns3_state_init() to do state initialization

Ian Mackinnon (1):
      Bluetooth: btusb: Load Broadcom firmware for Dell device 413c:8197

Ilan Peer (5):
      iwlwifi: mvm: Do not use full SSIDs in 6GHz scan
      iwlwifi: mvm: Add support for hidden network scan on 6GHz band
      iwlwifi: mvm: Fix umac scan request probe parameters
      iwlwifi: mvm: Refactor setting of SSIDs for 6GHz scan
      iwlwifi: mvm: Fix scan channel flags settings

Ilya Leoshkevich (1):
      selftests/bpf: Fix test_core_autosize on big-endian machines

Ioana Ciornei (18):
      docs: networking: dpaa2: add documentation for the switch driver
      dpaa2-switch: rename dpaa2_switch_tc_parse_action to specify the ACL
      dpaa2-switch: rename dpaa2_switch_acl_tbl into filter_block
      dpaa2-switch: reorganize dpaa2_switch_cls_flower_replace
      dpaa2-switch: reorganize dpaa2_switch_cls_matchall_replace
      dpaa2-switch: add API for setting up mirroring
      dpaa2-switch: add support for port mirroring
      dpaa2-switch: add VLAN based mirroring
      dpaa2-switch: offload shared block mirror filters when binding to a port
      docs: networking: dpaa2: document mirroring support on the switch
      dpaa2-switch: request all interrupts sources on the DPSW
      dpaa2-switch: use the port index in the IRQ handler
      dpaa2-switch: do not enable the DPSW at probe time
      dpaa2-switch: no need to check link state right after ndo_open
      bus: fsl-mc: extend fsl_mc_get_endpoint() to pass interface ID
      dpaa2-switch: integrate the MAC endpoint support
      dpaa2-switch: add a prefix to HW ethtool stats
      dpaa2-switch: export MAC statistics in ethtool

Ismael Ferreras Morezuelas (1):
      Bluetooth: btusb: Make the CSR clone chip force-suspend workaround more generic

Ivan Bornyakov (1):
      net: phy: marvell: add SFP support for 88E1510

Jacob Keller (4):
      ice: fix Tx queue iteration for Tx timestamp enablement
      ice: remove dead code for allocating pin_config
      ice: add lock around Tx timestamp tracker flush
      ice: restart periodic outputs around time changes

Jakub Kicinski (28):
      Merge branch 'nfc-constify-pointed-data-missed-part'
      Merge branch 'clean-devlink-net-namespace-operations'
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
      Merge https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next
      virtio-net: realign page_to_skb() after merges
      net: add netif_set_real_num_queues() for device reconfig
      nfp: use netif_set_real_num_queues()
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
      Merge branch 'add-frag-page-support-in-page-pool'
      Merge https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next
      Merge branch 'mlx5-next' of git://git.kernel.org/pub/scm/linux/kernel/git/mellanox/linux
      Merge branch 'bonding-cleanup-header-file-and-error-msgs'
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
      Merge branch 'kconfig-symbol-clean-up-on-net'
      Merge branch 'net-hns3-add-support-ethtool-extended-link-state'
      Merge branch 'ptp-ocp-minor-updates-and-fixes'
      Merge branch '40GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/next-queue
      Merge tag 'linux-can-next-for-5.15-20210819' of git://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can-next
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
      Merge tag 'mac80211-next-for-net-next-2021-08-20' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next
      netdevice: move xdp_rxq within netdev_rx_queue
      Merge branch 'ethtool-extend-coalesce-uapi'
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
      bnxt: count packets discarded because of netpoll
      bnxt: count discards due to memory allocation errors
      Merge branch 'bnxt-add-rx-discards-stats-for-oom-and-netpool'
      Merge https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net

Jason Wang (5):
      net: ixp4xx_hss: use dma_pool_zalloc
      net: qed: remove unneeded return variables
      libbpf: Fix comment typo
      net/mlx4: Use ARRAY_SIZE to get an array's size
      dpaa2-eth: Replace strlcpy with strscpy

Jeremy Kerr (11):
      mctp: Add MCTP base
      mctp: Add base socket/protocol definitions
      mctp: Add base packet definitions
      mctp: Add sockaddr_mctp to uapi
      mctp: Add initial driver infrastructure
      mctp: Add device handling and netlink interface
      mctp: Add initial routing framework
      mctp: Populate socket implementation
      mctp: Implement message fragmentation & reassembly
      mctp: Add MCTP overview document
      mctp: Specify route types, require rtm_type in RTM_*ROUTE messages

Jerin Jacob (2):
      octeontx2-af: Enhance mailbox trace entry
      octeontx2-af: Allow to configure flow tag LSB byte as RSS adder

Jesper Dangaard Brouer (1):
      samples/bpf: xdp_redirect_cpu_user: Cpumap qsize set larger default

Jian Shen (1):
      net: hns3: refine function hns3_set_default_feature()

Jiang Wang (6):
      af_unix: Add read_sock for stream socket types
      af_unix: Add unix_stream_proto for sockmap
      selftest/bpf: Add tests for sockmap with unix stream type.
      selftest/bpf: Change udp to inet in some function names
      selftest/bpf: Add new tests in sockmap for unix stream to tcp.
      af_unix: Fix NULL pointer bug in unix_shutdown

Jiapeng Chong (1):
      net/mlx5: Fix missing return value in mlx5_devlink_eswitch_inline_mode_set()

Jiaran Zhang (1):
      net: hns3: initialize each member of structure array on a separate line

Jing Yangyang (1):
      ssb: fix boolreturn.cocci warning

Jiri Olsa (10):
      bpf, x86: Store caller's ip in trampoline stack
      bpf: Enable BPF_TRAMP_F_IP_ARG for trampolines with call_get_func_ip
      bpf: Add bpf_get_func_ip helper for tracing programs
      bpf: Add bpf_get_func_ip helper for kprobe programs
      selftests/bpf: Add test for bpf_get_func_ip helper
      libbpf: Add bpf_program__attach_kprobe_opts function
      selftests/bpf: Add test for bpf_get_func_ip in kprobe+offset probe
      libbpf: Fix func leak in attach_kprobe
      libbpf: Allow decimal offset for kprobes
      libbpf: Export bpf_program__attach_kprobe_opts function

Joakim Zhang (15):
      dt-bindings: net: fec: convert fsl,*fec bindings to yaml
      ARM: dts: imx35: correct node name for FEC
      ARM: dts: imx7-mba7: remove un-used "phy-reset-delay" property
      dt-bindings: net: snps,dwmac: add missing DWMAC IP version
      dt-bindings: net: imx-dwmac: convert imx-dwmac bindings to yaml
      arm64: dts: imx8mp: change interrupt order per dt-binding
      dt-bindings: net: fsl,fec: improve the binding a bit
      ARM: dts: imx6qdl: move phy properties into phy device node
      dt-bindings: net: fsl,fec: update compatible items
      dt-bindings: net: fsl,fec: add RGMII internal clock delay
      arm64: dts: imx8m: add "fsl,imx8mq-fec" compatible string for FEC
      arm64: dts: imx8qxp: add "fsl,imx8qm-fec" compatible string for FEC
      net: fec: fix MAC internal delay doesn't work
      net: fec: fix build error for ARCH m68k
      net: fec: add WoL support for i.MX8MQ

Joel Stanley (2):
      dt-bindings: net: Add bindings for LiteETH
      net: Add driver for LiteX's LiteETH network interface

Johan Almbladh (18):
      bpf/tests: Fix copy-and-paste error in double word test
      bpf/tests: Do not PASS tests without actually testing the result
      bpf: Fix off-by-one in tail call count limiting
      bpf, tests: Add BPF_JMP32 test cases
      bpf, tests: Add BPF_MOV tests for zero and sign extension
      bpf, tests: Fix typos in test case descriptions
      bpf, tests: Add more tests of ALU32 and ALU64 bitwise operations
      bpf, tests: Add more ALU32 tests for BPF_LSH/RSH/ARSH
      bpf, tests: Add more BPF_LSH/RSH/ARSH tests for ALU64
      bpf, tests: Add more ALU64 BPF_MUL tests
      bpf, tests: Add tests for ALU operations implemented with function calls
      bpf, tests: Add word-order tests for load/store of double words
      bpf, tests: Add branch conversion JIT test
      bpf, tests: Add test for 32-bit context pointer argument passing
      bpf, tests: Add tests for atomic operations
      bpf, tests: Add tests for BPF_CMPXCHG
      bpf, tests: Add tail call test suite
      mac80211: Fix monitor MTU limit so that A-MSDUs get through

Johannes Berg (36):
      mac80211: include <linux/rbtree.h>
      cfg80211: fix BSS color notify trace enum confusion
      iwlwifi: nvm: enable IEEE80211_HE_PHY_CAP10_HE_MU_M1RU_MAX_LTF
      iwlwifi: mvm: avoid FW restart while shutting down
      iwlwifi: pcie: optimise struct iwl_rx_mem_buffer layout
      iwlwifi: pcie: free RBs during configure
      iwlwifi: prepare for synchronous error dumps
      iwlwifi: pcie: dump error on FW reset handshake failures
      iwlwifi: mvm: set replay counter on key install
      iwlwifi: mvm: restrict FW SMPS request
      iwlwifi: mvm: avoid static queue number aliasing
      iwlwifi: mvm: clean up number of HW queues
      iwlwifi: mvm: treat MMPDUs in iwl_mvm_mac_tx() as bcast
      iwlwifi: split off Bz devices into their own family
      iwlwifi: give Bz devices their own name
      iwlwifi: read MAC address from correct place on Bz
      iwlwifi: pcie: implement Bz device startup
      iwlwifi: implement Bz NMI behaviour
      iwlwifi: pcie: implement Bz reset flow
      iwlwifi: mvm: support new station key API
      iwlwifi: mvm: simplify __iwl_mvm_set_sta_key()
      iwlwifi: mvm: d3: separate TKIP data from key iteration
      iwlwifi: mvm: d3: remove fixed cmd_flags argument
      iwlwifi: mvm: d3: refactor TSC/RSC configuration
      iwlwifi: mvm: d3: add separate key iteration for GTK type
      iwlwifi: mvm: d3: make key reprogramming iteration optional
      iwlwifi: mvm: d3: implement RSC command version 5
      iwlwifi: mvm: fix access to BSS elements
      iwlwifi: fw: correctly limit to monitor dump
      iwlwifi: pcie: avoid dma unmap/remap in crash dump
      iwlwifi: fix __percpu annotation
      iwlwifi: api: remove datamember from struct
      iwlwifi: fw: fix debug dump data declarations
      iwlwifi: allow debug init in RF-kill
      iwlwifi: mvm: don't use FW key ID in beacon protection
      um: vector: adjust to coalesce API changes

John Crispin (2):
      nl80211: add support for BSS coloring
      mac80211: add support for BSS color change

John Efstathiades (10):
      lan78xx: Fix white space and style issues
      lan78xx: Remove unused timer
      lan78xx: Set flow control threshold to prevent packet loss
      lan78xx: Remove unused pause frame queue
      lan78xx: Add missing return code checks
      lan78xx: Fix exception on link speed change
      lan78xx: Fix partial packet errors on suspend/resume
      lan78xx: Fix race conditions in suspend/resume handling
      lan78xx: Fix race condition in disconnect handling
      lan78xx: Limit number of driver warning messages

John Fastabend (1):
      bpf, selftests: Fix test_maps now that sockmap supports UDP

Jonas Dreßler (1):
      mwifiex: pcie: add DMI-based quirk implementation for Surface devices

Jonathan Lemon (12):
      ptp: ocp: Expose various resources on the timecard.
      ptp: ocp: Fix the error handling path for the class device.
      ptp: ocp: Add the mapping for the external PPS registers.
      ptp: ocp: Remove devlink health and unused parameters.
      ptp: ocp: Use 'gnss' naming instead of 'gps'
      ptp: ocp: Rename version string shown by devlink.
      ptp: ocp: Remove pending_image indicator from devlink
      ptp: ocp: Fix uninitialized variable warning spotted by clang.
      ptp: ocp: Fix error path for pci_ocp_device_init()
      ptp: ocp: Have Kconfig select NET_DEVLINK
      MAINTAINERS: Update for ptp_ocp driver.
      ptp: ocp: Simplify Kconfig.

Jonathan Toppins (2):
      bonding: remove extraneous definitions from bonding.h
      bonding: combine netlink and console error messages

Jose Blanquicet (1):
      selftests/bpf: Fix bpf-iter-tcp4 test to print correctly the dest IP

Joseph Gates (1):
      wcn36xx: Ensure finish scan is not requested before start scan

Juergen Gross (4):
      xen/netfront: read response from backend only once
      xen/netfront: don't read data from request on the ring page
      xen/netfront: disentangle tx_skb_freelist
      xen/netfront: don't trust the backend response data blindly

Juhee Kang (7):
      samples: bpf: Fix tracex7 error raised on the missing argument
      samples: bpf: Add the omitted xdp samples to .gitignore
      samples: pktgen: pass the environment variable of normal user to sudo
      samples: pktgen: add missing IPv6 option to pktgen scripts
      samples: pktgen: fix to print when terminated normally
      samples: pktgen: add trap SIGINT for printing execution result
      pktgen: document the latest pktgen usage options

Julian Wiedmann (6):
      s390/qeth: remove OSN support
      s390/qeth: clean up QETH_PROT_* naming
      s390/qeth: clean up device_type management
      net/af_iucv: support drop monitoring
      net/af_iucv: clean up a try_then_request_module()
      net/af_iucv: remove wrappers around iucv (de-)registration

Jun Miao (2):
      Bluetooth: btusb: Fix a unspported condition to set available debug features
      atm: horizon: Fix spelling mistakes in TX comment

Jussi Maki (10):
      selftests/bpf: Use ping6 only if available in tc_redirect
      net, bonding: Refactor bond_xmit_hash for use with xdp_buff
      net, core: Add support for XDP redirection to slave device
      net, bonding: Add XDP support to the bonding driver
      bpf, devmap: Exclude XDP broadcast to master device
      net, core: Allow netdev_lower_get_next_private_rcu in bh context
      selftests/bpf: Fix xdp_tx.c prog section name
      selftests/bpf: Add tests for XDP bonding
      net, bonding: Disallow vlan+srcmac with XDP
      selftests/bpf: Fix running of XDP bonding tests

Justin Iurman (7):
      uapi: IPv6 IOAM headers definition
      ipv6: ioam: Data plane support for Pre-allocated Trace
      ipv6: ioam: IOAM Generic Netlink API
      ipv6: ioam: Support for IOAM injection with lwtunnels
      ipv6: ioam: Documentation for new IOAM sysctls
      selftests: net: Test for the IOAM insertion with IPv6
      selftests: net: improved IOAM tests

Kai-Heng Feng (1):
      Bluetooth: Move shutdown callback before flushing tx and rx queue

Kalle Valo (3):
      Merge ath-next from git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git
      Merge ath-next from git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git
      Merge commit 'e257d969f36503b8eb1240f32653a1afb3109f86' of git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-next

Kangmin Park (3):
      mpls: defer ttl decrement in mpls_forward()
      Bluetooth: Fix return value in hci_dev_do_close()
      net: bridge: change return type of br_handle_ingress_vlan_tunnel

Kees Cook (7):
      igb: Avoid memcpy() over-reading of ETH_SS_STATS
      e100: Avoid memcpy() over-reading of ETH_SS_STATS
      mac80211: radiotap: Use BIT() instead of shifts
      mac80211: Use flex-array for radiotap header bitmap
      Bluetooth: mgmt: Pessimize compile-time bounds-check
      ipw2x00: Avoid field-overflowing memcpy()
      ray_cs: Split memcpy() to avoid bounds check warning

Kiran K (1):
      Bluetooth: Fix race condition in handling NOP command

Krzysztof Kozlowski (39):
      nfc: port100: constify protocol list array
      nfc: constify payload argument in nci_send_cmd()
      nfc: constify nci_ops
      nfc: s3fwrn5: constify nci_ops
      nfc: constify nci_driver_ops (prop_ops and core_ops)
      nfc: constify nfc_phy_ops
      nfc: st21nfca: constify file-scope arrays
      nfc: constify pointer to nfc_vendor_cmd
      nfc: constify nfc_hci_gate
      nfc: constify nfc_ops
      nfc: constify nfc_hci_ops
      nfc: constify nfc_llc_ops
      nfc: constify nfc_digital_ops
      nfc: constify passed nfc_dev
      nfc: mei_phy: constify buffer passed to mei_nfc_send()
      nfc: port100: constify several pointers
      nfc: trf7970a: constify several pointers
      nfc: virtual_ncidev: constify pointer to nfc_dev
      nfc: nfcsim: constify drvdata (struct nfcsim)
      nfc: fdp: drop unneeded cast for printing firmware size in dev_dbg()
      nfc: fdp: use unsigned int as loop iterator
      nfc: fdp: constify several pointers
      nfc: microread: constify several pointers
      nfc: mrvl: constify several pointers
      nfc: mrvl: constify static nfcmrvl_if_ops
      nfc: mrvl: correct nfcmrvl_spi_parse_dt() device_node argument
      nfc: annotate af_nfc_exit() as __exit
      nfc: hci: annotate nfc_llc_init() as __init
      nfc: constify several pointers to u8, char and sk_buff
      nfc: constify local pointer variables
      nfc: nci: constify several pointers to u8, sk_buff and other structs
      nfc: hci: cleanup unneeded spaces
      nfc: hci: pass callback data param as pointer in nci_request()
      nfc: microread: remove unused header includes
      nfc: mrvl: remove unused header includes
      nfc: pn544: remove unused header includes
      nfc: st-nci: remove unused header includes
      nfc: st21nfca: remove unused header includes
      nfc: st95hf: remove unused header includes

Kumar Kartikeya Dwivedi (28):
      net: core: Split out code to run generic XDP prog
      bitops: Add non-atomic bitops for pointers
      bpf: cpumap: Implement generic cpumap
      bpf: devmap: Implement devmap prog execution for generic XDP
      bpf: Tidy xdp attach selftests
      samples: bpf: Fix a couple of warnings
      tools: include: Add ethtool_drvinfo definition to UAPI header
      samples: bpf: Add basic infrastructure for XDP samples
      samples: bpf: Add BPF support for redirect tracepoint
      samples: bpf: Add redirect tracepoint statistics support
      samples: bpf: Add BPF support for xdp_exception tracepoint
      samples: bpf: Add xdp_exception tracepoint statistics support
      samples: bpf: Add BPF support for cpumap tracepoints
      samples: bpf: Add cpumap tracepoint statistics support
      samples: bpf: Add BPF support for devmap_xmit tracepoint
      samples: bpf: Add devmap_xmit tracepoint statistics support
      samples: bpf: Add vmlinux.h generation support
      samples: bpf: Convert xdp_monitor_kern.o to XDP samples helper
      samples: bpf: Convert xdp_monitor to XDP samples helper
      samples: bpf: Convert xdp_redirect_kern.o to XDP samples helper
      samples: bpf: Convert xdp_redirect to XDP samples helper
      samples: bpf: Convert xdp_redirect_cpu_kern.o to XDP samples helper
      samples: bpf: Convert xdp_redirect_cpu to XDP samples helper
      samples: bpf: Convert xdp_redirect_map_kern.o to XDP samples helper
      samples: bpf: Convert xdp_redirect_map to XDP samples helper
      samples: bpf: Convert xdp_redirect_map_multi_kern.o to XDP samples helper
      samples: bpf: Convert xdp_redirect_map_multi to XDP samples helper
      samples: bpf: Fix uninitialized variable in xdp_redirect_cpu

Kuniyuki Iwashima (5):
      bpf: Fix a typo of reuseport map in bpf.h.
      bpf: af_unix: Implement BPF iterator for UNIX domain socket.
      bpf: Support "%c" in bpf_bprintf_prepare().
      selftest/bpf: Implement sample UNIX domain socket iterator program.
      selftest/bpf: Extend the bpf_snprintf() test for "%c".

Kurt Kanzenbach (5):
      igc: Add possibility to add flex filter
      igc: Integrate flex filter into ethtool ops
      igc: Make flex filter more flexible
      igc: Export LEDs
      Revert "igc: Export LEDs"

Lad Prabhakar (3):
      dt-bindings: net: can: renesas,rcar-canfd: Document RZ/G2L SoC
      can: rcar_canfd: Add support for RZ/G2L family
      can: rcar_canfd: rcar_canfd_handle_channel_tx(): fix redundant assignment

Lahav Schlesinger (2):
      net: Support filtering interfaces on no master
      selftests: vrf: Add test for SNAT over VRF

Larry Finger (1):
      Bluetooth: Add additional Bluetooth part for Realtek 8852AE

Len Baker (4):
      Bluetooth: btmrvl_sdio: Remove all strcpy() uses
      drivers/net/usb: Remove all strcpy() uses
      ipw2x00: Use struct_size helper instead of open-coded arithmetic
      rtw88: Remove unnecessary check code

Leon Romanovsky (20):
      ionic: drop useless check of PCI driver data validity
      ionic: cleanly release devlink instance
      net: ti: am65-cpsw-nuss: fix wrong devlink release order
      net/mlx5: Don't rely on always true registered field
      devlink: Remove duplicated registration check
      devlink: Break parameter notification sequence to be before/after unload/load driver
      devlink: Allocate devlink directly in requested net namespace
      netdevsim: Forbid devlink reload when adding or deleting ports
      netdevsim: Protect both reload_down and reload_up paths
      devlink: Simplify devlink port API calls
      devlink: Set device as early as possible
      devlink: Fix port_type_set function pointer check
      net/mlx5: Delete impossible dev->state checks
      devlink: Simplify devlink_pernet_pre_exit call
      devlink: Remove check of always valid devlink pointer
      devlink: Count struct devlink consumers
      devlink: Use xarray to store devlink instances
      devlink: Clear whole devlink_flash_notify struct
      net: hns3: remove always exist devlink pointer check
      net/mlx5: Remove all auxiliary devices at the unregister event

Li RongQing (1):
      virtio_net: reduce raw_smp_processor_id() calling in virtnet_xdp_get_sq

Li Zhijian (5):
      selftests/bpf: Enlarge select() timeout for test_maps
      selftests/bpf: Make test_doc_build.sh work from script directory
      selftests/bpf: Add default bpftool built by selftests to PATH
      selftests/bpf: Add missing files required by test_bpftool.sh for installing
      selftests/bpf: Exit with KSFT_SKIP if no Makefile found

Linus Lüssing (2):
      batman-adv: bcast: remove remaining skb-copy calls
      batman-adv: bcast: remove remaining skb-copy calls

Linus Walleij (6):
      brcmfmac: firmware: Allow per-board firmware binaries
      brcmfmac: firmware: Fix firmware loading
      ssb: Drop legacy header include
      ixp4xx_eth: Stop referring to GPIOs
      ixp4xx_eth: Add devicetree bindings
      ixp4xx_eth: Probe the PTP module from the device tree

Lior Nahmanson (1):
      net/mlx5: Add DCS caps & fields support

Liu Jian (1):
      igmp: Add ip_mc_list lock in ip_check_mc_rcu

Loic Poulain (4):
      wwan: core: Fix missing RTM_NEWLINK event for default link
      net: wwan: Add MHI MBIM network driver
      net: mhi: Remove MBIM protocol
      wcn36xx: Fix missing frame timestamp for beacon/probe-resp

Lorenzo Bianconi (2):
      ieee80211: add TWT element definitions
      mac80211: introduce individual TWT support in AP mode

Louis Peens (8):
      nfp: flower: refactor match functions to take flow_rule as input
      nfp: flower: refactor action offload code slightly
      nfp: flower-ct: calculate required key_layers
      nfp: flower-ct: compile match sections of flow_payload
      nfp: flower-ct: add actions into flow_pay for offload
      nfp: flower-ct: add flow_pay to the offload table
      nfp: flower-ct: add offload calls to the nfp
      nfp: flower-tc: add flow stats updates for ct

Luca Coelho (15):
      iwlwifi: print PNVM complete notification status in hexadecimal
      iwlwifi: pcie: remove spaces from queue names
      iwlwifi: mvm: remove check for vif in iwl_mvm_vif_from_mac80211()
      iwlwifi: rename ACPI_SAR_NUM_CHAIN_LIMITS to ACPI_SAR_NUM_CHAINS
      iwlwifi: convert flat SAR profile table to a struct version
      iwlwifi: remove ACPI_SAR_NUM_TABLES definition
      iwlwifi: pass number of chains and sub-bands to iwl_sar_set_profile()
      iwlwifi: acpi: support reading and storing WRDS revision 1 and 2
      iwlwifi: support reading and storing EWRD revisions 1 and 2
      iwlwifi: remove unused ACPI_WGDS_TABLE_SIZE definition
      iwlwifi: convert flat GEO profile table to a struct version
      iwlwifi: acpi: support reading and storing WGDS revision 2
      iwlwifi: bump FW API to 65 for AX devices
      iwlwifi: acpi: fill in WGDS table with defaults
      iwlwifi: acpi: fill in SAR tables with defaults

Luiz Augusto von Dentz (4):
      Bluetooth: HCI: Add proper tracking for enable status of adv instances
      Bluetooth: Fix not generating RPA when required
      Bluetooth: Fix handling of LE Enhanced Connection Complete
      Bluetooth: Store advertising handle so it can be re-enabled

Lukas Bulwahn (5):
      intersil: remove obsolete prism54 wireless driver
      net: Kconfig: remove obsolete reference to config MICROBLAZE_64K_PAGES
      net: 802: remove dead leftover after ipx driver removal
      net: dpaa_eth: remove dead select in menuconfig FSL_DPAA_ETH
      netfilter: x_tables: handle xt_register_template() returning an error value

Luke Hsiao (1):
      tcp: enable data-less, empty-cookie SYN with TFO_SERVER_COOKIE_NOT_REQD

Luo Jie (3):
      net: mdio: Add the reset function for IPQ MDIO driver
      MDIO: Kconfig: Specify more IPQ chipset supported
      dt-bindings: net: Add the properties for ipq4019 MDIO

Lv Ruyi (2):
      ipv6: remove duplicated 'net/lwtunnel.h' include
      ipv6: seg6: remove duplicated include

Magnus Karlsson (16):
      selftests: xsk: Remove color mode
      selftests: xsk: Remove the num_tx_packets option
      selftests: xsk: Remove unused variables
      selftests: xsk: Return correct error codes
      selftests: xsk: Simplify the retry code
      selftests: xsk: Remove end-of-test packet
      selftests: xsk: Disassociate umem size with packets sent
      selftests: xsk: Rename worker_* functions that are not thread entry points
      selftests: xsk: Simplify packet validation in xsk tests
      selftests: xsk: Validate tx stats on tx thread
      selftests: xsk: Decrease sending speed
      selftests: xsk: Simplify cleanup of ifobjects
      selftests: xsk: Generate packet directly in umem
      selftests: xsk: Generate packets from specification
      selftests: xsk: Make enums lower case
      selftests: xsk: Preface options with opt

Maor Dickman (1):
      net/mlx5: E-Switch, Set vhca id valid flag when creating indir fwd group

Maor Gottlieb (6):
      net/mlx5e: Rename traffic type enums
      net/mlx5e: Rename some related TTC args and functions
      net/mlx5e: Decouple TTC logic from mlx5e
      net/mlx5: Move TTC logic to fs_ttc
      net/mlx5: Embed mlx5_ttc_table
      net/mlx5: Fix inner TTC table creation

Marc Kleine-Budde (21):
      can: j1939: fix checkpatch warnings
      can: j1939: replace fall through comment by fallthrough pseudo-keyword
      can: j1939: j1939_session_completed(): use consistent name se_skb for the session skb
      can: j1939: j1939_session_tx_dat(): use consistent name se_skcb for session skb control buffer
      can: j1939: j1939_xtp_rx_dat_one(): use separate pointer for session skb control buffer
      can: rx-offload: add skb queue for use during ISR
      can: rx-offload: can_rx_offload_irq_finish(): directly call napi_schedule()
      can: rx-offload: can_rx_offload_threaded_irq_finish(): add new function to be called from threaded interrupt
      can: bittiming: fix documentation for struct can_tdc
      can: m_can: remove support for custom bit timing
      can: mcp251xfd: mcp251xfd_open(): request IRQ as shared
      can: peak_pci: convert comments to network style comments
      can: peak_pci: fix checkpatch warnings
      can: j1939: j1939_session_tx_dat(): fix typo
      can: flexcan: flexcan_clks_enable(): add missing variable initialization
      mailmap: update email address of Matthias Fuchs and Thomas Körper
      can: mcp251xfd: mark some instances of struct mcp251xfd_priv as const
      can: tcan4x5x: cdev_to_priv(): remove stray empty line
      can: m_can: fix block comment style
      can: c_can: c_can_do_tx(): fix typo in comment
      can: c_can: rename IF_RX -> IF_NAPI

Marek Vasut (1):
      net: phy: Fix data type in DP83822 dp8382x_disable_wol()

Mark Bloch (12):
      net/mlx5: Return mdev from eswitch
      net/mlx5: Lag, add initial logic for shared FDB
      RDMA/mlx5: Fill port info based on the relevant eswitch
      {net, RDMA}/mlx5: Extend send to vport rules
      RDMA/mlx5: Add shared FDB support
      net/mlx5: E-Switch, Add event callback for representors
      net/mlx5: Add send to vport rules on paired device
      net/mlx5: Lag, properly lock eswitch if needed
      net/mlx5: Lag, move lag destruction to a workqueue
      net/mlx5: E-Switch, add logic to enable shared FDB
      net/mlx5: Lag, Create shared FDB when in switchdev mode
      net/sched: cls_api, reset flags on replay

Mark Brown (1):
      net: mscc: Fix non-GPL export of regmap APIs

Mark Gray (4):
      openvswitch: Introduce per-cpu upcall dispatch
      openvswitch: update kdoc OVS_DP_ATTR_PER_CPU_PIDS
      openvswitch: fix alignment issues
      openvswitch: fix sparse warning incorrect type

Martin KaFai Lau (12):
      tcp: seq_file: Avoid skipping sk during tcp_seek_last_pos
      tcp: seq_file: Refactor net and family matching
      bpf: tcp: seq_file: Remove bpf_seq_afinfo from tcp_iter_state
      tcp: seq_file: Add listening_get_first()
      tcp: seq_file: Replace listening_hash with lhash2
      bpf: tcp: Bpf iter batching and lock_sock
      bpf: tcp: Support bpf_(get|set)sockopt in bpf tcp iter
      bpf: selftest: Test batching and bpf_(get|set)sockopt in bpf tcp iter
      bpf: tcp: Allow bpf-tcp-cc to call bpf_(get|set)sockopt
      bpf: selftests: Add sk_state to bpf_tcp_helpers.h
      bpf: selftests: Add connect_to_fd_opts to network_helpers
      bpf: selftests: Add dctcp fallback test

Martin Kaiser (1):
      niu: read property length only if we use it

Martin Schiller (1):
      net: phy: intel-xway: Add RGMII internal delay configuration

Martynas Pumputis (5):
      libbpf: Fix reuse of pinned map on older kernel
      libbpf: Fix removal of inner map in bpf_object__create_map
      selftests/bpf: Check inner map deletion
      selftests/bpf: Mute expected invalid map creation error msg
      libbpf: Fix race when pinning maps in parallel

Matt Johnston (5):
      mctp: Add netlink route management
      mctp: Add neighbour implementation
      mctp: Add neighbour netlink interface
      mctp: Add dest neighbour lladdr to route output
      mctp: Allow per-netns default networks

Matt Kline (3):
      can: m_can: Disable IRQs on FIFO bus errors
      can: m_can: Batch FIFO reads during CAN receive
      can: m_can: Batch FIFO writes during CAN transmit

Matthew Cover (1):
      bpf, samples: Add missing mprog-disable to xdp_redirect_cpu's optstring

Matthieu Baerts (1):
      ipv6: fix "'ioam6_if_id_max' defined but not used" warn

Max Chou (1):
      Bluetooth: btusb: Remove WAKEUP_DISABLE and add WAKEUP_AUTOSUSPEND for Realtek devices

Maxim Mikityanskiy (21):
      net/mlx5e: Prohibit inner indir TIRs in IPoIB
      net/mlx5e: Block LRO if firmware asks for tunneled LRO
      net/mlx5: Take TIR destruction out of the TIR list lock
      net/mlx5e: Check if inner FT is supported outside of create/destroy functions
      net/mlx5e: Convert RQT to a dedicated object
      net/mlx5e: Move mlx5e_build_rss_params() call to init_rx
      net/mlx5e: Move RX resources to a separate struct
      net/mlx5e: Take RQT out of TIR and group RX resources
      net/mlx5e: Use mlx5e_rqt_get_rqtn to access RQT hardware id
      net/mlx5e: Remove mlx5e_priv usage from mlx5e_build_*tir_ctx*()
      net/mlx5e: Remove lro_param from mlx5e_build_indir_tir_ctx_common()
      net/mlx5e: Remove mdev from mlx5e_build_indir_tir_ctx_common()
      net/mlx5e: Create struct mlx5e_rss_params_hash
      net/mlx5e: Convert TIR to a dedicated object
      net/mlx5e: Move management of indir traffic types to rx_res
      net/mlx5e: Use the new TIR API for kTLS
      net/mlx5e: Use a new initializer to build uniform indir table
      net/mlx5e: Introduce mlx5e_channels API to get RQNs
      net/mlx5e: Hide all implementation details of mlx5e_rx_res
      net/mlx5e: Allocate the array of channels according to the real max_nch
      sch_htb: Fix inconsistency when leaf qdisc creation fails

Miaoqing Pan (1):
      ath9k: fix sleeping in atomic context

Michael Chan (4):
      bnxt_en: Move bnxt_ptp_init() from bnxt_open() back to bnxt_init_one()
      bnxt_en: Do not read the PTP PHC during chip reset
      bnxt_en: Don't use static arrays for completion ring pages
      bnxt_en: Increase maximum RX ring size if jumbo ring is not used

Michael Schmitz (2):
      ax88796: export ax_NS8390_init() hook
      xsurf100: drop include of lib8390.c

Michael Sun (2):
      Bluetooth: btusb: Add valid le states quirk
      Bluetooth: btusb: Enable MSFT extension for WCN6855 controller

MichelleJin (1):
      net: bridge: use mld2r_ngrec instead of icmpv6_dataun

Mikhail Rudenko (1):
      brcmfmac: use separate firmware for 43430 revision 2

Miri Korenblit (2):
      iwlwifi: mvm: Read the PPAG and SAR tables at INIT stage
      iwlwifi: mvm: load regdomain at INIT stage

Mordechay Goodstein (3):
      iwlwifi: iwl-nvm-parse: set STBC flags for HE phy capabilities
      iwlwifi: iwl-dbg-tlv: add info about loading external dbg bin
      iwlwifi: mvm: remove trigger EAPOL time event

Muhammad Falak R Wani (2):
      samples, bpf: Add an explict comment to handle nested vlan tagging.
      samples/bpf: Define MAX_ENTRIES instead of a magic number in offwaketime

Muhammad Husaini Zulkifli (2):
      igc: Set QBVCYCLET_S to 0 for TSN Basic Scheduling
      igc: Increase timeout value for Speed 100/1000/2500

Mukesh Sisodiya (2):
      iwlwifi: yoyo: cleanup internal buffer allocation in D3
      iwlwifi: yoyo: support for new DBGI_SRAM region

Nathan Chancellor (3):
      net: ethernet: stmmac: Do not use unreachable() in ipq806x_gmac_probe()
      cxgb4: Properly revert VPD changes
      rtlwifi: rtl8192de: Fix initialization of place in _rtl92c_phy_get_rightchnlplace()

Naveen Mamindlapalli (2):
      octeontx2-af: add proper return codes for AF mailbox handlers
      octeontx2-pf: send correct vlan priority mask to npc_install_flow_req

Neal Cardwell (1):
      tcp: more accurately check DSACKs to grow RACK reordering window

Neil Spring (1):
      tcp: enable mid stream window clamp

Nick Richardson (5):
      pktgen: Remove redundant clone_skb override
      pktgen: Parse internet mix (imix) input
      pktgen: Add imix distribution bins
      pktgen: Add output for imix results
      pktgen: Remove fill_imix_distribution() CONFIG_XFRM dependency

Niklas Söderlund (3):
      nfp: fix return statement in nfp_net_parse_meta()
      samples/bpf: xdpsock: Make the sample more useful outside the tree
      samples/bpf: xdpsock: Remove forward declaration of ip_fast_csum()

Nikolay Aleksandrov (52):
      net: bridge: multicast: factor out port multicast context
      net: bridge: multicast: factor out bridge multicast context
      net: bridge: multicast: use multicast contexts instead of bridge or port
      net: bridge: vlan: add global and per-port multicast context
      net: bridge: multicast: add vlan state initialization and control
      net: bridge: add vlan mcast snooping knob
      net: bridge: multicast: add helper to get port mcast context from port group
      net: bridge: multicast: use the port group to port context helper
      net: bridge: multicast: check if should use vlan mcast ctx
      net: bridge: multicast: add vlan querier and query support
      net: bridge: multicast: include router port vlan id in notifications
      net: bridge: vlan: add support for global options
      net: bridge: vlan: add support for dumping global vlan options
      net: bridge: vlan: notify when global options change
      net: bridge: vlan: add mcast snooping control
      net: bridge: multicast: fix igmp/mld port context null pointer dereferences
      net: bridge: multicast: add mdb context support
      net: bridge: multicast: add context support for host-joined groups
      net: bridge: fix ioctl locking
      net: bridge: fix ioctl old_deviceless bridge argument
      net: core: don't call SIOCBRADD/DELIF for non-bridge devices
      net: bridge: vlan: add support for mcast igmp/mld version global options
      net: bridge: vlan: add support for mcast last member count global option
      net: bridge: vlan: add support for mcast startup query count global option
      net: bridge: vlan: add support for mcast last member interval global option
      net: bridge: vlan: add support for mcast membership interval global option
      net: bridge: vlan: add support for mcast querier interval global option
      net: bridge: vlan: add support for mcast query interval global option
      net: bridge: vlan: add support for mcast query response interval global option
      net: bridge: vlan: add support for mcast startup query interval global option
      net: bridge: mcast: move querier state to the multicast context
      net: bridge: mcast: querier and query state affect only current context type
      net: bridge: vlan: add support for mcast querier global option
      net: bridge: vlan: add support for mcast router global option
      net: bridge: mcast: use the proper multicast context when dumping router ports
      net: bridge: vlan: use br_rports_fill_info() to export mcast router ports
      net: bridge: vlan: fix global vlan option range dumping
      net: bridge: mcast: record querier port device ifindex instead of pointer
      net: bridge: mcast: make sure querier port/address updates are consistent
      net: bridge: mcast: consolidate querier selection for ipv4 and ipv6
      net: bridge: mcast: dump ipv4 querier state
      net: bridge: mcast: dump ipv6 querier state
      net: bridge: vlan: dump mcast ctx querier state
      net: bridge: mcast: don't dump querier state if snooping is disabled
      net: bridge: mcast: drop sizeof for nest attribute's zero size
      net: bridge: mcast: account for ipv6 size when dumping querier state
      net: bridge: vlan: enable mcast snooping for existing master vlans
      net: bridge: vlan: account for router port lists when notifying
      net: bridge: mcast: use the correct vlan group helper
      net: bridge: mcast: toggle also host vlan state in br_multicast_toggle_vlan
      net: bridge: mcast: br_multicast_set_port_router takes multicast context as argument
      net: bridge: vlan: convert mcast router global option to per-vlan entry

Nithin Dabilpuram (3):
      octeontx2-af: Change the order of queue work and interrupt disable
      octeontx2-af: Wait for TX link idle for credits change
      octeontx2-af: enable tx shaping feature for 96xx C0

Oleksij Rempel (9):
      net: usb: asix: ax88772: do not poll for PHY before registering it
      net: usb: asix: ax88772: add missing stop
      net: selftests: add MTU test
      can: j1939: rename J1939_ERRQUEUE_* to J1939_ERRQUEUE_TX_*
      can: j1939: extend UAPI to notify about RX status
      net: phy: nxp-tja11xx: log critical health state
      dt-bindings: can-controller: add support for termination-gpios
      dt-bindings: can: fsl,flexcan: enable termination-* bindings
      can: dev: provide optional GPIO based termination support

Pablo Neira Ayuso (3):
      netfilter: nft_compat: use nfnetlink_unicast()
      netfilter: flowtable: remove nf_ct_l4proto_find() call
      netfilter: ctnetlink: missing counters and timestamp in nfnetlink_{log,queue}

Pali Rohár (3):
      phy: marvell: phy-mvebu-cp110-comphy: Rename HS-SGMMI to 2500Base-X
      phy: marvell: phy-mvebu-a3700-comphy: Rename HS-SGMMI to 2500Base-X
      phy: marvell: phy-mvebu-a3700-comphy: Remove unsupported modes

Paolo Abeni (29):
      veth: always report zero combined channels
      veth: factor out initialization helper
      veth: implement support for set_channel ethtool op
      veth: create by default nr_possible_cpus queues
      selftests: net: veth: add tests for set_channel
      sk_buff: introduce 'slow_gro' flags
      sk_buff: track dst status in slow_gro
      sk_buff: track extension status in slow_gro
      net: optimize GRO for the common case.
      skbuff: allow 'slow_gro' for skb carring sock reference
      veth: use skb_prepare_for_gro()
      sk_buff: avoid potentially clearing 'slow_gro' field
      net: fix GRO skb truesize update
      mptcp: more accurate timeout
      mptcp: less aggressive retransmission strategy
      mptcp: handle pending data on closed subflow
      mptcp: cleanup sysctl data and helpers
      mptcp: faster active backup recovery
      mptcp: add mibs for stale subflows processing
      mptcp: backup flag from incoming MPJ ack option
      selftests: mptcp: add testcase for active-back
      mptcp: optimize out option generation
      mptcp: shrink mptcp_out_options struct
      selftests/net: allow GRO coalesce test on veth
      mptcp: do not set unconditionally csum_reqd on incoming opt
      mptcp: better binary layout for mptcp_options_received
      mptcp: consolidate in_opt sub-options fields in a bitmask
      mptcp: optimize the input options processing
      mptcp: make the locking tx schema more readable

Parav Pandit (14):
      devlink: Add new "enable_eth" generic device param
      devlink: Add new "enable_rdma" generic device param
      devlink: Add new "enable_vnet" generic device param
      devlink: Create a helper function for one parameter registration
      devlink: Add API to register and unregister single parameter
      devlink: Add APIs to publish, unpublish individual parameter
      net/mlx5: Fix unpublish devlink parameters
      net/mlx5: Support enable_eth devlink dev param
      net/mlx5: Support enable_rdma devlink dev param
      net/mlx5: Support enable_vnet devlink dev param
      net/mlx5: SF, use recent sysfs api
      net/mlx5: Reorganize current and maximal capabilities to be per-type
      net/mlx5: Allocate individual capability
      net/mlx5: Initialize numa node for all core devices

Pauli Virtanen (1):
      Bluetooth: btusb: check conditions before enabling USB ALT 3 for WBS

Pavan Chebbi (4):
      bnxt_en: 1PPS support for 5750X family chips
      bnxt_en: 1PPS functions to configure TSIO pins
      bnxt_en: Event handler for PPS events
      bnxt_en: Log if an invalid signal detected on TSIO pin

Pavel Skripkin (6):
      net: cipso: fix warnings in netlbl_cipsov4_add_std
      net: xfrm: fix shift-out-of-bounce
      net: hso: drop unused function argument
      net: pch_gbe: remove mii_ethtool_gset() error handling
      net: mii: make mii_ethtool_gset() return void
      Bluetooth: add timeout sanity check to hci_inquiry

Pavel Tikhomirov (1):
      sock: allow reading and changing sk_userlocks with setsockopt

Paweł Drewniak (1):
      brcmfmac: Add WPA3 Personal with FT to supported cipher suites

Peilin Ye (4):
      netdevsim: Add multi-queue support
      net/sched: act_skbmod: Add SKBMOD_F_ECN option support
      tc-testing: Add control-plane selftest for skbmod SKBMOD_F_ECN option
      tc-testing: Add control-plane selftests for sch_mq

Peng Li (14):
      net: at91_can: remove redundant blank lines
      net: at91_can: add blank line after declarations
      net: at91_can: fix the code style issue about macro
      net: at91_can: use BIT macro
      net: at91_can: fix the alignment issue
      net: at91_can: add braces {} to all arms of the statement
      net: at91_can: remove redundant space
      net: at91_can: fix the comments style issue
      net: hns3: remove redundant param mbx_event_pending
      net: hns3: use memcpy to simplify code
      net: hns3: remove redundant param to simplify code
      net: hns3: package new functions to simplify hclgevf_mbx_handler code
      net: hns3: merge some repetitive macros
      net: hns3: reconstruct function hns3_self_test

Peter Collingbourne (1):
      net: don't unconditionally copy_from_user a struct ifreq for socket ioctls

Ping-Ke Shih (1):
      rtw88: wow: build wow function only if CONFIG_PM is on

Piotr Kwapulinski (1):
      i40e: add support for PTP external synchronization clock

Po-Hao Huang (2):
      rtw88: 8822c: add tx stbc support under HT mode
      rtw88: change beacon filter default mode

Po-Hsu Lin (1):
      selftests/net: Use kselftest skip code for skipped tests

Prankur Gupta (2):
      bpf: Add support for {set|get} socket options from setsockopt BPF
      selftests/bpf: Add tests for {set|get} socket option from setsockopt BPF

Quentin Monnet (14):
      libbpf: Return non-null error on failures in libbpf_find_prog_btf_id()
      libbpf: Rename btf__load() as btf__load_into_kernel()
      libbpf: Rename btf__get_from_id() as btf__load_from_kernel_by_id()
      tools: Free BTF objects at various locations
      tools: Replace btf__get_from_id() with btf__load_from_kernel_by_id()
      libbpf: Add split BTF support for btf__load_from_kernel_by_id()
      tools: bpftool: Support dumping split BTF by id
      tools: bpftool: Slightly ease bash completion updates
      selftests/bpf: Check consistency between bpftool source, doc, completion
      tools: bpftool: Complete and synchronise attach or map types
      tools: bpftool: Update and synchronise option list in doc and help msg
      selftests/bpf: Update bpftool's consistency script for checking options
      tools: bpftool: Document and add bash completion for -L, -B options
      tools: bpftool: Complete metrics list in "bpftool prog profile" doc

Radha Mohan Chintakuntla (1):
      octeontx2-af: Add SDP interface support

Rafał Miłecki (1):
      dt-bindings: net: brcm,unimac-mdio: convert to the json-schema

Rakesh Babu (1):
      octeontx2-pf: Ntuple filters support for VF netdev

Randy Dunlap (3):
      Bluetooth: btrsi: use non-kernel-doc comment for copyright
      ptp: ocp: don't allow on S390
      net: RxRPC: make dependent Kconfig symbols be shown indented

Rao Shoaib (3):
      af_unix: Add OOB support
      af_unix: fix holding spinlock in oob handling
      af_unix: check socket state when queuing OOB

Richard Laing (2):
      bus: mhi: pci-generic: configurable network interface MRU
      net: mhi: Improve MBIM packet counting

Rocco Yue (3):
      ipv6: remove unnecessary local variable
      net: add extack arg for link ops
      ipv6: add IFLA_INET6_RA_MTU to expose mtu value

Roi Dayan (9):
      net/mlx5e: Remove redundant tc act includes
      net/mlx5e: Remove redundant filter_dev arg from parse_tc_fdb_actions()
      net/mlx5e: Remove redundant cap check for flow counter
      net/mlx5e: Remove redundant parse_attr arg
      net/mlx5e: Remove redundant assignment of counter to null
      net/mlx5e: Return -EOPNOTSUPP if more relevant when parsing tc actions
      net/mlx5e: Add an option to create a shared mapping
      net/mlx5e: Use shared mappings for restoring from metadata
      net/mlx5e: Fix possible use-after-free deleting fdb rule

Ronak Doshi (7):
      vmxnet3: prepare for version 6 changes
      vmxnet3: add support for 32 Tx/Rx queues
      vmxnet3: remove power of 2 limitation on the queues
      vmxnet3: add support for ESP IPv6 RSS
      vmxnet3: set correct hash type based on rss information
      vmxnet3: increase maximum configurable mtu to 9190
      vmxnet3: update to version 6

Roy, UjjaL (1):
      bpf, doc: Add heading and example for extensions in cbpf

Russell King (1):
      net: phy: at803x: simplify custom phy id matching

Russell King (Oracle) (4):
      net: mvneta: deny disabling autoneg for 802.3z modes
      net: mvpp2: deny disabling autoneg for 802.3z modes
      net: phylink: add phy change pause mode debug
      net: phylink: cleanup ksettings_set

Ryoga Saito (1):
      netfilter: add netfilter hooks to SRv6 data plane

Saeed Mahameed (2):
      ethtool: Fix rxnfc copy to user buffer overflow
      net/mlx5e: Remove mlx5e dependency from E-Switch sample

Sandipan Das (1):
      MAINTAINERS: Remove self from powerpc BPF JIT

Sasha Neftin (9):
      e1000e: Add handshake with the CSME to support S0ix
      e1000e: Add polling mechanism to indicate CSME DPG exit
      e1000e: Additional PHY power saving in S0ix
      e1000e: Add support for Lunar Lake
      e1000e: Add support for the next LOM generation
      e1000e: Add space to the debug print
      igc: Check if num of q_vectors is smaller than max before array access
      igc: Remove _I_PHY_ID checking
      igc: Remove phy->type checking

Sean Anderson (1):
      brcmfmac: Set SDIO workqueue as WQ_HIGHPRI

Sebastian Andrzej Siewior (3):
      virtio_net: Replace deprecated CPU-hotplug functions.
      net: Replace deprecated CPU-hotplug functions.
      net/iucv: Replace deprecated CPU-hotplug functions.

Shai Malin (5):
      qed: Remove the qed module version
      qede: Remove the qede module version
      qed: Avoid db_recovery during recovery
      qed: Skip DORQ attention handling during recovery
      qed: Remove redundant prints from the iWARP SYN handling

Shannon Nelson (21):
      ionic: minimize resources when under kdump
      ionic: monitor fw status generation
      ionic: print firmware version on identify
      ionic: init reconfig err to 0
      ionic: use fewer inits on the buf_info struct
      ionic: increment num-vfs before configure
      ionic: remove unneeded comp union fields
      ionic: block some ethtool operations when fw in reset
      ionic: enable rxhash only with multiple queues
      ionic: add function tag to debug string
      ionic: remove old work task types
      ionic: flatten calls to set-rx-mode
      ionic: sync the filters in the work task
      ionic: refactor ionic_lif_addr to remove a layer
      ionic: handle mac filter overflow
      ionic: fire watchdog again after fw_down
      ionic: squelch unnecessary fw halted message
      ionic: fill mac addr earlier in add_addr
      ionic: add queue lock around open and stop
      ionic: pull hwstamp queue_lock up a level
      ionic: recreate hwstamp queues on ifup

Shaokun Zhang (2):
      netxen_nic: Remove the repeated declaration
      mctp: Remove the repeated declaration

Shaul Triebitz (4):
      iwlwifi: mvm: set BROADCAST_TWT_SUPPORTED in MAC policy
      iwlwifi: mvm: trigger WRT when no beacon heard
      iwlwifi: add 'Rx control frame to MBSSID' HE capability
      iwlwifi: mvm: support broadcast TWT alone

Shay Drory (3):
      net/mlx5: Align mlx5_irq structure
      net/mlx5: Change SF missing dedicated MSI-X err message to dbg
      net/mlx5: Refcount mlx5_irq with integer

Shuyi Cheng (3):
      libbpf: Introduce 'btf_custom_path' to 'bpf_obj_open_opts'
      libbpf: Fix the possible memory leak on error
      selftests/bpf: Switch existing selftests to using open_opts for custom BTF

Simon Wunderlich (1):
      batman-adv: Start new development cycle

Slark Xiao (1):
      net: Add depends on OF_NET for LiteX's LiteETH

Song Yoong Siang (1):
      net: phy: marvell: Add WAKE_PHY support to WOL event

Sriram R (1):
      cfg80211: use wiphy DFS domain if it is self-managed

Stanislav Fomichev (6):
      bpf: Increase supported cgroup storage value size
      selftests/bpf: Move netcnt test under test_progs
      bpf: Allow bpf_get_netns_cookie in BPF_PROG_TYPE_CGROUP_SOCKOPT
      selftests/bpf: Verify bpf_get_netns_cookie in BPF_PROG_TYPE_CGROUP_SOCKOPT
      bpf: Use kvmalloc for map values in syscall
      bpf: Use kvmalloc for map keys in syscalls

Steen Hegelund (2):
      net: sparx5: switchdev: adding frame DMA functionality
      arm64: dts: sparx5: Add the Sparx5 switch frame DMA support

Stefan Assmann (4):
      i40e: improve locking of mac_filter_hash
      iavf: do not override the adapter state in the watchdog task
      iavf: fix locking of critical sections
      iavf: use mutexes for locking of critical sections

Stefan Raspl (1):
      net/smc: Allow SMC-D 1MB DMB allocations

Stefan Wahren (1):
      net: qualcomm: fix QCA7000 checksum handling

Steffen Klassert (1):
      xfrm: Add possibility to set the default to block if we have no policy

Stephane Grosjean (5):
      can: peak_pci: Add name and FW version of the card in kernel buffer
      can: peak_usb: pcan_usb_get_device_id(): read value only in case of success
      can: peak_usb: PCAN-USB: add support of loopback and one-shot mode
      can: peak_usb: pcan_usb_encode_msg(): add information
      can: peak_usb: pcan_usb_decode_error(): upgrade handling of bus state changes

Subbaraya Sundeep (11):
      octeontx2-af: Modify install flow error codes
      octeontx2-af: Allocate low priority entries for PF
      octeontx2-pf: Allow VLAN priority also in ntuple filters
      octeontx2-pf: Fix NIX1_RX interface backpressure
      octeontx2-af: cn10k: Fix SDP base channel number
      octeontx2-pf: cleanup transmit link deriving logic
      octeontx2-af: Add PTP device id for CN10K and 95O silcons
      octeontx2-pf: Add vlan-etype to ntuple filters
      octeontx2-af: Fix loop in free and unmap counter
      octeontx2-af: Fix mailbox errors in nix_rss_flowkey_cfg
      octeontx2-af: Fix static code analyzer reported issues

Sudarsana Reddy Kalluru (1):
      atlantic: Fix driver resume flow.

Sunil Goutham (15):
      octeontx2-af: cn10k: DWRR MTU configuration
      octeontx2-pf: cn10k: Config DWRR weight based on MTU
      octeontx2-af: Add debug messages for failures
      octeontx2-pf: Enable NETIF_F_RXALL support for VF driver
      octeontx2-pf: Sort the allocated MCAM entry indices
      octeontx2-pf: Unify flow management variables
      octeontx2-pf: devlink params support to set mcam entry count
      octeontx2-pf: Add check for non zero mcam flows
      octeontx2-pf: Don't install VLAN offload rule if netdev is down
      octeontx2-pf: Fix algorithm index in MCAM rules with RSS action
      octeontx2-af: Remove channel verification while installing MCAM rules
      octeontx2-af: Add mbox to retrieve bandwidth profile free count
      octeontx2-pf: Fix inconsistent license text
      octeontx2-af: Fix inconsistent license text
      octeontx2-af: Set proper errorcode for IPv4 checksum errors

Sven Eckelmann (8):
      batman-adv: Move IRC channel to hackint.org
      batman-adv: Switch to kstrtox.h for kstrtou64
      batman-adv: Check ptr for NULL before reducing its refcnt
      batman-adv: Drop NULL check before dropping references
      batman-adv: Move IRC channel to hackint.org
      batman-adv: Switch to kstrtox.h for kstrtou64
      batman-adv: Check ptr for NULL before reducing its refcnt
      batman-adv: Drop NULL check before dropping references

Tal Gilboa (1):
      IB/mlx5: Rename is_apu_thread_cq function to is_apu_cq

Tang Bin (5):
      bcm63xx_enet: delete a redundant assignment
      via-rhine: Use of_device_get_match_data to simplify code
      via-velocity: Use of_device_get_match_data to simplify code
      can: mscan: mpc5xxx_can: mpc5xxx_can_probe(): use of_device_get_match_data to simplify code
      can: mscan: mpc5xxx_can: mpc5xxx_can_probe(): remove useless BUG_ON()

Tariq Toukan (11):
      net/mlx5e: Do not try enable RSS when resetting indir table
      net/mlx5e: Introduce TIR create/destroy API in rx_res
      net/mlx5e: Introduce abstraction of RSS context
      net/mlx5e: Convert RSS to a dedicated object
      net/mlx5e: Dynamically allocate TIRs in RSS contexts
      net/mlx5e: Support multiple RSS contexts
      net/mlx5e: Support flow classification into RSS contexts
      net/mlx5e: Abstract MQPRIO params
      net/mlx5e: Maintain MQPRIO mode parameter
      net/mlx5e: Handle errors of netdev_set_num_tc()
      net/mlx5e: Support MQPRIO channel mode

Tedd Ho-Jeong An (13):
      Bluetooth: mgmt: Fix wrong opcode in the response for add_adv cmd
      Bluetooth: Add support hdev to allocate private data
      Bluetooth: btintel: Add combined setup and shutdown functions
      Bluetooth: btintel: Refactoring setup routine for legacy ROM sku
      Bluetooth: btintel: Add btintel data struct
      Bluetooth: btintel: Fix the first HCI command not work with ROM device
      Bluetooth: btintel: Fix the LED is not turning off immediately
      Bluetooth: btintel: Add combined set_diag functions
      Bluetooth: btintel: Refactoring setup routine for bootloader devices
      Bluetooth: btintel: Move hci quirks to setup routine
      Bluetooth: btintel: Clean the exported function to static
      Bluetooth: btintel: Fix the legacy bootloader returns tlv based version
      Bluetooth: btintel: Combine setting up MSFT extension

Tetsuo Handa (1):
      Bluetooth: defer cleanup of resources in hci_unregister_dev()

Tobias Klauser (1):
      selftests/bpf: Remove unused variable in tc_tunnel prog

Tobias Waldekranz (4):
      net: bridge: disambiguate offload_fwd_mark
      net: bridge: switchdev: recycle unused hwdoms
      net: bridge: switchdev: allow the TX data plane forwarding to be offloaded
      net: dsa: tag_dsa: offload the bridge forwarding process

Tom Rix (1):
      iwlwifi: remove trailing semicolon in macro definition

Tonghao Zhang (1):
      qdisc: add new field for qdisc_enqueue tracepoint

Tree Davies (1):
      net/e1000e: Fix spelling mistake "The" -> "This"

Tsuchiya Yuto (1):
      mwifiex: pcie: add reset_d3cold quirk for Surface gen4+ devices

Tuo Li (1):
      mwifiex: drop redundant null-pointer check in mwifiex_dnld_cmd_to_fw()

Ugo Rémery (1):
      rtw88: add quirk to disable pci caps on HP Pavilion 14-ce0xxx

Vadim Fedorenko (2):
      net: ipv6: introduce ip6_dst_mtu_maybe_forward
      net: ipv4: Consolidate ipv4_mtu and ip_dst_mtu_maybe_forward

Vasily Averin (13):
      memcg: enable accounting for net_device and Tx/Rx queues
      memcg: enable accounting for IP address and routing-related objects
      memcg: enable accounting for inet_bin_bucket cache
      memcg: enable accounting for VLAN group array
      memcg: ipv6/sit: account and don't WARN on ip_tunnel_prl structs allocation
      memcg: enable accounting for scm_fp_list objects
      skbuff: introduce skb_expand_head()
      ipv6: use skb_expand_head in ip6_finish_output2
      ipv6: use skb_expand_head in ip6_xmit
      ipv4: use skb_expand_head in ip_finish_output2
      vrf: use skb_expand_head in vrf_finish_output
      ax25: use skb_expand_head
      bpf: use skb_expand_head in bpf_out_neigh_v4/6

Vidya (1):
      octeontx2-af: configure npc for cn10k to allow packets from cpt

Vignesh Raghavendra (1):
      net: ti: am65-cpsw-nuss: fix RX IRQ state after .ndo_stop()

Vijayakannan Ayyathurai (2):
      net: stmmac: add ethtool per-queue statistic framework
      net: stmmac: add ethtool per-queue irq statistic support

Vincent Li (1):
      selftests, bpf: test_tc_tunnel.sh nc: Cannot use -p and -l

Vincent Mailhol (11):
      can: netlink: clear data_bittiming if FD is turned off
      can: netlink: remove redundant check in can_validate()
      can: etas_es58x: fix three typos in author name and documentation
      can: etas_es58x: use error pointer during device probing
      can: etas_es58x: use devm_kzalloc() to allocate device resources
      can: etas_es58x: add es58x_free_netdevs() to factorize code
      can: etas_es58x: use sizeof and sizeof_field macros instead of constant values
      can: etas_es58x: rewrite the message cast in es58{1,_fd}_tx_can_msg to increase readability
      can: netlink: allow user to turn off unsupported features
      MAINTAINERS: add Vincent MAILHOL as maintainer for the ETAS ES58X CAN/USB driver
      can: etas_es58x: clean-up documentation of struct es58x_fd_tx_conf_msg

Vinicius Costa Gomes (7):
      igc: Allow for Flex Filters to be installed
      Revert "PCI: Make pci_enable_ptm() private"
      PCI: Add pcie_ptm_enabled()
      igc: Enable PCIe PTM
      igc: Add support for PTP getcrosststamp()
      igc: Use default cycle 'start' and 'end' values for queues
      igc: Simplify TSN flags handling

Vlad Buslov (6):
      net/mlx5: Bridge, release bridge in same function where it is taken
      net/mlx5: Bridge, obtain core device from eswitch instead of priv
      net/mlx5: Bridge, identify port by vport_num+esw_owner_vhca_id pair
      net/mlx5: Bridge, extract FDB delete notification to function
      net/mlx5: Bridge, allow merged eswitch connectivity
      net/mlx5: Bridge, support LAG

Vladimir Oltean (99):
      net: dsa: sja1105: delete the best_effort_vlan_filtering mode
      net: dsa: tag_8021q: use "err" consistently instead of "rc"
      net: dsa: tag_8021q: use symbolic error names
      net: dsa: tag_8021q: remove struct packet_type declaration
      net: dsa: tag_8021q: create dsa_tag_8021q_{register,unregister} helpers
      net: dsa: build tag_8021q.c as part of DSA core
      net: dsa: let the core manage the tag_8021q context
      net: dsa: make tag_8021q operations part of the core
      net: dsa: tag_8021q: absorb dsa_8021q_setup into dsa_tag_8021q_{,un}register
      net: dsa: tag_8021q: manage RX VLANs dynamically at bridge join/leave time
      net: dsa: tag_8021q: add proper cross-chip notifier support
      net: switchdev: introduce helper for checking dynamically learned FDB entries
      net: switchdev: introduce a fanout helper for SWITCHDEV_FDB_{ADD,DEL}_TO_DEVICE
      net: dsa: use switchdev_handle_fdb_{add,del}_to_device
      net: phy: at803x: finish the phy id checking simplification
      net: switchdev: remove stray semicolon in switchdev_handle_fdb_del_to_device shim
      net: switchdev: recurse into __switchdev_handle_fdb_del_to_device
      net: dpaa2-switch: use extack in dpaa2_switch_port_bridge_join
      net: dpaa2-switch: refactor prechangeupper sanity checks
      net: bridge: switchdev: let drivers inform which bridge ports are offloaded
      net: bridge: guard the switchdev replay helpers against a NULL notifier block
      net: bridge: move the switchdev object replay helpers to "push" mode
      net: switchdev: fix FDB entries towards foreign ports not getting propagated to us
      net: dsa: track the number of switches in a tree
      net: dsa: add support for bridge TX forwarding offload
      net: dsa: mv88e6xxx: map virtual bridges with forwarding offload in the PVT
      net: bridge: fix build when setting skb->offload_fwd_mark with CONFIG_NET_SWITCHDEV=n
      net: bridge: update BROPT_VLAN_ENABLED before notifying switchdev in br_vlan_filter_toggle
      net: bridge: add a helper for retrieving port VLANs from the data path
      net: dsa: sja1105: delete vlan delta save/restore logic
      net: dsa: sja1105: deny 8021q uppers on ports
      net: dsa: sja1105: deny more than one VLAN-aware bridge
      net: dsa: sja1105: add support for imprecise RX
      net: dsa: sja1105: add bridge TX data plane offload based on tag_8021q
      Revert "net: dsa: Allow drivers to filter packets they can decode source port from"
      net: build all switchdev drivers as modules when the bridge is a module
      net: bridge: switchdev: replay the entire FDB for each port
      net: bridge: switchdev: treat local FDBs the same as entries towards the bridge
      net: dsa: sja1105: be stateless when installing FDB entries
      net: dsa: sja1105: reset the port pvid when leaving a VLAN-aware bridge
      net: dsa: sja1105: make sure untagged packets are dropped on ingress ports with no pvid
      net: dsa: tag_sja1105: fix control packets on SJA1110 being received on an imprecise port
      net: dsa: don't set skb->offload_fwd_mark when not offloading the bridge
      net: dsa: mt7530: drop paranoid checks in .get_tag_protocol()
      net: dsa: remove the struct packet_type argument from dsa_device_ops::rcv()
      net: bridge: switchdev: fix incorrect use of FDB flags when picking the dst device
      net: dsa: tag_sja1105: consistently fail with arbitrary input
      net: make switchdev_bridge_port_{,unoffload} loosely coupled with the bridge
      Revert "net: build all switchdev drivers as modules when the bridge is a module"
      net: dsa: rename teardown_default_cpu to teardown_cpu_ports
      net: dsa: give preference to local CPU ports
      net: dsa: sja1105: configure the cascade ports based on topology
      net: dsa: sja1105: manage the forwarding domain towards DSA ports
      net: dsa: sja1105: manage VLANs on cascade ports
      net: dsa: sja1105: increase MTU to account for VLAN header on DSA ports
      net: dsa: sja1105: suppress TX packets from looping back in "H" topologies
      net: dsa: sja1105: enable address learning on cascade ports
      net: dsa: tag_sja1105: optionally build as module when switch driver is module if PTP is enabled
      net: dsa: stop syncing the bridge mcast_router attribute at join time
      net: dsa: mt7530: remove the .port_set_mrouter implementation
      net: dsa: don't disable multicast flooding to the CPU even without an IGMP querier
      net: dsa: don't fast age standalone ports
      net: dsa: centralize fast ageing when address learning is turned off
      net: dsa: don't fast age bridge ports with learning turned off
      net: dsa: flush the dynamic FDB of the software bridge when fast ageing a port
      net: dsa: sja1105: rely on DSA core tracking of port learning state
      net: dsa: sja1105: add FDB fast ageing support
      net: dsa: still fast-age ports joining a bridge if they can't configure learning
      net: dsa: avoid fast ageing twice when port leaves a bridge
      net: dsa: create a helper that strips EtherType DSA headers on RX
      net: dsa: create a helper which allocates space for EtherType DSA headers
      net: dsa: create a helper for locating EtherType DSA headers on RX
      net: dsa: create a helper for locating EtherType DSA headers on TX
      net: dsa: print more information when a cross-chip notifier fails
      net: dsa: tag_8021q: don't broadcast during setup/teardown
      net: dsa: tag_8021q: fix notifiers broadcast when they shouldn't, and vice versa
      net: dsa: felix: stop calling ocelot_port_{enable,disable}
      net: mscc: ocelot: convert to phylink
      net: dsa: sja1105: reorganize probe, remove, setup and teardown ordering
      net: dsa: tag_sja1105: be dsa_loop-safe
      net: dpaa2-switch: phylink_disconnect_phy needs rtnl_lock
      net: dpaa2-switch: call dpaa2_switch_port_disconnect_mac on probe error path
      net: mscc: ocelot: allow probing to continue with ports that fail to register
      net: mscc: ocelot: transmit the "native VLAN" error via extack
      net: mscc: ocelot: transmit the VLAN filtering restrictions via extack
      net: mscc: ocelot: use helpers for port VLAN membership
      docs: devlink: remove the references to sja1105
      docs: net: dsa: sja1105: update list of limitations
      docs: net: dsa: remove references to struct dsa_device_ops::filter
      docs: net: dsa: document the new methods for bridge TX forwarding offload
      net: dsa: track unique bridge numbers across all DSA switch trees
      net: dsa: don't call switchdev_bridge_port_unoffload for unoffloaded bridge ports
      net: dsa: properly fall back to software bridging
      net: dsa: don't advertise 'rx-vlan-filter' when not needed
      net: dsa: let drivers state that they need VLAN filtering while standalone
      net: dsa: sja1105: prevent tag_8021q VLANs from being received on user ports
      net: dsa: sja1105: drop untagged packets on the CPU and DSA ports
      net: dsa: tag_sja1105: stop asking the sja1105 driver in sja1105_xmit_tpid
      net: phy: marvell10g: fix broken PHY interrupts for anyone after us in the driver probe list

Voon Weifeng (2):
      net: phy: marvell10g: enable WoL for 88X3310 and 88E2110
      net: stmmac: fix INTR TBU status affecting irq count statistic

Wai Paulo Valerio Wang (1):
      Bluetooth: btusb: Add support for IMC Networks Mediatek Chip

Wei Wang (1):
      net-memcg: pass in gfp_t mask to mem_cgroup_charge_skmem()

Wei Yongjun (2):
      wwan: mhi: Fix missing spin_lock_init() in mhi_mbim_probe()
      iwlwifi: mvm: fix old-style static const declaration

Wen Gong (3):
      ieee80211: add definition of regulatory info in 6 GHz operation information
      ieee80211: add definition for transmit power envelope element
      mac80211: parse transmit power envelope element

Wentao_Liang (1):
      net/mlx5: DR, fix a potential use-after-free bug

Wong Vee Khee (1):
      net: pcs: xpcs: Add Pause Mode support for SGMII and 2500BaseX

Xin Long (2):
      tipc: keep the skb in rcv queue until the whole data is read
      tipc: fix an use-after-free issue in tipc_recvmsg

Xiyu Yang (1):
      net: sched: Fix qdisc_rate_table refcount leak when get tcf_block failed

Xu Liang (2):
      net: phy: add API to read 802.3-c45 IDs
      net: phy: add Maxlinear GPY115/21x/24x driver

Xu Liu (4):
      bpf: Allow bpf_get_netns_cookie in BPF_PROG_TYPE_SOCK_OPS
      selftests/bpf: Test for get_netns_cookie
      bpf: Allow bpf_get_netns_cookie in BPF_PROG_TYPE_SK_MSG
      selftests/bpf: Test for get_netns_cookie

Yajun Deng (14):
      rtnetlink: use nlmsg_notify() in rtnetlink_send()
      net/sched: Remove unnecessary if statement
      netlink: Deal with ESRCH error in nlmsg_notify()
      net: netlink: add the case when nlh is NULL
      net: convert fib_treeref from int to refcount_t
      net: netlink: Remove unused function
      net: Keep vertical alignment
      net: decnet: Fix refcount warning for new dn_fib_info
      net: Remove redundant if statements
      netdevice: add the case if dev is NULL
      net: procfs: add seq_puts() statement for dev_mcast
      net: net_namespace: Optimize the code
      net: ipv4: Move ip_options_fragment() out of loop
      net: ipv4: Fix the warning for dereference

Yang Yang (1):
      net: ipv4: add capability check for net administration

Yang Yingliang (4):
      can: m_can: use devm_platform_ioremap_resource_byname
      nfp: flower-ct: fix error return code in nfp_fl_ct_add_offload()
      octeontx2-pf: cn10k: Fix error return code in otx2_set_flowkey_cfg()
      net: w5100: check return value after calling platform_get_resource()

Yevgeny Kliteynik (16):
      net/mlx5: DR, Added support for REMOVE_HEADER packet reformat
      net/mlx5: DR, Split modify VLAN state to separate pop/push states
      net/mlx5: DR, Enable VLAN pop on TX and VLAN push on RX
      net/mlx5: DR, Enable QP retransmission
      net/mlx5: DR, Improve error flow in actions_build_ste_arr
      net/mlx5: DR, Warn and ignore SW steering rule insertion on QP err
      net/mlx5: DR, Support IPv6 matching on flow label for STEv0
      net/mlx5: DR, replace uintN_t with kernel-style types
      net/mlx5: DR, Use FW API when updating FW-owned flow table
      net/mlx5: DR, Add ignore_flow_level support for multi-dest flow tables
      net/mlx5: DR, Skip source port matching on FDB RX domain
      net/mlx5: DR, Merge DR_STE_SIZE enums
      net/mlx5: DR, Remove HW specific STE type from nic domain
      net/mlx5: DR, Remove rehash ctrl struct from dr_htbl
      net/mlx5: DR, Improve rule tracking memory consumption
      net/mlx5: DR, Add support for update FTE

Yinjun Zhang (2):
      nfp: flower: make the match compilation functions reusable
      nfp: add support for coalesce adaptive feature

Yonghong Song (4):
      bpf: Emit better log message if bpf_iter ctx arg btf_id == 0
      selftests/bpf: Replace CHECK with ASSERT_* macros in send_signal.c
      selftests/bpf: Fix flaky send_signal test
      bpf: Fix NULL event->prog pointer access in bpf_overflow_handler

Yonglong Li (6):
      mptcp: move drop_other_suboptions check under pm lock
      mptcp: make MPTCP_ADD_ADDR_SIGNAL and MPTCP_ADD_ADDR_ECHO separate
      mptcp: fix ADD_ADDR and RM_ADDR maybe flush addr_signal each other
      mptcp: build ADD_ADDR/echo-ADD_ADDR option according pm.add_signal
      mptcp: remove MPTCP_ADD_ADDR_IPV6 and MPTCP_ADD_ADDR_PORT
      selftests: mptcp: add_addr and echo race test

Yuchung Cheng (1):
      tcp: more accurately detect spurious TLP probes

Yucong Sun (9):
      selftests/bpf: Add exponential backoff to map_update_retriable in test_maps
      selftests/bpf: Add exponential backoff to map_delete_retriable in test_maps
      selftests/bpf: Skip loading bpf_testmod when using -l to list tests.
      selftests/bpf: Correctly display subtest skip status
      selftests/bpf: Also print test name in subtest status message
      selftests/bpf: Support glob matching for test selector.
      selftests/bpf: Adding delay in socketmap_listen to reduce flakyness
      selftests/bpf: Reduce flakyness in timer_mim
      selftests/bpf: Reduce more flakyness in sockmap_listen

YueHaibing (1):
      mac80211: Reject zero MAC address in sta_info_insert_check()

Yufeng Mo (11):
      net: hns3: add support for registering devlink for PF
      net: hns3: add support for registering devlink for VF
      net: hns3: add support for devlink get info for PF
      net: hns3: add support for devlink get info for VF
      bonding: 3ad: fix the concurrency between __bond_release_one() and bond_3ad_state_machine_handler()
      net: hns3: add support for triggering reset by ethtool
      ethtool: add two coalesce attributes for CQE mode
      ethtool: extend coalesce setting uAPI with CQE mode
      net: hns3: add support for EQE/CQE mode configuration
      net: hns3: add ethtool support for CQE/EQE mode configuration
      net: hns3: add trace event in hclge_gen_resp_to_vf()

Yunsheng Lin (6):
      page_pool: keep pp info as long as page pool owns the page
      page_pool: add interface to manipulate frag count in page pool
      page_pool: add frag page recycling support in page pool
      net: hns3: support skb's frag page recycling based on page pool
      page_pool: use relaxed atomic for release side accounting
      sock: remove one redundant SKB_FRAG_PAGE_ORDER macro

Zekun Shen (1):
      ath9k: fix OOB read ar9300_eeprom_restore_internal

Zenghui Yu (2):
      bcma: Fix memory leak for internally-handled cores
      bcma: Drop the unused parameter of bcma_scan_read32()

Zhang Qilong (1):
      iwlwifi: mvm: fix a memory leak in iwl_mvm_mac_ctxt_beacon_changed

Zhen Lei (3):
      can: esd_usb2: use DEVICE_ATTR_RO() helper macro
      can: janz-ican3: use DEVICE_ATTR_RO/RW() helper macro
      can: at91_can: use DEVICE_ATTR_RW() helper macro

Zheng Yongjun (1):
      iwlwifi: use DEFINE_MUTEX() for mutex lock

Zvi Effron (4):
      bpf: Add function for XDP meta data length check
      bpf: Support input xdp_md context in BPF_PROG_TEST_RUN
      bpf: Support specifying ingress via xdp_md context in BPF_PROG_TEST_RUN
      selftests/bpf: Add test for xdp_md context in BPF_PROG_TEST_RUN

chongjiapeng (1):
      net: phy: Remove unused including <linux/version.h>

dingsenjie (2):
      libertas: Remove unnecessary label of lbs_ethtool_get_eeprom
      mac80211: Remove unnecessary variable and label

grantseltzer (1):
      bpf: Reconfigure libbpf docs to remove unversioned API

gushengxian (1):
      can: j1939: j1939_sk_sock_destruct(): correct a grammatical error

jing yangyang (1):
      tools/net: Use bitwise instead of arithmetic operator for flags

mark-yw.chen (4):
      Bluetooth: btusb: Enable MSFT extension for Mediatek Chip (MT7921)
      Bluetooth: btusb: Record debug log for Mediatek Chip.
      Bluetooth: btusb: Support Bluetooth Reset for Mediatek Chip(MT7921)
      Bluetooth: btusb: Fix fall-through warnings

wengjianfeng (2):
      nfc: s3fwrn5: remove unnecessary label
      wilc1000: remove redundant code

zhouchuangao (1):
      qed: Remove duplicated include of kernel.h

王贇 (1):
      net: fix NULL pointer reference in cipso_v4_doi_free

 .mailmap                                           |    2 +
 Documentation/admin-guide/kernel-parameters.txt    |    2 -
 Documentation/bpf/index.rst                        |   10 +-
 Documentation/bpf/libbpf/{libbpf.rst => index.rst} |    8 +
 Documentation/bpf/libbpf/libbpf_api.rst            |   27 -
 .../bpf/libbpf/libbpf_naming_convention.rst        |    2 +-
 .../devicetree/bindings/net/brcm,unimac-mdio.txt   |   43 -
 .../devicetree/bindings/net/brcm,unimac-mdio.yaml  |   84 +
 .../devicetree/bindings/net/can/bosch,c_can.yaml   |  119 +
 .../devicetree/bindings/net/can/bosch,m_can.yaml   |    9 +
 .../devicetree/bindings/net/can/c_can.txt          |   65 -
 .../bindings/net/can/can-controller.yaml           |    9 +
 .../devicetree/bindings/net/can/fsl,flexcan.yaml   |   17 +
 .../bindings/net/can/renesas,rcar-canfd.yaml       |   69 +-
 Documentation/devicetree/bindings/net/fsl,fec.yaml |  244 ++
 Documentation/devicetree/bindings/net/fsl-fec.txt  |   95 -
 .../bindings/net/intel,ixp46x-ptp-timer.yaml       |   54 +
 .../devicetree/bindings/net/litex,liteeth.yaml     |   98 +
 Documentation/devicetree/bindings/net/macb.txt     |    1 +
 .../devicetree/bindings/net/qcom,ipa.yaml          |   24 +-
 .../devicetree/bindings/net/qcom,ipq4019-mdio.yaml |   15 +-
 Documentation/driver-api/nfc/nfc-hci.rst           |    2 +-
 Documentation/networking/batman-adv.rst            |    2 +-
 Documentation/networking/bonding.rst               |   12 +
 .../ethernet/freescale/dpaa2/index.rst             |    1 +
 .../ethernet/freescale/dpaa2/switch-driver.rst     |  217 ++
 .../device_drivers/ethernet/mellanox/mlx5.rst      |   44 +
 .../networking/devlink/devlink-params.rst          |   12 +
 Documentation/networking/devlink/hns3.rst          |   25 +
 Documentation/networking/devlink/index.rst         |    2 +-
 Documentation/networking/devlink/sja1105.rst       |   49 -
 Documentation/networking/dsa/dsa.rst               |   29 +-
 Documentation/networking/dsa/sja1105.rst           |  218 +-
 Documentation/networking/ethtool-netlink.rst       |   23 +
 Documentation/networking/filter.rst                |   27 +-
 Documentation/networking/index.rst                 |    2 +
 Documentation/networking/ioam6-sysctl.rst          |   26 +
 Documentation/networking/ip-sysctl.rst             |   17 +
 Documentation/networking/mctp.rst                  |  213 ++
 Documentation/networking/mptcp-sysctl.rst          |   12 +
 Documentation/networking/netdevices.rst            |   29 +
 Documentation/networking/nf_conntrack-sysctl.rst   |    7 +
 Documentation/networking/pktgen.rst                |   18 +-
 Documentation/networking/timestamping.rst          |    6 +-
 Documentation/networking/vrf.rst                   |   13 +
 MAINTAINERS                                        |   47 +-
 arch/alpha/include/uapi/asm/socket.h               |    2 +
 arch/arm/boot/dts/imx35.dtsi                       |    2 +-
 arch/arm/boot/dts/imx6q-novena.dts                 |   34 +-
 arch/arm/boot/dts/imx6qdl-aristainetos2.dtsi       |   18 +-
 arch/arm/boot/dts/imx6qdl-nit6xlite.dtsi           |   34 +-
 arch/arm/boot/dts/imx6qdl-nitrogen6_max.dtsi       |   34 +-
 arch/arm/boot/dts/imx6qdl-nitrogen6x.dtsi          |   34 +-
 arch/arm/boot/dts/imx6qdl-sabrelite.dtsi           |   34 +-
 arch/arm/boot/dts/imx7-mba7.dtsi                   |    1 -
 arch/arm/boot/dts/imx7d-mba7.dts                   |    1 -
 arch/arm/mach-ixp4xx/common.c                      |   14 +
 arch/arm64/boot/dts/freescale/imx8mm.dtsi          |    2 +-
 arch/arm64/boot/dts/freescale/imx8mn.dtsi          |    2 +-
 arch/arm64/boot/dts/freescale/imx8qxp-ss-conn.dtsi |    4 +-
 arch/arm64/boot/dts/microchip/sparx5.dtsi          |    5 +-
 arch/arm64/include/asm/compat.h                    |   14 +-
 arch/mips/include/asm/compat.h                     |   24 +-
 arch/mips/include/uapi/asm/socket.h                |    2 +
 arch/parisc/include/asm/compat.h                   |   14 +-
 arch/parisc/include/uapi/asm/socket.h              |    2 +
 arch/powerpc/include/asm/compat.h                  |   11 -
 arch/s390/include/asm/ccwgroup.h                   |    2 -
 arch/s390/include/asm/compat.h                     |   14 +-
 arch/sparc/include/asm/compat.h                    |   14 +-
 arch/sparc/include/uapi/asm/socket.h               |    2 +
 arch/um/drivers/vector_kern.c                      |    8 +-
 arch/x86/include/asm/compat.h                      |   14 +-
 arch/x86/include/asm/signal.h                      |    1 +
 arch/x86/net/bpf_jit_comp.c                        |   19 +
 drivers/atm/horizon.c                              |    6 +-
 drivers/atm/idt77252.c                             |    2 +-
 drivers/bcma/main.c                                |    6 +-
 drivers/bcma/scan.c                                |    7 +-
 drivers/bluetooth/btbcm.c                          |    1 +
 drivers/bluetooth/btintel.c                        | 1314 ++++++++-
 drivers/bluetooth/btintel.h                        |  119 +-
 drivers/bluetooth/btmrvl_sdio.c                    |   29 +-
 drivers/bluetooth/btrsi.c                          |    2 +-
 drivers/bluetooth/btrtl.c                          |   10 +-
 drivers/bluetooth/btusb.c                          | 1510 +++-------
 drivers/bluetooth/hci_bcm.c                        |    6 +
 drivers/bluetooth/hci_h5.c                         |  116 +-
 drivers/bluetooth/hci_serdev.c                     |    3 +
 drivers/bluetooth/hci_uart.h                       |    7 +-
 drivers/bus/fsl-mc/fsl-mc-bus.c                    |    4 +-
 drivers/bus/mhi/pci_generic.c                      |    4 +
 drivers/char/pcmcia/synclink_cs.c                  |   23 +-
 drivers/infiniband/hw/mlx5/cq.c                    |    2 +-
 drivers/infiniband/hw/mlx5/devx.c                  |    7 +-
 drivers/infiniband/hw/mlx5/ib_rep.c                |   77 +-
 drivers/infiniband/hw/mlx5/main.c                  |   44 +-
 drivers/infiniband/hw/mlx5/std_types.c             |   10 +-
 drivers/infiniband/ulp/ipoib/ipoib_ethtool.c       |    8 +-
 drivers/infiniband/ulp/ipoib/ipoib_main.c          |    8 +-
 drivers/media/rc/bpf-lirc.c                        |    6 +-
 drivers/net/Kconfig                                |   17 +-
 drivers/net/Makefile                               |    6 +-
 drivers/net/Space.c                                |  178 +-
 drivers/net/appletalk/Kconfig                      |    4 +-
 drivers/net/appletalk/ipddp.c                      |   16 +-
 drivers/net/appletalk/ltpc.c                       |    7 +-
 drivers/net/bonding/bond_3ad.c                     |   11 +-
 drivers/net/bonding/bond_alb.c                     |   32 -
 drivers/net/bonding/bond_main.c                    |  591 +++-
 drivers/net/bonding/bond_netlink.c                 |   16 +
 drivers/net/bonding/bond_options.c                 |   27 +
 drivers/net/bonding/bond_procfs.c                  |    2 +
 drivers/net/bonding/bond_sysfs.c                   |   25 +-
 drivers/net/can/Kconfig                            |    3 +-
 drivers/net/can/at91_can.c                         |  137 +-
 drivers/net/can/c_can/c_can.h                      |   25 +-
 drivers/net/can/c_can/c_can_main.c                 |  123 +-
 drivers/net/can/c_can/c_can_platform.c             |    1 -
 drivers/net/can/dev/dev.c                          |   66 +
 drivers/net/can/dev/netlink.c                      |   11 +-
 drivers/net/can/dev/rx-offload.c                   |   90 +-
 drivers/net/can/flexcan.c                          |  129 +-
 drivers/net/can/janz-ican3.c                       |   23 +-
 drivers/net/can/m_can/m_can.c                      |  266 +-
 drivers/net/can/m_can/m_can.h                      |   11 +-
 drivers/net/can/m_can/m_can_pci.c                  |   11 +-
 drivers/net/can/m_can/m_can_platform.c             |   31 +-
 drivers/net/can/m_can/tcan4x5x-core.c              |   17 +-
 drivers/net/can/mscan/mpc5xxx_can.c                |    7 +-
 drivers/net/can/rcar/Kconfig                       |    4 +-
 drivers/net/can/rcar/rcar_canfd.c                  |  338 ++-
 drivers/net/can/sja1000/peak_pci.c                 |  119 +-
 drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c     |   30 +-
 .../net/can/spi/mcp251xfd/mcp251xfd-timestamp.c    |    4 +-
 drivers/net/can/spi/mcp251xfd/mcp251xfd.h          |    2 +-
 drivers/net/can/ti_hecc.c                          |    2 +
 drivers/net/can/usb/esd_usb2.c                     |   12 +-
 drivers/net/can/usb/etas_es58x/es581_4.c           |    5 +-
 drivers/net/can/usb/etas_es58x/es58x_core.c        |   82 +-
 drivers/net/can/usb/etas_es58x/es58x_core.h        |    2 +-
 drivers/net/can/usb/etas_es58x/es58x_fd.c          |   19 +-
 drivers/net/can/usb/etas_es58x/es58x_fd.h          |   23 +-
 drivers/net/can/usb/peak_usb/pcan_usb.c            |  228 +-
 drivers/net/dsa/b53/b53_common.c                   |   10 -
 drivers/net/dsa/b53/b53_priv.h                     |    2 -
 drivers/net/dsa/bcm_sf2.c                          |    1 -
 drivers/net/dsa/hirschmann/hellcreek.c             |    1 +
 drivers/net/dsa/mt7530.c                           |  173 +-
 drivers/net/dsa/mt7530.h                           |   23 +-
 drivers/net/dsa/mv88e6xxx/Kconfig                  |    1 +
 drivers/net/dsa/mv88e6xxx/chip.c                   |  103 +-
 drivers/net/dsa/ocelot/Kconfig                     |    2 +
 drivers/net/dsa/ocelot/felix.c                     |  153 +-
 drivers/net/dsa/ocelot/felix.h                     |    2 +-
 drivers/net/dsa/sja1105/Kconfig                    |    1 +
 drivers/net/dsa/sja1105/sja1105.h                  |   33 +-
 drivers/net/dsa/sja1105/sja1105_devlink.c          |  114 +-
 drivers/net/dsa/sja1105/sja1105_dynamic_config.c   |    6 +-
 drivers/net/dsa/sja1105/sja1105_main.c             | 1960 +++++--------
 drivers/net/dsa/sja1105/sja1105_spi.c              |   10 -
 drivers/net/dsa/sja1105/sja1105_vl.c               |   14 +-
 drivers/net/eql.c                                  |   24 +-
 drivers/net/ethernet/3com/3c509.c                  |    7 +-
 drivers/net/ethernet/3com/3c515.c                  |    3 +-
 drivers/net/ethernet/3com/3c574_cs.c               |    2 +-
 drivers/net/ethernet/3com/3c59x.c                  |    4 +-
 drivers/net/ethernet/3com/Kconfig                  |    1 +
 drivers/net/ethernet/8390/Kconfig                  |    3 +
 drivers/net/ethernet/8390/apne.c                   |   11 +-
 drivers/net/ethernet/8390/ax88796.c                |    9 +-
 drivers/net/ethernet/8390/axnet_cs.c               |    2 +-
 drivers/net/ethernet/8390/ne.c                     |    5 +-
 drivers/net/ethernet/8390/pcnet_cs.c               |    2 +-
 drivers/net/ethernet/8390/smc-ultra.c              |    9 +-
 drivers/net/ethernet/8390/wd.c                     |    7 +-
 drivers/net/ethernet/8390/xsurf100.c               |    9 +-
 drivers/net/ethernet/Kconfig                       |    1 +
 drivers/net/ethernet/Makefile                      |    1 +
 drivers/net/ethernet/actions/Kconfig               |    4 +-
 drivers/net/ethernet/actions/owl-emac.c            |    6 +-
 drivers/net/ethernet/adaptec/starfire.c            |    2 +-
 drivers/net/ethernet/agere/et131x.c                |    2 +-
 drivers/net/ethernet/allwinner/sun4i-emac.c        |    2 +-
 drivers/net/ethernet/amazon/ena/ena_ethtool.c      |    8 +-
 drivers/net/ethernet/amd/Kconfig                   |    4 +-
 drivers/net/ethernet/amd/amd8111e.c                |    2 +-
 drivers/net/ethernet/amd/atarilance.c              |   11 +-
 drivers/net/ethernet/amd/au1000_eth.c              |    2 +-
 drivers/net/ethernet/amd/lance.c                   |    6 +-
 drivers/net/ethernet/amd/mvme147.c                 |   16 +-
 drivers/net/ethernet/amd/ni65.c                    |    6 +-
 drivers/net/ethernet/amd/pcnet32.c                 |    2 +-
 drivers/net/ethernet/amd/sun3lance.c               |   19 +-
 drivers/net/ethernet/amd/xgbe/xgbe-drv.c           |    2 +-
 drivers/net/ethernet/amd/xgbe/xgbe-ethtool.c       |    8 +-
 .../net/ethernet/aquantia/atlantic/aq_ethtool.c    |    8 +-
 drivers/net/ethernet/aquantia/atlantic/aq_main.c   |    2 +-
 .../net/ethernet/aquantia/atlantic/aq_pci_func.c   |   15 +-
 drivers/net/ethernet/arc/emac_main.c               |    2 +-
 drivers/net/ethernet/atheros/ag71xx.c              |    2 +-
 drivers/net/ethernet/atheros/alx/main.c            |    2 +-
 drivers/net/ethernet/atheros/atl1c/atl1c_main.c    |    2 +-
 drivers/net/ethernet/atheros/atl1e/atl1e_main.c    |    2 +-
 drivers/net/ethernet/atheros/atlx/atl1.c           |    2 +-
 drivers/net/ethernet/atheros/atlx/atl2.c           |    2 +-
 drivers/net/ethernet/broadcom/Kconfig              |    6 +-
 drivers/net/ethernet/broadcom/b44.c                |    2 +-
 drivers/net/ethernet/broadcom/bcm63xx_enet.c       |    5 +-
 drivers/net/ethernet/broadcom/bcmsysport.c         |    8 +-
 drivers/net/ethernet/broadcom/bgmac.c              |    2 +-
 drivers/net/ethernet/broadcom/bnx2.c               |   70 +-
 .../net/ethernet/broadcom/bnx2x/bnx2x_ethtool.c    |    8 +-
 drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c   |    2 +-
 drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.c  |    6 -
 drivers/net/ethernet/broadcom/bnxt/Makefile        |    2 +-
 drivers/net/ethernet/broadcom/bnxt/bnxt.c          | 2312 ++++++++--------
 drivers/net/ethernet/broadcom/bnxt/bnxt.h          |  135 +-
 drivers/net/ethernet/broadcom/bnxt/bnxt_dcb.c      |  185 +-
 drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c  |   90 +-
 drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c  |  573 ++--
 drivers/net/ethernet/broadcom/bnxt/bnxt_hwrm.c     |  763 +++++
 drivers/net/ethernet/broadcom/bnxt/bnxt_hwrm.h     |  145 +
 drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c      |  391 ++-
 drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.h      |   53 +
 drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c    |  455 +--
 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c       |  264 +-
 drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c      |   31 +-
 drivers/net/ethernet/broadcom/bnxt/bnxt_vfr.c      |   62 +-
 drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c      |    2 +-
 drivers/net/ethernet/broadcom/genet/bcmgenet.c     |   12 +-
 drivers/net/ethernet/broadcom/sb1250-mac.c         |    2 +-
 drivers/net/ethernet/broadcom/tg3.c                |   81 +-
 drivers/net/ethernet/brocade/bna/bnad_ethtool.c    |   12 +-
 drivers/net/ethernet/cadence/Kconfig               |    1 +
 drivers/net/ethernet/cadence/macb_main.c           |   13 +-
 drivers/net/ethernet/cavium/Kconfig                |    4 +-
 drivers/net/ethernet/cavium/liquidio/lio_ethtool.c |    8 +-
 drivers/net/ethernet/cavium/liquidio/lio_main.c    |   11 +-
 drivers/net/ethernet/cavium/liquidio/lio_vf_main.c |    6 +-
 drivers/net/ethernet/cavium/octeon/octeon_mgmt.c   |    2 +-
 drivers/net/ethernet/cavium/thunder/nic_main.c     |    8 +-
 .../net/ethernet/cavium/thunder/nicvf_ethtool.c    |    4 +-
 drivers/net/ethernet/cavium/thunder/nicvf_main.c   |   10 +-
 drivers/net/ethernet/chelsio/Kconfig               |    1 +
 drivers/net/ethernet/chelsio/cxgb/cxgb2.c          |   10 +-
 drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c    |   32 +-
 drivers/net/ethernet/chelsio/cxgb3/sge.c           |  101 +-
 drivers/net/ethernet/chelsio/cxgb4/cxgb4_ethtool.c |    8 +-
 drivers/net/ethernet/chelsio/cxgb4/cxgb4_filter.c  |    4 +-
 drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c    |   17 +-
 drivers/net/ethernet/chelsio/cxgb4/sge.c           |    8 +-
 .../net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c    |   20 +-
 drivers/net/ethernet/chelsio/cxgb4vf/sge.c         |    8 +-
 drivers/net/ethernet/cirrus/Kconfig                |   27 +-
 drivers/net/ethernet/cirrus/cs89x0.c               |   31 +-
 drivers/net/ethernet/cirrus/ep93xx_eth.c           |    2 +-
 drivers/net/ethernet/cisco/enic/enic_ethtool.c     |    8 +-
 drivers/net/ethernet/cortina/gemini.c              |    8 +-
 drivers/net/ethernet/davicom/dm9000.c              |    2 +-
 drivers/net/ethernet/dec/tulip/de4x5.c             |   11 +-
 drivers/net/ethernet/dec/tulip/media.c             |    2 +-
 drivers/net/ethernet/dec/tulip/tulip_core.c        |    2 +-
 drivers/net/ethernet/dec/tulip/winbond-840.c       |    2 +-
 drivers/net/ethernet/dlink/dl2k.c                  |    2 +-
 drivers/net/ethernet/dlink/sundance.c              |    2 +-
 drivers/net/ethernet/dnet.c                        |    2 +-
 drivers/net/ethernet/ec_bhf.c                      |   10 +-
 drivers/net/ethernet/emulex/benet/be_ethtool.c     |    8 +-
 drivers/net/ethernet/ethoc.c                       |    2 +-
 drivers/net/ethernet/faraday/ftgmac100.c           |    2 +-
 drivers/net/ethernet/faraday/ftmac100.c            |    2 +-
 drivers/net/ethernet/fealnx.c                      |    2 +-
 drivers/net/ethernet/freescale/Kconfig             |    2 +-
 drivers/net/ethernet/freescale/dpaa/Kconfig        |    1 -
 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c     |    2 +-
 drivers/net/ethernet/freescale/dpaa/dpaa_ethtool.c |    8 +-
 drivers/net/ethernet/freescale/dpaa2/Makefile      |    2 +-
 .../ethernet/freescale/dpaa2/dpaa2-eth-devlink.c   |    7 +-
 drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c   |    4 +-
 .../net/ethernet/freescale/dpaa2/dpaa2-ethtool.c   |    8 +-
 .../freescale/dpaa2/dpaa2-switch-ethtool.c         |   56 +-
 .../ethernet/freescale/dpaa2/dpaa2-switch-flower.c |  530 +++-
 .../net/ethernet/freescale/dpaa2/dpaa2-switch.c    |  384 ++-
 .../net/ethernet/freescale/dpaa2/dpaa2-switch.h    |   62 +-
 drivers/net/ethernet/freescale/dpaa2/dpsw-cmd.h    |   19 +
 drivers/net/ethernet/freescale/dpaa2/dpsw.c        |   80 +
 drivers/net/ethernet/freescale/dpaa2/dpsw.h        |   36 +
 .../net/ethernet/freescale/enetc/enetc_ethtool.c   |    8 +-
 drivers/net/ethernet/freescale/enetc/enetc_pf.c    |    2 +-
 drivers/net/ethernet/freescale/enetc/enetc_vf.c    |    2 +-
 drivers/net/ethernet/freescale/fec.h               |   31 +
 drivers/net/ethernet/freescale/fec_main.c          |  212 +-
 drivers/net/ethernet/freescale/fec_mpc52xx.c       |    2 +-
 .../net/ethernet/freescale/fs_enet/fs_enet-main.c  |    2 +-
 drivers/net/ethernet/freescale/gianfar.c           |    2 +-
 drivers/net/ethernet/freescale/gianfar_ethtool.c   |    8 +-
 drivers/net/ethernet/freescale/ucc_geth.c          |    2 +-
 drivers/net/ethernet/google/gve/gve_adminq.c       |    6 +-
 drivers/net/ethernet/hisilicon/Kconfig             |    4 +-
 drivers/net/ethernet/hisilicon/hip04_eth.c         |    8 +-
 drivers/net/ethernet/hisilicon/hisi_femac.c        |    2 +-
 drivers/net/ethernet/hisilicon/hns/hns_enet.c      |    2 +-
 drivers/net/ethernet/hisilicon/hns/hns_ethtool.c   |   12 +-
 drivers/net/ethernet/hisilicon/hns3/hclge_mbx.h    |    2 +-
 drivers/net/ethernet/hisilicon/hns3/hnae3.h        |    5 +-
 drivers/net/ethernet/hisilicon/hns3/hns3_debugfs.c |   17 +-
 drivers/net/ethernet/hisilicon/hns3/hns3_enet.c    |  228 +-
 drivers/net/ethernet/hisilicon/hns3/hns3_enet.h    |   37 +-
 drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c |  265 +-
 drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.h |   31 +
 .../net/ethernet/hisilicon/hns3/hns3pf/Makefile    |    2 +-
 .../net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.c |   75 +-
 .../net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.h |   34 +-
 .../net/ethernet/hisilicon/hns3/hns3pf/hclge_dcb.c |   51 +-
 .../ethernet/hisilicon/hns3/hns3pf/hclge_debugfs.c |   70 +-
 .../ethernet/hisilicon/hns3/hns3pf/hclge_devlink.c |  148 +
 .../ethernet/hisilicon/hns3/hns3pf/hclge_devlink.h |   15 +
 .../net/ethernet/hisilicon/hns3/hns3pf/hclge_err.c | 1665 +++++++----
 .../ethernet/hisilicon/hns3/hns3pf/hclge_main.c    |  186 +-
 .../ethernet/hisilicon/hns3/hns3pf/hclge_main.h    |   30 +-
 .../net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c |   11 +-
 .../net/ethernet/hisilicon/hns3/hns3pf/hclge_ptp.h |    2 +-
 .../net/ethernet/hisilicon/hns3/hns3vf/Makefile    |    2 +-
 .../ethernet/hisilicon/hns3/hns3vf/hclgevf_cmd.c   |   29 +-
 .../ethernet/hisilicon/hns3/hns3vf/hclgevf_cmd.h   |   16 +-
 .../hisilicon/hns3/hns3vf/hclgevf_devlink.c        |  150 +
 .../hisilicon/hns3/hns3vf/hclgevf_devlink.h        |   15 +
 .../ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c  |   31 +-
 .../ethernet/hisilicon/hns3/hns3vf/hclgevf_main.h  |   25 +-
 .../ethernet/hisilicon/hns3/hns3vf/hclgevf_mbx.c   |  122 +-
 drivers/net/ethernet/huawei/hinic/hinic_devlink.c  |    8 +-
 drivers/net/ethernet/huawei/hinic/hinic_devlink.h  |    4 +-
 drivers/net/ethernet/huawei/hinic/hinic_ethtool.c  |    8 +-
 drivers/net/ethernet/huawei/hinic/hinic_hw_dev.c   |    2 +-
 drivers/net/ethernet/huawei/hinic/hinic_main.c     |   19 +-
 drivers/net/ethernet/huawei/hinic/hinic_sriov.c    |    6 +-
 drivers/net/ethernet/i825xx/82596.c                |   24 +-
 drivers/net/ethernet/i825xx/sun3_82586.c           |   17 +-
 drivers/net/ethernet/ibm/emac/core.c               |    4 +-
 drivers/net/ethernet/ibm/ibmveth.c                 |    2 +-
 drivers/net/ethernet/intel/Kconfig                 |   12 +-
 drivers/net/ethernet/intel/e100.c                  |    6 +-
 drivers/net/ethernet/intel/e1000/e1000_ethtool.c   |    8 +-
 drivers/net/ethernet/intel/e1000/e1000_main.c      |    2 +-
 drivers/net/ethernet/intel/e1000e/ethtool.c        |   10 +-
 drivers/net/ethernet/intel/e1000e/hw.h             |    9 +
 drivers/net/ethernet/intel/e1000e/ich8lan.c        |   13 +-
 drivers/net/ethernet/intel/e1000e/ich8lan.h        |    3 +
 drivers/net/ethernet/intel/e1000e/netdev.c         |  372 +--
 drivers/net/ethernet/intel/e1000e/ptp.c            |    1 +
 drivers/net/ethernet/intel/e1000e/regs.h           |    1 +
 drivers/net/ethernet/intel/fm10k/fm10k_ethtool.c   |    8 +-
 drivers/net/ethernet/intel/i40e/i40e.h             |   78 +
 drivers/net/ethernet/intel/i40e/i40e_ethtool.c     |   12 +-
 drivers/net/ethernet/intel/i40e/i40e_main.c        |   32 +-
 drivers/net/ethernet/intel/i40e/i40e_ptp.c         |  756 ++++-
 drivers/net/ethernet/intel/i40e/i40e_register.h    |   29 +
 drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c |   23 +-
 drivers/net/ethernet/intel/iavf/iavf.h             |    9 +-
 drivers/net/ethernet/intel/iavf/iavf_ethtool.c     |   22 +-
 drivers/net/ethernet/intel/iavf/iavf_main.c        |  122 +-
 drivers/net/ethernet/intel/ice/ice_devlink.c       |    4 +-
 drivers/net/ethernet/intel/ice/ice_ethtool.c       |   12 +-
 drivers/net/ethernet/intel/ice/ice_main.c          |   19 +-
 drivers/net/ethernet/intel/ice/ice_ptp.c           |   66 +-
 drivers/net/ethernet/intel/igb/e1000_mac.c         |    6 +-
 drivers/net/ethernet/intel/igb/igb_ethtool.c       |   11 +-
 drivers/net/ethernet/intel/igb/igb_main.c          |    2 +-
 drivers/net/ethernet/intel/igbvf/ethtool.c         |    8 +-
 drivers/net/ethernet/intel/igbvf/netdev.c          |    2 +-
 drivers/net/ethernet/intel/igc/igc.h               |   50 +-
 drivers/net/ethernet/intel/igc/igc_base.c          |   10 +-
 drivers/net/ethernet/intel/igc/igc_defines.h       |   91 +-
 drivers/net/ethernet/intel/igc/igc_ethtool.c       |   49 +-
 drivers/net/ethernet/intel/igc/igc_main.c          |  465 +++-
 drivers/net/ethernet/intel/igc/igc_phy.c           |    6 +-
 drivers/net/ethernet/intel/igc/igc_ptp.c           |  179 ++
 drivers/net/ethernet/intel/igc/igc_regs.h          |   43 +
 drivers/net/ethernet/intel/igc/igc_tsn.c           |  176 +-
 drivers/net/ethernet/intel/igc/igc_tsn.h           |    1 +
 drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c   |    8 +-
 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c      |    2 +-
 drivers/net/ethernet/intel/ixgbevf/ethtool.c       |    8 +-
 drivers/net/ethernet/jme.c                         |   84 +-
 drivers/net/ethernet/korina.c                      |    2 +-
 drivers/net/ethernet/lantiq_etop.c                 |    2 +-
 drivers/net/ethernet/litex/Kconfig                 |   28 +
 drivers/net/ethernet/litex/Makefile                |    5 +
 drivers/net/ethernet/litex/litex_liteeth.c         |  314 +++
 drivers/net/ethernet/marvell/mv643xx_eth.c         |   14 +-
 drivers/net/ethernet/marvell/mvneta.c              |   44 +-
 drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c    |   27 +-
 drivers/net/ethernet/marvell/octeontx2/Kconfig     |    4 +-
 drivers/net/ethernet/marvell/octeontx2/af/Makefile |    5 +-
 drivers/net/ethernet/marvell/octeontx2/af/cgx.c    |    5 +-
 drivers/net/ethernet/marvell/octeontx2/af/cgx.h    |    7 +-
 .../net/ethernet/marvell/octeontx2/af/cgx_fw_if.h  |    7 +-
 drivers/net/ethernet/marvell/octeontx2/af/common.h |   31 +-
 .../ethernet/marvell/octeontx2/af/lmac_common.h    |    3 +-
 drivers/net/ethernet/marvell/octeontx2/af/mbox.c   |    9 +-
 drivers/net/ethernet/marvell/octeontx2/af/mbox.h   |  114 +-
 drivers/net/ethernet/marvell/octeontx2/af/npc.h    |    9 +-
 .../ethernet/marvell/octeontx2/af/npc_profile.h    |    7 +-
 drivers/net/ethernet/marvell/octeontx2/af/ptp.c    |   46 +-
 drivers/net/ethernet/marvell/octeontx2/af/ptp.h    |    3 +-
 drivers/net/ethernet/marvell/octeontx2/af/rpm.c    |    2 +-
 drivers/net/ethernet/marvell/octeontx2/af/rpm.h    |    2 +-
 drivers/net/ethernet/marvell/octeontx2/af/rvu.c    |  226 +-
 drivers/net/ethernet/marvell/octeontx2/af/rvu.h    |   65 +-
 .../net/ethernet/marvell/octeontx2/af/rvu_cgx.c    |   19 +-
 .../net/ethernet/marvell/octeontx2/af/rvu_cn10k.c  |  127 +-
 .../net/ethernet/marvell/octeontx2/af/rvu_cpt.c    |    6 +-
 .../ethernet/marvell/octeontx2/af/rvu_debugfs.c    |    7 +-
 .../ethernet/marvell/octeontx2/af/rvu_devlink.c    |  117 +-
 .../ethernet/marvell/octeontx2/af/rvu_devlink.h    |    2 +-
 .../net/ethernet/marvell/octeontx2/af/rvu_nix.c    |  706 ++++-
 .../net/ethernet/marvell/octeontx2/af/rvu_npa.c    |   18 +-
 .../net/ethernet/marvell/octeontx2/af/rvu_npc.c    |  135 +-
 .../net/ethernet/marvell/octeontx2/af/rvu_npc_fs.c |   76 +-
 .../net/ethernet/marvell/octeontx2/af/rvu_reg.c    |   11 +-
 .../net/ethernet/marvell/octeontx2/af/rvu_reg.h    |   16 +-
 .../net/ethernet/marvell/octeontx2/af/rvu_sdp.c    |  108 +
 .../net/ethernet/marvell/octeontx2/af/rvu_struct.h |    7 +-
 .../net/ethernet/marvell/octeontx2/af/rvu_switch.c |    3 +-
 .../net/ethernet/marvell/octeontx2/af/rvu_trace.c  |    5 +-
 .../net/ethernet/marvell/octeontx2/af/rvu_trace.h  |   15 +-
 .../net/ethernet/marvell/octeontx2/nic/Makefile    |    7 +-
 drivers/net/ethernet/marvell/octeontx2/nic/cn10k.c |    8 +-
 drivers/net/ethernet/marvell/octeontx2/nic/cn10k.h |   21 +-
 .../ethernet/marvell/octeontx2/nic/otx2_common.c   |   84 +-
 .../ethernet/marvell/octeontx2/nic/otx2_common.h   |   46 +-
 .../ethernet/marvell/octeontx2/nic/otx2_devlink.c  |  156 ++
 .../ethernet/marvell/octeontx2/nic/otx2_devlink.h  |   20 +
 .../ethernet/marvell/octeontx2/nic/otx2_dmac_flt.c |    3 +-
 .../ethernet/marvell/octeontx2/nic/otx2_ethtool.c  |   72 +-
 .../ethernet/marvell/octeontx2/nic/otx2_flows.c    |  154 +-
 .../net/ethernet/marvell/octeontx2/nic/otx2_pf.c   |   69 +-
 .../net/ethernet/marvell/octeontx2/nic/otx2_ptp.c  |    5 +-
 .../net/ethernet/marvell/octeontx2/nic/otx2_ptp.h  |    6 +-
 .../net/ethernet/marvell/octeontx2/nic/otx2_reg.h  |    7 +-
 .../ethernet/marvell/octeontx2/nic/otx2_struct.h   |    7 +-
 .../net/ethernet/marvell/octeontx2/nic/otx2_tc.c   |   58 +-
 .../net/ethernet/marvell/octeontx2/nic/otx2_txrx.c |    7 +-
 .../net/ethernet/marvell/octeontx2/nic/otx2_txrx.h |    7 +-
 .../net/ethernet/marvell/octeontx2/nic/otx2_vf.c   |   42 +-
 .../ethernet/marvell/prestera/prestera_devlink.c   |    7 +-
 .../ethernet/marvell/prestera/prestera_devlink.h   |    2 +-
 .../net/ethernet/marvell/prestera/prestera_main.c  |    5 +-
 .../ethernet/marvell/prestera/prestera_switchdev.c |   12 +-
 .../ethernet/marvell/prestera/prestera_switchdev.h |    3 +-
 drivers/net/ethernet/marvell/pxa168_eth.c          |    2 +-
 drivers/net/ethernet/marvell/skge.c                |   10 +-
 drivers/net/ethernet/marvell/sky2.c                |   14 +-
 drivers/net/ethernet/mediatek/mtk_eth_soc.c        |    2 +-
 drivers/net/ethernet/mediatek/mtk_star_emac.c      |    2 +-
 drivers/net/ethernet/mellanox/mlx4/Kconfig         |    2 +-
 drivers/net/ethernet/mellanox/mlx4/en_ethtool.c    |    8 +-
 drivers/net/ethernet/mellanox/mlx4/en_netdev.c     |    2 +-
 drivers/net/ethernet/mellanox/mlx4/en_rx.c         |    4 +-
 drivers/net/ethernet/mellanox/mlx4/en_tx.c         |   14 +-
 drivers/net/ethernet/mellanox/mlx4/main.c          |   17 +-
 drivers/net/ethernet/mellanox/mlx4/qp.c            |    4 +-
 drivers/net/ethernet/mellanox/mlx5/core/Kconfig    |    2 +-
 drivers/net/ethernet/mellanox/mlx5/core/Makefile   |   18 +-
 drivers/net/ethernet/mellanox/mlx5/core/cmd.c      |    8 +-
 drivers/net/ethernet/mellanox/mlx5/core/cq.c       |    3 +-
 drivers/net/ethernet/mellanox/mlx5/core/dev.c      |   76 +-
 drivers/net/ethernet/mellanox/mlx5/core/devlink.c  |  176 +-
 drivers/net/ethernet/mellanox/mlx5/core/devlink.h  |    4 +-
 drivers/net/ethernet/mellanox/mlx5/core/en.h       |   84 +-
 .../net/ethernet/mellanox/mlx5/core/en/channels.c  |   46 +
 .../net/ethernet/mellanox/mlx5/core/en/channels.h  |   16 +
 .../net/ethernet/mellanox/mlx5/core/en/devlink.c   |   10 +-
 drivers/net/ethernet/mellanox/mlx5/core/en/fs.h    |   99 +-
 .../mellanox/mlx5/core/en/fs_tt_redirect.c         |   30 +-
 .../mellanox/mlx5/core/en/fs_tt_redirect.h         |    2 +-
 .../net/ethernet/mellanox/mlx5/core/en/mapping.c   |   45 +
 .../net/ethernet/mellanox/mlx5/core/en/mapping.h   |    5 +
 .../net/ethernet/mellanox/mlx5/core/en/params.c    |   12 +
 .../net/ethernet/mellanox/mlx5/core/en/params.h    |    6 +
 drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c   |   24 +-
 drivers/net/ethernet/mellanox/mlx5/core/en/qos.c   |   17 +-
 drivers/net/ethernet/mellanox/mlx5/core/en/qos.h   |    4 +-
 .../ethernet/mellanox/mlx5/core/en/rep/bridge.c    |  329 ++-
 .../net/ethernet/mellanox/mlx5/core/en/rep/tc.c    |   48 +-
 .../ethernet/mellanox/mlx5/core/en/reporter_tx.c   |    8 +-
 drivers/net/ethernet/mellanox/mlx5/core/en/rqt.c   |  170 ++
 drivers/net/ethernet/mellanox/mlx5/core/en/rqt.h   |   42 +
 drivers/net/ethernet/mellanox/mlx5/core/en/rss.c   |  588 ++++
 drivers/net/ethernet/mellanox/mlx5/core/en/rss.h   |   49 +
 .../net/ethernet/mellanox/mlx5/core/en/rx_res.c    |  690 +++++
 .../net/ethernet/mellanox/mlx5/core/en/rx_res.h    |   71 +
 .../ethernet/mellanox/mlx5/core/en/tc/post_act.c   |  164 ++
 .../ethernet/mellanox/mlx5/core/en/tc/post_act.h   |   35 +
 .../mellanox/mlx5/core/{esw => en/tc}/sample.c     |  474 ++--
 .../net/ethernet/mellanox/mlx5/core/en/tc/sample.h |   41 +
 drivers/net/ethernet/mellanox/mlx5/core/en/tc_ct.c |  163 +-
 drivers/net/ethernet/mellanox/mlx5/core/en/tc_ct.h |    6 +-
 .../net/ethernet/mellanox/mlx5/core/en/tc_tun.c    |    2 +-
 .../ethernet/mellanox/mlx5/core/en/tc_tun_encap.c  |    4 +-
 drivers/net/ethernet/mellanox/mlx5/core/en/tir.c   |  200 ++
 drivers/net/ethernet/mellanox/mlx5/core/en/tir.h   |   58 +
 drivers/net/ethernet/mellanox/mlx5/core/en/trap.c  |   27 +-
 .../net/ethernet/mellanox/mlx5/core/en/xsk/pool.c  |    4 +-
 .../net/ethernet/mellanox/mlx5/core/en/xsk/setup.c |   72 +-
 .../net/ethernet/mellanox/mlx5/core/en/xsk/setup.h |    4 -
 .../ethernet/mellanox/mlx5/core/en_accel/fs_tcp.c  |   12 +-
 .../mellanox/mlx5/core/en_accel/ipsec_fs.c         |   13 +-
 .../ethernet/mellanox/mlx5/core/en_accel/ktls_rx.c |   53 +-
 drivers/net/ethernet/mellanox/mlx5/core/en_arfs.c  |   25 +-
 .../net/ethernet/mellanox/mlx5/core/en_common.c    |   29 +-
 .../net/ethernet/mellanox/mlx5/core/en_ethtool.c   |  140 +-
 drivers/net/ethernet/mellanox/mlx5/core/en_fs.c    |  671 +----
 .../ethernet/mellanox/mlx5/core/en_fs_ethtool.c    |  156 +-
 drivers/net/ethernet/mellanox/mlx5/core/en_main.c  |  871 ++----
 drivers/net/ethernet/mellanox/mlx5/core/en_rep.c   |  172 +-
 drivers/net/ethernet/mellanox/mlx5/core/en_rep.h   |    8 +-
 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c    |  323 ++-
 drivers/net/ethernet/mellanox/mlx5/core/en_tc.h    |    1 +
 .../mellanox/mlx5/core/esw/acl/egress_ofld.c       |   16 +
 .../net/ethernet/mellanox/mlx5/core/esw/bridge.c   |  359 ++-
 .../net/ethernet/mellanox/mlx5/core/esw/bridge.h   |   46 +-
 .../ethernet/mellanox/mlx5/core/esw/bridge_priv.h  |    9 +
 .../ethernet/mellanox/mlx5/core/esw/devlink_port.c |   26 +
 .../mlx5/core/esw/diag/bridge_tracepoint.h         |    9 +-
 .../mellanox/mlx5/core/esw/diag/qos_tracepoint.h   |  123 +
 .../ethernet/mellanox/mlx5/core/esw/indir_table.c  |    1 +
 .../net/ethernet/mellanox/mlx5/core/esw/legacy.c   |   20 +
 drivers/net/ethernet/mellanox/mlx5/core/esw/qos.c  |  869 ++++++
 drivers/net/ethernet/mellanox/mlx5/core/esw/qos.h  |   41 +
 .../net/ethernet/mellanox/mlx5/core/esw/sample.h   |   42 -
 drivers/net/ethernet/mellanox/mlx5/core/eswitch.c  |  358 +--
 drivers/net/ethernet/mellanox/mlx5/core/eswitch.h  |   68 +-
 .../ethernet/mellanox/mlx5/core/eswitch_offloads.c |  399 ++-
 drivers/net/ethernet/mellanox/mlx5/core/events.c   |    2 +-
 .../net/ethernet/mellanox/mlx5/core/fpga/conn.c    |    2 +-
 .../net/ethernet/mellanox/mlx5/core/fpga/ipsec.c   |    2 +-
 drivers/net/ethernet/mellanox/mlx5/core/fs_cmd.c   |   58 +-
 drivers/net/ethernet/mellanox/mlx5/core/fs_core.c  |    6 +-
 drivers/net/ethernet/mellanox/mlx5/core/fs_core.h  |    2 +
 drivers/net/ethernet/mellanox/mlx5/core/health.c   |    6 +-
 .../ethernet/mellanox/mlx5/core/ipoib/ethtool.c    |    8 +-
 .../net/ethernet/mellanox/mlx5/core/ipoib/ipoib.c  |   76 +-
 .../ethernet/mellanox/mlx5/core/ipoib/ipoib_vlan.c |    2 +-
 drivers/net/ethernet/mellanox/mlx5/core/lag.c      |  268 +-
 drivers/net/ethernet/mellanox/mlx5/core/lag.h      |    5 +-
 drivers/net/ethernet/mellanox/mlx5/core/lag_mp.c   |   10 +-
 drivers/net/ethernet/mellanox/mlx5/core/lag_mp.h   |    2 +
 .../net/ethernet/mellanox/mlx5/core/lib/clock.c    |    2 +-
 .../net/ethernet/mellanox/mlx5/core/lib/fs_ttc.c   |  602 ++++
 .../net/ethernet/mellanox/mlx5/core/lib/fs_ttc.h   |   70 +
 .../net/ethernet/mellanox/mlx5/core/lib/vxlan.c    |    2 +-
 drivers/net/ethernet/mellanox/mlx5/core/main.c     |  105 +-
 .../net/ethernet/mellanox/mlx5/core/mlx5_core.h    |    7 +
 drivers/net/ethernet/mellanox/mlx5/core/pci_irq.c  |   75 +-
 .../net/ethernet/mellanox/mlx5/core/sf/dev/dev.c   |    2 +-
 .../ethernet/mellanox/mlx5/core/sf/dev/driver.c    |    2 +-
 .../net/ethernet/mellanox/mlx5/core/sf/devlink.c   |   10 +-
 drivers/net/ethernet/mellanox/mlx5/core/sf/sf.h    |    4 +-
 .../mellanox/mlx5/core/steering/dr_action.c        |  271 +-
 .../ethernet/mellanox/mlx5/core/steering/dr_cmd.c  |    1 +
 .../mellanox/mlx5/core/steering/dr_domain.c        |    8 +-
 .../ethernet/mellanox/mlx5/core/steering/dr_fw.c   |    4 +-
 .../mellanox/mlx5/core/steering/dr_matcher.c       |   16 +-
 .../ethernet/mellanox/mlx5/core/steering/dr_rule.c |  152 +-
 .../ethernet/mellanox/mlx5/core/steering/dr_send.c |   19 +-
 .../ethernet/mellanox/mlx5/core/steering/dr_ste.c  |   36 +-
 .../ethernet/mellanox/mlx5/core/steering/dr_ste.h  |    2 +-
 .../mellanox/mlx5/core/steering/dr_ste_v0.c        |   57 +-
 .../mellanox/mlx5/core/steering/dr_ste_v1.c        |  101 +-
 .../mellanox/mlx5/core/steering/dr_types.h         |   68 +-
 .../ethernet/mellanox/mlx5/core/steering/fs_dr.c   |   51 +-
 .../mellanox/mlx5/core/steering/mlx5_ifc_dr.h      |    6 -
 .../ethernet/mellanox/mlx5/core/steering/mlx5dr.h  |    4 +-
 .../ethernet/mellanox/mlxbf_gige/mlxbf_gige_main.c |   25 +-
 .../ethernet/mellanox/mlxbf_gige/mlxbf_gige_mdio.c |    7 +-
 drivers/net/ethernet/mellanox/mlxsw/Kconfig        |    2 +-
 drivers/net/ethernet/mellanox/mlxsw/core.c         |    5 +-
 drivers/net/ethernet/mellanox/mlxsw/spectrum.c     |   84 +-
 drivers/net/ethernet/mellanox/mlxsw/spectrum.h     |   12 +
 drivers/net/ethernet/mellanox/mlxsw/spectrum_nve.h |    1 -
 .../ethernet/mellanox/mlxsw/spectrum_nve_vxlan.c   |   94 +-
 drivers/net/ethernet/mellanox/mlxsw/spectrum_ptp.c |    4 +-
 .../net/ethernet/mellanox/mlxsw/spectrum_router.c  |   44 +-
 .../net/ethernet/mellanox/mlxsw/spectrum_router.h  |    1 +
 .../ethernet/mellanox/mlxsw/spectrum_switchdev.c   |   32 +-
 drivers/net/ethernet/micrel/ks8851_common.c        |    2 +-
 drivers/net/ethernet/micrel/ksz884x.c              |    2 +-
 drivers/net/ethernet/microchip/Kconfig             |    1 +
 drivers/net/ethernet/microchip/lan743x_main.c      |    2 +-
 drivers/net/ethernet/microchip/sparx5/Makefile     |    2 +-
 .../net/ethernet/microchip/sparx5/sparx5_fdma.c    |  593 ++++
 .../net/ethernet/microchip/sparx5/sparx5_main.c    |   23 +-
 .../net/ethernet/microchip/sparx5/sparx5_main.h    |   69 +
 .../net/ethernet/microchip/sparx5/sparx5_packet.c  |   13 +-
 .../net/ethernet/microchip/sparx5/sparx5_port.c    |    2 +-
 .../net/ethernet/microchip/sparx5/sparx5_port.h    |    1 +
 .../ethernet/microchip/sparx5/sparx5_switchdev.c   |   24 +-
 drivers/net/ethernet/microsoft/mana/gdma.h         |   32 +-
 drivers/net/ethernet/microsoft/mana/gdma_main.c    |   88 +-
 drivers/net/ethernet/microsoft/mana/hw_channel.c   |    2 +-
 drivers/net/ethernet/microsoft/mana/mana.h         |   29 +-
 drivers/net/ethernet/microsoft/mana/mana_en.c      |  162 +-
 drivers/net/ethernet/mscc/Kconfig                  |    3 +-
 drivers/net/ethernet/mscc/ocelot.c                 |  246 +-
 drivers/net/ethernet/mscc/ocelot.h                 |   11 +-
 drivers/net/ethernet/mscc/ocelot_net.c             |  397 ++-
 drivers/net/ethernet/mscc/ocelot_vsc7514.c         |   71 +-
 drivers/net/ethernet/myricom/myri10ge/myri10ge.c   |   71 +-
 drivers/net/ethernet/natsemi/jazzsonic.c           |    2 -
 drivers/net/ethernet/natsemi/natsemi.c             |    2 +-
 drivers/net/ethernet/natsemi/xtsonic.c             |    1 -
 drivers/net/ethernet/neterion/s2io.c               |    2 +-
 drivers/net/ethernet/neterion/vxge/vxge-main.c     |    2 +-
 drivers/net/ethernet/netronome/Kconfig             |    1 +
 drivers/net/ethernet/netronome/nfp/flower/action.c |   35 +-
 .../net/ethernet/netronome/nfp/flower/conntrack.c  |  620 ++++-
 .../net/ethernet/netronome/nfp/flower/conntrack.h  |   26 +
 drivers/net/ethernet/netronome/nfp/flower/main.h   |   79 +-
 drivers/net/ethernet/netronome/nfp/flower/match.c  |  333 ++-
 .../net/ethernet/netronome/nfp/flower/metadata.c   |    7 +-
 .../net/ethernet/netronome/nfp/flower/offload.c    |   51 +-
 drivers/net/ethernet/netronome/nfp/nfp_main.c      |    2 +-
 drivers/net/ethernet/netronome/nfp/nfp_net.h       |   20 +
 .../net/ethernet/netronome/nfp/nfp_net_common.c    |  144 +-
 .../net/ethernet/netronome/nfp/nfp_net_ethtool.c   |   29 +-
 drivers/net/ethernet/netronome/nfp/nfp_net_main.c  |    2 +-
 drivers/net/ethernet/ni/nixge.c                    |   24 +-
 drivers/net/ethernet/nvidia/forcedeth.c            |    6 +-
 drivers/net/ethernet/nxp/lpc_eth.c                 |    2 +-
 drivers/net/ethernet/oki-semi/pch_gbe/Kconfig      |    1 +
 .../net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c   |   10 +-
 .../net/ethernet/oki-semi/pch_gbe/pch_gbe_phy.c    |    4 +-
 drivers/net/ethernet/packetengines/hamachi.c       |   63 +-
 drivers/net/ethernet/packetengines/yellowfin.c     |    2 +-
 drivers/net/ethernet/pasemi/pasemi_mac.c           |   32 +-
 drivers/net/ethernet/pensando/Kconfig              |    2 +-
 .../net/ethernet/pensando/ionic/ionic_bus_pci.c    |    5 +-
 drivers/net/ethernet/pensando/ionic/ionic_dev.c    |   41 +-
 drivers/net/ethernet/pensando/ionic/ionic_dev.h    |    3 +-
 .../net/ethernet/pensando/ionic/ionic_devlink.c    |   18 +-
 .../net/ethernet/pensando/ionic/ionic_ethtool.c    |   29 +-
 drivers/net/ethernet/pensando/ionic/ionic_if.h     |    5 +-
 drivers/net/ethernet/pensando/ionic/ionic_lif.c    |  303 +-
 drivers/net/ethernet/pensando/ionic/ionic_lif.h    |   10 +-
 drivers/net/ethernet/pensando/ionic/ionic_main.c   |    6 +-
 drivers/net/ethernet/pensando/ionic/ionic_phc.c    |   32 +-
 .../net/ethernet/pensando/ionic/ionic_rx_filter.c  |  143 +-
 .../net/ethernet/pensando/ionic/ionic_rx_filter.h  |   14 +-
 drivers/net/ethernet/pensando/ionic/ionic_txrx.c   |   27 +-
 drivers/net/ethernet/qlogic/Kconfig                |    2 +-
 drivers/net/ethernet/qlogic/netxen/netxen_nic.h    |    1 -
 .../ethernet/qlogic/netxen/netxen_nic_ethtool.c    |    8 +-
 drivers/net/ethernet/qlogic/qed/qed.h              |   15 -
 drivers/net/ethernet/qlogic/qed/qed_dcbx.c         |    6 +-
 drivers/net/ethernet/qlogic/qed/qed_devlink.c      |    7 +-
 drivers/net/ethernet/qlogic/qed/qed_int.c          |   22 +-
 drivers/net/ethernet/qlogic/qed/qed_iwarp.c        |    2 -
 drivers/net/ethernet/qlogic/qed/qed_main.c         |    8 +-
 drivers/net/ethernet/qlogic/qed/qed_mcp.c          |    1 -
 .../net/ethernet/qlogic/qed/qed_nvmetcp_fw_funcs.c |    1 -
 drivers/net/ethernet/qlogic/qed/qed_reg_addr.h     |    8 +
 drivers/net/ethernet/qlogic/qede/qede.h            |   13 +-
 drivers/net/ethernet/qlogic/qede/qede_ethtool.c    |   14 +-
 drivers/net/ethernet/qlogic/qede/qede_main.c       |   33 +-
 .../net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c    |   10 +-
 drivers/net/ethernet/qlogic/qlcnic/qlcnic_init.c   |   16 +-
 drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c     |   32 +-
 drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c   |    6 +-
 drivers/net/ethernet/qualcomm/emac/emac.c          |    2 +-
 drivers/net/ethernet/qualcomm/qca_spi.c            |    2 +-
 drivers/net/ethernet/qualcomm/qca_uart.c           |    2 +-
 drivers/net/ethernet/rdc/r6040.c                   |    2 +-
 drivers/net/ethernet/realtek/8139cp.c              |   33 +-
 drivers/net/ethernet/realtek/8139too.c             |    2 +-
 drivers/net/ethernet/realtek/r8169_main.c          |   69 +-
 drivers/net/ethernet/renesas/Kconfig               |    2 +-
 drivers/net/ethernet/renesas/ravb.h                |   36 +-
 drivers/net/ethernet/renesas/ravb_main.c           |  379 ++-
 drivers/net/ethernet/renesas/ravb_ptp.c            |    8 +-
 drivers/net/ethernet/renesas/sh_eth.c              |    4 +-
 drivers/net/ethernet/rocker/rocker.h               |    3 +-
 drivers/net/ethernet/rocker/rocker_main.c          |    9 +-
 drivers/net/ethernet/rocker/rocker_ofdpa.c         |   19 +-
 drivers/net/ethernet/samsung/Kconfig               |    2 +-
 drivers/net/ethernet/samsung/sxgbe/sxgbe_ethtool.c |    8 +-
 drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c    |    2 +-
 drivers/net/ethernet/sfc/Kconfig                   |    2 +-
 drivers/net/ethernet/sfc/efx.c                     |    2 +-
 drivers/net/ethernet/sfc/ethtool.c                 |    8 +-
 drivers/net/ethernet/sfc/falcon/efx.c              |    2 +-
 drivers/net/ethernet/sfc/falcon/ethtool.c          |    8 +-
 drivers/net/ethernet/sgi/ioc3-eth.c                |    2 +-
 drivers/net/ethernet/sgi/meth.c                    |    2 +-
 drivers/net/ethernet/sis/sis190.c                  |    2 +-
 drivers/net/ethernet/sis/sis900.c                  |    2 +-
 drivers/net/ethernet/smsc/Kconfig                  |    1 +
 drivers/net/ethernet/smsc/epic100.c                |    2 +-
 drivers/net/ethernet/smsc/smc9194.c                |    6 +-
 drivers/net/ethernet/smsc/smc91c92_cs.c            |    2 +-
 drivers/net/ethernet/smsc/smsc911x.c               |    2 +-
 drivers/net/ethernet/smsc/smsc9420.c               |    2 +-
 drivers/net/ethernet/socionext/netsec.c            |   12 +-
 drivers/net/ethernet/socionext/sni_ave.c           |    2 +-
 drivers/net/ethernet/stmicro/stmmac/Kconfig        |    2 +-
 drivers/net/ethernet/stmicro/stmmac/common.h       |   13 +
 .../net/ethernet/stmicro/stmmac/dwmac-ipq806x.c    |   18 +-
 drivers/net/ethernet/stmicro/stmmac/dwmac4_lib.c   |    7 +-
 .../net/ethernet/stmicro/stmmac/stmmac_ethtool.c   |   75 +-
 drivers/net/ethernet/stmicro/stmmac/stmmac_main.c  |    7 +-
 drivers/net/ethernet/sun/cassini.c                 |    2 +-
 drivers/net/ethernet/sun/niu.c                     |   22 +-
 drivers/net/ethernet/sun/sungem.c                  |    2 +-
 drivers/net/ethernet/sun/sunhme.c                  |   24 -
 drivers/net/ethernet/synopsys/dwc-xlgmac-ethtool.c |   14 +-
 drivers/net/ethernet/synopsys/dwc-xlgmac-net.c     |    2 +-
 drivers/net/ethernet/tehuti/tehuti.c               |   30 +-
 drivers/net/ethernet/ti/am65-cpsw-nuss.c           |   81 +-
 drivers/net/ethernet/ti/am65-cpsw-nuss.h           |    2 +
 drivers/net/ethernet/ti/cpmac.c                    |    2 +-
 drivers/net/ethernet/ti/cpsw.c                     |    8 +-
 drivers/net/ethernet/ti/cpsw_ethtool.c             |    8 +-
 drivers/net/ethernet/ti/cpsw_new.c                 |   28 +-
 drivers/net/ethernet/ti/cpsw_priv.h                |    8 +-
 drivers/net/ethernet/ti/davinci_emac.c             |   18 +-
 drivers/net/ethernet/ti/netcp_core.c               |    2 +-
 drivers/net/ethernet/ti/tlan.c                     |    2 +-
 drivers/net/ethernet/toshiba/spider_net.c          |   29 +-
 drivers/net/ethernet/toshiba/tc35815.c             |    2 +-
 drivers/net/ethernet/tundra/tsi108_eth.c           |    2 +-
 drivers/net/ethernet/via/via-rhine.c               |   11 +-
 drivers/net/ethernet/via/via-velocity.c            |   16 +-
 drivers/net/ethernet/wiznet/w5100.c                |    2 +
 drivers/net/ethernet/xilinx/ll_temac_main.c        |   16 +-
 drivers/net/ethernet/xilinx/xilinx_axienet_main.c  |   20 +-
 drivers/net/ethernet/xilinx/xilinx_emaclite.c      |    2 +-
 drivers/net/ethernet/xircom/xirc2ps_cs.c           |    2 +-
 drivers/net/ethernet/xscale/Kconfig                |    4 +-
 drivers/net/ethernet/xscale/Makefile               |    6 +-
 drivers/net/ethernet/xscale/ixp46x_ts.h            |   13 +-
 drivers/net/ethernet/xscale/ixp4xx_eth.c           |   37 +-
 drivers/net/ethernet/xscale/ptp_ixp46x.c           |  122 +-
 drivers/net/fddi/skfp/skfddi.c                     |   60 +-
 drivers/net/hamradio/baycom_epp.c                  |    9 +-
 drivers/net/hamradio/baycom_par.c                  |   12 +-
 drivers/net/hamradio/baycom_ser_fdx.c              |   12 +-
 drivers/net/hamradio/baycom_ser_hdx.c              |   12 +-
 drivers/net/hamradio/bpqether.c                    |    9 +-
 drivers/net/hamradio/dmascc.c                      |   18 +-
 drivers/net/hamradio/hdlcdrv.c                     |   20 +-
 drivers/net/hamradio/scc.c                         |   13 +-
 drivers/net/hamradio/yam.c                         |   19 +-
 drivers/net/hippi/rrunner.c                        |   11 +-
 drivers/net/hippi/rrunner.h                        |    3 +-
 drivers/net/ipa/Makefile                           |    5 +-
 drivers/net/ipa/gsi.c                              |  241 +-
 drivers/net/ipa/gsi.h                              |   31 +-
 drivers/net/ipa/gsi_trans.c                        |   34 +-
 drivers/net/ipa/ipa.h                              |   30 +-
 drivers/net/ipa/ipa_clock.c                        |  331 ---
 drivers/net/ipa/ipa_clock.h                        |   64 -
 drivers/net/ipa/ipa_cmd.c                          |   51 +-
 drivers/net/ipa/ipa_cmd.h                          |   22 +-
 drivers/net/ipa/ipa_data-v3.1.c                    |    4 +-
 drivers/net/ipa/ipa_data-v3.5.1.c                  |    4 +-
 drivers/net/ipa/ipa_data-v4.11.c                   |   19 +-
 drivers/net/ipa/ipa_data-v4.2.c                    |    4 +-
 drivers/net/ipa/ipa_data-v4.5.c                    |    6 +-
 drivers/net/ipa/ipa_data-v4.9.c                    |   15 +-
 drivers/net/ipa/ipa_data.h                         |   10 +-
 drivers/net/ipa/ipa_endpoint.c                     |   44 +-
 drivers/net/ipa/ipa_interrupt.c                    |   83 +-
 drivers/net/ipa/ipa_interrupt.h                    |    8 +-
 drivers/net/ipa/ipa_main.c                         |  222 +-
 drivers/net/ipa/ipa_modem.c                        |  140 +-
 drivers/net/ipa/ipa_modem.h                        |    4 -
 drivers/net/ipa/ipa_power.c                        |  473 ++++
 drivers/net/ipa/ipa_power.h                        |   73 +
 drivers/net/ipa/ipa_qmi.c                          |    6 +-
 drivers/net/ipa/ipa_qmi.h                          |   19 +
 drivers/net/ipa/ipa_reg.h                          |   12 +-
 drivers/net/ipa/ipa_resource.c                     |    3 +-
 drivers/net/ipa/ipa_smp2p.c                        |   93 +-
 drivers/net/ipa/ipa_smp2p.h                        |    2 +-
 drivers/net/ipa/ipa_table.c                        |   40 +-
 drivers/net/ipa/ipa_table.h                        |   16 -
 drivers/net/ipa/ipa_uc.c                           |   70 +-
 drivers/net/ipa/ipa_uc.h                           |   22 +-
 drivers/net/ipvlan/ipvlan_main.c                   |    1 +
 drivers/net/macvlan.c                              |    8 +-
 drivers/net/mctp/Kconfig                           |    8 +
 drivers/net/mctp/Makefile                          |    0
 drivers/net/mdio/Kconfig                           |    3 +-
 drivers/net/mdio/mdio-ipq4019.c                    |   41 +
 drivers/net/mdio/mdio-mscc-miim.c                  |   12 +-
 drivers/net/mhi/Makefile                           |    3 -
 drivers/net/mhi/mhi.h                              |   41 -
 drivers/net/mhi/proto_mbim.c                       |  304 --
 drivers/net/{mhi/net.c => mhi_net.c}               |  166 +-
 drivers/net/mii.c                                  |    6 +-
 drivers/net/netdevsim/bus.c                        |   43 +-
 drivers/net/netdevsim/dev.c                        |   25 +-
 drivers/net/netdevsim/ethtool.c                    |    8 +-
 drivers/net/netdevsim/fib.c                        |    2 +-
 drivers/net/netdevsim/netdev.c                     |    6 +-
 drivers/net/netdevsim/netdevsim.h                  |    2 +
 drivers/net/pcs/pcs-xpcs.c                         |    4 +
 drivers/net/phy/Kconfig                            |    8 +
 drivers/net/phy/Makefile                           |    1 +
 drivers/net/phy/at803x.c                           |   18 +-
 drivers/net/phy/dp83822.c                          |    8 +-
 drivers/net/phy/intel-xway.c                       |   76 +
 drivers/net/phy/marvell.c                          |  144 +-
 drivers/net/phy/marvell10g.c                       |   97 +
 drivers/net/phy/mscc/mscc_ptp.c                    |    8 +-
 drivers/net/phy/mxl-gpy.c                          |  727 +++++
 drivers/net/phy/nxp-tja11xx.c                      |   13 +-
 drivers/net/phy/phy.c                              |    4 +-
 drivers/net/phy/phy_device.c                       |   27 +-
 drivers/net/phy/phylink.c                          |   21 +-
 drivers/net/phy/xilinx_gmii2rgmii.c                |   46 +-
 drivers/net/plip/plip.c                            |   12 +-
 drivers/net/ppp/ppp_generic.c                      |   14 +-
 drivers/net/sb1000.c                               |   20 +-
 drivers/net/slip/slip.c                            |   13 +-
 drivers/net/team/team_mode_loadbalance.c           |    2 +-
 drivers/net/tun.c                                  |    8 +-
 drivers/net/usb/asix_devices.c                     |   12 +-
 drivers/net/usb/ax88172a.c                         |    2 +-
 drivers/net/usb/ax88179_178a.c                     |    2 +-
 drivers/net/usb/cdc-phonet.c                       |    5 +-
 drivers/net/usb/dm9601.c                           |    2 +-
 drivers/net/usb/hso.c                              |   13 +-
 drivers/net/usb/ipheth.c                           |    2 +-
 drivers/net/usb/lan78xx.c                          | 1062 +++++--
 drivers/net/usb/mcs7830.c                          |    2 +-
 drivers/net/usb/pegasus.c                          |    5 +-
 drivers/net/usb/r8152.c                            |   10 +-
 drivers/net/usb/rtl8150.c                          |    5 +-
 drivers/net/usb/smsc75xx.c                         |    2 +-
 drivers/net/usb/smsc95xx.c                         |    2 +-
 drivers/net/usb/sr9700.c                           |    2 +-
 drivers/net/usb/sr9800.c                           |    2 +-
 drivers/net/usb/usbnet.c                           |    8 +-
 drivers/net/veth.c                                 |  307 ++-
 drivers/net/virtio_net.c                           |   52 +-
 drivers/net/vmxnet3/Makefile                       |    2 +-
 drivers/net/vmxnet3/upt1_defs.h                    |    2 +-
 drivers/net/vmxnet3/vmxnet3_defs.h                 |   50 +-
 drivers/net/vmxnet3/vmxnet3_drv.c                  |  268 +-
 drivers/net/vmxnet3/vmxnet3_ethtool.c              |   32 +-
 drivers/net/vmxnet3/vmxnet3_int.h                  |   22 +-
 drivers/net/vrf.c                                  |   21 +-
 drivers/net/wan/Kconfig                            |   51 -
 drivers/net/wan/Makefile                           |    1 -
 drivers/net/wan/c101.c                             |   33 +-
 drivers/net/wan/cosa.c                             |   15 +-
 drivers/net/wan/farsync.c                          |  123 +-
 drivers/net/wan/fsl_ucc_hdlc.c                     |   19 +-
 drivers/net/wan/hdlc.c                             |    9 +-
 drivers/net/wan/hdlc_cisco.c                       |   14 +-
 drivers/net/wan/hdlc_fr.c                          |   40 +-
 drivers/net/wan/hdlc_ppp.c                         |    8 +-
 drivers/net/wan/hdlc_raw.c                         |   14 +-
 drivers/net/wan/hdlc_raw_eth.c                     |   14 +-
 drivers/net/wan/hdlc_x25.c                         |   16 +-
 drivers/net/wan/hostess_sv11.c                     |   13 +-
 drivers/net/wan/ixp4xx_hss.c                       |   22 +-
 drivers/net/wan/lmc/lmc.h                          |    2 +-
 drivers/net/wan/lmc/lmc_main.c                     |   33 +-
 drivers/net/wan/lmc/lmc_proto.c                    |    7 -
 drivers/net/wan/lmc/lmc_proto.h                    |    1 -
 drivers/net/wan/n2.c                               |   32 +-
 drivers/net/wan/pc300too.c                         |   44 +-
 drivers/net/wan/pci200syn.c                        |   32 +-
 drivers/net/wan/sbni.c                             | 1638 -----------
 drivers/net/wan/sbni.h                             |  147 -
 drivers/net/wan/sealevel.c                         |   10 +-
 drivers/net/wan/wanxl.c                            |   21 +-
 drivers/net/wireless/ath/ath10k/pci.c              |    9 +-
 drivers/net/wireless/ath/ath11k/dp_rx.c            |    5 -
 drivers/net/wireless/ath/ath11k/pci.c              |   10 +-
 drivers/net/wireless/ath/ath5k/pci.c               |    2 +-
 drivers/net/wireless/ath/ath6kl/wmi.c              |    4 +-
 drivers/net/wireless/ath/ath9k/ar9003_eeprom.c     |    3 +-
 drivers/net/wireless/ath/ath9k/hw.c                |   12 +-
 drivers/net/wireless/ath/ath9k/pci.c               |    8 +-
 drivers/net/wireless/ath/wcn36xx/main.c            |   12 +-
 drivers/net/wireless/ath/wcn36xx/smd.c             |    4 +-
 drivers/net/wireless/ath/wcn36xx/txrx.c            |    4 +
 drivers/net/wireless/ath/wcn36xx/wcn36xx.h         |    2 +
 drivers/net/wireless/ath/wil6210/ethtool.c         |   14 +-
 .../wireless/broadcom/brcm80211/brcmfmac/Makefile  |    3 +-
 .../wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c  |    4 +-
 .../broadcom/brcm80211/brcmfmac/cfg80211.c         |    8 +
 .../wireless/broadcom/brcm80211/brcmfmac/chip.c    |   29 +-
 .../wireless/broadcom/brcm80211/brcmfmac/chip.h    |    5 +-
 .../broadcom/brcm80211/brcmfmac/firmware.c         |   69 +-
 .../wireless/broadcom/brcm80211/brcmfmac/fwil.c    |  126 +-
 .../wireless/broadcom/brcm80211/brcmfmac/fwil.h    |    8 +
 .../wireless/broadcom/brcm80211/brcmfmac/pcie.c    |    5 +-
 .../wireless/broadcom/brcm80211/brcmfmac/sdio.c    |   30 +-
 .../wireless/broadcom/brcm80211/brcmfmac/xtlv.c    |   82 +
 .../wireless/broadcom/brcm80211/brcmfmac/xtlv.h    |   31 +
 .../wireless/broadcom/brcm80211/brcmsmac/main.c    |    2 +-
 .../broadcom/brcm80211/include/brcm_hw_ids.h       |    1 +
 .../net/wireless/broadcom/brcm80211/include/soc.h  |    2 +-
 drivers/net/wireless/cisco/airo.c                  |   15 +-
 drivers/net/wireless/intel/ipw2x00/libipw_rx.c     |   56 +-
 drivers/net/wireless/intel/ipw2x00/libipw_tx.c     |    4 +-
 drivers/net/wireless/intel/iwlegacy/3945-mac.c     |   52 +-
 drivers/net/wireless/intel/iwlegacy/3945.c         |   10 +-
 drivers/net/wireless/intel/iwlegacy/4965-mac.c     |   78 +-
 drivers/net/wireless/intel/iwlegacy/common.c       |   19 +-
 drivers/net/wireless/intel/iwlwifi/cfg/22000.c     |   76 +-
 drivers/net/wireless/intel/iwlwifi/cfg/9000.c      |    2 +-
 drivers/net/wireless/intel/iwlwifi/dvm/main.c      |    4 +-
 drivers/net/wireless/intel/iwlwifi/dvm/rx.c        |    2 +-
 drivers/net/wireless/intel/iwlwifi/fw/acpi.c       |  304 +-
 drivers/net/wireless/intel/iwlwifi/fw/acpi.h       |   66 +-
 drivers/net/wireless/intel/iwlwifi/fw/api/coex.h   |    2 +-
 .../net/wireless/intel/iwlwifi/fw/api/commands.h   |    3 +-
 drivers/net/wireless/intel/iwlwifi/fw/api/d3.h     |   22 +-
 .../net/wireless/intel/iwlwifi/fw/api/dbg-tlv.h    |    8 +-
 .../net/wireless/intel/iwlwifi/fw/api/location.h   |  189 +-
 drivers/net/wireless/intel/iwlwifi/fw/api/mac.h    |    4 +-
 .../net/wireless/intel/iwlwifi/fw/api/offload.h    |   31 +-
 drivers/net/wireless/intel/iwlwifi/fw/api/scan.h   |    6 +-
 drivers/net/wireless/intel/iwlwifi/fw/api/sta.h    |    8 +-
 drivers/net/wireless/intel/iwlwifi/fw/dbg.c        |  144 +-
 drivers/net/wireless/intel/iwlwifi/fw/dbg.h        |    7 +-
 drivers/net/wireless/intel/iwlwifi/fw/error-dump.h |   22 +-
 drivers/net/wireless/intel/iwlwifi/fw/file.h       |    1 +
 drivers/net/wireless/intel/iwlwifi/fw/pnvm.c       |   15 +-
 drivers/net/wireless/intel/iwlwifi/fw/pnvm.h       |   20 +
 drivers/net/wireless/intel/iwlwifi/iwl-config.h    |    8 +-
 drivers/net/wireless/intel/iwlwifi/iwl-csr.h       |   22 +-
 drivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.c   |   34 +-
 drivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.h   |   24 +-
 drivers/net/wireless/intel/iwlwifi/iwl-drv.c       |    4 +-
 drivers/net/wireless/intel/iwlwifi/iwl-io.c        |   26 +-
 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c |   40 +-
 drivers/net/wireless/intel/iwlwifi/iwl-op-mode.h   |    8 +-
 drivers/net/wireless/intel/iwlwifi/iwl-prph.h      |    7 +
 drivers/net/wireless/intel/iwlwifi/iwl-trans.h     |    6 +-
 drivers/net/wireless/intel/iwlwifi/mvm/constants.h |    5 +-
 drivers/net/wireless/intel/iwlwifi/mvm/d3.c        |  580 ++--
 drivers/net/wireless/intel/iwlwifi/mvm/debugfs.c   |   11 +-
 .../net/wireless/intel/iwlwifi/mvm/ftm-initiator.c |   85 +-
 .../net/wireless/intel/iwlwifi/mvm/ftm-responder.c |   27 +-
 drivers/net/wireless/intel/iwlwifi/mvm/fw.c        |  108 +-
 drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c  |   44 +-
 drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c  |   35 +-
 drivers/net/wireless/intel/iwlwifi/mvm/mvm.h       |    3 +-
 drivers/net/wireless/intel/iwlwifi/mvm/nvm.c       |    4 +-
 drivers/net/wireless/intel/iwlwifi/mvm/ops.c       |   74 +-
 drivers/net/wireless/intel/iwlwifi/mvm/rfi.c       |    2 +-
 drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c      |   45 +-
 drivers/net/wireless/intel/iwlwifi/mvm/scan.c      |   93 +-
 drivers/net/wireless/intel/iwlwifi/mvm/sta.c       |  120 +-
 .../net/wireless/intel/iwlwifi/mvm/time-event.c    |   41 +-
 drivers/net/wireless/intel/iwlwifi/pcie/drv.c      |    8 +-
 drivers/net/wireless/intel/iwlwifi/pcie/internal.h |   24 +-
 drivers/net/wireless/intel/iwlwifi/pcie/rx.c       |   17 +-
 .../net/wireless/intel/iwlwifi/pcie/trans-gen2.c   |   53 +-
 drivers/net/wireless/intel/iwlwifi/pcie/trans.c    |   59 +-
 drivers/net/wireless/intersil/Kconfig              |   20 -
 drivers/net/wireless/intersil/Makefile             |    1 -
 drivers/net/wireless/intersil/hostap/hostap.h      |    3 +-
 .../net/wireless/intersil/hostap/hostap_ioctl.c    |   30 +-
 drivers/net/wireless/intersil/hostap/hostap_main.c |    3 +
 drivers/net/wireless/intersil/prism54/Makefile     |    9 -
 drivers/net/wireless/intersil/prism54/isl_38xx.c   |  245 --
 drivers/net/wireless/intersil/prism54/isl_38xx.h   |  158 --
 drivers/net/wireless/intersil/prism54/isl_ioctl.c  | 2909 --------------------
 drivers/net/wireless/intersil/prism54/isl_ioctl.h  |   35 -
 drivers/net/wireless/intersil/prism54/isl_oid.h    |  492 ----
 drivers/net/wireless/intersil/prism54/islpci_dev.c |  951 -------
 drivers/net/wireless/intersil/prism54/islpci_dev.h |  204 --
 drivers/net/wireless/intersil/prism54/islpci_eth.c |  489 ----
 drivers/net/wireless/intersil/prism54/islpci_eth.h |   59 -
 .../net/wireless/intersil/prism54/islpci_hotplug.c |  316 ---
 drivers/net/wireless/intersil/prism54/islpci_mgt.c |  491 ----
 drivers/net/wireless/intersil/prism54/islpci_mgt.h |  126 -
 drivers/net/wireless/intersil/prism54/oid_mgt.c    |  889 ------
 drivers/net/wireless/intersil/prism54/oid_mgt.h    |   46 -
 .../net/wireless/intersil/prism54/prismcompat.h    |   30 -
 drivers/net/wireless/marvell/libertas/ethtool.c    |    9 +-
 drivers/net/wireless/marvell/mwifiex/Makefile      |    1 +
 drivers/net/wireless/marvell/mwifiex/cmdevt.c      |    2 +-
 drivers/net/wireless/marvell/mwifiex/pcie.c        |   11 +
 drivers/net/wireless/marvell/mwifiex/pcie.h        |    1 +
 drivers/net/wireless/marvell/mwifiex/pcie_quirks.c |  161 ++
 drivers/net/wireless/marvell/mwifiex/pcie_quirks.h |   23 +
 drivers/net/wireless/marvell/mwifiex/sta_ioctl.c   |    4 +-
 drivers/net/wireless/marvell/mwifiex/usb.h         |    2 +-
 drivers/net/wireless/microchip/wilc1000/sdio.c     |   29 +-
 drivers/net/wireless/microchip/wilc1000/spi.c      |   44 +-
 drivers/net/wireless/microchip/wilc1000/wlan.c     |   38 +-
 .../wireless/quantenna/qtnfmac/pcie/pearl_pcie.c   |   28 +-
 .../wireless/quantenna/qtnfmac/pcie/topaz_pcie.c   |   28 +-
 drivers/net/wireless/ray_cs.c                      |    8 +-
 drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h   |    2 +
 .../net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c  |   37 +-
 .../net/wireless/realtek/rtlwifi/rtl8192de/phy.c   |   52 +-
 drivers/net/wireless/realtek/rtw88/Makefile        |    2 +-
 drivers/net/wireless/realtek/rtw88/fw.c            |    8 +-
 drivers/net/wireless/realtek/rtw88/fw.h            |    3 +-
 drivers/net/wireless/realtek/rtw88/main.c          |    2 +
 drivers/net/wireless/realtek/rtw88/main.h          |    6 +
 drivers/net/wireless/realtek/rtw88/pci.c           |   47 +-
 drivers/net/wireless/realtek/rtw88/pci.h           |    1 +
 drivers/net/wireless/realtek/rtw88/rtw8822c.c      |    1 +
 drivers/net/wireless/realtek/rtw88/tx.c            |    2 +-
 drivers/net/wireless/realtek/rtw88/wow.c           |  107 +-
 drivers/net/wireless/rsi/rsi_91x_debugfs.c         |    2 +-
 drivers/net/wireless/rsi/rsi_91x_hal.c             |    4 +-
 drivers/net/wireless/rsi/rsi_91x_usb.c             |    1 +
 drivers/net/wwan/Kconfig                           |   12 +
 drivers/net/wwan/Makefile                          |    1 +
 drivers/net/wwan/iosm/iosm_ipc_pcie.c              |   19 +-
 drivers/net/wwan/iosm/iosm_ipc_protocol.c          |   10 +-
 drivers/net/wwan/iosm/iosm_ipc_protocol_ops.c      |   13 +-
 drivers/net/wwan/mhi_wwan_mbim.c                   |  658 +++++
 drivers/net/wwan/wwan_core.c                       |    7 +-
 drivers/net/xen-netfront.c                         |  272 +-
 drivers/nfc/fdp/fdp.c                              |   38 +-
 drivers/nfc/fdp/fdp.h                              |    4 +-
 drivers/nfc/fdp/i2c.c                              |    8 +-
 drivers/nfc/mei_phy.c                              |    4 +-
 drivers/nfc/mei_phy.h                              |    2 +-
 drivers/nfc/microread/i2c.c                        |    4 +-
 drivers/nfc/microread/mei.c                        |    1 -
 drivers/nfc/microread/microread.c                  |   15 +-
 drivers/nfc/microread/microread.h                  |    6 +-
 drivers/nfc/nfcmrvl/fw_dnld.c                      |   16 +-
 drivers/nfc/nfcmrvl/i2c.c                          |    7 +-
 drivers/nfc/nfcmrvl/main.c                         |    6 +-
 drivers/nfc/nfcmrvl/nfcmrvl.h                      |    6 +-
 drivers/nfc/nfcmrvl/spi.c                          |    7 +-
 drivers/nfc/nfcmrvl/uart.c                         |    4 +-
 drivers/nfc/nfcmrvl/usb.c                          |    2 +-
 drivers/nfc/nfcsim.c                               |    4 +-
 drivers/nfc/nxp-nci/core.c                         |    2 +-
 drivers/nfc/pn533/pn533.c                          |    2 +-
 drivers/nfc/pn544/i2c.c                            |    2 +-
 drivers/nfc/pn544/pn544.c                          |   18 +-
 drivers/nfc/pn544/pn544.h                          |    7 +-
 drivers/nfc/port100.c                              |   47 +-
 drivers/nfc/s3fwrn5/core.c                         |    7 +-
 drivers/nfc/s3fwrn5/firmware.c                     |   12 +-
 drivers/nfc/s3fwrn5/nci.c                          |    8 +-
 drivers/nfc/s3fwrn5/nci.h                          |    2 +-
 drivers/nfc/st-nci/core.c                          |    7 +-
 drivers/nfc/st-nci/i2c.c                           |    2 +-
 drivers/nfc/st-nci/ndlc.c                          |    6 +-
 drivers/nfc/st-nci/ndlc.h                          |    8 +-
 drivers/nfc/st-nci/spi.c                           |    2 +-
 drivers/nfc/st-nci/vendor_cmds.c                   |    2 +-
 drivers/nfc/st21nfca/core.c                        |    7 +-
 drivers/nfc/st21nfca/i2c.c                         |    8 +-
 drivers/nfc/st21nfca/st21nfca.h                    |    4 +-
 drivers/nfc/st21nfca/vendor_cmds.c                 |    2 +-
 drivers/nfc/st95hf/core.c                          |    3 +-
 drivers/nfc/trf7970a.c                             |   19 +-
 drivers/nfc/virtual_ncidev.c                       |   13 +-
 drivers/pci/pci.h                                  |    3 -
 drivers/pci/pcie/ptm.c                             |    9 +
 drivers/phy/marvell/phy-mvebu-a3700-comphy.c       |   16 +-
 drivers/phy/marvell/phy-mvebu-cp110-comphy.c       |   16 +-
 drivers/ptp/Kconfig                                |   20 +-
 drivers/ptp/ptp_ocp.c                              | 1283 ++++++++-
 drivers/ptp/ptp_vclock.c                           |    2 +
 drivers/s390/cio/ccwgroup.c                        |   22 -
 drivers/s390/net/Kconfig                           |   10 +-
 drivers/s390/net/ctcm_fsms.c                       |    2 +-
 drivers/s390/net/ctcm_mpc.c                        |    2 +-
 drivers/s390/net/qeth_core.h                       |   51 +-
 drivers/s390/net/qeth_core_main.c                  |  189 +-
 drivers/s390/net/qeth_core_mpc.c                   |    3 -
 drivers/s390/net/qeth_core_mpc.h                   |   23 +-
 drivers/s390/net/qeth_core_sys.c                   |    5 -
 drivers/s390/net/qeth_ethtool.c                    |   11 +-
 drivers/s390/net/qeth_l2_main.c                    |  414 +--
 drivers/s390/net/qeth_l3_main.c                    |   19 +-
 drivers/scsi/cxgbi/cxgb4i/Kconfig                  |    1 +
 drivers/staging/octeon/ethernet.c                  |   12 +-
 drivers/staging/qlge/qlge_ethtool.c                |   10 +-
 drivers/staging/qlge/qlge_main.c                   |    5 +-
 drivers/staging/rtl8188eu/include/osdep_intf.h     |    2 +
 drivers/staging/rtl8188eu/include/rtw_android.h    |    3 +-
 drivers/staging/rtl8188eu/os_dep/ioctl_linux.c     |    3 -
 drivers/staging/rtl8188eu/os_dep/os_intfs.c        |    1 +
 drivers/staging/rtl8188eu/os_dep/rtw_android.c     |   14 +-
 drivers/staging/rtl8723bs/include/osdep_intf.h     |    2 +
 drivers/staging/rtl8723bs/os_dep/ioctl_linux.c     |   18 +-
 drivers/staging/rtl8723bs/os_dep/os_intfs.c        |    1 +
 drivers/staging/wlan-ng/p80211netdev.c             |   76 +-
 drivers/tty/synclink_gt.c                          |   19 +-
 drivers/vdpa/mlx5/net/mlx5_vnet.c                  |    2 +-
 drivers/vhost/net.c                                |    2 -
 include/asm-generic/compat.h                       |   17 +
 include/linux/bitops.h                             |   50 +
 include/linux/bpf-cgroup.h                         |  230 +-
 include/linux/bpf.h                                |  306 +-
 include/linux/bpf_types.h                          |    3 +
 include/linux/bpf_verifier.h                       |   19 +-
 include/linux/bpfptr.h                             |   12 +-
 include/linux/btf.h                                |    1 +
 include/linux/btf_ids.h                            |    9 +-
 include/linux/can/bittiming.h                      |    4 +-
 include/linux/can/dev.h                            |    8 +
 include/linux/can/platform/flexcan.h               |   23 +
 include/linux/can/rx-offload.h                     |    8 +-
 include/linux/compat.h                             |   32 +-
 include/linux/dsa/8021q.h                          |   44 +-
 include/linux/dsa/sja1105.h                        |   22 +-
 include/linux/ethtool.h                            |   26 +-
 include/linux/filter.h                             |   80 +-
 include/linux/fsl/mc.h                             |    3 +-
 include/linux/genetlink.h                          |   23 -
 include/linux/hdlc.h                               |    4 +-
 include/linux/hdlcdrv.h                            |    2 +-
 include/linux/ieee80211.h                          |  106 +-
 include/linux/if_bridge.h                          |   40 +-
 include/linux/igmp.h                               |    3 -
 include/linux/inetdevice.h                         |    9 +
 include/linux/ioam6.h                              |   13 +
 include/linux/ioam6_genl.h                         |   13 +
 include/linux/ioam6_iptunnel.h                     |   13 +
 include/linux/ipv6.h                               |    3 +
 include/linux/memcontrol.h                         |    3 +-
 include/linux/mhi.h                                |    2 +
 include/linux/mii.h                                |    2 +-
 include/linux/mlx5/device.h                        |   71 +-
 include/linux/mlx5/driver.h                        |   18 +-
 include/linux/mlx5/eswitch.h                       |   16 +
 include/linux/mlx5/fs.h                            |    2 +
 include/linux/mlx5/mlx5_ifc.h                      |   25 +-
 include/linux/mm_types.h                           |   18 +-
 include/linux/mmc/sdio_ids.h                       |    1 +
 include/linux/netdevice.h                          |   92 +-
 include/linux/netfilter/x_tables.h                 |    6 +-
 include/linux/netfilter_bridge/ebtables.h          |    2 +
 include/linux/pci.h                                |   10 +
 include/linux/perf_event.h                         |    1 +
 include/linux/phy.h                                |    1 +
 include/linux/ptp_clock_kernel.h                   |   48 +-
 include/linux/sched.h                              |    3 +
 include/linux/skbuff.h                             |   21 +-
 include/linux/socket.h                             |    6 +-
 include/linux/ssb/ssb.h                            |    2 +-
 include/linux/ssb/ssb_driver_extif.h               |    2 +-
 include/linux/trace_events.h                       |    7 +-
 include/linux/typecheck.h                          |    9 +
 include/net/Space.h                                |   10 -
 include/net/act_api.h                              |   22 +-
 include/net/af_unix.h                              |   19 +
 include/net/ax88796.h                              |    3 +
 include/net/bluetooth/hci_core.h                   |   21 +-
 include/net/bond_3ad.h                             |    1 +
 include/net/bond_options.h                         |    1 +
 include/net/bonding.h                              |   14 +-
 include/net/cfg80211.h                             |   92 +
 include/net/compat.h                               |   27 +-
 include/net/devlink.h                              |   58 +-
 include/net/dn_fib.h                               |    2 +-
 include/net/dsa.h                                  |   72 +-
 include/net/dst.h                                  |    2 +
 include/net/flow_offload.h                         |    1 +
 include/net/ieee80211_radiotap.h                   |    5 +
 include/net/if_inet6.h                             |    5 +-
 include/net/inet_hashtables.h                      |    6 +
 include/net/ioam6.h                                |   67 +
 include/net/ip.h                                   |   22 +-
 include/net/ip6_route.h                            |    5 +-
 include/net/ip_fib.h                               |    2 +-
 include/net/ip_tunnels.h                           |    3 +-
 include/net/ipx.h                                  |  171 --
 include/net/lwtunnel.h                             |    3 +
 include/net/mac80211.h                             |   41 +
 include/net/mctp.h                                 |  232 ++
 include/net/mctpdevice.h                           |   35 +
 include/net/mptcp.h                                |   29 +-
 include/net/net_namespace.h                        |    6 +-
 include/net/netfilter/nf_conntrack_ecache.h        |   32 +-
 include/net/netfilter/nf_hooks_lwtunnel.h          |    7 +
 include/net/netfilter/nf_queue.h                   |    4 +-
 include/net/netlink.h                              |    2 +-
 include/net/netns/conntrack.h                      |    1 -
 include/net/netns/ipv4.h                           |    1 -
 include/net/netns/ipv6.h                           |    3 +
 include/net/netns/mctp.h                           |   36 +
 include/net/netns/netfilter.h                      |    1 -
 include/net/netns/x_tables.h                       |   12 -
 include/net/netns/xfrm.h                           |    7 +
 include/net/nfc/digital.h                          |    4 +-
 include/net/nfc/hci.h                              |    6 +-
 include/net/nfc/nci_core.h                         |   30 +-
 include/net/nfc/nfc.h                              |   16 +-
 include/net/page_pool.h                            |   68 +-
 include/net/pkt_cls.h                              |   27 +-
 include/net/rtnetlink.h                            |    3 +-
 include/net/sch_generic.h                          |    2 +-
 include/net/sock.h                                 |   18 +-
 include/net/switchdev.h                            |  108 +
 include/net/tcp.h                                  |    1 -
 include/net/xdp.h                                  |    5 +
 include/net/xfrm.h                                 |   36 +-
 include/soc/mscc/ocelot.h                          |   26 +-
 include/trace/events/qdisc.h                       |    2 +
 include/uapi/asm-generic/socket.h                  |    2 +
 include/uapi/linux/bpf.h                           |  119 +-
 include/uapi/linux/can/j1939.h                     |    9 +
 include/uapi/linux/ethtool.h                       |    2 +
 include/uapi/linux/ethtool_netlink.h               |    2 +
 include/uapi/linux/if_arp.h                        |    1 +
 include/uapi/linux/if_bridge.h                     |   46 +
 include/uapi/linux/if_ether.h                      |    3 +
 include/uapi/linux/if_link.h                       |   13 +
 include/uapi/linux/in.h                            |   42 +-
 include/uapi/linux/in6.h                           |    1 +
 include/uapi/linux/ioam6.h                         |  133 +
 include/uapi/linux/ioam6_genl.h                    |   52 +
 include/uapi/linux/ioam6_iptunnel.h                |   20 +
 include/uapi/linux/ipv6.h                          |    3 +
 include/uapi/linux/ipx.h                           |   87 -
 include/uapi/linux/lwtunnel.h                      |    1 +
 include/uapi/linux/mctp.h                          |   36 +
 include/uapi/linux/mptcp.h                         |    1 +
 include/uapi/linux/netfilter/nfnetlink_conntrack.h |    1 +
 include/uapi/linux/nl80211-vnd-intel.h             |   77 +
 include/uapi/linux/nl80211.h                       |   43 +
 include/uapi/linux/openvswitch.h                   |    8 +
 include/uapi/linux/pkt_cls.h                       |    1 +
 include/uapi/linux/socket.h                        |    5 +
 include/uapi/linux/tc_act/tc_skbmod.h              |    1 +
 include/uapi/linux/xfrm.h                          |   11 +
 init/main.c                                        |    6 +-
 kernel/bpf/Kconfig                                 |    2 +-
 kernel/bpf/arraymap.c                              |   21 +
 kernel/bpf/bpf_iter.c                              |   24 +-
 kernel/bpf/bpf_struct_ops.c                        |   22 +-
 kernel/bpf/bpf_task_storage.c                      |    6 +-
 kernel/bpf/btf.c                                   |   84 +-
 kernel/bpf/cgroup.c                                |  198 +-
 kernel/bpf/core.c                                  |   31 +-
 kernel/bpf/cpumap.c                                |  116 +-
 kernel/bpf/devmap.c                                |  118 +-
 kernel/bpf/hashtab.c                               |  105 +-
 kernel/bpf/helpers.c                               |  376 ++-
 kernel/bpf/local_storage.c                         |   20 +-
 kernel/bpf/map_in_map.c                            |    8 +
 kernel/bpf/stackmap.c                              |    4 +-
 kernel/bpf/syscall.c                               |  220 +-
 kernel/bpf/task_iter.c                             |   11 +-
 kernel/bpf/trampoline.c                            |   14 +-
 kernel/bpf/verifier.c                              |  385 ++-
 kernel/events/core.c                               |   77 +-
 kernel/fork.c                                      |    1 +
 kernel/trace/bpf_trace.c                           |  112 +-
 lib/test_bpf.c                                     | 2754 ++++++++++++++++--
 mm/memcontrol.c                                    |   26 +-
 net/6lowpan/debugfs.c                              |    3 +-
 net/802/Makefile                                   |    1 -
 net/802/p8023.c                                    |   60 -
 net/8021q/vlan.c                                   |    2 +-
 net/8021q/vlan_dev.c                               |    6 +-
 net/Kconfig                                        |    1 +
 net/Makefile                                       |    1 +
 net/appletalk/ddp.c                                |    4 +-
 net/ax25/ax25_ip.c                                 |    4 +-
 net/ax25/ax25_out.c                                |   13 +-
 net/ax25/ax25_route.c                              |   13 +-
 net/batman-adv/bat_iv_ogm.c                        |   75 +-
 net/batman-adv/bat_v.c                             |   30 +-
 net/batman-adv/bat_v_elp.c                         |    9 +-
 net/batman-adv/bat_v_ogm.c                         |   39 +-
 net/batman-adv/bridge_loop_avoidance.c             |   39 +-
 net/batman-adv/distributed-arp-table.c             |   27 +-
 net/batman-adv/fragmentation.c                     |    6 +-
 net/batman-adv/gateway_client.c                    |   60 +-
 net/batman-adv/gateway_client.h                    |   16 +-
 net/batman-adv/gateway_common.c                    |    2 +-
 net/batman-adv/hard-interface.c                    |   21 +-
 net/batman-adv/hard-interface.h                    |    3 +
 net/batman-adv/main.h                              |    2 +-
 net/batman-adv/multicast.c                         |   11 +-
 net/batman-adv/netlink.c                           |    6 +-
 net/batman-adv/network-coding.c                    |   24 +-
 net/batman-adv/originator.c                        |  114 +-
 net/batman-adv/originator.h                        |   96 +-
 net/batman-adv/routing.c                           |   39 +-
 net/batman-adv/send.c                              |   33 +-
 net/batman-adv/soft-interface.c                    |   27 +-
 net/batman-adv/soft-interface.h                    |   16 +-
 net/batman-adv/tp_meter.c                          |   27 +-
 net/batman-adv/translation-table.c                 |  109 +-
 net/batman-adv/translation-table.h                 |   18 +-
 net/batman-adv/tvlv.c                              |    9 +-
 net/bluetooth/cmtp/cmtp.h                          |    2 +-
 net/bluetooth/hci_core.c                           |   48 +-
 net/bluetooth/hci_event.c                          |  223 +-
 net/bluetooth/hci_request.c                        |   81 +-
 net/bluetooth/hci_sysfs.c                          |    3 +-
 net/bluetooth/mgmt.c                               |    4 +-
 net/bluetooth/rfcomm/sock.c                        |    8 +-
 net/bluetooth/sco.c                                |  106 +-
 net/bpf/test_run.c                                 |  139 +-
 net/bridge/br.c                                    |   62 +-
 net/bridge/br_device.c                             |   16 +-
 net/bridge/br_fdb.c                                |   28 +-
 net/bridge/br_forward.c                            |   16 +-
 net/bridge/br_if.c                                 |   15 +-
 net/bridge/br_input.c                              |   24 +-
 net/bridge/br_ioctl.c                              |   83 +-
 net/bridge/br_mdb.c                                |  177 +-
 net/bridge/br_multicast.c                          | 1912 ++++++++-----
 net/bridge/br_multicast_eht.c                      |   92 +-
 net/bridge/br_netlink.c                            |   61 +-
 net/bridge/br_private.h                            |  581 +++-
 net/bridge/br_private_mcast_eht.h                  |    3 +-
 net/bridge/br_private_tunnel.h                     |    6 +-
 net/bridge/br_switchdev.c                          |  246 +-
 net/bridge/br_sysfs_br.c                           |   48 +-
 net/bridge/br_sysfs_if.c                           |    4 +-
 net/bridge/br_vlan.c                               |  136 +-
 net/bridge/br_vlan_options.c                       |  427 ++-
 net/bridge/br_vlan_tunnel.c                        |   14 +-
 net/bridge/netfilter/ebtable_broute.c              |   17 +-
 net/bridge/netfilter/ebtable_filter.c              |   17 +-
 net/bridge/netfilter/ebtable_nat.c                 |   17 +-
 net/bridge/netfilter/ebtables.c                    |  109 +-
 net/can/j1939/j1939-priv.h                         |   10 +-
 net/can/j1939/socket.c                             |  143 +-
 net/can/j1939/transport.c                          |   70 +-
 net/can/raw.c                                      |    8 +-
 net/core/Makefile                                  |    2 -
 net/core/bpf_sk_storage.c                          |    4 +-
 net/core/dev.c                                     |  342 +--
 net/core/dev_addr_lists.c                          |  144 +-
 net/core/dev_ioctl.c                               |  264 +-
 net/core/devlink.c                                 |  680 +++--
 net/core/drop_monitor.c                            |    6 +-
 net/core/dst.c                                     |    6 +-
 net/core/fib_rules.c                               |    4 +-
 net/core/filter.c                                  |  134 +-
 net/core/flow_dissector.c                          |   12 +-
 net/core/flow_offload.c                            |   90 +-
 net/core/lwtunnel.c                                |    5 +
 net/core/neighbour.c                               |   29 +-
 net/core/net-procfs.c                              |   24 +-
 net/core/net_namespace.c                           |   52 +-
 net/core/page_pool.c                               |  114 +-
 net/core/pktgen.c                                  |  167 +-
 net/core/ptp_classifier.c                          |    2 +-
 net/core/rtnetlink.c                               |   31 +-
 net/core/scm.c                                     |    4 +-
 net/core/selftests.c                               |   12 +
 net/core/skbuff.c                                  |   75 +-
 net/core/sock.c                                    |   31 +-
 net/core/sock_map.c                                |   23 +-
 net/dccp/proto.c                                   |    2 +-
 net/decnet/dn_dev.c                                |    6 +-
 net/decnet/dn_fib.c                                |    9 +-
 net/decnet/dn_route.c                              |   18 +-
 net/dsa/Kconfig                                    |   13 +-
 net/dsa/Makefile                                   |    3 +-
 net/dsa/dsa.c                                      |    2 +-
 net/dsa/dsa2.c                                     |  112 +-
 net/dsa/dsa_priv.h                                 |  194 +-
 net/dsa/master.c                                   |    6 +-
 net/dsa/port.c                                     |  344 ++-
 net/dsa/slave.c                                    |  298 +-
 net/dsa/switch.c                                   |   55 +-
 net/dsa/tag_8021q.c                                |  608 ++--
 net/dsa/tag_ar9331.c                               |    3 +-
 net/dsa/tag_brcm.c                                 |   34 +-
 net/dsa/tag_dsa.c                                  |   95 +-
 net/dsa/tag_gswip.c                                |    3 +-
 net/dsa/tag_hellcreek.c                            |    5 +-
 net/dsa/tag_ksz.c                                  |    8 +-
 net/dsa/tag_lan9303.c                              |   24 +-
 net/dsa/tag_mtk.c                                  |   19 +-
 net/dsa/tag_ocelot.c                               |    5 +-
 net/dsa/tag_ocelot_8021q.c                         |    9 +-
 net/dsa/tag_qca.c                                  |   16 +-
 net/dsa/tag_rtl4_a.c                               |   21 +-
 net/dsa/tag_sja1105.c                              |  284 +-
 net/dsa/tag_trailer.c                              |    3 +-
 net/dsa/tag_xrs700x.c                              |    5 +-
 net/ethernet/eth.c                                 |    8 +-
 net/ethtool/coalesce.c                             |   29 +-
 net/ethtool/ioctl.c                                |  172 +-
 net/ethtool/netlink.c                              |   51 +-
 net/ethtool/netlink.h                              |   17 +-
 net/ieee802154/nl-phy.c                            |    3 +-
 net/ieee802154/nl802154.c                          |    3 +-
 net/ieee802154/socket.c                            |    7 +-
 net/ipv4/af_inet.c                                 |   12 +-
 net/ipv4/bpf_tcp_ca.c                              |   41 +-
 net/ipv4/devinet.c                                 |   21 +-
 net/ipv4/esp4.c                                    |    4 +-
 net/ipv4/fib_semantics.c                           |   12 +-
 net/ipv4/fib_trie.c                                |    4 +-
 net/ipv4/fou.c                                     |   10 +-
 net/ipv4/icmp.c                                    |    3 +-
 net/ipv4/igmp.c                                    |   30 +-
 net/ipv4/inet_connection_sock.c                    |    3 +-
 net/ipv4/ip_gre.c                                  |    2 +-
 net/ipv4/ip_output.c                               |   39 +-
 net/ipv4/ip_sockglue.c                             |   24 +-
 net/ipv4/ip_tunnel.c                               |    9 +-
 net/ipv4/ip_vti.c                                  |    2 +-
 net/ipv4/ipip.c                                    |    2 +-
 net/ipv4/netfilter/arptable_filter.c               |   23 +-
 net/ipv4/netfilter/ipt_CLUSTERIP.c                 |   56 +-
 net/ipv4/netfilter/iptable_filter.c                |   24 +-
 net/ipv4/netfilter/iptable_mangle.c                |   19 +-
 net/ipv4/netfilter/iptable_nat.c                   |   20 +-
 net/ipv4/netfilter/iptable_raw.c                   |   21 +-
 net/ipv4/netfilter/iptable_security.c              |   23 +-
 net/ipv4/route.c                                   |   79 +-
 net/ipv4/tcp.c                                     |    5 +-
 net/ipv4/tcp_fastopen.c                            |   20 +-
 net/ipv4/tcp_input.c                               |   54 +-
 net/ipv4/tcp_ipv4.c                                |  411 ++-
 net/ipv4/tcp_output.c                              |    3 +-
 net/ipv4/tcp_recovery.c                            |    3 +-
 net/ipv4/udp.c                                     |    2 +-
 net/ipv4/udp_bpf.c                                 |    1 -
 net/ipv4/udp_offload.c                             |    2 +-
 net/ipv6/Kconfig                                   |   11 +
 net/ipv6/Makefile                                  |    3 +-
 net/ipv6/addrconf.c                                |   65 +-
 net/ipv6/af_inet6.c                                |   16 +-
 net/ipv6/exthdrs.c                                 |  158 +-
 net/ipv6/ioam6.c                                   |  910 ++++++
 net/ipv6/ioam6_iptunnel.c                          |  274 ++
 net/ipv6/ip6_fib.c                                 |    4 +-
 net/ipv6/ip6_gre.c                                 |   17 +-
 net/ipv6/ip6_output.c                              |   80 +-
 net/ipv6/ip6_tunnel.c                              |   21 +-
 net/ipv6/ip6_vti.c                                 |   21 +-
 net/ipv6/ip6mr.c                                   |    3 +-
 net/ipv6/ipv6_sockglue.c                           |   18 +-
 net/ipv6/mcast.c                                   |   20 +-
 net/ipv6/ndisc.c                                   |   17 +-
 net/ipv6/netfilter/ip6table_filter.c               |   23 +-
 net/ipv6/netfilter/ip6table_mangle.c               |   22 +-
 net/ipv6/netfilter/ip6table_nat.c                  |   16 +-
 net/ipv6/netfilter/ip6table_raw.c                  |   24 +-
 net/ipv6/netfilter/ip6table_security.c             |   22 +-
 net/ipv6/route.c                                   |   30 +-
 net/ipv6/seg6_iptunnel.c                           |   74 +-
 net/ipv6/seg6_local.c                              |  110 +-
 net/ipv6/sit.c                                     |   40 +-
 net/ipv6/sysctl_net_ipv6.c                         |   19 +
 net/ipv6/udp.c                                     |    2 +-
 net/iucv/af_iucv.c                                 |   72 +-
 net/iucv/iucv.c                                    |   60 +-
 net/llc/af_llc.c                                   |    6 +-
 net/mac80211/cfg.c                                 |  234 +-
 net/mac80211/driver-ops.h                          |   36 +
 net/mac80211/ibss.c                                |   15 +-
 net/mac80211/ieee80211_i.h                         |   21 +
 net/mac80211/iface.c                               |   54 +-
 net/mac80211/main.c                                |    2 +-
 net/mac80211/rx.c                                  |  102 +-
 net/mac80211/s1g.c                                 |  180 ++
 net/mac80211/sta_info.c                            |    2 +-
 net/mac80211/status.c                              |   33 +-
 net/mac80211/trace.h                               |   67 +
 net/mac80211/tx.c                                  |   33 +-
 net/mac80211/util.c                                |   12 +
 net/mctp/Kconfig                                   |   13 +
 net/mctp/Makefile                                  |    3 +
 net/mctp/af_mctp.c                                 |  395 +++
 net/mctp/device.c                                  |  423 +++
 net/mctp/neigh.c                                   |  342 +++
 net/mctp/route.c                                   | 1116 ++++++++
 net/mpls/af_mpls.c                                 |    2 +-
 net/mptcp/ctrl.c                                   |   26 +-
 net/mptcp/mib.c                                    |    4 +
 net/mptcp/mib.h                                    |    4 +
 net/mptcp/options.c                                |  462 ++--
 net/mptcp/pm.c                                     |   84 +-
 net/mptcp/pm_netlink.c                             |  203 +-
 net/mptcp/protocol.c                               |  201 +-
 net/mptcp/protocol.h                               |  114 +-
 net/mptcp/subflow.c                                |   69 +-
 net/netfilter/Makefile                             |    3 +
 net/netfilter/nf_conntrack_ecache.c                |  211 +-
 net/netfilter/nf_conntrack_netlink.c               |  132 +-
 net/netfilter/nf_conntrack_standalone.c            |   15 +
 net/netfilter/nf_flow_table_core.c                 |   12 +-
 net/netfilter/nf_flow_table_offload.c              |    4 +-
 net/netfilter/nf_hooks_lwtunnel.c                  |   53 +
 net/netfilter/nf_queue.c                           |   43 +-
 net/netfilter/nf_tables_offload.c                  |    1 +
 net/netfilter/nfnetlink_queue.c                    |   15 +-
 net/netfilter/nft_compat.c                         |    8 +-
 net/netfilter/x_tables.c                           |   98 +-
 net/netfilter/xt_CT.c                              |   11 -
 net/netfilter/xt_bpf.c                             |    2 +-
 net/netlabel/netlabel_cipso_v4.c                   |   12 +-
 net/netlabel/netlabel_unlabeled.c                  |    6 +-
 net/netlink/af_netlink.c                           |    4 +-
 net/netlink/genetlink.c                            |   17 +-
 net/netrom/nr_loopback.c                           |    3 +-
 net/netrom/nr_route.c                              |    3 +-
 net/nfc/af_nfc.c                                   |    2 +-
 net/nfc/core.c                                     |    8 +-
 net/nfc/digital_core.c                             |    4 +-
 net/nfc/hci/core.c                                 |   14 +-
 net/nfc/hci/llc.c                                  |    4 +-
 net/nfc/hci/llc.h                                  |    6 +-
 net/nfc/hci/llc_nop.c                              |    2 +-
 net/nfc/hci/llc_shdlc.c                            |   12 +-
 net/nfc/llcp.h                                     |    8 +-
 net/nfc/llcp_commands.c                            |   46 +-
 net/nfc/llcp_core.c                                |   44 +-
 net/nfc/nci/core.c                                 |  176 +-
 net/nfc/nci/data.c                                 |   12 +-
 net/nfc/nci/hci.c                                  |   52 +-
 net/nfc/nci/ntf.c                                  |   87 +-
 net/nfc/nci/rsp.c                                  |   48 +-
 net/nfc/nci/spi.c                                  |    2 +-
 net/nfc/netlink.c                                  |    4 +-
 net/nfc/nfc.h                                      |    2 +-
 net/nfc/rawsock.c                                  |    2 +-
 net/openvswitch/actions.c                          |    8 +-
 net/openvswitch/datapath.c                         |   76 +-
 net/openvswitch/datapath.h                         |   20 +
 net/packet/af_packet.c                             |   15 +-
 net/phonet/af_phonet.c                             |    3 +-
 net/phonet/pn_dev.c                                |   12 +-
 net/phonet/socket.c                                |    3 +-
 net/qrtr/qrtr.c                                    |   12 +-
 net/rxrpc/Kconfig                                  |    7 +-
 net/sched/act_api.c                                |   73 +-
 net/sched/act_bpf.c                                |    8 +-
 net/sched/act_connmark.c                           |    4 +-
 net/sched/act_csum.c                               |    7 +-
 net/sched/act_ct.c                                 |    4 +-
 net/sched/act_ctinfo.c                             |    4 +-
 net/sched/act_gact.c                               |    4 +-
 net/sched/act_gate.c                               |    4 +-
 net/sched/act_ife.c                                |    9 +-
 net/sched/act_ipt.c                                |   21 +-
 net/sched/act_mirred.c                             |   10 +-
 net/sched/act_mpls.c                               |    4 +-
 net/sched/act_nat.c                                |    6 +-
 net/sched/act_pedit.c                              |    4 +-
 net/sched/act_police.c                             |    4 +-
 net/sched/act_sample.c                             |    7 +-
 net/sched/act_simple.c                             |    4 +-
 net/sched/act_skbedit.c                            |    4 +-
 net/sched/act_skbmod.c                             |   47 +-
 net/sched/act_tunnel_key.c                         |    4 +-
 net/sched/act_vlan.c                               |    4 +-
 net/sched/cls_api.c                                |   87 +-
 net/sched/cls_basic.c                              |   10 +-
 net/sched/cls_bpf.c                                |   12 +-
 net/sched/cls_cgroup.c                             |    6 +-
 net/sched/cls_flow.c                               |    6 +-
 net/sched/cls_flower.c                             |   18 +-
 net/sched/cls_fw.c                                 |   13 +-
 net/sched/cls_matchall.c                           |   17 +-
 net/sched/cls_route.c                              |   10 +-
 net/sched/cls_rsvp.h                               |    7 +-
 net/sched/cls_tcindex.c                            |   10 +-
 net/sched/cls_u32.c                                |   24 +-
 net/sched/sch_api.c                                |   10 +-
 net/sched/sch_atm.c                                |    2 +-
 net/sched/sch_cake.c                               |    2 +-
 net/sched/sch_cbq.c                                |    4 +-
 net/sched/sch_drr.c                                |    2 +-
 net/sched/sch_dsmark.c                             |    2 +-
 net/sched/sch_ets.c                                |    2 +-
 net/sched/sch_fq_codel.c                           |    2 +-
 net/sched/sch_fq_pie.c                             |    2 +-
 net/sched/sch_hfsc.c                               |    2 +-
 net/sched/sch_htb.c                                |   99 +-
 net/sched/sch_multiq.c                             |    2 +-
 net/sched/sch_prio.c                               |    2 +-
 net/sched/sch_qfq.c                                |    2 +-
 net/sched/sch_sfb.c                                |    2 +-
 net/sched/sch_sfq.c                                |    2 +-
 net/sched/sch_taprio.c                             |    4 +-
 net/smc/smc_core.c                                 |   31 +-
 net/smc/smc_ib.c                                   |    3 +-
 net/smc/smc_pnet.c                                 |    3 +-
 net/socket.c                                       |  352 +--
 net/switchdev/switchdev.c                          |  308 +++
 net/tipc/socket.c                                  |   34 +-
 net/unix/Kconfig                                   |    5 +
 net/unix/Makefile                                  |    1 +
 net/unix/af_unix.c                                 |  441 ++-
 net/unix/unix_bpf.c                                |  174 ++
 net/wireless/nl80211.c                             |  173 +-
 net/wireless/radiotap.c                            |    9 +-
 net/wireless/rdev-ops.h                            |   13 +
 net/wireless/reg.c                                 |    9 +-
 net/wireless/scan.c                                |    3 +-
 net/wireless/trace.h                               |   46 +
 net/xfrm/xfrm_policy.c                             |   16 +
 net/xfrm/xfrm_user.c                               |   57 +
 samples/bpf/.gitignore                             |    2 +
 samples/bpf/Makefile                               |  109 +-
 samples/bpf/Makefile.target                        |   11 +
 samples/bpf/cookie_uid_helper_example.c            |   11 +-
 samples/bpf/offwaketime_kern.c                     |    9 +-
 samples/bpf/test_override_return.sh                |    1 +
 samples/bpf/tracex4_user.c                         |    2 +-
 samples/bpf/tracex7_user.c                         |    5 +
 samples/bpf/xdp1_kern.c                            |    2 +
 samples/bpf/xdp2_kern.c                            |    2 +
 samples/bpf/xdp_monitor.bpf.c                      |    8 +
 samples/bpf/xdp_monitor_kern.c                     |  257 --
 samples/bpf/xdp_monitor_user.c                     |  798 +-----
 samples/bpf/xdp_redirect.bpf.c                     |   49 +
 ..._redirect_cpu_kern.c => xdp_redirect_cpu.bpf.c} |  393 +--
 samples/bpf/xdp_redirect_cpu_user.c                | 1132 +++-----
 samples/bpf/xdp_redirect_kern.c                    |   90 -
 ..._redirect_map_kern.c => xdp_redirect_map.bpf.c} |   89 +-
 ...p_multi_kern.c => xdp_redirect_map_multi.bpf.c} |   50 +-
 samples/bpf/xdp_redirect_map_multi_user.c          |  345 +--
 samples/bpf/xdp_redirect_map_user.c                |  385 ++-
 samples/bpf/xdp_redirect_user.c                    |  270 +-
 samples/bpf/xdp_sample.bpf.c                       |  266 ++
 samples/bpf/xdp_sample.bpf.h                       |  141 +
 samples/bpf/xdp_sample_shared.h                    |   17 +
 samples/bpf/xdp_sample_user.c                      | 1673 +++++++++++
 samples/bpf/xdp_sample_user.h                      |  108 +
 samples/bpf/xdpsock_user.c                         |   20 +-
 samples/pktgen/functions.sh                        |    2 +-
 .../pktgen/pktgen_bench_xmit_mode_netif_receive.sh |   19 +-
 .../pktgen/pktgen_bench_xmit_mode_queue_xmit.sh    |   19 +-
 samples/pktgen/pktgen_sample01_simple.sh           |   13 +-
 samples/pktgen/pktgen_sample02_multiqueue.sh       |   19 +-
 .../pktgen/pktgen_sample03_burst_single_flow.sh    |    6 +-
 samples/pktgen/pktgen_sample04_many_flows.sh       |   12 +-
 samples/pktgen/pktgen_sample05_flow_per_thread.sh  |   12 +-
 ...tgen_sample06_numa_awared_queue_irq_affinity.sh |   19 +-
 scripts/bpf_doc.py                                 |    2 +
 security/selinux/hooks.c                           |    4 +-
 security/selinux/include/classmap.h                |    4 +-
 tools/bpf/bpftool/Documentation/bpftool-btf.rst    |   48 +-
 tools/bpf/bpftool/Documentation/bpftool-cgroup.rst |    3 +-
 .../bpf/bpftool/Documentation/bpftool-feature.rst  |    2 +-
 tools/bpf/bpftool/Documentation/bpftool-gen.rst    |    9 +-
 tools/bpf/bpftool/Documentation/bpftool-iter.rst   |    2 +
 tools/bpf/bpftool/Documentation/bpftool-link.rst   |    3 +-
 tools/bpf/bpftool/Documentation/bpftool-map.rst    |    3 +-
 tools/bpf/bpftool/Documentation/bpftool-net.rst    |    2 +-
 tools/bpf/bpftool/Documentation/bpftool-perf.rst   |    2 +-
 tools/bpf/bpftool/Documentation/bpftool-prog.rst   |   36 +-
 .../bpftool/Documentation/bpftool-struct_ops.rst   |    2 +-
 tools/bpf/bpftool/Documentation/bpftool.rst        |   12 +-
 tools/bpf/bpftool/bash-completion/bpftool          |   66 +-
 tools/bpf/bpftool/btf.c                            |   11 +-
 tools/bpf/bpftool/btf_dumper.c                     |    6 +-
 tools/bpf/bpftool/cgroup.c                         |    3 +-
 tools/bpf/bpftool/common.c                         |    6 +
 tools/bpf/bpftool/feature.c                        |    1 +
 tools/bpf/bpftool/gen.c                            |    3 +-
 tools/bpf/bpftool/iter.c                           |    2 +
 tools/bpf/bpftool/link.c                           |    3 +-
 tools/bpf/bpftool/main.c                           |    3 +-
 tools/bpf/bpftool/main.h                           |    3 +-
 tools/bpf/bpftool/map.c                            |   19 +-
 tools/bpf/bpftool/net.c                            |    1 +
 tools/bpf/bpftool/perf.c                           |    5 +-
 tools/bpf/bpftool/prog.c                           |   37 +-
 tools/bpf/bpftool/struct_ops.c                     |    2 +-
 tools/bpf/resolve_btfids/main.c                    |   13 +-
 tools/include/uapi/linux/bpf.h                     |  119 +-
 tools/include/uapi/linux/ethtool.h                 |   53 +
 tools/include/uapi/linux/if_link.h                 |    2 +
 tools/lib/bpf/Build                                |    2 +-
 tools/lib/bpf/Makefile                             |   10 +-
 tools/lib/bpf/bpf.c                                |   32 +-
 tools/lib/bpf/bpf.h                                |    8 +-
 tools/lib/bpf/btf.c                                |   47 +-
 tools/lib/bpf/btf.h                                |   31 +-
 tools/lib/bpf/btf_dump.c                           |  871 +++++-
 tools/lib/bpf/libbpf.c                             | 1776 +++---------
 tools/lib/bpf/libbpf.h                             |   76 +-
 tools/lib/bpf/libbpf.map                           |   11 +
 tools/lib/bpf/libbpf_internal.h                    |  113 +-
 tools/lib/bpf/relo_core.c                          | 1295 +++++++++
 tools/lib/bpf/relo_core.h                          |  100 +
 tools/perf/util/bpf-event.c                        |   11 +-
 tools/perf/util/bpf_counter.c                      |   12 +-
 tools/testing/selftests/Makefile                   |    1 +
 tools/testing/selftests/bpf/.gitignore             |    1 -
 tools/testing/selftests/bpf/Makefile               |    7 +-
 tools/testing/selftests/bpf/README.rst             |    7 +
 tools/testing/selftests/bpf/bpf_tcp_helpers.h      |   19 +
 tools/testing/selftests/bpf/netcnt_common.h        |   38 +-
 tools/testing/selftests/bpf/network_helpers.c      |  120 +-
 tools/testing/selftests/bpf/network_helpers.h      |   11 +
 .../selftests/bpf/prog_tests/attach_probe.c        |   98 +-
 .../testing/selftests/bpf/prog_tests/bpf_cookie.c  |  254 ++
 tools/testing/selftests/bpf/prog_tests/bpf_iter.c  |   16 +
 .../selftests/bpf/prog_tests/bpf_iter_setsockopt.c |  226 ++
 .../testing/selftests/bpf/prog_tests/bpf_tcp_ca.c  |  106 +-
 tools/testing/selftests/bpf/prog_tests/btf.c       |    4 +-
 tools/testing/selftests/bpf/prog_tests/btf_dump.c  |  615 +++++
 .../testing/selftests/bpf/prog_tests/btf_module.c  |   34 +
 .../selftests/bpf/prog_tests/core_autosize.c       |   22 +-
 .../testing/selftests/bpf/prog_tests/core_reloc.c  |   25 +-
 .../selftests/bpf/prog_tests/get_func_ip_test.c    |   55 +
 .../testing/selftests/bpf/prog_tests/kfunc_call.c  |    2 +-
 tools/testing/selftests/bpf/prog_tests/ksyms_btf.c |   31 +
 tools/testing/selftests/bpf/prog_tests/netcnt.c    |   82 +
 .../selftests/bpf/prog_tests/netns_cookie.c        |   80 +
 tools/testing/selftests/bpf/prog_tests/perf_link.c |   89 +
 tools/testing/selftests/bpf/prog_tests/pinning.c   |    9 +
 .../selftests/bpf/prog_tests/reference_tracking.c  |    4 +-
 .../testing/selftests/bpf/prog_tests/send_signal.c |   61 +-
 tools/testing/selftests/bpf/prog_tests/snprintf.c  |    4 +-
 .../selftests/bpf/prog_tests/sockmap_listen.c      |  445 ++-
 .../selftests/bpf/prog_tests/sockopt_inherit.c     |    4 +-
 .../selftests/bpf/prog_tests/sockopt_qos_to_cc.c   |   70 +
 .../selftests/bpf/prog_tests/task_pt_regs.c        |   47 +
 .../testing/selftests/bpf/prog_tests/tc_redirect.c |   11 +-
 tools/testing/selftests/bpf/prog_tests/timer.c     |   55 +
 tools/testing/selftests/bpf/prog_tests/timer_mim.c |   77 +
 .../testing/selftests/bpf/prog_tests/xdp_bonding.c |  520 ++++
 .../bpf/prog_tests/xdp_context_test_run.c          |  105 +
 .../selftests/bpf/prog_tests/xdp_cpumap_attach.c   |   43 +-
 .../selftests/bpf/prog_tests/xdp_devmap_attach.c   |   39 +-
 tools/testing/selftests/bpf/progs/bpf_dctcp.c      |   25 +
 .../selftests/bpf/progs/bpf_dctcp_release.c        |   26 +
 tools/testing/selftests/bpf/progs/bpf_iter.h       |    8 +
 .../selftests/bpf/progs/bpf_iter_setsockopt.c      |   72 +
 tools/testing/selftests/bpf/progs/bpf_iter_tcp4.c  |    2 +-
 tools/testing/selftests/bpf/progs/bpf_iter_unix.c  |   80 +
 .../testing/selftests/bpf/progs/bpf_tracing_net.h  |   10 +
 .../testing/selftests/bpf/progs/get_func_ip_test.c |   84 +
 .../selftests/bpf/progs/kfunc_call_test_subprog.c  |    4 +-
 tools/testing/selftests/bpf/progs/netcnt_prog.c    |    8 +-
 .../selftests/bpf/progs/netns_cookie_prog.c        |   84 +
 .../selftests/bpf/progs/sockopt_qos_to_cc.c        |   39 +
 tools/testing/selftests/bpf/progs/sockopt_sk.c     |   16 +
 .../testing/selftests/bpf/progs/test_bpf_cookie.c  |   85 +
 .../selftests/bpf/progs/test_core_autosize.c       |   20 +-
 .../testing/selftests/bpf/progs/test_ksyms_weak.c  |   56 +
 .../selftests/bpf/progs/test_map_in_map_invalid.c  |   26 +
 tools/testing/selftests/bpf/progs/test_perf_link.c |   16 +
 .../selftests/bpf/progs/test_sk_lookup_kern.c      |   14 +-
 tools/testing/selftests/bpf/progs/test_snprintf.c  |    6 +-
 .../selftests/bpf/progs/test_task_pt_regs.c        |   29 +
 tools/testing/selftests/bpf/progs/test_tc_tunnel.c |    1 -
 .../bpf/progs/test_xdp_context_test_run.c          |   20 +
 tools/testing/selftests/bpf/progs/timer.c          |  297 ++
 tools/testing/selftests/bpf/progs/timer_mim.c      |   88 +
 .../testing/selftests/bpf/progs/timer_mim_reject.c |   74 +
 tools/testing/selftests/bpf/progs/xdp_tx.c         |    2 +-
 tools/testing/selftests/bpf/test_bpftool.sh        |    6 +
 tools/testing/selftests/bpf/test_bpftool_build.sh  |    2 +-
 .../selftests/bpf/test_bpftool_synctypes.py        |  586 ++++
 tools/testing/selftests/bpf/test_doc_build.sh      |   10 +-
 tools/testing/selftests/bpf/test_maps.c            |   90 +-
 tools/testing/selftests/bpf/test_netcnt.c          |  148 -
 tools/testing/selftests/bpf/test_progs.c           |  107 +-
 tools/testing/selftests/bpf/test_progs.h           |   12 +
 tools/testing/selftests/bpf/test_tc_tunnel.sh      |    2 +-
 tools/testing/selftests/bpf/test_xdp_veth.sh       |    2 +-
 tools/testing/selftests/bpf/test_xsk.sh            |   10 +-
 tools/testing/selftests/bpf/trace_helpers.c        |   87 +
 tools/testing/selftests/bpf/trace_helpers.h        |    4 +
 tools/testing/selftests/bpf/xdpxceiver.c           |  681 +++--
 tools/testing/selftests/bpf/xdpxceiver.h           |   63 +-
 tools/testing/selftests/bpf/xsk_prereqs.sh         |   30 +-
 tools/testing/selftests/nci/nci_dev.c              |  416 ++-
 tools/testing/selftests/net/Makefile               |    5 +
 tools/testing/selftests/net/af_unix/Makefile       |    5 +
 .../testing/selftests/net/af_unix/test_unix_oob.c  |  437 +++
 tools/testing/selftests/net/config                 |    1 +
 tools/testing/selftests/net/fcnal-test.sh          |   33 +-
 tools/testing/selftests/net/fib_rule_tests.sh      |    7 +-
 .../selftests/net/forwarding/devlink_lib.sh        |   15 +-
 tools/testing/selftests/net/forwarding/lib.sh      |   27 +-
 .../selftests/net/forwarding/router_mpath_nh.sh    |    2 +-
 .../net/forwarding/router_mpath_nh_res.sh          |    2 +-
 tools/testing/selftests/net/gro.c                  | 1095 ++++++++
 tools/testing/selftests/net/gro.sh                 |   99 +
 tools/testing/selftests/net/ioam6.sh               |  652 +++++
 tools/testing/selftests/net/ioam6_parser.c         |  720 +++++
 tools/testing/selftests/net/mptcp/mptcp_join.sh    |  345 ++-
 tools/testing/selftests/net/mptcp/pm_nl_ctl.c      |   16 +-
 tools/testing/selftests/net/psock_fanout.c         |    4 +-
 tools/testing/selftests/net/psock_snd.sh           |    3 -
 tools/testing/selftests/net/run_afpackettests      |    5 +-
 tools/testing/selftests/net/setup_loopback.sh      |  118 +
 tools/testing/selftests/net/setup_veth.sh          |   41 +
 .../selftests/net/srv6_end_dt46_l3vpn_test.sh      |    9 +-
 .../selftests/net/srv6_end_dt4_l3vpn_test.sh       |    9 +-
 .../selftests/net/srv6_end_dt6_l3vpn_test.sh       |    9 +-
 tools/testing/selftests/net/toeplitz.c             |  585 ++++
 tools/testing/selftests/net/toeplitz.sh            |  199 ++
 tools/testing/selftests/net/toeplitz_client.sh     |   28 +
 tools/testing/selftests/net/unicast_extensions.sh  |    5 +-
 tools/testing/selftests/net/veth.sh                |  183 +-
 .../testing/selftests/net/vrf_strict_mode_test.sh  |    9 +-
 .../tc-testing/tc-tests/actions/skbmod.json        |   24 +
 .../selftests/tc-testing/tc-tests/qdiscs/mq.json   |  137 +
 tools/testing/selftests/tc-testing/tdc_config.py   |    1 +
 1812 files changed, 80507 insertions(+), 41279 deletions(-)
 rename Documentation/bpf/libbpf/{libbpf.rst => index.rst} (75%)
 delete mode 100644 Documentation/bpf/libbpf/libbpf_api.rst
 delete mode 100644 Documentation/devicetree/bindings/net/brcm,unimac-mdio.txt
 create mode 100644 Documentation/devicetree/bindings/net/brcm,unimac-mdio.yaml
 create mode 100644 Documentation/devicetree/bindings/net/can/bosch,c_can.yaml
 delete mode 100644 Documentation/devicetree/bindings/net/can/c_can.txt
 create mode 100644 Documentation/devicetree/bindings/net/fsl,fec.yaml
 delete mode 100644 Documentation/devicetree/bindings/net/fsl-fec.txt
 create mode 100644 Documentation/devicetree/bindings/net/intel,ixp46x-ptp-timer.yaml
 create mode 100644 Documentation/devicetree/bindings/net/litex,liteeth.yaml
 create mode 100644 Documentation/networking/device_drivers/ethernet/freescale/dpaa2/switch-driver.rst
 create mode 100644 Documentation/networking/devlink/hns3.rst
 delete mode 100644 Documentation/networking/devlink/sja1105.rst
 create mode 100644 Documentation/networking/ioam6-sysctl.rst
 create mode 100644 Documentation/networking/mctp.rst
 create mode 100644 drivers/net/ethernet/broadcom/bnxt/bnxt_hwrm.c
 create mode 100644 drivers/net/ethernet/broadcom/bnxt/bnxt_hwrm.h
 create mode 100644 drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.h
 create mode 100644 drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_devlink.c
 create mode 100644 drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_devlink.h
 create mode 100644 drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_devlink.c
 create mode 100644 drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_devlink.h
 create mode 100644 drivers/net/ethernet/litex/Kconfig
 create mode 100644 drivers/net/ethernet/litex/Makefile
 create mode 100644 drivers/net/ethernet/litex/litex_liteeth.c
 create mode 100644 drivers/net/ethernet/marvell/octeontx2/af/rvu_sdp.c
 create mode 100644 drivers/net/ethernet/marvell/octeontx2/nic/otx2_devlink.c
 create mode 100644 drivers/net/ethernet/marvell/octeontx2/nic/otx2_devlink.h
 create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en/channels.c
 create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en/channels.h
 create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en/rqt.c
 create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en/rqt.h
 create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en/rss.c
 create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en/rss.h
 create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en/rx_res.c
 create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en/rx_res.h
 create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en/tc/post_act.c
 create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en/tc/post_act.h
 rename drivers/net/ethernet/mellanox/mlx5/core/{esw => en/tc}/sample.c (53%)
 create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en/tc/sample.h
 create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en/tir.c
 create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en/tir.h
 create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/esw/diag/qos_tracepoint.h
 create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/esw/qos.c
 create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/esw/qos.h
 delete mode 100644 drivers/net/ethernet/mellanox/mlx5/core/esw/sample.h
 create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/lib/fs_ttc.c
 create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/lib/fs_ttc.h
 create mode 100644 drivers/net/ethernet/microchip/sparx5/sparx5_fdma.c
 delete mode 100644 drivers/net/ipa/ipa_clock.c
 delete mode 100644 drivers/net/ipa/ipa_clock.h
 create mode 100644 drivers/net/ipa/ipa_power.c
 create mode 100644 drivers/net/ipa/ipa_power.h
 create mode 100644 drivers/net/mctp/Kconfig
 create mode 100644 drivers/net/mctp/Makefile
 delete mode 100644 drivers/net/mhi/Makefile
 delete mode 100644 drivers/net/mhi/mhi.h
 delete mode 100644 drivers/net/mhi/proto_mbim.c
 rename drivers/net/{mhi/net.c => mhi_net.c} (74%)
 create mode 100644 drivers/net/phy/mxl-gpy.c
 delete mode 100644 drivers/net/wan/sbni.c
 delete mode 100644 drivers/net/wan/sbni.h
 create mode 100644 drivers/net/wireless/broadcom/brcm80211/brcmfmac/xtlv.c
 create mode 100644 drivers/net/wireless/broadcom/brcm80211/brcmfmac/xtlv.h
 delete mode 100644 drivers/net/wireless/intersil/prism54/Makefile
 delete mode 100644 drivers/net/wireless/intersil/prism54/isl_38xx.c
 delete mode 100644 drivers/net/wireless/intersil/prism54/isl_38xx.h
 delete mode 100644 drivers/net/wireless/intersil/prism54/isl_ioctl.c
 delete mode 100644 drivers/net/wireless/intersil/prism54/isl_ioctl.h
 delete mode 100644 drivers/net/wireless/intersil/prism54/isl_oid.h
 delete mode 100644 drivers/net/wireless/intersil/prism54/islpci_dev.c
 delete mode 100644 drivers/net/wireless/intersil/prism54/islpci_dev.h
 delete mode 100644 drivers/net/wireless/intersil/prism54/islpci_eth.c
 delete mode 100644 drivers/net/wireless/intersil/prism54/islpci_eth.h
 delete mode 100644 drivers/net/wireless/intersil/prism54/islpci_hotplug.c
 delete mode 100644 drivers/net/wireless/intersil/prism54/islpci_mgt.c
 delete mode 100644 drivers/net/wireless/intersil/prism54/islpci_mgt.h
 delete mode 100644 drivers/net/wireless/intersil/prism54/oid_mgt.c
 delete mode 100644 drivers/net/wireless/intersil/prism54/oid_mgt.h
 delete mode 100644 drivers/net/wireless/intersil/prism54/prismcompat.h
 create mode 100644 drivers/net/wireless/marvell/mwifiex/pcie_quirks.c
 create mode 100644 drivers/net/wireless/marvell/mwifiex/pcie_quirks.h
 create mode 100644 drivers/net/wwan/mhi_wwan_mbim.c
 create mode 100644 include/linux/can/platform/flexcan.h
 create mode 100644 include/linux/ioam6.h
 create mode 100644 include/linux/ioam6_genl.h
 create mode 100644 include/linux/ioam6_iptunnel.h
 create mode 100644 include/net/ioam6.h
 delete mode 100644 include/net/ipx.h
 create mode 100644 include/net/mctp.h
 create mode 100644 include/net/mctpdevice.h
 create mode 100644 include/net/netfilter/nf_hooks_lwtunnel.h
 create mode 100644 include/net/netns/mctp.h
 delete mode 100644 include/net/netns/x_tables.h
 create mode 100644 include/uapi/linux/ioam6.h
 create mode 100644 include/uapi/linux/ioam6_genl.h
 create mode 100644 include/uapi/linux/ioam6_iptunnel.h
 delete mode 100644 include/uapi/linux/ipx.h
 create mode 100644 include/uapi/linux/mctp.h
 create mode 100644 include/uapi/linux/nl80211-vnd-intel.h
 delete mode 100644 net/802/p8023.c
 create mode 100644 net/ipv6/ioam6.c
 create mode 100644 net/ipv6/ioam6_iptunnel.c
 create mode 100644 net/mctp/Kconfig
 create mode 100644 net/mctp/Makefile
 create mode 100644 net/mctp/af_mctp.c
 create mode 100644 net/mctp/device.c
 create mode 100644 net/mctp/neigh.c
 create mode 100644 net/mctp/route.c
 create mode 100644 net/netfilter/nf_hooks_lwtunnel.c
 create mode 100644 net/unix/unix_bpf.c
 create mode 100644 samples/bpf/xdp_monitor.bpf.c
 delete mode 100644 samples/bpf/xdp_monitor_kern.c
 create mode 100644 samples/bpf/xdp_redirect.bpf.c
 rename samples/bpf/{xdp_redirect_cpu_kern.c => xdp_redirect_cpu.bpf.c} (52%)
 delete mode 100644 samples/bpf/xdp_redirect_kern.c
 rename samples/bpf/{xdp_redirect_map_kern.c => xdp_redirect_map.bpf.c} (57%)
 rename samples/bpf/{xdp_redirect_map_multi_kern.c => xdp_redirect_map_multi.bpf.c} (64%)
 create mode 100644 samples/bpf/xdp_sample.bpf.c
 create mode 100644 samples/bpf/xdp_sample.bpf.h
 create mode 100644 samples/bpf/xdp_sample_shared.h
 create mode 100644 samples/bpf/xdp_sample_user.c
 create mode 100644 samples/bpf/xdp_sample_user.h
 create mode 100644 tools/lib/bpf/relo_core.c
 create mode 100644 tools/lib/bpf/relo_core.h
 create mode 100644 tools/testing/selftests/bpf/prog_tests/bpf_cookie.c
 create mode 100644 tools/testing/selftests/bpf/prog_tests/bpf_iter_setsockopt.c
 create mode 100644 tools/testing/selftests/bpf/prog_tests/btf_module.c
 create mode 100644 tools/testing/selftests/bpf/prog_tests/get_func_ip_test.c
 create mode 100644 tools/testing/selftests/bpf/prog_tests/netcnt.c
 create mode 100644 tools/testing/selftests/bpf/prog_tests/netns_cookie.c
 create mode 100644 tools/testing/selftests/bpf/prog_tests/perf_link.c
 create mode 100644 tools/testing/selftests/bpf/prog_tests/sockopt_qos_to_cc.c
 create mode 100644 tools/testing/selftests/bpf/prog_tests/task_pt_regs.c
 create mode 100644 tools/testing/selftests/bpf/prog_tests/timer.c
 create mode 100644 tools/testing/selftests/bpf/prog_tests/timer_mim.c
 create mode 100644 tools/testing/selftests/bpf/prog_tests/xdp_bonding.c
 create mode 100644 tools/testing/selftests/bpf/prog_tests/xdp_context_test_run.c
 create mode 100644 tools/testing/selftests/bpf/progs/bpf_dctcp_release.c
 create mode 100644 tools/testing/selftests/bpf/progs/bpf_iter_setsockopt.c
 create mode 100644 tools/testing/selftests/bpf/progs/bpf_iter_unix.c
 create mode 100644 tools/testing/selftests/bpf/progs/get_func_ip_test.c
 create mode 100644 tools/testing/selftests/bpf/progs/netns_cookie_prog.c
 create mode 100644 tools/testing/selftests/bpf/progs/sockopt_qos_to_cc.c
 create mode 100644 tools/testing/selftests/bpf/progs/test_bpf_cookie.c
 create mode 100644 tools/testing/selftests/bpf/progs/test_ksyms_weak.c
 create mode 100644 tools/testing/selftests/bpf/progs/test_map_in_map_invalid.c
 create mode 100644 tools/testing/selftests/bpf/progs/test_perf_link.c
 create mode 100644 tools/testing/selftests/bpf/progs/test_task_pt_regs.c
 create mode 100644 tools/testing/selftests/bpf/progs/test_xdp_context_test_run.c
 create mode 100644 tools/testing/selftests/bpf/progs/timer.c
 create mode 100644 tools/testing/selftests/bpf/progs/timer_mim.c
 create mode 100644 tools/testing/selftests/bpf/progs/timer_mim_reject.c
 create mode 100755 tools/testing/selftests/bpf/test_bpftool_synctypes.py
 delete mode 100644 tools/testing/selftests/bpf/test_netcnt.c
 create mode 100644 tools/testing/selftests/net/af_unix/Makefile
 create mode 100644 tools/testing/selftests/net/af_unix/test_unix_oob.c
 create mode 100644 tools/testing/selftests/net/gro.c
 create mode 100755 tools/testing/selftests/net/gro.sh
 create mode 100755 tools/testing/selftests/net/ioam6.sh
 create mode 100644 tools/testing/selftests/net/ioam6_parser.c
 create mode 100755 tools/testing/selftests/net/setup_loopback.sh
 create mode 100644 tools/testing/selftests/net/setup_veth.sh
 create mode 100644 tools/testing/selftests/net/toeplitz.c
 create mode 100755 tools/testing/selftests/net/toeplitz.sh
 create mode 100755 tools/testing/selftests/net/toeplitz_client.sh
 create mode 100644 tools/testing/selftests/tc-testing/tc-tests/qdiscs/mq.json

^ permalink raw reply	[relevance 1%]

* [GIT PULL] Staging / IIO driver changes for 5.15-rc1
@ 2021-09-01 14:17  1% Greg KH
  0 siblings, 0 replies; 200+ results
From: Greg KH @ 2021-09-01 14:17 UTC (permalink / raw)
  To: Linus Torvalds, Andrew Morton, Stephen Rothwell
  Cc: linux-kernel, linux-staging

The following changes since commit 7c60610d476766e128cc4284bb6349732cbd6606:

  Linux 5.14-rc6 (2021-08-15 13:40:53 -1000)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git tags/staging-5.15-rc1

for you to fetch changes up to 4adb389e08c95fdf91995271932c59250ff0d561:

  staging: vt6655: Remove filenames in files (2021-08-28 09:45:10 +0200)

----------------------------------------------------------------
IIO / Staging driver update for 5.15-rc1

Here is the big set of staging and IIO driver updates for 5.15-rc1.
Also included in here are the counter driver subsystem updates as the
IIO drivers needed them.

Lots of churn in some staging drivers, we dropped the "old" rtl8188eu
driver and replaced it with a newer version of the driver that had been
maintained out-of-tree by Larry with the end goal of actually being able
to get this driver out of staging eventually.  Despite that driver being
"newer" the line count of this pull request is going up.

Some drivers moved out of staging as well, which is always nice to see,
that is why there are additions to the mfc and misc driver subsystems.
All of these were acked by the various subsystem maintainers involved.

But by far, as normal, it's coding style cleanups all over the
drivers/staging/ tree in here.

Full details of these changes are in the shortlog.

All of these have been in linux-next for a while with no reported
problems.

Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

----------------------------------------------------------------
Aakash Hemadri (1):
      staging: wlan-ng: fix invalid assignment warning

Agam Kohli (1):
      Staging: rt18712: hal_init: removed filename from beginning comment block

Aldas Taraškevičius (2):
      staging: vt6656: Remove filenames in files
      staging: vt6655: Remove filenames in files

Alexander Greyling (1):
      staging: rtl8712: Fix alignment

Alexander Sverdlin (1):
      iio: ep93xx: Prepare clock before using it

Alexandru Ardelean (19):
      iio: hid-sensors: bind IIO channels alloc to device object
      iio: light: adjd_s311: move buffer on adjd_s311_data object
      iio: light: adjd_s311: convert probe to device-managed functions
      iio: proximity: rfd77402: use i2c_client for rfd77402_{init,powerdown}()
      iio: proximity: rfd77402: convert probe to device-managed functions
      iio: accel: dmard10: convert probe to device-managed functions
      iio: accel: da311: convert probe to device-managed functions
      iio: accel: da280: convert probe to device-managed functions
      iio: accel: bma220: convert probe to device-managed functions
      iio: accel: bma220: make suspend state setting more robust
      iio: temperature: tmp006: convert probe to device-managed
      iio: temperature: tmp006: make sure the chip is powered up in probe
      iio: potentiometer: max5481: convert probe to device-managed
      iio: light: tcs3414: convert probe to device-managed routines
      iio: accel: adxl345: convert probe to device-managed functions
      iio: pressure: st_pressure: use devm_iio_triggered_buffer_setup() for buffer
      iio: accel: st_accel: use devm_iio_triggered_buffer_setup() for buffer
      iio: magn: st_magn: use devm_iio_triggered_buffer_setup() for buffer
      iio: gyro: st_gyro: use devm_iio_triggered_buffer_setup() for buffer

Andreas Klinger (2):
      dt-bindings: iio: chemical: Add trivial DT binding for sgp40
      iio: chemical: Add driver support for sgp40

Baptiste Mansuy (1):
      Add startup time for each chip using inv_mpu6050 driver

Benjamin Philip (7):
      staging: rtl8188eu: remove unnecessary blank lines in core/rtw_ap.c
      staging: sm750fb: Rename maxH to max_h in lynx_cursor
      staging: sm750fb: Rename maxW to max_w in lynx_cursor
      staging: sm750fb: Rename oScreen to o_screen in lynxfb_crtc
      staging: sm750fb: Rename oCursor to o_cursor in lynxfb_crtc
      staging: sm750fb: Rename vCursor to v_cursor in lynxfb_crtc
      staging: sm750fb: Rename vScreen to v_screen in lynxfb_crtc

Bryan Brattlof (2):
      staging: rtl8723bs: remove custom endian conversion macros
      staging: rtl8723bs: remove unused BT structures

Cai Huoqing (1):
      staging: r8188eu: Remove unused including <linux/version.h>

Christophe Branchereau (5):
      iio/adc: ingenic: rename has_aux2 to has_aux_md
      dt-bindings: iio/adc: add an INGENIC_ADC_AUX0 entry
      iio/adc: ingenic: add JZ4760 support to the sadc driver
      iio/adc: ingenic: add JZ4760B support to the sadc driver
      dt-bindings: iio/adc: ingenic: add the JZ4760(B) socs to the sadc Documentation

Christophe JAILLET (4):
      iio: buffer: Save a few cycles in 'iio_scan_mask_set()'
      iio: buffer: Move a sanity check at the beginning of 'iio_scan_mask_set()'
      staging: rtl8712: Remove some unused #define and enum
      staging: ks7010: Fix the initialization of the 'sleep_status' structure

Colin Ian King (2):
      iio: light: si1145: remove redundant continue statement
      staging: r8188eu: Fix while-loop that iterates only once

Dan Carpenter (2):
      staging: r8188eu: Fix a couple scheduling in atomic bugs
      staging: r8188eu: scheduling in atomic in rtw_createbss_cmd()

David Wu (1):
      iio: adc: rockchip_saradc: add voltage notifier so get referenced voltage once at probe

Dee-Jay Anthony Logozzo (1):
      staging: gdm724x: Place macro argument within parentheses

Diego Roux (1):
      staging: bcm2835-audio: Enclose complex macro value in parentheses

Fabio Aiuto (61):
      staging: rtl8723bs: fix wpa_set_auth_algs() function
      staging: rtl8723bs: add get_channel cfg80211 implementation
      staging: rtl8723bs: convert IsSupportedHT to snake_case
      staging: rtl8723bs: fix camel case issue
      staging: rtl8723bs: fix camel case name in macro IsLegacyOnly()
      staging: rtl8723bs: fix camel case in argument of macro is_legacy_only
      staging: rtl8723bs: fix camel case name in macro IsSupported24G
      staging: rtl8723bs: fix post-commit camel case issues
      staging: rtl8723bs: remove unused macros in include/ieee80211.h
      staging: rtl8723bs: fix camel case name in macro IsSupportedTxCCK
      staging: rtl8723bs: fix camel case argument name in macro is_supported_tx_cck
      staging: rtl8723bs: simplify function selecting channel group
      staging: rtl8723bs: fix camel case inside function
      staging: rtl8723bs: convert function name to snake case
      staging: rtl8723bs: add spaces around operator
      staging: rtl8723bs: remove 5Ghz code blocks
      staging: rtl8723bs: remove commented out condition
      staging: rtl8723bs: fix camel case in struct wlan_bssid_ex
      staging: rtl8723bs: fix camel case in struct ndis_802_11_conf
      staging: rtl8723bs: remove struct ndis_802_11_conf_fh
      staging: rtl8723bs: fix camel case in struct ndis_802_11_ssid
      staging: rtl8723bs: fix camel case in struct wlan_phy_info
      staging: rtl8723bs: fix camel case in struct wlan_bcn_info
      staging: rtl8723bs: fix camel case in IE structures
      staging: rtl8723bs: remove unused struct ndis_802_11_ai_reqfi
      staging: rtl8723bs: remove unused struct ndis_801_11_ai_resfi
      staging: rtl8723bs: fix camel case in struct ndis_802_11_wep
      staging: rtl8723bs: remove BT debug code
      staging: rtl8723bs: remove unused BT static variables
      staging: rtl8723bs: remove unused BIT macros definitions
      staging: rtl8723bs: fix camel case issue in struct wlan_bssid_ex
      staging: rtl8723bs: remove unnecessary parentheses
      staging: rtl8723bs: align condition to match open parentheses
      staging: rtl8723bs: put condition parentheses at the end of a line
      staging: rtl8723bs: remove unused macros
      staging: rtl8723bs: remove code related to unsupported MCS index values
      staging: rtl8723bs: remove unneeded loop
      staging: rtl8723bs: do some code cleaning in modified function
      staging: rtl8723bs: move function to file hal/odm_HWConfig.c
      staging: rtl8723bs: remove empty files
      staging: rtl8723bs: remove wrapping static function
      staging: rtl8723bs: beautify function ODM_PhyStatusQuery()
      staging: rtl8723bs: fix right side of condition
      staging: rtl8723bs: clean driver from unused RF paths
      staging: rtl8723bs: remove unused macros
      staging: rtl8723bs: remove unused struct member
      staging: rtl8723bs: remove rf type branching (first patch)
      staging: rtl8723bs: remove rf type branching (second patch)
      staging: rtl8723bs: remove rf type branching (third patch)
      staging: rtl8723bs: remove rf type branching (fourth patch)
      staging: rtl8723bs: remove unused rtw_rf_config module param
      staging: rtl8723bs: remove unused macro in include/hal_data.h
      staging: rtl8723bs: remove RF_*TX enum
      staging: rtl8723bs: use MAX_RF_PATH_NUM as ceiling to rf path index
      staging: rtl8723bs: fix tx power tables size
      staging: rtl8723bs: remove unused RF_*T*R enum
      staging: rtl8723bs: remove obsolete wext support
      staging: rtl8723bs: fix code indent issues
      staging: rtl8723bs: fix logical continuation issue
      staging: rtl8723bs: remove functions notifying wext events
      staging: rtl8723bs: remove unused rtw_set_802_11_bssid() function

Fabio M. De Francesco (22):
      staging: rtl8188eu: Remove unused iw_operation_mode[]
      staging: rtl8188eu: Replace a custom function with crc32_le()
      staging: rtl8188eu: Remove no more used functions and variables
      staging: rtl8723bs: core: Fix incorrect type in assignment
      staging: r8188eu: Replace a custom function with crc32_le()
      staging: r8188eu: Remove no more used functions and variables
      staging: r8188eu: Fix different base types in assignments and parameters
      staging: r8188eu: Remove set but unused variables
      staging: r8188eu: include: Remove unused const definitions
      staging: r8188eu: Fix cast between incompatible function type
      staging: r8188eu: core: Remove rtw_mfree_all_stainfo()
      staging: r8188eu: Remove unneeded comments in rtw_mp_ioctl.h
      staging: r8188eu: Fix incorrect types in arguments
      staging: r8188eu: Remove all 5GHz network types
      staging: r8188eu: Remove code related to unsupported channels
      staging: r8188eu: Remove no more necessary definitions and code
      staging: r8188eu: Remove variables and simplify PHY_SwChnl8188E()
      staging: r8188eu: os_dep: Remove defined but not used variables
      staging: r8188eu: Remove unused nat25_handle_frame()
      staging: r8188eu: Remove code depending on NAT25_LOOKUP
      staging: r8188eu: Remove empty rtw_mfree_xmit_priv_lock()
      staging: r8188eu: Provide a TODO file for this driver

Geert Uytterhoeven (1):
      staging: board: Fix uninitialized spinlock when attaching genpd

Greg Kroah-Hartman (22):
      staging: vt665X: remove unused CONFIG_PATH
      staging: r8188eu: remove empty ODM_ResetIQKResult() function
      staging: r8188eu: move ODM_TARGET_CHNL_NUM_2G_5G
      staging: r8188eu: move ODM_GetRightChnlPlaceforIQK()
      staging: r8188eu: remove include/h2clbk.h
      staging: r8188eu: remove include/autoconf.h
      staging: r8188eu: remove include/Hal8188EReg.h
      staging: r8188eu: remove rtw_mfree2d() function
      staging: r8188eu: remove rtw_buf_free() function
      staging: r8188eu: remove unused enum _NIC_VERSION
      staging: r8188eu: remove include/nic_spec.h
      staging: r8188eu: remove rtw_usb_bulk_msg() macro
      staging: r8188eu: remove rtw_usb_control_msg() macro
      staging: r8188eu: fix include directory mess
      Revert "staging: r8188eu: remove rtw_buf_free() function"
      Revert "staging: r8188eu: Fix different base types in assignments and parameters"
      Merge 5.14-rc5 into staging-next
      Merge tag 'iio-for-5.15a' of https://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio into staging-next
      Merge 5.14-rc6 into staging-next
      staging: r8188eu: remove inline markings from functions in rtw_br_ext.c
      staging: r8188eu: remove ipx support from driver
      Merge tag 'iio-for-5.15b' of https://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio into staging-next

Gustavo A. R. Silva (1):
      staging: r8188eu: Fix fall-through warnings for Clang

Gwendal Grignou (1):
      iio: sx9310: Support ACPI property

Ivan Mikhaylov (3):
      iio: proximity: vcnl3020: add DMA safe buffer
      iio: proximity: vcnl3020: add periodic mode
      iio: proximity: vcnl3020: remove iio_claim/release_direct

Jan Gruber (2):
      staging: rtl8188eu: remove unnecessary braces
      staging: rtl8188eu: remove unnecessary logging

Jarkko Nikula (1):
      counter: intel-qep: Remove linux/bitops.h include

Jignesh Patel (1):
      staging: rtl8188eu: Line over 100 characters

Jing Yangyang (2):
      staging: r8188eu: remove unneeded conversions to bool
      staging: r8188eu: remove unneeded variable

Jonathan Cameron (15):
      dt-bindings: iio: dac: adi,ad5421: Add missing binding document.
      dt-bindings: iio: dac: adi,ad5064: Document bindings for many different DACs
      dt-bindings: iio: dac: adi,ad5360: Add missing binding document
      dt-bindings: iio: dac: ad5380: Add missing binding document
      dt-bindings: iio: dac: ad5449: Add missing binding document.
      dt-bindings: iio: dac: ad5504: Add missing binding document
      iio: dac: ad5624r: Fix incorrect handling of an optional regulator.
      dt-bindings: iio: dac: ad5624r: Add missing binding document
      dt-bindings: iio: dac: ad5686 and ad5696: Add missing binding document.
      dt-bindings: iio: dac: ad5761: Add missing binding doc.
      dt-bindings: iio: dac: adi,ad5764: Add missing binding document
      dt-bindings: iio: dac: adi,ad5791: Add missing bindings document
      dt-bindings: iio: dac: adi,ad8801: Add missing binding document.
      dt-bindings: iio: dac: microchip,mcp4922: Add missing binding document
      iio: st-sensors: Remove some unused includes and add some that should be there

Kees Cook (7):
      staging: rtl8192e: Avoid field-overflowing memcpy()
      staging: rtl8192u: Avoid field-overflowing memcpy()
      staging: rtl8723bs: Avoid field-overflowing memcpy()
      staging: rts5208: Fix get_ms_information() heap buffer size
      staging: wlan-ng: Disable buggy MIB ioctl
      staging: wlan-ng: Remove pointless a3/a4 union
      staging: wlan-ng: Avoid duplicate header in tx/rx frames

Lad Prabhakar (2):
      dt-bindings: iio: adc: Add binding documentation for Renesas RZ/G2L A/D converter
      iio: adc: Add driver for Renesas RZ/G2L A/D converter

Larry Finger (36):
      staging: r8188eu: Convert header copyright info to SPDX format, part 1
      staging: r8188eu: Convert header copyright info to SPDX format, part 2
      staging: r8188eu: Convert header copyright info to SPDX format, part 3
      staging: r8188eu: Convert header copyright info to SPDX format, part 4
      staging: r8188eu: Convert header copyright info to SPDX format, part 5
      staging: r8188eu: Convert copyright header info to SPDX format, part 6
      staging: r8188eu: Remove empty header file
      staging: r8188eu: Remove tests of kernel version
      staging: r8188eu: Remove include/rtw_qos.h
      staging: r8188eu: Remove header file include/usb_hal.h
      staging: r8188eu: Remove header file include/rtw_version.h
      staging: r8188eu: Add "fallthrough" statement to quiet compiler
      staging: r8188eu: Fix sleeping function called from invalid context
      staging: r8188eu: Remove wrappers for atomic operations
      staging: r8188eu: Remove 4 empty routines from os_sep/service.c
      staging: r8188eu: Remove rtw_division64()
      staging: r8188eu: Remove wrapper around do_div
      staging: r8188eu: Remove some unused and ugly macros
      staging: r8188eu: Remove some bit manipulation macros
      staging: r8188eu: Remove wrappers for kalloc() and kzalloc()
      staging: r8188eu: Remove wrapper around vfree
      staging: r8188eu: Remove all calls to _rtw_spinlock_free()
      staging: r8188eu: Remove more empty routines
      staging: r8188eu: Remove rtw_buf_free()
      staging: r8188eu: Remove rtw_yield_os()
      staging: r8188eu: Remove wrapper routine rtw_msleep_os()
      staging: r8188eu: Remove wrapper rtw_mdelay_os()
      staging: r8188eu: Remove wrapper rtw_udelay_os()
      staging: r8188eu: Remove wrapper rtw_get_time_interval_ms()
      staging: r8188eu: Remove wrapper rtw_sleep_schedulable()
      staging: r8188eu: Fix potential memory leak or NULL dereference
      staging: r8188eu: Replace BITn with BIT(n)
      staging: r8188eu: Fix Smatch warnings for core/*.c
      staging: r8188eu: Fix smatch problems in hal/*.c
      staging: r8188eu: Fix smatch warnings in os_dep/*.c
      staging: r8188eu: Make mult-byte entities in dhcp header be big endian

Len Baker (13):
      staging/rtl8712: Remove all strcpy() uses in favor of strscpy()
      staging/most: Remove all strcpy() uses in favor of strscpy()
      staging/wlan-ng: Remove all strcpy() uses in favor of strscpy()
      staging/rtl8192e: Remove all strcpy() uses
      staging/ks7010: Remove all strcpy() uses in favor of strscpy()
      staging/rtl8192u: Remove all strcpy() uses in favor of strscpy()
      staging/vc04_services: Remove all strcpy() uses in favor of strscpy()
      staging/fbtft: Remove all strcpy() uses
      staging/fbtft: Remove unnecessary variable initialization
      staging/fbtft: Fix braces coding style
      staging/rtl8192u: Avoid CamelCase in names of variables
      staging/rtl8192u: Initialize variables in the definition block
      staging/rtl8192u: Prefer kcalloc over open coded arithmetic

Lucas Henneman (15):
      staging: vt6655: remove filename from baseband.h
      staging: vt6655: remove filename from baseband.c
      staging: vt6655: remove filename from card.c
      staging: vt6655: remove filename from card.h
      staging: vt6655: remove filename from channel.c
      staging: vt6655: remove filename from channel.h
      staging: vt6655: remove filename from device_cfg.h
      staging: vt6655: remove filename from device_main.c
      staging: vt6655: remove filename from dpc.c
      staging: vt6655: remove filename from dpc.h
      staging: vt6655: remove filename from key.c
      staging: vt6655: remove filename from key.h
      staging: vt6655: kernel style cleanup of mac.c
      staging: vt6655: remove filename from mac.h
      staging: vt6655: remove filename from upc.h

Lukas Bulwahn (3):
      MAINTAINERS: remove section HISILICON STAGING DRIVERS FOR HIKEY 960/970
      MAINTAINERS: update STAGING - REALTEK RTL8188EU DRIVERS
      clk: staging: correct reference to config IOMEM to config HAS_IOMEM

Martin Blumenstingl (3):
      iio: adc: meson-saradc: Disable BL30 integration on G12A and newer SoCs
      iio: adc: meson-saradc: Add missing space between if and parenthesis
      iio: adc: meson-saradc: Fix indentation of arguments after a line-break

Martin Kaiser (57):
      staging: rtl8188eu: merge two functions
      staging: rtl8188eu: remove the "trigger gpio 0" hal variable
      staging: rtl8188eu: remove RTL871X_HCI_TYPE enum
      staging: rtl8188eu: remove _CHIP_TYPE enum
      staging: rtl8188eu: remove struct eeprom_priv's EepromOrEfuse
      staging: rtl8188eu: remove efuse write support
      staging: rtl8188eu: remove unused power flows and transitions
      staging: rtl8188eu: remove constant function parameter
      staging: rtl8188eu: remove PWR_CMD_READ
      staging: rtl8188eu: remove cut_mask field from wl_pwr_cfg
      staging: rtl8188eu: remove unused defines
      staging: rtl8188eu: remove HW_VAR_MEDIA_STATUS1
      staging: rtl8188eu: remove HW_VAR_TXPAUSE
      staging: rtl8188eu: simplify Hal_EfuseParseMACAddr_8188EU
      staging: rtl8188eu: remove an unused enum
      staging: rtl8188eu: remove another unused enum
      staging: rtl8188eu: remove a bunch of unused defines
      staging: rtl8188eu: remove yet another unused enum
      staging: rtl8188eu: remove unused _HAL_INTF_C_ define
      staging: rtl8188eu: remove write-only power struct component
      staging: rtl8188eu: remove two write-only hal components
      staging: rtl8188eu: remove unused IntrMask
      staging: rtl8188eu: remove write-only HwRxPageSize
      staging: rtl8188eu: simplify rtl88eu_phy_iq_calibrate
      staging: rtl8188eu: simplify phy_iq_calibrate
      staging: rtl8188eu: simplify path_adda_on
      staging: rtl8188eu: simplify phy_lc_calibrate
      staging: rtl8188eu: remove unused IQKMatrixRegSetting array
      staging: r8188eu: remove RT_TRACE prints from usb_intf.c
      staging: r8188eu: remove RT_TRACE prints from usb_ops_linux.c
      staging: r8188eu: remove RT_TRACE prints from ioctl_linux.c
      staging: r8188eu: remove empty function
      staging: r8188eu: remove RT_TRACE prints from mlme_linux.c
      staging: r8188eu: remove RT_TRACE prints from os_intfs.c
      staging: r8188eu: remove an RT_TRACE print from osdep_service.c
      staging: r8188eu: remove RT_TRACE prints from recv_linux.c
      staging: r8188eu: remove RT_TRACE prints from xmit_linux.c
      staging: r8188eu: use IW_HANDLER to declare wext handlers
      staging: r8188eu: remove unused DEBUG_OID macro
      staging: r8188eu: remove the RT_TRACE macro
      staging: r8188eu: remove unused efuse hal components
      staging: r8188eu: remove unused function parameters
      staging: r8188eu: (trivial) remove a duplicate debug print
      staging: r8188eu: use proper way to build a module
      staging: r8188eu: remove CONFIG_USB_HCI from Makefile
      staging: r8188eu: ctrl vendor req value is always 0x05
      staging: r8188eu: ctrl vendor req index is not used
      staging: r8188eu: remove unnecessary cast
      staging: r8188eu: remove unused define
      staging: rtl8188eu: use actual request type as parameter
      staging: r8188eu: rewrite usb vendor request defines
      staging: r8188eu: remove an unused enum
      staging: r8188eu: clean up the usb_readXY functions
      staging: r8188eu: clean up the usb_writeXY functions
      staging: r8188eu: clean up the usb_writeN
      staging: r8188eu: remove unused members of struct _io_ops
      staging: r8188eu: set pipe only once

Mauro Carvalho Chehab (7):
      staging: hi6421-spmi-pmic: rename spmi_device struct
      staging: hi6421-spmi-pmic: rename GPIO IRQ OF node
      staging: hi6421-spmi-pmic: add a missing dot at copyright
      staging: hikey9xx: split hi6421v600 irq into a separate driver
      staging: hisilicon,hi6421-spmi-pmic.yaml: fix patternProperties
      mfd: hi6421-spmi-pmic: move driver from staging
      dt-bindings: hisilicon,hi6421-spmi-pmic.yaml: make some rules stricter

Michael Straube (92):
      staging: rtl8188eu: remove blank lines
      staging: rtl8188eu: remove braces from single line if blocks
      staging: r8188eu: rename odm_EVMdbToPercentage()
      staging: r8188eu: rename parameter of odm_evm_db_to_percentage()
      staging: r8188eu: simplify odm_evm_db_to_percentage()
      staging: r8188eu: clean up comparsions to NULL in os_dep directory
      staging: r8188eu: remove spaces before ',' and ')'
      staging: r8188eu: add missing spaces after ',' and before braces
      staging: r8188eu: clean up comparsions to NULL in hal directory
      staging: r8188eu: clean up comparsions to NULL in core directory
      staging: r8188eu: remove return from void functions
      staging: r8188eu: remove empty function odm_DynamicPrimaryCCA()
      staging: r8188eu: fix build error
      staging: r8188eu: replace custom macros with is_broadcast_ether_addr
      staging: r8188eu: remove unnecessary parentheses in os_dep dir
      staging: r8188eu: remove unnecessary parentheses in hal dir
      staging: r8188eu: remove unnecessary parentheses in core/rtw_mlme_ext.c
      staging: r8188eu: remove unnecessary parentheses in core/rtw_ap.c
      staging: r8188eu: remove unnecessary parentheses in core/rtw_wlan_util.c
      staging: r8188eu: remove unnecessary parentheses in core/rtw_led.c
      staging: r8188eu: remove unnecessary parentheses in core/rtw_p2p.c
      staging: r8188eu: clean up comparsions to true/false
      staging: r8188eu: remove unnecessary parentheses in core/rtw_mlme.c
      staging: r8188eu: remove unnecessary parentheses in core/rtw_xmit.c
      staging: r8188eu: remove unnecessary parentheses in core/rtw_sta_mgt.c
      staging: r8188eu: remove unnecessary parentheses in core/rtw_recv.c
      staging: r8188eu: remove unnecessary parentheses in core/rtw_pwrctrl.c
      staging: r8188eu: remove unnecessary parentheses in core/rtw_io.c
      staging: r8188eu: remove unnecessary parentheses in core/rtw_ioctl_set.c
      staging: r8188eu: remove unnecessary parentheses in core/rtw_cmd.c
      staging: r8188eu: remove remaining unnecessary parentheses in core dir
      staging: r8188eu: replace custom hwaddr_aton_i() with mac_pton()
      staging: r8188eu: remove 5GHz code from Hal_GetChnlGroup88E()
      staging: r8188eu: convert return type of Hal_GetChnlGroup88E() to void
      staging: r8188eu: rename parameter of Hal_GetChnlGroup88E()
      staging: r8188eu: rename Hal_GetChnlGroup88E()
      staging: r8188eu: remove ODM_GetRightChnlPlaceforIQK()
      staging: r8188eu: remove kernel version depended code paths
      staging: r8188eu: use common ieee80211 constants
      staging: r8188eu: add spaces around operators in core/rtw_ap.c
      staging: r8188eu: rewrite subtraction in core/rtw_cmd.c
      staging: r8188eu: remove unnecessary parentheses in core/rtw_cmd.c
      staging: r8188eu: clean up spacing style issues in core/rtw_cmd.c
      staging: r8188eu: clean up spacing style issues in core/rtw_efuse.c
      staging: r8188eu: clean up spacing style issues in core/rtw_ieee80211.c
      staging: r8188eu: simplify multiplication in core/rtw_ioctl_set.c
      staging: r8188eu: clean up spacing style issues in core/rtw_ioctl_set.c
      staging: r8188eu: add spaces around operators in core/rtw_iol.c
      staging: r8188eu: clean up spacing style issues in core/rtw_mlme.c
      staging: r8188eu: clean up spacing style issues in core/rtw_mlme_ext.c
      staging: r8188eu: clean up spacing style issues in core/rtw_mp.c
      staging: r8188eu: clean up spacing style issues in core/rtw_mp_ioctl.c
      staging: r8188eu: clean up spacing style issues in core/rtw_p2p.c
      staging: r8188eu: clean up spacing style issues in core/rtw_pwrctrl.c
      staging: r8188eu: clean up spacing style issues in core/rtw_recv.c
      staging: r8188eu: clean up spacing style issues in core/rtw_security.c
      staging: r8188eu: add spaces around operators in core/rtw_wlan_util.c
      staging: r8188eu: clean up spacing style issues in core/rtw_xmit.c
      staging: r8188eu: clean up spacing style issues in core/rtw_debug.c
      staging: r8188eu: add space around operator in core/rtw_sreset.c
      staging: r8188eu: clean up spacing style issues in core/rtw_sta_mgt.c
      staging: r8188eu: clean up spacing style issues in hal dir, part 1
      staging: r8188eu: clean up spacing style issues in hal dir, part 2
      staging: r8188eu: clean up spacing style issues in hal dir, part 3
      staging: r8188eu: clean up spacing style issues in os_dep dir
      staging: r8188eu: remove null pointer checks before kfree
      staging: r8188eu: clean up comparsions to true
      staging: r8188eu: clean up comparsions to false
      staging: r8188eu: fix scheduling while atomic bugs
      staging: r8188eu: use GFP_ATOMIC under spinlock
      staging: r8188eu: remove unused function rtw_add_bcn_ie()
      staging: r8188eu: remove unused function rtw_remove_bcn_ie()
      staging: rtl8723bs: remove header file ethernet.h
      staging: r8188eu: remove cmd_osdep.h header file
      staging: r8188eu: remove 5 GHz code
      staging: r8188eu: remove dead code
      staging: r8188eu: remove unnecessary parentheses
      staging: r8188eu: ensure proper alignment for eth address buffers
      staging: r8188eu: use is_multicast_ether_addr in core/rtw_mlme.c
      staging: r8188eu: use is_multicast_ether_addr in core/rtw_mp.c
      staging: r8188eu: use is_multicast_ether_addr in core/rtw_recv.c
      staging: r8188eu: use is_multicast_ether_addr in core/rtw_security.c
      staging: r8188eu: use is_multicast_ether_addr in core/rtw_xmit.c
      staging: r8188eu: use is_multicast_ether_addr in hal/rtl8188eu_xmit.c
      staging: r8188eu: use is_multicast_ether_addr in os_dep/recv_linux.c
      staging: r8188eu: remove if_ether.h header file
      staging: r8188eu: remove ip.h header file
      staging: r8188eu: remove ethernet.h header file
      staging: r8188eu: rename struct field Wifi_Error_Status
      staging: r8188eu: rename fields of struct dyn_primary_cca
      staging: r8188eu: remove ODM_DynamicPrimaryCCA_DupRTS()
      staging: r8188eu: rename fields of struct rtl_ps

Mugilraj Dhavachelvan (2):
      dt-bindings: iio: potentiometer: Add AD5110 in trivial-devices
      iio: potentiometer: Add driver support for AD5110

Nathan Chancellor (9):
      staging: r8188eu: Remove unnecessary parentheses
      staging: r8188eu: Remove self assignment in get_rx_power_val_by_reg()
      staging: r8188eu: Remove pointless NULL check in rtw_check_join_candidate()
      staging: r8188eu: os_dep: Hoist vmalloc.h include into osdep_service.h
      staging: r8188eu: Remove unused static inline functions in rtw_recv.h
      staging: r8188eu: Remove uninitialized use of ether_type in portctrl()
      staging: r8188eu: Reorganize error handling in rtw_drv_init()
      staging: r8188eu: Remove unnecessary ret variable in rtw_drv_init()
      staging: rtl8192u: Fix bitwise vs logical operator in TranslateRxSignalStuff819xUsb()

Nishal Kulkarni (1):
      staging: qlge: Remove unnecessary parentheses around references

Nuno Sá (1):
      iio: ltc2983: fix device probe

Ojaswin Mujoo (7):
      staging: vchiq: Refactor vchiq cdev code
      staging: vchiq: Move certain declarations to vchiq_arm.h
      staging: vchiq: Move vchiq char driver to its own file
      staging: vchiq: Make creation of vchiq cdev optional
      staging: vchiq: Combine vchiq platform code into single file
      staging: vchiq: Set $CONFIG_BCM2835_VCHIQ to imply $CONFIG_VCHIQ_CDEV
      staging: vchiq: Add details to Kconfig help texts

Paul Cercueil (2):
      iio: core: Forbid use of both labels and extended names
      iio: core: Support reading extended name as label

Pavel Skripkin (2):
      staging: r8188eu: make rtw_deinit_intf_priv return void
      staging: r8188eu: remove {read,write}_macreg

Phillip Potter (78):
      staging: rtl8188eu: remove set but unused variable from rtw_get_sec_ie
      staging: rtl8188eu: remove rtw_wx_set_rate handler function
      staging: rtl8188eu: move hal/mac_cfg.c and rename function and array
      staging: r8188eu: introduce new core dir for RTL8188eu driver
      staging: r8188eu: introduce new hal dir for RTL8188eu driver
      staging: r8188eu: introduce new os_dep dir for RTL8188eu driver
      staging: r8188eu: introduce new include dir for RTL8188eu driver
      staging: r8188eu: introduce new supporting files for RTL8188eu driver
      staging: r8188eu: attach newly imported driver to build system
      staging: r8188eu: remove ODM_PRINT_ADDR macro definition
      staging: r8188eu: remove ODM_dbg_* macro definitions
      staging: r8188eu: remove ODM_RT_ASSERT macro definition and caller
      staging: r8188eu: remove ODM_RT_TRACE_F macro definition
      staging: r8188eu: remove ASSERT ifndef and macro definition
      staging: r8188eu: remove ODM_RT_TRACE calls from hal/Hal8188ERateAdaptive.c
      staging: r8188eu: remove ODM_RT_TRACE calls from hal/HalPhyRf_8188e.c
      staging: r8188eu: remove ODM_RT_TRACE calls from hal/odm_HWConfig.c
      staging: r8188eu: remove ODM_RT_TRACE calls from hal/odm_RTL8188E.c
      staging: r8188eu: remove ODM_RT_TRACE calls from hal/odm_RegConfig8188E.c
      staging: r8188eu: remove ODM_RT_TRACE calls from hal/odm.c
      staging: r8188eu: remove ODM_RT_TRACE macro definition
      staging: r8188eu: remove DbgPrint and RT_PRINTK macro definitions
      staging: r8188eu: remove include/odm_debug.h
      staging: r8188eu: correct set/defined but unused warnings from debug cleanup
      staging: rtl8188eu: remove rtl8188eu driver from staging dir
      staging: r8188eu: remove RT_PRINT_DATA macro
      staging: r8188eu: remove RT_TRACE calls from core/rtw_pwrctrl.c
      staging: r8188eu: remove RT_TRACE calls from core/rtw_wlan_util.c
      staging: r8188eu: remove RT_TRACE calls from core/rtw_ieee80211.c
      staging: r8188eu: remove RT_TRACE calls from core/rtw_io.c
      staging: r8188eu: remove RT_TRACE calls from core/rtw_led.c
      staging: r8188eu: remove RT_TRACE calls from core/rtw_mp_ioctl.c
      staging: r8188eu: remove RT_TRACE calls from hal/rtl8188eu_xmit.c
      staging: r8188eu: remove RT_TRACE calls from hal/rtl8188eu_recv.c
      staging: r8188eu: remove RT_TRACE calls from hal/HalPwrSeqCmd.c
      staging: r8188eu: remove RT_TRACE calls from hal/hal_intf.c
      staging: r8188eu: remove RT_TRACE calls from hal/rtl8188e_hal_init.c
      staging: r8188eu: remove RT_TRACE calls from hal/rtl8188e_mp.c
      staging: r8188eu: remove RT_TRACE calls from hal/usb_halinit.c
      staging: r8188eu: remove RT_TRACE calls from hal/usb_ops_linux.c
      staging: r8188eu: remove RT_TRACE calls from core/rtw_cmd.c
      staging: r8188eu: remove RT_TRACE calls from core/rtw_ioctl_set.c
      staging: r8188eu: remove RT_TRACE calls from core/rtw_mlme.c
      staging: r8188eu: remove RT_TRACE calls from core/rtw_mlme_ext.c
      staging: r8188eu: remove RT_TRACE calls from core/rtw_mp.c
      staging: r8188eu: remove RT_TRACE calls from core/rtw_security.c
      staging: r8188eu: remove RT_TRACE calls from core/rtw_sta_mgt.c
      staging: r8188eu: remove RT_TRACE calls from core/rtw_xmit.c
      staging: r8188eu: remove RT_TRACE calls from core/rtw_recv.c
      staging: r8188eu: fix unused variable warnings in core/rtw_ieee80211.c
      staging: r8188eu: remove two set but unused variables in core/rtw_mp_ioctl.c
      staging: r8188eu: remove rtw_ioctl function
      staging: r8188eu: remove unused functions from os_dep/ioctl_linux.c
      staging: r8188eu: remove unused oid_null_function function
      staging: r8188eu: remove unused label from recv_indicatepkt_reorder
      staging: r8188eu: remove rtw_mfree_sta_priv_lock function
      staging: r8188eu: remove unused variable from rtl8188e_init_dm_priv
      staging: r8188eu: remove unused variable from rtw_init_drv_sw
      staging: r8188eu: remove unused variable from rtw_init_recv_timer
      staging: r8188eu: remove lines from Makefile that silence build warnings
      staging: r8188eu: remove set but unused variable from rtl8188e_Add_RateATid
      staging: r8188eu: remove unneeded DBG_88E call from rtl8188e_Add_RateATid
      staging: r8188eu: rename variable within rtl8188e_Add_RateATid
      staging: r8188eu: remove _dbg_dump_tx_info function
      staging: r8188eu: remove unused function dump_txrpt_ccx_88e
      staging: r8188eu: remove txrpt_ccx_sw_88e and txrpt_ccx_qtime_88e macros
      staging: r8188eu: remove empty function rtl8188eu_free_xmit_priv
      staging: r8188eu: remove function rtw_hal_free_xmit_priv
      staging: r8188eu: remove free_xmit_priv field from struct hal_ops
      staging: r8188eu: convert only rtw_vmalloc call to vmalloc
      staging: r8188eu: remove rtw_vmalloc preprocessor definition
      staging: r8188eu: remove function _rtw_vmalloc
      staging: r8188eu: convert all rtw_zvmalloc calls to vzalloc calls
      staging: r8188eu: remove rtw_zvmalloc preprocessor definition
      staging: r8188eu: remove function _rtw_zvmalloc
      staging: r8188eu: remove rtw_update_mem_stat macro and associated flags
      staging: r8188eu: change declaration of Efuse_Read1ByteFromFakeContent
      staging: r8188eu: add extra TODO entries

Saurav Girepunje (3):
      staging: rtl8192e: rtl8192e: rtl_core: remove unused global variable
      staging: rtl8723bs: os_dep: remove unused variable
      staging: r8188eu: core: remove condition with no effect

Scott J. Crouch (1):
      staging: rtl8723bs: Remove initialisation of globals to 0

Sergio Paracuellos (1):
      staging: mt7621-pci: fix hang when nothing is connected to pcie ports

Siddharth Manthan (2):
      dt-bindings: Add bindings for Capella cm3323 Ambient Light Sensor
      iio: light: cm3323: Add of_device_id table

Simon Xue (2):
      dt-bindings: iio: adc: rockchip-saradc: add description for rk3568
      iio: adc: rockchip_saradc: add support for rk3568 saradc

Stephan Gerhold (7):
      dt-bindings: iio: accel: bma255: Fix interrupt type
      dt-bindings: iio: accel: bma255: Sort compatibles
      dt-bindings: iio: accel: bma255: Merge bosch,bma180 schema
      dt-bindings: iio: accel: bma255: Add interrupt-names
      dt-bindings: iio: accel: bma255: Add bosch,bmc156_accel
      iio: accel: bmc150: Make it possible to configure INT2 instead of INT1
      iio: accel: bmc150: Add support for BMC156

Tang Bin (2):
      iio: adc: fsl-imx25-gcq: Use the defined variable to clean code
      iio: adc: fsl-imx25-gcq: adjust irq check to match docs and simplify code

Théo Borém Fabris (2):
      iio: dac: max5821: convert device register to device managed function
      iio: pressure: hp03: update device probe to register with devm functions

Tuo Li (1):
      staging: rtl8192e: rtl_core: Fix possible null-pointer dereference in _rtl92e_pci_disconnect()

William Breathitt Gray (6):
      counter: 104-quad-8: Return error when invalid mode during ceiling_write
      counter: Return error code on invalid modes
      counter: Standardize to ERANGE for limit exceeded errors
      counter: Rename counter_signal_value to counter_signal_level
      counter: Rename counter_count_function to counter_function
      counter: 104-quad-8: Describe member 'lock' in 'quad8'

Xiangyang Zhang (1):
      staging: r8188eu: Fix a resource leak in update_bcn_wps_ie

Yang Li (1):
      staging: r8188eu: remove unneeded semicolon

Yang Yingliang (1):
      staging: r8188eu: Use GFP_ATOMIC under spin lock

Ye Xiang (1):
      iio: hid-sensor-press: Add timestamp channel

kernel test robot (1):
      staging: r8188eu: fix duplicated inclusion

 .../ABI/testing/sysfs-bus-iio-chemical-sgp40       |   31 +
 .../bindings/iio/accel/bosch,bma180.yaml           |   61 -
 .../bindings/iio/accel/bosch,bma255.yaml           |   55 +-
 .../devicetree/bindings/iio/adc/ingenic,adc.yaml   |   19 +
 .../bindings/iio/adc/renesas,rzg2l-adc.yaml        |  134 +
 .../bindings/iio/adc/rockchip-saradc.yaml          |    1 +
 .../devicetree/bindings/iio/dac/adi,ad5064.yaml    |  268 +
 .../devicetree/bindings/iio/dac/adi,ad5360.yaml    |   79 +
 .../devicetree/bindings/iio/dac/adi,ad5380.yaml    |   70 +
 .../devicetree/bindings/iio/dac/adi,ad5421.yaml    |   51 +
 .../devicetree/bindings/iio/dac/adi,ad5449.yaml    |   97 +
 .../devicetree/bindings/iio/dac/adi,ad5504.yaml    |   50 +
 .../devicetree/bindings/iio/dac/adi,ad5624r.yaml   |   47 +
 .../devicetree/bindings/iio/dac/adi,ad5686.yaml    |   75 +
 .../devicetree/bindings/iio/dac/adi,ad5761.yaml    |   60 +
 .../devicetree/bindings/iio/dac/adi,ad5764.yaml    |   62 +
 .../devicetree/bindings/iio/dac/adi,ad5791.yaml    |   52 +
 .../devicetree/bindings/iio/dac/adi,ad8801.yaml    |   60 +
 .../bindings/iio/dac/microchip,mcp4922.yaml        |   46 +
 .../bindings/mfd}/hisilicon,hi6421-spmi-pmic.yaml  |   31 +-
 .../devicetree/bindings/trivial-devices.yaml       |    6 +
 MAINTAINERS                                        |   31 +-
 drivers/counter/104-quad-8.c                       |   47 +-
 drivers/counter/counter.c                          |   50 +-
 drivers/counter/ftm-quaddec.c                      |    5 +-
 drivers/counter/intel-qep.c                        |    7 +-
 drivers/counter/interrupt-cnt.c                    |   11 +-
 drivers/counter/microchip-tcb-capture.c            |   16 +-
 drivers/counter/stm32-lptimer-cnt.c                |   18 +-
 drivers/counter/stm32-timer-cnt.c                  |   10 +-
 drivers/counter/ti-eqep.c                          |   37 +-
 drivers/iio/accel/Kconfig                          |    5 +-
 drivers/iio/accel/adxl345.h                        |    1 -
 drivers/iio/accel/adxl345_core.c                   |   29 +-
 drivers/iio/accel/adxl345_i2c.c                    |    6 -
 drivers/iio/accel/adxl345_spi.c                    |    6 -
 drivers/iio/accel/bma220_spi.c                     |   79 +-
 drivers/iio/accel/bmc150-accel-core.c              |   78 +-
 drivers/iio/accel/bmc150-accel-i2c.c               |   10 +-
 drivers/iio/accel/bmc150-accel-spi.c               |   10 +-
 drivers/iio/accel/bmc150-accel.h                   |   20 +-
 drivers/iio/accel/da280.c                          |   26 +-
 drivers/iio/accel/da311.c                          |   26 +-
 drivers/iio/accel/dmard10.c                        |   27 +-
 drivers/iio/accel/hid-sensor-accel-3d.c            |   10 +-
 drivers/iio/accel/st_accel.h                       |    4 -
 drivers/iio/accel/st_accel_buffer.c                |   16 +-
 drivers/iio/accel/st_accel_core.c                  |   14 +-
 drivers/iio/accel/st_accel_i2c.c                   |    3 +-
 drivers/iio/accel/st_accel_spi.c                   |    2 +-
 drivers/iio/adc/Kconfig                            |   10 +
 drivers/iio/adc/Makefile                           |    1 +
 drivers/iio/adc/ep93xx_adc.c                       |    6 +-
 drivers/iio/adc/fsl-imx25-gcq.c                    |   17 +-
 drivers/iio/adc/ingenic-adc.c                      |  102 +-
 drivers/iio/adc/meson_saradc.c                     |   20 +-
 drivers/iio/adc/rockchip_saradc.c                  |   69 +-
 drivers/iio/adc/rzg2l_adc.c                        |  600 ++
 drivers/iio/chemical/Kconfig                       |   11 +
 drivers/iio/chemical/Makefile                      |    1 +
 drivers/iio/chemical/sgp40.c                       |  378 +
 drivers/iio/common/st_sensors/st_sensors_buffer.c  |    2 -
 drivers/iio/common/st_sensors/st_sensors_core.c    |    1 +
 drivers/iio/common/st_sensors/st_sensors_core.h    |    1 +
 drivers/iio/common/st_sensors/st_sensors_i2c.c     |    3 +-
 drivers/iio/common/st_sensors/st_sensors_spi.c     |    3 +-
 drivers/iio/common/st_sensors/st_sensors_trigger.c |    1 -
 drivers/iio/dac/ad5624r_spi.c                      |   18 +-
 drivers/iio/dac/max5821.c                          |   41 +-
 drivers/iio/gyro/hid-sensor-gyro-3d.c              |   11 +-
 drivers/iio/gyro/st_gyro.h                         |    4 -
 drivers/iio/gyro/st_gyro_buffer.c                  |   16 +-
 drivers/iio/gyro/st_gyro_core.c                    |   15 +-
 drivers/iio/gyro/st_gyro_i2c.c                     |    2 +-
 drivers/iio/gyro/st_gyro_spi.c                     |    2 +-
 drivers/iio/imu/inv_mpu6050/inv_mpu_core.c         |   22 +-
 drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h          |   18 +-
 drivers/iio/imu/inv_mpu6050/inv_mpu_trigger.c      |   15 +-
 drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_core.c       |    1 +
 drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_i2c.c        |    3 +-
 drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_spi.c        |    3 +-
 drivers/iio/industrialio-buffer.c                  |    9 +-
 drivers/iio/industrialio-core.c                    |   33 +-
 drivers/iio/light/adjd_s311.c                      |   53 +-
 drivers/iio/light/cm3323.c                         |    7 +
 drivers/iio/light/hid-sensor-als.c                 |   11 +-
 drivers/iio/light/hid-sensor-prox.c                |   11 +-
 drivers/iio/light/si1145.c                         |    1 -
 drivers/iio/light/tcs3414.c                        |   48 +-
 drivers/iio/magnetometer/st_magn.h                 |   12 -
 drivers/iio/magnetometer/st_magn_buffer.c          |   16 +-
 drivers/iio/magnetometer/st_magn_core.c            |   17 +-
 drivers/iio/magnetometer/st_magn_i2c.c             |    2 +-
 drivers/iio/magnetometer/st_magn_spi.c             |    2 +-
 drivers/iio/orientation/hid-sensor-incl-3d.c       |   11 +-
 drivers/iio/potentiometer/Kconfig                  |   10 +
 drivers/iio/potentiometer/Makefile                 |    1 +
 drivers/iio/potentiometer/ad5110.c                 |  344 +
 drivers/iio/potentiometer/max5481.c                |   22 +-
 drivers/iio/pressure/hid-sensor-press.c            |   51 +-
 drivers/iio/pressure/hp03.c                        |   36 +-
 drivers/iio/pressure/st_pressure.h                 |    5 -
 drivers/iio/pressure/st_pressure_buffer.c          |   16 +-
 drivers/iio/pressure/st_pressure_core.c            |   16 +-
 drivers/iio/pressure/st_pressure_i2c.c             |    3 +-
 drivers/iio/pressure/st_pressure_spi.c             |    2 +-
 drivers/iio/proximity/rfd77402.c                   |   83 +-
 drivers/iio/proximity/sx9310.c                     |   48 +-
 drivers/iio/proximity/vcnl3020.c                   |  351 +-
 drivers/iio/temperature/ltc2983.c                  |   30 +-
 drivers/iio/temperature/tmp006.c                   |   53 +-
 drivers/mfd/Kconfig                                |   16 +
 drivers/mfd/Makefile                               |    1 +
 drivers/mfd/hi6421-spmi-pmic.c                     |   72 +
 drivers/misc/Kconfig                               |   10 +
 drivers/misc/Makefile                              |    1 +
 drivers/misc/hi6421v600-irq.c                      |  307 +
 drivers/staging/Kconfig                            |    4 +-
 drivers/staging/Makefile                           |    3 +-
 drivers/staging/board/board.c                      |    7 +-
 drivers/staging/clocking-wizard/Kconfig            |    2 +-
 drivers/staging/fbtft/fbtft-core.c                 |   23 +-
 drivers/staging/gdm724x/netlink_k.c                |    4 +-
 drivers/staging/hikey9xx/Kconfig                   |   19 -
 drivers/staging/hikey9xx/Makefile                  |    3 -
 drivers/staging/hikey9xx/TODO                      |    5 -
 drivers/staging/hikey9xx/hi6421-spmi-pmic.c        |  311 -
 drivers/staging/ks7010/ks7010_sdio.c               |    2 +-
 drivers/staging/ks7010/ks_wlan_net.c               |   10 +-
 drivers/staging/most/video/video.c                 |    4 +-
 drivers/staging/mt7621-pci/pci-mt7621.c            |   13 +-
 drivers/staging/qlge/qlge_dbg.c                    |    4 +-
 drivers/staging/{rtl8188eu => r8188eu}/Kconfig     |    7 +-
 drivers/staging/r8188eu/Makefile                   |  106 +
 drivers/staging/r8188eu/TODO                       |   16 +
 .../staging/{rtl8188eu => r8188eu}/core/rtw_ap.c   |  763 +-
 drivers/staging/r8188eu/core/rtw_br_ext.c          |  717 ++
 drivers/staging/r8188eu/core/rtw_cmd.c             | 2128 +++++
 drivers/staging/r8188eu/core/rtw_debug.c           |  904 +++
 drivers/staging/r8188eu/core/rtw_efuse.c           |  848 ++
 drivers/staging/r8188eu/core/rtw_ieee80211.c       | 1539 ++++
 drivers/staging/r8188eu/core/rtw_io.c              |  299 +
 drivers/staging/r8188eu/core/rtw_ioctl_set.c       |  891 +++
 drivers/staging/r8188eu/core/rtw_iol.c             |  192 +
 drivers/staging/r8188eu/core/rtw_led.c             | 1612 ++++
 .../staging/{rtl8188eu => r8188eu}/core/rtw_mlme.c | 1114 ++-
 drivers/staging/r8188eu/core/rtw_mlme_ext.c        | 8327 ++++++++++++++++++++
 drivers/staging/r8188eu/core/rtw_mp.c              |  935 +++
 drivers/staging/r8188eu/core/rtw_mp_ioctl.c        | 1170 +++
 drivers/staging/r8188eu/core/rtw_p2p.c             | 1997 +++++
 .../{rtl8188eu => r8188eu}/core/rtw_pwrctrl.c      |  354 +-
 .../staging/{rtl8188eu => r8188eu}/core/rtw_recv.c |  888 ++-
 .../staging/{rtl8188eu => r8188eu}/core/rtw_rf.c   |   34 +-
 drivers/staging/r8188eu/core/rtw_security.c        | 1656 ++++
 drivers/staging/r8188eu/core/rtw_sreset.c          |   62 +
 .../{rtl8188eu => r8188eu}/core/rtw_sta_mgt.c      |  271 +-
 .../{rtl8188eu => r8188eu}/core/rtw_wlan_util.c    |  940 ++-
 .../staging/{rtl8188eu => r8188eu}/core/rtw_xmit.c |  840 +-
 drivers/staging/r8188eu/hal/Hal8188EPwrSeq.c       |   69 +
 .../hal/Hal8188ERateAdaptive.c}                    |  148 +-
 .../bb_cfg.c => r8188eu/hal/HalHWImg8188E_BB.c}    |  473 +-
 drivers/staging/r8188eu/hal/HalHWImg8188E_MAC.c    |  213 +
 drivers/staging/r8188eu/hal/HalHWImg8188E_RF.c     |  250 +
 drivers/staging/r8188eu/hal/HalPhyRf_8188e.c       | 1264 +++
 drivers/staging/r8188eu/hal/HalPwrSeqCmd.c         |   95 +
 .../staging/{rtl8188eu => r8188eu}/hal/hal_com.c   |  189 +-
 drivers/staging/r8188eu/hal/hal_intf.c             |  441 ++
 drivers/staging/r8188eu/hal/odm.c                  | 1968 +++++
 drivers/staging/r8188eu/hal/odm_HWConfig.c         |  567 ++
 drivers/staging/r8188eu/hal/odm_RTL8188E.c         |  337 +
 drivers/staging/r8188eu/hal/odm_RegConfig8188E.c   |   98 +
 drivers/staging/r8188eu/hal/odm_debug.c            |    6 +
 drivers/staging/r8188eu/hal/odm_interface.c        |  178 +
 .../{rtl8188eu => r8188eu}/hal/rtl8188e_cmd.c      |  422 +-
 drivers/staging/r8188eu/hal/rtl8188e_dm.c          |  238 +
 drivers/staging/r8188eu/hal/rtl8188e_hal_init.c    | 2304 ++++++
 drivers/staging/r8188eu/hal/rtl8188e_mp.c          |  798 ++
 drivers/staging/r8188eu/hal/rtl8188e_phycfg.c      | 1105 +++
 drivers/staging/r8188eu/hal/rtl8188e_rf6052.c      |  550 ++
 .../{rtl8188eu => r8188eu}/hal/rtl8188e_rxdesc.c   |   43 +-
 drivers/staging/r8188eu/hal/rtl8188e_sreset.c      |   64 +
 .../{rtl8188eu => r8188eu}/hal/rtl8188e_xmit.c     |   13 +-
 drivers/staging/r8188eu/hal/rtl8188eu_led.c        |   94 +
 drivers/staging/r8188eu/hal/rtl8188eu_recv.c       |  117 +
 .../{rtl8188eu => r8188eu}/hal/rtl8188eu_xmit.c    |  204 +-
 .../{rtl8188eu => r8188eu}/hal/usb_halinit.c       | 1178 ++-
 drivers/staging/r8188eu/hal/usb_ops_linux.c        |  562 ++
 .../include/Hal8188EPhyCfg.h}                      |  140 +-
 drivers/staging/r8188eu/include/Hal8188EPhyReg.h   | 1072 +++
 drivers/staging/r8188eu/include/Hal8188EPwrSeq.h   |  155 +
 .../staging/r8188eu/include/Hal8188ERateAdaptive.h |   64 +
 drivers/staging/r8188eu/include/HalHWImg8188E_BB.h |   27 +
 drivers/staging/r8188eu/include/HalHWImg8188E_FW.h |   16 +
 .../staging/r8188eu/include/HalHWImg8188E_MAC.h    |   13 +
 drivers/staging/r8188eu/include/HalHWImg8188E_RF.h |   13 +
 drivers/staging/r8188eu/include/HalPhyRf_8188e.h   |   41 +
 drivers/staging/r8188eu/include/HalPwrSeqCmd.h     |  110 +
 drivers/staging/r8188eu/include/HalVerDef.h        |  149 +
 .../{rtl8188eu => r8188eu}/include/basic_types.h   |  101 +-
 drivers/staging/r8188eu/include/drv_types.h        |  323 +
 .../{rtl8188eu => r8188eu}/include/hal_com.h       |   28 +-
 drivers/staging/r8188eu/include/hal_intf.h         |  411 +
 .../{rtl8188eu => r8188eu}/include/ieee80211.h     |  680 +-
 drivers/staging/r8188eu/include/ieee80211_ext.h    |  271 +
 drivers/staging/r8188eu/include/ioctl_cfg80211.h   |   91 +
 .../{rtl8188eu => r8188eu}/include/mlme_osdep.h    |   14 +-
 drivers/staging/r8188eu/include/mp_custom_oid.h    |  333 +
 .../staging/{rtl8188eu => r8188eu}/include/odm.h   |  227 +-
 .../include/odm_HWConfig.h}                        |   37 +-
 drivers/staging/r8188eu/include/odm_RTL8188E.h     |   36 +
 .../staging/r8188eu/include/odm_RegConfig8188E.h   |   27 +
 .../staging/r8188eu/include/odm_RegDefine11AC.h    |   29 +
 drivers/staging/r8188eu/include/odm_RegDefine11N.h |  143 +
 drivers/staging/r8188eu/include/odm_interface.h    |  147 +
 .../{rtl8188eu => r8188eu}/include/odm_precomp.h   |   45 +-
 drivers/staging/r8188eu/include/odm_reg.h          |   89 +
 drivers/staging/r8188eu/include/odm_types.h        |   45 +
 drivers/staging/r8188eu/include/osdep_intf.h       |   64 +
 drivers/staging/r8188eu/include/osdep_service.h    |  315 +
 drivers/staging/r8188eu/include/recv_osdep.h       |   37 +
 .../{rtl8188eu => r8188eu}/include/rtl8188e_cmd.h  |   48 +-
 .../{rtl8188eu => r8188eu}/include/rtl8188e_dm.h   |   21 +-
 .../{rtl8188eu => r8188eu}/include/rtl8188e_hal.h  |  223 +-
 drivers/staging/r8188eu/include/rtl8188e_led.h     |   18 +
 .../{rtl8188eu => r8188eu}/include/rtl8188e_recv.h |   22 +-
 drivers/staging/r8188eu/include/rtl8188e_rf.h      |   19 +
 .../{rtl8188eu => r8188eu}/include/rtl8188e_spec.h |  457 +-
 drivers/staging/r8188eu/include/rtl8188e_sreset.h  |   15 +
 .../{rtl8188eu => r8188eu}/include/rtl8188e_xmit.h |   51 +-
 .../{rtl8188eu => r8188eu}/include/rtw_android.h   |    9 +-
 .../{rtl8188eu => r8188eu}/include/rtw_ap.h        |   18 +-
 drivers/staging/r8188eu/include/rtw_br_ext.h       |   49 +
 drivers/staging/r8188eu/include/rtw_cmd.h          |  975 +++
 drivers/staging/r8188eu/include/rtw_debug.h        |  231 +
 .../{rtl8188eu => r8188eu}/include/rtw_eeprom.h    |   32 +-
 drivers/staging/r8188eu/include/rtw_efuse.h        |  134 +
 drivers/staging/r8188eu/include/rtw_event.h        |   97 +
 drivers/staging/r8188eu/include/rtw_ht.h           |   28 +
 drivers/staging/r8188eu/include/rtw_io.h           |  367 +
 .../{rtl8188eu => r8188eu}/include/rtw_ioctl.h     |   35 +-
 drivers/staging/r8188eu/include/rtw_ioctl_rtl.h    |   63 +
 drivers/staging/r8188eu/include/rtw_ioctl_set.h    |   33 +
 drivers/staging/r8188eu/include/rtw_iol.h          |   68 +
 drivers/staging/r8188eu/include/rtw_led.h          |  181 +
 drivers/staging/r8188eu/include/rtw_mlme.h         |  632 ++
 .../{rtl8188eu => r8188eu}/include/rtw_mlme_ext.h  |  355 +-
 drivers/staging/r8188eu/include/rtw_mp.h           |  474 ++
 drivers/staging/r8188eu/include/rtw_mp_ioctl.h     |  242 +
 .../staging/r8188eu/include/rtw_mp_phy_regdef.h    | 1063 +++
 drivers/staging/r8188eu/include/rtw_p2p.h          |  119 +
 .../{rtl8188eu => r8188eu}/include/rtw_pwrctrl.h   |   75 +-
 drivers/staging/r8188eu/include/rtw_recv.h         |  413 +
 .../{rtl8188eu => r8188eu}/include/rtw_rf.h        |   37 +-
 .../{rtl8188eu => r8188eu}/include/rtw_security.h  |  168 +-
 drivers/staging/r8188eu/include/rtw_sreset.h       |   34 +
 .../{rtl8188eu => r8188eu}/include/rtw_xmit.h      |   71 +-
 .../{rtl8188eu => r8188eu}/include/sta_info.h      |   61 +-
 drivers/staging/r8188eu/include/usb_ops.h          |   72 +
 drivers/staging/r8188eu/include/usb_ops_linux.h    |   39 +
 drivers/staging/r8188eu/include/usb_osintf.h       |   29 +
 drivers/staging/r8188eu/include/usb_vendor_req.h   |   35 +
 drivers/staging/r8188eu/include/wifi.h             | 1029 +++
 .../{rtl8188eu => r8188eu}/include/wlan_bssdef.h   |  149 +-
 drivers/staging/r8188eu/include/xmit_osdep.h       |   51 +
 drivers/staging/r8188eu/os_dep/ioctl_linux.c       | 6649 ++++++++++++++++
 drivers/staging/r8188eu/os_dep/mlme_linux.c        |  216 +
 drivers/staging/r8188eu/os_dep/os_intfs.c          | 1199 +++
 drivers/staging/r8188eu/os_dep/osdep_service.c     |  343 +
 .../{rtl8188eu => r8188eu}/os_dep/recv_linux.c     |  128 +-
 .../{rtl8188eu => r8188eu}/os_dep/rtw_android.c    |  116 +-
 drivers/staging/r8188eu/os_dep/usb_intf.c          |  781 ++
 drivers/staging/r8188eu/os_dep/usb_ops_linux.c     |  253 +
 .../{rtl8188eu => r8188eu}/os_dep/xmit_linux.c     |  130 +-
 drivers/staging/rtl8188eu/Makefile                 |   56 -
 drivers/staging/rtl8188eu/TODO                     |   14 -
 drivers/staging/rtl8188eu/core/rtw_cmd.c           | 1219 ---
 drivers/staging/rtl8188eu/core/rtw_efuse.c         |  876 --
 drivers/staging/rtl8188eu/core/rtw_ieee80211.c     |  992 ---
 drivers/staging/rtl8188eu/core/rtw_ioctl_set.c     |  512 --
 drivers/staging/rtl8188eu/core/rtw_iol.c           |   19 -
 drivers/staging/rtl8188eu/core/rtw_led.c           |  460 --
 drivers/staging/rtl8188eu/core/rtw_mlme_ext.c      | 5172 ------------
 drivers/staging/rtl8188eu/core/rtw_security.c      |  869 --
 drivers/staging/rtl8188eu/core/rtw_sreset.c        |   21 -
 drivers/staging/rtl8188eu/hal/fw.c                 |  202 -
 drivers/staging/rtl8188eu/hal/hal_intf.c           |   60 -
 drivers/staging/rtl8188eu/hal/mac_cfg.c            |  120 -
 drivers/staging/rtl8188eu/hal/odm.c                |  966 ---
 drivers/staging/rtl8188eu/hal/odm_hwconfig.c       |  397 -
 drivers/staging/rtl8188eu/hal/odm_rtl8188e.c       |  335 -
 drivers/staging/rtl8188eu/hal/phy.c                | 1276 ---
 drivers/staging/rtl8188eu/hal/pwrseq.c             |   88 -
 drivers/staging/rtl8188eu/hal/pwrseqcmd.c          |   80 -
 drivers/staging/rtl8188eu/hal/rf.c                 |  289 -
 drivers/staging/rtl8188eu/hal/rf_cfg.c             |  247 -
 drivers/staging/rtl8188eu/hal/rtl8188e_dm.c        |  217 -
 drivers/staging/rtl8188eu/hal/rtl8188e_hal_init.c  |  523 --
 drivers/staging/rtl8188eu/hal/rtl8188eu_led.c      |   55 -
 drivers/staging/rtl8188eu/hal/rtl8188eu_recv.c     |   83 -
 drivers/staging/rtl8188eu/include/HalVerDef.h      |   37 -
 drivers/staging/rtl8188eu/include/drv_types.h      |  176 -
 drivers/staging/rtl8188eu/include/fw.h             |   44 -
 .../staging/rtl8188eu/include/hal8188e_phy_reg.h   |  201 -
 .../rtl8188eu/include/hal8188e_rate_adaptive.h     |   74 -
 drivers/staging/rtl8188eu/include/hal_intf.h       |  223 -
 drivers/staging/rtl8188eu/include/mon.h            |   28 -
 drivers/staging/rtl8188eu/include/odm_rtl8188e.h   |   39 -
 drivers/staging/rtl8188eu/include/odm_types.h      |   24 -
 drivers/staging/rtl8188eu/include/osdep_intf.h     |   35 -
 drivers/staging/rtl8188eu/include/osdep_service.h  |   81 -
 drivers/staging/rtl8188eu/include/phy.h            |   26 -
 drivers/staging/rtl8188eu/include/phydm_reg.h      |   22 -
 .../staging/rtl8188eu/include/phydm_regdefine11n.h |   53 -
 drivers/staging/rtl8188eu/include/pwrseq.h         |  242 -
 drivers/staging/rtl8188eu/include/pwrseqcmd.h      |   52 -
 drivers/staging/rtl8188eu/include/recv_osdep.h     |   26 -
 drivers/staging/rtl8188eu/include/rf.h             |   12 -
 drivers/staging/rtl8188eu/include/rtw_cmd.h        |  361 -
 drivers/staging/rtl8188eu/include/rtw_efuse.h      |   67 -
 drivers/staging/rtl8188eu/include/rtw_event.h      |   81 -
 drivers/staging/rtl8188eu/include/rtw_ht.h         |   26 -
 drivers/staging/rtl8188eu/include/rtw_ioctl_set.h  |   28 -
 drivers/staging/rtl8188eu/include/rtw_iol.h        |   14 -
 drivers/staging/rtl8188eu/include/rtw_led.h        |   98 -
 drivers/staging/rtl8188eu/include/rtw_mlme.h       |  355 -
 drivers/staging/rtl8188eu/include/rtw_recv.h       |  262 -
 drivers/staging/rtl8188eu/include/rtw_sreset.h     |   30 -
 drivers/staging/rtl8188eu/include/usb_ops_linux.h  |   26 -
 drivers/staging/rtl8188eu/include/wifi.h           |  355 -
 drivers/staging/rtl8188eu/include/xmit_osdep.h     |   32 -
 drivers/staging/rtl8188eu/os_dep/ioctl_linux.c     | 2780 -------
 drivers/staging/rtl8188eu/os_dep/mlme_linux.c      |  167 -
 drivers/staging/rtl8188eu/os_dep/mon.c             |  183 -
 drivers/staging/rtl8188eu/os_dep/os_intfs.c        |  657 --
 drivers/staging/rtl8188eu/os_dep/osdep_service.c   |   63 -
 drivers/staging/rtl8188eu/os_dep/usb_intf.c        |  485 --
 drivers/staging/rtl8188eu/os_dep/usb_ops_linux.c   |  644 --
 drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c     |    2 +-
 drivers/staging/rtl8192e/rtl8192e/rtl_core.c       |    5 -
 drivers/staging/rtl8192e/rtllib_crypt_ccmp.c       |    4 +-
 drivers/staging/rtl8192e/rtllib_rx.c               |   57 +-
 drivers/staging/rtl8192e/rtllib_softmac.c          |    3 +-
 drivers/staging/rtl8192e/rtllib_softmac_wx.c       |   18 +-
 drivers/staging/rtl8192u/ieee80211/ieee80211.h     |    4 +-
 .../rtl8192u/ieee80211/ieee80211_crypt_ccmp.c      |    4 +-
 drivers/staging/rtl8192u/ieee80211/ieee80211_rx.c  |   49 +-
 .../staging/rtl8192u/ieee80211/ieee80211_softmac.c |    3 +-
 drivers/staging/rtl8192u/r8192U_core.c             |    2 +-
 drivers/staging/rtl8192u/r819xU_phy.c              |   92 +-
 drivers/staging/rtl8712/hal_init.c                 |    1 -
 drivers/staging/rtl8712/os_intfs.c                 |    2 +-
 drivers/staging/rtl8712/osdep_service.h            |    2 +-
 drivers/staging/rtl8712/wifi.h                     |   48 -
 drivers/staging/rtl8723bs/Kconfig                  |    3 +-
 drivers/staging/rtl8723bs/Makefile                 |    1 -
 drivers/staging/rtl8723bs/core/rtw_ap.c            |  135 +-
 drivers/staging/rtl8723bs/core/rtw_cmd.c           |   54 +-
 drivers/staging/rtl8723bs/core/rtw_debug.c         |   19 +-
 drivers/staging/rtl8723bs/core/rtw_ieee80211.c     |  154 +-
 drivers/staging/rtl8723bs/core/rtw_io.c            |   13 +-
 drivers/staging/rtl8723bs/core/rtw_ioctl_set.c     |  103 +-
 drivers/staging/rtl8723bs/core/rtw_mlme.c          |  263 +-
 drivers/staging/rtl8723bs/core/rtw_mlme_ext.c      |  297 +-
 drivers/staging/rtl8723bs/core/rtw_recv.c          |    6 +-
 drivers/staging/rtl8723bs/core/rtw_rf.c            |    1 -
 drivers/staging/rtl8723bs/core/rtw_security.c      |   36 +-
 drivers/staging/rtl8723bs/core/rtw_wlan_util.c     |  147 +-
 drivers/staging/rtl8723bs/hal/HalBtc8723b1Ant.c    |  464 --
 drivers/staging/rtl8723bs/hal/HalBtc8723b1Ant.h    |    1 -
 drivers/staging/rtl8723bs/hal/HalBtc8723b2Ant.c    |  414 -
 drivers/staging/rtl8723bs/hal/HalBtc8723b2Ant.h    |    1 -
 drivers/staging/rtl8723bs/hal/HalBtcOutSrc.h       |    8 -
 drivers/staging/rtl8723bs/hal/HalHWImg8723B_BB.c   |   17 +-
 drivers/staging/rtl8723bs/hal/HalHWImg8723B_RF.c   |   86 +-
 drivers/staging/rtl8723bs/hal/HalPhyRf.c           |   67 +-
 drivers/staging/rtl8723bs/hal/HalPhyRf_8723B.c     |  191 +-
 drivers/staging/rtl8723bs/hal/Mp_Precomp.h         |    2 -
 drivers/staging/rtl8723bs/hal/hal_btcoex.c         |  111 +-
 drivers/staging/rtl8723bs/hal/hal_com.c            |  172 +-
 drivers/staging/rtl8723bs/hal/hal_com_phycfg.c     |  447 +-
 drivers/staging/rtl8723bs/hal/hal_sdio.c           |    1 -
 drivers/staging/rtl8723bs/hal/odm.c                |   56 +-
 drivers/staging/rtl8723bs/hal/odm.h                |   25 -
 drivers/staging/rtl8723bs/hal/odm_CfoTracking.c    |   36 +-
 drivers/staging/rtl8723bs/hal/odm_CfoTracking.h    |    2 +-
 drivers/staging/rtl8723bs/hal/odm_DIG.c            |    5 +-
 drivers/staging/rtl8723bs/hal/odm_HWConfig.c       |  343 +-
 drivers/staging/rtl8723bs/hal/odm_HWConfig.h       |   29 +-
 drivers/staging/rtl8723bs/hal/odm_NoiseMonitor.c   |   23 +-
 drivers/staging/rtl8723bs/hal/odm_RTL8723B.c       |   36 -
 drivers/staging/rtl8723bs/hal/odm_RTL8723B.h       |   14 -
 drivers/staging/rtl8723bs/hal/odm_RegConfig8723B.c |    7 +-
 drivers/staging/rtl8723bs/hal/odm_RegConfig8723B.h |   11 +-
 drivers/staging/rtl8723bs/hal/odm_RegDefine11N.h   |    2 -
 drivers/staging/rtl8723bs/hal/odm_precomp.h        |    1 -
 drivers/staging/rtl8723bs/hal/odm_reg.h            |    4 -
 drivers/staging/rtl8723bs/hal/rtl8723b_cmd.c       |   23 +-
 drivers/staging/rtl8723bs/hal/rtl8723b_dm.c        |   12 -
 drivers/staging/rtl8723bs/hal/rtl8723b_hal_init.c  |   84 +-
 drivers/staging/rtl8723bs/hal/rtl8723b_phycfg.c    |   52 +-
 drivers/staging/rtl8723bs/hal/rtl8723b_rf6052.c    |   21 +-
 drivers/staging/rtl8723bs/hal/rtl8723b_rxdesc.c    |    1 -
 drivers/staging/rtl8723bs/hal/rtl8723bs_recv.c     |    3 +-
 drivers/staging/rtl8723bs/hal/rtl8723bs_xmit.c     |    1 -
 drivers/staging/rtl8723bs/hal/sdio_halinit.c       |    2 -
 drivers/staging/rtl8723bs/include/Hal8192CPhyReg.h |    4 -
 drivers/staging/rtl8723bs/include/HalVerDef.h      |   18 -
 drivers/staging/rtl8723bs/include/drv_types.h      |    9 -
 drivers/staging/rtl8723bs/include/ethernet.h       |   14 -
 drivers/staging/rtl8723bs/include/hal_btcoex.h     |    3 -
 drivers/staging/rtl8723bs/include/hal_com.h        |   35 +-
 drivers/staging/rtl8723bs/include/hal_com_phycfg.h |   20 +-
 drivers/staging/rtl8723bs/include/hal_com_reg.h    |   19 -
 drivers/staging/rtl8723bs/include/hal_data.h       |   24 +-
 drivers/staging/rtl8723bs/include/hal_pg.h         |    8 +-
 drivers/staging/rtl8723bs/include/hal_phy.h        |    3 +-
 drivers/staging/rtl8723bs/include/ieee80211.h      |   42 +-
 drivers/staging/rtl8723bs/include/osdep_service.h  |    4 -
 drivers/staging/rtl8723bs/include/rtl8723b_xmit.h  |    8 -
 drivers/staging/rtl8723bs/include/rtw_ioctl_set.h  |    1 -
 drivers/staging/rtl8723bs/include/rtw_mlme.h       |    6 +-
 drivers/staging/rtl8723bs/include/rtw_recv.h       |    2 +
 drivers/staging/rtl8723bs/include/rtw_rf.h         |   10 -
 drivers/staging/rtl8723bs/include/wifi.h           |    8 -
 drivers/staging/rtl8723bs/include/wlan_bssdef.h    |   92 +-
 drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c  |  173 +-
 drivers/staging/rtl8723bs/os_dep/ioctl_linux.c     | 3289 +-------
 drivers/staging/rtl8723bs/os_dep/mlme_linux.c      |    4 -
 drivers/staging/rtl8723bs/os_dep/os_intfs.c        |   31 +-
 drivers/staging/rtl8723bs/os_dep/sdio_ops_linux.c  |    1 -
 drivers/staging/rts5208/rtsx_scsi.c                |   10 +-
 drivers/staging/sm750fb/sm750.c                    |   52 +-
 drivers/staging/sm750fb/sm750.h                    |   12 +-
 drivers/staging/sm750fb/sm750_cursor.c             |    4 +-
 drivers/staging/sm750fb/sm750_hw.c                 |   62 +-
 drivers/staging/vc04_services/Kconfig              |   28 +-
 drivers/staging/vc04_services/Makefile             |    5 +-
 .../staging/vc04_services/bcm2835-audio/bcm2835.h  |    2 +-
 .../vc04_services/bcm2835-camera/bcm2835-camera.c  |    2 +-
 .../interface/vchiq_arm/vchiq_2835_arm.c           |  564 --
 .../vc04_services/interface/vchiq_arm/vchiq_arm.c  | 2330 ++----
 .../vc04_services/interface/vchiq_arm/vchiq_arm.h  |   82 +
 .../vc04_services/interface/vchiq_arm/vchiq_core.c |    2 +-
 .../vc04_services/interface/vchiq_arm/vchiq_dev.c  | 1440 ++++
 drivers/staging/vt6655/baseband.c                  |    2 -
 drivers/staging/vt6655/baseband.h                  |    2 -
 drivers/staging/vt6655/card.c                      |    1 -
 drivers/staging/vt6655/card.h                      |    2 -
 drivers/staging/vt6655/channel.c                   |    2 -
 drivers/staging/vt6655/channel.h                   |    1 -
 drivers/staging/vt6655/desc.h                      |    2 -
 drivers/staging/vt6655/device.h                    |    2 -
 drivers/staging/vt6655/device_cfg.h                |    6 +-
 drivers/staging/vt6655/device_main.c               |    2 -
 drivers/staging/vt6655/dpc.c                       |    2 -
 drivers/staging/vt6655/dpc.h                       |    2 -
 drivers/staging/vt6655/key.c                       |    2 -
 drivers/staging/vt6655/key.h                       |    2 -
 drivers/staging/vt6655/mac.c                       |    3 -
 drivers/staging/vt6655/mac.h                       |    2 -
 drivers/staging/vt6655/power.c                     |    2 -
 drivers/staging/vt6655/power.h                     |    2 -
 drivers/staging/vt6655/rf.c                        |    2 -
 drivers/staging/vt6655/rf.h                        |    2 -
 drivers/staging/vt6655/rxtx.c                      |    2 -
 drivers/staging/vt6655/rxtx.h                      |    2 -
 drivers/staging/vt6655/srom.c                      |    2 -
 drivers/staging/vt6655/srom.h                      |    2 -
 drivers/staging/vt6655/tmacro.h                    |    2 -
 drivers/staging/vt6655/upc.h                       |    2 -
 drivers/staging/vt6656/baseband.c                  |    2 -
 drivers/staging/vt6656/baseband.h                  |    2 -
 drivers/staging/vt6656/card.c                      |    1 -
 drivers/staging/vt6656/card.h                      |    2 -
 drivers/staging/vt6656/channel.c                   |    2 -
 drivers/staging/vt6656/channel.h                   |    2 -
 drivers/staging/vt6656/desc.h                      |    2 -
 drivers/staging/vt6656/device.h                    |    4 -
 drivers/staging/vt6656/key.c                       |    2 -
 drivers/staging/vt6656/key.h                       |    2 -
 drivers/staging/vt6656/mac.c                       |    2 -
 drivers/staging/vt6656/mac.h                       |    2 -
 drivers/staging/vt6656/main_usb.c                  |    2 -
 drivers/staging/vt6656/power.c                     |    2 -
 drivers/staging/vt6656/power.h                     |    2 -
 drivers/staging/vt6656/rf.c                        |    2 -
 drivers/staging/vt6656/rf.h                        |    2 -
 drivers/staging/vt6656/rxtx.c                      |    2 -
 drivers/staging/vt6656/rxtx.h                      |    2 -
 drivers/staging/vt6656/usbpipe.c                   |    2 -
 drivers/staging/vt6656/usbpipe.h                   |    2 -
 drivers/staging/vt6656/wcmd.c                      |    2 -
 drivers/staging/vt6656/wcmd.h                      |    2 -
 drivers/staging/wlan-ng/hfa384x.h                  |   19 +-
 drivers/staging/wlan-ng/hfa384x_usb.c              |   13 +-
 drivers/staging/wlan-ng/p80211conv.c               |   48 +-
 drivers/staging/wlan-ng/p80211conv.h               |    2 +-
 drivers/staging/wlan-ng/p80211hdr.h                |   30 +-
 drivers/staging/wlan-ng/p80211mgmt.h               |   24 +-
 drivers/staging/wlan-ng/p80211netdev.c             |   12 +-
 drivers/staging/wlan-ng/p80211netdev.h             |    2 +-
 drivers/staging/wlan-ng/prism2fw.c                 |    8 +-
 drivers/staging/wlan-ng/prism2mib.c                |   10 +
 drivers/staging/wlan-ng/prism2sta.c                |    6 +-
 include/dt-bindings/iio/adc/ingenic,adc.h          |    1 +
 include/linux/counter.h                            |   32 +-
 include/linux/mfd/hi6421-spmi-pmic.h               |    5 -
 507 files changed, 70255 insertions(+), 37571 deletions(-)
 create mode 100644 Documentation/ABI/testing/sysfs-bus-iio-chemical-sgp40
 delete mode 100644 Documentation/devicetree/bindings/iio/accel/bosch,bma180.yaml
 create mode 100644 Documentation/devicetree/bindings/iio/adc/renesas,rzg2l-adc.yaml
 create mode 100644 Documentation/devicetree/bindings/iio/dac/adi,ad5064.yaml
 create mode 100644 Documentation/devicetree/bindings/iio/dac/adi,ad5360.yaml
 create mode 100644 Documentation/devicetree/bindings/iio/dac/adi,ad5380.yaml
 create mode 100644 Documentation/devicetree/bindings/iio/dac/adi,ad5421.yaml
 create mode 100644 Documentation/devicetree/bindings/iio/dac/adi,ad5449.yaml
 create mode 100644 Documentation/devicetree/bindings/iio/dac/adi,ad5504.yaml
 create mode 100644 Documentation/devicetree/bindings/iio/dac/adi,ad5624r.yaml
 create mode 100644 Documentation/devicetree/bindings/iio/dac/adi,ad5686.yaml
 create mode 100644 Documentation/devicetree/bindings/iio/dac/adi,ad5761.yaml
 create mode 100644 Documentation/devicetree/bindings/iio/dac/adi,ad5764.yaml
 create mode 100644 Documentation/devicetree/bindings/iio/dac/adi,ad5791.yaml
 create mode 100644 Documentation/devicetree/bindings/iio/dac/adi,ad8801.yaml
 create mode 100644 Documentation/devicetree/bindings/iio/dac/microchip,mcp4922.yaml
 rename {drivers/staging/hikey9xx => Documentation/devicetree/bindings/mfd}/hisilicon,hi6421-spmi-pmic.yaml (87%)
 create mode 100644 drivers/iio/adc/rzg2l_adc.c
 create mode 100644 drivers/iio/chemical/sgp40.c
 create mode 100644 drivers/iio/potentiometer/ad5110.c
 create mode 100644 drivers/mfd/hi6421-spmi-pmic.c
 create mode 100644 drivers/misc/hi6421v600-irq.c
 delete mode 100644 drivers/staging/hikey9xx/Kconfig
 delete mode 100644 drivers/staging/hikey9xx/Makefile
 delete mode 100644 drivers/staging/hikey9xx/TODO
 delete mode 100644 drivers/staging/hikey9xx/hi6421-spmi-pmic.c
 rename drivers/staging/{rtl8188eu => r8188eu}/Kconfig (63%)
 create mode 100644 drivers/staging/r8188eu/Makefile
 create mode 100644 drivers/staging/r8188eu/TODO
 rename drivers/staging/{rtl8188eu => r8188eu}/core/rtw_ap.c (66%)
 create mode 100644 drivers/staging/r8188eu/core/rtw_br_ext.c
 create mode 100644 drivers/staging/r8188eu/core/rtw_cmd.c
 create mode 100644 drivers/staging/r8188eu/core/rtw_debug.c
 create mode 100644 drivers/staging/r8188eu/core/rtw_efuse.c
 create mode 100644 drivers/staging/r8188eu/core/rtw_ieee80211.c
 create mode 100644 drivers/staging/r8188eu/core/rtw_io.c
 create mode 100644 drivers/staging/r8188eu/core/rtw_ioctl_set.c
 create mode 100644 drivers/staging/r8188eu/core/rtw_iol.c
 create mode 100644 drivers/staging/r8188eu/core/rtw_led.c
 rename drivers/staging/{rtl8188eu => r8188eu}/core/rtw_mlme.c (61%)
 create mode 100644 drivers/staging/r8188eu/core/rtw_mlme_ext.c
 create mode 100644 drivers/staging/r8188eu/core/rtw_mp.c
 create mode 100644 drivers/staging/r8188eu/core/rtw_mp_ioctl.c
 create mode 100644 drivers/staging/r8188eu/core/rtw_p2p.c
 rename drivers/staging/{rtl8188eu => r8188eu}/core/rtw_pwrctrl.c (57%)
 rename drivers/staging/{rtl8188eu => r8188eu}/core/rtw_recv.c (64%)
 rename drivers/staging/{rtl8188eu => r8188eu}/core/rtw_rf.c (70%)
 create mode 100644 drivers/staging/r8188eu/core/rtw_security.c
 create mode 100644 drivers/staging/r8188eu/core/rtw_sreset.c
 rename drivers/staging/{rtl8188eu => r8188eu}/core/rtw_sta_mgt.c (60%)
 rename drivers/staging/{rtl8188eu => r8188eu}/core/rtw_wlan_util.c (52%)
 rename drivers/staging/{rtl8188eu => r8188eu}/core/rtw_xmit.c (65%)
 create mode 100644 drivers/staging/r8188eu/hal/Hal8188EPwrSeq.c
 rename drivers/staging/{rtl8188eu/hal/hal8188e_rate_adaptive.c => r8188eu/hal/Hal8188ERateAdaptive.c} (80%)
 rename drivers/staging/{rtl8188eu/hal/bb_cfg.c => r8188eu/hal/HalHWImg8188E_BB.c} (56%)
 create mode 100644 drivers/staging/r8188eu/hal/HalHWImg8188E_MAC.c
 create mode 100644 drivers/staging/r8188eu/hal/HalHWImg8188E_RF.c
 create mode 100644 drivers/staging/r8188eu/hal/HalPhyRf_8188e.c
 create mode 100644 drivers/staging/r8188eu/hal/HalPwrSeqCmd.c
 rename drivers/staging/{rtl8188eu => r8188eu}/hal/hal_com.c (63%)
 create mode 100644 drivers/staging/r8188eu/hal/hal_intf.c
 create mode 100644 drivers/staging/r8188eu/hal/odm.c
 create mode 100644 drivers/staging/r8188eu/hal/odm_HWConfig.c
 create mode 100644 drivers/staging/r8188eu/hal/odm_RTL8188E.c
 create mode 100644 drivers/staging/r8188eu/hal/odm_RegConfig8188E.c
 create mode 100644 drivers/staging/r8188eu/hal/odm_debug.c
 create mode 100644 drivers/staging/r8188eu/hal/odm_interface.c
 rename drivers/staging/{rtl8188eu => r8188eu}/hal/rtl8188e_cmd.c (52%)
 create mode 100644 drivers/staging/r8188eu/hal/rtl8188e_dm.c
 create mode 100644 drivers/staging/r8188eu/hal/rtl8188e_hal_init.c
 create mode 100644 drivers/staging/r8188eu/hal/rtl8188e_mp.c
 create mode 100644 drivers/staging/r8188eu/hal/rtl8188e_phycfg.c
 create mode 100644 drivers/staging/r8188eu/hal/rtl8188e_rf6052.c
 rename drivers/staging/{rtl8188eu => r8188eu}/hal/rtl8188e_rxdesc.c (84%)
 create mode 100644 drivers/staging/r8188eu/hal/rtl8188e_sreset.c
 rename drivers/staging/{rtl8188eu => r8188eu}/hal/rtl8188e_xmit.c (55%)
 create mode 100644 drivers/staging/r8188eu/hal/rtl8188eu_led.c
 create mode 100644 drivers/staging/r8188eu/hal/rtl8188eu_recv.c
 rename drivers/staging/{rtl8188eu => r8188eu}/hal/rtl8188eu_xmit.c (77%)
 rename drivers/staging/{rtl8188eu => r8188eu}/hal/usb_halinit.c (53%)
 create mode 100644 drivers/staging/r8188eu/hal/usb_ops_linux.c
 rename drivers/staging/{rtl8188eu/include/hal8188e_phy_cfg.h => r8188eu/include/Hal8188EPhyCfg.h} (50%)
 create mode 100644 drivers/staging/r8188eu/include/Hal8188EPhyReg.h
 create mode 100644 drivers/staging/r8188eu/include/Hal8188EPwrSeq.h
 create mode 100644 drivers/staging/r8188eu/include/Hal8188ERateAdaptive.h
 create mode 100644 drivers/staging/r8188eu/include/HalHWImg8188E_BB.h
 create mode 100644 drivers/staging/r8188eu/include/HalHWImg8188E_FW.h
 create mode 100644 drivers/staging/r8188eu/include/HalHWImg8188E_MAC.h
 create mode 100644 drivers/staging/r8188eu/include/HalHWImg8188E_RF.h
 create mode 100644 drivers/staging/r8188eu/include/HalPhyRf_8188e.h
 create mode 100644 drivers/staging/r8188eu/include/HalPwrSeqCmd.h
 create mode 100644 drivers/staging/r8188eu/include/HalVerDef.h
 rename drivers/staging/{rtl8188eu => r8188eu}/include/basic_types.h (53%)
 create mode 100644 drivers/staging/r8188eu/include/drv_types.h
 rename drivers/staging/{rtl8188eu => r8188eu}/include/hal_com.h (86%)
 create mode 100644 drivers/staging/r8188eu/include/hal_intf.h
 rename drivers/staging/{rtl8188eu => r8188eu}/include/ieee80211.h (51%)
 create mode 100644 drivers/staging/r8188eu/include/ieee80211_ext.h
 create mode 100644 drivers/staging/r8188eu/include/ioctl_cfg80211.h
 rename drivers/staging/{rtl8188eu => r8188eu}/include/mlme_osdep.h (57%)
 create mode 100644 drivers/staging/r8188eu/include/mp_custom_oid.h
 rename drivers/staging/{rtl8188eu => r8188eu}/include/odm.h (86%)
 rename drivers/staging/{rtl8188eu/include/odm_hwconfig.h => r8188eu/include/odm_HWConfig.h} (69%)
 create mode 100644 drivers/staging/r8188eu/include/odm_RTL8188E.h
 create mode 100644 drivers/staging/r8188eu/include/odm_RegConfig8188E.h
 create mode 100644 drivers/staging/r8188eu/include/odm_RegDefine11AC.h
 create mode 100644 drivers/staging/r8188eu/include/odm_RegDefine11N.h
 create mode 100644 drivers/staging/r8188eu/include/odm_interface.h
 rename drivers/staging/{rtl8188eu => r8188eu}/include/odm_precomp.h (59%)
 create mode 100644 drivers/staging/r8188eu/include/odm_reg.h
 create mode 100644 drivers/staging/r8188eu/include/odm_types.h
 create mode 100644 drivers/staging/r8188eu/include/osdep_intf.h
 create mode 100644 drivers/staging/r8188eu/include/osdep_service.h
 create mode 100644 drivers/staging/r8188eu/include/recv_osdep.h
 rename drivers/staging/{rtl8188eu => r8188eu}/include/rtl8188e_cmd.h (59%)
 rename drivers/staging/{rtl8188eu => r8188eu}/include/rtl8188e_dm.h (58%)
 rename drivers/staging/{rtl8188eu => r8188eu}/include/rtl8188e_hal.h (57%)
 create mode 100644 drivers/staging/r8188eu/include/rtl8188e_led.h
 rename drivers/staging/{rtl8188eu => r8188eu}/include/rtl8188e_recv.h (56%)
 create mode 100644 drivers/staging/r8188eu/include/rtl8188e_rf.h
 rename drivers/staging/{rtl8188eu => r8188eu}/include/rtl8188e_spec.h (71%)
 create mode 100644 drivers/staging/r8188eu/include/rtl8188e_sreset.h
 rename drivers/staging/{rtl8188eu => r8188eu}/include/rtl8188e_xmit.h (67%)
 rename drivers/staging/{rtl8188eu => r8188eu}/include/rtw_android.h (81%)
 rename drivers/staging/{rtl8188eu => r8188eu}/include/rtw_ap.h (80%)
 create mode 100644 drivers/staging/r8188eu/include/rtw_br_ext.h
 create mode 100644 drivers/staging/r8188eu/include/rtw_cmd.h
 create mode 100644 drivers/staging/r8188eu/include/rtw_debug.h
 rename drivers/staging/{rtl8188eu => r8188eu}/include/rtw_eeprom.h (80%)
 create mode 100644 drivers/staging/r8188eu/include/rtw_efuse.h
 create mode 100644 drivers/staging/r8188eu/include/rtw_event.h
 create mode 100644 drivers/staging/r8188eu/include/rtw_ht.h
 create mode 100644 drivers/staging/r8188eu/include/rtw_io.h
 rename drivers/staging/{rtl8188eu => r8188eu}/include/rtw_ioctl.h (69%)
 create mode 100644 drivers/staging/r8188eu/include/rtw_ioctl_rtl.h
 create mode 100644 drivers/staging/r8188eu/include/rtw_ioctl_set.h
 create mode 100644 drivers/staging/r8188eu/include/rtw_iol.h
 create mode 100644 drivers/staging/r8188eu/include/rtw_led.h
 create mode 100644 drivers/staging/r8188eu/include/rtw_mlme.h
 rename drivers/staging/{rtl8188eu => r8188eu}/include/rtw_mlme_ext.h (63%)
 create mode 100644 drivers/staging/r8188eu/include/rtw_mp.h
 create mode 100644 drivers/staging/r8188eu/include/rtw_mp_ioctl.h
 create mode 100644 drivers/staging/r8188eu/include/rtw_mp_phy_regdef.h
 create mode 100644 drivers/staging/r8188eu/include/rtw_p2p.h
 rename drivers/staging/{rtl8188eu => r8188eu}/include/rtw_pwrctrl.h (81%)
 create mode 100644 drivers/staging/r8188eu/include/rtw_recv.h
 rename drivers/staging/{rtl8188eu => r8188eu}/include/rtw_rf.h (80%)
 rename drivers/staging/{rtl8188eu => r8188eu}/include/rtw_security.h (53%)
 create mode 100644 drivers/staging/r8188eu/include/rtw_sreset.h
 rename drivers/staging/{rtl8188eu => r8188eu}/include/rtw_xmit.h (87%)
 rename drivers/staging/{rtl8188eu => r8188eu}/include/sta_info.h (86%)
 create mode 100644 drivers/staging/r8188eu/include/usb_ops.h
 create mode 100644 drivers/staging/r8188eu/include/usb_ops_linux.h
 create mode 100644 drivers/staging/r8188eu/include/usb_osintf.h
 create mode 100644 drivers/staging/r8188eu/include/usb_vendor_req.h
 create mode 100644 drivers/staging/r8188eu/include/wifi.h
 rename drivers/staging/{rtl8188eu => r8188eu}/include/wlan_bssdef.h (65%)
 create mode 100644 drivers/staging/r8188eu/include/xmit_osdep.h
 create mode 100644 drivers/staging/r8188eu/os_dep/ioctl_linux.c
 create mode 100644 drivers/staging/r8188eu/os_dep/mlme_linux.c
 create mode 100644 drivers/staging/r8188eu/os_dep/os_intfs.c
 create mode 100644 drivers/staging/r8188eu/os_dep/osdep_service.c
 rename drivers/staging/{rtl8188eu => r8188eu}/os_dep/recv_linux.c (50%)
 rename drivers/staging/{rtl8188eu => r8188eu}/os_dep/rtw_android.c (64%)
 create mode 100644 drivers/staging/r8188eu/os_dep/usb_intf.c
 create mode 100644 drivers/staging/r8188eu/os_dep/usb_ops_linux.c
 rename drivers/staging/{rtl8188eu => r8188eu}/os_dep/xmit_linux.c (56%)
 delete mode 100644 drivers/staging/rtl8188eu/Makefile
 delete mode 100644 drivers/staging/rtl8188eu/TODO
 delete mode 100644 drivers/staging/rtl8188eu/core/rtw_cmd.c
 delete mode 100644 drivers/staging/rtl8188eu/core/rtw_efuse.c
 delete mode 100644 drivers/staging/rtl8188eu/core/rtw_ieee80211.c
 delete mode 100644 drivers/staging/rtl8188eu/core/rtw_ioctl_set.c
 delete mode 100644 drivers/staging/rtl8188eu/core/rtw_iol.c
 delete mode 100644 drivers/staging/rtl8188eu/core/rtw_led.c
 delete mode 100644 drivers/staging/rtl8188eu/core/rtw_mlme_ext.c
 delete mode 100644 drivers/staging/rtl8188eu/core/rtw_security.c
 delete mode 100644 drivers/staging/rtl8188eu/core/rtw_sreset.c
 delete mode 100644 drivers/staging/rtl8188eu/hal/fw.c
 delete mode 100644 drivers/staging/rtl8188eu/hal/hal_intf.c
 delete mode 100644 drivers/staging/rtl8188eu/hal/mac_cfg.c
 delete mode 100644 drivers/staging/rtl8188eu/hal/odm.c
 delete mode 100644 drivers/staging/rtl8188eu/hal/odm_hwconfig.c
 delete mode 100644 drivers/staging/rtl8188eu/hal/odm_rtl8188e.c
 delete mode 100644 drivers/staging/rtl8188eu/hal/phy.c
 delete mode 100644 drivers/staging/rtl8188eu/hal/pwrseq.c
 delete mode 100644 drivers/staging/rtl8188eu/hal/pwrseqcmd.c
 delete mode 100644 drivers/staging/rtl8188eu/hal/rf.c
 delete mode 100644 drivers/staging/rtl8188eu/hal/rf_cfg.c
 delete mode 100644 drivers/staging/rtl8188eu/hal/rtl8188e_dm.c
 delete mode 100644 drivers/staging/rtl8188eu/hal/rtl8188e_hal_init.c
 delete mode 100644 drivers/staging/rtl8188eu/hal/rtl8188eu_led.c
 delete mode 100644 drivers/staging/rtl8188eu/hal/rtl8188eu_recv.c
 delete mode 100644 drivers/staging/rtl8188eu/include/HalVerDef.h
 delete mode 100644 drivers/staging/rtl8188eu/include/drv_types.h
 delete mode 100644 drivers/staging/rtl8188eu/include/fw.h
 delete mode 100644 drivers/staging/rtl8188eu/include/hal8188e_phy_reg.h
 delete mode 100644 drivers/staging/rtl8188eu/include/hal8188e_rate_adaptive.h
 delete mode 100644 drivers/staging/rtl8188eu/include/hal_intf.h
 delete mode 100644 drivers/staging/rtl8188eu/include/mon.h
 delete mode 100644 drivers/staging/rtl8188eu/include/odm_rtl8188e.h
 delete mode 100644 drivers/staging/rtl8188eu/include/odm_types.h
 delete mode 100644 drivers/staging/rtl8188eu/include/osdep_intf.h
 delete mode 100644 drivers/staging/rtl8188eu/include/osdep_service.h
 delete mode 100644 drivers/staging/rtl8188eu/include/phy.h
 delete mode 100644 drivers/staging/rtl8188eu/include/phydm_reg.h
 delete mode 100644 drivers/staging/rtl8188eu/include/phydm_regdefine11n.h
 delete mode 100644 drivers/staging/rtl8188eu/include/pwrseq.h
 delete mode 100644 drivers/staging/rtl8188eu/include/pwrseqcmd.h
 delete mode 100644 drivers/staging/rtl8188eu/include/recv_osdep.h
 delete mode 100644 drivers/staging/rtl8188eu/include/rf.h
 delete mode 100644 drivers/staging/rtl8188eu/include/rtw_cmd.h
 delete mode 100644 drivers/staging/rtl8188eu/include/rtw_efuse.h
 delete mode 100644 drivers/staging/rtl8188eu/include/rtw_event.h
 delete mode 100644 drivers/staging/rtl8188eu/include/rtw_ht.h
 delete mode 100644 drivers/staging/rtl8188eu/include/rtw_ioctl_set.h
 delete mode 100644 drivers/staging/rtl8188eu/include/rtw_iol.h
 delete mode 100644 drivers/staging/rtl8188eu/include/rtw_led.h
 delete mode 100644 drivers/staging/rtl8188eu/include/rtw_mlme.h
 delete mode 100644 drivers/staging/rtl8188eu/include/rtw_recv.h
 delete mode 100644 drivers/staging/rtl8188eu/include/rtw_sreset.h
 delete mode 100644 drivers/staging/rtl8188eu/include/usb_ops_linux.h
 delete mode 100644 drivers/staging/rtl8188eu/include/wifi.h
 delete mode 100644 drivers/staging/rtl8188eu/include/xmit_osdep.h
 delete mode 100644 drivers/staging/rtl8188eu/os_dep/ioctl_linux.c
 delete mode 100644 drivers/staging/rtl8188eu/os_dep/mlme_linux.c
 delete mode 100644 drivers/staging/rtl8188eu/os_dep/mon.c
 delete mode 100644 drivers/staging/rtl8188eu/os_dep/os_intfs.c
 delete mode 100644 drivers/staging/rtl8188eu/os_dep/osdep_service.c
 delete mode 100644 drivers/staging/rtl8188eu/os_dep/usb_intf.c
 delete mode 100644 drivers/staging/rtl8188eu/os_dep/usb_ops_linux.c
 delete mode 100644 drivers/staging/rtl8723bs/hal/odm_RTL8723B.c
 delete mode 100644 drivers/staging/rtl8723bs/hal/odm_RTL8723B.h
 delete mode 100644 drivers/staging/rtl8723bs/include/ethernet.h
 delete mode 100644 drivers/staging/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c
 create mode 100644 drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c

^ permalink raw reply	[relevance 1%]

* [PATCH] clk: ti: composite: Prefer kcalloc over open coded arithmetic
@ 2021-09-04 13:17 12% Len Baker
  0 siblings, 0 replies; 200+ results
From: Len Baker @ 2021-09-04 13:17 UTC (permalink / raw)
  To: Tero Kristo, Michael Turquette, Stephen Boyd
  Cc: Len Baker, Kees Cook, linux-omap, linux-clk, linux-hardening,
	linux-kernel

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/v5.14/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments

Signed-off-by: Len Baker <len.baker@gmx.com>
---
 drivers/clk/ti/composite.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/clk/ti/composite.c b/drivers/clk/ti/composite.c
index eaa43575cfa5..eb5ce9735c7d 100644
--- a/drivers/clk/ti/composite.c
+++ b/drivers/clk/ti/composite.c
@@ -253,7 +253,7 @@ int __init ti_clk_add_component(struct device_node *node, struct clk_hw *hw,
 		return -EINVAL;
 	}

-	parent_names = kzalloc((sizeof(char *) * num_parents), GFP_KERNEL);
+	parent_names = kcalloc(num_parents, sizeof(char *), GFP_KERNEL);
 	if (!parent_names)
 		return -ENOMEM;

--
2.25.1


^ permalink raw reply related	[relevance 12%]

* [PATCH] dmaengine: milbeaut-hdmac: Prefer kcalloc over open coded arithmetic
@ 2021-09-04 14:58 12% Len Baker
  2021-10-25  6:42  7% ` Vinod Koul
  0 siblings, 1 reply; 200+ results
From: Len Baker @ 2021-09-04 14:58 UTC (permalink / raw)
  To: Vinod Koul; +Cc: Len Baker, Kees Cook, linux-hardening, dmaengine, linux-kernel

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/v5.14/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments

Signed-off-by: Len Baker <len.baker@gmx.com>
---
 drivers/dma/milbeaut-hdmac.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/dma/milbeaut-hdmac.c b/drivers/dma/milbeaut-hdmac.c
index a8cfb59f6efe..1b0a95892627 100644
--- a/drivers/dma/milbeaut-hdmac.c
+++ b/drivers/dma/milbeaut-hdmac.c
@@ -269,7 +269,7 @@ milbeaut_hdmac_prep_slave_sg(struct dma_chan *chan, struct scatterlist *sgl,
 	if (!md)
 		return NULL;

-	md->sgl = kzalloc(sizeof(*sgl) * sg_len, GFP_NOWAIT);
+	md->sgl = kcalloc(sg_len, sizeof(*sgl), GFP_NOWAIT);
 	if (!md->sgl) {
 		kfree(md);
 		return NULL;
--
2.25.1


^ permalink raw reply related	[relevance 12%]

* [PATCH] cpufreq: powernow: Prefer kcalloc over open coded arithmetic
@ 2021-09-04 15:16 12% Len Baker
  2021-09-06 17:05  7% ` Rafael J. Wysocki
  0 siblings, 1 reply; 200+ results
From: Len Baker @ 2021-09-04 15:16 UTC (permalink / raw)
  To: Rafael J. Wysocki, Viresh Kumar
  Cc: Len Baker, Kees Cook, linux-pm, linux-hardening, linux-kernel

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/v5.14/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments

Signed-off-by: Len Baker <len.baker@gmx.com>
---
 drivers/cpufreq/powernow-k7.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/cpufreq/powernow-k7.c b/drivers/cpufreq/powernow-k7.c
index 5d515fc34836..a9d2c7bae235 100644
--- a/drivers/cpufreq/powernow-k7.c
+++ b/drivers/cpufreq/powernow-k7.c
@@ -174,8 +174,8 @@ static int get_ranges(unsigned char *pst)
 	unsigned int speed;
 	u8 fid, vid;

-	powernow_table = kzalloc((sizeof(*powernow_table) *
-				(number_scales + 1)), GFP_KERNEL);
+	powernow_table = kcalloc(number_scales + 1, sizeof(*powernow_table),
+				 GFP_KERNEL);
 	if (!powernow_table)
 		return -ENOMEM;

--
2.25.1


^ permalink raw reply related	[relevance 12%]

* [PATCH] drm/radeon: Prefer kcalloc over open coded arithmetic
@ 2021-09-04 15:41 11% Len Baker
  2021-09-07 17:00  7% ` Alex Deucher
  0 siblings, 1 reply; 200+ results
From: Len Baker @ 2021-09-04 15:41 UTC (permalink / raw)
  To: Alex Deucher, Christian König, Pan, Xinhui, David Airlie,
	Daniel Vetter
  Cc: Len Baker, Kees Cook, amd-gfx, dri-devel, linux-hardening, linux-kernel

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, refactor the code a bit to use the purpose specific kcalloc()
function instead of the calculated size argument in the kzalloc()
function.

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

Signed-off-by: Len Baker <len.baker@gmx.com>
---
 drivers/gpu/drm/radeon/r600_dpm.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/radeon/r600_dpm.c b/drivers/gpu/drm/radeon/r600_dpm.c
index 35b77c944701..fd4226b99862 100644
--- a/drivers/gpu/drm/radeon/r600_dpm.c
+++ b/drivers/gpu/drm/radeon/r600_dpm.c
@@ -820,12 +820,12 @@ union fan_info {
 static int r600_parse_clk_voltage_dep_table(struct radeon_clock_voltage_dependency_table *radeon_table,
 					    ATOM_PPLIB_Clock_Voltage_Dependency_Table *atom_table)
 {
-	u32 size = atom_table->ucNumEntries *
-		sizeof(struct radeon_clock_voltage_dependency_entry);
 	int i;
 	ATOM_PPLIB_Clock_Voltage_Dependency_Record *entry;

-	radeon_table->entries = kzalloc(size, GFP_KERNEL);
+	radeon_table->entries = kcalloc(atom_table->ucNumEntries,
+					sizeof(struct radeon_clock_voltage_dependency_entry),
+					GFP_KERNEL);
 	if (!radeon_table->entries)
 		return -ENOMEM;

--
2.25.1


^ permalink raw reply related	[relevance 11%]

* [PATCH] scsi: elx: libefc: Prefer kcalloc over open coded arithmetic
@ 2021-09-05  6:24 12% Len Baker
  2021-09-07 16:55  7% ` James Smart
  2021-09-22  4:45 12% ` Martin K. Petersen
  0 siblings, 2 replies; 200+ results
From: Len Baker @ 2021-09-05  6:24 UTC (permalink / raw)
  To: James Smart, Ram Vegesna, James E.J. Bottomley, Martin K. Petersen
  Cc: Len Baker, Kees Cook, Hannes Reinecke, linux-scsi, target-devel,
	linux-hardening, linux-kernel

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.

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

Signed-off-by: Len Baker <len.baker@gmx.com>
---
 drivers/scsi/elx/libefc/efc_fabric.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/scsi/elx/libefc/efc_fabric.c b/drivers/scsi/elx/libefc/efc_fabric.c
index d397220d9e54..f9412437ad47 100644
--- a/drivers/scsi/elx/libefc/efc_fabric.c
+++ b/drivers/scsi/elx/libefc/efc_fabric.c
@@ -686,7 +686,7 @@ efc_process_gidpt_payload(struct efc_node *node,
 	}

 	/* Allocate a buffer for all nodes */
-	active_nodes = kzalloc(port_count * sizeof(*active_nodes), GFP_ATOMIC);
+	active_nodes = kcalloc(port_count, sizeof(*active_nodes), GFP_ATOMIC);
 	if (!active_nodes) {
 		node_printf(node, "efc_malloc failed\n");
 		return -EIO;
--
2.25.1


^ permalink raw reply related	[relevance 12%]

* [PATCH] ice: Prefer kcalloc over open coded arithmetic
@ 2021-09-05  6:50 12% Len Baker
  2021-09-12 20:41  7% ` [Intel-wired-lan] " Gustavo A. R. Silva
  0 siblings, 1 reply; 200+ results
From: Len Baker @ 2021-09-05  6:50 UTC (permalink / raw)
  To: Jesse Brandeburg, Tony Nguyen, David S. Miller, Jakub Kicinski
  Cc: Len Baker, Kees Cook, intel-wired-lan, netdev, linux-hardening,
	linux-kernel

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.

In this case this is not actually dynamic sizes: both sides of the
multiplication are constant values. However it is best to refactor this
anyway, just to keep the open-coded math idiom out of code.

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

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

Signed-off-by: Len Baker <len.baker@gmx.com>
---
 drivers/net/ethernet/intel/ice/ice_arfs.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/intel/ice/ice_arfs.c b/drivers/net/ethernet/intel/ice/ice_arfs.c
index 88d98c9e5f91..3071b8e79499 100644
--- a/drivers/net/ethernet/intel/ice/ice_arfs.c
+++ b/drivers/net/ethernet/intel/ice/ice_arfs.c
@@ -513,7 +513,7 @@ void ice_init_arfs(struct ice_vsi *vsi)
 	if (!vsi || vsi->type != ICE_VSI_PF)
 		return;

-	arfs_fltr_list = kzalloc(sizeof(*arfs_fltr_list) * ICE_MAX_ARFS_LIST,
+	arfs_fltr_list = kcalloc(ICE_MAX_ARFS_LIST, sizeof(*arfs_fltr_list),
 				 GFP_KERNEL);
 	if (!arfs_fltr_list)
 		return;
--
2.25.1


^ permalink raw reply related	[relevance 12%]

* [PATCH] net/mlx5: DR, Prefer kcalloc over open coded arithmetic
@ 2021-09-05  7:49 11% Len Baker
  2021-09-20 21:19  7% ` Saeed Mahameed
  2021-09-21  4:06  7% ` Kees Cook
  0 siblings, 2 replies; 200+ results
From: Len Baker @ 2021-09-05  7:49 UTC (permalink / raw)
  To: Saeed Mahameed, Leon Romanovsky, David S. Miller, Jakub Kicinski
  Cc: Len Baker, Kees Cook, Yevgeny Kliteynik, Alex Vesker,
	Erez Shitrit, Jianbo Liu, netdev, linux-rdma, linux-hardening,
	linux-kernel

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, refactor the code a bit to use the purpose specific kcalloc()
function instead of the argument size * count in the kzalloc() function.

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

Signed-off-by: Len Baker <len.baker@gmx.com>
---
 .../net/ethernet/mellanox/mlx5/core/steering/dr_action.c  | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/mellanox/mlx5/core/steering/dr_action.c b/drivers/net/ethernet/mellanox/mlx5/core/steering/dr_action.c
index 6475ba35cf6b..e8957dad3bb1 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/steering/dr_action.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/steering/dr_action.c
@@ -716,6 +716,7 @@ mlx5dr_action_create_mult_dest_tbl(struct mlx5dr_domain *dmn,
 	struct mlx5dr_action *action;
 	bool reformat_req = false;
 	u32 num_of_ref = 0;
+	u32 ref_act_cnt;
 	int ret;
 	int i;

@@ -724,11 +725,14 @@ mlx5dr_action_create_mult_dest_tbl(struct mlx5dr_domain *dmn,
 		return NULL;
 	}

-	hw_dests = kzalloc(sizeof(*hw_dests) * num_of_dests, GFP_KERNEL);
+	hw_dests = kcalloc(num_of_dests, sizeof(*hw_dests), GFP_KERNEL);
 	if (!hw_dests)
 		return NULL;

-	ref_actions = kzalloc(sizeof(*ref_actions) * num_of_dests * 2, GFP_KERNEL);
+	if (unlikely(check_mul_overflow(num_of_dests, 2u, &ref_act_cnt)))
+		goto free_hw_dests;
+
+	ref_actions = kcalloc(ref_act_cnt, sizeof(*ref_actions), GFP_KERNEL);
 	if (!ref_actions)
 		goto free_hw_dests;

--
2.25.1


^ permalink raw reply related	[relevance 11%]

* [PATCH] RDMA/bnxt_re: Prefer kcalloc over open coded arithmetic
@ 2021-09-05  8:18 12% Len Baker
  2021-09-05 10:21  7% ` Leon Romanovsky
  2021-09-08 11:44  7% ` Jason Gunthorpe
  0 siblings, 2 replies; 200+ results
From: Len Baker @ 2021-09-05  8:18 UTC (permalink / raw)
  To: Selvin Xavier, Naresh Kumar PBS, Doug Ledford, Jason Gunthorpe
  Cc: Len Baker, Kees Cook, linux-rdma, linux-hardening, linux-kernel

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.

In this case this is not actually dynamic sizes: both sides of the
multiplication are constant values. However it is best to refactor this
anyway, just to keep the open-coded math idiom out of code.

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

Also, remove the unnecessary initialization of the sqp_tbl variable
since it is set a few lines later.

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

Signed-off-by: Len Baker <len.baker@gmx.com>
---
 drivers/infiniband/hw/bnxt_re/ib_verbs.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/infiniband/hw/bnxt_re/ib_verbs.c b/drivers/infiniband/hw/bnxt_re/ib_verbs.c
index ea0054c60fbc..6fd4b87832b4 100644
--- a/drivers/infiniband/hw/bnxt_re/ib_verbs.c
+++ b/drivers/infiniband/hw/bnxt_re/ib_verbs.c
@@ -1312,7 +1312,7 @@ static int bnxt_re_init_qp_attr(struct bnxt_re_qp *qp, struct bnxt_re_pd *pd,
 static int bnxt_re_create_shadow_gsi(struct bnxt_re_qp *qp,
 				     struct bnxt_re_pd *pd)
 {
-	struct bnxt_re_sqp_entries *sqp_tbl = NULL;
+	struct bnxt_re_sqp_entries *sqp_tbl;
 	struct bnxt_re_dev *rdev;
 	struct bnxt_re_qp *sqp;
 	struct bnxt_re_ah *sah;
@@ -1320,7 +1320,7 @@ static int bnxt_re_create_shadow_gsi(struct bnxt_re_qp *qp,

 	rdev = qp->rdev;
 	/* Create a shadow QP to handle the QP1 traffic */
-	sqp_tbl = kzalloc(sizeof(*sqp_tbl) * BNXT_RE_MAX_GSI_SQP_ENTRIES,
+	sqp_tbl = kcalloc(BNXT_RE_MAX_GSI_SQP_ENTRIES, sizeof(*sqp_tbl),
 			  GFP_KERNEL);
 	if (!sqp_tbl)
 		return -ENOMEM;
--
2.25.1


^ permalink raw reply related	[relevance 12%]

* Re: [PATCH] RDMA/bnxt_re: Prefer kcalloc over open coded arithmetic
  2021-09-05  8:18 12% [PATCH] RDMA/bnxt_re: " Len Baker
@ 2021-09-05 10:21  7% ` Leon Romanovsky
  2021-09-07 14:12  7%   ` Selvin Xavier
  2021-09-08 11:44  7% ` Jason Gunthorpe
  1 sibling, 1 reply; 200+ results
From: Leon Romanovsky @ 2021-09-05 10:21 UTC (permalink / raw)
  To: Len Baker
  Cc: Selvin Xavier, Naresh Kumar PBS, Doug Ledford, Jason Gunthorpe,
	Kees Cook, linux-rdma, linux-hardening, linux-kernel

On Sun, Sep 05, 2021 at 10:18:12AM +0200, Len Baker 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.
> 
> In this case this is not actually dynamic sizes: both sides of the
> multiplication are constant values. However it is best to refactor this
> anyway, just to keep the open-coded math idiom out of code.
> 
> So, use the purpose specific kcalloc() function instead of the argument
> size * count in the kzalloc() function.
> 
> Also, remove the unnecessary initialization of the sqp_tbl variable
> since it is set a few lines later.
> 
> [1] https://www.kernel.org/doc/html/v5.14/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments
> 
> Signed-off-by: Len Baker <len.baker@gmx.com>
> ---
>  drivers/infiniband/hw/bnxt_re/ib_verbs.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 

Thanks,
Reviewed-by: Leon Romanovsky <leonro@nvidia.com>

^ permalink raw reply	[relevance 7%]

* [PATCH] i3c/master/mipi-i3c-hci: Prefer struct_size over open coded arithmetic
@ 2021-09-05 14:40 12% Len Baker
  2021-09-06  4:30  7% ` Nicolas Pitre
  2021-09-13 17:39 12% ` Alexandre Belloni
  0 siblings, 2 replies; 200+ results
From: Len Baker @ 2021-09-05 14:40 UTC (permalink / raw)
  To: Boris Brezillon, Nicolas Pitre
  Cc: Len Baker, Kees Cook, linux-i3c, linux-hardening, linux-kernel

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 struct_size() helper to do the arithmetic instead of the
argument "size + count * size" in the kzalloc() function.

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

Signed-off-by: Len Baker <len.baker@gmx.com>
---
 drivers/i3c/master/mipi-i3c-hci/dma.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/i3c/master/mipi-i3c-hci/dma.c b/drivers/i3c/master/mipi-i3c-hci/dma.c
index af873a9be050..2990ac9eaade 100644
--- a/drivers/i3c/master/mipi-i3c-hci/dma.c
+++ b/drivers/i3c/master/mipi-i3c-hci/dma.c
@@ -223,7 +223,7 @@ static int hci_dma_init(struct i3c_hci *hci)
 	}
 	if (nr_rings > XFER_RINGS)
 		nr_rings = XFER_RINGS;
-	rings = kzalloc(sizeof(*rings) + nr_rings * sizeof(*rh), GFP_KERNEL);
+	rings = kzalloc(struct_size(rings, headers, nr_rings), GFP_KERNEL);
 	if (!rings)
 		return -ENOMEM;
 	hci->io_data = rings;
--
2.25.1


^ permalink raw reply related	[relevance 12%]

* [PATCH] tifm: Prefer struct_size over open coded arithmetic
@ 2021-09-05 15:37 12% Len Baker
  0 siblings, 0 replies; 200+ results
From: Len Baker @ 2021-09-05 15:37 UTC (permalink / raw)
  To: Alex Dubov, Arnd Bergmann, Greg Kroah-Hartman
  Cc: Len Baker, Kees Cook, linux-hardening, linux-kernel

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 struct_size() helper to do the arithmetic instead of the
argument "size + size * count" in the kzalloc() function.

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

Signed-off-by: Len Baker <len.baker@gmx.com>
---
 drivers/misc/tifm_core.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/misc/tifm_core.c b/drivers/misc/tifm_core.c
index 667e574a7df2..9babf171a035 100644
--- a/drivers/misc/tifm_core.c
+++ b/drivers/misc/tifm_core.c
@@ -177,8 +177,7 @@ struct tifm_adapter *tifm_alloc_adapter(unsigned int num_sockets,
 {
 	struct tifm_adapter *fm;

-	fm = kzalloc(sizeof(struct tifm_adapter)
-		     + sizeof(struct tifm_dev*) * num_sockets, GFP_KERNEL);
+	fm = kzalloc(struct_size(fm, sockets, num_sockets), GFP_KERNEL);
 	if (fm) {
 		fm->dev.class = &tifm_adapter_class;
 		fm->dev.parent = dev;
--
2.25.1


^ permalink raw reply related	[relevance 12%]

* [PATCH] serial: 8250_pci: Prefer struct_size over open coded arithmetic
@ 2021-09-05 15:57 12% Len Baker
  2021-09-05 16:13  7% ` Andy Shevchenko
  0 siblings, 1 reply; 200+ results
From: Len Baker @ 2021-09-05 15:57 UTC (permalink / raw)
  To: Greg Kroah-Hartman, Jiri Slaby
  Cc: Len Baker, Kees Cook, Maciej W. Rozycki, Andy Shevchenko,
	Mario Kleiner, Geert Uytterhoeven, Randy Wright,
	Christian Gmeiner, Tobias Diedrich, YueHaibing, linux-serial,
	linux-hardening, linux-kernel

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 struct_size() helper to do the arithmetic instead of the
argument "size + size * count" in the kzalloc() function.

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

Signed-off-by: Len Baker <len.baker@gmx.com>
---
 drivers/tty/serial/8250/8250_pci.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/tty/serial/8250/8250_pci.c b/drivers/tty/serial/8250/8250_pci.c
index a808c283883e..b97ade35d4a3 100644
--- a/drivers/tty/serial/8250/8250_pci.c
+++ b/drivers/tty/serial/8250/8250_pci.c
@@ -3981,9 +3981,7 @@ pciserial_init_ports(struct pci_dev *dev, const struct pciserial_board *board)
 			nr_ports = rc;
 	}

-	priv = kzalloc(sizeof(struct serial_private) +
-		       sizeof(unsigned int) * nr_ports,
-		       GFP_KERNEL);
+	priv = kzalloc(struct_size(priv, line, nr_ports), GFP_KERNEL);
 	if (!priv) {
 		priv = ERR_PTR(-ENOMEM);
 		goto err_deinit;
--
2.25.1


^ permalink raw reply related	[relevance 12%]

* Re: [PATCH] serial: 8250_pci: Prefer struct_size over open coded arithmetic
  2021-09-05 15:57 12% [PATCH] serial: 8250_pci: " Len Baker
@ 2021-09-05 16:13  7% ` Andy Shevchenko
  0 siblings, 0 replies; 200+ results
From: Andy Shevchenko @ 2021-09-05 16:13 UTC (permalink / raw)
  To: Len Baker
  Cc: Greg Kroah-Hartman, Jiri Slaby, Kees Cook, Maciej W. Rozycki,
	Andy Shevchenko, Mario Kleiner, Geert Uytterhoeven, Randy Wright,
	Christian Gmeiner, Tobias Diedrich, YueHaibing,
	open list:SERIAL DRIVERS, linux-hardening,
	Linux Kernel Mailing List

On Sun, Sep 5, 2021 at 6:58 PM Len Baker <len.baker@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 struct_size() helper to do the arithmetic instead of the
> argument "size + size * count" in the kzalloc() function.

Makes sense
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>

> [1] https://www.kernel.org/doc/html/v5.14/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments
>
> Signed-off-by: Len Baker <len.baker@gmx.com>
> ---
>  drivers/tty/serial/8250/8250_pci.c | 4 +---
>  1 file changed, 1 insertion(+), 3 deletions(-)
>
> diff --git a/drivers/tty/serial/8250/8250_pci.c b/drivers/tty/serial/8250/8250_pci.c
> index a808c283883e..b97ade35d4a3 100644
> --- a/drivers/tty/serial/8250/8250_pci.c
> +++ b/drivers/tty/serial/8250/8250_pci.c
> @@ -3981,9 +3981,7 @@ pciserial_init_ports(struct pci_dev *dev, const struct pciserial_board *board)
>                         nr_ports = rc;
>         }
>
> -       priv = kzalloc(sizeof(struct serial_private) +
> -                      sizeof(unsigned int) * nr_ports,
> -                      GFP_KERNEL);
> +       priv = kzalloc(struct_size(priv, line, nr_ports), GFP_KERNEL);
>         if (!priv) {
>                 priv = ERR_PTR(-ENOMEM);
>                 goto err_deinit;
> --
> 2.25.1
>


-- 
With Best Regards,
Andy Shevchenko

^ permalink raw reply	[relevance 7%]

* Re: [PATCH] i3c/master/mipi-i3c-hci: Prefer struct_size over open coded arithmetic
  2021-09-05 14:40 12% [PATCH] i3c/master/mipi-i3c-hci: Prefer struct_size " Len Baker
@ 2021-09-06  4:30  7% ` Nicolas Pitre
  2021-09-13 17:39 12% ` Alexandre Belloni
  1 sibling, 0 replies; 200+ results
From: Nicolas Pitre @ 2021-09-06  4:30 UTC (permalink / raw)
  To: Len Baker
  Cc: Boris Brezillon, Kees Cook, linux-i3c, linux-hardening, linux-kernel

On Sun, 5 Sep 2021, Len Baker 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 struct_size() helper to do the arithmetic instead of the
> argument "size + count * size" in the kzalloc() function.
> 
> [1] https://www.kernel.org/doc/html/v5.14/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments
> 
> Signed-off-by: Len Baker <len.baker@gmx.com>

Acked-by: Nicolas Pitre <npitre@baylibre.com>


> ---
>  drivers/i3c/master/mipi-i3c-hci/dma.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/i3c/master/mipi-i3c-hci/dma.c b/drivers/i3c/master/mipi-i3c-hci/dma.c
> index af873a9be050..2990ac9eaade 100644
> --- a/drivers/i3c/master/mipi-i3c-hci/dma.c
> +++ b/drivers/i3c/master/mipi-i3c-hci/dma.c
> @@ -223,7 +223,7 @@ static int hci_dma_init(struct i3c_hci *hci)
>  	}
>  	if (nr_rings > XFER_RINGS)
>  		nr_rings = XFER_RINGS;
> -	rings = kzalloc(sizeof(*rings) + nr_rings * sizeof(*rh), GFP_KERNEL);
> +	rings = kzalloc(struct_size(rings, headers, nr_rings), GFP_KERNEL);
>  	if (!rings)
>  		return -ENOMEM;
>  	hci->io_data = rings;
> --
> 2.25.1
> 
> 

^ permalink raw reply	[relevance 7%]

* Re: [PATCH] cpufreq: powernow: Prefer kcalloc over open coded arithmetic
  2021-09-04 15:16 12% [PATCH] cpufreq: powernow: " Len Baker
@ 2021-09-06 17:05  7% ` Rafael J. Wysocki
  0 siblings, 0 replies; 200+ results
From: Rafael J. Wysocki @ 2021-09-06 17:05 UTC (permalink / raw)
  To: Len Baker
  Cc: Rafael J. Wysocki, Viresh Kumar, Kees Cook, Linux PM,
	linux-hardening, Linux Kernel Mailing List

On Sat, Sep 4, 2021 at 5:16 PM Len Baker <len.baker@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.
>
> [1] https://www.kernel.org/doc/html/v5.14/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments
>
> Signed-off-by: Len Baker <len.baker@gmx.com>

I'm assuming that this patch will be picked up by the powerpc arch maintainers.

> ---
>  drivers/cpufreq/powernow-k7.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/cpufreq/powernow-k7.c b/drivers/cpufreq/powernow-k7.c
> index 5d515fc34836..a9d2c7bae235 100644
> --- a/drivers/cpufreq/powernow-k7.c
> +++ b/drivers/cpufreq/powernow-k7.c
> @@ -174,8 +174,8 @@ static int get_ranges(unsigned char *pst)
>         unsigned int speed;
>         u8 fid, vid;
>
> -       powernow_table = kzalloc((sizeof(*powernow_table) *
> -                               (number_scales + 1)), GFP_KERNEL);
> +       powernow_table = kcalloc(number_scales + 1, sizeof(*powernow_table),
> +                                GFP_KERNEL);
>         if (!powernow_table)
>                 return -ENOMEM;
>
> --
> 2.25.1
>

^ permalink raw reply	[relevance 7%]

* Re: [PATCH] RDMA/bnxt_re: Prefer kcalloc over open coded arithmetic
  2021-09-05 10:21  7% ` Leon Romanovsky
@ 2021-09-07 14:12  7%   ` Selvin Xavier
  0 siblings, 0 replies; 200+ results
From: Selvin Xavier @ 2021-09-07 14:12 UTC (permalink / raw)
  To: Leon Romanovsky
  Cc: Len Baker, Naresh Kumar PBS, Doug Ledford, Jason Gunthorpe,
	Kees Cook, linux-rdma, linux-hardening, linux-kernel

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

On Sun, Sep 5, 2021 at 3:51 PM Leon Romanovsky <leon@kernel.org> wrote:
>
> On Sun, Sep 05, 2021 at 10:18:12AM +0200, Len Baker 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.
> >
> > In this case this is not actually dynamic sizes: both sides of the
> > multiplication are constant values. However it is best to refactor this
> > anyway, just to keep the open-coded math idiom out of code.
> >
> > So, use the purpose specific kcalloc() function instead of the argument
> > size * count in the kzalloc() function.
> >
> > Also, remove the unnecessary initialization of the sqp_tbl variable
> > since it is set a few lines later.
> >
> > [1] https://www.kernel.org/doc/html/v5.14/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments
> >
> > Signed-off-by: Len Baker <len.baker@gmx.com>
> > ---
> >  drivers/infiniband/hw/bnxt_re/ib_verbs.c | 4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> >
>
> Thanks,
> Reviewed-by: Leon Romanovsky <leonro@nvidia.com>
Acked-by: Selvin Xavier <selvin.xavier@broadcom.com>

[-- Attachment #2: S/MIME Cryptographic Signature --]
[-- Type: application/pkcs7-signature, Size: 4224 bytes --]

^ permalink raw reply	[relevance 7%]

* Re: [PATCH] scsi: elx: libefc: Prefer kcalloc over open coded arithmetic
  2021-09-05  6:24 12% [PATCH] scsi: elx: libefc: " Len Baker
@ 2021-09-07 16:55  7% ` James Smart
  2021-09-22  4:45 12% ` Martin K. Petersen
  1 sibling, 0 replies; 200+ results
From: James Smart @ 2021-09-07 16:55 UTC (permalink / raw)
  To: Len Baker, James Smart, Ram Vegesna, James E.J. Bottomley,
	Martin K. Petersen
  Cc: Kees Cook, Hannes Reinecke, linux-scsi, target-devel,
	linux-hardening, linux-kernel

On 9/4/2021 11:24 PM, Len Baker 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.
> 
> [1] https://www.kernel.org/doc/html/v5.14/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments
> 
> Signed-off-by: Len Baker <len.baker@gmx.com>

Looks good.  Thanks

Reviewed-by: James Smart <jsmart2021@gmail.com>

-- james

^ permalink raw reply	[relevance 7%]

* Re: [PATCH] drm/radeon: Prefer kcalloc over open coded arithmetic
  2021-09-04 15:41 11% [PATCH] drm/radeon: " Len Baker
@ 2021-09-07 17:00  7% ` Alex Deucher
  0 siblings, 0 replies; 200+ results
From: Alex Deucher @ 2021-09-07 17:00 UTC (permalink / raw)
  To: Len Baker
  Cc: Alex Deucher, Christian König, Pan, Xinhui, David Airlie,
	Daniel Vetter, Kees Cook, amd-gfx list,
	Maling list - DRI developers, linux-hardening, LKML

Applied.  Thanks!

Alex

On Sat, Sep 4, 2021 at 11:41 AM Len Baker <len.baker@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, refactor the code a bit to use the purpose specific kcalloc()
> function instead of the calculated size argument in the kzalloc()
> function.
>
> [1] https://www.kernel.org/doc/html/v5.14/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments
>
> Signed-off-by: Len Baker <len.baker@gmx.com>
> ---
>  drivers/gpu/drm/radeon/r600_dpm.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/radeon/r600_dpm.c b/drivers/gpu/drm/radeon/r600_dpm.c
> index 35b77c944701..fd4226b99862 100644
> --- a/drivers/gpu/drm/radeon/r600_dpm.c
> +++ b/drivers/gpu/drm/radeon/r600_dpm.c
> @@ -820,12 +820,12 @@ union fan_info {
>  static int r600_parse_clk_voltage_dep_table(struct radeon_clock_voltage_dependency_table *radeon_table,
>                                             ATOM_PPLIB_Clock_Voltage_Dependency_Table *atom_table)
>  {
> -       u32 size = atom_table->ucNumEntries *
> -               sizeof(struct radeon_clock_voltage_dependency_entry);
>         int i;
>         ATOM_PPLIB_Clock_Voltage_Dependency_Record *entry;
>
> -       radeon_table->entries = kzalloc(size, GFP_KERNEL);
> +       radeon_table->entries = kcalloc(atom_table->ucNumEntries,
> +                                       sizeof(struct radeon_clock_voltage_dependency_entry),
> +                                       GFP_KERNEL);
>         if (!radeon_table->entries)
>                 return -ENOMEM;
>
> --
> 2.25.1
>

^ permalink raw reply	[relevance 7%]

* Re: [PATCH] RDMA/bnxt_re: Prefer kcalloc over open coded arithmetic
  2021-09-05  8:18 12% [PATCH] RDMA/bnxt_re: " Len Baker
  2021-09-05 10:21  7% ` Leon Romanovsky
@ 2021-09-08 11:44  7% ` Jason Gunthorpe
  1 sibling, 0 replies; 200+ results
From: Jason Gunthorpe @ 2021-09-08 11:44 UTC (permalink / raw)
  To: Len Baker
  Cc: Selvin Xavier, Naresh Kumar PBS, Doug Ledford, Kees Cook,
	linux-rdma, linux-hardening, linux-kernel

On Sun, Sep 05, 2021 at 10:18:12AM +0200, Len Baker 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.
> 
> In this case this is not actually dynamic sizes: both sides of the
> multiplication are constant values. However it is best to refactor this
> anyway, just to keep the open-coded math idiom out of code.
> 
> So, use the purpose specific kcalloc() function instead of the argument
> size * count in the kzalloc() function.
> 
> Also, remove the unnecessary initialization of the sqp_tbl variable
> since it is set a few lines later.
> 
> [1] https://www.kernel.org/doc/html/v5.14/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments
> 
> Signed-off-by: Len Baker <len.baker@gmx.com>
> Reviewed-by: Leon Romanovsky <leonro@nvidia.com>
> Acked-by: Selvin Xavier <selvin.xavier@broadcom.com>
> ---
>  drivers/infiniband/hw/bnxt_re/ib_verbs.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)

Applied to for-rc, thanks

Jason

^ permalink raw reply	[relevance 7%]

* [GIT PULL] Please pull RDMA subsystem changes
@ 2021-09-08 23:40  5% Jason Gunthorpe
  0 siblings, 0 replies; 200+ results
From: Jason Gunthorpe @ 2021-09-08 23:40 UTC (permalink / raw)
  To: Linus Torvalds, Doug Ledford; +Cc: linux-rdma, linux-kernel

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

Hi Linus,

I don't usually send a second PR in the merge window, but the fix to
mlx5 is significant enough that it should start going through the
process ASAP. Along with it comes some of the usual -rc stuff that
would normally wait for a -rc2 or so.

Thanks,
Jason

The following changes since commit 6a217437f9f5482a3f6f2dc5fcd27cf0f62409ac:

  Merge branch 'sg_nents' into rdma.git for-next (2021-08-30 09:49:59 -0300)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma.git tags/for-linus

for you to fetch changes up to 2169b908894df2ce83e7eb4a399d3224b2635126:

  IB/hfi1: make hist static (2021-09-08 08:33:04 -0300)

----------------------------------------------------------------
RDMA v5.15 merge window 2nd Pull Request

An important error case regression fixes in mlx5:

- Wrong size used when computing the error path smaller allocation request
  leads to corruption

- Confusing but ultimately harmless alignment mis-calculation

- Static checker warnings:
    Null pointer subtraction in qib
    kcalloc in bnxt_re
    Missing static on global variable in hfi1

----------------------------------------------------------------
Jason Gunthorpe (1):
      IB/qib: Fix null pointer subtraction compiler warning

Len Baker (1):
      RDMA/bnxt_re: Prefer kcalloc over open coded arithmetic

Niklas Schnelle (2):
      RDMA/mlx5: Fix number of allocated XLT entries
      RDMA/mlx5: Fix xlt_chunk_align calculation

chongjiapeng (1):
      IB/hfi1: make hist static

 drivers/infiniband/hw/bnxt_re/ib_verbs.c | 4 ++--
 drivers/infiniband/hw/hfi1/trace.c       | 2 +-
 drivers/infiniband/hw/mlx5/mr.c          | 4 ++--
 drivers/infiniband/hw/qib/qib_sysfs.c    | 4 +++-
 4 files changed, 8 insertions(+), 6 deletions(-)

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[relevance 5%]

* [PATCH] net: mana: Prefer struct_size over open coded arithmetic
@ 2021-09-11 10:28 12% Len Baker
  2021-09-11 13:36  7% ` Haiyang Zhang
  2021-09-18 13:20 12% ` Len Baker
  0 siblings, 2 replies; 200+ results
From: Len Baker @ 2021-09-11 10:28 UTC (permalink / raw)
  To: K. Y. Srinivasan, Haiyang Zhang, Stephen Hemminger, Wei Liu,
	Dexuan Cui, David S. Miller, Jakub Kicinski, Sumit Semwal,
	Christian König, Kees Cook
  Cc: Len Baker, Colin Ian King, linux-hardening, linux-hyperv, netdev,
	linux-kernel, linux-media, dri-devel, linaro-mm-sig

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 struct_size() helper to do the arithmetic instead of the
argument "size + count * size" in the kzalloc() function.

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

Signed-off-by: Len Baker <len.baker@gmx.com>
---
 drivers/net/ethernet/microsoft/mana/hw_channel.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/net/ethernet/microsoft/mana/hw_channel.c b/drivers/net/ethernet/microsoft/mana/hw_channel.c
index 1a923fd99990..0efdc6c3c32a 100644
--- a/drivers/net/ethernet/microsoft/mana/hw_channel.c
+++ b/drivers/net/ethernet/microsoft/mana/hw_channel.c
@@ -398,9 +398,7 @@ static int mana_hwc_alloc_dma_buf(struct hw_channel_context *hwc, u16 q_depth,
 	int err;
 	u16 i;

-	dma_buf = kzalloc(sizeof(*dma_buf) +
-			  q_depth * sizeof(struct hwc_work_request),
-			  GFP_KERNEL);
+	dma_buf = kzalloc(struct_size(dma_buf, reqs, q_depth), GFP_KERNEL);
 	if (!dma_buf)
 		return -ENOMEM;

--
2.25.1


^ permalink raw reply related	[relevance 12%]

* [PATCH] usb: ohci: Prefer struct_size over open coded arithmetic
@ 2021-09-11 11:26 12% Len Baker
  2021-09-11 15:46  7% ` Alan Stern
  0 siblings, 1 reply; 200+ results
From: Len Baker @ 2021-09-11 11:26 UTC (permalink / raw)
  To: Alan Stern, Greg Kroah-Hartman
  Cc: Len Baker, Kees Cook, linux-usb, linux-hardening, linux-kernel

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 struct_size() helper to do the arithmetic instead of the
argument "size + count * size" in the kzalloc() function.

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

Signed-off-by: Len Baker <len.baker@gmx.com>
---
 drivers/usb/host/ohci-hcd.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/usb/host/ohci-hcd.c b/drivers/usb/host/ohci-hcd.c
index 1f5e69314a17..666b1c665188 100644
--- a/drivers/usb/host/ohci-hcd.c
+++ b/drivers/usb/host/ohci-hcd.c
@@ -191,8 +191,7 @@ static int ohci_urb_enqueue (
 	}

 	/* allocate the private part of the URB */
-	urb_priv = kzalloc (sizeof (urb_priv_t) + size * sizeof (struct td *),
-			mem_flags);
+	urb_priv = kzalloc(struct_size(urb_priv, td, size), mem_flags);
 	if (!urb_priv)
 		return -ENOMEM;
 	INIT_LIST_HEAD (&urb_priv->pending);
--
2.25.1


^ permalink raw reply related	[relevance 12%]

* [PATCH] Input: omap-keypad - prefer struct_size over open coded arithmetic
@ 2021-09-11 11:27 12% Len Baker
  2021-09-14 21:49  7% ` Gustavo A. R. Silva
  0 siblings, 1 reply; 200+ results
From: Len Baker @ 2021-09-11 11:27 UTC (permalink / raw)
  To: Dmitry Torokhov
  Cc: Len Baker, Kees Cook, linux-hardening, linux-input, linux-kernel

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 struct_size() helper to do the arithmetic instead of the
argument "size + count * size" in the kzalloc() function.

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

Signed-off-by: Len Baker <len.baker@gmx.com>
---
 drivers/input/keyboard/omap-keypad.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/input/keyboard/omap-keypad.c b/drivers/input/keyboard/omap-keypad.c
index dbe836c7ff47..eb3a687796e7 100644
--- a/drivers/input/keyboard/omap-keypad.c
+++ b/drivers/input/keyboard/omap-keypad.c
@@ -190,8 +190,7 @@ static int omap_kp_probe(struct platform_device *pdev)
 	row_shift = get_count_order(pdata->cols);
 	keycodemax = pdata->rows << row_shift;

-	omap_kp = kzalloc(sizeof(struct omap_kp) +
-			keycodemax * sizeof(unsigned short), GFP_KERNEL);
+	omap_kp = kzalloc(struct_size(omap_kp, keymap, keycodemax), GFP_KERNEL);
 	input_dev = input_allocate_device();
 	if (!omap_kp || !input_dev) {
 		kfree(omap_kp);
--
2.25.1


^ permalink raw reply related	[relevance 12%]

* [PATCH] memstick: jmb38x_ms: Prefer struct_size over open coded arithmetic
@ 2021-09-11 13:19 12% Len Baker
  2021-09-14 11:23  7% ` Ulf Hansson
  0 siblings, 1 reply; 200+ results
From: Len Baker @ 2021-09-11 13:19 UTC (permalink / raw)
  To: Maxim Levitsky, Alex Dubov, Ulf Hansson
  Cc: Len Baker, Kees Cook, Tom Rix, linux-hardening, linux-mmc, linux-kernel

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 struct_size() helper to do the arithmetic instead of the
argument "size + count * size" in the kzalloc() function.

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

Signed-off-by: Len Baker <len.baker@gmx.com>
---
 drivers/memstick/host/jmb38x_ms.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/memstick/host/jmb38x_ms.c b/drivers/memstick/host/jmb38x_ms.c
index f9a93b0565e1..a7a0f0caea15 100644
--- a/drivers/memstick/host/jmb38x_ms.c
+++ b/drivers/memstick/host/jmb38x_ms.c
@@ -927,8 +927,7 @@ static int jmb38x_ms_probe(struct pci_dev *pdev,
 		goto err_out_int;
 	}

-	jm = kzalloc(sizeof(struct jmb38x_ms)
-		     + cnt * sizeof(struct memstick_host *), GFP_KERNEL);
+	jm = kzalloc(struct_size(jm, hosts, cnt), GFP_KERNEL);
 	if (!jm) {
 		rc = -ENOMEM;
 		goto err_out_int;
--
2.25.1


^ permalink raw reply related	[relevance 12%]

* RE: [PATCH] net: mana: Prefer struct_size over open coded arithmetic
  2021-09-11 10:28 12% [PATCH] net: mana: Prefer struct_size over open coded arithmetic Len Baker
@ 2021-09-11 13:36  7% ` Haiyang Zhang
  2021-09-18 13:20 12% ` Len Baker
  1 sibling, 0 replies; 200+ results
From: Haiyang Zhang @ 2021-09-11 13:36 UTC (permalink / raw)
  To: Len Baker, KY Srinivasan, Stephen Hemminger, Wei Liu, Dexuan Cui,
	David S. Miller, Jakub Kicinski, Sumit Semwal,
	Christian König, Kees Cook
  Cc: Colin Ian King, linux-hardening, linux-hyperv, netdev,
	linux-kernel, linux-media, dri-devel, linaro-mm-sig



> -----Original Message-----
> From: Len Baker <len.baker@gmx.com>
> Sent: Saturday, September 11, 2021 6:28 AM
> To: KY Srinivasan <kys@microsoft.com>; Haiyang Zhang
> <haiyangz@microsoft.com>; Stephen Hemminger <sthemmin@microsoft.com>;
> Wei Liu <wei.liu@kernel.org>; Dexuan Cui <decui@microsoft.com>; David S.
> Miller <davem@davemloft.net>; Jakub Kicinski <kuba@kernel.org>; Sumit
> Semwal <sumit.semwal@linaro.org>; Christian König
> <christian.koenig@amd.com>; Kees Cook <keescook@chromium.org>
> Cc: Len Baker <len.baker@gmx.com>; Colin Ian King
> <colin.king@canonical.com>; linux-hardening@vger.kernel.org; linux-
> hyperv@vger.kernel.org; netdev@vger.kernel.org; linux-
> kernel@vger.kernel.org; linux-media@vger.kernel.org; dri-
> devel@lists.freedesktop.org; linaro-mm-sig@lists.linaro.org
> Subject: [PATCH] net: mana: Prefer struct_size over open coded
> arithmetic
> 
> [Some people who received this message don't often get email from
> len.baker@gmx.com. Learn why this is important at
> http://aka.ms/LearnAboutSenderIdentification.]
> 
> 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 struct_size() helper to do the arithmetic instead of the
> argument "size + count * size" in the kzalloc() function.
> 
> [1]
> https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.ke
> rnel.org%2Fdoc%2Fhtml%2Fv5.14%2Fprocess%2Fdeprecated.html%23open-coded-
> arithmetic-in-allocator-
> arguments&amp;data=04%7C01%7Chaiyangz%40microsoft.com%7C1bf83c1204a34dae
> a6d308d9750eef16%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C6376695297
> 12931146%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJ
> BTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=PbYpBtyYfVfwwlxWSQx%2FiARc9
> mhb0J7bfD46%2F9q5oTw%3D&amp;reserved=0
> 
> Signed-off-by: Len Baker <len.baker@gmx.com>
> ---
>  drivers/net/ethernet/microsoft/mana/hw_channel.c | 4 +---
>  1 file changed, 1 insertion(+), 3 deletions(-)
> 
> diff --git a/drivers/net/ethernet/microsoft/mana/hw_channel.c
> b/drivers/net/ethernet/microsoft/mana/hw_channel.c
> index 1a923fd99990..0efdc6c3c32a 100644
> --- a/drivers/net/ethernet/microsoft/mana/hw_channel.c
> +++ b/drivers/net/ethernet/microsoft/mana/hw_channel.c
> @@ -398,9 +398,7 @@ static int mana_hwc_alloc_dma_buf(struct
> hw_channel_context *hwc, u16 q_depth,
>         int err;
>         u16 i;
> 
> -       dma_buf = kzalloc(sizeof(*dma_buf) +
> -                         q_depth * sizeof(struct hwc_work_request),
> -                         GFP_KERNEL);
> +       dma_buf = kzalloc(struct_size(dma_buf, reqs, q_depth),
> GFP_KERNEL);

Thanks!

Reviewed-by: Haiyang Zhang <haiyangz@microsoft.com>


^ permalink raw reply	[relevance 7%]

* Re: [PATCH] usb: ohci: Prefer struct_size over open coded arithmetic
  2021-09-11 11:26 12% [PATCH] usb: ohci: " Len Baker
@ 2021-09-11 15:46  7% ` Alan Stern
  0 siblings, 0 replies; 200+ results
From: Alan Stern @ 2021-09-11 15:46 UTC (permalink / raw)
  To: Len Baker
  Cc: Greg Kroah-Hartman, Kees Cook, linux-usb, linux-hardening, linux-kernel

On Sat, Sep 11, 2021 at 01:26:31PM +0200, Len Baker 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 struct_size() helper to do the arithmetic instead of the
> argument "size + count * size" in the kzalloc() function.
> 
> [1] https://www.kernel.org/doc/html/v5.14/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments
> 
> Signed-off-by: Len Baker <len.baker@gmx.com>
> ---

Acked-by: Alan Stern <stern@rowland.harvard.edu>

>  drivers/usb/host/ohci-hcd.c | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
> 
> diff --git a/drivers/usb/host/ohci-hcd.c b/drivers/usb/host/ohci-hcd.c
> index 1f5e69314a17..666b1c665188 100644
> --- a/drivers/usb/host/ohci-hcd.c
> +++ b/drivers/usb/host/ohci-hcd.c
> @@ -191,8 +191,7 @@ static int ohci_urb_enqueue (
>  	}
> 
>  	/* allocate the private part of the URB */
> -	urb_priv = kzalloc (sizeof (urb_priv_t) + size * sizeof (struct td *),
> -			mem_flags);
> +	urb_priv = kzalloc(struct_size(urb_priv, td, size), mem_flags);
>  	if (!urb_priv)
>  		return -ENOMEM;
>  	INIT_LIST_HEAD (&urb_priv->pending);
> --
> 2.25.1
> 

^ permalink raw reply	[relevance 7%]

* [PATCH] nfp: Prefer struct_size over open coded arithmetic
@ 2021-09-12 13:10 12% Len Baker
  2021-09-12 19:07  7% ` Gustavo A. R. Silva
  2021-09-13  8:31  7% ` Simon Horman
  0 siblings, 2 replies; 200+ results
From: Len Baker @ 2021-09-12 13:10 UTC (permalink / raw)
  To: Simon Horman, Jakub Kicinski, David S. Miller
  Cc: Len Baker, Kees Cook, Gustavo A. R. Silva, oss-drivers, netdev,
	linux-hardening, linux-kernel

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 struct_size() helper to do the arithmetic instead of the
argument "size + count * size" in the kzalloc() function.

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

Signed-off-by: Len Baker <len.baker@gmx.com>
---
 drivers/net/ethernet/netronome/nfp/nfp_net_repr.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/netronome/nfp/nfp_net_repr.c b/drivers/net/ethernet/netronome/nfp/nfp_net_repr.c
index 3b8e675087de..369f6ae700c7 100644
--- a/drivers/net/ethernet/netronome/nfp/nfp_net_repr.c
+++ b/drivers/net/ethernet/netronome/nfp/nfp_net_repr.c
@@ -499,8 +499,7 @@ struct nfp_reprs *nfp_reprs_alloc(unsigned int num_reprs)
 {
 	struct nfp_reprs *reprs;

-	reprs = kzalloc(sizeof(*reprs) +
-			num_reprs * sizeof(struct net_device *), GFP_KERNEL);
+	reprs = kzalloc(struct_size(reprs, reprs, num_reprs), GFP_KERNEL);
 	if (!reprs)
 		return NULL;
 	reprs->num_reprs = num_reprs;
--
2.25.1


^ permalink raw reply related	[relevance 12%]

* [PATCH] i3c/master/mipi-i3c-hci: Prefer kcalloc over open coded arithmetic
@ 2021-09-12 15:51 12% Len Baker
  2021-09-13  1:54  7% ` Nicolas Pitre
  2021-09-13 17:39 12% ` Alexandre Belloni
  0 siblings, 2 replies; 200+ results
From: Len Baker @ 2021-09-12 15:51 UTC (permalink / raw)
  To: Alexandre Belloni
  Cc: Len Baker, Nicolas Pitre, Boris Brezillon, Kees Cook, linux-i3c,
	linux-hardening, linux-kernel

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/v5.14/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments

Signed-off-by: Len Baker <len.baker@gmx.com>
---
 drivers/i3c/master/mipi-i3c-hci/hci.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/i3c/master/mipi-i3c-hci/hci.h b/drivers/i3c/master/mipi-i3c-hci/hci.h
index 80beb1d5be8f..f109923f6c3f 100644
--- a/drivers/i3c/master/mipi-i3c-hci/hci.h
+++ b/drivers/i3c/master/mipi-i3c-hci/hci.h
@@ -98,7 +98,7 @@ struct hci_xfer {

 static inline struct hci_xfer *hci_alloc_xfer(unsigned int n)
 {
-	return kzalloc(sizeof(struct hci_xfer) * n, GFP_KERNEL);
+	return kcalloc(n, sizeof(struct hci_xfer), GFP_KERNEL);
 }

 static inline void hci_free_xfer(struct hci_xfer *xfer, unsigned int n)
--
2.25.1


^ permalink raw reply related	[relevance 12%]

* Re: [PATCH] nfp: Prefer struct_size over open coded arithmetic
  2021-09-12 13:10 12% [PATCH] nfp: " Len Baker
@ 2021-09-12 19:07  7% ` Gustavo A. R. Silva
  2021-09-13  8:31  7% ` Simon Horman
  1 sibling, 0 replies; 200+ results
From: Gustavo A. R. Silva @ 2021-09-12 19:07 UTC (permalink / raw)
  To: Len Baker
  Cc: Simon Horman, Jakub Kicinski, David S. Miller, Kees Cook,
	oss-drivers, netdev, linux-hardening, linux-kernel

On Sun, Sep 12, 2021 at 03:10:57PM +0200, Len Baker 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 struct_size() helper to do the arithmetic instead of the
> argument "size + count * size" in the kzalloc() function.
> 
> [1] https://www.kernel.org/doc/html/v5.14/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments
> 
> Signed-off-by: Len Baker <len.baker@gmx.com>

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

I'll take this in my -next tree. :)

Thanks, Len.
--
Gustavo

> ---
>  drivers/net/ethernet/netronome/nfp/nfp_net_repr.c | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
> 
> diff --git a/drivers/net/ethernet/netronome/nfp/nfp_net_repr.c b/drivers/net/ethernet/netronome/nfp/nfp_net_repr.c
> index 3b8e675087de..369f6ae700c7 100644
> --- a/drivers/net/ethernet/netronome/nfp/nfp_net_repr.c
> +++ b/drivers/net/ethernet/netronome/nfp/nfp_net_repr.c
> @@ -499,8 +499,7 @@ struct nfp_reprs *nfp_reprs_alloc(unsigned int num_reprs)
>  {
>  	struct nfp_reprs *reprs;
> 
> -	reprs = kzalloc(sizeof(*reprs) +
> -			num_reprs * sizeof(struct net_device *), GFP_KERNEL);
> +	reprs = kzalloc(struct_size(reprs, reprs, num_reprs), GFP_KERNEL);
>  	if (!reprs)
>  		return NULL;
>  	reprs->num_reprs = num_reprs;
> --
> 2.25.1
> 

^ permalink raw reply	[relevance 7%]

* Re: [Intel-wired-lan] [PATCH] ice: Prefer kcalloc over open coded arithmetic
  2021-09-05  6:50 12% [PATCH] ice: " Len Baker
@ 2021-09-12 20:41  7% ` Gustavo A. R. Silva
  0 siblings, 0 replies; 200+ results
From: Gustavo A. R. Silva @ 2021-09-12 20:41 UTC (permalink / raw)
  To: Len Baker, Jesse Brandeburg, Tony Nguyen, David S. Miller,
	Jakub Kicinski
  Cc: Kees Cook, netdev, linux-kernel, intel-wired-lan, linux-hardening



On 9/5/21 01:50, Len Baker 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.
> 
> In this case this is not actually dynamic sizes: both sides of the
> multiplication are constant values. However it is best to refactor this
> anyway, just to keep the open-coded math idiom out of code.
> 
> So, use the purpose specific kcalloc() function instead of the argument
> size * count in the kzalloc() function.
> 
> [1] https://www.kernel.org/doc/html/v5.14/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments
> 
> Signed-off-by: Len Baker <len.baker@gmx.com>

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

BTW... Len, feel free to CC me on all your patches related to KSPP work. :)

Thanks
--
Gustavo

> ---
>  drivers/net/ethernet/intel/ice/ice_arfs.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/net/ethernet/intel/ice/ice_arfs.c b/drivers/net/ethernet/intel/ice/ice_arfs.c
> index 88d98c9e5f91..3071b8e79499 100644
> --- a/drivers/net/ethernet/intel/ice/ice_arfs.c
> +++ b/drivers/net/ethernet/intel/ice/ice_arfs.c
> @@ -513,7 +513,7 @@ void ice_init_arfs(struct ice_vsi *vsi)
>  	if (!vsi || vsi->type != ICE_VSI_PF)
>  		return;
> 
> -	arfs_fltr_list = kzalloc(sizeof(*arfs_fltr_list) * ICE_MAX_ARFS_LIST,
> +	arfs_fltr_list = kcalloc(ICE_MAX_ARFS_LIST, sizeof(*arfs_fltr_list),
>  				 GFP_KERNEL);
>  	if (!arfs_fltr_list)
>  		return;
> --
> 2.25.1
> 
> _______________________________________________
> Intel-wired-lan mailing list
> Intel-wired-lan@osuosl.org
> https://lists.osuosl.org/mailman/listinfo/intel-wired-lan
> 

^ permalink raw reply	[relevance 7%]

* Re: [PATCH] i3c/master/mipi-i3c-hci: Prefer kcalloc over open coded arithmetic
  2021-09-12 15:51 12% [PATCH] i3c/master/mipi-i3c-hci: Prefer kcalloc " Len Baker
@ 2021-09-13  1:54  7% ` Nicolas Pitre
  2021-09-13 17:39 12% ` Alexandre Belloni
  1 sibling, 0 replies; 200+ results
From: Nicolas Pitre @ 2021-09-13  1:54 UTC (permalink / raw)
  To: Len Baker
  Cc: Alexandre Belloni, Boris Brezillon, Kees Cook, linux-i3c,
	linux-hardening, linux-kernel

On Sun, 12 Sep 2021, Len Baker 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/v5.14/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments
> 
> Signed-off-by: Len Baker <len.baker@gmx.com>

Acked-by: Nicolas Pitre <npitre@baylibre.com>

> ---
>  drivers/i3c/master/mipi-i3c-hci/hci.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/i3c/master/mipi-i3c-hci/hci.h b/drivers/i3c/master/mipi-i3c-hci/hci.h
> index 80beb1d5be8f..f109923f6c3f 100644
> --- a/drivers/i3c/master/mipi-i3c-hci/hci.h
> +++ b/drivers/i3c/master/mipi-i3c-hci/hci.h
> @@ -98,7 +98,7 @@ struct hci_xfer {
> 
>  static inline struct hci_xfer *hci_alloc_xfer(unsigned int n)
>  {
> -	return kzalloc(sizeof(struct hci_xfer) * n, GFP_KERNEL);
> +	return kcalloc(n, sizeof(struct hci_xfer), GFP_KERNEL);
>  }
> 
>  static inline void hci_free_xfer(struct hci_xfer *xfer, unsigned int n)
> --
> 2.25.1
> 
> 

^ permalink raw reply	[relevance 7%]

* linux-next: Tree for Sep 13
@ 2021-09-13  2:36  1% Stephen Rothwell
  0 siblings, 0 replies; 200+ results
From: Stephen Rothwell @ 2021-09-13  2:36 UTC (permalink / raw)
  To: Linux Next Mailing List; +Cc: Linux Kernel Mailing List

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

Hi all,

Changes since 20210910:

Non-merge commits (relative to Linus' tree): 840
 1038 files changed, 60040 insertions(+), 8979 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 are also quilt-import.log and merge.log
files 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, 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 334 trees (counting Linus' and 90 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 (f306b90c69ce Merge tag 'smp-urgent-2021-09-12' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip)
Merging fixes/fixes (a9c9a6f741cd Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi)
Merging kbuild-current/fixes (926de8c4326c Merge tag 'acpi-5.15-rc1-3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm)
Merging arc-current/for-curr (7c60610d4767 Linux 5.14-rc6)
Merging arm-current/fixes (463dbba4d189 ARM: 9104/2: Fix Keystone 2 kernel mapping regression)
Merging arm64-fixes/for-next/fixes (3eb9cdffb397 Partially revert "arm64/mm: drop HAVE_ARCH_PFN_VALID")
Merging arm-soc-fixes/arm/fixes (6c35ca069741 Merge tag 'reset-fixes-for-v5.14' of git://git.pengutronix.de/pza/linux into arm/fixes)
Merging drivers-memory-fixes/fixes (e73f0f0ee754 Linux 5.14-rc1)
Merging m68k-current/for-linus (87d93029fe83 m68k: Fix asm register constraints for atomic ops)
Merging powerpc-fixes/fixes (787c70f2f999 powerpc/64s: Fix scv implicit soft-mask table for relocated kernels)
Merging s390-fixes/fixes (c7a5238ef68b Merge tag 's390-5.15-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux)
Merging sparc/master (05a59d79793d Merge git://git.kernel.org:/pub/scm/linux/kernel/git/netdev/net)
Merging fscrypt-current/for-stable (d19d8d345eec fscrypt: fix inline encryption not used on new files)
Merging net/master (f11ee2ad25b2 net: mana: Prefer struct_size over open coded arithmetic)
Merging bpf/master (2f1aaf3ea666 bpf, mm: Fix lockdep warning triggered by stack_map_get_build_id_offset())
Merging ipsec/master (3c10ffddc61f net: xfrm: fix shift-out-of-bounds in xfrm_get_default)
Merging netfilter/master (276aae377206 net: stmmac: fix system hang caused by eee_ctrl_timer during suspend/resume)
Merging ipvs/master (276aae377206 net: stmmac: fix system hang caused by eee_ctrl_timer during suspend/resume)
Merging wireless-drivers/master (e4457a45b41c iwlwifi: fix printk format warnings in uefi.c)
Merging mac80211/master (e011912651bd net: ni65: Avoid typecast of pointer to u32)
Merging rdma-fixes/for-rc (2169b908894d IB/hfi1: make hist static)
Merging sound-current/for-linus (25fca8c9e0d7 Merge tag 'asoc-fix-v5.15-rc1' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus)
Merging sound-asoc-fixes/for-linus (9bcfd65e8c26 Merge remote-tracking branch 'asoc/for-5.15' into asoc-linus)
Merging regmap-fixes/for-linus (e22ce8eb631b Linux 5.14-rc7)
Merging regulator-fixes/for-linus (7cb623f775d5 Merge remote-tracking branch 'regulator/for-5.15' into regulator-linus)
Merging spi-fixes/for-linus (2b75df2d9c87 Merge remote-tracking branch 'spi/for-5.15' into spi-linus)
Merging pci-current/for-linus (045a9277b561 PCI/sysfs: Use correct variable for the legacy_mem sysfs object)
Merging driver-core.current/driver-core-linus (78e709522d2c Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost)
Merging tty.current/tty-linus (78e709522d2c Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost)
Merging usb.current/usb-linus (78e709522d2c Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost)
Merging usb-gadget-fixes/fixes (e49d033bddf5 Linux 5.12-rc6)
Merging usb-serial-fixes/usb-linus (dcf097e7d21f USB: serial: pl2303: fix GL type detection)
Merging usb-chipidea-fixes/for-usb-fixes (98a1373a2de9 usb: cdns3: fix race condition before setting doorbell)
Merging phy/fixes (e73f0f0ee754 Linux 5.14-rc1)
Merging staging.current/staging-linus (78e709522d2c Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost)
Merging iio-fixes/fixes-togreg (fa31da54088b iio: adc: ad7793: Fix IRQ flag)
Merging char-misc.current/char-misc-linus (ba1dc7f273c7 Merge tag 'char-misc-5.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc)
Merging soundwire-fixes/fixes (e73f0f0ee754 Linux 5.14-rc1)
Merging thunderbolt-fixes/fixes (7d2a07b76933 Linux 5.14)
Merging input-current/for-linus (0c5483a5778f Input: analog - always use ktime functions)
Merging crypto-current/master (6ae51ffe5e76 crypto: sha512 - remove imaginary and mystifying clearing of variables)
Merging vfio-fixes/for-linus (dc51ff91cf2d vfio/platform: fix module_put call in error flow)
Merging kselftest-fixes/fixes (567c39047dbe selftests/sgx: Fix Q1 and Q2 calculation in sigstruct.c)
Merging modules-fixes/modules-linus (055f23b74b20 module: check for exit sections in layout_sections() instead of module_init_section())
Merging dmaengine-fixes/fixes (7199ddede9f0 dmaengine: imx-dma: configure the generic DMA type to make it work)
Merging backlight-fixes/for-backlight-fixes (a38fd8748464 Linux 5.12-rc2)
Merging mtd-fixes/mtd/fixes (b48027083a78 mtd: rawnand: Fix probe failure due to of_get_nand_secure_regions())
Merging mfd-fixes/for-mfd-fixes (a61f4661fba4 mfd: intel_quark_i2c_gpio: Revert "Constify static struct resources")
Merging v4l-dvb-fixes/fixes (3ad02c27d89d media: s5p-jpeg: rename JPEG marker constants to prevent build warnings)
Merging reset-fixes/reset/fixes (ed104ca4bd9c reset: reset-zynqmp: Fixed the argument data type)
Merging mips-fixes/mips-fixes (6aa32467299e MIPS: check return value of pgtable_pmd_page_ctor)
Merging at91-fixes/at91-fixes (6efb943b8616 Linux 5.13-rc1)
Merging omap-fixes/fixes (e879f855e590 bus: ti-sysc: Add break in switch statement in sysc_init_soc())
Merging kvm-fixes/master (7d2a07b76933 Linux 5.14)
Merging kvms390-fixes/master (cd4220d23bf3 KVM: selftests: do not require 64GB in set_memory_region_test)
Merging hwmon-fixes/hwmon (15d4ec3b12b5 hwmon: (k10temp) Remove residues of current and voltage)
Merging nvdimm-fixes/libnvdimm-fixes (32b2397c1e56 libnvdimm/pmem: Fix crash triggered when I/O in-flight during unbind)
Merging cxl-fixes/fixes (fae8817ae804 cxl/mem: Fix memory device capacity probing)
Merging btrfs-fixes/next-fixes (7f6fe94c91a4 Merge branch 'misc-5.15' into next-fixes)
Merging vfs-fixes/fixes (173e84953eaa fs: fix reporting supported extra file attributes for statx())
Merging dma-mapping-fixes/for-linus (18a3c5f7abfd Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost)
Merging i3c-fixes/i3c/fixes (fe07bfda2fb9 Linux 5.12-rc1)
Merging drivers-x86-fixes/fixes (1e35b8a7780a platform/x86: gigabyte-wmi: add support for B450M S2H V2)
Merging samsung-krzk-fixes/fixes (e73f0f0ee754 Linux 5.14-rc1)
Merging pinctrl-samsung-fixes/fixes (e73f0f0ee754 Linux 5.14-rc1)
Merging devicetree-fixes/dt/linus (094b147c7662 spi: dt-bindings: xilinx: Drop type reference on *-bits properties)
Merging scsi-fixes/fixes (02c6dcd543f8 scsi: core: Fix hang of freezing queue between blocking and running device)
Merging drm-fixes/drm-fixes (7d2a07b76933 Linux 5.14)
Merging amdgpu-fixes/drm-fixes (2c409ba81be2 drm/radeon: fix si_enable_smc_cac() failed issue)
Merging drm-intel-fixes/for-linux-next-fixes (7d2a07b76933 Linux 5.14)
Merging mmc-fixes/fixes (b81bede4d138 mmc: renesas_sdhi: fix regression with hard reset on old SDHIs)
Merging rtc-fixes/rtc-fixes (bd33335aa93d rtc: cmos: Disable irq around direct invocation of cmos_interrupt())
Merging gnss-fixes/gnss-linus (e73f0f0ee754 Linux 5.14-rc1)
Merging hyperv-fixes/hyperv-fixes (f1940d4e9cbe Drivers: hv: vmbus: Fix kernel crash upon unbinding a device from uio_hv_generic driver)
Merging soc-fsl-fixes/fix (c1e64c0aec8c soc: fsl: qe: fix static checker warning)
Merging risc-v-fixes/fixes (7d2a07b76933 Linux 5.14)
Merging pidfd-fixes/fixes (03ba0fe4d09f file: simplify logic in __close_range())
Merging fpga-fixes/fixes (1d345c3e5941 fpga: machxo2-spi: Fix missing error code in machxo2_write_complete())
Merging spdx/spdx-linus (78e709522d2c Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost)
Merging gpio-brgl-fixes/gpio/for-current (9b87f43537ac gpio: tqmx86: really make IRQ optional)
Merging gpio-intel-fixes/fixes (e73f0f0ee754 Linux 5.14-rc1)
Merging pinctrl-intel-fixes/fixes (2f658f7a3953 pinctrl: tigerlake: Fix GPIO mapping for newer version of software)
Merging erofs-fixes/fixes (0852b6ca941e erofs: fix 1 lcluster-sized pcluster for big pcluster)
Merging integrity-fixes/fixes (843385694721 evm: Fix a small race in init_desc())
Merging kunit-fixes/kunit-fixes (2734d6c1b1a0 Linux 5.14-rc2)
Merging ubifs-fixes/fixes (78c7d49f55d8 ubifs: journal: Make sure to not dirty twice for auth nodes)
Merging memblock-fixes/fixes (024591f9a6e0 arm: ioremap: don't abuse pfn_valid() to check if pfn is in RAM)
Merging cel-fixes/for-rc (9f4ad9e425a1 Linux 5.12)
Merging irqchip-fixes/irq/irqchip-fixes (0ddc5e55e6f1 Documentation: Fix irq-domain.rst build warning)
Merging renesas-fixes/fixes (432b52eea3dc ARM: shmobile: defconfig: Restore graphical consoles)
Merging drm-misc-fixes/for-linux-next-fixes (c8704b7ec182 drm/kmb: Enable alpha blended second plane)
Merging kspp-gustavo/for-next/kspp (7bc04ce6b914 Makefile: Enable -Wimplicit-fallthrough for Clang)
Merging kbuild/for-next (860091ee86e6 riscv: move the (z)install rules to arch/riscv/Makefile)
Merging compiler-attributes/compiler-attributes (b83a908498d6 compiler_attributes.h: move __compiletime_{error|warning})
CONFLICT (content): Merge conflict in include/linux/compiler_attributes.h
Merging dma-mapping/for-next (a61cb6017df0 dma-mapping: fix the kerneldoc for dma_map_sg_attrs)
Merging asm-generic/master (8f76f9c46952 bitops/non-atomic: make @nr unsigned to avoid any DIV)
Merging arc/for-next (56809a28d45f ARC: mm: vmalloc sync from kernel to user table to update PMD ...)
Merging arm/for-next (1c9b5911f53b Merge branches 'fixes' and 'misc' into for-next)
Merging arm64/for-next/core (85f58eb18898 arm64: kdump: Skip kmemleak scan reserved memory for kdump)
Merging arm-perf/for-next/perf (fd264b310579 arm64/perf: Replace '0xf' instances with ID_AA64DFR0_PMUVER_IMP_DEF)
Merging arm-soc/for-next (5e115b419d2b soc: document merges)
Merging actions/for-next (444d018d8d38 ARM: dts: owl-s500-roseapplepi: Add ATC2603C PMIC)
Merging amlogic/for-next (6285af2a2821 Merge tags 'amlogic-arm-configs-for-v5.15', 'amlogic-arm64-dt-for-v5.15' and 'amlogic-arm-dt-for-v5.15' into for-next)
Merging aspeed/for-next (0f32f00af344 Merge branches 'dt-for-v5.15', 'soc-for-v5.15' and 'defconfig-for-v5.15' into for-next)
Merging at91/at91-next (b102356e5bc1 Merge branch 'at91-dt' into at91-next)
Merging drivers-memory/for-next (c28b584deb1b Merge branch 'for-v5.15/omap-gpmc' into for-next)
Merging imx-mxs/for-next (2cb411d89676 Merge branch 'imx/defconfig' into for-next)
Merging keystone/next (cb293d3b430e Merge branch 'for_5.15/drivers-soc' into next)
Merging mediatek/for-next (69862ae4e378 Merge branch 'v5.14-next/soc' into for-next)
Merging mvebu/for-next (930af8dda750 Merge branch 'mvebu/dt64' into mvebu/for-next)
Merging omap/for-next (7911f95d1713 Merge branch 'fixes' into for-next)
Merging qcom/for-next (e0f999d1bfc1 Merge branches 'arm64-for-5.16', 'drivers-for-5.16' and 'dts-for-5.16' into for-next)
Merging raspberrypi/for-next (9f5289ec6f1c ARM: dts: bcm2711-rpi-4-b: Fix usb's unit address)
Merging renesas/next (59d7f78144a8 Merge branches 'renesas-arm-dt-for-v5.15' and 'renesas-drivers-for-v5.15' into renesas-next)
Merging reset/reset/next (09f3824342f6 reset: simple: remove ZTE details in Kconfig help)
Merging rockchip/for-next (d46148623f26 Merge branch 'v5.15-armsoc/dts64' into for-next)
Merging samsung-krzk/for-next (90861bf54255 Merge branch 'next/dt64' into for-next)
Merging scmi/for-linux-next (7c414a7d93c6 Merge branch 'for-next/scmi' of git://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux into for-linux-next)
Merging stm32/stm32-next (1e6bc5987a52 ARM: dts: stm32: Update AV96 adv7513 node per dtbs_check)
Merging sunxi/sunxi/for-next (3f1c53207cf0 Merge branches 'sunxi/dt-for-5.14' and 'sunxi/fixes-for-5.13' into sunxi/for-next)
Merging tegra/for-next (cc701ccede61 Merge branch for-5.15/arm64/dt into for-next)
Merging ti-k3/ti-k3-next (1e3d655fe7b4 Merge branch 'ti-k3-config-next' into ti-k3-next)
Merging ti-k3-new/ti-k3-next (c1fa5ac6c2f4 arm64: dts: ti: k3-am642-sk: Add pwm nodes)
Merging xilinx/for-next (4d7e3c8de98e Merge branch 'zynqmp/dt' of https://github.com/Xilinx/linux-xlnx into for-next)
Merging clk/clk-next (2cfa946be843 clk: qcom: gcc-sm6350: Remove unused variable)
Merging clk-imx/for-next (86842d255b45 clk: imx8mn: Add M7 core clock)
Merging clk-renesas/renesas-clk (e8425dd55abb clk: renesas: Make CLK_R9A06G032 invisible)
Merging clk-samsung/for-next (a38fd8748464 Linux 5.12-rc2)
Merging csky/linux-next (90dc8c0e664e csky: Kconfig: Remove unused selects)
Merging h8300/h8300-next (1ec10274d436 h8300: don't implement set_fs)
Merging m68k/for-next (87d93029fe83 m68k: Fix asm register constraints for atomic ops)
Merging m68knommu/for-next (db87db65c105 m68knommu: only set CONFIG_ISA_DMA_API for ColdFire sub-arch)
Merging microblaze/next (315511166469 microblaze: move core-y in arch/microblaze/Makefile to arch/microblaze/Kbuild)
Merging mips/mips-next (bea6a94a279b MIPS: Malta: fix alignment of the devicetree buffer)
Merging nds32/next (07cd7745c6f2 nds32/setup: remove unused memblock_region variable in setup_memory())
CONFLICT (content): Merge conflict in arch/nds32/Kconfig
Merging nios2/for-next (7f7bc20bc41a nios2: Don't use _end for calculating min_low_pfn)
Merging openrisc/for-next (1955d843efc3 openrisc/litex: Update defconfig)
Merging parisc-hd/for-next (7d2a07b76933 Linux 5.14)
Merging powerpc/next (a3314262eede Merge branch 'fixes' into next)
Merging soc-fsl/next (242b0b398ccd soc: fsl: enable acpi support in RCPM driver)
Merging risc-v/for-next (6f55ab36bef5 riscv: Move EXCEPTION_TABLE to RO_DATA segment)
Merging s390/for-next (bb9c14ad267d hugetlbfs: s390 is always 64bit)
Merging sh/for-next (2882b7626f49 sh: kernel: traps: remove unused variable)
Merging sparc-next/master (dd0d718152e4 Merge tag 'spi-fix-v5.8-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi)
Merging uml/linux-next (234640275675 um: rename set_signals() to um_set_signals())
Merging xtensa/xtensa-for-next (7b7cec477fc3 xtensa: move core-y in arch/xtensa/Makefile to arch/xtensa/Kbuild)
Merging pidfd/for-next (f4dd02cd8631 Merge branch 'kernel.sys' into for-next)
Merging fscrypt/master (38ef66b05cfa fscrypt: document struct fscrypt_operations)
Merging fscache/fscache-next (20ec197bfa13 fscache: Use refcount_t for the cookie refcount instead of atomic_t)
Merging afs/afs-next (7af08140979a Revert "gcov: clang: fix clang-11+ build")
Merging btrfs/for-next (1efc6199e6b9 Merge branch 'for-next-current-v5.14-20210830' into for-next-20210830)
Merging ceph/master (4b0b8836ebba ceph: fix off by one bugs in unsafe_request_wait())
Merging cifs/for-next (9351590f51cd cifs: properly invalidate cached root handle when closing it)
Merging cifsd/cifsd-for-next (bf9f243f23e6 Merge tag '5.15-rc-ksmbd-part2' of git://git.samba.org/ksmbd)
Merging configfs/for-next (c42dd069be8d configfs: fix a race in configfs_lookup())
Merging ecryptfs/next (682a8e2b41ef Merge tag 'ecryptfs-5.13-rc1-updates' of git://git.kernel.org/pub/scm/linux/kernel/git/tyhicks/ecryptfs)
Merging erofs/dev (1266b4a7ecb6 erofs: fix double free of 'copied')
Merging exfat/dev (50be9417e23a Merge tag 'io_uring-5.14-2021-07-09' of git://git.kernel.dk/linux-block)
Merging ext3/for_next (ed518dd035fa Pull udf xattr sanity checks.)
Merging ext4/dev (948ca5f30e1d ext4: enforce buffer head state assertion in ext4_da_map_blocks)
Merging f2fs/dev (1dbe7e386f50 Merge tag 'block-5.15-2021-09-05' of git://git.kernel.dk/linux-block)
Merging fsverity/fsverity (07c99001312c fs-verity: support reading signature with ioctl)
Merging fuse/for-next (a9667ac88e2b fuse: remove unused arg in fuse_write_file_get())
Merging gfs2/for-next (08d736667185 gfs2: Remove redundant check from gfs2_glock_dq)
Merging jfs/jfs-next (5d299f44d765 jfs: Avoid field-overflowing memcpy())
Merging nfs/linux-next (2734d6c1b1a0 Linux 5.14-rc2)
Merging nfs-anna/linux-next (8cfb9015280d NFS: Always provide aligned buffers to the RPC read layers)
Merging nfsd/nfsd-next (e22ce8eb631b Linux 5.14-rc7)
Merging cel/for-next (0c217d5066c8 SUNRPC: improve error response to over-size gss credential)
Merging ntfs3/master (15b2ae776044 fs/ntfs3: Show uid/gid always in show_options())
Merging orangefs/for-next (0fdec1b3c9fb orangefs: fix orangefs df output.)
Merging overlayfs/overlayfs-next (332f606b32b6 ovl: enable RCU'd ->get_acl())
Merging ubifs/next (a801fcfeef96 ubifs: Set/Clear I_LINKABLE under i_lock for whiteout inode)
Merging v9fs/9p-next (9c4d94dc9a64 net/9p: increase default msize to 128k)
Merging xfs/for-next (f38a032b165d xfs: fix I_DONTCACHE)
Merging zonefs/for-next (95b115332a83 zonefs: remove redundant null bio check)
Merging iomap/iomap-for-next (03b8df8d43ec iomap: standardize tracepoint formatting and storage)
Merging djw-vfs/vfs-for-next (d03ef4daf33a fs: forbid invalid project ID)
Merging file-locks/locks-next (90f7d7a0d0d6 locks: remove LOCK_MAND flock lock support)
Merging vfs/for-next (8f40da9494cf Merge branch 'misc.namei' into for-next)
Merging printk/for-next (9980c4251f8d printk: use kvmalloc instead of kmalloc for devkmsg_user)
Merging pci/next (742a4c49a82a Merge branch 'remotes/lorenzo/pci/tools')
Merging pstore/for-next/pstore (c5d4fb2539ca pstore/blk: Use "%lu" to format unsigned long)
Merging hid/for-next (4bc44ba4871f Merge branch 'for-5.15/core' into for-next)
Merging i2c/i2c/for-next (cc1dbdeb17dd Merge branch 'i2c/for-mergewindow' into i2c/for-next)
Merging i3c/i3c/next (e73f0f0ee754 Linux 5.14-rc1)
Merging dmi/dmi-for-next (f97a2103f1a7 firmware: dmi: Move product_sku info to the end of the modalias)
Merging hwmon-staging/hwmon-next (15d4ec3b12b5 hwmon: (k10temp) Remove residues of current and voltage)
Merging jc_docs/docs-next (7c5c18bdb656 docs: pdfdocs: Fix typo in CJK-language specific font settings)
Merging v4l-dvb/master (9c3a0f285248 Merge tag 'v5.14-rc4' into media_tree)
Merging v4l-dvb-next/master (d62cd4d277cc media: uvcvideo: Remove unused including <linux/version.h>)
Merging pm/linux-next (10aed6c075d4 Merge branch 'pm-misc' into linux-next)
Merging cpufreq-arm/cpufreq/arm/linux-next (4855e26bcf4d cpufreq: mediatek-hw: Add support for CPUFREQ HW)
Merging cpupower/cpupower (5499f2b80b56 tools: cpupower: fix typo in cpupower-idle-set(1) manpage)
Merging devfreq/devfreq-next (e73f0f0ee754 Linux 5.14-rc1)
Merging opp/opp/linux-next (94274f20f6bf dt-bindings: opp: Convert to DT schema)
Merging thermal/thermal/linux-next (fc26023f8816 thermal/drivers/int340x: Fix tcc offset on resume)
Merging ieee1394/for-next (54b3bd99f094 firewire: nosy: switch from 'pci_' to 'dma_' API)
Merging dlm/next (ecd95673142e fs: dlm: avoid comms shutdown delay in release_lockspace)
Merging swiotlb/linux-next (f3c4b1341e83 swiotlb: use depends on for DMA_RESTRICTED_POOL)
Merging rdma/for-next (6a217437f9f5 Merge branch 'sg_nents' into rdma.git for-next)
Merging net-next/master (626bf91a292e Merge tag 'net-5.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net)
Merging bpf-next/for-next (27151f177827 Merge tag 'perf-tools-for-v5.15-2021-09-04' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux)
Merging ipsec-next/master (9e9fb7655ed5 Merge tag 'net-next-5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next)
Merging mlx5-next/mlx5-next (598fe77df855 net/mlx5: Lag, Create shared FDB when in switchdev mode)
Merging netfilter-next/master (9e9fb7655ed5 Merge tag 'net-next-5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next)
Merging ipvs-next/master (9e9fb7655ed5 Merge tag 'net-next-5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next)
Merging wireless-drivers-next/master (eaf2aaec0be4 Merge tag 'wireless-drivers-next-2021-08-29' of git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-next)
Merging bluetooth/master (2fc7acb69fa3 Bluetooth: hci_uart: fix GPF in h5_recv)
Merging mac80211-next/master (626bf91a292e Merge tag 'net-5.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net)
Merging mtd/mtd/next (c1fe77e42440 Merge tag 'nand/for-5.15' into mtd/next)
Merging nand/nand/next (6b430c7595e4 mtd: rawnand: cafe: Fix a resource leak in the error handling path of 'cafe_nand_probe()')
Merging spi-nor/spi-nor/next (2734d6c1b1a0 Linux 5.14-rc2)
Merging crypto/master (6ae51ffe5e76 crypto: sha512 - remove imaginary and mystifying clearing of variables)
Merging drm/drm-next (70982eef4d7e drm/ttm: Fix a deadlock if the target BO is not idle during swap)
Merging drm-misc/for-linux-next (8c28051cdcbe fbmem: don't allow too huge resolutions)
Merging amdgpu/drm-next (1258fee6e4d3 drm/sched: fix the bug of time out calculation(v4))
Merging drm-intel/for-linux-next (fb43ebc83e06 drm/i915/selftest: Fix use of err in igt_reset_{fail, nop}_engine())
Merging drm-tegra/drm/tegra/for-next (fed028939417 gpu: host1x: debug: Dump DMASTART and DMAEND register)
Merging drm-msm/msm-next (cb0927ab80d2 drm/msi/mdp4: populate priv->kms in mdp4_kms_init)
Merging imx-drm/imx-drm/next (20fbfc81e390 drm/imx: imx-tve: Make use of the helper function devm_platform_ioremap_resource())
Merging etnaviv/etnaviv/next (81fd23e2b3cc drm/etnaviv: Implement mmap as GEM object function)
Merging regmap/for-next (ca5537c9be13 Merge remote-tracking branch 'regmap/for-5.15' into regmap-next)
Merging sound/for-next (25fca8c9e0d7 Merge tag 'asoc-fix-v5.15-rc1' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus)
Merging sound-asoc/for-next (9bcfd65e8c26 Merge remote-tracking branch 'asoc/for-5.15' into asoc-linus)
Merging modules/modules-next (ced75a2f5da7 MAINTAINERS: Add Luis Chamberlain as modules maintainer)
Merging input/next (e2afe95a87a2 dt-bindings: input: Add binding for cypress-sf)
Merging block/for-next (291470332387 Merge branch 'iov_iter' into for-next)
Merging device-mapper/for-next (d3703ef33129 dm crypt: use in_hardirq() instead of deprecated in_irq())
Merging pcmcia/pcmcia-next (e39cdacf2f66 pcmcia: i82092: fix a null pointer dereference bug)
Merging mmc/next (b81bede4d138 mmc: renesas_sdhi: fix regression with hard reset on old SDHIs)
Merging mfd/for-mfd-next (cdff1eda6932 mfd: lpc_sch: Rename GPIOBASE to prevent build error)
Merging backlight/for-backlight-next (79fad92f2e59 backlight: pwm_bl: Improve bootloader/kernel device handover)
Merging battery/for-next (c9398455b046 power: supply: core: Fix parsing of battery chemistry/technology)
Merging regulator/for-next (7cb623f775d5 Merge remote-tracking branch 'regulator/for-5.15' into regulator-linus)
Merging security/next-testing (047843bdb316 Merge branch 'landlock_lsm_v34' into next-testing)
Merging apparmor/apparmor-next (d108370c644b apparmor: fix error check)
Merging integrity/next-integrity (cb181da16196 IMA: reject unknown hash algorithms in ima_get_hash_algo)
Merging keys/keys-next (e377c31f788f integrity: Load mokx variables into the blacklist keyring)
CONFLICT (content): Merge conflict in certs/system_keyring.c
Merging safesetid/safesetid-next (1b8b71922919 LSM: SafeSetID: Mark safesetid_initialized as __initdata)
Merging selinux/next (893c47d1964f selinux: return early for possible NULL audit buffers)
Merging smack/next (bfc3cac0c761 smack: mark 'smack_enabled' global variable as __initdata)
Merging tomoyo/master (7d2a07b76933 Linux 5.14)
Merging tpmdd/next (f985911b7bc7 crypto: public_key: fix overflow during implicit conversion)
Merging watchdog/master (41e73feb1024 dt-bindings: watchdog: Add compatible for Mediatek MT7986)
Merging iommu/next (b58886bf14da Merge branch 'iommu/fixes' into next)
Merging audit/next (67d69e9d1a6c audit: move put_tree() to avoid trim_trees refcount underflow and UAF)
Merging devicetree/for-next (b1e202503508 dt-bindings: display: remove zte,vou.txt binding doc)
Merging mailbox/mailbox-for-next (85dfdbfc13ea mailbox: cmdq: add multi-gce clocks support for mt8195)
Merging spi/for-next (2b75df2d9c87 Merge remote-tracking branch 'spi/for-5.15' into spi-linus)
Merging tip/auto-latest (5448a9e9f16a Merge branch 'x86/urgent')
Merging clockevents/timers/drivers/next (f196ae282070 dt-bindings: timer: Add ABIs for new Ingenic SoCs)
Merging edac/edac-for-next (cf4e6d52f583 EDAC/i10nm: Retrieve and print retry_rd_err_log registers)
Merging irqchip/irq/irqchip-next (6e3b473ee064 Merge branch irq/qcom-pdc-nowake-cleanup into irq/irqchip-next)
Merging ftrace/for-next (5dfe50b05588 bootconfig: Rename xbc_node_find_child() to xbc_node_find_subkey())
Merging rcu/rcu/next (38babc43f45e rcutorture: Avoid problematic critical section nesting on PREEMPT_RT)
CONFLICT (content): Merge conflict in kernel/time/tick-internal.h
Merging kvm/next (109bbba5066b KVM: Drop unused kvm_dirty_gfn_invalid())
Merging kvm-arm/next (419025b3b419 Merge branch kvm-arm64/misc-5.15 into kvmarm-master/next)
Merging kvm-ppc/kvm-ppc-next (72476aaa4691 KVM: PPC: Book3S HV: Fix host radix SLB optimisation with hash guests)
Merging kvms390/next (a3e03bc1368c KVM: s390: index kvm->arch.idle_mask by vcpu_idx)
Merging xen-tip/linux-next (58e636039b51 xen: remove stray preempt_disable() from PV AP startup code)
Merging percpu/for-next (a81a52b325ec Merge branch 'for-5.14-fixes' into for-next)
Merging workqueues/for-next (bdb0a6548d22 workqueue: Remove unused WORK_NO_COLOR)
Merging drivers-x86/for-next (0487d4fc42d7 platform/x86: dell-smbios-wmi: Add missing kfree in error-exit from run_smbios_call)
Merging chrome-platform/for-next (4665584888ad platform/chrome: cros_ec_trace: Fix format warnings)
Merging hsi/for-next (e73f0f0ee754 Linux 5.14-rc1)
Merging leds/for-next (239f32b4f161 leds: pca955x: Switch to i2c probe_new)
Merging ipmi/for-next (bf064c7bec3b char: ipmi: use DEVICE_ATTR helper macro)
Merging driver-core/driver-core-next (78e709522d2c Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost)
Merging usb/usb-next (78e709522d2c Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost)
Merging usb-gadget/next (e49d033bddf5 Linux 5.12-rc6)
Merging usb-serial/usb-next (a65ab973c166 USB: serial: replace symbolic permissions by octal permissions)
Merging usb-chipidea-next/for-usb-next (e5d6a7c6cfae usb: chipidea: host: fix port index underflow and UBSAN complains)
Merging tty/tty-next (78e709522d2c Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost)
Merging char-misc/char-misc-next (4cd67adc44a3 Merge tag 'misc-habanalabs-next-2021-09-01' of https://git.kernel.org/pub/scm/linux/kernel/git/ogabbay/linux into char-misc-next)
Merging extcon/extcon-next (07de34f5ce1e extcon: max3355: Drop unused include)
Merging phy-next/next (152a810eae03 phy: qcom-qmp: Add support for SM6115 UFS phy)
Merging soundwire/next (2564a2d4418b soundwire: cadence: do not extend reset delay)
Merging thunderbolt/next (42716425ad7e thunderbolt: Fix port linking by checking all adapters)
Merging vfio/next (ea870730d83f Merge branches 'v5.15/vfio/spdx-license-cleanups', 'v5.15/vfio/dma-valid-waited-v3', 'v5.15/vfio/vfio-pci-core-v5' and 'v5.15/vfio/vfio-ap' into v5.15/vfio/next)
Merging staging/staging-next (78e709522d2c Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost)
Merging iio/togreg (d484c21bacfa iio: adc: Add driver for Renesas RZ/G2L A/D converter)
Merging mux/for-next (3516bd729358 Merge tag 's390-5.11-3' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux)
Merging icc/icc-next (8bf5d31c4f06 interconnect: qcom: osm-l3: Use driver-specific naming)
Merging dmaengine/next (11a427be2c47 dmaengine: sh: fix some NULL dereferences)
Merging cgroup/for-next (96aff80dde1b Merge branch 'for-5.15' into for-next)
Merging scsi/for-next (27f681116fdf Merge branch 'misc' into for-next)
Merging scsi-mkp/for-next (8bad75aca006 scsi: ufs: ufs-pci: Fix Intel LKF link stability)
Merging vhost/linux-next (7bc7f61897b6 Documentation: Add documentation for VDUSE)
Merging rpmsg/for-next (c93ca5f21d93 Merge branches 'hwspinlock-next', 'rpmsg-next' and 'rproc-next' into for-next)
Merging gpio/for-next (7ac554888233 MAINTAINERS: Remove reference to non-existing file)
Merging gpio-brgl/gpio/for-next (889a1b3f35db gpio: mpc8xxx: Use 'devm_gpiochip_add_data()' to simplify the code and avoid a leak)
Merging gpio-intel/for-next (5111c2b6b019 gpio: dwapb: Get rid of legacy platform data)
Merging pinctrl/for-next (04853352952b Merge tag 'samsung-pinctrl-5.15' of https://git.kernel.org/pub/scm/linux/kernel/git/pinctrl/samsung into devel)
Merging pinctrl-intel/for-next (2f658f7a3953 pinctrl: tigerlake: Fix GPIO mapping for newer version of software)
Merging pinctrl-renesas/renesas-pinctrl (c4c4637eb57f pinctrl: renesas: Add RZ/G2L pin and gpio controller driver)
Merging pinctrl-samsung/for-next (cdd3d945dcec pinctrl: samsung: Add Exynos850 SoC specific data)
Merging pwm/for-next (3f2b16734914 pwm: mtk-disp: Implement atomic API .get_state())
Merging userns/for-next (a3be01837fc9 Merge of ucount-fixes-for-5.14, siginfo-si_trapno-for-v5.15, and exit-cleanups-for-v5.15 for testing in linux-next)
CONFLICT (content): Merge conflict in include/linux/sched/signal.h
Merging ktest/for-next (170f4869e662 ktest.pl: Fix the logic for truncating the size of the log file for email)
Merging kselftest/next (67d6d80d90fb selftests/cpufreq: Rename DEBUG_PI_LIST to DEBUG_PLIST)
Merging livepatching/for-next (cd2d68f2d6b2 Merge branch 'for-5.15/cpu-hotplug' into for-next)
Merging coresight/next (1efbcec2ef8c coresight: cti: Reduce scope for the variable “cs_fwnode” in cti_plat_create_connection())
Merging rtc/rtc-next (0c45d3e24ef3 rtc: rx8010: select REGMAP_I2C)
Merging nvdimm/libnvdimm-for-next (bdd3c50d83bf dax: remove bdev_dax_supported)
Merging at24/at24/for-next (658ae44345c1 dt-bindings: at24: add ON Semi CAT24C04 and CAT24C05)
Merging ntb/ntb-next (f96cb827ce49 ntb: ntb_pingpong: remove redundant initialization of variables msg_data and spad_data)
Merging seccomp/for-next/seccomp (b4d8a58f8dcf seccomp: Fix setting loaded filter count during TSYNC)
Merging kspp/for-next/kspp (0c2406ffcdfe Merge branch 'for-next/overflow' into for-next/kspp)
CONFLICT (content): Merge conflict in include/linux/compiler_types.h
CONFLICT (content): Merge conflict in include/linux/compiler-gcc.h
Merging cisco/for-next (9e98c678c2d6 Linux 5.1-rc1)
Merging gnss/gnss-next (0f79ce970e79 gnss: drop stray semicolons)
Merging fsi/next (9ab1428dfe2c fsi/sbefifo: Fix reset timeout)
Merging slimbus/for-next (e5c578adcdd9 slimbus: ngd: reset dma setup during runtime pm)
Merging nvmem/for-next (74f671aed9e7 nvmem: core: Add stubs for nvmem_cell_read_variable_le_u32/64 if !CONFIG_NVMEM)
Merging xarray/main (2c7e57a02708 idr test suite: Improve reporting from idr_find_test_1)
Merging hyperv/hyperv-next (9d68cd9120e4 hv_utils: Set the maximum packet size for VSS driver to the length of the receive buffer)
Merging auxdisplay/auxdisplay (24ebc044c72e auxdisplay: Replace symbolic permissions with octal permissions)
Merging kgdb/kgdb/for-next (f8416aa29185 kernel: debug: Convert to SPDX identifier)
Merging hmm/hmm (79fbd3e1241c RDMA: Use the sg_table directly and remove the opencoded version from umem)
Merging fpga/for-next (4f45f3404960 spi: spi-altera-dfl: support n5010 feature revision)
Merging kunit/test (e73f0f0ee754 Linux 5.14-rc1)
Merging cfi/cfi/next (ff1176468d36 Linux 5.14-rc3)
Merging kunit-next/kunit (acd8e8407b8f kunit: Print test statistics on failure)
Merging trivial/for-next (9ff9b0d392ea Merge tag 'net-next-5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next)
Merging mhi/mhi-next (813272ed5238 Merge 5.14-rc5 into char-misc-next)
Merging memblock/for-next (e888fa7bb882 memblock: Check memory add/cap ordering)
Merging init/init-user-pointers (38b082236e77 initramfs: use vfs_utimes in do_copy)
Merging counters/counters (e71ba9452f0b Linux 5.11-rc2)
Merging rust/rust-next (5d3986cf8ed6 MAINTAINERS: Rust)
CONFLICT (content): Merge conflict in include/linux/kallsyms.h
CONFLICT (content): Merge conflict in Makefile
Applying: fixup for rust integration with Makefile.clang creation
Merging cxl/next (2b922a9d064f cxl/registers: Fix Documentation warning)
Merging folio/for-next (1a90e9dae32c mm/writeback: Add folio_write_one)
CONFLICT (content): Merge conflict in mm/util.c
CONFLICT (content): Merge conflict in mm/rmap.c
CONFLICT (content): Merge conflict in mm/page-writeback.c
CONFLICT (content): Merge conflict in mm/memcontrol.c
CONFLICT (content): Merge conflict in mm/filemap.c
CONFLICT (content): Merge conflict in include/linux/memcontrol.h
Merging akpm-current/current (1ee31a7d5844 hfsplus: fix out-of-bounds warnings in __hfsplus_setxattr)
$ git checkout -b akpm remotes/origin/akpm/master
$ git rebase --onto master remotes/origin/akpm/master-base
Merging akpm/master (9f68c499d1b8 mm/vmalloc: add __alloc_size attributes for better bounds checking)

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

^ permalink raw reply	[relevance 1%]

* Re: [PATCH] nfp: Prefer struct_size over open coded arithmetic
  2021-09-12 13:10 12% [PATCH] nfp: " Len Baker
  2021-09-12 19:07  7% ` Gustavo A. R. Silva
@ 2021-09-13  8:31  7% ` Simon Horman
  1 sibling, 0 replies; 200+ results
From: Simon Horman @ 2021-09-13  8:31 UTC (permalink / raw)
  To: Len Baker
  Cc: Jakub Kicinski, David S. Miller, Kees Cook, Gustavo A. R. Silva,
	oss-drivers, netdev, linux-hardening, linux-kernel

On Sun, Sep 12, 2021 at 03:10:57PM +0200, Len Baker 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 struct_size() helper to do the arithmetic instead of the
> argument "size + count * size" in the kzalloc() function.
> 
> [1] https://www.kernel.org/doc/html/v5.14/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments
> 
> Signed-off-by: Len Baker <len.baker@gmx.com>

Reviewed-by: Simon Horman <simon.horman@corigine.com>

> ---
>  drivers/net/ethernet/netronome/nfp/nfp_net_repr.c | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
> 
> diff --git a/drivers/net/ethernet/netronome/nfp/nfp_net_repr.c b/drivers/net/ethernet/netronome/nfp/nfp_net_repr.c
> index 3b8e675087de..369f6ae700c7 100644
> --- a/drivers/net/ethernet/netronome/nfp/nfp_net_repr.c
> +++ b/drivers/net/ethernet/netronome/nfp/nfp_net_repr.c
> @@ -499,8 +499,7 @@ struct nfp_reprs *nfp_reprs_alloc(unsigned int num_reprs)
>  {
>  	struct nfp_reprs *reprs;
> 
> -	reprs = kzalloc(sizeof(*reprs) +
> -			num_reprs * sizeof(struct net_device *), GFP_KERNEL);
> +	reprs = kzalloc(struct_size(reprs, reprs, num_reprs), GFP_KERNEL);
>  	if (!reprs)
>  		return NULL;
>  	reprs->num_reprs = num_reprs;
> --
> 2.25.1
> 

^ permalink raw reply	[relevance 7%]

* Re: [PATCH] i3c/master/mipi-i3c-hci: Prefer kcalloc over open coded arithmetic
  2021-09-12 15:51 12% [PATCH] i3c/master/mipi-i3c-hci: Prefer kcalloc " Len Baker
  2021-09-13  1:54  7% ` Nicolas Pitre
@ 2021-09-13 17:39 12% ` Alexandre Belloni
  1 sibling, 0 replies; 200+ results
From: Alexandre Belloni @ 2021-09-13 17:39 UTC (permalink / raw)
  To: Len Baker
  Cc: Alexandre Belloni, linux-kernel, Kees Cook, linux-i3c,
	linux-hardening, Nicolas Pitre, Boris Brezillon

On Sun, 12 Sep 2021 17:51:35 +0200, Len Baker 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.
> 
> [...]

Applied, thanks!

[1/1] i3c/master/mipi-i3c-hci: Prefer kcalloc over open coded arithmetic
      commit: 41a0430dd5ca65afdecf10fb0b8b56966a1c5d04

Best regards,
-- 
Alexandre Belloni <alexandre.belloni@bootlin.com>

^ permalink raw reply	[relevance 12%]

* Re: [PATCH] i3c/master/mipi-i3c-hci: Prefer struct_size over open coded arithmetic
  2021-09-05 14:40 12% [PATCH] i3c/master/mipi-i3c-hci: Prefer struct_size " Len Baker
  2021-09-06  4:30  7% ` Nicolas Pitre
@ 2021-09-13 17:39 12% ` Alexandre Belloni
  1 sibling, 0 replies; 200+ results
From: Alexandre Belloni @ 2021-09-13 17:39 UTC (permalink / raw)
  To: Len Baker, Nicolas Pitre, Boris Brezillon
  Cc: Alexandre Belloni, linux-hardening, linux-kernel, linux-i3c, Kees Cook

On Sun, 5 Sep 2021 16:40:54 +0200, Len Baker 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.
> 
> [...]

Applied, thanks!

[1/1] i3c/master/mipi-i3c-hci: Prefer struct_size over open coded arithmetic
      commit: 605fa23646dd9a86c4300e1719542a865111d1b6

Best regards,
-- 
Alexandre Belloni <alexandre.belloni@bootlin.com>

^ permalink raw reply	[relevance 12%]

* linux-next: Tree for Sep 14
@ 2021-09-14  6:38  1% Stephen Rothwell
  0 siblings, 0 replies; 200+ results
From: Stephen Rothwell @ 2021-09-14  6:38 UTC (permalink / raw)
  To: Linux Next Mailing List; +Cc: Linux Kernel Mailing List

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

Hi all,

Changes since 20210913:

New tree: libata

Linus' tree gained a build failure for which I reverted a commit.

The net-next tree gained a build failure for which I reverted a patch.

The bpf-next tree gained a build failure so I used the version from
next-20210913.

The kspp tree gained a conflict against Linus' tree.

Non-merge commits (relative to Linus' tree): 1247
 1492 files changed, 76279 insertions(+), 16677 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 are also quilt-import.log and merge.log
files 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, 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 335 trees (counting Linus' and 90 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 (316346243be6 Merge branch 'gcc-min-version-5.1' (make gcc-5.1 the minimum version))
Merging fixes/fixes (a9c9a6f741cd Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi)
Applying: Revert "compiler_attributes.h: drop __has_attribute() support for gcc4"
Merging kbuild-current/fixes (926de8c4326c Merge tag 'acpi-5.15-rc1-3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm)
Merging arc-current/for-curr (6880fa6c5660 Linux 5.15-rc1)
Merging arm-current/fixes (463dbba4d189 ARM: 9104/2: Fix Keystone 2 kernel mapping regression)
Merging arm64-fixes/for-next/fixes (3eb9cdffb397 Partially revert "arm64/mm: drop HAVE_ARCH_PFN_VALID")
Merging arm-soc-fixes/arm/fixes (6c35ca069741 Merge tag 'reset-fixes-for-v5.14' of git://git.pengutronix.de/pza/linux into arm/fixes)
Merging drivers-memory-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging m68k-current/for-linus (a7b68ed15d1f m68k: mvme: Remove overdue #warnings in RTC handling)
Merging powerpc-fixes/fixes (787c70f2f999 powerpc/64s: Fix scv implicit soft-mask table for relocated kernels)
Merging s390-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging sparc/master (05a59d79793d Merge git://git.kernel.org:/pub/scm/linux/kernel/git/netdev/net)
Merging fscrypt-current/for-stable (d19d8d345eec fscrypt: fix inline encryption not used on new files)
Merging net/master (111b64e35ea0 net: dsa: lantiq_gswip: Add 200ms assert delay)
Merging bpf/master (0e6491b55970 bpf: Add oversize check before call kvcalloc())
Merging ipsec/master (3c10ffddc61f net: xfrm: fix shift-out-of-bounds in xfrm_get_default)
Merging netfilter/master (69e73dbfda14 ipvs: check that ip_vs_conn_tab_bits is between 8 and 20)
Merging ipvs/master (276aae377206 net: stmmac: fix system hang caused by eee_ctrl_timer during suspend/resume)
Merging wireless-drivers/master (e4457a45b41c iwlwifi: fix printk format warnings in uefi.c)
Merging mac80211/master (e011912651bd net: ni65: Avoid typecast of pointer to u32)
Merging rdma-fixes/for-rc (1b789bd4dbd4 IB/qib: Fix clang confusion of NULL pointer comparison)
Merging sound-current/for-linus (7b9cf9036609 ALSA: usb-audio: Unify mixer resume and reset_resume procedure)
Merging sound-asoc-fixes/for-linus (49660818eb84 Merge remote-tracking branch 'asoc/for-5.15' into asoc-linus)
Merging regmap-fixes/for-linus (6880fa6c5660 Linux 5.15-rc1)
Merging regulator-fixes/for-linus (18844b7517c8 Merge remote-tracking branch 'regulator/for-5.15' into regulator-linus)
Merging spi-fixes/for-linus (c6636bc07565 Merge remote-tracking branch 'spi/for-5.15' into spi-linus)
Merging pci-current/for-linus (6880fa6c5660 Linux 5.15-rc1)
Merging driver-core.current/driver-core-linus (6880fa6c5660 Linux 5.15-rc1)
Merging tty.current/tty-linus (6880fa6c5660 Linux 5.15-rc1)
Merging usb.current/usb-linus (6880fa6c5660 Linux 5.15-rc1)
Merging usb-gadget-fixes/fixes (e49d033bddf5 Linux 5.12-rc6)
Merging usb-serial-fixes/usb-linus (7bb057134d60 USB: serial: option: add Telit LN920 compositions)
Merging usb-chipidea-fixes/for-usb-fixes (98a1373a2de9 usb: cdns3: fix race condition before setting doorbell)
Merging phy/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging staging.current/staging-linus (6880fa6c5660 Linux 5.15-rc1)
Merging iio-fixes/fixes-togreg (fa31da54088b iio: adc: ad7793: Fix IRQ flag)
Merging char-misc.current/char-misc-linus (6880fa6c5660 Linux 5.15-rc1)
Merging soundwire-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging thunderbolt-fixes/fixes (7d2a07b76933 Linux 5.14)
Merging input-current/for-linus (0c5483a5778f Input: analog - always use ktime functions)
Merging crypto-current/master (6ae51ffe5e76 crypto: sha512 - remove imaginary and mystifying clearing of variables)
Merging vfio-fixes/for-linus (dc51ff91cf2d vfio/platform: fix module_put call in error flow)
Merging kselftest-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging modules-fixes/modules-linus (055f23b74b20 module: check for exit sections in layout_sections() instead of module_init_section())
Merging dmaengine-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging backlight-fixes/for-backlight-fixes (a38fd8748464 Linux 5.12-rc2)
Merging mtd-fixes/mtd/fixes (b48027083a78 mtd: rawnand: Fix probe failure due to of_get_nand_secure_regions())
Merging mfd-fixes/for-mfd-fixes (a61f4661fba4 mfd: intel_quark_i2c_gpio: Revert "Constify static struct resources")
Merging v4l-dvb-fixes/fixes (3ad02c27d89d media: s5p-jpeg: rename JPEG marker constants to prevent build warnings)
Merging reset-fixes/reset/fixes (ed104ca4bd9c reset: reset-zynqmp: Fixed the argument data type)
Merging mips-fixes/mips-fixes (6880fa6c5660 Linux 5.15-rc1)
Merging at91-fixes/at91-fixes (6efb943b8616 Linux 5.13-rc1)
Merging omap-fixes/fixes (e879f855e590 bus: ti-sysc: Add break in switch statement in sysc_init_soc())
Merging kvm-fixes/master (7d2a07b76933 Linux 5.14)
Merging kvms390-fixes/master (cd4220d23bf3 KVM: selftests: do not require 64GB in set_memory_region_test)
Merging hwmon-fixes/hwmon (23c69b90365c hwmon: (k10temp) Remove residues of current and voltage)
Merging nvdimm-fixes/libnvdimm-fixes (32b2397c1e56 libnvdimm/pmem: Fix crash triggered when I/O in-flight during unbind)
Merging cxl-fixes/fixes (fae8817ae804 cxl/mem: Fix memory device capacity probing)
Merging btrfs-fixes/next-fixes (7f6fe94c91a4 Merge branch 'misc-5.15' into next-fixes)
Merging vfs-fixes/fixes (173e84953eaa fs: fix reporting supported extra file attributes for statx())
Merging dma-mapping-fixes/for-linus (18a3c5f7abfd Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost)
Merging i3c-fixes/i3c/fixes (fe07bfda2fb9 Linux 5.12-rc1)
Merging drivers-x86-fixes/fixes (196159d278ae platform/x86: touchscreen_dmi: Update info for the Chuwi Hi10 Plus (CWI527) tablet)
Merging samsung-krzk-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging pinctrl-samsung-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging devicetree-fixes/dt/linus (094b147c7662 spi: dt-bindings: xilinx: Drop type reference on *-bits properties)
Merging scsi-fixes/fixes (02c6dcd543f8 scsi: core: Fix hang of freezing queue between blocking and running device)
Merging drm-fixes/drm-fixes (7d2a07b76933 Linux 5.14)
Merging amdgpu-fixes/drm-fixes (2c409ba81be2 drm/radeon: fix si_enable_smc_cac() failed issue)
Merging drm-intel-fixes/for-linux-next-fixes (7d2a07b76933 Linux 5.14)
Merging mmc-fixes/fixes (b81bede4d138 mmc: renesas_sdhi: fix regression with hard reset on old SDHIs)
Merging rtc-fixes/rtc-fixes (bd33335aa93d rtc: cmos: Disable irq around direct invocation of cmos_interrupt())
Merging gnss-fixes/gnss-linus (e73f0f0ee754 Linux 5.14-rc1)
Merging hyperv-fixes/hyperv-fixes (dfb5c1e12c28 x86/hyperv: remove on-stack cpumask from hv_send_ipi_mask_allbutself)
Merging soc-fsl-fixes/fix (c1e64c0aec8c soc: fsl: qe: fix static checker warning)
Merging risc-v-fixes/fixes (7d2a07b76933 Linux 5.14)
Merging pidfd-fixes/fixes (03ba0fe4d09f file: simplify logic in __close_range())
Merging fpga-fixes/fixes (1d345c3e5941 fpga: machxo2-spi: Fix missing error code in machxo2_write_complete())
Merging spdx/spdx-linus (6880fa6c5660 Linux 5.15-rc1)
Merging gpio-brgl-fixes/gpio/for-current (6880fa6c5660 Linux 5.15-rc1)
Merging gpio-intel-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging pinctrl-intel-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging erofs-fixes/fixes (0852b6ca941e erofs: fix 1 lcluster-sized pcluster for big pcluster)
Merging integrity-fixes/fixes (843385694721 evm: Fix a small race in init_desc())
Merging kunit-fixes/kunit-fixes (6880fa6c5660 Linux 5.15-rc1)
Merging ubifs-fixes/fixes (78c7d49f55d8 ubifs: journal: Make sure to not dirty twice for auth nodes)
Merging memblock-fixes/fixes (024591f9a6e0 arm: ioremap: don't abuse pfn_valid() to check if pfn is in RAM)
Merging cel-fixes/for-rc (9f4ad9e425a1 Linux 5.12)
Merging irqchip-fixes/irq/irqchip-fixes (0ddc5e55e6f1 Documentation: Fix irq-domain.rst build warning)
Merging renesas-fixes/fixes (432b52eea3dc ARM: shmobile: defconfig: Restore graphical consoles)
Merging drm-misc-fixes/for-linux-next-fixes (c8704b7ec182 drm/kmb: Enable alpha blended second plane)
Merging kspp-gustavo/for-next/kspp (27f8b47f2e25 Merge branch 'for-next/clang-fallthrough' into for-next/kspp)
Merging kbuild/for-next (860091ee86e6 riscv: move the (z)install rules to arch/riscv/Makefile)
Merging compiler-attributes/compiler-attributes (b83a908498d6 compiler_attributes.h: move __compiletime_{error|warning})
Merging dma-mapping/for-next (510e1a724ab1 dma-debug: prevent an error message from causing runtime problems)
Merging asm-generic/master (8f76f9c46952 bitops/non-atomic: make @nr unsigned to avoid any DIV)
Merging arc/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging arm/for-next (1c9b5911f53b Merge branches 'fixes' and 'misc' into for-next)
Merging arm64/for-next/core (85f58eb18898 arm64: kdump: Skip kmemleak scan reserved memory for kdump)
Merging arm-perf/for-next/perf (fd264b310579 arm64/perf: Replace '0xf' instances with ID_AA64DFR0_PMUVER_IMP_DEF)
Merging arm-soc/for-next (5e115b419d2b soc: document merges)
Merging actions/for-next (444d018d8d38 ARM: dts: owl-s500-roseapplepi: Add ATC2603C PMIC)
Merging amlogic/for-next (faae6a457101 Merge branches 'v5.16/dt64' and 'v5.16/drivers' into for-next)
Merging aspeed/for-next (0f32f00af344 Merge branches 'dt-for-v5.15', 'soc-for-v5.15' and 'defconfig-for-v5.15' into for-next)
Merging at91/at91-next (b102356e5bc1 Merge branch 'at91-dt' into at91-next)
Merging drivers-memory/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging imx-mxs/for-next (2cb411d89676 Merge branch 'imx/defconfig' into for-next)
Merging keystone/next (cb293d3b430e Merge branch 'for_5.15/drivers-soc' into next)
Merging mediatek/for-next (69862ae4e378 Merge branch 'v5.14-next/soc' into for-next)
Merging mvebu/for-next (930af8dda750 Merge branch 'mvebu/dt64' into mvebu/for-next)
Merging omap/for-next (7911f95d1713 Merge branch 'fixes' into for-next)
Merging qcom/for-next (e0f999d1bfc1 Merge branches 'arm64-for-5.16', 'drivers-for-5.16' and 'dts-for-5.16' into for-next)
Merging raspberrypi/for-next (9f5289ec6f1c ARM: dts: bcm2711-rpi-4-b: Fix usb's unit address)
Merging renesas/next (cbbd8f16ae1c Merge branches 'renesas-arm-dt-for-v5.16', 'renesas-drivers-for-v5.16' and 'renesas-dt-bindings-for-v5.16' into renesas-next)
Merging reset/reset/next (09f3824342f6 reset: simple: remove ZTE details in Kconfig help)
Merging rockchip/for-next (d46148623f26 Merge branch 'v5.15-armsoc/dts64' into for-next)
Merging samsung-krzk/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging scmi/for-linux-next (b1d6695c249e Merge branch 'for-next/scmi' of git://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux into for-linux-next)
Merging stm32/stm32-next (1e6bc5987a52 ARM: dts: stm32: Update AV96 adv7513 node per dtbs_check)
Merging sunxi/sunxi/for-next (bb289f4c0b2b Merge branches 'sunxi/clk-for-5.16', 'sunxi/core-for-5.16', 'sunxi/drivers-for-5.16', 'sunxi/dt-for-5.16' and 'sunxi/fixes-for-5.15' into sunxi/for-next)
Merging tegra/for-next (cc701ccede61 Merge branch for-5.15/arm64/dt into for-next)
Merging ti-k3/ti-k3-next (1e3d655fe7b4 Merge branch 'ti-k3-config-next' into ti-k3-next)
Merging ti-k3-new/ti-k3-next (c1fa5ac6c2f4 arm64: dts: ti: k3-am642-sk: Add pwm nodes)
Merging xilinx/for-next (4d7e3c8de98e Merge branch 'zynqmp/dt' of https://github.com/Xilinx/linux-xlnx into for-next)
Merging clk/clk-next (6880fa6c5660 Linux 5.15-rc1)
Merging clk-imx/for-next (86842d255b45 clk: imx8mn: Add M7 core clock)
Merging clk-renesas/renesas-clk (e8425dd55abb clk: renesas: Make CLK_R9A06G032 invisible)
Merging clk-samsung/for-next (1d26eaeec37a clk: samsung: s5pv210-audss: Make use of devm_platform_ioremap_resource())
Merging csky/linux-next (90dc8c0e664e csky: Kconfig: Remove unused selects)
Merging h8300/h8300-next (1ec10274d436 h8300: don't implement set_fs)
Merging m68k/for-next (a7b68ed15d1f m68k: mvme: Remove overdue #warnings in RTC handling)
Merging m68knommu/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging microblaze/next (315511166469 microblaze: move core-y in arch/microblaze/Makefile to arch/microblaze/Kbuild)
Merging mips/mips-next (6880fa6c5660 Linux 5.15-rc1)
Merging nds32/next (07cd7745c6f2 nds32/setup: remove unused memblock_region variable in setup_memory())
CONFLICT (content): Merge conflict in arch/nds32/Kconfig
Merging nios2/for-next (7f7bc20bc41a nios2: Don't use _end for calculating min_low_pfn)
Merging openrisc/for-next (1955d843efc3 openrisc/litex: Update defconfig)
Merging parisc-hd/for-next (1530bf2852cc Define and export PAGE0 in vmlinux.lds.S linker script)
Merging powerpc/next (a3314262eede Merge branch 'fixes' into next)
Merging soc-fsl/next (242b0b398ccd soc: fsl: enable acpi support in RCPM driver)
Merging risc-v/for-next (6f55ab36bef5 riscv: Move EXCEPTION_TABLE to RO_DATA segment)
Merging s390/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging sh/for-next (2882b7626f49 sh: kernel: traps: remove unused variable)
Merging sparc-next/master (dd0d718152e4 Merge tag 'spi-fix-v5.8-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi)
Merging uml/linux-next (234640275675 um: rename set_signals() to um_set_signals())
Merging xtensa/xtensa-for-next (7b7cec477fc3 xtensa: move core-y in arch/xtensa/Makefile to arch/xtensa/Kbuild)
Merging pidfd/for-next (f4dd02cd8631 Merge branch 'kernel.sys' into for-next)
Merging fscrypt/master (38ef66b05cfa fscrypt: document struct fscrypt_operations)
Merging fscache/fscache-next (20ec197bfa13 fscache: Use refcount_t for the cookie refcount instead of atomic_t)
Merging afs/afs-next (7af08140979a Revert "gcov: clang: fix clang-11+ build")
Merging btrfs/for-next (e51480e6f4f8 Merge branch 'for-next-next-v5.15-20210913' into for-next-20210913)
Merging ceph/master (4b0b8836ebba ceph: fix off by one bugs in unsafe_request_wait())
Merging cifs/for-next (4c51de1e8f92 cifs: fix incorrect kernel doc comments)
Merging cifsd/cifsd-for-next (bf9f243f23e6 Merge tag '5.15-rc-ksmbd-part2' of git://git.samba.org/ksmbd)
Merging configfs/for-next (c42dd069be8d configfs: fix a race in configfs_lookup())
Merging ecryptfs/next (682a8e2b41ef Merge tag 'ecryptfs-5.13-rc1-updates' of git://git.kernel.org/pub/scm/linux/kernel/git/tyhicks/ecryptfs)
Merging erofs/dev (1266b4a7ecb6 erofs: fix double free of 'copied')
Merging exfat/dev (50be9417e23a Merge tag 'io_uring-5.14-2021-07-09' of git://git.kernel.dk/linux-block)
Merging ext3/for_next (ed518dd035fa Pull udf xattr sanity checks.)
Merging ext4/dev (948ca5f30e1d ext4: enforce buffer head state assertion in ext4_da_map_blocks)
Merging f2fs/dev (1dbe7e386f50 Merge tag 'block-5.15-2021-09-05' of git://git.kernel.dk/linux-block)
Merging fsverity/fsverity (07c99001312c fs-verity: support reading signature with ioctl)
Merging fuse/for-next (a9667ac88e2b fuse: remove unused arg in fuse_write_file_get())
Merging gfs2/for-next (08d736667185 gfs2: Remove redundant check from gfs2_glock_dq)
Merging jfs/jfs-next (5d299f44d765 jfs: Avoid field-overflowing memcpy())
Merging nfs/linux-next (6880fa6c5660 Linux 5.15-rc1)
Merging nfs-anna/linux-next (8cfb9015280d NFS: Always provide aligned buffers to the RPC read layers)
Merging nfsd/nfsd-next (e22ce8eb631b Linux 5.14-rc7)
Merging cel/for-next (0c217d5066c8 SUNRPC: improve error response to over-size gss credential)
Merging ntfs3/master (8e69212253d3 fs/ntfs3: Always use binary search with entry search)
Merging orangefs/for-next (0fdec1b3c9fb orangefs: fix orangefs df output.)
Merging overlayfs/overlayfs-next (332f606b32b6 ovl: enable RCU'd ->get_acl())
Merging ubifs/next (a801fcfeef96 ubifs: Set/Clear I_LINKABLE under i_lock for whiteout inode)
Merging v9fs/9p-next (9c4d94dc9a64 net/9p: increase default msize to 128k)
Merging xfs/for-next (f38a032b165d xfs: fix I_DONTCACHE)
Merging zonefs/for-next (95b115332a83 zonefs: remove redundant null bio check)
Merging iomap/iomap-for-next (03b8df8d43ec iomap: standardize tracepoint formatting and storage)
Merging djw-vfs/vfs-for-next (d03ef4daf33a fs: forbid invalid project ID)
Merging file-locks/locks-next (90f7d7a0d0d6 locks: remove LOCK_MAND flock lock support)
Merging vfs/for-next (8f40da9494cf Merge branch 'misc.namei' into for-next)
Merging printk/for-next (9980c4251f8d printk: use kvmalloc instead of kmalloc for devkmsg_user)
Merging pci/next (6880fa6c5660 Linux 5.15-rc1)
Merging pstore/for-next/pstore (c5d4fb2539ca pstore/blk: Use "%lu" to format unsigned long)
Merging hid/for-next (4bc44ba4871f Merge branch 'for-5.15/core' into for-next)
Merging i2c/i2c/for-next (cc1dbdeb17dd Merge branch 'i2c/for-mergewindow' into i2c/for-next)
Merging i3c/i3c/next (41a0430dd5ca i3c/master/mipi-i3c-hci: Prefer kcalloc over open coded arithmetic)
Merging dmi/dmi-for-next (f97a2103f1a7 firmware: dmi: Move product_sku info to the end of the modalias)
Merging hwmon-staging/hwmon-next (f2a787937ec9 hwmon: (raspberrypi) Use generic notification mechanism)
Merging jc_docs/docs-next (7c5c18bdb656 docs: pdfdocs: Fix typo in CJK-language specific font settings)
Merging v4l-dvb/master (9c3a0f285248 Merge tag 'v5.14-rc4' into media_tree)
Merging v4l-dvb-next/master (d62cd4d277cc media: uvcvideo: Remove unused including <linux/version.h>)
Merging pm/linux-next (6880fa6c5660 Linux 5.15-rc1)
Merging cpufreq-arm/cpufreq/arm/linux-next (4855e26bcf4d cpufreq: mediatek-hw: Add support for CPUFREQ HW)
Merging cpupower/cpupower (79a0dc5530a9 tools: cpupower: fix typo in cpupower-idle-set(1) manpage)
Merging devfreq/devfreq-next (e73f0f0ee754 Linux 5.14-rc1)
Merging opp/opp/linux-next (94274f20f6bf dt-bindings: opp: Convert to DT schema)
Merging thermal/thermal/linux-next (fc26023f8816 thermal/drivers/int340x: Fix tcc offset on resume)
Merging ieee1394/for-next (54b3bd99f094 firewire: nosy: switch from 'pci_' to 'dma_' API)
Merging dlm/next (ecd95673142e fs: dlm: avoid comms shutdown delay in release_lockspace)
Merging swiotlb/linux-next (f3c4b1341e83 swiotlb: use depends on for DMA_RESTRICTED_POOL)
Merging rdma/for-next (6a217437f9f5 Merge branch 'sg_nents' into rdma.git for-next)
Merging net-next/master (13bb8429ca98 net: wwan: iosm: firmware flashing and coredump collection)
Applying: Revert "isystem: delete global -isystem compile option"
Merging bpf-next/for-next (2f3830412786 libbpf: Make libbpf_version.h non-auto-generated)
$ git reset --hard HEAD^
Merging next-20210913 version of bpf-next
Merging ipsec-next/master (9e9fb7655ed5 Merge tag 'net-next-5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next)
Merging mlx5-next/mlx5-next (6880fa6c5660 Linux 5.15-rc1)
Merging netfilter-next/master (13bb8429ca98 net: wwan: iosm: firmware flashing and coredump collection)
Merging ipvs-next/master (9e9fb7655ed5 Merge tag 'net-next-5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next)
Merging wireless-drivers-next/master (6880fa6c5660 Linux 5.15-rc1)
Merging bluetooth/master (81be03e026dc Bluetooth: RFCOMM: Replace use of memcpy_from_msg with bt_skb_sendmmsg)
Merging mac80211-next/master (626bf91a292e Merge tag 'net-5.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net)
Merging mtd/mtd/next (c1fe77e42440 Merge tag 'nand/for-5.15' into mtd/next)
Merging nand/nand/next (6b430c7595e4 mtd: rawnand: cafe: Fix a resource leak in the error handling path of 'cafe_nand_probe()')
Merging spi-nor/spi-nor/next (2734d6c1b1a0 Linux 5.14-rc2)
Merging crypto/master (6ae51ffe5e76 crypto: sha512 - remove imaginary and mystifying clearing of variables)
Merging drm/drm-next (6880fa6c5660 Linux 5.15-rc1)
Merging drm-misc/for-linux-next (70982eef4d7e drm/ttm: Fix a deadlock if the target BO is not idle during swap)
Merging amdgpu/drm-next (1258fee6e4d3 drm/sched: fix the bug of time out calculation(v4))
Merging drm-intel/for-linux-next (fb43ebc83e06 drm/i915/selftest: Fix use of err in igt_reset_{fail, nop}_engine())
Merging drm-tegra/drm/tegra/for-next (fed028939417 gpu: host1x: debug: Dump DMASTART and DMAEND register)
Merging drm-msm/msm-next (cb0927ab80d2 drm/msi/mdp4: populate priv->kms in mdp4_kms_init)
Merging imx-drm/imx-drm/next (20fbfc81e390 drm/imx: imx-tve: Make use of the helper function devm_platform_ioremap_resource())
Merging etnaviv/etnaviv/next (81fd23e2b3cc drm/etnaviv: Implement mmap as GEM object function)
Merging regmap/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging sound/for-next (7b9cf9036609 ALSA: usb-audio: Unify mixer resume and reset_resume procedure)
Merging sound-asoc/for-next (8897c6ccc423 Merge remote-tracking branch 'asoc/for-5.16' into asoc-next)
Merging modules/modules-next (ced75a2f5da7 MAINTAINERS: Add Luis Chamberlain as modules maintainer)
Merging input/next (e2afe95a87a2 dt-bindings: input: Add binding for cypress-sf)
Merging block/for-next (291470332387 Merge branch 'iov_iter' into for-next)
Merging device-mapper/for-next (d3703ef33129 dm crypt: use in_hardirq() instead of deprecated in_irq())
Merging libata/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging pcmcia/pcmcia-next (e39cdacf2f66 pcmcia: i82092: fix a null pointer dereference bug)
Merging mmc/next (b81bede4d138 mmc: renesas_sdhi: fix regression with hard reset on old SDHIs)
Merging mfd/for-mfd-next (cdff1eda6932 mfd: lpc_sch: Rename GPIOBASE to prevent build error)
Merging backlight/for-backlight-next (79fad92f2e59 backlight: pwm_bl: Improve bootloader/kernel device handover)
Merging battery/for-next (c9398455b046 power: supply: core: Fix parsing of battery chemistry/technology)
Merging regulator/for-next (fa108e34d765 Merge remote-tracking branch 'regulator/for-5.16' into regulator-next)
Merging security/next-testing (047843bdb316 Merge branch 'landlock_lsm_v34' into next-testing)
Merging apparmor/apparmor-next (d108370c644b apparmor: fix error check)
Merging integrity/next-integrity (836f7b6ca082 ima: fix deadlock when traversing "ima_default_rules".)
Merging keys/keys-next (e377c31f788f integrity: Load mokx variables into the blacklist keyring)
CONFLICT (content): Merge conflict in certs/system_keyring.c
Merging safesetid/safesetid-next (1b8b71922919 LSM: SafeSetID: Mark safesetid_initialized as __initdata)
Merging selinux/next (6880fa6c5660 Linux 5.15-rc1)
Merging smack/next (bfc3cac0c761 smack: mark 'smack_enabled' global variable as __initdata)
Merging tomoyo/master (7d2a07b76933 Linux 5.14)
Merging tpmdd/next (f985911b7bc7 crypto: public_key: fix overflow during implicit conversion)
Merging watchdog/master (41e73feb1024 dt-bindings: watchdog: Add compatible for Mediatek MT7986)
Merging iommu/next (b58886bf14da Merge branch 'iommu/fixes' into next)
Merging audit/next (57d4374be94a audit: rename struct node to struct audit_node to prevent future name collisions)
Merging devicetree/for-next (53182e81f47d kbuild: Enable DT schema checks for %.dtb targets)
Merging mailbox/mailbox-for-next (85dfdbfc13ea mailbox: cmdq: add multi-gce clocks support for mt8195)
Merging spi/for-next (69dde9e5a835 Merge remote-tracking branch 'spi/for-5.16' into spi-next)
Merging tip/auto-latest (5448a9e9f16a Merge branch 'x86/urgent')
Merging clockevents/timers/drivers/next (f196ae282070 dt-bindings: timer: Add ABIs for new Ingenic SoCs)
Merging edac/edac-for-next (cf4e6d52f583 EDAC/i10nm: Retrieve and print retry_rd_err_log registers)
Merging irqchip/irq/irqchip-next (6e3b473ee064 Merge branch irq/qcom-pdc-nowake-cleanup into irq/irqchip-next)
Merging ftrace/for-next (5dfe50b05588 bootconfig: Rename xbc_node_find_child() to xbc_node_find_subkey())
Merging rcu/rcu/next (dd1b86279856 hrtimer: Don't apply offset to KTIME_MAX values)
Merging kvm/next (109bbba5066b KVM: Drop unused kvm_dirty_gfn_invalid())
Merging kvm-arm/next (419025b3b419 Merge branch kvm-arm64/misc-5.15 into kvmarm-master/next)
Merging kvm-ppc/kvm-ppc-next (72476aaa4691 KVM: PPC: Book3S HV: Fix host radix SLB optimisation with hash guests)
Merging kvms390/next (a3e03bc1368c KVM: s390: index kvm->arch.idle_mask by vcpu_idx)
Merging xen-tip/linux-next (58e636039b51 xen: remove stray preempt_disable() from PV AP startup code)
Merging percpu/for-next (a81a52b325ec Merge branch 'for-5.14-fixes' into for-next)
Merging workqueues/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging drivers-x86/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging chrome-platform/for-next (4665584888ad platform/chrome: cros_ec_trace: Fix format warnings)
Merging hsi/for-next (e73f0f0ee754 Linux 5.14-rc1)
Merging leds/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging ipmi/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging driver-core/driver-core-next (6880fa6c5660 Linux 5.15-rc1)
Merging usb/usb-next (6880fa6c5660 Linux 5.15-rc1)
Merging usb-gadget/next (e49d033bddf5 Linux 5.12-rc6)
Merging usb-serial/usb-next (6880fa6c5660 Linux 5.15-rc1)
Merging usb-chipidea-next/for-usb-next (e5d6a7c6cfae usb: chipidea: host: fix port index underflow and UBSAN complains)
Merging tty/tty-next (6880fa6c5660 Linux 5.15-rc1)
Merging char-misc/char-misc-next (6880fa6c5660 Linux 5.15-rc1)
Merging extcon/extcon-next (07de34f5ce1e extcon: max3355: Drop unused include)
Merging phy-next/next (6880fa6c5660 Linux 5.15-rc1)
Merging soundwire/next (6880fa6c5660 Linux 5.15-rc1)
Merging thunderbolt/next (42716425ad7e thunderbolt: Fix port linking by checking all adapters)
Merging vfio/next (ea870730d83f Merge branches 'v5.15/vfio/spdx-license-cleanups', 'v5.15/vfio/dma-valid-waited-v3', 'v5.15/vfio/vfio-pci-core-v5' and 'v5.15/vfio/vfio-ap' into v5.15/vfio/next)
Merging staging/staging-next (0af8efc197d7 staging: r8188eu: remove rtl8188e_set_hal_ops())
Merging iio/togreg (d484c21bacfa iio: adc: Add driver for Renesas RZ/G2L A/D converter)
Merging mux/for-next (3516bd729358 Merge tag 's390-5.11-3' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux)
Merging icc/icc-next (8bf5d31c4f06 interconnect: qcom: osm-l3: Use driver-specific naming)
Merging dmaengine/next (6880fa6c5660 Linux 5.15-rc1)
Merging cgroup/for-next (c0002d11d799 cgroupv2, docs: fix misinformation in "device controller" section)
Merging scsi/for-next (27f681116fdf Merge branch 'misc' into for-next)
Merging scsi-mkp/for-next (8bad75aca006 scsi: ufs: ufs-pci: Fix Intel LKF link stability)
Merging vhost/linux-next (91dd29f67ea7 vdpa: potential uninitialized return in vhost_vdpa_va_map())
Merging rpmsg/for-next (c93ca5f21d93 Merge branches 'hwspinlock-next', 'rpmsg-next' and 'rproc-next' into for-next)
Merging gpio/for-next (7ac554888233 MAINTAINERS: Remove reference to non-existing file)
Merging gpio-brgl/gpio/for-next (3ea046564039 dt-bindings: gpio: add gpio-line-names to rockchip,gpio-bank.yaml)
Merging gpio-intel/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging pinctrl/for-next (04853352952b Merge tag 'samsung-pinctrl-5.15' of https://git.kernel.org/pub/scm/linux/kernel/git/pinctrl/samsung into devel)
Merging pinctrl-intel/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging pinctrl-renesas/renesas-pinctrl (c4c4637eb57f pinctrl: renesas: Add RZ/G2L pin and gpio controller driver)
Merging pinctrl-samsung/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging pwm/for-next (3f2b16734914 pwm: mtk-disp: Implement atomic API .get_state())
Merging userns/for-next (a3be01837fc9 Merge of ucount-fixes-for-5.14, siginfo-si_trapno-for-v5.15, and exit-cleanups-for-v5.15 for testing in linux-next)
CONFLICT (content): Merge conflict in include/linux/sched/signal.h
Merging ktest/for-next (170f4869e662 ktest.pl: Fix the logic for truncating the size of the log file for email)
Merging kselftest/next (6880fa6c5660 Linux 5.15-rc1)
Merging livepatching/for-next (cd2d68f2d6b2 Merge branch 'for-5.15/cpu-hotplug' into for-next)
Merging coresight/next (1efbcec2ef8c coresight: cti: Reduce scope for the variable “cs_fwnode” in cti_plat_create_connection())
Merging rtc/rtc-next (6880fa6c5660 Linux 5.15-rc1)
Merging nvdimm/libnvdimm-for-next (bdd3c50d83bf dax: remove bdev_dax_supported)
Merging at24/at24/for-next (762925405482 dt-bindings: at24: add ON Semi CAT24C04 and CAT24C05)
Merging ntb/ntb-next (f96cb827ce49 ntb: ntb_pingpong: remove redundant initialization of variables msg_data and spad_data)
Merging seccomp/for-next/seccomp (b4d8a58f8dcf seccomp: Fix setting loaded filter count during TSYNC)
Merging kspp/for-next/kspp (0c2406ffcdfe Merge branch 'for-next/overflow' into for-next/kspp)
CONFLICT (content): Merge conflict in include/linux/compiler_types.h
CONFLICT (content): Merge conflict in include/linux/compiler-gcc.h
CONFLICT (modify/delete): drivers/staging/rtl8188eu/include/ieee80211.h deleted in HEAD and modified in kspp/for-next/kspp. Version kspp/for-next/kspp of drivers/staging/rtl8188eu/include/ieee80211.h left in tree.
$ git rm -f drivers/staging/rtl8188eu/include/ieee80211.h
Merging cisco/for-next (9e98c678c2d6 Linux 5.1-rc1)
Merging gnss/gnss-next (0f79ce970e79 gnss: drop stray semicolons)
Merging fsi/next (9ab1428dfe2c fsi/sbefifo: Fix reset timeout)
Merging slimbus/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging nvmem/for-next (536267aafb8a nvmem: core: Add stubs for nvmem_cell_read_variable_le_u32/64 if !CONFIG_NVMEM)
Merging xarray/main (2c7e57a02708 idr test suite: Improve reporting from idr_find_test_1)
Merging hyperv/hyperv-next (9d68cd9120e4 hv_utils: Set the maximum packet size for VSS driver to the length of the receive buffer)
Merging auxdisplay/auxdisplay (24ebc044c72e auxdisplay: Replace symbolic permissions with octal permissions)
Merging kgdb/kgdb/for-next (f8416aa29185 kernel: debug: Convert to SPDX identifier)
Merging hmm/hmm (79fbd3e1241c RDMA: Use the sg_table directly and remove the opencoded version from umem)
Merging fpga/for-next (4f45f3404960 spi: spi-altera-dfl: support n5010 feature revision)
Merging kunit/test (6880fa6c5660 Linux 5.15-rc1)
Merging cfi/cfi/next (ff1176468d36 Linux 5.14-rc3)
Merging kunit-next/kunit (6880fa6c5660 Linux 5.15-rc1)
Merging trivial/for-next (9ff9b0d392ea Merge tag 'net-next-5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next)
Merging mhi/mhi-next (813272ed5238 Merge 5.14-rc5 into char-misc-next)
Merging memblock/for-next (e888fa7bb882 memblock: Check memory add/cap ordering)
Merging init/init-user-pointers (38b082236e77 initramfs: use vfs_utimes in do_copy)
Merging counters/counters (e71ba9452f0b Linux 5.11-rc2)
Merging rust/rust-next (5d3986cf8ed6 MAINTAINERS: Rust)
CONFLICT (content): Merge conflict in include/linux/kallsyms.h
CONFLICT (content): Merge conflict in Makefile
Applying: fixup for rust integration with Makefile.clang creation
Merging cxl/next (2b922a9d064f cxl/registers: Fix Documentation warning)
Merging folio/for-next (1a90e9dae32c mm/writeback: Add folio_write_one)
CONFLICT (content): Merge conflict in mm/util.c
CONFLICT (content): Merge conflict in mm/rmap.c
CONFLICT (content): Merge conflict in mm/page-writeback.c
CONFLICT (content): Merge conflict in mm/memcontrol.c
CONFLICT (content): Merge conflict in mm/filemap.c
CONFLICT (content): Merge conflict in include/linux/memcontrol.h
Merging akpm-current/current (1ee31a7d5844 hfsplus: fix out-of-bounds warnings in __hfsplus_setxattr)
$ git checkout -b akpm remotes/origin/akpm/master
$ git rebase --onto master remotes/origin/akpm/master-base
Merging akpm/master (ad8ac96dd1d6 mm/vmalloc: add __alloc_size attributes for better bounds checking)

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

^ permalink raw reply	[relevance 1%]

* Re: [PATCH] memstick: jmb38x_ms: Prefer struct_size over open coded arithmetic
  2021-09-11 13:19 12% [PATCH] memstick: jmb38x_ms: Prefer " Len Baker
@ 2021-09-14 11:23  7% ` Ulf Hansson
  0 siblings, 0 replies; 200+ results
From: Ulf Hansson @ 2021-09-14 11:23 UTC (permalink / raw)
  To: Len Baker
  Cc: Maxim Levitsky, Alex Dubov, Kees Cook, Tom Rix, linux-hardening,
	linux-mmc, Linux Kernel Mailing List

On Sat, 11 Sept 2021 at 15:22, Len Baker <len.baker@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 struct_size() helper to do the arithmetic instead of the
> argument "size + count * size" in the kzalloc() function.
>
> [1] https://www.kernel.org/doc/html/v5.14/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments
>
> Signed-off-by: Len Baker <len.baker@gmx.com>

Applied for next, thanks!

Kind regards
Uffe


> ---
>  drivers/memstick/host/jmb38x_ms.c | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/drivers/memstick/host/jmb38x_ms.c b/drivers/memstick/host/jmb38x_ms.c
> index f9a93b0565e1..a7a0f0caea15 100644
> --- a/drivers/memstick/host/jmb38x_ms.c
> +++ b/drivers/memstick/host/jmb38x_ms.c
> @@ -927,8 +927,7 @@ static int jmb38x_ms_probe(struct pci_dev *pdev,
>                 goto err_out_int;
>         }
>
> -       jm = kzalloc(sizeof(struct jmb38x_ms)
> -                    + cnt * sizeof(struct memstick_host *), GFP_KERNEL);
> +       jm = kzalloc(struct_size(jm, hosts, cnt), GFP_KERNEL);
>         if (!jm) {
>                 rc = -ENOMEM;
>                 goto err_out_int;
> --
> 2.25.1
>

^ permalink raw reply	[relevance 7%]

* Re: [PATCH v2] docs: deprecated.rst: Clarify open-coded arithmetic with literals
  2021-08-29 14:47  7% [PATCH v2] " Len Baker
@ 2021-09-14 21:07  7% ` Jonathan Corbet
  2021-09-18  9:10 14%   ` Len Baker
  0 siblings, 1 reply; 200+ results
From: Jonathan Corbet @ 2021-09-14 21:07 UTC (permalink / raw)
  To: Len Baker, Kees Cook
  Cc: Len Baker, Gustavo A. R. Silva, Joe Perches, linux-doc,
	linux-kernel, linux-hardening

Len Baker <len.baker@gmx.com> writes:

> Although using literals for size calculation in allocator arguments may
> be harmless due to compiler warnings in case of overflows, it is better
> to refactor the code to avoid the use of open-coded math idiom.
>
> So, clarify the preferred way in these cases.
>
> Suggested-by: Kees Cook <keescook@chromium.org>
> Signed-off-by: Len Baker <len.baker@gmx.com>
> ---
> Changelog v1 -> v2
>  - Clarify the sentence by changing "keep <foo> out" with "avoid <foo>"
>    (Joe Perches).
>
>  Documentation/process/deprecated.rst | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/Documentation/process/deprecated.rst b/Documentation/process/deprecated.rst
> index 9d83b8db8874..b5a8be914178 100644
> --- a/Documentation/process/deprecated.rst
> +++ b/Documentation/process/deprecated.rst
> @@ -60,7 +60,8 @@ smaller allocation being made than the caller was expecting. Using those
>  allocations could lead to linear overflows of heap memory and other
>  misbehaviors. (One exception to this is literal values where the compiler
>  can warn if they might overflow. Though using literals for arguments as
> -suggested below is also harmless.)
> +suggested below is also harmless. So, the preferred way in these cases is
> +to refactor the code to avoid the open-coded math idiom.)

Sorry for being so slow to get to this...  honestly, though, I've been
staring at it for a bit and cannot figure out what you are trying to
communicate.  What does "math idiom" mean here?  If you are trying to
say that using literals is *not* harmless, then perhaps the first part
of the parenthetical should be taken out?

Confused...

jon

^ permalink raw reply	[relevance 7%]

* Re: [PATCH] Input: omap-keypad - prefer struct_size over open coded arithmetic
  2021-09-11 11:27 12% [PATCH] Input: omap-keypad - prefer " Len Baker
@ 2021-09-14 21:49  7% ` Gustavo A. R. Silva
  0 siblings, 0 replies; 200+ results
From: Gustavo A. R. Silva @ 2021-09-14 21:49 UTC (permalink / raw)
  To: Len Baker, Dmitry Torokhov
  Cc: Kees Cook, linux-hardening, linux-input, linux-kernel



On 9/11/21 06:27, Len Baker 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 struct_size() helper to do the arithmetic instead of the
> argument "size + count * size" in the kzalloc() function.
> 
> [1] https://www.kernel.org/doc/html/v5.14/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments
> 
> Signed-off-by: Len Baker <len.baker@gmx.com>

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

Thanks
--
Gustavo

> ---
>  drivers/input/keyboard/omap-keypad.c | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
> 
> diff --git a/drivers/input/keyboard/omap-keypad.c b/drivers/input/keyboard/omap-keypad.c
> index dbe836c7ff47..eb3a687796e7 100644
> --- a/drivers/input/keyboard/omap-keypad.c
> +++ b/drivers/input/keyboard/omap-keypad.c
> @@ -190,8 +190,7 @@ static int omap_kp_probe(struct platform_device *pdev)
>  	row_shift = get_count_order(pdata->cols);
>  	keycodemax = pdata->rows << row_shift;
> 
> -	omap_kp = kzalloc(sizeof(struct omap_kp) +
> -			keycodemax * sizeof(unsigned short), GFP_KERNEL);
> +	omap_kp = kzalloc(struct_size(omap_kp, keymap, keycodemax), GFP_KERNEL);
>  	input_dev = input_allocate_device();
>  	if (!omap_kp || !input_dev) {
>  		kfree(omap_kp);
> --
> 2.25.1
> 
> 
> 
> 

^ permalink raw reply	[relevance 7%]

* linux-next: Tree for Sep 15
@ 2021-09-15  4:16  1% Stephen Rothwell
  0 siblings, 0 replies; 200+ results
From: Stephen Rothwell @ 2021-09-15  4:16 UTC (permalink / raw)
  To: Linux Next Mailing List; +Cc: Linux Kernel Mailing List

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

Hi all,

Changes since 20210914:

Linus' tree lost its build failure.

The net-next tree lost its build failure.

The bpf-next tree still had its build failure so I used the version from
next-20210913.

The ftrace tree gained a conflict against Linus' tree.

The xen-tip tree gained a build failure so I used the version from
next-20210914.

Non-merge commits (relative to Linus' tree): 1675
 1912 files changed, 88248 insertions(+), 26064 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 are also quilt-import.log and merge.log
files 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, 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 335 trees (counting Linus' and 90 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 (3ca706c189db drm/ttm: fix type mismatch error on sparc64)
Merging fixes/fixes (3ca706c189db drm/ttm: fix type mismatch error on sparc64)
Merging kbuild-current/fixes (926de8c4326c Merge tag 'acpi-5.15-rc1-3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm)
Merging arc-current/for-curr (6880fa6c5660 Linux 5.15-rc1)
Merging arm-current/fixes (463dbba4d189 ARM: 9104/2: Fix Keystone 2 kernel mapping regression)
Merging arm64-fixes/for-next/fixes (3eb9cdffb397 Partially revert "arm64/mm: drop HAVE_ARCH_PFN_VALID")
Merging arm-soc-fixes/arm/fixes (3f1c260ffddb MAINTAINERS: Add myself as MStar/Sigmastar Armv7 SoC maintainers)
Merging drivers-memory-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging m68k-current/for-linus (a7b68ed15d1f m68k: mvme: Remove overdue #warnings in RTC handling)
Merging powerpc-fixes/fixes (787c70f2f999 powerpc/64s: Fix scv implicit soft-mask table for relocated kernels)
Merging s390-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging sparc/master (05a59d79793d Merge git://git.kernel.org:/pub/scm/linux/kernel/git/netdev/net)
Merging fscrypt-current/for-stable (d19d8d345eec fscrypt: fix inline encryption not used on new files)
Merging net/master (d198b2776264 Revert "Revert "ipv4: fix memory leaks in ip_cmsg_send() callers"")
Merging bpf/master (356ed64991c6 bpf: Handle return value of BPF_PROG_TYPE_STRUCT_OPS prog)
Merging ipsec/master (3c10ffddc61f net: xfrm: fix shift-out-of-bounds in xfrm_get_default)
Merging netfilter/master (69e73dbfda14 ipvs: check that ip_vs_conn_tab_bits is between 8 and 20)
Merging ipvs/master (276aae377206 net: stmmac: fix system hang caused by eee_ctrl_timer during suspend/resume)
Merging wireless-drivers/master (e4457a45b41c iwlwifi: fix printk format warnings in uefi.c)
Merging mac80211/master (e011912651bd net: ni65: Avoid typecast of pointer to u32)
Merging rdma-fixes/for-rc (1b789bd4dbd4 IB/qib: Fix clang confusion of NULL pointer comparison)
Merging sound-current/for-linus (ad7cc2d41b7a ALSA: hda/realtek: Quirks to enable speaker output for Lenovo Legion 7i 15IMHG05, Yoga 7i 14ITL5/15ITL5, and 13s Gen2 laptops.)
Merging sound-asoc-fixes/for-linus (49660818eb84 Merge remote-tracking branch 'asoc/for-5.15' into asoc-linus)
Merging regmap-fixes/for-linus (6880fa6c5660 Linux 5.15-rc1)
Merging regulator-fixes/for-linus (18844b7517c8 Merge remote-tracking branch 'regulator/for-5.15' into regulator-linus)
Merging spi-fixes/for-linus (c6636bc07565 Merge remote-tracking branch 'spi/for-5.15' into spi-linus)
Merging pci-current/for-linus (6880fa6c5660 Linux 5.15-rc1)
Merging driver-core.current/driver-core-linus (6880fa6c5660 Linux 5.15-rc1)
Merging tty.current/tty-linus (7049d853cfb9 tty: unexport tty_ldisc_release)
Merging usb.current/usb-linus (da546d6b748e arm64: dts: qcom: ipq8074: remove USB tx-fifo-resize property)
Merging usb-gadget-fixes/fixes (e49d033bddf5 Linux 5.12-rc6)
Merging usb-serial-fixes/usb-linus (7bb057134d60 USB: serial: option: add Telit LN920 compositions)
Merging usb-chipidea-fixes/for-usb-fixes (98a1373a2de9 usb: cdns3: fix race condition before setting doorbell)
Merging phy/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging staging.current/staging-linus (92dc0b1f46e1 staging: greybus: uart: fix tty use after free)
Merging iio-fixes/fixes-togreg (1a913270e57a iio: adc: ad7793: Fix IRQ flag)
Merging char-misc.current/char-misc-linus (25a143321648 mcb: fix error handling in mcb_alloc_bus())
Merging soundwire-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging thunderbolt-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging input-current/for-linus (0c5483a5778f Input: analog - always use ktime functions)
Merging crypto-current/master (6ae51ffe5e76 crypto: sha512 - remove imaginary and mystifying clearing of variables)
Merging vfio-fixes/for-linus (dc51ff91cf2d vfio/platform: fix module_put call in error flow)
Merging kselftest-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging modules-fixes/modules-linus (055f23b74b20 module: check for exit sections in layout_sections() instead of module_init_section())
Merging dmaengine-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging backlight-fixes/for-backlight-fixes (a38fd8748464 Linux 5.12-rc2)
Merging mtd-fixes/mtd/fixes (f60f5741002b mtd: rawnand: qcom: Update code word value for raw read)
Merging mfd-fixes/for-mfd-fixes (a61f4661fba4 mfd: intel_quark_i2c_gpio: Revert "Constify static struct resources")
Merging v4l-dvb-fixes/fixes (3ad02c27d89d media: s5p-jpeg: rename JPEG marker constants to prevent build warnings)
Merging reset-fixes/reset/fixes (ed104ca4bd9c reset: reset-zynqmp: Fixed the argument data type)
Merging mips-fixes/mips-fixes (6880fa6c5660 Linux 5.15-rc1)
Merging at91-fixes/at91-fixes (4348cc10da63 ARM: dts: at91: sama5d2_som1_ek: disable ISC node by default)
Merging omap-fixes/fixes (e879f855e590 bus: ti-sysc: Add break in switch statement in sysc_init_soc())
Merging kvm-fixes/master (7d2a07b76933 Linux 5.14)
Merging kvms390-fixes/master (cd4220d23bf3 KVM: selftests: do not require 64GB in set_memory_region_test)
Merging hwmon-fixes/hwmon (23c69b90365c hwmon: (k10temp) Remove residues of current and voltage)
Merging nvdimm-fixes/libnvdimm-fixes (32b2397c1e56 libnvdimm/pmem: Fix crash triggered when I/O in-flight during unbind)
Merging cxl-fixes/fixes (fae8817ae804 cxl/mem: Fix memory device capacity probing)
Merging btrfs-fixes/next-fixes (7f6fe94c91a4 Merge branch 'misc-5.15' into next-fixes)
Merging vfs-fixes/fixes (173e84953eaa fs: fix reporting supported extra file attributes for statx())
Merging dma-mapping-fixes/for-linus (18a3c5f7abfd Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost)
Merging i3c-fixes/i3c/fixes (fe07bfda2fb9 Linux 5.12-rc1)
Merging drivers-x86-fixes/fixes (3c3c8e88c871 platform/x86: amd-pmc: Increase the response register timeout)
Merging samsung-krzk-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging pinctrl-samsung-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging devicetree-fixes/dt/linus (094b147c7662 spi: dt-bindings: xilinx: Drop type reference on *-bits properties)
Merging scsi-fixes/fixes (1a0db7744e45 scsi: bsg: Fix device unregistration)
Merging drm-fixes/drm-fixes (6880fa6c5660 Linux 5.15-rc1)
Merging amdgpu-fixes/drm-fixes (2c409ba81be2 drm/radeon: fix si_enable_smc_cac() failed issue)
Merging drm-intel-fixes/for-linux-next-fixes (7889367d7795 drm/i915: Enable -Wsometimes-uninitialized)
Merging mmc-fixes/fixes (b81bede4d138 mmc: renesas_sdhi: fix regression with hard reset on old SDHIs)
Merging rtc-fixes/rtc-fixes (bd33335aa93d rtc: cmos: Disable irq around direct invocation of cmos_interrupt())
Merging gnss-fixes/gnss-linus (e73f0f0ee754 Linux 5.14-rc1)
Merging hyperv-fixes/hyperv-fixes (dfb5c1e12c28 x86/hyperv: remove on-stack cpumask from hv_send_ipi_mask_allbutself)
Merging soc-fsl-fixes/fix (c1e64c0aec8c soc: fsl: qe: fix static checker warning)
Merging risc-v-fixes/fixes (7d2a07b76933 Linux 5.14)
Merging pidfd-fixes/fixes (03ba0fe4d09f file: simplify logic in __close_range())
Merging fpga-fixes/fixes (1d345c3e5941 fpga: machxo2-spi: Fix missing error code in machxo2_write_complete())
Merging spdx/spdx-linus (6880fa6c5660 Linux 5.15-rc1)
Merging gpio-brgl-fixes/gpio/for-current (6880fa6c5660 Linux 5.15-rc1)
Merging gpio-intel-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging pinctrl-intel-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging erofs-fixes/fixes (0852b6ca941e erofs: fix 1 lcluster-sized pcluster for big pcluster)
Merging integrity-fixes/fixes (843385694721 evm: Fix a small race in init_desc())
Merging kunit-fixes/kunit-fixes (6880fa6c5660 Linux 5.15-rc1)
Merging ubifs-fixes/fixes (78c7d49f55d8 ubifs: journal: Make sure to not dirty twice for auth nodes)
Merging memblock-fixes/fixes (024591f9a6e0 arm: ioremap: don't abuse pfn_valid() to check if pfn is in RAM)
Merging cel-fixes/for-rc (9f4ad9e425a1 Linux 5.12)
Merging irqchip-fixes/irq/irqchip-fixes (0ddc5e55e6f1 Documentation: Fix irq-domain.rst build warning)
Merging renesas-fixes/fixes (432b52eea3dc ARM: shmobile: defconfig: Restore graphical consoles)
Merging drm-misc-fixes/for-linux-next-fixes (4209f03fcb8e drm/vc4: hdmi: Warn if we access the controller while disabled)
Merging kspp-gustavo/for-next/kspp (926ade1092a3 Merge branch 'for-next/clang-fallthrough' into for-next/kspp)
Merging kbuild/for-next (860091ee86e6 riscv: move the (z)install rules to arch/riscv/Makefile)
Merging compiler-attributes/compiler-attributes (b83a908498d6 compiler_attributes.h: move __compiletime_{error|warning})
Merging dma-mapping/for-next (59583f747664 sparc32: page align size in arch_dma_alloc)
Merging asm-generic/master (7962c2eddbfe arch: remove unused function syscall_set_arguments())
Merging arc/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging arm/for-next (1c9b5911f53b Merge branches 'fixes' and 'misc' into for-next)
Merging arm64/for-next/core (85f58eb18898 arm64: kdump: Skip kmemleak scan reserved memory for kdump)
Merging arm-perf/for-next/perf (fd264b310579 arm64/perf: Replace '0xf' instances with ID_AA64DFR0_PMUVER_IMP_DEF)
Merging arm-soc/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging actions/for-next (444d018d8d38 ARM: dts: owl-s500-roseapplepi: Add ATC2603C PMIC)
Merging amlogic/for-next (faae6a457101 Merge branches 'v5.16/dt64' and 'v5.16/drivers' into for-next)
Merging aspeed/for-next (0f32f00af344 Merge branches 'dt-for-v5.15', 'soc-for-v5.15' and 'defconfig-for-v5.15' into for-next)
Merging at91/at91-next (9648a43994eb Merge branch 'at91-fixes' into at91-next)
Merging drivers-memory/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging imx-mxs/for-next (2cb411d89676 Merge branch 'imx/defconfig' into for-next)
Merging keystone/next (cb293d3b430e Merge branch 'for_5.15/drivers-soc' into next)
Merging mediatek/for-next (69862ae4e378 Merge branch 'v5.14-next/soc' into for-next)
Merging mvebu/for-next (930af8dda750 Merge branch 'mvebu/dt64' into mvebu/for-next)
Merging omap/for-next (7911f95d1713 Merge branch 'fixes' into for-next)
Merging qcom/for-next (e0f999d1bfc1 Merge branches 'arm64-for-5.16', 'drivers-for-5.16' and 'dts-for-5.16' into for-next)
Merging raspberrypi/for-next (9f5289ec6f1c ARM: dts: bcm2711-rpi-4-b: Fix usb's unit address)
Merging renesas/next (cbbd8f16ae1c Merge branches 'renesas-arm-dt-for-v5.16', 'renesas-drivers-for-v5.16' and 'renesas-dt-bindings-for-v5.16' into renesas-next)
Merging reset/reset/next (09f3824342f6 reset: simple: remove ZTE details in Kconfig help)
Merging rockchip/for-next (d46148623f26 Merge branch 'v5.15-armsoc/dts64' into for-next)
Merging samsung-krzk/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging scmi/for-linux-next (b1d6695c249e Merge branch 'for-next/scmi' of git://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux into for-linux-next)
Merging stm32/stm32-next (1e6bc5987a52 ARM: dts: stm32: Update AV96 adv7513 node per dtbs_check)
Merging sunxi/sunxi/for-next (bb289f4c0b2b Merge branches 'sunxi/clk-for-5.16', 'sunxi/core-for-5.16', 'sunxi/drivers-for-5.16', 'sunxi/dt-for-5.16' and 'sunxi/fixes-for-5.15' into sunxi/for-next)
Merging tegra/for-next (cc701ccede61 Merge branch for-5.15/arm64/dt into for-next)
Merging ti-k3/ti-k3-next (1e3d655fe7b4 Merge branch 'ti-k3-config-next' into ti-k3-next)
Merging ti-k3-new/ti-k3-next (500e6dfbb465 arm64: dts: ti: k3-am64-mcu: Add pinctrl)
Merging xilinx/for-next (4d7e3c8de98e Merge branch 'zynqmp/dt' of https://github.com/Xilinx/linux-xlnx into for-next)
Merging clk/clk-next (6880fa6c5660 Linux 5.15-rc1)
Merging clk-imx/for-next (86842d255b45 clk: imx8mn: Add M7 core clock)
Merging clk-renesas/renesas-clk (8ac4aedcf7b3 clk: renesas: r8a779a0: Add TPU clock)
Merging clk-samsung/for-next (1d26eaeec37a clk: samsung: s5pv210-audss: Make use of devm_platform_ioremap_resource())
Merging csky/linux-next (90dc8c0e664e csky: Kconfig: Remove unused selects)
Merging h8300/h8300-next (1ec10274d436 h8300: don't implement set_fs)
Merging m68k/for-next (a7b68ed15d1f m68k: mvme: Remove overdue #warnings in RTC handling)
Merging m68knommu/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging microblaze/next (315511166469 microblaze: move core-y in arch/microblaze/Makefile to arch/microblaze/Kbuild)
Merging mips/mips-next (6880fa6c5660 Linux 5.15-rc1)
Merging nds32/next (07cd7745c6f2 nds32/setup: remove unused memblock_region variable in setup_memory())
CONFLICT (content): Merge conflict in arch/nds32/Kconfig
Merging nios2/for-next (7f7bc20bc41a nios2: Don't use _end for calculating min_low_pfn)
Merging openrisc/for-next (1955d843efc3 openrisc/litex: Update defconfig)
Merging parisc-hd/for-next (1530bf2852cc Define and export PAGE0 in vmlinux.lds.S linker script)
Merging powerpc/next (a3314262eede Merge branch 'fixes' into next)
Merging soc-fsl/next (242b0b398ccd soc: fsl: enable acpi support in RCPM driver)
Merging risc-v/for-next (6f55ab36bef5 riscv: Move EXCEPTION_TABLE to RO_DATA segment)
Merging s390/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging sh/for-next (2882b7626f49 sh: kernel: traps: remove unused variable)
Merging sparc-next/master (dd0d718152e4 Merge tag 'spi-fix-v5.8-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi)
Merging uml/linux-next (234640275675 um: rename set_signals() to um_set_signals())
Merging xtensa/xtensa-for-next (7b7cec477fc3 xtensa: move core-y in arch/xtensa/Makefile to arch/xtensa/Kbuild)
Merging pidfd/for-next (f4dd02cd8631 Merge branch 'kernel.sys' into for-next)
Merging fscrypt/master (38ef66b05cfa fscrypt: document struct fscrypt_operations)
Merging fscache/fscache-next (20ec197bfa13 fscache: Use refcount_t for the cookie refcount instead of atomic_t)
Merging afs/afs-next (7af08140979a Revert "gcov: clang: fix clang-11+ build")
Merging btrfs/for-next (e51480e6f4f8 Merge branch 'for-next-next-v5.15-20210913' into for-next-20210913)
Merging ceph/master (4b0b8836ebba ceph: fix off by one bugs in unsafe_request_wait())
Merging cifs/for-next (c1abf1305957 cifs: rename uapi/linux/cifs directory to uapi/linux/smbfs_client)
Merging cifsd/cifsd-for-next (bf9f243f23e6 Merge tag '5.15-rc-ksmbd-part2' of git://git.samba.org/ksmbd)
Merging configfs/for-next (c42dd069be8d configfs: fix a race in configfs_lookup())
Merging ecryptfs/next (682a8e2b41ef Merge tag 'ecryptfs-5.13-rc1-updates' of git://git.kernel.org/pub/scm/linux/kernel/git/tyhicks/ecryptfs)
Merging erofs/dev (1266b4a7ecb6 erofs: fix double free of 'copied')
Merging exfat/dev (50be9417e23a Merge tag 'io_uring-5.14-2021-07-09' of git://git.kernel.dk/linux-block)
Merging ext3/for_next (ed518dd035fa Pull udf xattr sanity checks.)
Merging ext4/dev (948ca5f30e1d ext4: enforce buffer head state assertion in ext4_da_map_blocks)
Merging f2fs/dev (1dbe7e386f50 Merge tag 'block-5.15-2021-09-05' of git://git.kernel.dk/linux-block)
Merging fsverity/fsverity (07c99001312c fs-verity: support reading signature with ioctl)
Merging fuse/for-next (7a41554fdfb0 fuse: move fuse_invalidate_attr() into fuse_update_ctime())
Merging gfs2/for-next (08d736667185 gfs2: Remove redundant check from gfs2_glock_dq)
Merging jfs/jfs-next (5d299f44d765 jfs: Avoid field-overflowing memcpy())
Merging nfs/linux-next (6880fa6c5660 Linux 5.15-rc1)
Merging nfs-anna/linux-next (8cfb9015280d NFS: Always provide aligned buffers to the RPC read layers)
Merging nfsd/nfsd-next (e22ce8eb631b Linux 5.14-rc7)
Merging cel/for-next (0c217d5066c8 SUNRPC: improve error response to over-size gss credential)
Merging ntfs3/master (8e69212253d3 fs/ntfs3: Always use binary search with entry search)
Merging orangefs/for-next (0fdec1b3c9fb orangefs: fix orangefs df output.)
Merging overlayfs/overlayfs-next (332f606b32b6 ovl: enable RCU'd ->get_acl())
Merging ubifs/next (a801fcfeef96 ubifs: Set/Clear I_LINKABLE under i_lock for whiteout inode)
Merging v9fs/9p-next (9c4d94dc9a64 net/9p: increase default msize to 128k)
Merging xfs/for-next (f38a032b165d xfs: fix I_DONTCACHE)
Merging zonefs/for-next (95b115332a83 zonefs: remove redundant null bio check)
Merging iomap/iomap-for-next (03b8df8d43ec iomap: standardize tracepoint formatting and storage)
Merging djw-vfs/vfs-for-next (d03ef4daf33a fs: forbid invalid project ID)
Merging file-locks/locks-next (90f7d7a0d0d6 locks: remove LOCK_MAND flock lock support)
Merging vfs/for-next (8f40da9494cf Merge branch 'misc.namei' into for-next)
Merging printk/for-next (9980c4251f8d printk: use kvmalloc instead of kmalloc for devkmsg_user)
Merging pci/next (6880fa6c5660 Linux 5.15-rc1)
Merging pstore/for-next/pstore (c5d4fb2539ca pstore/blk: Use "%lu" to format unsigned long)
Merging hid/for-next (4bc44ba4871f Merge branch 'for-5.15/core' into for-next)
Merging i2c/i2c/for-next (294b29f15469 i2c: xiic: Fix RX IRQ busy check)
Merging i3c/i3c/next (41a0430dd5ca i3c/master/mipi-i3c-hci: Prefer kcalloc over open coded arithmetic)
Merging dmi/dmi-for-next (f97a2103f1a7 firmware: dmi: Move product_sku info to the end of the modalias)
Merging hwmon-staging/hwmon-next (f2a787937ec9 hwmon: (raspberrypi) Use generic notification mechanism)
Merging jc_docs/docs-next (242f4c77b1c8 docs: zh_TW/index: Move arm64/index to arch-specific section)
Merging v4l-dvb/master (9c3a0f285248 Merge tag 'v5.14-rc4' into media_tree)
Merging v4l-dvb-next/master (d62cd4d277cc media: uvcvideo: Remove unused including <linux/version.h>)
Merging pm/linux-next (6880fa6c5660 Linux 5.15-rc1)
Merging cpufreq-arm/cpufreq/arm/linux-next (4855e26bcf4d cpufreq: mediatek-hw: Add support for CPUFREQ HW)
Merging cpupower/cpupower (79a0dc5530a9 tools: cpupower: fix typo in cpupower-idle-set(1) manpage)
Merging devfreq/devfreq-next (e73f0f0ee754 Linux 5.14-rc1)
Merging opp/opp/linux-next (94274f20f6bf dt-bindings: opp: Convert to DT schema)
Merging thermal/thermal/linux-next (fc26023f8816 thermal/drivers/int340x: Fix tcc offset on resume)
Merging ieee1394/for-next (54b3bd99f094 firewire: nosy: switch from 'pci_' to 'dma_' API)
Merging dlm/next (ecd95673142e fs: dlm: avoid comms shutdown delay in release_lockspace)
Merging swiotlb/linux-next (f3c4b1341e83 swiotlb: use depends on for DMA_RESTRICTED_POOL)
Merging rdma/for-next (1b789bd4dbd4 IB/qib: Fix clang confusion of NULL pointer comparison)
Merging net-next/master (f2173257b92e Merge branch 'hns3-mac')
Merging bpf-next/for-next (67dfac47dac6 Merge branch 'libbpf: Streamline internal BPF program sections handling')
$ git reset --hard HEAD^
Merging next-20210913 version of bpf-next
Merging ipsec-next/master (9e9fb7655ed5 Merge tag 'net-next-5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next)
Merging mlx5-next/mlx5-next (6880fa6c5660 Linux 5.15-rc1)
Merging netfilter-next/master (13bb8429ca98 net: wwan: iosm: firmware flashing and coredump collection)
Merging ipvs-next/master (9e9fb7655ed5 Merge tag 'net-next-5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next)
Merging wireless-drivers-next/master (6880fa6c5660 Linux 5.15-rc1)
Merging bluetooth/master (81be03e026dc Bluetooth: RFCOMM: Replace use of memcpy_from_msg with bt_skb_sendmmsg)
Merging mac80211-next/master (626bf91a292e Merge tag 'net-5.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net)
Merging mtd/mtd/next (b72841e4dcd5 mtd: mtdswap: Remove redundant assignment of pointer eb)
Merging nand/nand/next (46a0dc10fb32 mtd: rawnand: intel: Fix potential buffer overflow in probe)
Merging spi-nor/spi-nor/next (2734d6c1b1a0 Linux 5.14-rc2)
Merging crypto/master (6ae51ffe5e76 crypto: sha512 - remove imaginary and mystifying clearing of variables)
Merging drm/drm-next (6880fa6c5660 Linux 5.15-rc1)
Merging drm-misc/for-linux-next (70982eef4d7e drm/ttm: Fix a deadlock if the target BO is not idle during swap)
Merging amdgpu/drm-next (4e055c674bd3 drm/ttm: fix the type mismatch error on sparc64)
Merging drm-intel/for-linux-next (5f0d4214938d drm/i915/dg1: Add new PCI id)
Merging drm-tegra/drm/tegra/for-next (fed028939417 gpu: host1x: debug: Dump DMASTART and DMAEND register)
Merging drm-msm/msm-next (cb0927ab80d2 drm/msi/mdp4: populate priv->kms in mdp4_kms_init)
Merging imx-drm/imx-drm/next (20fbfc81e390 drm/imx: imx-tve: Make use of the helper function devm_platform_ioremap_resource())
Merging etnaviv/etnaviv/next (81fd23e2b3cc drm/etnaviv: Implement mmap as GEM object function)
Merging regmap/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging sound/for-next (ad7cc2d41b7a ALSA: hda/realtek: Quirks to enable speaker output for Lenovo Legion 7i 15IMHG05, Yoga 7i 14ITL5/15ITL5, and 13s Gen2 laptops.)
Merging sound-asoc/for-next (8897c6ccc423 Merge remote-tracking branch 'asoc/for-5.16' into asoc-next)
Merging modules/modules-next (ced75a2f5da7 MAINTAINERS: Add Luis Chamberlain as modules maintainer)
Merging input/next (e2afe95a87a2 dt-bindings: input: Add binding for cypress-sf)
Merging block/for-next (291470332387 Merge branch 'iov_iter' into for-next)
Merging device-mapper/for-next (d3703ef33129 dm crypt: use in_hardirq() instead of deprecated in_irq())
Merging libata/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging pcmcia/pcmcia-next (e39cdacf2f66 pcmcia: i82092: fix a null pointer dereference bug)
Merging mmc/next (4ed8431c42ba Merge branch 'fixes' into next)
Merging mfd/for-mfd-next (cdff1eda6932 mfd: lpc_sch: Rename GPIOBASE to prevent build error)
Merging backlight/for-backlight-next (79fad92f2e59 backlight: pwm_bl: Improve bootloader/kernel device handover)
Merging battery/for-next (c9398455b046 power: supply: core: Fix parsing of battery chemistry/technology)
Merging regulator/for-next (fa108e34d765 Merge remote-tracking branch 'regulator/for-5.16' into regulator-next)
Merging security/next-testing (047843bdb316 Merge branch 'landlock_lsm_v34' into next-testing)
Merging apparmor/apparmor-next (d108370c644b apparmor: fix error check)
Merging integrity/next-integrity (836f7b6ca082 ima: fix deadlock when traversing "ima_default_rules".)
Merging keys/keys-next (e377c31f788f integrity: Load mokx variables into the blacklist keyring)
CONFLICT (content): Merge conflict in certs/system_keyring.c
Merging safesetid/safesetid-next (1b8b71922919 LSM: SafeSetID: Mark safesetid_initialized as __initdata)
Merging selinux/next (6880fa6c5660 Linux 5.15-rc1)
Merging smack/next (bfc3cac0c761 smack: mark 'smack_enabled' global variable as __initdata)
Merging tomoyo/master (7d2a07b76933 Linux 5.14)
Merging tpmdd/next (f985911b7bc7 crypto: public_key: fix overflow during implicit conversion)
Merging watchdog/master (41e73feb1024 dt-bindings: watchdog: Add compatible for Mediatek MT7986)
Merging iommu/next (b58886bf14da Merge branch 'iommu/fixes' into next)
Merging audit/next (d680c6b49c5e audit: Convert to SPDX identifier)
Merging devicetree/for-next (53182e81f47d kbuild: Enable DT schema checks for %.dtb targets)
Merging mailbox/mailbox-for-next (85dfdbfc13ea mailbox: cmdq: add multi-gce clocks support for mt8195)
Merging spi/for-next (69dde9e5a835 Merge remote-tracking branch 'spi/for-5.16' into spi-next)
Merging tip/auto-latest (019a926fcae5 Merge branch 'perf/core')
Merging clockevents/timers/drivers/next (f196ae282070 dt-bindings: timer: Add ABIs for new Ingenic SoCs)
Merging edac/edac-for-next (cf4e6d52f583 EDAC/i10nm: Retrieve and print retry_rd_err_log registers)
Merging irqchip/irq/irqchip-next (6e3b473ee064 Merge branch irq/qcom-pdc-nowake-cleanup into irq/irqchip-next)
Merging ftrace/for-next (8e9f0934a07e bootconfig: Free copied bootconfig data after boot)
CONFLICT (content): Merge conflict in lib/bootconfig.c
Merging rcu/rcu/next (337b129c01e1 clocksource: Forgive repeated long-latency watchdog clocksource reads)
Merging kvm/next (109bbba5066b KVM: Drop unused kvm_dirty_gfn_invalid())
Merging kvm-arm/next (419025b3b419 Merge branch kvm-arm64/misc-5.15 into kvmarm-master/next)
Merging kvm-ppc/kvm-ppc-next (72476aaa4691 KVM: PPC: Book3S HV: Fix host radix SLB optimisation with hash guests)
Merging kvms390/next (a3e03bc1368c KVM: s390: index kvm->arch.idle_mask by vcpu_idx)
Merging xen-tip/linux-next (0a3b748e7c71 swiotlb-xen: drop DEFAULT_NSLABS)
$ git reset --hard HEAD^
Merging next-20210914 version of xen-tip
Merging percpu/for-next (a81a52b325ec Merge branch 'for-5.14-fixes' into for-next)
Merging workqueues/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging drivers-x86/for-next (1f88e0a22f7c platform/x86: acer-wmi: use __packed instead of __attribute__((packed)))
Merging chrome-platform/for-next (4665584888ad platform/chrome: cros_ec_trace: Fix format warnings)
Merging hsi/for-next (e73f0f0ee754 Linux 5.14-rc1)
Merging leds/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging ipmi/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging driver-core/driver-core-next (6880fa6c5660 Linux 5.15-rc1)
Merging usb/usb-next (6880fa6c5660 Linux 5.15-rc1)
Merging usb-gadget/next (e49d033bddf5 Linux 5.12-rc6)
Merging usb-serial/usb-next (6880fa6c5660 Linux 5.15-rc1)
Merging usb-chipidea-next/for-usb-next (78665f57c3fa usb: chipidea: udc: make controller hardware endpoint primed)
Merging tty/tty-next (6880fa6c5660 Linux 5.15-rc1)
Merging char-misc/char-misc-next (6880fa6c5660 Linux 5.15-rc1)
Merging extcon/extcon-next (a864e1bf1fbb extcon: max3355: Drop unused include)
Merging phy-next/next (6880fa6c5660 Linux 5.15-rc1)
Merging soundwire/next (6880fa6c5660 Linux 5.15-rc1)
Merging thunderbolt/next (6880fa6c5660 Linux 5.15-rc1)
Merging vfio/next (ea870730d83f Merge branches 'v5.15/vfio/spdx-license-cleanups', 'v5.15/vfio/dma-valid-waited-v3', 'v5.15/vfio/vfio-pci-core-v5' and 'v5.15/vfio/vfio-ap' into v5.15/vfio/next)
Merging staging/staging-next (8757f705d936 staging: vchiq_dev: cleanup code alignment issues)
Merging iio/togreg (d484c21bacfa iio: adc: Add driver for Renesas RZ/G2L A/D converter)
Merging mux/for-next (3516bd729358 Merge tag 's390-5.11-3' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux)
Merging icc/icc-next (8bf5d31c4f06 interconnect: qcom: osm-l3: Use driver-specific naming)
Merging dmaengine/next (6880fa6c5660 Linux 5.15-rc1)
Merging cgroup/for-next (c0002d11d799 cgroupv2, docs: fix misinformation in "device controller" section)
Merging scsi/for-next (1a0db7744e45 scsi: bsg: Fix device unregistration)
Merging scsi-mkp/for-next (e018f03d6ccb scsi: libiscsi: Move ehwait initialization to iscsi_session_setup())
Merging vhost/linux-next (be9c6bad9b46 vdpa: potential uninitialized return in vhost_vdpa_va_map())
Merging rpmsg/for-next (99fdaca991f7 Merge branches 'hwspinlock-next', 'rpmsg-next' and 'rproc-next' into for-next)
Merging gpio/for-next (7ac554888233 MAINTAINERS: Remove reference to non-existing file)
Merging gpio-brgl/gpio/for-next (3ea046564039 dt-bindings: gpio: add gpio-line-names to rockchip,gpio-bank.yaml)
Merging gpio-intel/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging pinctrl/for-next (04853352952b Merge tag 'samsung-pinctrl-5.15' of https://git.kernel.org/pub/scm/linux/kernel/git/pinctrl/samsung into devel)
Merging pinctrl-intel/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging pinctrl-renesas/renesas-pinctrl (075667cc6c29 pinctrl: renesas: No need to initialise global statics)
Merging pinctrl-samsung/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging pwm/for-next (3f2b16734914 pwm: mtk-disp: Implement atomic API .get_state())
Merging userns/for-next (a3be01837fc9 Merge of ucount-fixes-for-5.14, siginfo-si_trapno-for-v5.15, and exit-cleanups-for-v5.15 for testing in linux-next)
CONFLICT (content): Merge conflict in include/linux/sched/signal.h
Merging ktest/for-next (170f4869e662 ktest.pl: Fix the logic for truncating the size of the log file for email)
Merging kselftest/next (6880fa6c5660 Linux 5.15-rc1)
Merging livepatching/for-next (cd2d68f2d6b2 Merge branch 'for-5.15/cpu-hotplug' into for-next)
Merging coresight/next (1efbcec2ef8c coresight: cti: Reduce scope for the variable “cs_fwnode” in cti_plat_create_connection())
Merging rtc/rtc-next (6880fa6c5660 Linux 5.15-rc1)
Merging nvdimm/libnvdimm-for-next (bdd3c50d83bf dax: remove bdev_dax_supported)
Merging at24/at24/for-next (762925405482 dt-bindings: at24: add ON Semi CAT24C04 and CAT24C05)
Merging ntb/ntb-next (f96cb827ce49 ntb: ntb_pingpong: remove redundant initialization of variables msg_data and spad_data)
Merging seccomp/for-next/seccomp (b4d8a58f8dcf seccomp: Fix setting loaded filter count during TSYNC)
Merging kspp/for-next/kspp (0c2406ffcdfe Merge branch 'for-next/overflow' into for-next/kspp)
CONFLICT (content): Merge conflict in include/linux/compiler_types.h
CONFLICT (content): Merge conflict in include/linux/compiler-gcc.h
CONFLICT (modify/delete): drivers/staging/rtl8188eu/include/ieee80211.h deleted in HEAD and modified in kspp/for-next/kspp. Version kspp/for-next/kspp of drivers/staging/rtl8188eu/include/ieee80211.h left in tree.
$ git rm -f drivers/staging/rtl8188eu/include/ieee80211.h
Merging cisco/for-next (9e98c678c2d6 Linux 5.1-rc1)
Merging gnss/gnss-next (0f79ce970e79 gnss: drop stray semicolons)
Merging fsi/next (9ab1428dfe2c fsi/sbefifo: Fix reset timeout)
Merging slimbus/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging nvmem/for-next (536267aafb8a nvmem: core: Add stubs for nvmem_cell_read_variable_le_u32/64 if !CONFIG_NVMEM)
Merging xarray/main (2c7e57a02708 idr test suite: Improve reporting from idr_find_test_1)
Merging hyperv/hyperv-next (9d68cd9120e4 hv_utils: Set the maximum packet size for VSS driver to the length of the receive buffer)
Merging auxdisplay/auxdisplay (24ebc044c72e auxdisplay: Replace symbolic permissions with octal permissions)
Merging kgdb/kgdb/for-next (f8416aa29185 kernel: debug: Convert to SPDX identifier)
Merging hmm/hmm (6880fa6c5660 Linux 5.15-rc1)
Merging fpga/for-next (4f45f3404960 spi: spi-altera-dfl: support n5010 feature revision)
Merging kunit/test (6880fa6c5660 Linux 5.15-rc1)
Merging cfi/cfi/next (ff1176468d36 Linux 5.14-rc3)
Merging kunit-next/kunit (6880fa6c5660 Linux 5.15-rc1)
Merging trivial/for-next (9ff9b0d392ea Merge tag 'net-next-5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next)
Merging mhi/mhi-next (813272ed5238 Merge 5.14-rc5 into char-misc-next)
Merging memblock/for-next (e888fa7bb882 memblock: Check memory add/cap ordering)
Merging init/init-user-pointers (38b082236e77 initramfs: use vfs_utimes in do_copy)
Merging counters/counters (e71ba9452f0b Linux 5.11-rc2)
Merging rust/rust-next (5d3986cf8ed6 MAINTAINERS: Rust)
CONFLICT (content): Merge conflict in include/linux/kallsyms.h
CONFLICT (content): Merge conflict in Makefile
Applying: fixup for rust integration with Makefile.clang creation
Merging cxl/next (2b922a9d064f cxl/registers: Fix Documentation warning)
Merging folio/for-next (1a90e9dae32c mm/writeback: Add folio_write_one)
CONFLICT (content): Merge conflict in mm/util.c
CONFLICT (content): Merge conflict in mm/rmap.c
CONFLICT (content): Merge conflict in mm/page-writeback.c
CONFLICT (content): Merge conflict in mm/memcontrol.c
CONFLICT (content): Merge conflict in mm/filemap.c
CONFLICT (content): Merge conflict in include/linux/memcontrol.h
Merging akpm-current/current (1ee31a7d5844 hfsplus: fix out-of-bounds warnings in __hfsplus_setxattr)
$ git checkout -b akpm remotes/origin/akpm/master
$ git rebase --onto master remotes/origin/akpm/master-base
Merging akpm/master (1de928b1c19b mm/vmalloc: add __alloc_size attributes for better bounds checking)

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

^ permalink raw reply	[relevance 1%]

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

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

Hi all,

Changes since 20210915:

The bpf-next tree still had its build failure so I used the version from
next-20210913.

The kspp tree gained a build failure so I used the version from
next-20210915.

Non-merge commits (relative to Linus' tree): 2059
 2225 files changed, 109488 insertions(+), 35397 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 are also quilt-import.log and merge.log
files 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, 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 335 trees (counting Linus' and 90 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 (b7213ffa0e58 qnx4: avoid stringop-overread errors)
Merging fixes/fixes (3ca706c189db drm/ttm: fix type mismatch error on sparc64)
Merging kbuild-current/fixes (926de8c4326c Merge tag 'acpi-5.15-rc1-3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm)
Merging arc-current/for-curr (6880fa6c5660 Linux 5.15-rc1)
Merging arm-current/fixes (463dbba4d189 ARM: 9104/2: Fix Keystone 2 kernel mapping regression)
Merging arm64-fixes/for-next/fixes (3eb9cdffb397 Partially revert "arm64/mm: drop HAVE_ARCH_PFN_VALID")
Merging arm-soc-fixes/arm/fixes (3f1c260ffddb MAINTAINERS: Add myself as MStar/Sigmastar Armv7 SoC maintainers)
Merging drivers-memory-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging m68k-current/for-linus (a7b68ed15d1f m68k: mvme: Remove overdue #warnings in RTC handling)
Merging powerpc-fixes/fixes (787c70f2f999 powerpc/64s: Fix scv implicit soft-mask table for relocated kernels)
Merging s390-fixes/fixes (f5711f9df924 s390: remove WARN_DYNAMIC_STACK)
Merging sparc/master (05a59d79793d Merge git://git.kernel.org:/pub/scm/linux/kernel/git/netdev/net)
Merging fscrypt-current/for-stable (d19d8d345eec fscrypt: fix inline encryption not used on new files)
Merging net/master (a57d8c217aad net: dsa: flush switchdev workqueue before tearing down CPU/DSA ports)
Merging bpf/master (bc23f7244817 bpf/tests: Add tail call limit test with external function call)
Merging ipsec/master (844f7eaaed92 include/uapi/linux/xfrm.h: Fix XFRM_MSG_MAPPING ABI breakage)
Merging netfilter/master (310e2d43c3ad netfilter: ip6_tables: zero-initialize fragment offset)
Merging ipvs/master (69e73dbfda14 ipvs: check that ip_vs_conn_tab_bits is between 8 and 20)
Merging wireless-drivers/master (e4457a45b41c iwlwifi: fix printk format warnings in uefi.c)
Merging mac80211/master (7366c23ff492 ptp: dp83640: don't define PAGE0)
Merging rdma-fixes/for-rc (1b789bd4dbd4 IB/qib: Fix clang confusion of NULL pointer comparison)
Merging sound-current/for-linus (ad7cc2d41b7a ALSA: hda/realtek: Quirks to enable speaker output for Lenovo Legion 7i 15IMHG05, Yoga 7i 14ITL5/15ITL5, and 13s Gen2 laptops.)
Merging sound-asoc-fixes/for-linus (8ba4d271dec5 Merge remote-tracking branch 'asoc/for-5.15' into asoc-linus)
Merging regmap-fixes/for-linus (6880fa6c5660 Linux 5.15-rc1)
Merging regulator-fixes/for-linus (c79bf1d4ee3e Merge remote-tracking branch 'regulator/for-5.15' into regulator-linus)
Merging spi-fixes/for-linus (c6636bc07565 Merge remote-tracking branch 'spi/for-5.15' into spi-linus)
Merging pci-current/for-linus (e042a4533fc3 MAINTAINERS: Add Nirmal Patel as VMD maintainer)
Merging driver-core.current/driver-core-linus (6880fa6c5660 Linux 5.15-rc1)
Merging tty.current/tty-linus (7049d853cfb9 tty: unexport tty_ldisc_release)
Merging usb.current/usb-linus (da546d6b748e arm64: dts: qcom: ipq8074: remove USB tx-fifo-resize property)
Merging usb-gadget-fixes/fixes (e49d033bddf5 Linux 5.12-rc6)
Merging usb-serial-fixes/usb-linus (7bb057134d60 USB: serial: option: add Telit LN920 compositions)
Merging usb-chipidea-fixes/for-usb-fixes (98a1373a2de9 usb: cdns3: fix race condition before setting doorbell)
Merging phy/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging staging.current/staging-linus (92dc0b1f46e1 staging: greybus: uart: fix tty use after free)
Merging iio-fixes/fixes-togreg (1a913270e57a iio: adc: ad7793: Fix IRQ flag)
Merging char-misc.current/char-misc-linus (25a143321648 mcb: fix error handling in mcb_alloc_bus())
Merging soundwire-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging thunderbolt-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging input-current/for-linus (0c5483a5778f Input: analog - always use ktime functions)
Merging crypto-current/master (6ae51ffe5e76 crypto: sha512 - remove imaginary and mystifying clearing of variables)
Merging vfio-fixes/for-linus (dc51ff91cf2d vfio/platform: fix module_put call in error flow)
Merging kselftest-fixes/fixes (8914a7a247e0 selftests: be sure to make khdr before other targets)
Merging modules-fixes/modules-linus (055f23b74b20 module: check for exit sections in layout_sections() instead of module_init_section())
Merging dmaengine-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging backlight-fixes/for-backlight-fixes (a38fd8748464 Linux 5.12-rc2)
Merging mtd-fixes/mtd/fixes (f60f5741002b mtd: rawnand: qcom: Update code word value for raw read)
Merging mfd-fixes/for-mfd-fixes (a61f4661fba4 mfd: intel_quark_i2c_gpio: Revert "Constify static struct resources")
Merging v4l-dvb-fixes/fixes (3ad02c27d89d media: s5p-jpeg: rename JPEG marker constants to prevent build warnings)
Merging reset-fixes/reset/fixes (ed104ca4bd9c reset: reset-zynqmp: Fixed the argument data type)
Merging mips-fixes/mips-fixes (6880fa6c5660 Linux 5.15-rc1)
Merging at91-fixes/at91-fixes (4348cc10da63 ARM: dts: at91: sama5d2_som1_ek: disable ISC node by default)
Merging omap-fixes/fixes (e879f855e590 bus: ti-sysc: Add break in switch statement in sysc_init_soc())
Merging kvm-fixes/master (7d2a07b76933 Linux 5.14)
Merging kvms390-fixes/master (cd4220d23bf3 KVM: selftests: do not require 64GB in set_memory_region_test)
Merging hwmon-fixes/hwmon (23c69b90365c hwmon: (k10temp) Remove residues of current and voltage)
Merging nvdimm-fixes/libnvdimm-fixes (32b2397c1e56 libnvdimm/pmem: Fix crash triggered when I/O in-flight during unbind)
Merging cxl-fixes/fixes (fae8817ae804 cxl/mem: Fix memory device capacity probing)
Merging btrfs-fixes/next-fixes (7f6fe94c91a4 Merge branch 'misc-5.15' into next-fixes)
Merging vfs-fixes/fixes (173e84953eaa fs: fix reporting supported extra file attributes for statx())
Merging dma-mapping-fixes/for-linus (18a3c5f7abfd Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost)
Merging i3c-fixes/i3c/fixes (fe07bfda2fb9 Linux 5.12-rc1)
Merging drivers-x86-fixes/fixes (3c3c8e88c871 platform/x86: amd-pmc: Increase the response register timeout)
Merging samsung-krzk-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging pinctrl-samsung-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging devicetree-fixes/dt/linus (3782326577d4 Revert "of: property: fw_devlink: Add support for "phy-handle" property")
Merging scsi-fixes/fixes (1a0db7744e45 scsi: bsg: Fix device unregistration)
Merging drm-fixes/drm-fixes (6880fa6c5660 Linux 5.15-rc1)
Merging amdgpu-fixes/drm-fixes (2c409ba81be2 drm/radeon: fix si_enable_smc_cac() failed issue)
Merging drm-intel-fixes/for-linux-next-fixes (7889367d7795 drm/i915: Enable -Wsometimes-uninitialized)
Merging mmc-fixes/fixes (b81bede4d138 mmc: renesas_sdhi: fix regression with hard reset on old SDHIs)
Merging rtc-fixes/rtc-fixes (bd33335aa93d rtc: cmos: Disable irq around direct invocation of cmos_interrupt())
Merging gnss-fixes/gnss-linus (e73f0f0ee754 Linux 5.14-rc1)
Merging hyperv-fixes/hyperv-fixes (dfb5c1e12c28 x86/hyperv: remove on-stack cpumask from hv_send_ipi_mask_allbutself)
Merging soc-fsl-fixes/fix (c1e64c0aec8c soc: fsl: qe: fix static checker warning)
Merging risc-v-fixes/fixes (7d2a07b76933 Linux 5.14)
Merging pidfd-fixes/fixes (03ba0fe4d09f file: simplify logic in __close_range())
Merging fpga-fixes/fixes (a1e4470823d9 fpga: machxo2-spi: Fix missing error code in machxo2_write_complete())
Merging spdx/spdx-linus (6880fa6c5660 Linux 5.15-rc1)
Merging gpio-brgl-fixes/gpio/for-current (6880fa6c5660 Linux 5.15-rc1)
Merging gpio-intel-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging pinctrl-intel-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging erofs-fixes/fixes (0852b6ca941e erofs: fix 1 lcluster-sized pcluster for big pcluster)
Merging integrity-fixes/fixes (843385694721 evm: Fix a small race in init_desc())
Merging kunit-fixes/kunit-fixes (6880fa6c5660 Linux 5.15-rc1)
Merging ubifs-fixes/fixes (78c7d49f55d8 ubifs: journal: Make sure to not dirty twice for auth nodes)
Merging memblock-fixes/fixes (024591f9a6e0 arm: ioremap: don't abuse pfn_valid() to check if pfn is in RAM)
Merging cel-fixes/for-rc (9f4ad9e425a1 Linux 5.12)
Merging irqchip-fixes/irq/irqchip-fixes (0ddc5e55e6f1 Documentation: Fix irq-domain.rst build warning)
Merging renesas-fixes/fixes (432b52eea3dc ARM: shmobile: defconfig: Restore graphical consoles)
Merging drm-misc-fixes/for-linux-next-fixes (4209f03fcb8e drm/vc4: hdmi: Warn if we access the controller while disabled)
Merging kspp-gustavo/for-next/kspp (926ade1092a3 Merge branch 'for-next/clang-fallthrough' into for-next/kspp)
Merging kbuild/for-next (860091ee86e6 riscv: move the (z)install rules to arch/riscv/Makefile)
Merging compiler-attributes/compiler-attributes (b83a908498d6 compiler_attributes.h: move __compiletime_{error|warning})
Merging dma-mapping/for-next (59583f747664 sparc32: page align size in arch_dma_alloc)
Merging asm-generic/master (7962c2eddbfe arch: remove unused function syscall_set_arguments())
Merging arc/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging arm/for-next (1c9b5911f53b Merge branches 'fixes' and 'misc' into for-next)
Merging arm64/for-next/core (85f58eb18898 arm64: kdump: Skip kmemleak scan reserved memory for kdump)
Merging arm-perf/for-next/perf (fd264b310579 arm64/perf: Replace '0xf' instances with ID_AA64DFR0_PMUVER_IMP_DEF)
Merging arm-soc/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging actions/for-next (444d018d8d38 ARM: dts: owl-s500-roseapplepi: Add ATC2603C PMIC)
Merging amlogic/for-next (faae6a457101 Merge branches 'v5.16/dt64' and 'v5.16/drivers' into for-next)
Merging aspeed/for-next (0f32f00af344 Merge branches 'dt-for-v5.15', 'soc-for-v5.15' and 'defconfig-for-v5.15' into for-next)
Merging at91/at91-next (9648a43994eb Merge branch 'at91-fixes' into at91-next)
Merging drivers-memory/for-next (6fc5f1adf5a1 memory: tegra210-emc: replace DEFINE_SIMPLE_ATTRIBUTE with DEFINE_DEBUGFS_ATTRIBUTE)
Merging imx-mxs/for-next (2cb411d89676 Merge branch 'imx/defconfig' into for-next)
Merging keystone/next (cb293d3b430e Merge branch 'for_5.15/drivers-soc' into next)
Merging mediatek/for-next (69862ae4e378 Merge branch 'v5.14-next/soc' into for-next)
Merging mvebu/for-next (930af8dda750 Merge branch 'mvebu/dt64' into mvebu/for-next)
Merging omap/for-next (7911f95d1713 Merge branch 'fixes' into for-next)
Merging qcom/for-next (8482d1c0bb62 Merge branches 'arm64-for-5.16', 'drivers-for-5.16' and 'dts-for-5.16' into for-next)
Merging raspberrypi/for-next (9f5289ec6f1c ARM: dts: bcm2711-rpi-4-b: Fix usb's unit address)
Merging renesas/next (cbbd8f16ae1c Merge branches 'renesas-arm-dt-for-v5.16', 'renesas-drivers-for-v5.16' and 'renesas-dt-bindings-for-v5.16' into renesas-next)
Merging reset/reset/next (09f3824342f6 reset: simple: remove ZTE details in Kconfig help)
Merging rockchip/for-next (d46148623f26 Merge branch 'v5.15-armsoc/dts64' into for-next)
Merging samsung-krzk/for-next (bf38db50e9eb Merge branch 'next/drivers' into for-next)
Merging scmi/for-linux-next (b1d6695c249e Merge branch 'for-next/scmi' of git://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux into for-linux-next)
Merging stm32/stm32-next (1e6bc5987a52 ARM: dts: stm32: Update AV96 adv7513 node per dtbs_check)
Merging sunxi/sunxi/for-next (bb289f4c0b2b Merge branches 'sunxi/clk-for-5.16', 'sunxi/core-for-5.16', 'sunxi/drivers-for-5.16', 'sunxi/dt-for-5.16' and 'sunxi/fixes-for-5.15' into sunxi/for-next)
Merging tegra/for-next (cc701ccede61 Merge branch for-5.15/arm64/dt into for-next)
Merging ti-k3/ti-k3-next (1e3d655fe7b4 Merge branch 'ti-k3-config-next' into ti-k3-next)
Merging ti-k3-new/ti-k3-next (500e6dfbb465 arm64: dts: ti: k3-am64-mcu: Add pinctrl)
Merging xilinx/for-next (35a7430dad4d arm64: zynqmp: Wire psgtr for zc1751-xm013)
Merging clk/clk-next (1cbc04ffedcc Merge branch 'clk-mtk' into clk-next)
Merging clk-imx/for-next (ac061f88cf1d clk: imx: Rework imx_clk_hw_pll14xx wrapper)
Merging clk-renesas/renesas-clk (8ac4aedcf7b3 clk: renesas: r8a779a0: Add TPU clock)
Merging clk-samsung/for-next (1d26eaeec37a clk: samsung: s5pv210-audss: Make use of devm_platform_ioremap_resource())
Merging csky/linux-next (90dc8c0e664e csky: Kconfig: Remove unused selects)
Merging h8300/h8300-next (1ec10274d436 h8300: don't implement set_fs)
Merging m68k/for-next (a7b68ed15d1f m68k: mvme: Remove overdue #warnings in RTC handling)
Merging m68knommu/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging microblaze/next (6880fa6c5660 Linux 5.15-rc1)
Merging mips/mips-next (6880fa6c5660 Linux 5.15-rc1)
Merging nds32/next (07cd7745c6f2 nds32/setup: remove unused memblock_region variable in setup_memory())
CONFLICT (content): Merge conflict in arch/nds32/Kconfig
Merging nios2/for-next (7f7bc20bc41a nios2: Don't use _end for calculating min_low_pfn)
Merging openrisc/for-next (1955d843efc3 openrisc/litex: Update defconfig)
Merging parisc-hd/for-next (1530bf2852cc Define and export PAGE0 in vmlinux.lds.S linker script)
Merging powerpc/next (a3314262eede Merge branch 'fixes' into next)
Merging soc-fsl/next (242b0b398ccd soc: fsl: enable acpi support in RCPM driver)
Merging risc-v/for-next (6f55ab36bef5 riscv: Move EXCEPTION_TABLE to RO_DATA segment)
Merging s390/for-next (9ec953c0a7e1 Merge branch 'fixes' into for-next)
Merging sh/for-next (2882b7626f49 sh: kernel: traps: remove unused variable)
Merging sparc-next/master (dd0d718152e4 Merge tag 'spi-fix-v5.8-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi)
Merging uml/linux-next (234640275675 um: rename set_signals() to um_set_signals())
Merging xtensa/xtensa-for-next (7b7cec477fc3 xtensa: move core-y in arch/xtensa/Makefile to arch/xtensa/Kbuild)
Merging pidfd/for-next (f4dd02cd8631 Merge branch 'kernel.sys' into for-next)
Merging fscrypt/master (38ef66b05cfa fscrypt: document struct fscrypt_operations)
Merging fscache/fscache-next (20ec197bfa13 fscache: Use refcount_t for the cookie refcount instead of atomic_t)
Merging afs/afs-next (7af08140979a Revert "gcov: clang: fix clang-11+ build")
Merging btrfs/for-next (e51480e6f4f8 Merge branch 'for-next-next-v5.15-20210913' into for-next-20210913)
Merging ceph/master (4b0b8836ebba ceph: fix off by one bugs in unsafe_request_wait())
Merging cifs/for-next (c1abf1305957 cifs: rename uapi/linux/cifs directory to uapi/linux/smbfs_client)
Merging cifsd/cifsd-for-next (bf9f243f23e6 Merge tag '5.15-rc-ksmbd-part2' of git://git.samba.org/ksmbd)
Merging configfs/for-next (c42dd069be8d configfs: fix a race in configfs_lookup())
Merging ecryptfs/next (682a8e2b41ef Merge tag 'ecryptfs-5.13-rc1-updates' of git://git.kernel.org/pub/scm/linux/kernel/git/tyhicks/ecryptfs)
Merging erofs/dev (1266b4a7ecb6 erofs: fix double free of 'copied')
Merging exfat/dev (50be9417e23a Merge tag 'io_uring-5.14-2021-07-09' of git://git.kernel.dk/linux-block)
Merging ext3/for_next (ed518dd035fa Pull udf xattr sanity checks.)
Merging ext4/dev (948ca5f30e1d ext4: enforce buffer head state assertion in ext4_da_map_blocks)
Merging f2fs/dev (1dbe7e386f50 Merge tag 'block-5.15-2021-09-05' of git://git.kernel.dk/linux-block)
Merging fsverity/fsverity (07c99001312c fs-verity: support reading signature with ioctl)
Merging fuse/for-next (7a41554fdfb0 fuse: move fuse_invalidate_attr() into fuse_update_ctime())
Merging gfs2/for-next (08d736667185 gfs2: Remove redundant check from gfs2_glock_dq)
Merging jfs/jfs-next (5d299f44d765 jfs: Avoid field-overflowing memcpy())
Merging nfs/linux-next (6880fa6c5660 Linux 5.15-rc1)
Merging nfs-anna/linux-next (8cfb9015280d NFS: Always provide aligned buffers to the RPC read layers)
Merging nfsd/nfsd-next (e22ce8eb631b Linux 5.14-rc7)
Merging cel/for-next (0c217d5066c8 SUNRPC: improve error response to over-size gss credential)
Merging ntfs3/master (8e69212253d3 fs/ntfs3: Always use binary search with entry search)
Merging orangefs/for-next (0fdec1b3c9fb orangefs: fix orangefs df output.)
Merging overlayfs/overlayfs-next (332f606b32b6 ovl: enable RCU'd ->get_acl())
Merging ubifs/next (a801fcfeef96 ubifs: Set/Clear I_LINKABLE under i_lock for whiteout inode)
Merging v9fs/9p-next (9c4d94dc9a64 net/9p: increase default msize to 128k)
Merging xfs/for-next (f38a032b165d xfs: fix I_DONTCACHE)
Merging zonefs/for-next (95b115332a83 zonefs: remove redundant null bio check)
Merging iomap/iomap-for-next (03b8df8d43ec iomap: standardize tracepoint formatting and storage)
Merging djw-vfs/vfs-for-next (d03ef4daf33a fs: forbid invalid project ID)
Merging file-locks/locks-next (90f7d7a0d0d6 locks: remove LOCK_MAND flock lock support)
Merging vfs/for-next (8f40da9494cf Merge branch 'misc.namei' into for-next)
Merging printk/for-next (9980c4251f8d printk: use kvmalloc instead of kmalloc for devkmsg_user)
Merging pci/next (6880fa6c5660 Linux 5.15-rc1)
Merging pstore/for-next/pstore (c5d4fb2539ca pstore/blk: Use "%lu" to format unsigned long)
Merging hid/for-next (8b52e0e06827 Merge branch 'for-5.15/upstream-fixes' into for-next)
Merging i2c/i2c/for-next (294b29f15469 i2c: xiic: Fix RX IRQ busy check)
Merging i3c/i3c/next (41a0430dd5ca i3c/master/mipi-i3c-hci: Prefer kcalloc over open coded arithmetic)
Merging dmi/dmi-for-next (f97a2103f1a7 firmware: dmi: Move product_sku info to the end of the modalias)
Merging hwmon-staging/hwmon-next (a5da30eed75c hwmon: Add Maxim MAX6620 hardware monitoring driver)
Merging jc_docs/docs-next (242f4c77b1c8 docs: zh_TW/index: Move arm64/index to arch-specific section)
Merging v4l-dvb/master (9c3a0f285248 Merge tag 'v5.14-rc4' into media_tree)
Merging v4l-dvb-next/master (d62cd4d277cc media: uvcvideo: Remove unused including <linux/version.h>)
Merging pm/linux-next (7f2d17677d02 Merge branches 'pm-cpufreq' and 'acpi-x86' into linux-next)
Merging cpufreq-arm/cpufreq/arm/linux-next (4855e26bcf4d cpufreq: mediatek-hw: Add support for CPUFREQ HW)
Merging cpupower/cpupower (79a0dc5530a9 tools: cpupower: fix typo in cpupower-idle-set(1) manpage)
Merging devfreq/devfreq-next (6880fa6c5660 Linux 5.15-rc1)
Merging opp/opp/linux-next (94274f20f6bf dt-bindings: opp: Convert to DT schema)
Merging thermal/thermal/linux-next (fc26023f8816 thermal/drivers/int340x: Fix tcc offset on resume)
Merging ieee1394/for-next (54b3bd99f094 firewire: nosy: switch from 'pci_' to 'dma_' API)
Merging dlm/next (ecd95673142e fs: dlm: avoid comms shutdown delay in release_lockspace)
Merging swiotlb/linux-next (f3c4b1341e83 swiotlb: use depends on for DMA_RESTRICTED_POOL)
Merging rdma/for-next (1b789bd4dbd4 IB/qib: Fix clang confusion of NULL pointer comparison)
Merging net-next/master (5706383b30cf Merge branch 'mlxsw-Add-support-for-transceiver-modules-reset')
Merging bpf-next/for-next (336562752acc bpf: Update bpf_get_smp_processor_id() documentation)
$ git reset --hard HEAD^
Merging next-20210913 version of bpf-next
Merging ipsec-next/master (9e9fb7655ed5 Merge tag 'net-next-5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next)
Merging mlx5-next/mlx5-next (6880fa6c5660 Linux 5.15-rc1)
Merging netfilter-next/master (13bb8429ca98 net: wwan: iosm: firmware flashing and coredump collection)
Merging ipvs-next/master (13bb8429ca98 net: wwan: iosm: firmware flashing and coredump collection)
Merging wireless-drivers-next/master (6880fa6c5660 Linux 5.15-rc1)
Merging bluetooth/master (81be03e026dc Bluetooth: RFCOMM: Replace use of memcpy_from_msg with bt_skb_sendmmsg)
Merging mac80211-next/master (339133f6c318 net: dsa: tag_rtl4_a: Drop bit 9 from egress frames)
Merging mtd/mtd/next (b72841e4dcd5 mtd: mtdswap: Remove redundant assignment of pointer eb)
Merging nand/nand/next (46a0dc10fb32 mtd: rawnand: intel: Fix potential buffer overflow in probe)
Merging spi-nor/spi-nor/next (2734d6c1b1a0 Linux 5.14-rc2)
Merging crypto/master (6ae51ffe5e76 crypto: sha512 - remove imaginary and mystifying clearing of variables)
Merging drm/drm-next (6880fa6c5660 Linux 5.15-rc1)
Merging drm-misc/for-linux-next (70982eef4d7e drm/ttm: Fix a deadlock if the target BO is not idle during swap)
Merging amdgpu/drm-next (d654f1a778aa drm/radeon: Add HD-audio component notifier support (v2))
Merging drm-intel/for-linux-next (f6d66fc8cf5f drm/i915: Update memory bandwidth parameters)
Merging drm-tegra/drm/tegra/for-next (fed028939417 gpu: host1x: debug: Dump DMASTART and DMAEND register)
Merging drm-msm/msm-next (cb0927ab80d2 drm/msi/mdp4: populate priv->kms in mdp4_kms_init)
Merging imx-drm/imx-drm/next (20fbfc81e390 drm/imx: imx-tve: Make use of the helper function devm_platform_ioremap_resource())
Merging etnaviv/etnaviv/next (81fd23e2b3cc drm/etnaviv: Implement mmap as GEM object function)
Merging regmap/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging sound/for-next (ad7cc2d41b7a ALSA: hda/realtek: Quirks to enable speaker output for Lenovo Legion 7i 15IMHG05, Yoga 7i 14ITL5/15ITL5, and 13s Gen2 laptops.)
Merging sound-asoc/for-next (d275ba2f11f7 Merge remote-tracking branch 'asoc/for-5.16' into asoc-next)
Merging modules/modules-next (ced75a2f5da7 MAINTAINERS: Add Luis Chamberlain as modules maintainer)
Merging input/next (e2afe95a87a2 dt-bindings: input: Add binding for cypress-sf)
Merging block/for-next (103ae307a281 Merge branch 'for-5.16/cdrom' into for-next)
Merging device-mapper/for-next (d3703ef33129 dm crypt: use in_hardirq() instead of deprecated in_irq())
Merging libata/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging pcmcia/pcmcia-next (e39cdacf2f66 pcmcia: i82092: fix a null pointer dereference bug)
Merging mmc/next (4ed8431c42ba Merge branch 'fixes' into next)
Merging mfd/for-mfd-next (cdff1eda6932 mfd: lpc_sch: Rename GPIOBASE to prevent build error)
Merging backlight/for-backlight-next (79fad92f2e59 backlight: pwm_bl: Improve bootloader/kernel device handover)
Merging battery/for-next (c9398455b046 power: supply: core: Fix parsing of battery chemistry/technology)
Merging regulator/for-next (90eb1b39e73f Merge remote-tracking branch 'regulator/for-5.16' into regulator-next)
Merging security/next-testing (047843bdb316 Merge branch 'landlock_lsm_v34' into next-testing)
Merging apparmor/apparmor-next (d108370c644b apparmor: fix error check)
Merging integrity/next-integrity (836f7b6ca082 ima: fix deadlock when traversing "ima_default_rules".)
Merging keys/keys-next (e377c31f788f integrity: Load mokx variables into the blacklist keyring)
CONFLICT (content): Merge conflict in certs/system_keyring.c
Merging safesetid/safesetid-next (1b8b71922919 LSM: SafeSetID: Mark safesetid_initialized as __initdata)
Merging selinux/next (6880fa6c5660 Linux 5.15-rc1)
Merging smack/next (0817534ff9ea smackfs: Fix use-after-free in netlbl_catmap_walk())
Merging tomoyo/master (7d2a07b76933 Linux 5.14)
Merging tpmdd/next (f985911b7bc7 crypto: public_key: fix overflow during implicit conversion)
Merging watchdog/master (41e73feb1024 dt-bindings: watchdog: Add compatible for Mediatek MT7986)
Merging iommu/next (b58886bf14da Merge branch 'iommu/fixes' into next)
Merging audit/next (d680c6b49c5e audit: Convert to SPDX identifier)
Merging devicetree/for-next (53182e81f47d kbuild: Enable DT schema checks for %.dtb targets)
Merging mailbox/mailbox-for-next (85dfdbfc13ea mailbox: cmdq: add multi-gce clocks support for mt8195)
Merging spi/for-next (69dde9e5a835 Merge remote-tracking branch 'spi/for-5.16' into spi-next)
Merging tip/auto-latest (019a926fcae5 Merge branch 'perf/core')
Merging clockevents/timers/drivers/next (f196ae282070 dt-bindings: timer: Add ABIs for new Ingenic SoCs)
Merging edac/edac-for-next (fca611656418 EDAC/mc: Replace strcpy(), sprintf() and snprintf() with strscpy() or scnprintf())
Merging irqchip/irq/irqchip-next (6e3b473ee064 Merge branch irq/qcom-pdc-nowake-cleanup into irq/irqchip-next)
Merging ftrace/for-next (5dfe50b05588 bootconfig: Rename xbc_node_find_child() to xbc_node_find_subkey())
Merging rcu/rcu/next (bc16d19516ea rcu: Replace ________p1 and _________p1 with __UNIQUE_ID(rcu))
Merging kvm/next (109bbba5066b KVM: Drop unused kvm_dirty_gfn_invalid())
Merging kvm-arm/next (419025b3b419 Merge branch kvm-arm64/misc-5.15 into kvmarm-master/next)
Merging kvm-ppc/kvm-ppc-next (72476aaa4691 KVM: PPC: Book3S HV: Fix host radix SLB optimisation with hash guests)
Merging kvms390/next (a3e03bc1368c KVM: s390: index kvm->arch.idle_mask by vcpu_idx)
Merging xen-tip/linux-next (d859ed25b242 swiotlb-xen: drop DEFAULT_NSLABS)
Merging percpu/for-next (a81a52b325ec Merge branch 'for-5.14-fixes' into for-next)
Merging workqueues/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging drivers-x86/for-next (1f88e0a22f7c platform/x86: acer-wmi: use __packed instead of __attribute__((packed)))
Merging chrome-platform/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging hsi/for-next (e73f0f0ee754 Linux 5.14-rc1)
Merging leds/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging ipmi/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging driver-core/driver-core-next (820879ee1865 sysfs: simplify sysfs_kf_seq_show)
Merging usb/usb-next (ae8709b296d8 USB: core: Make do_proc_control() and do_proc_bulk() killable)
Merging usb-gadget/next (e49d033bddf5 Linux 5.12-rc6)
Merging usb-serial/usb-next (6880fa6c5660 Linux 5.15-rc1)
Merging usb-chipidea-next/for-usb-next (78665f57c3fa usb: chipidea: udc: make controller hardware endpoint primed)
Merging tty/tty-next (b55c8aa6b1ab tty: moxa: merge moxa.h into moxa.c)
Merging char-misc/char-misc-next (d06246ebd773 scripts/tags.sh: Fix obsolete parameter for ctags)
Merging extcon/extcon-next (9a40016a01c4 dt-bindings: extcon: usbc-tusb320: Add TUSB320L compatible string)
Merging phy-next/next (6880fa6c5660 Linux 5.15-rc1)
Merging soundwire/next (6880fa6c5660 Linux 5.15-rc1)
Merging thunderbolt/next (6880fa6c5660 Linux 5.15-rc1)
Merging vfio/next (ea870730d83f Merge branches 'v5.15/vfio/spdx-license-cleanups', 'v5.15/vfio/dma-valid-waited-v3', 'v5.15/vfio/vfio-pci-core-v5' and 'v5.15/vfio/vfio-ap' into v5.15/vfio/next)
Merging staging/staging-next (5e57c668dc09 staging: wfx: ensure IRQ is ready before enabling it)
Merging iio/togreg (d484c21bacfa iio: adc: Add driver for Renesas RZ/G2L A/D converter)
Merging mux/for-next (3516bd729358 Merge tag 's390-5.11-3' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux)
Merging icc/icc-next (8bf5d31c4f06 interconnect: qcom: osm-l3: Use driver-specific naming)
Merging dmaengine/next (6880fa6c5660 Linux 5.15-rc1)
Merging cgroup/for-next (c0002d11d799 cgroupv2, docs: fix misinformation in "device controller" section)
Merging scsi/for-next (1a0db7744e45 scsi: bsg: Fix device unregistration)
Merging scsi-mkp/for-next (7e642ca0375b scsi: target: Remove unused function arguments)
Merging vhost/linux-next (be9c6bad9b46 vdpa: potential uninitialized return in vhost_vdpa_va_map())
Merging rpmsg/for-next (99fdaca991f7 Merge branches 'hwspinlock-next', 'rpmsg-next' and 'rproc-next' into for-next)
Merging gpio/for-next (7ac554888233 MAINTAINERS: Remove reference to non-existing file)
Merging gpio-brgl/gpio/for-next (3ea046564039 dt-bindings: gpio: add gpio-line-names to rockchip,gpio-bank.yaml)
Merging gpio-intel/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging pinctrl/for-next (04853352952b Merge tag 'samsung-pinctrl-5.15' of https://git.kernel.org/pub/scm/linux/kernel/git/pinctrl/samsung into devel)
Merging pinctrl-intel/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging pinctrl-renesas/renesas-pinctrl (075667cc6c29 pinctrl: renesas: No need to initialise global statics)
Merging pinctrl-samsung/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging pwm/for-next (3f2b16734914 pwm: mtk-disp: Implement atomic API .get_state())
Merging userns/for-next (a3be01837fc9 Merge of ucount-fixes-for-5.14, siginfo-si_trapno-for-v5.15, and exit-cleanups-for-v5.15 for testing in linux-next)
CONFLICT (content): Merge conflict in include/linux/sched/signal.h
Merging ktest/for-next (170f4869e662 ktest.pl: Fix the logic for truncating the size of the log file for email)
Merging kselftest/next (6880fa6c5660 Linux 5.15-rc1)
Merging livepatching/for-next (cd2d68f2d6b2 Merge branch 'for-5.15/cpu-hotplug' into for-next)
Merging coresight/next (1efbcec2ef8c coresight: cti: Reduce scope for the variable “cs_fwnode” in cti_plat_create_connection())
Merging rtc/rtc-next (6880fa6c5660 Linux 5.15-rc1)
Merging nvdimm/libnvdimm-for-next (bdd3c50d83bf dax: remove bdev_dax_supported)
Merging at24/at24/for-next (762925405482 dt-bindings: at24: add ON Semi CAT24C04 and CAT24C05)
Merging ntb/ntb-next (f96cb827ce49 ntb: ntb_pingpong: remove redundant initialization of variables msg_data and spad_data)
Merging seccomp/for-next/seccomp (b4d8a58f8dcf seccomp: Fix setting loaded filter count during TSYNC)
Merging kspp/for-next/kspp (420d688ff297 treewide: Replace 0-element memcpy() destinations with flexible arrays)
$ git reset --hard HEAD^
Merging next-20210915 version of kspp
CONFLICT (content): Merge conflict in include/linux/compiler_types.h
CONFLICT (content): Merge conflict in include/linux/compiler-gcc.h
CONFLICT (modify/delete): drivers/staging/rtl8188eu/include/ieee80211.h deleted in HEAD and modified in 0c2406ffcdfe9d34834f126a0c7e903306ce51a4. Version 0c2406ffcdfe9d34834f126a0c7e903306ce51a4 of drivers/staging/rtl8188eu/include/ieee80211.h left in tree.
$ git rm -f drivers/staging/rtl8188eu/include/ieee80211.h
[master d0741247dce3] next-20210915/kspp
Merging cisco/for-next (9e98c678c2d6 Linux 5.1-rc1)
Merging gnss/gnss-next (0f79ce970e79 gnss: drop stray semicolons)
Merging fsi/next (9ab1428dfe2c fsi/sbefifo: Fix reset timeout)
Merging slimbus/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging nvmem/for-next (536267aafb8a nvmem: core: Add stubs for nvmem_cell_read_variable_le_u32/64 if !CONFIG_NVMEM)
Merging xarray/main (2c7e57a02708 idr test suite: Improve reporting from idr_find_test_1)
Merging hyperv/hyperv-next (9d68cd9120e4 hv_utils: Set the maximum packet size for VSS driver to the length of the receive buffer)
Merging auxdisplay/auxdisplay (24ebc044c72e auxdisplay: Replace symbolic permissions with octal permissions)
Merging kgdb/kgdb/for-next (f8416aa29185 kernel: debug: Convert to SPDX identifier)
Merging hmm/hmm (6880fa6c5660 Linux 5.15-rc1)
Merging fpga/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging kunit/test (6880fa6c5660 Linux 5.15-rc1)
Merging cfi/cfi/next (ff1176468d36 Linux 5.14-rc3)
Merging kunit-next/kunit (6880fa6c5660 Linux 5.15-rc1)
Merging trivial/for-next (9ff9b0d392ea Merge tag 'net-next-5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next)
Merging mhi/mhi-next (813272ed5238 Merge 5.14-rc5 into char-misc-next)
Merging memblock/for-next (e888fa7bb882 memblock: Check memory add/cap ordering)
Merging init/init-user-pointers (38b082236e77 initramfs: use vfs_utimes in do_copy)
Merging counters/counters (e71ba9452f0b Linux 5.11-rc2)
Merging rust/rust-next (5d3986cf8ed6 MAINTAINERS: Rust)
CONFLICT (content): Merge conflict in include/linux/kallsyms.h
CONFLICT (content): Merge conflict in Makefile
Applying: fixup for rust integration with Makefile.clang creation
Merging cxl/next (2b922a9d064f cxl/registers: Fix Documentation warning)
Merging folio/for-next (1a90e9dae32c mm/writeback: Add folio_write_one)
CONFLICT (content): Merge conflict in mm/util.c
CONFLICT (content): Merge conflict in mm/rmap.c
CONFLICT (content): Merge conflict in mm/page-writeback.c
CONFLICT (content): Merge conflict in mm/memcontrol.c
CONFLICT (content): Merge conflict in mm/filemap.c
CONFLICT (content): Merge conflict in include/linux/memcontrol.h
Merging akpm-current/current (1ee31a7d5844 hfsplus: fix out-of-bounds warnings in __hfsplus_setxattr)
$ git checkout -b akpm remotes/origin/akpm/master
$ git rebase --onto master remotes/origin/akpm/master-base
Merging akpm/master (4a96b31a76ad mm/vmalloc: add __alloc_size attributes for better bounds checking)

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

^ permalink raw reply	[relevance 1%]

* [GIT PULL] Networking for 5.15-rc2
@ 2021-09-16 20:03  3% Jakub Kicinski
  0 siblings, 0 replies; 200+ results
From: Jakub Kicinski @ 2021-09-16 20:03 UTC (permalink / raw)
  To: torvalds; +Cc: kuba, davem, netdev, linux-kernel

Hi Linus!

The following changes since commit 626bf91a292e2035af5b9d9cce35c5c138dfe06d:

  Merge tag 'net-5.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net (2021-09-07 14:02:58 -0700)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git tags/net-5.15-rc2

for you to fetch changes up to ee8a9600b5391f434905c46bec7f77d34505083e:

  mlxbf_gige: clear valid_polarity upon open (2021-09-16 14:31:58 +0100)

----------------------------------------------------------------
Networking fixes for 5.15-rc2, including fixes from bpf.

Current release - regressions:

 - vhost_net: fix OoB on sendmsg() failure

 - mlx5: bridge, fix uninitialized variable usage

 - bnxt_en: fix error recovery regression

Current release - new code bugs:

 - bpf, mm: fix lockdep warning triggered by stack_map_get_build_id_offset()

Previous releases - regressions:

 - r6040: restore MDIO clock frequency after MAC reset

 - tcp: fix tp->undo_retrans accounting in tcp_sacktag_one()

 - dsa: flush switchdev workqueue before tearing down CPU/DSA ports

Previous releases - always broken:

 - ptp: dp83640: don't define PAGE0, avoid compiler warning

 - igc: fix tunnel segmentation offloads

 - phylink: update SFP selected interface on advertising changes

 - stmmac: fix system hang caused by eee_ctrl_timer during suspend/resume

 - mlx5e: fix mutual exclusion between CQE compression and HW TS

Misc:

 - bpf, cgroups: fix cgroup v2 fallback on v1/v2 mixed mode

 - sfc: fallback for lack of xdp tx queues

 - hns3: add option to turn off page pool feature

Signed-off-by: Jakub Kicinski <kuba@kernel.org>

----------------------------------------------------------------
Adam Borowski (1):
      net: wan: wanxl: define CROSS_COMPILE_M68K

Adrian Bunk (1):
      bnx2x: Fix enabling network interfaces without VFs

Aleksander Jan Bajkowski (1):
      net: dsa: lantiq_gswip: Add 200ms assert delay

Alex Elder (1):
      net: ipa: initialize all filter table slots

Andrea Claudi (1):
      selftest: net: fix typo in altname test

Ansuel Smith (1):
      net: dsa: qca8k: fix kernel panic with legacy mdio mapping

Arnd Bergmann (1):
      ne2000: fix unused function warning

Aya Levin (3):
      net/mlx5e: Fix mutual exclusion between CQE compression and HW TS
      net/mlx5e: Fix condition when retrieving PTP-rqn
      udp_tunnel: Fix udp_tunnel_nic work-queue type

Baruch Siach (1):
      net/packet: clarify source of pr_*() messages

Bixuan Cui (1):
      bpf: Add oversize check before call kvcalloc()

Colin Ian King (1):
      qlcnic: Remove redundant initialization of variable ret

Daniel Borkmann (4):
      bpf: Relicense disassembler as GPL-2.0-only OR BSD-2-Clause
      bpf, cgroups: Fix cgroup v2 fallback on v1/v2 mixed mode
      bpf, selftests: Add cgroup v1 net_cls classid helpers
      bpf, selftests: Add test case for mixed cgroup v1/v2

Dave Ertman (1):
      ice: Correctly deal with PFs that do not support RDMA

David S. Miller (5):
      Merge tag 'mlx5-fixes-2021-09-07' of git://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux
      Merge branch 'sfx-xdp-fallback-tx-queues'
      Merge branch 'bnxt_en-fixes'
      Merge branch 'hns3-fixes'
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf

David Thompson (1):
      mlxbf_gige: clear valid_polarity upon open

Edwin Peer (1):
      bnxt_en: make bnxt_free_skbs() safe to call after bnxt_free_mem()

Eli Cohen (1):
      net/{mlx5|nfp|bnxt}: Remove unnecessary RTNL lock assert

Eric Dumazet (3):
      net/af_unix: fix a data-race in unix_dgram_poll
      net-caif: avoid user-triggerable WARN_ON(1)
      Revert "Revert "ipv4: fix memory leaks in ip_cmsg_send() callers""

Florian Fainelli (1):
      r6040: Restore MDIO clock frequency after MAC reset

Guenter Roeck (1):
      net: ni65: Avoid typecast of pointer to u32

Hoang Le (1):
      tipc: increase timeout in tipc_sk_enqueue()

Jean-Philippe Brucker (1):
      selftests/bpf: Fix build of task_pt_regs test for arm64

Jeremy Kerr (1):
      mctp: perform route destruction under RCU read lock

Jesper Nilsson (1):
      net: stmmac: allow CSR clock of 300MHz

Jiaran Zhang (2):
      net: hns3: fix the exception when query imp info
      net: hns3: fix the timing issue of VF clearing interrupt sources

Joakim Zhang (2):
      net: stmmac: fix system hang caused by eee_ctrl_timer during suspend/resume
      net: stmmac: platform: fix build warning when with !CONFIG_PM_SLEEP

Len Baker (1):
      net: mana: Prefer struct_size over open coded arithmetic

Lin, Zhenpeng (1):
      dccp: don't duplicate ccid when cloning dccp sock

Maor Gottlieb (1):
      net/mlx5: Fix potential sleeping in atomic context

Mark Bloch (1):
      net/mlx5: Lag, don't update lag if lag isn't supported

Michael Chan (2):
      bnxt_en: Fix error recovery regression
      bnxt_en: Clean up completion ring page arrays completely

Nathan Rossi (1):
      net: phylink: Update SFP selected interface on advertising changes

Paolo Abeni (2):
      vhost_net: fix OoB on sendmsg() failure.
      igc: fix tunnel offloading

Parav Pandit (1):
      net/mlx5: Fix rdma aux device on devlink reload

Randy Dunlap (1):
      ptp: dp83640: don't define PAGE0

Saeed Mahameed (1):
      net/mlx5: FWTrace, cancel work on alloc pd error flow

Samuel Holland (1):
      dt-bindings: net: sun8i-emac: Add compatible for D1

Shai Malin (1):
      qed: Handle management FW error

Sukadev Bhattiprolu (2):
      ibmvnic: check failover_pending in login response
      ibmvnic: check failover_pending in login response

Tong Zhang (1):
      net: macb: fix use after free on rmmod

Vlad Buslov (1):
      net/mlx5: Bridge, fix uninitialized variable usage

Vladimir Oltean (3):
      net: dsa: destroy the phylink instance on any error in dsa_slave_phy_setup
      Revert "net: phy: Uniform PHY driver access"
      net: dsa: flush switchdev workqueue before tearing down CPU/DSA ports

Xiang wangx (1):
      selftests: nci: replace unsigned int with int

Xiyu Yang (1):
      net/l2tp: Fix reference count leak in l2tp_udp_recv_core

Yajun Deng (1):
      Revert "ipv4: fix memory leaks in ip_cmsg_send() callers"

Yonghong Song (1):
      bpf, mm: Fix lockdep warning triggered by stack_map_get_build_id_offset()

Yufeng Mo (3):
      net: hns3: pad the short tunnel frame before sending to hardware
      net: hns3: change affinity_mask to numa node range
      net: hns3: disable mac in flr process

Yunsheng Lin (1):
      net: hns3: add option to turn off page pool feature

zhang kai (1):
      ipv6: delay fib6_sernum increase in fib6_add

zhenggy (1):
      tcp: fix tp->undo_retrans accounting in tcp_sacktag_one()

Íñigo Huguet (2):
      sfc: fallback for lack of xdp tx queues
      sfc: last resort fallback for lack of xdp tx queues

 .../bindings/net/allwinner,sun8i-a83t-emac.yaml    |   4 +-
 drivers/net/dsa/lantiq_gswip.c                     |   6 +
 drivers/net/dsa/qca8k.c                            |  30 +++--
 drivers/net/ethernet/8390/ne.c                     |  22 ++--
 drivers/net/ethernet/amd/ni65.c                    |   2 +-
 drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.c  |   2 +-
 drivers/net/ethernet/broadcom/bnxt/bnxt.c          |  33 ++++-
 drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c       |   3 -
 drivers/net/ethernet/cadence/macb_pci.c            |   2 +-
 drivers/net/ethernet/hisilicon/hns3/hns3_enet.c    |  14 ++-
 .../ethernet/hisilicon/hns3/hns3pf/hclge_debugfs.c |   4 +
 .../ethernet/hisilicon/hns3/hns3pf/hclge_main.c    |  19 +--
 .../ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c  |   6 +-
 drivers/net/ethernet/ibm/ibmvnic.c                 |  16 +++
 drivers/net/ethernet/intel/ice/ice.h               |   2 +
 drivers/net/ethernet/intel/ice/ice_idc.c           |   6 +
 drivers/net/ethernet/intel/igc/igc_main.c          |   4 +-
 drivers/net/ethernet/mellanox/mlx5/core/devlink.c  |   7 +-
 .../ethernet/mellanox/mlx5/core/diag/fw_tracer.c   |   3 +-
 drivers/net/ethernet/mellanox/mlx5/core/en.h       |   2 +-
 .../ethernet/mellanox/mlx5/core/en/rep/bridge.c    |   4 +-
 .../net/ethernet/mellanox/mlx5/core/en/rep/tc.c    |   3 -
 .../net/ethernet/mellanox/mlx5/core/en/rx_res.c    |   2 +-
 .../net/ethernet/mellanox/mlx5/core/en_ethtool.c   |  11 +-
 drivers/net/ethernet/mellanox/mlx5/core/en_main.c  |   4 +-
 drivers/net/ethernet/mellanox/mlx5/core/fs_core.c  |   5 +-
 drivers/net/ethernet/mellanox/mlx5/core/lag.c      |  10 +-
 .../ethernet/mellanox/mlxbf_gige/mlxbf_gige_main.c |   7 ++
 drivers/net/ethernet/microsoft/mana/hw_channel.c   |   4 +-
 .../net/ethernet/netronome/nfp/flower/offload.c    |   3 -
 drivers/net/ethernet/qlogic/qed/qed_mcp.c          |   6 +-
 .../net/ethernet/qlogic/qlcnic/qlcnic_83xx_init.c  |   2 +-
 drivers/net/ethernet/rdc/r6040.c                   |   9 +-
 drivers/net/ethernet/sfc/efx_channels.c            | 106 +++++++++++-----
 drivers/net/ethernet/sfc/net_driver.h              |   8 ++
 drivers/net/ethernet/sfc/tx.c                      |  29 +++--
 drivers/net/ethernet/stmicro/stmmac/stmmac_main.c  |  16 +--
 .../net/ethernet/stmicro/stmmac/stmmac_platform.c  |  44 +++++++
 drivers/net/ipa/ipa_table.c                        |   3 +-
 drivers/net/phy/dp83640_reg.h                      |   2 +-
 drivers/net/phy/phy_device.c                       |   4 +-
 drivers/net/phy/phylink.c                          |  30 ++++-
 drivers/net/wan/Makefile                           |   2 +
 drivers/vhost/net.c                                |  11 +-
 include/linux/cgroup-defs.h                        | 107 ++++------------
 include/linux/cgroup.h                             |  22 +---
 include/linux/mmap_lock.h                          |   9 --
 include/linux/skbuff.h                             |   2 +-
 include/net/dsa.h                                  |   5 +
 kernel/bpf/disasm.c                                |   2 +-
 kernel/bpf/disasm.h                                |   2 +-
 kernel/bpf/stackmap.c                              |  10 +-
 kernel/bpf/verifier.c                              |   2 +
 kernel/cgroup/cgroup.c                             |  50 ++------
 net/caif/chnl_net.c                                |  19 +--
 net/core/netclassid_cgroup.c                       |   7 +-
 net/core/netprio_cgroup.c                          |  10 +-
 net/dccp/minisocks.c                               |   2 +
 net/dsa/dsa.c                                      |   5 +
 net/dsa/dsa2.c                                     |  46 ++++---
 net/dsa/dsa_priv.h                                 |   1 +
 net/dsa/slave.c                                    |  12 +-
 net/ipv4/tcp_input.c                               |   2 +-
 net/ipv4/udp_tunnel_nic.c                          |   2 +-
 net/ipv6/ip6_fib.c                                 |   3 +-
 net/l2tp/l2tp_core.c                               |   4 +-
 net/mctp/route.c                                   |   2 +
 net/packet/af_packet.c                             |   2 +
 net/tipc/socket.c                                  |   2 +-
 net/unix/af_unix.c                                 |   2 +-
 tools/testing/selftests/bpf/cgroup_helpers.c       | 137 +++++++++++++++++++--
 tools/testing/selftests/bpf/cgroup_helpers.h       |  16 ++-
 tools/testing/selftests/bpf/network_helpers.c      |  27 +++-
 tools/testing/selftests/bpf/network_helpers.h      |   1 +
 .../testing/selftests/bpf/prog_tests/cgroup_v1v2.c |  79 ++++++++++++
 .../selftests/bpf/prog_tests/task_pt_regs.c        |   1 -
 .../testing/selftests/bpf/progs/connect4_dropper.c |  26 ++++
 .../selftests/bpf/progs/test_task_pt_regs.c        |  19 ++-
 tools/testing/selftests/nci/nci_dev.c              |   2 +-
 tools/testing/selftests/net/altnames.sh            |   2 +-
 80 files changed, 770 insertions(+), 384 deletions(-)
 create mode 100644 tools/testing/selftests/bpf/prog_tests/cgroup_v1v2.c
 create mode 100644 tools/testing/selftests/bpf/progs/connect4_dropper.c

^ permalink raw reply	[relevance 3%]

* linux-next: Tree for Sep 17
@ 2021-09-17  8:22  1% Stephen Rothwell
  0 siblings, 0 replies; 200+ results
From: Stephen Rothwell @ 2021-09-17  8:22 UTC (permalink / raw)
  To: Linux Next Mailing List; +Cc: Linux Kernel Mailing List

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

Hi all,

Changes since 20210916:

New trees: perf-current, perf

The clk-imx tree gained a build failure so I used the version from
next-20210916.

The bpf-next tree lost its build failure.

The drm-misc tree gained a build failure for which I reverted 3 commits.

The amdgpu tree gained a build failure from a bad automatic merge which
I fixed up.

The kspp tree lost its build failure.

Non-merge commits (relative to Linus' tree): 2411
 2491 files changed, 114089 insertions(+), 43102 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 are also quilt-import.log and merge.log
files 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, 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 337 trees (counting Linus' and 90 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 (bdb575f87217 Merge tag 'drm-fixes-2021-09-17' of git://anongit.freedesktop.org/drm/drm)
Merging fixes/fixes (3ca706c189db drm/ttm: fix type mismatch error on sparc64)
Merging kbuild-current/fixes (926de8c4326c Merge tag 'acpi-5.15-rc1-3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm)
Merging arc-current/for-curr (6880fa6c5660 Linux 5.15-rc1)
Merging arm-current/fixes (463dbba4d189 ARM: 9104/2: Fix Keystone 2 kernel mapping regression)
Merging arm64-fixes/for-next/fixes (9fcb2e93f41c arm64: Mark __stack_chk_guard as __ro_after_init)
Merging arm-soc-fixes/arm/fixes (3f1c260ffddb MAINTAINERS: Add myself as MStar/Sigmastar Armv7 SoC maintainers)
Merging drivers-memory-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging m68k-current/for-linus (a7b68ed15d1f m68k: mvme: Remove overdue #warnings in RTC handling)
Merging powerpc-fixes/fixes (c006a06508db powerpc/xics: Set the IRQ chip data for the ICS native backend)
Merging s390-fixes/fixes (f5711f9df924 s390: remove WARN_DYNAMIC_STACK)
Merging sparc/master (05a59d79793d Merge git://git.kernel.org:/pub/scm/linux/kernel/git/netdev/net)
Merging fscrypt-current/for-stable (d19d8d345eec fscrypt: fix inline encryption not used on new files)
Merging net/master (fc0c0548c1a2 Merge tag 'net-5.15-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net)
Merging bpf/master (bc23f7244817 bpf/tests: Add tail call limit test with external function call)
Merging ipsec/master (844f7eaaed92 include/uapi/linux/xfrm.h: Fix XFRM_MSG_MAPPING ABI breakage)
Merging netfilter/master (310e2d43c3ad netfilter: ip6_tables: zero-initialize fragment offset)
Merging ipvs/master (69e73dbfda14 ipvs: check that ip_vs_conn_tab_bits is between 8 and 20)
Merging wireless-drivers/master (24d5f16e407b iwlwifi: mvm: Fix possible NULL dereference)
Merging mac80211/master (7366c23ff492 ptp: dp83640: don't define PAGE0)
Merging rdma-fixes/for-rc (1b789bd4dbd4 IB/qib: Fix clang confusion of NULL pointer comparison)
Merging sound-current/for-linus (94d508fa3186 ALSA: hda/cs8409: Setup Dolphin Headset Mic as Phantom Jack)
Merging sound-asoc-fixes/for-linus (d270257127be Merge remote-tracking branch 'asoc/for-5.15' into asoc-linus)
Merging regmap-fixes/for-linus (6880fa6c5660 Linux 5.15-rc1)
Merging regulator-fixes/for-linus (c79bf1d4ee3e Merge remote-tracking branch 'regulator/for-5.15' into regulator-linus)
Merging spi-fixes/for-linus (c6636bc07565 Merge remote-tracking branch 'spi/for-5.15' into spi-linus)
Merging pci-current/for-linus (e042a4533fc3 MAINTAINERS: Add Nirmal Patel as VMD maintainer)
Merging driver-core.current/driver-core-linus (6880fa6c5660 Linux 5.15-rc1)
Merging tty.current/tty-linus (7049d853cfb9 tty: unexport tty_ldisc_release)
Merging usb.current/usb-linus (da546d6b748e arm64: dts: qcom: ipq8074: remove USB tx-fifo-resize property)
Merging usb-gadget-fixes/fixes (e49d033bddf5 Linux 5.12-rc6)
Merging usb-serial-fixes/usb-linus (7bb057134d60 USB: serial: option: add Telit LN920 compositions)
Merging usb-chipidea-fixes/for-usb-fixes (98a1373a2de9 usb: cdns3: fix race condition before setting doorbell)
Merging phy/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging staging.current/staging-linus (92dc0b1f46e1 staging: greybus: uart: fix tty use after free)
Merging iio-fixes/fixes-togreg (1a913270e57a iio: adc: ad7793: Fix IRQ flag)
Merging char-misc.current/char-misc-linus (25a143321648 mcb: fix error handling in mcb_alloc_bus())
Merging soundwire-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging thunderbolt-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging input-current/for-linus (0c5483a5778f Input: analog - always use ktime functions)
Merging crypto-current/master (6ae51ffe5e76 crypto: sha512 - remove imaginary and mystifying clearing of variables)
Merging vfio-fixes/for-linus (dc51ff91cf2d vfio/platform: fix module_put call in error flow)
Merging kselftest-fixes/fixes (f5013d412a43 selftests: kvm: fix get_run_delay() ignoring fscanf() return warn)
Merging modules-fixes/modules-linus (055f23b74b20 module: check for exit sections in layout_sections() instead of module_init_section())
Merging dmaengine-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging backlight-fixes/for-backlight-fixes (a38fd8748464 Linux 5.12-rc2)
Merging mtd-fixes/mtd/fixes (f60f5741002b mtd: rawnand: qcom: Update code word value for raw read)
Merging mfd-fixes/for-mfd-fixes (a61f4661fba4 mfd: intel_quark_i2c_gpio: Revert "Constify static struct resources")
Merging v4l-dvb-fixes/fixes (3ad02c27d89d media: s5p-jpeg: rename JPEG marker constants to prevent build warnings)
Merging reset-fixes/reset/fixes (ed104ca4bd9c reset: reset-zynqmp: Fixed the argument data type)
Merging mips-fixes/mips-fixes (6880fa6c5660 Linux 5.15-rc1)
Merging at91-fixes/at91-fixes (4348cc10da63 ARM: dts: at91: sama5d2_som1_ek: disable ISC node by default)
Merging omap-fixes/fixes (e879f855e590 bus: ti-sysc: Add break in switch statement in sysc_init_soc())
Merging kvm-fixes/master (7d2a07b76933 Linux 5.14)
Merging kvms390-fixes/master (cd4220d23bf3 KVM: selftests: do not require 64GB in set_memory_region_test)
Merging hwmon-fixes/hwmon (e6fab7af6ba1 hwmon: (mlxreg-fan) Return non-zero value when fan current state is enforced from sysfs)
Merging nvdimm-fixes/libnvdimm-fixes (32b2397c1e56 libnvdimm/pmem: Fix crash triggered when I/O in-flight during unbind)
Merging cxl-fixes/fixes (fae8817ae804 cxl/mem: Fix memory device capacity probing)
Merging btrfs-fixes/next-fixes (7f6fe94c91a4 Merge branch 'misc-5.15' into next-fixes)
Merging vfs-fixes/fixes (173e84953eaa fs: fix reporting supported extra file attributes for statx())
Merging dma-mapping-fixes/for-linus (18a3c5f7abfd Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost)
Merging i3c-fixes/i3c/fixes (fe07bfda2fb9 Linux 5.12-rc1)
Merging drivers-x86-fixes/fixes (3c3c8e88c871 platform/x86: amd-pmc: Increase the response register timeout)
Merging samsung-krzk-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging pinctrl-samsung-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging devicetree-fixes/dt/linus (3782326577d4 Revert "of: property: fw_devlink: Add support for "phy-handle" property")
Merging scsi-fixes/fixes (1a0db7744e45 scsi: bsg: Fix device unregistration)
Merging drm-fixes/drm-fixes (109f7ea9aedc Merge tag 'amd-drm-fixes-5.15-2021-09-16' of https://gitlab.freedesktop.org/agd5f/linux into drm-fixes)
Merging amdgpu-fixes/drm-fixes (2c409ba81be2 drm/radeon: fix si_enable_smc_cac() failed issue)
Merging drm-intel-fixes/for-linux-next-fixes (7889367d7795 drm/i915: Enable -Wsometimes-uninitialized)
Merging mmc-fixes/fixes (b81bede4d138 mmc: renesas_sdhi: fix regression with hard reset on old SDHIs)
Merging rtc-fixes/rtc-fixes (bd33335aa93d rtc: cmos: Disable irq around direct invocation of cmos_interrupt())
Merging gnss-fixes/gnss-linus (e73f0f0ee754 Linux 5.14-rc1)
Merging hyperv-fixes/hyperv-fixes (dfb5c1e12c28 x86/hyperv: remove on-stack cpumask from hv_send_ipi_mask_allbutself)
Merging soc-fsl-fixes/fix (c1e64c0aec8c soc: fsl: qe: fix static checker warning)
Merging risc-v-fixes/fixes (7d2a07b76933 Linux 5.14)
Merging pidfd-fixes/fixes (03ba0fe4d09f file: simplify logic in __close_range())
Merging fpga-fixes/fixes (a1e4470823d9 fpga: machxo2-spi: Fix missing error code in machxo2_write_complete())
Merging spdx/spdx-linus (6880fa6c5660 Linux 5.15-rc1)
Merging gpio-brgl-fixes/gpio/for-current (6880fa6c5660 Linux 5.15-rc1)
Merging gpio-intel-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging pinctrl-intel-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging erofs-fixes/fixes (0852b6ca941e erofs: fix 1 lcluster-sized pcluster for big pcluster)
Merging integrity-fixes/fixes (843385694721 evm: Fix a small race in init_desc())
Merging kunit-fixes/kunit-fixes (6880fa6c5660 Linux 5.15-rc1)
Merging ubifs-fixes/fixes (78c7d49f55d8 ubifs: journal: Make sure to not dirty twice for auth nodes)
Merging memblock-fixes/fixes (024591f9a6e0 arm: ioremap: don't abuse pfn_valid() to check if pfn is in RAM)
Merging cel-fixes/for-rc (7d2a07b76933 Linux 5.14)
Merging irqchip-fixes/irq/irqchip-fixes (0ddc5e55e6f1 Documentation: Fix irq-domain.rst build warning)
Merging renesas-fixes/fixes (432b52eea3dc ARM: shmobile: defconfig: Restore graphical consoles)
Merging drm-misc-fixes/for-linux-next-fixes (7d87d0e27556 drm/nouveau/kms/tu102-: delay enabling cursor until after assign_windows)
Merging kspp-gustavo/for-next/kspp (8881af30b421 Makefile: Enable -Wimplicit-fallthrough for Clang)
Merging kbuild/for-next (860091ee86e6 riscv: move the (z)install rules to arch/riscv/Makefile)
Merging compiler-attributes/compiler-attributes (b83a908498d6 compiler_attributes.h: move __compiletime_{error|warning})
Merging dma-mapping/for-next (59583f747664 sparc32: page align size in arch_dma_alloc)
Merging asm-generic/master (7962c2eddbfe arch: remove unused function syscall_set_arguments())
Merging arc/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging arm/for-next (1c9b5911f53b Merge branches 'fixes' and 'misc' into for-next)
Merging arm64/for-next/core (85f58eb18898 arm64: kdump: Skip kmemleak scan reserved memory for kdump)
Merging arm-perf/for-next/perf (fd264b310579 arm64/perf: Replace '0xf' instances with ID_AA64DFR0_PMUVER_IMP_DEF)
Merging arm-soc/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging actions/for-next (444d018d8d38 ARM: dts: owl-s500-roseapplepi: Add ATC2603C PMIC)
Merging amlogic/for-next (faae6a457101 Merge branches 'v5.16/dt64' and 'v5.16/drivers' into for-next)
Merging aspeed/for-next (0f32f00af344 Merge branches 'dt-for-v5.15', 'soc-for-v5.15' and 'defconfig-for-v5.15' into for-next)
Merging at91/at91-next (cebb82f17fa9 Merge branch 'at91-dt' into at91-next)
Merging drivers-memory/for-next (6fc5f1adf5a1 memory: tegra210-emc: replace DEFINE_SIMPLE_ATTRIBUTE with DEFINE_DEBUGFS_ATTRIBUTE)
Merging imx-mxs/for-next (2cb411d89676 Merge branch 'imx/defconfig' into for-next)
Merging keystone/next (cb293d3b430e Merge branch 'for_5.15/drivers-soc' into next)
Merging mediatek/for-next (69862ae4e378 Merge branch 'v5.14-next/soc' into for-next)
Merging mvebu/for-next (930af8dda750 Merge branch 'mvebu/dt64' into mvebu/for-next)
Merging omap/for-next (7911f95d1713 Merge branch 'fixes' into for-next)
Merging qcom/for-next (8482d1c0bb62 Merge branches 'arm64-for-5.16', 'drivers-for-5.16' and 'dts-for-5.16' into for-next)
Merging raspberrypi/for-next (9f5289ec6f1c ARM: dts: bcm2711-rpi-4-b: Fix usb's unit address)
Merging renesas/next (cbbd8f16ae1c Merge branches 'renesas-arm-dt-for-v5.16', 'renesas-drivers-for-v5.16' and 'renesas-dt-bindings-for-v5.16' into renesas-next)
Merging reset/reset/next (09f3824342f6 reset: simple: remove ZTE details in Kconfig help)
Merging rockchip/for-next (d46148623f26 Merge branch 'v5.15-armsoc/dts64' into for-next)
Merging samsung-krzk/for-next (2721363c0d64 Merge branch 'next/drivers' into for-next)
Merging scmi/for-linux-next (793432561420 Merge branch 'for-next/juno' of git://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux into for-linux-next)
Merging stm32/stm32-next (1e6bc5987a52 ARM: dts: stm32: Update AV96 adv7513 node per dtbs_check)
Merging sunxi/sunxi/for-next (bb289f4c0b2b Merge branches 'sunxi/clk-for-5.16', 'sunxi/core-for-5.16', 'sunxi/drivers-for-5.16', 'sunxi/dt-for-5.16' and 'sunxi/fixes-for-5.15' into sunxi/for-next)
Merging tegra/for-next (cc701ccede61 Merge branch for-5.15/arm64/dt into for-next)
Merging ti-k3/ti-k3-next (1e3d655fe7b4 Merge branch 'ti-k3-config-next' into ti-k3-next)
Merging ti-k3-new/ti-k3-next (500e6dfbb465 arm64: dts: ti: k3-am64-mcu: Add pinctrl)
Merging xilinx/for-next (35a7430dad4d arm64: zynqmp: Wire psgtr for zc1751-xm013)
Merging clk/clk-next (1cbc04ffedcc Merge branch 'clk-mtk' into clk-next)
Merging clk-imx/for-next (d041b89cd7d4 clk: imx: Add the pcc reset controller support on imx8ulp)
$ git reset --hard HEAD^
Merging next-20210916 version of clk-imx
Merging clk-renesas/renesas-clk (8ac4aedcf7b3 clk: renesas: r8a779a0: Add TPU clock)
Merging clk-samsung/for-next (1d26eaeec37a clk: samsung: s5pv210-audss: Make use of devm_platform_ioremap_resource())
Merging csky/linux-next (90dc8c0e664e csky: Kconfig: Remove unused selects)
Merging h8300/h8300-next (1ec10274d436 h8300: don't implement set_fs)
Merging m68k/for-next (a7b68ed15d1f m68k: mvme: Remove overdue #warnings in RTC handling)
Merging m68knommu/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging microblaze/next (6880fa6c5660 Linux 5.15-rc1)
Merging mips/mips-next (6880fa6c5660 Linux 5.15-rc1)
Merging nds32/next (07cd7745c6f2 nds32/setup: remove unused memblock_region variable in setup_memory())
CONFLICT (content): Merge conflict in arch/nds32/Kconfig
Merging nios2/for-next (7f7bc20bc41a nios2: Don't use _end for calculating min_low_pfn)
Merging openrisc/for-next (1955d843efc3 openrisc/litex: Update defconfig)
Merging parisc-hd/for-next (90cc7bed1ed1 parisc: Use absolute_pointer() to define PAGE0)
Merging powerpc/next (6880fa6c5660 Linux 5.15-rc1)
Merging soc-fsl/next (242b0b398ccd soc: fsl: enable acpi support in RCPM driver)
Merging risc-v/for-next (6f55ab36bef5 riscv: Move EXCEPTION_TABLE to RO_DATA segment)
Merging s390/for-next (9ec953c0a7e1 Merge branch 'fixes' into for-next)
Merging sh/for-next (2882b7626f49 sh: kernel: traps: remove unused variable)
Merging sparc-next/master (dd0d718152e4 Merge tag 'spi-fix-v5.8-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi)
Merging uml/linux-next (234640275675 um: rename set_signals() to um_set_signals())
Merging xtensa/xtensa-for-next (7b7cec477fc3 xtensa: move core-y in arch/xtensa/Makefile to arch/xtensa/Kbuild)
Merging pidfd/for-next (f4dd02cd8631 Merge branch 'kernel.sys' into for-next)
Merging fscrypt/master (38ef66b05cfa fscrypt: document struct fscrypt_operations)
Merging fscache/fscache-next (20ec197bfa13 fscache: Use refcount_t for the cookie refcount instead of atomic_t)
Merging afs/afs-next (7af08140979a Revert "gcov: clang: fix clang-11+ build")
Merging btrfs/for-next (e51480e6f4f8 Merge branch 'for-next-next-v5.15-20210913' into for-next-20210913)
Merging ceph/master (4b0b8836ebba ceph: fix off by one bugs in unsafe_request_wait())
Merging cifs/for-next (c1abf1305957 cifs: rename uapi/linux/cifs directory to uapi/linux/smbfs_client)
Merging cifsd/cifsd-for-next (bf9f243f23e6 Merge tag '5.15-rc-ksmbd-part2' of git://git.samba.org/ksmbd)
Merging configfs/for-next (c42dd069be8d configfs: fix a race in configfs_lookup())
Merging ecryptfs/next (682a8e2b41ef Merge tag 'ecryptfs-5.13-rc1-updates' of git://git.kernel.org/pub/scm/linux/kernel/git/tyhicks/ecryptfs)
Merging erofs/dev (1266b4a7ecb6 erofs: fix double free of 'copied')
Merging exfat/dev (50be9417e23a Merge tag 'io_uring-5.14-2021-07-09' of git://git.kernel.dk/linux-block)
Merging ext3/for_next (ed518dd035fa Pull udf xattr sanity checks.)
Merging ext4/dev (948ca5f30e1d ext4: enforce buffer head state assertion in ext4_da_map_blocks)
Merging f2fs/dev (c02599f210d9 f2fs: avoid attaching SB_ACTIVE flag during mount)
Merging fsverity/fsverity (07c99001312c fs-verity: support reading signature with ioctl)
Merging fuse/for-next (7a41554fdfb0 fuse: move fuse_invalidate_attr() into fuse_update_ctime())
Merging gfs2/for-next (08d736667185 gfs2: Remove redundant check from gfs2_glock_dq)
Merging jfs/jfs-next (5d299f44d765 jfs: Avoid field-overflowing memcpy())
Merging nfs/linux-next (6880fa6c5660 Linux 5.15-rc1)
Merging nfs-anna/linux-next (8cfb9015280d NFS: Always provide aligned buffers to the RPC read layers)
Merging nfsd/nfsd-next (e22ce8eb631b Linux 5.14-rc7)
Merging cel/for-next (0c217d5066c8 SUNRPC: improve error response to over-size gss credential)
Merging ntfs3/master (6e3331ee3446 fs/ntfs3: Use min/max macros instated of ternary operators)
Merging orangefs/for-next (0fdec1b3c9fb orangefs: fix orangefs df output.)
Merging overlayfs/overlayfs-next (332f606b32b6 ovl: enable RCU'd ->get_acl())
Merging ubifs/next (a801fcfeef96 ubifs: Set/Clear I_LINKABLE under i_lock for whiteout inode)
Merging v9fs/9p-next (9c4d94dc9a64 net/9p: increase default msize to 128k)
Merging xfs/for-next (f38a032b165d xfs: fix I_DONTCACHE)
Merging zonefs/for-next (95b115332a83 zonefs: remove redundant null bio check)
Merging iomap/iomap-for-next (03b8df8d43ec iomap: standardize tracepoint formatting and storage)
Merging djw-vfs/vfs-for-next (d03ef4daf33a fs: forbid invalid project ID)
Merging file-locks/locks-next (90f7d7a0d0d6 locks: remove LOCK_MAND flock lock support)
Merging vfs/for-next (8f40da9494cf Merge branch 'misc.namei' into for-next)
Merging printk/for-next (9980c4251f8d printk: use kvmalloc instead of kmalloc for devkmsg_user)
Merging pci/next (6880fa6c5660 Linux 5.15-rc1)
Merging pstore/for-next/pstore (c5d4fb2539ca pstore/blk: Use "%lu" to format unsigned long)
Merging hid/for-next (8ca10560f402 Merge branch 'for-5.15/upstream-fixes' into for-next)
Merging i2c/i2c/for-next (294b29f15469 i2c: xiic: Fix RX IRQ busy check)
Merging i3c/i3c/next (41a0430dd5ca i3c/master/mipi-i3c-hci: Prefer kcalloc over open coded arithmetic)
Merging dmi/dmi-for-next (f97a2103f1a7 firmware: dmi: Move product_sku info to the end of the modalias)
Merging hwmon-staging/hwmon-next (ec3c3d1af568 hwmon: (mlxreg-fan) Extend driver to support multiply PWM)
Merging jc_docs/docs-next (242f4c77b1c8 docs: zh_TW/index: Move arm64/index to arch-specific section)
Merging v4l-dvb/master (6880fa6c5660 Linux 5.15-rc1)
Merging v4l-dvb-next/master (204c92e2f544 media: camss: vfe: Don't call hw_version() before its dependencies are met)
Merging pm/linux-next (755793be0868 Merge branches 'pm-sleep' and 'acpi-resources' into linux-next)
Merging cpufreq-arm/cpufreq/arm/linux-next (4855e26bcf4d cpufreq: mediatek-hw: Add support for CPUFREQ HW)
Merging cpupower/cpupower (79a0dc5530a9 tools: cpupower: fix typo in cpupower-idle-set(1) manpage)
Merging devfreq/devfreq-next (6880fa6c5660 Linux 5.15-rc1)
Merging opp/opp/linux-next (94274f20f6bf dt-bindings: opp: Convert to DT schema)
Merging thermal/thermal/linux-next (fc26023f8816 thermal/drivers/int340x: Fix tcc offset on resume)
Merging ieee1394/for-next (54b3bd99f094 firewire: nosy: switch from 'pci_' to 'dma_' API)
Merging dlm/next (ecd95673142e fs: dlm: avoid comms shutdown delay in release_lockspace)
Merging swiotlb/linux-next (f3c4b1341e83 swiotlb: use depends on for DMA_RESTRICTED_POOL)
Merging rdma/for-next (1b789bd4dbd4 IB/qib: Fix clang confusion of NULL pointer comparison)
Merging perf-current/perf/urgent (a3fa7a101dcf Merge branches 'akpm' and 'akpm-hotfixes' (patches from Andrew))
Merging perf/perf/core (8228e9361e2a perf parse-events: Avoid enum forward declaration.)
Merging net-next/master (561bed688bff Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net)
Merging bpf-next/for-next (336562752acc bpf: Update bpf_get_smp_processor_id() documentation)
Merging ipsec-next/master (9e9fb7655ed5 Merge tag 'net-next-5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next)
Merging mlx5-next/mlx5-next (6880fa6c5660 Linux 5.15-rc1)
Merging netfilter-next/master (13bb8429ca98 net: wwan: iosm: firmware flashing and coredump collection)
Merging ipvs-next/master (13bb8429ca98 net: wwan: iosm: firmware flashing and coredump collection)
Merging wireless-drivers-next/master (6880fa6c5660 Linux 5.15-rc1)
Merging bluetooth/master (81be03e026dc Bluetooth: RFCOMM: Replace use of memcpy_from_msg with bt_skb_sendmmsg)
Merging mac80211-next/master (339133f6c318 net: dsa: tag_rtl4_a: Drop bit 9 from egress frames)
Merging mtd/mtd/next (b72841e4dcd5 mtd: mtdswap: Remove redundant assignment of pointer eb)
Merging nand/nand/next (46a0dc10fb32 mtd: rawnand: intel: Fix potential buffer overflow in probe)
Merging spi-nor/spi-nor/next (2734d6c1b1a0 Linux 5.14-rc2)
Merging crypto/master (6ae51ffe5e76 crypto: sha512 - remove imaginary and mystifying clearing of variables)
Merging drm/drm-next (6880fa6c5660 Linux 5.15-rc1)
Merging drm-misc/for-linux-next (91241ee25a2f drm/sun4i: dw-hdmi: Make use of the helper function dev_err_probe())
Merging amdgpu/drm-next (d12d06294907 drm/radeon: Add HD-audio component notifier support (v2))
CONFLICT (content): Merge conflict in drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c
Merging drm-intel/for-linux-next (064b877dff42 drm/i915: Free all DMC payloads)
Merging drm-tegra/drm/tegra/for-next (c3dbfb9c49ee gpu: host1x: Plug potential memory leak)
Merging drm-msm/msm-next (cb0927ab80d2 drm/msi/mdp4: populate priv->kms in mdp4_kms_init)
Merging imx-drm/imx-drm/next (20fbfc81e390 drm/imx: imx-tve: Make use of the helper function devm_platform_ioremap_resource())
Merging etnaviv/etnaviv/next (81fd23e2b3cc drm/etnaviv: Implement mmap as GEM object function)
Applying: amdgpu: fix bad merge (pinned)
Merging regmap/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging sound/for-next (94d508fa3186 ALSA: hda/cs8409: Setup Dolphin Headset Mic as Phantom Jack)
Merging sound-asoc/for-next (1ce9adc1984b Merge remote-tracking branch 'asoc/for-5.16' into asoc-next)
Merging modules/modules-next (ced75a2f5da7 MAINTAINERS: Add Luis Chamberlain as modules maintainer)
Merging input/next (e2afe95a87a2 dt-bindings: input: Add binding for cypress-sf)
Merging block/for-next (32ac44a96a8e Merge branch 'for-5.16/drivers' into for-next)
Merging device-mapper/for-next (d3703ef33129 dm crypt: use in_hardirq() instead of deprecated in_irq())
Merging libata/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging pcmcia/pcmcia-next (e39cdacf2f66 pcmcia: i82092: fix a null pointer dereference bug)
Merging mmc/next (4ed8431c42ba Merge branch 'fixes' into next)
Merging mfd/for-mfd-next (cdff1eda6932 mfd: lpc_sch: Rename GPIOBASE to prevent build error)
Merging backlight/for-backlight-next (79fad92f2e59 backlight: pwm_bl: Improve bootloader/kernel device handover)
Merging battery/for-next (c9398455b046 power: supply: core: Fix parsing of battery chemistry/technology)
Merging regulator/for-next (90eb1b39e73f Merge remote-tracking branch 'regulator/for-5.16' into regulator-next)
Merging security/next-testing (047843bdb316 Merge branch 'landlock_lsm_v34' into next-testing)
Merging apparmor/apparmor-next (d108370c644b apparmor: fix error check)
Merging integrity/next-integrity (836f7b6ca082 ima: fix deadlock when traversing "ima_default_rules".)
Merging keys/keys-next (e377c31f788f integrity: Load mokx variables into the blacklist keyring)
CONFLICT (content): Merge conflict in certs/system_keyring.c
Merging safesetid/safesetid-next (1b8b71922919 LSM: SafeSetID: Mark safesetid_initialized as __initdata)
Merging selinux/next (6880fa6c5660 Linux 5.15-rc1)
Merging smack/next (0817534ff9ea smackfs: Fix use-after-free in netlbl_catmap_walk())
Merging tomoyo/master (7d2a07b76933 Linux 5.14)
Merging tpmdd/next (f985911b7bc7 crypto: public_key: fix overflow during implicit conversion)
Merging watchdog/master (41e73feb1024 dt-bindings: watchdog: Add compatible for Mediatek MT7986)
Merging iommu/next (b58886bf14da Merge branch 'iommu/fixes' into next)
Merging audit/next (d680c6b49c5e audit: Convert to SPDX identifier)
Merging devicetree/for-next (53182e81f47d kbuild: Enable DT schema checks for %.dtb targets)
Merging mailbox/mailbox-for-next (85dfdbfc13ea mailbox: cmdq: add multi-gce clocks support for mt8195)
Merging spi/for-next (69dde9e5a835 Merge remote-tracking branch 'spi/for-5.16' into spi-next)
Merging tip/auto-latest (0209d878742b Merge remote-tracking branch 'tip/x86/fpu' into tip-master)
Merging clockevents/timers/drivers/next (f196ae282070 dt-bindings: timer: Add ABIs for new Ingenic SoCs)
Merging edac/edac-for-next (4646da896a44 Merge branch 'edac-urgent' into edac-for-next)
Merging irqchip/irq/irqchip-next (6e3b473ee064 Merge branch irq/qcom-pdc-nowake-cleanup into irq/irqchip-next)
Merging ftrace/for-next (5dfe50b05588 bootconfig: Rename xbc_node_find_child() to xbc_node_find_subkey())
Merging rcu/rcu/next (9c2eed2c4c24 rcu: Replace ________p1 and _________p1 with __UNIQUE_ID(rcu))
Merging kvm/next (109bbba5066b KVM: Drop unused kvm_dirty_gfn_invalid())
Merging kvm-arm/next (419025b3b419 Merge branch kvm-arm64/misc-5.15 into kvmarm-master/next)
Merging kvm-ppc/kvm-ppc-next (72476aaa4691 KVM: PPC: Book3S HV: Fix host radix SLB optimisation with hash guests)
Merging kvms390/next (a3e03bc1368c KVM: s390: index kvm->arch.idle_mask by vcpu_idx)
Merging xen-tip/linux-next (d859ed25b242 swiotlb-xen: drop DEFAULT_NSLABS)
Merging percpu/for-next (a81a52b325ec Merge branch 'for-5.14-fixes' into for-next)
Merging workqueues/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging drivers-x86/for-next (1f88e0a22f7c platform/x86: acer-wmi: use __packed instead of __attribute__((packed)))
Merging chrome-platform/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging hsi/for-next (e73f0f0ee754 Linux 5.14-rc1)
Merging leds/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging ipmi/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging driver-core/driver-core-next (820879ee1865 sysfs: simplify sysfs_kf_seq_show)
Merging usb/usb-next (ae8709b296d8 USB: core: Make do_proc_control() and do_proc_bulk() killable)
Merging usb-gadget/next (e49d033bddf5 Linux 5.12-rc6)
Merging usb-serial/usb-next (6880fa6c5660 Linux 5.15-rc1)
Merging usb-chipidea-next/for-usb-next (78665f57c3fa usb: chipidea: udc: make controller hardware endpoint primed)
Merging tty/tty-next (b55c8aa6b1ab tty: moxa: merge moxa.h into moxa.c)
Merging char-misc/char-misc-next (d06246ebd773 scripts/tags.sh: Fix obsolete parameter for ctags)
Merging extcon/extcon-next (9a40016a01c4 dt-bindings: extcon: usbc-tusb320: Add TUSB320L compatible string)
Merging phy-next/next (6880fa6c5660 Linux 5.15-rc1)
Merging soundwire/next (6880fa6c5660 Linux 5.15-rc1)
Merging thunderbolt/next (6880fa6c5660 Linux 5.15-rc1)
Merging vfio/next (ea870730d83f Merge branches 'v5.15/vfio/spdx-license-cleanups', 'v5.15/vfio/dma-valid-waited-v3', 'v5.15/vfio/vfio-pci-core-v5' and 'v5.15/vfio/vfio-ap' into v5.15/vfio/next)
Merging staging/staging-next (5e57c668dc09 staging: wfx: ensure IRQ is ready before enabling it)
Merging iio/togreg (d484c21bacfa iio: adc: Add driver for Renesas RZ/G2L A/D converter)
Merging mux/for-next (3516bd729358 Merge tag 's390-5.11-3' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux)
Merging icc/icc-next (8bf5d31c4f06 interconnect: qcom: osm-l3: Use driver-specific naming)
Merging dmaengine/next (6880fa6c5660 Linux 5.15-rc1)
Merging cgroup/for-next (c0002d11d799 cgroupv2, docs: fix misinformation in "device controller" section)
Merging scsi/for-next (1a0db7744e45 scsi: bsg: Fix device unregistration)
Merging scsi-mkp/for-next (7e642ca0375b scsi: target: Remove unused function arguments)
Merging vhost/linux-next (be9c6bad9b46 vdpa: potential uninitialized return in vhost_vdpa_va_map())
Merging rpmsg/for-next (99fdaca991f7 Merge branches 'hwspinlock-next', 'rpmsg-next' and 'rproc-next' into for-next)
Merging gpio/for-next (7ac554888233 MAINTAINERS: Remove reference to non-existing file)
Merging gpio-brgl/gpio/for-next (3ea046564039 dt-bindings: gpio: add gpio-line-names to rockchip,gpio-bank.yaml)
Merging gpio-intel/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging pinctrl/for-next (7acb009b95e7 Merge branch 'devel' into for-next)
Merging pinctrl-intel/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging pinctrl-renesas/renesas-pinctrl (075667cc6c29 pinctrl: renesas: No need to initialise global statics)
Merging pinctrl-samsung/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging pwm/for-next (3f2b16734914 pwm: mtk-disp: Implement atomic API .get_state())
Merging userns/for-next (a3be01837fc9 Merge of ucount-fixes-for-5.14, siginfo-si_trapno-for-v5.15, and exit-cleanups-for-v5.15 for testing in linux-next)
CONFLICT (content): Merge conflict in include/linux/sched/signal.h
Merging ktest/for-next (170f4869e662 ktest.pl: Fix the logic for truncating the size of the log file for email)
Merging kselftest/next (6880fa6c5660 Linux 5.15-rc1)
Merging livepatching/for-next (cd2d68f2d6b2 Merge branch 'for-5.15/cpu-hotplug' into for-next)
Merging coresight/next (1efbcec2ef8c coresight: cti: Reduce scope for the variable “cs_fwnode” in cti_plat_create_connection())
Merging rtc/rtc-next (6880fa6c5660 Linux 5.15-rc1)
Merging nvdimm/libnvdimm-for-next (bdd3c50d83bf dax: remove bdev_dax_supported)
Merging at24/at24/for-next (762925405482 dt-bindings: at24: add ON Semi CAT24C04 and CAT24C05)
Merging ntb/ntb-next (f96cb827ce49 ntb: ntb_pingpong: remove redundant initialization of variables msg_data and spad_data)
Merging seccomp/for-next/seccomp (b4d8a58f8dcf seccomp: Fix setting loaded filter count during TSYNC)
Merging kspp/for-next/kspp (0c91d23b6783 treewide: Replace 0-element memcpy() destinations with flexible arrays)
Merging cisco/for-next (9e98c678c2d6 Linux 5.1-rc1)
Merging gnss/gnss-next (0f79ce970e79 gnss: drop stray semicolons)
Merging fsi/next (9ab1428dfe2c fsi/sbefifo: Fix reset timeout)
Merging slimbus/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging nvmem/for-next (536267aafb8a nvmem: core: Add stubs for nvmem_cell_read_variable_le_u32/64 if !CONFIG_NVMEM)
Merging xarray/main (2c7e57a02708 idr test suite: Improve reporting from idr_find_test_1)
Merging hyperv/hyperv-next (9d68cd9120e4 hv_utils: Set the maximum packet size for VSS driver to the length of the receive buffer)
Merging auxdisplay/auxdisplay (24ebc044c72e auxdisplay: Replace symbolic permissions with octal permissions)
Merging kgdb/kgdb/for-next (f8416aa29185 kernel: debug: Convert to SPDX identifier)
Merging hmm/hmm (6880fa6c5660 Linux 5.15-rc1)
Merging fpga/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging kunit/test (6880fa6c5660 Linux 5.15-rc1)
Merging cfi/cfi/next (ff1176468d36 Linux 5.14-rc3)
Merging kunit-next/kunit (3b29021ddd10 kunit: tool: allow filtering test cases via glob)
Merging trivial/for-next (9ff9b0d392ea Merge tag 'net-next-5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next)
Merging mhi/mhi-next (813272ed5238 Merge 5.14-rc5 into char-misc-next)
Merging memblock/for-next (e888fa7bb882 memblock: Check memory add/cap ordering)
Merging init/init-user-pointers (38b082236e77 initramfs: use vfs_utimes in do_copy)
Merging counters/counters (e71ba9452f0b Linux 5.11-rc2)
Merging rust/rust-next (5d3986cf8ed6 MAINTAINERS: Rust)
CONFLICT (content): Merge conflict in include/linux/kallsyms.h
CONFLICT (content): Merge conflict in Makefile
Applying: fixup for rust integration with Makefile.clang creation
Merging cxl/next (2b922a9d064f cxl/registers: Fix Documentation warning)
Merging folio/for-next (1a90e9dae32c mm/writeback: Add folio_write_one)
CONFLICT (content): Merge conflict in mm/util.c
CONFLICT (content): Merge conflict in mm/rmap.c
CONFLICT (content): Merge conflict in mm/page-writeback.c
CONFLICT (content): Merge conflict in mm/memcontrol.c
CONFLICT (content): Merge conflict in mm/filemap.c
CONFLICT (content): Merge conflict in include/linux/memcontrol.h
Applying: Revert "drm/vc4: dsi: Switch to devm_drm_of_get_bridge"
Applying: Revert "drm/vc4: dpi: Switch to devm_drm_of_get_bridge"
Applying: Revert "drm/bridge: Add a function to abstract away panels"
Merging akpm-current/current (7f0fbfc0a77b ipc-check-checkpoint_restore_ns_capable-to-modify-c-r-proc-files-fix)
$ git checkout -b akpm remotes/origin/akpm/master
$ git rebase --onto master remotes/origin/akpm/master-base
Merging akpm/master (5a544c7cd917 mm: unexport {,un}lock_page_memcg)

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

^ permalink raw reply	[relevance 1%]

* Re: [PATCH v2] docs: deprecated.rst: Clarify open-coded arithmetic with literals
  2021-09-14 21:07  7% ` Jonathan Corbet
@ 2021-09-18  9:10 14%   ` Len Baker
  0 siblings, 0 replies; 200+ results
From: Len Baker @ 2021-09-18  9:10 UTC (permalink / raw)
  To: Jonathan Corbet
  Cc: Kees Cook, Len Baker, Gustavo A. R. Silva, Joe Perches,
	linux-doc, linux-kernel, linux-hardening

Hi,

On Tue, Sep 14, 2021 at 03:07:00PM -0600, Jonathan Corbet wrote:
> Len Baker <len.baker@gmx.com> writes:
>
> > Although using literals for size calculation in allocator arguments may
> > be harmless due to compiler warnings in case of overflows, it is better
> > to refactor the code to avoid the use of open-coded math idiom.
> >
> > So, clarify the preferred way in these cases.
> >
> > Suggested-by: Kees Cook <keescook@chromium.org>
> > Signed-off-by: Len Baker <len.baker@gmx.com>
> > ---
> > Changelog v1 -> v2
> >  - Clarify the sentence by changing "keep <foo> out" with "avoid <foo>"
> >    (Joe Perches).
> >
> >  Documentation/process/deprecated.rst | 3 ++-
> >  1 file changed, 2 insertions(+), 1 deletion(-)
> >
> > diff --git a/Documentation/process/deprecated.rst b/Documentation/process/deprecated.rst
> > index 9d83b8db8874..b5a8be914178 100644
> > --- a/Documentation/process/deprecated.rst
> > +++ b/Documentation/process/deprecated.rst
> > @@ -60,7 +60,8 @@ smaller allocation being made than the caller was expecting. Using those
> >  allocations could lead to linear overflows of heap memory and other
> >  misbehaviors. (One exception to this is literal values where the compiler
> >  can warn if they might overflow. Though using literals for arguments as
> > -suggested below is also harmless.)
> > +suggested below is also harmless. So, the preferred way in these cases is
> > +to refactor the code to avoid the open-coded math idiom.)
>
> Sorry for being so slow to get to this...

Don't worry.

> honestly, though, I've been
> staring at it for a bit and cannot figure out what you are trying to
> communicate.  What does "math idiom" mean here?  If you are trying to
> say that using literals is *not* harmless, then perhaps the first part
> of the parenthetical should be taken out?
>
> Confused...

The "open-coded arithmetic in allocator arguments" section in the documentation
explains that dynamic syze calculations should not be performed in memory
allocator function arguments. Then, the text in parenthesis explains an
exception to this rule: when the calculus is made using literals for all the
operands. However, the text in parenthesis also tells that using the same
literals in the recommended helpers or purpose specific functions is harmless.

So, there are two options for size calculations using literals:

1.- Leave it as is.
2.- Refactor the code to use purpose specific functions or helpers.

What I try to explain with this patch is that when the calculus is done using
only literals, the preferred way is the second option. In this manner the
open-coded calulation (multiplication, addition, ...) is avoided.

The "math idiom" refers to the open-coded arithmetic.

I hope this clarify things a bit.

Regards,
Len

^ permalink raw reply	[relevance 14%]

* [PATCH] dmaengine: pxa_dma: Prefer struct_size over open coded arithmetic
@ 2021-09-18 10:40 12% Len Baker
  2021-09-21  0:00  7% ` Gustavo A. R. Silva
  0 siblings, 1 reply; 200+ results
From: Len Baker @ 2021-09-18 10:40 UTC (permalink / raw)
  To: Daniel Mack, Haojian Zhuang, Robert Jarzmik, Vinod Koul
  Cc: Len Baker, Gustavo A. R. Silva, Kees Cook, linux-arm-kernel,
	dmaengine, linux-hardening, linux-kernel

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 struct_size() helper to do the arithmetic instead of the
argument "size + count * size" in the kzalloc() function.

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

Signed-off-by: Len Baker <len.baker@gmx.com>
---
 drivers/dma/pxa_dma.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/dma/pxa_dma.c b/drivers/dma/pxa_dma.c
index 4a2a796e348c..52d04641e361 100644
--- a/drivers/dma/pxa_dma.c
+++ b/drivers/dma/pxa_dma.c
@@ -742,8 +742,7 @@ pxad_alloc_desc(struct pxad_chan *chan, unsigned int nb_hw_desc)
 	dma_addr_t dma;
 	int i;

-	sw_desc = kzalloc(sizeof(*sw_desc) +
-			  nb_hw_desc * sizeof(struct pxad_desc_hw *),
+	sw_desc = kzalloc(struct_size(sw_desc, hw_desc, nb_hw_desc),
 			  GFP_NOWAIT);
 	if (!sw_desc)
 		return NULL;
--
2.25.1


^ permalink raw reply related	[relevance 12%]

* [PATCH] scsi: advansys: Prefer struct_size over open coded arithmetic
@ 2021-09-18 11:18 11% Len Baker
  2021-09-20 23:57  7% ` Gustavo A. R. Silva
  0 siblings, 1 reply; 200+ results
From: Len Baker @ 2021-09-18 11:18 UTC (permalink / raw)
  To: Matthew Wilcox, Hannes Reinecke, James E.J. Bottomley,
	Martin K. Petersen
  Cc: Len Baker, Gustavo A. R. Silva, Kees Cook, linux-hardening,
	linux-scsi, linux-kernel

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, refactor the code a bit to use the struct_size() helper instead of
the argument "size + count * size" in the kzalloc() function.

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

Signed-off-by: Len Baker <len.baker@gmx.com>
---
 drivers/scsi/advansys.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/scsi/advansys.c b/drivers/scsi/advansys.c
index ffb391967573..fe882502e7bf 100644
--- a/drivers/scsi/advansys.c
+++ b/drivers/scsi/advansys.c
@@ -7465,6 +7465,7 @@ static int asc_build_req(struct asc_board *boardp, struct scsi_cmnd *scp,
 		return ASC_BUSY;
 	} else if (use_sg > 0) {
 		int sgcnt;
+		size_t size;
 		struct scatterlist *slp;
 		struct asc_sg_head *asc_sg_head;

@@ -7477,8 +7478,8 @@ static int asc_build_req(struct asc_board *boardp, struct scsi_cmnd *scp,
 			return ASC_ERROR;
 		}

-		asc_sg_head = kzalloc(sizeof(asc_scsi_q->sg_head) +
-			use_sg * sizeof(struct asc_sg_list), GFP_ATOMIC);
+		size = struct_size(asc_scsi_q->sg_head, sg_list, use_sg);
+		asc_sg_head = kzalloc(size, GFP_ATOMIC);
 		if (!asc_sg_head) {
 			scsi_dma_unmap(scp);
 			set_host_byte(scp, DID_SOFT_ERROR);
--
2.25.1


^ permalink raw reply related	[relevance 11%]

* Re: [PATCH] net: mana: Prefer struct_size over open coded arithmetic
  2021-09-11 10:28 12% [PATCH] net: mana: Prefer struct_size over open coded arithmetic Len Baker
  2021-09-11 13:36  7% ` Haiyang Zhang
@ 2021-09-18 13:20 12% ` Len Baker
  2021-09-18 13:51  7%   ` Kees Cook
  2021-09-18 17:06  7%   ` Dexuan Cui
  1 sibling, 2 replies; 200+ results
From: Len Baker @ 2021-09-18 13:20 UTC (permalink / raw)
  To: K. Y. Srinivasan, Haiyang Zhang, Stephen Hemminger, Wei Liu,
	Dexuan Cui, David S. Miller, Jakub Kicinski, Sumit Semwal,
	Christian König, Kees Cook
  Cc: Len Baker, Colin Ian King, linux-hardening, linux-hyperv, netdev,
	linux-kernel, linux-media, dri-devel, linaro-mm-sig

Hi,

On Sat, Sep 11, 2021 at 12:28:18PM +0200, Len Baker 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 struct_size() helper to do the arithmetic instead of the
> argument "size + count * size" in the kzalloc() function.
>
> [1] https://www.kernel.org/doc/html/v5.14/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments
>
> Signed-off-by: Len Baker <len.baker@gmx.com>
> ---
>  drivers/net/ethernet/microsoft/mana/hw_channel.c | 4 +---
>  1 file changed, 1 insertion(+), 3 deletions(-)
>
> diff --git a/drivers/net/ethernet/microsoft/mana/hw_channel.c b/drivers/net/ethernet/microsoft/mana/hw_channel.c
> index 1a923fd99990..0efdc6c3c32a 100644
> --- a/drivers/net/ethernet/microsoft/mana/hw_channel.c
> +++ b/drivers/net/ethernet/microsoft/mana/hw_channel.c
> @@ -398,9 +398,7 @@ static int mana_hwc_alloc_dma_buf(struct hw_channel_context *hwc, u16 q_depth,
>  	int err;
>  	u16 i;
>
> -	dma_buf = kzalloc(sizeof(*dma_buf) +
> -			  q_depth * sizeof(struct hwc_work_request),
> -			  GFP_KERNEL);
> +	dma_buf = kzalloc(struct_size(dma_buf, reqs, q_depth), GFP_KERNEL);
>  	if (!dma_buf)
>  		return -ENOMEM;
>
> --
> 2.25.1
>

I have received a email from the linux-media subsystem telling that this
patch is not applicable. The email is the following:

Hello,

The following patch (submitted by you) has been updated in Patchwork:

 * linux-media: net: mana: Prefer struct_size over open coded arithmetic
     - http://patchwork.linuxtv.org/project/linux-media/patch/20210911102818.3804-1-len.baker@gmx.com/
     - for: Linux Media kernel patches
    was: New
    now: Not Applicable

This email is a notification only - you do not need to respond.

The question is: Why it is not applicable?. I have no received any bad comment
and a "Reviewed-by:" tag from Haiyang Zhang. So, what is the reason for the
"Not Applicable" state?.

Regards,
Len

^ permalink raw reply	[relevance 12%]

* Re: [PATCH] net: mana: Prefer struct_size over open coded arithmetic
  2021-09-18 13:20 12% ` Len Baker
@ 2021-09-18 13:51  7%   ` Kees Cook
  2021-09-18 17:11  7%     ` Len Baker
  2021-09-18 17:06  7%   ` Dexuan Cui
  1 sibling, 1 reply; 200+ results
From: Kees Cook @ 2021-09-18 13:51 UTC (permalink / raw)
  To: Len Baker, K. Y. Srinivasan, Haiyang Zhang, Stephen Hemminger,
	Wei Liu, Dexuan Cui, David S. Miller, Jakub Kicinski,
	Sumit Semwal, Christian König
  Cc: Colin Ian King, linux-hardening, linux-hyperv, netdev,
	linux-kernel, linux-media, dri-devel, linaro-mm-sig



On September 18, 2021 6:20:10 AM PDT, Len Baker <len.baker@gmx.com> wrote:
>Hi,
>
>On Sat, Sep 11, 2021 at 12:28:18PM +0200, Len Baker 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 struct_size() helper to do the arithmetic instead of the
>> argument "size + count * size" in the kzalloc() function.
>>
>> [1] https://www.kernel.org/doc/html/v5.14/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments
>>
>> Signed-off-by: Len Baker <len.baker@gmx.com>
>> ---
>>  drivers/net/ethernet/microsoft/mana/hw_channel.c | 4 +---
>>  1 file changed, 1 insertion(+), 3 deletions(-)
>>
>> diff --git a/drivers/net/ethernet/microsoft/mana/hw_channel.c b/drivers/net/ethernet/microsoft/mana/hw_channel.c
>> index 1a923fd99990..0efdc6c3c32a 100644
>> --- a/drivers/net/ethernet/microsoft/mana/hw_channel.c
>> +++ b/drivers/net/ethernet/microsoft/mana/hw_channel.c
>> @@ -398,9 +398,7 @@ static int mana_hwc_alloc_dma_buf(struct hw_channel_context *hwc, u16 q_depth,
>>  	int err;
>>  	u16 i;
>>
>> -	dma_buf = kzalloc(sizeof(*dma_buf) +
>> -			  q_depth * sizeof(struct hwc_work_request),
>> -			  GFP_KERNEL);
>> +	dma_buf = kzalloc(struct_size(dma_buf, reqs, q_depth), GFP_KERNEL);
>>  	if (!dma_buf)
>>  		return -ENOMEM;
>>
>> --
>> 2.25.1
>>
>
>I have received a email from the linux-media subsystem telling that this
>patch is not applicable. The email is the following:
>
>Hello,
>
>The following patch (submitted by you) has been updated in Patchwork:
>
> * linux-media: net: mana: Prefer struct_size over open coded arithmetic
>     - http://patchwork.linuxtv.org/project/linux-media/patch/20210911102818.3804-1-len.baker@gmx.com/
>     - for: Linux Media kernel patches
>    was: New
>    now: Not Applicable
>
>This email is a notification only - you do not need to respond.
>
>The question is: Why it is not applicable?. I have no received any bad comment
>and a "Reviewed-by:" tag from Haiyang Zhang. So, what is the reason for the
>"Not Applicable" state?.

That is the "Media" subsystem patch tracker. The patch appears to be for networking, so the Media tracker has marked it as "not applicable [to the media subsystem]".

The CC list for this patch seems rather wide (media, dri). I would have expected only netdev. Were you using scripts/get_maintainer.pl for getting addresses?

-Kees

^ permalink raw reply	[relevance 7%]

* [PATCH] platform/x86: thinkpad_acpi: Prefer struct_size over open coded arithmetic
@ 2021-09-18 15:05 11% Len Baker
  2021-09-20  5:58  7% ` Kees Cook
  0 siblings, 1 reply; 200+ results
From: Len Baker @ 2021-09-18 15:05 UTC (permalink / raw)
  To: Henrique de Moraes Holschuh, Hans de Goede, Mark Gross
  Cc: Len Baker, Gustavo A. R. Silva, Kees Cook, ibm-acpi-devel,
	platform-driver-x86, linux-hardening, linux-kernel

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, switch to flexible array member in the struct attribute_set_obj and
refactor the code accordingly to use the struct_size() helper instead of
the argument "size + count * size" in the kzalloc() function.

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

Signed-off-by: Len Baker <len.baker@gmx.com>
---
 drivers/platform/x86/thinkpad_acpi.c | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/drivers/platform/x86/thinkpad_acpi.c b/drivers/platform/x86/thinkpad_acpi.c
index 50ff04c84650..ed0b01ead796 100644
--- a/drivers/platform/x86/thinkpad_acpi.c
+++ b/drivers/platform/x86/thinkpad_acpi.c
@@ -1008,7 +1008,7 @@ struct attribute_set {

 struct attribute_set_obj {
 	struct attribute_set s;
-	struct attribute *a;
+	struct attribute *a[];
 } __attribute__((packed));

 static struct attribute_set *create_attr_set(unsigned int max_members,
@@ -1020,13 +1020,11 @@ static struct attribute_set *create_attr_set(unsigned int max_members,
 		return NULL;

 	/* Allocates space for implicit NULL at the end too */
-	sobj = kzalloc(sizeof(struct attribute_set_obj) +
-		    max_members * sizeof(struct attribute *),
-		    GFP_KERNEL);
+	sobj = kzalloc(struct_size(sobj, a, max_members + 1), GFP_KERNEL);
 	if (!sobj)
 		return NULL;
 	sobj->s.max_members = max_members;
-	sobj->s.group.attrs = &sobj->a;
+	sobj->s.group.attrs = sobj->a;
 	sobj->s.group.name = name;

 	return &sobj->s;
--
2.25.1


^ permalink raw reply related	[relevance 11%]

* RE: [PATCH] net: mana: Prefer struct_size over open coded arithmetic
  2021-09-18 13:20 12% ` Len Baker
  2021-09-18 13:51  7%   ` Kees Cook
@ 2021-09-18 17:06  7%   ` Dexuan Cui
  2021-09-19  8:27  7%     ` Len Baker
  1 sibling, 1 reply; 200+ results
From: Dexuan Cui @ 2021-09-18 17:06 UTC (permalink / raw)
  To: Len Baker, KY Srinivasan, Haiyang Zhang, Stephen Hemminger,
	Wei Liu, David S. Miller, Jakub Kicinski, Sumit Semwal,
	Christian König, Kees Cook
  Cc: Colin Ian King, linux-hardening, linux-hyperv, netdev,
	linux-kernel, linux-media, dri-devel, linaro-mm-sig

> From: Len Baker <len.baker@gmx.com>
> Sent: Saturday, September 18, 2021 6:20 AM
>  ...
> I have received a email from the linux-media subsystem telling that this
> patch is not applicable. The email is the following:
> 
> Regards,
> Len

The patch is already in the net-next tree:
https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next.git/commit/?id=f11ee2ad25b22c2ee587045dd6999434375532f7

^ permalink raw reply	[relevance 7%]

* Re: [PATCH] net: mana: Prefer struct_size over open coded arithmetic
  2021-09-18 13:51  7%   ` Kees Cook
@ 2021-09-18 17:11  7%     ` Len Baker
  0 siblings, 0 replies; 200+ results
From: Len Baker @ 2021-09-18 17:11 UTC (permalink / raw)
  To: Kees Cook
  Cc: Len Baker, K. Y. Srinivasan, Haiyang Zhang, Stephen Hemminger,
	Wei Liu, Dexuan Cui, David S. Miller, Jakub Kicinski,
	Sumit Semwal, Christian König, Colin Ian King,
	linux-hardening, linux-hyperv, netdev, linux-kernel, linux-media,
	dri-devel, linaro-mm-sig

Hi Kees,

On Sat, Sep 18, 2021 at 06:51:51AM -0700, Kees Cook wrote:
>
>
> On September 18, 2021 6:20:10 AM PDT, Len Baker <len.baker@gmx.com> wrote:
> >Hi,
> >
> >On Sat, Sep 11, 2021 at 12:28:18PM +0200, Len Baker 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 struct_size() helper to do the arithmetic instead of the
> >> argument "size + count * size" in the kzalloc() function.
> >>
> >> [1] https://www.kernel.org/doc/html/v5.14/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments
> >>
> >> Signed-off-by: Len Baker <len.baker@gmx.com>
> >> ---
> >>  drivers/net/ethernet/microsoft/mana/hw_channel.c | 4 +---
> >>  1 file changed, 1 insertion(+), 3 deletions(-)
> >>
> >> diff --git a/drivers/net/ethernet/microsoft/mana/hw_channel.c b/drivers/net/ethernet/microsoft/mana/hw_channel.c
> >> index 1a923fd99990..0efdc6c3c32a 100644
> >> --- a/drivers/net/ethernet/microsoft/mana/hw_channel.c
> >> +++ b/drivers/net/ethernet/microsoft/mana/hw_channel.c
> >> @@ -398,9 +398,7 @@ static int mana_hwc_alloc_dma_buf(struct hw_channel_context *hwc, u16 q_depth,
> >>  	int err;
> >>  	u16 i;
> >>
> >> -	dma_buf = kzalloc(sizeof(*dma_buf) +
> >> -			  q_depth * sizeof(struct hwc_work_request),
> >> -			  GFP_KERNEL);
> >> +	dma_buf = kzalloc(struct_size(dma_buf, reqs, q_depth), GFP_KERNEL);
> >>  	if (!dma_buf)
> >>  		return -ENOMEM;
> >>
> >> --
> >> 2.25.1
> >>
> >
> >I have received a email from the linux-media subsystem telling that this
> >patch is not applicable. The email is the following:
> >
> >Hello,
> >
> >The following patch (submitted by you) has been updated in Patchwork:
> >
> > * linux-media: net: mana: Prefer struct_size over open coded arithmetic
> >     - http://patchwork.linuxtv.org/project/linux-media/patch/20210911102818.3804-1-len.baker@gmx.com/
> >     - for: Linux Media kernel patches
> >    was: New
> >    now: Not Applicable
> >
> >This email is a notification only - you do not need to respond.
> >
> >The question is: Why it is not applicable?. I have no received any bad comment
> >and a "Reviewed-by:" tag from Haiyang Zhang. So, what is the reason for the
> >"Not Applicable" state?.
>
> That is the "Media" subsystem patch tracker. The patch appears to be for networking, so the Media tracker has marked it as "not applicable [to the media subsystem]".
>
> The CC list for this patch seems rather wide (media, dri). I would have expected only netdev. Were you using scripts/get_maintainer.pl for getting addresses?

Yes, my workflow is scripts/checkpatch.pl and then scripts/get_maintainer.pl
before sending any patch :)

Regards,
Len
>
> -Kees

^ permalink raw reply	[relevance 7%]

* Re: [PATCH] net: mana: Prefer struct_size over open coded arithmetic
  2021-09-18 17:06  7%   ` Dexuan Cui
@ 2021-09-19  8:27  7%     ` Len Baker
  0 siblings, 0 replies; 200+ results
From: Len Baker @ 2021-09-19  8:27 UTC (permalink / raw)
  To: Dexuan Cui
  Cc: Kees Cook, Len Baker, K. Y. Srinivasan, Haiyang Zhang,
	Stephen Hemminger, Wei Liu, David S. Miller, Jakub Kicinski,
	Sumit Semwal, Christian König, Colin Ian King,
	linux-hardening, linux-hyperv, netdev, linux-kernel, linux-media,
	dri-devel, linaro-mm-sig

Hi Dexuan,

On Sat, Sep 18, 2021 at 05:06:16PM +0000, Dexuan Cui wrote:
> > From: Len Baker <len.baker@gmx.com>
> > Sent: Saturday, September 18, 2021 6:20 AM
> >  ...
> > I have received a email from the linux-media subsystem telling that this
> > patch is not applicable. The email is the following:
> >
> > Regards,
> > Len
>
> The patch is already in the net-next tree:
> https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next.git/commit/?id=f11ee2ad25b22c2ee587045dd6999434375532f7

Thanks for the info.

Regards,
Len

^ permalink raw reply	[relevance 7%]

* [PATCH] afs: Prefer struct_size over open coded arithmetic
@ 2021-09-19  9:44 12% Len Baker
  2021-09-21  0:09  7% ` Gustavo A. R. Silva
  0 siblings, 1 reply; 200+ results
From: Len Baker @ 2021-09-19  9:44 UTC (permalink / raw)
  To: David Howells, Marc Dionne
  Cc: Len Baker, Gustavo A. R. Silva, Kees Cook, linux-afs,
	linux-hardening, linux-kernel

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 struct_size() helper to do the arithmetic instead of the
argument "size + size * count" in the kzalloc() function.

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

Signed-off-by: Len Baker <len.baker@gmx.com>
---
 fs/afs/security.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/fs/afs/security.c b/fs/afs/security.c
index 3c7a8fc4f93f..7c6a63a30394 100644
--- a/fs/afs/security.c
+++ b/fs/afs/security.c
@@ -219,8 +219,7 @@ void afs_cache_permit(struct afs_vnode *vnode, struct key *key,
 	 * yet.
 	 */
 	size++;
-	new = kzalloc(sizeof(struct afs_permits) +
-		      sizeof(struct afs_permit) * size, GFP_NOFS);
+	new = kzalloc(struct_size(new, permits, size), GFP_NOFS);
 	if (!new)
 		goto out_put;

--
2.25.1


^ permalink raw reply related	[relevance 12%]

* [PATCH] aio: Prefer struct_size over open coded arithmetic
@ 2021-09-19  9:45 12% Len Baker
  2021-09-21  0:11  7% ` Gustavo A. R. Silva
  0 siblings, 1 reply; 200+ results
From: Len Baker @ 2021-09-19  9:45 UTC (permalink / raw)
  To: Benjamin LaHaise, Alexander Viro
  Cc: Len Baker, Kees Cook, Gustavo A. R. Silva, linux-aio,
	linux-fsdevel, linux-hardening, linux-kernel

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 struct_size() helper to do the arithmetic instead of the
argument "size + size * count" in the kzalloc() function.

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

Signed-off-by: Len Baker <len.baker@gmx.com>
---
 fs/aio.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/fs/aio.c b/fs/aio.c
index 51b08ab01dff..c2978c0b872c 100644
--- a/fs/aio.c
+++ b/fs/aio.c
@@ -659,8 +659,7 @@ static int ioctx_add_table(struct kioctx *ctx, struct mm_struct *mm)
 		new_nr = (table ? table->nr : 1) * 4;
 		spin_unlock(&mm->ioctx_lock);

-		table = kzalloc(sizeof(*table) + sizeof(struct kioctx *) *
-				new_nr, GFP_KERNEL);
+		table = kzalloc(struct_size(table, table, new_nr), GFP_KERNEL);
 		if (!table)
 			return -ENOMEM;

--
2.25.1


^ permalink raw reply related	[relevance 12%]

* [PATCH] writeback: prefer struct_size over open coded arithmetic
@ 2021-09-19  9:46 13% Len Baker
  2021-09-21  0:17  7% ` Gustavo A. R. Silva
  0 siblings, 1 reply; 200+ results
From: Len Baker @ 2021-09-19  9:46 UTC (permalink / raw)
  To: Alexander Viro
  Cc: Len Baker, Kees Cook, Gustavo A. R. Silva, linux-fsdevel,
	linux-hardening, linux-kernel

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.

In this case this is not actually dynamic size: all the operands
involved in the calculation are constant values. However it is best to
refactor this anyway, just to keep the open-coded math idiom out of
code.

So, use the struct_size() helper to do the arithmetic instead of the
argument "size + count * size" in the kzalloc() function.

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

Signed-off-by: Len Baker <len.baker@gmx.com>
---
 fs/fs-writeback.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c
index 81ec192ce067..f7abff31e026 100644
--- a/fs/fs-writeback.c
+++ b/fs/fs-writeback.c
@@ -624,8 +624,8 @@ bool cleanup_offline_cgwb(struct bdi_writeback *wb)
 	int nr;
 	bool restart = false;

-	isw = kzalloc(sizeof(*isw) + WB_MAX_INODES_PER_ISW *
-		      sizeof(struct inode *), GFP_KERNEL);
+	isw = kzalloc(struct_size(isw, inodes, WB_MAX_INODES_PER_ISW),
+		      GFP_KERNEL);
 	if (!isw)
 		return restart;

--
2.25.1


^ permalink raw reply related	[relevance 13%]

* [PATCH] assoc_array: Avoid open coded arithmetic in allocator arguments
@ 2021-09-19 11:09 11% Len Baker
  2021-09-21 18:30  7% ` Gustavo A. R. Silva
  0 siblings, 1 reply; 200+ results
From: Len Baker @ 2021-09-19 11:09 UTC (permalink / raw)
  To: Andrew Morton, Gustavo A. R. Silva, Kees Cook
  Cc: Len Baker, Miguel Ojeda, Nick Desaulniers, Nathan Chancellor,
	linux-hardening, linux-kernel

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 struct_size() helper to do the arithmetic instead of the
argument "size + count * size" in the kmalloc() and kzalloc() functions.

Also, take the opportunity to refactor the memcpy() calls to use the
struct_size() and flex_array_size() helpers.

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

Signed-off-by: Len Baker <len.baker@gmx.com>
---
 lib/assoc_array.c | 22 ++++++++++------------
 1 file changed, 10 insertions(+), 12 deletions(-)

diff --git a/lib/assoc_array.c b/lib/assoc_array.c
index 04c98799c3ba..079c72e26493 100644
--- a/lib/assoc_array.c
+++ b/lib/assoc_array.c
@@ -741,8 +741,7 @@ static bool assoc_array_insert_into_terminal_node(struct assoc_array_edit *edit,
 	keylen = round_up(diff, ASSOC_ARRAY_KEY_CHUNK_SIZE);
 	keylen >>= ASSOC_ARRAY_KEY_CHUNK_SHIFT;

-	new_s0 = kzalloc(sizeof(struct assoc_array_shortcut) +
-			 keylen * sizeof(unsigned long), GFP_KERNEL);
+	new_s0 = kzalloc(struct_size(new_s0, index_key, keylen), GFP_KERNEL);
 	if (!new_s0)
 		return false;
 	edit->new_meta[2] = assoc_array_shortcut_to_ptr(new_s0);
@@ -849,8 +848,8 @@ static bool assoc_array_insert_mid_shortcut(struct assoc_array_edit *edit,
 		keylen = round_up(diff, ASSOC_ARRAY_KEY_CHUNK_SIZE);
 		keylen >>= ASSOC_ARRAY_KEY_CHUNK_SHIFT;

-		new_s0 = kzalloc(sizeof(struct assoc_array_shortcut) +
-				 keylen * sizeof(unsigned long), GFP_KERNEL);
+		new_s0 = kzalloc(struct_size(new_s0, index_key, keylen),
+				 GFP_KERNEL);
 		if (!new_s0)
 			return false;
 		edit->new_meta[1] = assoc_array_shortcut_to_ptr(new_s0);
@@ -864,7 +863,7 @@ static bool assoc_array_insert_mid_shortcut(struct assoc_array_edit *edit,
 		new_n0->parent_slot = 0;

 		memcpy(new_s0->index_key, shortcut->index_key,
-		       keylen * sizeof(unsigned long));
+		       flex_array_size(new_s0, index_key, keylen));

 		blank = ULONG_MAX << (diff & ASSOC_ARRAY_KEY_CHUNK_MASK);
 		pr_devel("blank off [%zu] %d: %lx\n", keylen - 1, diff, blank);
@@ -899,8 +898,8 @@ static bool assoc_array_insert_mid_shortcut(struct assoc_array_edit *edit,
 		keylen = round_up(shortcut->skip_to_level, ASSOC_ARRAY_KEY_CHUNK_SIZE);
 		keylen >>= ASSOC_ARRAY_KEY_CHUNK_SHIFT;

-		new_s1 = kzalloc(sizeof(struct assoc_array_shortcut) +
-				 keylen * sizeof(unsigned long), GFP_KERNEL);
+		new_s1 = kzalloc(struct_size(new_s1, index_key, keylen),
+				 GFP_KERNEL);
 		if (!new_s1)
 			return false;
 		edit->new_meta[2] = assoc_array_shortcut_to_ptr(new_s1);
@@ -913,7 +912,7 @@ static bool assoc_array_insert_mid_shortcut(struct assoc_array_edit *edit,
 		new_n0->slots[sc_slot] = assoc_array_shortcut_to_ptr(new_s1);

 		memcpy(new_s1->index_key, shortcut->index_key,
-		       keylen * sizeof(unsigned long));
+		       flex_array_size(new_s1, index_key, keylen));

 		edit->set[1].ptr = &side->back_pointer;
 		edit->set[1].to = assoc_array_shortcut_to_ptr(new_s1);
@@ -1490,13 +1489,12 @@ int assoc_array_gc(struct assoc_array *array,
 		shortcut = assoc_array_ptr_to_shortcut(cursor);
 		keylen = round_up(shortcut->skip_to_level, ASSOC_ARRAY_KEY_CHUNK_SIZE);
 		keylen >>= ASSOC_ARRAY_KEY_CHUNK_SHIFT;
-		new_s = kmalloc(sizeof(struct assoc_array_shortcut) +
-				keylen * sizeof(unsigned long), GFP_KERNEL);
+		new_s = kmalloc(struct_size(new_s, index_key, keylen),
+				GFP_KERNEL);
 		if (!new_s)
 			goto enomem;
 		pr_devel("dup shortcut %p -> %p\n", shortcut, new_s);
-		memcpy(new_s, shortcut, (sizeof(struct assoc_array_shortcut) +
-					 keylen * sizeof(unsigned long)));
+		memcpy(new_s, shortcut, struct_size(new_s, index_key, keylen));
 		new_s->back_pointer = new_parent;
 		new_s->parent_slot = shortcut->parent_slot;
 		*new_ptr_pp = new_parent = assoc_array_shortcut_to_ptr(new_s);
--
2.25.1


^ permalink raw reply related	[relevance 11%]

* [PATCH] nl80211: prefer struct_size over open coded arithmetic
@ 2021-09-19 11:40 12% Len Baker
  2021-09-21 18:51  7% ` Gustavo A. R. Silva
  0 siblings, 1 reply; 200+ results
From: Len Baker @ 2021-09-19 11:40 UTC (permalink / raw)
  To: Johannes Berg, David S. Miller, Jakub Kicinski
  Cc: Len Baker, Kees Cook, Gustavo A. R. Silva, linux-wireless,
	netdev, linux-hardening, linux-kernel

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 struct_size() helper to do the arithmetic instead of the
argument "size + count * size" in the kzalloc() functions.

Also, take the opportunity to refactor the memcpy() call to use the
flex_array_size() helper.

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

Signed-off-by: Len Baker <len.baker@gmx.com>
---
 net/wireless/nl80211.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c
index bf7cd4752547..b56856349ced 100644
--- a/net/wireless/nl80211.c
+++ b/net/wireless/nl80211.c
@@ -11766,9 +11766,10 @@ static int nl80211_set_cqm_rssi(struct genl_info *info,
 	wdev_lock(wdev);
 	if (n_thresholds) {
 		struct cfg80211_cqm_config *cqm_config;
+		size_t size = struct_size(cqm_config, rssi_thresholds,
+					  n_thresholds);

-		cqm_config = kzalloc(sizeof(struct cfg80211_cqm_config) +
-				     n_thresholds * sizeof(s32), GFP_KERNEL);
+		cqm_config = kzalloc(size, GFP_KERNEL);
 		if (!cqm_config) {
 			err = -ENOMEM;
 			goto unlock;
@@ -11777,7 +11778,8 @@ static int nl80211_set_cqm_rssi(struct genl_info *info,
 		cqm_config->rssi_hyst = hysteresis;
 		cqm_config->n_rssi_thresholds = n_thresholds;
 		memcpy(cqm_config->rssi_thresholds, thresholds,
-		       n_thresholds * sizeof(s32));
+		       flex_array_size(cqm_config, rssi_thresholds,
+				       n_thresholds));

 		wdev->cqm_config = cqm_config;
 	}
@@ -15081,9 +15083,7 @@ static int nl80211_set_sar_specs(struct sk_buff *skb, struct genl_info *info)
 	if (specs > rdev->wiphy.sar_capa->num_freq_ranges)
 		return -EINVAL;

-	sar_spec = kzalloc(sizeof(*sar_spec) +
-			   specs * sizeof(struct cfg80211_sar_sub_specs),
-			   GFP_KERNEL);
+	sar_spec = kzalloc(struct_size(sar_spec, sub_specs, specs), GFP_KERNEL);
 	if (!sar_spec)
 		return -ENOMEM;

--
2.25.1


^ permalink raw reply related	[relevance 12%]

* [PATCH] ALSA: usx2y: Prefer struct_size over open coded arithmetic
@ 2021-09-19 13:37 13% Len Baker
  2021-09-21 16:41  7% ` Takashi Iwai
  0 siblings, 1 reply; 200+ results
From: Len Baker @ 2021-09-19 13:37 UTC (permalink / raw)
  To: Jaroslav Kysela, Takashi Iwai
  Cc: Len Baker, gushengxian, Kees Cook, Gustavo A. R. Silva,
	alsa-devel, linux-hardening, linux-kernel

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.

In this case this is not actually dynamic size: all the operands
involved in the calculation are constant values. However it is better to
refactor this anyway, just to keep the open-coded math idiom out of
code.

So, use the struct_size() helper to do the arithmetic instead of the
argument "size + size * count" in the kzalloc() function.

Also, take the opportunity to refactor the declaration variables to make
it more easy to read.

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

Signed-off-by: Len Baker <len.baker@gmx.com>
---
 sound/usb/usx2y/usbusx2yaudio.c | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/sound/usb/usx2y/usbusx2yaudio.c b/sound/usb/usx2y/usbusx2yaudio.c
index c39cc6851e2d..cfc1ea53978d 100644
--- a/sound/usb/usx2y/usbusx2yaudio.c
+++ b/sound/usb/usx2y/usbusx2yaudio.c
@@ -668,14 +668,15 @@ static void i_usx2y_04int(struct urb *urb)

 static int usx2y_rate_set(struct usx2ydev *usx2y, int rate)
 {
-	int			err = 0, i;
-	struct snd_usx2y_urb_seq	*us = NULL;
-	int			*usbdata = NULL;
-	const struct s_c2	*ra = rate == 48000 ? setrate_48000 : setrate_44100;
+	int err = 0, i;
+	struct snd_usx2y_urb_seq *us = NULL;
+	int *usbdata = NULL;
+	const struct s_c2 *ra = rate == 48000 ? setrate_48000 : setrate_44100;
 	struct urb *urb;

 	if (usx2y->rate != rate) {
-		us = kzalloc(sizeof(*us) + sizeof(struct urb *) * NOOF_SETRATE_URBS, GFP_KERNEL);
+		us = kzalloc(struct_size(us, urb, NOOF_SETRATE_URBS),
+			     GFP_KERNEL);
 		if (!us) {
 			err = -ENOMEM;
 			goto cleanup;
--
2.25.1


^ permalink raw reply related	[relevance 13%]

* Linux 5.15-rc2
@ 2021-09-20  0:40  2% Linus Torvalds
  0 siblings, 0 replies; 200+ results
From: Linus Torvalds @ 2021-09-20  0:40 UTC (permalink / raw)
  To: Linux Kernel Mailing List

So I've spent a fair amount of this week trying to sort out all the
odd warnings, and I want to particularly thank Guenter Roeck for his
work on tracking where the build failures due to -Werror come from.

Is it done? No. But on the whole I'm feeling fairly good about this
all, even if it has meant that I've been looking at some really odd
and grotty code. Who knew I'd still worry about some odd EISA driver
on alpha, after all these years? A slight change of pace ;)

The most annoying thing is probably the "fix one odd corner case,
three others rear their ugly heads". But I remain convinced that it's
all for a good cause, and that we really do want to have a clean build
even for the crazy odd cases.

We'll get there.

Anyway, I hope this release will turn more normal soon - but the rc2
week tends to be fairly quiet for me, so the fact that I then ended up
looking at reports of odd warnings-turned-errors this week wasn't too
bad.

There's obviously other fixes in here too, only a small subset of the
shortlog below is due to the warning fixes, even if that's what I've
personally been most involved with.

Go test, and keep the reports coming,

                Linus

---

Adam Borowski (1):
      net: wan: wanxl: define CROSS_COMPILE_M68K

Adrian Bunk (1):
      bnx2x: Fix enabling network interfaces without VFs

Adrian Hunter (1):
      perf script: Fix ip display when type != attr->type

Aleksander Jan Bajkowski (1):
      net: dsa: lantiq_gswip: Add 200ms assert delay

Alex Deucher (1):
      drm/amdgpu/display: add a proper license to dc_link_dp.c

Alex Elder (1):
      net: ipa: initialize all filter table slots

Alexander Egorenkov (1):
      s390/sclp: fix Secure-IPL facility detection

Alim Akhtar (1):
      dt-bindings: ufs: Add bindings for Samsung ufs host

Andrea Claudi (1):
      selftest: net: fix typo in altname test

Andreas Larsson (1):
      sparc32: page align size in arch_dma_alloc

Andrii Nakryiko (1):
      perf bpf: Ignore deprecation warning when using libbpf's
btf__get_from_id()

Andy Shevchenko (1):
      x86/platform: Increase maximum GPIO number for X86_64

Anson Jacob (1):
      drm/amd/display: dc_assert_fp_enabled assert only if FPU is not enabled

Ansuel Smith (1):
      net: dsa: qca8k: fix kernel panic with legacy mdio mapping

Anton Eidelman (1):
      nvme-multipath: fix ANA state updates when a namespace is not present

Ariel Marcovitch (2):
      checkkconfigsymbols.py: Forbid passing 'HEAD' to --commit
      checkkconfigsymbols.py: Remove skipping of help lines in
parse_kconfig_file

Arnd Bergmann (2):
      ne2000: fix unused function warning
      drm/rockchip: cdn-dp-core: Make cdn_dp_core_resume __maybe_unused

Aya Levin (3):
      net/mlx5e: Fix mutual exclusion between CQE compression and HW TS
      net/mlx5e: Fix condition when retrieving PTP-rqn
      udp_tunnel: Fix udp_tunnel_nic work-queue type

Baptiste Lepers (1):
      events: Reuse value read using READ_ONCE instead of re-reading it

Baruch Siach (1):
      net/packet: clarify source of pr_*() messages

Bixuan Cui (1):
      bpf: Add oversize check before call kvcalloc()

Bjorn Helgaas (1):
      PCI/VPD: Defer VPD sizing until first access

Boqun Feng (1):
      locking/rwbase: Take care of ordering guarantee for fastpath reader

Chris Wilson (1):
      rtc: cmos: Disable irq around direct invocation of cmos_interrupt()

Christian König (1):
      drm/amdgpu: fix use after free during BO move

Christoph Hellwig (3):
      dma-mapping: fix the kerneldoc for dma_map_sg_attrs
      block: check if a profile is actually registered in
blk_integrity_unregister
      nvme: remove the call to nvme_update_disk_info in nvme_ns_remove

Colin Ian King (1):
      qlcnic: Remove redundant initialization of variable ret

Cédric Le Goater (1):
      powerpc/xics: Set the IRQ chip data for the ICS native backend

Dan Carpenter (1):
      nvmet: fix a width vs precision bug in nvmet_subsys_attr_serial_show()

Dan Li (1):
      arm64: Mark __stack_chk_guard as __ro_after_init

Daniel Borkmann (4):
      bpf: Relicense disassembler as GPL-2.0-only OR BSD-2-Clause
      bpf, cgroups: Fix cgroup v2 fallback on v1/v2 mixed mode
      bpf, selftests: Add cgroup v1 net_cls classid helpers
      bpf, selftests: Add test case for mixed cgroup v1/v2

Daniel Vetter (1):
      drm/i915: Release ctx->syncobj on final put, not on ctx close

Daniel Wagner (1):
      nvme: avoid race in shutdown namespace removal

Daniele Ceraolo Spurio (1):
      drm/i915/guc: drop guc_communication_enabled

Dave Ertman (1):
      ice: Correctly deal with PFs that do not support RDMA

David Brazdil (1):
      of: restricted dma: Fix condition for rmem init

David Heidelberg (1):
      dt-bindings: arm: Fix Toradex compatible typo

David Hildenbrand (1):
      s390/pci_mmio: fully validate the VMA before calling follow_pte()

David Thompson (1):
      mlxbf_gige: clear valid_polarity upon open

Doug Smythies (1):
      cpufreq: intel_pstate: Override parameters if HWP forced by BIOS

Edwin Peer (1):
      bnxt_en: make bnxt_free_skbs() safe to call after bnxt_free_mem()

Eli Cohen (1):
      net/{mlx5|nfp|bnxt}: Remove unnecessary RTNL lock assert

Eric Dumazet (3):
      net/af_unix: fix a data-race in unix_dgram_poll
      net-caif: avoid user-triggerable WARN_ON(1)
      Revert "Revert "ipv4: fix memory leaks in ip_cmsg_send() callers""

Ernst Sjöstrand (1):
      drm/amd/amdgpu: Increase HWIP_MAX_INSTANCE to 10

Eugene Syromiatnikov (1):
      io-wq: provide IO_WQ_* constants for
IORING_REGISTER_IOWQ_MAX_WORKERS arg items

Evan Quan (2):
      PCI: Add AMD GPU multi-function power dependencies
      drm/amd/pm: fix runpm hang when amdgpu loaded prior to sound driver

Felix Kuehling (1):
      drm/amdkfd: make needs_pcie_atomics FW-version dependent

Florian Fainelli (1):
      r6040: Restore MDIO clock frequency after MAC reset

Ganesh Goudar (1):
      powerpc/mce: Fix access error in mce handler

Geert Uytterhoeven (2):
      m68k: mvme: Remove overdue #warnings in RTC handling
      sh: Add missing FORCE prerequisites in Makefile

Guenter Roeck (9):
      net: ni65: Avoid typecast of pointer to u32
      m68k: Double cast io functions to unsigned long
      compiler.h: Introduce absolute_pointer macro
      net: i825xx: Use absolute_pointer for memcpy from fixed memory location
      alpha: Move setup.h out of uapi
      alpha: Use absolute_pointer to define COMMAND_LINE
      alpha: Declare virt_to_phys and virt_to_bus parameter as pointer
to volatile
      cpufreq: vexpress: Drop unused variable
      net: 6pack: Fix tx timeout and slot time

Hamza Mahfooz (1):
      dma-debug: prevent an error message from causing runtime problems

Hao Xu (2):
      io-wq: code clean of io_wqe_create_worker()
      io-wq: fix potential race of acct->nr_workers

Harry Wentland (1):
      drm/amd/display: Get backlight from PWM if DMCU is not initialized

Heiko Carstens (3):
      s390: update defconfigs
      s390/ap: fix kernel doc comments
      s390: remove WARN_DYNAMIC_STACK

Helge Deller (2):
      parisc: Use absolute_pointer() to define PAGE0
      parisc: Declare pci_iounmap() parisc version only when CONFIG_PCI enabled

Hersen Wu (1):
      drm/amd/display: dsc mst 2 4K displays go dark with 2 lane HBR3

Hoang Le (1):
      tipc: increase timeout in tipc_sk_enqueue()

Huang Rui (1):
      drm/ttm: fix type mismatch error on sparc64

Ian Rogers (1):
      libperf evsel: Make use of FD robust.

James Morse (1):
      cpufreq: schedutil: Destroy mutex before kobject_put() frees the memory

James Zhu (3):
      drm/amdkfd: separate kfd_iommu_resume from kfd_resume
      drm/amdgpu: add amdgpu_amdkfd_resume_iommu
      drm/amdgpu: move iommu_resume before ip init/resume

Jan Beulich (9):
      xen/pvcalls: backend can be a module
      swiotlb-xen: avoid double free
      swiotlb-xen: fix late init retry
      swiotlb-xen: maintain slab count properly
      swiotlb-xen: suppress certain init retries
      swiotlb-xen: limit init retries
      swiotlb-xen: drop leftover __ref
      swiotlb-xen: arrange to have buffer info logged
      swiotlb-xen: drop DEFAULT_NSLABS

Jean-Philippe Brucker (2):
      selftests/bpf: Fix build of task_pt_regs test for arm64
      PCI/ACPI: Don't reset a fwnode set by OF

Jeff Moyer (1):
      x86/pat: Pass valid address to sanitize_phys()

Jens Axboe (6):
      io_uring: ensure symmetry in handling iter types in loop_rw_iter()
      io_uring: pin SQPOLL data before unlocking ring lock
      iov_iter: add helper to save iov_iter state
      io_uring: allow retry for O_NONBLOCK if async is supported
      io_uring: use iov_iter state save/restore helpers
      Revert "iov_iter: track truncated size"

Jeremy Kerr (1):
      mctp: perform route destruction under RCU read lock

Jesper Nilsson (1):
      net: stmmac: allow CSR clock of 300MHz

Jiaran Zhang (2):
      net: hns3: fix the exception when query imp info
      net: hns3: fix the timing issue of VF clearing interrupt sources

Joakim Zhang (2):
      net: stmmac: fix system hang caused by eee_ctrl_timer during
suspend/resume
      net: stmmac: platform: fix build warning when with !CONFIG_PM_SLEEP

Jon Derrick (1):
      MAINTAINERS: Add Nirmal Patel as VMD maintainer

Juergen Gross (4):
      xen/balloon: use a kernel thread instead a workqueue
      PM: base: power: don't try to use non-existing RTC for storing data
      xen: reset legacy rtc flag for PV domU
      xen: fix usage of pmd_populate in mremap for pv guests

Kai-Heng Feng (1):
      drm/i915/dp: Use max params for panels < eDP 1.4

Keith Busch (1):
      nvme-tcp: fix io_work priority inversion

Kenneth Feng (1):
      drm/amd/pm: fix the issue of uploading powerplay table

Kortan (1):
      gen_compile_commands: fix missing 'sys' package

Lang Yu (5):
      drm/amdgpu: fix sysfs_emit/sysfs_emit_at warnings(v2)
      drm/amdgpu: update SMU PPSMC for cyan skilfish
      drm/amdgpu: update SMU driver interface for cyan skilfish(v3)
      drm/amdgpu: add some pptable funcs for cyan skilfish(v3)
      drm/amdgpu: add manual sclk/vddc setting support for cyan skilfish(v3)

Lee Shawn C (1):
      drm/i915/dp: return proper DPRX link training result

Len Baker (1):
      net: mana: Prefer struct_size over open coded arithmetic

Li Jinlin (1):
      blk-cgroup: fix UAF by grabbing blkcg lock before destroying blkg pd

Lihong Kou (1):
      block: flush the integrity workqueue in blk_integrity_unregister

Lin, Zhenpeng (1):
      dccp: don't duplicate ccid when cloning dccp sock

Linus Torvalds (17):
      compiler_attributes.h: drop __has_attribute() support for gcc4
      Drop some straggling mentions of gcc-4.9 as being stale
      memblock: introduce saner 'memblock_free_ptr()' interface
      sparc: avoid stringop-overread errors
      qnx4: avoid stringop-overread errors
      3com 3c515: make it compile on 64-bit architectures
      spi: Fix tegra20 build with CONFIG_PM=n
      alpha: make 'Jensen' IO functions build again
      tgafb: clarify dependencies
      alpha: mark 'Jensen' platform as no longer broken
      alpha: move __udiv_qrnnd library function to arch/alpha/lib/
      Revert drm/vc4 hdmi runtime PM changes
      Revert "drm/vc4: hdmi: Remove drm_encoder->crtc usage"
      alpha: enable GENERIC_PCI_IOMAP unconditionally
      dmascc: use proper 'virt_to_bus()' rather than casting to 'int'
      pci_iounmap'2: Electric Boogaloo: try to make sense of it all
      Linux 5.15-rc2

Lucas Stach (8):
      drm/etnaviv: return context from etnaviv_iommu_context_get
      drm/etnaviv: put submit prev MMU context when it exists
      drm/etnaviv: stop abusing mmu_context as FE running marker
      drm/etnaviv: keep MMU context across runtime suspend/resume
      drm/etnaviv: exec and MMU state is lost when resetting the GPU
      drm/etnaviv: fix MMU context leak on GPU reset
      drm/etnaviv: reference MMU context when setting up hardware state
      drm/etnaviv: add missing MMU context put when reaping MMU mapping

Lv Ruyi (1):
      arm64/kernel: remove duplicate include in process.c

Maor Gottlieb (1):
      net/mlx5: Fix potential sleeping in atomic context

Mark Bloch (1):
      net/mlx5: Lag, don't update lag if lag isn't supported

Mark Brown (1):
      arm64/sve: Use correct size when reinitialising SVE state

Masami Hiramatsu (1):
      tools/bootconfig: Define memblock_free_ptr() to fix build error

Mauro Carvalho Chehab (2):
      dt-bindings: net: dsa: sja1105: update nxp,sja1105.yaml reference
      dt-bindings: arm: mediatek: mmsys: update mediatek,mmsys.yaml reference

Meenakshikumar Somasundaram (1):
      drm/amd/display: Link training retry fix for abort case

Michael Chan (2):
      bnxt_en: Fix error recovery regression
      bnxt_en: Clean up completion ring page arrays completely

Michael Ellerman (1):
      powerpc/boot: Fix build failure since GCC 4.9 removal

Michael Petlan (1):
      perf machine: Initialize srcline string member in add_location struct

Michel Dänzer (1):
      drm/amdgpu: Drop inline from amdgpu_ras_eeprom_max_record_count

Mike Rapoport (1):
      x86/mm: Fix kern_addr_valid() to cope with existing but not
present entries

Ming Lei (1):
      blk-mq: avoid to iterate over stale request

Nathan Chancellor (6):
      tools: compiler-gcc.h: Guard error attribute use with __has_attribute
      drm/i915/selftests: Do not use import_obj uninitialized
      drm/i915/selftests: Always initialize err in
igt_dmabuf_import_same_driver_lmem()
      drm/i915: Enable -Wsometimes-uninitialized
      x86/build: Do not add -falign flags unconditionally for clang
      kbuild: Add -Werror=ignored-optimization-argument to CLANG_FLAGS

Nathan Rossi (1):
      net: phylink: Update SFP selected interface on advertising changes

Nicholas Kazlauskas (2):
      drm/amd/display: Add NULL checks for vblank workqueue
      drm/amd/display: Fix white screen page fault for gpuvm

Nicholas Piggin (4):
      powerpc/64s: system call scv tabort fix for corrupt irq soft-mask state
      selftests/powerpc: Add scv versions of the basic TM syscall tests
      powerpc/64s: system call rfscv workaround for TM bugs
      KVM: PPC: Book3S HV: Tolerate treclaim. in fake-suspend mode
changing registers

Nick Desaulniers (10):
      Documentation: raise minimum supported version of GCC to 5.1
      compiler.h: drop fallback overflow checkers
      mm/ksm: remove old GCC 4.9+ check
      Kconfig.debug: drop GCC 5+ version check for DWARF5
      riscv: remove Kconfig check for GCC version for ARCH_RV64I
      powerpc: remove GCC version check for UPD_CONSTR
      arm64: remove GCC version check for ARCH_SUPPORTS_INT128
      Makefile: drop GCC < 5 -fno-var-tracking-assignments workaround
      compiler-gcc.h: drop checks for older GCC versions
      vmlinux.lds.h: remove old check for GCC 4.9

Nirmoy Das (2):
      drm/amdgpu: use IS_ERR for debugfs APIs
      drm/radeon: pass drm dev radeon_agp_head_init directly

Paolo Abeni (2):
      vhost_net: fix OoB on sendmsg() failure.
      igc: fix tunnel offloading

Parav Pandit (1):
      net/mlx5: Fix rdma aux device on devlink reload

Paul Menzel (1):
      drm/amdgpu: Demote TMZ unsupported log message from warning to info

Pavel Begunkov (2):
      io_uring: auto-removal for direct open/accept
      io_uring: move iopoll reissue into regular IO path

Peter Zijlstra (2):
      locking/rwbase: Properly match set_and_save_state() to restore_state()
      locking/rwbase: Extract __rwbase_write_trylock()

Qingqing Zhuo (1):
      drm/amd/display: Fix unstable HPCP compliance on Chrome Barcelo

Ramji Jiyani (1):
      kbuild: Fix comment typo in scripts/Makefile.modpost

Randy Dunlap (1):
      ptp: dp83640: don't define PAGE0

Ravi Bangoria (1):
      perf annotate: Fix fused instr logic for assembly functions

Ruozhu Li (1):
      nvme-rdma: destroy cm id before destroy qp to avoid use after free

Saeed Mahameed (1):
      net/mlx5: FWTrace, cancel work on alloc pd error flow

Samuel Holland (1):
      dt-bindings: net: sun8i-emac: Add compatible for D1

Saravana Kannan (1):
      Revert "of: property: fw_devlink: Add support for "phy-handle" property"

Shai Malin (1):
      qed: Handle management FW error

Simon Ser (2):
      amd/display: downgrade validation failure log level
      amd/display: enable panel orientation quirks

Sukadev Bhattiprolu (2):
      ibmvnic: check failover_pending in login response
      ibmvnic: check failover_pending in login response

Thomas Hellström (1):
      drm/i915/gem: Fix the mman selftest

Tong Zhang (1):
      net: macb: fix use after free on rmmod

Tony Luck (1):
      x86/mce: Avoid infinite loop for copy from user recovery

Vasily Averin (1):
      ipc: remove memcg accounting for sops objects in do_semtimedop()

Vinay Belgaumkar (1):
      drm/i915: Get PM ref before accessing HW register

Vitaly Kuznetsov (1):
      Drivers: hv: vmbus: Fix kernel crash upon unbinding a device
from uio_hv_generic driver

Vlad Buslov (1):
      net/mlx5: Bridge, fix uninitialized variable usage

Vladimir Oltean (3):
      net: dsa: destroy the phylink instance on any error in dsa_slave_phy_setup
      Revert "net: phy: Uniform PHY driver access"
      net: dsa: flush switchdev workqueue before tearing down CPU/DSA ports

Wei Liu (2):
      asm-generic/hyperv: provide cpumask_to_vpset_noself
      x86/hyperv: remove on-stack cpumask from hv_send_ipi_mask_allbutself

Will Deacon (1):
      x86/uaccess: Fix 32-bit __get_user_asm_u64() when CC_HAS_ASM_GOTO_OUTPUT=y

Xiang wangx (1):
      selftests: nci: replace unsigned int with int

Xiaoguang Wang (1):
      io_uring: fix missing sigmask restore in io_cqring_wait()

Xiyu Yang (1):
      net/l2tp: Fix reference count leak in l2tp_udp_recv_core

Yajun Deng (1):
      Revert "ipv4: fix memory leaks in ip_cmsg_send() callers"

Yanfei Xu (1):
      blkcg: fix memory leak in blk_iolatency_init

Yonghong Song (1):
      bpf, mm: Fix lockdep warning triggered by stack_map_get_build_id_offset()

Yufeng Mo (3):
      net: hns3: pad the short tunnel frame before sending to hardware
      net: hns3: change affinity_mask to numa node range
      net: hns3: disable mac in flr process

Yunsheng Lin (1):
      net: hns3: add option to turn off page pool feature

zhang kai (1):
      ipv6: delay fib6_sernum increase in fib6_add

zhenggy (1):
      tcp: fix tp->undo_retrans accounting in tcp_sacktag_one()

Íñigo Huguet (2):
      sfc: fallback for lack of xdp tx queues
      sfc: last resort fallback for lack of xdp tx queues

^ permalink raw reply	[relevance 2%]

* Re: [PATCH] platform/x86: thinkpad_acpi: Prefer struct_size over open coded arithmetic
  2021-09-18 15:05 11% [PATCH] platform/x86: thinkpad_acpi: " Len Baker
@ 2021-09-20  5:58  7% ` Kees Cook
  2021-09-21 13:46  6%   ` Hans de Goede
  0 siblings, 1 reply; 200+ results
From: Kees Cook @ 2021-09-20  5:58 UTC (permalink / raw)
  To: Len Baker
  Cc: Henrique de Moraes Holschuh, Hans de Goede, Mark Gross,
	Gustavo A. R. Silva, ibm-acpi-devel, platform-driver-x86,
	linux-hardening, linux-kernel

On Sat, Sep 18, 2021 at 05:05:00PM +0200, Len Baker 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, switch to flexible array member in the struct attribute_set_obj and
> refactor the code accordingly to use the struct_size() helper instead of
> the argument "size + count * size" in the kzalloc() function.
> 
> [1] https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments
> 
> Signed-off-by: Len Baker <len.baker@gmx.com>
> ---
>  drivers/platform/x86/thinkpad_acpi.c | 8 +++-----
>  1 file changed, 3 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/platform/x86/thinkpad_acpi.c b/drivers/platform/x86/thinkpad_acpi.c
> index 50ff04c84650..ed0b01ead796 100644
> --- a/drivers/platform/x86/thinkpad_acpi.c
> +++ b/drivers/platform/x86/thinkpad_acpi.c
> @@ -1008,7 +1008,7 @@ struct attribute_set {
> 
>  struct attribute_set_obj {
>  	struct attribute_set s;
> -	struct attribute *a;
> +	struct attribute *a[];
>  } __attribute__((packed));

Whoa. I have so many questions... :)

> 
>  static struct attribute_set *create_attr_set(unsigned int max_members,
> @@ -1020,13 +1020,11 @@ static struct attribute_set *create_attr_set(unsigned int max_members,
>  		return NULL;
> 
>  	/* Allocates space for implicit NULL at the end too */
> -	sobj = kzalloc(sizeof(struct attribute_set_obj) +
> -		    max_members * sizeof(struct attribute *),
> -		    GFP_KERNEL);
> +	sobj = kzalloc(struct_size(sobj, a, max_members + 1), GFP_KERNEL);

Whoa, this needs a lot more detail in the changelog if this is actually
correct. The original code doesn't seem to match the comment? (Where is
the +1?) So is this also a bug-fix?

(I see the caller uses +2? Why? It seems to be using each of hotkey_attributes,
plus 1 more attr, plus a final NULL?)

>  	if (!sobj)
>  		return NULL;
>  	sobj->s.max_members = max_members;
> -	sobj->s.group.attrs = &sobj->a;
> +	sobj->s.group.attrs = sobj->a;
>  	sobj->s.group.name = name;

The caller also never sets a name?

Why is struct attribute_set_obj marked as __packed?

> 
>  	return &sobj->s;
> --
> 2.25.1
> 

-- 
Kees Cook

^ permalink raw reply	[relevance 7%]

* linux-next: Tree for Sep 20
@ 2021-09-20  6:35  1% Stephen Rothwell
  0 siblings, 0 replies; 200+ results
From: Stephen Rothwell @ 2021-09-20  6:35 UTC (permalink / raw)
  To: Linux Next Mailing List; +Cc: Linux Kernel Mailing List

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

Hi all,

Changes since 20210917:

The clk-imx tree lost its build failure.

The v4l-dvb-next tree gained a semantic conflict against the v4l-vdb-fixes
tree.

The drm-misc tree still had its build failure for which I reverted
3 commits.

The amdgpu tree still had its build failure from a bad automatic merge
which I fixed up.

I merged v5.15-rc2 for the pci_iounmap fix.

Non-merge commits (relative to Linus' tree): 2659
 2746 files changed, 126442 insertions(+), 49849 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 are also quilt-import.log and merge.log
files 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, 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 337 trees (counting Linus' and 91 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 (20621d2f27a0 Merge tag 'x86_urgent_for_v5.15_rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip)
Merging fixes/fixes (3ca706c189db drm/ttm: fix type mismatch error on sparc64)
Merging kbuild-current/fixes (0664684e1ebd kbuild: Add -Werror=ignored-optimization-argument to CLANG_FLAGS)
Merging arc-current/for-curr (6880fa6c5660 Linux 5.15-rc1)
Merging arm-current/fixes (463dbba4d189 ARM: 9104/2: Fix Keystone 2 kernel mapping regression)
Merging arm64-fixes/for-next/fixes (9fcb2e93f41c arm64: Mark __stack_chk_guard as __ro_after_init)
Merging arm-soc-fixes/arm/fixes (3f1c260ffddb MAINTAINERS: Add myself as MStar/Sigmastar Armv7 SoC maintainers)
Merging drivers-memory-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging m68k-current/for-linus (a7b68ed15d1f m68k: mvme: Remove overdue #warnings in RTC handling)
Merging powerpc-fixes/fixes (c006a06508db powerpc/xics: Set the IRQ chip data for the ICS native backend)
Merging s390-fixes/fixes (f5711f9df924 s390: remove WARN_DYNAMIC_STACK)
Merging sparc/master (05a59d79793d Merge git://git.kernel.org:/pub/scm/linux/kernel/git/netdev/net)
Merging fscrypt-current/for-stable (d19d8d345eec fscrypt: fix inline encryption not used on new files)
Merging net/master (e30cd812dffa selftests: net: af_unix: Fix makefile to use TEST_GEN_PROGS)
Merging bpf/master (bc23f7244817 bpf/tests: Add tail call limit test with external function call)
Merging ipsec/master (047a749d231e Merge branch 'xfrm: fix uapi for the default policy')
Merging netfilter/master (310e2d43c3ad netfilter: ip6_tables: zero-initialize fragment offset)
Merging ipvs/master (69e73dbfda14 ipvs: check that ip_vs_conn_tab_bits is between 8 and 20)
Merging wireless-drivers/master (b6a46b4f6e4b iwlwifi: mvm: d3: missing unlock in iwl_mvm_wowlan_program_keys())
Merging mac80211/master (7366c23ff492 ptp: dp83640: don't define PAGE0)
Merging rdma-fixes/for-rc (1b789bd4dbd4 IB/qib: Fix clang confusion of NULL pointer comparison)
Merging sound-current/for-linus (94d508fa3186 ALSA: hda/cs8409: Setup Dolphin Headset Mic as Phantom Jack)
Merging sound-asoc-fixes/for-linus (31078df33b25 Merge remote-tracking branch 'asoc/for-5.15' into asoc-linus)
Merging regmap-fixes/for-linus (6880fa6c5660 Linux 5.15-rc1)
Merging regulator-fixes/for-linus (6101f606d8bf Merge remote-tracking branch 'regulator/for-5.15' into regulator-linus)
Merging spi-fixes/for-linus (26b1f08a6904 Merge remote-tracking branch 'spi/for-5.15' into spi-linus)
CONFLICT (content): Merge conflict in drivers/spi/spi-tegra20-slink.c
Merging pci-current/for-linus (e042a4533fc3 MAINTAINERS: Add Nirmal Patel as VMD maintainer)
Merging driver-core.current/driver-core-linus (6880fa6c5660 Linux 5.15-rc1)
Merging tty.current/tty-linus (7049d853cfb9 tty: unexport tty_ldisc_release)
Merging usb.current/usb-linus (da546d6b748e arm64: dts: qcom: ipq8074: remove USB tx-fifo-resize property)
Merging usb-gadget-fixes/fixes (e49d033bddf5 Linux 5.12-rc6)
Merging usb-serial-fixes/usb-linus (7bb057134d60 USB: serial: option: add Telit LN920 compositions)
Merging usb-chipidea-fixes/for-usb-fixes (98a1373a2de9 usb: cdns3: fix race condition before setting doorbell)
Merging phy/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging staging.current/staging-linus (92dc0b1f46e1 staging: greybus: uart: fix tty use after free)
Merging iio-fixes/fixes-togreg (8167c9a375cc iio: ssp_sensors: add more range checking in ssp_parse_dataframe())
Merging char-misc.current/char-misc-linus (25a143321648 mcb: fix error handling in mcb_alloc_bus())
Merging soundwire-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging thunderbolt-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging input-current/for-linus (0c5483a5778f Input: analog - always use ktime functions)
Merging crypto-current/master (6ae51ffe5e76 crypto: sha512 - remove imaginary and mystifying clearing of variables)
Merging vfio-fixes/for-linus (dc51ff91cf2d vfio/platform: fix module_put call in error flow)
Merging kselftest-fixes/fixes (f5013d412a43 selftests: kvm: fix get_run_delay() ignoring fscanf() return warn)
Merging modules-fixes/modules-linus (055f23b74b20 module: check for exit sections in layout_sections() instead of module_init_section())
Merging dmaengine-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging backlight-fixes/for-backlight-fixes (a38fd8748464 Linux 5.12-rc2)
Merging mtd-fixes/mtd/fixes (f60f5741002b mtd: rawnand: qcom: Update code word value for raw read)
Merging mfd-fixes/for-mfd-fixes (a61f4661fba4 mfd: intel_quark_i2c_gpio: Revert "Constify static struct resources")
Merging v4l-dvb-fixes/fixes (f0c15b360fb6 media: ir_toy: prevent device from hanging during transmit)
Merging reset-fixes/reset/fixes (ed104ca4bd9c reset: reset-zynqmp: Fixed the argument data type)
Merging mips-fixes/mips-fixes (6880fa6c5660 Linux 5.15-rc1)
Merging at91-fixes/at91-fixes (4348cc10da63 ARM: dts: at91: sama5d2_som1_ek: disable ISC node by default)
Merging omap-fixes/fixes (e879f855e590 bus: ti-sysc: Add break in switch statement in sysc_init_soc())
Merging kvm-fixes/master (7d2a07b76933 Linux 5.14)
Merging kvms390-fixes/master (cd4220d23bf3 KVM: selftests: do not require 64GB in set_memory_region_test)
Merging hwmon-fixes/hwmon (e6fab7af6ba1 hwmon: (mlxreg-fan) Return non-zero value when fan current state is enforced from sysfs)
Merging nvdimm-fixes/libnvdimm-fixes (32b2397c1e56 libnvdimm/pmem: Fix crash triggered when I/O in-flight during unbind)
Merging cxl-fixes/fixes (fae8817ae804 cxl/mem: Fix memory device capacity probing)
Merging btrfs-fixes/next-fixes (45940091a3c1 Merge branch 'misc-5.15' into next-fixes)
Merging vfs-fixes/fixes (173e84953eaa fs: fix reporting supported extra file attributes for statx())
Merging dma-mapping-fixes/for-linus (18a3c5f7abfd Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost)
Merging i3c-fixes/i3c/fixes (fe07bfda2fb9 Linux 5.12-rc1)
Merging drivers-x86-fixes/fixes (3c3c8e88c871 platform/x86: amd-pmc: Increase the response register timeout)
Merging samsung-krzk-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging pinctrl-samsung-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging devicetree-fixes/dt/linus (55c21d57eafb dt-bindings: arm: Fix Toradex compatible typo)
Merging scsi-fixes/fixes (1a0db7744e45 scsi: bsg: Fix device unregistration)
Merging drm-fixes/drm-fixes (109f7ea9aedc Merge tag 'amd-drm-fixes-5.15-2021-09-16' of https://gitlab.freedesktop.org/agd5f/linux into drm-fixes)
Merging amdgpu-fixes/drm-fixes (2c409ba81be2 drm/radeon: fix si_enable_smc_cac() failed issue)
Merging drm-intel-fixes/for-linux-next-fixes (7889367d7795 drm/i915: Enable -Wsometimes-uninitialized)
Merging mmc-fixes/fixes (b81bede4d138 mmc: renesas_sdhi: fix regression with hard reset on old SDHIs)
Merging rtc-fixes/rtc-fixes (bd33335aa93d rtc: cmos: Disable irq around direct invocation of cmos_interrupt())
Merging gnss-fixes/gnss-linus (e73f0f0ee754 Linux 5.14-rc1)
Merging hyperv-fixes/hyperv-fixes (dfb5c1e12c28 x86/hyperv: remove on-stack cpumask from hv_send_ipi_mask_allbutself)
Merging soc-fsl-fixes/fix (c1e64c0aec8c soc: fsl: qe: fix static checker warning)
Merging risc-v-fixes/fixes (7d2a07b76933 Linux 5.14)
Merging pidfd-fixes/fixes (03ba0fe4d09f file: simplify logic in __close_range())
Merging fpga-fixes/fixes (e9a9970bf520 fpga: dfl: Avoid reads to AFU CSRs during enumeration)
Merging spdx/spdx-linus (6880fa6c5660 Linux 5.15-rc1)
Merging gpio-brgl-fixes/gpio/for-current (6880fa6c5660 Linux 5.15-rc1)
Merging gpio-intel-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging pinctrl-intel-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging erofs-fixes/fixes (0852b6ca941e erofs: fix 1 lcluster-sized pcluster for big pcluster)
Merging integrity-fixes/fixes (843385694721 evm: Fix a small race in init_desc())
Merging kunit-fixes/kunit-fixes (6880fa6c5660 Linux 5.15-rc1)
Merging ubifs-fixes/fixes (78c7d49f55d8 ubifs: journal: Make sure to not dirty twice for auth nodes)
Merging memblock-fixes/fixes (024591f9a6e0 arm: ioremap: don't abuse pfn_valid() to check if pfn is in RAM)
Merging cel-fixes/for-rc (7d2a07b76933 Linux 5.14)
Merging irqchip-fixes/irq/irqchip-fixes (0ddc5e55e6f1 Documentation: Fix irq-domain.rst build warning)
Merging renesas-fixes/fixes (432b52eea3dc ARM: shmobile: defconfig: Restore graphical consoles)
Merging perf-current/perf/urgent (219d720e6df7 perf bpf: Ignore deprecation warning when using libbpf's btf__get_from_id())
Merging drm-misc-fixes/for-linux-next-fixes (6b457230bfa1 drm/nouveau/ga102-: support ttm buffer moves via copy engine)
CONFLICT (content): Merge conflict in drivers/gpu/drm/vc4/vc4_hdmi.c
Merging kspp-gustavo/for-next/kspp (8881af30b421 Makefile: Enable -Wimplicit-fallthrough for Clang)
Merging kbuild/for-next (860091ee86e6 riscv: move the (z)install rules to arch/riscv/Makefile)
Merging perf/perf/core (8228e9361e2a perf parse-events: Avoid enum forward declaration.)
Merging compiler-attributes/compiler-attributes (b83a908498d6 compiler_attributes.h: move __compiletime_{error|warning})
Merging dma-mapping/for-next (59583f747664 sparc32: page align size in arch_dma_alloc)
Merging asm-generic/master (7962c2eddbfe arch: remove unused function syscall_set_arguments())
Merging arc/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging arm/for-next (1c9b5911f53b Merge branches 'fixes' and 'misc' into for-next)
Merging arm64/for-next/core (85f58eb18898 arm64: kdump: Skip kmemleak scan reserved memory for kdump)
Merging arm-perf/for-next/perf (fd264b310579 arm64/perf: Replace '0xf' instances with ID_AA64DFR0_PMUVER_IMP_DEF)
Merging arm-soc/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging actions/for-next (444d018d8d38 ARM: dts: owl-s500-roseapplepi: Add ATC2603C PMIC)
Merging amlogic/for-next (eeb44922aa83 Merge branch 'v5.16/dt64' into for-next)
Merging aspeed/for-next (0f32f00af344 Merge branches 'dt-for-v5.15', 'soc-for-v5.15' and 'defconfig-for-v5.15' into for-next)
Merging at91/at91-next (1eaab16dfac2 Merge branch 'at91-soc' into at91-next)
Merging drivers-memory/for-next (6fc5f1adf5a1 memory: tegra210-emc: replace DEFINE_SIMPLE_ATTRIBUTE with DEFINE_DEBUGFS_ATTRIBUTE)
Merging imx-mxs/for-next (2cb411d89676 Merge branch 'imx/defconfig' into for-next)
Merging keystone/next (cb293d3b430e Merge branch 'for_5.15/drivers-soc' into next)
Merging mediatek/for-next (69862ae4e378 Merge branch 'v5.14-next/soc' into for-next)
Merging mvebu/for-next (930af8dda750 Merge branch 'mvebu/dt64' into mvebu/for-next)
Merging omap/for-next (7911f95d1713 Merge branch 'fixes' into for-next)
Merging qcom/for-next (8482d1c0bb62 Merge branches 'arm64-for-5.16', 'drivers-for-5.16' and 'dts-for-5.16' into for-next)
Merging raspberrypi/for-next (9f5289ec6f1c ARM: dts: bcm2711-rpi-4-b: Fix usb's unit address)
Merging renesas/next (cbbd8f16ae1c Merge branches 'renesas-arm-dt-for-v5.16', 'renesas-drivers-for-v5.16' and 'renesas-dt-bindings-for-v5.16' into renesas-next)
Merging reset/reset/next (09f3824342f6 reset: simple: remove ZTE details in Kconfig help)
Merging rockchip/for-next (d46148623f26 Merge branch 'v5.15-armsoc/dts64' into for-next)
Merging samsung-krzk/for-next (2721363c0d64 Merge branch 'next/drivers' into for-next)
Merging scmi/for-linux-next (34eae8520c88 Merge branch 'for-next/juno' of git://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux into for-linux-next)
Merging stm32/stm32-next (1e6bc5987a52 ARM: dts: stm32: Update AV96 adv7513 node per dtbs_check)
Merging sunxi/sunxi/for-next (bb289f4c0b2b Merge branches 'sunxi/clk-for-5.16', 'sunxi/core-for-5.16', 'sunxi/drivers-for-5.16', 'sunxi/dt-for-5.16' and 'sunxi/fixes-for-5.15' into sunxi/for-next)
Merging tegra/for-next (cc701ccede61 Merge branch for-5.15/arm64/dt into for-next)
Merging ti-k3/ti-k3-next (1e3d655fe7b4 Merge branch 'ti-k3-config-next' into ti-k3-next)
Merging ti-k3-new/ti-k3-next (500e6dfbb465 arm64: dts: ti: k3-am64-mcu: Add pinctrl)
Merging xilinx/for-next (35a7430dad4d arm64: zynqmp: Wire psgtr for zc1751-xm013)
Merging clk/clk-next (1cbc04ffedcc Merge branch 'clk-mtk' into clk-next)
Merging clk-imx/for-next (1f4b035e603b clk: imx: Fix the build break when clk-imx8ulp build as module)
Merging clk-renesas/renesas-clk (8ac4aedcf7b3 clk: renesas: r8a779a0: Add TPU clock)
Merging clk-samsung/for-next (1d26eaeec37a clk: samsung: s5pv210-audss: Make use of devm_platform_ioremap_resource())
Merging csky/linux-next (90dc8c0e664e csky: Kconfig: Remove unused selects)
Merging h8300/h8300-next (1ec10274d436 h8300: don't implement set_fs)
Merging m68k/for-next (a7b68ed15d1f m68k: mvme: Remove overdue #warnings in RTC handling)
Merging m68knommu/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging microblaze/next (6880fa6c5660 Linux 5.15-rc1)
Merging mips/mips-next (6880fa6c5660 Linux 5.15-rc1)
Merging nds32/next (07cd7745c6f2 nds32/setup: remove unused memblock_region variable in setup_memory())
CONFLICT (content): Merge conflict in arch/nds32/Kconfig
Merging nios2/for-next (7f7bc20bc41a nios2: Don't use _end for calculating min_low_pfn)
Merging openrisc/for-next (1955d843efc3 openrisc/litex: Update defconfig)
Merging parisc-hd/for-next (d4d016caa4b8 alpha: move __udiv_qrnnd library function to arch/alpha/lib/)
Merging powerpc/next (6880fa6c5660 Linux 5.15-rc1)
Merging soc-fsl/next (242b0b398ccd soc: fsl: enable acpi support in RCPM driver)
Merging risc-v/for-next (6f55ab36bef5 riscv: Move EXCEPTION_TABLE to RO_DATA segment)
Merging s390/for-next (9ec953c0a7e1 Merge branch 'fixes' into for-next)
Merging sh/for-next (2882b7626f49 sh: kernel: traps: remove unused variable)
Merging sparc-next/master (dd0d718152e4 Merge tag 'spi-fix-v5.8-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi)
Merging uml/linux-next (234640275675 um: rename set_signals() to um_set_signals())
Merging xtensa/xtensa-for-next (7b7cec477fc3 xtensa: move core-y in arch/xtensa/Makefile to arch/xtensa/Kbuild)
Merging pidfd/for-next (f4dd02cd8631 Merge branch 'kernel.sys' into for-next)
Merging fscrypt/master (38ef66b05cfa fscrypt: document struct fscrypt_operations)
Merging fscache/fscache-next (20ec197bfa13 fscache: Use refcount_t for the cookie refcount instead of atomic_t)
Merging afs/afs-next (7af08140979a Revert "gcov: clang: fix clang-11+ build")
Merging btrfs/for-next (e51480e6f4f8 Merge branch 'for-next-next-v5.15-20210913' into for-next-20210913)
Merging ceph/master (4b0b8836ebba ceph: fix off by one bugs in unsafe_request_wait())
Merging cifs/for-next (35866f3f779a cifs: Not to defer close on file when lock is set)
Merging cifsd/cifsd-for-next (6d56262c3d22 ksmbd: add validation for FILE_FULL_EA_INFORMATION of smb2_get_info)
Merging configfs/for-next (c42dd069be8d configfs: fix a race in configfs_lookup())
Merging ecryptfs/next (682a8e2b41ef Merge tag 'ecryptfs-5.13-rc1-updates' of git://git.kernel.org/pub/scm/linux/kernel/git/tyhicks/ecryptfs)
Merging erofs/dev (1266b4a7ecb6 erofs: fix double free of 'copied')
Merging exfat/dev (50be9417e23a Merge tag 'io_uring-5.14-2021-07-09' of git://git.kernel.dk/linux-block)
Merging ext3/for_next (ed518dd035fa Pull udf xattr sanity checks.)
Merging ext4/dev (948ca5f30e1d ext4: enforce buffer head state assertion in ext4_da_map_blocks)
Merging f2fs/dev (c02599f210d9 f2fs: avoid attaching SB_ACTIVE flag during mount)
Merging fsverity/fsverity (07c99001312c fs-verity: support reading signature with ioctl)
Merging fuse/for-next (7a41554fdfb0 fuse: move fuse_invalidate_attr() into fuse_update_ctime())
Merging gfs2/for-next (11603f0011d0 gfs2: Allow append and immutable bits to coexist)
Merging jfs/jfs-next (5d299f44d765 jfs: Avoid field-overflowing memcpy())
Merging nfs/linux-next (6880fa6c5660 Linux 5.15-rc1)
Merging nfs-anna/linux-next (8cfb9015280d NFS: Always provide aligned buffers to the RPC read layers)
Merging nfsd/nfsd-next (e22ce8eb631b Linux 5.14-rc7)
Merging cel/for-next (02579b2ff8b0 nfsd: back channel stuck in SEQ4_STATUS_CB_PATH_DOWN)
Merging ntfs3/master (6e3331ee3446 fs/ntfs3: Use min/max macros instated of ternary operators)
Merging orangefs/for-next (0fdec1b3c9fb orangefs: fix orangefs df output.)
Merging overlayfs/overlayfs-next (332f606b32b6 ovl: enable RCU'd ->get_acl())
Merging ubifs/next (a801fcfeef96 ubifs: Set/Clear I_LINKABLE under i_lock for whiteout inode)
Merging v9fs/9p-next (9c4d94dc9a64 net/9p: increase default msize to 128k)
Merging xfs/for-next (f38a032b165d xfs: fix I_DONTCACHE)
Merging zonefs/for-next (95b115332a83 zonefs: remove redundant null bio check)
Merging iomap/iomap-for-next (03b8df8d43ec iomap: standardize tracepoint formatting and storage)
Merging djw-vfs/vfs-for-next (d03ef4daf33a fs: forbid invalid project ID)
Merging file-locks/locks-next (90f7d7a0d0d6 locks: remove LOCK_MAND flock lock support)
Merging vfs/for-next (8f40da9494cf Merge branch 'misc.namei' into for-next)
Merging printk/for-next (9980c4251f8d printk: use kvmalloc instead of kmalloc for devkmsg_user)
Merging pci/next (6880fa6c5660 Linux 5.15-rc1)
Merging pstore/for-next/pstore (c5d4fb2539ca pstore/blk: Use "%lu" to format unsigned long)
Merging hid/for-next (8ca10560f402 Merge branch 'for-5.15/upstream-fixes' into for-next)
Merging i2c/i2c/for-next (294b29f15469 i2c: xiic: Fix RX IRQ busy check)
Merging i3c/i3c/next (41a0430dd5ca i3c/master/mipi-i3c-hci: Prefer kcalloc over open coded arithmetic)
Merging dmi/dmi-for-next (f97a2103f1a7 firmware: dmi: Move product_sku info to the end of the modalias)
Merging hwmon-staging/hwmon-next (cd0b8e410937 hwmon: (nct6775) Support access via Asus WMI)
Merging jc_docs/docs-next (242f4c77b1c8 docs: zh_TW/index: Move arm64/index to arch-specific section)
Merging v4l-dvb/master (6880fa6c5660 Linux 5.15-rc1)
Merging v4l-dvb-next/master (0a24c52d78e0 media: dvb-frontends/cxd2099: Remove repeated verbose license text)
Applying: fix for "media: ir_toy: allow tx carrier to be set"
Merging pm/linux-next (755793be0868 Merge branches 'pm-sleep' and 'acpi-resources' into linux-next)
Merging cpufreq-arm/cpufreq/arm/linux-next (4855e26bcf4d cpufreq: mediatek-hw: Add support for CPUFREQ HW)
Merging cpupower/cpupower (79a0dc5530a9 tools: cpupower: fix typo in cpupower-idle-set(1) manpage)
Merging devfreq/devfreq-next (6880fa6c5660 Linux 5.15-rc1)
Merging opp/opp/linux-next (94274f20f6bf dt-bindings: opp: Convert to DT schema)
Merging thermal/thermal/linux-next (fc26023f8816 thermal/drivers/int340x: Fix tcc offset on resume)
Merging ieee1394/for-next (54b3bd99f094 firewire: nosy: switch from 'pci_' to 'dma_' API)
Merging dlm/next (ecd95673142e fs: dlm: avoid comms shutdown delay in release_lockspace)
Merging swiotlb/linux-next (f3c4b1341e83 swiotlb: use depends on for DMA_RESTRICTED_POOL)
Merging rdma/for-next (1b789bd4dbd4 IB/qib: Fix clang confusion of NULL pointer comparison)
Merging net-next/master (14e94f9445a9 octeontx2-af: verify CQ context updates)
Merging bpf-next/for-next (e57f52b42d1f Merge branch 'bpf: implement variadic printk helper')
Merging ipsec-next/master (9e9fb7655ed5 Merge tag 'net-next-5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next)
Merging mlx5-next/mlx5-next (6880fa6c5660 Linux 5.15-rc1)
Merging netfilter-next/master (13bb8429ca98 net: wwan: iosm: firmware flashing and coredump collection)
Merging ipvs-next/master (13bb8429ca98 net: wwan: iosm: firmware flashing and coredump collection)
Merging wireless-drivers-next/master (6880fa6c5660 Linux 5.15-rc1)
Merging bluetooth/master (81be03e026dc Bluetooth: RFCOMM: Replace use of memcpy_from_msg with bt_skb_sendmmsg)
Merging mac80211-next/master (339133f6c318 net: dsa: tag_rtl4_a: Drop bit 9 from egress frames)
Merging mtd/mtd/next (b72841e4dcd5 mtd: mtdswap: Remove redundant assignment of pointer eb)
Merging nand/nand/next (46a0dc10fb32 mtd: rawnand: intel: Fix potential buffer overflow in probe)
Merging spi-nor/spi-nor/next (2734d6c1b1a0 Linux 5.14-rc2)
Merging crypto/master (a2d3cbc80d25 crypto: aesni - check walk.nbytes instead of err)
Merging drm/drm-next (6880fa6c5660 Linux 5.15-rc1)
Merging drm-misc/for-linux-next (9fcb4a8ff2aa drm/v3d: fix sched job resources cleanup when a job is aborted)
Applying: Revert "drm/vc4: dsi: Switch to devm_drm_of_get_bridge"
Applying: Revert "drm/vc4: dpi: Switch to devm_drm_of_get_bridge"
Applying: Revert "drm/bridge: Add a function to abstract away panels"
Merging amdgpu/drm-next (d12d06294907 drm/radeon: Add HD-audio component notifier support (v2))
CONFLICT (content): Merge conflict in drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c
Applying: amdgpu: fix bad merge (pinned)
Merging drm-intel/for-linux-next (641dd82ffa9d drm/i915/display/adlp: Add new PSR2 workarounds)
Merging drm-tegra/drm/tegra/for-next (c3dbfb9c49ee gpu: host1x: Plug potential memory leak)
Merging drm-msm/msm-next (cb0927ab80d2 drm/msi/mdp4: populate priv->kms in mdp4_kms_init)
Merging imx-drm/imx-drm/next (20fbfc81e390 drm/imx: imx-tve: Make use of the helper function devm_platform_ioremap_resource())
Merging etnaviv/etnaviv/next (81fd23e2b3cc drm/etnaviv: Implement mmap as GEM object function)
Merging regmap/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging sound/for-next (94d508fa3186 ALSA: hda/cs8409: Setup Dolphin Headset Mic as Phantom Jack)
Merging sound-asoc/for-next (eb4ec51579e8 Merge remote-tracking branch 'asoc/for-5.16' into asoc-next)
Merging modules/modules-next (ced75a2f5da7 MAINTAINERS: Add Luis Chamberlain as modules maintainer)
Merging input/next (e2afe95a87a2 dt-bindings: input: Add binding for cypress-sf)
Merging block/for-next (32ac44a96a8e Merge branch 'for-5.16/drivers' into for-next)
Merging device-mapper/for-next (d3703ef33129 dm crypt: use in_hardirq() instead of deprecated in_irq())
Merging libata/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging pcmcia/pcmcia-next (e39cdacf2f66 pcmcia: i82092: fix a null pointer dereference bug)
Merging mmc/next (4ed8431c42ba Merge branch 'fixes' into next)
Merging mfd/for-mfd-next (cdff1eda6932 mfd: lpc_sch: Rename GPIOBASE to prevent build error)
Merging backlight/for-backlight-next (79fad92f2e59 backlight: pwm_bl: Improve bootloader/kernel device handover)
Merging battery/for-next (c9398455b046 power: supply: core: Fix parsing of battery chemistry/technology)
Merging regulator/for-next (ea6ad72324f8 Merge remote-tracking branch 'regulator/for-5.16' into regulator-next)
Merging security/next-testing (047843bdb316 Merge branch 'landlock_lsm_v34' into next-testing)
Merging apparmor/apparmor-next (d108370c644b apparmor: fix error check)
Merging integrity/next-integrity (836f7b6ca082 ima: fix deadlock when traversing "ima_default_rules".)
Merging keys/keys-next (e377c31f788f integrity: Load mokx variables into the blacklist keyring)
CONFLICT (content): Merge conflict in certs/system_keyring.c
Merging safesetid/safesetid-next (1b8b71922919 LSM: SafeSetID: Mark safesetid_initialized as __initdata)
Merging selinux/next (6880fa6c5660 Linux 5.15-rc1)
Merging smack/next (0817534ff9ea smackfs: Fix use-after-free in netlbl_catmap_walk())
Merging tomoyo/master (7d2a07b76933 Linux 5.14)
Merging tpmdd/next (f985911b7bc7 crypto: public_key: fix overflow during implicit conversion)
Merging watchdog/master (41e73feb1024 dt-bindings: watchdog: Add compatible for Mediatek MT7986)
Merging iommu/next (b58886bf14da Merge branch 'iommu/fixes' into next)
Merging audit/next (d680c6b49c5e audit: Convert to SPDX identifier)
Merging devicetree/for-next (bb667205406c dt-bindings: w1: update w1-gpio.yaml reference)
Merging mailbox/mailbox-for-next (85dfdbfc13ea mailbox: cmdq: add multi-gce clocks support for mt8195)
Merging spi/for-next (9e36a96ee3da Merge remote-tracking branch 'spi/for-5.16' into spi-next)
Merging tip/auto-latest (7fc58d76a2ce Merge branch 'x86/urgent')
Merging clockevents/timers/drivers/next (f196ae282070 dt-bindings: timer: Add ABIs for new Ingenic SoCs)
Merging edac/edac-for-next (4646da896a44 Merge branch 'edac-urgent' into edac-for-next)
Merging irqchip/irq/irqchip-next (6e3b473ee064 Merge branch irq/qcom-pdc-nowake-cleanup into irq/irqchip-next)
Merging ftrace/for-next (5dfe50b05588 bootconfig: Rename xbc_node_find_child() to xbc_node_find_subkey())
Merging rcu/rcu/next (9c2eed2c4c24 rcu: Replace ________p1 and _________p1 with __UNIQUE_ID(rcu))
Merging kvm/next (109bbba5066b KVM: Drop unused kvm_dirty_gfn_invalid())
Merging kvm-arm/next (419025b3b419 Merge branch kvm-arm64/misc-5.15 into kvmarm-master/next)
Merging kvm-ppc/kvm-ppc-next (72476aaa4691 KVM: PPC: Book3S HV: Fix host radix SLB optimisation with hash guests)
Merging kvms390/next (a3e03bc1368c KVM: s390: index kvm->arch.idle_mask by vcpu_idx)
Merging xen-tip/linux-next (d859ed25b242 swiotlb-xen: drop DEFAULT_NSLABS)
Merging percpu/for-next (a81a52b325ec Merge branch 'for-5.14-fixes' into for-next)
Merging workqueues/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging drivers-x86/for-next (1f88e0a22f7c platform/x86: acer-wmi: use __packed instead of __attribute__((packed)))
Merging chrome-platform/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging hsi/for-next (e73f0f0ee754 Linux 5.14-rc1)
Merging leds/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging ipmi/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging driver-core/driver-core-next (820879ee1865 sysfs: simplify sysfs_kf_seq_show)
Merging usb/usb-next (ae8709b296d8 USB: core: Make do_proc_control() and do_proc_bulk() killable)
Merging usb-gadget/next (e49d033bddf5 Linux 5.12-rc6)
Merging usb-serial/usb-next (6880fa6c5660 Linux 5.15-rc1)
Merging usb-chipidea-next/for-usb-next (78665f57c3fa usb: chipidea: udc: make controller hardware endpoint primed)
Merging tty/tty-next (b55c8aa6b1ab tty: moxa: merge moxa.h into moxa.c)
Merging char-misc/char-misc-next (d06246ebd773 scripts/tags.sh: Fix obsolete parameter for ctags)
Merging extcon/extcon-next (1a4bedc5305b extcon: extcon-axp288: Use P-Unit semaphore lock for register accesses)
Merging phy-next/next (6880fa6c5660 Linux 5.15-rc1)
Merging soundwire/next (6880fa6c5660 Linux 5.15-rc1)
Merging thunderbolt/next (6880fa6c5660 Linux 5.15-rc1)
Merging vfio/next (ea870730d83f Merge branches 'v5.15/vfio/spdx-license-cleanups', 'v5.15/vfio/dma-valid-waited-v3', 'v5.15/vfio/vfio-pci-core-v5' and 'v5.15/vfio/vfio-ap' into v5.15/vfio/next)
Merging staging/staging-next (65e31407caea staging: r8188eu: remove struct _io_ops)
Merging iio/togreg (5b8d4d8c912c iio: ep93xx: Make use of the helper function devm_platform_ioremap_resource())
Merging mux/for-next (3516bd729358 Merge tag 's390-5.11-3' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux)
Merging icc/icc-next (8bf5d31c4f06 interconnect: qcom: osm-l3: Use driver-specific naming)
Merging dmaengine/next (6880fa6c5660 Linux 5.15-rc1)
Merging cgroup/for-next (c0002d11d799 cgroupv2, docs: fix misinformation in "device controller" section)
Merging scsi/for-next (1a0db7744e45 scsi: bsg: Fix device unregistration)
Merging scsi-mkp/for-next (7e642ca0375b scsi: target: Remove unused function arguments)
Merging vhost/linux-next (be9c6bad9b46 vdpa: potential uninitialized return in vhost_vdpa_va_map())
Merging rpmsg/for-next (99fdaca991f7 Merge branches 'hwspinlock-next', 'rpmsg-next' and 'rproc-next' into for-next)
Merging gpio/for-next (7ac554888233 MAINTAINERS: Remove reference to non-existing file)
Merging gpio-brgl/gpio/for-next (3ea046564039 dt-bindings: gpio: add gpio-line-names to rockchip,gpio-bank.yaml)
Merging gpio-intel/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging pinctrl/for-next (788ac97efa94 Merge branch 'devel' into for-next)
Merging pinctrl-intel/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging pinctrl-renesas/renesas-pinctrl (075667cc6c29 pinctrl: renesas: No need to initialise global statics)
Merging pinctrl-samsung/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging pwm/for-next (3f2b16734914 pwm: mtk-disp: Implement atomic API .get_state())
Merging userns/for-next (a3be01837fc9 Merge of ucount-fixes-for-5.14, siginfo-si_trapno-for-v5.15, and exit-cleanups-for-v5.15 for testing in linux-next)
CONFLICT (content): Merge conflict in include/linux/sched/signal.h
Merging ktest/for-next (170f4869e662 ktest.pl: Fix the logic for truncating the size of the log file for email)
Merging kselftest/next (6880fa6c5660 Linux 5.15-rc1)
Merging livepatching/for-next (cd2d68f2d6b2 Merge branch 'for-5.15/cpu-hotplug' into for-next)
Merging coresight/next (1efbcec2ef8c coresight: cti: Reduce scope for the variable “cs_fwnode” in cti_plat_create_connection())
Merging rtc/rtc-next (6880fa6c5660 Linux 5.15-rc1)
Merging nvdimm/libnvdimm-for-next (bdd3c50d83bf dax: remove bdev_dax_supported)
Merging at24/at24/for-next (762925405482 dt-bindings: at24: add ON Semi CAT24C04 and CAT24C05)
Merging ntb/ntb-next (f96cb827ce49 ntb: ntb_pingpong: remove redundant initialization of variables msg_data and spad_data)
Merging seccomp/for-next/seccomp (b4d8a58f8dcf seccomp: Fix setting loaded filter count during TSYNC)
Merging kspp/for-next/kspp (0c91d23b6783 treewide: Replace 0-element memcpy() destinations with flexible arrays)
Merging cisco/for-next (9e98c678c2d6 Linux 5.1-rc1)
Merging gnss/gnss-next (0f79ce970e79 gnss: drop stray semicolons)
Merging fsi/next (9ab1428dfe2c fsi/sbefifo: Fix reset timeout)
Merging slimbus/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging nvmem/for-next (536267aafb8a nvmem: core: Add stubs for nvmem_cell_read_variable_le_u32/64 if !CONFIG_NVMEM)
Merging xarray/main (2c7e57a02708 idr test suite: Improve reporting from idr_find_test_1)
Merging hyperv/hyperv-next (9d68cd9120e4 hv_utils: Set the maximum packet size for VSS driver to the length of the receive buffer)
Merging auxdisplay/auxdisplay (24ebc044c72e auxdisplay: Replace symbolic permissions with octal permissions)
Merging kgdb/kgdb/for-next (f8416aa29185 kernel: debug: Convert to SPDX identifier)
Merging hmm/hmm (6880fa6c5660 Linux 5.15-rc1)
Merging fpga/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging kunit/test (6880fa6c5660 Linux 5.15-rc1)
Merging cfi/cfi/next (ff1176468d36 Linux 5.14-rc3)
Merging kunit-next/kunit (3b29021ddd10 kunit: tool: allow filtering test cases via glob)
Merging trivial/for-next (9ff9b0d392ea Merge tag 'net-next-5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next)
Merging mhi/mhi-next (813272ed5238 Merge 5.14-rc5 into char-misc-next)
Merging memblock/for-next (e888fa7bb882 memblock: Check memory add/cap ordering)
Merging init/init-user-pointers (38b082236e77 initramfs: use vfs_utimes in do_copy)
Merging counters/counters (e71ba9452f0b Linux 5.11-rc2)
Merging rust/rust-next (5d3986cf8ed6 MAINTAINERS: Rust)
CONFLICT (content): Merge conflict in include/linux/kallsyms.h
CONFLICT (content): Merge conflict in Makefile
Applying: fixup for rust integration with Makefile.clang creation
Merging cxl/next (2b922a9d064f cxl/registers: Fix Documentation warning)
Merging folio/for-next (1a90e9dae32c mm/writeback: Add folio_write_one)
CONFLICT (content): Merge conflict in mm/util.c
CONFLICT (content): Merge conflict in mm/rmap.c
CONFLICT (content): Merge conflict in mm/page-writeback.c
CONFLICT (content): Merge conflict in mm/memcontrol.c
CONFLICT (content): Merge conflict in mm/filemap.c
CONFLICT (content): Merge conflict in include/linux/memcontrol.h
Merging v5.15-rc2 (e4e737bb5c17 Linux 5.15-rc2)
Merging akpm-current/current (7f0fbfc0a77b ipc-check-checkpoint_restore_ns_capable-to-modify-c-r-proc-files-fix)
$ git checkout -b akpm remotes/origin/akpm/master
$ git rebase --onto master remotes/origin/akpm/master-base
Merging akpm/master (9e72aed1f82d mm: unexport {,un}lock_page_memcg)

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

^ permalink raw reply	[relevance 1%]

* Re: [PATCH] net/mlx5: DR, Prefer kcalloc over open coded arithmetic
  2021-09-05  7:49 11% [PATCH] net/mlx5: DR, " Len Baker
@ 2021-09-20 21:19  7% ` Saeed Mahameed
  2021-09-21  4:06  7% ` Kees Cook
  1 sibling, 0 replies; 200+ results
From: Saeed Mahameed @ 2021-09-20 21:19 UTC (permalink / raw)
  To: len.baker, davem, kuba, leon
  Cc: linux-rdma, Erez Shitrit, keescook, Yevgeny Kliteynik,
	linux-kernel, Alex Vesker, linux-hardening, netdev, Jianbo Liu

On Sun, 2021-09-05 at 09:49 +0200, Len Baker 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, refactor the code a bit to use the purpose specific kcalloc()
> function instead of the argument size * count in the kzalloc()
> function.
> 
> [1]
> https://www.kernel.org/doc/html/v5.14/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments
> 
> Signed-off-by: Len Baker <len.baker@gmx.com>

applied to net-next-mlx5,

Thanks.

^ permalink raw reply	[relevance 7%]

* Re: [PATCH] scsi: advansys: Prefer struct_size over open coded arithmetic
  2021-09-18 11:18 11% [PATCH] scsi: advansys: " Len Baker
@ 2021-09-20 23:57  7% ` Gustavo A. R. Silva
  0 siblings, 0 replies; 200+ results
From: Gustavo A. R. Silva @ 2021-09-20 23:57 UTC (permalink / raw)
  To: Len Baker, Matthew Wilcox, Hannes Reinecke, James E.J. Bottomley,
	Martin K. Petersen
  Cc: Gustavo A. R. Silva, Kees Cook, linux-hardening, linux-scsi,
	linux-kernel



On 9/18/21 06:18, Len Baker 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, refactor the code a bit to use the struct_size() helper instead of
> the argument "size + count * size" in the kzalloc() function.
> 
> [1] https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments
> 
> Signed-off-by: Len Baker <len.baker@gmx.com>
> ---
>  drivers/scsi/advansys.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/scsi/advansys.c b/drivers/scsi/advansys.c
> index ffb391967573..fe882502e7bf 100644
> --- a/drivers/scsi/advansys.c
> +++ b/drivers/scsi/advansys.c
> @@ -7465,6 +7465,7 @@ static int asc_build_req(struct asc_board *boardp, struct scsi_cmnd *scp,
>  		return ASC_BUSY;
>  	} else if (use_sg > 0) {
>  		int sgcnt;
> +		size_t size;

I don't think a new variable is needed.

>  		struct scatterlist *slp;
>  		struct asc_sg_head *asc_sg_head;
> 
> @@ -7477,8 +7478,8 @@ static int asc_build_req(struct asc_board *boardp, struct scsi_cmnd *scp,
>  			return ASC_ERROR;
>  		}
> 
> -		asc_sg_head = kzalloc(sizeof(asc_scsi_q->sg_head) +
> -			use_sg * sizeof(struct asc_sg_list), GFP_ATOMIC);
> +		size = struct_size(asc_scsi_q->sg_head, sg_list, use_sg);
> +		asc_sg_head = kzalloc(size, GFP_ATOMIC);

You can go with this:

diff --git a/drivers/scsi/advansys.c b/drivers/scsi/advansys.c
index ffb391967573..e341b3372482 100644
--- a/drivers/scsi/advansys.c
+++ b/drivers/scsi/advansys.c
@@ -7477,8 +7477,8 @@ static int asc_build_req(struct asc_board *boardp, struct scsi_cmnd *scp,
                        return ASC_ERROR;
                }

-               asc_sg_head = kzalloc(sizeof(asc_scsi_q->sg_head) +
-                       use_sg * sizeof(struct asc_sg_list), GFP_ATOMIC);
+               asc_sg_head = kzalloc(struct_size(asc_sg_head, sg_list, use_sg),
+                                     GFP_ATOMIC);
                if (!asc_sg_head) {
                        scsi_dma_unmap(scp);
                        set_host_byte(scp, DID_SOFT_ERROR);

It perfectly fits withing the 80 columns, which by the way is deprecated
but still good-to-have.

Also, if you are finding these instances with the help of Coccinelle, it'd be nice
if you mention that in the changelog text. :)

Thanks!
--
Gustavo

>  		if (!asc_sg_head) {
>  			scsi_dma_unmap(scp);
>  			set_host_byte(scp, DID_SOFT_ERROR);
> --
> 2.25.1
> 

^ permalink raw reply related	[relevance 7%]

* Re: [PATCH] writeback: prefer struct_size over open coded arithmetic
  2021-09-19  9:46 13% [PATCH] writeback: prefer " Len Baker
@ 2021-09-21  0:17  7% ` Gustavo A. R. Silva
  0 siblings, 0 replies; 200+ results
From: Gustavo A. R. Silva @ 2021-09-21  0:17 UTC (permalink / raw)
  To: Len Baker, Alexander Viro
  Cc: Kees Cook, Gustavo A. R. Silva, linux-fsdevel, linux-hardening,
	linux-kernel



On 9/19/21 04:46, Len Baker 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.
> 
> In this case this is not actually dynamic size: all the operands
> involved in the calculation are constant values. However it is best to
> refactor this anyway, just to keep the open-coded math idiom out of
> code.
> 
> So, use the struct_size() helper to do the arithmetic instead of the
> argument "size + count * size" in the kzalloc() function.
> 
> [1] https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments
> 
> Signed-off-by: Len Baker <len.baker@gmx.com>
> ---
>  fs/fs-writeback.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c
> index 81ec192ce067..f7abff31e026 100644
> --- a/fs/fs-writeback.c
> +++ b/fs/fs-writeback.c
> @@ -624,8 +624,8 @@ bool cleanup_offline_cgwb(struct bdi_writeback *wb)
>  	int nr;
>  	bool restart = false;
> 
> -	isw = kzalloc(sizeof(*isw) + WB_MAX_INODES_PER_ISW *
> -		      sizeof(struct inode *), GFP_KERNEL);
> +	isw = kzalloc(struct_size(isw, inodes, WB_MAX_INODES_PER_ISW),
> +		      GFP_KERNEL);


There is another instance at:

 569         isw = kzalloc(sizeof(*isw) + 2 * sizeof(struct inode *), GFP_ATOMIC);
 570         if (!isw)
 571                 return;

If you are finding these with the help of Coccinelle, please mention it
in the changelog text. :)

Thanks
--
Gustavo

>  	if (!isw)
>  		return restart;
> 
> --
> 2.25.1
> 

^ permalink raw reply	[relevance 7%]

* Re: [PATCH] dmaengine: pxa_dma: Prefer struct_size over open coded arithmetic
  2021-09-18 10:40 12% [PATCH] dmaengine: pxa_dma: Prefer struct_size over open coded arithmetic Len Baker
@ 2021-09-21  0:00  7% ` Gustavo A. R. Silva
  2021-10-20 23:32  7%   ` Gustavo A. R. Silva
  0 siblings, 1 reply; 200+ results
From: Gustavo A. R. Silva @ 2021-09-21  0:00 UTC (permalink / raw)
  To: Len Baker, Daniel Mack, Haojian Zhuang, Robert Jarzmik, Vinod Koul
  Cc: Gustavo A. R. Silva, Kees Cook, linux-arm-kernel, dmaengine,
	linux-hardening, linux-kernel



On 9/18/21 05:40, Len Baker 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 struct_size() helper to do the arithmetic instead of the
> argument "size + count * size" in the kzalloc() function.
> 
> [1] https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments
> 
> Signed-off-by: Len Baker <len.baker@gmx.com>

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

> ---
>  drivers/dma/pxa_dma.c | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
> 
> diff --git a/drivers/dma/pxa_dma.c b/drivers/dma/pxa_dma.c
> index 4a2a796e348c..52d04641e361 100644
> --- a/drivers/dma/pxa_dma.c
> +++ b/drivers/dma/pxa_dma.c
> @@ -742,8 +742,7 @@ pxad_alloc_desc(struct pxad_chan *chan, unsigned int nb_hw_desc)
>  	dma_addr_t dma;
>  	int i;
> 
> -	sw_desc = kzalloc(sizeof(*sw_desc) +
> -			  nb_hw_desc * sizeof(struct pxad_desc_hw *),
> +	sw_desc = kzalloc(struct_size(sw_desc, hw_desc, nb_hw_desc),
>  			  GFP_NOWAIT);
>  	if (!sw_desc)
>  		return NULL;
> --
> 2.25.1
> 

^ permalink raw reply	[relevance 7%]

* Re: [PATCH] afs: Prefer struct_size over open coded arithmetic
  2021-09-19  9:44 12% [PATCH] afs: " Len Baker
@ 2021-09-21  0:09  7% ` Gustavo A. R. Silva
  2021-10-20 23:26  7%   ` Gustavo A. R. Silva
  0 siblings, 1 reply; 200+ results
From: Gustavo A. R. Silva @ 2021-09-21  0:09 UTC (permalink / raw)
  To: Len Baker, David Howells, Marc Dionne
  Cc: Gustavo A. R. Silva, Kees Cook, linux-afs, linux-hardening, linux-kernel



On 9/19/21 04:44, Len Baker 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 struct_size() helper to do the arithmetic instead of the
> argument "size + size * count" in the kzalloc() function.
> 
> [1] https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments
> 
> Signed-off-by: Len Baker <len.baker@gmx.com>

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

Thanks
--
Gustavo

> ---
>  fs/afs/security.c | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
> 
> diff --git a/fs/afs/security.c b/fs/afs/security.c
> index 3c7a8fc4f93f..7c6a63a30394 100644
> --- a/fs/afs/security.c
> +++ b/fs/afs/security.c
> @@ -219,8 +219,7 @@ void afs_cache_permit(struct afs_vnode *vnode, struct key *key,
>  	 * yet.
>  	 */
>  	size++;
> -	new = kzalloc(sizeof(struct afs_permits) +
> -		      sizeof(struct afs_permit) * size, GFP_NOFS);
> +	new = kzalloc(struct_size(new, permits, size), GFP_NOFS);
>  	if (!new)
>  		goto out_put;
> 
> --
> 2.25.1
> 

^ permalink raw reply	[relevance 7%]

* Re: [PATCH] aio: Prefer struct_size over open coded arithmetic
  2021-09-19  9:45 12% [PATCH] aio: " Len Baker
@ 2021-09-21  0:11  7% ` Gustavo A. R. Silva
  2021-10-20 23:23  7%   ` Gustavo A. R. Silva
  0 siblings, 1 reply; 200+ results
From: Gustavo A. R. Silva @ 2021-09-21  0:11 UTC (permalink / raw)
  To: Len Baker, Benjamin LaHaise, Alexander Viro
  Cc: Kees Cook, Gustavo A. R. Silva, linux-aio, linux-fsdevel,
	linux-hardening, linux-kernel



On 9/19/21 04:45, Len Baker 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 struct_size() helper to do the arithmetic instead of the
> argument "size + size * count" in the kzalloc() function.
> 
> [1] https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments
> 
> Signed-off-by: Len Baker <len.baker@gmx.com>

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

Thanks
--
Gustavo

> ---
>  fs/aio.c | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
> 
> diff --git a/fs/aio.c b/fs/aio.c
> index 51b08ab01dff..c2978c0b872c 100644
> --- a/fs/aio.c
> +++ b/fs/aio.c
> @@ -659,8 +659,7 @@ static int ioctx_add_table(struct kioctx *ctx, struct mm_struct *mm)
>  		new_nr = (table ? table->nr : 1) * 4;
>  		spin_unlock(&mm->ioctx_lock);
> 
> -		table = kzalloc(sizeof(*table) + sizeof(struct kioctx *) *
> -				new_nr, GFP_KERNEL);
> +		table = kzalloc(struct_size(table, table, new_nr), GFP_KERNEL);
>  		if (!table)
>  			return -ENOMEM;
> 
> --
> 2.25.1
> 

^ permalink raw reply	[relevance 7%]

* Re: [PATCH] net/mlx5: DR, Prefer kcalloc over open coded arithmetic
  2021-09-05  7:49 11% [PATCH] net/mlx5: DR, " Len Baker
  2021-09-20 21:19  7% ` Saeed Mahameed
@ 2021-09-21  4:06  7% ` Kees Cook
  2021-09-25  7:28  7%   ` Len Baker
  1 sibling, 1 reply; 200+ results
From: Kees Cook @ 2021-09-21  4:06 UTC (permalink / raw)
  To: Len Baker
  Cc: Saeed Mahameed, Leon Romanovsky, David S. Miller, Jakub Kicinski,
	Yevgeny Kliteynik, Alex Vesker, Erez Shitrit, Jianbo Liu, netdev,
	linux-rdma, linux-hardening, linux-kernel

On Sun, Sep 05, 2021 at 09:49:36AM +0200, Len Baker 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, refactor the code a bit to use the purpose specific kcalloc()
> function instead of the argument size * count in the kzalloc() function.
> 
> [1] https://www.kernel.org/doc/html/v5.14/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments
> 
> Signed-off-by: Len Baker <len.baker@gmx.com>
> ---
>  .../net/ethernet/mellanox/mlx5/core/steering/dr_action.c  | 8 ++++++--
>  1 file changed, 6 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/net/ethernet/mellanox/mlx5/core/steering/dr_action.c b/drivers/net/ethernet/mellanox/mlx5/core/steering/dr_action.c
> index 6475ba35cf6b..e8957dad3bb1 100644
> --- a/drivers/net/ethernet/mellanox/mlx5/core/steering/dr_action.c
> +++ b/drivers/net/ethernet/mellanox/mlx5/core/steering/dr_action.c
> @@ -716,6 +716,7 @@ mlx5dr_action_create_mult_dest_tbl(struct mlx5dr_domain *dmn,
>  	struct mlx5dr_action *action;
>  	bool reformat_req = false;
>  	u32 num_of_ref = 0;
> +	u32 ref_act_cnt;
>  	int ret;
>  	int i;
> 
> @@ -724,11 +725,14 @@ mlx5dr_action_create_mult_dest_tbl(struct mlx5dr_domain *dmn,
>  		return NULL;
>  	}
> 
> -	hw_dests = kzalloc(sizeof(*hw_dests) * num_of_dests, GFP_KERNEL);
> +	hw_dests = kcalloc(num_of_dests, sizeof(*hw_dests), GFP_KERNEL);
>  	if (!hw_dests)
>  		return NULL;
> 
> -	ref_actions = kzalloc(sizeof(*ref_actions) * num_of_dests * 2, GFP_KERNEL);
> +	if (unlikely(check_mul_overflow(num_of_dests, 2u, &ref_act_cnt)))
> +		goto free_hw_dests;
> +
> +	ref_actions = kcalloc(ref_act_cnt, sizeof(*ref_actions), GFP_KERNEL);

In the future, consider array3_size(), but this is fine too. :)

-Kees

>  	if (!ref_actions)
>  		goto free_hw_dests;
> 
> --
> 2.25.1
> 

-- 
Kees Cook

^ permalink raw reply	[relevance 7%]

* linux-next: Tree for Sep 21
@ 2021-09-21  5:52  1% Stephen Rothwell
  0 siblings, 0 replies; 200+ results
From: Stephen Rothwell @ 2021-09-21  5:52 UTC (permalink / raw)
  To: Linux Next Mailing List; +Cc: Linux Kernel Mailing List

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

Hi all,

Changes since 20210920:

The drm-misc tree still had its build failure for which I reverted
3 commits.

The amdgpu tree still had its build failure from a bad automatic merge
which I fixed up.

The selinux tree gained a conflict against Linus' tree.

The usb tree gained a conflict against the qcom tree.

The folio tree gained a conflict and a semantic conflict against the
fscache tree.

Non-merge commits (relative to Linus' tree): 2898
 3014 files changed, 144047 insertions(+), 56827 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 are also quilt-import.log and merge.log
files 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, 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 337 trees (counting Linus' and 91 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 (4c17ca27923c Merge tag 'spi-fix-v5.15-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi)
Merging fixes/fixes (3ca706c189db drm/ttm: fix type mismatch error on sparc64)
Merging kbuild-current/fixes (0664684e1ebd kbuild: Add -Werror=ignored-optimization-argument to CLANG_FLAGS)
Merging arc-current/for-curr (6880fa6c5660 Linux 5.15-rc1)
Merging arm-current/fixes (463dbba4d189 ARM: 9104/2: Fix Keystone 2 kernel mapping regression)
Merging arm64-fixes/for-next/fixes (9fcb2e93f41c arm64: Mark __stack_chk_guard as __ro_after_init)
Merging arm-soc-fixes/arm/fixes (3f1c260ffddb MAINTAINERS: Add myself as MStar/Sigmastar Armv7 SoC maintainers)
Merging drivers-memory-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging m68k-current/for-linus (a7b68ed15d1f m68k: mvme: Remove overdue #warnings in RTC handling)
Merging powerpc-fixes/fixes (c006a06508db powerpc/xics: Set the IRQ chip data for the ICS native backend)
Merging s390-fixes/fixes (f5711f9df924 s390: remove WARN_DYNAMIC_STACK)
Merging sparc/master (05a59d79793d Merge git://git.kernel.org:/pub/scm/linux/kernel/git/netdev/net)
Merging fscrypt-current/for-stable (d19d8d345eec fscrypt: fix inline encryption not used on new files)
Merging net/master (36747c96ed49 Merge branch 'hns3-fixes')
Merging bpf/master (bc23f7244817 bpf/tests: Add tail call limit test with external function call)
Merging ipsec/master (047a749d231e Merge branch 'xfrm: fix uapi for the default policy')
Merging netfilter/master (310e2d43c3ad netfilter: ip6_tables: zero-initialize fragment offset)
Merging ipvs/master (310e2d43c3ad netfilter: ip6_tables: zero-initialize fragment offset)
Merging wireless-drivers/master (b6a46b4f6e4b iwlwifi: mvm: d3: missing unlock in iwl_mvm_wowlan_program_keys())
Merging mac80211/master (36747c96ed49 Merge branch 'hns3-fixes')
Merging rdma-fixes/for-rc (ca465e1f1f9b RDMA/cma: Fix listener leak in rdma_cma_listen_on_all() failure)
Merging sound-current/for-linus (94d508fa3186 ALSA: hda/cs8409: Setup Dolphin Headset Mic as Phantom Jack)
Merging sound-asoc-fixes/for-linus (556b59b0c680 Merge remote-tracking branch 'asoc/for-5.15' into asoc-linus)
Merging regmap-fixes/for-linus (6880fa6c5660 Linux 5.15-rc1)
Merging regulator-fixes/for-linus (024a0383b3fa Merge remote-tracking branch 'regulator/for-5.15' into regulator-linus)
Merging spi-fixes/for-linus (d3055ce518a4 Merge tag 'v5.15-rc2' into spi-5.15)
CONFLICT (content): Merge conflict in drivers/spi/spi-tegra20-slink.c
Merging pci-current/for-linus (e4e737bb5c17 Linux 5.15-rc2)
Merging driver-core.current/driver-core-linus (6880fa6c5660 Linux 5.15-rc1)
Merging tty.current/tty-linus (7049d853cfb9 tty: unexport tty_ldisc_release)
Merging usb.current/usb-linus (da546d6b748e arm64: dts: qcom: ipq8074: remove USB tx-fifo-resize property)
Merging usb-gadget-fixes/fixes (e49d033bddf5 Linux 5.12-rc6)
Merging usb-serial-fixes/usb-linus (1ca200a8c6f0 USB: serial: option: remove duplicate USB device ID)
Merging usb-chipidea-fixes/for-usb-fixes (98a1373a2de9 usb: cdns3: fix race condition before setting doorbell)
Merging phy/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging staging.current/staging-linus (aa3233ea7bdb staging: r8188eu: fix -Wrestrict warnings)
Merging iio-fixes/fixes-togreg (8167c9a375cc iio: ssp_sensors: add more range checking in ssp_parse_dataframe())
Merging char-misc.current/char-misc-linus (50c7ad36e654 Merge tag 'fpga-fixes-5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/mdf/linux-fpga into char-misc-linus)
Merging soundwire-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging thunderbolt-fixes/fixes (e4e737bb5c17 Linux 5.15-rc2)
Merging input-current/for-linus (0c5483a5778f Input: analog - always use ktime functions)
Merging crypto-current/master (6ae51ffe5e76 crypto: sha512 - remove imaginary and mystifying clearing of variables)
Merging vfio-fixes/for-linus (dc51ff91cf2d vfio/platform: fix module_put call in error flow)
Merging kselftest-fixes/fixes (f5013d412a43 selftests: kvm: fix get_run_delay() ignoring fscanf() return warn)
Merging modules-fixes/modules-linus (055f23b74b20 module: check for exit sections in layout_sections() instead of module_init_section())
Merging dmaengine-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging backlight-fixes/for-backlight-fixes (a38fd8748464 Linux 5.12-rc2)
Merging mtd-fixes/mtd/fixes (f60f5741002b mtd: rawnand: qcom: Update code word value for raw read)
Merging mfd-fixes/for-mfd-fixes (a61f4661fba4 mfd: intel_quark_i2c_gpio: Revert "Constify static struct resources")
Merging v4l-dvb-fixes/fixes (f0c15b360fb6 media: ir_toy: prevent device from hanging during transmit)
Merging reset-fixes/reset/fixes (ed104ca4bd9c reset: reset-zynqmp: Fixed the argument data type)
Merging mips-fixes/mips-fixes (6880fa6c5660 Linux 5.15-rc1)
Merging at91-fixes/at91-fixes (4348cc10da63 ARM: dts: at91: sama5d2_som1_ek: disable ISC node by default)
Merging omap-fixes/fixes (e879f855e590 bus: ti-sysc: Add break in switch statement in sysc_init_soc())
Merging kvm-fixes/master (7d2a07b76933 Linux 5.14)
Merging kvms390-fixes/master (cd4220d23bf3 KVM: selftests: do not require 64GB in set_memory_region_test)
Merging hwmon-fixes/hwmon (e6fab7af6ba1 hwmon: (mlxreg-fan) Return non-zero value when fan current state is enforced from sysfs)
Merging nvdimm-fixes/libnvdimm-fixes (32b2397c1e56 libnvdimm/pmem: Fix crash triggered when I/O in-flight during unbind)
Merging cxl-fixes/fixes (fae8817ae804 cxl/mem: Fix memory device capacity probing)
Merging btrfs-fixes/next-fixes (45940091a3c1 Merge branch 'misc-5.15' into next-fixes)
Merging vfs-fixes/fixes (173e84953eaa fs: fix reporting supported extra file attributes for statx())
Merging dma-mapping-fixes/for-linus (18a3c5f7abfd Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost)
Merging i3c-fixes/i3c/fixes (fe07bfda2fb9 Linux 5.12-rc1)
Merging drivers-x86-fixes/fixes (3c3c8e88c871 platform/x86: amd-pmc: Increase the response register timeout)
Merging samsung-krzk-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging pinctrl-samsung-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging devicetree-fixes/dt/linus (55c21d57eafb dt-bindings: arm: Fix Toradex compatible typo)
Merging scsi-fixes/fixes (1a0db7744e45 scsi: bsg: Fix device unregistration)
Merging drm-fixes/drm-fixes (109f7ea9aedc Merge tag 'amd-drm-fixes-5.15-2021-09-16' of https://gitlab.freedesktop.org/agd5f/linux into drm-fixes)
Merging amdgpu-fixes/drm-fixes (2c409ba81be2 drm/radeon: fix si_enable_smc_cac() failed issue)
Merging drm-intel-fixes/for-linux-next-fixes (e4e737bb5c17 Linux 5.15-rc2)
Merging mmc-fixes/fixes (b81bede4d138 mmc: renesas_sdhi: fix regression with hard reset on old SDHIs)
Merging rtc-fixes/rtc-fixes (bd33335aa93d rtc: cmos: Disable irq around direct invocation of cmos_interrupt())
Merging gnss-fixes/gnss-linus (e73f0f0ee754 Linux 5.14-rc1)
Merging hyperv-fixes/hyperv-fixes (dfb5c1e12c28 x86/hyperv: remove on-stack cpumask from hv_send_ipi_mask_allbutself)
Merging soc-fsl-fixes/fix (c1e64c0aec8c soc: fsl: qe: fix static checker warning)
Merging risc-v-fixes/fixes (7d2a07b76933 Linux 5.14)
Merging pidfd-fixes/fixes (03ba0fe4d09f file: simplify logic in __close_range())
Merging fpga-fixes/fixes (e9a9970bf520 fpga: dfl: Avoid reads to AFU CSRs during enumeration)
Merging spdx/spdx-linus (6880fa6c5660 Linux 5.15-rc1)
Merging gpio-brgl-fixes/gpio/for-current (6880fa6c5660 Linux 5.15-rc1)
Merging gpio-intel-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging pinctrl-intel-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging erofs-fixes/fixes (0852b6ca941e erofs: fix 1 lcluster-sized pcluster for big pcluster)
Merging integrity-fixes/fixes (843385694721 evm: Fix a small race in init_desc())
Merging kunit-fixes/kunit-fixes (6880fa6c5660 Linux 5.15-rc1)
Merging ubifs-fixes/fixes (78c7d49f55d8 ubifs: journal: Make sure to not dirty twice for auth nodes)
Merging memblock-fixes/fixes (024591f9a6e0 arm: ioremap: don't abuse pfn_valid() to check if pfn is in RAM)
Merging cel-fixes/for-rc (7d2a07b76933 Linux 5.14)
Merging irqchip-fixes/irq/irqchip-fixes (0ddc5e55e6f1 Documentation: Fix irq-domain.rst build warning)
Merging renesas-fixes/fixes (432b52eea3dc ARM: shmobile: defconfig: Restore graphical consoles)
Merging perf-current/perf/urgent (219d720e6df7 perf bpf: Ignore deprecation warning when using libbpf's btf__get_from_id())
Merging drm-misc-fixes/for-linux-next-fixes (6b457230bfa1 drm/nouveau/ga102-: support ttm buffer moves via copy engine)
CONFLICT (content): Merge conflict in drivers/gpu/drm/vc4/vc4_hdmi.c
Merging kspp-gustavo/for-next/kspp (8881af30b421 Makefile: Enable -Wimplicit-fallthrough for Clang)
Merging kbuild/for-next (860091ee86e6 riscv: move the (z)install rules to arch/riscv/Makefile)
Merging perf/perf/core (8228e9361e2a perf parse-events: Avoid enum forward declaration.)
Merging compiler-attributes/compiler-attributes (b83a908498d6 compiler_attributes.h: move __compiletime_{error|warning})
Merging dma-mapping/for-next (59583f747664 sparc32: page align size in arch_dma_alloc)
Merging asm-generic/master (7962c2eddbfe arch: remove unused function syscall_set_arguments())
Merging arc/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging arm/for-next (1c9b5911f53b Merge branches 'fixes' and 'misc' into for-next)
Merging arm64/for-next/core (85f58eb18898 arm64: kdump: Skip kmemleak scan reserved memory for kdump)
Merging arm-perf/for-next/perf (fd264b310579 arm64/perf: Replace '0xf' instances with ID_AA64DFR0_PMUVER_IMP_DEF)
Merging arm-soc/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging actions/for-next (444d018d8d38 ARM: dts: owl-s500-roseapplepi: Add ATC2603C PMIC)
Merging amlogic/for-next (eeb44922aa83 Merge branch 'v5.16/dt64' into for-next)
Merging aspeed/for-next (0f32f00af344 Merge branches 'dt-for-v5.15', 'soc-for-v5.15' and 'defconfig-for-v5.15' into for-next)
Merging at91/at91-next (1eaab16dfac2 Merge branch 'at91-soc' into at91-next)
Merging drivers-memory/for-next (13324edbe926 memory: tegra186-emc: Handle errors in BPMP response)
Merging imx-mxs/for-next (2cb411d89676 Merge branch 'imx/defconfig' into for-next)
Merging keystone/next (cb293d3b430e Merge branch 'for_5.15/drivers-soc' into next)
Merging mediatek/for-next (69862ae4e378 Merge branch 'v5.14-next/soc' into for-next)
Merging mvebu/for-next (930af8dda750 Merge branch 'mvebu/dt64' into mvebu/for-next)
Merging omap/for-next (7911f95d1713 Merge branch 'fixes' into for-next)
Merging qcom/for-next (886c0cd464ad Merge branches 'arm64-for-5.16', 'drivers-for-5.16' and 'dts-for-5.16' into for-next)
Merging raspberrypi/for-next (9f5289ec6f1c ARM: dts: bcm2711-rpi-4-b: Fix usb's unit address)
Merging renesas/next (41c50f42a51c Merge branches 'renesas-arm-dt-for-v5.16', 'renesas-drivers-for-v5.16' and 'renesas-dt-bindings-for-v5.16' into renesas-next)
Merging reset/reset/next (09f3824342f6 reset: simple: remove ZTE details in Kconfig help)
Merging rockchip/for-next (6092ed8fe34a Merge branch 'v5.16-clk/next' into for-next)
Merging samsung-krzk/for-next (1523dddcd195 Merge branch 'next/soc' into for-next)
Merging scmi/for-linux-next (34eae8520c88 Merge branch 'for-next/juno' of git://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux into for-linux-next)
Merging stm32/stm32-next (350081007916 ARM: dts: stm32: set the DCMI pins on stm32mp157c-odyssey)
Merging sunxi/sunxi/for-next (bb289f4c0b2b Merge branches 'sunxi/clk-for-5.16', 'sunxi/core-for-5.16', 'sunxi/drivers-for-5.16', 'sunxi/dt-for-5.16' and 'sunxi/fixes-for-5.15' into sunxi/for-next)
Merging tegra/for-next (cc701ccede61 Merge branch for-5.15/arm64/dt into for-next)
Merging ti-k3/ti-k3-next (1e3d655fe7b4 Merge branch 'ti-k3-config-next' into ti-k3-next)
Merging ti-k3-new/ti-k3-next (6037c75b193a arm64: dts: ti: k3-am65: Relocate thermal-zones to SoC specific location)
Merging xilinx/for-next (35a7430dad4d arm64: zynqmp: Wire psgtr for zc1751-xm013)
Merging clk/clk-next (1cbc04ffedcc Merge branch 'clk-mtk' into clk-next)
Merging clk-imx/for-next (1f4b035e603b clk: imx: Fix the build break when clk-imx8ulp build as module)
Merging clk-renesas/renesas-clk (8ac4aedcf7b3 clk: renesas: r8a779a0: Add TPU clock)
Merging clk-samsung/for-next (1d26eaeec37a clk: samsung: s5pv210-audss: Make use of devm_platform_ioremap_resource())
Merging csky/linux-next (90dc8c0e664e csky: Kconfig: Remove unused selects)
Merging h8300/h8300-next (1ec10274d436 h8300: don't implement set_fs)
Merging m68k/for-next (a7b68ed15d1f m68k: mvme: Remove overdue #warnings in RTC handling)
Merging m68knommu/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging microblaze/next (6880fa6c5660 Linux 5.15-rc1)
Merging mips/mips-next (6880fa6c5660 Linux 5.15-rc1)
Merging nds32/next (07cd7745c6f2 nds32/setup: remove unused memblock_region variable in setup_memory())
CONFLICT (content): Merge conflict in arch/nds32/Kconfig
Merging nios2/for-next (7f7bc20bc41a nios2: Don't use _end for calculating min_low_pfn)
Merging openrisc/for-next (1955d843efc3 openrisc/litex: Update defconfig)
Merging parisc-hd/for-next (e4e737bb5c17 Linux 5.15-rc2)
Merging powerpc/next (6880fa6c5660 Linux 5.15-rc1)
Merging soc-fsl/next (242b0b398ccd soc: fsl: enable acpi support in RCPM driver)
Merging risc-v/for-next (6f55ab36bef5 riscv: Move EXCEPTION_TABLE to RO_DATA segment)
Merging s390/for-next (9ec953c0a7e1 Merge branch 'fixes' into for-next)
Merging sh/for-next (12285ff8667b sh: kdump: add some attribute to function)
Merging sparc-next/master (dd0d718152e4 Merge tag 'spi-fix-v5.8-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi)
Merging uml/linux-next (234640275675 um: rename set_signals() to um_set_signals())
Merging xtensa/xtensa-for-next (7b7cec477fc3 xtensa: move core-y in arch/xtensa/Makefile to arch/xtensa/Kbuild)
Merging pidfd/for-next (f4dd02cd8631 Merge branch 'kernel.sys' into for-next)
Merging fscrypt/master (38ef66b05cfa fscrypt: document struct fscrypt_operations)
Merging fscache/fscache-next (86641885f99b Merge branch 'fscache-iter-3' into fscache-next)
Merging afs/afs-next (7af08140979a Revert "gcov: clang: fix clang-11+ build")
Merging btrfs/for-next (e51480e6f4f8 Merge branch 'for-next-next-v5.15-20210913' into for-next-20210913)
Merging ceph/master (4b0b8836ebba ceph: fix off by one bugs in unsafe_request_wait())
Merging cifs/for-next (35866f3f779a cifs: Not to defer close on file when lock is set)
Merging cifsd/cifsd-for-next (8718af129e68 ksmbd: add default data stream name in FILE_STREAM_INFORMATION)
Merging configfs/for-next (c42dd069be8d configfs: fix a race in configfs_lookup())
Merging ecryptfs/next (682a8e2b41ef Merge tag 'ecryptfs-5.13-rc1-updates' of git://git.kernel.org/pub/scm/linux/kernel/git/tyhicks/ecryptfs)
Merging erofs/dev (1266b4a7ecb6 erofs: fix double free of 'copied')
Merging exfat/dev (50be9417e23a Merge tag 'io_uring-5.14-2021-07-09' of git://git.kernel.dk/linux-block)
Merging ext3/for_next (ed518dd035fa Pull udf xattr sanity checks.)
Merging ext4/dev (948ca5f30e1d ext4: enforce buffer head state assertion in ext4_da_map_blocks)
Merging f2fs/dev (c02599f210d9 f2fs: avoid attaching SB_ACTIVE flag during mount)
Merging fsverity/fsverity (07c99001312c fs-verity: support reading signature with ioctl)
Merging fuse/for-next (7a41554fdfb0 fuse: move fuse_invalidate_attr() into fuse_update_ctime())
Merging gfs2/for-next (11603f0011d0 gfs2: Allow append and immutable bits to coexist)
Merging jfs/jfs-next (5d299f44d765 jfs: Avoid field-overflowing memcpy())
Merging nfs/linux-next (e4e737bb5c17 Linux 5.15-rc2)
Merging nfs-anna/linux-next (8cfb9015280d NFS: Always provide aligned buffers to the RPC read layers)
Merging nfsd/nfsd-next (e22ce8eb631b Linux 5.14-rc7)
Merging cel/for-next (02579b2ff8b0 nfsd: back channel stuck in SEQ4_STATUS_CB_PATH_DOWN)
Merging ntfs3/master (880301bb3132 fs/ntfs3: Fix a memory leak on object opts)
Merging orangefs/for-next (0fdec1b3c9fb orangefs: fix orangefs df output.)
Merging overlayfs/overlayfs-next (332f606b32b6 ovl: enable RCU'd ->get_acl())
Merging ubifs/next (a801fcfeef96 ubifs: Set/Clear I_LINKABLE under i_lock for whiteout inode)
Merging v9fs/9p-next (9c4d94dc9a64 net/9p: increase default msize to 128k)
Merging xfs/for-next (f38a032b165d xfs: fix I_DONTCACHE)
Merging zonefs/for-next (95b115332a83 zonefs: remove redundant null bio check)
Merging iomap/iomap-for-next (03b8df8d43ec iomap: standardize tracepoint formatting and storage)
Merging djw-vfs/vfs-for-next (d03ef4daf33a fs: forbid invalid project ID)
Merging file-locks/locks-next (90f7d7a0d0d6 locks: remove LOCK_MAND flock lock support)
Merging vfs/for-next (8f40da9494cf Merge branch 'misc.namei' into for-next)
Merging printk/for-next (9980c4251f8d printk: use kvmalloc instead of kmalloc for devkmsg_user)
Merging pci/next (e4e737bb5c17 Linux 5.15-rc2)
Merging pstore/for-next/pstore (c5d4fb2539ca pstore/blk: Use "%lu" to format unsigned long)
Merging hid/for-next (8ca10560f402 Merge branch 'for-5.15/upstream-fixes' into for-next)
Merging i2c/i2c/for-next (294b29f15469 i2c: xiic: Fix RX IRQ busy check)
Merging i3c/i3c/next (41a0430dd5ca i3c/master/mipi-i3c-hci: Prefer kcalloc over open coded arithmetic)
Merging dmi/dmi-for-next (f97a2103f1a7 firmware: dmi: Move product_sku info to the end of the modalias)
Merging hwmon-staging/hwmon-next (cd0b8e410937 hwmon: (nct6775) Support access via Asus WMI)
Merging jc_docs/docs-next (242f4c77b1c8 docs: zh_TW/index: Move arm64/index to arch-specific section)
Merging v4l-dvb/master (e4e737bb5c17 Linux 5.15-rc2)
Merging v4l-dvb-next/master (952aab37b121 Merge tag 'v5.15-rc2' into media_stage)
Applying: fix for "media: ir_toy: allow tx carrier to be set"
Merging pm/linux-next (163807478ffd Merge branch 'devprop' into linux-next)
Merging cpufreq-arm/cpufreq/arm/linux-next (4855e26bcf4d cpufreq: mediatek-hw: Add support for CPUFREQ HW)
Merging cpupower/cpupower (79a0dc5530a9 tools: cpupower: fix typo in cpupower-idle-set(1) manpage)
Merging devfreq/devfreq-next (6880fa6c5660 Linux 5.15-rc1)
Merging opp/opp/linux-next (94274f20f6bf dt-bindings: opp: Convert to DT schema)
Merging thermal/thermal/linux-next (fc26023f8816 thermal/drivers/int340x: Fix tcc offset on resume)
Merging ieee1394/for-next (54b3bd99f094 firewire: nosy: switch from 'pci_' to 'dma_' API)
Merging dlm/next (ecd95673142e fs: dlm: avoid comms shutdown delay in release_lockspace)
Merging swiotlb/linux-next (f3c4b1341e83 swiotlb: use depends on for DMA_RESTRICTED_POOL)
Merging rdma/for-next (ad17bbef3dd5 RDMA/rxe: remove the unnecessary variable)
Merging net-next/master (85c698863c15 net/ipv4/tcp_minisocks.c: remove superfluous header files from tcp_minisocks.c)
Merging bpf-next/for-next (e57f52b42d1f Merge branch 'bpf: implement variadic printk helper')
Merging ipsec-next/master (9e9fb7655ed5 Merge tag 'net-next-5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next)
Merging mlx5-next/mlx5-next (6880fa6c5660 Linux 5.15-rc1)
Merging netfilter-next/master (13bb8429ca98 net: wwan: iosm: firmware flashing and coredump collection)
Merging ipvs-next/master (13bb8429ca98 net: wwan: iosm: firmware flashing and coredump collection)
Merging wireless-drivers-next/master (6880fa6c5660 Linux 5.15-rc1)
Merging bluetooth/master (81be03e026dc Bluetooth: RFCOMM: Replace use of memcpy_from_msg with bt_skb_sendmmsg)
Merging mac80211-next/master (14e94f9445a9 octeontx2-af: verify CQ context updates)
Merging mtd/mtd/next (b72841e4dcd5 mtd: mtdswap: Remove redundant assignment of pointer eb)
Merging nand/nand/next (46a0dc10fb32 mtd: rawnand: intel: Fix potential buffer overflow in probe)
Merging spi-nor/spi-nor/next (2734d6c1b1a0 Linux 5.14-rc2)
Merging crypto/master (a2d3cbc80d25 crypto: aesni - check walk.nbytes instead of err)
Merging drm/drm-next (6880fa6c5660 Linux 5.15-rc1)
Merging drm-misc/for-linux-next (5540cf8f3e8d drm/panel-edp: Implement generic "edp-panel"s probed by EDID)
Applying: Revert "drm/vc4: dsi: Switch to devm_drm_of_get_bridge"
Applying: Revert "drm/vc4: dpi: Switch to devm_drm_of_get_bridge"
Applying: Revert "drm/bridge: Add a function to abstract away panels"
Merging amdgpu/drm-next (d12d06294907 drm/radeon: Add HD-audio component notifier support (v2))
CONFLICT (content): Merge conflict in drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c
Applying: amdgpu: fix bad merge (pinned)
Merging drm-intel/for-linux-next (e01163e82b70 drm/i915/dg2: configure TRANS_DP2_VFREQ{HIGH,LOW} for 128b/132b)
Merging drm-tegra/drm/tegra/for-next (c3dbfb9c49ee gpu: host1x: Plug potential memory leak)
Merging drm-msm/msm-next (cb0927ab80d2 drm/msi/mdp4: populate priv->kms in mdp4_kms_init)
Merging imx-drm/imx-drm/next (20fbfc81e390 drm/imx: imx-tve: Make use of the helper function devm_platform_ioremap_resource())
Merging etnaviv/etnaviv/next (81fd23e2b3cc drm/etnaviv: Implement mmap as GEM object function)
Merging regmap/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging sound/for-next (94d508fa3186 ALSA: hda/cs8409: Setup Dolphin Headset Mic as Phantom Jack)
Merging sound-asoc/for-next (cc908256886c Merge remote-tracking branch 'asoc/for-5.16' into asoc-next)
Merging modules/modules-next (ced75a2f5da7 MAINTAINERS: Add Luis Chamberlain as modules maintainer)
Merging input/next (e2afe95a87a2 dt-bindings: input: Add binding for cypress-sf)
Merging block/for-next (32ac44a96a8e Merge branch 'for-5.16/drivers' into for-next)
Merging device-mapper/for-next (d3703ef33129 dm crypt: use in_hardirq() instead of deprecated in_irq())
Merging libata/for-next (dd969380c6bd ahci: remove duplicated PCI device IDs)
Merging pcmcia/pcmcia-next (e39cdacf2f66 pcmcia: i82092: fix a null pointer dereference bug)
Merging mmc/next (4ed8431c42ba Merge branch 'fixes' into next)
Merging mfd/for-mfd-next (cdff1eda6932 mfd: lpc_sch: Rename GPIOBASE to prevent build error)
Merging backlight/for-backlight-next (79fad92f2e59 backlight: pwm_bl: Improve bootloader/kernel device handover)
Merging battery/for-next (c9398455b046 power: supply: core: Fix parsing of battery chemistry/technology)
Merging regulator/for-next (09aef6aff450 Merge remote-tracking branch 'regulator/for-5.16' into regulator-next)
Merging security/next-testing (047843bdb316 Merge branch 'landlock_lsm_v34' into next-testing)
Merging apparmor/apparmor-next (d108370c644b apparmor: fix error check)
Merging integrity/next-integrity (836f7b6ca082 ima: fix deadlock when traversing "ima_default_rules".)
Merging keys/keys-next (e377c31f788f integrity: Load mokx variables into the blacklist keyring)
CONFLICT (content): Merge conflict in certs/system_keyring.c
Merging safesetid/safesetid-next (1b8b71922919 LSM: SafeSetID: Mark safesetid_initialized as __initdata)
Merging selinux/next (d9d8c93938c4 Smack: Brutalist io_uring support)
CONFLICT (content): Merge conflict in fs/io-wq.c
Merging smack/next (0817534ff9ea smackfs: Fix use-after-free in netlbl_catmap_walk())
Merging tomoyo/master (7d2a07b76933 Linux 5.14)
Merging tpmdd/next (f985911b7bc7 crypto: public_key: fix overflow during implicit conversion)
Merging watchdog/master (41e73feb1024 dt-bindings: watchdog: Add compatible for Mediatek MT7986)
Merging iommu/next (b58886bf14da Merge branch 'iommu/fixes' into next)
Merging audit/next (8e71168e2cc7 lsm_audit: avoid overloading the "key" audit field)
Merging devicetree/for-next (6f4276ecc0f7 dt-bindings: arm,vexpress-juno: Add missing motherboard properties)
Merging mailbox/mailbox-for-next (85dfdbfc13ea mailbox: cmdq: add multi-gce clocks support for mt8195)
Merging spi/for-next (efe79efc21cf Merge remote-tracking branch 'spi/for-5.15' into spi-5.16)
Merging tip/auto-latest (7fc58d76a2ce Merge branch 'x86/urgent')
Merging clockevents/timers/drivers/next (f196ae282070 dt-bindings: timer: Add ABIs for new Ingenic SoCs)
Merging edac/edac-for-next (4646da896a44 Merge branch 'edac-urgent' into edac-for-next)
Merging irqchip/irq/irqchip-next (6e3b473ee064 Merge branch irq/qcom-pdc-nowake-cleanup into irq/irqchip-next)
Merging ftrace/for-next (5dfe50b05588 bootconfig: Rename xbc_node_find_child() to xbc_node_find_subkey())
Merging rcu/rcu/next (9c2eed2c4c24 rcu: Replace ________p1 and _________p1 with __UNIQUE_ID(rcu))
Merging kvm/next (109bbba5066b KVM: Drop unused kvm_dirty_gfn_invalid())
Merging kvm-arm/next (419025b3b419 Merge branch kvm-arm64/misc-5.15 into kvmarm-master/next)
Merging kvm-ppc/kvm-ppc-next (72476aaa4691 KVM: PPC: Book3S HV: Fix host radix SLB optimisation with hash guests)
Merging kvms390/next (a3e03bc1368c KVM: s390: index kvm->arch.idle_mask by vcpu_idx)
Merging xen-tip/linux-next (794d5b8a497f swiotlb-xen: this is PV-only on x86)
Merging percpu/for-next (a81a52b325ec Merge branch 'for-5.14-fixes' into for-next)
Merging workqueues/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging drivers-x86/for-next (1f88e0a22f7c platform/x86: acer-wmi: use __packed instead of __attribute__((packed)))
Merging chrome-platform/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging hsi/for-next (e73f0f0ee754 Linux 5.14-rc1)
Merging leds/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging ipmi/for-next (35f4caec9d51 ipmi: Disable some operations during a panic)
Merging driver-core/driver-core-next (820879ee1865 sysfs: simplify sysfs_kf_seq_show)
Merging usb/usb-next (ae8709b296d8 USB: core: Make do_proc_control() and do_proc_bulk() killable)
CONFLICT (content): Merge conflict in arch/arm64/boot/dts/qcom/ipq6018.dtsi
Merging usb-gadget/next (e49d033bddf5 Linux 5.12-rc6)
Merging usb-serial/usb-next (6400b9749104 USB: serial: allow hung up ports to be suspended)
Merging usb-chipidea-next/for-usb-next (78665f57c3fa usb: chipidea: udc: make controller hardware endpoint primed)
Merging tty/tty-next (b55c8aa6b1ab tty: moxa: merge moxa.h into moxa.c)
Merging char-misc/char-misc-next (d06246ebd773 scripts/tags.sh: Fix obsolete parameter for ctags)
Merging extcon/extcon-next (1a4bedc5305b extcon: extcon-axp288: Use P-Unit semaphore lock for register accesses)
Merging phy-next/next (6880fa6c5660 Linux 5.15-rc1)
Merging soundwire/next (6880fa6c5660 Linux 5.15-rc1)
Merging thunderbolt/next (e4e737bb5c17 Linux 5.15-rc2)
Merging vfio/next (ea870730d83f Merge branches 'v5.15/vfio/spdx-license-cleanups', 'v5.15/vfio/dma-valid-waited-v3', 'v5.15/vfio/vfio-pci-core-v5' and 'v5.15/vfio/vfio-ap' into v5.15/vfio/next)
Merging staging/staging-next (7b228bdf87c2 staging: rts5208: remove unnecessary parentheses in ms.c)
Merging iio/togreg (55c45baaaf78 iio: adc: rockchip_saradc: Make use of the helper function devm_platform_ioremap_resource())
Merging mux/for-next (3516bd729358 Merge tag 's390-5.11-3' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux)
Merging icc/icc-next (13404ac8882f interconnect: qcom: sdm660: Add missing a2noc qos clocks)
Merging dmaengine/next (6880fa6c5660 Linux 5.15-rc1)
Merging cgroup/for-next (7ee285395b21 cgroup: Make rebind_subsystems() disable v2 controllers all at once)
Merging scsi/for-next (1a0db7744e45 scsi: bsg: Fix device unregistration)
Merging scsi-mkp/for-next (7e642ca0375b scsi: target: Remove unused function arguments)
Merging vhost/linux-next (be9c6bad9b46 vdpa: potential uninitialized return in vhost_vdpa_va_map())
Merging rpmsg/for-next (99fdaca991f7 Merge branches 'hwspinlock-next', 'rpmsg-next' and 'rproc-next' into for-next)
Merging gpio/for-next (7ac554888233 MAINTAINERS: Remove reference to non-existing file)
Merging gpio-brgl/gpio/for-next (3ea046564039 dt-bindings: gpio: add gpio-line-names to rockchip,gpio-bank.yaml)
Merging gpio-intel/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging pinctrl/for-next (788ac97efa94 Merge branch 'devel' into for-next)
Merging pinctrl-intel/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging pinctrl-renesas/renesas-pinctrl (075667cc6c29 pinctrl: renesas: No need to initialise global statics)
Merging pinctrl-samsung/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging pwm/for-next (3f2b16734914 pwm: mtk-disp: Implement atomic API .get_state())
Merging userns/for-next (a3be01837fc9 Merge of ucount-fixes-for-5.14, siginfo-si_trapno-for-v5.15, and exit-cleanups-for-v5.15 for testing in linux-next)
CONFLICT (content): Merge conflict in include/linux/sched/signal.h
Merging ktest/for-next (170f4869e662 ktest.pl: Fix the logic for truncating the size of the log file for email)
Merging kselftest/next (6880fa6c5660 Linux 5.15-rc1)
Merging livepatching/for-next (cd2d68f2d6b2 Merge branch 'for-5.15/cpu-hotplug' into for-next)
Merging coresight/next (1efbcec2ef8c coresight: cti: Reduce scope for the variable “cs_fwnode” in cti_plat_create_connection())
Merging rtc/rtc-next (6880fa6c5660 Linux 5.15-rc1)
Merging nvdimm/libnvdimm-for-next (bdd3c50d83bf dax: remove bdev_dax_supported)
Merging at24/at24/for-next (762925405482 dt-bindings: at24: add ON Semi CAT24C04 and CAT24C05)
Merging ntb/ntb-next (f96cb827ce49 ntb: ntb_pingpong: remove redundant initialization of variables msg_data and spad_data)
Merging seccomp/for-next/seccomp (b4d8a58f8dcf seccomp: Fix setting loaded filter count during TSYNC)
Merging kspp/for-next/kspp (0c91d23b6783 treewide: Replace 0-element memcpy() destinations with flexible arrays)
Merging cisco/for-next (9e98c678c2d6 Linux 5.1-rc1)
Merging gnss/gnss-next (0f79ce970e79 gnss: drop stray semicolons)
Merging fsi/next (9ab1428dfe2c fsi/sbefifo: Fix reset timeout)
Merging slimbus/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging nvmem/for-next (536267aafb8a nvmem: core: Add stubs for nvmem_cell_read_variable_le_u32/64 if !CONFIG_NVMEM)
Merging xarray/main (2c7e57a02708 idr test suite: Improve reporting from idr_find_test_1)
Merging hyperv/hyperv-next (9d68cd9120e4 hv_utils: Set the maximum packet size for VSS driver to the length of the receive buffer)
Merging auxdisplay/auxdisplay (24ebc044c72e auxdisplay: Replace symbolic permissions with octal permissions)
Merging kgdb/kgdb/for-next (f8416aa29185 kernel: debug: Convert to SPDX identifier)
Merging hmm/hmm (6880fa6c5660 Linux 5.15-rc1)
Merging fpga/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging kunit/test (6880fa6c5660 Linux 5.15-rc1)
Merging cfi/cfi/next (ff1176468d36 Linux 5.14-rc3)
Merging kunit-next/kunit (3b29021ddd10 kunit: tool: allow filtering test cases via glob)
Merging trivial/for-next (9ff9b0d392ea Merge tag 'net-next-5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next)
Merging mhi/mhi-next (813272ed5238 Merge 5.14-rc5 into char-misc-next)
Merging memblock/for-next (e888fa7bb882 memblock: Check memory add/cap ordering)
Merging init/init-user-pointers (38b082236e77 initramfs: use vfs_utimes in do_copy)
Merging counters/counters (e71ba9452f0b Linux 5.11-rc2)
Merging rust/rust-next (5d3986cf8ed6 MAINTAINERS: Rust)
CONFLICT (content): Merge conflict in include/linux/kallsyms.h
CONFLICT (content): Merge conflict in Makefile
Applying: fixup for rust integration with Makefile.clang creation
Merging cxl/next (2b922a9d064f cxl/registers: Fix Documentation warning)
Merging folio/for-next (1a90e9dae32c mm/writeback: Add folio_write_one)
CONFLICT (content): Merge conflict in mm/util.c
CONFLICT (content): Merge conflict in mm/rmap.c
CONFLICT (content): Merge conflict in mm/page-writeback.c
CONFLICT (content): Merge conflict in mm/memcontrol.c
CONFLICT (content): Merge conflict in mm/filemap.c
CONFLICT (content): Merge conflict in include/linux/memcontrol.h
CONFLICT (modify/delete): fs/cachefiles/rdwr.c deleted in HEAD and modified in folio/for-next. Version folio/for-next of fs/cachefiles/rdwr.c left in tree.
$ git rm -f fs/cachefiles/rdwr.c
Applying: fix up for "9p: (untested) Convert to using the netfs helper lib to do reads and caching"
Merging akpm-current/current (7f0fbfc0a77b ipc-check-checkpoint_restore_ns_capable-to-modify-c-r-proc-files-fix)
$ git checkout -b akpm remotes/origin/akpm/master
$ git rebase --onto master remotes/origin/akpm/master-base
Merging akpm/master (43fecf051972 mm: unexport {,un}lock_page_memcg)

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

^ permalink raw reply	[relevance 1%]

* Re: [PATCH] platform/x86: thinkpad_acpi: Prefer struct_size over open coded arithmetic
  2021-09-20  5:58  7% ` Kees Cook
@ 2021-09-21 13:46  6%   ` Hans de Goede
  2021-09-21 15:15  7%     ` Greg KH
  2021-09-25 10:37  7%     ` Len Baker
  0 siblings, 2 replies; 200+ results
From: Hans de Goede @ 2021-09-21 13:46 UTC (permalink / raw)
  To: Kees Cook, Len Baker
  Cc: Henrique de Moraes Holschuh, Mark Gross, Gustavo A. R. Silva,
	ibm-acpi-devel, platform-driver-x86, linux-hardening,
	linux-kernel

Hi,

On 9/20/21 7:58 AM, Kees Cook wrote:
> On Sat, Sep 18, 2021 at 05:05:00PM +0200, Len Baker 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, switch to flexible array member in the struct attribute_set_obj and
>> refactor the code accordingly to use the struct_size() helper instead of
>> the argument "size + count * size" in the kzalloc() function.
>>
>> [1] https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments
>>
>> Signed-off-by: Len Baker <len.baker@gmx.com>
>> ---
>>  drivers/platform/x86/thinkpad_acpi.c | 8 +++-----
>>  1 file changed, 3 insertions(+), 5 deletions(-)
>>
>> diff --git a/drivers/platform/x86/thinkpad_acpi.c b/drivers/platform/x86/thinkpad_acpi.c
>> index 50ff04c84650..ed0b01ead796 100644
>> --- a/drivers/platform/x86/thinkpad_acpi.c
>> +++ b/drivers/platform/x86/thinkpad_acpi.c
>> @@ -1008,7 +1008,7 @@ struct attribute_set {
>>
>>  struct attribute_set_obj {
>>  	struct attribute_set s;
>> -	struct attribute *a;
>> +	struct attribute *a[];
>>  } __attribute__((packed));
> 
> Whoa. I have so many questions... :)
> 
>>
>>  static struct attribute_set *create_attr_set(unsigned int max_members,
>> @@ -1020,13 +1020,11 @@ static struct attribute_set *create_attr_set(unsigned int max_members,
>>  		return NULL;
>>
>>  	/* Allocates space for implicit NULL at the end too */
>> -	sobj = kzalloc(sizeof(struct attribute_set_obj) +
>> -		    max_members * sizeof(struct attribute *),
>> -		    GFP_KERNEL);
>> +	sobj = kzalloc(struct_size(sobj, a, max_members + 1), GFP_KERNEL);
> 
> Whoa, this needs a lot more detail in the changelog if this is actually
> correct. The original code doesn't seem to match the comment? (Where is
> the +1?) So is this also a bug-fix?

Kees, at first I thought you were spot-on with this comment, but the
truth is more subtle. struct attribute_set_obj was:

struct attribute_set_obj {
        struct attribute_set s;
        struct attribute *a;
} __attribute__((packed));

Another way of looking at this, which makes things more clear is as:

struct attribute_set_obj {
        struct attribute_set s;
        struct attribute *a[1];
} __attribute__((packed));

So the sizeof(struct attribute_set_obj) in the original kzalloc call
included room for 1 "extra" pointer which is reserved for the terminating
NULL pointer.

Changing the struct to:

struct attribute_set_obj {
        struct attribute_set s;
        struct attribute *a[];
} __attribute__((packed));

Is equivalent to changing it to:

struct attribute_set_obj {
        struct attribute_set s;
        struct attribute *a[0];
} __attribute__((packed));

So the change in the struct declaration reduces the sizeof(struct attribute_set_obj)
by the size of 1 pointer, making the +1 necessary.

So AFAICT there is actually no functional change here.

Still I will hold off merging this until we agree on this :)

> (I see the caller uses +2? Why? It seems to be using each of hotkey_attributes,
> plus 1 more attr, plus a final NULL?)

The +2 is actually for 2 extra attributes (making the total number
of extra attributes +3 because the sizeof(struct attribute_set_obj)
already includes 1 extra). 

FWIW these 2 extra attributes are for devices with a
a physical rfkill on/off switch and for the device being
a convertible capable of reporting laptop- vs tablet-mode.

>>  	if (!sobj)
>>  		return NULL;
>>  	sobj->s.max_members = max_members;
>> -	sobj->s.group.attrs = &sobj->a;
>> +	sobj->s.group.attrs = sobj->a;
>>  	sobj->s.group.name = name;
> 
> The caller also never sets a name?

attribute_group.name may be NULL, I don't know
of (m)any drivers which actual set this to non NULL.

> Why is struct attribute_set_obj marked as __packed?

I have no clue, this seems completely unnecessary.

Len Baker can you submit a separate patch removing the useless
__packed ?

Regards,

Hans


^ permalink raw reply	[relevance 6%]

* Re: [PATCH] platform/x86: thinkpad_acpi: Prefer struct_size over open coded arithmetic
  2021-09-21 13:46  6%   ` Hans de Goede
@ 2021-09-21 15:15  7%     ` Greg KH
  2021-09-21 15:38  7%       ` Hans de Goede
  2021-09-25 10:40  7%       ` Len Baker
  2021-09-25 10:37  7%     ` Len Baker
  1 sibling, 2 replies; 200+ results
From: Greg KH @ 2021-09-21 15:15 UTC (permalink / raw)
  To: Hans de Goede
  Cc: Kees Cook, Len Baker, Henrique de Moraes Holschuh, Mark Gross,
	Gustavo A. R. Silva, ibm-acpi-devel, platform-driver-x86,
	linux-hardening, linux-kernel

On Tue, Sep 21, 2021 at 03:46:23PM +0200, Hans de Goede wrote:
> Hi,
> 
> On 9/20/21 7:58 AM, Kees Cook wrote:
> > On Sat, Sep 18, 2021 at 05:05:00PM +0200, Len Baker 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, switch to flexible array member in the struct attribute_set_obj and
> >> refactor the code accordingly to use the struct_size() helper instead of
> >> the argument "size + count * size" in the kzalloc() function.
> >>
> >> [1] https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments
> >>
> >> Signed-off-by: Len Baker <len.baker@gmx.com>
> >> ---
> >>  drivers/platform/x86/thinkpad_acpi.c | 8 +++-----
> >>  1 file changed, 3 insertions(+), 5 deletions(-)
> >>
> >> diff --git a/drivers/platform/x86/thinkpad_acpi.c b/drivers/platform/x86/thinkpad_acpi.c
> >> index 50ff04c84650..ed0b01ead796 100644
> >> --- a/drivers/platform/x86/thinkpad_acpi.c
> >> +++ b/drivers/platform/x86/thinkpad_acpi.c
> >> @@ -1008,7 +1008,7 @@ struct attribute_set {
> >>
> >>  struct attribute_set_obj {
> >>  	struct attribute_set s;
> >> -	struct attribute *a;
> >> +	struct attribute *a[];
> >>  } __attribute__((packed));
> > 
> > Whoa. I have so many questions... :)
> > 
> >>
> >>  static struct attribute_set *create_attr_set(unsigned int max_members,
> >> @@ -1020,13 +1020,11 @@ static struct attribute_set *create_attr_set(unsigned int max_members,
> >>  		return NULL;
> >>
> >>  	/* Allocates space for implicit NULL at the end too */
> >> -	sobj = kzalloc(sizeof(struct attribute_set_obj) +
> >> -		    max_members * sizeof(struct attribute *),
> >> -		    GFP_KERNEL);
> >> +	sobj = kzalloc(struct_size(sobj, a, max_members + 1), GFP_KERNEL);
> > 
> > Whoa, this needs a lot more detail in the changelog if this is actually
> > correct. The original code doesn't seem to match the comment? (Where is
> > the +1?) So is this also a bug-fix?
> 
> Kees, at first I thought you were spot-on with this comment, but the
> truth is more subtle. struct attribute_set_obj was:
> 
> struct attribute_set_obj {
>         struct attribute_set s;
>         struct attribute *a;
> } __attribute__((packed));
> 
> Another way of looking at this, which makes things more clear is as:
> 
> struct attribute_set_obj {
>         struct attribute_set s;
>         struct attribute *a[1];
> } __attribute__((packed));
> 
> So the sizeof(struct attribute_set_obj) in the original kzalloc call
> included room for 1 "extra" pointer which is reserved for the terminating
> NULL pointer.
> 
> Changing the struct to:
> 
> struct attribute_set_obj {
>         struct attribute_set s;
>         struct attribute *a[];
> } __attribute__((packed));
> 
> Is equivalent to changing it to:
> 
> struct attribute_set_obj {
>         struct attribute_set s;
>         struct attribute *a[0];
> } __attribute__((packed));
> 
> So the change in the struct declaration reduces the sizeof(struct attribute_set_obj)
> by the size of 1 pointer, making the +1 necessary.
> 
> So AFAICT there is actually no functional change here.
> 
> Still I will hold off merging this until we agree on this :)

First off, why is a single driver doing so many odd things with
attribute groups?  Why not just use them the way that the rest of the
kernel does?  Why does this driver need this special handling and no one
else does?

I think the default way of handling if an attribute is enabled or not,
should suffice here, and make things much simpler overall as all of this
crazy attribute handling can just be removed.

Bonus would also be that I think it would fix the race conditions that
happen when trying to create attributes after the device is bound to the
driver that I think the existing driver has today.

> > (I see the caller uses +2? Why? It seems to be using each of hotkey_attributes,
> > plus 1 more attr, plus a final NULL?)
> 
> The +2 is actually for 2 extra attributes (making the total number
> of extra attributes +3 because the sizeof(struct attribute_set_obj)
> already includes 1 extra). 
> 
> FWIW these 2 extra attributes are for devices with a
> a physical rfkill on/off switch and for the device being
> a convertible capable of reporting laptop- vs tablet-mode.

Again, using the default way to show (or not show) attributes should
solve this issue.  Why not just use that instead?

> >>  	if (!sobj)
> >>  		return NULL;
> >>  	sobj->s.max_members = max_members;
> >> -	sobj->s.group.attrs = &sobj->a;
> >> +	sobj->s.group.attrs = sobj->a;
> >>  	sobj->s.group.name = name;
> > 
> > The caller also never sets a name?
> 
> attribute_group.name may be NULL, I don't know
> of (m)any drivers which actual set this to non NULL.

It is used by some, that is how you can put all of the attributes in a
subdirectory automatically.  No idea if that's needed here...

All attributes for this driver are documented in Documentation/ABI/,
right? :)

thanks,

greg k-h

^ permalink raw reply	[relevance 7%]

* Re: [PATCH] platform/x86: thinkpad_acpi: Prefer struct_size over open coded arithmetic
  2021-09-21 15:15  7%     ` Greg KH
@ 2021-09-21 15:38  7%       ` Hans de Goede
  2021-09-21 15:45  7%         ` Greg KH
  2021-09-25 10:40  7%       ` Len Baker
  1 sibling, 1 reply; 200+ results
From: Hans de Goede @ 2021-09-21 15:38 UTC (permalink / raw)
  To: Greg KH
  Cc: Kees Cook, Len Baker, Henrique de Moraes Holschuh, Mark Gross,
	Gustavo A. R. Silva, ibm-acpi-devel, platform-driver-x86,
	linux-hardening, linux-kernel

Hi,

On 9/21/21 5:15 PM, Greg KH wrote:
> On Tue, Sep 21, 2021 at 03:46:23PM +0200, Hans de Goede wrote:
>> Hi,
>>
>> On 9/20/21 7:58 AM, Kees Cook wrote:
>>> On Sat, Sep 18, 2021 at 05:05:00PM +0200, Len Baker 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, switch to flexible array member in the struct attribute_set_obj and
>>>> refactor the code accordingly to use the struct_size() helper instead of
>>>> the argument "size + count * size" in the kzalloc() function.
>>>>
>>>> [1] https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments
>>>>
>>>> Signed-off-by: Len Baker <len.baker@gmx.com>
>>>> ---
>>>>  drivers/platform/x86/thinkpad_acpi.c | 8 +++-----
>>>>  1 file changed, 3 insertions(+), 5 deletions(-)
>>>>
>>>> diff --git a/drivers/platform/x86/thinkpad_acpi.c b/drivers/platform/x86/thinkpad_acpi.c
>>>> index 50ff04c84650..ed0b01ead796 100644
>>>> --- a/drivers/platform/x86/thinkpad_acpi.c
>>>> +++ b/drivers/platform/x86/thinkpad_acpi.c
>>>> @@ -1008,7 +1008,7 @@ struct attribute_set {
>>>>
>>>>  struct attribute_set_obj {
>>>>  	struct attribute_set s;
>>>> -	struct attribute *a;
>>>> +	struct attribute *a[];
>>>>  } __attribute__((packed));
>>>
>>> Whoa. I have so many questions... :)
>>>
>>>>
>>>>  static struct attribute_set *create_attr_set(unsigned int max_members,
>>>> @@ -1020,13 +1020,11 @@ static struct attribute_set *create_attr_set(unsigned int max_members,
>>>>  		return NULL;
>>>>
>>>>  	/* Allocates space for implicit NULL at the end too */
>>>> -	sobj = kzalloc(sizeof(struct attribute_set_obj) +
>>>> -		    max_members * sizeof(struct attribute *),
>>>> -		    GFP_KERNEL);
>>>> +	sobj = kzalloc(struct_size(sobj, a, max_members + 1), GFP_KERNEL);
>>>
>>> Whoa, this needs a lot more detail in the changelog if this is actually
>>> correct. The original code doesn't seem to match the comment? (Where is
>>> the +1?) So is this also a bug-fix?
>>
>> Kees, at first I thought you were spot-on with this comment, but the
>> truth is more subtle. struct attribute_set_obj was:
>>
>> struct attribute_set_obj {
>>         struct attribute_set s;
>>         struct attribute *a;
>> } __attribute__((packed));
>>
>> Another way of looking at this, which makes things more clear is as:
>>
>> struct attribute_set_obj {
>>         struct attribute_set s;
>>         struct attribute *a[1];
>> } __attribute__((packed));
>>
>> So the sizeof(struct attribute_set_obj) in the original kzalloc call
>> included room for 1 "extra" pointer which is reserved for the terminating
>> NULL pointer.
>>
>> Changing the struct to:
>>
>> struct attribute_set_obj {
>>         struct attribute_set s;
>>         struct attribute *a[];
>> } __attribute__((packed));
>>
>> Is equivalent to changing it to:
>>
>> struct attribute_set_obj {
>>         struct attribute_set s;
>>         struct attribute *a[0];
>> } __attribute__((packed));
>>
>> So the change in the struct declaration reduces the sizeof(struct attribute_set_obj)
>> by the size of 1 pointer, making the +1 necessary.
>>
>> So AFAICT there is actually no functional change here.
>>
>> Still I will hold off merging this until we agree on this :)
> 
> First off, why is a single driver doing so many odd things with
> attribute groups?  Why not just use them the way that the rest of the
> kernel does?  Why does this driver need this special handling and no one
> else does?

The thinkpad_acpi driver carries a lot of legacy with it.
So in general we are careful with making changes because some people
still use quite old ThinkPad-s and it is tricky to make sure we
don't break stuff on older models. So yeah there is some cruft in
a bunch of places in this driver.

In this case it seems that cleaning things up is a straight forward fix
though, so we really should do so.

> 
> I think the default way of handling if an attribute is enabled or not,
> should suffice here, and make things much simpler overall as all of this
> crazy attribute handling can just be removed.
> 
> Bonus would also be that I think it would fix the race conditions that
> happen when trying to create attributes after the device is bound to the
> driver that I think the existing driver has today.
> 
>>> (I see the caller uses +2? Why? It seems to be using each of hotkey_attributes,
>>> plus 1 more attr, plus a final NULL?)
>>
>> The +2 is actually for 2 extra attributes (making the total number
>> of extra attributes +3 because the sizeof(struct attribute_set_obj)
>> already includes 1 extra). 
>>
>> FWIW these 2 extra attributes are for devices with a
>> a physical rfkill on/off switch and for the device being
>> a convertible capable of reporting laptop- vs tablet-mode.
> 
> Again, using the default way to show (or not show) attributes should
> solve this issue.  Why not just use that instead?

I agree, moving to a "fixed" attribute_group, with an is_visible
check for the optional attributes would be a much better fix and
allow removal of a whole bunch of custom code.

If anyone following this thread could submit a patch doing that,
then that would be great.

>>>>  	if (!sobj)
>>>>  		return NULL;
>>>>  	sobj->s.max_members = max_members;
>>>> -	sobj->s.group.attrs = &sobj->a;
>>>> +	sobj->s.group.attrs = sobj->a;
>>>>  	sobj->s.group.name = name;
>>>
>>> The caller also never sets a name?
>>
>> attribute_group.name may be NULL, I don't know
>> of (m)any drivers which actual set this to non NULL.
> 
> It is used by some, that is how you can put all of the attributes in a
> subdirectory automatically.  No idea if that's needed here...
> 
> All attributes for this driver are documented in Documentation/ABI/,
> right? :)

I'm not sure if all attributes are documented, but a lot of them
(including all recently added ones) are documented in:
Documentation/admin-guide/laptops/thinkpad-acpi.rst

Regards,

Hans


^ permalink raw reply	[relevance 7%]

* Re: [PATCH] platform/x86: thinkpad_acpi: Prefer struct_size over open coded arithmetic
  2021-09-21 15:38  7%       ` Hans de Goede
@ 2021-09-21 15:45  7%         ` Greg KH
  0 siblings, 0 replies; 200+ results
From: Greg KH @ 2021-09-21 15:45 UTC (permalink / raw)
  To: Hans de Goede
  Cc: Kees Cook, Len Baker, Henrique de Moraes Holschuh, Mark Gross,
	Gustavo A. R. Silva, ibm-acpi-devel, platform-driver-x86,
	linux-hardening, linux-kernel

On Tue, Sep 21, 2021 at 05:38:39PM +0200, Hans de Goede wrote:
> > All attributes for this driver are documented in Documentation/ABI/,
> > right? :)
> 
> I'm not sure if all attributes are documented, but a lot of them
> (including all recently added ones) are documented in:
> Documentation/admin-guide/laptops/thinkpad-acpi.rst

They should also go into Documentation/ABI/ which is where sysfs files
are documented.  We are working on tools that make parsing that easier,
so it would be good to keep them out of other random documentation
files whenever possible.

thanks,

greg k-h

^ permalink raw reply	[relevance 7%]

* Re: [PATCH] ALSA: usx2y: Prefer struct_size over open coded arithmetic
  2021-09-19 13:37 13% [PATCH] ALSA: usx2y: Prefer " Len Baker
@ 2021-09-21 16:41  7% ` Takashi Iwai
  0 siblings, 0 replies; 200+ results
From: Takashi Iwai @ 2021-09-21 16:41 UTC (permalink / raw)
  To: Len Baker
  Cc: Jaroslav Kysela, Takashi Iwai, gushengxian, Kees Cook,
	Gustavo A. R. Silva, alsa-devel, linux-hardening, linux-kernel

On Sun, 19 Sep 2021 15:37:27 +0200,
Len Baker 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.
> 
> In this case this is not actually dynamic size: all the operands
> involved in the calculation are constant values. However it is better to
> refactor this anyway, just to keep the open-coded math idiom out of
> code.
> 
> So, use the struct_size() helper to do the arithmetic instead of the
> argument "size + size * count" in the kzalloc() function.
> 
> Also, take the opportunity to refactor the declaration variables to make
> it more easy to read.
> 
> [1] https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments
> 
> Signed-off-by: Len Baker <len.baker@gmx.com>

Thanks, applied.


Takashi

^ permalink raw reply	[relevance 7%]

* Re: [PATCH] assoc_array: Avoid open coded arithmetic in allocator arguments
  2021-09-19 11:09 11% [PATCH] assoc_array: Avoid open coded arithmetic in allocator arguments Len Baker
@ 2021-09-21 18:30  7% ` Gustavo A. R. Silva
  0 siblings, 0 replies; 200+ results
From: Gustavo A. R. Silva @ 2021-09-21 18:30 UTC (permalink / raw)
  To: Len Baker, Andrew Morton, Gustavo A. R. Silva, Kees Cook
  Cc: Miguel Ojeda, Nick Desaulniers, Nathan Chancellor,
	linux-hardening, linux-kernel



On 9/19/21 06:09, Len Baker 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 struct_size() helper to do the arithmetic instead of the
> argument "size + count * size" in the kmalloc() and kzalloc() functions.
> 
> Also, take the opportunity to refactor the memcpy() calls to use the
> struct_size() and flex_array_size() helpers.
> 
> [1] https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments
> 
> Signed-off-by: Len Baker <len.baker@gmx.com>

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

I'll add this to my -next tree.

Thanks
--
Gustavo

> ---
>  lib/assoc_array.c | 22 ++++++++++------------
>  1 file changed, 10 insertions(+), 12 deletions(-)
> 
> diff --git a/lib/assoc_array.c b/lib/assoc_array.c
> index 04c98799c3ba..079c72e26493 100644
> --- a/lib/assoc_array.c
> +++ b/lib/assoc_array.c
> @@ -741,8 +741,7 @@ static bool assoc_array_insert_into_terminal_node(struct assoc_array_edit *edit,
>  	keylen = round_up(diff, ASSOC_ARRAY_KEY_CHUNK_SIZE);
>  	keylen >>= ASSOC_ARRAY_KEY_CHUNK_SHIFT;
> 
> -	new_s0 = kzalloc(sizeof(struct assoc_array_shortcut) +
> -			 keylen * sizeof(unsigned long), GFP_KERNEL);
> +	new_s0 = kzalloc(struct_size(new_s0, index_key, keylen), GFP_KERNEL);
>  	if (!new_s0)
>  		return false;
>  	edit->new_meta[2] = assoc_array_shortcut_to_ptr(new_s0);
> @@ -849,8 +848,8 @@ static bool assoc_array_insert_mid_shortcut(struct assoc_array_edit *edit,
>  		keylen = round_up(diff, ASSOC_ARRAY_KEY_CHUNK_SIZE);
>  		keylen >>= ASSOC_ARRAY_KEY_CHUNK_SHIFT;
> 
> -		new_s0 = kzalloc(sizeof(struct assoc_array_shortcut) +
> -				 keylen * sizeof(unsigned long), GFP_KERNEL);
> +		new_s0 = kzalloc(struct_size(new_s0, index_key, keylen),
> +				 GFP_KERNEL);
>  		if (!new_s0)
>  			return false;
>  		edit->new_meta[1] = assoc_array_shortcut_to_ptr(new_s0);
> @@ -864,7 +863,7 @@ static bool assoc_array_insert_mid_shortcut(struct assoc_array_edit *edit,
>  		new_n0->parent_slot = 0;
> 
>  		memcpy(new_s0->index_key, shortcut->index_key,
> -		       keylen * sizeof(unsigned long));
> +		       flex_array_size(new_s0, index_key, keylen));
> 
>  		blank = ULONG_MAX << (diff & ASSOC_ARRAY_KEY_CHUNK_MASK);
>  		pr_devel("blank off [%zu] %d: %lx\n", keylen - 1, diff, blank);
> @@ -899,8 +898,8 @@ static bool assoc_array_insert_mid_shortcut(struct assoc_array_edit *edit,
>  		keylen = round_up(shortcut->skip_to_level, ASSOC_ARRAY_KEY_CHUNK_SIZE);
>  		keylen >>= ASSOC_ARRAY_KEY_CHUNK_SHIFT;
> 
> -		new_s1 = kzalloc(sizeof(struct assoc_array_shortcut) +
> -				 keylen * sizeof(unsigned long), GFP_KERNEL);
> +		new_s1 = kzalloc(struct_size(new_s1, index_key, keylen),
> +				 GFP_KERNEL);
>  		if (!new_s1)
>  			return false;
>  		edit->new_meta[2] = assoc_array_shortcut_to_ptr(new_s1);
> @@ -913,7 +912,7 @@ static bool assoc_array_insert_mid_shortcut(struct assoc_array_edit *edit,
>  		new_n0->slots[sc_slot] = assoc_array_shortcut_to_ptr(new_s1);
> 
>  		memcpy(new_s1->index_key, shortcut->index_key,
> -		       keylen * sizeof(unsigned long));
> +		       flex_array_size(new_s1, index_key, keylen));
> 
>  		edit->set[1].ptr = &side->back_pointer;
>  		edit->set[1].to = assoc_array_shortcut_to_ptr(new_s1);
> @@ -1490,13 +1489,12 @@ int assoc_array_gc(struct assoc_array *array,
>  		shortcut = assoc_array_ptr_to_shortcut(cursor);
>  		keylen = round_up(shortcut->skip_to_level, ASSOC_ARRAY_KEY_CHUNK_SIZE);
>  		keylen >>= ASSOC_ARRAY_KEY_CHUNK_SHIFT;
> -		new_s = kmalloc(sizeof(struct assoc_array_shortcut) +
> -				keylen * sizeof(unsigned long), GFP_KERNEL);
> +		new_s = kmalloc(struct_size(new_s, index_key, keylen),
> +				GFP_KERNEL);
>  		if (!new_s)
>  			goto enomem;
>  		pr_devel("dup shortcut %p -> %p\n", shortcut, new_s);
> -		memcpy(new_s, shortcut, (sizeof(struct assoc_array_shortcut) +
> -					 keylen * sizeof(unsigned long)));
> +		memcpy(new_s, shortcut, struct_size(new_s, index_key, keylen));
>  		new_s->back_pointer = new_parent;
>  		new_s->parent_slot = shortcut->parent_slot;
>  		*new_ptr_pp = new_parent = assoc_array_shortcut_to_ptr(new_s);
> --
> 2.25.1
> 

^ permalink raw reply	[relevance 7%]

* Re: [PATCH] nl80211: prefer struct_size over open coded arithmetic
  2021-09-19 11:40 12% [PATCH] nl80211: prefer struct_size over open coded arithmetic Len Baker
@ 2021-09-21 18:51  7% ` Gustavo A. R. Silva
  0 siblings, 0 replies; 200+ results
From: Gustavo A. R. Silva @ 2021-09-21 18:51 UTC (permalink / raw)
  To: Len Baker, Johannes Berg, David S. Miller, Jakub Kicinski
  Cc: Kees Cook, Gustavo A. R. Silva, linux-wireless, netdev,
	linux-hardening, linux-kernel



On 9/19/21 06:40, Len Baker 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 struct_size() helper to do the arithmetic instead of the
> argument "size + count * size" in the kzalloc() functions.
> 
> Also, take the opportunity to refactor the memcpy() call to use the
> flex_array_size() helper.
> 
> [1] https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments
> 
> Signed-off-by: Len Baker <len.baker@gmx.com>
> ---
>  net/wireless/nl80211.c | 12 ++++++------
>  1 file changed, 6 insertions(+), 6 deletions(-)
> 
> diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c
> index bf7cd4752547..b56856349ced 100644
> --- a/net/wireless/nl80211.c
> +++ b/net/wireless/nl80211.c
> @@ -11766,9 +11766,10 @@ static int nl80211_set_cqm_rssi(struct genl_info *info,
>  	wdev_lock(wdev);
>  	if (n_thresholds) {
>  		struct cfg80211_cqm_config *cqm_config;
> +		size_t size = struct_size(cqm_config, rssi_thresholds,
> +					  n_thresholds);
> 
> -		cqm_config = kzalloc(sizeof(struct cfg80211_cqm_config) +
> -				     n_thresholds * sizeof(s32), GFP_KERNEL);
> +		cqm_config = kzalloc(size, GFP_KERNEL);

I don't think variable _size_ is needed here; this is just fine:

-               cqm_config = kzalloc(sizeof(struct cfg80211_cqm_config) +
-                                    n_thresholds * sizeof(s32), GFP_KERNEL);
+               cqm_config = kzalloc(struct_size(cqm_config, rssi_thresholds,
+                                                n_thresholds), GFP_KERNEL);

Thanks
--
Gustavo

>  		if (!cqm_config) {
>  			err = -ENOMEM;
>  			goto unlock;
> @@ -11777,7 +11778,8 @@ static int nl80211_set_cqm_rssi(struct genl_info *info,
>  		cqm_config->rssi_hyst = hysteresis;
>  		cqm_config->n_rssi_thresholds = n_thresholds;
>  		memcpy(cqm_config->rssi_thresholds, thresholds,
> -		       n_thresholds * sizeof(s32));
> +		       flex_array_size(cqm_config, rssi_thresholds,
> +				       n_thresholds));
> 
>  		wdev->cqm_config = cqm_config;
>  	}
> @@ -15081,9 +15083,7 @@ static int nl80211_set_sar_specs(struct sk_buff *skb, struct genl_info *info)
>  	if (specs > rdev->wiphy.sar_capa->num_freq_ranges)
>  		return -EINVAL;
> 
> -	sar_spec = kzalloc(sizeof(*sar_spec) +
> -			   specs * sizeof(struct cfg80211_sar_sub_specs),
> -			   GFP_KERNEL);
> +	sar_spec = kzalloc(struct_size(sar_spec, sub_specs, specs), GFP_KERNEL);
>  	if (!sar_spec)
>  		return -ENOMEM;
> 
> --
> 2.25.1
> 

^ permalink raw reply	[relevance 7%]

* mmotm 2021-09-21-16-54 uploaded
@ 2021-09-21 23:54  3% akpm
  0 siblings, 0 replies; 200+ results
From: akpm @ 2021-09-21 23:54 UTC (permalink / raw)
  To: broonie, linux-fsdevel, linux-kernel, linux-mm, linux-next,
	mhocko, mm-commits, sfr

The mm-of-the-moment snapshot 2021-09-21-16-54 has been uploaded to

   https://www.ozlabs.org/~akpm/mmotm/

mmotm-readme.txt says

README for mm-of-the-moment:

https://www.ozlabs.org/~akpm/mmotm/

This is a snapshot of my -mm patch queue.  Uploaded at random hopefully
more than once a week.

You will need quilt to apply these patches to the latest Linus release (5.x
or 5.x-rcY).  The series file is in broken-out.tar.gz and is duplicated in
https://ozlabs.org/~akpm/mmotm/series

The file broken-out.tar.gz contains two datestamp files: .DATE and
.DATE-yyyy-mm-dd-hh-mm-ss.  Both contain the string yyyy-mm-dd-hh-mm-ss,
followed by the base kernel version against which this patch series is to
be applied.

This tree is partially included in linux-next.  To see which patches are
included in linux-next, consult the `series' file.  Only the patches
within the #NEXT_PATCHES_START/#NEXT_PATCHES_END markers are included in
linux-next.


A full copy of the full kernel tree with the linux-next and mmotm patches
already applied is available through git within an hour of the mmotm
release.  Individual mmotm releases are tagged.  The master branch always
points to the latest release, so it's constantly rebasing.

	https://github.com/hnaz/linux-mm

The directory https://www.ozlabs.org/~akpm/mmots/ (mm-of-the-second)
contains daily snapshots of the -mm tree.  It is updated more frequently
than mmotm, and is untested.

A git copy of this tree is also available at

	https://github.com/hnaz/linux-mm



This mmotm tree contains the following patches against 5.15-rc2:
(patches marked "*" will be included in linux-next)

  origin.patch
* mm-hwpoison-add-is_free_buddy_page-in-hwpoisonhandlable.patch
* kasan-fix-kconfig-check-of-cc_has_working_nosanitize_address.patch
* mm-damon-dont-use-strnlen-with-known-bogus-source-length.patch
* xtensa-increase-size-of-gcc-stack-frame-check.patch
* fix-judgment-error-in-shmem_is_huge.patch
* ocfs2-drop-acl-cache-for-directories-too.patch
* scripts-sorttable-riscv-fix-undelcred-identifier-em_riscv-error.patch
* tools-vm-page-types-remove-dependency-on-opt_file-for-idle-page-tracking.patch
* lib-zlib_inflate-inffast-check-config-in-c-to-avoid-unused-function-warning.patch
* mm-fs-invalidate-bh_lrus-for-only-cold-path.patch
* mm-debug-sync-up-mr_contig_range-and-mr_longterm_pin.patch
* mm-debug-sync-up-latest-migrate_reason-to-migrate_reason_names.patch
* proc-kpageflags-prevent-an-integer-overflow-in-stable_page_flags.patch
* proc-kpageflags-do-not-use-uninitialized-struct-pages.patch
* procfs-prevent-unpriveleged-processes-accessing-fdinfo-dir.patch
* scripts-spellingtxt-add-more-spellings-to-spellingtxt.patch
* ocfs2-fix-handle-refcount-leak-in-two-exception-handling-paths.patch
* ocfs2-reflink-deadlock-when-clone-file-to-the-same-directory-simultaneously.patch
* ocfs2-clear-links-count-in-ocfs2_mknod-if-an-error-occurs.patch
* ocfs2-fix-ocfs2-corrupt-when-iputting-an-inode.patch
  mm.patch
* mm-move-kvmalloc-related-functions-to-slabh.patch
* mm-slub-fix-two-bugs-in-slab_debug_trace_open.patch
* mm-slub-fix-mismatch-between-reconstructed-freelist-depth-and-cnt.patch
* mm-slub-fix-potential-memoryleak-in-kmem_cache_open.patch
* mm-slub-fix-potential-use-after-free-in-slab_debugfs_fops.patch
* mm-slub-fix-incorrect-memcg-slab-count-for-bulk-free.patch
* mm-dont-include-linux-daxh-in-linux-mempolicyh.patch
* compiler-attributes-add-__alloc_size-for-better-bounds-checking.patch
* compiler-attributes-add-__alloc_size-for-better-bounds-checking-fix.patch
* checkpatch-add-__alloc_size-to-known-attribute.patch
* slab-clean-up-function-declarations.patch
* slab-add-__alloc_size-attributes-for-better-bounds-checking.patch
* mm-page_alloc-add-__alloc_size-attributes-for-better-bounds-checking.patch
* percpu-add-__alloc_size-attributes-for-better-bounds-checking.patch
* mm-vmalloc-add-__alloc_size-attributes-for-better-bounds-checking.patch
* rapidio-avoid-bogus-__alloc_size-warning.patch
* mm-smaps-fix-shmem-pte-hole-swap-calculation.patch
* mm-smaps-use-vma-vm_pgoff-directly-when-counting-partial-swap.patch
* mm-smaps-simplify-shmem-handling-of-pte-holes.patch
* mm-remove-bogus-vm_bug_on.patch
* vfs-keep-inodes-with-page-cache-off-the-inode-shrinker-lru.patch
* mm-gup-further-simplify-__gup_device_huge.patch
* mm-swapfile-remove-needless-request_queue-null-pointer-check.patch
* mm-memcg-drop-swp_entry_t-in-mc_handle_file_pte.patch
* memcg-prohibit-unconditional-exceeding-the-limit-of-dying-tasks.patch
* mm-mmapc-fix-a-data-race-of-mm-total_vm.patch
* mm-use-__pfn_to_section-instead-of-open-coding-it.patch
* mm-memory-avoid-unnecessary-kernel-user-pointer-conversion.patch
* mm-shmem-unconditionally-set-pte-dirty-in-mfill_atomic_install_pte.patch
* mm-clear-vmf-pte-after-pte_unmap_same-returns.patch
* mm-drop-first_index-last_index-in-zap_details.patch
* mm-add-zap_skip_check_mapping-helper.patch
* mm-introduce-pmd_install-helper.patch
* mm-remove-redundant-smp_wmb.patch
* lazy-tlb-introduce-lazy-mm-refcount-helper-functions.patch
* lazy-tlb-allow-lazy-tlb-mm-refcounting-to-be-configurable.patch
* lazy-tlb-shoot-lazies-a-non-refcounting-lazy-tlb-option.patch
* powerpc-64s-enable-mmu_lazy_tlb_shootdown.patch
* mm-mremap-dont-account-pages-in-vma_to_resize.patch
* mm-vmalloc-repair-warn_allocs-in-__vmalloc_area_node.patch
* mm-vmalloc-dont-allow-vm_no_guard-on-vmap.patch
* kasan-test-add-memcpy-test-that-avoids-out-of-bounds-write.patch
* lib-stackdepot-include-gfph.patch
* lib-stackdepot-remove-unused-function-argument.patch
* lib-stackdepot-introduce-__stack_depot_save.patch
* kasan-common-provide-can_alloc-in-kasan_save_stack.patch
* kasan-generic-introduce-kasan_record_aux_stack_noalloc.patch
* workqueue-kasan-avoid-alloc_pages-when-recording-stack.patch
* mm-large-system-hash-avoid-possible-null-deref-in-alloc_large_system_hash.patch
* mm-page_allocc-remove-meaningless-vm_bug_on-in-pindex_to_order.patch
* mm-page_allocc-simplify-the-code-by-using-macro-k.patch
* mm-page_allocc-fix-obsolete-comment-in-free_pcppages_bulk.patch
* mm-page_allocc-use-helper-function-zone_spans_pfn.patch
* mm-page_allocc-avoid-allocating-highmem-pages-via-alloc_pages_exact.patch
* mm-page_alloc-print-node-fallback-order.patch
* mm-page_alloc-use-accumulated-load-when-building-node-fallback-list.patch
* mm-move-node_reclaim_distance-to-fix-numa-without-smp.patch
* mm-move-fold_vm_numa_events-to-fix-numa-without-smp.patch
* mm-fix-data-race-in-pagepoisoned.patch
* mm-hugetlb-drop-__unmap_hugepage_range-definition-from-hugetlbh.patch
* userfaultfd-selftests-fix-feature-support-detection.patch
* userfaultfd-selftests-fix-calculation-of-expected-ioctls.patch
* userfaultfd-selftests-dont-rely-on-gnu-extensions-for-random-numbers.patch
* mm-page_isolation-fix-potential-missing-call-to-unset_migratetype_isolate.patch
* mm-page_isolation-guard-against-possible-putback-unisolated-page.patch
* tools-vm-page_owner_sortc-count-and-sort-by-mem.patch
* mm-mempolicy-convert-from-atomic_t-to-refcount_t-on-mempolicy-refcnt.patch
* mm-mempolicy-convert-from-atomic_t-to-refcount_t-on-mempolicy-refcnt-fix.patch
* mm-mark-the-oom-reaper-thread-as-freezable.patch
* oom_kill-oom_score_adj-broken-for-processes-with-small-memory-usage.patch
* mmhugetlb-remove-mlock-ulimit-for-shm_hugetlb.patch
* mm-nommu-kill-arch_get_unmapped_area.patch
* selftest-vm-fix-ksm-selftest-to-run-with-different-numa-topologies.patch
* mm-vmstat-annotate-data-race-for-zone-free_areanr_free.patch
* mm-vmstat-annotate-data-race-for-zone-free_areanr_free-fix.patch
* mm-memory_hotplug-add-static-qualifier-for-online_policy_to_str.patch
* mm-memory_hotplug-make-hwpoisoned-dirty-swapcache-pages-unmovable.patch
* mm-rmap-convert-from-atomic_t-to-refcount_t-on-anon_vma-refcount.patch
* mm-zsmallocc-close-race-window-between-zs_pool_dec_isolated-and-zs_unregister_migration.patch
* mm-zsmallocc-combine-two-atomic-ops-in-zs_pool_dec_isolated.patch
* mm-highmem-remove-deprecated-kmap_atomic.patch
* zram_drv-allow-reclaim-on-bio_alloc.patch
* zram-off-by-one-in-read_block_state.patch
* mm-remove-hardened_usercopy_fallback.patch
* include-linux-mmh-move-nr_free_buffer_pages-from-swaph-to-mmh.patch
* mm-damon-grammar-s-works-work.patch
* documentation-vm-move-user-guides-to-admin-guide-mm.patch
* maintainers-update-seongjaes-email-address.patch
* docs-vm-damon-remove-broken-reference.patch
* include-linux-damonh-fix-kernel-doc-comments-for-damon_callback.patch
* mm-damon-core-print-kdamond-start-log-in-debug-mode-only.patch
* info-task-hung-in-generic_file_write_iter.patch
* info-task-hung-in-generic_file_write-fix.patch
* kernel-hung_taskc-monitor-killed-tasks.patch
* proc-sysctl-make-protected_-world-readable.patch
* lib-stackdepot-check-stackdepot-handle-before-accessing-slabs.patch
* lib-stackdepot-add-helper-to-print-stack-entries.patch
* lib-stackdepot-add-helper-to-print-stack-entries-into-buffer.patch
* lib-stackdepot-add-helper-to-print-stack-entries-into-buffer-v2.patch
* lib-stackdepot-add-helper-to-print-stack-entries-into-buffer-v3.patch
* binfmt_elf-reintroduce-using-map_fixed_noreplace.patch
* ramfs-fix-mount-source-show-for-ramfs.patch
* init-mainc-silence-some-wunused-parameter-warnings.patch
* coda-avoid-null-pointer-dereference-from-a-bad-inode.patch
* coda-check-for-async-upcall-request-using-local-state.patch
* coda-remove-err-which-no-one-care.patch
* coda-avoid-flagging-null-inodes.patch
* coda-avoid-hidden-code-duplication-in-rename.patch
* coda-avoid-doing-bad-things-on-inode-type-changes-during-revalidation.patch
* coda-convert-from-atomic_t-to-refcount_t-on-coda_vm_ops-refcnt.patch
* coda-use-vmemdup_user-to-replace-the-open-code.patch
* coda-bump-module-version-to-72.patch
* hfsplus-fix-out-of-bounds-warnings-in-__hfsplus_setxattr.patch
* unshare-use-swap-to-make-code-cleaner.patch
* kernel-resource-clean-up-and-optimize-iomem_is_exclusive.patch
* kernel-resource-disallow-access-to-exclusive-system-ram-regions.patch
* virtio-mem-disallow-mapping-virtio-mem-memory-via-dev-mem.patch
* ipc-check-checkpoint_restore_ns_capable-to-modify-c-r-proc-files.patch
* ipc-check-checkpoint_restore_ns_capable-to-modify-c-r-proc-files-fix.patch
* ipc-ipc_sysctlc-remove-fallback-for-config_proc_sysctl.patch
  linux-next.patch
* assoc_array-avoid-open-coded-arithmetic-in-allocator-arguments.patch
* mm-migrate-simplify-the-file-backed-pages-validation-when-migrating-its-mapping.patch
* mm-unexport-folio_memcg_unlock.patch
* mm-unexport-unlock_page_memcg.patch
  make-sure-nobodys-leaking-resources.patch
  releasing-resources-with-children.patch
  mutex-subsystem-synchro-test-module.patch
  kernel-forkc-export-kernel_thread-to-modules.patch
  workaround-for-a-pci-restoring-bug.patch

^ permalink raw reply	[relevance 3%]

* Re: [PATCH] scsi: elx: libefc: Prefer kcalloc over open coded arithmetic
  2021-09-05  6:24 12% [PATCH] scsi: elx: libefc: " Len Baker
  2021-09-07 16:55  7% ` James Smart
@ 2021-09-22  4:45 12% ` Martin K. Petersen
  1 sibling, 0 replies; 200+ results
From: Martin K. Petersen @ 2021-09-22  4:45 UTC (permalink / raw)
  To: Len Baker, James Smart, Ram Vegesna, James E.J. Bottomley
  Cc: Martin K . Petersen, linux-scsi, linux-kernel, Kees Cook,
	target-devel, linux-hardening, Hannes Reinecke

On Sun, 5 Sep 2021 08:24:48 +0200, Len Baker 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.
> 
> [...]

Applied to 5.16/scsi-queue, thanks!

[1/1] scsi: elx: libefc: Prefer kcalloc over open coded arithmetic
      https://git.kernel.org/mkp/scsi/c/0a5e20fc8ca7

-- 
Martin K. Petersen	Oracle Linux Engineering

^ permalink raw reply	[relevance 12%]

* linux-next: Tree for Sep 22
@ 2021-09-22  6:07  3% Stephen Rothwell
  0 siblings, 0 replies; 200+ results
From: Stephen Rothwell @ 2021-09-22  6:07 UTC (permalink / raw)
  To: Linux Next Mailing List; +Cc: Linux Kernel Mailing List

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

Hi all,

Changes since 20210921:

The drm-misc tree still had its build failure for which I reverted
3 commits.

The amdgpu tree lost its build failure.

The drm-intel tree gained a semantic conflict against the amdgpu tree
for which I applied a supplied patch.

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

The akpm tree lost a patch that turned up elsewhere.

Non-merge commits (relative to Linus' tree): 3166
 3216 files changed, 154003 insertions(+), 69535 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 are also quilt-import.log and merge.log
files 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, 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 337 trees (counting Linus' and 91 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 (92477dd1faa6 Merge tag 's390-5.15-ebpf-jit-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux)
Merging fixes/fixes (3ca706c189db drm/ttm: fix type mismatch error on sparc64)
Merging kbuild-current/fixes (0664684e1ebd kbuild: Add -Werror=ignored-optimization-argument to CLANG_FLAGS)
Merging arc-current/for-curr (6880fa6c5660 Linux 5.15-rc1)
Merging arm-current/fixes (463dbba4d189 ARM: 9104/2: Fix Keystone 2 kernel mapping regression)
Merging arm64-fixes/for-next/fixes (0e3dbf765fe2 kselftest/arm64: signal: Skip tests if required features are missing)
Merging arm-soc-fixes/arm/fixes (3f1c260ffddb MAINTAINERS: Add myself as MStar/Sigmastar Armv7 SoC maintainers)
Merging drivers-memory-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging m68k-current/for-linus (a7b68ed15d1f m68k: mvme: Remove overdue #warnings in RTC handling)
Merging powerpc-fixes/fixes (c006a06508db powerpc/xics: Set the IRQ chip data for the ICS native backend)
Merging s390-fixes/fixes (f5711f9df924 s390: remove WARN_DYNAMIC_STACK)
Merging sparc/master (05a59d79793d Merge git://git.kernel.org:/pub/scm/linux/kernel/git/netdev/net)
Merging fscrypt-current/for-stable (27c106addfcc fs-verity: fix signed integer overflow with i_size near S64_MAX)
Merging net/master (b3f98404bd62 Merge branch 'dsa-devres')
Merging bpf/master (bc23f7244817 bpf/tests: Add tail call limit test with external function call)
Merging ipsec/master (047a749d231e Merge branch 'xfrm: fix uapi for the default policy')
Merging netfilter/master (e9edc188fc76 netfilter: conntrack: serialize hash resizes and cleanups)
Merging ipvs/master (e9edc188fc76 netfilter: conntrack: serialize hash resizes and cleanups)
Merging wireless-drivers/master (91dab18f0df1 MAINTAINERS: Move Daniel Drake to credits)
Merging mac80211/master (36747c96ed49 Merge branch 'hns3-fixes')
Merging rdma-fixes/for-rc (ca465e1f1f9b RDMA/cma: Fix listener leak in rdma_cma_listen_on_all() failure)
Merging sound-current/for-linus (cb1bcf5ed536 ALSA: firewire-motu: fix truncated bytes in message tracepoints)
Merging sound-asoc-fixes/for-linus (e8e66cd16462 Merge remote-tracking branch 'asoc/for-5.15' into asoc-linus)
Merging regmap-fixes/for-linus (6880fa6c5660 Linux 5.15-rc1)
Merging regulator-fixes/for-linus (024a0383b3fa Merge remote-tracking branch 'regulator/for-5.15' into regulator-linus)
Merging spi-fixes/for-linus (1bac59c285f3 Merge remote-tracking branch 'spi/fix/modalias' into spi-linus)
CONFLICT (content): Merge conflict in drivers/spi/spi-tegra20-slink.c
Merging pci-current/for-linus (e4e737bb5c17 Linux 5.15-rc2)
Merging driver-core.current/driver-core-linus (2de9d8e0d2fe driver core: fw_devlink: Improve handling of cyclic dependencies)
Merging tty.current/tty-linus (7049d853cfb9 tty: unexport tty_ldisc_release)
Merging usb.current/usb-linus (517c7bf99bad usb: musb: tusb6010: uninitialized data in tusb_fifo_write_unaligned())
Merging usb-gadget-fixes/fixes (e49d033bddf5 Linux 5.12-rc6)
Merging usb-serial-fixes/usb-linus (1ca200a8c6f0 USB: serial: option: remove duplicate USB device ID)
Merging usb-chipidea-fixes/for-usb-fixes (98a1373a2de9 usb: cdns3: fix race condition before setting doorbell)
Merging phy/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging staging.current/staging-linus (aa3233ea7bdb staging: r8188eu: fix -Wrestrict warnings)
Merging iio-fixes/fixes-togreg (8167c9a375cc iio: ssp_sensors: add more range checking in ssp_parse_dataframe())
Merging char-misc.current/char-misc-linus (bb509a6ffed2 comedi: Fix memory leak in compat_insnlist())
Merging soundwire-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging thunderbolt-fixes/fixes (e4e737bb5c17 Linux 5.15-rc2)
Merging input-current/for-linus (0c5483a5778f Input: analog - always use ktime functions)
Merging crypto-current/master (6ae51ffe5e76 crypto: sha512 - remove imaginary and mystifying clearing of variables)
Merging vfio-fixes/for-linus (dc51ff91cf2d vfio/platform: fix module_put call in error flow)
Merging kselftest-fixes/fixes (f5013d412a43 selftests: kvm: fix get_run_delay() ignoring fscanf() return warn)
Merging modules-fixes/modules-linus (055f23b74b20 module: check for exit sections in layout_sections() instead of module_init_section())
Merging dmaengine-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging backlight-fixes/for-backlight-fixes (a38fd8748464 Linux 5.12-rc2)
Merging mtd-fixes/mtd/fixes (f60f5741002b mtd: rawnand: qcom: Update code word value for raw read)
Merging mfd-fixes/for-mfd-fixes (a61f4661fba4 mfd: intel_quark_i2c_gpio: Revert "Constify static struct resources")
Merging v4l-dvb-fixes/fixes (f0c15b360fb6 media: ir_toy: prevent device from hanging during transmit)
Merging reset-fixes/reset/fixes (ed104ca4bd9c reset: reset-zynqmp: Fixed the argument data type)
Merging mips-fixes/mips-fixes (6880fa6c5660 Linux 5.15-rc1)
Merging at91-fixes/at91-fixes (4348cc10da63 ARM: dts: at91: sama5d2_som1_ek: disable ISC node by default)
Merging omap-fixes/fixes (e879f855e590 bus: ti-sysc: Add break in switch statement in sysc_init_soc())
Merging kvm-fixes/master (e4e737bb5c17 Linux 5.15-rc2)
Merging kvms390-fixes/master (cd4220d23bf3 KVM: selftests: do not require 64GB in set_memory_region_test)
Merging hwmon-fixes/hwmon (e6fab7af6ba1 hwmon: (mlxreg-fan) Return non-zero value when fan current state is enforced from sysfs)
Merging nvdimm-fixes/libnvdimm-fixes (32b2397c1e56 libnvdimm/pmem: Fix crash triggered when I/O in-flight during unbind)
Merging cxl-fixes/fixes (fae8817ae804 cxl/mem: Fix memory device capacity probing)
Merging btrfs-fixes/next-fixes (45940091a3c1 Merge branch 'misc-5.15' into next-fixes)
Merging vfs-fixes/fixes (173e84953eaa fs: fix reporting supported extra file attributes for statx())
Merging dma-mapping-fixes/for-linus (18a3c5f7abfd Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost)
Merging i3c-fixes/i3c/fixes (fe07bfda2fb9 Linux 5.12-rc1)
Merging drivers-x86-fixes/fixes (6f6aab1caf6c platform/x86: gigabyte-wmi: add support for B550I Aorus Pro AX)
Merging samsung-krzk-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging pinctrl-samsung-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging devicetree-fixes/dt/linus (55c21d57eafb dt-bindings: arm: Fix Toradex compatible typo)
Merging scsi-fixes/fixes (1a0db7744e45 scsi: bsg: Fix device unregistration)
Merging drm-fixes/drm-fixes (e4e737bb5c17 Linux 5.15-rc2)
Merging amdgpu-fixes/drm-fixes (2c409ba81be2 drm/radeon: fix si_enable_smc_cac() failed issue)
Merging drm-intel-fixes/for-linux-next-fixes (b875fb313a10 drm/i915: Free all DMC payloads)
Merging mmc-fixes/fixes (b81bede4d138 mmc: renesas_sdhi: fix regression with hard reset on old SDHIs)
Merging rtc-fixes/rtc-fixes (bd33335aa93d rtc: cmos: Disable irq around direct invocation of cmos_interrupt())
Merging gnss-fixes/gnss-linus (e73f0f0ee754 Linux 5.14-rc1)
Merging hyperv-fixes/hyperv-fixes (dfb5c1e12c28 x86/hyperv: remove on-stack cpumask from hv_send_ipi_mask_allbutself)
Merging soc-fsl-fixes/fix (c1e64c0aec8c soc: fsl: qe: fix static checker warning)
Merging risc-v-fixes/fixes (7d2a07b76933 Linux 5.14)
Merging pidfd-fixes/fixes (03ba0fe4d09f file: simplify logic in __close_range())
Merging fpga-fixes/fixes (e9a9970bf520 fpga: dfl: Avoid reads to AFU CSRs during enumeration)
Merging spdx/spdx-linus (6880fa6c5660 Linux 5.15-rc1)
Merging gpio-brgl-fixes/gpio/for-current (6880fa6c5660 Linux 5.15-rc1)
Merging gpio-intel-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging pinctrl-intel-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging erofs-fixes/fixes (0852b6ca941e erofs: fix 1 lcluster-sized pcluster for big pcluster)
Merging integrity-fixes/fixes (843385694721 evm: Fix a small race in init_desc())
Merging kunit-fixes/kunit-fixes (6880fa6c5660 Linux 5.15-rc1)
Merging ubifs-fixes/fixes (78c7d49f55d8 ubifs: journal: Make sure to not dirty twice for auth nodes)
Merging memblock-fixes/fixes (024591f9a6e0 arm: ioremap: don't abuse pfn_valid() to check if pfn is in RAM)
Merging cel-fixes/for-rc (7d2a07b76933 Linux 5.14)
Merging irqchip-fixes/irq/irqchip-fixes (0ddc5e55e6f1 Documentation: Fix irq-domain.rst build warning)
Merging renesas-fixes/fixes (432b52eea3dc ARM: shmobile: defconfig: Restore graphical consoles)
Merging perf-current/perf/urgent (219d720e6df7 perf bpf: Ignore deprecation warning when using libbpf's btf__get_from_id())
Merging drm-misc-fixes/for-linux-next-fixes (5d7fa05c8f63 drm/nouveau/fifo/ga102: initialise chid on return from channel creation)
CONFLICT (content): Merge conflict in drivers/gpu/drm/vc4/vc4_hdmi.c
Merging kspp-gustavo/for-next/kspp (ad9ee403ca4d Merge branch 'for-next/clang-fallthrough' into for-next/kspp)
Merging kbuild/for-next (860091ee86e6 riscv: move the (z)install rules to arch/riscv/Makefile)
Merging perf/perf/core (8228e9361e2a perf parse-events: Avoid enum forward declaration.)
Merging compiler-attributes/compiler-attributes (b83a908498d6 compiler_attributes.h: move __compiletime_{error|warning})
Merging dma-mapping/for-next (59583f747664 sparc32: page align size in arch_dma_alloc)
Merging asm-generic/master (7962c2eddbfe arch: remove unused function syscall_set_arguments())
Merging arc/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging arm/for-next (4603664c0fe9 Merge branches 'fixes' and 'misc' into for-next)
Merging arm64/for-next/core (85f58eb18898 arm64: kdump: Skip kmemleak scan reserved memory for kdump)
Merging arm-perf/for-next/perf (fd264b310579 arm64/perf: Replace '0xf' instances with ID_AA64DFR0_PMUVER_IMP_DEF)
Merging arm-soc/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging actions/for-next (444d018d8d38 ARM: dts: owl-s500-roseapplepi: Add ATC2603C PMIC)
Merging amlogic/for-next (83e38509109e Merge branch 'v5.16/dt64' into for-next)
Merging aspeed/for-next (0f32f00af344 Merge branches 'dt-for-v5.15', 'soc-for-v5.15' and 'defconfig-for-v5.15' into for-next)
Merging at91/at91-next (8aff56d060f4 Merge branch 'at91-dt' into at91-next)
Merging drivers-memory/for-next (13324edbe926 memory: tegra186-emc: Handle errors in BPMP response)
Merging imx-mxs/for-next (2cb411d89676 Merge branch 'imx/defconfig' into for-next)
Merging keystone/next (cb293d3b430e Merge branch 'for_5.15/drivers-soc' into next)
Merging mediatek/for-next (69862ae4e378 Merge branch 'v5.14-next/soc' into for-next)
Merging mvebu/for-next (930af8dda750 Merge branch 'mvebu/dt64' into mvebu/for-next)
Merging omap/for-next (7911f95d1713 Merge branch 'fixes' into for-next)
Merging qcom/for-next (d47a2fb5730b Merge branches 'arm64-for-5.16', 'drivers-for-5.16' and 'dts-for-5.16' into for-next)
Merging raspberrypi/for-next (9f5289ec6f1c ARM: dts: bcm2711-rpi-4-b: Fix usb's unit address)
Merging renesas/next (41c50f42a51c Merge branches 'renesas-arm-dt-for-v5.16', 'renesas-drivers-for-v5.16' and 'renesas-dt-bindings-for-v5.16' into renesas-next)
Merging reset/reset/next (09f3824342f6 reset: simple: remove ZTE details in Kconfig help)
Merging rockchip/for-next (6092ed8fe34a Merge branch 'v5.16-clk/next' into for-next)
Merging samsung-krzk/for-next (1523dddcd195 Merge branch 'next/soc' into for-next)
Merging scmi/for-linux-next (34eae8520c88 Merge branch 'for-next/juno' of git://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux into for-linux-next)
Merging stm32/stm32-next (350081007916 ARM: dts: stm32: set the DCMI pins on stm32mp157c-odyssey)
Merging sunxi/sunxi/for-next (bb289f4c0b2b Merge branches 'sunxi/clk-for-5.16', 'sunxi/core-for-5.16', 'sunxi/drivers-for-5.16', 'sunxi/dt-for-5.16' and 'sunxi/fixes-for-5.15' into sunxi/for-next)
Merging tegra/for-next (cc701ccede61 Merge branch for-5.15/arm64/dt into for-next)
Merging ti-k3/ti-k3-next (1e3d655fe7b4 Merge branch 'ti-k3-config-next' into ti-k3-next)
Merging ti-k3-new/ti-k3-next (6037c75b193a arm64: dts: ti: k3-am65: Relocate thermal-zones to SoC specific location)
Merging xilinx/for-next (35a7430dad4d arm64: zynqmp: Wire psgtr for zc1751-xm013)
Merging clk/clk-next (1cbc04ffedcc Merge branch 'clk-mtk' into clk-next)
Merging clk-imx/for-next (1f4b035e603b clk: imx: Fix the build break when clk-imx8ulp build as module)
Merging clk-renesas/renesas-clk (8ac4aedcf7b3 clk: renesas: r8a779a0: Add TPU clock)
Merging clk-samsung/for-next (1d26eaeec37a clk: samsung: s5pv210-audss: Make use of devm_platform_ioremap_resource())
Merging csky/linux-next (90dc8c0e664e csky: Kconfig: Remove unused selects)
Merging h8300/h8300-next (1ec10274d436 h8300: don't implement set_fs)
Merging m68k/for-next (a7b68ed15d1f m68k: mvme: Remove overdue #warnings in RTC handling)
Merging m68knommu/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging microblaze/next (6880fa6c5660 Linux 5.15-rc1)
Merging mips/mips-next (6880fa6c5660 Linux 5.15-rc1)
Merging nds32/next (07cd7745c6f2 nds32/setup: remove unused memblock_region variable in setup_memory())
CONFLICT (content): Merge conflict in arch/nds32/Kconfig
Merging nios2/for-next (7f7bc20bc41a nios2: Don't use _end for calculating min_low_pfn)
Merging openrisc/for-next (1955d843efc3 openrisc/litex: Update defconfig)
Merging parisc-hd/for-next (e4e737bb5c17 Linux 5.15-rc2)
Merging powerpc/next (6880fa6c5660 Linux 5.15-rc1)
Merging soc-fsl/next (242b0b398ccd soc: fsl: enable acpi support in RCPM driver)
Merging risc-v/for-next (6f55ab36bef5 riscv: Move EXCEPTION_TABLE to RO_DATA segment)
Merging s390/for-next (9ec953c0a7e1 Merge branch 'fixes' into for-next)
Merging sh/for-next (12285ff8667b sh: kdump: add some attribute to function)
Merging sparc-next/master (dd0d718152e4 Merge tag 'spi-fix-v5.8-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi)
Merging uml/linux-next (234640275675 um: rename set_signals() to um_set_signals())
Merging xtensa/xtensa-for-next (7b7cec477fc3 xtensa: move core-y in arch/xtensa/Makefile to arch/xtensa/Kbuild)
Merging pidfd/for-next (f4dd02cd8631 Merge branch 'kernel.sys' into for-next)
Merging fscrypt/master (a2993db1807b fscrypt: allow 256-bit master keys with AES-256-XTS)
Merging fscache/fscache-next (97b85f2079a9 Merge branch 'fscache-iter-3' into fscache-next)
Merging afs/afs-next (7af08140979a Revert "gcov: clang: fix clang-11+ build")
Merging btrfs/for-next (e51480e6f4f8 Merge branch 'for-next-next-v5.15-20210913' into for-next-20210913)
Merging ceph/master (708c87168b61 ceph: fix off by one bugs in unsafe_request_wait())
Merging cifs/for-next (fdf507845879 Merge tag '5.15-rc1-smb3' of git://git.samba.org/sfrench/cifs-2.6)
Merging cifsd/cifsd-for-next (f38ba3190bed ksmbd: remove follow symlinks support)
Merging configfs/for-next (c42dd069be8d configfs: fix a race in configfs_lookup())
Merging ecryptfs/next (682a8e2b41ef Merge tag 'ecryptfs-5.13-rc1-updates' of git://git.kernel.org/pub/scm/linux/kernel/git/tyhicks/ecryptfs)
Merging erofs/dev (1266b4a7ecb6 erofs: fix double free of 'copied')
Merging exfat/dev (50be9417e23a Merge tag 'io_uring-5.14-2021-07-09' of git://git.kernel.dk/linux-block)
Merging ext3/for_next (ed518dd035fa Pull udf xattr sanity checks.)
Merging ext4/dev (948ca5f30e1d ext4: enforce buffer head state assertion in ext4_da_map_blocks)
Merging f2fs/dev (6663b138ded1 f2fs: set SBI_NEED_FSCK flag when inconsistent node block found)
Merging fsverity/fsverity (07c99001312c fs-verity: support reading signature with ioctl)
Merging fuse/for-next (7a41554fdfb0 fuse: move fuse_invalidate_attr() into fuse_update_ctime())
Merging gfs2/for-next (11603f0011d0 gfs2: Allow append and immutable bits to coexist)
Merging jfs/jfs-next (5d299f44d765 jfs: Avoid field-overflowing memcpy())
Merging nfs/linux-next (e4e737bb5c17 Linux 5.15-rc2)
Merging nfs-anna/linux-next (8cfb9015280d NFS: Always provide aligned buffers to the RPC read layers)
Merging nfsd/nfsd-next (e22ce8eb631b Linux 5.14-rc7)
Merging cel/for-next (02579b2ff8b0 nfsd: back channel stuck in SEQ4_STATUS_CB_PATH_DOWN)
Merging ntfs3/master (6354467245ff fs/ntfs3: Add sync flag to ntfs_sb_write_run and al_update)
Merging orangefs/for-next (0fdec1b3c9fb orangefs: fix orangefs df output.)
Merging overlayfs/overlayfs-next (332f606b32b6 ovl: enable RCU'd ->get_acl())
Merging ubifs/next (a801fcfeef96 ubifs: Set/Clear I_LINKABLE under i_lock for whiteout inode)
Merging v9fs/9p-next (9c4d94dc9a64 net/9p: increase default msize to 128k)
Merging xfs/for-next (f38a032b165d xfs: fix I_DONTCACHE)
Merging zonefs/for-next (95b115332a83 zonefs: remove redundant null bio check)
Merging iomap/iomap-for-next (03b8df8d43ec iomap: standardize tracepoint formatting and storage)
Merging djw-vfs/vfs-for-next (d03ef4daf33a fs: forbid invalid project ID)
Merging file-locks/locks-next (90f7d7a0d0d6 locks: remove LOCK_MAND flock lock support)
Merging vfs/for-next (8f40da9494cf Merge branch 'misc.namei' into for-next)
Merging printk/for-next (9980c4251f8d printk: use kvmalloc instead of kmalloc for devkmsg_user)
Merging pci/next (ef4bce990eab Merge branch 'pci/virtualization')
Merging pstore/for-next/pstore (c5d4fb2539ca pstore/blk: Use "%lu" to format unsigned long)
Merging hid/for-next (8ca10560f402 Merge branch 'for-5.15/upstream-fixes' into for-next)
Merging i2c/i2c/for-next (294b29f15469 i2c: xiic: Fix RX IRQ busy check)
Merging i3c/i3c/next (41a0430dd5ca i3c/master/mipi-i3c-hci: Prefer kcalloc over open coded arithmetic)
Merging dmi/dmi-for-next (f97a2103f1a7 firmware: dmi: Move product_sku info to the end of the modalias)
Merging hwmon-staging/hwmon-next (cd0b8e410937 hwmon: (nct6775) Support access via Asus WMI)
Merging jc_docs/docs-next (242f4c77b1c8 docs: zh_TW/index: Move arm64/index to arch-specific section)
Merging v4l-dvb/master (e4e737bb5c17 Linux 5.15-rc2)
Merging v4l-dvb-next/master (952aab37b121 Merge tag 'v5.15-rc2' into media_stage)
Applying: fix for "media: ir_toy: allow tx carrier to be set"
Merging pm/linux-next (163807478ffd Merge branch 'devprop' into linux-next)
Merging cpufreq-arm/cpufreq/arm/linux-next (4855e26bcf4d cpufreq: mediatek-hw: Add support for CPUFREQ HW)
Merging cpupower/cpupower (79a0dc5530a9 tools: cpupower: fix typo in cpupower-idle-set(1) manpage)
Merging devfreq/devfreq-next (6880fa6c5660 Linux 5.15-rc1)
Merging opp/opp/linux-next (94274f20f6bf dt-bindings: opp: Convert to DT schema)
Merging thermal/thermal/linux-next (fc26023f8816 thermal/drivers/int340x: Fix tcc offset on resume)
Merging ieee1394/for-next (54b3bd99f094 firewire: nosy: switch from 'pci_' to 'dma_' API)
Merging dlm/next (ecd95673142e fs: dlm: avoid comms shutdown delay in release_lockspace)
Merging swiotlb/linux-next (f3c4b1341e83 swiotlb: use depends on for DMA_RESTRICTED_POOL)
Merging rdma/for-next (ad17bbef3dd5 RDMA/rxe: remove the unnecessary variable)
Merging net-next/master (07b855628c22 net/ipv4/sysctl_net_ipv4.c: remove superfluous header files from sysctl_net_ipv4.c)
Merging bpf-next/for-next (cf8980a36235 samples: bpf: Convert ARP table network order fields into readable format)
Merging ipsec-next/master (9e9fb7655ed5 Merge tag 'net-next-5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next)
Merging mlx5-next/mlx5-next (6880fa6c5660 Linux 5.15-rc1)
Merging netfilter-next/master (13bb8429ca98 net: wwan: iosm: firmware flashing and coredump collection)
Merging ipvs-next/master (13bb8429ca98 net: wwan: iosm: firmware flashing and coredump collection)
Merging wireless-drivers-next/master (60fe1f8dcd3c rt2x00: remove duplicate USB device ID)
Merging bluetooth/master (24ff62ae383f Bluetooth: btusb: Add gpio reset way for qca btsoc in cmd_timeout)
Merging mac80211-next/master (14e94f9445a9 octeontx2-af: verify CQ context updates)
Merging mtd/mtd/next (b72841e4dcd5 mtd: mtdswap: Remove redundant assignment of pointer eb)
Merging nand/nand/next (46a0dc10fb32 mtd: rawnand: intel: Fix potential buffer overflow in probe)
Merging spi-nor/spi-nor/next (2734d6c1b1a0 Linux 5.14-rc2)
Merging crypto/master (a2d3cbc80d25 crypto: aesni - check walk.nbytes instead of err)
Merging drm/drm-next (6880fa6c5660 Linux 5.15-rc1)
Merging drm-misc/for-linux-next (56cd47b4705d MAINTAINERS: fix typo in DRM DRIVER FOR SAMSUNG S6D27A1 PANELS)
Applying: Revert "drm/vc4: dsi: Switch to devm_drm_of_get_bridge"
Applying: Revert "drm/vc4: dpi: Switch to devm_drm_of_get_bridge"
Applying: Revert "drm/bridge: Add a function to abstract away panels"
Merging amdgpu/drm-next (e2a5ed914342 drm/amd/display: Fix wrong format specifier in amdgpu_dm.c)
CONFLICT (content): Merge conflict in drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c
CONFLICT (content): Merge conflict in drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c
Merging drm-intel/for-linux-next (e01163e82b70 drm/i915/dg2: configure TRANS_DP2_VFREQ{HIGH,LOW} for 128b/132b)
Applying: fix for drm/dp: add LTTPR DP 2.0 DPCD addresses
Merging drm-tegra/drm/tegra/for-next (c3dbfb9c49ee gpu: host1x: Plug potential memory leak)
Merging drm-msm/msm-next (cb0927ab80d2 drm/msi/mdp4: populate priv->kms in mdp4_kms_init)
Merging imx-drm/imx-drm/next (20fbfc81e390 drm/imx: imx-tve: Make use of the helper function devm_platform_ioremap_resource())
Merging etnaviv/etnaviv/next (81fd23e2b3cc drm/etnaviv: Implement mmap as GEM object function)
Merging regmap/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging sound/for-next (f02f2f1bf9d1 ALSA: usx2y: Prefer struct_size over open coded arithmetic)
Merging sound-asoc/for-next (13e316ede5c2 Merge remote-tracking branch 'asoc/for-5.16' into asoc-next)
Merging modules/modules-next (ced75a2f5da7 MAINTAINERS: Add Luis Chamberlain as modules maintainer)
Merging input/next (09182ed20c04 Input: goodix - add support for controllers without flash)
Merging block/for-next (32ac44a96a8e Merge branch 'for-5.16/drivers' into for-next)
Merging device-mapper/for-next (d3703ef33129 dm crypt: use in_hardirq() instead of deprecated in_irq())
Merging libata/for-next (0e96dc47b95a ahci: remove duplicated PCI device IDs)
Merging pcmcia/pcmcia-next (e39cdacf2f66 pcmcia: i82092: fix a null pointer dereference bug)
Merging mmc/next (4ed8431c42ba Merge branch 'fixes' into next)
Merging mfd/for-mfd-next (cdff1eda6932 mfd: lpc_sch: Rename GPIOBASE to prevent build error)
Merging backlight/for-backlight-next (79fad92f2e59 backlight: pwm_bl: Improve bootloader/kernel device handover)
Merging battery/for-next (c9398455b046 power: supply: core: Fix parsing of battery chemistry/technology)
Merging regulator/for-next (09aef6aff450 Merge remote-tracking branch 'regulator/for-5.16' into regulator-next)
Merging security/next-testing (047843bdb316 Merge branch 'landlock_lsm_v34' into next-testing)
Merging apparmor/apparmor-next (d108370c644b apparmor: fix error check)
Merging integrity/next-integrity (836f7b6ca082 ima: fix deadlock when traversing "ima_default_rules".)
Merging keys/keys-next (e377c31f788f integrity: Load mokx variables into the blacklist keyring)
CONFLICT (content): Merge conflict in certs/system_keyring.c
Merging safesetid/safesetid-next (1b8b71922919 LSM: SafeSetID: Mark safesetid_initialized as __initdata)
Merging selinux/next (d9d8c93938c4 Smack: Brutalist io_uring support)
CONFLICT (content): Merge conflict in fs/io-wq.c
Merging smack/next (0817534ff9ea smackfs: Fix use-after-free in netlbl_catmap_walk())
Merging tomoyo/master (7d2a07b76933 Linux 5.14)
Merging tpmdd/next (f985911b7bc7 crypto: public_key: fix overflow during implicit conversion)
Merging watchdog/master (41e73feb1024 dt-bindings: watchdog: Add compatible for Mediatek MT7986)
Merging iommu/next (b58886bf14da Merge branch 'iommu/fixes' into next)
Merging audit/next (8e71168e2cc7 lsm_audit: avoid overloading the "key" audit field)
Merging devicetree/for-next (9ae54ce551e9 kbuild: Enable dtc 'unit_address_format' warning by default)
Merging mailbox/mailbox-for-next (85dfdbfc13ea mailbox: cmdq: add multi-gce clocks support for mt8195)
Merging spi/for-next (647282d9f864 Merge remote-tracking branch 'spi/for-5.16' into spi-next)
Merging tip/auto-latest (9bc19c975c7e Merge branch 'tip-master' into tip-auto-latest)
Merging clockevents/timers/drivers/next (f196ae282070 dt-bindings: timer: Add ABIs for new Ingenic SoCs)
Merging edac/edac-for-next (4646da896a44 Merge branch 'edac-urgent' into edac-for-next)
Merging irqchip/irq/irqchip-next (6e3b473ee064 Merge branch irq/qcom-pdc-nowake-cleanup into irq/irqchip-next)
Merging ftrace/for-next (5dfe50b05588 bootconfig: Rename xbc_node_find_child() to xbc_node_find_subkey())
Merging rcu/rcu/next (9c2eed2c4c24 rcu: Replace ________p1 and _________p1 with __UNIQUE_ID(rcu))
Merging kvm/next (109bbba5066b KVM: Drop unused kvm_dirty_gfn_invalid())
Merging kvm-arm/next (419025b3b419 Merge branch kvm-arm64/misc-5.15 into kvmarm-master/next)
Merging kvm-ppc/kvm-ppc-next (72476aaa4691 KVM: PPC: Book3S HV: Fix host radix SLB optimisation with hash guests)
Merging kvms390/next (a3e03bc1368c KVM: s390: index kvm->arch.idle_mask by vcpu_idx)
Merging xen-tip/linux-next (0594c58161b6 xen/x86: fix PV trap handling on secondary processors)
Merging percpu/for-next (a81a52b325ec Merge branch 'for-5.14-fixes' into for-next)
Merging workqueues/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging drivers-x86/for-next (f6045de1f532 platform/x86: amd-pmc: Export Idlemask values based on the APU)
Merging chrome-platform/for-next (5135b2139212 MAINTAINERS: Add Prashant's maintainership of cros_ec drivers)
Merging hsi/for-next (e73f0f0ee754 Linux 5.14-rc1)
Merging leds/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging ipmi/for-next (35f4caec9d51 ipmi: Disable some operations during a panic)
Merging driver-core/driver-core-next (820879ee1865 sysfs: simplify sysfs_kf_seq_show)
Merging usb/usb-next (577ee98932fb Revert "arm64: qcom: ipq6018: add usb3 DT description")
Merging usb-gadget/next (e49d033bddf5 Linux 5.12-rc6)
Merging usb-serial/usb-next (6400b9749104 USB: serial: allow hung up ports to be suspended)
Merging usb-chipidea-next/for-usb-next (78665f57c3fa usb: chipidea: udc: make controller hardware endpoint primed)
Merging tty/tty-next (b55c8aa6b1ab tty: moxa: merge moxa.h into moxa.c)
Merging char-misc/char-misc-next (d06246ebd773 scripts/tags.sh: Fix obsolete parameter for ctags)
Merging extcon/extcon-next (1a4bedc5305b extcon: extcon-axp288: Use P-Unit semaphore lock for register accesses)
Merging phy-next/next (6880fa6c5660 Linux 5.15-rc1)
Merging soundwire/next (6880fa6c5660 Linux 5.15-rc1)
Merging thunderbolt/next (e4e737bb5c17 Linux 5.15-rc2)
Merging vfio/next (ea870730d83f Merge branches 'v5.15/vfio/spdx-license-cleanups', 'v5.15/vfio/dma-valid-waited-v3', 'v5.15/vfio/vfio-pci-core-v5' and 'v5.15/vfio/vfio-ap' into v5.15/vfio/next)
Merging staging/staging-next (7bdedfef085b staging: r8188eu: Remove mp, a.k.a. manufacturing process, code)
CONFLICT (content): Merge conflict in drivers/staging/r8188eu/os_dep/ioctl_linux.c
Merging iio/togreg (55c45baaaf78 iio: adc: rockchip_saradc: Make use of the helper function devm_platform_ioremap_resource())
Merging mux/for-next (3516bd729358 Merge tag 's390-5.11-3' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux)
Merging icc/icc-next (13404ac8882f interconnect: qcom: sdm660: Add missing a2noc qos clocks)
Merging dmaengine/next (6880fa6c5660 Linux 5.15-rc1)
Merging cgroup/for-next (7ee285395b21 cgroup: Make rebind_subsystems() disable v2 controllers all at once)
Merging scsi/for-next (1a0db7744e45 scsi: bsg: Fix device unregistration)
Merging scsi-mkp/for-next (7e642ca0375b scsi: target: Remove unused function arguments)
Merging vhost/linux-next (be9c6bad9b46 vdpa: potential uninitialized return in vhost_vdpa_va_map())
Merging rpmsg/for-next (99fdaca991f7 Merge branches 'hwspinlock-next', 'rpmsg-next' and 'rproc-next' into for-next)
Merging gpio/for-next (7ac554888233 MAINTAINERS: Remove reference to non-existing file)
Merging gpio-brgl/gpio/for-next (3ea046564039 dt-bindings: gpio: add gpio-line-names to rockchip,gpio-bank.yaml)
Merging gpio-intel/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging pinctrl/for-next (788ac97efa94 Merge branch 'devel' into for-next)
Merging pinctrl-intel/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging pinctrl-renesas/renesas-pinctrl (075667cc6c29 pinctrl: renesas: No need to initialise global statics)
Merging pinctrl-samsung/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging pwm/for-next (3f2b16734914 pwm: mtk-disp: Implement atomic API .get_state())
Merging userns/for-next (a3be01837fc9 Merge of ucount-fixes-for-5.14, siginfo-si_trapno-for-v5.15, and exit-cleanups-for-v5.15 for testing in linux-next)
CONFLICT (content): Merge conflict in include/linux/sched/signal.h
Merging ktest/for-next (170f4869e662 ktest.pl: Fix the logic for truncating the size of the log file for email)
Merging kselftest/next (6880fa6c5660 Linux 5.15-rc1)
Merging livepatching/for-next (cd2d68f2d6b2 Merge branch 'for-5.15/cpu-hotplug' into for-next)
Merging coresight/next (1efbcec2ef8c coresight: cti: Reduce scope for the variable “cs_fwnode” in cti_plat_create_connection())
Merging rtc/rtc-next (6880fa6c5660 Linux 5.15-rc1)
Merging nvdimm/libnvdimm-for-next (bdd3c50d83bf dax: remove bdev_dax_supported)
Merging at24/at24/for-next (762925405482 dt-bindings: at24: add ON Semi CAT24C04 and CAT24C05)
Merging ntb/ntb-next (f96cb827ce49 ntb: ntb_pingpong: remove redundant initialization of variables msg_data and spad_data)
Merging seccomp/for-next/seccomp (b4d8a58f8dcf seccomp: Fix setting loaded filter count during TSYNC)
Merging kspp/for-next/kspp (0c91d23b6783 treewide: Replace 0-element memcpy() destinations with flexible arrays)
Merging cisco/for-next (9e98c678c2d6 Linux 5.1-rc1)
Merging gnss/gnss-next (0f79ce970e79 gnss: drop stray semicolons)
Merging fsi/next (9ab1428dfe2c fsi/sbefifo: Fix reset timeout)
Merging slimbus/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging nvmem/for-next (536267aafb8a nvmem: core: Add stubs for nvmem_cell_read_variable_le_u32/64 if !CONFIG_NVMEM)
Merging xarray/main (2c7e57a02708 idr test suite: Improve reporting from idr_find_test_1)
Merging hyperv/hyperv-next (9d68cd9120e4 hv_utils: Set the maximum packet size for VSS driver to the length of the receive buffer)
Merging auxdisplay/auxdisplay (24ebc044c72e auxdisplay: Replace symbolic permissions with octal permissions)
Merging kgdb/kgdb/for-next (f8416aa29185 kernel: debug: Convert to SPDX identifier)
Merging hmm/hmm (6880fa6c5660 Linux 5.15-rc1)
Merging fpga/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging kunit/test (6880fa6c5660 Linux 5.15-rc1)
Merging cfi/cfi/next (ff1176468d36 Linux 5.14-rc3)
Merging kunit-next/kunit (3b29021ddd10 kunit: tool: allow filtering test cases via glob)
Merging trivial/for-next (9ff9b0d392ea Merge tag 'net-next-5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next)
Merging mhi/mhi-next (813272ed5238 Merge 5.14-rc5 into char-misc-next)
Merging memblock/for-next (e888fa7bb882 memblock: Check memory add/cap ordering)
Merging init/init-user-pointers (38b082236e77 initramfs: use vfs_utimes in do_copy)
Merging counters/counters (e71ba9452f0b Linux 5.11-rc2)
Merging rust/rust-next (5d3986cf8ed6 MAINTAINERS: Rust)
CONFLICT (content): Merge conflict in include/linux/kallsyms.h
CONFLICT (content): Merge conflict in Makefile
Applying: fixup for rust integration with Makefile.clang creation
Merging cxl/next (ed97afb53365 cxl/pci: Disambiguate cxl_pci further from cxl_mem)
Merging folio/for-next (1a90e9dae32c mm/writeback: Add folio_write_one)
CONFLICT (content): Merge conflict in mm/util.c
CONFLICT (content): Merge conflict in mm/rmap.c
CONFLICT (content): Merge conflict in mm/page-writeback.c
CONFLICT (content): Merge conflict in mm/memcontrol.c
CONFLICT (content): Merge conflict in mm/filemap.c
CONFLICT (content): Merge conflict in include/linux/memcontrol.h
CONFLICT (modify/delete): fs/cachefiles/rdwr.c deleted in HEAD and modified in folio/for-next. Version folio/for-next of fs/cachefiles/rdwr.c left in tree.
$ git rm -f fs/cachefiles/rdwr.c
Applying: fix up for "9p: (untested) Convert to using the netfs helper lib to do reads and caching"
Merging akpm-current/current (84dda76fe9a8 ipc/ipc_sysctl.c: remove fallback for !CONFIG_PROC_SYSCTL)
$ git checkout -b akpm remotes/origin/akpm/master
$ git rebase --onto master remotes/origin/akpm/master-base
dropping fcd0bb3538e9b2686c5c8f5a0fee49393fb039d9 assoc_array: avoid open coded arithmetic in allocator arguments -- patch contents already upstream
Merging akpm/master (ba7e7ae62883 mm: unexport {,un}lock_page_memcg)

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

^ permalink raw reply	[relevance 3%]

* linux-next: Tree for Sep 23
@ 2021-09-23  5:09  2% Stephen Rothwell
  0 siblings, 0 replies; 200+ results
From: Stephen Rothwell @ 2021-09-23  5:09 UTC (permalink / raw)
  To: Linux Next Mailing List; +Cc: Linux Kernel Mailing List

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

Hi all,

Changes since 20210922:

The drm-misc tree lost its build failure.

Non-merge commits (relative to Linus' tree): 3336
 3413 files changed, 158646 insertions(+), 71471 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 are also quilt-import.log and merge.log
files 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, 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 337 trees (counting Linus' and 91 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 (58e2cf5d7946 init: Revert accidental changes to print irqs_disabled())
Merging fixes/fixes (3ca706c189db drm/ttm: fix type mismatch error on sparc64)
Merging kbuild-current/fixes (0664684e1ebd kbuild: Add -Werror=ignored-optimization-argument to CLANG_FLAGS)
Merging arc-current/for-curr (6880fa6c5660 Linux 5.15-rc1)
Merging arm-current/fixes (463dbba4d189 ARM: 9104/2: Fix Keystone 2 kernel mapping regression)
Merging arm64-fixes/for-next/fixes (0e3dbf765fe2 kselftest/arm64: signal: Skip tests if required features are missing)
Merging arm-soc-fixes/arm/fixes (3f1c260ffddb MAINTAINERS: Add myself as MStar/Sigmastar Armv7 SoC maintainers)
Merging drivers-memory-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging m68k-current/for-linus (a7b68ed15d1f m68k: mvme: Remove overdue #warnings in RTC handling)
Merging powerpc-fixes/fixes (c006a06508db powerpc/xics: Set the IRQ chip data for the ICS native backend)
Merging s390-fixes/fixes (f5711f9df924 s390: remove WARN_DYNAMIC_STACK)
Merging sparc/master (05a59d79793d Merge git://git.kernel.org:/pub/scm/linux/kernel/git/netdev/net)
Merging fscrypt-current/for-stable (80f6e3080bfc fs-verity: fix signed integer overflow with i_size near S64_MAX)
Merging net/master (977d293e23b4 mptcp: ensure tx skbs always have the MPTCP ext)
Merging bpf/master (7c3a00911b3d bpf: Exempt CAP_BPF from checks against bpf_jit_limit)
Merging ipsec/master (047a749d231e Merge branch 'xfrm: fix uapi for the default policy')
Merging netfilter/master (e9edc188fc76 netfilter: conntrack: serialize hash resizes and cleanups)
Merging ipvs/master (e9edc188fc76 netfilter: conntrack: serialize hash resizes and cleanups)
Merging wireless-drivers/master (91dab18f0df1 MAINTAINERS: Move Daniel Drake to credits)
Merging mac80211/master (36747c96ed49 Merge branch 'hns3-fixes')
Merging rdma-fixes/for-rc (9f7fa37a6bd9 RDMA/irdma: Report correct WC error when there are MW bind errors)
Merging sound-current/for-linus (cb1bcf5ed536 ALSA: firewire-motu: fix truncated bytes in message tracepoints)
Merging sound-asoc-fixes/for-linus (dc8126121d79 Merge remote-tracking branch 'asoc/for-5.15' into asoc-linus)
Merging regmap-fixes/for-linus (6880fa6c5660 Linux 5.15-rc1)
Merging regulator-fixes/for-linus (f03bf748cb6e Merge remote-tracking branch 'regulator/for-5.15' into regulator-linus)
Merging spi-fixes/for-linus (7dd4ea8ced6c Merge remote-tracking branch 'spi/fix/modalias' into spi-linus)
CONFLICT (content): Merge conflict in drivers/spi/spi-tegra20-slink.c
Merging pci-current/for-linus (e4e737bb5c17 Linux 5.15-rc2)
Merging driver-core.current/driver-core-linus (2de9d8e0d2fe driver core: fw_devlink: Improve handling of cyclic dependencies)
Merging tty.current/tty-linus (7049d853cfb9 tty: unexport tty_ldisc_release)
Merging usb.current/usb-linus (f7d848e0fdfa MAINTAINERS: usb, update Peter Korsgaard's entries)
Merging usb-gadget-fixes/fixes (e49d033bddf5 Linux 5.12-rc6)
Merging usb-serial-fixes/usb-linus (1ca200a8c6f0 USB: serial: option: remove duplicate USB device ID)
Merging usb-chipidea-fixes/for-usb-fixes (98a1373a2de9 usb: cdns3: fix race condition before setting doorbell)
Merging phy/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging staging.current/staging-linus (aa3233ea7bdb staging: r8188eu: fix -Wrestrict warnings)
Merging iio-fixes/fixes-togreg (8167c9a375cc iio: ssp_sensors: add more range checking in ssp_parse_dataframe())
Merging char-misc.current/char-misc-linus (bb509a6ffed2 comedi: Fix memory leak in compat_insnlist())
Merging soundwire-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging thunderbolt-fixes/fixes (e4e737bb5c17 Linux 5.15-rc2)
Merging input-current/for-linus (0c5483a5778f Input: analog - always use ktime functions)
Merging crypto-current/master (6ae51ffe5e76 crypto: sha512 - remove imaginary and mystifying clearing of variables)
Merging vfio-fixes/for-linus (dc51ff91cf2d vfio/platform: fix module_put call in error flow)
Merging kselftest-fixes/fixes (f5013d412a43 selftests: kvm: fix get_run_delay() ignoring fscanf() return warn)
Merging modules-fixes/modules-linus (055f23b74b20 module: check for exit sections in layout_sections() instead of module_init_section())
Merging dmaengine-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging backlight-fixes/for-backlight-fixes (a38fd8748464 Linux 5.12-rc2)
Merging mtd-fixes/mtd/fixes (f60f5741002b mtd: rawnand: qcom: Update code word value for raw read)
Merging mfd-fixes/for-mfd-fixes (a61f4661fba4 mfd: intel_quark_i2c_gpio: Revert "Constify static struct resources")
Merging v4l-dvb-fixes/fixes (f0c15b360fb6 media: ir_toy: prevent device from hanging during transmit)
Merging reset-fixes/reset/fixes (ed104ca4bd9c reset: reset-zynqmp: Fixed the argument data type)
Merging mips-fixes/mips-fixes (6880fa6c5660 Linux 5.15-rc1)
Merging at91-fixes/at91-fixes (4348cc10da63 ARM: dts: at91: sama5d2_som1_ek: disable ISC node by default)
Merging omap-fixes/fixes (e879f855e590 bus: ti-sysc: Add break in switch statement in sysc_init_soc())
Merging kvm-fixes/master (2da4a23599c2 KVM: selftests: Remove __NR_userfaultfd syscall fallback)
Merging kvms390-fixes/master (cd4220d23bf3 KVM: selftests: do not require 64GB in set_memory_region_test)
Merging hwmon-fixes/hwmon (e6fab7af6ba1 hwmon: (mlxreg-fan) Return non-zero value when fan current state is enforced from sysfs)
Merging nvdimm-fixes/libnvdimm-fixes (32b2397c1e56 libnvdimm/pmem: Fix crash triggered when I/O in-flight during unbind)
Merging cxl-fixes/fixes (fae8817ae804 cxl/mem: Fix memory device capacity probing)
Merging btrfs-fixes/next-fixes (45940091a3c1 Merge branch 'misc-5.15' into next-fixes)
Merging vfs-fixes/fixes (173e84953eaa fs: fix reporting supported extra file attributes for statx())
Merging dma-mapping-fixes/for-linus (18a3c5f7abfd Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost)
Merging i3c-fixes/i3c/fixes (fe07bfda2fb9 Linux 5.12-rc1)
Merging drivers-x86-fixes/fixes (6f6aab1caf6c platform/x86: gigabyte-wmi: add support for B550I Aorus Pro AX)
Merging samsung-krzk-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging pinctrl-samsung-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging devicetree-fixes/dt/linus (55c21d57eafb dt-bindings: arm: Fix Toradex compatible typo)
Merging scsi-fixes/fixes (fbdac19e6428 scsi: ses: Retry failed Send/Receive Diagnostic commands)
Merging drm-fixes/drm-fixes (e4e737bb5c17 Linux 5.15-rc2)
Merging amdgpu-fixes/drm-fixes (2c409ba81be2 drm/radeon: fix si_enable_smc_cac() failed issue)
Merging drm-intel-fixes/for-linux-next-fixes (b875fb313a10 drm/i915: Free all DMC payloads)
Merging mmc-fixes/fixes (b81bede4d138 mmc: renesas_sdhi: fix regression with hard reset on old SDHIs)
Merging rtc-fixes/rtc-fixes (bd33335aa93d rtc: cmos: Disable irq around direct invocation of cmos_interrupt())
Merging gnss-fixes/gnss-linus (e73f0f0ee754 Linux 5.14-rc1)
Merging hyperv-fixes/hyperv-fixes (dfb5c1e12c28 x86/hyperv: remove on-stack cpumask from hv_send_ipi_mask_allbutself)
Merging soc-fsl-fixes/fix (c1e64c0aec8c soc: fsl: qe: fix static checker warning)
Merging risc-v-fixes/fixes (7d2a07b76933 Linux 5.14)
Merging pidfd-fixes/fixes (03ba0fe4d09f file: simplify logic in __close_range())
Merging fpga-fixes/fixes (e9a9970bf520 fpga: dfl: Avoid reads to AFU CSRs during enumeration)
Merging spdx/spdx-linus (6880fa6c5660 Linux 5.15-rc1)
Merging gpio-brgl-fixes/gpio/for-current (b22a4705e2e6 gpio/rockchip: fix get_direction value handling)
Merging gpio-intel-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging pinctrl-intel-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging erofs-fixes/fixes (0852b6ca941e erofs: fix 1 lcluster-sized pcluster for big pcluster)
Merging integrity-fixes/fixes (843385694721 evm: Fix a small race in init_desc())
Merging kunit-fixes/kunit-fixes (6880fa6c5660 Linux 5.15-rc1)
Merging ubifs-fixes/fixes (78c7d49f55d8 ubifs: journal: Make sure to not dirty twice for auth nodes)
Merging memblock-fixes/fixes (024591f9a6e0 arm: ioremap: don't abuse pfn_valid() to check if pfn is in RAM)
Merging cel-fixes/for-rc (7d2a07b76933 Linux 5.14)
Merging irqchip-fixes/irq/irqchip-fixes (b78f26926b17 irqchip/gic: Work around broken Renesas integration)
Merging renesas-fixes/fixes (432b52eea3dc ARM: shmobile: defconfig: Restore graphical consoles)
Merging perf-current/perf/urgent (219d720e6df7 perf bpf: Ignore deprecation warning when using libbpf's btf__get_from_id())
Merging drm-misc-fixes/for-linux-next-fixes (3027c77774ac dt-bindings: panel: ili9341: correct indentation)
CONFLICT (content): Merge conflict in drivers/gpu/drm/vc4/vc4_hdmi.c
Merging kspp-gustavo/for-next/kspp (ad9ee403ca4d Merge branch 'for-next/clang-fallthrough' into for-next/kspp)
Merging kbuild/for-next (90a353491e9f kbuild: reuse $(cmd_objtool) for cmd_cc_lto_link_modules)
Merging perf/perf/core (8228e9361e2a perf parse-events: Avoid enum forward declaration.)
Merging compiler-attributes/compiler-attributes (b83a908498d6 compiler_attributes.h: move __compiletime_{error|warning})
Merging dma-mapping/for-next (59583f747664 sparc32: page align size in arch_dma_alloc)
Merging asm-generic/master (7962c2eddbfe arch: remove unused function syscall_set_arguments())
Merging arc/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging arm/for-next (4603664c0fe9 Merge branches 'fixes' and 'misc' into for-next)
Merging arm64/for-next/core (85f58eb18898 arm64: kdump: Skip kmemleak scan reserved memory for kdump)
Merging arm-perf/for-next/perf (fd264b310579 arm64/perf: Replace '0xf' instances with ID_AA64DFR0_PMUVER_IMP_DEF)
Merging arm-soc/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging actions/for-next (444d018d8d38 ARM: dts: owl-s500-roseapplepi: Add ATC2603C PMIC)
Merging amlogic/for-next (83e38509109e Merge branch 'v5.16/dt64' into for-next)
Merging aspeed/for-next (e986277a56da Merge branches 'defconfig-for-v5.16' and 'dt-for-v5.16' into for-next)
Merging at91/at91-next (8aff56d060f4 Merge branch 'at91-dt' into at91-next)
Merging drivers-memory/for-next (6e3caf0babab Merge branch 'for-v5.16/mtk-smi' into for-next)
Merging imx-mxs/for-next (0dd3273df8c2 Merge branch 'imx/dt64' into for-next)
Merging keystone/next (cb293d3b430e Merge branch 'for_5.15/drivers-soc' into next)
Merging mediatek/for-next (69862ae4e378 Merge branch 'v5.14-next/soc' into for-next)
Merging mvebu/for-next (930af8dda750 Merge branch 'mvebu/dt64' into mvebu/for-next)
Merging omap/for-next (7911f95d1713 Merge branch 'fixes' into for-next)
Merging qcom/for-next (97ba6e8f4279 Merge branches 'arm64-for-5.16', 'drivers-for-5.16' and 'dts-for-5.16' into for-next)
Merging raspberrypi/for-next (9f5289ec6f1c ARM: dts: bcm2711-rpi-4-b: Fix usb's unit address)
Merging renesas/next (41c50f42a51c Merge branches 'renesas-arm-dt-for-v5.16', 'renesas-drivers-for-v5.16' and 'renesas-dt-bindings-for-v5.16' into renesas-next)
Merging reset/reset/next (09f3824342f6 reset: simple: remove ZTE details in Kconfig help)
Merging rockchip/for-next (6092ed8fe34a Merge branch 'v5.16-clk/next' into for-next)
Merging samsung-krzk/for-next (1523dddcd195 Merge branch 'next/soc' into for-next)
Merging scmi/for-linux-next (e267aa073ab0 Merge branch 'for-next/scmi' of git://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux into for-linux-next)
Merging stm32/stm32-next (350081007916 ARM: dts: stm32: set the DCMI pins on stm32mp157c-odyssey)
Merging sunxi/sunxi/for-next (bb289f4c0b2b Merge branches 'sunxi/clk-for-5.16', 'sunxi/core-for-5.16', 'sunxi/drivers-for-5.16', 'sunxi/dt-for-5.16' and 'sunxi/fixes-for-5.15' into sunxi/for-next)
Merging tegra/for-next (cc701ccede61 Merge branch for-5.15/arm64/dt into for-next)
Merging ti-k3/ti-k3-next (1e3d655fe7b4 Merge branch 'ti-k3-config-next' into ti-k3-next)
Merging ti-k3-new/ti-k3-next (6037c75b193a arm64: dts: ti: k3-am65: Relocate thermal-zones to SoC specific location)
Merging xilinx/for-next (35a7430dad4d arm64: zynqmp: Wire psgtr for zc1751-xm013)
Merging clk/clk-next (1cbc04ffedcc Merge branch 'clk-mtk' into clk-next)
Merging clk-imx/for-next (1f4b035e603b clk: imx: Fix the build break when clk-imx8ulp build as module)
Merging clk-renesas/renesas-clk (8ac4aedcf7b3 clk: renesas: r8a779a0: Add TPU clock)
Merging clk-samsung/for-next (1d26eaeec37a clk: samsung: s5pv210-audss: Make use of devm_platform_ioremap_resource())
Merging csky/linux-next (90dc8c0e664e csky: Kconfig: Remove unused selects)
Merging h8300/h8300-next (1ec10274d436 h8300: don't implement set_fs)
Merging m68k/for-next (a7b68ed15d1f m68k: mvme: Remove overdue #warnings in RTC handling)
Merging m68knommu/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging microblaze/next (6880fa6c5660 Linux 5.15-rc1)
Merging mips/mips-next (6880fa6c5660 Linux 5.15-rc1)
Merging nds32/next (07cd7745c6f2 nds32/setup: remove unused memblock_region variable in setup_memory())
CONFLICT (content): Merge conflict in arch/nds32/Kconfig
Merging nios2/for-next (7f7bc20bc41a nios2: Don't use _end for calculating min_low_pfn)
Merging openrisc/for-next (1955d843efc3 openrisc/litex: Update defconfig)
Merging parisc-hd/for-next (e4e737bb5c17 Linux 5.15-rc2)
Merging powerpc/next (6880fa6c5660 Linux 5.15-rc1)
Merging soc-fsl/next (242b0b398ccd soc: fsl: enable acpi support in RCPM driver)
Merging risc-v/for-next (6f55ab36bef5 riscv: Move EXCEPTION_TABLE to RO_DATA segment)
Merging s390/for-next (9ec953c0a7e1 Merge branch 'fixes' into for-next)
Merging sh/for-next (12285ff8667b sh: kdump: add some attribute to function)
Merging sparc-next/master (dd0d718152e4 Merge tag 'spi-fix-v5.8-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi)
Merging uml/linux-next (234640275675 um: rename set_signals() to um_set_signals())
Merging xtensa/xtensa-for-next (7b7cec477fc3 xtensa: move core-y in arch/xtensa/Makefile to arch/xtensa/Kbuild)
Merging pidfd/for-next (f4dd02cd8631 Merge branch 'kernel.sys' into for-next)
Merging fscrypt/master (7f595d6a6cdc fscrypt: allow 256-bit master keys with AES-256-XTS)
Merging fscache/fscache-next (97b85f2079a9 Merge branch 'fscache-iter-3' into fscache-next)
Merging afs/afs-next (7af08140979a Revert "gcov: clang: fix clang-11+ build")
Merging btrfs/for-next (e51480e6f4f8 Merge branch 'for-next-next-v5.15-20210913' into for-next-20210913)
Merging ceph/master (708c87168b61 ceph: fix off by one bugs in unsafe_request_wait())
Merging cifs/for-next (e946d3c887a9 cifs: fix a sign extension bug)
Merging cifsd/cifsd-for-next (e6201b4a0bac ksmbd: add request buffer validation in smb2_set_info)
Merging configfs/for-next (c42dd069be8d configfs: fix a race in configfs_lookup())
Merging ecryptfs/next (682a8e2b41ef Merge tag 'ecryptfs-5.13-rc1-updates' of git://git.kernel.org/pub/scm/linux/kernel/git/tyhicks/ecryptfs)
Merging erofs/dev (1266b4a7ecb6 erofs: fix double free of 'copied')
Merging exfat/dev (50be9417e23a Merge tag 'io_uring-5.14-2021-07-09' of git://git.kernel.dk/linux-block)
Merging ext3/for_next (372d1f3e1bfe ext2: fix sleeping in atomic bugs on error)
Merging ext4/dev (948ca5f30e1d ext4: enforce buffer head state assertion in ext4_da_map_blocks)
Merging f2fs/dev (6663b138ded1 f2fs: set SBI_NEED_FSCK flag when inconsistent node block found)
Merging fsverity/fsverity (07c99001312c fs-verity: support reading signature with ioctl)
Merging fuse/for-next (7a41554fdfb0 fuse: move fuse_invalidate_attr() into fuse_update_ctime())
Merging gfs2/for-next (11603f0011d0 gfs2: Allow append and immutable bits to coexist)
Merging jfs/jfs-next (5d299f44d765 jfs: Avoid field-overflowing memcpy())
Merging nfs/linux-next (e4e737bb5c17 Linux 5.15-rc2)
Merging nfs-anna/linux-next (8cfb9015280d NFS: Always provide aligned buffers to the RPC read layers)
Merging nfsd/nfsd-next (8847ecc9274a NFSD: Optimize DRC bucket pruning)
Merging cel/for-next (02579b2ff8b0 nfsd: back channel stuck in SEQ4_STATUS_CB_PATH_DOWN)
Merging ntfs3/master (6354467245ff fs/ntfs3: Add sync flag to ntfs_sb_write_run and al_update)
Merging orangefs/for-next (0fdec1b3c9fb orangefs: fix orangefs df output.)
Merging overlayfs/overlayfs-next (332f606b32b6 ovl: enable RCU'd ->get_acl())
Merging ubifs/next (a801fcfeef96 ubifs: Set/Clear I_LINKABLE under i_lock for whiteout inode)
Merging v9fs/9p-next (9c4d94dc9a64 net/9p: increase default msize to 128k)
Merging xfs/for-next (f38a032b165d xfs: fix I_DONTCACHE)
Merging zonefs/for-next (95b115332a83 zonefs: remove redundant null bio check)
Merging iomap/iomap-for-next (03b8df8d43ec iomap: standardize tracepoint formatting and storage)
Merging djw-vfs/vfs-for-next (d03ef4daf33a fs: forbid invalid project ID)
Merging file-locks/locks-next (90f7d7a0d0d6 locks: remove LOCK_MAND flock lock support)
Merging vfs/for-next (8f40da9494cf Merge branch 'misc.namei' into for-next)
Merging printk/for-next (9980c4251f8d printk: use kvmalloc instead of kmalloc for devkmsg_user)
Merging pci/next (ef4bce990eab Merge branch 'pci/virtualization')
Merging pstore/for-next/pstore (c5d4fb2539ca pstore/blk: Use "%lu" to format unsigned long)
Merging hid/for-next (433afb16be43 Merge branch 'for-5.16/xiaomi' into for-next)
Merging i2c/i2c/for-next (294b29f15469 i2c: xiic: Fix RX IRQ busy check)
Merging i3c/i3c/next (41a0430dd5ca i3c/master/mipi-i3c-hci: Prefer kcalloc over open coded arithmetic)
Merging dmi/dmi-for-next (f97a2103f1a7 firmware: dmi: Move product_sku info to the end of the modalias)
Merging hwmon-staging/hwmon-next (cd0b8e410937 hwmon: (nct6775) Support access via Asus WMI)
Merging jc_docs/docs-next (946c8fee6d6e Documentation: Update SeongJae's email address)
Merging v4l-dvb/master (e4e737bb5c17 Linux 5.15-rc2)
Merging v4l-dvb-next/master (952aab37b121 Merge tag 'v5.15-rc2' into media_stage)
Applying: fix for "media: ir_toy: allow tx carrier to be set"
Merging pm/linux-next (163807478ffd Merge branch 'devprop' into linux-next)
Merging cpufreq-arm/cpufreq/arm/linux-next (4855e26bcf4d cpufreq: mediatek-hw: Add support for CPUFREQ HW)
Merging cpupower/cpupower (79a0dc5530a9 tools: cpupower: fix typo in cpupower-idle-set(1) manpage)
Merging devfreq/devfreq-next (7f6490afc97f devfreq: exynos-ppmu: simplify parsing event-type from DT)
Merging opp/opp/linux-next (94274f20f6bf dt-bindings: opp: Convert to DT schema)
Merging thermal/thermal/linux-next (fc26023f8816 thermal/drivers/int340x: Fix tcc offset on resume)
Merging ieee1394/for-next (54b3bd99f094 firewire: nosy: switch from 'pci_' to 'dma_' API)
Merging dlm/next (ecd95673142e fs: dlm: avoid comms shutdown delay in release_lockspace)
Merging swiotlb/linux-next (f3c4b1341e83 swiotlb: use depends on for DMA_RESTRICTED_POOL)
Merging rdma/for-next (6bda39149d4b RDMA/bnxt_re: Check if the vlan is valid before reporting)
Merging net-next/master (428168f99517 Merge branch 'mlxsw-trap-adjacency')
Merging bpf-next/for-next (c86216bc96aa bpf: Document BPF licensing.)
Merging ipsec-next/master (9e9fb7655ed5 Merge tag 'net-next-5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next)
Merging mlx5-next/mlx5-next (6880fa6c5660 Linux 5.15-rc1)
Merging netfilter-next/master (13bb8429ca98 net: wwan: iosm: firmware flashing and coredump collection)
Merging ipvs-next/master (13bb8429ca98 net: wwan: iosm: firmware flashing and coredump collection)
Merging wireless-drivers-next/master (60fe1f8dcd3c rt2x00: remove duplicate USB device ID)
Merging bluetooth/master (8331dc487fc5 Bluetooth: hci_core: Move all debugfs handling to hci_debugfs.c)
Merging mac80211-next/master (14e94f9445a9 octeontx2-af: verify CQ context updates)
Merging mtd/mtd/next (b72841e4dcd5 mtd: mtdswap: Remove redundant assignment of pointer eb)
Merging nand/nand/next (46a0dc10fb32 mtd: rawnand: intel: Fix potential buffer overflow in probe)
Merging spi-nor/spi-nor/next (2734d6c1b1a0 Linux 5.14-rc2)
Merging crypto/master (a2d3cbc80d25 crypto: aesni - check walk.nbytes instead of err)
Merging drm/drm-next (0dfc70818a3c Merge tag 'drm-misc-next-2021-09-16' of git://anongit.freedesktop.org/drm/drm-misc into drm-next)
Merging drm-misc/for-linux-next (9c2fce137852 drm: Fix scaling_mode docs)
Merging amdgpu/drm-next (e2a5ed914342 drm/amd/display: Fix wrong format specifier in amdgpu_dm.c)
CONFLICT (content): Merge conflict in drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c
CONFLICT (content): Merge conflict in drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c
Merging drm-intel/for-linux-next (52913626cf9a drm/i915: Apply WaUse32BppForSRWM to elk as well as ctg)
Applying: fix for drm/dp: add LTTPR DP 2.0 DPCD addresses
Merging drm-tegra/drm/tegra/for-next (c3dbfb9c49ee gpu: host1x: Plug potential memory leak)
Merging drm-msm/msm-next (cb0927ab80d2 drm/msi/mdp4: populate priv->kms in mdp4_kms_init)
Merging imx-drm/imx-drm/next (20fbfc81e390 drm/imx: imx-tve: Make use of the helper function devm_platform_ioremap_resource())
Merging etnaviv/etnaviv/next (81fd23e2b3cc drm/etnaviv: Implement mmap as GEM object function)
Merging regmap/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging sound/for-next (f02f2f1bf9d1 ALSA: usx2y: Prefer struct_size over open coded arithmetic)
Merging sound-asoc/for-next (71d536c72874 Merge remote-tracking branch 'asoc/for-5.16' into asoc-next)
Merging modules/modules-next (ced75a2f5da7 MAINTAINERS: Add Luis Chamberlain as modules maintainer)
Merging input/next (09182ed20c04 Input: goodix - add support for controllers without flash)
Merging block/for-next (4c6354a03d69 Merge branch 'for-5.16/cdrom' into for-next)
Merging device-mapper/for-next (d3703ef33129 dm crypt: use in_hardirq() instead of deprecated in_irq())
Merging libata/for-next (0e96dc47b95a ahci: remove duplicated PCI device IDs)
Merging pcmcia/pcmcia-next (e39cdacf2f66 pcmcia: i82092: fix a null pointer dereference bug)
Merging mmc/next (4ed8431c42ba Merge branch 'fixes' into next)
Merging mfd/for-mfd-next (cdff1eda6932 mfd: lpc_sch: Rename GPIOBASE to prevent build error)
Merging backlight/for-backlight-next (79fad92f2e59 backlight: pwm_bl: Improve bootloader/kernel device handover)
Merging battery/for-next (c9398455b046 power: supply: core: Fix parsing of battery chemistry/technology)
Merging regulator/for-next (2dfbfd4e2290 Merge remote-tracking branch 'regulator/for-5.16' into regulator-next)
Merging security/next-testing (047843bdb316 Merge branch 'landlock_lsm_v34' into next-testing)
Merging apparmor/apparmor-next (d108370c644b apparmor: fix error check)
Merging integrity/next-integrity (836f7b6ca082 ima: fix deadlock when traversing "ima_default_rules".)
Merging keys/keys-next (e377c31f788f integrity: Load mokx variables into the blacklist keyring)
CONFLICT (content): Merge conflict in certs/system_keyring.c
Merging safesetid/safesetid-next (1b8b71922919 LSM: SafeSetID: Mark safesetid_initialized as __initdata)
Merging selinux/next (d9d8c93938c4 Smack: Brutalist io_uring support)
CONFLICT (content): Merge conflict in fs/io-wq.c
Merging smack/next (0817534ff9ea smackfs: Fix use-after-free in netlbl_catmap_walk())
Merging tomoyo/master (7d2a07b76933 Linux 5.14)
Merging tpmdd/next (f985911b7bc7 crypto: public_key: fix overflow during implicit conversion)
Merging watchdog/master (41e73feb1024 dt-bindings: watchdog: Add compatible for Mediatek MT7986)
Merging iommu/next (b58886bf14da Merge branch 'iommu/fixes' into next)
Merging audit/next (8e71168e2cc7 lsm_audit: avoid overloading the "key" audit field)
Merging devicetree/for-next (9ae54ce551e9 kbuild: Enable dtc 'unit_address_format' warning by default)
Merging mailbox/mailbox-for-next (85dfdbfc13ea mailbox: cmdq: add multi-gce clocks support for mt8195)
Merging spi/for-next (36f6afce556d Merge remote-tracking branch 'spi/for-5.16' into spi-next)
Merging tip/auto-latest (dcb7b66df80d Merge branch 'tip-x86-misc' into tip-auto-latest)
Merging clockevents/timers/drivers/next (f196ae282070 dt-bindings: timer: Add ABIs for new Ingenic SoCs)
Merging edac/edac-for-next (4646da896a44 Merge branch 'edac-urgent' into edac-for-next)
Merging irqchip/irq/irqchip-next (6e3b473ee064 Merge branch irq/qcom-pdc-nowake-cleanup into irq/irqchip-next)
Merging ftrace/for-next (5dfe50b05588 bootconfig: Rename xbc_node_find_child() to xbc_node_find_subkey())
Merging rcu/rcu/next (9c2eed2c4c24 rcu: Replace ________p1 and _________p1 with __UNIQUE_ID(rcu))
Merging kvm/next (109bbba5066b KVM: Drop unused kvm_dirty_gfn_invalid())
Merging kvm-arm/next (419025b3b419 Merge branch kvm-arm64/misc-5.15 into kvmarm-master/next)
Merging kvm-ppc/kvm-ppc-next (72476aaa4691 KVM: PPC: Book3S HV: Fix host radix SLB optimisation with hash guests)
Merging kvms390/next (a3e03bc1368c KVM: s390: index kvm->arch.idle_mask by vcpu_idx)
Merging xen-tip/linux-next (0594c58161b6 xen/x86: fix PV trap handling on secondary processors)
Merging percpu/for-next (a81a52b325ec Merge branch 'for-5.14-fixes' into for-next)
Merging workqueues/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging drivers-x86/for-next (f6045de1f532 platform/x86: amd-pmc: Export Idlemask values based on the APU)
Merging chrome-platform/for-next (5135b2139212 MAINTAINERS: Add Prashant's maintainership of cros_ec drivers)
Merging hsi/for-next (e73f0f0ee754 Linux 5.14-rc1)
Merging leds/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging ipmi/for-next (35f4caec9d51 ipmi: Disable some operations during a panic)
Merging driver-core/driver-core-next (820879ee1865 sysfs: simplify sysfs_kf_seq_show)
Merging usb/usb-next (577ee98932fb Revert "arm64: qcom: ipq6018: add usb3 DT description")
Merging usb-gadget/next (e49d033bddf5 Linux 5.12-rc6)
Merging usb-serial/usb-next (c8345c0500de USB: serial: kl5kusb105: drop line-status helper)
Merging usb-chipidea-next/for-usb-next (78665f57c3fa usb: chipidea: udc: make controller hardware endpoint primed)
Merging tty/tty-next (7c783601a3bc tty: remove file from n_tty_ioctl_helper)
Merging char-misc/char-misc-next (d06246ebd773 scripts/tags.sh: Fix obsolete parameter for ctags)
Merging extcon/extcon-next (1a4bedc5305b extcon: extcon-axp288: Use P-Unit semaphore lock for register accesses)
Merging phy-next/next (6880fa6c5660 Linux 5.15-rc1)
Merging soundwire/next (6880fa6c5660 Linux 5.15-rc1)
Merging thunderbolt/next (e4e737bb5c17 Linux 5.15-rc2)
Merging vfio/next (ea870730d83f Merge branches 'v5.15/vfio/spdx-license-cleanups', 'v5.15/vfio/dma-valid-waited-v3', 'v5.15/vfio/vfio-pci-core-v5' and 'v5.15/vfio/vfio-ap' into v5.15/vfio/next)
Merging staging/staging-next (7bdedfef085b staging: r8188eu: Remove mp, a.k.a. manufacturing process, code)
CONFLICT (content): Merge conflict in drivers/staging/r8188eu/os_dep/ioctl_linux.c
Merging iio/togreg (55c45baaaf78 iio: adc: rockchip_saradc: Make use of the helper function devm_platform_ioremap_resource())
Merging mux/for-next (3516bd729358 Merge tag 's390-5.11-3' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux)
Merging icc/icc-next (13404ac8882f interconnect: qcom: sdm660: Add missing a2noc qos clocks)
Merging dmaengine/next (6880fa6c5660 Linux 5.15-rc1)
Merging cgroup/for-next (7ee285395b21 cgroup: Make rebind_subsystems() disable v2 controllers all at once)
Merging scsi/for-next (41d7acab7706 Merge branch 'fixes' into for-next)
Merging scsi-mkp/for-next (efe1dc571a5b scsi: lpfc: Fix mailbox command failure during driver initialization)
Merging vhost/linux-next (be9c6bad9b46 vdpa: potential uninitialized return in vhost_vdpa_va_map())
Merging rpmsg/for-next (99fdaca991f7 Merge branches 'hwspinlock-next', 'rpmsg-next' and 'rproc-next' into for-next)
Merging gpio/for-next (7ac554888233 MAINTAINERS: Remove reference to non-existing file)
Merging gpio-brgl/gpio/for-next (03e2080defd2 gpio: tps65218: drop unneeded MODULE_ALIAS)
Merging gpio-intel/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging pinctrl/for-next (788ac97efa94 Merge branch 'devel' into for-next)
Merging pinctrl-intel/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging pinctrl-renesas/renesas-pinctrl (075667cc6c29 pinctrl: renesas: No need to initialise global statics)
Merging pinctrl-samsung/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging pwm/for-next (3f2b16734914 pwm: mtk-disp: Implement atomic API .get_state())
Merging userns/for-next (a3be01837fc9 Merge of ucount-fixes-for-5.14, siginfo-si_trapno-for-v5.15, and exit-cleanups-for-v5.15 for testing in linux-next)
CONFLICT (content): Merge conflict in include/linux/sched/signal.h
Merging ktest/for-next (170f4869e662 ktest.pl: Fix the logic for truncating the size of the log file for email)
Merging kselftest/next (6880fa6c5660 Linux 5.15-rc1)
Merging livepatching/for-next (cd2d68f2d6b2 Merge branch 'for-5.15/cpu-hotplug' into for-next)
Merging coresight/next (1efbcec2ef8c coresight: cti: Reduce scope for the variable “cs_fwnode” in cti_plat_create_connection())
Merging rtc/rtc-next (6880fa6c5660 Linux 5.15-rc1)
Merging nvdimm/libnvdimm-for-next (bdd3c50d83bf dax: remove bdev_dax_supported)
Merging at24/at24/for-next (762925405482 dt-bindings: at24: add ON Semi CAT24C04 and CAT24C05)
Merging ntb/ntb-next (f96cb827ce49 ntb: ntb_pingpong: remove redundant initialization of variables msg_data and spad_data)
Merging seccomp/for-next/seccomp (b4d8a58f8dcf seccomp: Fix setting loaded filter count during TSYNC)
Merging kspp/for-next/kspp (0c91d23b6783 treewide: Replace 0-element memcpy() destinations with flexible arrays)
Merging cisco/for-next (9e98c678c2d6 Linux 5.1-rc1)
Merging gnss/gnss-next (0f79ce970e79 gnss: drop stray semicolons)
Merging fsi/next (9ab1428dfe2c fsi/sbefifo: Fix reset timeout)
Merging slimbus/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging nvmem/for-next (536267aafb8a nvmem: core: Add stubs for nvmem_cell_read_variable_le_u32/64 if !CONFIG_NVMEM)
Merging xarray/main (2c7e57a02708 idr test suite: Improve reporting from idr_find_test_1)
Merging hyperv/hyperv-next (9d68cd9120e4 hv_utils: Set the maximum packet size for VSS driver to the length of the receive buffer)
Merging auxdisplay/auxdisplay (24ebc044c72e auxdisplay: Replace symbolic permissions with octal permissions)
Merging kgdb/kgdb/for-next (f8416aa29185 kernel: debug: Convert to SPDX identifier)
Merging hmm/hmm (6880fa6c5660 Linux 5.15-rc1)
Merging fpga/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging kunit/test (6880fa6c5660 Linux 5.15-rc1)
Merging cfi/cfi/next (ff1176468d36 Linux 5.14-rc3)
Merging kunit-next/kunit (3b29021ddd10 kunit: tool: allow filtering test cases via glob)
Merging trivial/for-next (9ff9b0d392ea Merge tag 'net-next-5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next)
Merging mhi/mhi-next (813272ed5238 Merge 5.14-rc5 into char-misc-next)
Merging memblock/for-next (e888fa7bb882 memblock: Check memory add/cap ordering)
Merging init/init-user-pointers (38b082236e77 initramfs: use vfs_utimes in do_copy)
Merging counters/counters (e71ba9452f0b Linux 5.11-rc2)
Merging rust/rust-next (5d3986cf8ed6 MAINTAINERS: Rust)
CONFLICT (content): Merge conflict in include/linux/kallsyms.h
CONFLICT (content): Merge conflict in Makefile
Applying: fixup for rust integration with Makefile.clang creation
Merging cxl/next (ed97afb53365 cxl/pci: Disambiguate cxl_pci further from cxl_mem)
Merging folio/for-next (1a90e9dae32c mm/writeback: Add folio_write_one)
CONFLICT (content): Merge conflict in mm/util.c
CONFLICT (content): Merge conflict in mm/rmap.c
CONFLICT (content): Merge conflict in mm/page-writeback.c
CONFLICT (content): Merge conflict in mm/memcontrol.c
CONFLICT (content): Merge conflict in mm/filemap.c
CONFLICT (content): Merge conflict in include/linux/memcontrol.h
CONFLICT (modify/delete): fs/cachefiles/rdwr.c deleted in HEAD and modified in folio/for-next. Version folio/for-next of fs/cachefiles/rdwr.c left in tree.
$ git rm -f fs/cachefiles/rdwr.c
Applying: fix up for "9p: Convert to using the netfs helper lib to do reads and caching"
Merging akpm-current/current (84dda76fe9a8 ipc/ipc_sysctl.c: remove fallback for !CONFIG_PROC_SYSCTL)
$ git checkout -b akpm remotes/origin/akpm/master
$ git rebase --onto master remotes/origin/akpm/master-base
Merging akpm/master (475b49bcc32e mm: unexport {,un}lock_page_memcg)

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

^ permalink raw reply	[relevance 2%]

* linux-next: Tree for Sep 24
@ 2021-09-24  4:54  2% Stephen Rothwell
  0 siblings, 0 replies; 200+ results
From: Stephen Rothwell @ 2021-09-24  4:54 UTC (permalink / raw)
  To: Linux Next Mailing List; +Cc: Linux Kernel Mailing List

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

Hi all,

Changes since 20210923:

Non-merge commits (relative to Linus' tree): 3475
 3523 files changed, 163819 insertions(+), 73362 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 are also quilt-import.log and merge.log
files 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, 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 337 trees (counting Linus' and 91 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 (f9e36107ec70 Merge tag 'for-5.15-rc2-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux)
Merging fixes/fixes (3ca706c189db drm/ttm: fix type mismatch error on sparc64)
Merging kbuild-current/fixes (0664684e1ebd kbuild: Add -Werror=ignored-optimization-argument to CLANG_FLAGS)
Merging arc-current/for-curr (6880fa6c5660 Linux 5.15-rc1)
Merging arm-current/fixes (463dbba4d189 ARM: 9104/2: Fix Keystone 2 kernel mapping regression)
Merging arm64-fixes/for-next/fixes (22b70e6f2da0 arm64: Restore forced disabling of KPTI on ThunderX)
Merging arm-soc-fixes/arm/fixes (3f1c260ffddb MAINTAINERS: Add myself as MStar/Sigmastar Armv7 SoC maintainers)
Merging drivers-memory-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging m68k-current/for-linus (450696ae40df m68k: Remove set_fs())
Merging powerpc-fixes/fixes (c006a06508db powerpc/xics: Set the IRQ chip data for the ICS native backend)
Merging s390-fixes/fixes (f5711f9df924 s390: remove WARN_DYNAMIC_STACK)
Merging sparc/master (05a59d79793d Merge git://git.kernel.org:/pub/scm/linux/kernel/git/netdev/net)
Merging fscrypt-current/for-stable (80f6e3080bfc fs-verity: fix signed integer overflow with i_size near S64_MAX)
Merging net/master (9bc62afe03af Merge tag 'net-5.15-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net)
Merging bpf/master (7c3a00911b3d bpf: Exempt CAP_BPF from checks against bpf_jit_limit)
Merging ipsec/master (047a749d231e Merge branch 'xfrm: fix uapi for the default policy')
Merging netfilter/master (e9edc188fc76 netfilter: conntrack: serialize hash resizes and cleanups)
Merging ipvs/master (e9edc188fc76 netfilter: conntrack: serialize hash resizes and cleanups)
Merging wireless-drivers/master (91dab18f0df1 MAINTAINERS: Move Daniel Drake to credits)
Merging mac80211/master (313bbd1990b6 mac80211-hwsim: fix late beacon hrtimer handling)
Merging rdma-fixes/for-rc (305d568b72f1 RDMA/cma: Ensure rdma_addr_cancel() happens before issuing more requests)
Merging sound-current/for-linus (09d23174402d ALSA: rawmidi: introduce SNDRV_RAWMIDI_IOCTL_USER_PVERSION)
Merging sound-asoc-fixes/for-linus (dc8126121d79 Merge remote-tracking branch 'asoc/for-5.15' into asoc-linus)
Merging regmap-fixes/for-linus (6880fa6c5660 Linux 5.15-rc1)
Merging regulator-fixes/for-linus (f03bf748cb6e Merge remote-tracking branch 'regulator/for-5.15' into regulator-linus)
Merging spi-fixes/for-linus (7dd4ea8ced6c Merge remote-tracking branch 'spi/fix/modalias' into spi-linus)
CONFLICT (content): Merge conflict in drivers/spi/spi-tegra20-slink.c
Merging pci-current/for-linus (e4e737bb5c17 Linux 5.15-rc2)
Merging driver-core.current/driver-core-linus (04f41c68f188 net: mdiobus: Set FWNODE_FLAG_NEEDS_CHILD_BOUND_ON_ADD for mdiobus parents)
Merging tty.current/tty-linus (7049d853cfb9 tty: unexport tty_ldisc_release)
Merging usb.current/usb-linus (f7d848e0fdfa MAINTAINERS: usb, update Peter Korsgaard's entries)
Merging usb-gadget-fixes/fixes (e49d033bddf5 Linux 5.12-rc6)
Merging usb-serial-fixes/usb-linus (e58a090d06c0 USB: serial: option: add device id for Foxconn T99W265)
Merging usb-chipidea-fixes/for-usb-fixes (98a1373a2de9 usb: cdns3: fix race condition before setting doorbell)
Merging phy/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging staging.current/staging-linus (aa3233ea7bdb staging: r8188eu: fix -Wrestrict warnings)
Merging iio-fixes/fixes-togreg (8167c9a375cc iio: ssp_sensors: add more range checking in ssp_parse_dataframe())
Merging char-misc.current/char-misc-linus (bb509a6ffed2 comedi: Fix memory leak in compat_insnlist())
Merging soundwire-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging thunderbolt-fixes/fixes (e4e737bb5c17 Linux 5.15-rc2)
Merging input-current/for-linus (0c5483a5778f Input: analog - always use ktime functions)
Merging crypto-current/master (6ae51ffe5e76 crypto: sha512 - remove imaginary and mystifying clearing of variables)
Merging vfio-fixes/for-linus (dc51ff91cf2d vfio/platform: fix module_put call in error flow)
Merging kselftest-fixes/fixes (f5013d412a43 selftests: kvm: fix get_run_delay() ignoring fscanf() return warn)
Merging modules-fixes/modules-linus (055f23b74b20 module: check for exit sections in layout_sections() instead of module_init_section())
Merging dmaengine-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging backlight-fixes/for-backlight-fixes (a38fd8748464 Linux 5.12-rc2)
Merging mtd-fixes/mtd/fixes (f60f5741002b mtd: rawnand: qcom: Update code word value for raw read)
Merging mfd-fixes/for-mfd-fixes (a61f4661fba4 mfd: intel_quark_i2c_gpio: Revert "Constify static struct resources")
Merging v4l-dvb-fixes/fixes (f0c15b360fb6 media: ir_toy: prevent device from hanging during transmit)
Merging reset-fixes/reset/fixes (ed104ca4bd9c reset: reset-zynqmp: Fixed the argument data type)
Merging mips-fixes/mips-fixes (6880fa6c5660 Linux 5.15-rc1)
Merging at91-fixes/at91-fixes (4348cc10da63 ARM: dts: at91: sama5d2_som1_ek: disable ISC node by default)
Merging omap-fixes/fixes (e879f855e590 bus: ti-sysc: Add break in switch statement in sysc_init_soc())
Merging kvm-fixes/master (2da4a23599c2 KVM: selftests: Remove __NR_userfaultfd syscall fallback)
Merging kvms390-fixes/master (cd4220d23bf3 KVM: selftests: do not require 64GB in set_memory_region_test)
Merging hwmon-fixes/hwmon (e6fab7af6ba1 hwmon: (mlxreg-fan) Return non-zero value when fan current state is enforced from sysfs)
Merging nvdimm-fixes/libnvdimm-fixes (32b2397c1e56 libnvdimm/pmem: Fix crash triggered when I/O in-flight during unbind)
Merging cxl-fixes/fixes (fae8817ae804 cxl/mem: Fix memory device capacity probing)
Merging btrfs-fixes/next-fixes (45940091a3c1 Merge branch 'misc-5.15' into next-fixes)
Merging vfs-fixes/fixes (173e84953eaa fs: fix reporting supported extra file attributes for statx())
Merging dma-mapping-fixes/for-linus (18a3c5f7abfd Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost)
Merging i3c-fixes/i3c/fixes (fe07bfda2fb9 Linux 5.12-rc1)
Merging drivers-x86-fixes/fixes (6f6aab1caf6c platform/x86: gigabyte-wmi: add support for B550I Aorus Pro AX)
Merging samsung-krzk-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging pinctrl-samsung-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging devicetree-fixes/dt/linus (55c21d57eafb dt-bindings: arm: Fix Toradex compatible typo)
Merging scsi-fixes/fixes (fbdac19e6428 scsi: ses: Retry failed Send/Receive Diagnostic commands)
Merging drm-fixes/drm-fixes (e4e737bb5c17 Linux 5.15-rc2)
Merging amdgpu-fixes/drm-fixes (2c409ba81be2 drm/radeon: fix si_enable_smc_cac() failed issue)
Merging drm-intel-fixes/for-linux-next-fixes (b875fb313a10 drm/i915: Free all DMC payloads)
Merging mmc-fixes/fixes (b81bede4d138 mmc: renesas_sdhi: fix regression with hard reset on old SDHIs)
Merging rtc-fixes/rtc-fixes (bd33335aa93d rtc: cmos: Disable irq around direct invocation of cmos_interrupt())
Merging gnss-fixes/gnss-linus (e73f0f0ee754 Linux 5.14-rc1)
Merging hyperv-fixes/hyperv-fixes (dfb5c1e12c28 x86/hyperv: remove on-stack cpumask from hv_send_ipi_mask_allbutself)
Merging soc-fsl-fixes/fix (c1e64c0aec8c soc: fsl: qe: fix static checker warning)
Merging risc-v-fixes/fixes (7d2a07b76933 Linux 5.14)
Merging pidfd-fixes/fixes (03ba0fe4d09f file: simplify logic in __close_range())
Merging fpga-fixes/fixes (e9a9970bf520 fpga: dfl: Avoid reads to AFU CSRs during enumeration)
Merging spdx/spdx-linus (6880fa6c5660 Linux 5.15-rc1)
Merging gpio-brgl-fixes/gpio/for-current (b22a4705e2e6 gpio/rockchip: fix get_direction value handling)
Merging gpio-intel-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging pinctrl-intel-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging erofs-fixes/fixes (c40dd3ca2a45 erofs: clear compacted_2b if compacted_4b_initial > totalidx)
Merging integrity-fixes/fixes (843385694721 evm: Fix a small race in init_desc())
Merging kunit-fixes/kunit-fixes (6880fa6c5660 Linux 5.15-rc1)
Merging ubifs-fixes/fixes (78c7d49f55d8 ubifs: journal: Make sure to not dirty twice for auth nodes)
Merging memblock-fixes/fixes (024591f9a6e0 arm: ioremap: don't abuse pfn_valid() to check if pfn is in RAM)
Merging cel-fixes/for-rc (7d2a07b76933 Linux 5.14)
Merging irqchip-fixes/irq/irqchip-fixes (b78f26926b17 irqchip/gic: Work around broken Renesas integration)
Merging renesas-fixes/fixes (432b52eea3dc ARM: shmobile: defconfig: Restore graphical consoles)
Merging perf-current/perf/urgent (219d720e6df7 perf bpf: Ignore deprecation warning when using libbpf's btf__get_from_id())
Merging drm-misc-fixes/for-linux-next-fixes (3027c77774ac dt-bindings: panel: ili9341: correct indentation)
CONFLICT (content): Merge conflict in drivers/gpu/drm/vc4/vc4_hdmi.c
Merging kspp-gustavo/for-next/kspp (ad9ee403ca4d Merge branch 'for-next/clang-fallthrough' into for-next/kspp)
Merging kbuild/for-next (90a353491e9f kbuild: reuse $(cmd_objtool) for cmd_cc_lto_link_modules)
Merging perf/perf/core (8228e9361e2a perf parse-events: Avoid enum forward declaration.)
Merging compiler-attributes/compiler-attributes (b83a908498d6 compiler_attributes.h: move __compiletime_{error|warning})
Merging dma-mapping/for-next (59583f747664 sparc32: page align size in arch_dma_alloc)
Merging asm-generic/master (7962c2eddbfe arch: remove unused function syscall_set_arguments())
Merging arc/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging arm/for-next (4603664c0fe9 Merge branches 'fixes' and 'misc' into for-next)
Merging arm64/for-next/core (85f58eb18898 arm64: kdump: Skip kmemleak scan reserved memory for kdump)
Merging arm-perf/for-next/perf (fd264b310579 arm64/perf: Replace '0xf' instances with ID_AA64DFR0_PMUVER_IMP_DEF)
Merging arm-soc/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging actions/for-next (444d018d8d38 ARM: dts: owl-s500-roseapplepi: Add ATC2603C PMIC)
Merging amlogic/for-next (83e38509109e Merge branch 'v5.16/dt64' into for-next)
Merging aspeed/for-next (e986277a56da Merge branches 'defconfig-for-v5.16' and 'dt-for-v5.16' into for-next)
Merging at91/at91-next (8aff56d060f4 Merge branch 'at91-dt' into at91-next)
Merging drivers-memory/for-next (6e3caf0babab Merge branch 'for-v5.16/mtk-smi' into for-next)
Merging imx-mxs/for-next (0dd3273df8c2 Merge branch 'imx/dt64' into for-next)
Merging keystone/next (cb293d3b430e Merge branch 'for_5.15/drivers-soc' into next)
Merging mediatek/for-next (69862ae4e378 Merge branch 'v5.14-next/soc' into for-next)
Merging mvebu/for-next (930af8dda750 Merge branch 'mvebu/dt64' into mvebu/for-next)
Merging omap/for-next (7911f95d1713 Merge branch 'fixes' into for-next)
Merging qcom/for-next (dcf7f346a99b Merge branches 'arm64-for-5.16', 'drivers-for-5.16' and 'dts-for-5.16' into for-next)
Merging raspberrypi/for-next (9f5289ec6f1c ARM: dts: bcm2711-rpi-4-b: Fix usb's unit address)
Merging renesas/next (41c50f42a51c Merge branches 'renesas-arm-dt-for-v5.16', 'renesas-drivers-for-v5.16' and 'renesas-dt-bindings-for-v5.16' into renesas-next)
Merging reset/reset/next (09f3824342f6 reset: simple: remove ZTE details in Kconfig help)
Merging rockchip/for-next (6d2d362a1aeb Merge branch 'v5.16-armsoc/dts64' into for-next)
Merging samsung-krzk/for-next (1523dddcd195 Merge branch 'next/soc' into for-next)
Merging scmi/for-linux-next (e267aa073ab0 Merge branch 'for-next/scmi' of git://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux into for-linux-next)
Merging stm32/stm32-next (350081007916 ARM: dts: stm32: set the DCMI pins on stm32mp157c-odyssey)
Merging sunxi/sunxi/for-next (bb289f4c0b2b Merge branches 'sunxi/clk-for-5.16', 'sunxi/core-for-5.16', 'sunxi/drivers-for-5.16', 'sunxi/dt-for-5.16' and 'sunxi/fixes-for-5.15' into sunxi/for-next)
Merging tegra/for-next (cc701ccede61 Merge branch for-5.15/arm64/dt into for-next)
Merging ti-k3/ti-k3-next (1e3d655fe7b4 Merge branch 'ti-k3-config-next' into ti-k3-next)
Merging ti-k3-new/ti-k3-next (6037c75b193a arm64: dts: ti: k3-am65: Relocate thermal-zones to SoC specific location)
Merging xilinx/for-next (35a7430dad4d arm64: zynqmp: Wire psgtr for zc1751-xm013)
Merging clk/clk-next (1cbc04ffedcc Merge branch 'clk-mtk' into clk-next)
Merging clk-imx/for-next (1f4b035e603b clk: imx: Fix the build break when clk-imx8ulp build as module)
Merging clk-renesas/renesas-clk (8ac4aedcf7b3 clk: renesas: r8a779a0: Add TPU clock)
Merging clk-samsung/for-next (1d26eaeec37a clk: samsung: s5pv210-audss: Make use of devm_platform_ioremap_resource())
Merging csky/linux-next (90dc8c0e664e csky: Kconfig: Remove unused selects)
Merging h8300/h8300-next (1ec10274d436 h8300: don't implement set_fs)
Merging m68k/for-next (9a25fb53c59e m68k: muldi3: Use semicolon instead of comma)
Merging m68knommu/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging microblaze/next (6880fa6c5660 Linux 5.15-rc1)
Merging mips/mips-next (6880fa6c5660 Linux 5.15-rc1)
Merging nds32/next (07cd7745c6f2 nds32/setup: remove unused memblock_region variable in setup_memory())
CONFLICT (content): Merge conflict in arch/nds32/Kconfig
Merging nios2/for-next (7f7bc20bc41a nios2: Don't use _end for calculating min_low_pfn)
Merging openrisc/for-next (1955d843efc3 openrisc/litex: Update defconfig)
Merging parisc-hd/for-next (e4e737bb5c17 Linux 5.15-rc2)
Merging powerpc/next (6880fa6c5660 Linux 5.15-rc1)
Merging soc-fsl/next (242b0b398ccd soc: fsl: enable acpi support in RCPM driver)
Merging risc-v/for-next (6f55ab36bef5 riscv: Move EXCEPTION_TABLE to RO_DATA segment)
Merging s390/for-next (9ec953c0a7e1 Merge branch 'fixes' into for-next)
Merging sh/for-next (12285ff8667b sh: kdump: add some attribute to function)
Merging sparc-next/master (dd0d718152e4 Merge tag 'spi-fix-v5.8-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi)
Merging uml/linux-next (234640275675 um: rename set_signals() to um_set_signals())
Merging xtensa/xtensa-for-next (7b7cec477fc3 xtensa: move core-y in arch/xtensa/Makefile to arch/xtensa/Kbuild)
Merging pidfd/for-next (f4dd02cd8631 Merge branch 'kernel.sys' into for-next)
Merging fscrypt/master (7f595d6a6cdc fscrypt: allow 256-bit master keys with AES-256-XTS)
Merging fscache/fscache-next (97b85f2079a9 Merge branch 'fscache-iter-3' into fscache-next)
Merging afs/afs-next (7af08140979a Revert "gcov: clang: fix clang-11+ build")
Merging btrfs/for-next (e51480e6f4f8 Merge branch 'for-next-next-v5.15-20210913' into for-next-20210913)
Merging ceph/master (708c87168b61 ceph: fix off by one bugs in unsafe_request_wait())
Merging cifs/for-next (b06d893ef249 smb3: correct smb3 ACL security descriptor)
Merging cifsd/cifsd-for-next (4ea477988c42 ksmbd: remove follow symlinks support)
Merging configfs/for-next (c42dd069be8d configfs: fix a race in configfs_lookup())
Merging ecryptfs/next (682a8e2b41ef Merge tag 'ecryptfs-5.13-rc1-updates' of git://git.kernel.org/pub/scm/linux/kernel/git/tyhicks/ecryptfs)
Merging erofs/dev (1266b4a7ecb6 erofs: fix double free of 'copied')
Merging exfat/dev (50be9417e23a Merge tag 'io_uring-5.14-2021-07-09' of git://git.kernel.dk/linux-block)
Merging ext3/for_next (372d1f3e1bfe ext2: fix sleeping in atomic bugs on error)
Merging ext4/dev (948ca5f30e1d ext4: enforce buffer head state assertion in ext4_da_map_blocks)
Merging f2fs/dev (6663b138ded1 f2fs: set SBI_NEED_FSCK flag when inconsistent node block found)
Merging fsverity/fsverity (07c99001312c fs-verity: support reading signature with ioctl)
Merging fuse/for-next (7a41554fdfb0 fuse: move fuse_invalidate_attr() into fuse_update_ctime())
Merging gfs2/for-next (11603f0011d0 gfs2: Allow append and immutable bits to coexist)
Merging jfs/jfs-next (c48a14dca2cb JFS: fix memleak in jfs_mount)
Merging nfs/linux-next (e4e737bb5c17 Linux 5.15-rc2)
Merging nfs-anna/linux-next (8cfb9015280d NFS: Always provide aligned buffers to the RPC read layers)
Merging nfsd/nfsd-next (1a0c45abd938 NFSD: simplify struct nfsfh)
Merging cel/for-next (02579b2ff8b0 nfsd: back channel stuck in SEQ4_STATUS_CB_PATH_DOWN)
Merging ntfs3/master (82cb87531318 fs/ntfs3: Remove deprecated mount options nls)
Merging orangefs/for-next (0fdec1b3c9fb orangefs: fix orangefs df output.)
Merging overlayfs/overlayfs-next (332f606b32b6 ovl: enable RCU'd ->get_acl())
Merging ubifs/next (a801fcfeef96 ubifs: Set/Clear I_LINKABLE under i_lock for whiteout inode)
Merging v9fs/9p-next (9c4d94dc9a64 net/9p: increase default msize to 128k)
Merging xfs/for-next (f38a032b165d xfs: fix I_DONTCACHE)
Merging zonefs/for-next (95b115332a83 zonefs: remove redundant null bio check)
Merging iomap/iomap-for-next (03b8df8d43ec iomap: standardize tracepoint formatting and storage)
Merging djw-vfs/vfs-for-next (d03ef4daf33a fs: forbid invalid project ID)
Merging file-locks/locks-next (90f7d7a0d0d6 locks: remove LOCK_MAND flock lock support)
Merging vfs/for-next (8f40da9494cf Merge branch 'misc.namei' into for-next)
Merging printk/for-next (9980c4251f8d printk: use kvmalloc instead of kmalloc for devkmsg_user)
Merging pci/next (ef4bce990eab Merge branch 'pci/virtualization')
Merging pstore/for-next/pstore (c5d4fb2539ca pstore/blk: Use "%lu" to format unsigned long)
Merging hid/for-next (433afb16be43 Merge branch 'for-5.16/xiaomi' into for-next)
Merging i2c/i2c/for-next (294b29f15469 i2c: xiic: Fix RX IRQ busy check)
Merging i3c/i3c/next (41a0430dd5ca i3c/master/mipi-i3c-hci: Prefer kcalloc over open coded arithmetic)
Merging dmi/dmi-for-next (f97a2103f1a7 firmware: dmi: Move product_sku info to the end of the modalias)
Merging hwmon-staging/hwmon-next (cd0b8e410937 hwmon: (nct6775) Support access via Asus WMI)
Merging jc_docs/docs-next (946c8fee6d6e Documentation: Update SeongJae's email address)
Merging v4l-dvb/master (e4e737bb5c17 Linux 5.15-rc2)
Merging v4l-dvb-next/master (952aab37b121 Merge tag 'v5.15-rc2' into media_stage)
Applying: fix for "media: ir_toy: allow tx carrier to be set"
Merging pm/linux-next (9fa78c37a2e3 Merge branch 'acpi-osl' into linux-next)
Merging cpufreq-arm/cpufreq/arm/linux-next (4855e26bcf4d cpufreq: mediatek-hw: Add support for CPUFREQ HW)
Merging cpupower/cpupower (79a0dc5530a9 tools: cpupower: fix typo in cpupower-idle-set(1) manpage)
Merging devfreq/devfreq-next (7f6490afc97f devfreq: exynos-ppmu: simplify parsing event-type from DT)
Merging opp/opp/linux-next (94274f20f6bf dt-bindings: opp: Convert to DT schema)
Merging thermal/thermal/linux-next (fc26023f8816 thermal/drivers/int340x: Fix tcc offset on resume)
Merging ieee1394/for-next (54b3bd99f094 firewire: nosy: switch from 'pci_' to 'dma_' API)
Merging dlm/next (ecd95673142e fs: dlm: avoid comms shutdown delay in release_lockspace)
Merging swiotlb/linux-next (f3c4b1341e83 swiotlb: use depends on for DMA_RESTRICTED_POOL)
Merging rdma/for-next (6bda39149d4b RDMA/bnxt_re: Check if the vlan is valid before reporting)
Merging net-next/master (2fcd14d0f780 Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net)
Merging bpf-next/for-next (c86216bc96aa bpf: Document BPF licensing.)
Merging ipsec-next/master (428168f99517 Merge branch 'mlxsw-trap-adjacency')
Merging mlx5-next/mlx5-next (6880fa6c5660 Linux 5.15-rc1)
Merging netfilter-next/master (13bb8429ca98 net: wwan: iosm: firmware flashing and coredump collection)
Merging ipvs-next/master (13bb8429ca98 net: wwan: iosm: firmware flashing and coredump collection)
Merging wireless-drivers-next/master (60fe1f8dcd3c rt2x00: remove duplicate USB device ID)
Merging bluetooth/master (8331dc487fc5 Bluetooth: hci_core: Move all debugfs handling to hci_debugfs.c)
Merging mac80211-next/master (9e263e193af7 nl80211: don't put struct cfg80211_ap_settings on stack)
Merging mtd/mtd/next (b72841e4dcd5 mtd: mtdswap: Remove redundant assignment of pointer eb)
Merging nand/nand/next (46a0dc10fb32 mtd: rawnand: intel: Fix potential buffer overflow in probe)
Merging spi-nor/spi-nor/next (2734d6c1b1a0 Linux 5.14-rc2)
Merging crypto/master (a2d3cbc80d25 crypto: aesni - check walk.nbytes instead of err)
Merging drm/drm-next (0dfc70818a3c Merge tag 'drm-misc-next-2021-09-16' of git://anongit.freedesktop.org/drm/drm-misc into drm-next)
Merging drm-misc/for-linux-next (13afcdd7277e drm/bridge: parade-ps8640: Add support for AUX channel)
Merging amdgpu/drm-next (2485e2753ec8 drm/amdgpu: make soc15_common_ip_funcs static)
CONFLICT (content): Merge conflict in drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c
CONFLICT (content): Merge conflict in drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c
Merging drm-intel/for-linux-next (ab98ebb9a99a drm/i915: Fix HPLL watermark readout for g4x)
Applying: fix for drm/dp: add LTTPR DP 2.0 DPCD addresses
Merging drm-tegra/drm/tegra/for-next (c3dbfb9c49ee gpu: host1x: Plug potential memory leak)
Merging drm-msm/msm-next (cb0927ab80d2 drm/msi/mdp4: populate priv->kms in mdp4_kms_init)
Merging imx-drm/imx-drm/next (20fbfc81e390 drm/imx: imx-tve: Make use of the helper function devm_platform_ioremap_resource())
Merging etnaviv/etnaviv/next (81fd23e2b3cc drm/etnaviv: Implement mmap as GEM object function)
Merging regmap/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging sound/for-next (f02f2f1bf9d1 ALSA: usx2y: Prefer struct_size over open coded arithmetic)
Merging sound-asoc/for-next (71d536c72874 Merge remote-tracking branch 'asoc/for-5.16' into asoc-next)
Merging modules/modules-next (ced75a2f5da7 MAINTAINERS: Add Luis Chamberlain as modules maintainer)
Merging input/next (d5af8a8f7c4c Input: mpr121 - make use of the helper function devm_add_action_or_reset())
Merging block/for-next (9f16f2404c55 Merge branch 'for-5.16/io_uring' into for-next)
Merging device-mapper/for-next (d3703ef33129 dm crypt: use in_hardirq() instead of deprecated in_irq())
Merging libata/for-next (0e96dc47b95a ahci: remove duplicated PCI device IDs)
Merging pcmcia/pcmcia-next (e39cdacf2f66 pcmcia: i82092: fix a null pointer dereference bug)
Merging mmc/next (8211999fc64c mmc: mmci: Add small comment about reset thread)
Merging mfd/for-mfd-next (cdff1eda6932 mfd: lpc_sch: Rename GPIOBASE to prevent build error)
Merging backlight/for-backlight-next (79fad92f2e59 backlight: pwm_bl: Improve bootloader/kernel device handover)
Merging battery/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging regulator/for-next (2dfbfd4e2290 Merge remote-tracking branch 'regulator/for-5.16' into regulator-next)
Merging security/next-testing (047843bdb316 Merge branch 'landlock_lsm_v34' into next-testing)
Merging apparmor/apparmor-next (d108370c644b apparmor: fix error check)
Merging integrity/next-integrity (836f7b6ca082 ima: fix deadlock when traversing "ima_default_rules".)
Merging keys/keys-next (e377c31f788f integrity: Load mokx variables into the blacklist keyring)
CONFLICT (content): Merge conflict in certs/system_keyring.c
Merging safesetid/safesetid-next (1b8b71922919 LSM: SafeSetID: Mark safesetid_initialized as __initdata)
Merging selinux/next (d9d8c93938c4 Smack: Brutalist io_uring support)
CONFLICT (content): Merge conflict in fs/io-wq.c
Merging smack/next (0817534ff9ea smackfs: Fix use-after-free in netlbl_catmap_walk())
Merging tomoyo/master (7d2a07b76933 Linux 5.14)
Merging tpmdd/next (f985911b7bc7 crypto: public_key: fix overflow during implicit conversion)
Merging watchdog/master (41e73feb1024 dt-bindings: watchdog: Add compatible for Mediatek MT7986)
Merging iommu/next (b58886bf14da Merge branch 'iommu/fixes' into next)
Merging audit/next (8e71168e2cc7 lsm_audit: avoid overloading the "key" audit field)
Merging devicetree/for-next (9ae54ce551e9 kbuild: Enable dtc 'unit_address_format' warning by default)
Merging mailbox/mailbox-for-next (85dfdbfc13ea mailbox: cmdq: add multi-gce clocks support for mt8195)
Merging spi/for-next (36f6afce556d Merge remote-tracking branch 'spi/for-5.16' into spi-next)
Merging tip/auto-latest (723c56e57a63 Merge remote-tracking branch 'tip/timers/urgent' into tip-master)
Merging clockevents/timers/drivers/next (f196ae282070 dt-bindings: timer: Add ABIs for new Ingenic SoCs)
Merging edac/edac-for-next (4646da896a44 Merge branch 'edac-urgent' into edac-for-next)
Merging irqchip/irq/irqchip-next (6e3b473ee064 Merge branch irq/qcom-pdc-nowake-cleanup into irq/irqchip-next)
Merging ftrace/for-next (5dfe50b05588 bootconfig: Rename xbc_node_find_child() to xbc_node_find_subkey())
Merging rcu/rcu/next (9c2eed2c4c24 rcu: Replace ________p1 and _________p1 with __UNIQUE_ID(rcu))
Merging kvm/next (109bbba5066b KVM: Drop unused kvm_dirty_gfn_invalid())
Merging kvm-arm/next (419025b3b419 Merge branch kvm-arm64/misc-5.15 into kvmarm-master/next)
Merging kvm-ppc/kvm-ppc-next (72476aaa4691 KVM: PPC: Book3S HV: Fix host radix SLB optimisation with hash guests)
Merging kvms390/next (a3e03bc1368c KVM: s390: index kvm->arch.idle_mask by vcpu_idx)
Merging xen-tip/linux-next (0594c58161b6 xen/x86: fix PV trap handling on secondary processors)
Merging percpu/for-next (a81a52b325ec Merge branch 'for-5.14-fixes' into for-next)
Merging workqueues/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging drivers-x86/for-next (f6045de1f532 platform/x86: amd-pmc: Export Idlemask values based on the APU)
Merging chrome-platform/for-next (5135b2139212 MAINTAINERS: Add Prashant's maintainership of cros_ec drivers)
Merging hsi/for-next (e73f0f0ee754 Linux 5.14-rc1)
Merging leds/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging ipmi/for-next (35f4caec9d51 ipmi: Disable some operations during a panic)
Merging driver-core/driver-core-next (d4771993f2cf scripts: get_abi.pl: ensure that "others" regex will be parsed)
Merging usb/usb-next (8217f07a5023 usb: dwc3: gadget: Avoid starting DWC3 gadget during UDC unbind)
Merging usb-gadget/next (e49d033bddf5 Linux 5.12-rc6)
Merging usb-serial/usb-next (c8345c0500de USB: serial: kl5kusb105: drop line-status helper)
Merging usb-chipidea-next/for-usb-next (78665f57c3fa usb: chipidea: udc: make controller hardware endpoint primed)
Merging tty/tty-next (7c783601a3bc tty: remove file from n_tty_ioctl_helper)
Merging char-misc/char-misc-next (54fa156bb33a mei: Remove usage of the deprecated "pci-dma-compat.h" API)
Merging extcon/extcon-next (eb29ba5688de extcon: extcon-axp288: Use P-Unit semaphore lock for register accesses)
Merging phy-next/next (6880fa6c5660 Linux 5.15-rc1)
Merging soundwire/next (6880fa6c5660 Linux 5.15-rc1)
Merging thunderbolt/next (e4e737bb5c17 Linux 5.15-rc2)
Merging vfio/next (ea870730d83f Merge branches 'v5.15/vfio/spdx-license-cleanups', 'v5.15/vfio/dma-valid-waited-v3', 'v5.15/vfio/vfio-pci-core-v5' and 'v5.15/vfio/vfio-ap' into v5.15/vfio/next)
Merging staging/staging-next (c34e73d67c82 staging; wlan-ng: remove duplicate USB device ID)
CONFLICT (content): Merge conflict in drivers/staging/r8188eu/os_dep/ioctl_linux.c
Merging iio/togreg (55c45baaaf78 iio: adc: rockchip_saradc: Make use of the helper function devm_platform_ioremap_resource())
Merging mux/for-next (3516bd729358 Merge tag 's390-5.11-3' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux)
Merging icc/icc-next (13404ac8882f interconnect: qcom: sdm660: Add missing a2noc qos clocks)
Merging dmaengine/next (6880fa6c5660 Linux 5.15-rc1)
Merging cgroup/for-next (7ee285395b21 cgroup: Make rebind_subsystems() disable v2 controllers all at once)
Merging scsi/for-next (41d7acab7706 Merge branch 'fixes' into for-next)
Merging scsi-mkp/for-next (efe1dc571a5b scsi: lpfc: Fix mailbox command failure during driver initialization)
Merging vhost/linux-next (be9c6bad9b46 vdpa: potential uninitialized return in vhost_vdpa_va_map())
Merging rpmsg/for-next (99fdaca991f7 Merge branches 'hwspinlock-next', 'rpmsg-next' and 'rproc-next' into for-next)
Merging gpio/for-next (7ac554888233 MAINTAINERS: Remove reference to non-existing file)
Merging gpio-brgl/gpio/for-next (7687a5b0ee93 gpio: modepin: Add driver support for modepin GPIO controller)
Merging gpio-intel/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging pinctrl/for-next (3b63bcc2a41d Merge branch 'devel' into for-next)
Merging pinctrl-intel/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging pinctrl-renesas/renesas-pinctrl (075667cc6c29 pinctrl: renesas: No need to initialise global statics)
Merging pinctrl-samsung/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging pwm/for-next (3f2b16734914 pwm: mtk-disp: Implement atomic API .get_state())
Merging userns/for-next (a3be01837fc9 Merge of ucount-fixes-for-5.14, siginfo-si_trapno-for-v5.15, and exit-cleanups-for-v5.15 for testing in linux-next)
CONFLICT (content): Merge conflict in include/linux/sched/signal.h
Merging ktest/for-next (170f4869e662 ktest.pl: Fix the logic for truncating the size of the log file for email)
Merging kselftest/next (6880fa6c5660 Linux 5.15-rc1)
Merging livepatching/for-next (cd2d68f2d6b2 Merge branch 'for-5.15/cpu-hotplug' into for-next)
Merging coresight/next (1efbcec2ef8c coresight: cti: Reduce scope for the variable “cs_fwnode” in cti_plat_create_connection())
Merging rtc/rtc-next (6880fa6c5660 Linux 5.15-rc1)
Merging nvdimm/libnvdimm-for-next (bdd3c50d83bf dax: remove bdev_dax_supported)
Merging at24/at24/for-next (762925405482 dt-bindings: at24: add ON Semi CAT24C04 and CAT24C05)
Merging ntb/ntb-next (f96cb827ce49 ntb: ntb_pingpong: remove redundant initialization of variables msg_data and spad_data)
Merging seccomp/for-next/seccomp (b4d8a58f8dcf seccomp: Fix setting loaded filter count during TSYNC)
Merging kspp/for-next/kspp (0c91d23b6783 treewide: Replace 0-element memcpy() destinations with flexible arrays)
Merging cisco/for-next (9e98c678c2d6 Linux 5.1-rc1)
Merging gnss/gnss-next (0f79ce970e79 gnss: drop stray semicolons)
Merging fsi/next (9ab1428dfe2c fsi/sbefifo: Fix reset timeout)
Merging slimbus/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging nvmem/for-next (536267aafb8a nvmem: core: Add stubs for nvmem_cell_read_variable_le_u32/64 if !CONFIG_NVMEM)
Merging xarray/main (2c7e57a02708 idr test suite: Improve reporting from idr_find_test_1)
Merging hyperv/hyperv-next (9d68cd9120e4 hv_utils: Set the maximum packet size for VSS driver to the length of the receive buffer)
Merging auxdisplay/auxdisplay (24ebc044c72e auxdisplay: Replace symbolic permissions with octal permissions)
Merging kgdb/kgdb/for-next (f8416aa29185 kernel: debug: Convert to SPDX identifier)
Merging hmm/hmm (6880fa6c5660 Linux 5.15-rc1)
Merging fpga/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging kunit/test (6880fa6c5660 Linux 5.15-rc1)
Merging cfi/cfi/next (ff1176468d36 Linux 5.14-rc3)
Merging kunit-next/kunit (3b29021ddd10 kunit: tool: allow filtering test cases via glob)
Merging trivial/for-next (9ff9b0d392ea Merge tag 'net-next-5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next)
Merging mhi/mhi-next (813272ed5238 Merge 5.14-rc5 into char-misc-next)
Merging memblock/for-next (e888fa7bb882 memblock: Check memory add/cap ordering)
Merging init/init-user-pointers (38b082236e77 initramfs: use vfs_utimes in do_copy)
Merging counters/counters (e71ba9452f0b Linux 5.11-rc2)
Merging rust/rust-next (5d3986cf8ed6 MAINTAINERS: Rust)
CONFLICT (content): Merge conflict in include/linux/kallsyms.h
CONFLICT (content): Merge conflict in Makefile
Applying: fixup for rust integration with Makefile.clang creation
Merging cxl/next (ed97afb53365 cxl/pci: Disambiguate cxl_pci further from cxl_mem)
Merging folio/for-next (1a90e9dae32c mm/writeback: Add folio_write_one)
CONFLICT (content): Merge conflict in mm/util.c
CONFLICT (content): Merge conflict in mm/rmap.c
CONFLICT (content): Merge conflict in mm/page-writeback.c
CONFLICT (content): Merge conflict in mm/memcontrol.c
CONFLICT (content): Merge conflict in mm/filemap.c
CONFLICT (content): Merge conflict in include/linux/memcontrol.h
CONFLICT (modify/delete): fs/cachefiles/rdwr.c deleted in HEAD and modified in folio/for-next. Version folio/for-next of fs/cachefiles/rdwr.c left in tree.
$ git rm -f fs/cachefiles/rdwr.c
Applying: fix up for "9p: Convert to using the netfs helper lib to do reads and caching"
Merging akpm-current/current (84dda76fe9a8 ipc/ipc_sysctl.c: remove fallback for !CONFIG_PROC_SYSCTL)
$ git checkout -b akpm remotes/origin/akpm/master
$ git rebase --onto master remotes/origin/akpm/master-base
Merging akpm/master (51dacaa42e0d mm: unexport {,un}lock_page_memcg)

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

^ permalink raw reply	[relevance 2%]

* Re: [PATCH] net/mlx5: DR, Prefer kcalloc over open coded arithmetic
  2021-09-21  4:06  7% ` Kees Cook
@ 2021-09-25  7:28  7%   ` Len Baker
  0 siblings, 0 replies; 200+ results
From: Len Baker @ 2021-09-25  7:28 UTC (permalink / raw)
  To: Kees Cook
  Cc: Len Baker, Saeed Mahameed, Leon Romanovsky, David S. Miller,
	Jakub Kicinski, Yevgeny Kliteynik, Alex Vesker, Erez Shitrit,
	Jianbo Liu, netdev, linux-rdma, linux-hardening, linux-kernel

Hi,

On Mon, Sep 20, 2021 at 09:06:35PM -0700, Kees Cook wrote:
> >
> > -	ref_actions = kzalloc(sizeof(*ref_actions) * num_of_dests * 2, GFP_KERNEL);
> > +	if (unlikely(check_mul_overflow(num_of_dests, 2u, &ref_act_cnt)))
> > +		goto free_hw_dests;
> > +
> > +	ref_actions = kcalloc(ref_act_cnt, sizeof(*ref_actions), GFP_KERNEL);
>
> In the future, consider array3_size(), but this is fine too. :)

Ok, thanks for the advise.

Regards,
Len

^ permalink raw reply	[relevance 7%]

* Re: [PATCH] platform/x86: thinkpad_acpi: Prefer struct_size over open coded arithmetic
  2021-09-21 13:46  6%   ` Hans de Goede
  2021-09-21 15:15  7%     ` Greg KH
@ 2021-09-25 10:37  7%     ` Len Baker
  1 sibling, 0 replies; 200+ results
From: Len Baker @ 2021-09-25 10:37 UTC (permalink / raw)
  To: Hans de Goede, Kees Cook
  Cc: Len Baker, Henrique de Moraes Holschuh, Mark Gross,
	Gustavo A. R. Silva, ibm-acpi-devel, platform-driver-x86,
	linux-hardening, linux-kernel

Hi,

On Tue, Sep 21, 2021 at 03:46:23PM +0200, Hans de Goede wrote:
> On 9/20/21 7:58 AM, Kees Cook wrote:
> > On Sat, Sep 18, 2021 at 05:05:00PM +0200, Len Baker wrote:
> >>
> >>  static struct attribute_set *create_attr_set(unsigned int max_members,
> >> @@ -1020,13 +1020,11 @@ static struct attribute_set *create_attr_set(unsigned int max_members,
> >>  		return NULL;
> >>
> >>  	/* Allocates space for implicit NULL at the end too */
> >> -	sobj = kzalloc(sizeof(struct attribute_set_obj) +
> >> -		    max_members * sizeof(struct attribute *),
> >> -		    GFP_KERNEL);
> >> +	sobj = kzalloc(struct_size(sobj, a, max_members + 1), GFP_KERNEL);
> >
> > Whoa, this needs a lot more detail in the changelog if this is actually
> > correct. The original code doesn't seem to match the comment? (Where is
> > the +1?) So is this also a bug-fix?
>
> Kees, at first I thought you were spot-on with this comment, but the
> truth is more subtle. struct attribute_set_obj was:
>
> struct attribute_set_obj {
>         struct attribute_set s;
>         struct attribute *a;
> } __attribute__((packed));
>
> Another way of looking at this, which makes things more clear is as:
>
> struct attribute_set_obj {
>         struct attribute_set s;
>         struct attribute *a[1];
> } __attribute__((packed));
>
> So the sizeof(struct attribute_set_obj) in the original kzalloc call
> included room for 1 "extra" pointer which is reserved for the terminating
> NULL pointer.
>
> Changing the struct to:
>
> struct attribute_set_obj {
>         struct attribute_set s;
>         struct attribute *a[];
> } __attribute__((packed));
>
> Is equivalent to changing it to:
>
> struct attribute_set_obj {
>         struct attribute_set s;
>         struct attribute *a[0];
> } __attribute__((packed));
>
> So the change in the struct declaration reduces the sizeof(struct attribute_set_obj)
> by the size of 1 pointer, making the +1 necessary.
>
> So AFAICT there is actually no functional change here.

Hans, thanks for the explanation. Yes, this is the reason I added the "plus 1".
Not only based on the comment :)

Regards,
Len

^ permalink raw reply	[relevance 7%]

* Re: [PATCH] platform/x86: thinkpad_acpi: Prefer struct_size over open coded arithmetic
  2021-09-21 15:15  7%     ` Greg KH
  2021-09-21 15:38  7%       ` Hans de Goede
@ 2021-09-25 10:40  7%       ` Len Baker
  2021-09-25 11:07  7%         ` Greg KH
  1 sibling, 1 reply; 200+ results
From: Len Baker @ 2021-09-25 10:40 UTC (permalink / raw)
  To: Greg KH
  Cc: Hans de Goede, Kees Cook, Len Baker, Henrique de Moraes Holschuh,
	Mark Gross, Gustavo A. R. Silva, ibm-acpi-devel,
	platform-driver-x86, linux-hardening, linux-kernel

Hi,

On Tue, Sep 21, 2021 at 05:15:35PM +0200, Greg KH wrote:
>
> First off, why is a single driver doing so many odd things with
> attribute groups?  Why not just use them the way that the rest of the
> kernel does?  Why does this driver need this special handling and no one
> else does?

Is [1] the correct way to deal with devices attributes? I think so.

[1] https://www.kernel.org/doc/html/latest/driver-api/driver-model/driver.html#attributes

>
> I think the default way of handling if an attribute is enabled or not,
> should suffice here, and make things much simpler overall as all of this
> crazy attribute handling can just be removed.

Sorry but what is the default way? Would it be correct to check if the
file exists?

>
> Bonus would also be that I think it would fix the race conditions that
> happen when trying to create attributes after the device is bound to the
> driver that I think the existing driver has today.
>
> > > (I see the caller uses +2? Why? It seems to be using each of hotkey_attributes,
> > > plus 1 more attr, plus a final NULL?)
> >
> > The +2 is actually for 2 extra attributes (making the total number
> > of extra attributes +3 because the sizeof(struct attribute_set_obj)
> > already includes 1 extra).
> >
> > FWIW these 2 extra attributes are for devices with a
> > a physical rfkill on/off switch and for the device being
> > a convertible capable of reporting laptop- vs tablet-mode.
>
> Again, using the default way to show (or not show) attributes should
> solve this issue.  Why not just use that instead?

What is the default way? Would it be correct to use device_create_file()
and device_remove_file()?

Sorry if it is a trivial question but I am a kernel newbie :) I have
a lot to learn. Any suggestion or a good driver to look at would be
greatly appreciated.

Thanks,
Len

^ permalink raw reply	[relevance 7%]

* Re: [PATCH] platform/x86: thinkpad_acpi: Prefer struct_size over open coded arithmetic
  2021-09-25 10:40  7%       ` Len Baker
@ 2021-09-25 11:07  7%         ` Greg KH
  2021-09-25 13:33  7%           ` Len Baker
  0 siblings, 1 reply; 200+ results
From: Greg KH @ 2021-09-25 11:07 UTC (permalink / raw)
  To: Len Baker
  Cc: Hans de Goede, Kees Cook, Henrique de Moraes Holschuh,
	Mark Gross, Gustavo A. R. Silva, ibm-acpi-devel,
	platform-driver-x86, linux-hardening, linux-kernel

On Sat, Sep 25, 2021 at 12:40:44PM +0200, Len Baker wrote:
> Hi,
> 
> On Tue, Sep 21, 2021 at 05:15:35PM +0200, Greg KH wrote:
> >
> > First off, why is a single driver doing so many odd things with
> > attribute groups?  Why not just use them the way that the rest of the
> > kernel does?  Why does this driver need this special handling and no one
> > else does?
> 
> Is [1] the correct way to deal with devices attributes? I think so.
> 
> [1] https://www.kernel.org/doc/html/latest/driver-api/driver-model/driver.html#attributes

No, do not use driver_create_file(), see:
	http://kroah.com/log/blog/2013/06/26/how-to-create-a-sysfs-file-correctly/
as a more up to date thing.

Someone should fix that in-kernel documentation one day :)

> > I think the default way of handling if an attribute is enabled or not,
> > should suffice here, and make things much simpler overall as all of this
> > crazy attribute handling can just be removed.
> 
> Sorry but what is the default way? Would it be correct to check if the
> file exists?

Use the is_visable() callback for the attribute group to enable/disable
the creation of the sysfs file.

> > Bonus would also be that I think it would fix the race conditions that
> > happen when trying to create attributes after the device is bound to the
> > driver that I think the existing driver has today.
> >
> > > > (I see the caller uses +2? Why? It seems to be using each of hotkey_attributes,
> > > > plus 1 more attr, plus a final NULL?)
> > >
> > > The +2 is actually for 2 extra attributes (making the total number
> > > of extra attributes +3 because the sizeof(struct attribute_set_obj)
> > > already includes 1 extra).
> > >
> > > FWIW these 2 extra attributes are for devices with a
> > > a physical rfkill on/off switch and for the device being
> > > a convertible capable of reporting laptop- vs tablet-mode.
> >
> > Again, using the default way to show (or not show) attributes should
> > solve this issue.  Why not just use that instead?
> 
> What is the default way? Would it be correct to use device_create_file()
> and device_remove_file()?

Put all the attributes into an attribute group and attach it to the
driver.  The driver core will create/remove the files when needed.  The
link above should help explain that a bit better, and I can point you at
examples if needed.

Does that help?

thanks,

greg k-h

^ permalink raw reply	[relevance 7%]

* [PATCH v2] scsi: advansys: Prefer struct_size over open coded arithmetic
@ 2021-09-25 11:42 12% Len Baker
  2021-09-27 14:48  7% ` Gustavo A. R. Silva
                   ` (2 more replies)
  0 siblings, 3 replies; 200+ results
From: Len Baker @ 2021-09-25 11:42 UTC (permalink / raw)
  To: Matthew Wilcox, Hannes Reinecke, James E.J. Bottomley,
	Martin K. Petersen
  Cc: Len Baker, Gustavo A. R. Silva, Kees Cook, linux-hardening,
	linux-scsi, linux-kernel

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 struct_size() helper to do the arithmetic instead of the
argument "size + count * size" in the kzalloc() function.

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

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

Signed-off-by: Len Baker <len.baker@gmx.com>
---
Changelog v1 -> v2
- Rebase against v5.15-rc2
- Remove the unnecessary "size" variable (Gustavo A. R. Silva).
- Update the commit changelog to inform that this code was detected
  using a Coccinelle script (Gustavo A. R. Silva).

 drivers/scsi/advansys.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/scsi/advansys.c b/drivers/scsi/advansys.c
index ffb391967573..e341b3372482 100644
--- a/drivers/scsi/advansys.c
+++ b/drivers/scsi/advansys.c
@@ -7477,8 +7477,8 @@ static int asc_build_req(struct asc_board *boardp, struct scsi_cmnd *scp,
 			return ASC_ERROR;
 		}

-		asc_sg_head = kzalloc(sizeof(asc_scsi_q->sg_head) +
-			use_sg * sizeof(struct asc_sg_list), GFP_ATOMIC);
+		asc_sg_head = kzalloc(struct_size(asc_sg_head, sg_list, use_sg),
+				      GFP_ATOMIC);
 		if (!asc_sg_head) {
 			scsi_dma_unmap(scp);
 			set_host_byte(scp, DID_SOFT_ERROR);
--
2.25.1


^ permalink raw reply related	[relevance 12%]

* [PATCH v2] writeback: prefer struct_size over open coded arithmetic
@ 2021-09-25 11:43 12% Len Baker
  2021-09-27 14:51  7% ` Gustavo A. R. Silva
  2021-10-20 14:40  7% ` Jan Kara
  0 siblings, 2 replies; 200+ results
From: Len Baker @ 2021-09-25 11:43 UTC (permalink / raw)
  To: Alexander Viro
  Cc: Len Baker, Kees Cook, Gustavo A. R. Silva, linux-fsdevel,
	linux-hardening, linux-kernel

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.

In this case these are not actually dynamic sizes: all the operands
involved in the calculation are constant values. However it is better to
refactor them anyway, just to keep the open-coded math idiom out of
code.

So, use the struct_size() helper to do the arithmetic instead of the
argument "size + count * size" in the kzalloc() functions.

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

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

Signed-off-by: Len Baker <len.baker@gmx.com>
---
Changelog v1 -> v2
- Rebase against v5.15-rc2
- Refactor another instance in the same file (Gustavo A. R. Silva).
- Update the commit changelog to inform that this code was detected
  using a Coccinelle script (Gustavo A. R. Silva).

 fs/fs-writeback.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c
index 81ec192ce067..5eb0ada7468c 100644
--- a/fs/fs-writeback.c
+++ b/fs/fs-writeback.c
@@ -566,7 +566,7 @@ static void inode_switch_wbs(struct inode *inode, int new_wb_id)
 	if (atomic_read(&isw_nr_in_flight) > WB_FRN_MAX_IN_FLIGHT)
 		return;

-	isw = kzalloc(sizeof(*isw) + 2 * sizeof(struct inode *), GFP_ATOMIC);
+	isw = kzalloc(struct_size(isw, inodes, 2), GFP_ATOMIC);
 	if (!isw)
 		return;

@@ -624,8 +624,8 @@ bool cleanup_offline_cgwb(struct bdi_writeback *wb)
 	int nr;
 	bool restart = false;

-	isw = kzalloc(sizeof(*isw) + WB_MAX_INODES_PER_ISW *
-		      sizeof(struct inode *), GFP_KERNEL);
+	isw = kzalloc(struct_size(isw, inodes, WB_MAX_INODES_PER_ISW),
+		      GFP_KERNEL);
 	if (!isw)
 		return restart;

--
2.25.1


^ permalink raw reply related	[relevance 12%]

* Re: [PATCH] platform/x86: thinkpad_acpi: Prefer struct_size over open coded arithmetic
  2021-09-25 11:07  7%         ` Greg KH
@ 2021-09-25 13:33  7%           ` Len Baker
  0 siblings, 0 replies; 200+ results
From: Len Baker @ 2021-09-25 13:33 UTC (permalink / raw)
  To: Greg KH
  Cc: Len Baker, Hans de Goede, Kees Cook, Henrique de Moraes Holschuh,
	Mark Gross, Gustavo A. R. Silva, ibm-acpi-devel,
	platform-driver-x86, linux-hardening, linux-kernel

Hi Greg,

On Sat, Sep 25, 2021 at 01:07:20PM +0200, Greg KH wrote:
> On Sat, Sep 25, 2021 at 12:40:44PM +0200, Len Baker wrote:
> > Hi,
> >
> > On Tue, Sep 21, 2021 at 05:15:35PM +0200, Greg KH wrote:
> > >
> > > First off, why is a single driver doing so many odd things with
> > > attribute groups?  Why not just use them the way that the rest of the
> > > kernel does?  Why does this driver need this special handling and no one
> > > else does?
> >
> > Is [1] the correct way to deal with devices attributes? I think so.
> >
> > [1] https://www.kernel.org/doc/html/latest/driver-api/driver-model/driver.html#attributes
>
> No, do not use driver_create_file(), see:
> 	http://kroah.com/log/blog/2013/06/26/how-to-create-a-sysfs-file-correctly/
> as a more up to date thing.

Ok, understood. Thanks.

>
> Someone should fix that in-kernel documentation one day :)
>
> > > I think the default way of handling if an attribute is enabled or not,
> > > should suffice here, and make things much simpler overall as all of this
> > > crazy attribute handling can just be removed.
> >
> > Sorry but what is the default way? Would it be correct to check if the
> > file exists?
>
> Use the is_visable() callback for the attribute group to enable/disable
> the creation of the sysfs file.

Ok, I will take a look at it.

>
> > > Bonus would also be that I think it would fix the race conditions that
> > > happen when trying to create attributes after the device is bound to the
> > > driver that I think the existing driver has today.
> > >
> > > > > (I see the caller uses +2? Why? It seems to be using each of hotkey_attributes,
> > > > > plus 1 more attr, plus a final NULL?)
> > > >
> > > > The +2 is actually for 2 extra attributes (making the total number
> > > > of extra attributes +3 because the sizeof(struct attribute_set_obj)
> > > > already includes 1 extra).
> > > >
> > > > FWIW these 2 extra attributes are for devices with a
> > > > a physical rfkill on/off switch and for the device being
> > > > a convertible capable of reporting laptop- vs tablet-mode.
> > >
> > > Again, using the default way to show (or not show) attributes should
> > > solve this issue.  Why not just use that instead?
> >
> > What is the default way? Would it be correct to use device_create_file()
> > and device_remove_file()?
>
> Put all the attributes into an attribute group and attach it to the
> driver.  The driver core will create/remove the files when needed.  The
> link above should help explain that a bit better, and I can point you at
> examples if needed.
>
> Does that help?

Yes, things are clearer to me now. Also, since the only way to learn is
to do so, I will take the task to switch this driver to the common use of
attributes.

Thank you very much for your time and guidance.

Regards,
Len

^ permalink raw reply	[relevance 7%]

* [PATCH v2] nl80211: prefer struct_size over open coded arithmetic
@ 2021-09-25 13:55 11% Len Baker
  0 siblings, 0 replies; 200+ results
From: Len Baker @ 2021-09-25 13:55 UTC (permalink / raw)
  To: Johannes Berg, David S. Miller, Jakub Kicinski
  Cc: Len Baker, Kees Cook, Gustavo A. R. Silva, linux-wireless,
	netdev, linux-hardening, linux-kernel

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 struct_size() helper to do the arithmetic instead of the
argument "size + count * size" in the kzalloc() functions.

Also, take the opportunity to refactor the memcpy() call to use the
flex_array_size() helper.

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

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

Signed-off-by: Len Baker <len.baker@gmx.com>
---
Changelog v1 -> v2
- Rebase against v5.15-rc2
- Remove the unnecessary "size" variable (Gustavo A. R. Silva).
- Update the commit changelog to inform that this code was detected
  using a Coccinelle script (Gustavo A. R. Silva).

 net/wireless/nl80211.c | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c
index bf7cd4752547..fa7ff61c5b07 100644
--- a/net/wireless/nl80211.c
+++ b/net/wireless/nl80211.c
@@ -11767,8 +11767,8 @@ static int nl80211_set_cqm_rssi(struct genl_info *info,
 	if (n_thresholds) {
 		struct cfg80211_cqm_config *cqm_config;

-		cqm_config = kzalloc(sizeof(struct cfg80211_cqm_config) +
-				     n_thresholds * sizeof(s32), GFP_KERNEL);
+		cqm_config = kzalloc(struct_size(cqm_config, rssi_thresholds,
+						 n_thresholds), GFP_KERNEL);
 		if (!cqm_config) {
 			err = -ENOMEM;
 			goto unlock;
@@ -11777,7 +11777,8 @@ static int nl80211_set_cqm_rssi(struct genl_info *info,
 		cqm_config->rssi_hyst = hysteresis;
 		cqm_config->n_rssi_thresholds = n_thresholds;
 		memcpy(cqm_config->rssi_thresholds, thresholds,
-		       n_thresholds * sizeof(s32));
+		       flex_array_size(cqm_config, rssi_thresholds,
+				       n_thresholds));

 		wdev->cqm_config = cqm_config;
 	}
@@ -15081,9 +15082,7 @@ static int nl80211_set_sar_specs(struct sk_buff *skb, struct genl_info *info)
 	if (specs > rdev->wiphy.sar_capa->num_freq_ranges)
 		return -EINVAL;

-	sar_spec = kzalloc(sizeof(*sar_spec) +
-			   specs * sizeof(struct cfg80211_sar_sub_specs),
-			   GFP_KERNEL);
+	sar_spec = kzalloc(struct_size(sar_spec, sub_specs, specs), GFP_KERNEL);
 	if (!sar_spec)
 		return -ENOMEM;

--
2.25.1


^ permalink raw reply related	[relevance 11%]

* [PATCH v3] docs: deprecated.rst: Clarify open-coded arithmetic with literals
@ 2021-09-25 14:34 11% Len Baker
  2021-10-20 23:52  7% ` Gustavo A. R. Silva
  2021-10-26 15:44  7% ` Jonathan Corbet
  0 siblings, 2 replies; 200+ results
From: Len Baker @ 2021-09-25 14:34 UTC (permalink / raw)
  To: Jonathan Corbet, Kees Cook
  Cc: Len Baker, Gustavo A. R. Silva, Joe Perches, linux-doc,
	linux-kernel, linux-hardening

Although using literals for size calculation in allocator arguments may
be harmless due to compiler warnings in case of overflows, it is better
to refactor the code to avoid the use of open-coded arithmetic.

So, clarify the preferred way in these cases.

Suggested-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Len Baker <len.baker@gmx.com>
---
Changelog v1 -> v2
 - Clarify the sentence by changing "keep <foo> out" with "avoid <foo>"
   (Joe Perches).

Changelog v2 -> v3
 - Reword the sentence to comunicate better (Jonathan Corbet).

The previous version can be found here [1].

[1] https://lore.kernel.org/linux-hardening/20210829144716.2931-1-len.baker@gmx.com/

 Documentation/process/deprecated.rst | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/Documentation/process/deprecated.rst b/Documentation/process/deprecated.rst
index 8ced754a5a0f..388cb19f5dbb 100644
--- a/Documentation/process/deprecated.rst
+++ b/Documentation/process/deprecated.rst
@@ -59,8 +59,9 @@ 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. (One exception to this is literal values where the compiler
-can warn if they might overflow. Though using literals for arguments as
-suggested below is also harmless.)
+can warn if they might overflow. However, the preferred way in these
+cases is to refactor the code as suggested below to avoid the open-coded
+arithmetic.)

 For example, do not use ``count * size`` as an argument, as in::

--
2.25.1


^ permalink raw reply related	[relevance 11%]

* [PATCH] thermal: intel_powerclamp: Use bitmap_zalloc/bitmap_free when applicable
@ 2021-09-26  7:17  5% Christophe JAILLET
  2021-10-05 14:42  0% ` Rafael J. Wysocki
  0 siblings, 1 reply; 200+ results
From: Christophe JAILLET @ 2021-09-26  7:17 UTC (permalink / raw)
  To: rui.zhang, daniel.lezcano, amitk
  Cc: linux-pm, linux-kernel, kernel-janitors, Christophe JAILLET

'cpu_clamping_mask' is a bitmap. So use 'bitmap_zalloc()' and
'bitmap_free()' to simplify code, improve the semantic of the code and
avoid some open-coded arithmetic in allocator arguments.

Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
---
 drivers/thermal/intel/intel_powerclamp.c | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/drivers/thermal/intel/intel_powerclamp.c b/drivers/thermal/intel/intel_powerclamp.c
index a5b58ea89cc6..9b68489a2356 100644
--- a/drivers/thermal/intel/intel_powerclamp.c
+++ b/drivers/thermal/intel/intel_powerclamp.c
@@ -705,10 +705,8 @@ static enum cpuhp_state hp_state;
 static int __init powerclamp_init(void)
 {
 	int retval;
-	int bitmap_size;
 
-	bitmap_size = BITS_TO_LONGS(num_possible_cpus()) * sizeof(long);
-	cpu_clamping_mask = kzalloc(bitmap_size, GFP_KERNEL);
+	cpu_clamping_mask = bitmap_zalloc(num_possible_cpus(), GFP_KERNEL);
 	if (!cpu_clamping_mask)
 		return -ENOMEM;
 
@@ -753,7 +751,7 @@ static int __init powerclamp_init(void)
 exit_unregister:
 	cpuhp_remove_state_nocalls(hp_state);
 exit_free:
-	kfree(cpu_clamping_mask);
+	bitmap_free(cpu_clamping_mask);
 	return retval;
 }
 module_init(powerclamp_init);
@@ -764,7 +762,7 @@ static void __exit powerclamp_exit(void)
 	cpuhp_remove_state_nocalls(hp_state);
 	free_percpu(worker_data);
 	thermal_cooling_device_unregister(cooling_dev);
-	kfree(cpu_clamping_mask);
+	bitmap_free(cpu_clamping_mask);
 
 	cancel_delayed_work_sync(&poll_pkg_cstate_work);
 	debugfs_remove_recursive(debug_dir);
-- 
2.30.2


^ permalink raw reply related	[relevance 5%]

* [PATCH v2] platform/x86: thinkpad_acpi: Switch to common use of attributes
@ 2021-09-26 11:19  5% Len Baker
  2021-09-26 11:32  0% ` Greg Kroah-Hartman
  0 siblings, 1 reply; 200+ results
From: Len Baker @ 2021-09-26 11:19 UTC (permalink / raw)
  To: Henrique de Moraes Holschuh, Hans de Goede, Mark Gross
  Cc: Len Baker, Gustavo A. R. Silva, Kees Cook, ibm-acpi-devel,
	platform-driver-x86, linux-hardening, linux-kernel,
	Greg Kroah-Hartman

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, to avoid open-coded arithmetic in the kzalloc() call inside the
create_attr_set() function the code must be refactored. Using the
struct_size() helper is the fast solution but it is better to switch
this code to common use of attributes.

Then, remove all the custom code to manage hotkey attributes and use the
attribute_group structure instead, refactoring the code accordingly.
Also, to manage the optional hotkey attributes (hotkey_tablet_mode and
hotkey_radio_sw) use the is_visible callback from the same structure.

Moreover, now the hotkey_init_tablet_mode() function never returns a
negative number. So, the check after the call can be safely removed.

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

Suggested-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Len Baker <len.baker@gmx.com>
---
Hi,

Following the suggestions made by Greg I have switch the code to common
use of attributes. However this code is untested. If someone could test
it would be great.

Thanks,
Len

Changelog v1 -> v2
- Don't use the struct_size helper and switch the code to common use of
  attributes (Greg Kroah-Hartman).

 drivers/platform/x86/thinkpad_acpi.c | 139 +++++----------------------
 1 file changed, 26 insertions(+), 113 deletions(-)

diff --git a/drivers/platform/x86/thinkpad_acpi.c b/drivers/platform/x86/thinkpad_acpi.c
index 50ff04c84650..07b9710d500e 100644
--- a/drivers/platform/x86/thinkpad_acpi.c
+++ b/drivers/platform/x86/thinkpad_acpi.c
@@ -1001,79 +1001,6 @@ static struct platform_driver tpacpi_hwmon_pdriver = {
  * sysfs support helpers
  */

-struct attribute_set {
-	unsigned int members, max_members;
-	struct attribute_group group;
-};
-
-struct attribute_set_obj {
-	struct attribute_set s;
-	struct attribute *a;
-} __attribute__((packed));
-
-static struct attribute_set *create_attr_set(unsigned int max_members,
-						const char *name)
-{
-	struct attribute_set_obj *sobj;
-
-	if (max_members == 0)
-		return NULL;
-
-	/* Allocates space for implicit NULL at the end too */
-	sobj = kzalloc(sizeof(struct attribute_set_obj) +
-		    max_members * sizeof(struct attribute *),
-		    GFP_KERNEL);
-	if (!sobj)
-		return NULL;
-	sobj->s.max_members = max_members;
-	sobj->s.group.attrs = &sobj->a;
-	sobj->s.group.name = name;
-
-	return &sobj->s;
-}
-
-#define destroy_attr_set(_set) \
-	kfree(_set)
-
-/* not multi-threaded safe, use it in a single thread per set */
-static int add_to_attr_set(struct attribute_set *s, struct attribute *attr)
-{
-	if (!s || !attr)
-		return -EINVAL;
-
-	if (s->members >= s->max_members)
-		return -ENOMEM;
-
-	s->group.attrs[s->members] = attr;
-	s->members++;
-
-	return 0;
-}
-
-static int add_many_to_attr_set(struct attribute_set *s,
-			struct attribute **attr,
-			unsigned int count)
-{
-	int i, res;
-
-	for (i = 0; i < count; i++) {
-		res = add_to_attr_set(s, attr[i]);
-		if (res)
-			return res;
-	}
-
-	return 0;
-}
-
-static void delete_attr_set(struct attribute_set *s, struct kobject *kobj)
-{
-	sysfs_remove_group(kobj, &s->group);
-	destroy_attr_set(s);
-}
-
-#define register_attr_set_with_sysfs(_attr_set, _kobj) \
-	sysfs_create_group(_kobj, &_attr_set->group)
-
 static int parse_strtoul(const char *buf,
 		unsigned long max, unsigned long *value)
 {
@@ -2042,8 +1969,6 @@ static u32 hotkey_acpi_mask;		/* events enabled in firmware */

 static u16 *hotkey_keycode_map;

-static struct attribute_set *hotkey_dev_attributes;
-
 static void tpacpi_driver_event(const unsigned int hkey_event);
 static void hotkey_driver_event(const unsigned int scancode);
 static void hotkey_poll_setup(const bool may_warn);
@@ -3089,7 +3014,7 @@ static const struct attribute_group adaptive_kbd_attr_group = {

 /* --------------------------------------------------------------------- */

-static struct attribute *hotkey_attributes[] __initdata = {
+static struct attribute *hotkey_attributes[] = {
 	&dev_attr_hotkey_enable.attr,
 	&dev_attr_hotkey_bios_enabled.attr,
 	&dev_attr_hotkey_bios_mask.attr,
@@ -3103,6 +3028,26 @@ static struct attribute *hotkey_attributes[] __initdata = {
 	&dev_attr_hotkey_source_mask.attr,
 	&dev_attr_hotkey_poll_freq.attr,
 #endif
+	NULL
+};
+
+static umode_t hotkey_attr_is_visible(struct kobject *kobj,
+				      struct attribute *attr, int n)
+{
+	if (attr == &dev_attr_hotkey_tablet_mode.attr) {
+		if (!tp_features.hotkey_tablet)
+			return 0;
+	} else if (attr == &dev_attr_hotkey_radio_sw.attr) {
+		if (!tp_features.hotkey_wlsw)
+			return 0;
+	}
+
+	return attr->mode;
+}
+
+static const struct attribute_group hotkey_attr_group = {
+	.is_visible = hotkey_attr_is_visible,
+	.attrs = hotkey_attributes,
 };

 /*
@@ -3161,9 +3106,7 @@ static void hotkey_exit(void)
 	hotkey_poll_stop_sync();
 	mutex_unlock(&hotkey_mutex);
 #endif
-
-	if (hotkey_dev_attributes)
-		delete_attr_set(hotkey_dev_attributes, &tpacpi_pdev->dev.kobj);
+	sysfs_remove_group(&tpacpi_pdev->dev.kobj, &hotkey_attr_group);

 	dbg_printk(TPACPI_DBG_EXIT | TPACPI_DBG_HKEY,
 		   "restoring original HKEY status and mask\n");
@@ -3249,11 +3192,6 @@ static int hotkey_init_tablet_mode(void)
 	pr_info("Tablet mode switch found (type: %s), currently in %s mode\n",
 		type, in_tablet_mode ? "tablet" : "laptop");

-	res = add_to_attr_set(hotkey_dev_attributes,
-			      &dev_attr_hotkey_tablet_mode.attr);
-	if (res)
-		return -1;
-
 	return in_tablet_mode;
 }

@@ -3515,19 +3453,6 @@ static int __init hotkey_init(struct ibm_init_struct *iibm)

 	tpacpi_disable_brightness_delay();

-	/* MUST have enough space for all attributes to be added to
-	 * hotkey_dev_attributes */
-	hotkey_dev_attributes = create_attr_set(
-					ARRAY_SIZE(hotkey_attributes) + 2,
-					NULL);
-	if (!hotkey_dev_attributes)
-		return -ENOMEM;
-	res = add_many_to_attr_set(hotkey_dev_attributes,
-			hotkey_attributes,
-			ARRAY_SIZE(hotkey_attributes));
-	if (res)
-		goto err_exit;
-
 	/* mask not supported on 600e/x, 770e, 770x, A21e, A2xm/p,
 	   A30, R30, R31, T20-22, X20-21, X22-24.  Detected by checking
 	   for HKEY interface version 0x100 */
@@ -3636,18 +3561,9 @@ static int __init hotkey_init(struct ibm_init_struct *iibm)
 		pr_info("radio switch found; radios are %s\n",
 			enabled(status, 0));
 	}
-	if (tp_features.hotkey_wlsw)
-		res = add_to_attr_set(hotkey_dev_attributes,
-				&dev_attr_hotkey_radio_sw.attr);
-
-	res = hotkey_init_tablet_mode();
-	if (res < 0)
-		goto err_exit;

-	tabletsw_state = res;
-
-	res = register_attr_set_with_sysfs(hotkey_dev_attributes,
-					   &tpacpi_pdev->dev.kobj);
+	tabletsw_state = hotkey_init_tablet_mode();
+	res = sysfs_create_group(&tpacpi_pdev->dev.kobj, &hotkey_attr_group);
 	if (res)
 		goto err_exit;

@@ -3746,11 +3662,8 @@ static int __init hotkey_init(struct ibm_init_struct *iibm)
 	return 0;

 err_exit:
-	delete_attr_set(hotkey_dev_attributes, &tpacpi_pdev->dev.kobj);
-	sysfs_remove_group(&tpacpi_pdev->dev.kobj,
-			&adaptive_kbd_attr_group);
-
-	hotkey_dev_attributes = NULL;
+	sysfs_remove_group(&tpacpi_pdev->dev.kobj, &hotkey_attr_group);
+	sysfs_remove_group(&tpacpi_pdev->dev.kobj, &adaptive_kbd_attr_group);

 	return (res < 0) ? res : 1;
 }
--
2.25.1


^ permalink raw reply related	[relevance 5%]

* Re: [PATCH v2] platform/x86: thinkpad_acpi: Switch to common use of attributes
  2021-09-26 11:19  5% [PATCH v2] platform/x86: thinkpad_acpi: Switch to common use of attributes Len Baker
@ 2021-09-26 11:32  0% ` Greg Kroah-Hartman
  2021-09-28 14:55  0%   ` Hans de Goede
  0 siblings, 1 reply; 200+ results
From: Greg Kroah-Hartman @ 2021-09-26 11:32 UTC (permalink / raw)
  To: Len Baker
  Cc: Henrique de Moraes Holschuh, Hans de Goede, Mark Gross,
	Gustavo A. R. Silva, Kees Cook, ibm-acpi-devel,
	platform-driver-x86, linux-hardening, linux-kernel

On Sun, Sep 26, 2021 at 01:19:08PM +0200, Len Baker 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, to avoid open-coded arithmetic in the kzalloc() call inside the
> create_attr_set() function the code must be refactored. Using the
> struct_size() helper is the fast solution but it is better to switch
> this code to common use of attributes.
> 
> Then, remove all the custom code to manage hotkey attributes and use the
> attribute_group structure instead, refactoring the code accordingly.
> Also, to manage the optional hotkey attributes (hotkey_tablet_mode and
> hotkey_radio_sw) use the is_visible callback from the same structure.
> 
> Moreover, now the hotkey_init_tablet_mode() function never returns a
> negative number. So, the check after the call can be safely removed.
> 
> [1] https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments
> 
> Suggested-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> Signed-off-by: Len Baker <len.baker@gmx.com>
> ---
> Hi,
> 
> Following the suggestions made by Greg I have switch the code to common
> use of attributes. However this code is untested. If someone could test
> it would be great.

Much better, thanks.

But, I have a few questions here:

> @@ -3161,9 +3106,7 @@ static void hotkey_exit(void)
>  	hotkey_poll_stop_sync();
>  	mutex_unlock(&hotkey_mutex);
>  #endif
> -
> -	if (hotkey_dev_attributes)
> -		delete_attr_set(hotkey_dev_attributes, &tpacpi_pdev->dev.kobj);
> +	sysfs_remove_group(&tpacpi_pdev->dev.kobj, &hotkey_attr_group);

Why do you have to manually add/remove these groups still?

A huge hint that something is going wrong is when you have to call a
sysfs_*() call from within a driver.  There should be proper driver_*()
calls for you instead to get the job done.

As this is a platform device, why not set the dev_groups variable in the
platform_driver field so that these attribute groups get added and
removed automatically?

An example commit to look at that shows how this was converted for one
driver is 5bd08a4ae3d0 ("platform: x86: hp-wmi: convert platform driver
to use dev_groups").  See if that helps here as well.

thanks,

greg k-h

^ permalink raw reply	[relevance 0%]

* [PATCH] iommu/tegra-smmu: Use devm_bitmap_zalloc when applicable
@ 2021-09-26 13:07  5% Christophe JAILLET
  2021-10-07 18:02  0% ` Thierry Reding
  2021-10-18 11:39  0% ` Joerg Roedel
  0 siblings, 2 replies; 200+ results
From: Christophe JAILLET @ 2021-09-26 13:07 UTC (permalink / raw)
  To: thierry.reding, vdumpa, joro, will, jonathanh
  Cc: linux-tegra, iommu, linux-kernel, kernel-janitors, Christophe JAILLET

'smmu->asids' is a bitmap. So use 'devm_kzalloc()' to simplify code,
improve the semantic of the code and avoid some open-coded arithmetic in
allocator arguments.

Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
---
 drivers/iommu/tegra-smmu.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/drivers/iommu/tegra-smmu.c b/drivers/iommu/tegra-smmu.c
index 0a281833f611..e900e3c46903 100644
--- a/drivers/iommu/tegra-smmu.c
+++ b/drivers/iommu/tegra-smmu.c
@@ -1079,7 +1079,6 @@ struct tegra_smmu *tegra_smmu_probe(struct device *dev,
 				    struct tegra_mc *mc)
 {
 	struct tegra_smmu *smmu;
-	size_t size;
 	u32 value;
 	int err;
 
@@ -1097,9 +1096,7 @@ struct tegra_smmu *tegra_smmu_probe(struct device *dev,
 	 */
 	mc->smmu = smmu;
 
-	size = BITS_TO_LONGS(soc->num_asids) * sizeof(long);
-
-	smmu->asids = devm_kzalloc(dev, size, GFP_KERNEL);
+	smmu->asids = devm_bitmap_zalloc(dev, soc->num_asids, GFP_KERNEL);
 	if (!smmu->asids)
 		return ERR_PTR(-ENOMEM);
 
-- 
2.30.2


^ permalink raw reply related	[relevance 5%]

* linux-next: Tree for Sep 27
@ 2021-09-27  5:51  1% Stephen Rothwell
  0 siblings, 0 replies; 200+ results
From: Stephen Rothwell @ 2021-09-27  5:51 UTC (permalink / raw)
  To: Linux Next Mailing List; +Cc: Linux Kernel Mailing List

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

Hi all,

Changes since 20210924:

The thermal tree gained a conflict against Linus' tree.

The bluetooth tree gained a build failure so I used the version from
next-20210924.

The crypto tree gained a build fiailure for which I reverted a commit.

The rtc tree gained a build failure so I used the version from
next-20210924.

Non-merge commits (relative to Linus' tree): 3556
 3567 files changed, 170466 insertions(+), 75336 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 are also quilt-import.log and merge.log
files 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, 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 337 trees (counting Linus' and 91 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 (5816b3e6577e Linux 5.15-rc3)
Merging fixes/fixes (3ca706c189db drm/ttm: fix type mismatch error on sparc64)
Merging kbuild-current/fixes (0664684e1ebd kbuild: Add -Werror=ignored-optimization-argument to CLANG_FLAGS)
Merging arc-current/for-curr (6880fa6c5660 Linux 5.15-rc1)
Merging arm-current/fixes (463dbba4d189 ARM: 9104/2: Fix Keystone 2 kernel mapping regression)
Merging arm64-fixes/for-next/fixes (22b70e6f2da0 arm64: Restore forced disabling of KPTI on ThunderX)
Merging arm-soc-fixes/arm/fixes (3f1c260ffddb MAINTAINERS: Add myself as MStar/Sigmastar Armv7 SoC maintainers)
Merging drivers-memory-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging m68k-current/for-linus (9fde03486402 m68k: Remove set_fs())
Merging powerpc-fixes/fixes (c006a06508db powerpc/xics: Set the IRQ chip data for the ICS native backend)
Merging s390-fixes/fixes (f5711f9df924 s390: remove WARN_DYNAMIC_STACK)
Merging sparc/master (05a59d79793d Merge git://git.kernel.org:/pub/scm/linux/kernel/git/netdev/net)
Merging fscrypt-current/for-stable (80f6e3080bfc fs-verity: fix signed integer overflow with i_size near S64_MAX)
Merging net/master (b193e15ac69d net: prevent user from passing illegal stab size)
Merging bpf/master (a3debf177f21 libbpf: Fix segfault in static linker for objects without BTF)
Merging ipsec/master (93ec1320b017 xfrm: fix rcu lock in xfrm_notify_userpolicy())
Merging netfilter/master (7fe7f3182a0d Merge git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf)
Merging ipvs/master (e9edc188fc76 netfilter: conntrack: serialize hash resizes and cleanups)
Merging wireless-drivers/master (fb8c3a3c5240 ath5k: fix building with LEDS=m)
Merging mac80211/master (313bbd1990b6 mac80211-hwsim: fix late beacon hrtimer handling)
Merging rdma-fixes/for-rc (a86cd017a40a RDMA/usnic: Lock VF with mutex instead of spinlock)
Merging sound-current/for-linus (09d23174402d ALSA: rawmidi: introduce SNDRV_RAWMIDI_IOCTL_USER_PVERSION)
Merging sound-asoc-fixes/for-linus (dc8126121d79 Merge remote-tracking branch 'asoc/for-5.15' into asoc-linus)
Merging regmap-fixes/for-linus (6880fa6c5660 Linux 5.15-rc1)
Merging regulator-fixes/for-linus (f03bf748cb6e Merge remote-tracking branch 'regulator/for-5.15' into regulator-linus)
Merging spi-fixes/for-linus (7dd4ea8ced6c Merge remote-tracking branch 'spi/fix/modalias' into spi-linus)
CONFLICT (content): Merge conflict in drivers/spi/spi-tegra20-slink.c
Merging pci-current/for-linus (e4e737bb5c17 Linux 5.15-rc2)
Merging driver-core.current/driver-core-linus (04f41c68f188 net: mdiobus: Set FWNODE_FLAG_NEEDS_CHILD_BOUND_ON_ADD for mdiobus parents)
Merging tty.current/tty-linus (a3b397b4fffb Merge branch 'akpm' (patches from Andrew))
Merging usb.current/usb-linus (a3b397b4fffb Merge branch 'akpm' (patches from Andrew))
Merging usb-gadget-fixes/fixes (e49d033bddf5 Linux 5.12-rc6)
Merging usb-serial-fixes/usb-linus (9e3eed534f82 USB: serial: option: add device id for Foxconn T99W265)
Merging usb-chipidea-fixes/for-usb-fixes (98a1373a2de9 usb: cdns3: fix race condition before setting doorbell)
Merging phy/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging staging.current/staging-linus (aa3233ea7bdb staging: r8188eu: fix -Wrestrict warnings)
Merging iio-fixes/fixes-togreg (9da1b86865ab iio: adis16475: fix deadlock on frequency set)
Merging char-misc.current/char-misc-linus (a3b397b4fffb Merge branch 'akpm' (patches from Andrew))
Merging soundwire-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging thunderbolt-fixes/fixes (e4e737bb5c17 Linux 5.15-rc2)
Merging input-current/for-linus (0c5483a5778f Input: analog - always use ktime functions)
Merging crypto-current/master (0e14ef38669c crypto: x86/sm4 - Fix frame pointer stack corruption)
Merging vfio-fixes/for-linus (42de956ca7e5 vfio/ap_ops: Add missed vfio_uninit_group_dev())
Merging kselftest-fixes/fixes (f5013d412a43 selftests: kvm: fix get_run_delay() ignoring fscanf() return warn)
Merging modules-fixes/modules-linus (055f23b74b20 module: check for exit sections in layout_sections() instead of module_init_section())
Merging dmaengine-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging backlight-fixes/for-backlight-fixes (a38fd8748464 Linux 5.12-rc2)
Merging mtd-fixes/mtd/fixes (f60f5741002b mtd: rawnand: qcom: Update code word value for raw read)
Merging mfd-fixes/for-mfd-fixes (a61f4661fba4 mfd: intel_quark_i2c_gpio: Revert "Constify static struct resources")
Merging v4l-dvb-fixes/fixes (f0c15b360fb6 media: ir_toy: prevent device from hanging during transmit)
Merging reset-fixes/reset/fixes (ed104ca4bd9c reset: reset-zynqmp: Fixed the argument data type)
Merging mips-fixes/mips-fixes (6880fa6c5660 Linux 5.15-rc1)
Merging at91-fixes/at91-fixes (4348cc10da63 ARM: dts: at91: sama5d2_som1_ek: disable ISC node by default)
Merging omap-fixes/fixes (e879f855e590 bus: ti-sysc: Add break in switch statement in sysc_init_soc())
Merging kvm-fixes/master (50b078184604 Merge tag 'kvmarm-fixes-5.15-1' of git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm into kvm-master)
Merging kvms390-fixes/master (cd4220d23bf3 KVM: selftests: do not require 64GB in set_memory_region_test)
Merging hwmon-fixes/hwmon (6f7d70467121 hwmon: (ltc2947) Properly handle errors when looking for the external clock)
Merging nvdimm-fixes/libnvdimm-fixes (32b2397c1e56 libnvdimm/pmem: Fix crash triggered when I/O in-flight during unbind)
Merging cxl-fixes/fixes (fae8817ae804 cxl/mem: Fix memory device capacity probing)
Merging btrfs-fixes/next-fixes (45940091a3c1 Merge branch 'misc-5.15' into next-fixes)
Merging vfs-fixes/fixes (173e84953eaa fs: fix reporting supported extra file attributes for statx())
Merging dma-mapping-fixes/for-linus (18a3c5f7abfd Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost)
Merging i3c-fixes/i3c/fixes (fe07bfda2fb9 Linux 5.12-rc1)
Merging drivers-x86-fixes/fixes (6f6aab1caf6c platform/x86: gigabyte-wmi: add support for B550I Aorus Pro AX)
Merging samsung-krzk-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging pinctrl-samsung-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging devicetree-fixes/dt/linus (55c21d57eafb dt-bindings: arm: Fix Toradex compatible typo)
Merging scsi-fixes/fixes (fbdac19e6428 scsi: ses: Retry failed Send/Receive Diagnostic commands)
Merging drm-fixes/drm-fixes (ef88d7a8a5c9 Merge tag 'drm-intel-fixes-2021-09-23' of git://anongit.freedesktop.org/drm/drm-intel into drm-fixes)
Merging amdgpu-fixes/drm-fixes (2c409ba81be2 drm/radeon: fix si_enable_smc_cac() failed issue)
Merging drm-intel-fixes/for-linux-next-fixes (b875fb313a10 drm/i915: Free all DMC payloads)
Merging mmc-fixes/fixes (b81bede4d138 mmc: renesas_sdhi: fix regression with hard reset on old SDHIs)
Merging rtc-fixes/rtc-fixes (bd33335aa93d rtc: cmos: Disable irq around direct invocation of cmos_interrupt())
Merging gnss-fixes/gnss-linus (e73f0f0ee754 Linux 5.14-rc1)
Merging hyperv-fixes/hyperv-fixes (41608b64b10b PCI: hv: Fix sleep while in non-sleep context when removing child devices from the bus)
Merging soc-fsl-fixes/fix (c1e64c0aec8c soc: fsl: qe: fix static checker warning)
Merging risc-v-fixes/fixes (7d2a07b76933 Linux 5.14)
Merging pidfd-fixes/fixes (03ba0fe4d09f file: simplify logic in __close_range())
Merging fpga-fixes/fixes (e9a9970bf520 fpga: dfl: Avoid reads to AFU CSRs during enumeration)
Merging spdx/spdx-linus (6880fa6c5660 Linux 5.15-rc1)
Merging gpio-brgl-fixes/gpio/for-current (b22a4705e2e6 gpio/rockchip: fix get_direction value handling)
Merging gpio-intel-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging pinctrl-intel-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging erofs-fixes/fixes (c40dd3ca2a45 erofs: clear compacted_2b if compacted_4b_initial > totalidx)
Merging integrity-fixes/fixes (843385694721 evm: Fix a small race in init_desc())
Merging kunit-fixes/kunit-fixes (6880fa6c5660 Linux 5.15-rc1)
Merging ubifs-fixes/fixes (78c7d49f55d8 ubifs: journal: Make sure to not dirty twice for auth nodes)
Merging memblock-fixes/fixes (024591f9a6e0 arm: ioremap: don't abuse pfn_valid() to check if pfn is in RAM)
Merging cel-fixes/for-rc (7d2a07b76933 Linux 5.14)
Merging irqchip-fixes/irq/irqchip-fixes (b78f26926b17 irqchip/gic: Work around broken Renesas integration)
Merging renesas-fixes/fixes (432b52eea3dc ARM: shmobile: defconfig: Restore graphical consoles)
Merging perf-current/perf/urgent (219d720e6df7 perf bpf: Ignore deprecation warning when using libbpf's btf__get_from_id())
Merging drm-misc-fixes/for-linux-next-fixes (19bd6cdb9ce0 drm/panel: abt-y030xx067a: yellow tint fix)
CONFLICT (content): Merge conflict in drivers/gpu/drm/vc4/vc4_hdmi.c
Merging kspp-gustavo/for-next/kspp (ad9ee403ca4d Merge branch 'for-next/clang-fallthrough' into for-next/kspp)
Merging kbuild/for-next (90a353491e9f kbuild: reuse $(cmd_objtool) for cmd_cc_lto_link_modules)
Merging perf/perf/core (8228e9361e2a perf parse-events: Avoid enum forward declaration.)
Merging compiler-attributes/compiler-attributes (b83a908498d6 compiler_attributes.h: move __compiletime_{error|warning})
Merging dma-mapping/for-next (59583f747664 sparc32: page align size in arch_dma_alloc)
Merging asm-generic/master (7962c2eddbfe arch: remove unused function syscall_set_arguments())
Merging arc/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging arm/for-next (4603664c0fe9 Merge branches 'fixes' and 'misc' into for-next)
Merging arm64/for-next/core (85f58eb18898 arm64: kdump: Skip kmemleak scan reserved memory for kdump)
Merging arm-perf/for-next/perf (fd264b310579 arm64/perf: Replace '0xf' instances with ID_AA64DFR0_PMUVER_IMP_DEF)
Merging arm-soc/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging actions/for-next (444d018d8d38 ARM: dts: owl-s500-roseapplepi: Add ATC2603C PMIC)
Merging amlogic/for-next (83e38509109e Merge branch 'v5.16/dt64' into for-next)
Merging aspeed/for-next (e986277a56da Merge branches 'defconfig-for-v5.16' and 'dt-for-v5.16' into for-next)
Merging at91/at91-next (8aff56d060f4 Merge branch 'at91-dt' into at91-next)
Merging drivers-memory/for-next (a01b1a54770b Merge branch 'for-v5.16/renesas-rpc' into for-next)
Merging imx-mxs/for-next (0dd3273df8c2 Merge branch 'imx/dt64' into for-next)
Merging keystone/next (cb293d3b430e Merge branch 'for_5.15/drivers-soc' into next)
Merging mediatek/for-next (69862ae4e378 Merge branch 'v5.14-next/soc' into for-next)
Merging mvebu/for-next (930af8dda750 Merge branch 'mvebu/dt64' into mvebu/for-next)
Merging omap/for-next (7911f95d1713 Merge branch 'fixes' into for-next)
Merging qcom/for-next (e879cab78718 Merge branches 'arm64-for-5.16', 'drivers-for-5.16' and 'dts-for-5.16' into for-next)
Merging raspberrypi/for-next (9f5289ec6f1c ARM: dts: bcm2711-rpi-4-b: Fix usb's unit address)
Merging renesas/next (3b298ae53579 Merge branches 'renesas-arm-defconfig-for-v5.16' and 'renesas-arm-dt-for-v5.16' into renesas-next)
Merging reset/reset/next (09f3824342f6 reset: simple: remove ZTE details in Kconfig help)
Merging rockchip/for-next (6d2d362a1aeb Merge branch 'v5.16-armsoc/dts64' into for-next)
Merging samsung-krzk/for-next (1523dddcd195 Merge branch 'next/soc' into for-next)
Merging scmi/for-linux-next (b5ec6a4da0b8 Merge branch 'for-next/scmi' of git://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux into for-linux-next)
Merging stm32/stm32-next (350081007916 ARM: dts: stm32: set the DCMI pins on stm32mp157c-odyssey)
Merging sunxi/sunxi/for-next (bb289f4c0b2b Merge branches 'sunxi/clk-for-5.16', 'sunxi/core-for-5.16', 'sunxi/drivers-for-5.16', 'sunxi/dt-for-5.16' and 'sunxi/fixes-for-5.15' into sunxi/for-next)
Merging tegra/for-next (6f8b0fca12e4 Merge branch for-5.16/arm64/dt into for-next)
Merging ti-k3/ti-k3-next (1e3d655fe7b4 Merge branch 'ti-k3-config-next' into ti-k3-next)
Merging ti-k3-new/ti-k3-next (6037c75b193a arm64: dts: ti: k3-am65: Relocate thermal-zones to SoC specific location)
Merging xilinx/for-next (35a7430dad4d arm64: zynqmp: Wire psgtr for zc1751-xm013)
Merging clk/clk-next (1cbc04ffedcc Merge branch 'clk-mtk' into clk-next)
Merging clk-imx/for-next (1f4b035e603b clk: imx: Fix the build break when clk-imx8ulp build as module)
Merging clk-renesas/renesas-clk (c11d7f5126b7 clk: renesas: r9a07g044: Add GbEthernet clock/reset)
Merging clk-samsung/for-next (1d26eaeec37a clk: samsung: s5pv210-audss: Make use of devm_platform_ioremap_resource())
Merging csky/linux-next (40e080ed8218 csky: Make HAVE_TCM depend on !COMPILE_TEST)
Merging h8300/h8300-next (1ec10274d436 h8300: don't implement set_fs)
Merging m68k/for-next (6621cb4a2d0a m68k: muldi3: Use semicolon instead of comma)
Merging m68knommu/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging microblaze/next (6880fa6c5660 Linux 5.15-rc1)
Merging mips/mips-next (6880fa6c5660 Linux 5.15-rc1)
Merging nds32/next (07cd7745c6f2 nds32/setup: remove unused memblock_region variable in setup_memory())
CONFLICT (content): Merge conflict in arch/nds32/Kconfig
Merging nios2/for-next (7f7bc20bc41a nios2: Don't use _end for calculating min_low_pfn)
Merging openrisc/for-next (1955d843efc3 openrisc/litex: Update defconfig)
Merging parisc-hd/for-next (e4e737bb5c17 Linux 5.15-rc2)
Merging powerpc/next (6880fa6c5660 Linux 5.15-rc1)
Merging soc-fsl/next (242b0b398ccd soc: fsl: enable acpi support in RCPM driver)
Merging risc-v/for-next (6f55ab36bef5 riscv: Move EXCEPTION_TABLE to RO_DATA segment)
Merging s390/for-next (9ec953c0a7e1 Merge branch 'fixes' into for-next)
Merging sh/for-next (12285ff8667b sh: kdump: add some attribute to function)
Merging sparc-next/master (dd0d718152e4 Merge tag 'spi-fix-v5.8-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi)
Merging uml/linux-next (234640275675 um: rename set_signals() to um_set_signals())
Merging xtensa/xtensa-for-next (704ec99980cb xtensa: use CONFIG_USE_OF instead of CONFIG_OF)
Merging pidfd/for-next (f4dd02cd8631 Merge branch 'kernel.sys' into for-next)
Merging fscrypt/master (7f595d6a6cdc fscrypt: allow 256-bit master keys with AES-256-XTS)
Merging fscache/fscache-next (97b85f2079a9 Merge branch 'fscache-iter-3' into fscache-next)
Merging afs/afs-next (7af08140979a Revert "gcov: clang: fix clang-11+ build")
Merging btrfs/for-next (e51480e6f4f8 Merge branch 'for-next-next-v5.15-20210913' into for-next-20210913)
Merging ceph/master (b96728705f91 ceph: convert to noop_direct_IO)
Merging cifs/for-next (5816b3e6577e Linux 5.15-rc3)
Merging cifsd/cifsd-for-next (d72a9c158893 ksmbd: fix invalid request buffer access in compound)
Merging configfs/for-next (c42dd069be8d configfs: fix a race in configfs_lookup())
Merging ecryptfs/next (682a8e2b41ef Merge tag 'ecryptfs-5.13-rc1-updates' of git://git.kernel.org/pub/scm/linux/kernel/git/tyhicks/ecryptfs)
Merging erofs/dev (1266b4a7ecb6 erofs: fix double free of 'copied')
Merging exfat/dev (50be9417e23a Merge tag 'io_uring-5.14-2021-07-09' of git://git.kernel.dk/linux-block)
Merging ext3/for_next (372d1f3e1bfe ext2: fix sleeping in atomic bugs on error)
Merging ext4/dev (948ca5f30e1d ext4: enforce buffer head state assertion in ext4_da_map_blocks)
Merging f2fs/dev (6663b138ded1 f2fs: set SBI_NEED_FSCK flag when inconsistent node block found)
Merging fsverity/fsverity (07c99001312c fs-verity: support reading signature with ioctl)
Merging fuse/for-next (7a41554fdfb0 fuse: move fuse_invalidate_attr() into fuse_update_ctime())
Merging gfs2/for-next (11603f0011d0 gfs2: Allow append and immutable bits to coexist)
Merging jfs/jfs-next (c48a14dca2cb JFS: fix memleak in jfs_mount)
Merging nfs/linux-next (5816b3e6577e Linux 5.15-rc3)
Merging nfs-anna/linux-next (8cfb9015280d NFS: Always provide aligned buffers to the RPC read layers)
Merging nfsd/nfsd-next (1a0c45abd938 NFSD: simplify struct nfsfh)
Merging cel/for-next (02579b2ff8b0 nfsd: back channel stuck in SEQ4_STATUS_CB_PATH_DOWN)
Merging ntfs3/master (66019837a556 fs/ntfs3: Refactoring lock in ntfs_init_acl)
Merging orangefs/for-next (0fdec1b3c9fb orangefs: fix orangefs df output.)
Merging overlayfs/overlayfs-next (a295aef603e1 ovl: fix missing negative dentry check in ovl_rename())
Merging ubifs/next (a801fcfeef96 ubifs: Set/Clear I_LINKABLE under i_lock for whiteout inode)
Merging v9fs/9p-next (9c4d94dc9a64 net/9p: increase default msize to 128k)
Merging xfs/for-next (f38a032b165d xfs: fix I_DONTCACHE)
Merging zonefs/for-next (95b115332a83 zonefs: remove redundant null bio check)
Merging iomap/iomap-for-next (03b8df8d43ec iomap: standardize tracepoint formatting and storage)
Merging djw-vfs/vfs-for-next (d03ef4daf33a fs: forbid invalid project ID)
Merging file-locks/locks-next (90f7d7a0d0d6 locks: remove LOCK_MAND flock lock support)
Merging vfs/for-next (8f40da9494cf Merge branch 'misc.namei' into for-next)
Merging printk/for-next (9980c4251f8d printk: use kvmalloc instead of kmalloc for devkmsg_user)
Merging pci/next (ef4bce990eab Merge branch 'pci/virtualization')
Merging pstore/for-next/pstore (c5d4fb2539ca pstore/blk: Use "%lu" to format unsigned long)
Merging hid/for-next (433afb16be43 Merge branch 'for-5.16/xiaomi' into for-next)
Merging i2c/i2c/for-next (294b29f15469 i2c: xiic: Fix RX IRQ busy check)
Merging i3c/i3c/next (a3587e2c0578 i3c: fix incorrect address slot lookup on 64-bit)
Merging dmi/dmi-for-next (f97a2103f1a7 firmware: dmi: Move product_sku info to the end of the modalias)
Merging hwmon-staging/hwmon-next (7b2ff48129ca dt-bindings: hwmon: jedec,jc42: convert to dtschema)
Merging jc_docs/docs-next (946c8fee6d6e Documentation: Update SeongJae's email address)
Merging v4l-dvb/master (e4e737bb5c17 Linux 5.15-rc2)
Merging v4l-dvb-next/master (952aab37b121 Merge tag 'v5.15-rc2' into media_stage)
Applying: fix for "media: ir_toy: allow tx carrier to be set"
Merging pm/linux-next (9fa78c37a2e3 Merge branch 'acpi-osl' into linux-next)
Merging cpufreq-arm/cpufreq/arm/linux-next (4855e26bcf4d cpufreq: mediatek-hw: Add support for CPUFREQ HW)
Merging cpupower/cpupower (79a0dc5530a9 tools: cpupower: fix typo in cpupower-idle-set(1) manpage)
Merging devfreq/devfreq-next (7f6490afc97f devfreq: exynos-ppmu: simplify parsing event-type from DT)
Merging opp/opp/linux-next (94274f20f6bf dt-bindings: opp: Convert to DT schema)
Merging thermal/thermal/linux-next (fc26023f8816 thermal/drivers/int340x: Fix tcc offset on resume)
CONFLICT (content): Merge conflict in drivers/thermal/intel/int340x_thermal/processor_thermal_device.c
Merging ieee1394/for-next (54b3bd99f094 firewire: nosy: switch from 'pci_' to 'dma_' API)
Merging dlm/next (ecd95673142e fs: dlm: avoid comms shutdown delay in release_lockspace)
Merging swiotlb/linux-next (f3c4b1341e83 swiotlb: use depends on for DMA_RESTRICTED_POOL)
Merging rdma/for-next (6bda39149d4b RDMA/bnxt_re: Check if the vlan is valid before reporting)
Merging net-next/master (d59bdda85eb7 Merge branch 'octeontx2-af-kpu')
Merging bpf-next/for-next (e7d5184b24fb Merge branch 'bpf: Support <8-byte scalar spill and refill')
Merging ipsec-next/master (83688aec17bf net/ipv4/xfrm4_tunnel.c: remove superfluous header files from xfrm4_tunnel.c)
Merging mlx5-next/mlx5-next (6880fa6c5660 Linux 5.15-rc1)
Merging netfilter-next/master (acde891c243c rxrpc: Fix _usecs_to_jiffies() by using usecs_to_jiffies())
Merging ipvs-next/master (13bb8429ca98 net: wwan: iosm: firmware flashing and coredump collection)
Merging wireless-drivers-next/master (5db4943a9d6f rtw88: 8821c: correct 2.4G tx power for type 2/4 NIC)
Merging bluetooth/master (47cb49448039 Bluetooth: Fix Advertisement Monitor Suspend/Resume)
$ git reset --hard HEAD^
Merging next-20210924 version of bluetooth
Merging mac80211-next/master (37123c3baaee mac80211: use ieee802_11_parse_elems() in ieee80211_prep_channel())
Merging mtd/mtd/next (b72841e4dcd5 mtd: mtdswap: Remove redundant assignment of pointer eb)
Merging nand/nand/next (46a0dc10fb32 mtd: rawnand: intel: Fix potential buffer overflow in probe)
Merging spi-nor/spi-nor/next (2734d6c1b1a0 Linux 5.14-rc2)
Merging crypto/master (adad556efcdd crypto: api - Fix built-in testing dependency failures)
Merging drm/drm-next (f602a96e0252 Merge tag 'drm-misc-next-2021-09-23' of git://anongit.freedesktop.org/drm/drm-misc into drm-next)
Merging drm-misc/for-linux-next (306589856399 drm/print: Add deprecation notes to DRM_...() functions)
Merging amdgpu/drm-next (2485e2753ec8 drm/amdgpu: make soc15_common_ip_funcs static)
CONFLICT (content): Merge conflict in drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c
CONFLICT (content): Merge conflict in drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c
CONFLICT (content): Merge conflict in MAINTAINERS
Merging drm-intel/for-linux-next (09bbdd8730dc drm/i915/fbc: Allow higher compression limits on FBC1)
Applying: fix for drm/dp: add LTTPR DP 2.0 DPCD addresses
Merging drm-tegra/drm/tegra/for-next (c3dbfb9c49ee gpu: host1x: Plug potential memory leak)
Merging drm-msm/msm-next (cb0927ab80d2 drm/msi/mdp4: populate priv->kms in mdp4_kms_init)
Merging imx-drm/imx-drm/next (20fbfc81e390 drm/imx: imx-tve: Make use of the helper function devm_platform_ioremap_resource())
Merging etnaviv/etnaviv/next (81fd23e2b3cc drm/etnaviv: Implement mmap as GEM object function)
Merging regmap/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging sound/for-next (f02f2f1bf9d1 ALSA: usx2y: Prefer struct_size over open coded arithmetic)
Merging sound-asoc/for-next (71d536c72874 Merge remote-tracking branch 'asoc/for-5.16' into asoc-next)
Merging modules/modules-next (ced75a2f5da7 MAINTAINERS: Add Luis Chamberlain as modules maintainer)
Merging input/next (d5af8a8f7c4c Input: mpr121 - make use of the helper function devm_add_action_or_reset())
Merging block/for-next (6fc11e93287c Merge branch 'for-5.16/io_uring' into for-next)
Merging device-mapper/for-next (d3703ef33129 dm crypt: use in_hardirq() instead of deprecated in_irq())
Merging libata/for-next (0e96dc47b95a ahci: remove duplicated PCI device IDs)
Merging pcmcia/pcmcia-next (e39cdacf2f66 pcmcia: i82092: fix a null pointer dereference bug)
Merging mmc/next (8211999fc64c mmc: mmci: Add small comment about reset thread)
Merging mfd/for-mfd-next (cdff1eda6932 mfd: lpc_sch: Rename GPIOBASE to prevent build error)
Merging backlight/for-backlight-next (79fad92f2e59 backlight: pwm_bl: Improve bootloader/kernel device handover)
Merging battery/for-next (5d1f642aad69 docs: ABI: sysfs-class-power: Documented cycle_count property)
Merging regulator/for-next (2dfbfd4e2290 Merge remote-tracking branch 'regulator/for-5.16' into regulator-next)
Merging security/next-testing (047843bdb316 Merge branch 'landlock_lsm_v34' into next-testing)
Merging apparmor/apparmor-next (d108370c644b apparmor: fix error check)
Merging integrity/next-integrity (836f7b6ca082 ima: fix deadlock when traversing "ima_default_rules".)
Merging keys/keys-next (e377c31f788f integrity: Load mokx variables into the blacklist keyring)
CONFLICT (content): Merge conflict in certs/system_keyring.c
Merging safesetid/safesetid-next (1b8b71922919 LSM: SafeSetID: Mark safesetid_initialized as __initdata)
Merging selinux/next (d9d8c93938c4 Smack: Brutalist io_uring support)
CONFLICT (content): Merge conflict in fs/io-wq.c
Merging smack/next (222a96b31c24 smack: Guard smack_ipv6_lock definition within a SMACK_IPV6_PORT_LABELING block)
Merging tomoyo/master (7d2a07b76933 Linux 5.14)
Merging tpmdd/next (f985911b7bc7 crypto: public_key: fix overflow during implicit conversion)
Merging watchdog/master (41e73feb1024 dt-bindings: watchdog: Add compatible for Mediatek MT7986)
Merging iommu/next (b58886bf14da Merge branch 'iommu/fixes' into next)
Merging audit/next (8e71168e2cc7 lsm_audit: avoid overloading the "key" audit field)
Merging devicetree/for-next (9ae54ce551e9 kbuild: Enable dtc 'unit_address_format' warning by default)
Merging mailbox/mailbox-for-next (85dfdbfc13ea mailbox: cmdq: add multi-gce clocks support for mt8195)
Merging spi/for-next (36f6afce556d Merge remote-tracking branch 'spi/for-5.16' into spi-next)
Merging tip/auto-latest (d478ddf4e3cf Merge remote-tracking branch 'tip/irq/urgent' into tip-master)
Merging clockevents/timers/drivers/next (f196ae282070 dt-bindings: timer: Add ABIs for new Ingenic SoCs)
Merging edac/edac-for-next (4646da896a44 Merge branch 'edac-urgent' into edac-for-next)
Merging irqchip/irq/irqchip-next (6e3b473ee064 Merge branch irq/qcom-pdc-nowake-cleanup into irq/irqchip-next)
Merging ftrace/for-next (5dfe50b05588 bootconfig: Rename xbc_node_find_child() to xbc_node_find_subkey())
Merging rcu/rcu/next (de5f4668677e rcutorture: Suppress pi-lock-across read-unlock testing for Tiny SRCU)
Merging kvm/next (109bbba5066b KVM: Drop unused kvm_dirty_gfn_invalid())
Merging kvm-arm/next (419025b3b419 Merge branch kvm-arm64/misc-5.15 into kvmarm-master/next)
Merging kvm-ppc/kvm-ppc-next (72476aaa4691 KVM: PPC: Book3S HV: Fix host radix SLB optimisation with hash guests)
Merging kvms390/next (a3e03bc1368c KVM: s390: index kvm->arch.idle_mask by vcpu_idx)
Merging xen-tip/linux-next (0594c58161b6 xen/x86: fix PV trap handling on secondary processors)
Merging percpu/for-next (a81a52b325ec Merge branch 'for-5.14-fixes' into for-next)
Merging workqueues/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging drivers-x86/for-next (f6045de1f532 platform/x86: amd-pmc: Export Idlemask values based on the APU)
Merging chrome-platform/for-next (5135b2139212 MAINTAINERS: Add Prashant's maintainership of cros_ec drivers)
Merging hsi/for-next (e73f0f0ee754 Linux 5.14-rc1)
Merging leds/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging ipmi/for-next (35f4caec9d51 ipmi: Disable some operations during a panic)
Merging driver-core/driver-core-next (d4771993f2cf scripts: get_abi.pl: ensure that "others" regex will be parsed)
Merging usb/usb-next (8217f07a5023 usb: dwc3: gadget: Avoid starting DWC3 gadget during UDC unbind)
Merging usb-gadget/next (e49d033bddf5 Linux 5.12-rc6)
Merging usb-serial/usb-next (c8345c0500de USB: serial: kl5kusb105: drop line-status helper)
Merging usb-chipidea-next/for-usb-next (78665f57c3fa usb: chipidea: udc: make controller hardware endpoint primed)
Merging tty/tty-next (7c783601a3bc tty: remove file from n_tty_ioctl_helper)
Merging char-misc/char-misc-next (54fa156bb33a mei: Remove usage of the deprecated "pci-dma-compat.h" API)
Merging extcon/extcon-next (eb29ba5688de extcon: extcon-axp288: Use P-Unit semaphore lock for register accesses)
Merging phy-next/next (6880fa6c5660 Linux 5.15-rc1)
Merging soundwire/next (6880fa6c5660 Linux 5.15-rc1)
Merging thunderbolt/next (e4e737bb5c17 Linux 5.15-rc2)
Merging vfio/next (ea870730d83f Merge branches 'v5.15/vfio/spdx-license-cleanups', 'v5.15/vfio/dma-valid-waited-v3', 'v5.15/vfio/vfio-pci-core-v5' and 'v5.15/vfio/vfio-ap' into v5.15/vfio/next)
Merging staging/staging-next (c34e73d67c82 staging; wlan-ng: remove duplicate USB device ID)
CONFLICT (content): Merge conflict in drivers/staging/r8188eu/os_dep/ioctl_linux.c
Merging iio/togreg (55c45baaaf78 iio: adc: rockchip_saradc: Make use of the helper function devm_platform_ioremap_resource())
Merging mux/for-next (3516bd729358 Merge tag 's390-5.11-3' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux)
Merging icc/icc-next (13404ac8882f interconnect: qcom: sdm660: Add missing a2noc qos clocks)
Merging dmaengine/next (6880fa6c5660 Linux 5.15-rc1)
Merging cgroup/for-next (7ee285395b21 cgroup: Make rebind_subsystems() disable v2 controllers all at once)
Merging scsi/for-next (41d7acab7706 Merge branch 'fixes' into for-next)
Merging scsi-mkp/for-next (efe1dc571a5b scsi: lpfc: Fix mailbox command failure during driver initialization)
Merging vhost/linux-next (be9c6bad9b46 vdpa: potential uninitialized return in vhost_vdpa_va_map())
Merging rpmsg/for-next (99fdaca991f7 Merge branches 'hwspinlock-next', 'rpmsg-next' and 'rproc-next' into for-next)
Merging gpio/for-next (7ac554888233 MAINTAINERS: Remove reference to non-existing file)
Merging gpio-brgl/gpio/for-next (7687a5b0ee93 gpio: modepin: Add driver support for modepin GPIO controller)
Merging gpio-intel/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging pinctrl/for-next (3b63bcc2a41d Merge branch 'devel' into for-next)
Merging pinctrl-intel/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging pinctrl-renesas/renesas-pinctrl (fcfb63148c24 pinctrl: renesas: rzg2l: Fix missing port register 21h)
Merging pinctrl-samsung/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging pwm/for-next (3f2b16734914 pwm: mtk-disp: Implement atomic API .get_state())
Merging userns/for-next (a3be01837fc9 Merge of ucount-fixes-for-5.14, siginfo-si_trapno-for-v5.15, and exit-cleanups-for-v5.15 for testing in linux-next)
CONFLICT (content): Merge conflict in include/linux/sched/signal.h
Merging ktest/for-next (170f4869e662 ktest.pl: Fix the logic for truncating the size of the log file for email)
Merging kselftest/next (6880fa6c5660 Linux 5.15-rc1)
Merging livepatching/for-next (cd2d68f2d6b2 Merge branch 'for-5.15/cpu-hotplug' into for-next)
Merging coresight/next (1efbcec2ef8c coresight: cti: Reduce scope for the variable “cs_fwnode” in cti_plat_create_connection())
Merging rtc/rtc-next (be7d9c9161b9 rtc: Add support for the MSTAR MSC313 RTC)
$ git reset --hard HEAD^
Merging next-20210924 version of rtc
Merging nvdimm/libnvdimm-for-next (bdd3c50d83bf dax: remove bdev_dax_supported)
Merging at24/at24/for-next (762925405482 dt-bindings: at24: add ON Semi CAT24C04 and CAT24C05)
Merging ntb/ntb-next (f96cb827ce49 ntb: ntb_pingpong: remove redundant initialization of variables msg_data and spad_data)
Merging seccomp/for-next/seccomp (b4d8a58f8dcf seccomp: Fix setting loaded filter count during TSYNC)
Merging kspp/for-next/kspp (29b6166a9ead Merge branch 'kspp/hardening/options' into for-next/kspp)
Merging cisco/for-next (9e98c678c2d6 Linux 5.1-rc1)
Merging gnss/gnss-next (0f79ce970e79 gnss: drop stray semicolons)
Merging fsi/next (9ab1428dfe2c fsi/sbefifo: Fix reset timeout)
Merging slimbus/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging nvmem/for-next (536267aafb8a nvmem: core: Add stubs for nvmem_cell_read_variable_le_u32/64 if !CONFIG_NVMEM)
Merging xarray/main (2c7e57a02708 idr test suite: Improve reporting from idr_find_test_1)
Merging hyperv/hyperv-next (9d68cd9120e4 hv_utils: Set the maximum packet size for VSS driver to the length of the receive buffer)
Merging auxdisplay/auxdisplay (24ebc044c72e auxdisplay: Replace symbolic permissions with octal permissions)
Merging kgdb/kgdb/for-next (f8416aa29185 kernel: debug: Convert to SPDX identifier)
Merging hmm/hmm (6880fa6c5660 Linux 5.15-rc1)
Merging fpga/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging kunit/test (6880fa6c5660 Linux 5.15-rc1)
Merging cfi/cfi/next (ff1176468d36 Linux 5.14-rc3)
Merging kunit-next/kunit (3b29021ddd10 kunit: tool: allow filtering test cases via glob)
Merging trivial/for-next (9ff9b0d392ea Merge tag 'net-next-5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next)
Merging mhi/mhi-next (813272ed5238 Merge 5.14-rc5 into char-misc-next)
Merging memblock/for-next (e888fa7bb882 memblock: Check memory add/cap ordering)
Merging init/init-user-pointers (38b082236e77 initramfs: use vfs_utimes in do_copy)
Merging counters/counters (e71ba9452f0b Linux 5.11-rc2)
Merging rust/rust-next (5d3986cf8ed6 MAINTAINERS: Rust)
CONFLICT (content): Merge conflict in include/linux/kallsyms.h
CONFLICT (content): Merge conflict in Makefile
Applying: fixup for rust integration with Makefile.clang creation
Merging cxl/next (ed97afb53365 cxl/pci: Disambiguate cxl_pci further from cxl_mem)
Merging folio/for-next (1a90e9dae32c mm/writeback: Add folio_write_one)
CONFLICT (content): Merge conflict in mm/util.c
CONFLICT (content): Merge conflict in mm/rmap.c
CONFLICT (content): Merge conflict in mm/page-writeback.c
CONFLICT (content): Merge conflict in mm/memcontrol.c
CONFLICT (content): Merge conflict in mm/filemap.c
CONFLICT (content): Merge conflict in include/linux/memcontrol.h
CONFLICT (modify/delete): fs/cachefiles/rdwr.c deleted in HEAD and modified in folio/for-next. Version folio/for-next of fs/cachefiles/rdwr.c left in tree.
$ git rm -f fs/cachefiles/rdwr.c
Applying: fix up for "9p: Convert to using the netfs helper lib to do reads and caching"
Applying: Revert "crypto: api - Fix built-in testing dependency failures"
Merging akpm-current/current (48d0092bb55b ipc/ipc_sysctl.c: remove fallback for !CONFIG_PROC_SYSCTL)
$ git checkout -b akpm remotes/origin/akpm/master
$ git rebase --onto master remotes/origin/akpm/master-base
Merging akpm/master (6884db384d10 mm: unexport {,un}lock_page_memcg)

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

^ permalink raw reply	[relevance 1%]

* Re: [PATCH v2] scsi: advansys: Prefer struct_size over open coded arithmetic
  2021-09-25 11:42 12% [PATCH v2] scsi: advansys: Prefer struct_size over open coded arithmetic Len Baker
@ 2021-09-27 14:48  7% ` Gustavo A. R. Silva
  2021-09-29  2:55  7% ` Martin K. Petersen
  2021-10-05  4:34 12% ` Martin K. Petersen
  2 siblings, 0 replies; 200+ results
From: Gustavo A. R. Silva @ 2021-09-27 14:48 UTC (permalink / raw)
  To: Len Baker
  Cc: Matthew Wilcox, Hannes Reinecke, James E.J. Bottomley,
	Martin K. Petersen, Kees Cook, linux-hardening, linux-scsi,
	linux-kernel

On Sat, Sep 25, 2021 at 01:42:05PM +0200, Len Baker 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 struct_size() helper to do the arithmetic instead of the
> argument "size + count * size" in the kzalloc() function.
> 
> This code was detected with the help of Coccinelle and audited and fixed
> manually.
> 
> [1] https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments
> 
> Signed-off-by: Len Baker <len.baker@gmx.com>

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

> ---
> Changelog v1 -> v2
> - Rebase against v5.15-rc2

Don't use mainline for these sorts of patches . Use linux-next instead:

https://www.kernel.org/doc/man-pages/linux-next.html

Thanks
--
Gustavo

> - Remove the unnecessary "size" variable (Gustavo A. R. Silva).
> - Update the commit changelog to inform that this code was detected
>   using a Coccinelle script (Gustavo A. R. Silva).
> 
>  drivers/scsi/advansys.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/scsi/advansys.c b/drivers/scsi/advansys.c
> index ffb391967573..e341b3372482 100644
> --- a/drivers/scsi/advansys.c
> +++ b/drivers/scsi/advansys.c
> @@ -7477,8 +7477,8 @@ static int asc_build_req(struct asc_board *boardp, struct scsi_cmnd *scp,
>  			return ASC_ERROR;
>  		}
> 
> -		asc_sg_head = kzalloc(sizeof(asc_scsi_q->sg_head) +
> -			use_sg * sizeof(struct asc_sg_list), GFP_ATOMIC);
> +		asc_sg_head = kzalloc(struct_size(asc_sg_head, sg_list, use_sg),
> +				      GFP_ATOMIC);
>  		if (!asc_sg_head) {
>  			scsi_dma_unmap(scp);
>  			set_host_byte(scp, DID_SOFT_ERROR);
> --
> 2.25.1
> 

^ permalink raw reply	[relevance 7%]

* Re: [PATCH v2] writeback: prefer struct_size over open coded arithmetic
  2021-09-25 11:43 12% [PATCH v2] writeback: prefer " Len Baker
@ 2021-09-27 14:51  7% ` Gustavo A. R. Silva
  2021-10-20 14:40  7% ` Jan Kara
  1 sibling, 0 replies; 200+ results
From: Gustavo A. R. Silva @ 2021-09-27 14:51 UTC (permalink / raw)
  To: Len Baker
  Cc: Alexander Viro, Kees Cook, linux-fsdevel, linux-hardening, linux-kernel

On Sat, Sep 25, 2021 at 01:43:08PM +0200, Len Baker 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.
> 
> In this case these are not actually dynamic sizes: all the operands
> involved in the calculation are constant values. However it is better to
> refactor them anyway, just to keep the open-coded math idiom out of
> code.
> 
> So, use the struct_size() helper to do the arithmetic instead of the
> argument "size + count * size" in the kzalloc() functions.
> 
> This code was detected with the help of Coccinelle and audited and fixed
> manually.
> 
> [1] https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments
> 
> Signed-off-by: Len Baker <len.baker@gmx.com>

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

Thanks
--
Gustavo

> ---
> Changelog v1 -> v2
> - Rebase against v5.15-rc2
> - Refactor another instance in the same file (Gustavo A. R. Silva).
> - Update the commit changelog to inform that this code was detected
>   using a Coccinelle script (Gustavo A. R. Silva).
> 
>  fs/fs-writeback.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c
> index 81ec192ce067..5eb0ada7468c 100644
> --- a/fs/fs-writeback.c
> +++ b/fs/fs-writeback.c
> @@ -566,7 +566,7 @@ static void inode_switch_wbs(struct inode *inode, int new_wb_id)
>  	if (atomic_read(&isw_nr_in_flight) > WB_FRN_MAX_IN_FLIGHT)
>  		return;
> 
> -	isw = kzalloc(sizeof(*isw) + 2 * sizeof(struct inode *), GFP_ATOMIC);
> +	isw = kzalloc(struct_size(isw, inodes, 2), GFP_ATOMIC);
>  	if (!isw)
>  		return;
> 
> @@ -624,8 +624,8 @@ bool cleanup_offline_cgwb(struct bdi_writeback *wb)
>  	int nr;
>  	bool restart = false;
> 
> -	isw = kzalloc(sizeof(*isw) + WB_MAX_INODES_PER_ISW *
> -		      sizeof(struct inode *), GFP_KERNEL);
> +	isw = kzalloc(struct_size(isw, inodes, WB_MAX_INODES_PER_ISW),
> +		      GFP_KERNEL);
>  	if (!isw)
>  		return restart;
> 
> --
> 2.25.1
> 

^ permalink raw reply	[relevance 7%]

* linux-next: Tree for Sep 28
@ 2021-09-28  7:23  1% Stephen Rothwell
  0 siblings, 0 replies; 200+ results
From: Stephen Rothwell @ 2021-09-28  7:23 UTC (permalink / raw)
  To: Linux Next Mailing List; +Cc: Linux Kernel Mailing List

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

Hi all,

Changes since 20210927:

The bluetooth tree still had its build failure so I used the version
from next-20210924.

The crypto tree still had its build failure for which I applied a
supplied patch.

The sound-asoc tree gained a build failure for which I reverted a commit.

The rtc tree lost its build failure.

The rust tree gained a semantic conflict against the kbuild tree for
which I reverted a couple of commits from the kbuild tree.

Non-merge commits (relative to Linus' tree): 3848
 3864 files changed, 180795 insertions(+), 80794 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 are also quilt-import.log and merge.log
files 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, 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 337 trees (counting Linus' and 91 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 (0513e464f900 Merge tag 'perf-tools-fixes-for-v5.15-2021-09-27' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux)
Merging fixes/fixes (3ca706c189db drm/ttm: fix type mismatch error on sparc64)
Merging kbuild-current/fixes (0664684e1ebd kbuild: Add -Werror=ignored-optimization-argument to CLANG_FLAGS)
Merging arc-current/for-curr (6880fa6c5660 Linux 5.15-rc1)
Merging arm-current/fixes (463dbba4d189 ARM: 9104/2: Fix Keystone 2 kernel mapping regression)
Merging arm64-fixes/for-next/fixes (22b70e6f2da0 arm64: Restore forced disabling of KPTI on ThunderX)
Merging arm-soc-fixes/arm/fixes (3f1c260ffddb MAINTAINERS: Add myself as MStar/Sigmastar Armv7 SoC maintainers)
Merging drivers-memory-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging m68k-current/for-linus (9fde03486402 m68k: Remove set_fs())
Merging powerpc-fixes/fixes (c006a06508db powerpc/xics: Set the IRQ chip data for the ICS native backend)
Merging s390-fixes/fixes (172da89ed0ea s390/cio: avoid excessive path-verification requests)
Merging sparc/master (05a59d79793d Merge git://git.kernel.org:/pub/scm/linux/kernel/git/netdev/net)
Merging fscrypt-current/for-stable (80f6e3080bfc fs-verity: fix signed integer overflow with i_size near S64_MAX)
Merging net/master (3b1b6e82fb5e net: phy: enhance GPY115 loopback disable function)
Merging bpf/master (2248c2fca9c2 bpf, test, cgroup: Use sk_{alloc,free} for test cases)
Merging ipsec/master (93ec1320b017 xfrm: fix rcu lock in xfrm_notify_userpolicy())
Merging netfilter/master (7fe7f3182a0d Merge git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf)
Merging ipvs/master (e9edc188fc76 netfilter: conntrack: serialize hash resizes and cleanups)
Merging wireless-drivers/master (fb8c3a3c5240 ath5k: fix building with LEDS=m)
Merging mac80211/master (33092aca857b mac80211: Fix Ptk0 rekey documentation)
Merging rdma-fixes/for-rc (a86cd017a40a RDMA/usnic: Lock VF with mutex instead of spinlock)
Merging sound-current/for-linus (09d23174402d ALSA: rawmidi: introduce SNDRV_RAWMIDI_IOCTL_USER_PVERSION)
Merging sound-asoc-fixes/for-linus (a28b8ad108cb Merge remote-tracking branch 'asoc/for-5.15' into asoc-linus)
Merging regmap-fixes/for-linus (6880fa6c5660 Linux 5.15-rc1)
Merging regulator-fixes/for-linus (5816b3e6577e Linux 5.15-rc3)
Merging spi-fixes/for-linus (59c4e190b10c Merge tag 'v5.15-rc3' into spi-5.15)
Merging pci-current/for-linus (e4e737bb5c17 Linux 5.15-rc2)
Merging driver-core.current/driver-core-linus (04f41c68f188 net: mdiobus: Set FWNODE_FLAG_NEEDS_CHILD_BOUND_ON_ADD for mdiobus parents)
Merging tty.current/tty-linus (5816b3e6577e Linux 5.15-rc3)
Merging usb.current/usb-linus (5816b3e6577e Linux 5.15-rc3)
Merging usb-gadget-fixes/fixes (e49d033bddf5 Linux 5.12-rc6)
Merging usb-serial-fixes/usb-linus (5816b3e6577e Linux 5.15-rc3)
Merging usb-chipidea-fixes/for-usb-fixes (98a1373a2de9 usb: cdns3: fix race condition before setting doorbell)
Merging phy/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging staging.current/staging-linus (5816b3e6577e Linux 5.15-rc3)
Merging iio-fixes/fixes-togreg (9da1b86865ab iio: adis16475: fix deadlock on frequency set)
Merging char-misc.current/char-misc-linus (bb8a4fcb2136 ipack: ipoctal: fix module reference leak)
Merging soundwire-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging thunderbolt-fixes/fixes (5816b3e6577e Linux 5.15-rc3)
Merging input-current/for-linus (0c5483a5778f Input: analog - always use ktime functions)
Merging crypto-current/master (0e14ef38669c crypto: x86/sm4 - Fix frame pointer stack corruption)
Merging vfio-fixes/for-linus (42de956ca7e5 vfio/ap_ops: Add missed vfio_uninit_group_dev())
Merging kselftest-fixes/fixes (2f9602870886 selftests: drivers/dma-buf: Fix implicit declaration warns)
Merging modules-fixes/modules-linus (055f23b74b20 module: check for exit sections in layout_sections() instead of module_init_section())
Merging dmaengine-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging backlight-fixes/for-backlight-fixes (a38fd8748464 Linux 5.12-rc2)
Merging mtd-fixes/mtd/fixes (f60f5741002b mtd: rawnand: qcom: Update code word value for raw read)
Merging mfd-fixes/for-mfd-fixes (a61f4661fba4 mfd: intel_quark_i2c_gpio: Revert "Constify static struct resources")
Merging v4l-dvb-fixes/fixes (f0c15b360fb6 media: ir_toy: prevent device from hanging during transmit)
Merging reset-fixes/reset/fixes (ed104ca4bd9c reset: reset-zynqmp: Fixed the argument data type)
Merging mips-fixes/mips-fixes (6880fa6c5660 Linux 5.15-rc1)
Merging at91-fixes/at91-fixes (4348cc10da63 ARM: dts: at91: sama5d2_som1_ek: disable ISC node by default)
Merging omap-fixes/fixes (e879f855e590 bus: ti-sysc: Add break in switch statement in sysc_init_soc())
Merging kvm-fixes/master (5c49d1850ddd KVM: VMX: Fix a TSX_CTRL_CPUID_CLEAR field mask issue)
Merging kvms390-fixes/master (cd4220d23bf3 KVM: selftests: do not require 64GB in set_memory_region_test)
Merging hwmon-fixes/hwmon (6f7d70467121 hwmon: (ltc2947) Properly handle errors when looking for the external clock)
Merging nvdimm-fixes/libnvdimm-fixes (32b2397c1e56 libnvdimm/pmem: Fix crash triggered when I/O in-flight during unbind)
Merging cxl-fixes/fixes (fae8817ae804 cxl/mem: Fix memory device capacity probing)
Merging btrfs-fixes/next-fixes (45940091a3c1 Merge branch 'misc-5.15' into next-fixes)
Merging vfs-fixes/fixes (173e84953eaa fs: fix reporting supported extra file attributes for statx())
Merging dma-mapping-fixes/for-linus (18a3c5f7abfd Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost)
Merging i3c-fixes/i3c/fixes (fe07bfda2fb9 Linux 5.12-rc1)
Merging drivers-x86-fixes/fixes (6f6aab1caf6c platform/x86: gigabyte-wmi: add support for B550I Aorus Pro AX)
Merging samsung-krzk-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging pinctrl-samsung-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging devicetree-fixes/dt/linus (55c21d57eafb dt-bindings: arm: Fix Toradex compatible typo)
Merging scsi-fixes/fixes (fbdac19e6428 scsi: ses: Retry failed Send/Receive Diagnostic commands)
Merging drm-fixes/drm-fixes (ef88d7a8a5c9 Merge tag 'drm-intel-fixes-2021-09-23' of git://anongit.freedesktop.org/drm/drm-intel into drm-fixes)
Merging amdgpu-fixes/drm-fixes (2c409ba81be2 drm/radeon: fix si_enable_smc_cac() failed issue)
Merging drm-intel-fixes/for-linux-next-fixes (4b8bcaf8a6d6 drm/i915: Remove warning from the rps worker)
Merging mmc-fixes/fixes (3b9b0887fff8 mmc: sdhci-of-at91: replace while loop with read_poll_timeout)
Merging rtc-fixes/rtc-fixes (bd33335aa93d rtc: cmos: Disable irq around direct invocation of cmos_interrupt())
Merging gnss-fixes/gnss-linus (e73f0f0ee754 Linux 5.14-rc1)
Merging hyperv-fixes/hyperv-fixes (41608b64b10b PCI: hv: Fix sleep while in non-sleep context when removing child devices from the bus)
Merging soc-fsl-fixes/fix (c1e64c0aec8c soc: fsl: qe: fix static checker warning)
Merging risc-v-fixes/fixes (7d2a07b76933 Linux 5.14)
Merging pidfd-fixes/fixes (03ba0fe4d09f file: simplify logic in __close_range())
Merging fpga-fixes/fixes (2a2a79577dda fpga: ice40-spi: Add SPI device ID table)
Merging spdx/spdx-linus (6880fa6c5660 Linux 5.15-rc1)
Merging gpio-brgl-fixes/gpio/for-current (b22a4705e2e6 gpio/rockchip: fix get_direction value handling)
Merging gpio-intel-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging pinctrl-intel-fixes/fixes (6880fa6c5660 Linux 5.15-rc1)
Merging erofs-fixes/fixes (c40dd3ca2a45 erofs: clear compacted_2b if compacted_4b_initial > totalidx)
Merging integrity-fixes/fixes (843385694721 evm: Fix a small race in init_desc())
Merging kunit-fixes/kunit-fixes (6880fa6c5660 Linux 5.15-rc1)
Merging ubifs-fixes/fixes (78c7d49f55d8 ubifs: journal: Make sure to not dirty twice for auth nodes)
Merging memblock-fixes/fixes (024591f9a6e0 arm: ioremap: don't abuse pfn_valid() to check if pfn is in RAM)
Merging cel-fixes/for-rc (7d2a07b76933 Linux 5.14)
Merging irqchip-fixes/irq/irqchip-fixes (b78f26926b17 irqchip/gic: Work around broken Renesas integration)
Merging renesas-fixes/fixes (432b52eea3dc ARM: shmobile: defconfig: Restore graphical consoles)
Merging perf-current/perf/urgent (4da8b121884d perf iostat: Fix Segmentation fault from NULL 'struct perf_counts_values *')
Merging drm-misc-fixes/for-linux-next-fixes (19bd6cdb9ce0 drm/panel: abt-y030xx067a: yellow tint fix)
CONFLICT (content): Merge conflict in drivers/gpu/drm/vc4/vc4_hdmi.c
Merging kspp-gustavo/for-next/kspp (6409e7102a9b Merge branch 'for-next/kspp-fixes' into for-next/kspp)
Merging kbuild/for-next (16f361016821 kconfig: remove 'const' from the return type of sym_escape_string())
Merging perf/perf/core (8228e9361e2a perf parse-events: Avoid enum forward declaration.)
Merging compiler-attributes/compiler-attributes (b83a908498d6 compiler_attributes.h: move __compiletime_{error|warning})
Merging dma-mapping/for-next (59583f747664 sparc32: page align size in arch_dma_alloc)
Merging asm-generic/master (7962c2eddbfe arch: remove unused function syscall_set_arguments())
Merging arc/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging arm/for-next (4603664c0fe9 Merge branches 'fixes' and 'misc' into for-next)
Merging arm64/for-next/core (85f58eb18898 arm64: kdump: Skip kmemleak scan reserved memory for kdump)
Merging arm-perf/for-next/perf (fd264b310579 arm64/perf: Replace '0xf' instances with ID_AA64DFR0_PMUVER_IMP_DEF)
Merging arm-soc/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging actions/for-next (444d018d8d38 ARM: dts: owl-s500-roseapplepi: Add ATC2603C PMIC)
Merging amlogic/for-next (83e38509109e Merge branch 'v5.16/dt64' into for-next)
Merging aspeed/for-next (e986277a56da Merge branches 'defconfig-for-v5.16' and 'dt-for-v5.16' into for-next)
Merging at91/at91-next (8aff56d060f4 Merge branch 'at91-dt' into at91-next)
Merging drivers-memory/for-next (a01b1a54770b Merge branch 'for-v5.16/renesas-rpc' into for-next)
Merging imx-mxs/for-next (0dd3273df8c2 Merge branch 'imx/dt64' into for-next)
Merging keystone/next (cb293d3b430e Merge branch 'for_5.15/drivers-soc' into next)
Merging mediatek/for-next (69862ae4e378 Merge branch 'v5.14-next/soc' into for-next)
Merging mvebu/for-next (930af8dda750 Merge branch 'mvebu/dt64' into mvebu/for-next)
Merging omap/for-next (7911f95d1713 Merge branch 'fixes' into for-next)
Merging qcom/for-next (12056fc2916f Merge branches 'arm64-for-5.16', 'drivers-for-5.16' and 'dts-for-5.16' into for-next)
Merging raspberrypi/for-next (9f5289ec6f1c ARM: dts: bcm2711-rpi-4-b: Fix usb's unit address)
Merging renesas/next (3b298ae53579 Merge branches 'renesas-arm-defconfig-for-v5.16' and 'renesas-arm-dt-for-v5.16' into renesas-next)
Merging reset/reset/next (09f3824342f6 reset: simple: remove ZTE details in Kconfig help)
Merging rockchip/for-next (9a6218fd50c1 Merge branch 'v5.16-armsoc/dts64' into for-next)
Merging samsung-krzk/for-next (1523dddcd195 Merge branch 'next/soc' into for-next)
Merging scmi/for-linux-next (cb5da0da3602 Merge branch 'for-next/scmi' of git://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux into for-linux-next)
Merging stm32/stm32-next (350081007916 ARM: dts: stm32: set the DCMI pins on stm32mp157c-odyssey)
Merging sunxi/sunxi/for-next (bb289f4c0b2b Merge branches 'sunxi/clk-for-5.16', 'sunxi/core-for-5.16', 'sunxi/drivers-for-5.16', 'sunxi/dt-for-5.16' and 'sunxi/fixes-for-5.15' into sunxi/for-next)
Merging tegra/for-next (6f8b0fca12e4 Merge branch for-5.16/arm64/dt into for-next)
Merging ti-k3/ti-k3-next (1e3d655fe7b4 Merge branch 'ti-k3-config-next' into ti-k3-next)
Merging ti-k3-new/ti-k3-next (6037c75b193a arm64: dts: ti: k3-am65: Relocate thermal-zones to SoC specific location)
Merging xilinx/for-next (35a7430dad4d arm64: zynqmp: Wire psgtr for zc1751-xm013)
Merging clk/clk-next (1cbc04ffedcc Merge branch 'clk-mtk' into clk-next)
Merging clk-imx/for-next (1f4b035e603b clk: imx: Fix the build break when clk-imx8ulp build as module)
Merging clk-renesas/renesas-clk (c11d7f5126b7 clk: renesas: r9a07g044: Add GbEthernet clock/reset)
Merging clk-samsung/for-next (1d26eaeec37a clk: samsung: s5pv210-audss: Make use of devm_platform_ioremap_resource())
Merging csky/linux-next (40e080ed8218 csky: Make HAVE_TCM depend on !COMPILE_TEST)
Merging h8300/h8300-next (1ec10274d436 h8300: don't implement set_fs)
Merging m68k/for-next (6621cb4a2d0a m68k: muldi3: Use semicolon instead of comma)
Merging m68knommu/for-next (5816b3e6577e Linux 5.15-rc3)
Merging microblaze/next (6880fa6c5660 Linux 5.15-rc1)
Merging mips/mips-next (6880fa6c5660 Linux 5.15-rc1)
Merging nds32/next (07cd7745c6f2 nds32/setup: remove unused memblock_region variable in setup_memory())
CONFLICT (content): Merge conflict in arch/nds32/Kconfig
Merging nios2/for-next (7f7bc20bc41a nios2: Don't use _end for calculating min_low_pfn)
Merging openrisc/for-next (1955d843efc3 openrisc/litex: Update defconfig)
Merging parisc-hd/for-next (e4e737bb5c17 Linux 5.15-rc2)
Merging powerpc/next (6880fa6c5660 Linux 5.15-rc1)
Merging soc-fsl/next (242b0b398ccd soc: fsl: enable acpi support in RCPM driver)
Merging risc-v/for-next (6f55ab36bef5 riscv: Move EXCEPTION_TABLE to RO_DATA segment)
Merging s390/for-next (23955660ff81 Merge branch 'fixes' into for-next)
Merging sh/for-next (12285ff8667b sh: kdump: add some attribute to function)
Merging sparc-next/master (dd0d718152e4 Merge tag 'spi-fix-v5.8-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi)
Merging uml/linux-next (234640275675 um: rename set_signals() to um_set_signals())
Merging xtensa/xtensa-for-next (6489f8d0e1d9 xtensa: call irqchip_init only when CONFIG_USE_OF is selected)
Merging pidfd/for-next (f4dd02cd8631 Merge branch 'kernel.sys' into for-next)
Merging fscrypt/master (7f595d6a6cdc fscrypt: allow 256-bit master keys with AES-256-XTS)
Merging fscache/fscache-next (97b85f2079a9 Merge branch 'fscache-iter-3' into fscache-next)
Merging afs/afs-next (7af08140979a Revert "gcov: clang: fix clang-11+ build")
Merging btrfs/for-next (e51480e6f4f8 Merge branch 'for-next-next-v5.15-20210913' into for-next-20210913)
Merging ceph/master (b96728705f91 ceph: convert to noop_direct_IO)
Merging cifs/for-next (5816b3e6577e Linux 5.15-rc3)
Merging cifsd/cifsd-for-next (d72a9c158893 ksmbd: fix invalid request buffer access in compound)
Merging configfs/for-next (c42dd069be8d configfs: fix a race in configfs_lookup())
Merging ecryptfs/next (682a8e2b41ef Merge tag 'ecryptfs-5.13-rc1-updates' of git://git.kernel.org/pub/scm/linux/kernel/git/tyhicks/ecryptfs)
Merging erofs/dev (1266b4a7ecb6 erofs: fix double free of 'copied')
Merging exfat/dev (50be9417e23a Merge tag 'io_uring-5.14-2021-07-09' of git://git.kernel.dk/linux-block)
Merging ext3/for_next (372d1f3e1bfe ext2: fix sleeping in atomic bugs on error)
Merging ext4/dev (948ca5f30e1d ext4: enforce buffer head state assertion in ext4_da_map_blocks)
Merging f2fs/dev (6663b138ded1 f2fs: set SBI_NEED_FSCK flag when inconsistent node block found)
Merging fsverity/fsverity (07c99001312c fs-verity: support reading signature with ioctl)
Merging fuse/for-next (7a41554fdfb0 fuse: move fuse_invalidate_attr() into fuse_update_ctime())
Merging gfs2/for-next (11603f0011d0 gfs2: Allow append and immutable bits to coexist)
Merging jfs/jfs-next (c48a14dca2cb JFS: fix memleak in jfs_mount)
Merging nfs/linux-next (5816b3e6577e Linux 5.15-rc3)
Merging nfs-anna/linux-next (8cfb9015280d NFS: Always provide aligned buffers to the RPC read layers)
Merging nfsd/nfsd-next (c36836d5a1af NFSD: Initialize pointer ni with NULL and not plain integer 0)
Merging cel/for-next (02579b2ff8b0 nfsd: back channel stuck in SEQ4_STATUS_CB_PATH_DOWN)
Merging ntfs3/master (66019837a556 fs/ntfs3: Refactoring lock in ntfs_init_acl)
Merging orangefs/for-next (0fdec1b3c9fb orangefs: fix orangefs df output.)
Merging overlayfs/overlayfs-next (b95ce53b72d1 ovl: fix IOCB_DIRECT if underlying fs doesn't support direct IO)
Merging ubifs/next (a801fcfeef96 ubifs: Set/Clear I_LINKABLE under i_lock for whiteout inode)
Merging v9fs/9p-next (9c4d94dc9a64 net/9p: increase default msize to 128k)
Merging xfs/for-next (f38a032b165d xfs: fix I_DONTCACHE)
Merging zonefs/for-next (95b115332a83 zonefs: remove redundant null bio check)
Merging iomap/iomap-for-next (03b8df8d43ec iomap: standardize tracepoint formatting and storage)
Merging djw-vfs/vfs-for-next (d03ef4daf33a fs: forbid invalid project ID)
Merging file-locks/locks-next (90f7d7a0d0d6 locks: remove LOCK_MAND flock lock support)
Merging vfs/for-next (8f40da9494cf Merge branch 'misc.namei' into for-next)
Merging printk/for-next (9980c4251f8d printk: use kvmalloc instead of kmalloc for devkmsg_user)
Merging pci/next (ef4bce990eab Merge branch 'pci/virtualization')
Merging pstore/for-next/pstore (c5d4fb2539ca pstore/blk: Use "%lu" to format unsigned long)
Merging hid/for-next (dd0f17ef2ea8 Merge branches 'for-5.15/upstream-fixes' and 'for-5.16/amd-sfh' into for-next)
Merging i2c/i2c/for-next (294b29f15469 i2c: xiic: Fix RX IRQ busy check)
Merging i3c/i3c/next (a3587e2c0578 i3c: fix incorrect address slot lookup on 64-bit)
Merging dmi/dmi-for-next (f97a2103f1a7 firmware: dmi: Move product_sku info to the end of the modalias)
Merging hwmon-staging/hwmon-next (7b2ff48129ca dt-bindings: hwmon: jedec,jc42: convert to dtschema)
Merging jc_docs/docs-next (250a0a5ba9d2 docs: checkpatch: add multiline, do/while, and multiple-assignment messages)
Merging v4l-dvb/master (e4e737bb5c17 Linux 5.15-rc2)
Merging v4l-dvb-next/master (952aab37b121 Merge tag 'v5.15-rc2' into media_stage)
Applying: fix for "media: ir_toy: allow tx carrier to be set"
Merging pm/linux-next (7c86bb8dfc1b Merge branch 'pm-cpuidle' into linux-next)
Merging cpufreq-arm/cpufreq/arm/linux-next (4855e26bcf4d cpufreq: mediatek-hw: Add support for CPUFREQ HW)
Merging cpupower/cpupower (79a0dc5530a9 tools: cpupower: fix typo in cpupower-idle-set(1) manpage)
Merging devfreq/devfreq-next (7f6490afc97f devfreq: exynos-ppmu: simplify parsing event-type from DT)
Merging opp/opp/linux-next (94274f20f6bf dt-bindings: opp: Convert to DT schema)
Merging thermal/thermal/linux-next (fc26023f8816 thermal/drivers/int340x: Fix tcc offset on resume)
CONFLICT (content): Merge conflict in drivers/thermal/intel/int340x_thermal/processor_thermal_device.c
Merging ieee1394/for-next (54b3bd99f094 firewire: nosy: switch from 'pci_' to 'dma_' API)
Merging dlm/next (ecd95673142e fs: dlm: avoid comms shutdown delay in release_lockspace)
Merging swiotlb/linux-next (f3c4b1341e83 swiotlb: use depends on for DMA_RESTRICTED_POOL)
Merging rdma/for-next (450f4f6aa1a3 RDMA/rxe: Only allow invalidate for appropriate MRs)
Merging net-next/master (a17aafa3a416 Merge branch 'bcmgenet-flow-control')
Merging bpf-next/for-next (4c9f09372046 Merge branch 'bpf-xsk-rx-batch')
Merging ipsec-next/master (83688aec17bf net/ipv4/xfrm4_tunnel.c: remove superfluous header files from xfrm4_tunnel.c)
Merging mlx5-next/mlx5-next (6880fa6c5660 Linux 5.15-rc1)
Merging netfilter-next/master (acde891c243c rxrpc: Fix _usecs_to_jiffies() by using usecs_to_jiffies())
Merging ipvs-next/master (13bb8429ca98 net: wwan: iosm: firmware flashing and coredump collection)
Merging wireless-drivers-next/master (5db4943a9d6f rtw88: 8821c: correct 2.4G tx power for type 2/4 NIC)
Merging bluetooth/master (bad8833aaa87 Bluetooth: Fix wrong opcode when LL privacy enabled)
$ git reset --hard HEAD^
Merging next-20210924 version of bluetooth
Merging mac80211-next/master (cd8793f97f5f mac80211_hwsim: enable 6GHz channels)
Merging mtd/mtd/next (b72841e4dcd5 mtd: mtdswap: Remove redundant assignment of pointer eb)
Merging nand/nand/next (46a0dc10fb32 mtd: rawnand: intel: Fix potential buffer overflow in probe)
Merging spi-nor/spi-nor/next (2734d6c1b1a0 Linux 5.14-rc2)
Merging crypto/master (adad556efcdd crypto: api - Fix built-in testing dependency failures)
Applying: Revert "crypto: api - Fix built-in testing dependency failures"
Merging drm/drm-next (f602a96e0252 Merge tag 'drm-misc-next-2021-09-23' of git://anongit.freedesktop.org/drm/drm-misc into drm-next)
Merging drm-misc/for-linux-next (116e5947d7bf drm/edid: Fix drm_edid_encode_panel_id() kerneldoc warning)
Merging amdgpu/drm-next (2485e2753ec8 drm/amdgpu: make soc15_common_ip_funcs static)
CONFLICT (content): Merge conflict in drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c
CONFLICT (content): Merge conflict in drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c
CONFLICT (content): Merge conflict in MAINTAINERS
Merging drm-intel/for-linux-next (c6b40ee330fe drm/i915/audio: Use BIOS provided value for RKL HDA link)
Applying: fix for drm/dp: add LTTPR DP 2.0 DPCD addresses
Merging drm-tegra/drm/tegra/for-next (c3dbfb9c49ee gpu: host1x: Plug potential memory leak)
Merging drm-msm/msm-next (cb0927ab80d2 drm/msi/mdp4: populate priv->kms in mdp4_kms_init)
Merging imx-drm/imx-drm/next (20fbfc81e390 drm/imx: imx-tve: Make use of the helper function devm_platform_ioremap_resource())
Merging etnaviv/etnaviv/next (81fd23e2b3cc drm/etnaviv: Implement mmap as GEM object function)
Merging regmap/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging sound/for-next (f02f2f1bf9d1 ALSA: usx2y: Prefer struct_size over open coded arithmetic)
Merging sound-asoc/for-next (1e545674a282 Merge remote-tracking branch 'asoc/for-5.16' into asoc-next)
Merging modules/modules-next (ced75a2f5da7 MAINTAINERS: Add Luis Chamberlain as modules maintainer)
Merging input/next (d5af8a8f7c4c Input: mpr121 - make use of the helper function devm_add_action_or_reset())
Merging block/for-next (0d05bd9785aa Merge branch 'for-5.16/drivers' into for-next)
Merging device-mapper/for-next (d3703ef33129 dm crypt: use in_hardirq() instead of deprecated in_irq())
Merging libata/for-next (0e96dc47b95a ahci: remove duplicated PCI device IDs)
Merging pcmcia/pcmcia-next (e39cdacf2f66 pcmcia: i82092: fix a null pointer dereference bug)
Merging mmc/next (f3e25dac04e1 dt-bindings: mmc: cdns: document Microchip MPFS MMC/SDHCI controller)
Merging mfd/for-mfd-next (cdff1eda6932 mfd: lpc_sch: Rename GPIOBASE to prevent build error)
Merging backlight/for-backlight-next (79fad92f2e59 backlight: pwm_bl: Improve bootloader/kernel device handover)
Merging battery/for-next (9ba533eb99bb power: supply: core: Add psy_has_property())
Merging regulator/for-next (3938209d5e91 Merge remote-tracking branch 'regulator/for-5.16' into regulator-next)
Merging security/next-testing (047843bdb316 Merge branch 'landlock_lsm_v34' into next-testing)
Merging apparmor/apparmor-next (d108370c644b apparmor: fix error check)
Merging integrity/next-integrity (836f7b6ca082 ima: fix deadlock when traversing "ima_default_rules".)
Merging keys/keys-next (e377c31f788f integrity: Load mokx variables into the blacklist keyring)
CONFLICT (content): Merge conflict in certs/system_keyring.c
Merging safesetid/safesetid-next (1b8b71922919 LSM: SafeSetID: Mark safesetid_initialized as __initdata)
Merging selinux/next (d9d8c93938c4 Smack: Brutalist io_uring support)
CONFLICT (content): Merge conflict in fs/io-wq.c
Merging smack/next (222a96b31c24 smack: Guard smack_ipv6_lock definition within a SMACK_IPV6_PORT_LABELING block)
Merging tomoyo/master (7d2a07b76933 Linux 5.14)
Merging tpmdd/next (f985911b7bc7 crypto: public_key: fix overflow during implicit conversion)
Merging watchdog/master (5816b3e6577e Linux 5.15-rc3)
Merging iommu/next (b58886bf14da Merge branch 'iommu/fixes' into next)
Merging audit/next (8e71168e2cc7 lsm_audit: avoid overloading the "key" audit field)
Merging devicetree/for-next (3148ffd89292 dt-bindings: rng: convert OMAP and Inside-Secure HWRNG to yaml schema)
Merging mailbox/mailbox-for-next (85dfdbfc13ea mailbox: cmdq: add multi-gce clocks support for mt8195)
Merging spi/for-next (67ebf32ffba7 Merge remote-tracking branch 'spi/for-5.16' into spi-next)
Merging tip/auto-latest (d478ddf4e3cf Merge remote-tracking branch 'tip/irq/urgent' into tip-master)
Merging clockevents/timers/drivers/next (f196ae282070 dt-bindings: timer: Add ABIs for new Ingenic SoCs)
Merging edac/edac-for-next (4646da896a44 Merge branch 'edac-urgent' into edac-for-next)
Merging irqchip/irq/irqchip-next (6e3b473ee064 Merge branch irq/qcom-pdc-nowake-cleanup into irq/irqchip-next)
Merging ftrace/for-next (5dfe50b05588 bootconfig: Rename xbc_node_find_child() to xbc_node_find_subkey())
Merging rcu/rcu/next (7193f47219a6 rcutorture: Suppress pi-lock-across read-unlock testing for Tiny SRCU)
Merging kvm/next (109bbba5066b KVM: Drop unused kvm_dirty_gfn_invalid())
Merging kvm-arm/next (419025b3b419 Merge branch kvm-arm64/misc-5.15 into kvmarm-master/next)
Merging kvm-ppc/kvm-ppc-next (72476aaa4691 KVM: PPC: Book3S HV: Fix host radix SLB optimisation with hash guests)
Merging kvms390/next (a3e03bc1368c KVM: s390: index kvm->arch.idle_mask by vcpu_idx)
Merging xen-tip/linux-next (0594c58161b6 xen/x86: fix PV trap handling on secondary processors)
Merging percpu/for-next (a81a52b325ec Merge branch 'for-5.14-fixes' into for-next)
Merging workqueues/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging drivers-x86/for-next (f6045de1f532 platform/x86: amd-pmc: Export Idlemask values based on the APU)
Merging chrome-platform/for-next (f11c35e18150 platform/chrome: cros_ec_sensorhub: simplify getting .driver_data)
Merging hsi/for-next (e73f0f0ee754 Linux 5.14-rc1)
Merging leds/for-next (2a5a8fa8b231 leds: trigger: use RCU to protect the led_cdevs list)
Merging ipmi/for-next (35f4caec9d51 ipmi: Disable some operations during a panic)
Merging driver-core/driver-core-next (d4771993f2cf scripts: get_abi.pl: ensure that "others" regex will be parsed)
Merging usb/usb-next (ae9a6149884e Merge 5.15-rc3 into usb-next)
Merging usb-gadget/next (e49d033bddf5 Linux 5.12-rc6)
Merging usb-serial/usb-next (c8345c0500de USB: serial: kl5kusb105: drop line-status helper)
Merging usb-chipidea-next/for-usb-next (78665f57c3fa usb: chipidea: udc: make controller hardware endpoint primed)
Merging tty/tty-next (5ecb11dd892f Merge 5.15-rc3 into tty-next)
Merging char-misc/char-misc-next (20ac422c8ef7 Merge 5.15-rc3 into char-misc next)
Merging extcon/extcon-next (eb29ba5688de extcon: extcon-axp288: Use P-Unit semaphore lock for register accesses)
Merging phy-next/next (6880fa6c5660 Linux 5.15-rc1)
Merging soundwire/next (6880fa6c5660 Linux 5.15-rc1)
Merging thunderbolt/next (641cdbea7635 thunderbolt: Enable retry logic for intra-domain control packets)
Merging vfio/next (ea870730d83f Merge branches 'v5.15/vfio/spdx-license-cleanups', 'v5.15/vfio/dma-valid-waited-v3', 'v5.15/vfio/vfio-pci-core-v5' and 'v5.15/vfio/vfio-ap' into v5.15/vfio/next)
Merging staging/staging-next (9b40e16ee51a Merge branch 5.15-rc3 into staging-next)
Merging iio/togreg (55c45baaaf78 iio: adc: rockchip_saradc: Make use of the helper function devm_platform_ioremap_resource())
Merging mux/for-next (3516bd729358 Merge tag 's390-5.11-3' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux)
Merging icc/icc-next (13404ac8882f interconnect: qcom: sdm660: Add missing a2noc qos clocks)
Merging dmaengine/next (6880fa6c5660 Linux 5.15-rc1)
Merging cgroup/for-next (7ee285395b21 cgroup: Make rebind_subsystems() disable v2 controllers all at once)
Merging scsi/for-next (41d7acab7706 Merge branch 'fixes' into for-next)
Merging scsi-mkp/for-next (efe1dc571a5b scsi: lpfc: Fix mailbox command failure during driver initialization)
Merging vhost/linux-next (dd7dc7e82b14 vhost_vdpa: unset vq irq before freeing irq)
Merging rpmsg/for-next (45500e830ed5 Merge branches 'rpmsg-next' and 'rproc-next' into for-next)
Merging gpio/for-next (7ac554888233 MAINTAINERS: Remove reference to non-existing file)
Merging gpio-brgl/gpio/for-next (7687a5b0ee93 gpio: modepin: Add driver support for modepin GPIO controller)
Merging gpio-intel/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging pinctrl/for-next (3b63bcc2a41d Merge branch 'devel' into for-next)
Merging pinctrl-intel/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging pinctrl-renesas/renesas-pinctrl (fcfb63148c24 pinctrl: renesas: rzg2l: Fix missing port register 21h)
Merging pinctrl-samsung/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging pwm/for-next (3f2b16734914 pwm: mtk-disp: Implement atomic API .get_state())
Merging userns/for-next (a3be01837fc9 Merge of ucount-fixes-for-5.14, siginfo-si_trapno-for-v5.15, and exit-cleanups-for-v5.15 for testing in linux-next)
CONFLICT (content): Merge conflict in include/linux/sched/signal.h
Merging ktest/for-next (170f4869e662 ktest.pl: Fix the logic for truncating the size of the log file for email)
Merging kselftest/next (6880fa6c5660 Linux 5.15-rc1)
Merging livepatching/for-next (cd2d68f2d6b2 Merge branch 'for-5.15/cpu-hotplug' into for-next)
Merging coresight/next (1efbcec2ef8c coresight: cti: Reduce scope for the variable “cs_fwnode” in cti_plat_create_connection())
Merging rtc/rtc-next (27ff63eb076c rtc: msc313: fix missing include)
Merging nvdimm/libnvdimm-for-next (bdd3c50d83bf dax: remove bdev_dax_supported)
Merging at24/at24/for-next (762925405482 dt-bindings: at24: add ON Semi CAT24C04 and CAT24C05)
Merging ntb/ntb-next (f96cb827ce49 ntb: ntb_pingpong: remove redundant initialization of variables msg_data and spad_data)
Merging seccomp/for-next/seccomp (b4d8a58f8dcf seccomp: Fix setting loaded filter count during TSYNC)
Merging kspp/for-next/kspp (744679de4be9 Merge branch 'for-next/gcc-plugins' into for-next/kspp)
Merging cisco/for-next (9e98c678c2d6 Linux 5.1-rc1)
Merging gnss/gnss-next (0f79ce970e79 gnss: drop stray semicolons)
Merging fsi/next (9ab1428dfe2c fsi/sbefifo: Fix reset timeout)
Merging slimbus/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging nvmem/for-next (536267aafb8a nvmem: core: Add stubs for nvmem_cell_read_variable_le_u32/64 if !CONFIG_NVMEM)
Merging xarray/main (2c7e57a02708 idr test suite: Improve reporting from idr_find_test_1)
Merging hyperv/hyperv-next (9d68cd9120e4 hv_utils: Set the maximum packet size for VSS driver to the length of the receive buffer)
Merging auxdisplay/auxdisplay (24ebc044c72e auxdisplay: Replace symbolic permissions with octal permissions)
Merging kgdb/kgdb/for-next (f8416aa29185 kernel: debug: Convert to SPDX identifier)
Merging hmm/hmm (6880fa6c5660 Linux 5.15-rc1)
Merging fpga/for-next (6880fa6c5660 Linux 5.15-rc1)
Merging kunit/test (6880fa6c5660 Linux 5.15-rc1)
Merging cfi/cfi/next (ff1176468d36 Linux 5.14-rc3)
Merging kunit-next/kunit (3b29021ddd10 kunit: tool: allow filtering test cases via glob)
Merging trivial/for-next (9ff9b0d392ea Merge tag 'net-next-5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next)
Merging mhi/mhi-next (813272ed5238 Merge 5.14-rc5 into char-misc-next)
Merging memblock/for-next (e888fa7bb882 memblock: Check memory add/cap ordering)
Merging init/init-user-pointers (38b082236e77 initramfs: use vfs_utimes in do_copy)
Merging counters/counters (e71ba9452f0b Linux 5.11-rc2)
Merging rust/rust-next (5d3986cf8ed6 MAINTAINERS: Rust)
CONFLICT (content): Merge conflict in include/linux/kallsyms.h
CONFLICT (content): Merge conflict in Makefile
Applying: fixup for rust integration with Makefile.clang creation
Applying: fixup for "kconfig: Refactor sym_escape_string_value"
Merging cxl/next (ed97afb53365 cxl/pci: Disambiguate cxl_pci further from cxl_mem)
Merging folio/for-next (27b231798da1 mm/writeback: Add folio_write_one)
CONFLICT (modify/delete): fs/cachefiles/rdwr.c deleted in HEAD and modified in folio/for-next. Version folio/for-next of fs/cachefiles/rdwr.c left in tree.
$ git rm -f fs/cachefiles/rdwr.c
Applying: fix up for "9p: Convert to using the netfs helper lib to do reads and caching"
Applying: Revert "firmware: cs_dsp: add driver to support firmware loading on Cirrus Logic DSPs"
Applying: crypto: api - Export crypto_boot_test_finished
Applying: Revert "kconfig: remove 'const' from the return type of sym_escape_string()"
Applying: Revert "kconfig: Refactor sym_escape_string_value"
Merging akpm-current/current (48d0092bb55b ipc/ipc_sysctl.c: remove fallback for !CONFIG_PROC_SYSCTL)
$ git checkout -b akpm remotes/origin/akpm/master
$ git rebase --onto master remotes/origin/akpm/master-base
Merging akpm/master (66b60fc7390e mm: unexport {,un}lock_page_memcg)

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

^ permalink raw reply	[relevance 1%]

* Re: [PATCH v2] platform/x86: thinkpad_acpi: Switch to common use of attributes
  2021-09-26 11:32  0% ` Greg Kroah-Hartman
@ 2021-09-28 14:55  0%   ` Hans de Goede
  2021-09-28 16:04  0%     ` Greg Kroah-Hartman
  0 siblings, 1 reply; 200+ results
From: Hans de Goede @ 2021-09-28 14:55 UTC (permalink / raw)
  To: Greg Kroah-Hartman, Len Baker
  Cc: Henrique de Moraes Holschuh, Mark Gross, Gustavo A. R. Silva,
	Kees Cook, ibm-acpi-devel, platform-driver-x86, linux-hardening,
	linux-kernel

Hi All,

On 9/26/21 1:32 PM, Greg Kroah-Hartman wrote:
> On Sun, Sep 26, 2021 at 01:19:08PM +0200, Len Baker 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, to avoid open-coded arithmetic in the kzalloc() call inside the
>> create_attr_set() function the code must be refactored. Using the
>> struct_size() helper is the fast solution but it is better to switch
>> this code to common use of attributes.
>>
>> Then, remove all the custom code to manage hotkey attributes and use the
>> attribute_group structure instead, refactoring the code accordingly.
>> Also, to manage the optional hotkey attributes (hotkey_tablet_mode and
>> hotkey_radio_sw) use the is_visible callback from the same structure.
>>
>> Moreover, now the hotkey_init_tablet_mode() function never returns a
>> negative number. So, the check after the call can be safely removed.
>>
>> [1] https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments
>>
>> Suggested-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
>> Signed-off-by: Len Baker <len.baker@gmx.com>
>> ---
>> Hi,
>>
>> Following the suggestions made by Greg I have switch the code to common
>> use of attributes. However this code is untested. If someone could test
>> it would be great.
> 
> Much better, thanks.

This indeed is much better and a great cleanup, thanks.

> 
> But, I have a few questions here:
> 
>> @@ -3161,9 +3106,7 @@ static void hotkey_exit(void)
>>  	hotkey_poll_stop_sync();
>>  	mutex_unlock(&hotkey_mutex);
>>  #endif
>> -
>> -	if (hotkey_dev_attributes)
>> -		delete_attr_set(hotkey_dev_attributes, &tpacpi_pdev->dev.kobj);
>> +	sysfs_remove_group(&tpacpi_pdev->dev.kobj, &hotkey_attr_group);
> 
> Why do you have to manually add/remove these groups still?
> 
> A huge hint that something is going wrong is when you have to call a
> sysfs_*() call from within a driver.  There should be proper driver_*()
> calls for you instead to get the job done.
> 
> As this is a platform device, why not set the dev_groups variable in the
> platform_driver field so that these attribute groups get added and
> removed automatically?

The thinkpad_acpi code talks to the ACPI object representing the
ThinkPad embedded-controller and that has a lot of different sub-functionalities
which may or may not be present depending on the model laptop as well
as on the hw-configuration of the model.

The code is organized around all the different sub-functions with there
being a separate init + exit function for each sub-function, including
with first detecting in the init function if the functionality is present
(e.g. don't register SW_TABLETMODE_SW evdev reporting when the device
is not convertible / don register a WWAN rfkill if there is no WWAN modem).

Many (but not all) of the sub-functions come with a few sysfs-attributes
under /sys/bus/platform/devices/thinkpad_acpi/ many of the separate
function_init functions therefor call sysfs_create_group() for their own
set of sysfs-attributes, if the function is present on the machine.

> An example commit to look at that shows how this was converted for one
> driver is 5bd08a4ae3d0 ("platform: x86: hp-wmi: convert platform driver
> to use dev_groups").  See if that helps here as well.

Right, that results in a very nice cleanup. But there all the attributes
were always registered before the patch so throwing them together in a
ATTRIBUTE_GROUPS(hp_wmi) makes a ton of sense.

Here however we have all the separate function_init() blocks each
conditionally adding their own attributes if the function is present,
so that is different.

Currently there already are 8 separate sysfs_create_group() calls in
the thinkpad_acpi code, so even if we want to refactor this (I'm not
sure that we do) then doing so would fall outside of the scope of this
patch.

Greg, since this resolves / defers your remark and since this otherwise
is a nice cleanup I'm going to merge this version of this patch now.

Regards,

Hans


^ permalink raw reply	[relevance 0%]

* Re: [PATCH v2] platform/x86: thinkpad_acpi: Switch to common use of attributes
  2021-09-28 14:55  0%   ` Hans de Goede
@ 2021-09-28 16:04  0%     ` Greg Kroah-Hartman
  2021-09-28 17:37  0%       ` Hans de Goede
  0 siblings, 1 reply; 200+ results
From: Greg Kroah-Hartman @ 2021-09-28 16:04 UTC (permalink / raw)
  To: Hans de Goede
  Cc: Len Baker, Henrique de Moraes Holschuh, Mark Gross,
	Gustavo A. R. Silva, Kees Cook, ibm-acpi-devel,
	platform-driver-x86, linux-hardening, linux-kernel

On Tue, Sep 28, 2021 at 04:55:25PM +0200, Hans de Goede wrote:
> Hi All,
> 
> On 9/26/21 1:32 PM, Greg Kroah-Hartman wrote:
> > On Sun, Sep 26, 2021 at 01:19:08PM +0200, Len Baker 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, to avoid open-coded arithmetic in the kzalloc() call inside the
> >> create_attr_set() function the code must be refactored. Using the
> >> struct_size() helper is the fast solution but it is better to switch
> >> this code to common use of attributes.
> >>
> >> Then, remove all the custom code to manage hotkey attributes and use the
> >> attribute_group structure instead, refactoring the code accordingly.
> >> Also, to manage the optional hotkey attributes (hotkey_tablet_mode and
> >> hotkey_radio_sw) use the is_visible callback from the same structure.
> >>
> >> Moreover, now the hotkey_init_tablet_mode() function never returns a
> >> negative number. So, the check after the call can be safely removed.
> >>
> >> [1] https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments
> >>
> >> Suggested-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> >> Signed-off-by: Len Baker <len.baker@gmx.com>
> >> ---
> >> Hi,
> >>
> >> Following the suggestions made by Greg I have switch the code to common
> >> use of attributes. However this code is untested. If someone could test
> >> it would be great.
> > 
> > Much better, thanks.
> 
> This indeed is much better and a great cleanup, thanks.
> 
> > 
> > But, I have a few questions here:
> > 
> >> @@ -3161,9 +3106,7 @@ static void hotkey_exit(void)
> >>  	hotkey_poll_stop_sync();
> >>  	mutex_unlock(&hotkey_mutex);
> >>  #endif
> >> -
> >> -	if (hotkey_dev_attributes)
> >> -		delete_attr_set(hotkey_dev_attributes, &tpacpi_pdev->dev.kobj);
> >> +	sysfs_remove_group(&tpacpi_pdev->dev.kobj, &hotkey_attr_group);
> > 
> > Why do you have to manually add/remove these groups still?
> > 
> > A huge hint that something is going wrong is when you have to call a
> > sysfs_*() call from within a driver.  There should be proper driver_*()
> > calls for you instead to get the job done.
> > 
> > As this is a platform device, why not set the dev_groups variable in the
> > platform_driver field so that these attribute groups get added and
> > removed automatically?
> 
> The thinkpad_acpi code talks to the ACPI object representing the
> ThinkPad embedded-controller and that has a lot of different sub-functionalities
> which may or may not be present depending on the model laptop as well
> as on the hw-configuration of the model.
> 
> The code is organized around all the different sub-functions with there
> being a separate init + exit function for each sub-function, including
> with first detecting in the init function if the functionality is present
> (e.g. don't register SW_TABLETMODE_SW evdev reporting when the device
> is not convertible / don register a WWAN rfkill if there is no WWAN modem).
> 
> Many (but not all) of the sub-functions come with a few sysfs-attributes
> under /sys/bus/platform/devices/thinkpad_acpi/ many of the separate
> function_init functions therefor call sysfs_create_group() for their own
> set of sysfs-attributes, if the function is present on the machine.
> 
> > An example commit to look at that shows how this was converted for one
> > driver is 5bd08a4ae3d0 ("platform: x86: hp-wmi: convert platform driver
> > to use dev_groups").  See if that helps here as well.
> 
> Right, that results in a very nice cleanup. But there all the attributes
> were always registered before the patch so throwing them together in a
> ATTRIBUTE_GROUPS(hp_wmi) makes a ton of sense.
> 
> Here however we have all the separate function_init() blocks each
> conditionally adding their own attributes if the function is present,
> so that is different.
> 
> Currently there already are 8 separate sysfs_create_group() calls in
> the thinkpad_acpi code, so even if we want to refactor this (I'm not
> sure that we do) then doing so would fall outside of the scope of this
> patch.
> 
> Greg, since this resolves / defers your remark and since this otherwise
> is a nice cleanup I'm going to merge this version of this patch now.

Ok, but having this all in one big list of attributes does work.  You
can have multiple attribute groups listed together (that's why it's a
list of attribute groups, not just one attribute group that the driver
core is expecting.)

You just put the logic of "is this group needed or not?" in the
is_visible() callback for that group.  You then don't need the
function_init() blocks to do anything with sysfs except maybe set a
device variable of "I have type foo" for the is_visible() callback to
check.

Yes, it's not obvious, but should clean up a lot of code in the end.

thanks,

greg k-h

^ permalink raw reply	[relevance 0%]

* Re: [PATCH v2] platform/x86: thinkpad_acpi: Switch to common use of attributes
  2021-09-28 16:04  0%     ` Greg Kroah-Hartman
@ 2021-09-28 17:37  0%       ` Hans de Goede
  0 siblings, 0 replies; 200+ results
From: Hans de Goede @ 2021-09-28 17:37 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: Len Baker, Henrique de Moraes Holschuh, Mark Gross,
	Gustavo A. R. Silva, Kees Cook, ibm-acpi-devel,
	platform-driver-x86, linux-hardening, linux-kernel

Hi,

On 9/28/21 6:04 PM, Greg Kroah-Hartman wrote:
> On Tue, Sep 28, 2021 at 04:55:25PM +0200, Hans de Goede wrote:
>> Hi All,
>>
>> On 9/26/21 1:32 PM, Greg Kroah-Hartman wrote:
>>> On Sun, Sep 26, 2021 at 01:19:08PM +0200, Len Baker 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, to avoid open-coded arithmetic in the kzalloc() call inside the
>>>> create_attr_set() function the code must be refactored. Using the
>>>> struct_size() helper is the fast solution but it is better to switch
>>>> this code to common use of attributes.
>>>>
>>>> Then, remove all the custom code to manage hotkey attributes and use the
>>>> attribute_group structure instead, refactoring the code accordingly.
>>>> Also, to manage the optional hotkey attributes (hotkey_tablet_mode and
>>>> hotkey_radio_sw) use the is_visible callback from the same structure.
>>>>
>>>> Moreover, now the hotkey_init_tablet_mode() function never returns a
>>>> negative number. So, the check after the call can be safely removed.
>>>>
>>>> [1] https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments
>>>>
>>>> Suggested-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
>>>> Signed-off-by: Len Baker <len.baker@gmx.com>
>>>> ---
>>>> Hi,
>>>>
>>>> Following the suggestions made by Greg I have switch the code to common
>>>> use of attributes. However this code is untested. If someone could test
>>>> it would be great.
>>>
>>> Much better, thanks.
>>
>> This indeed is much better and a great cleanup, thanks.
>>
>>>
>>> But, I have a few questions here:
>>>
>>>> @@ -3161,9 +3106,7 @@ static void hotkey_exit(void)
>>>>  	hotkey_poll_stop_sync();
>>>>  	mutex_unlock(&hotkey_mutex);
>>>>  #endif
>>>> -
>>>> -	if (hotkey_dev_attributes)
>>>> -		delete_attr_set(hotkey_dev_attributes, &tpacpi_pdev->dev.kobj);
>>>> +	sysfs_remove_group(&tpacpi_pdev->dev.kobj, &hotkey_attr_group);
>>>
>>> Why do you have to manually add/remove these groups still?
>>>
>>> A huge hint that something is going wrong is when you have to call a
>>> sysfs_*() call from within a driver.  There should be proper driver_*()
>>> calls for you instead to get the job done.
>>>
>>> As this is a platform device, why not set the dev_groups variable in the
>>> platform_driver field so that these attribute groups get added and
>>> removed automatically?
>>
>> The thinkpad_acpi code talks to the ACPI object representing the
>> ThinkPad embedded-controller and that has a lot of different sub-functionalities
>> which may or may not be present depending on the model laptop as well
>> as on the hw-configuration of the model.
>>
>> The code is organized around all the different sub-functions with there
>> being a separate init + exit function for each sub-function, including
>> with first detecting in the init function if the functionality is present
>> (e.g. don't register SW_TABLETMODE_SW evdev reporting when the device
>> is not convertible / don register a WWAN rfkill if there is no WWAN modem).
>>
>> Many (but not all) of the sub-functions come with a few sysfs-attributes
>> under /sys/bus/platform/devices/thinkpad_acpi/ many of the separate
>> function_init functions therefor call sysfs_create_group() for their own
>> set of sysfs-attributes, if the function is present on the machine.
>>
>>> An example commit to look at that shows how this was converted for one
>>> driver is 5bd08a4ae3d0 ("platform: x86: hp-wmi: convert platform driver
>>> to use dev_groups").  See if that helps here as well.
>>
>> Right, that results in a very nice cleanup. But there all the attributes
>> were always registered before the patch so throwing them together in a
>> ATTRIBUTE_GROUPS(hp_wmi) makes a ton of sense.
>>
>> Here however we have all the separate function_init() blocks each
>> conditionally adding their own attributes if the function is present,
>> so that is different.
>>
>> Currently there already are 8 separate sysfs_create_group() calls in
>> the thinkpad_acpi code, so even if we want to refactor this (I'm not
>> sure that we do) then doing so would fall outside of the scope of this
>> patch.
>>
>> Greg, since this resolves / defers your remark and since this otherwise
>> is a nice cleanup I'm going to merge this version of this patch now.
> 
> Ok, but having this all in one big list of attributes does work.  You
> can have multiple attribute groups listed together (that's why it's a
> list of attribute groups, not just one attribute group that the driver
> core is expecting.)
> 
> You just put the logic of "is this group needed or not?" in the
> is_visible() callback for that group.  You then don't need the
> function_init() blocks to do anything with sysfs except maybe set a
> device variable of "I have type foo" for the is_visible() callback to
> check.
> 
> Yes, it's not obvious, but should clean up a lot of code in the end.

That is an interesting suggestion, if someone feels up to giving this
a try I wonder what the end-result will look like.

Regards,

Hans


^ permalink raw reply	[relevance 0%]

* Re: [PATCH v2] scsi: advansys: Prefer struct_size over open coded arithmetic
  2021-09-25 11:42 12% [PATCH v2] scsi: advansys: Prefer struct_size over open coded arithmetic Len Baker
  2021-09-27 14:48  7% ` Gustavo A. R. Silva
@ 2021-09-29  2:55  7% ` Martin K. Petersen
  2021-10-05  4:34 12% ` Martin K. Petersen
  2 siblings, 0 replies; 200+ results
From: Martin K. Petersen @ 2021-09-29  2:55 UTC (permalink / raw)
  To: Len Baker
  Cc: Matthew Wilcox, Hannes Reinecke, James E.J. Bottomley,
	Martin K. Petersen, Gustavo A. R. Silva, Kees Cook,
	linux-hardening, linux-scsi, linux-kernel


Len,

> 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.

Applied to 5.16/scsi-staging, thanks!

-- 
Martin K. Petersen	Oracle Linux Engineering

^ permalink raw reply	[relevance 7%]

* [PATCH] drm/i915: Prefer struct_size over open coded arithmetic
@ 2021-10-03 10:42 12% Len Baker
  2021-10-11  9:23 12% ` Len Baker
  0 siblings, 1 reply; 200+ results
From: Len Baker @ 2021-10-03 10:42 UTC (permalink / raw)
  To: Jani Nikula, Joonas Lahtinen, Rodrigo Vivi, David Airlie, Daniel Vetter
  Cc: Len Baker, Kees Cook, Gustavo A. R. Silva, intel-gfx, dri-devel,
	linux-hardening, linux-kernel

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.

In this case these are not actually dynamic sizes: all the operands
involved in the calculation are constant values. However it is better to
refactor them anyway, just to keep the open-coded math idiom out of
code.

So, add at the end of the struct i915_syncmap a union with two flexible
array members (these arrays share the same memory layout). This is
possible using the new DECLARE_FLEX_ARRAY macro. And then, use the
struct_size() helper to do the arithmetic instead of the argument
"size + count * size" in the kmalloc and kzalloc() functions.

Also, take the opportunity to refactor the __sync_seqno and __sync_child
making them more readable.

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

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

Signed-off-by: Len Baker <len.baker@gmx.com>
---
 drivers/gpu/drm/i915/i915_syncmap.c | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_syncmap.c b/drivers/gpu/drm/i915/i915_syncmap.c
index 60404dbb2e9f..a8d35491d05a 100644
--- a/drivers/gpu/drm/i915/i915_syncmap.c
+++ b/drivers/gpu/drm/i915/i915_syncmap.c
@@ -82,6 +82,10 @@ struct i915_syncmap {
 	 *	struct i915_syncmap *child[KSYNCMAP];
 	 * };
 	 */
+	union {
+		DECLARE_FLEX_ARRAY(u32, seqno);
+		DECLARE_FLEX_ARRAY(struct i915_syncmap *, child);
+	};
 };

 /**
@@ -99,13 +103,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 +204,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 +286,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 12%]

* Re: [PATCH v2] scsi: advansys: Prefer struct_size over open coded arithmetic
  2021-09-25 11:42 12% [PATCH v2] scsi: advansys: Prefer struct_size over open coded arithmetic Len Baker
  2021-09-27 14:48  7% ` Gustavo A. R. Silva
  2021-09-29  2:55  7% ` Martin K. Petersen
@ 2021-10-05  4:34 12% ` Martin K. Petersen
  2 siblings, 0 replies; 200+ results
From: Martin K. Petersen @ 2021-10-05  4:34 UTC (permalink / raw)
  To: Matthew Wilcox, James E.J. Bottomley, Len Baker, Hannes Reinecke
  Cc: Martin K . Petersen, linux-scsi, Gustavo A. R. Silva,
	linux-hardening, Kees Cook, linux-kernel

On Sat, 25 Sep 2021 13:42:05 +0200, Len Baker 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.
> 
> [...]

Applied to 5.16/scsi-queue, thanks!

[1/1] scsi: advansys: Prefer struct_size over open coded arithmetic
      https://git.kernel.org/mkp/scsi/c/568778f5572a

-- 
Martin K. Petersen	Oracle Linux Engineering

^ permalink raw reply	[relevance 12%]

* Re: [PATCH] thermal: intel_powerclamp: Use bitmap_zalloc/bitmap_free when applicable
  2021-09-26  7:17  5% [PATCH] thermal: intel_powerclamp: Use bitmap_zalloc/bitmap_free when applicable Christophe JAILLET
@ 2021-10-05 14:42  0% ` Rafael J. Wysocki
  0 siblings, 0 replies; 200+ results
From: Rafael J. Wysocki @ 2021-10-05 14:42 UTC (permalink / raw)
  To: Christophe JAILLET
  Cc: Zhang, Rui, Daniel Lezcano, Amit Kucheria, Linux PM,
	Linux Kernel Mailing List, kernel-janitors, Srinivas Pandruvada,
	Jacob Pan

On Sun, Sep 26, 2021 at 9:17 AM Christophe JAILLET
<christophe.jaillet@wanadoo.fr> wrote:
>
> 'cpu_clamping_mask' is a bitmap. So use 'bitmap_zalloc()' and
> 'bitmap_free()' to simplify code, improve the semantic of the code and
> avoid some open-coded arithmetic in allocator arguments.
>
> Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
> ---
>  drivers/thermal/intel/intel_powerclamp.c | 8 +++-----
>  1 file changed, 3 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/thermal/intel/intel_powerclamp.c b/drivers/thermal/intel/intel_powerclamp.c
> index a5b58ea89cc6..9b68489a2356 100644
> --- a/drivers/thermal/intel/intel_powerclamp.c
> +++ b/drivers/thermal/intel/intel_powerclamp.c
> @@ -705,10 +705,8 @@ static enum cpuhp_state hp_state;
>  static int __init powerclamp_init(void)
>  {
>         int retval;
> -       int bitmap_size;
>
> -       bitmap_size = BITS_TO_LONGS(num_possible_cpus()) * sizeof(long);
> -       cpu_clamping_mask = kzalloc(bitmap_size, GFP_KERNEL);
> +       cpu_clamping_mask = bitmap_zalloc(num_possible_cpus(), GFP_KERNEL);
>         if (!cpu_clamping_mask)
>                 return -ENOMEM;
>
> @@ -753,7 +751,7 @@ static int __init powerclamp_init(void)
>  exit_unregister:
>         cpuhp_remove_state_nocalls(hp_state);
>  exit_free:
> -       kfree(cpu_clamping_mask);
> +       bitmap_free(cpu_clamping_mask);
>         return retval;
>  }
>  module_init(powerclamp_init);
> @@ -764,7 +762,7 @@ static void __exit powerclamp_exit(void)
>         cpuhp_remove_state_nocalls(hp_state);
>         free_percpu(worker_data);
>         thermal_cooling_device_unregister(cooling_dev);
> -       kfree(cpu_clamping_mask);
> +       bitmap_free(cpu_clamping_mask);
>
>         cancel_delayed_work_sync(&poll_pkg_cstate_work);
>         debugfs_remove_recursive(debug_dir);
> --

Applied as 5.16 material, thanks!

^ permalink raw reply	[relevance 0%]

* Re: [PATCH] iommu/tegra-smmu: Use devm_bitmap_zalloc when applicable
  2021-09-26 13:07  5% [PATCH] iommu/tegra-smmu: Use devm_bitmap_zalloc when applicable Christophe JAILLET
@ 2021-10-07 18:02  0% ` Thierry Reding
  2021-10-18 11:39  0% ` Joerg Roedel
  1 sibling, 0 replies; 200+ results
From: Thierry Reding @ 2021-10-07 18:02 UTC (permalink / raw)
  To: Christophe JAILLET
  Cc: vdumpa, joro, will, jonathanh, linux-tegra, iommu, linux-kernel,
	kernel-janitors

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

On Sun, Sep 26, 2021 at 03:07:18PM +0200, Christophe JAILLET wrote:
> 'smmu->asids' is a bitmap. So use 'devm_kzalloc()' to simplify code,
> improve the semantic of the code and avoid some open-coded arithmetic in
> allocator arguments.
> 
> Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
> ---
>  drivers/iommu/tegra-smmu.c | 5 +----
>  1 file changed, 1 insertion(+), 4 deletions(-)

Acked-by: Thierry Reding <treding@nvidia.com>

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[relevance 0%]

* [PATCH] net: hns: Prefer struct_size over open coded arithmetic
@ 2021-10-11  9:01 10% Len Baker
  0 siblings, 0 replies; 200+ results
From: Len Baker @ 2021-10-11  9:01 UTC (permalink / raw)
  To: Yisen Zhuang, Salil Mehta, David S. Miller, Jakub Kicinski
  Cc: Len Baker, Kees Cook, Gustavo A. R. Silva, Huazhong Tan, Peng Li,
	Yonglong Liu, netdev, linux-hardening, linux-kernel

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, take the opportunity to refactor the hnae_handle structure to switch
the last member to flexible array, changing the code accordingly. Also,
fix the comment in the hnae_vf_cb structure to inform that the ae_handle
member must be the last member.

Then, use the struct_size() helper to do the arithmetic instead of the
argument "size + count * size" in the kzalloc() function.

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

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

Signed-off-by: Len Baker <len.baker@gmx.com>
---
 drivers/net/ethernet/hisilicon/hns/hnae.h          | 2 +-
 drivers/net/ethernet/hisilicon/hns/hns_ae_adapt.c  | 5 ++---
 drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.h | 2 +-
 3 files changed, 4 insertions(+), 5 deletions(-)

diff --git a/drivers/net/ethernet/hisilicon/hns/hnae.h b/drivers/net/ethernet/hisilicon/hns/hnae.h
index 2b7db1c22321..d46e8f999019 100644
--- a/drivers/net/ethernet/hisilicon/hns/hnae.h
+++ b/drivers/net/ethernet/hisilicon/hns/hnae.h
@@ -558,7 +558,7 @@ struct hnae_handle {
 	enum hnae_media_type media_type;
 	struct list_head node;    /* list to hnae_ae_dev->handle_list */
 	struct hnae_buf_ops *bops; /* operation for the buffer */
-	struct hnae_queue **qs;  /* array base of all queues */
+	struct hnae_queue *qs[];  /* flexible array of all queues */
 };

 #define ring_to_dev(ring) ((ring)->q->dev->dev)
diff --git a/drivers/net/ethernet/hisilicon/hns/hns_ae_adapt.c b/drivers/net/ethernet/hisilicon/hns/hns_ae_adapt.c
index 75e4ec569da8..e81116ad9bdf 100644
--- a/drivers/net/ethernet/hisilicon/hns/hns_ae_adapt.c
+++ b/drivers/net/ethernet/hisilicon/hns/hns_ae_adapt.c
@@ -81,8 +81,8 @@ static struct hnae_handle *hns_ae_get_handle(struct hnae_ae_dev *dev,
 	vfnum_per_port = hns_ae_get_vf_num_per_port(dsaf_dev, port_id);
 	qnum_per_vf = hns_ae_get_q_num_per_vf(dsaf_dev, port_id);

-	vf_cb = kzalloc(sizeof(*vf_cb) +
-			qnum_per_vf * sizeof(struct hnae_queue *), GFP_KERNEL);
+	vf_cb = kzalloc(struct_size(vf_cb, ae_handle.qs, qnum_per_vf),
+			GFP_KERNEL);
 	if (unlikely(!vf_cb)) {
 		dev_err(dsaf_dev->dev, "malloc vf_cb fail!\n");
 		ae_handle = ERR_PTR(-ENOMEM);
@@ -108,7 +108,6 @@ static struct hnae_handle *hns_ae_get_handle(struct hnae_ae_dev *dev,
 		goto vf_id_err;
 	}

-	ae_handle->qs = (struct hnae_queue **)(&ae_handle->qs + 1);
 	for (i = 0; i < qnum_per_vf; i++) {
 		ae_handle->qs[i] = &ring_pair_cb->q;
 		ae_handle->qs[i]->rx_ring.q = ae_handle->qs[i];
diff --git a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.h b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.h
index cba04bfa0b3f..5526a10caac5 100644
--- a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.h
+++ b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.h
@@ -210,7 +210,7 @@ struct hnae_vf_cb {
 	u8 port_index;
 	struct hns_mac_cb *mac_cb;
 	struct dsaf_device *dsaf_dev;
-	struct hnae_handle  ae_handle; /* must be the last number */
+	struct hnae_handle  ae_handle; /* must be the last member */
 };

 struct dsaf_int_xge_src {
--
2.25.1


^ permalink raw reply related	[relevance 10%]

* Re: [PATCH] drm/i915: Prefer struct_size over open coded arithmetic
  2021-10-03 10:42 12% [PATCH] drm/i915: Prefer struct_size over open coded arithmetic Len Baker
@ 2021-10-11  9:23 12% ` Len Baker
  2021-10-13 11:24  7%   ` Jani Nikula
  0 siblings, 1 reply; 200+ results
From: Len Baker @ 2021-10-11  9:23 UTC (permalink / raw)
  To: Jani Nikula, Joonas Lahtinen, Rodrigo Vivi, David Airlie, Daniel Vetter
  Cc: Len Baker, Kees Cook, Gustavo A. R. Silva, intel-gfx, dri-devel,
	linux-hardening, linux-kernel

Hi,

On Sun, Oct 03, 2021 at 12:42:58PM +0200, Len Baker 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.
>
> In this case these are not actually dynamic sizes: all the operands
> involved in the calculation are constant values. However it is better to
> refactor them anyway, just to keep the open-coded math idiom out of
> code.
>
> So, add at the end of the struct i915_syncmap a union with two flexible
> array members (these arrays share the same memory layout). This is
> possible using the new DECLARE_FLEX_ARRAY macro. And then, use the
> struct_size() helper to do the arithmetic instead of the argument
> "size + count * size" in the kmalloc and kzalloc() functions.
>
> Also, take the opportunity to refactor the __sync_seqno and __sync_child
> making them more readable.
>
> This code was detected with the help of Coccinelle and audited and fixed
> manually.
>
> [1] https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments
>
> Signed-off-by: Len Baker <len.baker@gmx.com>
> ---
>  drivers/gpu/drm/i915/i915_syncmap.c | 12 ++++++++----
>  1 file changed, 8 insertions(+), 4 deletions(-)

I received a mail telling that this patch doesn't build:

== Series Details ==

Series: drm/i915: Prefer struct_size over open coded arithmetic
URL   : https://patchwork.freedesktop.org/series/95408/
State : failure

But it builds without error against linux-next (tag next-20211001). Against
which tree and branch do I need to build?

Regards,
Len

^ permalink raw reply	[relevance 12%]

* [PATCH] virt: acrn: Prefer array_syze and struct_size over open coded arithmetic
@ 2021-10-11 10:39 11% Len Baker
  2021-10-12  1:34  7% ` Li Fei1
  0 siblings, 1 reply; 200+ results
From: Len Baker @ 2021-10-11 10:39 UTC (permalink / raw)
  To: Fei Li
  Cc: Len Baker, Kees Cook, Gustavo A. R. Silva, linux-hardening, linux-kernel

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 array_size() helper to do the arithmetic instead of the
argument "count * size" in the vzalloc() function.

Also, take the opportunity to add a flexible array member of struct
vm_memory_region_op to the vm_memory_region_batch structure. And then,
change the code accordingly and use the struct_size() helper to do the
arithmetic instead of the argument "size + size * count" in the kzalloc
function.

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

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

Signed-off-by: Len Baker <len.baker@gmx.com>
---
 drivers/virt/acrn/acrn_drv.h | 10 ++++++----
 drivers/virt/acrn/mm.c       |  9 ++++-----
 2 files changed, 10 insertions(+), 9 deletions(-)

diff --git a/drivers/virt/acrn/acrn_drv.h b/drivers/virt/acrn/acrn_drv.h
index 1be54efa666c..fcc2e3e5232a 100644
--- a/drivers/virt/acrn/acrn_drv.h
+++ b/drivers/virt/acrn/acrn_drv.h
@@ -48,6 +48,7 @@ struct vm_memory_region_op {
  * @reserved:		Reserved.
  * @regions_num:	The number of vm_memory_region_op.
  * @regions_gpa:	Physical address of a vm_memory_region_op array.
+ * @regions_op:		Flexible array of vm_memory_region_op.
  *
  * HC_VM_SET_MEMORY_REGIONS uses this structure to manage EPT mappings of
  * multiple memory regions of a User VM. A &struct vm_memory_region_batch
@@ -55,10 +56,11 @@ struct vm_memory_region_op {
  * ACRN Hypervisor.
  */
 struct vm_memory_region_batch {
-	u16	vmid;
-	u16	reserved[3];
-	u32	regions_num;
-	u64	regions_gpa;
+	u16				vmid;
+	u16				reserved[3];
+	u32				regions_num;
+	u64				regions_gpa;
+	struct vm_memory_region_op	regions_op[];
 };

 /**
diff --git a/drivers/virt/acrn/mm.c b/drivers/virt/acrn/mm.c
index c4f2e15c8a2b..a881742cd48d 100644
--- a/drivers/virt/acrn/mm.c
+++ b/drivers/virt/acrn/mm.c
@@ -168,7 +168,7 @@ int acrn_vm_ram_map(struct acrn_vm *vm, struct acrn_vm_memmap *memmap)

 	/* Get the page number of the map region */
 	nr_pages = memmap->len >> PAGE_SHIFT;
-	pages = vzalloc(nr_pages * sizeof(struct page *));
+	pages = vzalloc(array_size(nr_pages, sizeof(struct page *)));
 	if (!pages)
 		return -ENOMEM;

@@ -220,16 +220,15 @@ int acrn_vm_ram_map(struct acrn_vm *vm, struct acrn_vm_memmap *memmap)
 	}

 	/* Prepare the vm_memory_region_batch */
-	regions_info = kzalloc(sizeof(*regions_info) +
-			       sizeof(*vm_region) * nr_regions,
-			       GFP_KERNEL);
+	regions_info = kzalloc(struct_size(regions_info, regions_op,
+					   nr_regions), GFP_KERNEL);
 	if (!regions_info) {
 		ret = -ENOMEM;
 		goto unmap_kernel_map;
 	}

 	/* Fill each vm_memory_region_op */
-	vm_region = (struct vm_memory_region_op *)(regions_info + 1);
+	vm_region = regions_info->regions_op;
 	regions_info->vmid = vm->vmid;
 	regions_info->regions_num = nr_regions;
 	regions_info->regions_gpa = virt_to_phys(vm_region);
--
2.25.1


^ permalink raw reply related	[relevance 11%]

* Re: [PATCH] virt: acrn: Prefer array_syze and struct_size over open coded arithmetic
  2021-10-11 10:39 11% [PATCH] virt: acrn: Prefer array_syze and " Len Baker
@ 2021-10-12  1:34  7% ` Li Fei1
  2021-10-13  7:29  7%   ` Kees Cook
  2021-10-15 15:52  7%   ` Len Baker
  0 siblings, 2 replies; 200+ results
From: Li Fei1 @ 2021-10-12  1:34 UTC (permalink / raw)
  To: Len Baker; +Cc: keescook, gustavoars, linux-hardening, linux-kernel, fei1.li

On Mon, Oct 11, 2021 at 12:39:02PM +0200, Len Baker 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 array_size() helper to do the arithmetic instead of the
> argument "count * size" in the vzalloc() function.
> 
> Also, take the opportunity to add a flexible array member of struct
> vm_memory_region_op to the vm_memory_region_batch structure. And then,
> change the code accordingly and use the struct_size() helper to do the
> arithmetic instead of the argument "size + size * count" in the kzalloc
> function.
> 
> This code was detected with the help of Coccinelle and audited and fixed
> manually.
> 
> [1] https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments
> 
> Signed-off-by: Len Baker <len.baker@gmx.com>

Hi Baker

Thanks for helping us to fix this issue. This patch looks good to me.
Please add Signed-off-by: Fei Li <fei1.li@intel.com>.
Only two minor comments.


> ---
>  drivers/virt/acrn/acrn_drv.h | 10 ++++++----
>  drivers/virt/acrn/mm.c       |  9 ++++-----
>  2 files changed, 10 insertions(+), 9 deletions(-)
> 
> diff --git a/drivers/virt/acrn/acrn_drv.h b/drivers/virt/acrn/acrn_drv.h
> index 1be54efa666c..fcc2e3e5232a 100644
> --- a/drivers/virt/acrn/acrn_drv.h
> +++ b/drivers/virt/acrn/acrn_drv.h
> @@ -48,6 +48,7 @@ struct vm_memory_region_op {
>   * @reserved:		Reserved.
>   * @regions_num:	The number of vm_memory_region_op.
>   * @regions_gpa:	Physical address of a vm_memory_region_op array.
> + * @regions_op:		Flexible array of vm_memory_region_op.
One Tab please.
>   *
>   * HC_VM_SET_MEMORY_REGIONS uses this structure to manage EPT mappings of
>   * multiple memory regions of a User VM. A &struct vm_memory_region_batch
> @@ -55,10 +56,11 @@ struct vm_memory_region_op {
>   * ACRN Hypervisor.
>   */
>  struct vm_memory_region_batch {
> -	u16	vmid;
> -	u16	reserved[3];
> -	u32	regions_num;
> -	u64	regions_gpa;
> +	u16				vmid;
> +	u16				reserved[3];
> +	u32				regions_num;
> +	u64				regions_gpa;
> +	struct vm_memory_region_op	regions_op[];
Please use Whitespace instead of Tab.
>  };
> 
>  /**
> diff --git a/drivers/virt/acrn/mm.c b/drivers/virt/acrn/mm.c
> index c4f2e15c8a2b..a881742cd48d 100644
> --- a/drivers/virt/acrn/mm.c
> +++ b/drivers/virt/acrn/mm.c
> @@ -168,7 +168,7 @@ int acrn_vm_ram_map(struct acrn_vm *vm, struct acrn_vm_memmap *memmap)
> 
>  	/* Get the page number of the map region */
>  	nr_pages = memmap->len >> PAGE_SHIFT;
> -	pages = vzalloc(nr_pages * sizeof(struct page *));
> +	pages = vzalloc(array_size(nr_pages, sizeof(struct page *)));
>  	if (!pages)
>  		return -ENOMEM;
> 
> @@ -220,16 +220,15 @@ int acrn_vm_ram_map(struct acrn_vm *vm, struct acrn_vm_memmap *memmap)
>  	}
> 
>  	/* Prepare the vm_memory_region_batch */
> -	regions_info = kzalloc(sizeof(*regions_info) +
> -			       sizeof(*vm_region) * nr_regions,
> -			       GFP_KERNEL);
> +	regions_info = kzalloc(struct_size(regions_info, regions_op,
> +					   nr_regions), GFP_KERNEL);
>  	if (!regions_info) {
>  		ret = -ENOMEM;
>  		goto unmap_kernel_map;
>  	}
> 
>  	/* Fill each vm_memory_region_op */
> -	vm_region = (struct vm_memory_region_op *)(regions_info + 1);
> +	vm_region = regions_info->regions_op;
>  	regions_info->vmid = vm->vmid;
>  	regions_info->regions_num = nr_regions;
>  	regions_info->regions_gpa = virt_to_phys(vm_region);
> --
> 2.25.1
> 

^ permalink raw reply	[relevance 7%]

* Re: [PATCH] virt: acrn: Prefer array_syze and struct_size over open coded arithmetic
  2021-10-12  1:34  7% ` Li Fei1
@ 2021-10-13  7:29  7%   ` Kees Cook
  2021-10-15 15:52  7%   ` Len Baker
  1 sibling, 0 replies; 200+ results
From: Kees Cook @ 2021-10-13  7:29 UTC (permalink / raw)
  To: Len Baker; +Cc: Li Fei1, gustavoars, linux-hardening, linux-kernel

On Tue, Oct 12, 2021 at 09:34:29AM +0800, Li Fei1 wrote:
> On Mon, Oct 11, 2021 at 12:39:02PM +0200, Len Baker 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 array_size() helper to do the arithmetic instead of the
> > argument "count * size" in the vzalloc() function.
> > 
> > Also, take the opportunity to add a flexible array member of struct
> > vm_memory_region_op to the vm_memory_region_batch structure. And then,
> > change the code accordingly and use the struct_size() helper to do the
> > arithmetic instead of the argument "size + size * count" in the kzalloc
> > function.
> > 
> > This code was detected with the help of Coccinelle and audited and fixed
> > manually.
> > 
> > [1] https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments
> > 
> > Signed-off-by: Len Baker <len.baker@gmx.com>
> 
> Hi Baker
> 
> Thanks for helping us to fix this issue. This patch looks good to me.
> Please add Signed-off-by: Fei Li <fei1.li@intel.com>.
> Only two minor comments.

For v2, please fix the Subject typo, too. :) "syze" -> "size".

-Kees

-- 
Kees Cook

^ permalink raw reply	[relevance 7%]

* Re: [PATCH] drm/i915: Prefer struct_size over open coded arithmetic
  2021-10-11  9:23 12% ` Len Baker
@ 2021-10-13 11:24  7%   ` Jani Nikula
  2021-10-13 11:51  7%     ` Daniel Vetter
  0 siblings, 1 reply; 200+ results
From: Jani Nikula @ 2021-10-13 11:24 UTC (permalink / raw)
  To: Len Baker, Joonas Lahtinen, Rodrigo Vivi, David Airlie, Daniel Vetter
  Cc: Len Baker, Kees Cook, Gustavo A. R. Silva, intel-gfx, dri-devel,
	linux-hardening, linux-kernel

On Mon, 11 Oct 2021, Len Baker <len.baker@gmx.com> wrote:
> Hi,
>
> On Sun, Oct 03, 2021 at 12:42:58PM +0200, Len Baker 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.
>>
>> In this case these are not actually dynamic sizes: all the operands
>> involved in the calculation are constant values. However it is better to
>> refactor them anyway, just to keep the open-coded math idiom out of
>> code.
>>
>> So, add at the end of the struct i915_syncmap a union with two flexible
>> array members (these arrays share the same memory layout). This is
>> possible using the new DECLARE_FLEX_ARRAY macro. And then, use the
>> struct_size() helper to do the arithmetic instead of the argument
>> "size + count * size" in the kmalloc and kzalloc() functions.
>>
>> Also, take the opportunity to refactor the __sync_seqno and __sync_child
>> making them more readable.
>>
>> This code was detected with the help of Coccinelle and audited and fixed
>> manually.
>>
>> [1] https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments
>>
>> Signed-off-by: Len Baker <len.baker@gmx.com>
>> ---
>>  drivers/gpu/drm/i915/i915_syncmap.c | 12 ++++++++----
>>  1 file changed, 8 insertions(+), 4 deletions(-)
>
> I received a mail telling that this patch doesn't build:
>
> == Series Details ==
>
> Series: drm/i915: Prefer struct_size over open coded arithmetic
> URL   : https://patchwork.freedesktop.org/series/95408/
> State : failure
>
> But it builds without error against linux-next (tag next-20211001). Against
> which tree and branch do I need to build?

drm-tip [1]. It's a sort of linux-next for graphics. I think there are
still some branches that don't feed to linux-next.

BR,
Jani.


[1] https://cgit.freedesktop.org/drm/drm-tip


>
> Regards,
> Len

-- 
Jani Nikula, Intel Open Source Graphics Center

^ permalink raw reply	[relevance 7%]

* Re: [PATCH] drm/i915: Prefer struct_size over open coded arithmetic
  2021-10-13 11:24  7%   ` Jani Nikula
@ 2021-10-13 11:51  7%     ` Daniel Vetter
  2021-10-16 11:16  7%       ` Len Baker
  0 siblings, 1 reply; 200+ results
From: Daniel Vetter @ 2021-10-13 11:51 UTC (permalink / raw)
  To: Jani Nikula
  Cc: Len Baker, Joonas Lahtinen, Rodrigo Vivi, David Airlie,
	Daniel Vetter, Kees Cook, Gustavo A. R. Silva, intel-gfx,
	dri-devel, linux-hardening, linux-kernel

On Wed, Oct 13, 2021 at 02:24:05PM +0300, Jani Nikula wrote:
> On Mon, 11 Oct 2021, Len Baker <len.baker@gmx.com> wrote:
> > Hi,
> >
> > On Sun, Oct 03, 2021 at 12:42:58PM +0200, Len Baker 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.
> >>
> >> In this case these are not actually dynamic sizes: all the operands
> >> involved in the calculation are constant values. However it is better to
> >> refactor them anyway, just to keep the open-coded math idiom out of
> >> code.
> >>
> >> So, add at the end of the struct i915_syncmap a union with two flexible
> >> array members (these arrays share the same memory layout). This is
> >> possible using the new DECLARE_FLEX_ARRAY macro. And then, use the
> >> struct_size() helper to do the arithmetic instead of the argument
> >> "size + count * size" in the kmalloc and kzalloc() functions.
> >>
> >> Also, take the opportunity to refactor the __sync_seqno and __sync_child
> >> making them more readable.
> >>
> >> This code was detected with the help of Coccinelle and audited and fixed
> >> manually.
> >>
> >> [1] https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments
> >>
> >> Signed-off-by: Len Baker <len.baker@gmx.com>
> >> ---
> >>  drivers/gpu/drm/i915/i915_syncmap.c | 12 ++++++++----
> >>  1 file changed, 8 insertions(+), 4 deletions(-)
> >
> > I received a mail telling that this patch doesn't build:
> >
> > == Series Details ==
> >
> > Series: drm/i915: Prefer struct_size over open coded arithmetic
> > URL   : https://patchwork.freedesktop.org/series/95408/
> > State : failure
> >
> > But it builds without error against linux-next (tag next-20211001). Against
> > which tree and branch do I need to build?
> 
> drm-tip [1]. It's a sort of linux-next for graphics. I think there are
> still some branches that don't feed to linux-next.

Yeah we need to get gt-next in linux-next asap. Joonas promised to send
out his patch to make that happen in dim.
-Daniel

> 
> BR,
> Jani.
> 
> 
> [1] https://cgit.freedesktop.org/drm/drm-tip
> 
> 
> >
> > Regards,
> > Len
> 
> -- 
> Jani Nikula, Intel Open Source Graphics Center

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch

^ permalink raw reply	[relevance 7%]

* [gustavoars:for-next/kspp-fixes] BUILD SUCCESS 126be2055304be4b158973c1241905d0d30169e9
@ 2021-10-14 20:29  3% kernel test robot
  0 siblings, 0 replies; 200+ results
From: kernel test robot @ 2021-10-14 20:29 UTC (permalink / raw)
  To: Gustavo A. R. Silva; +Cc: LKML

tree/branch: https://git.kernel.org/pub/scm/linux/kernel/git/gustavoars/linux.git for-next/kspp-fixes
branch HEAD: 126be2055304be4b158973c1241905d0d30169e9  assoc_array: Avoid open coded arithmetic in allocator arguments

elapsed time: 1485m

configs tested: 251
configs skipped: 4

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

gcc tested configs:
arm                                 defconfig
arm64                            allyesconfig
arm64                               defconfig
arm                              allyesconfig
arm                              allmodconfig
i386                 randconfig-c001-20211013
i386                 randconfig-c001-20211014
sh                         microdev_defconfig
powerpc                   lite5200b_defconfig
powerpc                      cm5200_defconfig
powerpc                  iss476-smp_defconfig
powerpc                     akebono_defconfig
mips                         tb0226_defconfig
mips                        nlm_xlr_defconfig
sh                             shx3_defconfig
sh                           se7705_defconfig
powerpc                      chrp32_defconfig
mips                      pic32mzda_defconfig
arm                         orion5x_defconfig
arm                       aspeed_g5_defconfig
sh                          sdk7786_defconfig
sparc                            alldefconfig
ia64                         bigsur_defconfig
powerpc                 mpc85xx_cds_defconfig
arm                            zeus_defconfig
sh                           se7206_defconfig
sh                         ap325rxa_defconfig
sh                   sh7724_generic_defconfig
arm                           spitz_defconfig
arm                       multi_v4t_defconfig
xtensa                           alldefconfig
arm                       omap2plus_defconfig
mips                        bcm47xx_defconfig
arm                        multi_v5_defconfig
arm                      jornada720_defconfig
powerpc                     mpc5200_defconfig
arm                          iop32x_defconfig
powerpc                      ppc40x_defconfig
ia64                      gensparse_defconfig
arm                        shmobile_defconfig
powerpc                      mgcoge_defconfig
arm                        spear6xx_defconfig
mips                          ath79_defconfig
arm                      integrator_defconfig
xtensa                    xip_kc705_defconfig
mips                      maltaaprp_defconfig
powerpc                         ps3_defconfig
powerpc                 mpc8560_ads_defconfig
arm                        vexpress_defconfig
powerpc                 mpc837x_mds_defconfig
um                             i386_defconfig
csky                                defconfig
powerpc               mpc834x_itxgp_defconfig
m68k                          amiga_defconfig
mips                           xway_defconfig
m68k                         amcore_defconfig
arm                        mini2440_defconfig
mips                         tb0287_defconfig
sh                      rts7751r2d1_defconfig
powerpc                      pasemi_defconfig
mips                         bigsur_defconfig
xtensa                    smp_lx200_defconfig
m68k                           sun3_defconfig
arm                         cm_x300_defconfig
arm                         lubbock_defconfig
arm                         palmz72_defconfig
mips                            gpr_defconfig
um                                  defconfig
powerpc                      tqm8xx_defconfig
powerpc                    adder875_defconfig
arc                        nsim_700_defconfig
parisc                generic-32bit_defconfig
powerpc                       eiger_defconfig
mips                            e55_defconfig
ia64                             alldefconfig
arm                       aspeed_g4_defconfig
arm                     eseries_pxa_defconfig
mips                        omega2p_defconfig
powerpc                 mpc836x_mds_defconfig
arc                        vdk_hs38_defconfig
powerpc                 mpc8272_ads_defconfig
arm64                            alldefconfig
sh                        sh7757lcr_defconfig
riscv                    nommu_k210_defconfig
sh                           se7722_defconfig
arm                         s3c6400_defconfig
sparc                       sparc32_defconfig
powerpc                     tqm8540_defconfig
arm                         shannon_defconfig
alpha                            allyesconfig
powerpc                   currituck_defconfig
powerpc                    klondike_defconfig
arm                        magician_defconfig
mips                           ip32_defconfig
powerpc                    amigaone_defconfig
parisc                              defconfig
powerpc                      arches_defconfig
sh                           se7750_defconfig
arc                      axs103_smp_defconfig
sh                          r7780mp_defconfig
sh                           se7751_defconfig
m68k                             alldefconfig
mips                         tb0219_defconfig
sh                          urquell_defconfig
arm                        mvebu_v5_defconfig
powerpc                 mpc8315_rdb_defconfig
nds32                               defconfig
powerpc                     tqm8541_defconfig
nios2                         3c120_defconfig
mips                      fuloong2e_defconfig
powerpc                        warp_defconfig
openrisc                    or1ksim_defconfig
arm                         lpc18xx_defconfig
sh                          landisk_defconfig
powerpc                 xes_mpc85xx_defconfig
arm                  colibri_pxa300_defconfig
s390                          debug_defconfig
m68k                         apollo_defconfig
sh                               j2_defconfig
sh                             espt_defconfig
m68k                       m5475evb_defconfig
m68k                        mvme147_defconfig
mips                malta_qemu_32r6_defconfig
mips                         mpc30x_defconfig
arm                         vf610m4_defconfig
x86_64                              defconfig
sh                           sh2007_defconfig
powerpc                     skiroot_defconfig
powerpc                      ppc64e_defconfig
powerpc                 canyonlands_defconfig
mips                        bcm63xx_defconfig
sh                           se7780_defconfig
powerpc                      pmac32_defconfig
sh                             sh03_defconfig
powerpc                     ep8248e_defconfig
m68k                       m5249evb_defconfig
powerpc                    ge_imp3a_defconfig
powerpc                     sequoia_defconfig
m68k                        m5307c3_defconfig
m68k                       m5208evb_defconfig
arm                        mvebu_v7_defconfig
powerpc                    gamecube_defconfig
arm                          ixp4xx_defconfig
powerpc                     stx_gp3_defconfig
powerpc                   motionpro_defconfig
arm                          pcm027_defconfig
powerpc                mpc7448_hpc2_defconfig
arm                  randconfig-c002-20211014
x86_64               randconfig-c001-20211014
arm                  randconfig-c002-20211013
x86_64               randconfig-c001-20211013
ia64                             allmodconfig
ia64                                defconfig
ia64                             allyesconfig
m68k                             allmodconfig
m68k                                defconfig
m68k                             allyesconfig
nios2                               defconfig
arc                              allyesconfig
nds32                             allnoconfig
alpha                               defconfig
nios2                            allyesconfig
h8300                            allyesconfig
arc                                 defconfig
sh                               allmodconfig
xtensa                           allyesconfig
s390                                defconfig
parisc                           allyesconfig
s390                             allyesconfig
s390                             allmodconfig
i386                             allyesconfig
sparc                            allyesconfig
sparc                               defconfig
i386                                defconfig
mips                             allyesconfig
mips                             allmodconfig
powerpc                          allyesconfig
powerpc                          allmodconfig
powerpc                           allnoconfig
x86_64               randconfig-a006-20211014
x86_64               randconfig-a004-20211014
x86_64               randconfig-a001-20211014
x86_64               randconfig-a005-20211014
x86_64               randconfig-a002-20211014
x86_64               randconfig-a003-20211014
i386                 randconfig-a003-20211014
i386                 randconfig-a001-20211014
i386                 randconfig-a005-20211014
i386                 randconfig-a004-20211014
i386                 randconfig-a002-20211014
i386                 randconfig-a006-20211014
x86_64               randconfig-a015-20211013
x86_64               randconfig-a012-20211013
x86_64               randconfig-a016-20211013
x86_64               randconfig-a014-20211013
x86_64               randconfig-a013-20211013
x86_64               randconfig-a011-20211013
i386                 randconfig-a016-20211013
i386                 randconfig-a014-20211013
i386                 randconfig-a011-20211013
i386                 randconfig-a015-20211013
i386                 randconfig-a012-20211013
i386                 randconfig-a013-20211013
arc                  randconfig-r043-20211013
s390                 randconfig-r044-20211013
riscv                randconfig-r042-20211013
riscv                    nommu_virt_defconfig
riscv                             allnoconfig
riscv                               defconfig
riscv                          rv32_defconfig
riscv                            allyesconfig
riscv                            allmodconfig
x86_64                    rhel-8.3-kselftests
um                           x86_64_defconfig
x86_64                               rhel-8.3
x86_64                                  kexec
x86_64                           allyesconfig

clang tested configs:
arm                  randconfig-c002-20211014
i386                 randconfig-c001-20211014
s390                 randconfig-c005-20211014
x86_64               randconfig-c007-20211014
powerpc              randconfig-c003-20211014
riscv                randconfig-c006-20211014
x86_64               randconfig-a004-20211013
x86_64               randconfig-a006-20211013
x86_64               randconfig-a001-20211013
x86_64               randconfig-a005-20211013
x86_64               randconfig-a002-20211013
x86_64               randconfig-a003-20211013
i386                 randconfig-a001-20211013
i386                 randconfig-a003-20211013
i386                 randconfig-a004-20211013
i386                 randconfig-a005-20211013
i386                 randconfig-a002-20211013
i386                 randconfig-a006-20211013
x86_64               randconfig-a012-20211014
x86_64               randconfig-a015-20211014
x86_64               randconfig-a016-20211014
x86_64               randconfig-a014-20211014
x86_64               randconfig-a011-20211014
x86_64               randconfig-a013-20211014
i386                 randconfig-a016-20211014
i386                 randconfig-a014-20211014
i386                 randconfig-a011-20211014
i386                 randconfig-a015-20211014
i386                 randconfig-a012-20211014
i386                 randconfig-a013-20211014
hexagon              randconfig-r041-20211013
hexagon              randconfig-r045-20211013
hexagon              randconfig-r041-20211014
s390                 randconfig-r044-20211014
riscv                randconfig-r042-20211014
hexagon              randconfig-r045-20211014

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

^ permalink raw reply	[relevance 3%]

* [gustavoars:for-next/kspp-misc-fixes] BUILD SUCCESS 2a12e0003580505b8e7d82f9a8fef95f4a1031a8
@ 2021-10-14 21:05  3% kernel test robot
  0 siblings, 0 replies; 200+ results
From: kernel test robot @ 2021-10-14 21:05 UTC (permalink / raw)
  To: Gustavo A. R. Silva; +Cc: LKML

tree/branch: https://git.kernel.org/pub/scm/linux/kernel/git/gustavoars/linux.git for-next/kspp-misc-fixes
branch HEAD: 2a12e0003580505b8e7d82f9a8fef95f4a1031a8  assoc_array: Avoid open coded arithmetic in allocator arguments

elapsed time: 1446m

configs tested: 262
configs skipped: 4

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

gcc tested configs:
arm                                 defconfig
arm64                            allyesconfig
arm64                               defconfig
arm                              allyesconfig
arm                              allmodconfig
i386                 randconfig-c001-20211013
i386                 randconfig-c001-20211014
sh                         microdev_defconfig
powerpc                   lite5200b_defconfig
powerpc                      cm5200_defconfig
powerpc                  iss476-smp_defconfig
powerpc                     akebono_defconfig
mips                         tb0226_defconfig
mips                        nlm_xlr_defconfig
sh                             shx3_defconfig
sh                           se7705_defconfig
powerpc                      chrp32_defconfig
mips                      pic32mzda_defconfig
arm                         orion5x_defconfig
arm                       aspeed_g5_defconfig
sh                          sdk7786_defconfig
sparc                            alldefconfig
ia64                         bigsur_defconfig
powerpc                 mpc85xx_cds_defconfig
arm                            zeus_defconfig
sh                           se7206_defconfig
sh                         ap325rxa_defconfig
sh                   sh7724_generic_defconfig
arm                           spitz_defconfig
arm                       multi_v4t_defconfig
xtensa                           alldefconfig
sh                          polaris_defconfig
powerpc                     rainier_defconfig
arm                             ezx_defconfig
s390                             alldefconfig
mips                 decstation_r4k_defconfig
arm                          collie_defconfig
arm                       omap2plus_defconfig
mips                        bcm47xx_defconfig
arm                        multi_v5_defconfig
arm                      jornada720_defconfig
powerpc                     mpc5200_defconfig
arm                          iop32x_defconfig
powerpc                      ppc40x_defconfig
ia64                      gensparse_defconfig
arm                        shmobile_defconfig
powerpc                      mgcoge_defconfig
arm                        spear6xx_defconfig
mips                          ath79_defconfig
arm                      integrator_defconfig
xtensa                    xip_kc705_defconfig
mips                      maltaaprp_defconfig
powerpc                         ps3_defconfig
powerpc                 mpc8560_ads_defconfig
arm                        vexpress_defconfig
powerpc                 mpc837x_mds_defconfig
um                             i386_defconfig
csky                                defconfig
powerpc               mpc834x_itxgp_defconfig
m68k                          amiga_defconfig
mips                           xway_defconfig
m68k                         amcore_defconfig
arm                        mini2440_defconfig
mips                         tb0287_defconfig
sh                      rts7751r2d1_defconfig
powerpc                      pasemi_defconfig
mips                         bigsur_defconfig
xtensa                    smp_lx200_defconfig
m68k                           sun3_defconfig
arm                         cm_x300_defconfig
arm                         lubbock_defconfig
arm                         palmz72_defconfig
mips                            gpr_defconfig
um                                  defconfig
powerpc                      tqm8xx_defconfig
powerpc                    adder875_defconfig
arc                        nsim_700_defconfig
parisc                generic-32bit_defconfig
powerpc                       eiger_defconfig
mips                            e55_defconfig
ia64                             alldefconfig
arm                       aspeed_g4_defconfig
arm                     eseries_pxa_defconfig
mips                        omega2p_defconfig
powerpc                 mpc836x_mds_defconfig
arc                        vdk_hs38_defconfig
powerpc                 mpc8272_ads_defconfig
arm64                            alldefconfig
sh                        sh7757lcr_defconfig
riscv                    nommu_k210_defconfig
sh                           se7722_defconfig
arm                         s3c6400_defconfig
sparc                       sparc32_defconfig
powerpc                     tqm8540_defconfig
arm                         shannon_defconfig
alpha                            allyesconfig
powerpc                   currituck_defconfig
powerpc                    klondike_defconfig
arm                        magician_defconfig
mips                           ip32_defconfig
powerpc                    amigaone_defconfig
parisc                              defconfig
powerpc                      arches_defconfig
sh                           se7750_defconfig
arc                      axs103_smp_defconfig
sh                          r7780mp_defconfig
sh                           se7751_defconfig
m68k                             alldefconfig
mips                         tb0219_defconfig
sh                          urquell_defconfig
arm                        mvebu_v5_defconfig
powerpc                 mpc8315_rdb_defconfig
nds32                               defconfig
powerpc                     tqm8541_defconfig
nios2                         3c120_defconfig
mips                      fuloong2e_defconfig
powerpc                        warp_defconfig
openrisc                    or1ksim_defconfig
arm                         lpc18xx_defconfig
sh                          landisk_defconfig
powerpc                 xes_mpc85xx_defconfig
arm                  colibri_pxa300_defconfig
s390                          debug_defconfig
m68k                         apollo_defconfig
sh                               j2_defconfig
sh                             espt_defconfig
m68k                       m5475evb_defconfig
m68k                        mvme147_defconfig
mips                malta_qemu_32r6_defconfig
mips                         mpc30x_defconfig
arm                         vf610m4_defconfig
x86_64                              defconfig
sh                           sh2007_defconfig
powerpc                     skiroot_defconfig
powerpc                      ppc64e_defconfig
powerpc                 canyonlands_defconfig
mips                        bcm63xx_defconfig
sh                           se7780_defconfig
powerpc                      pmac32_defconfig
sh                             sh03_defconfig
powerpc                     ep8248e_defconfig
m68k                       m5249evb_defconfig
powerpc                    ge_imp3a_defconfig
powerpc                     sequoia_defconfig
m68k                        m5307c3_defconfig
m68k                       m5208evb_defconfig
arm                        mvebu_v7_defconfig
powerpc                    gamecube_defconfig
arm                          ixp4xx_defconfig
powerpc                     stx_gp3_defconfig
m68k                          hp300_defconfig
sh                          rsk7269_defconfig
riscv                          rv32_defconfig
powerpc                   motionpro_defconfig
arm                          pcm027_defconfig
powerpc                mpc7448_hpc2_defconfig
arm                            qcom_defconfig
xtensa                       common_defconfig
powerpc                      ppc44x_defconfig
arm                  randconfig-c002-20211014
x86_64               randconfig-c001-20211014
arm                  randconfig-c002-20211013
x86_64               randconfig-c001-20211013
ia64                             allmodconfig
ia64                                defconfig
ia64                             allyesconfig
m68k                                defconfig
m68k                             allmodconfig
m68k                             allyesconfig
nios2                               defconfig
arc                              allyesconfig
nds32                             allnoconfig
alpha                               defconfig
nios2                            allyesconfig
h8300                            allyesconfig
arc                                 defconfig
sh                               allmodconfig
xtensa                           allyesconfig
s390                                defconfig
parisc                           allyesconfig
s390                             allyesconfig
s390                             allmodconfig
i386                             allyesconfig
sparc                            allyesconfig
sparc                               defconfig
i386                                defconfig
mips                             allyesconfig
mips                             allmodconfig
powerpc                          allyesconfig
powerpc                          allmodconfig
powerpc                           allnoconfig
x86_64               randconfig-a006-20211014
x86_64               randconfig-a004-20211014
x86_64               randconfig-a001-20211014
x86_64               randconfig-a005-20211014
x86_64               randconfig-a002-20211014
x86_64               randconfig-a003-20211014
i386                 randconfig-a003-20211014
i386                 randconfig-a001-20211014
i386                 randconfig-a005-20211014
i386                 randconfig-a004-20211014
i386                 randconfig-a002-20211014
i386                 randconfig-a006-20211014
x86_64               randconfig-a015-20211013
x86_64               randconfig-a012-20211013
x86_64               randconfig-a016-20211013
x86_64               randconfig-a014-20211013
x86_64               randconfig-a013-20211013
x86_64               randconfig-a011-20211013
i386                 randconfig-a016-20211013
i386                 randconfig-a014-20211013
i386                 randconfig-a011-20211013
i386                 randconfig-a015-20211013
i386                 randconfig-a012-20211013
i386                 randconfig-a013-20211013
arc                  randconfig-r043-20211013
s390                 randconfig-r044-20211013
riscv                randconfig-r042-20211013
riscv                    nommu_virt_defconfig
riscv                             allnoconfig
riscv                               defconfig
riscv                            allyesconfig
riscv                            allmodconfig
x86_64                    rhel-8.3-kselftests
um                           x86_64_defconfig
x86_64                               rhel-8.3
x86_64                                  kexec
x86_64                           allyesconfig

clang tested configs:
arm                  randconfig-c002-20211014
i386                 randconfig-c001-20211014
s390                 randconfig-c005-20211014
x86_64               randconfig-c007-20211014
powerpc              randconfig-c003-20211014
riscv                randconfig-c006-20211014
x86_64               randconfig-a004-20211013
x86_64               randconfig-a006-20211013
x86_64               randconfig-a001-20211013
x86_64               randconfig-a005-20211013
x86_64               randconfig-a002-20211013
x86_64               randconfig-a003-20211013
i386                 randconfig-a001-20211013
i386                 randconfig-a003-20211013
i386                 randconfig-a004-20211013
i386                 randconfig-a005-20211013
i386                 randconfig-a002-20211013
i386                 randconfig-a006-20211013
x86_64               randconfig-a012-20211014
x86_64               randconfig-a015-20211014
x86_64               randconfig-a016-20211014
x86_64               randconfig-a014-20211014
x86_64               randconfig-a011-20211014
x86_64               randconfig-a013-20211014
i386                 randconfig-a016-20211014
i386                 randconfig-a014-20211014
i386                 randconfig-a011-20211014
i386                 randconfig-a015-20211014
i386                 randconfig-a012-20211014
i386                 randconfig-a013-20211014
hexagon              randconfig-r041-20211013
hexagon              randconfig-r045-20211013
hexagon              randconfig-r041-20211014
s390                 randconfig-r044-20211014
riscv                randconfig-r042-20211014
hexagon              randconfig-r045-20211014

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

^ permalink raw reply	[relevance 3%]

* Re: [PATCH] virt: acrn: Prefer array_syze and struct_size over open coded arithmetic
  2021-10-12  1:34  7% ` Li Fei1
  2021-10-13  7:29  7%   ` Kees Cook
@ 2021-10-15 15:52  7%   ` Len Baker
  2021-10-18  1:07  7%     ` Li Fei1
  1 sibling, 1 reply; 200+ results
From: Len Baker @ 2021-10-15 15:52 UTC (permalink / raw)
  To: Li Fei1; +Cc: Len Baker, keescook, gustavoars, linux-hardening, linux-kernel

Hi Li,

On Tue, Oct 12, 2021 at 09:34:29AM +0800, Li Fei1 wrote:
> On Mon, Oct 11, 2021 at 12:39:02PM +0200, Len Baker 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 array_size() helper to do the arithmetic instead of the
> > argument "count * size" in the vzalloc() function.
> >
> > Also, take the opportunity to add a flexible array member of struct
> > vm_memory_region_op to the vm_memory_region_batch structure. And then,
> > change the code accordingly and use the struct_size() helper to do the
> > arithmetic instead of the argument "size + size * count" in the kzalloc
> > function.
> >
> > This code was detected with the help of Coccinelle and audited and fixed
> > manually.
> >
> > [1] https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments
> >
> > Signed-off-by: Len Baker <len.baker@gmx.com>
>
> Hi Baker
>
> Thanks for helping us to fix this issue. This patch looks good to me.
> Please add Signed-off-by: Fei Li <fei1.li@intel.com>.

I can't add the "Signed-off-by" tag by myself. However, if you are in the
path to forward the patch to the mainline (maintainer's tree), you can
add by yourself the "Signed-off-by" tag before send a "pull" to Linus.
See [1] for more information.

[1] https://www.kernel.org/doc/html/latest/process/submitting-patches.html#sign-your-work-the-developer-s-certificate-of-origin

If you don't have a maintainer's tree, you can give (as a maintainer) an
"Acked-by" tag that then I can add to the patch. More info in [2].

[2] https://www.kernel.org/doc/html/latest/process/submitting-patches.html#when-to-use-acked-by-cc-and-co-developed-by

> Only two minor comments.
>
>
> > ---
> >  drivers/virt/acrn/acrn_drv.h | 10 ++++++----
> >  drivers/virt/acrn/mm.c       |  9 ++++-----
> >  2 files changed, 10 insertions(+), 9 deletions(-)
> >
> > diff --git a/drivers/virt/acrn/acrn_drv.h b/drivers/virt/acrn/acrn_drv.h
> > index 1be54efa666c..fcc2e3e5232a 100644
> > --- a/drivers/virt/acrn/acrn_drv.h
> > +++ b/drivers/virt/acrn/acrn_drv.h
> > @@ -48,6 +48,7 @@ struct vm_memory_region_op {
> >   * @reserved:		Reserved.
> >   * @regions_num:	The number of vm_memory_region_op.
> >   * @regions_gpa:	Physical address of a vm_memory_region_op array.
> > + * @regions_op:		Flexible array of vm_memory_region_op.
> One Tab please.

Sorry, but if I use only one tab, the parameters description are not all
aligned.

> >   *
> >   * HC_VM_SET_MEMORY_REGIONS uses this structure to manage EPT mappings of
> >   * multiple memory regions of a User VM. A &struct vm_memory_region_batch
> > @@ -55,10 +56,11 @@ struct vm_memory_region_op {
> >   * ACRN Hypervisor.
> >   */
> >  struct vm_memory_region_batch {
> > -	u16	vmid;
> > -	u16	reserved[3];
> > -	u32	regions_num;
> > -	u64	regions_gpa;
> > +	u16				vmid;
> > +	u16				reserved[3];
> > +	u32				regions_num;
> > +	u64				regions_gpa;
> > +	struct vm_memory_region_op	regions_op[];
> Please use Whitespace instead of Tab.

Sorry, but I don't understand. Do you prefer something like?:

diff --git a/drivers/virt/acrn/acrn_drv.h b/drivers/virt/acrn/acrn_drv.h
index fcc2e3e5232a..5663c17ad37c 100644
--- a/drivers/virt/acrn/acrn_drv.h
+++ b/drivers/virt/acrn/acrn_drv.h
@@ -56,11 +56,11 @@ struct vm_memory_region_op {
  * ACRN Hypervisor.
  */
 struct vm_memory_region_batch {
-	u16				vmid;
-	u16				reserved[3];
-	u32				regions_num;
-	u64				regions_gpa;
-	struct vm_memory_region_op	regions_op[];
+	u16			   vmid;
+	u16			   reserved[3];
+	u32			   regions_num;
+	u64			   regions_gpa;
+	struct vm_memory_region_op regions_op[];
 };

 /**

Moreover, for the v2 I will fix the typo "syze->size" in the subject as
suggested Kees ;)

Regards,
Len

^ permalink raw reply related	[relevance 7%]

* Re: [PATCH] drm/i915: Prefer struct_size over open coded arithmetic
  2021-10-13 11:51  7%     ` Daniel Vetter
@ 2021-10-16 11:16  7%       ` Len Baker
  2021-10-18 10:00  7%         ` Jani Nikula
  0 siblings, 1 reply; 200+ results
From: Len Baker @ 2021-10-16 11:16 UTC (permalink / raw)
  To: Daniel Vetter, Jani Nikula
  Cc: Len Baker, Joonas Lahtinen, Rodrigo Vivi, David Airlie,
	Kees Cook, Gustavo A. R. Silva, intel-gfx, dri-devel,
	linux-hardening, linux-kernel

Hi Daniel and Jani,

On Wed, Oct 13, 2021 at 01:51:30PM +0200, Daniel Vetter wrote:
> On Wed, Oct 13, 2021 at 02:24:05PM +0300, Jani Nikula wrote:
> > On Mon, 11 Oct 2021, Len Baker <len.baker@gmx.com> wrote:
> > > Hi,
> > >
> > > On Sun, Oct 03, 2021 at 12:42:58PM +0200, Len Baker 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.
> > >>
> > >> In this case these are not actually dynamic sizes: all the operands
> > >> involved in the calculation are constant values. However it is better to
> > >> refactor them anyway, just to keep the open-coded math idiom out of
> > >> code.
> > >>
> > >> So, add at the end of the struct i915_syncmap a union with two flexible
> > >> array members (these arrays share the same memory layout). This is
> > >> possible using the new DECLARE_FLEX_ARRAY macro. And then, use the
> > >> struct_size() helper to do the arithmetic instead of the argument
> > >> "size + count * size" in the kmalloc and kzalloc() functions.
> > >>
> > >> Also, take the opportunity to refactor the __sync_seqno and __sync_child
> > >> making them more readable.
> > >>
> > >> This code was detected with the help of Coccinelle and audited and fixed
> > >> manually.
> > >>
> > >> [1] https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments
> > >>
> > >> Signed-off-by: Len Baker <len.baker@gmx.com>
> > >> ---
> > >>  drivers/gpu/drm/i915/i915_syncmap.c | 12 ++++++++----
> > >>  1 file changed, 8 insertions(+), 4 deletions(-)
> > >
> > > I received a mail telling that this patch doesn't build:
> > >
> > > == Series Details ==
> > >
> > > Series: drm/i915: Prefer struct_size over open coded arithmetic
> > > URL   : https://patchwork.freedesktop.org/series/95408/
> > > State : failure
> > >
> > > But it builds without error against linux-next (tag next-20211001). Against
> > > which tree and branch do I need to build?
> >
> > drm-tip [1]. It's a sort of linux-next for graphics. I think there are
> > still some branches that don't feed to linux-next.
>
> Yeah we need to get gt-next in linux-next asap. Joonas promised to send
> out his patch to make that happen in dim.
> -Daniel

Is there a possibility that you give an "Acked-by" tag? And then this patch
goes to the mainline through the Kees' tree or Gustavo's tree?

Or is it better to wait for drm-tip to update?

Regards,
Len

>
> >
> > BR,
> > Jani.
> >
> >
> > [1] https://cgit.freedesktop.org/drm/drm-tip
> >
> >
> > >
> > > Regards,
> > > Len
> >
> > --
> > Jani Nikula, Intel Open Source Graphics Center
>
> --
> Daniel Vetter
> Software Engineer, Intel Corporation
> http://blog.ffwll.ch

^ permalink raw reply	[relevance 7%]

* [PATCH] sysctl: Avoid open coded arithmetic in memory allocator functions
@ 2021-10-16 15:28  9% Len Baker
  2021-10-16 16:18  7% ` Matthew Wilcox
  0 siblings, 1 reply; 200+ results
From: Len Baker @ 2021-10-16 15:28 UTC (permalink / raw)
  To: Luis Chamberlain, Kees Cook, Iurii Zaikin
  Cc: Len Baker, Gustavo A. R. Silva, linux-hardening, linux-fsdevel,
	linux-kernel

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, add some functions to calculate the size used in memory allocator
function arguments, saturating to SIZE_MAX on overflow. Here it is not
possible to use the struct_size() helper since the memory layouts used
when the memory is allocated are not simple ones.

However, for the kcalloc() case, don't define a new function and check
for overflow before its call.

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

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

Signed-off-by: Len Baker <len.baker@gmx.com>
---
Hi,

this patch is built against the linux-next tree (tag next-20211015).

Regards,
Len

 fs/proc/proc_sysctl.c | 114 ++++++++++++++++++++++++++++++++++++------
 1 file changed, 100 insertions(+), 14 deletions(-)

diff --git a/fs/proc/proc_sysctl.c b/fs/proc/proc_sysctl.c
index 5d66faecd4ef..35734bc5e67e 100644
--- a/fs/proc/proc_sysctl.c
+++ b/fs/proc/proc_sysctl.c
@@ -942,6 +942,24 @@ static struct ctl_dir *find_subdir(struct ctl_dir *dir,
 	return container_of(head, struct ctl_dir, header);
 }

+static size_t new_dir_size(size_t namelen)
+{
+	size_t bytes;
+
+	if (check_add_overflow(sizeof(struct ctl_dir), sizeof(struct ctl_node),
+			       &bytes))
+		return SIZE_MAX;
+	if (check_add_overflow(bytes, array_size(sizeof(struct ctl_table), 2),
+			       &bytes))
+		return SIZE_MAX;
+	if (check_add_overflow(bytes, namelen, &bytes))
+		return SIZE_MAX;
+	if (check_add_overflow(bytes, (size_t)1, &bytes))
+		return SIZE_MAX;
+
+	return bytes;
+}
+
 static struct ctl_dir *new_dir(struct ctl_table_set *set,
 			       const char *name, int namelen)
 {
@@ -950,9 +968,15 @@ static struct ctl_dir *new_dir(struct ctl_table_set *set,
 	struct ctl_node *node;
 	char *new_name;

-	new = kzalloc(sizeof(*new) + sizeof(struct ctl_node) +
-		      sizeof(struct ctl_table)*2 +  namelen + 1,
-		      GFP_KERNEL);
+	/*
+	 * Allocation layout in bytes:
+	 *
+	 * sizeof(struct ctl_dir) +
+	 * sizeof(struct ctl_node) +
+	 * sizeof(struct ctl_table) * 2 +
+	 * namelen + 1
+	 */
+	new = kzalloc(new_dir_size(namelen), GFP_KERNEL);
 	if (!new)
 		return NULL;

@@ -1146,6 +1170,26 @@ static int sysctl_check_table(const char *path, struct ctl_table *table)
 	return err;
 }

+static size_t new_links_size(size_t nr_entries, size_t name_bytes)
+{
+	size_t bytes;
+
+	if (check_add_overflow(nr_entries, (size_t)1, &bytes))
+		return SIZE_MAX;
+	if (check_add_overflow(sizeof(struct ctl_table_header),
+			       array_size(sizeof(struct ctl_node), nr_entries),
+			       &bytes))
+		return SIZE_MAX;
+	if (check_add_overflow(bytes, array_size(sizeof(struct ctl_table),
+						 nr_entries + 1),
+			       &bytes))
+		return SIZE_MAX;
+	if (check_add_overflow(bytes, name_bytes, &bytes))
+		return SIZE_MAX;
+
+	return bytes;
+}
+
 static struct ctl_table_header *new_links(struct ctl_dir *dir, struct ctl_table *table,
 	struct ctl_table_root *link_root)
 {
@@ -1162,11 +1206,15 @@ static struct ctl_table_header *new_links(struct ctl_dir *dir, struct ctl_table
 		name_bytes += strlen(entry->procname) + 1;
 	}

-	links = kzalloc(sizeof(struct ctl_table_header) +
-			sizeof(struct ctl_node)*nr_entries +
-			sizeof(struct ctl_table)*(nr_entries + 1) +
-			name_bytes,
-			GFP_KERNEL);
+	/*
+	 * Allocation layout in bytes:
+	 *
+	 * sizeof(struct ctl_table_header) +
+	 * sizeof(struct ctl_node) * nr_entries +
+	 * sizeof(struct ctl_table) * (nr_entries + 1) +
+	 * name_bytes
+	 */
+	links = kzalloc(new_links_size(nr_entries, name_bytes), GFP_KERNEL);

 	if (!links)
 		return NULL;
@@ -1258,6 +1306,18 @@ static int insert_links(struct ctl_table_header *head)
 	return err;
 }

+static inline size_t sysctl_table_size(int nr_entries)
+{
+	size_t bytes;
+
+	if (check_add_overflow(sizeof(struct ctl_table_header),
+			       array_size(sizeof(struct ctl_node), nr_entries),
+			       &bytes))
+		return SIZE_MAX;
+
+	return bytes;
+}
+
 /**
  * __register_sysctl_table - register a leaf sysctl table
  * @set: Sysctl tree to register on
@@ -1315,8 +1375,13 @@ struct ctl_table_header *__register_sysctl_table(
 	for (entry = table; entry->procname; entry++)
 		nr_entries++;

-	header = kzalloc(sizeof(struct ctl_table_header) +
-			 sizeof(struct ctl_node)*nr_entries, GFP_KERNEL);
+	/*
+	 * Allocation layout in bytes:
+	 *
+	 * sizeof(struct ctl_table_header) +
+	 * sizeof(struct ctl_node) * nr_entries
+	 */
+	header = kzalloc(sysctl_table_size(nr_entries), GFP_KERNEL);
 	if (!header)
 		return NULL;

@@ -1437,8 +1502,11 @@ static int register_leaf_sysctl_tables(const char *path, char *pos,
 	/* If there are mixed files and directories we need a new table */
 	if (nr_dirs && nr_files) {
 		struct ctl_table *new;
-		files = kcalloc(nr_files + 1, sizeof(struct ctl_table),
-				GFP_KERNEL);
+		int n;
+
+		if (unlikely(check_add_overflow(nr_files, 1, &n)))
+			goto out;
+		files = kcalloc(n, sizeof(struct ctl_table), GFP_KERNEL);
 		if (!files)
 			goto out;

@@ -1490,6 +1558,19 @@ static int register_leaf_sysctl_tables(const char *path, char *pos,
 	return err;
 }

+static inline size_t sysctl_paths_size(int nr_subheaders)
+{
+	size_t bytes;
+
+	if (check_add_overflow(sizeof(struct ctl_table_header),
+			       array_size(sizeof(struct ctl_table_header *),
+					  nr_subheaders),
+			       &bytes))
+		return SIZE_MAX;
+
+	return bytes;
+}
+
 /**
  * __register_sysctl_paths - register a sysctl table hierarchy
  * @set: Sysctl tree to register on
@@ -1532,8 +1613,13 @@ struct ctl_table_header *__register_sysctl_paths(
 		if (header)
 			header->ctl_table_arg = ctl_table_arg;
 	} else {
-		header = kzalloc(sizeof(*header) +
-				 sizeof(*subheaders)*nr_subheaders, GFP_KERNEL);
+		/*
+		 * Allocation layout in bytes:
+		 *
+		 * sizeof(struct ctl_table_header) +
+		 * sizeof(struct ctl_table_header *) * nr_subheaders
+		 */
+		header = kzalloc(sysctl_paths_size(nr_subheaders), GFP_KERNEL);
 		if (!header)
 			goto out;

--
2.25.1


^ permalink raw reply related	[relevance 9%]

* Re: [PATCH] sysctl: Avoid open coded arithmetic in memory allocator functions
  2021-10-16 15:28  9% [PATCH] sysctl: Avoid open coded arithmetic in memory allocator functions Len Baker
@ 2021-10-16 16:18  7% ` Matthew Wilcox
  2021-10-23 10:31  7%   ` Len Baker
  0 siblings, 1 reply; 200+ results
From: Matthew Wilcox @ 2021-10-16 16:18 UTC (permalink / raw)
  To: Len Baker
  Cc: Luis Chamberlain, Kees Cook, Iurii Zaikin, Gustavo A. R. Silva,
	linux-hardening, linux-fsdevel, linux-kernel

On Sat, Oct 16, 2021 at 05:28:28PM +0200, Len Baker wrote:
> +static size_t new_dir_size(size_t namelen)
> +{
> +	size_t bytes;
> +
> +	if (check_add_overflow(sizeof(struct ctl_dir), sizeof(struct ctl_node),
> +			       &bytes))
> +		return SIZE_MAX;
> +	if (check_add_overflow(bytes, array_size(sizeof(struct ctl_table), 2),
> +			       &bytes))
> +		return SIZE_MAX;
> +	if (check_add_overflow(bytes, namelen, &bytes))
> +		return SIZE_MAX;
> +	if (check_add_overflow(bytes, (size_t)1, &bytes))
> +		return SIZE_MAX;
> +
> +	return bytes;
> +}

I think this is overkill.  All these structs are small and namelen is
supplied by the kernel, not specified by userspace.  It really complicates
the code, and I don't see the advantage.


^ permalink raw reply	[relevance 7%]

* [PATCH] nvmet: prefer struct_size over open coded arithmetic
@ 2021-10-17  9:56 13% Len Baker
  2021-10-17 17:23 11% ` Gustavo A. R. Silva
  2021-10-20 17:24  7% ` Christoph Hellwig
  0 siblings, 2 replies; 200+ results
From: Len Baker @ 2021-10-17  9:56 UTC (permalink / raw)
  To: Christoph Hellwig, Sagi Grimberg, Chaitanya Kulkarni
  Cc: Len Baker, Kees Cook, Gustavo A. R. Silva, linux-hardening,
	linux-nvme, linux-kernel

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.

In this case this is not actually dynamic size: all the operands
involved in the calculation are constant values. However it is better to
refactor this anyway, just to keep the open-coded math idiom out of
code.

So, use the struct_size() helper to do the arithmetic instead of the
argument "size + count * size" in the kmalloc() function.

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

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

Signed-off-by: Len Baker <len.baker@gmx.com>
---
Hi,

this patch is built against the linux-next tree (tag next-20211015).

Regards,
Len

 drivers/nvme/target/admin-cmd.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/nvme/target/admin-cmd.c b/drivers/nvme/target/admin-cmd.c
index aa6d84d8848e..4aa71625c86a 100644
--- a/drivers/nvme/target/admin-cmd.c
+++ b/drivers/nvme/target/admin-cmd.c
@@ -278,8 +278,8 @@ static void nvmet_execute_get_log_page_ana(struct nvmet_req *req)
 	u16 status;

 	status = NVME_SC_INTERNAL;
-	desc = kmalloc(sizeof(struct nvme_ana_group_desc) +
-			NVMET_MAX_NAMESPACES * sizeof(__le32), GFP_KERNEL);
+	desc = kmalloc(struct_size(desc, nsids, NVMET_MAX_NAMESPACES),
+		       GFP_KERNEL);
 	if (!desc)
 		goto out;

--
2.25.1


^ permalink raw reply related	[relevance 13%]

* [PATCH] mm/list_lru.c: prefer struct_size over open coded arithmetic
@ 2021-10-17 10:59 12% Len Baker
  0 siblings, 0 replies; 200+ results
From: Len Baker @ 2021-10-17 10:59 UTC (permalink / raw)
  To: Andrew Morton
  Cc: Len Baker, Kees Cook, Gustavo A. R. Silva, linux-hardening,
	linux-mm, linux-kernel

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 struct_size() helper to do the arithmetic instead of the
argument "size + count * size" in the kvmalloc() functions.

Also, take the opportunity to refactor the memcpy() call to use the
flex_array_size() helper.

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

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

Signed-off-by: Len Baker <len.baker@gmx.com>
---
Hi,

this patch is built against the linux-next tree (tag next-20211015).

Regards,
Len

 mm/list_lru.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/mm/list_lru.c b/mm/list_lru.c
index cd58790d0fb3..a6031f1c5bd7 100644
--- a/mm/list_lru.c
+++ b/mm/list_lru.c
@@ -354,8 +354,7 @@ static int memcg_init_list_lru_node(struct list_lru_node *nlru)
 	struct list_lru_memcg *memcg_lrus;
 	int size = memcg_nr_cache_ids;

-	memcg_lrus = kvmalloc(sizeof(*memcg_lrus) +
-			      size * sizeof(void *), GFP_KERNEL);
+	memcg_lrus = kvmalloc(struct_size(memcg_lrus, lru, size), GFP_KERNEL);
 	if (!memcg_lrus)
 		return -ENOMEM;

@@ -389,7 +388,7 @@ static int memcg_update_list_lru_node(struct list_lru_node *nlru,

 	old = rcu_dereference_protected(nlru->memcg_lrus,
 					lockdep_is_held(&list_lrus_mutex));
-	new = kvmalloc(sizeof(*new) + new_size * sizeof(void *), GFP_KERNEL);
+	new = kvmalloc(struct_size(new, lru, new_size), GFP_KERNEL);
 	if (!new)
 		return -ENOMEM;

@@ -398,7 +397,7 @@ static int memcg_update_list_lru_node(struct list_lru_node *nlru,
 		return -ENOMEM;
 	}

-	memcpy(&new->lru, &old->lru, old_size * sizeof(void *));
+	memcpy(&new->lru, &old->lru, flex_array_size(new, lru, old_size));

 	/*
 	 * The locking below allows readers that hold nlru->lock avoid taking
--
2.25.1


^ permalink raw reply related	[relevance 12%]

* Re: [PATCH] nvmet: prefer struct_size over open coded arithmetic
  2021-10-17  9:56 13% [PATCH] nvmet: prefer struct_size over open coded arithmetic Len Baker
@ 2021-10-17 17:23 11% ` Gustavo A. R. Silva
  2021-10-23 11:28  7%   ` Len Baker
  2021-10-20 17:24  7% ` Christoph Hellwig
  1 sibling, 1 reply; 200+ results
From: Gustavo A. R. Silva @ 2021-10-17 17:23 UTC (permalink / raw)
  To: Len Baker
  Cc: Christoph Hellwig, Sagi Grimberg, Chaitanya Kulkarni, Kees Cook,
	linux-hardening, linux-nvme, linux-kernel

On Sun, Oct 17, 2021 at 11:56:50AM +0200, Len Baker 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.
> 
> In this case this is not actually dynamic size: all the operands
> involved in the calculation are constant values. However it is better to
> refactor this anyway, just to keep the open-coded math idiom out of
> code.
> 
> So, use the struct_size() helper to do the arithmetic instead of the
> argument "size + count * size" in the kmalloc() function.
> 
> This code was detected with the help of Coccinelle and audited and fixed
> manually.
> 
> [1] https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments
> 
> Signed-off-by: Len Baker <len.baker@gmx.com>
> ---
> Hi,
> 
> this patch is built against the linux-next tree (tag next-20211015).

You don't need to include these lines in every patch. Just add [next]
to the subject line, like this:

	[PATCH][next] nvmet: prefer struct_size over open coded arithmetic

It should be clear enough for people that you are talking about
linux-next. And in case someone asks, then you proceed to clarify. :)

> 
> Regards,
> Len
> 
>  drivers/nvme/target/admin-cmd.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/nvme/target/admin-cmd.c b/drivers/nvme/target/admin-cmd.c
> index aa6d84d8848e..4aa71625c86a 100644
> --- a/drivers/nvme/target/admin-cmd.c
> +++ b/drivers/nvme/target/admin-cmd.c
> @@ -278,8 +278,8 @@ static void nvmet_execute_get_log_page_ana(struct nvmet_req *req)
>  	u16 status;
> 
>  	status = NVME_SC_INTERNAL;
> -	desc = kmalloc(sizeof(struct nvme_ana_group_desc) +
> -			NVMET_MAX_NAMESPACES * sizeof(__le32), GFP_KERNEL);
> +	desc = kmalloc(struct_size(desc, nsids, NVMET_MAX_NAMESPACES),
> +		       GFP_KERNEL);

It might be worth exploring if the flexible array is actually needed,
once the allocation is always determined by NVMET_MAX_NAMESPACES. Maybe
it can be changed to the following and remove the dynamic allocation
entirely?

	struct nvme_ana_group_desc {
		__le32  grpid;
		__le32  nnsids;
		__le64  chgcnt;
		__u8    state;
		__u8    rsvd17[15];
		__le32  nsids[NVMET_MAX_NAMESPACES];
	};

If the above is possible then (at least) these lines should be audited:

drivers/nvme/host/multipath.c-551-              if (WARN_ON_ONCE(offset > ctrl->ana_log_size - sizeof(*desc)))

drivers/nvme/host/multipath.c-566-              offset += sizeof(*desc);
drivers/nvme/host/multipath.c-567-              if (WARN_ON_ONCE(offset > ctrl->ana_log_size - nsid_buf_size))

If the flexible array remains, then this line could use
flex_array_size():

drivers/nvme/host/multipath.c-555-              nsid_buf_size = nr_nsids * sizeof(__le32);

struct_size() could be used here, as well:

drivers/nvme/host/multipath.c-847-      ana_log_size = sizeof(struct nvme_ana_rsp_hdr) +
drivers/nvme/host/multipath.c:848:              ctrl->nanagrpid * sizeof(struct nvme_ana_group_desc) +
drivers/nvme/host/multipath.c-849-              ctrl->max_namespaces * sizeof(__le32);

drivers/nvme/target/admin-cmd.c:267:    return sizeof(struct nvme_ana_group_desc) + count * sizeof(__le32);

Thanks
--
Gustavo


>  	if (!desc)
>  		goto out;
> 
> --
> 2.25.1
> 

^ permalink raw reply	[relevance 11%]

* Re: [PATCH] virt: acrn: Prefer array_syze and struct_size over open coded arithmetic
  2021-10-15 15:52  7%   ` Len Baker
@ 2021-10-18  1:07  7%     ` Li Fei1
  0 siblings, 0 replies; 200+ results
From: Li Fei1 @ 2021-10-18  1:07 UTC (permalink / raw)
  To: Len Baker; +Cc: keescook, gustavoars, linux-hardening, linux-kernel

On Fri, Oct 15, 2021 at 05:52:48PM +0200, Len Baker wrote:
> Hi Li,
> 
> On Tue, Oct 12, 2021 at 09:34:29AM +0800, Li Fei1 wrote:
> > On Mon, Oct 11, 2021 at 12:39:02PM +0200, Len Baker 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 array_size() helper to do the arithmetic instead of the
> > > argument "count * size" in the vzalloc() function.
> > >
> > > Also, take the opportunity to add a flexible array member of struct
> > > vm_memory_region_op to the vm_memory_region_batch structure. And then,
> > > change the code accordingly and use the struct_size() helper to do the
> > > arithmetic instead of the argument "size + size * count" in the kzalloc
> > > function.
> > >
> > > This code was detected with the help of Coccinelle and audited and fixed
> > > manually.
> > >
> > > [1] https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments
> > >
> > > Signed-off-by: Len Baker <len.baker@gmx.com>
> >
> > Hi Baker
> >
> > Thanks for helping us to fix this issue. This patch looks good to me.
> > Please add Signed-off-by: Fei Li <fei1.li@intel.com>.
> 
> I can't add the "Signed-off-by" tag by myself. However, if you are in the
> path to forward the patch to the mainline (maintainer's tree), you can
> add by yourself the "Signed-off-by" tag before send a "pull" to Linus.
> See [1] for more information.
> 
> [1] https://www.kernel.org/doc/html/latest/process/submitting-patches.html#sign-your-work-the-developer-s-certificate-of-origin
> 
> If you don't have a maintainer's tree, you can give (as a maintainer) an
> "Acked-by" tag that then I can add to the patch. More info in [2].

Acked-by: Fei Li <fei1.li@intel.com>

thanks.

> 
> [2] https://www.kernel.org/doc/html/latest/process/submitting-patches.html#when-to-use-acked-by-cc-and-co-developed-by
> 
> > Only two minor comments.
> >
> >
> > > ---
> > >  drivers/virt/acrn/acrn_drv.h | 10 ++++++----
> > >  drivers/virt/acrn/mm.c       |  9 ++++-----
> > >  2 files changed, 10 insertions(+), 9 deletions(-)
> > >
> > > diff --git a/drivers/virt/acrn/acrn_drv.h b/drivers/virt/acrn/acrn_drv.h
> > > index 1be54efa666c..fcc2e3e5232a 100644
> > > --- a/drivers/virt/acrn/acrn_drv.h
> > > +++ b/drivers/virt/acrn/acrn_drv.h
> > > @@ -48,6 +48,7 @@ struct vm_memory_region_op {
> > >   * @reserved:		Reserved.
> > >   * @regions_num:	The number of vm_memory_region_op.
> > >   * @regions_gpa:	Physical address of a vm_memory_region_op array.
> > > + * @regions_op:		Flexible array of vm_memory_region_op.
> > One Tab please.
> 
> Sorry, but if I use only one tab, the parameters description are not all
> aligned.
> 
> > >   *
> > >   * HC_VM_SET_MEMORY_REGIONS uses this structure to manage EPT mappings of
> > >   * multiple memory regions of a User VM. A &struct vm_memory_region_batch
> > > @@ -55,10 +56,11 @@ struct vm_memory_region_op {
> > >   * ACRN Hypervisor.
> > >   */
> > >  struct vm_memory_region_batch {
> > > -	u16	vmid;
> > > -	u16	reserved[3];
> > > -	u32	regions_num;
> > > -	u64	regions_gpa;
> > > +	u16				vmid;
> > > +	u16				reserved[3];
> > > +	u32				regions_num;
> > > +	u64				regions_gpa;
> > > +	struct vm_memory_region_op	regions_op[];
> > Please use Whitespace instead of Tab.
> 
> Sorry, but I don't understand. Do you prefer something like?:
> 
> diff --git a/drivers/virt/acrn/acrn_drv.h b/drivers/virt/acrn/acrn_drv.h
> index fcc2e3e5232a..5663c17ad37c 100644
> --- a/drivers/virt/acrn/acrn_drv.h
> +++ b/drivers/virt/acrn/acrn_drv.h
> @@ -56,11 +56,11 @@ struct vm_memory_region_op {
>   * ACRN Hypervisor.
>   */
>  struct vm_memory_region_batch {
> -	u16				vmid;
> -	u16				reserved[3];
> -	u32				regions_num;
> -	u64				regions_gpa;
> -	struct vm_memory_region_op	regions_op[];
> +	u16			   vmid;
> +	u16			   reserved[3];
> +	u32			   regions_num;
> +	u64			   regions_gpa;
> +	struct vm_memory_region_op regions_op[];
>  };
> 
>  /**
> 
> Moreover, for the v2 I will fix the typo "syze->size" in the subject as
> suggested Kees ;)
> 
> Regards,
> Len

^ permalink raw reply	[relevance 7%]

* Re: [PATCH] drm/i915: Prefer struct_size over open coded arithmetic
  2021-10-16 11:16  7%       ` Len Baker
@ 2021-10-18 10:00  7%         ` Jani Nikula
  2021-10-23 11:50  7%           ` Len Baker
  0 siblings, 1 reply; 200+ results
From: Jani Nikula @ 2021-10-18 10:00 UTC (permalink / raw)
  To: Len Baker, Daniel Vetter
  Cc: Len Baker, Joonas Lahtinen, Rodrigo Vivi, David Airlie,
	Kees Cook, Gustavo A. R. Silva, intel-gfx, dri-devel,
	linux-hardening, linux-kernel

On Sat, 16 Oct 2021, Len Baker <len.baker@gmx.com> wrote:
> Hi Daniel and Jani,
>
> On Wed, Oct 13, 2021 at 01:51:30PM +0200, Daniel Vetter wrote:
>> On Wed, Oct 13, 2021 at 02:24:05PM +0300, Jani Nikula wrote:
>> > On Mon, 11 Oct 2021, Len Baker <len.baker@gmx.com> wrote:
>> > > Hi,
>> > >
>> > > On Sun, Oct 03, 2021 at 12:42:58PM +0200, Len Baker 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.
>> > >>
>> > >> In this case these are not actually dynamic sizes: all the operands
>> > >> involved in the calculation are constant values. However it is better to
>> > >> refactor them anyway, just to keep the open-coded math idiom out of
>> > >> code.
>> > >>
>> > >> So, add at the end of the struct i915_syncmap a union with two flexible
>> > >> array members (these arrays share the same memory layout). This is
>> > >> possible using the new DECLARE_FLEX_ARRAY macro. And then, use the
>> > >> struct_size() helper to do the arithmetic instead of the argument
>> > >> "size + count * size" in the kmalloc and kzalloc() functions.
>> > >>
>> > >> Also, take the opportunity to refactor the __sync_seqno and __sync_child
>> > >> making them more readable.
>> > >>
>> > >> This code was detected with the help of Coccinelle and audited and fixed
>> > >> manually.
>> > >>
>> > >> [1] https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments
>> > >>
>> > >> Signed-off-by: Len Baker <len.baker@gmx.com>
>> > >> ---
>> > >>  drivers/gpu/drm/i915/i915_syncmap.c | 12 ++++++++----
>> > >>  1 file changed, 8 insertions(+), 4 deletions(-)
>> > >
>> > > I received a mail telling that this patch doesn't build:
>> > >
>> > > == Series Details ==
>> > >
>> > > Series: drm/i915: Prefer struct_size over open coded arithmetic
>> > > URL   : https://patchwork.freedesktop.org/series/95408/
>> > > State : failure
>> > >
>> > > But it builds without error against linux-next (tag next-20211001). Against
>> > > which tree and branch do I need to build?
>> >
>> > drm-tip [1]. It's a sort of linux-next for graphics. I think there are
>> > still some branches that don't feed to linux-next.
>>
>> Yeah we need to get gt-next in linux-next asap. Joonas promised to send
>> out his patch to make that happen in dim.
>> -Daniel
>
> Is there a possibility that you give an "Acked-by" tag? And then this patch
> goes to the mainline through the Kees' tree or Gustavo's tree?

If this does not apply to drm-intel-gt-next (or drm-tip), applying it to
some other branch will just cause unnecessary conflicts later on. It's
unnecessary extra work. It's not an urgent fix or anything, there is no
reason to do that. So that's a NAK.

> Or is it better to wait for drm-tip to update?

drm-tip is up to date, it's just that one of the branches that feed to
it is (was?) not feeding to linux-next.

If you're contributing to drm, please consider basing your patches on
top of drm-tip.


BR,
Jani.


>
> Regards,
> Len
>
>>
>> >
>> > BR,
>> > Jani.
>> >
>> >
>> > [1] https://cgit.freedesktop.org/drm/drm-tip
>> >
>> >
>> > >
>> > > Regards,
>> > > Len
>> >
>> > --
>> > Jani Nikula, Intel Open Source Graphics Center
>>
>> --
>> Daniel Vetter
>> Software Engineer, Intel Corporation
>> http://blog.ffwll.ch

-- 
Jani Nikula, Intel Open Source Graphics Center

^ permalink raw reply	[relevance 7%]

* Re: [PATCH] iommu/tegra-smmu: Use devm_bitmap_zalloc when applicable
  2021-09-26 13:07  5% [PATCH] iommu/tegra-smmu: Use devm_bitmap_zalloc when applicable Christophe JAILLET
  2021-10-07 18:02  0% ` Thierry Reding
@ 2021-10-18 11:39  0% ` Joerg Roedel
  1 sibling, 0 replies; 200+ results
From: Joerg Roedel @ 2021-10-18 11:39 UTC (permalink / raw)
  To: Christophe JAILLET
  Cc: thierry.reding, vdumpa, will, jonathanh, linux-tegra, iommu,
	linux-kernel, kernel-janitors

On Sun, Sep 26, 2021 at 03:07:18PM +0200, Christophe JAILLET wrote:
> 'smmu->asids' is a bitmap. So use 'devm_kzalloc()' to simplify code,
> improve the semantic of the code and avoid some open-coded arithmetic in
> allocator arguments.
> 
> Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
> ---
>  drivers/iommu/tegra-smmu.c | 5 +----
>  1 file changed, 1 insertion(+), 4 deletions(-)

Applied, thanks.

^ permalink raw reply	[relevance 0%]

* Re: [PATCH v2] writeback: prefer struct_size over open coded arithmetic
  2021-09-25 11:43 12% [PATCH v2] writeback: prefer " Len Baker
  2021-09-27 14:51  7% ` Gustavo A. R. Silva
@ 2021-10-20 14:40  7% ` Jan Kara
  2021-10-20 23:19  7%   ` Gustavo A. R. Silva
  1 sibling, 1 reply; 200+ results
From: Jan Kara @ 2021-10-20 14:40 UTC (permalink / raw)
  To: Len Baker
  Cc: Alexander Viro, Kees Cook, Gustavo A. R. Silva, linux-fsdevel,
	linux-hardening, linux-kernel

On Sat 25-09-21 13:43:08, Len Baker 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.
> 
> In this case these are not actually dynamic sizes: all the operands
> involved in the calculation are constant values. However it is better to
> refactor them anyway, just to keep the open-coded math idiom out of
> code.
> 
> So, use the struct_size() helper to do the arithmetic instead of the
> argument "size + count * size" in the kzalloc() functions.
> 
> This code was detected with the help of Coccinelle and audited and fixed
> manually.
> 
> [1] https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments
> 
> Signed-off-by: Len Baker <len.baker@gmx.com>

Looks good. Feel free to add:

Reviewed-by: Jan Kara <jack@suse.cz>

BTW, writeback patches are usually merged by Andrew Morton so probably send
it to him. Thanks!

								Honza

> ---
> Changelog v1 -> v2
> - Rebase against v5.15-rc2
> - Refactor another instance in the same file (Gustavo A. R. Silva).
> - Update the commit changelog to inform that this code was detected
>   using a Coccinelle script (Gustavo A. R. Silva).
> 
>  fs/fs-writeback.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c
> index 81ec192ce067..5eb0ada7468c 100644
> --- a/fs/fs-writeback.c
> +++ b/fs/fs-writeback.c
> @@ -566,7 +566,7 @@ static void inode_switch_wbs(struct inode *inode, int new_wb_id)
>  	if (atomic_read(&isw_nr_in_flight) > WB_FRN_MAX_IN_FLIGHT)
>  		return;
> 
> -	isw = kzalloc(sizeof(*isw) + 2 * sizeof(struct inode *), GFP_ATOMIC);
> +	isw = kzalloc(struct_size(isw, inodes, 2), GFP_ATOMIC);
>  	if (!isw)
>  		return;
> 
> @@ -624,8 +624,8 @@ bool cleanup_offline_cgwb(struct bdi_writeback *wb)
>  	int nr;
>  	bool restart = false;
> 
> -	isw = kzalloc(sizeof(*isw) + WB_MAX_INODES_PER_ISW *
> -		      sizeof(struct inode *), GFP_KERNEL);
> +	isw = kzalloc(struct_size(isw, inodes, WB_MAX_INODES_PER_ISW),
> +		      GFP_KERNEL);
>  	if (!isw)
>  		return restart;
> 
> --
> 2.25.1
> 
-- 
Jan Kara <jack@suse.com>
SUSE Labs, CR

^ permalink raw reply	[relevance 7%]

* Re: [PATCH] nvmet: prefer struct_size over open coded arithmetic
  2021-10-17  9:56 13% [PATCH] nvmet: prefer struct_size over open coded arithmetic Len Baker
  2021-10-17 17:23 11% ` Gustavo A. R. Silva
@ 2021-10-20 17:24  7% ` Christoph Hellwig
  1 sibling, 0 replies; 200+ results
From: Christoph Hellwig @ 2021-10-20 17:24 UTC (permalink / raw)
  To: Len Baker
  Cc: Christoph Hellwig, Sagi Grimberg, Chaitanya Kulkarni, Kees Cook,
	Gustavo A. R. Silva, linux-hardening, linux-nvme, linux-kernel

Thanks,

applied to nvme-5.16.

^ permalink raw reply	[relevance 7%]

* Re: [PATCH v2] writeback: prefer struct_size over open coded arithmetic
  2021-10-20 14:40  7% ` Jan Kara
@ 2021-10-20 23:19  7%   ` Gustavo A. R. Silva
  0 siblings, 0 replies; 200+ results
From: Gustavo A. R. Silva @ 2021-10-20 23:19 UTC (permalink / raw)
  To: Jan Kara
  Cc: Len Baker, Alexander Viro, Kees Cook, linux-fsdevel,
	linux-hardening, linux-kernel

On Wed, Oct 20, 2021 at 04:40:44PM +0200, Jan Kara wrote:
[..]
> > This code was detected with the help of Coccinelle and audited and fixed
> > manually.
> > 
> > [1] https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments
> > 
> > Signed-off-by: Len Baker <len.baker@gmx.com>
> 
> Looks good. Feel free to add:
> 
> Reviewed-by: Jan Kara <jack@suse.cz>
> 
> BTW, writeback patches are usually merged by Andrew Morton so probably send
> it to him. Thanks!

I'm taking this in my -next tree.

Thank you both, Len and Jan.
--
Gustavo

^ permalink raw reply	[relevance 7%]

* Re: [PATCH] aio: Prefer struct_size over open coded arithmetic
  2021-09-21  0:11  7% ` Gustavo A. R. Silva
@ 2021-10-20 23:23  7%   ` Gustavo A. R. Silva
  0 siblings, 0 replies; 200+ results
From: Gustavo A. R. Silva @ 2021-10-20 23:23 UTC (permalink / raw)
  To: Gustavo A. R. Silva
  Cc: Len Baker, Benjamin LaHaise, Alexander Viro, Kees Cook,
	linux-aio, linux-fsdevel, linux-hardening, linux-kernel

On Mon, Sep 20, 2021 at 07:11:17PM -0500, Gustavo A. R. Silva wrote:
> 
> 
> On 9/19/21 04:45, Len Baker 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 struct_size() helper to do the arithmetic instead of the
> > argument "size + size * count" in the kzalloc() function.
> > 
> > [1] https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments
> > 
> > Signed-off-by: Len Baker <len.baker@gmx.com>
> 
> Reviewed-by: Gustavo A. R. Silva <gustavoars@kernel.org>

I'm taking this in my -next tree.

Thanks, Len.
--
Gustavo

^ permalink raw reply	[relevance 7%]

* Re: [PATCH] afs: Prefer struct_size over open coded arithmetic
  2021-09-21  0:09  7% ` Gustavo A. R. Silva
@ 2021-10-20 23:26  7%   ` Gustavo A. R. Silva
  0 siblings, 0 replies; 200+ results
From: Gustavo A. R. Silva @ 2021-10-20 23:26 UTC (permalink / raw)
  To: Gustavo A. R. Silva
  Cc: Len Baker, David Howells, Marc Dionne, Kees Cook, linux-afs,
	linux-hardening, linux-kernel

On Mon, Sep 20, 2021 at 07:09:38PM -0500, Gustavo A. R. Silva wrote:
> 
> 
> On 9/19/21 04:44, Len Baker 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 struct_size() helper to do the arithmetic instead of the
> > argument "size + size * count" in the kzalloc() function.
> > 
> > [1] https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments
> > 
> > Signed-off-by: Len Baker <len.baker@gmx.com>
> 
> Reviewed-by: Gustavo A. R. Silva <gustavoars@kernel.org>

I'm taking this in my -next tree.

Thanks, Len.
--
Gustavo

^ permalink raw reply	[relevance 7%]

* Re: [PATCH] dmaengine: pxa_dma: Prefer struct_size over open coded arithmetic
  2021-09-21  0:00  7% ` Gustavo A. R. Silva
@ 2021-10-20 23:32  7%   ` Gustavo A. R. Silva
  0 siblings, 0 replies; 200+ results
From: Gustavo A. R. Silva @ 2021-10-20 23:32 UTC (permalink / raw)
  To: Gustavo A. R. Silva
  Cc: Len Baker, Daniel Mack, Haojian Zhuang, Robert Jarzmik,
	Vinod Koul, Kees Cook, linux-arm-kernel, dmaengine,
	linux-hardening, linux-kernel

On Mon, Sep 20, 2021 at 07:00:58PM -0500, Gustavo A. R. Silva wrote:
> 
> 
> On 9/18/21 05:40, Len Baker 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 struct_size() helper to do the arithmetic instead of the
> > argument "size + count * size" in the kzalloc() function.
> > 
> > [1] https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments
> > 
> > Signed-off-by: Len Baker <len.baker@gmx.com>
> 
> Reviewed-by: Gustavo A. R. Silva <gustavoars@kernel.org>

I'm taking this in my -next tree.

Thanks
--
Gustavo

^ permalink raw reply	[relevance 7%]

* Re: [PATCH v3] docs: deprecated.rst: Clarify open-coded arithmetic with literals
  2021-09-25 14:34 11% [PATCH v3] docs: deprecated.rst: Clarify open-coded arithmetic with literals Len Baker
@ 2021-10-20 23:52  7% ` Gustavo A. R. Silva
  2021-10-26 15:44  7% ` Jonathan Corbet
  1 sibling, 0 replies; 200+ results
From: Gustavo A. R. Silva @ 2021-10-20 23:52 UTC (permalink / raw)
  To: Len Baker
  Cc: Jonathan Corbet, Kees Cook, Joe Perches, linux-doc, linux-kernel,
	linux-hardening

On Sat, Sep 25, 2021 at 04:34:55PM +0200, Len Baker wrote:
> Although using literals for size calculation in allocator arguments may
> be harmless due to compiler warnings in case of overflows, it is better
> to refactor the code to avoid the use of open-coded arithmetic.
> 
> So, clarify the preferred way in these cases.
> 
> Suggested-by: Kees Cook <keescook@chromium.org>
> Signed-off-by: Len Baker <len.baker@gmx.com>

This looks good to me.

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

Thanks
--
Gustavo

> ---
> Changelog v1 -> v2
>  - Clarify the sentence by changing "keep <foo> out" with "avoid <foo>"
>    (Joe Perches).
> 
> Changelog v2 -> v3
>  - Reword the sentence to comunicate better (Jonathan Corbet).
> 
> The previous version can be found here [1].
> 
> [1] https://lore.kernel.org/linux-hardening/20210829144716.2931-1-len.baker@gmx.com/
> 
>  Documentation/process/deprecated.rst | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/Documentation/process/deprecated.rst b/Documentation/process/deprecated.rst
> index 8ced754a5a0f..388cb19f5dbb 100644
> --- a/Documentation/process/deprecated.rst
> +++ b/Documentation/process/deprecated.rst
> @@ -59,8 +59,9 @@ 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. (One exception to this is literal values where the compiler
> -can warn if they might overflow. Though using literals for arguments as
> -suggested below is also harmless.)
> +can warn if they might overflow. However, the preferred way in these
> +cases is to refactor the code as suggested below to avoid the open-coded
> +arithmetic.)
> 
>  For example, do not use ``count * size`` as an argument, as in::
> 
> --
> 2.25.1
> 

^ permalink raw reply	[relevance 7%]

* mmotm 2021-10-20-20-40 uploaded
@ 2021-10-21  3:41  2% akpm
  0 siblings, 0 replies; 200+ results
From: akpm @ 2021-10-21  3:41 UTC (permalink / raw)
  To: broonie, linux-fsdevel, linux-kernel, linux-mm, linux-next,
	mhocko, mm-commits, sfr

The mm-of-the-moment snapshot 2021-10-20-20-40 has been uploaded to

   https://www.ozlabs.org/~akpm/mmotm/

mmotm-readme.txt says

README for mm-of-the-moment:

https://www.ozlabs.org/~akpm/mmotm/

This is a snapshot of my -mm patch queue.  Uploaded at random hopefully
more than once a week.

You will need quilt to apply these patches to the latest Linus release (5.x
or 5.x-rcY).  The series file is in broken-out.tar.gz and is duplicated in
https://ozlabs.org/~akpm/mmotm/series

The file broken-out.tar.gz contains two datestamp files: .DATE and
.DATE-yyyy-mm-dd-hh-mm-ss.  Both contain the string yyyy-mm-dd-hh-mm-ss,
followed by the base kernel version against which this patch series is to
be applied.

This tree is partially included in linux-next.  To see which patches are
included in linux-next, consult the `series' file.  Only the patches
within the #NEXT_PATCHES_START/#NEXT_PATCHES_END markers are included in
linux-next.


A full copy of the full kernel tree with the linux-next and mmotm patches
already applied is available through git within an hour of the mmotm
release.  Individual mmotm releases are tagged.  The master branch always
points to the latest release, so it's constantly rebasing.

	https://github.com/hnaz/linux-mm

The directory https://www.ozlabs.org/~akpm/mmots/ (mm-of-the-second)
contains daily snapshots of the -mm tree.  It is updated more frequently
than mmotm, and is untested.

A git copy of this tree is also available at

	https://github.com/hnaz/linux-mm



This mmotm tree contains the following patches against 5.15-rc6:
(patches marked "*" will be included in linux-next)

  origin.patch
* mm-vmalloc-fix-numa-spreading-for-large-hash-tables.patch
* fix-application-of-sizeof-to-pointer.patch
* kasan-test-use-underlying-string-helpers.patch
* kasan-test-use-underlying-string-helpers-checkpatch-fixes.patch
* memcg-page_alloc-skip-bulk-allocator-for-__gfp_account.patch
* mm-hwpoison-remove-the-unnecessary-thp-check.patch
* mm-filemap-check-if-thp-has-hwpoisoned-subpage-for-pmd-page-fault.patch
* proc-kpageflags-prevent-an-integer-overflow-in-stable_page_flags.patch
* proc-kpageflags-do-not-use-uninitialized-struct-pages.patch
* procfs-prevent-unpriveleged-processes-accessing-fdinfo-dir.patch
* scripts-spellingtxt-add-more-spellings-to-spellingtxt.patch
* scripts-spellingtxt-fix-mistake-version-of-synchronization.patch
* scripts-decodecode-fix-faulting-instruction-no-print-when-oppsfile-is-dos-format.patch
* ocfs2-fix-handle-refcount-leak-in-two-exception-handling-paths.patch
* ocfs2-cleanup-journal-init-and-shutdown.patch
* ocfs2-dlm-remove-redundant-assignment-of-variable-ret.patch
* ocfs2-reflink-deadlock-when-clone-file-to-the-same-directory-simultaneously.patch
* ocfs2-clear-links-count-in-ocfs2_mknod-if-an-error-occurs.patch
* ocfs2-fix-ocfs2-corrupt-when-iputting-an-inode.patch
* posix-acl-avoid-wempty-body-warning.patch
  mm.patch
* mm-move-kvmalloc-related-functions-to-slabh.patch
* mm-remove-useless-lines-in-enable_cpucache.patch
* slub-add-back-check-for-free-nonslab-objects.patch
* mm-slub-change-percpu-partial-accounting-from-objects-to-pages.patch
* mm-slub-increase-default-cpu-partial-list-sizes.patch
* mm-slub-use-prefetchw-instead-of-prefetch.patch
* mm-dont-include-linux-daxh-in-linux-mempolicyh.patch
* lib-stackdepot-include-gfph.patch
* lib-stackdepot-remove-unused-function-argument.patch
* lib-stackdepot-introduce-__stack_depot_save.patch
* kasan-common-provide-can_alloc-in-kasan_save_stack.patch
* kasan-generic-introduce-kasan_record_aux_stack_noalloc.patch
* workqueue-kasan-avoid-alloc_pages-when-recording-stack.patch
* kasan-fix-tag-for-large-allocations-when-using-config_slab.patch
* kasan-test-add-memcpy-test-that-avoids-out-of-bounds-write.patch
* mm-smaps-fix-shmem-pte-hole-swap-calculation.patch
* mm-smaps-use-vma-vm_pgoff-directly-when-counting-partial-swap.patch
* mm-smaps-simplify-shmem-handling-of-pte-holes.patch
* mm-debug_vm_pgtable-dont-use-__p000-directly.patch
* kasan-test-bypass-__alloc_size-checks.patch
* rapidio-avoid-bogus-__alloc_size-warning.patch
* compiler-attributes-add-__alloc_size-for-better-bounds-checking.patch
* slab-clean-up-function-prototypes.patch
* slab-add-__alloc_size-attributes-for-better-bounds-checking.patch
* mm-kvmalloc-add-__alloc_size-attributes-for-better-bounds-checking.patch
* mm-vmalloc-add-__alloc_size-attributes-for-better-bounds-checking.patch
* mm-page_alloc-add-__alloc_size-attributes-for-better-bounds-checking.patch
* percpu-add-__alloc_size-attributes-for-better-bounds-checking.patch
* kasan-test-consolidate-workarounds-for-unwanted-__alloc_size-protection.patch
* mm-fix-a-comment.patch
* mm-page_ownerc-modify-the-type-of-argument-order-in-some-functions.patch
* mm-page_ownerc-modify-the-type-of-argument-order-in-some-functions-fix.patch
* mm-stop-filemap_read-from-grabbing-a-superfluous-page.patch
* mm-remove-bogus-vm_bug_on.patch
* vfs-keep-inodes-with-page-cache-off-the-inode-shrinker-lru.patch
* mm-gup-further-simplify-__gup_device_huge.patch
* mm-swapfile-remove-needless-request_queue-null-pointer-check.patch
* mm-swapfile-fix-an-integer-overflow-in-swap_show.patch
* mm-optimise-put_pages_list.patch
* mm-memcg-drop-swp_entry_t-in-mc_handle_file_pte.patch
* memcg-flush-stats-only-if-updated.patch
* memcg-unify-memcg-stat-flushing.patch
* mm-memcg-remove-obsolete-memcg_free_kmem.patch
* mm-list_lruc-prefer-struct_size-over-open-coded-arithmetic.patch
* memcg-kmem-further-deprecate-kmemlimit_in_bytes.patch
* memcg-kmem-further-deprecate-kmemlimit_in_bytes-checkpatch-fixes.patch
* memcg-prohibit-unconditional-exceeding-the-limit-of-dying-tasks.patch
* mm-mmapc-fix-a-data-race-of-mm-total_vm.patch
* mm-use-__pfn_to_section-instead-of-open-coding-it.patch
* mm-memory-avoid-unnecessary-kernel-user-pointer-conversion.patch
* mm-shmem-unconditionally-set-pte-dirty-in-mfill_atomic_install_pte.patch
* mm-clear-vmf-pte-after-pte_unmap_same-returns.patch
* mm-drop-first_index-last_index-in-zap_details.patch
* mm-add-zap_skip_check_mapping-helper.patch
* mm-introduce-pmd_install-helper.patch
* mm-remove-redundant-smp_wmb.patch
* documentation-update-pagemap-with-shmem-exceptions.patch
* lazy-tlb-introduce-lazy-mm-refcount-helper-functions.patch
* lazy-tlb-allow-lazy-tlb-mm-refcounting-to-be-configurable.patch
* lazy-tlb-shoot-lazies-a-non-refcounting-lazy-tlb-option.patch
* powerpc-64s-enable-mmu_lazy_tlb_shootdown.patch
* memory-remove-unused-config_mem_block_size.patch
* mm-mprotectc-avoid-repeated-assignment-in-do_mprotect_pkey.patch
* mm-mremap-dont-account-pages-in-vma_to_resize.patch
* io-mapping-remove-fallback-for-writecombine.patch
* mm-mmap_lock-remove-redundant-newline-in-tp_printk.patch
* mm-mmap_lock-use-declare_event_class-and-define_event_fn.patch
* mm-vmalloc-repair-warn_allocs-in-__vmalloc_area_node.patch
* mm-vmalloc-dont-allow-vm_no_guard-on-vmap.patch
* mm-vmalloc-make-show_numa_info-aware-of-hugepage-mappings.patch
* mm-vmalloc-make-sure-to-dump-unpurged-areas-in-proc-vmallocinfo.patch
* mm-vmalloc-do-not-adjust-the-search-size-for-alignment-overhead.patch
* mm-vmalloc-check-various-alignments-when-debugging.patch
* vmalloc-back-off-when-the-current-task-is-oom-killed.patch
* vmalloc-choose-a-better-start-address-in-vm_area_register_early.patch
* arm64-support-page-mapping-percpu-first-chunk-allocator.patch
* kasan-arm64-fix-pcpu_page_first_chunk-crash-with-kasan_vmalloc.patch
* kasan-arm64-fix-pcpu_page_first_chunk-crash-with-kasan_vmalloc-fix.patch
* mm-vmalloc-introduce-alloc_pages_bulk_array_mempolicy-to-accelerate-memory-allocation.patch
* mm-vmalloc-introduce-alloc_pages_bulk_array_mempolicy-to-accelerate-memory-allocation-fix.patch
* mm-vmalloc-introduce-alloc_pages_bulk_array_mempolicy-to-accelerate-memory-allocation-fix-2.patch
* mm-vmalloc-be-more-explicit-about-supported-gfp-flags.patch
* mm-large-system-hash-avoid-possible-null-deref-in-alloc_large_system_hash.patch
* mm-page_allocc-remove-meaningless-vm_bug_on-in-pindex_to_order.patch
* mm-page_allocc-simplify-the-code-by-using-macro-k.patch
* mm-page_allocc-fix-obsolete-comment-in-free_pcppages_bulk.patch
* mm-page_allocc-use-helper-function-zone_spans_pfn.patch
* mm-page_allocc-avoid-allocating-highmem-pages-via-alloc_pages_exact.patch
* mm-page_alloc-print-node-fallback-order.patch
* mm-page_alloc-use-accumulated-load-when-building-node-fallback-list.patch
* mm-move-node_reclaim_distance-to-fix-numa-without-smp.patch
* mm-move-fold_vm_numa_events-to-fix-numa-without-smp.patch
* mm-do-not-acquire-zone-lock-in-is_free_buddy_page.patch
* mm-page_alloc-detect-allocation-forbidden-by-cpuset-and-bail-out-early.patch
* mm-show-watermark_boost-of-zone-in-zoneinfo.patch
* mm-create-a-new-system-state-and-fix-core_kernel_text.patch
* mm-make-generic-arch_is_kernel_initmem_freed-do-what-it-says.patch
* powerpc-use-generic-version-of-arch_is_kernel_initmem_freed.patch
* s390-use-generic-version-of-arch_is_kernel_initmem_freed.patch
* mm-page_alloc-use-migrate_disable-in-drain_local_pages_wq.patch
* mm-fix-data-race-in-pagepoisoned.patch
* mm-memory_failure-constify-static-mm_walk_ops.patch
* mm-filemap-coding-style-cleanup-for-filemap_map_pmd.patch
* mm-hwpoison-refactor-refcount-check-handling.patch
* mm-shmem-dont-truncate-page-if-memory-failure-happens.patch
* mm-hwpoison-handle-non-anonymous-thp-correctly.patch
* mm-hugetlb-drop-__unmap_hugepage_range-definition-from-hugetlbh.patch
* hugetlb-add-demote-hugetlb-page-sysfs-interfaces.patch
* mm-cma-add-cma_pages_valid-to-determine-if-pages-are-in-cma.patch
* hugetlb-be-sure-to-free-demoted-cma-pages-to-cma.patch
* hugetlb-add-demote-bool-to-gigantic-page-routines.patch
* hugetlb-add-hugetlb-demote-page-support.patch
* hugetlb-add-hugetlb-demote-page-support-v4.patch
* mmhugetlb-remove-mlock-ulimit-for-shm_hugetlb.patch
* mm-khugepaged-recalculate-min_free_kbytes-after-stopping-khugepaged.patch
* mm-hugepages-add-mremap-support-for-hugepage-backed-vma.patch
* mm-hugepages-add-hugetlb-vma-mremap-test.patch
* mm-hugepages-add-hugetlb-vma-mremap-test-v8.patch
* hugetlb-support-node-specified-when-using-cma-for-gigantic-hugepages.patch
* mm-remove-duplicate-include-in-hugepage-mremapc.patch
* userfaultfd-selftests-dont-rely-on-gnu-extensions-for-random-numbers.patch
* userfaultfd-selftests-fix-feature-support-detection.patch
* userfaultfd-selftests-fix-calculation-of-expected-ioctls.patch
* mm-page_isolation-fix-potential-missing-call-to-unset_migratetype_isolate.patch
* mm-page_isolation-guard-against-possible-putback-unisolated-page.patch
* mm-vmscanc-fix-wunused-but-set-variable-warning.patch
* mm-vmscan-throttle-reclaim-until-some-writeback-completes-if-congested.patch
* mm-vmscan-throttle-reclaim-and-compaction-when-too-may-pages-are-isolated.patch
* mm-vmscan-throttle-reclaim-when-no-progress-is-being-made.patch
* mm-writeback-throttle-based-on-page-writeback-instead-of-congestion.patch
* mm-page_alloc-remove-the-throttling-logic-from-the-page-allocator.patch
* mm-vmscan-centralise-timeout-values-for-reclaim_throttle.patch
* mm-vmscan-increase-the-timeout-if-page-reclaim-is-not-making-progress.patch
* mm-vmscan-delay-waking-of-tasks-throttled-on-noprogress.patch
* tools-vm-page_owner_sortc-count-and-sort-by-mem.patch
* tools-vm-page-typesc-make-walk_file-aware-of-address-range-option.patch
* tools-vm-page-typesc-move-show_file-to-summary-output.patch
* tools-vm-page-typesc-print-file-offset-in-hexadecimal.patch
* mm-mempolicy-convert-from-atomic_t-to-refcount_t-on-mempolicy-refcnt.patch
* mm-mempolicy-convert-from-atomic_t-to-refcount_t-on-mempolicy-refcnt-fix.patch
* arch_numa-simplify-numa_distance-allocation.patch
* xen-x86-free_p2m_page-use-memblock_free_ptr-to-free-a-virtual-pointer.patch
* memblock-drop-memblock_free_early_nid-and-memblock_free_early.patch
* memblock-stop-aliasing-__memblock_free_late-with-memblock_free_late.patch
* memblock-rename-memblock_free-to-memblock_phys_free.patch
* memblock-use-memblock_free-for-freeing-virtual-pointers.patch
* memblock-use-memblock_free-for-freeing-virtual-pointers-fix.patch
* mm-mark-the-oom-reaper-thread-as-freezable.patch
* oom_kill-oom_score_adj-broken-for-processes-with-small-memory-usage.patch
* hugetlbfs-extend-the-definition-of-hugepages-parameter-to-support-node-allocation.patch
* mm-migrate-de-duplicate-migrate_reason-strings.patch
* mm-migrate-make-demotion-knob-depend-on-migration.patch
* selftests-vm-transhuge-stress-fix-ram-size-thinko.patch
* mm-readaheadc-fix-incorrect-comments-for-get_init_ra_size.patch
* mm-nommu-kill-arch_get_unmapped_area.patch
* selftest-vm-fix-ksm-selftest-to-run-with-different-numa-topologies.patch
* selftests-vm-add-ksm-huge-pages-merging-time-test.patch
* mm-vmstat-annotate-data-race-for-zone-free_areanr_free.patch
* mm-vmstat-annotate-data-race-for-zone-free_areanr_free-fix.patch
* mm-vmstatc-make-extfrag_index-show-more-pretty.patch
* selftests-vm-make-madv_populate_readwrite-use-in-tree-headers.patch
* mm-memory_hotplug-add-static-qualifier-for-online_policy_to_str.patch
* memory-hotplugrst-fix-two-instances-of-movablecore-that-should-be-movable_node.patch
* memory-hotplugrst-fix-wrong-sys-module-memory_hotplug-parameters-path.patch
* memory-hotplugrst-document-the-auto-movable-online-policy.patch
* memory-hotplugrst-document-the-auto-movable-online-policy-v2.patch
* mm-memory_hotplug-remove-config_x86_64_acpi_numa-dependency-from-config_memory_hotplug.patch
* mm-memory_hotplug-remove-config_memory_hotplug_sparse.patch
* mm-memory_hotplug-restrict-config_memory_hotplug-to-64-bit.patch
* mm-memory_hotplug-remove-highmem-leftovers.patch
* mm-memory_hotplug-remove-stale-function-declarations.patch
* x86-remove-memory-hotplug-support-on-x86_32.patch
* mm-memory_hotplug-handle-memblock_add_node-failures-in-add_memory_resource.patch
* memblock-improve-memblock_hotplug-documentation.patch
* memblock-allow-to-specify-flags-with-memblock_add_node.patch
* memblock-add-memblock_driver_managed-to-mimic-ioresource_sysram_driver_managed.patch
* mm-memory_hotplug-indicate-memblock_driver_managed-with-ioresource_sysram_driver_managed.patch
* mm-memory_hotplug-make-hwpoisoned-dirty-swapcache-pages-unmovable.patch
* mm-rmapc-avoid-double-faults-migrating-device-private-pages.patch
* mm-rmap-convert-from-atomic_t-to-refcount_t-on-anon_vma-refcount.patch
* mm-disable-zsmalloc-on-preempt_rt.patch
* mm-zsmallocc-close-race-window-between-zs_pool_dec_isolated-and-zs_unregister_migration.patch
* mm-zsmallocc-combine-two-atomic-ops-in-zs_pool_dec_isolated.patch
* mm-highmem-remove-deprecated-kmap_atomic.patch
* zram_drv-allow-reclaim-on-bio_alloc.patch
* zram-off-by-one-in-read_block_state.patch
* zram-introduce-an-aged-idle-interface.patch
* zram-introduce-an-aged-idle-interface-v5.patch
* zram-introduce-an-aged-idle-interface-v6.patch
* mm-remove-hardened_usercopy_fallback.patch
* include-linux-mmh-move-nr_free_buffer_pages-from-swaph-to-mmh.patch
* stacktrace-move-filter_irq_stacks-to-kernel-stacktracec.patch
* kfence-count-unexpectedly-skipped-allocations.patch
* kfence-move-saving-stack-trace-of-allocations-into-__kfence_alloc.patch
* kfence-limit-currently-covered-allocations-when-pool-nearly-full.patch
* kfence-limit-currently-covered-allocations-when-pool-nearly-full-fix.patch
* kfence-limit-currently-covered-allocations-when-pool-nearly-full-fix-fix.patch
* kfence-add-note-to-documentation-about-skipping-covered-allocations.patch
* kfence-test-use-kunit_skip-to-skip-tests.patch
* kfence-shorten-critical-sections-of-alloc-free.patch
* kfence-always-use-static-branches-to-guard-kfence_alloc.patch
* kfence-default-to-dynamic-branch-instead-of-static-keys-mode.patch
* mm-damon-grammar-s-works-work.patch
* documentation-vm-move-user-guides-to-admin-guide-mm.patch
* maintainers-update-seongjaes-email-address.patch
* docs-vm-damon-remove-broken-reference.patch
* include-linux-damonh-fix-kernel-doc-comments-for-damon_callback.patch
* mm-damon-core-print-kdamond-start-log-in-debug-mode-only.patch
* mm-damon-remove-unnecessary-do_exit-from-kdamond.patch
* mm-damon-neednt-hold-kdamond_lock-to-print-pid-of-kdamond.patch
* mm-damon-core-nullify-pointer-ctx-kdamond-with-a-null.patch
* mm-damon-core-account-age-of-target-regions.patch
* mm-damon-core-implement-damon-based-operation-schemes-damos.patch
* mm-damon-vaddr-support-damon-based-operation-schemes.patch
* mm-damon-dbgfs-support-damon-based-operation-schemes.patch
* mm-damon-schemes-implement-statistics-feature.patch
* selftests-damon-add-schemes-debugfs-tests.patch
* docs-admin-guide-mm-damon-document-damon-based-operation-schemes.patch
* mm-damon-dbgfs-allow-users-to-set-initial-monitoring-target-regions.patch
* mm-damon-dbgfs-test-add-a-unit-test-case-for-init_regions.patch
* docs-admin-guide-mm-damon-document-init_regions-feature.patch
* mm-damon-vaddr-separate-commonly-usable-functions.patch
* mm-damon-vaddr-separate-commonly-usable-functions-fix.patch
* mm-damon-implement-primitives-for-physical-address-space-monitoring.patch
* mm-damon-dbgfs-support-physical-memory-monitoring.patch
* docs-damon-document-physical-memory-monitoring-support.patch
* mm-damon-vaddr-constify-static-mm_walk_ops.patch
* mm-damon-dbgfs-remove-unnecessary-variables.patch
* mm-damon-paddr-support-the-pageout-scheme.patch
* mm-damon-schemes-implement-size-quota-for-schemes-application-speed-control.patch
* mm-damon-schemes-skip-already-charged-targets-and-regions.patch
* mm-damon-schemes-implement-time-quota.patch
* mm-damon-dbgfs-support-quotas-of-schemes.patch
* mm-damon-selftests-support-schemes-quotas.patch
* mm-damon-schemes-prioritize-regions-within-the-quotas.patch
* mm-damon-vaddrpaddr-support-pageout-prioritization.patch
* mm-damon-dbgfs-support-prioritization-weights.patch
* tools-selftests-damon-update-for-regions-prioritization-of-schemes.patch
* mm-damon-schemes-activate-schemes-based-on-a-watermarks-mechanism.patch
* mm-damon-dbgfs-support-watermarks.patch
* selftests-damon-support-watermarks.patch
* mm-damon-introduce-damon-based-reclamation-damon_reclaim.patch
* documentation-admin-guide-mm-damon-add-a-document-for-damon_reclaim.patch
* mm-damon-remove-unnecessary-variable-initialization.patch
* mm-damon-dbgfs-add-adaptive_targets-list-check-before-enable-monitor_on.patch
* info-task-hung-in-generic_file_write_iter.patch
* info-task-hung-in-generic_file_write-fix.patch
* kernel-hung_taskc-monitor-killed-tasks.patch
* procfs-do-not-list-tid-0-in-proc-pid-task.patch
* procfs-do-not-list-tid-0-in-proc-pid-task-fix.patch
* proc-test-that-proc-task-doesnt-contain-0.patch
* x86-xen-update-xen_oldmem_pfn_is_ram-documentation.patch
* x86-xen-simplify-xen_oldmem_pfn_is_ram.patch
* x86-xen-print-a-warning-when-hvmop_get_mem_type-fails.patch
* proc-vmcore-let-pfn_is_ram-return-a-bool.patch
* proc-vmcore-convert-oldmem_pfn_is_ram-callback-to-more-generic-vmcore-callbacks.patch
* virtio-mem-factor-out-hotplug-specifics-from-virtio_mem_init-into-virtio_mem_init_hotplug.patch
* virtio-mem-factor-out-hotplug-specifics-from-virtio_mem_probe-into-virtio_mem_init_hotplug.patch
* virtio-mem-factor-out-hotplug-specifics-from-virtio_mem_remove-into-virtio_mem_deinit_hotplug.patch
* virtio-mem-kdump-mode-to-sanitize-proc-vmcore-access.patch
* proc-allow-pid_revalidate-during-lookup_rcu.patch
* proc-sysctl-make-protected_-world-readable.patch
* kernelh-drop-unneeded-linux-kernelh-inclusion-from-other-headers.patch
* kernelh-drop-unneeded-linux-kernelh-inclusion-from-other-headers-fix.patch
* kernelh-split-out-container_of-and-typeof_member-macros.patch
* kunit-replace-kernelh-with-the-necessary-inclusions.patch
* list-replace-kernelh-with-the-necessary-inclusions.patch
* llist-replace-kernelh-with-the-necessary-inclusions.patch
* plist-replace-kernelh-with-the-necessary-inclusions.patch
* media-entity-replace-kernelh-with-the-necessary-inclusions.patch
* linux-container_ofh-switch-to-static_assert.patch
* maintainers-add-exec-binfmt-section-with-myself-and-eric.patch
* lib-stackdepot-check-stackdepot-handle-before-accessing-slabs.patch
* lib-stackdepot-add-helper-to-print-stack-entries.patch
* lib-stackdepot-add-helper-to-print-stack-entries-into-buffer.patch
* lib-stackdepot-add-helper-to-print-stack-entries-into-buffer-v2.patch
* lib-stackdepot-add-helper-to-print-stack-entries-into-buffer-v3.patch
* lib-string_helpers-add-linux-stringh-for-strlen.patch
* lib-uninline-simple_strntoull-as-well.patch
* lib-stackdepot-allow-optional-init-and-stack_table-allocation-by-kvmalloc.patch
* lib-stackdepot-allow-optional-init-and-stack_table-allocation-by-kvmalloc-fix.patch
* lib-stackdepot-allow-optional-init-and-stack_table-allocation-by-kvmalloc-fix-2.patch
* mm-scatterlist-replace-the-preemptible-warning-in-sg_miter_stop.patch
* const_structscheckpatch-add-a-few-sound-ops-structs.patch
* checkpatch-improve-export_symbol-test-for-export_symbol_ns-uses.patch
* checkpatch-get-default-codespell-dictionary-path-from-package-location.patch
* binfmt_elf-reintroduce-using-map_fixed_noreplace.patch
* elf-fix-overflow-in-total-mapping-size-calculation.patch
* elf-simplify-stack_alloc-macro.patch
* kallsyms-remove-arch-specific-text-and-data-check.patch
* kallsyms-fix-address-checks-for-kernel-related-range.patch
* sections-move-and-rename-core_kernel_data-to-is_kernel_core_data.patch
* sections-move-is_kernel_inittext-into-sectionsh.patch
* x86-mm-rename-__is_kernel_text-to-is_x86_32_kernel_text.patch
* sections-provide-internal-__is_kernel-and-__is_kernel_text-helper.patch
* mm-kasan-use-is_kernel-helper.patch
* extable-use-is_kernel_text-helper.patch
* powerpc-mm-use-core_kernel_text-helper.patch
* microblaze-use-is_kernel_text-helper.patch
* alpha-use-is_kernel_text-helper.patch
* ramfs-fix-mount-source-show-for-ramfs.patch
* init-make-unknown-command-line-param-message-clearer.patch
* init-mainc-silence-some-wunused-parameter-warnings.patch
* coda-avoid-null-pointer-dereference-from-a-bad-inode.patch
* coda-check-for-async-upcall-request-using-local-state.patch
* coda-remove-err-which-no-one-care.patch
* coda-avoid-flagging-null-inodes.patch
* coda-avoid-hidden-code-duplication-in-rename.patch
* coda-avoid-doing-bad-things-on-inode-type-changes-during-revalidation.patch
* coda-convert-from-atomic_t-to-refcount_t-on-coda_vm_ops-refcnt.patch
* coda-use-vmemdup_user-to-replace-the-open-code.patch
* coda-bump-module-version-to-72.patch
* hfs-hfsplus-use-warn_on-for-sanity-check.patch
* hfsplus-fix-out-of-bounds-warnings-in-__hfsplus_setxattr.patch
* signal-remove-duplicate-include-in-signalh.patch
* seq_file-move-seq_escape-to-a-header.patch
* unshare-use-swap-to-make-code-cleaner.patch
* sysv-use-build_bug_on-instead-of-runtime-check.patch
* documentation-kcov-include-typesh-in-the-example.patch
* documentation-kcov-define-ip-in-the-example.patch
* kcov-allocate-per-cpu-memory-on-the-relevant-node.patch
* kcov-avoid-enabledisable-interrupts-if-in_task.patch
* kcov-replace-local_irq_save-with-a-local_lock_t.patch
* kernel-resource-clean-up-and-optimize-iomem_is_exclusive.patch
* kernel-resource-disallow-access-to-exclusive-system-ram-regions.patch
* virtio-mem-disallow-mapping-virtio-mem-memory-via-dev-mem.patch
* ipc-check-checkpoint_restore_ns_capable-to-modify-c-r-proc-files.patch
* ipc-check-checkpoint_restore_ns_capable-to-modify-c-r-proc-files-fix.patch
* ipc-ipc_sysctlc-remove-fallback-for-config_proc_sysctl.patch
  revert-acct_reclaim_writeback-for-next.patch
  linux-next.patch
  linux-next-rejects.patch
  restore-acct_reclaim_writeback-for-folio.patch
* mm-filemap-check-if-thp-has-hwpoisoned-subpage-for-pmd-page-fault-vs-folios.patch
* mm-allow-only-slub-on-preempt_rt.patch
* mm-migrate-simplify-the-file-backed-pages-validation-when-migrating-its-mapping.patch
* mm-unexport-folio_memcg_unlock.patch
* mm-unexport-unlock_page_memcg.patch
* kasan-add-kasan-mode-messages-when-kasan-init.patch
  make-sure-nobodys-leaking-resources.patch
  releasing-resources-with-children.patch
  mutex-subsystem-synchro-test-module.patch
  kernel-forkc-export-kernel_thread-to-modules.patch
  workaround-for-a-pci-restoring-bug.patch

^ permalink raw reply	[relevance 2%]

* [gustavoars:for-next/kspp-misc-fixes] BUILD SUCCESS 50740d5de6145cb88e69ccb29c586f10c401e3ee
@ 2021-10-21 19:34  4% kernel test robot
  0 siblings, 0 replies; 200+ results
From: kernel test robot @ 2021-10-21 19:34 UTC (permalink / raw)
  To: Gustavo A. R. Silva; +Cc: LKML

tree/branch: https://git.kernel.org/pub/scm/linux/kernel/git/gustavoars/linux.git for-next/kspp-misc-fixes
branch HEAD: 50740d5de6145cb88e69ccb29c586f10c401e3ee  dmaengine: pxa_dma: Prefer struct_size over open coded arithmetic

elapsed time: 1159m

configs tested: 183
configs skipped: 4

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

gcc tested configs:
arm                                 defconfig
arm64                            allyesconfig
arm64                               defconfig
arm                              allmodconfig
arm                              allyesconfig
i386                 randconfig-c001-20211021
sh                         microdev_defconfig
arm                        mvebu_v5_defconfig
powerpc                       eiger_defconfig
ia64                      gensparse_defconfig
arm                         shannon_defconfig
arm                             pxa_defconfig
m68k                        mvme16x_defconfig
arm                       imx_v6_v7_defconfig
powerpc                     asp8347_defconfig
powerpc                    amigaone_defconfig
mips                        maltaup_defconfig
arm                      pxa255-idp_defconfig
arm                            hisi_defconfig
s390                             alldefconfig
sh                           se7780_defconfig
powerpc                      mgcoge_defconfig
arm                         lubbock_defconfig
sh                             shx3_defconfig
i386                                defconfig
powerpc                   currituck_defconfig
arm                          exynos_defconfig
sh                          lboxre2_defconfig
sparc                               defconfig
arm                       aspeed_g4_defconfig
arm                        clps711x_defconfig
arc                      axs103_smp_defconfig
arm                            xcep_defconfig
arm                        magician_defconfig
x86_64                           allyesconfig
m68k                          sun3x_defconfig
arm                         mv78xx0_defconfig
sh                            hp6xx_defconfig
powerpc                      ppc44x_defconfig
arm                  colibri_pxa300_defconfig
powerpc                   bluestone_defconfig
sh                ecovec24-romimage_defconfig
powerpc                     sequoia_defconfig
xtensa                  cadence_csp_defconfig
powerpc                 mpc8272_ads_defconfig
mips                          rm200_defconfig
ia64                         bigsur_defconfig
arm                            dove_defconfig
powerpc                     ksi8560_defconfig
sh                 kfr2r09-romimage_defconfig
csky                             alldefconfig
powerpc                      ppc40x_defconfig
parisc                           alldefconfig
powerpc                    klondike_defconfig
mips                        bcm47xx_defconfig
powerpc                 mpc8540_ads_defconfig
powerpc                    adder875_defconfig
mips                malta_qemu_32r6_defconfig
arc                            hsdk_defconfig
xtensa                       common_defconfig
arm                            mmp2_defconfig
powerpc                     tqm8548_defconfig
openrisc                 simple_smp_defconfig
mips                        omega2p_defconfig
mips                         mpc30x_defconfig
um                                  defconfig
arm                         orion5x_defconfig
sh                          sdk7780_defconfig
powerpc                 mpc832x_mds_defconfig
arm                        cerfcube_defconfig
xtensa                  nommu_kc705_defconfig
powerpc                          g5_defconfig
sparc                       sparc64_defconfig
arm                           viper_defconfig
mips                           ip28_defconfig
mips                         tb0219_defconfig
m68k                       m5208evb_defconfig
mips                       rbtx49xx_defconfig
um                               alldefconfig
mips                            ar7_defconfig
powerpc                       holly_defconfig
mips                       capcella_defconfig
xtensa                          iss_defconfig
nios2                         3c120_defconfig
sh                               allmodconfig
sparc                       sparc32_defconfig
arm                  colibri_pxa270_defconfig
powerpc                      pmac32_defconfig
arm                          gemini_defconfig
arm                        spear6xx_defconfig
powerpc                      ppc6xx_defconfig
arm                        trizeps4_defconfig
parisc                              defconfig
m68k                          atari_defconfig
mips                        qi_lb60_defconfig
m68k                                defconfig
powerpc                 mpc8313_rdb_defconfig
powerpc                 mpc837x_mds_defconfig
ia64                            zx1_defconfig
powerpc                      obs600_defconfig
sh                          kfr2r09_defconfig
sh                             espt_defconfig
parisc                generic-64bit_defconfig
powerpc                     tqm8540_defconfig
powerpc                         wii_defconfig
powerpc                          allmodconfig
arm                        multi_v5_defconfig
mips                          ath79_defconfig
powerpc               mpc834x_itxgp_defconfig
ia64                             alldefconfig
arc                        nsimosci_defconfig
ia64                             allmodconfig
ia64                                defconfig
ia64                             allyesconfig
m68k                             allmodconfig
m68k                             allyesconfig
nios2                               defconfig
nds32                             allnoconfig
arc                              allyesconfig
nds32                               defconfig
csky                                defconfig
alpha                               defconfig
alpha                            allyesconfig
nios2                            allyesconfig
h8300                            allyesconfig
arc                                 defconfig
xtensa                           allyesconfig
s390                             allyesconfig
s390                                defconfig
s390                             allmodconfig
parisc                           allyesconfig
sparc                            allyesconfig
i386                              debian-10.3
i386                             allyesconfig
mips                             allyesconfig
mips                             allmodconfig
powerpc                          allyesconfig
powerpc                           allnoconfig
x86_64               randconfig-a013-20211021
x86_64               randconfig-a015-20211021
x86_64               randconfig-a011-20211021
x86_64               randconfig-a014-20211021
x86_64               randconfig-a016-20211021
x86_64               randconfig-a012-20211021
i386                 randconfig-a012-20211021
i386                 randconfig-a013-20211021
i386                 randconfig-a011-20211021
i386                 randconfig-a016-20211021
i386                 randconfig-a015-20211021
i386                 randconfig-a014-20211021
riscv                    nommu_k210_defconfig
riscv                    nommu_virt_defconfig
riscv                             allnoconfig
riscv                               defconfig
riscv                          rv32_defconfig
riscv                            allmodconfig
riscv                            allyesconfig
x86_64                    rhel-8.3-kselftests
um                           x86_64_defconfig
um                             i386_defconfig
x86_64                              defconfig
x86_64                               rhel-8.3
x86_64                                  kexec

clang tested configs:
powerpc              randconfig-c003-20211021
riscv                randconfig-c006-20211021
arm                  randconfig-c002-20211021
x86_64               randconfig-c007-20211021
mips                 randconfig-c004-20211021
s390                 randconfig-c005-20211021
i386                 randconfig-c001-20211021
x86_64               randconfig-a002-20211021
x86_64               randconfig-a004-20211021
x86_64               randconfig-a005-20211021
x86_64               randconfig-a001-20211021
x86_64               randconfig-a006-20211021
x86_64               randconfig-a003-20211021
i386                 randconfig-a004-20211021
i386                 randconfig-a003-20211021
i386                 randconfig-a002-20211021
i386                 randconfig-a005-20211021
i386                 randconfig-a001-20211021
i386                 randconfig-a006-20211021
hexagon              randconfig-r045-20211021
hexagon              randconfig-r041-20211021

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

^ permalink raw reply	[relevance 4%]

* [PATCH v2][next] virt: acrn: Prefer array_size and struct_size over open coded arithmetic
@ 2021-10-23 10:15 11% Len Baker
  2021-10-25 22:22  7% ` Gustavo A. R. Silva
  0 siblings, 1 reply; 200+ results
From: Len Baker @ 2021-10-23 10:15 UTC (permalink / raw)
  To: Gustavo A. R. Silva, Fei Li
  Cc: Len Baker, Kees Cook, linux-hardening, linux-kernel

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 array_size() helper to do the arithmetic instead of the
argument "count * size" in the vzalloc() function.

Also, take the opportunity to add a flexible array member of struct
vm_memory_region_op to the vm_memory_region_batch structure. And then,
change the code accordingly and use the struct_size() helper to do the
arithmetic instead of the argument "size + size * count" in the kzalloc
function.

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

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

Acked-by: Fei Li <fei1.li@intel.com>
Signed-off-by: Len Baker <len.baker@gmx.com>
---
Changelog v1 -> v2
- Fix the typo "syze -> size" in the subject (Kees Cook).
- Reduce the number of tabs in the definition of the structure
  vm_memory_region_batch (Fei Li).
- Add the "Acked-by" tag.

Hi Gustavo,

If there are no more comments in this version, can you take this patch?

Thanks,
Len

 drivers/virt/acrn/acrn_drv.h | 10 ++++++----
 drivers/virt/acrn/mm.c       |  9 ++++-----
 2 files changed, 10 insertions(+), 9 deletions(-)

diff --git a/drivers/virt/acrn/acrn_drv.h b/drivers/virt/acrn/acrn_drv.h
index 1be54efa666c..5663c17ad37c 100644
--- a/drivers/virt/acrn/acrn_drv.h
+++ b/drivers/virt/acrn/acrn_drv.h
@@ -48,6 +48,7 @@ struct vm_memory_region_op {
  * @reserved:		Reserved.
  * @regions_num:	The number of vm_memory_region_op.
  * @regions_gpa:	Physical address of a vm_memory_region_op array.
+ * @regions_op:		Flexible array of vm_memory_region_op.
  *
  * HC_VM_SET_MEMORY_REGIONS uses this structure to manage EPT mappings of
  * multiple memory regions of a User VM. A &struct vm_memory_region_batch
@@ -55,10 +56,11 @@ struct vm_memory_region_op {
  * ACRN Hypervisor.
  */
 struct vm_memory_region_batch {
-	u16	vmid;
-	u16	reserved[3];
-	u32	regions_num;
-	u64	regions_gpa;
+	u16			   vmid;
+	u16			   reserved[3];
+	u32			   regions_num;
+	u64			   regions_gpa;
+	struct vm_memory_region_op regions_op[];
 };

 /**
diff --git a/drivers/virt/acrn/mm.c b/drivers/virt/acrn/mm.c
index c4f2e15c8a2b..a881742cd48d 100644
--- a/drivers/virt/acrn/mm.c
+++ b/drivers/virt/acrn/mm.c
@@ -168,7 +168,7 @@ int acrn_vm_ram_map(struct acrn_vm *vm, struct acrn_vm_memmap *memmap)

 	/* Get the page number of the map region */
 	nr_pages = memmap->len >> PAGE_SHIFT;
-	pages = vzalloc(nr_pages * sizeof(struct page *));
+	pages = vzalloc(array_size(nr_pages, sizeof(struct page *)));
 	if (!pages)
 		return -ENOMEM;

@@ -220,16 +220,15 @@ int acrn_vm_ram_map(struct acrn_vm *vm, struct acrn_vm_memmap *memmap)
 	}

 	/* Prepare the vm_memory_region_batch */
-	regions_info = kzalloc(sizeof(*regions_info) +
-			       sizeof(*vm_region) * nr_regions,
-			       GFP_KERNEL);
+	regions_info = kzalloc(struct_size(regions_info, regions_op,
+					   nr_regions), GFP_KERNEL);
 	if (!regions_info) {
 		ret = -ENOMEM;
 		goto unmap_kernel_map;
 	}

 	/* Fill each vm_memory_region_op */
-	vm_region = (struct vm_memory_region_op *)(regions_info + 1);
+	vm_region = regions_info->regions_op;
 	regions_info->vmid = vm->vmid;
 	regions_info->regions_num = nr_regions;
 	regions_info->regions_gpa = virt_to_phys(vm_region);
--
2.25.1


^ permalink raw reply related	[relevance 11%]

* Re: [PATCH] sysctl: Avoid open coded arithmetic in memory allocator functions
  2021-10-16 16:18  7% ` Matthew Wilcox
@ 2021-10-23 10:31  7%   ` Len Baker
  0 siblings, 0 replies; 200+ results
From: Len Baker @ 2021-10-23 10:31 UTC (permalink / raw)
  To: Matthew Wilcox
  Cc: Len Baker, Luis Chamberlain, Kees Cook, Iurii Zaikin,
	Gustavo A. R. Silva, linux-hardening, linux-fsdevel,
	linux-kernel

Hi Matthew,

On Sat, Oct 16, 2021 at 05:18:24PM +0100, Matthew Wilcox wrote:
> On Sat, Oct 16, 2021 at 05:28:28PM +0200, Len Baker wrote:
> > +static size_t new_dir_size(size_t namelen)
> > +{
> > +	size_t bytes;
> > +
> > +	if (check_add_overflow(sizeof(struct ctl_dir), sizeof(struct ctl_node),
> > +			       &bytes))
> > +		return SIZE_MAX;
> > +	if (check_add_overflow(bytes, array_size(sizeof(struct ctl_table), 2),
> > +			       &bytes))
> > +		return SIZE_MAX;
> > +	if (check_add_overflow(bytes, namelen, &bytes))
> > +		return SIZE_MAX;
> > +	if (check_add_overflow(bytes, (size_t)1, &bytes))
> > +		return SIZE_MAX;
> > +
> > +	return bytes;
> > +}
>
> I think this is overkill.  All these structs are small and namelen is
> supplied by the kernel, not specified by userspace.  It really complicates
> the code, and I don't see the advantage.
>
Ok, understood. I will send a v2 without this function.

Thanks for the review,
Len

^ permalink raw reply	[relevance 7%]

* [PATCH v2][next] sysctl: Avoid open coded arithmetic in memory allocator functions
@ 2021-10-23 10:54  9% Len Baker
  2021-10-23 14:27  7% ` Matthew Wilcox
  0 siblings, 1 reply; 200+ results
From: Len Baker @ 2021-10-23 10:54 UTC (permalink / raw)
  To: Luis Chamberlain, Kees Cook, Iurii Zaikin
  Cc: Len Baker, Gustavo A. R. Silva, Matthew Wilcox, linux-hardening,
	linux-fsdevel, linux-kernel

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, add some functions to calculate the size used in memory allocator
function arguments, saturating to SIZE_MAX on overflow. Here it is not
possible to use the struct_size() helper since the memory layouts used
when the memory is allocated are not simple ones.

However, for the kcalloc() case, don't define a new function and check
for overflow before its call.

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

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

Signed-off-by: Len Baker <len.baker@gmx.com>
---
Changelog v1 -> v2
- Remove the new_dir_size function and its use (Matthew Wilcox).

The previous version can be found here [1]

[1] https://lore.kernel.org/linux-hardening/20211016152829.9836-1-len.baker@gmx.com/

 fs/proc/proc_sysctl.c | 84 +++++++++++++++++++++++++++++++++++++------
 1 file changed, 73 insertions(+), 11 deletions(-)

diff --git a/fs/proc/proc_sysctl.c b/fs/proc/proc_sysctl.c
index 5d66faecd4ef..0b3b3f11ca11 100644
--- a/fs/proc/proc_sysctl.c
+++ b/fs/proc/proc_sysctl.c
@@ -1146,6 +1146,26 @@ static int sysctl_check_table(const char *path, struct ctl_table *table)
 	return err;
 }

+static size_t new_links_size(size_t nr_entries, size_t name_bytes)
+{
+	size_t bytes;
+
+	if (check_add_overflow(nr_entries, (size_t)1, &bytes))
+		return SIZE_MAX;
+	if (check_add_overflow(sizeof(struct ctl_table_header),
+			       array_size(sizeof(struct ctl_node), nr_entries),
+			       &bytes))
+		return SIZE_MAX;
+	if (check_add_overflow(bytes, array_size(sizeof(struct ctl_table),
+						 nr_entries + 1),
+			       &bytes))
+		return SIZE_MAX;
+	if (check_add_overflow(bytes, name_bytes, &bytes))
+		return SIZE_MAX;
+
+	return bytes;
+}
+
 static struct ctl_table_header *new_links(struct ctl_dir *dir, struct ctl_table *table,
 	struct ctl_table_root *link_root)
 {
@@ -1162,11 +1182,15 @@ static struct ctl_table_header *new_links(struct ctl_dir *dir, struct ctl_table
 		name_bytes += strlen(entry->procname) + 1;
 	}

-	links = kzalloc(sizeof(struct ctl_table_header) +
-			sizeof(struct ctl_node)*nr_entries +
-			sizeof(struct ctl_table)*(nr_entries + 1) +
-			name_bytes,
-			GFP_KERNEL);
+	/*
+	 * Allocation layout in bytes:
+	 *
+	 * sizeof(struct ctl_table_header) +
+	 * sizeof(struct ctl_node) * nr_entries +
+	 * sizeof(struct ctl_table) * (nr_entries + 1) +
+	 * name_bytes
+	 */
+	links = kzalloc(new_links_size(nr_entries, name_bytes), GFP_KERNEL);

 	if (!links)
 		return NULL;
@@ -1258,6 +1282,18 @@ static int insert_links(struct ctl_table_header *head)
 	return err;
 }

+static inline size_t sysctl_table_size(int nr_entries)
+{
+	size_t bytes;
+
+	if (check_add_overflow(sizeof(struct ctl_table_header),
+			       array_size(sizeof(struct ctl_node), nr_entries),
+			       &bytes))
+		return SIZE_MAX;
+
+	return bytes;
+}
+
 /**
  * __register_sysctl_table - register a leaf sysctl table
  * @set: Sysctl tree to register on
@@ -1315,8 +1351,13 @@ struct ctl_table_header *__register_sysctl_table(
 	for (entry = table; entry->procname; entry++)
 		nr_entries++;

-	header = kzalloc(sizeof(struct ctl_table_header) +
-			 sizeof(struct ctl_node)*nr_entries, GFP_KERNEL);
+	/*
+	 * Allocation layout in bytes:
+	 *
+	 * sizeof(struct ctl_table_header) +
+	 * sizeof(struct ctl_node) * nr_entries
+	 */
+	header = kzalloc(sysctl_table_size(nr_entries), GFP_KERNEL);
 	if (!header)
 		return NULL;

@@ -1437,8 +1478,11 @@ static int register_leaf_sysctl_tables(const char *path, char *pos,
 	/* If there are mixed files and directories we need a new table */
 	if (nr_dirs && nr_files) {
 		struct ctl_table *new;
-		files = kcalloc(nr_files + 1, sizeof(struct ctl_table),
-				GFP_KERNEL);
+		int n;
+
+		if (unlikely(check_add_overflow(nr_files, 1, &n)))
+			goto out;
+		files = kcalloc(n, sizeof(struct ctl_table), GFP_KERNEL);
 		if (!files)
 			goto out;

@@ -1490,6 +1534,19 @@ static int register_leaf_sysctl_tables(const char *path, char *pos,
 	return err;
 }

+static inline size_t sysctl_paths_size(int nr_subheaders)
+{
+	size_t bytes;
+
+	if (check_add_overflow(sizeof(struct ctl_table_header),
+			       array_size(sizeof(struct ctl_table_header *),
+					  nr_subheaders),
+			       &bytes))
+		return SIZE_MAX;
+
+	return bytes;
+}
+
 /**
  * __register_sysctl_paths - register a sysctl table hierarchy
  * @set: Sysctl tree to register on
@@ -1532,8 +1589,13 @@ struct ctl_table_header *__register_sysctl_paths(
 		if (header)
 			header->ctl_table_arg = ctl_table_arg;
 	} else {
-		header = kzalloc(sizeof(*header) +
-				 sizeof(*subheaders)*nr_subheaders, GFP_KERNEL);
+		/*
+		 * Allocation layout in bytes:
+		 *
+		 * sizeof(struct ctl_table_header) +
+		 * sizeof(struct ctl_table_header *) * nr_subheaders
+		 */
+		header = kzalloc(sysctl_paths_size(nr_subheaders), GFP_KERNEL);
 		if (!header)
 			goto out;

--
2.25.1


^ permalink raw reply related	[relevance 9%]

* Re: [PATCH] nvmet: prefer struct_size over open coded arithmetic
  2021-10-17 17:23 11% ` Gustavo A. R. Silva
@ 2021-10-23 11:28  7%   ` Len Baker
  2021-10-23 20:14  7%     ` Gustavo A. R. Silva
  0 siblings, 1 reply; 200+ results
From: Len Baker @ 2021-10-23 11:28 UTC (permalink / raw)
  To: Gustavo A. R. Silva
  Cc: Len Baker, Christoph Hellwig, Sagi Grimberg, Chaitanya Kulkarni,
	Kees Cook, linux-hardening, linux-nvme, linux-kernel

Hi Gustavo,

first of all, thanks for this review (and all others reviews as
well) ;)

More below.

On Sun, Oct 17, 2021 at 12:23:57PM -0500, Gustavo A. R. Silva wrote:
> On Sun, Oct 17, 2021 at 11:56:50AM +0200, Len Baker 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.
> >
> > In this case this is not actually dynamic size: all the operands
> > involved in the calculation are constant values. However it is better to
> > refactor this anyway, just to keep the open-coded math idiom out of
> > code.
> >
> > So, use the struct_size() helper to do the arithmetic instead of the
> > argument "size + count * size" in the kmalloc() function.
> >
> > This code was detected with the help of Coccinelle and audited and fixed
> > manually.
> >
> > [1] https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments
> >
> > Signed-off-by: Len Baker <len.baker@gmx.com>
> > ---
> > Hi,
> >
> > this patch is built against the linux-next tree (tag next-20211015).
>
> You don't need to include these lines in every patch. Just add [next]
> to the subject line, like this:
>
> 	[PATCH][next] nvmet: prefer struct_size over open coded arithmetic
>
> It should be clear enough for people that you are talking about
> linux-next. And in case someone asks, then you proceed to clarify. :)

Ok, understood. Thanks for the advise.

> > Regards,
> > Len
> >
> >  drivers/nvme/target/admin-cmd.c | 4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/nvme/target/admin-cmd.c b/drivers/nvme/target/admin-cmd.c
> > index aa6d84d8848e..4aa71625c86a 100644
> > --- a/drivers/nvme/target/admin-cmd.c
> > +++ b/drivers/nvme/target/admin-cmd.c
> > @@ -278,8 +278,8 @@ static void nvmet_execute_get_log_page_ana(struct nvmet_req *req)
> >  	u16 status;
> >
> >  	status = NVME_SC_INTERNAL;
> > -	desc = kmalloc(sizeof(struct nvme_ana_group_desc) +
> > -			NVMET_MAX_NAMESPACES * sizeof(__le32), GFP_KERNEL);
> > +	desc = kmalloc(struct_size(desc, nsids, NVMET_MAX_NAMESPACES),
> > +		       GFP_KERNEL);
>
> It might be worth exploring if the flexible array is actually needed,
> once the allocation is always determined by NVMET_MAX_NAMESPACES. Maybe
> it can be changed to the following and remove the dynamic allocation
> entirely?
>
> 	struct nvme_ana_group_desc {
> 		__le32  grpid;
> 		__le32  nnsids;
> 		__le64  chgcnt;
> 		__u8    state;
> 		__u8    rsvd17[15];
> 		__le32  nsids[NVMET_MAX_NAMESPACES];
> 	};

What's the size limit for dynamic allocation vs stack allocation? I think
that NVMET_MAX_NAMESPACES * sizeof(__le32) = 1024 * 4 = 4096 bytes is big
enough (but I don't know if it is the correct way to think).

However, due to the following comment in the NVMET_MAX_NAMESPACES macro
definition:

/*
 * Nice round number that makes a list of nsids fit into a page.
 * Should become tunable at some point in the future.
 */
#define NVMET_MAX_NAMESPACES	1024

I think that it is better to use the dynamic allocation since in the
future the struct size could be dynamic.

>
> If the above is possible then (at least) these lines should be audited:
>
> drivers/nvme/host/multipath.c-551-              if (WARN_ON_ONCE(offset > ctrl->ana_log_size - sizeof(*desc)))
>
> drivers/nvme/host/multipath.c-566-              offset += sizeof(*desc);
> drivers/nvme/host/multipath.c-567-              if (WARN_ON_ONCE(offset > ctrl->ana_log_size - nsid_buf_size))
>
> If the flexible array remains, then this line could use
> flex_array_size():
>
> drivers/nvme/host/multipath.c-555-              nsid_buf_size = nr_nsids * sizeof(__le32);

Ok. I didn't see it.
>
> struct_size() could be used here, as well:
>
> drivers/nvme/host/multipath.c-847-      ana_log_size = sizeof(struct nvme_ana_rsp_hdr) +
> drivers/nvme/host/multipath.c:848:              ctrl->nanagrpid * sizeof(struct nvme_ana_group_desc) +
> drivers/nvme/host/multipath.c-849-              ctrl->max_namespaces * sizeof(__le32);

Sorry, but here it's not possible to use struct_size() due to

sizeof(struct nvme_ana_group_desc) + ctrl->max_namespaces * sizeof(__le32)

it's not one single element. The "sizeof(struct nvme_ana_group_desc)" is
multiplied by "ctrl->nanagrpid" and then added "ctrl->max_namespaces * sizeof(__le32)".

> drivers/nvme/target/admin-cmd.c:267:    return sizeof(struct nvme_ana_group_desc) + count * sizeof(__le32);

Ok. I forgot it. Apologies.

Again, thanks for your time and advises,
Len

^ permalink raw reply	[relevance 7%]

* Re: [PATCH] drm/i915: Prefer struct_size over open coded arithmetic
  2021-10-18 10:00  7%         ` Jani Nikula
@ 2021-10-23 11:50  7%           ` Len Baker
  0 siblings, 0 replies; 200+ results
From: Len Baker @ 2021-10-23 11:50 UTC (permalink / raw)
  To: Jani Nikula
  Cc: Len Baker, Daniel Vetter, Joonas Lahtinen, Rodrigo Vivi,
	David Airlie, Kees Cook, Gustavo A. R. Silva, intel-gfx,
	dri-devel, linux-hardening, linux-kernel

Hi Jani,

On Mon, Oct 18, 2021 at 01:00:01PM +0300, Jani Nikula wrote:
> On Sat, 16 Oct 2021, Len Baker <len.baker@gmx.com> wrote:
> > Hi Daniel and Jani,
> >
> > On Wed, Oct 13, 2021 at 01:51:30PM +0200, Daniel Vetter wrote:
> >> On Wed, Oct 13, 2021 at 02:24:05PM +0300, Jani Nikula wrote:
> >> > On Mon, 11 Oct 2021, Len Baker <len.baker@gmx.com> wrote:
> >> > > Hi,
> >> > >
> >> > > On Sun, Oct 03, 2021 at 12:42:58PM +0200, Len Baker 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.
> >> > >>
> >> > >> In this case these are not actually dynamic sizes: all the operands
> >> > >> involved in the calculation are constant values. However it is better to
> >> > >> refactor them anyway, just to keep the open-coded math idiom out of
> >> > >> code.
> >> > >>
> >> > >> So, add at the end of the struct i915_syncmap a union with two flexible
> >> > >> array members (these arrays share the same memory layout). This is
> >> > >> possible using the new DECLARE_FLEX_ARRAY macro. And then, use the
> >> > >> struct_size() helper to do the arithmetic instead of the argument
> >> > >> "size + count * size" in the kmalloc and kzalloc() functions.
> >> > >>
> >> > >> Also, take the opportunity to refactor the __sync_seqno and __sync_child
> >> > >> making them more readable.
> >> > >>
> >> > >> This code was detected with the help of Coccinelle and audited and fixed
> >> > >> manually.
> >> > >>
> >> > >> [1] https://www.kernel.org/doc/html/latest/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments
> >> > >>
> >> > >> Signed-off-by: Len Baker <len.baker@gmx.com>
> >> > >> ---
> >> > >>  drivers/gpu/drm/i915/i915_syncmap.c | 12 ++++++++----
> >> > >>  1 file changed, 8 insertions(+), 4 deletions(-)
> >> > >
> >> > > I received a mail telling that this patch doesn't build:
> >> > >
> >> > > == Series Details ==
> >> > >
> >> > > Series: drm/i915: Prefer struct_size over open coded arithmetic
> >> > > URL   : https://patchwork.freedesktop.org/series/95408/
> >> > > State : failure
> >> > >
> >> > > But it builds without error against linux-next (tag next-20211001). Against
> >> > > which tree and branch do I need to build?
> >> >
> >> > drm-tip [1]. It's a sort of linux-next for graphics. I think there are
> >> > still some branches that don't feed to linux-next.
> >>
> >> Yeah we need to get gt-next in linux-next asap. Joonas promised to send
> >> out his patch to make that happen in dim.
> >> -Daniel
> >
> > Is there a possibility that you give an "Acked-by" tag? And then this patch
> > goes to the mainline through the Kees' tree or Gustavo's tree?
>
> If this does not apply to drm-intel-gt-next (or drm-tip), applying it to
> some other branch will just cause unnecessary conflicts later on. It's
> unnecessary extra work. It's not an urgent fix or anything, there is no
> reason to do that. So that's a NAK.

Ok. Understood.

> > Or is it better to wait for drm-tip to update?
>
> drm-tip is up to date, it's just that one of the branches that feed to
> it is (was?) not feeding to linux-next.

Sorry, but I'm missing something here. In linux-next this is the commit
history of include/linux/stddef.h file:

3080ea5553cc stddef: Introduce DECLARE_FLEX_ARRAY() helper
50d7bd38c3aa stddef: Introduce struct_group() helper macro
e7f18c22e6be stddef: Fix kerndoc for sizeof_field() and offsetofend()
4229a470175b stddef.h: Introduce sizeof_field()
...

But in drm-tip this is the commit history:

4229a470175b stddef.h: Introduce sizeof_field()
...

For this patch the DECLARE_FLEX_ARRAY() helper is needed. But the build
fails due to the last tree commits for stddef.h file are not present.
So, if I understand correctly, drm-tip is not up to date with linux-next.

Regards,
Len

>
> If you're contributing to drm, please consider basing your patches on
> top of drm-tip.
>
>
> BR,
> Jani.
>
>
> >
> > Regards,
> > Len
> >
> >>
> >> >
> >> > BR,
> >> > Jani.
> >> >
> >> >
> >> > [1] https://cgit.freedesktop.org/drm/drm-tip
> >> >
> >> >
> >> > >
> >> > > Regards,
> >> > > Len
> >> >
> >> > --
> >> > Jani Nikula, Intel Open Source Graphics Center
> >>
> >> --
> >> Daniel Vetter
> >> Software Engineer, Intel Corporation
> >> http://blog.ffwll.ch
>
> --
> Jani Nikula, Intel Open Source Graphics Center

^ permalink raw reply	[relevance 7%]

* Re: [PATCH v2][next] sysctl: Avoid open coded arithmetic in memory allocator functions
  2021-10-23 10:54  9% [PATCH v2][next] sysctl: Avoid open coded arithmetic in memory allocator functions Len Baker
@ 2021-10-23 14:27  7% ` Matthew Wilcox
  2021-10-24  9:13 11%   ` Len Baker
  0 siblings, 1 reply; 200+ results
From: Matthew Wilcox @ 2021-10-23 14:27 UTC (permalink / raw)
  To: Len Baker
  Cc: Luis Chamberlain, Kees Cook, Iurii Zaikin, Gustavo A. R. Silva,
	linux-hardening, linux-fsdevel, linux-kernel

On Sat, Oct 23, 2021 at 12:54:14PM +0200, Len Baker wrote:
> Changelog v1 -> v2
> - Remove the new_dir_size function and its use (Matthew Wilcox).

Why do you think the other functions are any different?  Please
provide reasoning.

^ permalink raw reply	[relevance 7%]

* [PATCH] coresight: Use devm_bitmap_zalloc when applicable
@ 2021-10-23 19:24  5% Christophe JAILLET
  2021-10-23 19:36  0% ` Joe Perches
  0 siblings, 1 reply; 200+ results
From: Christophe JAILLET @ 2021-10-23 19:24 UTC (permalink / raw)
  To: mathieu.poirier, suzuki.poulose, mike.leach, leo.yan,
	alexander.shishkin, mcoquelin.stm32, alexandre.torgue
  Cc: coresight, linux-arm-kernel, linux-stm32, linux-kernel,
	kernel-janitors, Christophe JAILLET

'drvdata->chs.guaranteed' is a bitmap. So use 'devm_bitmap_kzalloc()' to
simplify code, improve the semantic and avoid some open-coded arithmetic
in allocator arguments.

Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
---
 drivers/hwtracing/coresight/coresight-stm.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/drivers/hwtracing/coresight/coresight-stm.c b/drivers/hwtracing/coresight/coresight-stm.c
index 58062a5a8238..db9eada24275 100644
--- a/drivers/hwtracing/coresight/coresight-stm.c
+++ b/drivers/hwtracing/coresight/coresight-stm.c
@@ -862,7 +862,6 @@ static int stm_probe(struct amba_device *adev, const struct amba_id *id)
 	struct stm_drvdata *drvdata;
 	struct resource *res = &adev->res;
 	struct resource ch_res;
-	size_t bitmap_size;
 	struct coresight_desc desc = { 0 };
 
 	desc.name = coresight_alloc_device_name(&stm_devs, dev);
@@ -904,9 +903,7 @@ static int stm_probe(struct amba_device *adev, const struct amba_id *id)
 	else
 		drvdata->numsp = stm_num_stimulus_port(drvdata);
 
-	bitmap_size = BITS_TO_LONGS(drvdata->numsp) * sizeof(long);
-
-	guaranteed = devm_kzalloc(dev, bitmap_size, GFP_KERNEL);
+	guaranteed = devm_bitmap_zalloc(dev, drvdata->numsp, GFP_KERNEL);
 	if (!guaranteed)
 		return -ENOMEM;
 	drvdata->chs.guaranteed = guaranteed;
-- 
2.30.2


^ permalink raw reply related	[relevance 5%]

* Re: [PATCH] coresight: Use devm_bitmap_zalloc when applicable
  2021-10-23 19:24  5% [PATCH] coresight: Use devm_bitmap_zalloc when applicable Christophe JAILLET
@ 2021-10-23 19:36  0% ` Joe Perches
  2021-10-23 20:09  0%   ` Christophe JAILLET
  0 siblings, 1 reply; 200+ results
From: Joe Perches @ 2021-10-23 19:36 UTC (permalink / raw)
  To: Christophe JAILLET, mathieu.poirier, suzuki.poulose, mike.leach,
	leo.yan, alexander.shishkin, mcoquelin.stm32, alexandre.torgue
  Cc: coresight, linux-arm-kernel, linux-stm32, linux-kernel, kernel-janitors

On Sat, 2021-10-23 at 21:24 +0200, Christophe JAILLET wrote:
> 'drvdata->chs.guaranteed' is a bitmap. So use 'devm_bitmap_kzalloc()' to
> simplify code, improve the semantic and avoid some open-coded arithmetic
> in allocator arguments.
[]
> diff --git a/drivers/hwtracing/coresight/coresight-stm.c b/drivers/hwtracing/coresight/coresight-stm.c
[]
> @@ -862,7 +862,6 @@ static int stm_probe(struct amba_device *adev, const struct amba_id *id)
>  	struct stm_drvdata *drvdata;
>  	struct resource *res = &adev->res;
>  	struct resource ch_res;
> -	size_t bitmap_size;
>  	struct coresight_desc desc = { 0 };
>  
>  	desc.name = coresight_alloc_device_name(&stm_devs, dev);
> @@ -904,9 +903,7 @@ static int stm_probe(struct amba_device *adev, const struct amba_id *id)
>  	else
>  		drvdata->numsp = stm_num_stimulus_port(drvdata);
>  
> -	bitmap_size = BITS_TO_LONGS(drvdata->numsp) * sizeof(long);
> -
> -	guaranteed = devm_kzalloc(dev, bitmap_size, GFP_KERNEL);
> +	guaranteed = devm_bitmap_zalloc(dev, drvdata->numsp, GFP_KERNEL);
>  	if (!guaranteed)
>  		return -ENOMEM;
>  	drvdata->chs.guaranteed = guaranteed;

guaranteed is also pretty useless




^ permalink raw reply	[relevance 0%]

* [PATCH] PCI: xgene-msi: Use bitmap_zalloc() when applicable
@ 2021-10-23 20:02  5% Christophe JAILLET
  0 siblings, 0 replies; 200+ results
From: Christophe JAILLET @ 2021-10-23 20:02 UTC (permalink / raw)
  To: toan, lorenzo.pieralisi, robh, kw, bhelgaas
  Cc: linux-pci, linux-arm-kernel, linux-kernel, kernel-janitors,
	Christophe JAILLET

'xgene_msi->bitmap' is a bitmap. So use 'bitmap_zalloc()' to simplify code,
improve the semantic and avoid some open-coded arithmetic in allocator
arguments.

Also change the corresponding 'kfree()' into 'bitmap_free()' to keep
consistency.

Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
---
 drivers/pci/controller/pci-xgene-msi.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/pci/controller/pci-xgene-msi.c b/drivers/pci/controller/pci-xgene-msi.c
index c50ff279903c..bfa259781b69 100644
--- a/drivers/pci/controller/pci-xgene-msi.c
+++ b/drivers/pci/controller/pci-xgene-msi.c
@@ -269,9 +269,7 @@ static void xgene_free_domains(struct xgene_msi *msi)
 
 static int xgene_msi_init_allocator(struct xgene_msi *xgene_msi)
 {
-	int size = BITS_TO_LONGS(NR_MSI_VEC) * sizeof(long);
-
-	xgene_msi->bitmap = kzalloc(size, GFP_KERNEL);
+	xgene_msi->bitmap = bitmap_zalloc(NR_MSI_VEC, GFP_KERNEL);
 	if (!xgene_msi->bitmap)
 		return -ENOMEM;
 
@@ -360,7 +358,7 @@ static int xgene_msi_remove(struct platform_device *pdev)
 
 	kfree(msi->msi_groups);
 
-	kfree(msi->bitmap);
+	bitmap_free(msi->bitmap);
 	msi->bitmap = NULL;
 
 	xgene_free_domains(msi);
-- 
2.30.2


^ permalink raw reply related	[relevance 5%]

* Re: [PATCH] coresight: Use devm_bitmap_zalloc when applicable
  2021-10-23 19:36  0% ` Joe Perches
@ 2021-10-23 20:09  0%   ` Christophe JAILLET
  0 siblings, 0 replies; 200+ results
From: Christophe JAILLET @ 2021-10-23 20:09 UTC (permalink / raw)
  To: Joe Perches, mathieu.poirier, suzuki.poulose, mike.leach,
	leo.yan, alexander.shishkin, mcoquelin.stm32, alexandre.torgue
  Cc: coresight, linux-arm-kernel, linux-stm32, linux-kernel, kernel-janitors

Le 23/10/2021 à 21:36, Joe Perches a écrit :
> On Sat, 2021-10-23 at 21:24 +0200, Christophe JAILLET wrote:
>> 'drvdata->chs.guaranteed' is a bitmap. So use 'devm_bitmap_kzalloc()' to
>> simplify code, improve the semantic and avoid some open-coded arithmetic
>> in allocator arguments.
> []
>> diff --git a/drivers/hwtracing/coresight/coresight-stm.c b/drivers/hwtracing/coresight/coresight-stm.c
> []
>> @@ -862,7 +862,6 @@ static int stm_probe(struct amba_device *adev, const struct amba_id *id)
>>   	struct stm_drvdata *drvdata;
>>   	struct resource *res = &adev->res;
>>   	struct resource ch_res;
>> -	size_t bitmap_size;
>>   	struct coresight_desc desc = { 0 };
>>   
>>   	desc.name = coresight_alloc_device_name(&stm_devs, dev);
>> @@ -904,9 +903,7 @@ static int stm_probe(struct amba_device *adev, const struct amba_id *id)
>>   	else
>>   		drvdata->numsp = stm_num_stimulus_port(drvdata);
>>   
>> -	bitmap_size = BITS_TO_LONGS(drvdata->numsp) * sizeof(long);
>> -
>> -	guaranteed = devm_kzalloc(dev, bitmap_size, GFP_KERNEL);
>> +	guaranteed = devm_bitmap_zalloc(dev, drvdata->numsp, GFP_KERNEL);
>>   	if (!guaranteed)
>>   		return -ENOMEM;
>>   	drvdata->chs.guaranteed = guaranteed;
> 
> guaranteed is also pretty useless
> 

I agree, but removing it would make the line with devm_bitmap_zalloc() 
86 chars. This would not be consistent with the rest of the file and 
would (IMHO) require splitting.

Let see if the maintainer prefer saving one additional line of code, or 
keeping the logic in place.

CJ


^ permalink raw reply	[relevance 0%]

* Re: [PATCH] nvmet: prefer struct_size over open coded arithmetic
  2021-10-23 11:28  7%   ` Len Baker
@ 2021-10-23 20:14  7%     ` Gustavo A. R. Silva
  0 siblings, 0 replies; 200+ results
From: Gustavo A. R. Silva @ 2021-10-23 20:14 UTC (permalink / raw)
  To: Len Baker
  Cc: Christoph Hellwig, Sagi Grimberg, Chaitanya Kulkarni, Kees Cook,
	linux-hardening, linux-nvme, linux-kernel

On Sat, Oct 23, 2021 at 01:28:38PM +0200, Len Baker wrote:
> Hi Gustavo,
> 
> first of all, thanks for this review (and all others reviews as
> well) ;)

No problem. :)

> I think that it is better to use the dynamic allocation since in the
> future the struct size could be dynamic.

Yep; that seems sensible.

> it's not one single element. The "sizeof(struct nvme_ana_group_desc)" is
> multiplied by "ctrl->nanagrpid" and then added "ctrl->max_namespaces * sizeof(__le32)".

You're right. The whole expression got me a bit confused.

> > drivers/nvme/target/admin-cmd.c:267:    return sizeof(struct nvme_ana_group_desc) + count * sizeof(__le32);
> 
> Ok. I forgot it. Apologies.

No apologies. Thanks for your patches. 

> Again, thanks for your time and advises,

Anytime.

Thanks
--
Gustavo

^ permalink raw reply	[relevance 7%]

* [PATCH] PCI: endpoint: Use 'bitmap_zalloc()' when applicable
@ 2021-10-24  6:51  4% Christophe JAILLET
  0 siblings, 0 replies; 200+ results
From: Christophe JAILLET @ 2021-10-24  6:51 UTC (permalink / raw)
  To: kishon, lorenzo.pieralisi, kw, bhelgaas
  Cc: linux-pci, linux-kernel, kernel-janitors, Christophe JAILLET

'mem->bitmap' is a bitmap. So use 'bitmap_zalloc()' to simplify code,
improve the semantic and avoid some open-coded arithmetic in allocator
arguments.

Also change the corresponding 'kfree()' into 'bitmap_free()' to keep
consistency.

Finally, while at it, axe the useless 'bitmap' variable and use
'mem->bitmap' directly.

Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
---
 drivers/pci/endpoint/pci-epc-mem.c | 12 ++++--------
 1 file changed, 4 insertions(+), 8 deletions(-)

diff --git a/drivers/pci/endpoint/pci-epc-mem.c b/drivers/pci/endpoint/pci-epc-mem.c
index a97b56a6d2db..b15a264f19af 100644
--- a/drivers/pci/endpoint/pci-epc-mem.c
+++ b/drivers/pci/endpoint/pci-epc-mem.c
@@ -49,10 +49,8 @@ int pci_epc_multi_mem_init(struct pci_epc *epc,
 			   unsigned int num_windows)
 {
 	struct pci_epc_mem *mem = NULL;
-	unsigned long *bitmap = NULL;
 	unsigned int page_shift;
 	size_t page_size;
-	int bitmap_size;
 	int pages;
 	int ret;
 	int i;
@@ -72,7 +70,6 @@ int pci_epc_multi_mem_init(struct pci_epc *epc,
 			page_size = PAGE_SIZE;
 		page_shift = ilog2(page_size);
 		pages = windows[i].size >> page_shift;
-		bitmap_size = BITS_TO_LONGS(pages) * sizeof(long);
 
 		mem = kzalloc(sizeof(*mem), GFP_KERNEL);
 		if (!mem) {
@@ -81,8 +78,8 @@ int pci_epc_multi_mem_init(struct pci_epc *epc,
 			goto err_mem;
 		}
 
-		bitmap = kzalloc(bitmap_size, GFP_KERNEL);
-		if (!bitmap) {
+		mem->bitmap = bitmap_zalloc(pages, GFP_KERNEL);
+		if (!mem->bitmap) {
 			ret = -ENOMEM;
 			kfree(mem);
 			i--;
@@ -92,7 +89,6 @@ int pci_epc_multi_mem_init(struct pci_epc *epc,
 		mem->window.phys_base = windows[i].phys_base;
 		mem->window.size = windows[i].size;
 		mem->window.page_size = page_size;
-		mem->bitmap = bitmap;
 		mem->pages = pages;
 		mutex_init(&mem->lock);
 		epc->windows[i] = mem;
@@ -106,7 +102,7 @@ int pci_epc_multi_mem_init(struct pci_epc *epc,
 err_mem:
 	for (; i >= 0; i--) {
 		mem = epc->windows[i];
-		kfree(mem->bitmap);
+		bitmap_free(mem->bitmap);
 		kfree(mem);
 	}
 	kfree(epc->windows);
@@ -145,7 +141,7 @@ void pci_epc_mem_exit(struct pci_epc *epc)
 
 	for (i = 0; i < epc->num_windows; i++) {
 		mem = epc->windows[i];
-		kfree(mem->bitmap);
+		bitmap_free(mem->bitmap);
 		kfree(mem);
 	}
 	kfree(epc->windows);
-- 
2.30.2


^ permalink raw reply related	[relevance 4%]

* Re: [PATCH v2][next] sysctl: Avoid open coded arithmetic in memory allocator functions
  2021-10-23 14:27  7% ` Matthew Wilcox
@ 2021-10-24  9:13 11%   ` Len Baker
  2021-10-24 16:58  7%     ` Len Baker
  2021-10-24 17:55  7%     ` Matthew Wilcox
  0 siblings, 2 replies; 200+ results
From: Len Baker @ 2021-10-24  9:13 UTC (permalink / raw)
  To: Matthew Wilcox, Gustavo A. R. Silva, Kees Cook
  Cc: Len Baker, Luis Chamberlain, Iurii Zaikin, linux-hardening,
	linux-fsdevel, linux-kernel

Hi Matthew,

thanks for looking at this. More below.

On Sat, Oct 23, 2021 at 03:27:17PM +0100, Matthew Wilcox wrote:
> On Sat, Oct 23, 2021 at 12:54:14PM +0200, Len Baker wrote:
> > Changelog v1 -> v2
> > - Remove the new_dir_size function and its use (Matthew Wilcox).
>
> Why do you think the other functions are any different?  Please
> provide reasoning.

I think it is better to be defensive. IMHO I believe that if the
struct_size() helper could be used in this patch, it would be more
easy to ACK. But it is not possible due to the complex memory
layouts. However, there are a lot of code in the kernel that uses the
struct_size() helper for memory allocator arguments where we know
that it don't overflow. For example:

1.- Function imx8mm_tmu_probe()
    Uses: struct_size(tmu, sensors, data->num_sensors)
    Where: tmu has a sizeof(struct imx8mm_tmu) -> Not very big
           data->num_sensors -> A little number

    So, almost certainly it doesn't overflow.

2.- Function igb_alloc_q_vector()
    Uses: struct_size(q_vector, ring, ring_count)
    Where: q_vector has a sizeof(struct igb_q_vector) -> Not very big
           ring_count -> At most two.

    So, almost certainly it doesn't overflow.

3.- And so on...

So, I think that these new functions for the size calculation are
helpers like struct_size (but specific due to the memory layouts).
I don't see any difference here. Also, I think that to be defensive
in memory allocation arguments it is better than a possible heap
overflow ;)

Also, under the KSPP [1][2][3] there is an effort to keep out of
code all the open-coded arithmetic (To avoid unwanted overflows).

[1] https://github.com/KSPP/linux/issues/83
[2] https://github.com/KSPP/linux/issues/92
[3] https://github.com/KSPP/linux/issues/160

Moreover, after writing these reasons and thinking for a while, I
think that the v1 it is correct patch to apply. This is my opinion
but I'm open minded. Any other solution that makes the code more
secure is welcome.

As a last point I would like to know the opinion of Kees and
Gustavo since they are also working on this task.

Kees and Gustavo, what do you think?

Regards,
Len

^ permalink raw reply	[relevance 11%]

* [PATCH 2/2] RDMA/rxe: Use 'bitmap_zalloc()' when applicable
  @ 2021-10-24 16:43  5% ` Christophe JAILLET
  2021-10-24 17:30  0%   ` Christophe JAILLET
  0 siblings, 1 reply; 200+ results
From: Christophe JAILLET @ 2021-10-24 16:43 UTC (permalink / raw)
  To: zyjzyj2000, dledford, jgg
  Cc: linux-rdma, linux-kernel, kernel-janitors, Christophe JAILLET

'index.table' is a bitmap. So use 'bitmap_zalloc()' to simplify code,
improve the semantic and avoid some open-coded arithmetic in allocator
arguments.

Using 'bitmap_zalloc()' also allows the removal of a now useless
'bitmap_zero()'.

Also change the corresponding 'kfree()' into 'bitmap_free()' to keep
consistency.

Finally, while at it, axe the useless 'bitmap' variable and use
'mem->bitmap' directly.

Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
---
 drivers/infiniband/sw/rxe/rxe_pool.c | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

diff --git a/drivers/infiniband/sw/rxe/rxe_pool.c b/drivers/infiniband/sw/rxe/rxe_pool.c
index 271d4ac0e0aa..ed2427369c2c 100644
--- a/drivers/infiniband/sw/rxe/rxe_pool.c
+++ b/drivers/infiniband/sw/rxe/rxe_pool.c
@@ -96,7 +96,6 @@ static inline const char *pool_name(struct rxe_pool *pool)
 static int rxe_pool_init_index(struct rxe_pool *pool, u32 max, u32 min)
 {
 	int err = 0;
-	size_t size;
 
 	if ((max - min + 1) < pool->max_elem) {
 		pr_warn("not enough indices for max_elem\n");
@@ -107,15 +106,12 @@ static int rxe_pool_init_index(struct rxe_pool *pool, u32 max, u32 min)
 	pool->index.max_index = max;
 	pool->index.min_index = min;
 
-	size = BITS_TO_LONGS(max - min + 1) * sizeof(long);
-	pool->index.table = kmalloc(size, GFP_KERNEL);
+	pool->index.table = bitmap_zalloc(max - min + 1, GFP_KERNEL);
 	if (!pool->index.table) {
 		err = -ENOMEM;
 		goto out;
 	}
 
-	bitmap_zero(pool->index.table, max - min + 1);
-
 out:
 	return err;
 }
@@ -167,7 +163,7 @@ void rxe_pool_cleanup(struct rxe_pool *pool)
 		pr_warn("%s pool destroyed with unfree'd elem\n",
 			pool_name(pool));
 
-	kfree(pool->index.table);
+	bitmap_free(pool->index.table);
 }
 
 static u32 alloc_index(struct rxe_pool *pool)
-- 
2.30.2


^ permalink raw reply related	[relevance 5%]

* Re: [PATCH v2][next] sysctl: Avoid open coded arithmetic in memory allocator functions
  2021-10-24  9:13 11%   ` Len Baker
@ 2021-10-24 16:58  7%     ` Len Baker
  2021-10-24 17:55  7%     ` Matthew Wilcox
  1 sibling, 0 replies; 200+ results
From: Len Baker @ 2021-10-24 16:58 UTC (permalink / raw)
  To: Matthew Wilcox, Gustavo A. R. Silva, Kees Cook
  Cc: Len Baker, Luis Chamberlain, Iurii Zaikin, linux-hardening,
	linux-fsdevel, linux-kernel

Hi all, some additions below :)

On Sun, Oct 24, 2021 at 11:13:28AM +0200, Len Baker wrote:
> Hi Matthew,
>
> thanks for looking at this. More below.
>
> On Sat, Oct 23, 2021 at 03:27:17PM +0100, Matthew Wilcox wrote:
> > On Sat, Oct 23, 2021 at 12:54:14PM +0200, Len Baker wrote:
> > > Changelog v1 -> v2
> > > - Remove the new_dir_size function and its use (Matthew Wilcox).
> >
> > Why do you think the other functions are any different?  Please
> > provide reasoning.
>
> I think it is better to be defensive. IMHO I believe that if the
> struct_size() helper could be used in this patch, it would be more
> easy to ACK. But it is not possible due to the complex memory
> layouts. However, there are a lot of code in the kernel that uses the
> struct_size() helper for memory allocator arguments where we know
> that it don't overflow. For example:
>
> 1.- Function imx8mm_tmu_probe()
>     Uses: struct_size(tmu, sensors, data->num_sensors)
>     Where: tmu has a sizeof(struct imx8mm_tmu) -> Not very big
             sensors is an array of struct tmu_sensor and the
	     sizeof(struct tmu_sensor) is small enough
>            data->num_sensors -> A little number
>
>     So, almost certainly it doesn't overflow.
>
> 2.- Function igb_alloc_q_vector()
>     Uses: struct_size(q_vector, ring, ring_count)
>     Where: q_vector has a sizeof(struct igb_q_vector) -> Not very big
             ring is an array of struct igb_ring and the
	     sizeof(struct igb_ring) is not small but also no very big.
>            ring_count -> At most two.
>
>     So, almost certainly it doesn't overflow.
>
> 3.- And so on...
>
> So, I think that these new functions for the size calculation are
> helpers like struct_size (but specific due to the memory layouts).
> I don't see any difference here. Also, I think that to be defensive
> in memory allocation arguments it is better than a possible heap
> overflow ;)
>
> Also, under the KSPP [1][2][3] there is an effort to keep out of
> code all the open-coded arithmetic (To avoid unwanted overflows).
>
> [1] https://github.com/KSPP/linux/issues/83
> [2] https://github.com/KSPP/linux/issues/92
> [3] https://github.com/KSPP/linux/issues/160
>
> Moreover, after writing these reasons and thinking for a while, I
> think that the v1 it is correct patch to apply. This is my opinion
> but I'm open minded. Any other solution that makes the code more
> secure is welcome.
>
> As a last point I would like to know the opinion of Kees and
> Gustavo since they are also working on this task.
>
> Kees and Gustavo, what do you think?
>
> Regards,
> Len

^ permalink raw reply	[relevance 7%]

* [PATCH] nvmet: prefer flex_array_size and struct_size over open coded arithmetic
@ 2021-10-24 17:29 12% Len Baker
  2021-10-25  7:18  7% ` Sagi Grimberg
  2021-10-25 21:05  7% ` Gustavo A. R. Silva
  0 siblings, 2 replies; 200+ results
From: Len Baker @ 2021-10-24 17:29 UTC (permalink / raw)
  To: Keith Busch, Jens Axboe, Christoph Hellwig, Sagi Grimberg,
	Chaitanya Kulkarni
  Cc: Len Baker, Kees Cook, Gustavo A. R. Silva, linux-hardening,
	linux-nvme, linux-kernel

In an effort to avoid open-coded arithmetic in the kernel [1], use the
flex_array_size() and struct_size() helpers instead of an open-coded
calculation.

[1] https://github.com/KSPP/linux/issues/160

Signed-off-by: Len Baker <len.baker@gmx.com>
---
 drivers/nvme/host/multipath.c   | 2 +-
 drivers/nvme/target/admin-cmd.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/nvme/host/multipath.c b/drivers/nvme/host/multipath.c
index 954e84df6eb7..7f2071f2460c 100644
--- a/drivers/nvme/host/multipath.c
+++ b/drivers/nvme/host/multipath.c
@@ -562,7 +562,7 @@ static int nvme_parse_ana_log(struct nvme_ctrl *ctrl, void *data,
 			return -EINVAL;

 		nr_nsids = le32_to_cpu(desc->nnsids);
-		nsid_buf_size = nr_nsids * sizeof(__le32);
+		nsid_buf_size = flex_array_size(desc, nsids, nr_nsids);

 		if (WARN_ON_ONCE(desc->grpid == 0))
 			return -EINVAL;
diff --git a/drivers/nvme/target/admin-cmd.c b/drivers/nvme/target/admin-cmd.c
index 403de678fd06..6fb24746de06 100644
--- a/drivers/nvme/target/admin-cmd.c
+++ b/drivers/nvme/target/admin-cmd.c
@@ -264,7 +264,7 @@ static u32 nvmet_format_ana_group(struct nvmet_req *req, u32 grpid,
 	desc->chgcnt = cpu_to_le64(nvmet_ana_chgcnt);
 	desc->state = req->port->ana_state[grpid];
 	memset(desc->rsvd17, 0, sizeof(desc->rsvd17));
-	return sizeof(struct nvme_ana_group_desc) + count * sizeof(__le32);
+	return struct_size(desc, nsids, count);
 }

 static void nvmet_execute_get_log_page_ana(struct nvmet_req *req)
--
2.25.1


^ permalink raw reply related	[relevance 12%]

* Re: [PATCH 2/2] RDMA/rxe: Use 'bitmap_zalloc()' when applicable
  2021-10-24 16:43  5% ` [PATCH 2/2] RDMA/rxe: Use 'bitmap_zalloc()' when applicable Christophe JAILLET
@ 2021-10-24 17:30  0%   ` Christophe JAILLET
  0 siblings, 0 replies; 200+ results
From: Christophe JAILLET @ 2021-10-24 17:30 UTC (permalink / raw)
  To: zyjzyj2000, dledford, jgg; +Cc: linux-rdma, linux-kernel, kernel-janitors

Le 24/10/2021 à 18:43, Christophe JAILLET a écrit :
> 'index.table' is a bitmap. So use 'bitmap_zalloc()' to simplify code,
> improve the semantic and avoid some open-coded arithmetic in allocator
> arguments.
> 
> Using 'bitmap_zalloc()' also allows the removal of a now useless
> 'bitmap_zero()'.
> 
> Also change the corresponding 'kfree()' into 'bitmap_free()' to keep
> consistency.
> 
> Finally, while at it, axe the useless 'bitmap' variable and use
> 'mem->bitmap' directly.

This last sentence should not be there (cut'n'paste error)
It should be removed when the patch is applied, or I can resend if needed.

CJ

> 
> Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
> ---
>   drivers/infiniband/sw/rxe/rxe_pool.c | 8 ++------
>   1 file changed, 2 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/infiniband/sw/rxe/rxe_pool.c b/drivers/infiniband/sw/rxe/rxe_pool.c
> index 271d4ac0e0aa..ed2427369c2c 100644
> --- a/drivers/infiniband/sw/rxe/rxe_pool.c
> +++ b/drivers/infiniband/sw/rxe/rxe_pool.c
> @@ -96,7 +96,6 @@ static inline const char *pool_name(struct rxe_pool *pool)
>   static int rxe_pool_init_index(struct rxe_pool *pool, u32 max, u32 min)
>   {
>   	int err = 0;
> -	size_t size;
>   
>   	if ((max - min + 1) < pool->max_elem) {
>   		pr_warn("not enough indices for max_elem\n");
> @@ -107,15 +106,12 @@ static int rxe_pool_init_index(struct rxe_pool *pool, u32 max, u32 min)
>   	pool->index.max_index = max;
>   	pool->index.min_index = min;
>   
> -	size = BITS_TO_LONGS(max - min + 1) * sizeof(long);
> -	pool->index.table = kmalloc(size, GFP_KERNEL);
> +	pool->index.table = bitmap_zalloc(max - min + 1, GFP_KERNEL);
>   	if (!pool->index.table) {
>   		err = -ENOMEM;
>   		goto out;
>   	}
>   
> -	bitmap_zero(pool->index.table, max - min + 1);
> -
>   out:
>   	return err;
>   }
> @@ -167,7 +163,7 @@ void rxe_pool_cleanup(struct rxe_pool *pool)
>   		pr_warn("%s pool destroyed with unfree'd elem\n",
>   			pool_name(pool));
>   
> -	kfree(pool->index.table);
> +	bitmap_free(pool->index.table);
>   }
>   
>   static u32 alloc_index(struct rxe_pool *pool)
> 


^ permalink raw reply	[relevance 0%]

* [PATCH] dma-mapping: Use 'bitmap_zalloc()' when applicable
@ 2021-10-24 17:40  5% Christophe JAILLET
  2021-10-24 17:54  0% ` Joe Perches
  0 siblings, 1 reply; 200+ results
From: Christophe JAILLET @ 2021-10-24 17:40 UTC (permalink / raw)
  To: hch, m.szyprowski, robin.murphy
  Cc: iommu, linux-kernel, kernel-janitors, Christophe JAILLET

'dma_mem->bitmap' is a bitmap. So use 'bitmap_zalloc()' to simplify code,
improve the semantic and avoid some open-coded arithmetic in allocator
arguments.

Also change the corresponding 'kfree()' into 'bitmap_free()' to keep
consistency.

Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
---
 kernel/dma/coherent.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/kernel/dma/coherent.c b/kernel/dma/coherent.c
index 25fc85a7aebe..375fb3c9538d 100644
--- a/kernel/dma/coherent.c
+++ b/kernel/dma/coherent.c
@@ -40,7 +40,6 @@ static struct dma_coherent_mem *dma_init_coherent_memory(phys_addr_t phys_addr,
 {
 	struct dma_coherent_mem *dma_mem;
 	int pages = size >> PAGE_SHIFT;
-	int bitmap_size = BITS_TO_LONGS(pages) * sizeof(long);
 	void *mem_base;
 
 	if (!size)
@@ -53,7 +52,7 @@ static struct dma_coherent_mem *dma_init_coherent_memory(phys_addr_t phys_addr,
 	dma_mem = kzalloc(sizeof(struct dma_coherent_mem), GFP_KERNEL);
 	if (!dma_mem)
 		goto out_unmap_membase;
-	dma_mem->bitmap = kzalloc(bitmap_size, GFP_KERNEL);
+	dma_mem->bitmap = bitmap_zalloc(pages, GFP_KERNEL);
 	if (!dma_mem->bitmap)
 		goto out_free_dma_mem;
 
@@ -81,7 +80,7 @@ static void dma_release_coherent_memory(struct dma_coherent_mem *mem)
 		return;
 
 	memunmap(mem->virt_base);
-	kfree(mem->bitmap);
+	bitmap_free(mem->bitmap);
 	kfree(mem);
 }
 
-- 
2.30.2


^ permalink raw reply related	[relevance 5%]

* Re: [PATCH] dma-mapping: Use 'bitmap_zalloc()' when applicable
  2021-10-24 17:40  5% [PATCH] dma-mapping: Use 'bitmap_zalloc()' when applicable Christophe JAILLET
@ 2021-10-24 17:54  0% ` Joe Perches
  2021-10-24 18:18  0%   ` Christophe JAILLET
  0 siblings, 1 reply; 200+ results
From: Joe Perches @ 2021-10-24 17:54 UTC (permalink / raw)
  To: Christophe JAILLET, hch, m.szyprowski, robin.murphy
  Cc: iommu, linux-kernel, kernel-janitors

On Sun, 2021-10-24 at 19:40 +0200, Christophe JAILLET wrote:
> 'dma_mem->bitmap' is a bitmap. So use 'bitmap_zalloc()' to simplify code,
> improve the semantic and avoid some open-coded arithmetic in allocator
> arguments.

There is a cocci script for some of these.

https://lore.kernel.org/all/08b89608cfb1280624d1a89ead6547069f9a4c31.camel@perches.com/



^ permalink raw reply	[relevance 0%]

* Re: [PATCH v2][next] sysctl: Avoid open coded arithmetic in memory allocator functions
  2021-10-24  9:13 11%   ` Len Baker
  2021-10-24 16:58  7%     ` Len Baker
@ 2021-10-24 17:55  7%     ` Matthew Wilcox
  2021-10-24 18:54  7%       ` Gustavo A. R. Silva
  1 sibling, 1 reply; 200+ results
From: Matthew Wilcox @ 2021-10-24 17:55 UTC (permalink / raw)
  To: Len Baker
  Cc: Gustavo A. R. Silva, Kees Cook, Luis Chamberlain, Iurii Zaikin,
	linux-hardening, linux-fsdevel, linux-kernel

On Sun, Oct 24, 2021 at 11:13:28AM +0200, Len Baker wrote:
> I think it is better to be defensive. IMHO I believe that if the
> struct_size() helper could be used in this patch, it would be more
> easy to ACK. But it is not possible due to the complex memory
> layouts.

I think it's better for code to be understandable.  Your patch makes
the code less readable in the name of "security", which is a poor
justification.

> However, there are a lot of code in the kernel that uses the
> struct_size() helper for memory allocator arguments where we know
> that it don't overflow. For example:

Well, yes.  That's because struct_size() actually makes code more
readable as well as more secure.

> As a last point I would like to know the opinion of Kees and
> Gustavo since they are also working on this task.
> 
> Kees and Gustavo, what do you think?

You might want to check who was co-author on 610b15c50e86 before
discarding my opinion.

^ permalink raw reply	[relevance 7%]

* Re: [PATCH] dma-mapping: Use 'bitmap_zalloc()' when applicable
  2021-10-24 17:54  0% ` Joe Perches
@ 2021-10-24 18:18  0%   ` Christophe JAILLET
  0 siblings, 0 replies; 200+ results
From: Christophe JAILLET @ 2021-10-24 18:18 UTC (permalink / raw)
  To: Joe Perches, hch, m.szyprowski, robin.murphy
  Cc: iommu, linux-kernel, kernel-janitors

Le 24/10/2021 à 19:54, Joe Perches a écrit :
> On Sun, 2021-10-24 at 19:40 +0200, Christophe JAILLET wrote:
>> 'dma_mem->bitmap' is a bitmap. So use 'bitmap_zalloc()' to simplify code,
>> improve the semantic and avoid some open-coded arithmetic in allocator
>> arguments.
> 
> There is a cocci script for some of these.
> 
> https://lore.kernel.org/all/08b89608cfb1280624d1a89ead6547069f9a4c31.camel@perches.com/
> 

Hi Joe,

yes I know.
As it is public, I guess that new comers may have seen it and want to 
propose patches based on your cocci script.

So, for now, I'm more focused on things that are not spotted by your 
script. I look for places where the size computation is not done within 
the kmalloc() or eq. function.

CJ

^ permalink raw reply	[relevance 0%]

* Re: [PATCH v2][next] sysctl: Avoid open coded arithmetic in memory allocator functions
  2021-10-24 17:55  7%     ` Matthew Wilcox
@ 2021-10-24 18:54  7%       ` Gustavo A. R. Silva
  0 siblings, 0 replies; 200+ results
From: Gustavo A. R. Silva @ 2021-10-24 18:54 UTC (permalink / raw)
  To: Matthew Wilcox
  Cc: Len Baker, Kees Cook, Luis Chamberlain, Iurii Zaikin,
	linux-hardening, linux-fsdevel, linux-kernel

On Sun, Oct 24, 2021 at 06:55:13PM +0100, Matthew Wilcox wrote:
> On Sun, Oct 24, 2021 at 11:13:28AM +0200, Len Baker wrote:
> 
> I think it's better for code to be understandable.  Your patch makes
> the code less readable in the name of "security", which is a poor
> justification.

I agree with Matthew. Those functions seem to be a bit too much, for
now.

Let's keep it simple and start by replacing the open-coded instances
when possible, first. Then we can dig much deeper depending on each
particular case, taking into consideration readability, which is
certainly important.

Thanks
--
Gustavo

^ permalink raw reply	[relevance 7%]

* [PATCH] mlxsw: spectrum: Use 'bitmap_zalloc()' when applicable
@ 2021-10-24 19:17  4% Christophe JAILLET
  2021-10-25  6:31  0% ` Ido Schimmel
  2021-10-25 14:50  0% ` patchwork-bot+netdevbpf
  0 siblings, 2 replies; 200+ results
From: Christophe JAILLET @ 2021-10-24 19:17 UTC (permalink / raw)
  To: jiri, idosch, davem, kuba
  Cc: netdev, linux-kernel, kernel-janitors, Christophe JAILLET

Use 'bitmap_zalloc()' to simplify code, improve the semantic and avoid
some open-coded arithmetic in allocator arguments.

Also change the corresponding 'kfree()' into 'bitmap_free()' to keep
consistency.

Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
---
 .../ethernet/mellanox/mlxsw/spectrum_acl_atcam.c  |  8 +++-----
 .../ethernet/mellanox/mlxsw/spectrum_acl_tcam.c   | 15 ++++++---------
 .../net/ethernet/mellanox/mlxsw/spectrum_cnt.c    |  9 +++------
 .../ethernet/mellanox/mlxsw/spectrum_switchdev.c  | 11 ++++-------
 4 files changed, 16 insertions(+), 27 deletions(-)

diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_atcam.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_atcam.c
index ded4cf658680..4b713832fdd5 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_atcam.c
+++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_atcam.c
@@ -119,7 +119,6 @@ mlxsw_sp_acl_atcam_region_12kb_init(struct mlxsw_sp_acl_atcam_region *aregion)
 {
 	struct mlxsw_sp *mlxsw_sp = aregion->region->mlxsw_sp;
 	struct mlxsw_sp_acl_atcam_region_12kb *region_12kb;
-	size_t alloc_size;
 	u64 max_lkey_id;
 	int err;
 
@@ -131,8 +130,7 @@ mlxsw_sp_acl_atcam_region_12kb_init(struct mlxsw_sp_acl_atcam_region *aregion)
 	if (!region_12kb)
 		return -ENOMEM;
 
-	alloc_size = BITS_TO_LONGS(max_lkey_id) * sizeof(unsigned long);
-	region_12kb->used_lkey_id = kzalloc(alloc_size, GFP_KERNEL);
+	region_12kb->used_lkey_id = bitmap_zalloc(max_lkey_id, GFP_KERNEL);
 	if (!region_12kb->used_lkey_id) {
 		err = -ENOMEM;
 		goto err_used_lkey_id_alloc;
@@ -149,7 +147,7 @@ mlxsw_sp_acl_atcam_region_12kb_init(struct mlxsw_sp_acl_atcam_region *aregion)
 	return 0;
 
 err_rhashtable_init:
-	kfree(region_12kb->used_lkey_id);
+	bitmap_free(region_12kb->used_lkey_id);
 err_used_lkey_id_alloc:
 	kfree(region_12kb);
 	return err;
@@ -161,7 +159,7 @@ mlxsw_sp_acl_atcam_region_12kb_fini(struct mlxsw_sp_acl_atcam_region *aregion)
 	struct mlxsw_sp_acl_atcam_region_12kb *region_12kb = aregion->priv;
 
 	rhashtable_destroy(&region_12kb->lkey_ht);
-	kfree(region_12kb->used_lkey_id);
+	bitmap_free(region_12kb->used_lkey_id);
 	kfree(region_12kb);
 }
 
diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_tcam.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_tcam.c
index 7cccc41dd69c..31f7f4c3acc3 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_tcam.c
+++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_tcam.c
@@ -36,7 +36,6 @@ int mlxsw_sp_acl_tcam_init(struct mlxsw_sp *mlxsw_sp,
 	u64 max_tcam_regions;
 	u64 max_regions;
 	u64 max_groups;
-	size_t alloc_size;
 	int err;
 
 	mutex_init(&tcam->lock);
@@ -52,15 +51,13 @@ int mlxsw_sp_acl_tcam_init(struct mlxsw_sp *mlxsw_sp,
 	if (max_tcam_regions < max_regions)
 		max_regions = max_tcam_regions;
 
-	alloc_size = sizeof(tcam->used_regions[0]) * BITS_TO_LONGS(max_regions);
-	tcam->used_regions = kzalloc(alloc_size, GFP_KERNEL);
+	tcam->used_regions = bitmap_zalloc(max_regions, GFP_KERNEL);
 	if (!tcam->used_regions)
 		return -ENOMEM;
 	tcam->max_regions = max_regions;
 
 	max_groups = MLXSW_CORE_RES_GET(mlxsw_sp->core, ACL_MAX_GROUPS);
-	alloc_size = sizeof(tcam->used_groups[0]) * BITS_TO_LONGS(max_groups);
-	tcam->used_groups = kzalloc(alloc_size, GFP_KERNEL);
+	tcam->used_groups = bitmap_zalloc(max_groups, GFP_KERNEL);
 	if (!tcam->used_groups) {
 		err = -ENOMEM;
 		goto err_alloc_used_groups;
@@ -76,9 +73,9 @@ int mlxsw_sp_acl_tcam_init(struct mlxsw_sp *mlxsw_sp,
 	return 0;
 
 err_tcam_init:
-	kfree(tcam->used_groups);
+	bitmap_free(tcam->used_groups);
 err_alloc_used_groups:
-	kfree(tcam->used_regions);
+	bitmap_free(tcam->used_regions);
 	return err;
 }
 
@@ -89,8 +86,8 @@ void mlxsw_sp_acl_tcam_fini(struct mlxsw_sp *mlxsw_sp,
 
 	mutex_destroy(&tcam->lock);
 	ops->fini(mlxsw_sp, tcam->priv);
-	kfree(tcam->used_groups);
-	kfree(tcam->used_regions);
+	bitmap_free(tcam->used_groups);
+	bitmap_free(tcam->used_regions);
 }
 
 int mlxsw_sp_acl_tcam_priority_get(struct mlxsw_sp *mlxsw_sp,
diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_cnt.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_cnt.c
index b65b93a2b9bc..fc2257753b9b 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_cnt.c
+++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_cnt.c
@@ -122,7 +122,6 @@ int mlxsw_sp_counter_pool_init(struct mlxsw_sp *mlxsw_sp)
 	unsigned int sub_pools_count = ARRAY_SIZE(mlxsw_sp_counter_sub_pools);
 	struct devlink *devlink = priv_to_devlink(mlxsw_sp->core);
 	struct mlxsw_sp_counter_pool *pool;
-	unsigned int map_size;
 	int err;
 
 	pool = kzalloc(struct_size(pool, sub_pools, sub_pools_count),
@@ -143,9 +142,7 @@ int mlxsw_sp_counter_pool_init(struct mlxsw_sp *mlxsw_sp)
 	devlink_resource_occ_get_register(devlink, MLXSW_SP_RESOURCE_COUNTERS,
 					  mlxsw_sp_counter_pool_occ_get, pool);
 
-	map_size = BITS_TO_LONGS(pool->pool_size) * sizeof(unsigned long);
-
-	pool->usage = kzalloc(map_size, GFP_KERNEL);
+	pool->usage = bitmap_zalloc(pool->pool_size, GFP_KERNEL);
 	if (!pool->usage) {
 		err = -ENOMEM;
 		goto err_usage_alloc;
@@ -158,7 +155,7 @@ int mlxsw_sp_counter_pool_init(struct mlxsw_sp *mlxsw_sp)
 	return 0;
 
 err_sub_pools_init:
-	kfree(pool->usage);
+	bitmap_free(pool->usage);
 err_usage_alloc:
 	devlink_resource_occ_get_unregister(devlink,
 					    MLXSW_SP_RESOURCE_COUNTERS);
@@ -176,7 +173,7 @@ void mlxsw_sp_counter_pool_fini(struct mlxsw_sp *mlxsw_sp)
 	WARN_ON(find_first_bit(pool->usage, pool->pool_size) !=
 			       pool->pool_size);
 	WARN_ON(atomic_read(&pool->active_entries_count));
-	kfree(pool->usage);
+	bitmap_free(pool->usage);
 	devlink_resource_occ_get_unregister(devlink,
 					    MLXSW_SP_RESOURCE_COUNTERS);
 	kfree(pool);
diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c
index 22fede5cb32c..81c7e8a7fcf5 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c
+++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c
@@ -1635,16 +1635,13 @@ mlxsw_sp_mid *__mlxsw_sp_mc_alloc(struct mlxsw_sp *mlxsw_sp,
 				  u16 fid)
 {
 	struct mlxsw_sp_mid *mid;
-	size_t alloc_size;
 
 	mid = kzalloc(sizeof(*mid), GFP_KERNEL);
 	if (!mid)
 		return NULL;
 
-	alloc_size = sizeof(unsigned long) *
-		     BITS_TO_LONGS(mlxsw_core_max_ports(mlxsw_sp->core));
-
-	mid->ports_in_mid = kzalloc(alloc_size, GFP_KERNEL);
+	mid->ports_in_mid = bitmap_zalloc(mlxsw_core_max_ports(mlxsw_sp->core),
+					  GFP_KERNEL);
 	if (!mid->ports_in_mid)
 		goto err_ports_in_mid_alloc;
 
@@ -1663,7 +1660,7 @@ mlxsw_sp_mid *__mlxsw_sp_mc_alloc(struct mlxsw_sp *mlxsw_sp,
 	return mid;
 
 err_write_mdb_entry:
-	kfree(mid->ports_in_mid);
+	bitmap_free(mid->ports_in_mid);
 err_ports_in_mid_alloc:
 	kfree(mid);
 	return NULL;
@@ -1680,7 +1677,7 @@ static int mlxsw_sp_port_remove_from_mid(struct mlxsw_sp_port *mlxsw_sp_port,
 			 mlxsw_core_max_ports(mlxsw_sp->core))) {
 		err = mlxsw_sp_mc_remove_mdb_entry(mlxsw_sp, mid);
 		list_del(&mid->list);
-		kfree(mid->ports_in_mid);
+		bitmap_free(mid->ports_in_mid);
 		kfree(mid);
 	}
 	return err;
-- 
2.30.2


^ permalink raw reply related	[relevance 4%]

* [PATCH] scsi: elx: libefc_sli: Use 'bitmap_zalloc()' when applicable
@ 2021-10-24 19:48  4% Christophe JAILLET
  0 siblings, 0 replies; 200+ results
From: Christophe JAILLET @ 2021-10-24 19:48 UTC (permalink / raw)
  To: james.smart, ram.vegesna, jejb, martin.petersen, dwagner, hare
  Cc: linux-scsi, target-devel, linux-kernel, kernel-janitors,
	Christophe JAILLET

'sli4->ext[i].use_map' is a bitmap. Use 'bitmap_zalloc()' to simplify code,
improve the semantic and avoid some open-coded arithmetic in allocator
arguments.

Also change the corresponding 'kfree()' into 'bitmap_free()' to keep
consistency.

Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
---
 drivers/scsi/elx/libefc_sli/sli4.c | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/drivers/scsi/elx/libefc_sli/sli4.c b/drivers/scsi/elx/libefc_sli/sli4.c
index 6c6c04e1b74d..907d67aeac23 100644
--- a/drivers/scsi/elx/libefc_sli/sli4.c
+++ b/drivers/scsi/elx/libefc_sli/sli4.c
@@ -4145,7 +4145,7 @@ static int
 sli_get_read_config(struct sli4 *sli4)
 {
 	struct sli4_rsp_read_config *conf = sli4->bmbx.virt;
-	u32 i, total, total_size;
+	u32 i, total;
 	u32 *base;
 
 	if (sli_cmd_read_config(sli4, sli4->bmbx.virt)) {
@@ -4203,8 +4203,7 @@ sli_get_read_config(struct sli4 *sli4)
 
 	for (i = 0; i < SLI4_RSRC_MAX; i++) {
 		total = sli4->ext[i].number * sli4->ext[i].size;
-		total_size = BITS_TO_LONGS(total) * sizeof(long);
-		sli4->ext[i].use_map = kzalloc(total_size, GFP_KERNEL);
+		sli4->ext[i].use_map = bitmap_zalloc(total, GFP_KERNEL);
 		if (!sli4->ext[i].use_map) {
 			efc_log_err(sli4, "bitmap memory allocation failed %d\n",
 				    i);
@@ -4743,7 +4742,7 @@ sli_reset(struct sli4 *sli4)
 	sli4->ext[0].base = NULL;
 
 	for (i = 0; i < SLI4_RSRC_MAX; i++) {
-		kfree(sli4->ext[i].use_map);
+		bitmap_free(sli4->ext[i].use_map);
 		sli4->ext[i].use_map = NULL;
 		sli4->ext[i].base = NULL;
 	}
@@ -4784,7 +4783,7 @@ sli_teardown(struct sli4 *sli4)
 	for (i = 0; i < SLI4_RSRC_MAX; i++) {
 		sli4->ext[i].base = NULL;
 
-		kfree(sli4->ext[i].use_map);
+		bitmap_free(sli4->ext[i].use_map);
 		sli4->ext[i].use_map = NULL;
 	}
 
-- 
2.30.2


^ permalink raw reply related	[relevance 4%]

* Re: [PATCH] mlxsw: spectrum: Use 'bitmap_zalloc()' when applicable
  2021-10-24 19:17  4% [PATCH] mlxsw: spectrum: " Christophe JAILLET
@ 2021-10-25  6:31  0% ` Ido Schimmel
  2021-10-25 14:50  0% ` patchwork-bot+netdevbpf
  1 sibling, 0 replies; 200+ results
From: Ido Schimmel @ 2021-10-25  6:31 UTC (permalink / raw)
  To: Christophe JAILLET
  Cc: jiri, idosch, davem, kuba, netdev, linux-kernel, kernel-janitors

On Sun, Oct 24, 2021 at 09:17:51PM +0200, Christophe JAILLET wrote:
> Use 'bitmap_zalloc()' to simplify code, improve the semantic and avoid
> some open-coded arithmetic in allocator arguments.
> 
> Also change the corresponding 'kfree()' into 'bitmap_free()' to keep
> consistency.
> 
> Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>

For net-next:

Reviewed-by: Ido Schimmel <idosch@nvidia.com>

Thanks

^ permalink raw reply	[relevance 0%]

* Re: [PATCH] dmaengine: milbeaut-hdmac: Prefer kcalloc over open coded arithmetic
  2021-09-04 14:58 12% [PATCH] dmaengine: milbeaut-hdmac: " Len Baker
@ 2021-10-25  6:42  7% ` Vinod Koul
  0 siblings, 0 replies; 200+ results
From: Vinod Koul @ 2021-10-25  6:42 UTC (permalink / raw)
  To: Len Baker; +Cc: Kees Cook, linux-hardening, dmaengine, linux-kernel

On 04-09-21, 16:58, Len Baker 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.

Applied, thanks

-- 
~Vinod

^ permalink raw reply	[relevance 7%]

* Re: [PATCH] nvmet: prefer flex_array_size and struct_size over open coded arithmetic
  2021-10-24 17:29 12% [PATCH] nvmet: prefer flex_array_size and struct_size over open coded arithmetic Len Baker
@ 2021-10-25  7:18  7% ` Sagi Grimberg
  2021-10-25 21:05  7% ` Gustavo A. R. Silva
  1 sibling, 0 replies; 200+ results
From: Sagi Grimberg @ 2021-10-25  7:18 UTC (permalink / raw)
  To: Len Baker, Keith Busch, Jens Axboe, Christoph Hellwig,
	Chaitanya Kulkarni
  Cc: Kees Cook, Gustavo A. R. Silva, linux-hardening, linux-nvme,
	linux-kernel

Reviewed-by: Sagi Grimberg <sagi@grimberg.me>

^ permalink raw reply	[relevance 7%]

* Re: [PATCH] mlxsw: spectrum: Use 'bitmap_zalloc()' when applicable
  2021-10-24 19:17  4% [PATCH] mlxsw: spectrum: " Christophe JAILLET
  2021-10-25  6:31  0% ` Ido Schimmel
@ 2021-10-25 14:50  0% ` patchwork-bot+netdevbpf
  1 sibling, 0 replies; 200+ results
From: patchwork-bot+netdevbpf @ 2021-10-25 14:50 UTC (permalink / raw)
  To: Christophe JAILLET
  Cc: jiri, idosch, davem, kuba, netdev, linux-kernel, kernel-janitors

Hello:

This patch was applied to netdev/net-next.git (master)
by David S. Miller <davem@davemloft.net>:

On Sun, 24 Oct 2021 21:17:51 +0200 you wrote:
> Use 'bitmap_zalloc()' to simplify code, improve the semantic and avoid
> some open-coded arithmetic in allocator arguments.
> 
> Also change the corresponding 'kfree()' into 'bitmap_free()' to keep
> consistency.
> 
> Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
> 
> [...]

Here is the summary with links:
  - mlxsw: spectrum: Use 'bitmap_zalloc()' when applicable
    https://git.kernel.org/netdev/net-next/c/2c087dfcc9d5

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



^ permalink raw reply	[relevance 0%]

* Re: [PATCH] nvmet: prefer flex_array_size and struct_size over open coded arithmetic
  2021-10-24 17:29 12% [PATCH] nvmet: prefer flex_array_size and struct_size over open coded arithmetic Len Baker
  2021-10-25  7:18  7% ` Sagi Grimberg
@ 2021-10-25 21:05  7% ` Gustavo A. R. Silva
  1 sibling, 0 replies; 200+ results
From: Gustavo A. R. Silva @ 2021-10-25 21:05 UTC (permalink / raw)
  To: Len Baker
  Cc: Keith Busch, Jens Axboe, Christoph Hellwig, Sagi Grimberg,
	Chaitanya Kulkarni, Kees Cook, linux-hardening, linux-nvme,
	linux-kernel

On Sun, Oct 24, 2021 at 07:29:21PM +0200, Len Baker wrote:
> In an effort to avoid open-coded arithmetic in the kernel [1], use the
> flex_array_size() and struct_size() helpers instead of an open-coded
> calculation.
> 
> [1] https://github.com/KSPP/linux/issues/160
> 
> Signed-off-by: Len Baker <len.baker@gmx.com>

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

Thanks
--
Gustavo

> ---
>  drivers/nvme/host/multipath.c   | 2 +-
>  drivers/nvme/target/admin-cmd.c | 2 +-
>  2 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/nvme/host/multipath.c b/drivers/nvme/host/multipath.c
> index 954e84df6eb7..7f2071f2460c 100644
> --- a/drivers/nvme/host/multipath.c
> +++ b/drivers/nvme/host/multipath.c
> @@ -562,7 +562,7 @@ static int nvme_parse_ana_log(struct nvme_ctrl *ctrl, void *data,
>  			return -EINVAL;
> 
>  		nr_nsids = le32_to_cpu(desc->nnsids);
> -		nsid_buf_size = nr_nsids * sizeof(__le32);
> +		nsid_buf_size = flex_array_size(desc, nsids, nr_nsids);
> 
>  		if (WARN_ON_ONCE(desc->grpid == 0))
>  			return -EINVAL;
> diff --git a/drivers/nvme/target/admin-cmd.c b/drivers/nvme/target/admin-cmd.c
> index 403de678fd06..6fb24746de06 100644
> --- a/drivers/nvme/target/admin-cmd.c
> +++ b/drivers/nvme/target/admin-cmd.c
> @@ -264,7 +264,7 @@ static u32 nvmet_format_ana_group(struct nvmet_req *req, u32 grpid,
>  	desc->chgcnt = cpu_to_le64(nvmet_ana_chgcnt);
>  	desc->state = req->port->ana_state[grpid];
>  	memset(desc->rsvd17, 0, sizeof(desc->rsvd17));
> -	return sizeof(struct nvme_ana_group_desc) + count * sizeof(__le32);
> +	return struct_size(desc, nsids, count);
>  }
> 
>  static void nvmet_execute_get_log_page_ana(struct nvmet_req *req)
> --
> 2.25.1
> 

^ permalink raw reply	[relevance 7%]

* Re: [PATCH v2][next] virt: acrn: Prefer array_size and struct_size over open coded arithmetic
  2021-10-23 10:15 11% [PATCH v2][next] virt: acrn: Prefer array_size and struct_size over open coded arithmetic Len Baker
@ 2021-10-25 22:22  7% ` Gustavo A. R. Silva
  0 siblings, 0 replies; 200+ results
From: Gustavo A. R. Silva @ 2021-10-25 22:22 UTC (permalink / raw)
  To: Len Baker; +Cc: Fei Li, Kees Cook, linux-hardening, linux-kernel

On Sat, Oct 23, 2021 at 12:15:54PM +0200, Len Baker wrote:
[..]
> diff --git a/drivers/virt/acrn/mm.c b/drivers/virt/acrn/mm.c
> index c4f2e15c8a2b..a881742cd48d 100644
> --- a/drivers/virt/acrn/mm.c
> +++ b/drivers/virt/acrn/mm.c
> @@ -168,7 +168,7 @@ int acrn_vm_ram_map(struct acrn_vm *vm, struct acrn_vm_memmap *memmap)
> 
>  	/* Get the page number of the map region */
>  	nr_pages = memmap->len >> PAGE_SHIFT;
> -	pages = vzalloc(nr_pages * sizeof(struct page *));
> +	pages = vzalloc(array_size(nr_pages, sizeof(struct page *)));

This form is better:

	array_size(nr_pages, sizeof(*pages))

Thanks
--
Gustavo

^ permalink raw reply	[relevance 7%]

* Re: [PATCH v3] docs: deprecated.rst: Clarify open-coded arithmetic with literals
  2021-09-25 14:34 11% [PATCH v3] docs: deprecated.rst: Clarify open-coded arithmetic with literals Len Baker
  2021-10-20 23:52  7% ` Gustavo A. R. Silva
@ 2021-10-26 15:44  7% ` Jonathan Corbet
  1 sibling, 0 replies; 200+ results
From: Jonathan Corbet @ 2021-10-26 15:44 UTC (permalink / raw)
  To: Len Baker, Kees Cook
  Cc: Len Baker, Gustavo A. R. Silva, Joe Perches, linux-doc,
	linux-kernel, linux-hardening

Len Baker <len.baker@gmx.com> writes:

> Although using literals for size calculation in allocator arguments may
> be harmless due to compiler warnings in case of overflows, it is better
> to refactor the code to avoid the use of open-coded arithmetic.
>
> So, clarify the preferred way in these cases.
>
> Suggested-by: Kees Cook <keescook@chromium.org>
> Signed-off-by: Len Baker <len.baker@gmx.com>
> ---
> Changelog v1 -> v2
>  - Clarify the sentence by changing "keep <foo> out" with "avoid <foo>"
>    (Joe Perches).
>
> Changelog v2 -> v3
>  - Reword the sentence to comunicate better (Jonathan Corbet).
>
> The previous version can be found here [1].
>
> [1] https://lore.kernel.org/linux-hardening/20210829144716.2931-1-len.baker@gmx.com/

Applied, thanks.

jon

^ permalink raw reply	[relevance 7%]

Results 1-200 of ~700   | reverse | options above
-- pct% links below jump to the message on this page, permalinks otherwise --
     [not found]     <200706112159.l5BLxF5x004043@hera.kernel.org>
2007-06-11 23:34     ` splice: move balance_dirty_pages_ratelimited() outside of splice actor Andrew Morton
2007-06-12  6:35       ` Jens Axboe
2007-06-12 11:20         ` Jens Axboe
2007-06-12 11:31           ` Jens Axboe
2007-06-12 12:06             ` Peter Zijlstra
2007-06-12 12:10               ` Jens Axboe
2007-06-12 12:16                 ` Peter Zijlstra
2007-06-12 12:44                   ` Jens Axboe
2007-06-12 16:02  5%                 ` Andrew Morton
2018-10-17  2:17  4% [PATCH] docs: Introduce deprecated APIs list Kees Cook
2018-10-17 12:50  0% ` Jonathan Corbet
2018-10-17 22:51  0%   ` Kees Cook
2018-10-17 23:45  4% [PATCH v2] " Kees Cook
2020-03-14 22:29  6% [PATCH] docs: deprecated.rst: Add BUG()-family Kees Cook
2020-06-05  2:29  3% [PATCH] docs: deprecated.rst: Add zero-length and one-element arrays Gustavo A. R. Silva
2020-06-05 16:21  3% [PATCH v2] " Gustavo A. R. Silva
2020-06-05 19:30  0% ` Kees Cook
2020-06-05 21:36  0%   ` Gustavo A. R. Silva
2020-06-08 21:37  3% [PATCH v3] " Gustavo A. R. Silva
2020-06-10  5:56  0% ` Kees Cook
2020-06-19 19:39  0% ` Jonathan Corbet
2020-06-20  3:29     [PATCH v2 00/16] Remove uninitialized_var() macro Kees Cook
2020-06-20  3:29  6% ` [PATCH v2 01/16] docs: deprecated.rst: Add uninitialized_var() Kees Cook
2020-06-22 16:59  0%   ` Nick Desaulniers
2020-08-27  3:12  7% [PATCH] deprecated.rst: Remove now removed uninitialized_var Joe Perches
2020-08-27  3:27  0% ` Nick Desaulniers
2021-07-16 17:03  7% [PATCH] ARC: unwind: Use struct_size helper instead of open-coded arithmetic Len Baker
2021-07-16 19:41  7% ` Gustavo A. R. Silva
2021-07-17 14:25  7% [PATCH] ipw2x00: " Len Baker
2021-07-21 10:20  7% ` Stanislav Yakovlev
2021-08-21 17:15 12% ` Kalle Valo
2021-08-22 14:28 12% [PATCH 0/2] staging/rtl8192u: Prefer kcalloc over open coded arithmetic Len Baker
2021-08-22 14:28  7% ` [PATCH 2/2] " Len Baker
2021-08-22 14:59 13%   ` Kees Cook
2021-08-22 15:41  7%     ` Len Baker
2021-08-24  7:25 13% [PATCH v2 0/3] " Len Baker
2021-08-24  9:00 12% ` [PATCH v2 3/3] " Len Baker
2021-08-27 17:12  7% [PATCH] docs: deprecated.rst: Clarify open-coded arithmetic with literals Len Baker
2021-08-27 19:06  7% ` Joe Perches
2021-08-27 19:22  7%   ` Gustavo A. R. Silva
2021-08-29 14:32  7%   ` Len Baker
2021-08-29 14:47  7% [PATCH v2] " Len Baker
2021-09-14 21:07  7% ` Jonathan Corbet
2021-09-18  9:10 14%   ` Len Baker
2021-08-31 20:37  1% [GIT PULL] Networking for v5.15 Jakub Kicinski
2021-09-01 14:17  1% [GIT PULL] Staging / IIO driver changes for 5.15-rc1 Greg KH
2021-09-04 13:17 12% [PATCH] clk: ti: composite: Prefer kcalloc over open coded arithmetic Len Baker
2021-09-04 14:58 12% [PATCH] dmaengine: milbeaut-hdmac: " Len Baker
2021-10-25  6:42  7% ` Vinod Koul
2021-09-04 15:16 12% [PATCH] cpufreq: powernow: " Len Baker
2021-09-06 17:05  7% ` Rafael J. Wysocki
2021-09-04 15:41 11% [PATCH] drm/radeon: " Len Baker
2021-09-07 17:00  7% ` Alex Deucher
2021-09-05  6:24 12% [PATCH] scsi: elx: libefc: " Len Baker
2021-09-07 16:55  7% ` James Smart
2021-09-22  4:45 12% ` Martin K. Petersen
2021-09-05  6:50 12% [PATCH] ice: " Len Baker
2021-09-12 20:41  7% ` [Intel-wired-lan] " Gustavo A. R. Silva
2021-09-05  7:49 11% [PATCH] net/mlx5: DR, " Len Baker
2021-09-20 21:19  7% ` Saeed Mahameed
2021-09-21  4:06  7% ` Kees Cook
2021-09-25  7:28  7%   ` Len Baker
2021-09-05  8:18 12% [PATCH] RDMA/bnxt_re: " Len Baker
2021-09-05 10:21  7% ` Leon Romanovsky
2021-09-07 14:12  7%   ` Selvin Xavier
2021-09-08 11:44  7% ` Jason Gunthorpe
2021-09-05 14:40 12% [PATCH] i3c/master/mipi-i3c-hci: Prefer struct_size " Len Baker
2021-09-06  4:30  7% ` Nicolas Pitre
2021-09-13 17:39 12% ` Alexandre Belloni
2021-09-05 15:37 12% [PATCH] tifm: " Len Baker
2021-09-05 15:57 12% [PATCH] serial: 8250_pci: " Len Baker
2021-09-05 16:13  7% ` Andy Shevchenko
2021-09-08 23:40  5% [GIT PULL] Please pull RDMA subsystem changes Jason Gunthorpe
2021-09-11 10:28 12% [PATCH] net: mana: Prefer struct_size over open coded arithmetic Len Baker
2021-09-11 13:36  7% ` Haiyang Zhang
2021-09-18 13:20 12% ` Len Baker
2021-09-18 13:51  7%   ` Kees Cook
2021-09-18 17:11  7%     ` Len Baker
2021-09-18 17:06  7%   ` Dexuan Cui
2021-09-19  8:27  7%     ` Len Baker
2021-09-11 11:26 12% [PATCH] usb: ohci: " Len Baker
2021-09-11 15:46  7% ` Alan Stern
2021-09-11 11:27 12% [PATCH] Input: omap-keypad - prefer " Len Baker
2021-09-14 21:49  7% ` Gustavo A. R. Silva
2021-09-11 13:19 12% [PATCH] memstick: jmb38x_ms: Prefer " Len Baker
2021-09-14 11:23  7% ` Ulf Hansson
2021-09-12 13:10 12% [PATCH] nfp: " Len Baker
2021-09-12 19:07  7% ` Gustavo A. R. Silva
2021-09-13  8:31  7% ` Simon Horman
2021-09-12 15:51 12% [PATCH] i3c/master/mipi-i3c-hci: Prefer kcalloc " Len Baker
2021-09-13  1:54  7% ` Nicolas Pitre
2021-09-13 17:39 12% ` Alexandre Belloni
2021-09-13  2:36  1% linux-next: Tree for Sep 13 Stephen Rothwell
2021-09-14  6:38  1% linux-next: Tree for Sep 14 Stephen Rothwell
2021-09-15  4:16  1% linux-next: Tree for Sep 15 Stephen Rothwell
2021-09-16  6:11  1% linux-next: Tree for Sep 16 Stephen Rothwell
2021-09-16 20:03  3% [GIT PULL] Networking for 5.15-rc2 Jakub Kicinski
2021-09-17  8:22  1% linux-next: Tree for Sep 17 Stephen Rothwell
2021-09-18 10:40 12% [PATCH] dmaengine: pxa_dma: Prefer struct_size over open coded arithmetic Len Baker
2021-09-21  0:00  7% ` Gustavo A. R. Silva
2021-10-20 23:32  7%   ` Gustavo A. R. Silva
2021-09-18 11:18 11% [PATCH] scsi: advansys: " Len Baker
2021-09-20 23:57  7% ` Gustavo A. R. Silva
2021-09-18 15:05 11% [PATCH] platform/x86: thinkpad_acpi: " Len Baker
2021-09-20  5:58  7% ` Kees Cook
2021-09-21 13:46  6%   ` Hans de Goede
2021-09-21 15:15  7%     ` Greg KH
2021-09-21 15:38  7%       ` Hans de Goede
2021-09-21 15:45  7%         ` Greg KH
2021-09-25 10:40  7%       ` Len Baker
2021-09-25 11:07  7%         ` Greg KH
2021-09-25 13:33  7%           ` Len Baker
2021-09-25 10:37  7%     ` Len Baker
2021-09-19  9:44 12% [PATCH] afs: " Len Baker
2021-09-21  0:09  7% ` Gustavo A. R. Silva
2021-10-20 23:26  7%   ` Gustavo A. R. Silva
2021-09-19  9:45 12% [PATCH] aio: " Len Baker
2021-09-21  0:11  7% ` Gustavo A. R. Silva
2021-10-20 23:23  7%   ` Gustavo A. R. Silva
2021-09-19  9:46 13% [PATCH] writeback: prefer " Len Baker
2021-09-21  0:17  7% ` Gustavo A. R. Silva
2021-09-19 11:09 11% [PATCH] assoc_array: Avoid open coded arithmetic in allocator arguments Len Baker
2021-09-21 18:30  7% ` Gustavo A. R. Silva
2021-09-19 11:40 12% [PATCH] nl80211: prefer struct_size over open coded arithmetic Len Baker
2021-09-21 18:51  7% ` Gustavo A. R. Silva
2021-09-19 13:37 13% [PATCH] ALSA: usx2y: Prefer " Len Baker
2021-09-21 16:41  7% ` Takashi Iwai
2021-09-20  0:40  2% Linux 5.15-rc2 Linus Torvalds
2021-09-20  6:35  1% linux-next: Tree for Sep 20 Stephen Rothwell
2021-09-21  5:52  1% linux-next: Tree for Sep 21 Stephen Rothwell
2021-09-21 23:54  3% mmotm 2021-09-21-16-54 uploaded akpm
2021-09-22  6:07  3% linux-next: Tree for Sep 22 Stephen Rothwell
2021-09-23  5:09  2% linux-next: Tree for Sep 23 Stephen Rothwell
2021-09-24  4:54  2% linux-next: Tree for Sep 24 Stephen Rothwell
2021-09-25 11:42 12% [PATCH v2] scsi: advansys: Prefer struct_size over open coded arithmetic Len Baker
2021-09-27 14:48  7% ` Gustavo A. R. Silva
2021-09-29  2:55  7% ` Martin K. Petersen
2021-10-05  4:34 12% ` Martin K. Petersen
2021-09-25 11:43 12% [PATCH v2] writeback: prefer " Len Baker
2021-09-27 14:51  7% ` Gustavo A. R. Silva
2021-10-20 14:40  7% ` Jan Kara
2021-10-20 23:19  7%   ` Gustavo A. R. Silva
2021-09-25 13:55 11% [PATCH v2] nl80211: " Len Baker
2021-09-25 14:34 11% [PATCH v3] docs: deprecated.rst: Clarify open-coded arithmetic with literals Len Baker
2021-10-20 23:52  7% ` Gustavo A. R. Silva
2021-10-26 15:44  7% ` Jonathan Corbet
2021-09-26  7:17  5% [PATCH] thermal: intel_powerclamp: Use bitmap_zalloc/bitmap_free when applicable Christophe JAILLET
2021-10-05 14:42  0% ` Rafael J. Wysocki
2021-09-26 11:19  5% [PATCH v2] platform/x86: thinkpad_acpi: Switch to common use of attributes Len Baker
2021-09-26 11:32  0% ` Greg Kroah-Hartman
2021-09-28 14:55  0%   ` Hans de Goede
2021-09-28 16:04  0%     ` Greg Kroah-Hartman
2021-09-28 17:37  0%       ` Hans de Goede
2021-09-26 13:07  5% [PATCH] iommu/tegra-smmu: Use devm_bitmap_zalloc when applicable Christophe JAILLET
2021-10-07 18:02  0% ` Thierry Reding
2021-10-18 11:39  0% ` Joerg Roedel
2021-09-27  5:51  1% linux-next: Tree for Sep 27 Stephen Rothwell
2021-09-28  7:23  1% linux-next: Tree for Sep 28 Stephen Rothwell
2021-10-03 10:42 12% [PATCH] drm/i915: Prefer struct_size over open coded arithmetic Len Baker
2021-10-11  9:23 12% ` Len Baker
2021-10-13 11:24  7%   ` Jani Nikula
2021-10-13 11:51  7%     ` Daniel Vetter
2021-10-16 11:16  7%       ` Len Baker
2021-10-18 10:00  7%         ` Jani Nikula
2021-10-23 11:50  7%           ` Len Baker
2021-10-11  9:01 10% [PATCH] net: hns: " Len Baker
2021-10-11 10:39 11% [PATCH] virt: acrn: Prefer array_syze and " Len Baker
2021-10-12  1:34  7% ` Li Fei1
2021-10-13  7:29  7%   ` Kees Cook
2021-10-15 15:52  7%   ` Len Baker
2021-10-18  1:07  7%     ` Li Fei1
2021-10-14 20:29  3% [gustavoars:for-next/kspp-fixes] BUILD SUCCESS 126be2055304be4b158973c1241905d0d30169e9 kernel test robot
2021-10-14 21:05  3% [gustavoars:for-next/kspp-misc-fixes] BUILD SUCCESS 2a12e0003580505b8e7d82f9a8fef95f4a1031a8 kernel test robot
2021-10-16 15:28  9% [PATCH] sysctl: Avoid open coded arithmetic in memory allocator functions Len Baker
2021-10-16 16:18  7% ` Matthew Wilcox
2021-10-23 10:31  7%   ` Len Baker
2021-10-17  9:56 13% [PATCH] nvmet: prefer struct_size over open coded arithmetic Len Baker
2021-10-17 17:23 11% ` Gustavo A. R. Silva
2021-10-23 11:28  7%   ` Len Baker
2021-10-23 20:14  7%     ` Gustavo A. R. Silva
2021-10-20 17:24  7% ` Christoph Hellwig
2021-10-17 10:59 12% [PATCH] mm/list_lru.c: " Len Baker
2021-10-21  3:41  2% mmotm 2021-10-20-20-40 uploaded akpm
2021-10-21 19:34  4% [gustavoars:for-next/kspp-misc-fixes] BUILD SUCCESS 50740d5de6145cb88e69ccb29c586f10c401e3ee kernel test robot
2021-10-23 10:15 11% [PATCH v2][next] virt: acrn: Prefer array_size and struct_size over open coded arithmetic Len Baker
2021-10-25 22:22  7% ` Gustavo A. R. Silva
2021-10-23 10:54  9% [PATCH v2][next] sysctl: Avoid open coded arithmetic in memory allocator functions Len Baker
2021-10-23 14:27  7% ` Matthew Wilcox
2021-10-24  9:13 11%   ` Len Baker
2021-10-24 16:58  7%     ` Len Baker
2021-10-24 17:55  7%     ` Matthew Wilcox
2021-10-24 18:54  7%       ` Gustavo A. R. Silva
2021-10-23 19:24  5% [PATCH] coresight: Use devm_bitmap_zalloc when applicable Christophe JAILLET
2021-10-23 19:36  0% ` Joe Perches
2021-10-23 20:09  0%   ` Christophe JAILLET
2021-10-23 20:02  5% [PATCH] PCI: xgene-msi: Use bitmap_zalloc() " Christophe JAILLET
2021-10-24  6:51  4% [PATCH] PCI: endpoint: Use 'bitmap_zalloc()' " Christophe JAILLET
2021-10-24 16:43     [PATCH 1/2] RDMA/rxe: Save a few bytes from struct rxe_pool Christophe JAILLET
2021-10-24 16:43  5% ` [PATCH 2/2] RDMA/rxe: Use 'bitmap_zalloc()' when applicable Christophe JAILLET
2021-10-24 17:30  0%   ` Christophe JAILLET
2021-10-24 17:29 12% [PATCH] nvmet: prefer flex_array_size and struct_size over open coded arithmetic Len Baker
2021-10-25  7:18  7% ` Sagi Grimberg
2021-10-25 21:05  7% ` Gustavo A. R. Silva
2021-10-24 17:40  5% [PATCH] dma-mapping: Use 'bitmap_zalloc()' when applicable Christophe JAILLET
2021-10-24 17:54  0% ` Joe Perches
2021-10-24 18:18  0%   ` Christophe JAILLET
2021-10-24 19:17  4% [PATCH] mlxsw: spectrum: " Christophe JAILLET
2021-10-25  6:31  0% ` Ido Schimmel
2021-10-25 14:50  0% ` patchwork-bot+netdevbpf
2021-10-24 19:48  4% [PATCH] scsi: elx: libefc_sli: " Christophe JAILLET

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).