* 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&data=04%7C01%7Chaiyangz%40microsoft.com%7C1bf83c1204a34dae
> a6d308d9750eef16%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C6376695297
> 12931146%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJ
> BTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=PbYpBtyYfVfwwlxWSQx%2FiARc9
> mhb0J7bfD46%2F9q5oTw%3D&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(®ion_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 next (newer) | 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).