This is the start of the stable review cycle for the 5.7.14 release. There are 6 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.
Responses should be made by Fri, 07 Aug 2020 15:34:53 +0000. Anything received after that time might be too late.
The whole patch series can be found in one patch at: https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.7.14-rc1.... or in the git tree and branch at: git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.7.y and the diffstat can be found below.
thanks,
greg k-h
------------- Pseudo-Shortlog of commits:
Greg Kroah-Hartman gregkh@linuxfoundation.org Linux 5.7.14-rc1
Marc Zyngier maz@kernel.org arm64: Workaround circular dependency in pointer_auth.h
Linus Torvalds torvalds@linux-foundation.org random32: move the pseudo-random 32-bit definitions to prandom.h
Linus Torvalds torvalds@linux-foundation.org random32: remove net_rand_state from the latent entropy gcc plugin
Willy Tarreau w@1wt.eu random: fix circular include dependency on arm64 after addition of percpu.h
Grygorii Strashko grygorii.strashko@ti.com ARM: percpu.h: fix build error
Willy Tarreau w@1wt.eu random32: update the net random state on interrupt and activity
-------------
Diffstat:
Makefile | 4 +- arch/arm/include/asm/percpu.h | 2 + arch/arm64/include/asm/pointer_auth.h | 8 +++- drivers/char/random.c | 1 + include/linux/prandom.h | 78 +++++++++++++++++++++++++++++++++++ include/linux/random.h | 63 ++-------------------------- kernel/time/timer.c | 8 ++++ lib/random32.c | 2 +- 8 files changed, 103 insertions(+), 63 deletions(-)
On Wed, 5 Aug 2020 at 21:22, Greg Kroah-Hartman gregkh@linuxfoundation.org wrote:
This is the start of the stable review cycle for the 5.7.14 release. There are 6 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.
Responses should be made by Fri, 07 Aug 2020 15:34:53 +0000. Anything received after that time might be too late.
The whole patch series can be found in one patch at: https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.7.14-rc1.... or in the git tree and branch at: git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.7.y and the diffstat can be found below.
thanks,
greg k-h
Pseudo-Shortlog of commits:
Greg Kroah-Hartman gregkh@linuxfoundation.org Linux 5.7.14-rc1
Marc Zyngier maz@kernel.org arm64: Workaround circular dependency in pointer_auth.h
Linus Torvalds torvalds@linux-foundation.org random32: move the pseudo-random 32-bit definitions to prandom.h
Linus Torvalds torvalds@linux-foundation.org random32: remove net_rand_state from the latent entropy gcc plugin
Willy Tarreau w@1wt.eu random: fix circular include dependency on arm64 after addition of percpu.h
Grygorii Strashko grygorii.strashko@ti.com ARM: percpu.h: fix build error
Willy Tarreau w@1wt.eu random32: update the net random state on interrupt and activity
[ sorry if it is not interesting ! ]
While building with old gcc-7.3.0 the build breaks for arm64 whereas build PASS on gcc-8, gcc-9 and gcc-10.
with gcc 7.3.0 build breaks log,
In file included from arch/arm64/include/asm/archrandom.h:9:0, from arch/arm64/kernel/kaslr.c:14: include/linux/random.h: In function 'arch_get_random_seed_long_early': include/linux/random.h:149:9: error: implicit declaration of function 'arch_get_random_seed_long'; did you mean 'arch_get_random_seed_long_early'? [-Werror=implicit-function-declaration] return arch_get_random_seed_long(v); ^~~~~~~~~~~~~~~~~~~~~~~~~ arch_get_random_seed_long_early include/linux/random.h: In function 'arch_get_random_long_early': include/linux/random.h:157:9: error: implicit declaration of function 'arch_get_random_long'; did you mean 'get_random_long'? [-Werror=implicit-function-declaration] return arch_get_random_long(v); ^~~~~~~~~~~~~~~~~~~~ get_random_long In file included from arch/arm64/kernel/kaslr.c:14:0: arch/arm64/include/asm/archrandom.h: At top level: arch/arm64/include/asm/archrandom.h:30:33: error: conflicting types for 'arch_get_random_long' static inline bool __must_check arch_get_random_long(unsigned long *v) ^~~~~~~~~~~~~~~~~~~~ In file included from arch/arm64/include/asm/archrandom.h:9:0, from arch/arm64/kernel/kaslr.c:14: include/linux/random.h:157:9: note: previous implicit declaration of 'arch_get_random_long' was here return arch_get_random_long(v); ^~~~~~~~~~~~~~~~~~~~ In file included from arch/arm64/kernel/kaslr.c:14:0: arch/arm64/include/asm/archrandom.h:40:33: error: conflicting types for 'arch_get_random_seed_long' static inline bool __must_check arch_get_random_seed_long(unsigned long *v) ^~~~~~~~~~~~~~~~~~~~~~~~~ In file included from arch/arm64/include/asm/archrandom.h:9:0, from arch/arm64/kernel/kaslr.c:14: include/linux/random.h:149:9: note: previous implicit declaration of 'arch_get_random_seed_long' was here return arch_get_random_seed_long(v); ^~~~~~~~~~~~~~~~~~~~~~~~~ In file included from arch/arm64/kernel/kaslr.c:14:0: arch/arm64/include/asm/archrandom.h:72:1: error: redefinition of 'arch_get_random_seed_long_early' arch_get_random_seed_long_early(unsigned long *v) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from arch/arm64/include/asm/archrandom.h:9:0, from arch/arm64/kernel/kaslr.c:14: include/linux/random.h:146:27: note: previous definition of 'arch_get_random_seed_long_early' was here static inline bool __init arch_get_random_seed_long_early(unsigned long *v)
On Wed, Aug 5, 2020 at 10:39 AM Naresh Kamboju naresh.kamboju@linaro.org wrote:
[ sorry if it is not interesting ! ]
It's a bit interesting only because it is so odd.
While building with old gcc-7.3.0 the build breaks for arm64 whereas build PASS on gcc-8, gcc-9 and gcc-10.
Can you double-check that your gcc-7.3 setup is actually building the same tree?
Yeah, I know that's a slightly strange thing to ask, but your build log really looks very odd. There should be nothing in that error that is in any way compiler version specific.
Sure, we may have some header that checks the compiler version and does something different based on that, and I guess that could be going on. Except I don't even find anything remotely like that anywhere. I do find some compiler version tests, but most ofd them would trigger for all those compiler versions
Or is there perhaps some other configuration difference?
Linus
On 8/5/20 11:01 AM, Linus Torvalds wrote:
On Wed, Aug 5, 2020 at 10:39 AM Naresh Kamboju naresh.kamboju@linaro.org wrote:
[ sorry if it is not interesting ! ]
It's a bit interesting only because it is so odd.
While building with old gcc-7.3.0 the build breaks for arm64 whereas build PASS on gcc-8, gcc-9 and gcc-10.
Can you double-check that your gcc-7.3 setup is actually building the same tree?
I see the same problem. I built images manually, using the same source tree, so I am quite sure it is the same tree (at least in my case).
Yeah, I know that's a slightly strange thing to ask, but your build log really looks very odd. There should be nothing in that error that is in any way compiler version specific.
Same confusion here. I'll be stuck in a meeting for the next hour; unless someone else figures out what is going on I'll get back to it afterwards.
Guenter
Sure, we may have some header that checks the compiler version and does something different based on that, and I guess that could be going on. Except I don't even find anything remotely like that anywhere. I do find some compiler version tests, but most ofd them would trigger for all those compiler versions
Or is there perhaps some other configuration difference?
Linus
On 8/5/20 10:39 AM, Naresh Kamboju wrote:
On Wed, 5 Aug 2020 at 21:22, Greg Kroah-Hartman gregkh@linuxfoundation.org wrote:
This is the start of the stable review cycle for the 5.7.14 release. There are 6 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.
Responses should be made by Fri, 07 Aug 2020 15:34:53 +0000. Anything received after that time might be too late.
The whole patch series can be found in one patch at: https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.7.14-rc1.... or in the git tree and branch at: git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.7.y and the diffstat can be found below.
thanks,
greg k-h
Pseudo-Shortlog of commits:
Greg Kroah-Hartman gregkh@linuxfoundation.org Linux 5.7.14-rc1
Marc Zyngier maz@kernel.org arm64: Workaround circular dependency in pointer_auth.h
Linus Torvalds torvalds@linux-foundation.org random32: move the pseudo-random 32-bit definitions to prandom.h
Linus Torvalds torvalds@linux-foundation.org random32: remove net_rand_state from the latent entropy gcc plugin
Willy Tarreau w@1wt.eu random: fix circular include dependency on arm64 after addition of percpu.h
Grygorii Strashko grygorii.strashko@ti.com ARM: percpu.h: fix build error
Willy Tarreau w@1wt.eu random32: update the net random state on interrupt and activity
[ sorry if it is not interesting ! ]
While building with old gcc-7.3.0 the build breaks for arm64 whereas build PASS on gcc-8, gcc-9 and gcc-10.
with gcc 7.3.0 build breaks log,
Same with older versions of gcc. I don't see the problem with the mainline kernel.
I think this is caused by more recursive includes. arch/arm64/include/asm/archrandom.h includes include/linux/random.h which includes arch/arm64/include/asm/archrandom.h to get the definition of arch_get_random_seed_long_early (which it won't get because of the recursion).
What I don't really understand is how this works with new versions of gcc.
Guenter
In file included from arch/arm64/include/asm/archrandom.h:9:0, from arch/arm64/kernel/kaslr.c:14: include/linux/random.h: In function 'arch_get_random_seed_long_early': include/linux/random.h:149:9: error: implicit declaration of function 'arch_get_random_seed_long'; did you mean 'arch_get_random_seed_long_early'? [-Werror=implicit-function-declaration] return arch_get_random_seed_long(v); ^~~~~~~~~~~~~~~~~~~~~~~~~ arch_get_random_seed_long_early include/linux/random.h: In function 'arch_get_random_long_early': include/linux/random.h:157:9: error: implicit declaration of function 'arch_get_random_long'; did you mean 'get_random_long'? [-Werror=implicit-function-declaration] return arch_get_random_long(v); ^~~~~~~~~~~~~~~~~~~~ get_random_long In file included from arch/arm64/kernel/kaslr.c:14:0: arch/arm64/include/asm/archrandom.h: At top level: arch/arm64/include/asm/archrandom.h:30:33: error: conflicting types for 'arch_get_random_long' static inline bool __must_check arch_get_random_long(unsigned long *v) ^~~~~~~~~~~~~~~~~~~~ In file included from arch/arm64/include/asm/archrandom.h:9:0, from arch/arm64/kernel/kaslr.c:14: include/linux/random.h:157:9: note: previous implicit declaration of 'arch_get_random_long' was here return arch_get_random_long(v); ^~~~~~~~~~~~~~~~~~~~ In file included from arch/arm64/kernel/kaslr.c:14:0: arch/arm64/include/asm/archrandom.h:40:33: error: conflicting types for 'arch_get_random_seed_long' static inline bool __must_check arch_get_random_seed_long(unsigned long *v) ^~~~~~~~~~~~~~~~~~~~~~~~~ In file included from arch/arm64/include/asm/archrandom.h:9:0, from arch/arm64/kernel/kaslr.c:14: include/linux/random.h:149:9: note: previous implicit declaration of 'arch_get_random_seed_long' was here return arch_get_random_seed_long(v); ^~~~~~~~~~~~~~~~~~~~~~~~~ In file included from arch/arm64/kernel/kaslr.c:14:0: arch/arm64/include/asm/archrandom.h:72:1: error: redefinition of 'arch_get_random_seed_long_early' arch_get_random_seed_long_early(unsigned long *v) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from arch/arm64/include/asm/archrandom.h:9:0, from arch/arm64/kernel/kaslr.c:14: include/linux/random.h:146:27: note: previous definition of 'arch_get_random_seed_long_early' was here static inline bool __init arch_get_random_seed_long_early(unsigned long *v)
On Wed, Aug 5, 2020 at 11:24 AM Guenter Roeck linux@roeck-us.net wrote:
Same with older versions of gcc. I don't see the problem with the mainline kernel.
https://www.youtube.com/watch?v=-b5aW08ivHU
I think this is caused by more recursive includes. arch/arm64/include/asm/archrandom.h includes include/linux/random.h which includes arch/arm64/include/asm/archrandom.h to get the definition of arch_get_random_seed_long_early (which it won't get because of the recursion).
What I don't really understand is how this works with new versions of gcc.
Is that the only place it triggers?
Because the trivial fix would be something like the appended, which is the right thing to do anyway.
Linus
diff --git a/arch/arm64/kernel/kaslr.c b/arch/arm64/kernel/kaslr.c index 07c4c8cc4a67..9ded4237e1c1 100644 --- a/arch/arm64/kernel/kaslr.c +++ b/arch/arm64/kernel/kaslr.c @@ -11,8 +11,8 @@ #include <linux/sched.h> #include <linux/types.h> #include <linux/pgtable.h> +#include <linux/random.h>
-#include <asm/archrandom.h> #include <asm/cacheflush.h> #include <asm/fixmap.h> #include <asm/kernel-pgtable.h>
On 8/5/20 11:37 AM, Linus Torvalds wrote:
On Wed, Aug 5, 2020 at 11:24 AM Guenter Roeck linux@roeck-us.net wrote:
Same with older versions of gcc. I don't see the problem with the mainline kernel.
https://www.youtube.com/watch?v=-b5aW08ivHU
I think this is caused by more recursive includes. arch/arm64/include/asm/archrandom.h includes include/linux/random.h which includes arch/arm64/include/asm/archrandom.h to get the definition of arch_get_random_seed_long_early (which it won't get because of the recursion).
What I don't really understand is how this works with new versions of gcc.
Is that the only place it triggers?
Because the trivial fix would be something like the appended, which is the right thing to do anyway.
Correct.
gcc-7.x and older don't support CONFIG_ARM64_PTR_AUTH. Result is that ./arch/arm64/include/asm/pointer_auth.h doesn't include <linux/random.h> for those compiler versions, which results in the problem.
In the mainline kernel, ./arch/arm64/include/asm/pointer_auth.h always includes <linux/random.h>, so the problem isn't seen (or, rather, it is hidden) there.
The problem is caused (exposed) by Marc's commit ("arm64: Workaround circular dependency in pointer_auth.h"), which makes the include of linux/random.h conditional.
Guenter
Linus
diff --git a/arch/arm64/kernel/kaslr.c b/arch/arm64/kernel/kaslr.c index 07c4c8cc4a67..9ded4237e1c1 100644 --- a/arch/arm64/kernel/kaslr.c +++ b/arch/arm64/kernel/kaslr.c @@ -11,8 +11,8 @@ #include <linux/sched.h> #include <linux/types.h> #include <linux/pgtable.h> +#include <linux/random.h>
-#include <asm/archrandom.h> #include <asm/cacheflush.h> #include <asm/fixmap.h> #include <asm/kernel-pgtable.h>
On Wed, Aug 5, 2020 at 12:24 PM Guenter Roeck linux@roeck-us.net wrote:
On 8/5/20 11:37 AM, Linus Torvalds wrote:
Because the trivial fix would be something like the appended, which is the right thing to do anyway.
Correct.
I'll take that as an Ack, and also remove the crazy reverse include from archrandom.h that most definitely shouldn't be there.
It's now commit 585524081ecd ("random: random.h should include archrandom.h, not the other way around") in my tree, because a grep for "archrandom.h" shows that now the only place it exists is <linux/random.h> and a few files that cannot possibly affect arm64 (because they are on x86 and powerpc, neither of which has that insane reverse include).
Linus
On Wed, Aug 05, 2020 at 12:45:25PM -0700, Linus Torvalds wrote:
On Wed, Aug 5, 2020 at 12:24 PM Guenter Roeck linux@roeck-us.net wrote:
On 8/5/20 11:37 AM, Linus Torvalds wrote:
Because the trivial fix would be something like the appended, which is the right thing to do anyway.
Correct.
I'll take that as an Ack, and also remove the crazy reverse include from archrandom.h that most definitely shouldn't be there.
It's now commit 585524081ecd ("random: random.h should include archrandom.h, not the other way around") in my tree, because a grep for "archrandom.h" shows that now the only place it exists is <linux/random.h> and a few files that cannot possibly affect arm64 (because they are on x86 and powerpc, neither of which has that insane reverse include).
Thanks, I've queued this up for 5.7.y now. Doesn't look relevant for older kernels, but I haven't gotten reports of them not building just yet :)
thanks,
greg k-h
On 8/5/20 12:45 PM, Linus Torvalds wrote:
On Wed, Aug 5, 2020 at 12:24 PM Guenter Roeck linux@roeck-us.net wrote:
On 8/5/20 11:37 AM, Linus Torvalds wrote:
Because the trivial fix would be something like the appended, which is the right thing to do anyway.
Correct.
I'll take that as an Ack, and also remove the crazy reverse include from archrandom.h that most definitely shouldn't be there.
Thanks, appreciated.
It's now commit 585524081ecd ("random: random.h should include archrandom.h, not the other way around") in my tree, because a grep for "archrandom.h" shows that now the only place it exists is <linux/random.h> and a few files that cannot possibly affect arm64 (because they are on x86 and powerpc, neither of which has that insane reverse include).
I tried to build arm64 on current mainline, after reverting the dts patches which cause the build failures there. Builds fine with both gcc 7.4.0 and 9.3.0. 5.7.14-rc2 builds as well with both old and new compilers. So hopefully we are fine.
Guenter
Hello!
On Wed, 5 Aug 2020 at 13:37, Linus Torvalds torvalds@linux-foundation.org wrote:
On Wed, Aug 5, 2020 at 11:24 AM Guenter Roeck linux@roeck-us.net wrote:
Same with older versions of gcc. I don't see the problem with the mainline kernel.
https://www.youtube.com/watch?v=-b5aW08ivHU
I think this is caused by more recursive includes. arch/arm64/include/asm/archrandom.h includes include/linux/random.h which includes arch/arm64/include/asm/archrandom.h to get the definition of arch_get_random_seed_long_early (which it won't get because of the recursion).
What I don't really understand is how this works with new versions of gcc.
Is that the only place it triggers?
Yes
Because the trivial fix would be something like the appended, which is the right thing to do anyway.
Linus
diff --git a/arch/arm64/kernel/kaslr.c b/arch/arm64/kernel/kaslr.c index 07c4c8cc4a67..9ded4237e1c1 100644 --- a/arch/arm64/kernel/kaslr.c +++ b/arch/arm64/kernel/kaslr.c @@ -11,8 +11,8 @@ #include <linux/sched.h> #include <linux/types.h> #include <linux/pgtable.h> +#include <linux/random.h>
-#include <asm/archrandom.h> #include <asm/cacheflush.h> #include <asm/fixmap.h> #include <asm/kernel-pgtable.h>
Tested-by: Daniel Díaz daniel.diaz@linaro.org
This patch works fine. Built with gcc 7.3.0 and glibc 2.27.
Greetings!
Daniel Díaz daniel.diaz@linaro.org
On Wed, 05 Aug 2020 17:52:27 +0200, Greg Kroah-Hartman wrote:
This is the start of the stable review cycle for the 5.7.14 release. There are 6 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let me know.
Responses should be made by Fri, 07 Aug 2020 15:34:53 +0000. Anything received after that time might be too late.
The whole patch series can be found in one patch at: https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.7.14-rc1.... or in the git tree and branch at: git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.7.y and the diffstat can be found below.
thanks,
greg k-h
All tests passing for Tegra ...
Test results for stable-v5.7: 11 builds: 11 pass, 0 fail 26 boots: 26 pass, 0 fail 56 tests: 56 pass, 0 fail
Linux version: 5.7.14-rc1-g3bd8d605f0dc Boards tested: tegra124-jetson-tk1, tegra186-p2771-0000, tegra194-p2972-0000, tegra20-ventana, tegra210-p2371-2180, tegra210-p3450-0000, tegra30-cardhu-a04
Jon