diff options
20 files changed, 325 insertions, 165 deletions
diff --git a/android-mainline/ANDROID-GKI-Disable-KUnit-built-in-testing.patch b/android-mainline/ANDROID-GKI-Disable-KUnit-built-in-testing.patch index 57b631e3..b4fcf3b9 100644 --- a/android-mainline/ANDROID-GKI-Disable-KUnit-built-in-testing.patch +++ b/android-mainline/ANDROID-GKI-Disable-KUnit-built-in-testing.patch @@ -25,7 +25,7 @@ Signed-off-by: Lee Jones <joneslee@google.com> diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt --- a/Documentation/admin-guide/kernel-parameters.txt +++ b/Documentation/admin-guide/kernel-parameters.txt -@@ -2540,7 +2540,7 @@ +@@ -2534,7 +2534,7 @@ CONFIG_KUNIT to be set to be fully enabled. The default value can be overridden via KUNIT_DEFAULT_ENABLED. @@ -65,7 +65,7 @@ diff --git a/init/main.c b/init/main.c static int kernel_init(void *); /* -@@ -1546,8 +1544,6 @@ static noinline void __init kernel_init_freeable(void) +@@ -1550,8 +1548,6 @@ static noinline void __init kernel_init_freeable(void) do_basic_setup(); diff --git a/android-mainline/ANDROID-Initial-commit-of-Incremental-FS.patch b/android-mainline/ANDROID-Initial-commit-of-Incremental-FS.patch index 0dda1787..fd999eca 100644 --- a/android-mainline/ANDROID-Initial-commit-of-Incremental-FS.patch +++ b/android-mainline/ANDROID-Initial-commit-of-Incremental-FS.patch @@ -230,7 +230,7 @@ new file mode 100644 diff --git a/MAINTAINERS b/MAINTAINERS --- a/MAINTAINERS +++ b/MAINTAINERS -@@ -10312,6 +10312,13 @@ F: Documentation/hwmon/ina2xx.rst +@@ -10346,6 +10346,13 @@ F: Documentation/hwmon/ina2xx.rst F: drivers/hwmon/ina2xx.c F: include/linux/platform_data/ina2xx.h diff --git a/android-mainline/ANDROID-Revert-io_uring-rely-solely-on-FMODE_NOWAIT.patch b/android-mainline/ANDROID-Revert-io_uring-rely-solely-on-FMODE_NOWAIT.patch index 7818d31b..d7416737 100644 --- a/android-mainline/ANDROID-Revert-io_uring-rely-solely-on-FMODE_NOWAIT.patch +++ b/android-mainline/ANDROID-Revert-io_uring-rely-solely-on-FMODE_NOWAIT.patch @@ -27,7 +27,7 @@ Signed-off-by: Lee Jones <joneslee@google.com> diff --git a/io_uring/io_uring.c b/io_uring/io_uring.c --- a/io_uring/io_uring.c +++ b/io_uring/io_uring.c -@@ -1753,6 +1753,11 @@ static void io_iopoll_req_issued(struct io_kiocb *req, unsigned int issue_flags) +@@ -1760,6 +1760,11 @@ static void io_iopoll_req_issued(struct io_kiocb *req, unsigned int issue_flags) } } @@ -39,7 +39,7 @@ diff --git a/io_uring/io_uring.c b/io_uring/io_uring.c /* * If we tracked the file through the SCM inflight mechanism, we could support * any file. For now, just ensure that anything potentially problematic is done -@@ -1760,6 +1765,22 @@ static void io_iopoll_req_issued(struct io_kiocb *req, unsigned int issue_flags) +@@ -1767,6 +1772,22 @@ static void io_iopoll_req_issued(struct io_kiocb *req, unsigned int issue_flags) */ static bool __io_file_supports_nowait(struct file *file, umode_t mode) { diff --git a/android-mainline/ANDROID-Revert-io_uring-remove-__io_file_supports_nowait.patch b/android-mainline/ANDROID-Revert-io_uring-remove-__io_file_supports_nowait.patch index bacaa08b..bc0b7ddf 100644 --- a/android-mainline/ANDROID-Revert-io_uring-remove-__io_file_supports_nowait.patch +++ b/android-mainline/ANDROID-Revert-io_uring-remove-__io_file_supports_nowait.patch @@ -25,7 +25,7 @@ Signed-off-by: Lee Jones <joneslee@google.com> diff --git a/io_uring/io_uring.c b/io_uring/io_uring.c --- a/io_uring/io_uring.c +++ b/io_uring/io_uring.c -@@ -1753,6 +1753,19 @@ static void io_iopoll_req_issued(struct io_kiocb *req, unsigned int issue_flags) +@@ -1760,6 +1760,19 @@ static void io_iopoll_req_issued(struct io_kiocb *req, unsigned int issue_flags) } } @@ -45,7 +45,7 @@ diff --git a/io_uring/io_uring.c b/io_uring/io_uring.c unsigned int io_file_get_flags(struct file *file) { umode_t mode = file_inode(file)->i_mode; -@@ -1760,7 +1773,7 @@ unsigned int io_file_get_flags(struct file *file) +@@ -1767,7 +1780,7 @@ unsigned int io_file_get_flags(struct file *file) if (S_ISREG(mode)) res |= REQ_F_ISREG; diff --git a/android-mainline/ANDROID-Revert-io_uring-remove-the-mode-variable-in-io_file_get_flags.patch b/android-mainline/ANDROID-Revert-io_uring-remove-the-mode-variable-in-io_file_get_flags.patch index 33183099..04c1a46f 100644 --- a/android-mainline/ANDROID-Revert-io_uring-remove-the-mode-variable-in-io_file_get_flags.patch +++ b/android-mainline/ANDROID-Revert-io_uring-remove-the-mode-variable-in-io_file_get_flags.patch @@ -26,7 +26,7 @@ Signed-off-by: Lee Jones <joneslee@google.com> diff --git a/io_uring/io_uring.c b/io_uring/io_uring.c --- a/io_uring/io_uring.c +++ b/io_uring/io_uring.c -@@ -1755,9 +1755,10 @@ static void io_iopoll_req_issued(struct io_kiocb *req, unsigned int issue_flags) +@@ -1762,9 +1762,10 @@ static void io_iopoll_req_issued(struct io_kiocb *req, unsigned int issue_flags) unsigned int io_file_get_flags(struct file *file) { diff --git a/android-mainline/ANDROID-block-add-basic-hardware-wrapped-key-support.patch b/android-mainline/ANDROID-block-add-basic-hardware-wrapped-key-support.patch index 3e5a0d03..dbc6c972 100644 --- a/android-mainline/ANDROID-block-add-basic-hardware-wrapped-key-support.patch +++ b/android-mainline/ANDROID-block-add-basic-hardware-wrapped-key-support.patch @@ -554,7 +554,7 @@ diff --git a/block/blk-crypto.c b/block/blk-crypto.c diff --git a/drivers/md/dm-table.c b/drivers/md/dm-table.c --- a/drivers/md/dm-table.c +++ b/drivers/md/dm-table.c -@@ -1309,6 +1309,7 @@ static int dm_table_construct_crypto_profile(struct dm_table *t) +@@ -1310,6 +1310,7 @@ static int dm_table_construct_crypto_profile(struct dm_table *t) profile->max_dun_bytes_supported = UINT_MAX; memset(profile->modes_supported, 0xFF, sizeof(profile->modes_supported)); diff --git a/android-mainline/ANDROID-cpufreq-track-per-task-time-in-state.patch b/android-mainline/ANDROID-cpufreq-track-per-task-time-in-state.patch index 239e63e6..a2f9aa51 100644 --- a/android-mainline/ANDROID-cpufreq-track-per-task-time-in-state.patch +++ b/android-mainline/ANDROID-cpufreq-track-per-task-time-in-state.patch @@ -421,7 +421,7 @@ diff --git a/kernel/fork.c b/kernel/fork.c release_user_cpus_ptr(tsk); scs_release(tsk); -@@ -2339,6 +2341,8 @@ __latent_entropy struct task_struct *copy_process( +@@ -2346,6 +2348,8 @@ __latent_entropy struct task_struct *copy_process( if (args->io_thread) p->flags |= PF_IO_WORKER; @@ -430,7 +430,7 @@ diff --git a/kernel/fork.c b/kernel/fork.c if (args->name) strscpy_pad(p->comm, args->name, sizeof(p->comm)); -@@ -2910,6 +2914,8 @@ pid_t kernel_clone(struct kernel_clone_args *args) +@@ -2917,6 +2921,8 @@ pid_t kernel_clone(struct kernel_clone_args *args) if (IS_ERR(p)) return PTR_ERR(p); diff --git a/android-mainline/ANDROID-dm-add-support-for-passing-through-derive_sw_secret.patch b/android-mainline/ANDROID-dm-add-support-for-passing-through-derive_sw_secret.patch index 5053500c..7be7f829 100644 --- a/android-mainline/ANDROID-dm-add-support-for-passing-through-derive_sw_secret.patch +++ b/android-mainline/ANDROID-dm-add-support-for-passing-through-derive_sw_secret.patch @@ -46,7 +46,7 @@ diff --git a/block/blk-crypto-profile.c b/block/blk-crypto-profile.c diff --git a/drivers/md/dm-table.c b/drivers/md/dm-table.c --- a/drivers/md/dm-table.c +++ b/drivers/md/dm-table.c -@@ -1251,6 +1251,68 @@ static int dm_keyslot_evict(struct blk_crypto_profile *profile, +@@ -1252,6 +1252,68 @@ static int dm_keyslot_evict(struct blk_crypto_profile *profile, return 0; } @@ -115,7 +115,7 @@ diff --git a/drivers/md/dm-table.c b/drivers/md/dm-table.c static int device_intersect_crypto_capabilities(struct dm_target *ti, struct dm_dev *dev, sector_t start, sector_t len, void *data) -@@ -1306,6 +1368,7 @@ static int dm_table_construct_crypto_profile(struct dm_table *t) +@@ -1307,6 +1369,7 @@ static int dm_table_construct_crypto_profile(struct dm_table *t) profile = &dmcp->profile; blk_crypto_profile_init(profile, 0); profile->ll_ops.keyslot_evict = dm_keyslot_evict; diff --git a/android-mainline/ANDROID-irqchip-Add-IRQChip-related-vendor-hooks.patch b/android-mainline/ANDROID-irqchip-Add-IRQChip-related-vendor-hooks.patch index a38ad0d4..91d8eae6 100644 --- a/android-mainline/ANDROID-irqchip-Add-IRQChip-related-vendor-hooks.patch +++ b/android-mainline/ANDROID-irqchip-Add-IRQChip-related-vendor-hooks.patch @@ -53,7 +53,7 @@ diff --git a/drivers/irqchip/irq-gic-v3.c b/drivers/irqchip/irq-gic-v3.c #include <linux/irqchip.h> #include <linux/irqchip/arm-gic-common.h> -@@ -957,11 +958,15 @@ static void __init gic_dist_init(void) +@@ -969,11 +970,15 @@ static void __init gic_dist_init(void) * enabled. */ affinity = gic_cpu_to_affinity(smp_processor_id()); @@ -71,7 +71,7 @@ diff --git a/drivers/irqchip/irq-gic-v3.c b/drivers/irqchip/irq-gic-v3.c } static int gic_iterate_rdists(int (*fn)(struct redist_region *, void __iomem *)) -@@ -1425,6 +1430,9 @@ static int gic_set_affinity(struct irq_data *d, const struct cpumask *mask_val, +@@ -1437,6 +1442,9 @@ static int gic_set_affinity(struct irq_data *d, const struct cpumask *mask_val, reg = gic_dist_base(d) + offset + (index * 8); val = gic_cpu_to_affinity(cpu); diff --git a/android-mainline/ANDROID-tools-Miscellaneous.patch b/android-mainline/ANDROID-tools-Miscellaneous.patch index a6fca29f..218ee094 100644 --- a/android-mainline/ANDROID-tools-Miscellaneous.patch +++ b/android-mainline/ANDROID-tools-Miscellaneous.patch @@ -7,11 +7,16 @@ Signed-off-by: Lee Jones <joneslee@google.com> Change-Id: Ic155709fbf07ec0575fa2fa954ee199e63051a97 --- tools/testing/android/OWNERS | 4 + - tools/testing/android/bin/acloudb.sh | 43 +++++++++++ - tools/testing/android/bin/kselftest.sh | 76 +++++++++++++++++++ - .../selftests/android/config_arm64.xml | 55 ++++++++++++++ - .../selftests/android/config_x86_64.xml | 55 ++++++++++++++ - 5 files changed, 233 insertions(+) + tools/testing/android/bin/acloudb.sh | 43 +++++++++ + tools/testing/android/bin/kselftest.sh | 88 +++++++++++++++++++ + .../selftests/android/config_arm64.xml | 84 ++++++++++++++++++ + .../selftests/android/config_x86_64.xml | 84 ++++++++++++++++++ + .../filesystems/binderfs/binderfs_test.c | 10 +++ + .../selftests/futex/functional/futex_wait.c | 6 ++ + .../futex/functional/futex_wait_timeout.c | 11 ++- + .../futex/functional/futex_wait_wouldblock.c | 13 ++- + tools/testing/selftests/rtc/rtctest.c | 2 + + 10 files changed, 338 insertions(+), 7 deletions(-) create mode 100644 tools/testing/android/OWNERS create mode 100755 tools/testing/android/bin/acloudb.sh create mode 100755 tools/testing/android/bin/kselftest.sh @@ -79,7 +84,7 @@ diff --git a/tools/testing/android/bin/kselftest.sh b/tools/testing/android/bin/ new file mode 100755 --- /dev/null +++ b/tools/testing/android/bin/kselftest.sh -@@ -0,0 +1,76 @@ +@@ -0,0 +1,88 @@ +#!/usr/bin/env bash +# SPDX-License-Identifier: GPL-2.0 + @@ -147,7 +152,19 @@ new file mode 100755 +fi + +echo "Building selftests..." -+$BAZEL build //common:kselftest_tests_x86_64 ++ABI=$(adb shell getprop ro.product.cpu.abi) ++case $ABI in ++ arm64*) ++ $BAZEL build //common:kselftest_tests_arm64 ++ ;; ++ x86_64*) ++ $BAZEL build //common:kselftest_tests_x86_64 ++ ;; ++ *) ++ echo "$ABI not supported" ++ exit 1 ++ ;; ++esac + +$TRADEFED run commandAndExit template/local_min --template:map test=suite/test_mapping_suite \ +--include-filter selftests --tests-dir=$TESTSDIR --primary-abi-only @@ -160,11 +177,14 @@ diff --git a/tools/testing/selftests/android/config_arm64.xml b/tools/testing/se new file mode 100644 --- /dev/null +++ b/tools/testing/selftests/android/config_arm64.xml -@@ -0,0 +1,55 @@ +@@ -0,0 +1,84 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2023 The Android Open Source Project +SPDX-License-Identifier: GPL-2.0 OR Apache-2.0 +--> ++<!DOCTYPE configuration [ ++<!ENTITY ktest_dir "/data/selftests/arm64"> ++]> +<configuration description="kselftest"> + <option name="test-suite-tag" value="kernel-test" /> + <target_preparer class="com.android.tradefed.targetprep.RootTargetPreparer" /> @@ -174,57 +194,86 @@ new file mode 100644 + <option name="cleanup" value="true" /> + <option name="push-file" key="selftests" value="/data/selftests" /> + <option name="skip-abi-filtering" value="true" /> -+ <option name="post-push" value='chmod -R 755 /data/selftests; find /data/selftests; -type f | xargs grep -l -e "bin/sh" -e "bin/bash" | xargs sed -i -e "s?/bin/echo?echo?" -i -e "s?#!/bin/sh?#!/system/bin/sh?" -i -e "s?#!/bin/bash?#!/system/bin/sh?" || echo "There were no files to process"' /> ++ <option name="post-push" value='chmod -R 755 /data/selftests; find /data/selftests -type f | xargs grep -l -e "bin/sh" -e "bin/bash" | xargs sed -i -e "s?/bin/echo?echo?" -i -e "s?#!/bin/sh?#!/system/bin/sh?" -i -e "s?#!/bin/bash?#!/system/bin/sh?" || echo "There were no files to process"' /> + </target_preparer> + + <test class="com.android.tradefed.testtype.binary.KernelTargetTest" > + <option name="exit-code-skip" value="4" /> + <option name="skip-binary-check" value="true" /> -+ <option name="test-command-line" key="kselftest_binderfs_binderfs_test" value="/data/selftests/arm64/kselftest_binderfs_binderfs_test" /> -+ <option name="test-command-line" key="kselftest_breakpoints_breakpoint_test" value="/data/selftests/arm64/kselftest_breakpoints_breakpoint_test" /> -+ <option name="test-command-line" key="kselftest_breakpoints_step_after_suspend_test" value="/data/selftests/arm64/kselftest_breakpoints_step_after_suspend_test" /> -+ <option name="test-command-line" key="kselftest_futex_run" value="cd /data/selftests/arm64/;USE_COLOR=0 ./kselftest_futex_run" /> -+ <option name="test-command-line" key="kselftest_kcmp_kcmp_test" value="/data/selftests/arm64/kselftest_kcmp_kcmp_test" /> -+ <option name="test-command-line" key="kselftest_ptrace_peeksiginfo" value="/data/selftests/arm64/kselftest_ptrace_peeksiginfo" /> -+ <option name="test-command-line" key="kselftest_rtc_rtctest" value="/data/selftests/arm64/kselftest_rtc_rtctest" /> -+ <option name="test-command-line" key="kselftest_vdso_vdso_test_abi" value="/data/selftests/arm64/kselftest_vdso_vdso_test_abi" /> -+ <option name="test-command-line" key="kselftest_vdso_vdso_test_clock_getres" value="/data/selftests/arm64/kselftest_vdso_vdso_test_clock_getres" /> -+ <option name="test-command-line" key="kselftest_vdso_vdso_test_getcpu" value="/data/selftests/arm64/kselftest_vdso_vdso_test_getcpu" /> -+ <option name="test-command-line" key="kselftest_vdso_vdso_test_gettimeofday" value="/data/selftests/arm64/kselftest_vdso_vdso_test_gettimeofday" /> -+ <option name="test-command-line" key="kselftest_size_test_get_size" value="/data/selftests/arm64/kselftest_size_test_get_size" /> -+ <option name="test-command-line" key="kselftest_mm_mremap_dontunmap" value="/data/selftests/arm64/kselftest_mm_mremap_dontunmap" /> -+ <option name="test-command-line" key="kselftest_mm_mremap_test" value="/data/selftests/arm64/kselftest_mm_mremap_test" /> -+ <option name="test-command-line" key="kselftest_mm_uffd_unit_tests" value="/data/selftests/arm64/kselftest_mm_uffd_unit_tests" /> -+ <option name="test-command-line" key="kselftest_timers_adjtick" value="/data/selftests/arm64/kselftest_timers_adjtick" /> -+ <option name="test-command-line" key="kselftest_timers_alarmtimer_suspend" value="/data/selftests/arm64/kselftest_timers_alarmtimer_suspend" /> -+ <option name="test-command-line" key="kselftest_timers_change_skew" value="/data/selftests/arm64/kselftest_timers_change_skew" /> -+ <option name="test-command-line" key="kselftest_timers_clocksource_switch" value="/data/selftests/arm64/kselftest_timers_clocksource_switch" /> -+ <option name="test-command-line" key="kselftest_timers_freq_step" value="/data/selftests/arm64/kselftest_timers_freq_step" /> -+ <option name="test-command-line" key="kselftest_timers_inconsistency_check" value="/data/selftests/arm64/kselftest_timers_inconsistency_check" /> -+ <option name="test-command-line" key="kselftest_timers_leap_a_day" value="/data/selftests/arm64/kselftest_timers_leap_a_day" /> -+ <option name="test-command-line" key="kselftest_timers_leapcrash" value="/data/selftests/arm64/kselftest_timers_leapcrash" /> -+ <option name="test-command-line" key="kselftest_timers_nanosleep" value="/data/selftests/arm64/kselftest_timers_nanosleep" /> -+ <option name="test-command-line" key="kselftest_timers_nsleep_lat" value="/data/selftests/arm64/kselftest_timers_nsleep_lat" /> -+ <option name="test-command-line" key="kselftest_timers_posix_timers" value="/data/selftests/arm64/kselftest_timers_posix_timers" /> -+ <option name="test-command-line" key="kselftest_timers_set_2038" value="/data/selftests/arm64/kselftest_timers_set_2038" /> -+ <option name="test-command-line" key="kselftest_timers_set_tai" value="/data/selftests/arm64/kselftest_timers_set_tai" /> -+ <option name="test-command-line" key="kselftest_timers_set_timer_lat" value="/data/selftests/arm64/kselftest_timers_set_timer_lat" /> -+ <option name="test-command-line" key="kselftest_timers_set_tz" value="/data/selftests/arm64/kselftest_timers_set_tz" /> -+ <option name="test-command-line" key="kselftest_timers_skew_consistency" value="/data/selftests/arm64/kselftest_timers_skew_consistency" /> -+ <option name="test-command-line" key="kselftest_timers_tests_raw_skew" value="/data/selftests/arm64/kselftest_timers_tests_raw_skew" /> -+ <option name="test-command-line" key="kselftest_timers_threadtest" value="/data/selftests/arm64/kselftest_timers_threadtest" /> -+ <option name="test-command-line" key="kselftest_timers_valid_adjtimex" value="/data/selftests/arm64/kselftest_timers_valid_adjtimex" /> ++ <option name="test-command-line" key="kselftest_binderfs_binderfs_test" value="cd &ktest_dir;; ./kselftest_binderfs_binderfs_test" /> ++ <option name="test-command-line" key="kselftest_breakpoints_breakpoint_test" value="cd &ktest_dir;; ./kselftest_breakpoints_breakpoint_test" /> ++ <option name="test-command-line" key="kselftest_futex_requeue" value="cd &ktest_dir;; ./futex_requeue" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi" value="cd &ktest_dir;; ./futex_requeue_pi" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_b" value="cd &ktest_dir;; ./futex_requeue_pi -b" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_bl" value="cd &ktest_dir;; ./futex_requeue_pi -b -l" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_bo" value="cd &ktest_dir;; ./futex_requeue_pi -b -o" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_l" value="cd &ktest_dir;; ./futex_requeue_pi -l" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_o" value="cd &ktest_dir;; ./futex_requeue_pi -o" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_5k" value="cd &ktest_dir;; ./futex_requeue_pi -t 5000" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_b_5k" value="cd &ktest_dir;; ./futex_requeue_pi -b -t 5000" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_bl_5k" value="cd &ktest_dir;; ./futex_requeue_pi -b -l -t 5000" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_bo_5k" value="cd &ktest_dir;; ./futex_requeue_pi -b -o -t 5000" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_l_5k" value="cd &ktest_dir;; ./futex_requeue_pi -l -t 5000" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_o_5k" value="cd &ktest_dir;; ./futex_requeue_pi -o -t 5000" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_500k" value="cd &ktest_dir;; ./futex_requeue_pi -t 500000" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_b_500k" value="cd &ktest_dir;; ./futex_requeue_pi -b -t 500000" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_bl_500k" value="cd &ktest_dir;; ./futex_requeue_pi -b -l -t 500000" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_bo_500k" value="cd &ktest_dir;; ./futex_requeue_pi -b -o -t 500000" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_l_500k" value="cd &ktest_dir;; ./futex_requeue_pi -l -t 500000" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_o_500k" value="cd &ktest_dir;; ./futex_requeue_pi -o -t 500000" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_bl_2G" value="cd &ktest_dir;; ./futex_requeue_pi -b -l -t 2000000000" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_l_2G" value="cd &ktest_dir;; ./futex_requeue_pi -l -t 2000000000" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_mismatched_ops" value="cd &ktest_dir;; ./futex_requeue_pi_mismatched_ops" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_signal_restart" value="cd &ktest_dir;; ./futex_requeue_pi_signal_restart" /> ++ <option name="test-command-line" key="kselftest_futex_wait" value="cd &ktest_dir;; ./futex_wait" /> ++ <option name="test-command-line" key="kselftest_futex_wait_private_mapped_file" value="cd &ktest_dir;; ./futex_wait_private_mapped_file" /> ++ <option name="test-command-line" key="kselftest_futex_wait_timeout" value="cd &ktest_dir;; ./futex_wait_timeout" /> ++ <option name="test-command-line" key="kselftest_futex_wait_uninitialized_heap" value="cd &ktest_dir;; ./futex_wait_uninitialized_heap" /> ++ <option name="test-command-line" key="kselftest_futex_wait_wouldblock" value="cd &ktest_dir;; ./futex_wait_wouldblock" /> ++ <option name="test-command-line" key="kselftest_kcmp_kcmp_test" value="cd &ktest_dir;; ./kselftest_kcmp_kcmp_test" /> ++ <option name="test-command-line" key="kselftest_mm_mremap_dontunmap" value="cd &ktest_dir;; ./kselftest_mm_mremap_dontunmap" /> ++ <option name="test-command-line" key="kselftest_mm_mremap_test" value="cd &ktest_dir;; ./kselftest_mm_mremap_test" /> ++ <option name="test-command-line" key="kselftest_mm_uffd_unit_tests" value="cd &ktest_dir;; ./kselftest_mm_uffd_unit_tests" /> ++ <option name="test-command-line" key="kselftest_ptrace_peeksiginfo" value="cd &ktest_dir;; ./kselftest_ptrace_peeksiginfo" /> ++ <option name="test-command-line" key="kselftest_rtc_rtctest" value="cd &ktest_dir;; ./kselftest_rtc_rtctest" /> ++ <option name="test-command-line" key="kselftest_size_test_get_size" value="cd &ktest_dir;; ./kselftest_size_test_get_size" /> ++ <option name="test-command-line" key="kselftest_timers_adjtick" value="cd &ktest_dir;; ./kselftest_timers_adjtick" /> ++ <option name="test-command-line" key="kselftest_timers_alarmtimer_suspend" value="cd &ktest_dir;; ./kselftest_timers_alarmtimer_suspend" /> ++ <option name="test-command-line" key="kselftest_timers_change_skew" value="cd &ktest_dir;; ./kselftest_timers_change_skew" /> ++ <option name="test-command-line" key="kselftest_timers_clocksource_switch" value="cd &ktest_dir;; ./kselftest_timers_clocksource_switch" /> ++ <option name="test-command-line" key="kselftest_timers_freq_step" value="cd &ktest_dir;; ./kselftest_timers_freq_step" /> ++ <option name="test-command-line" key="kselftest_timers_inconsistency_check" value="cd &ktest_dir;; ./kselftest_timers_inconsistency_check" /> ++ <option name="test-command-line" key="kselftest_timers_leap_a_day" value="cd &ktest_dir;; ./kselftest_timers_leap_a_day" /> ++ <option name="test-command-line" key="kselftest_timers_leapcrash" value="cd &ktest_dir;; ./kselftest_timers_leapcrash" /> ++ <option name="test-command-line" key="kselftest_timers_nanosleep" value="cd &ktest_dir;; ./kselftest_timers_nanosleep" /> ++ <option name="test-command-line" key="kselftest_timers_nsleep_lat" value="cd &ktest_dir;; ./kselftest_timers_nsleep_lat" /> ++ <option name="test-command-line" key="kselftest_timers_posix_timers" value="cd &ktest_dir;; ./kselftest_timers_posix_timers" /> ++ <option name="test-command-line" key="kselftest_timers_set_2038" value="cd &ktest_dir;; ./kselftest_timers_set_2038" /> ++ <option name="test-command-line" key="kselftest_timers_set_tai" value="cd &ktest_dir;; ./kselftest_timers_set_tai" /> ++ <option name="test-command-line" key="kselftest_timers_set_timer_lat" value="cd &ktest_dir;; ./kselftest_timers_set_timer_lat" /> ++ <option name="test-command-line" key="kselftest_timers_set_tz" value="cd &ktest_dir;; ./kselftest_timers_set_tz" /> ++ <option name="test-command-line" key="kselftest_timers_skew_consistency" value="cd &ktest_dir;; ./kselftest_timers_skew_consistency" /> ++ <option name="test-command-line" key="kselftest_timers_tests_raw_skew" value="cd &ktest_dir;; ./kselftest_timers_tests_raw_skew" /> ++ <option name="test-command-line" key="kselftest_timers_threadtest" value="cd &ktest_dir;; ./kselftest_timers_threadtest" /> ++ <option name="test-command-line" key="kselftest_timers_valid_adjtimex" value="cd &ktest_dir;; ./kselftest_timers_valid_adjtimex" /> ++ <option name="test-command-line" key="kselftest_vdso_vdso_test_abi" value="cd &ktest_dir;; ./kselftest_vdso_vdso_test_abi" /> ++ <option name="test-command-line" key="kselftest_vdso_vdso_test_clock_getres" value="cd &ktest_dir;; ./kselftest_vdso_vdso_test_clock_getres" /> ++ <option name="test-command-line" key="kselftest_vdso_vdso_test_getcpu" value="cd &ktest_dir;; ./kselftest_vdso_vdso_test_getcpu" /> ++ <option name="test-command-line" key="kselftest_vdso_vdso_test_gettimeofday" value="cd &ktest_dir;; ./kselftest_vdso_vdso_test_gettimeofday" /> + </test> +</configuration> diff --git a/tools/testing/selftests/android/config_x86_64.xml b/tools/testing/selftests/android/config_x86_64.xml new file mode 100644 --- /dev/null +++ b/tools/testing/selftests/android/config_x86_64.xml -@@ -0,0 +1,55 @@ +@@ -0,0 +1,84 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2023 The Android Open Source Project +SPDX-License-Identifier: GPL-2.0 OR Apache-2.0 +--> ++<!DOCTYPE configuration [ ++<!ENTITY ktest_dir "/data/selftests/x86_64"> ++]> +<configuration description="kselftest"> + <option name="test-suite-tag" value="kernel-test" /> + <target_preparer class="com.android.tradefed.targetprep.RootTargetPreparer" /> @@ -234,45 +283,191 @@ new file mode 100644 + <option name="cleanup" value="true" /> + <option name="push-file" key="selftests" value="/data/selftests" /> + <option name="skip-abi-filtering" value="true" /> -+ <option name="post-push" value='chmod -R 755 /data/selftests; find /data/selftests; -type f | xargs grep -l -e "bin/sh" -e "bin/bash" | xargs sed -i -e "s?/bin/echo?echo?" -i -e "s?#!/bin/sh?#!/system/bin/sh?" -i -e "s?#!/bin/bash?#!/system/bin/sh?" || echo "There were no files to process"' /> ++ <option name="post-push" value='chmod -R 755 /data/selftests; find /data/selftests -type f | xargs grep -l -e "bin/sh" -e "bin/bash" | xargs sed -i -e "s?/bin/echo?echo?" -i -e "s?#!/bin/sh?#!/system/bin/sh?" -i -e "s?#!/bin/bash?#!/system/bin/sh?" || echo "There were no files to process"' /> + </target_preparer> + + <test class="com.android.tradefed.testtype.binary.KernelTargetTest" > + <option name="exit-code-skip" value="4" /> + <option name="skip-binary-check" value="true" /> -+ <option name="test-command-line" key="kselftest_binderfs_binderfs_test" value="/data/selftests/x86_64/kselftest_binderfs_binderfs_test" /> -+ <option name="test-command-line" key="kselftest_breakpoints_breakpoint_test" value="/data/selftests/x86_64/kselftest_breakpoints_breakpoint_test" /> -+ <option name="test-command-line" key="kselftest_breakpoints_step_after_suspend_test" value="/data/selftests/x86_64/kselftest_breakpoints_step_after_suspend_test" /> -+ <option name="test-command-line" key="kselftest_futex_run" value="cd /data/selftests/x86_64/;USE_COLOR=0 ./kselftest_futex_run" /> -+ <option name="test-command-line" key="kselftest_kcmp_kcmp_test" value="/data/selftests/x86_64/kselftest_kcmp_kcmp_test" /> -+ <option name="test-command-line" key="kselftest_ptrace_peeksiginfo" value="/data/selftests/x86_64/kselftest_ptrace_peeksiginfo" /> -+ <option name="test-command-line" key="kselftest_rtc_rtctest" value="/data/selftests/x86_64/kselftest_rtc_rtctest" /> -+ <option name="test-command-line" key="kselftest_vdso_vdso_test_abi" value="/data/selftests/x86_64/kselftest_vdso_vdso_test_abi" /> -+ <option name="test-command-line" key="kselftest_vdso_vdso_test_clock_getres" value="/data/selftests/x86_64/kselftest_vdso_vdso_test_clock_getres" /> -+ <option name="test-command-line" key="kselftest_vdso_vdso_test_getcpu" value="/data/selftests/x86_64/kselftest_vdso_vdso_test_getcpu" /> -+ <option name="test-command-line" key="kselftest_vdso_vdso_test_gettimeofday" value="/data/selftests/x86_64/kselftest_vdso_vdso_test_gettimeofday" /> -+ <option name="test-command-line" key="kselftest_size_test_get_size" value="/data/selftests/x86_64/kselftest_size_test_get_size" /> -+ <option name="test-command-line" key="kselftest_mm_mremap_dontunmap" value="/data/selftests/x86_64/kselftest_mm_mremap_dontunmap" /> -+ <option name="test-command-line" key="kselftest_mm_mremap_test" value="/data/selftests/x86_64/kselftest_mm_mremap_test" /> -+ <option name="test-command-line" key="kselftest_mm_uffd_unit_tests" value="/data/selftests/x86_64/kselftest_mm_uffd_unit_tests" /> -+ <option name="test-command-line" key="kselftest_timers_adjtick" value="/data/selftests/x86_64/kselftest_timers_adjtick" /> -+ <option name="test-command-line" key="kselftest_timers_alarmtimer_suspend" value="/data/selftests/x86_64/kselftest_timers_alarmtimer_suspend" /> -+ <option name="test-command-line" key="kselftest_timers_change_skew" value="/data/selftests/x86_64/kselftest_timers_change_skew" /> -+ <option name="test-command-line" key="kselftest_timers_clocksource_switch" value="/data/selftests/x86_64/kselftest_timers_clocksource_switch" /> -+ <option name="test-command-line" key="kselftest_timers_freq_step" value="/data/selftests/x86_64/kselftest_timers_freq_step" /> -+ <option name="test-command-line" key="kselftest_timers_inconsistency_check" value="/data/selftests/x86_64/kselftest_timers_inconsistency_check" /> -+ <option name="test-command-line" key="kselftest_timers_leap_a_day" value="/data/selftests/x86_64/kselftest_timers_leap_a_day" /> -+ <option name="test-command-line" key="kselftest_timers_leapcrash" value="/data/selftests/x86_64/kselftest_timers_leapcrash" /> -+ <option name="test-command-line" key="kselftest_timers_nanosleep" value="/data/selftests/x86_64/kselftest_timers_nanosleep" /> -+ <option name="test-command-line" key="kselftest_timers_nsleep_lat" value="/data/selftests/x86_64/kselftest_timers_nsleep_lat" /> -+ <option name="test-command-line" key="kselftest_timers_posix_timers" value="/data/selftests/x86_64/kselftest_timers_posix_timers" /> -+ <option name="test-command-line" key="kselftest_timers_set_2038" value="/data/selftests/x86_64/kselftest_timers_set_2038" /> -+ <option name="test-command-line" key="kselftest_timers_set_tai" value="/data/selftests/x86_64/kselftest_timers_set_tai" /> -+ <option name="test-command-line" key="kselftest_timers_set_timer_lat" value="/data/selftests/x86_64/kselftest_timers_set_timer_lat" /> -+ <option name="test-command-line" key="kselftest_timers_set_tz" value="/data/selftests/x86_64/kselftest_timers_set_tz" /> -+ <option name="test-command-line" key="kselftest_timers_skew_consistency" value="/data/selftests/x86_64/kselftest_timers_skew_consistency" /> -+ <option name="test-command-line" key="kselftest_timers_tests_raw_skew" value="/data/selftests/x86_64/kselftest_timers_tests_raw_skew" /> -+ <option name="test-command-line" key="kselftest_timers_threadtest" value="/data/selftests/x86_64/kselftest_timers_threadtest" /> -+ <option name="test-command-line" key="kselftest_timers_valid_adjtimex" value="/data/selftests/x86_64/kselftest_timers_valid_adjtimex" /> ++ <option name="test-command-line" key="kselftest_binderfs_binderfs_test" value="cd &ktest_dir;; ./kselftest_binderfs_binderfs_test" /> ++ <option name="test-command-line" key="kselftest_breakpoints_breakpoint_test" value="cd &ktest_dir;; ./kselftest_breakpoints_breakpoint_test" /> ++ <option name="test-command-line" key="kselftest_futex_requeue" value="cd &ktest_dir;; ./futex_requeue" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi" value="cd &ktest_dir;; ./futex_requeue_pi" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_b" value="cd &ktest_dir;; ./futex_requeue_pi -b" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_bl" value="cd &ktest_dir;; ./futex_requeue_pi -b -l" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_bo" value="cd &ktest_dir;; ./futex_requeue_pi -b -o" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_l" value="cd &ktest_dir;; ./futex_requeue_pi -l" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_o" value="cd &ktest_dir;; ./futex_requeue_pi -o" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_5k" value="cd &ktest_dir;; ./futex_requeue_pi -t 5000" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_b_5k" value="cd &ktest_dir;; ./futex_requeue_pi -b -t 5000" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_bl_5k" value="cd &ktest_dir;; ./futex_requeue_pi -b -l -t 5000" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_bo_5k" value="cd &ktest_dir;; ./futex_requeue_pi -b -o -t 5000" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_l_5k" value="cd &ktest_dir;; ./futex_requeue_pi -l -t 5000" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_o_5k" value="cd &ktest_dir;; ./futex_requeue_pi -o -t 5000" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_500k" value="cd &ktest_dir;; ./futex_requeue_pi -t 500000" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_b_500k" value="cd &ktest_dir;; ./futex_requeue_pi -b -t 500000" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_bl_500k" value="cd &ktest_dir;; ./futex_requeue_pi -b -l -t 500000" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_bo_500k" value="cd &ktest_dir;; ./futex_requeue_pi -b -o -t 500000" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_l_500k" value="cd &ktest_dir;; ./futex_requeue_pi -l -t 500000" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_o_500k" value="cd &ktest_dir;; ./futex_requeue_pi -o -t 500000" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_bl_2G" value="cd &ktest_dir;; ./futex_requeue_pi -b -l -t 2000000000" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_l_2G" value="cd &ktest_dir;; ./futex_requeue_pi -l -t 2000000000" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_mismatched_ops" value="cd &ktest_dir;; ./futex_requeue_pi_mismatched_ops" /> ++ <option name="test-command-line" key="kselftest_futex_requeue_pi_signal_restart" value="cd &ktest_dir;; ./futex_requeue_pi_signal_restart" /> ++ <option name="test-command-line" key="kselftest_futex_wait" value="cd &ktest_dir;; ./futex_wait" /> ++ <option name="test-command-line" key="kselftest_futex_wait_private_mapped_file" value="cd &ktest_dir;; ./futex_wait_private_mapped_file" /> ++ <option name="test-command-line" key="kselftest_futex_wait_timeout" value="cd &ktest_dir;; ./futex_wait_timeout" /> ++ <option name="test-command-line" key="kselftest_futex_wait_uninitialized_heap" value="cd &ktest_dir;; ./futex_wait_uninitialized_heap" /> ++ <option name="test-command-line" key="kselftest_futex_wait_wouldblock" value="cd &ktest_dir;; ./futex_wait_wouldblock" /> ++ <option name="test-command-line" key="kselftest_kcmp_kcmp_test" value="cd &ktest_dir;; ./kselftest_kcmp_kcmp_test" /> ++ <option name="test-command-line" key="kselftest_mm_mremap_dontunmap" value="cd &ktest_dir;; ./kselftest_mm_mremap_dontunmap" /> ++ <option name="test-command-line" key="kselftest_mm_mremap_test" value="cd &ktest_dir;; ./kselftest_mm_mremap_test" /> ++ <option name="test-command-line" key="kselftest_mm_uffd_unit_tests" value="cd &ktest_dir;; ./kselftest_mm_uffd_unit_tests" /> ++ <option name="test-command-line" key="kselftest_ptrace_peeksiginfo" value="cd &ktest_dir;; ./kselftest_ptrace_peeksiginfo" /> ++ <option name="test-command-line" key="kselftest_rtc_rtctest" value="cd &ktest_dir;; ./kselftest_rtc_rtctest" /> ++ <option name="test-command-line" key="kselftest_size_test_get_size" value="cd &ktest_dir;; ./kselftest_size_test_get_size" /> ++ <option name="test-command-line" key="kselftest_timers_adjtick" value="cd &ktest_dir;; ./kselftest_timers_adjtick" /> ++ <option name="test-command-line" key="kselftest_timers_alarmtimer_suspend" value="cd &ktest_dir;; ./kselftest_timers_alarmtimer_suspend" /> ++ <option name="test-command-line" key="kselftest_timers_change_skew" value="cd &ktest_dir;; ./kselftest_timers_change_skew" /> ++ <option name="test-command-line" key="kselftest_timers_clocksource_switch" value="cd &ktest_dir;; ./kselftest_timers_clocksource_switch" /> ++ <option name="test-command-line" key="kselftest_timers_freq_step" value="cd &ktest_dir;; ./kselftest_timers_freq_step" /> ++ <option name="test-command-line" key="kselftest_timers_inconsistency_check" value="cd &ktest_dir;; ./kselftest_timers_inconsistency_check" /> ++ <option name="test-command-line" key="kselftest_timers_leap_a_day" value="cd &ktest_dir;; ./kselftest_timers_leap_a_day" /> ++ <option name="test-command-line" key="kselftest_timers_leapcrash" value="cd &ktest_dir;; ./kselftest_timers_leapcrash" /> ++ <option name="test-command-line" key="kselftest_timers_nanosleep" value="cd &ktest_dir;; ./kselftest_timers_nanosleep" /> ++ <option name="test-command-line" key="kselftest_timers_nsleep_lat" value="cd &ktest_dir;; ./kselftest_timers_nsleep_lat" /> ++ <option name="test-command-line" key="kselftest_timers_posix_timers" value="cd &ktest_dir;; ./kselftest_timers_posix_timers" /> ++ <option name="test-command-line" key="kselftest_timers_set_2038" value="cd &ktest_dir;; ./kselftest_timers_set_2038" /> ++ <option name="test-command-line" key="kselftest_timers_set_tai" value="cd &ktest_dir;; ./kselftest_timers_set_tai" /> ++ <option name="test-command-line" key="kselftest_timers_set_timer_lat" value="cd &ktest_dir;; ./kselftest_timers_set_timer_lat" /> ++ <option name="test-command-line" key="kselftest_timers_set_tz" value="cd &ktest_dir;; ./kselftest_timers_set_tz" /> ++ <option name="test-command-line" key="kselftest_timers_skew_consistency" value="cd &ktest_dir;; ./kselftest_timers_skew_consistency" /> ++ <option name="test-command-line" key="kselftest_timers_tests_raw_skew" value="cd &ktest_dir;; ./kselftest_timers_tests_raw_skew" /> ++ <option name="test-command-line" key="kselftest_timers_threadtest" value="cd &ktest_dir;; ./kselftest_timers_threadtest" /> ++ <option name="test-command-line" key="kselftest_timers_valid_adjtimex" value="cd &ktest_dir;; ./kselftest_timers_valid_adjtimex" /> ++ <option name="test-command-line" key="kselftest_vdso_vdso_test_abi" value="cd &ktest_dir;; ./kselftest_vdso_vdso_test_abi" /> ++ <option name="test-command-line" key="kselftest_vdso_vdso_test_clock_getres" value="cd &ktest_dir;; ./kselftest_vdso_vdso_test_clock_getres" /> ++ <option name="test-command-line" key="kselftest_vdso_vdso_test_getcpu" value="cd &ktest_dir;; ./kselftest_vdso_vdso_test_getcpu" /> ++ <option name="test-command-line" key="kselftest_vdso_vdso_test_gettimeofday" value="cd &ktest_dir;; ./kselftest_vdso_vdso_test_gettimeofday" /> + </test> +</configuration> +diff --git a/tools/testing/selftests/filesystems/binderfs/binderfs_test.c b/tools/testing/selftests/filesystems/binderfs/binderfs_test.c +--- a/tools/testing/selftests/filesystems/binderfs/binderfs_test.c ++++ b/tools/testing/selftests/filesystems/binderfs/binderfs_test.c +@@ -291,6 +291,11 @@ static int write_id_mapping(enum idmap_type type, pid_t pid, const char *buf, + return 0; + } + ++static bool has_userns(void) ++{ ++ return (access("/proc/self/ns/user", F_OK) == 0); ++} ++ + static void change_userns(struct __test_metadata *_metadata, int syncfds[2]) + { + int ret; +@@ -378,6 +383,9 @@ static void *binder_version_thread(void *data) + */ + TEST(binderfs_stress) + { ++ if (!has_userns()) ++ SKIP(return, "%s: user namespace not supported\n", __func__); ++ + int fds[1000]; + int syncfds[2]; + pid_t pid; +@@ -502,6 +510,8 @@ TEST(binderfs_test_privileged) + + TEST(binderfs_test_unprivileged) + { ++ if (!has_userns()) ++ SKIP(return, "%s: user namespace not supported\n", __func__); + int ret; + int syncfds[2]; + pid_t pid; +diff --git a/tools/testing/selftests/futex/functional/futex_wait.c b/tools/testing/selftests/futex/functional/futex_wait.c +--- a/tools/testing/selftests/futex/functional/futex_wait.c ++++ b/tools/testing/selftests/futex/functional/futex_wait.c +@@ -96,6 +96,11 @@ int main(int argc, char *argv[]) + /* Testing an anon page shared memory */ + shm_id = shmget(IPC_PRIVATE, 4096, IPC_CREAT | 0666); + if (shm_id < 0) { ++ if (errno == ENOSYS) { ++ ksft_test_result_skip("shmget returned: %d %s\n", ++ errno, strerror(errno)); ++ goto skip_anon_page_shared_memory_test; ++ } + perror("shmget"); + exit(1); + } +@@ -121,6 +126,7 @@ int main(int argc, char *argv[]) + ksft_test_result_pass("futex_wake shared (page anon) succeeds\n"); + } + ++skip_anon_page_shared_memory_test: + + /* Testing a file backed shared memory */ + fd = open(SHM_PATH, O_RDWR | O_CREAT, S_IRUSR | S_IWUSR); +diff --git a/tools/testing/selftests/futex/functional/futex_wait_timeout.c b/tools/testing/selftests/futex/functional/futex_wait_timeout.c +--- a/tools/testing/selftests/futex/functional/futex_wait_timeout.c ++++ b/tools/testing/selftests/futex/functional/futex_wait_timeout.c +@@ -64,9 +64,14 @@ void *get_pi_lock(void *arg) + static void test_timeout(int res, int *ret, char *test_name, int err) + { + if (!res || errno != err) { +- ksft_test_result_fail("%s returned %d\n", test_name, +- res < 0 ? errno : res); +- *ret = RET_FAIL; ++ if (errno == ENOSYS) { ++ ksft_test_result_skip("%s returned %d\n", test_name, ++ errno); ++ } else { ++ ksft_test_result_fail("%s returned %d\n", test_name, ++ res < 0 ? errno : res); ++ *ret = RET_FAIL; ++ } + } else { + ksft_test_result_pass("%s succeeds\n", test_name); + } +diff --git a/tools/testing/selftests/futex/functional/futex_wait_wouldblock.c b/tools/testing/selftests/futex/functional/futex_wait_wouldblock.c +--- a/tools/testing/selftests/futex/functional/futex_wait_wouldblock.c ++++ b/tools/testing/selftests/futex/functional/futex_wait_wouldblock.c +@@ -98,10 +98,15 @@ int main(int argc, char *argv[]) + info("Calling futex_waitv on f1: %u @ %p with val=%u\n", f1, &f1, f1+1); + res = futex_waitv(&waitv, 1, 0, &to, CLOCK_MONOTONIC); + if (!res || errno != EWOULDBLOCK) { +- ksft_test_result_pass("futex_waitv returned: %d %s\n", +- res ? errno : res, +- res ? strerror(errno) : ""); +- ret = RET_FAIL; ++ if (errno == ENOSYS) { ++ ksft_test_result_skip("futex_waitv returned %d\n", ++ errno); ++ } else { ++ ksft_test_result_fail("futex_waitv returned: %d %s\n", ++ res ? errno : res, ++ res ? strerror(errno) : ""); ++ ret = RET_FAIL; ++ } + } else { + ksft_test_result_pass("futex_waitv\n"); + } +diff --git a/tools/testing/selftests/rtc/rtctest.c b/tools/testing/selftests/rtc/rtctest.c +--- a/tools/testing/selftests/rtc/rtctest.c ++++ b/tools/testing/selftests/rtc/rtctest.c +@@ -122,6 +122,7 @@ TEST_F_TIMEOUT(rtc, date_read_loop, READ_LOOP_DURATION_SEC + 2) { + TH_LOG("Performed %ld RTC time reads.", iter_count); + } + ++#ifndef __ANDROID__ // b/31578457 + TEST_F_TIMEOUT(rtc, uie_read, NUM_UIE + 2) { + int i, rc, irq = 0; + unsigned long data; +@@ -409,6 +410,7 @@ TEST_F_TIMEOUT(rtc, alarm_wkalm_set_minute, 65) { + new = timegm((struct tm *)&tm); + ASSERT_EQ(new, secs); + } ++#endif + + static void __attribute__((constructor)) + __constructor_order_last(void) diff --git a/android-mainline/ANDROID-tty-hvc_dcc-Add-parameter-to-enable-DCC.patch b/android-mainline/ANDROID-tty-hvc_dcc-Add-parameter-to-enable-DCC.patch index 0e570351..7700a01a 100644 --- a/android-mainline/ANDROID-tty-hvc_dcc-Add-parameter-to-enable-DCC.patch +++ b/android-mainline/ANDROID-tty-hvc_dcc-Add-parameter-to-enable-DCC.patch @@ -21,7 +21,7 @@ Signed-off-by: Lee Jones <joneslee@google.com> diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt --- a/Documentation/admin-guide/kernel-parameters.txt +++ b/Documentation/admin-guide/kernel-parameters.txt -@@ -1840,6 +1840,10 @@ +@@ -1834,6 +1834,10 @@ If specified, z/VM IUCV HVC accepts connections from listed z/VM user IDs only. diff --git a/android-mainline/NOUPSTREAM-ANDROID-Add-vendor-hooks-to-the-scheduler.patch b/android-mainline/NOUPSTREAM-ANDROID-Add-vendor-hooks-to-the-scheduler.patch index 9c028a64..3ae9f941 100644 --- a/android-mainline/NOUPSTREAM-ANDROID-Add-vendor-hooks-to-the-scheduler.patch +++ b/android-mainline/NOUPSTREAM-ANDROID-Add-vendor-hooks-to-the-scheduler.patch @@ -1152,7 +1152,7 @@ diff --git a/net/core/sock.c b/net/core/sock.c #include <net/tcp.h> #include <net/busy_poll.h> -@@ -3342,9 +3343,19 @@ void sock_def_readable(struct sock *sk) +@@ -3334,9 +3335,19 @@ void sock_def_readable(struct sock *sk) rcu_read_lock(); wq = rcu_dereference(sk->sk_wq); diff --git a/android-mainline/NOUPSTREAM-ANDROID-Kbuild-Add-support-for-KBUILD_MIXED_TREE.patch b/android-mainline/NOUPSTREAM-ANDROID-Kbuild-Add-support-for-KBUILD_MIXED_TREE.patch index d911bb2c..52b51dd3 100644 --- a/android-mainline/NOUPSTREAM-ANDROID-Kbuild-Add-support-for-KBUILD_MIXED_TREE.patch +++ b/android-mainline/NOUPSTREAM-ANDROID-Kbuild-Add-support-for-KBUILD_MIXED_TREE.patch @@ -142,7 +142,7 @@ diff --git a/arch/arm64/Makefile b/arch/arm64/Makefile diff --git a/arch/x86/Makefile b/arch/x86/Makefile --- a/arch/x86/Makefile +++ b/arch/x86/Makefile -@@ -271,8 +271,11 @@ BOOT_TARGETS = bzdisk fdimage fdimage144 fdimage288 hdimage isoimage +@@ -273,8 +273,11 @@ BOOT_TARGETS = bzdisk fdimage fdimage144 fdimage288 hdimage isoimage PHONY += bzImage $(BOOT_TARGETS) diff --git a/android-mainline/NOUPSTREAM-ANDROID-Kleaf-Bazel-based-GKI-kernel-build.patch b/android-mainline/NOUPSTREAM-ANDROID-Kleaf-Bazel-based-GKI-kernel-build.patch index e5c54e93..cb05ea02 100644 --- a/android-mainline/NOUPSTREAM-ANDROID-Kleaf-Bazel-based-GKI-kernel-build.patch +++ b/android-mainline/NOUPSTREAM-ANDROID-Kleaf-Bazel-based-GKI-kernel-build.patch @@ -22,11 +22,11 @@ Change-Id: I2f06b2b79dbcbf197cb23d68b3c2f6786191e19d Signed-off-by: Matthias Maennich <maennich@google.com> Signed-off-by: Lee Jones <joneslee@google.com> --- - BUILD.bazel | 1947 +++++++++++++++++++++++++++++++++++++++++++++++++++ + BUILD.bazel | 1911 +++++++++++++++++++++++++++++++++++++++++++++++++++ Makefile | 4 + abi.bzl | 136 ++++ modules.bzl | 132 ++++ - 4 files changed, 2219 insertions(+) + 4 files changed, 2183 insertions(+) create mode 100644 BUILD.bazel create mode 100644 abi.bzl create mode 100644 modules.bzl @@ -35,7 +35,7 @@ diff --git a/BUILD.bazel b/BUILD.bazel new file mode 100644 --- /dev/null +++ b/BUILD.bazel -@@ -0,0 +1,1947 @@ +@@ -0,0 +1,1911 @@ +# SPDX-License-Identifier: GPL-2.0 +# Copyright (C) 2021 The Android Open Source Project + @@ -55,7 +55,7 @@ new file mode 100644 + "kernel_modules_install", + "merged_kernel_uapi_headers", +) -+load(":abi.bzl", "cc_binary_with_abi", "sh_binary_with_abi") ++load(":abi.bzl", "cc_binary_with_abi") +load(":modules.bzl", "get_gki_modules_list") + +package( @@ -271,7 +271,7 @@ new file mode 100644 + "drivers/dma/qcom/bam_dma.ko", + "drivers/dma/qcom/gpi.ko", + "drivers/extcon/extcon-usb-gpio.ko", -+ "drivers/firmware/qcom-scm.ko", ++ "drivers/firmware/qcom/qcom-scm.ko", + "drivers/gpio/gpio-wcd934x.ko", + "drivers/gpu/drm/bridge/display-connector.ko", + "drivers/gpu/drm/bridge/lontium-lt9611.ko", @@ -395,6 +395,7 @@ new file mode 100644 + "drivers/usb/host/ohci-hcd.ko", + "drivers/usb/host/ohci-pci.ko", + "drivers/usb/host/ohci-platform.ko", ++ "drivers/usb/typec/mux/nb7vpq904m.ko", + "drivers/usb/typec/tcpm/qcom/qcom_pmic_tcpm.ko", + "net/qrtr/qrtr.ko", + "net/qrtr/qrtr-mhi.ko", @@ -1020,15 +1021,6 @@ new file mode 100644 +) + +cc_binary_with_abi( -+ name = "kselftest_breakpoints_step_after_suspend_test", -+ srcs = ["tools/testing/selftests/breakpoints/step_after_suspend_test.c"], -+ path_prefix = _KSELFTEST_DIR, -+ target_compatible_with = ["@platforms//os:android"], -+ visibility = ["//visibility:private"], -+ deps = [":kselftest_headers_lib"], -+) -+ -+cc_binary_with_abi( + name = "kselftest_breakpoints_breakpoint_test", + srcs = select({ + ":x86_64": ["tools/testing/selftests/breakpoints/breakpoint_test.c"], @@ -1321,36 +1313,6 @@ new file mode 100644 +) + +cc_binary_with_abi( -+ name = "kselftest_futex_futex_waitv", -+ srcs = ["tools/testing/selftests/futex/functional/futex_waitv.c"], -+ out = "futex_waitv", -+ copts = [ -+ "-D_GNU_SOURCE", -+ "-pthread", -+ ], -+ includes = [ -+ "tools/testing/selftests", -+ "tools/testing/selftests/futex/include", -+ ], -+ path_prefix = _KSELFTEST_DIR, -+ target_compatible_with = ["@platforms//os:android"], -+ visibility = ["//visibility:private"], -+ deps = [ -+ ":kselftest_futex_headers_lib", -+ ":kselftest_headers_lib", -+ ], -+) -+ -+sh_binary_with_abi( -+ name = "kselftest_futex_run", -+ src = "tools/testing/selftests/futex/functional/run.sh", -+ out = "kselftest_futex_run", -+ path_prefix = _KSELFTEST_DIR, -+ target_compatible_with = ["@platforms//os:android"], -+ visibility = ["//visibility:private"], -+) -+ -+cc_binary_with_abi( + name = "kselftest_mm_compaction_test", + srcs = ["tools/testing/selftests/mm/compaction_test.c"], + includes = ["tools/testing/selftests"], @@ -1584,7 +1546,7 @@ new file mode 100644 + }), + includes = [ + "tools/testing/selftests", -+ "tools/testing/selftests/mm/", ++ "tools/testing/selftests/mm", + ], + linkopts = ["-nostartfiles"], + path_prefix = _KSELFTEST_DIR, @@ -1661,6 +1623,8 @@ new file mode 100644 +cc_binary_with_abi( + name = "kselftest_timers_inconsistency_check", + srcs = ["tools/testing/selftests/timers/inconsistency-check.c"], ++ # Called by set-2038, skew_consistency, change_skew, clocksource-switch ++ out = "inconsistency-check", + copts = [ + "-O3", + "-DKTEST", @@ -1700,6 +1664,8 @@ new file mode 100644 +cc_binary_with_abi( + name = "kselftest_timers_nanosleep", + srcs = ["tools/testing/selftests/timers/nanosleep.c"], ++ # Called by clocksource-switch, change_skew, set-2038 ++ out = "nanosleep", + copts = [ + "-O3", + "-DKTEST", @@ -1739,6 +1705,8 @@ new file mode 100644 +cc_binary_with_abi( + name = "kselftest_timers_tests_raw_skew", + srcs = ["tools/testing/selftests/timers/raw_skew.c"], ++ # Called by change_skew ++ out = "raw_skew", + copts = [ + "-O3", + "-DKTEST", @@ -1855,7 +1823,6 @@ new file mode 100644 + srcs = [ + ":kselftest_binderfs_binderfs_test_x86_64", + ":kselftest_breakpoints_breakpoint_test_x86_64", -+ ":kselftest_breakpoints_step_after_suspend_test_x86_64", + ":kselftest_futex_futex_requeue_pi_mismatched_ops_x86_64", + ":kselftest_futex_futex_requeue_pi_signal_restart_x86_64", + ":kselftest_futex_futex_requeue_pi_x86_64", @@ -1865,8 +1832,6 @@ new file mode 100644 + ":kselftest_futex_futex_wait_uninitialized_heap_x86_64", + ":kselftest_futex_futex_wait_wouldblock_x86_64", + ":kselftest_futex_futex_wait_x86_64", -+ ":kselftest_futex_futex_waitv_x86_64", -+ ":kselftest_futex_run_x86_64", + ":kselftest_gen_config", + ":kselftest_kcmp_kcmp_test_x86_64", + ":kselftest_mm_compaction_test_x86_64", @@ -1883,6 +1848,7 @@ new file mode 100644 + ":kselftest_mm_uffd_unit_tests_x86_64", + ":kselftest_ptrace_peeksiginfo_x86_64", + ":kselftest_rtc_rtctest_x86_64", ++ ":kselftest_size_test_get_size_x86_64", + ":kselftest_timers_adjtick_x86_64", + ":kselftest_timers_alarmtimer_suspend_x86_64", + ":kselftest_timers_change_skew_x86_64", @@ -1916,7 +1882,6 @@ new file mode 100644 + srcs = [ + ":kselftest_binderfs_binderfs_test_arm64", + ":kselftest_breakpoints_breakpoint_test_arm64", -+ ":kselftest_breakpoints_step_after_suspend_test_arm64", + ":kselftest_futex_futex_requeue_arm64", + ":kselftest_futex_futex_requeue_pi_arm64", + ":kselftest_futex_futex_requeue_pi_mismatched_ops_arm64", @@ -1926,8 +1891,6 @@ new file mode 100644 + ":kselftest_futex_futex_wait_timeout_arm64", + ":kselftest_futex_futex_wait_uninitialized_heap_arm64", + ":kselftest_futex_futex_wait_wouldblock_arm64", -+ ":kselftest_futex_futex_waitv_arm64", -+ ":kselftest_futex_run_arm64", + ":kselftest_gen_config", + ":kselftest_kcmp_kcmp_test_arm64", + ":kselftest_mm_compaction_test_arm64", @@ -1944,6 +1907,7 @@ new file mode 100644 + ":kselftest_mm_uffd_unit_tests_arm64", + ":kselftest_ptrace_peeksiginfo_arm64", + ":kselftest_rtc_rtctest_arm64", ++ ":kselftest_size_test_get_size_arm64", + ":kselftest_timers_adjtick_arm64", + ":kselftest_timers_alarmtimer_suspend_arm64", + ":kselftest_timers_change_skew_arm64", diff --git a/android-mainline/NOUPSTREAM-ANDROID-arm64-ARM64-Exports.patch b/android-mainline/NOUPSTREAM-ANDROID-arm64-ARM64-Exports.patch index 65d6530a..1bb2eebd 100644 --- a/android-mainline/NOUPSTREAM-ANDROID-arm64-ARM64-Exports.patch +++ b/android-mainline/NOUPSTREAM-ANDROID-arm64-ARM64-Exports.patch @@ -44,11 +44,11 @@ diff --git a/arch/arm64/include/asm/smp.h b/arch/arm64/include/asm/smp.h +extern struct irq_desc **ipi_desc_get(void); #ifdef CONFIG_ARM64_ACPI_PARKING_PROTOCOL - extern void arch_send_wakeup_ipi_mask(const struct cpumask *mask); + extern void arch_send_wakeup_ipi(unsigned int cpu); diff --git a/arch/arm64/kernel/cpufeature.c b/arch/arm64/kernel/cpufeature.c --- a/arch/arm64/kernel/cpufeature.c +++ b/arch/arm64/kernel/cpufeature.c -@@ -1494,6 +1494,7 @@ const struct cpumask *system_32bit_el0_cpumask(void) +@@ -1486,6 +1486,7 @@ const struct cpumask *system_32bit_el0_cpumask(void) return cpu_possible_mask; } @@ -99,7 +99,7 @@ diff --git a/arch/arm64/kernel/process.c b/arch/arm64/kernel/process.c diff --git a/arch/arm64/kernel/smp.c b/arch/arm64/kernel/smp.c --- a/arch/arm64/kernel/smp.c +++ b/arch/arm64/kernel/smp.c -@@ -57,6 +57,9 @@ +@@ -59,6 +59,9 @@ DEFINE_PER_CPU_READ_MOSTLY(int, cpu_number); EXPORT_PER_CPU_SYMBOL(cpu_number); @@ -109,7 +109,7 @@ diff --git a/arch/arm64/kernel/smp.c b/arch/arm64/kernel/smp.c /* * as from 2.5, kernels no longer have an init_tasks structure -@@ -1097,3 +1100,15 @@ bool cpus_are_stuck_in_kernel(void) +@@ -1184,3 +1187,15 @@ bool cpus_are_stuck_in_kernel(void) return !!cpus_stuck_in_kernel || smp_spin_tables || is_protected_kvm_enabled(); } diff --git a/android-mainline/NOUPSTREAM-ANDROID-arm64-ARM64-related-vendor-hooks.patch b/android-mainline/NOUPSTREAM-ANDROID-arm64-ARM64-related-vendor-hooks.patch index 59bcc26f..9b3f74c1 100644 --- a/android-mainline/NOUPSTREAM-ANDROID-arm64-ARM64-related-vendor-hooks.patch +++ b/android-mainline/NOUPSTREAM-ANDROID-arm64-ARM64-related-vendor-hooks.patch @@ -66,7 +66,7 @@ diff --git a/arch/arm64/kernel/process.c b/arch/arm64/kernel/process.c diff --git a/arch/arm64/kernel/smp.c b/arch/arm64/kernel/smp.c --- a/arch/arm64/kernel/smp.c +++ b/arch/arm64/kernel/smp.c -@@ -52,6 +52,8 @@ +@@ -54,6 +54,8 @@ #include <asm/virt.h> #include <trace/events/ipi.h> @@ -75,7 +75,7 @@ diff --git a/arch/arm64/kernel/smp.c b/arch/arm64/kernel/smp.c DEFINE_PER_CPU_READ_MOSTLY(int, cpu_number); EXPORT_PER_CPU_SYMBOL(cpu_number); -@@ -874,6 +876,7 @@ static void do_handle_IPI(int ipinr) +@@ -907,6 +909,7 @@ static void do_handle_IPI(int ipinr) break; case IPI_CPU_STOP: diff --git a/android-mainline/NOUPSTREAM-ANDROID-gki_defconfigs.patch b/android-mainline/NOUPSTREAM-ANDROID-gki_defconfigs.patch index 55f3c0a7..53d21a84 100644 --- a/android-mainline/NOUPSTREAM-ANDROID-gki_defconfigs.patch +++ b/android-mainline/NOUPSTREAM-ANDROID-gki_defconfigs.patch @@ -23,14 +23,14 @@ Signed-off-by: Lee Jones <joneslee@google.com> --- arch/arm64/configs/16k_gki.fragment | 3 + arch/arm64/configs/crashdump_defconfig | 81 +++ - arch/arm64/configs/db845c_gki.fragment | 13 +- + arch/arm64/configs/db845c_gki.fragment | 14 +- arch/arm64/configs/gki_defconfig | 709 ++++++++++++++++++++++++ arch/arm64/configs/microdroid_defconfig | 216 ++++++++ arch/riscv/configs/gki_defconfig | 651 ++++++++++++++++++++++ arch/x86/configs/crashdump_defconfig | 87 +++ arch/x86/configs/gki_defconfig | 657 ++++++++++++++++++++++ arch/x86/configs/microdroid_defconfig | 290 ++++++++++ - 9 files changed, 2704 insertions(+), 3 deletions(-) + 9 files changed, 2705 insertions(+), 3 deletions(-) create mode 100644 arch/arm64/configs/16k_gki.fragment create mode 100644 arch/arm64/configs/crashdump_defconfig create mode 100644 arch/arm64/configs/gki_defconfig @@ -179,12 +179,13 @@ diff --git a/arch/arm64/configs/db845c_gki.fragment b/arch/arm64/configs/db845c_ CONFIG_LEDS_QCOM_LPG=m CONFIG_SM_GPUCC_8250=m CONFIG_SM_DISPCC_8250=m -@@ -301,3 +302,9 @@ CONFIG_CLK_GFM_LPASS_SM8250=m +@@ -301,3 +302,10 @@ CONFIG_CLK_GFM_LPASS_SM8250=m CONFIG_PHY_QCOM_USB_SNPS_FEMTO_V2=m CONFIG_INTERCONNECT_QCOM_SM8250=m CONFIG_CRYPTO_MICHAEL_MIC=m +CONFIG_QCOM_CPR=m +CONFIG_QCOM_SPM=m ++CONFIG_TYPEC_MUX_NB7VPQ904M=m +# XXX SM8450 bits start here +CONFIG_PINCTRL_SM8450=m +CONFIG_SM_GCC_8450=m diff --git a/android-mainline/ONHOLD-ANDROID-net-xfrm-always-export-pktgen_xfrm_outer_mode_output.patch b/android-mainline/ONHOLD-ANDROID-net-xfrm-always-export-pktgen_xfrm_outer_mode_output.patch index aba15e71..6c41721c 100644 --- a/android-mainline/ONHOLD-ANDROID-net-xfrm-always-export-pktgen_xfrm_outer_mode_output.patch +++ b/android-mainline/ONHOLD-ANDROID-net-xfrm-always-export-pktgen_xfrm_outer_mode_output.patch @@ -38,7 +38,7 @@ diff --git a/include/net/xfrm.h b/include/net/xfrm.h -#endif void xfrm_local_error(struct sk_buff *skb, int mtu); - int xfrm4_extract_input(struct xfrm_state *x, struct sk_buff *skb); + int xfrm4_rcv_encap(struct sk_buff *skb, int nexthdr, __be32 spi, diff --git a/net/xfrm/xfrm_output.c b/net/xfrm/xfrm_output.c --- a/net/xfrm/xfrm_output.c +++ b/net/xfrm/xfrm_output.c diff --git a/android-mainline/Revert-sched-core-Prevent-race-condition-between-cpuset-and-__sched_setscheduler.patch b/android-mainline/Revert-sched-core-Prevent-race-condition-between-cpuset-and-__sched_setscheduler.patch index 41d2a47d..2856ea31 100644 --- a/android-mainline/Revert-sched-core-Prevent-race-condition-between-cpuset-and-__sched_setscheduler.patch +++ b/android-mainline/Revert-sched-core-Prevent-race-condition-between-cpuset-and-__sched_setscheduler.patch @@ -615,7 +615,7 @@ diff --git a/kernel/sched/core.c b/kernel/sched/core.c dump_stack(); add_taint(TAINT_WARN, LOCKDEP_STILL_OK); } -@@ -10539,6 +10660,7 @@ static int cpu_cgroup_css_online(struct cgroup_subsys_state *css) +@@ -10516,6 +10637,7 @@ static int cpu_cgroup_css_online(struct cgroup_subsys_state *css) cpu_util_update_eff(css); #endif @@ -623,7 +623,7 @@ diff --git a/kernel/sched/core.c b/kernel/sched/core.c return 0; } -@@ -10580,6 +10702,8 @@ static void cpu_cgroup_attach(struct cgroup_taskset *tset) +@@ -10557,6 +10679,8 @@ static void cpu_cgroup_attach(struct cgroup_taskset *tset) cgroup_taskset_for_each(task, css, tset) sched_move_task(task); @@ -632,7 +632,7 @@ diff --git a/kernel/sched/core.c b/kernel/sched/core.c } #ifdef CONFIG_UCLAMP_TASK_GROUP -@@ -10754,6 +10878,27 @@ static int cpu_uclamp_max_show(struct seq_file *sf, void *v) +@@ -10731,6 +10855,27 @@ static int cpu_uclamp_max_show(struct seq_file *sf, void *v) cpu_uclamp_print(sf, UCLAMP_MAX); return 0; } @@ -660,7 +660,7 @@ diff --git a/kernel/sched/core.c b/kernel/sched/core.c #endif /* CONFIG_UCLAMP_TASK_GROUP */ #ifdef CONFIG_FAIR_GROUP_SCHED -@@ -11222,6 +11367,12 @@ static struct cftype cpu_legacy_files[] = { +@@ -11199,6 +11344,12 @@ static struct cftype cpu_legacy_files[] = { .seq_show = cpu_uclamp_max_show, .write = cpu_uclamp_max_write, }, @@ -673,7 +673,7 @@ diff --git a/kernel/sched/core.c b/kernel/sched/core.c #endif { } /* Terminate */ }; -@@ -11438,6 +11589,12 @@ static struct cftype cpu_files[] = { +@@ -11415,6 +11566,12 @@ static struct cftype cpu_files[] = { .seq_show = cpu_uclamp_max_show, .write = cpu_uclamp_max_write, }, diff --git a/android-mainline/series b/android-mainline/series index 6ab846d2..6060f64a 100644 --- a/android-mainline/series +++ b/android-mainline/series @@ -1,8 +1,8 @@ # # android-mainline patches # -# Applies onto upstream f9ae180416e04 Linux v6.6-6789-gf9ae180416e04 -# Matches android-mainline 2597aed6bcec2 ("ANDROID: Update license for selftest build and configs") +# Applies onto upstream e9806ff8a0f9e Linux v6.6-10372-ge9806ff8a0f9e +# Matches android-mainline 3851c83bf23ba ("ANDROID: timers: Use original names for outputs of some timer binaries") # Status: Tested # Revert-sched-core-Prevent-race-condition-between-cpuset-and-__sched_setscheduler.patch |