Merge branch 'android12-5.10' into `android12-5.10-lts`

Sync up with android12-5.10 for the following commits:

1419b6940381 Merge tag 'android12-5.10.101_r00' into android12-5.10
3eec4418225f UPSTREAM: usb: gadget: Fix use-after-free bug by not setting udc->dev.driver
821f3e53d95b UPSTREAM: usb: gadget: rndis: prevent integer overflow in rndis_set_response()
39aca1597913 FROMGIT: mm/migrate: fix race between lock page and clear PG_Isolated
de0334216bbb UPSTREAM: arm64: proton-pack: Include unprivileged eBPF status in Spectre v2 mitigation reporting
d236f7b4cb86 UPSTREAM: arm64: Use the clearbhb instruction in mitigations
98b16e808fa3 UPSTREAM: KVM: arm64: Allow SMCCC_ARCH_WORKAROUND_3 to be discovered and migrated
0f76dfc55d9e UPSTREAM: arm64: Mitigate spectre style branch history side channels
5411474f65b8 UPSTREAM: arm64: Do not include __READ_ONCE() block in assembly files
e9a39a642cb5 UPSTREAM: KVM: arm64: Allow indirect vectors to be used without SPECTRE_V3A
fee1ae7c7cde UPSTREAM: arm64: proton-pack: Report Spectre-BHB vulnerabilities as part of Spectre-v2
d95b0b4e5dc2 UPSTREAM: arm64: Add percpu vectors for EL1
30180ef43176 Revert "BACKPORT: FROMLIST: scsi: core: Reserve one tag for the UFS driver"
28837e415dd6 UPSTREAM: arm64: entry: Add macro for reading symbol addresses from the trampoline
e322fe26a1a8 UPSTREAM: arm64: entry: Add vectors that have the bhb mitigation sequences
2a90cf9af267 UPSTREAM: arm64: entry: Add non-kpti __bp_harden_el1_vectors for mitigations
0db372ec4bf4 UPSTREAM: arm64: entry: Allow the trampoline text to occupy multiple pages
158c87e50aaf UPSTREAM: arm64: entry: Make the kpti trampoline's kpti sequence optional
e6408b96a01a UPSTREAM: arm64: entry: Move trampoline macros out of ifdef'd section
00d8bb6b906c UPSTREAM: arm64: entry: Don't assume tramp_vectors is the start of the vectors
0defb52ce662 UPSTREAM: arm64: entry: Allow tramp_alias to access symbols after the 4K boundary
6e48449c91d0 UPSTREAM: arm64: entry: Move the trampoline data page before the text page
bb8baaf3af43 UPSTREAM: arm64: entry: Free up another register on kpti's tramp_exit path
32ba6d5d6105 UPSTREAM: arm64: entry: Make the trampoline cleanup optional
c8b567d8881a UPSTREAM: arm64: spectre: Rename spectre_v4_patch_fw_mitigation_conduit
17867c11a27e UPSTREAM: arm64: entry.S: Add ventry overflow sanity checks
81ec26aafe54 UPSTREAM: arm64: cpufeature: add HWCAP for FEAT_RPRES
18c4e4fa56e5 UPSTREAM: arm64: cpufeature: add HWCAP for FEAT_AFP
68bc555a237a UPSTREAM: arm64: add ID_AA64ISAR2_EL1 sys register
2e2eef400bce UPSTREAM: arm64: Add HWCAP for self-synchronising virtual counter
6d1f2678e2c0 UPSTREAM: arm64: Add Cortex-X2 CPU part definition
51eded5d1b5f UPSTREAM: arm64: cputype: Add CPU implementor & types for the Apple M1 cores
803ff1161c13 UPSTREAM: binder: Add invalid handle info in user error log
a40cd2375581 UPSTREAM: ARM: fix Thumb2 regression with Spectre BHB
56186c7e4ace UPSTREAM: ARM: Spectre-BHB: provide empty stub for non-config
1ea0d915884d UPSTREAM: ARM: fix build warning in proc-v7-bugs.c
fdf3cb8a00b0 UPSTREAM: ARM: Do not use NOCROSSREFS directive with ld.lld
57bc1e13f008 UPSTREAM: ARM: fix co-processor register typo
a4e68d43f5ed UPSTREAM: ARM: fix build error when BPF_SYSCALL is disabled
bd2376838d2f UPSTREAM: ARM: include unprivileged BPF status in Spectre V2 reporting
afbbe4048fb5 UPSTREAM: ARM: Spectre-BHB workaround
5a41f364e7c2 UPSTREAM: ARM: use LOADADDR() to get load address of sections
3bfcb356df0d UPSTREAM: ARM: early traps initialisation
5a64a668020b UPSTREAM: ARM: report Spectre v2 status through sysfs
9362cd2b478d UPSTREAM: x86/speculation: Warn about eIBRS + LFENCE + Unprivileged eBPF + SMT
54a2bd029f34 UPSTREAM: x86/speculation: Warn about Spectre v2 LFENCE mitigation
f1b1f893b481 UPSTREAM: x86/speculation: Update link to AMD speculation whitepaper
c4188388a3c7 UPSTREAM: x86/speculation: Use generic retpoline by default on AMD
bd02dc432905 UPSTREAM: x86/speculation: Include unprivileged eBPF status in Spectre v2 mitigation reporting
3883503747ee UPSTREAM: Documentation/hw-vuln: Update spectre doc
1c3e98581b93 UPSTREAM: x86/speculation: Add eIBRS + Retpoline options
cc9e9aa4e035 UPSTREAM: x86/speculation: Rename RETPOLINE_AMD to RETPOLINE_LFENCE
414a6076acfb UPSTREAM: x86,bugs: Unconditionally allow spectre_v2=retpoline,amd
f27f62fecd57 UPSTREAM: bpf: Add kconfig knob for disabling unpriv bpf by default
f3ca80cced4e ANDROID: dm-bow: Protect Ranges fetched and erased from the RB tree
4ebb639f0d1c ANDROID: mm: page_pinner: fix build warning
fe75d583870f ANDROID: fault: Add vendor hook for TLB conflict
8248a3e758d9 BACKPORT: sched: Fix yet more sched_fork() races
cd6e5d5d7d03 ANDROID: mm/slub: Fix Kasan issue with for_each_object_track
8dbcaf63b2bf ANDROID: dm kcopyd: Use reserved memory for the copy buffer
7b5fea2f46ac ANDROID: GKI: add allowed list file for xiaomi
ae38f9954b6d ANDROID: GKI: Update symbols to symbol list
786bcb11099e FROMGIT: f2fs: quota: fix loop condition at f2fs_quota_sync()
91fef75d480e FROMGIT: f2fs: Restore rwsem lockdep support
4cc8ec84be46 ANDROID: ABI: update allowed list for galaxy
fcaaaaae6d4c UPSTREAM: mac80211_hwsim: initialize ieee80211_tx_info at hw_scan_work
91be4236fbe0 ANDROID: GKI: remove vfs-only namespace from 2 symbols
a817d6ed8746 ANDROID: mm: Fix page table lookup in speculative fault path
e53b1b9ad42d UPSTREAM: xhci: re-initialize the HC during resume if HCE was set
767f384155e9 FROMGIT: xhci: make xhci_handshake timeout for xhci_reset() adjustable
ebbf267fc0f7 ANDROID: vendor_hooks: Add hooks for __alloc_pages_direct_reclaim
135406cecb00 ANDROID: dma-direct: Document disable_dma32
bf96382fb922 ANDROID: dma-direct: Make DMA32 disablement work for CONFIG_NUMA
8f66dc1a78a7 UPSTREAM: mmc: block: fix read single on recovery logic
cf221db753e6 UPSTREAM: fget: check that the fd still exists after getting a ref to it
43754d8b7f2a ANDROID: GKI: Update symbols to symbol list
f2d0c305766e ANDROID: vendor_hooks: Add hooks for shrink_active_list
62412e5b8c33 FROMGIT: mm: count time in drain_all_pages during direct reclaim as memory pressure
3b9fe10e46e0 ANDROID: incremental-fs: remove spurious kfree()
acefa91e517b ANDROID: vendor_hooks: Add hooks for binder
c3ac7418e64d ANDROID: qcom: Add sysfs related symbol

Change-Id: Icbe5fb26e3cef602e3bbc01745a755a95d72a1a0
tree: 04e3814d47dce2ca8d11270fec8e465e00be9ddb
  1. android/
  2. arch/
  3. block/
  4. certs/
  5. crypto/
  6. Documentation/
  7. drivers/
  8. fs/
  9. include/
  10. init/
  11. ipc/
  12. kernel/
  13. lib/
  14. LICENSES/
  15. mm/
  16. net/
  17. samples/
  18. scripts/
  19. security/
  20. sound/
  21. tools/
  22. usr/
  23. virt/
  24. .clang-format
  25. .cocciconfig
  26. .get_maintainer.ignore
  27. .gitattributes
  28. .gitignore
  29. .mailmap
  30. build.config.aarch64
  31. build.config.allmodconfig
  32. build.config.allmodconfig.aarch64
  33. build.config.allmodconfig.arm
  34. build.config.allmodconfig.x86_64
  35. build.config.amlogic
  36. build.config.arm
  37. build.config.common
  38. build.config.db845c
  39. build.config.gki
  40. build.config.gki-debug.aarch64
  41. build.config.gki-debug.x86_64
  42. build.config.gki.aarch64
  43. build.config.gki.aarch64.fips140
  44. build.config.gki.aarch64.fips140_eval_testing
  45. build.config.gki.x86_64
  46. build.config.gki_kasan
  47. build.config.gki_kasan.aarch64
  48. build.config.gki_kasan.x86_64
  49. build.config.gki_kprobes
  50. build.config.gki_kprobes.aarch64
  51. build.config.gki_kprobes.x86_64
  52. build.config.hikey960
  53. build.config.khwasan
  54. build.config.rockchip
  55. build.config.x86_64
  56. COPYING
  57. CREDITS
  58. Kbuild
  59. Kconfig
  60. MAINTAINERS
  61. Makefile
  62. OWNERS
  63. README
  64. README.md
README.md

How do I submit patches to Android Common Kernels

  1. BEST: Make all of your changes to upstream Linux. If appropriate, backport to the stable releases. These patches will be merged automatically in the corresponding common kernels. If the patch is already in upstream Linux, post a backport of the patch that conforms to the patch requirements below.

    • Do not send patches upstream that contain only symbol exports. To be considered for upstream Linux, additions of EXPORT_SYMBOL_GPL() require an in-tree modular driver that uses the symbol -- so include the new driver or changes to an existing driver in the same patchset as the export.
    • When sending patches upstream, the commit message must contain a clear case for why the patch is needed and beneficial to the community. Enabling out-of-tree drivers or functionality is not not a persuasive case.
  2. LESS GOOD: Develop your patches out-of-tree (from an upstream Linux point-of-view). Unless these are fixing an Android-specific bug, these are very unlikely to be accepted unless they have been coordinated with kernel-team@android.com. If you want to proceed, post a patch that conforms to the patch requirements below.

Common Kernel patch requirements

  • All patches must conform to the Linux kernel coding standards and pass script/checkpatch.pl
  • Patches shall not break gki_defconfig or allmodconfig builds for arm, arm64, x86, x86_64 architectures (see https://source.android.com/setup/build/building-kernels)
  • If the patch is not merged from an upstream branch, the subject must be tagged with the type of patch: UPSTREAM:, BACKPORT:, FROMGIT:, FROMLIST:, or ANDROID:.
  • All patches must have a Change-Id: tag (see https://gerrit-review.googlesource.com/Documentation/user-changeid.html)
  • If an Android bug has been assigned, there must be a Bug: tag.
  • All patches must have a Signed-off-by: tag by the author and the submitter

Additional requirements are listed below based on patch type

Requirements for backports from mainline Linux: UPSTREAM:, BACKPORT:

  • If the patch is a cherry-pick from Linux mainline with no changes at all
    • tag the patch subject with UPSTREAM:.
    • add upstream commit information with a (cherry picked from commit ...) line
    • Example:
      • if the upstream commit message is
        important patch from upstream

        This is the detailed description of the important patch

        Signed-off-by: Fred Jones <fred.jones@foo.org>
  • then Joe Smith would upload the patch for the common kernel as
        UPSTREAM: important patch from upstream

        This is the detailed description of the important patch

        Signed-off-by: Fred Jones <fred.jones@foo.org>

        Bug: 135791357
        Change-Id: I4caaaa566ea080fa148c5e768bb1a0b6f7201c01
        (cherry picked from commit c31e73121f4c1ec41143423ac6ce3ce6dafdcec1)
        Signed-off-by: Joe Smith <joe.smith@foo.org>
  • If the patch requires any changes from the upstream version, tag the patch with BACKPORT: instead of UPSTREAM:.
    • use the same tags as UPSTREAM:
    • add comments about the changes under the (cherry picked from commit ...) line
    • Example:
        BACKPORT: important patch from upstream

        This is the detailed description of the important patch

        Signed-off-by: Fred Jones <fred.jones@foo.org>

        Bug: 135791357
        Change-Id: I4caaaa566ea080fa148c5e768bb1a0b6f7201c01
        (cherry picked from commit c31e73121f4c1ec41143423ac6ce3ce6dafdcec1)
        [joe: Resolved minor conflict in drivers/foo/bar.c ]
        Signed-off-by: Joe Smith <joe.smith@foo.org>

Requirements for other backports: FROMGIT:, FROMLIST:,

  • If the patch has been merged into an upstream maintainer tree, but has not yet been merged into Linux mainline
    • tag the patch subject with FROMGIT:
    • add info on where the patch came from as (cherry picked from commit <sha1> <repo> <branch>). This must be a stable maintainer branch (not rebased, so don't use linux-next for example).
    • if changes were required, use BACKPORT: FROMGIT:
    • Example:
      • if the commit message in the maintainer tree is
        important patch from upstream

        This is the detailed description of the important patch

        Signed-off-by: Fred Jones <fred.jones@foo.org>
  • then Joe Smith would upload the patch for the common kernel as
        FROMGIT: important patch from upstream

        This is the detailed description of the important patch

        Signed-off-by: Fred Jones <fred.jones@foo.org>

        Bug: 135791357
        (cherry picked from commit 878a2fd9de10b03d11d2f622250285c7e63deace
         https://git.kernel.org/pub/scm/linux/kernel/git/foo/bar.git test-branch)
        Change-Id: I4caaaa566ea080fa148c5e768bb1a0b6f7201c01
        Signed-off-by: Joe Smith <joe.smith@foo.org>
  • If the patch has been submitted to LKML, but not accepted into any maintainer tree
    • tag the patch subject with FROMLIST:
    • add a Link: tag with a link to the submittal on lore.kernel.org
    • add a Bug: tag with the Android bug (required for patches not accepted into a maintainer tree)
    • if changes were required, use BACKPORT: FROMLIST:
    • Example:
        FROMLIST: important patch from upstream

        This is the detailed description of the important patch

        Signed-off-by: Fred Jones <fred.jones@foo.org>

        Bug: 135791357
        Link: https://lore.kernel.org/lkml/20190619171517.GA17557@someone.com/
        Change-Id: I4caaaa566ea080fa148c5e768bb1a0b6f7201c01
        Signed-off-by: Joe Smith <joe.smith@foo.org>

Requirements for Android-specific patches: ANDROID:

  • If the patch is fixing a bug to Android-specific code
    • tag the patch subject with ANDROID:
    • add a Fixes: tag that cites the patch with the bug
    • Example:
        ANDROID: fix android-specific bug in foobar.c

        This is the detailed description of the important fix

        Fixes: 1234abcd2468 ("foobar: add cool feature")
        Change-Id: I4caaaa566ea080fa148c5e768bb1a0b6f7201c01
        Signed-off-by: Joe Smith <joe.smith@foo.org>
  • If the patch is a new feature
    • tag the patch subject with ANDROID:
    • add a Bug: tag with the Android bug (required for android-specific features)