Based on the merges, configs in the gki_defconfig got shuffled around.
Fix this.
Fixes: 7d2521f10a ("Merge 3604a7f568 ("Merge tag 'v6.1-p1' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6") into android-mainline")
Signed-off-by: Will McVicker <willmcvicker@google.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I5e4c534b39d459a3906ce6f6dc99946251766070
Commit f73edc8951 ("kbuild: unify two modpost invocations") introduced
a typo (moudle.symvers-if-present) which results in the kernel's
Module.symvers to not be included as a prerequisite for
$(KBUILD_EXTMOD)/Module.symvers. Fix the typo to restore the intended
functionality.
Bug: 253726452
Signed-off-by: Will McVicker <willmcvicker@google.com>
Change-Id: Ib8d739744f0f3c925a031ad501535537e351f3bd
The toybox grep doesn't support the longer '--file=FILE' command line
argument which was introduced in commit ce697ccee1 ("kbuild: remove
head-y syntax"). So update Makefile to use '-f FILE' to fix the
compiling error:
grep: Unknown option 'file=.../common/scripts/head-object-list.txt'
(see "grep --help")
Bug: 253726452
Signed-off-by: Will McVicker <willmcvicker@google.com>
Change-Id: Ie42b9edfafc04c37f657dc07f04af39d20aa8248
The modpost build phase was refactored upstream in commit f73edc8951
("kbuild: unify two modpost invocations"). The new implementation does
not generate a vmlinux.symvers which our existing mixed build
implementation depends upon to match the KMI between the modules and GKI
kernel (via depmod). Since the Module.symvers is equal to the
vmlinux.symvers + modules-only.symvers, this patch adds support to
generate the vmlinux.symvers in order to continue using the existing
mixed build implementation.
Just a couple of notes:
1) This allows us to use the same mixed build implementation for
android14-6.1 and android14-5.15 without making any build tooling
changes.
2) This implementation won't catch build-time vendor changes to GKI
Module CRCs during modpost. This is due to the fact that we are
only using the vmlinux.symvers from the GKI kernel pass and not
including the CRCs for the GKI modules.
Bug: 253726452
Signed-off-by: Will McVicker <willmcvicker@google.com>
Change-Id: I4b964434d02abbcdb694d3e03bfa4dc2d5a81f85
Steps on the way to 6.1-rc1
Resolves merge conflicts in:
Makefile
scripts/Makefile.modfinal
scripts/Makefile.modpost
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I8578b7f47932c7c57126531e5251daea07cc551e
Signed-off-by: Will McVicker <willmcvicker@google.com>
Commit f78a03f6e2 ("mm/slab_common: remove CONFIG_NUMA ifdefs for
common kmalloc functions") added back the __alloc_size(1) attribute to
__kmalloc_node_track_caller() which was removed in commit 93dd04ab0b
("slab: remove __alloc_size attribute from __kmalloc_track_caller") due
to causing a kernal panic when using the clang compiler. Let's remove it
again since we are hitting the same kernel panic.
The Clang team is still investigating this issue. Refer to
https://github.com/ClangBuiltLinux/linux/issues/1599 for more details.
Bug: 220186325
Signed-off-by: Will McVicker <willmcvicker@google.com>
Change-Id: I2ca64ab68e7c96032924f0ee2bc00a32db1c19f7
This reverts commit 4d1ac6a160 as it
causes merge conflicts, and build conflicts in 6.1-rc1 due to upstream
cpuset changes. If this is needed in 6.1, it will have to be reworked
and forward ported in a different way as the structure information has
been changed in 6.1.
Bug: 174125747
Cc: Satya Durga Srinivasu Prabhala <satyap@codeaurora.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: Iedc328c351830b8b338efb4642aac656b00c5a2a
This reverts commit c8dc4422c6. It causes
merge conflicts with 6.1-rc1. If this is still needed in 6.1, it can
come back after 6.1-rc1 is merged.
Bug: 174125747
Bug: 120444281
Cc: Dmitry Shmidt <dimitrysh@google.com>
Cc: Amit Pundir <amit.pundir@linaro.org>
Cc: Satya Durga Srinivasu Prabhala <satyap@codeaurora.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I8b040cf6ba360aad710eb462aabf76d87e803b23
This reverts commit e2db2cceeb.
It causes a build error in 6.1-rc1 as the function being called is no
longer in the kernel tree at all. If this is still needed for 6.1, it
can come back in a workable form.
Bug: 77139736
Bug: 120440023
Cc: Colin Cross <ccross@android.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I58cee0c364a54e2662efa73e084261a2490f13ba
The merge of the upstream scheduler changes in 6.1-rc1 caused some .h
files to be moved around which broke the sched/vendor_hooks.c file. Fix
this up by adding the needed .h file to the vendor_hooks.c file.
Fixes: c0ccaa13ae ("Merge 30c999937f ("Merge tag 'sched-core-2022-10-07' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip") into android-mainline")
Cc: Todd Kjos <tkjos@google.com>
Cc: Suren Baghdasaryan <surenb@google.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I7f52882f3285eec41443bebea373159e08af2929
This reverts commit 6f8adeb751 as it
causes a lot of merge conflicts in the 6.1-rc1 scheduler merge. If this
is still needed, it can be brought back after 6.1-rc1 is merged.
Bug: 200103201
Bug: 243793188
Cc: Ashay Jaiswal <quic_ashayj@quicinc.com>
Cc: Sai Harshini Nimmala <quic_snimmala@quicinc.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I11391151c662920771bb8d4d605bfef728a7a6e8
This reverts commit 1eea1cbdd3 as it
causes a lot of merge conflicts with the scheduler changes in 6.1-rc1.
If this is still needed, it can be added back after 6.1-rc1 is merged.
Bug: 184219858
Cc: Choonghoon Park <choong.park@samsung.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I5b92fefb21e605a1edb36f4fb89e2334ac489b4e
This reverts commit efd8dbe42d as it
conflicts in large ways with the scheduler changes in 6.1-rc1. If this
is still needed, it can be added back after the 6.1-rc1 merge is
complete.
Bug: 175808144
Cc: Choonghoon Park <choong.park@samsung.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I2beea9e233ae46289b40162c8e26dc6db919e7a9
This reverts commit fd84c02872 as it
conflicts with upstream scheduler changes in 6.1-rc1 in a very large
way. If it is still needed here, it must be reworked and added back
again.
Bug: 188684133
Cc: Huang Yiwei <hyiwei@codeaurora.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: Iad842fe0f22204570343b94c870589430e46b7cf
Steps on the way to 6.1-rc1
Resolves merge conflicts in:
arch/arm64/Makefile
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I86d958d92b2441938f4dde17a0f330b8491fec7e
Steps on the way to 6.1-rc1
Resolves conflicts in:
drivers/misc/Makefile
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I94b3e85406106c9746ae026972d855f7910a0df2
Steps on the way to 6.1-rc1
Resolves conflicts in:
drivers/ufs/core/ufshcd.c
include/ufs/ufshcd.h
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: Ic4a9c1e9a22a8aae818bf726e5fd8433f3a80dfa
Effectively a revert of
commit ad312f95d4 ("fs/select: avoid clang stack usage warning")
Various configs can still push the stack useage of core_sys_select()
over the CONFIG_FRAME_WARN threshold (1024B on 32b targets).
fs/select.c:619:5: error: stack frame size of 1048 bytes in function
'core_sys_select' [-Werror,-Wframe-larger-than=]
core_sys_select() has a large stack allocation for `stack_fds` where it
tries to do something equivalent to "small string optimization" to
potentially avoid a kmalloc.
core_sys_select() calls do_select() which has another potentially large
stack allocation, `table`. Both of these values depend on
FRONTEND_STACK_ALLOC.
Mix those two large allocation with register spills which are
exacerbated by various configs and compiler versions and we can just
barely exceed the 1024B limit.
Rather than keep trying to find the right value of MAX_STACK_ALLOC or
FRONTEND_STACK_ALLOC, mark do_select() as noinline_for_stack.
The intent of FRONTEND_STACK_ALLOC is to help potentially avoid a
dynamic memory allocation. In that spirit, restore the previous
threshold but separate the stack frames.
Many tests of various configs for different architectures and various
versions of GCC were performed; do_select() was never inlined into
core_sys_select() or compat_core_sys_select(). The kernel is built with
the GCC specific flag `-fconserve-stack` which can limit inlining
depending on per-target thresholds of callee stack size, which helps
avoid the issue when using GCC. Clang is being more aggressive and not
considering the stack size when decided whether to inline or not. We may
consider using the clang-16+ flag `-finline-max-stacksize=` in the
future.
Link: https://lore.kernel.org/lkml/20221006222124.aabaemy7ofop7ccz@google.com/
Fixes: ad312f95d4 ("fs/select: avoid clang stack usage warning")
Suggested-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Nick Desaulniers <ndesaulniers@google.com>
Bug: 250930332
Link: https://lore.kernel.org/llvm/20221011205547.14553-1-ndesaulniers@google.com/
Change-Id: I97d68bd05ec3ae5f6c09fc29055b9f88735c8cd6
clang-15's ability to elide loops completely became more aggressive when
it can deduce how a variable is being updated in a loop. Counting down
one variable by an increment of another can be replaced by a modulo
operation.
For 64b variables on 32b ARM EABI targets, this can result in the
compiler generating calls to __aeabi_uldivmod, which it does for a do
while loop in float64_rem().
For the kernel, we'd generally prefer that developers not open code 64b
division via binary / operators and instead use the more explicit
helpers from div64.h. On arm-linux-gnuabi targets, failure to do so can
result in linkage failures due to undefined references to
__aeabi_uldivmod().
While developers can avoid open coding divisions on 64b variables, the
compiler doesn't know that the Linux kernel has a partial implementation
of a compiler runtime (--rtlib) to enforce this convention.
It's also undecidable for the compiler whether the code in question
would be faster to execute the loop vs elide it and do the 64b division.
While I actively avoid using the internal -mllvm command line flags, I
think we get better code than using barrier() here, which will force
reloads+spills in the loop for all toolchains.
Link: https://github.com/ClangBuiltLinux/linux/issues/1666
Reported-by: Nathan Chancellor <nathan@kernel.org>
Reviewed-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Nick Desaulniers <ndesaulniers@google.com>
Bug: 250930332
Link: https://lore.kernel.org/lkml/20221010225342.3903590-1-ndesaulniers@google.com/
Change-Id: I038f06e43420e72927956133a8fe39a3db21a9db
(without this net tests fail, CONFIG_GKI_HACKS_TO_FIX
doesn't work, as it causes compilation failures due
to enabling tons of other things)
Bug: 252915518
Test: TreeHugger, manually with uml net nests
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I9dae7f6be3828a1bdb71560dd9126ebed5cda9e5
Steps on the way to 6.1-rc1
Resolves merge conflicts in:
kernel/power/suspend.c
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I1a8e29f82573bc9927adb04a9de5ef9162062653