Commit Graph

1030883 Commits

Author SHA1 Message Date
Michael Bestas
42fc85e576
Merge tag 'ASB-2024-04-05_12-5.10' of https://android.googlesource.com/kernel/common into android13-5.10-waipio
https://source.android.com/docs/security/bulletin/2024-04-01

* tag 'ASB-2024-04-05_12-5.10' of https://android.googlesource.com/kernel/common: (442 commits)
  FROMLIST: binder: check offset alignment in binder_get_object()
  ANDROID: enable CONFIG_USB_XHCI_PCI_RENESAS in gki_defconfig
  UPSTREAM: usb: dwc3: core: set force_gen1 bit in USB31 devices if max speed is SS
  ANDROID: userfaultfd: abort uffdio ops if mmap_lock is contended
  ANDROID: userfaultfd: add MMAP_TRYLOCK mode for COPY/ZEROPAGE
  UPSTREAM: coresight: etm4x: Remove bogous __exit annotation for some functions
  UPSTREAM: ASoC: hdmi-codec: register hpd callback on component probe
  UPSTREAM: usb: typec: tcpm: Fix NULL pointer dereference in tcpm_pd_svdm()
  UPSTREAM: mm/damon/vaddr-test: fix memory leak in damon_do_test_apply_three_regions()
  UPSTREAM: task_work: add kerneldoc annotation for 'data' argument
  UPSTREAM: x86/purgatory: Remove LTO flags
  UPSTREAM: tcpm: Avoid soft reset when partner does not support get_status
  UPSTREAM: block/mq-deadline: use correct way to throttling write requests
  UPSTREAM: usb: typec: tcpm: Fix response to vsafe0V event
  UPSTREAM: clk: Fix memory leak in devm_clk_notifier_register()
  UPSTREAM: selftests: damon: add config file
  ANDROID: abi_gki_aarch64_qcom: Export trace_android_vh_try_fixup_sea
  ANDROID: arm64: Call fixup_exception() within do_sea()
  ANDROID: userfaultfd: allow SPF for UFFD_FEATURE_SIGBUS on private+anon
  ANDROID: GKI: db845c: Update symbols list and ABI
  ...

 Conflicts:
	Documentation/devicetree/bindings/nvmem/mxs-ocotp.yaml
	Documentation/devicetree/bindings~HEAD
	arch/powerpc/lib/Makefile

Change-Id: I6524da89cb855824fa28a95396d3683af4a10046
2024-05-23 16:41:55 +03:00
Michael Bestas
141607153c
Merge tag 'KERNEL.PLATFORM.1.0.r1-17700-kernel.0' of https://git.codelinaro.org/clo/la/kernel/msm-5.10 into android13-5.10-waipio
"KERNEL.PLATFORM.1.0.r1-17700-kernel.0"

* tag 'KERNEL.PLATFORM.1.0.r1-17700-kernel.0' of https://git.codelinaro.org/clo/la/kernel/msm-5.10: (1188 commits)
  drivers: qcom: Register qcom_ipcc for hibernation
  drivers: Restore kaslr offset during hibernation
  drivers: qcom: Add support to freeze-restore watchdog
  regulator: Enable rpmh resending requests in deepsleep via dt property
  icnss2: Add changes to be pick BDF from qca6755
  regulator: rpmh: Add support for resending RPMh requests after Deepsleep
  msm: synx: IPCLite: IPCLite Hibernate changes
  Delay after port closure when usecase ended for wcn6x5x
  Build.config : Update RSA to 4096
  dwc3-msm-core: Remove usage of DWC31_LINK_GDBGLTSSM with POR
  msm: kgsl: Hold fault lock while accessing context faults
  arm64: defconfig: neo: Enable hibernation support for KGSL
  msm: eva: User after free fix in msm_cvp_mark_user_persist
  soc: qcom: add new soc id for PARROTPRO
  icnss2: Add is_idle_shutdown atomic variable to solve race condition
  soc: qcom: pmic-pon-log: do not panic for FAULT_REASON2=FAULT_N event
  msm: kgsl: Add hibernation support in KGSL for A6xx
  msm: ADSPRPC: Add non-NULL check for fastrpc file before accessing
  adsprpc: Enabling the hibernation support
  usb: dwc3: dwc3-msm-core: Mark dwc3 core device as syscore device
  ...

Change-Id: I9d0a9cbbe2a6688620f120d996affb98d64efd56
2024-05-23 16:36:39 +03:00
Pranav Vashi
931b1f85bd
dma: qcom: bam_dma: Fix debugfs dependency
Change-Id: I84e8cce643a8bb2eda73e9d0ef0e1181f1639e1f
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
2024-05-19 03:22:44 +03:00
Pranav Vashi
a6b5a9953a
pci: msm: Fix debugfs dependency
Change-Id: Ida88815fe7cade9736b91ef42e78ee1b4519267b
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
2024-05-19 03:22:44 +03:00
Pranav Vashi
a5348c0d45
mhi: netdev: Fix debugfs dependency
Change-Id: I9068209ff67a58af90e6b9f7c76476fc6f5e501d
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
2024-05-19 03:22:43 +03:00
Pranav Vashi
9539e91cb4
soc: qcom: tmecom: Fix debugfs dependency
Change-Id: I785645dd26935c9fece014238588da1b38aeb9b8
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
2024-05-19 03:22:43 +03:00
Bruno Martins
6de5e1fa2c
ARM64: debugfs.config: Disable CMA_DEBUGFS and PAGE_PINNER configs
Otherwise DEBUG_FS config is selected.

Change-Id: Iffaf0764dbdca7e92e2177eddc2a5e7c3446389e
2024-05-19 03:22:43 +03:00
Neeraj Upadhyay
63285b1569
defconfig: msm: Add config fragment for DEBUG_FS disablement
Add a config fragment for disabling DEBUG_FS.

Change-Id: I877c74955e467002976c3bac6c946183c8be7043
Signed-off-by: Neeraj Upadhyay <neeraju@codeaurora.org>
2024-05-19 03:22:43 +03:00
Pranav Vashi
c79ad6fbe9
interconnect: qcom: icc-rpmh: Add guard for debug code
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Change-Id: Ie440ecaa7fcb7eab9cd4fa24134f894eba5bd905
2024-05-19 03:22:43 +03:00
Linux Build Service Account
57980ba91b Merge 7ef0bdc2d1 on remote branch
Change-Id: I3af15249588c8dff3dfbe7a0365efbe29472ed6c
2024-05-16 02:23:39 -07:00
qctecmdr
7ef0bdc2d1 Merge "drivers: Restore kaslr offset during hibernation" 2024-05-09 02:24:31 -07:00
qctecmdr
dbe2322d04 Merge "drivers: qcom: Add support to freeze-restore watchdog" 2024-05-09 02:24:30 -07:00
qctecmdr
5170182552 Merge "drivers: qcom: Register qcom_ipcc for hibernation" 2024-05-09 02:24:30 -07:00
qctecmdr
7bb3a8fbfe Merge "usb: dwc3: dwc3-msm-core: Mark dwc3 core device as syscore device" 2024-05-07 22:41:31 -07:00
Auditya Bhattaram
6e975039a7 drivers: qcom: Register qcom_ipcc for hibernation
Register qcom_ipcc for hibernation.

Change-Id: I942e672133bcf80ac18380a6fc11fcee6735c8ab
Signed-off-by: Auditya Bhattaram <quic_audityab@quicinc.com>
Signed-off-by: Niranjan Reddy Dumbala <quic_dnreddy@quicinc.com>
Signed-off-by: Kamati Srinivas <quic_kamasrin@quicinc.com>
2024-05-07 22:06:14 -07:00
Canfeng Zhuang
8863800660 drivers: Restore kaslr offset during hibernation
kaslr offset in IMEM is required to decode the ram dumps with
kaslr enabled kernel. Add hibernation callback to update IMEM cookie
during hibernation restore. Use syscore callbacks in this
case to restore the value as soon as possible.

Change-Id: I2b2f4b023201927366ac9cab0d30dd47dce95f72
Signed-off-by: Canfeng Zhuang <quic_czhuang@quicinc.com>
Signed-off-by: Auditya Bhattaram <quic_audityab@quicinc.com>
Signed-off-by: Kamati Srinivas <quic_kamasrin@quicinc.com>
2024-05-08 07:17:19 +05:30
Divisha Bisht
8ecd6cd9e9
smcinvoke: Rename size_add to smci_size_add
Rename size_add api of smcivoke driver to smci_size_add, as
smcinvoke's size_add is giving redefinition error with the size_add
api recently added in upstream patch 'overflow: Implement size_t
saturating arithmetic helpers'.
cherry-pick hash 4dab23059f51e324451b8fe02debc3df8812afd8.

Change-Id: I864c3065e63f53a3f4473edc24dc96d067dbfe60
Signed-off-by: Divisha Bisht <quic_divibish@quicinc.com>
2024-05-08 03:00:12 +03:00
Konrad Dybcio
9264cf242f
soc: qcom: minidump_log: Fix compilation
fix error: a function declaration without a prototype is deprecated in
all versions of C [-Werror,-Wstrict-prototypes]

Change-Id: Iabf440acd54db0c018554c2f833fbb6bb4e281a1
2024-05-08 03:00:12 +03:00
Arian
5a78a75e6a
hwtracing: coresight: Fix potential buffer overflow
Change-Id: I7aaba80fbbf85d355c9383a9be1f423bd91c3aa6
2024-05-08 03:00:12 +03:00
Carlos Llamas
8dd8c6ddec
scripts/decode_stacktrace.sh: optionally use LLVM utilities
GNU's addr2line can have problems parsing a vmlinux built with LLVM,
particularly when LTO was used. In order to decode the traces correctly
this patch adds the ability to switch to LLVM's utilities readelf and
addr2line. The same approach is followed by Will in [1].

Before:
  $ scripts/decode_stacktrace.sh vmlinux < kernel.log
  [17716.240635] Call trace:
  [17716.240646] skb_cow_data (??:?)
  [17716.240654] esp6_input (ld-temp.o:?)
  [17716.240666] xfrm_input (ld-temp.o:?)
  [17716.240674] xfrm6_rcv (??:?)
  [...]

After:
  $ LLVM=1 scripts/decode_stacktrace.sh vmlinux < kernel.log
  [17716.240635] Call trace:
  [17716.240646] skb_cow_data (include/linux/skbuff.h:2172 net/core/skbuff.c:4503)
  [17716.240654] esp6_input (net/ipv6/esp6.c:977)
  [17716.240666] xfrm_input (net/xfrm/xfrm_input.c:659)
  [17716.240674] xfrm6_rcv (net/ipv6/xfrm6_input.c:172)
  [...]

Note that one could set CROSS_COMPILE=llvm- instead to hack around this
issue. However, doing so can break the decodecode routine as it will
force the selection of other LLVM utilities down the line e.g. llvm-as.

[1] https://lore.kernel.org/all/20230914131225.13415-3-will@kernel.org/

Cc: Will Deacon <will@kernel.org>
Cc: John Stultz <jstultz@google.com>
Cc: Masahiro Yamada <masahiroy@kernel.org>
Signed-off-by: Carlos Llamas <cmllamas@google.com>
2024-05-08 03:00:11 +03:00
Srinivasarao Pathipati
00776106b7
Kbuild: skip cc-wrapper while finding version info
The version check script introduced by 'commit 83f55e6f29
("kbuild: check the minimum assembler version in Kconfig")'
fails with cc-wrapper so use build tools directly to get
version details.

Change-Id: I1019b49eff5a885ad8e36a421dce6119862b0fb1
Signed-off-by: Srinivasarao Pathipati <quic_c_spathi@quicinc.com>
2024-05-08 03:00:11 +03:00
Masahiro Yamada
89c2ba9ce4
BACKPORT: UPSTREAM: kbuild: rename cmd_{bzip2,lzma,lzo,lz4,xzkern,zstd22}
GZIP-compressed files end with 4 byte data that represents the size
of the original input. The decompressors (the self-extracting kernel)
exploit it to know the vmlinux size beforehand. To mimic the GZIP's
trailer, Kbuild provides cmd_{bzip2,lzma,lzo,lz4,xzkern,zstd22}.
Unfortunately these macros are used everywhere despite the appended
size data is only useful for the decompressors.

There is no guarantee that such hand-crafted trailers are safely ignored.
In fact, the kernel refuses compressed initramdfs with the garbage data.
That is why usr/Makefile overrides size_append to make it no-op.

To limit the use of such broken compressed files, this commit renames
the existing macros as follows:

  cmd_bzip2   --> cmd_bzip2_with_size
  cmd_lzma    --> cmd_lzma_with_size
  cmd_lzo     --> cmd_lzo_with_size
  cmd_lz4     --> cmd_lz4_with_size
  cmd_xzkern  --> cmd_xzkern_with_size
  cmd_zstd22  --> cmd_zstd22_with_size

To keep the decompressors working, I updated the following Makefiles
accordingly:

  arch/arm/boot/compressed/Makefile
  arch/h8300/boot/compressed/Makefile
  arch/mips/boot/compressed/Makefile
  arch/parisc/boot/compressed/Makefile
  arch/s390/boot/compressed/Makefile
  arch/sh/boot/compressed/Makefile
  arch/x86/boot/compressed/Makefile

I reused the current macro names for the normal usecases; they produce
the compressed data in the proper format.

I did not touch the following:

  arch/arc/boot/Makefile
  arch/arm64/boot/Makefile
  arch/csky/boot/Makefile
  arch/mips/boot/Makefile
  arch/riscv/boot/Makefile
  arch/sh/boot/Makefile
  kernel/Makefile

This means those Makefiles will stop appending the size data.

I dropped the 'override size_append' hack from usr/Makefile.

Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Reviewed-by: Nicolas Schier <n.schier@avm.de>

Bug: 135791357
(cherry picked from commit 7ce7e984ab2b218d6e92d5165629022fe2daf9ee
 https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master)
Change-Id: I3524909ef3daab85f7d22afdebc2e5bbfd5e5cf3
[szuweilin: Resolved the conflict about non-existing zstd22 in arch/s390/boot/compressed/Makefile]
Signed-off-by: SzuWei Lin <szuweilin@google.com>
(cherry picked from commit dd18c291f9a958a1e285ce0e84ec6b5879fe10ab)
2024-05-08 03:00:11 +03:00
Nick Desaulniers
e265fe3dcd
BACKPORT: scripts/Makefile.clang: default to LLVM_IAS=1
LLVM_IAS=1 controls enabling clang's integrated assembler via
-integrated-as. This was an explicit opt in until we could enable
assembler support in Clang for more architecures. Now we have support
and CI coverage of LLVM_IAS=1 for all architecures except a few more
bugs affecting s390 and powerpc.

This commit flips the default from opt in via LLVM_IAS=1 to opt out via
LLVM_IAS=0.  CI systems or developers that were previously doing builds
with CC=clang or LLVM=1 without explicitly setting LLVM_IAS must now
explicitly opt out via LLVM_IAS=0, otherwise they will be implicitly
opted-in.

This finally shortens the command line invocation when cross compiling
with LLVM to simply:

$ make ARCH=arm64 LLVM=1

Signed-off-by: Nick Desaulniers <ndesaulniers@google.com>
Reviewed-by: Nathan Chancellor <nathan@kernel.org>
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Bug: 209655537
[nd: conflict in Documentation/kbuild/llvm.rst]
(cherry picked from commit f12b034afeb3a977bbb1c6584dedc0f3dc666f14)
Change-Id: I026d42aa40c83eb149c8e39fe91a0b0164ff71b0
2024-05-08 03:00:11 +03:00
Nick Desaulniers
e075bc9c72
UPSTREAM: Makefile: infer --target from ARCH for CC=clang
We get constant feedback that the command line invocation of make is too
long when compiling with LLVM. CROSS_COMPILE is helpful when a toolchain
has a prefix of the target triple, or is an absolute path outside of
$PATH.

Since a Clang binary is generally multi-targeted, we can infer a given
target from SRCARCH/ARCH.  If CROSS_COMPILE is not set, simply set
--target= for CLANG_FLAGS, KBUILD_CFLAGS, and KBUILD_AFLAGS based on
$SRCARCH.

Previously, we'd cross compile via:
$ ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- make LLVM=1 LLVM_IAS=1
Now:
$ ARCH=arm64 make LLVM=1 LLVM_IAS=1

For native builds (not involving cross compilation) we now explicitly
specify a target triple rather than rely on the implicit host triple.

Link: https://github.com/ClangBuiltLinux/linux/issues/1399
Suggested-by: Arnd Bergmann <arnd@kernel.org>
Suggested-by: Linus Torvalds <torvalds@linux-foundation.org>
Suggested-by: Masahiro Yamada <masahiroy@kernel.org>
Suggested-by: Nathan Chancellor <nathan@kernel.org>
Acked-by: Arnd Bergmann <arnd@kernel.org>
Reviewed-by: Nathan Chancellor <nathan@kernel.org>
Signed-off-by: Nick Desaulniers <ndesaulniers@google.com>
Acked-by: Miguel Ojeda <ojeda@kernel.org>
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Bug: 209655537
(cherry picked from commit 231ad7f409f16b9f9505f69e058dff488a7e6bde)
Change-Id: I6f61a4937e6af22deda66eeaac6c667c889dc683
2024-05-08 03:00:11 +03:00
Nick Desaulniers
26a02d4186
BACKPORT: Makefile: move initial clang flag handling into scripts/Makefile.clang
With some of the changes we'd like to make to CROSS_COMPILE, the initial
block of clang flag handling which controls things like the target triple,
whether or not to use the integrated assembler and how to find GAS,
and erroring on unknown warnings is becoming unwieldy. Move it into its
own file under scripts/.

Reviewed-by: Nathan Chancellor <nathan@kernel.org>
Signed-off-by: Nick Desaulniers <ndesaulniers@google.com>
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Bug: 209655537
[nd: conflict in MAINTAINERS]
(cherry picked from commit 6f5b41a2f5a6314614e286274eb8e985248aac60)
Change-Id: I350ba8aaf924f7b373d25ef67260e6373a405d12
2024-05-08 03:00:11 +03:00
Masahiro Yamada
a419239633
UPSTREAM: kbuild: warn if a different compiler is used for external module builds
It is always safe to use the same compiler for the kernel and external
modules, but in reality, some distributions such as Fedora release a
different version of GCC from the one used for building the kernel.

There was a long discussion about mixing different compilers [1].

I do not repeat it here, but at least, showing a heads up in that
case is better than nothing.

Linus suggested [2]:
  And a warning might be more palatable even if different compiler
  version work fine together. Just a heads up on "it looks like you
  might be mixing compiler versions" is a valid note, and isn't
  necessarily wrong. Even when they work well together, maybe you want
  to have people at least _aware_ of it.

This commit shows a warning unless the compiler is exactly the same.

  warning: the compiler differs from the one used to build the kernel
    The kernel was built by: gcc (GCC) 11.1.1 20210531 (Red Hat 11.1.1-3)
    You are using:           gcc (GCC) 11.2.1 20210728 (Red Hat 11.2.1-1)

Check the difference, and if it is OK with you, please proceed at your
risk.

To avoid the locale issue as in commit bcbcf50f5218 ("kbuild: fix
ld-version.sh to not be affected by locale"), pass LC_ALL=C to
"$(CC) --version".

[1] https://lore.kernel.org/linux-hardening/efe6b039a544da8215d5e54aa7c4b6d1986fc2b0.1611607264.git.jpoimboe@redhat.com/
[2] https://lore.kernel.org/lkml/CAHk-=wgjwhDy-y4mQh34L+2aF=n6BjzHdqAW2=8wri5x7O04pA@mail.gmail.com/

Acked-by: Josh Poimboeuf <jpoimboe@redhat.com>
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
(cherry picked from commit 6072b2c49d23eb69b6dca06ad095d3a9633b2b80)
Bug: 209655537
Signed-off-by: Nick Desaulniers <ndesaulniers@google.com>
Change-Id: Ibbeeca6c7139f1d03621a8ba2137bafa32c14474
2024-05-08 03:00:10 +03:00
Masahiro Yamada
d52d26e4db
UPSTREAM: kbuild: split cc-option and friends to scripts/Makefile.compiler
scripts/Kbuild.include is included everywhere, but macros such as
cc-option are needed by build targets only.

For example, when 'make clean' traverses the tree, it does not need
to evaluate $(call cc-option,).

Split cc-option, ld-option, etc. to scripts/Makefile.compiler, which
is only included from the top Makefile and scripts/Makefile.build.

Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Bug: 209655537
(cherry picked from commit 57fd251c789647552d32d2fc51bedd4f90d70f9f)
Signed-off-by: Nick Desaulniers <ndesaulniers@google.com>
Change-Id: I7cef781922a192a9bcd21152a74ff2cec0527ab0
2024-05-08 03:00:10 +03:00
Masahiro Yamada
7c3ed3654c
UPSTREAM: kbuild: replace sed with $(subst ) or $(patsubst )
For simple text replacement, it is better to use a built-in function
instead of sed if possible. You can save one process forking.

I do not mean to replace all sed invocations because GNU Make itself
does not support regular expression (unless you use guile).

I just replaced simple ones.

Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
(cherry picked from commit 6e0839fda3f8598b164a7f23f3eec039e2db5fbc)
Bug: 209655537
Signed-off-by: Nick Desaulniers <ndesaulniers@google.com>
Change-Id: I92c893dfb17055db0b8a8ca2f39ddfa5f31a118d
2024-05-08 03:00:10 +03:00
Nathan Chancellor
16e4bf32d8
UPSTREAM: Makefile: Only specify '--prefix=' when building with clang + GNU as
When building with LLVM_IAS=1, there is no point to specifying
'--prefix=' because that flag is only used to find GNU cross tools,
which will not be used indirectly when using the integrated assembler.
All of the tools are invoked directly from PATH or a full path specified
via the command line, which does not depend on the value of '--prefix='.

Sharing commands to reproduce issues becomes a little bit easier without
a '--prefix=' value because that '--prefix=' value is specific to a
user's machine due to it being an absolute path.

Some further notes from Fangrui Song:

  clang can spawn GNU as (if -f?no-integrated-as is specified) and GNU
  objcopy (-f?no-integrated-as and -gsplit-dwarf and -g[123]).
  objcopy is only used for GNU as assembled object files.
  With integrated assembler, the object file streamer creates .o and
  .dwo simultaneously.
  With GNU as, two objcopy commands are needed to extract .debug*.dwo to
  .dwo files && another command to remove .debug*.dwo sections.

A small consequence of this change (to keep things simple) is that
'--prefix=' will always be specified now, even with a native build, when
it was not before. This should not be an issue due to the way that the
Makefile searches for the prefix (based on elfedit's location). This
ends up improving the experience for host builds because PATH is better
respected and matches GCC's behavior more closely. See the below thread
for more details:

https://lore.kernel.org/r/20210205213651.GA16907@Ryzen-5-4500U.localdomain/

Signed-off-by: Nathan Chancellor <nathan@kernel.org>
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
(cherry picked from commit eec08090bcc113643522d4272dc0b945045aba74)
Bug: 209655537
Signed-off-by: Nick Desaulniers <ndesaulniers@google.com>
Change-Id: I90f232a1551afb9118176a61ac5de38384a171fd
2024-05-08 03:00:10 +03:00
Nathan Chancellor
f452204bd8
UPSTREAM: Makefile: Remove '--gcc-toolchain' flag
This flag was originally added to allow clang to find the GNU cross
tools in commit 785f11aa59 ("kbuild: Add better clang cross build
support"). This flag was not enough to find the tools at times so
'--prefix' was added to the list in commit ef8c4ed9db ("kbuild: allow
to use GCC toolchain not in Clang search path") and improved upon in
commit ca9b31f6bb ("Makefile: Fix GCC_TOOLCHAIN_DIR prefix for Clang
cross compilation"). Now that '--prefix' specifies a full path and
prefix, '--gcc-toolchain' serves no purpose because the kernel builds
with '-nostdinc' and '-nostdlib'.

This has been verified with self compiled LLVM 10.0.1 and LLVM 13.0.0 as
well as a distribution version of LLVM 11.1.0 without binutils in the
LLVM toolchain locations.

Link: https://reviews.llvm.org/D97902
Signed-off-by: Nathan Chancellor <nathan@kernel.org>
Reviewed-by: Fangrui Song <maskray@google.com>
Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
Tested-by: Nick Desaulniers <ndesaulniers@google.com>
Tested-by: Sedat Dilek <sedat.dilek@gmail.com>
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
(cherry picked from commit c91d4e47e10ee4d3163838b1b727fe1d0664115b)
Bug: 209655537
Signed-off-by: Nick Desaulniers <ndesaulniers@google.com>
Change-Id: Ie1f64ed8562964ceba21e402a3d97850f6471508
2024-05-08 03:00:10 +03:00
Nathan Chancellor
0a357f1f78
UPSTREAM: Makefile: Remove # characters from compiler string
When using AMD's Optimizing C/C++ Compiler (AOCC), the build fails due
to a # character in the version string, which is interpreted as a
comment:

$ make CC=clang defconfig init/main.o
include/config/auto.conf.cmd:1374: *** invalid syntax in conditional. Stop.

$ sed -n 1374p include/config/auto.conf.cmd
ifneq "$(CC_VERSION_TEXT)" "AMD clang version 11.0.0 (CLANG: AOCC_2.3.0-Build#85 2020_11_10) (based on LLVM Mirror.Version.11.0.0)"

Remove all # characters in the version string so that the build does not
fail unexpectedly.

Link: https://github.com/ClangBuiltLinux/linux/issues/1298
Reported-by: Michael Fuckner <michael@fuckner.net>
Signed-off-by: Nathan Chancellor <nathan@kernel.org>
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
(cherry picked from commit c75173a26948363bdd11a0d5b90bd012ce4cc2e7)
Bug: 209655537
Signed-off-by: Nick Desaulniers <ndesaulniers@google.com>
Change-Id: Ie2ba7041325f13865b59b43517111674519ce386
2024-05-08 03:00:09 +03:00
Nick Desaulniers
259a852802
UPSTREAM: Makefile: reuse CC_VERSION_TEXT
I noticed we're invoking $(CC) via $(shell) more than once to check the
version.  Let's reuse the first string captured in $CC_VERSION_TEXT.

Signed-off-by: Nick Desaulniers <ndesaulniers@google.com>
[masahiro.yamada:
CC_VERSION_TEXT is assigned by = instead of :=, so this $(shell ) is
evaluated multiple times anyway. The number of $(CC) invocations will
be still the same. Replacing 'grep' with the built-in $(findstring )
will give real performance benefit.]
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
(cherry picked from commit db07562aeac77923370bff4733d8b0e09cbc93c4)
Bug: 209655537
Change-Id: Ib8745c014472a9d63e51e98f9474cced778d57df
2024-05-08 03:00:09 +03:00
Masahiro Yamada
ea808f5a4b
BACKPORT: kbuild: prefix $(srctree)/ to some included Makefiles
VPATH is used in Kbuild to make pattern rules search for prerequisites
in both $(objtree) and $(srctree). Some of *.c, *.S files are not real
sources, but generated by tools such as flex, bison, perl.

In contrast, I doubt the benefit of --include-dir=$(abs_srctree) because
it is always clear which Makefiles are real sources, and which are not.

So, my hope is to add $(srctree)/ prefix to all check-in Makefiles,
then remove --include-dir=$(abs_srctree) flag in the future.

I am touching only some Kbuild core parts for now. Treewide fixes will
be needed to achieve this goal.

Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
(cherry picked from commit 3204a7fb98a3bccd0004ea0f2769fbeadc2c2dba)
[nd: conflict in scripts/Makefile.modpost due to d7a956441fef, which is
itself a backport of 850ded46c642]
Bug: 189327973
Bug: 209655537
Signed-off-by: Nick Desaulniers <ndesaulniers@google.com>
Change-Id: I691d266b68d769ec0fabcc98ed515cfb1cad5ccf
2024-05-08 03:00:09 +03:00
Masahiro Yamada
1b7272961c
UPSTREAM: kbuild: remove ld-version macro
There is no direct user of ld-version; you can use CONFIG_LD_VERSION
if needed.

Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Reviewed-by: Nathan Chancellor <nathan@kernel.org>
Bug: 209655537
(cherry picked from commit 05f6bbf2d714309607d5533f0265a95d037610b4)
Signed-off-by: Nick Desaulniers <ndesaulniers@google.com>
Change-Id: If7f82474beea2822340ee8503de5087336766223
2024-05-08 03:00:09 +03:00
Masahiro Yamada
ba16a70615
UPSTREAM: kbuild: collect minimum tool versions into scripts/min-tool-version.sh
The kernel build uses various tools, many of which are provided by the
same software suite, for example, LLVM and Binutils.

When you raise the minimum version of Clang/LLVM, you need to update
clang_min_version in scripts/cc-version.sh and also lld_min_version in
scripts/ld-version.sh.

Kbuild can handle CC=clang and LD=ld.lld independently, but it does not
make much sense to maintain their versions separately.

Let's create a central place of minimum tool versions so you do not need
to touch multiple files. scripts/min-tool-version.sh prints the minimum
version of the given tool.

Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Reviewed-by: Nathan Chancellor <nathan@kernel.org>
Acked-by: Miguel Ojeda <ojeda@kernel.org>
Tested-by: Sedat Dilek <sedat.dilek@gmail.com>
(cherry picked from commit e24b3ffcf4216d819b52618b6f17ba7410d1d845)
Bug: 210043760
Signed-off-by: Nick Desaulniers <ndesaulniers@google.com>
Change-Id: Iff8e4180d4dd6c1b94423c9f70e78ba4e59233ac
2024-05-08 03:00:09 +03:00
Masahiro Yamada
c49519b3cc
UPSTREAM: kbuild: fix ld-version.sh to not be affected by locale
ld-version.sh checks the output from $(LD) --version, but it has a
problem on some locales.

For example, in Italian:

  $ LC_MESSAGES=it_IT.UTF-8 ld --version | head -n 1
  ld di GNU (GNU Binutils for Debian) 2.35.2

This makes ld-version.sh fail because it expects "GNU ld" for the
BFD linker case.

Add LC_ALL=C to override the user's locale.

BTW, setting LC_MESSAGES=C (or LANG=C) is not enough because it is
ineffective if LC_ALL is set on the user's environment.

Link: https://bugzilla.kernel.org/show_bug.cgi?id=212105
Reported-by: Marco Scardovi
Reported-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Recensito-da: Nick Desaulniers <ndesaulniers@google.com>
Reviewed-by: Nathan Chancellor <nathan@kernel.org>
(cherry picked from commit bcbcf50f521843445c9ea320a0569874f88c4b7a)
Bug: 210043760
Signed-off-by: Nick Desaulniers <ndesaulniers@google.com>
Change-Id: I6199f965c921344d17878ed08f386ac9787e29c1
2024-05-08 03:00:09 +03:00
Bernhard Rosenkränzer
bec918fd61
UPSTREAM: kbuild: Fix ld-version.sh script if LLD was built with LLD_VENDOR
If LLD was built with -DLLD_VENDOR="xyz", ld.lld --version output
will prefix LLD_VENDOR. Since LLD_VENDOR can contain spaces, the
LLD identifier isn't guaranteed to be $2 either.

Adjust the version checker to handle such versions of lld.

Link: https://lore.kernel.org/lkml/20210302221211.1620858-1-bero@lindev.ch/
Signed-off-by: Bernhard Rosenkränzer <bero@lindev.ch>
[masahiro yamada: refactor the code]
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Reviewed-by: Nathan Chancellor <nathan@kernel.org>
Tested-by: Nathan Chancellor <nathan@kernel.org>
(cherry picked from commit 1f09af062556f0610c08e2f3d680a8b8bc40dd48)
Bug: 210043760
Signed-off-by: Nick Desaulniers <ndesaulniers@google.com>
Change-Id: Ic9a5b75cf0e7ffebcc77e81b4402c579dd13f3e2
2024-05-08 03:00:08 +03:00
Masahiro Yamada
4f7b5aed0a
BACKPORT: kbuild: check the minimum linker version in Kconfig
Unify the two scripts/ld-version.sh and scripts/lld-version.sh, and
check the minimum linker version like scripts/cc-version.sh did.

I tested this script for some corner cases reported in the past:

 - GNU ld version 2.25-15.fc23
   as reported by commit 8083013fc3 ("ld-version: Fix it on Fedora")

 - GNU ld (GNU Binutils) 2.20.1.20100303
   as reported by commit 0d61ed17dd ("ld-version: Drop the 4th and
   5th version components")

This script show an error message if the linker is too old:

  $ make LD=ld.lld-9
    SYNC    include/config/auto.conf
  ***
  *** Linker is too old.
  ***   Your LLD version:    9.0.1
  ***   Minimum LLD version: 10.0.1
  ***
  scripts/Kconfig.include:50: Sorry, this linker is not supported.
  make[2]: *** [scripts/kconfig/Makefile:71: syncconfig] Error 1
  make[1]: *** [Makefile:600: syncconfig] Error 2
  make: *** [Makefile:708: include/config/auto.conf] Error 2

I also moved the check for gold to this script, so gold is still rejected:

  $ make LD=gold
    SYNC    include/config/auto.conf
  gold linker is not supported as it is not capable of linking the kernel proper.
  scripts/Kconfig.include:50: Sorry, this linker is not supported.
  make[2]: *** [scripts/kconfig/Makefile:71: syncconfig] Error 1
  make[1]: *** [Makefile:600: syncconfig] Error 2
  make: *** [Makefile:708: include/config/auto.conf] Error 2

Thanks to David Laight for suggesting shell script improvements.

Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Acked-by: Nick Desaulniers <ndesaulniers@google.com>
Reviewed-by: Nathan Chancellor <nathan@kernel.org>
Tested-by: Nathan Chancellor <nathan@kernel.org>
[nd: conflict in scripts/lld-version.sh due to df58fb431a
  ("scripts/lld-version.sh: Rewrite based on upstream ld-version.sh")
  being 5.10 only]
Bug: 210043760
(cherry picked from commit 02aff85922043cf175ebbe5fc3430acfeaeb8393)
Signed-off-by: Nick Desaulniers <ndesaulniers@google.com>
Change-Id: I1618f31566b84dd601ca2c9665f6d341df56537d
2024-05-08 03:00:08 +03:00
Masahiro Yamada
38a74c4bad
UPSTREAM: kbuild: check the minimum compiler version in Kconfig
Paul Gortmaker reported a regression in the GCC version check. [1]
If you use GCC 4.8, the build breaks before showing the error message
"error Sorry, your version of GCC is too old - please use 4.9 or newer."

I do not want to apply his fix-up since it implies we would not be able
to remove any cc-option test. Anyway, I admit checking the GCC version
in <linux/compiler-gcc.h> is too late.

Almost at the same time, Linus also suggested to move the compiler
version error to Kconfig time. [2]

I unified the two similar scripts, gcc-version.sh and clang-version.sh
into cc-version.sh. The old scripts invoked the compiler multiple times
(3 times for gcc-version.sh, 4 times for clang-version.sh). I refactored
the code so the new one invokes the compiler just once, and also tried
my best to use shell-builtin commands where possible.

The new script runs faster.

  $ time ./scripts/clang-version.sh clang
  120000

  real    0m0.029s
  user    0m0.012s
  sys     0m0.021s

  $ time ./scripts/cc-version.sh clang
  Clang 120000

  real    0m0.009s
  user    0m0.006s
  sys     0m0.004s

cc-version.sh also shows an error message if the compiler is too old:

  $ make defconfig CC=clang-9
  *** Default configuration is based on 'x86_64_defconfig'
  ***
  *** Compiler is too old.
  ***   Your Clang version:    9.0.1
  ***   Minimum Clang version: 10.0.1
  ***
  scripts/Kconfig.include:46: Sorry, this compiler is not supported.
  make[1]: *** [scripts/kconfig/Makefile:81: defconfig] Error 1
  make: *** [Makefile:602: defconfig] Error 2

The new script takes care of ICC because we have <linux/compiler-intel.h>
although I am not sure if building the kernel with ICC is well-supported.

[1]: https://lore.kernel.org/r/20210110190807.134996-1-paul.gortmaker@windriver.com
[2]: https://lore.kernel.org/r/CAHk-=wh-+TMHPTFo1qs-MYyK7tZh-OQovA=pP3=e06aCVp6_kA@mail.gmail.com

Fixes: 87de84c914 ("kbuild: remove cc-option test of -Werror=date-time")
Reported-by: Paul Gortmaker <paul.gortmaker@windriver.com>
Suggested-by: Linus Torvalds <torvalds@linux-foundation.org>
Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
Tested-by: Nick Desaulniers <ndesaulniers@google.com>
Reviewed-by: Nathan Chancellor <natechancellor@gmail.com>
Tested-by: Nathan Chancellor <natechancellor@gmail.com>
Reviewed-by: Miguel Ojeda <ojeda@kernel.org>
Tested-by: Miguel Ojeda <ojeda@kernel.org>
Tested-by: Sedat Dilek <sedat.dilek@gmail.com>
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Bug: 210043760
(cherry picked from commit aec6c60a01d3a3170242d6a99372a388e1136dc6)
Signed-off-by: Nick Desaulniers <ndesaulniers@google.com>
Change-Id: I61e4eb8b4ef5466d0ee8c5892973734c98529b17
2024-05-08 03:00:08 +03:00
Masahiro Yamada
bafac02207
UPSTREAM: kbuild: LD_VERSION redenomination
Commit ccbef1674a ("Kbuild, lto: add ld-version and ld-ifversion
macros") introduced scripts/ld-version.sh for GCC LTO.

At that time, this script handled 5 version fields because GCC LTO
needed the downstream binutils. (https://lkml.org/lkml/2014/4/8/272)

The code snippet from the submitted patch was as follows:

    # We need HJ Lu's Linux binutils because mainline binutils does not
    # support mixing assembler and LTO code in the same ld -r object.
    # XXX check if the gcc plugin ld is the expected one too
    # XXX some Fedora binutils should also support it. How to check for that?
    ifeq ($(call ld-ifversion,-ge,22710001,y),y)
        ...

However, GCC LTO was not merged into the mainline after all.
(https://lkml.org/lkml/2014/4/8/272)

So, the 4th and 5th fields were never used, and finally removed by
commit 0d61ed17dd ("ld-version: Drop the 4th and 5th version
components").

Since then, the last 4-digits returned by this script is always zeros.

Remove the meaningless last 4-digits. This makes the version format
consistent with GCC_VERSION, CLANG_VERSION, LLD_VERSION.

Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Acked-by: Will Deacon <will@kernel.org>
Acked-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Bug: 210043760
(cherry picked from commit 052c805a1851a4415f9e2adfa9654a0b793e0c45)
Signed-off-by: Nick Desaulniers <ndesaulniers@google.com>
Change-Id: I544ebf950d7cd2b58e5f3c0f89b38869ace80146
2024-05-08 03:00:08 +03:00
Arian
1588834561
Revert "Kbuild: skip cc-wrapper while finding version info"
This will be re-applied after applying some upstream changes

This reverts commit 75306cc2c5.

Change-Id: I21142b334db79c470cf95acd70991245108765ff
2024-05-08 03:00:08 +03:00
qctecmdr
03df5d3f37 Merge "regulator: Enable rpmh resending requests in deepsleep via dt property" 2024-05-07 06:31:17 -07:00
Kamati Srinivas
c558e5abfe drivers: qcom: Add support to freeze-restore watchdog
Freeze the watchdog during suspend and enable it
after resume.

Change-Id: I7e09d2d78f494b8aee9d9c59f681fe6e574a4f9a
Signed-off-by: Shreyas K K <quic_shrekk@quicinc.com>
Signed-off-by: Auditya Bhattaram <quic_audityab@quicinc.com>
Signed-off-by: Kamati Srinivas <quic_kamasrin@quicinc.com>
2024-05-07 13:25:25 +05:30
Sultan Alsawaf
6c71d05108
usb: dwc3: msm: Enforce usb_data_enabled by blocking role switches
Block USB enumeration from the get-go by blocking role switches away from
USB_ROLE_NONE when usb_data_enabled is false.

Change-Id: I0eff78e56e4a3b64262f220a085cfec5910baf30
Signed-off-by: Sultan Alsawaf <sultan@osomprivacy.com>
2024-05-07 04:50:47 +03:00
Albert Wang
257c29e6e2
usb: new attributes implementation to enable/disable usb data
Bug: 188760285
Test: driver probe and attributes access normally
Signed-off-by: Albert Wang <albertccwang@google.com>
Change-Id: I0aec98eebff9454cdec065bb09825f6442ac013b
2024-05-07 04:50:47 +03:00
Jaegeuk Kim
ef204892d4
FROMGIT: f2fs: do not return EFSCORRUPTED, but try to run online repair
If we return the error, there's no way to recover the status as of now, since
fsck does not fix the xattr boundary issue.

Bug: 307367469
Bug: 305658663
Cc: stable@vger.kernel.org
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
(cherry picked from commit 50a472bbc79ff9d5a88be8019a60e936cadf9f13
 https://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs.git dev)
Change-Id: Ia95ef8ba177a27d7a5efcc873c5dca10de38ae5e
Signed-off-by: Jaegeuk Kim <jaegeuk@google.com>
(cherry picked from commit 168918a65c9aaba6d573f45c578d7800f89ecbea)
2024-05-07 01:22:29 +03:00
Bruno Martins
254e4c19d5
ARM64: dts: vendor: Add symlink to sm8450-devicetrees
Change-Id: I2000aaf078264a9c8d96304f5ffa1dd538a38a0f
2024-05-07 01:22:29 +03:00
Cosmin Tanislav
236d3a78ac
arch: arm64: dts: Exclude standard dts if vendor dts exists
Change-Id: I11f68b27a45fa02861bd5b6526bf49664bfccfb8
2024-05-07 01:22:29 +03:00
Danny Lin
b871d8476c
dtc: Silence warnings by default
Change-Id: Id9adf76a357dabd5f64503852baf84e67488fcb0
2024-05-07 01:22:28 +03:00
Prasad Sodagudi
03ad7cd794
epoll: drop struct epoll_event definition
Add kernel header sanitizer check to drop struct epoll_event.
This struct epoll_event is not following the POSIX standard
and defining element in opaque data type.

Change-Id: I1eecef1b64eb1fb8f0dd6999263093a453e7b9fb
Signed-off-by: Prasad Sodagudi <psodagud@codeaurora.org>
Signed-off-by: Venkata Narendra Kumar Gutta <vnkgutta@codeaurora.org>
2024-05-07 01:22:28 +03:00