Merge branch 'android12-5.10' into android12-5.10-lts
Sync up with android12-5.10 for the following commits:1419b69403
Merge tag 'android12-5.10.101_r00' into android12-5.103eec441822
UPSTREAM: usb: gadget: Fix use-after-free bug by not setting udc->dev.driver821f3e53d9
UPSTREAM: usb: gadget: rndis: prevent integer overflow in rndis_set_response()39aca15979
FROMGIT: mm/migrate: fix race between lock page and clear PG_Isolatedde0334216b
UPSTREAM: arm64: proton-pack: Include unprivileged eBPF status in Spectre v2 mitigation reportingd236f7b4cb
UPSTREAM: arm64: Use the clearbhb instruction in mitigations98b16e808f
UPSTREAM: KVM: arm64: Allow SMCCC_ARCH_WORKAROUND_3 to be discovered and migrated0f76dfc55d
UPSTREAM: arm64: Mitigate spectre style branch history side channels5411474f65
UPSTREAM: arm64: Do not include __READ_ONCE() block in assembly filese9a39a642c
UPSTREAM: KVM: arm64: Allow indirect vectors to be used without SPECTRE_V3Afee1ae7c7c
UPSTREAM: arm64: proton-pack: Report Spectre-BHB vulnerabilities as part of Spectre-v2d95b0b4e5d
UPSTREAM: arm64: Add percpu vectors for EL130180ef431
Revert "BACKPORT: FROMLIST: scsi: core: Reserve one tag for the UFS driver"28837e415d
UPSTREAM: arm64: entry: Add macro for reading symbol addresses from the trampolinee322fe26a1
UPSTREAM: arm64: entry: Add vectors that have the bhb mitigation sequences2a90cf9af2
UPSTREAM: arm64: entry: Add non-kpti __bp_harden_el1_vectors for mitigations0db372ec4b
UPSTREAM: arm64: entry: Allow the trampoline text to occupy multiple pages158c87e50a
UPSTREAM: arm64: entry: Make the kpti trampoline's kpti sequence optionale6408b96a0
UPSTREAM: arm64: entry: Move trampoline macros out of ifdef'd section00d8bb6b90
UPSTREAM: arm64: entry: Don't assume tramp_vectors is the start of the vectors0defb52ce6
UPSTREAM: arm64: entry: Allow tramp_alias to access symbols after the 4K boundary6e48449c91
UPSTREAM: arm64: entry: Move the trampoline data page before the text pagebb8baaf3af
UPSTREAM: arm64: entry: Free up another register on kpti's tramp_exit path32ba6d5d61
UPSTREAM: arm64: entry: Make the trampoline cleanup optionalc8b567d888
UPSTREAM: arm64: spectre: Rename spectre_v4_patch_fw_mitigation_conduit17867c11a2
UPSTREAM: arm64: entry.S: Add ventry overflow sanity checks81ec26aafe
UPSTREAM: arm64: cpufeature: add HWCAP for FEAT_RPRES18c4e4fa56
UPSTREAM: arm64: cpufeature: add HWCAP for FEAT_AFP68bc555a23
UPSTREAM: arm64: add ID_AA64ISAR2_EL1 sys register2e2eef400b
UPSTREAM: arm64: Add HWCAP for self-synchronising virtual counter6d1f2678e2
UPSTREAM: arm64: Add Cortex-X2 CPU part definition51eded5d1b
UPSTREAM: arm64: cputype: Add CPU implementor & types for the Apple M1 cores803ff1161c
UPSTREAM: binder: Add invalid handle info in user error loga40cd23755
UPSTREAM: ARM: fix Thumb2 regression with Spectre BHB56186c7e4a
UPSTREAM: ARM: Spectre-BHB: provide empty stub for non-config1ea0d91588
UPSTREAM: ARM: fix build warning in proc-v7-bugs.cfdf3cb8a00
UPSTREAM: ARM: Do not use NOCROSSREFS directive with ld.lld57bc1e13f0
UPSTREAM: ARM: fix co-processor register typoa4e68d43f5
UPSTREAM: ARM: fix build error when BPF_SYSCALL is disabledbd2376838d
UPSTREAM: ARM: include unprivileged BPF status in Spectre V2 reportingafbbe4048f
UPSTREAM: ARM: Spectre-BHB workaround5a41f364e7
UPSTREAM: ARM: use LOADADDR() to get load address of sections3bfcb356df
UPSTREAM: ARM: early traps initialisation5a64a66802
UPSTREAM: ARM: report Spectre v2 status through sysfs9362cd2b47
UPSTREAM: x86/speculation: Warn about eIBRS + LFENCE + Unprivileged eBPF + SMT54a2bd029f
UPSTREAM: x86/speculation: Warn about Spectre v2 LFENCE mitigationf1b1f893b4
UPSTREAM: x86/speculation: Update link to AMD speculation whitepaperc4188388a3
UPSTREAM: x86/speculation: Use generic retpoline by default on AMDbd02dc4329
UPSTREAM: x86/speculation: Include unprivileged eBPF status in Spectre v2 mitigation reporting3883503747
UPSTREAM: Documentation/hw-vuln: Update spectre doc1c3e98581b
UPSTREAM: x86/speculation: Add eIBRS + Retpoline optionscc9e9aa4e0
UPSTREAM: x86/speculation: Rename RETPOLINE_AMD to RETPOLINE_LFENCE414a6076ac
UPSTREAM: x86,bugs: Unconditionally allow spectre_v2=retpoline,amdf27f62fecd
UPSTREAM: bpf: Add kconfig knob for disabling unpriv bpf by defaultf3ca80cced
ANDROID: dm-bow: Protect Ranges fetched and erased from the RB tree4ebb639f0d
ANDROID: mm: page_pinner: fix build warningfe75d58387
ANDROID: fault: Add vendor hook for TLB conflict8248a3e758
BACKPORT: sched: Fix yet more sched_fork() racescd6e5d5d7d
ANDROID: mm/slub: Fix Kasan issue with for_each_object_track8dbcaf63b2
ANDROID: dm kcopyd: Use reserved memory for the copy buffer7b5fea2f46
ANDROID: GKI: add allowed list file for xiaomiae38f9954b
ANDROID: GKI: Update symbols to symbol list786bcb1109
FROMGIT: f2fs: quota: fix loop condition at f2fs_quota_sync()91fef75d48
FROMGIT: f2fs: Restore rwsem lockdep support4cc8ec84be
ANDROID: ABI: update allowed list for galaxyfcaaaaae6d
UPSTREAM: mac80211_hwsim: initialize ieee80211_tx_info at hw_scan_work91be4236fb
ANDROID: GKI: remove vfs-only namespace from 2 symbolsa817d6ed87
ANDROID: mm: Fix page table lookup in speculative fault pathe53b1b9ad4
UPSTREAM: xhci: re-initialize the HC during resume if HCE was set767f384155
FROMGIT: xhci: make xhci_handshake timeout for xhci_reset() adjustableebbf267fc0
ANDROID: vendor_hooks: Add hooks for __alloc_pages_direct_reclaim135406cecb
ANDROID: dma-direct: Document disable_dma32bf96382fb9
ANDROID: dma-direct: Make DMA32 disablement work for CONFIG_NUMA8f66dc1a78
UPSTREAM: mmc: block: fix read single on recovery logiccf221db753
UPSTREAM: fget: check that the fd still exists after getting a ref to it43754d8b7f
ANDROID: GKI: Update symbols to symbol listf2d0c30576
ANDROID: vendor_hooks: Add hooks for shrink_active_list62412e5b8c
FROMGIT: mm: count time in drain_all_pages during direct reclaim as memory pressure3b9fe10e46
ANDROID: incremental-fs: remove spurious kfree()acefa91e51
ANDROID: vendor_hooks: Add hooks for binderc3ac7418e6
ANDROID: qcom: Add sysfs related symbol Change-Id: Icbe5fb26e3cef602e3bbc01745a755a95d72a1a0
This commit is contained in:
@@ -62,7 +62,7 @@ static gfp_t dma_direct_optimal_gfp_mask(struct device *dev, u64 dma_mask,
|
||||
if (*phys_limit <= DMA_BIT_MASK(zone_dma_bits))
|
||||
return GFP_DMA;
|
||||
if (*phys_limit <= DMA_BIT_MASK(32) &&
|
||||
!zone_dma32_is_empty(dev_to_node(dev)))
|
||||
!zone_dma32_are_empty())
|
||||
return GFP_DMA32;
|
||||
return 0;
|
||||
}
|
||||
@@ -103,7 +103,7 @@ again:
|
||||
if (IS_ENABLED(CONFIG_ZONE_DMA32) &&
|
||||
phys_limit < DMA_BIT_MASK(64) &&
|
||||
!(gfp & (GFP_DMA32 | GFP_DMA)) &&
|
||||
!zone_dma32_is_empty(node)) {
|
||||
!zone_dma32_are_empty()) {
|
||||
gfp |= GFP_DMA32;
|
||||
goto again;
|
||||
}
|
||||
|
@@ -2249,6 +2249,17 @@ static __latent_entropy struct task_struct *copy_process(
|
||||
if (retval)
|
||||
goto bad_fork_put_pidfd;
|
||||
|
||||
/*
|
||||
* Now that the cgroups are pinned, re-clone the parent cgroup and put
|
||||
* the new task on the correct runqueue. All this *before* the task
|
||||
* becomes visible.
|
||||
*
|
||||
* This isn't part of ->can_fork() because while the re-cloning is
|
||||
* cgroup specific, it unconditionally needs to place the task on a
|
||||
* runqueue.
|
||||
*/
|
||||
sched_cgroup_fork(p, args);
|
||||
|
||||
/*
|
||||
* From this point on we must avoid any synchronous user-space
|
||||
* communication until we take the tasklist-lock. In particular, we do
|
||||
@@ -2356,7 +2367,7 @@ static __latent_entropy struct task_struct *copy_process(
|
||||
fd_install(pidfd, pidfile);
|
||||
|
||||
proc_fork_connector(p);
|
||||
sched_post_fork(p, args);
|
||||
sched_post_fork(p);
|
||||
cgroup_post_fork(p, args);
|
||||
perf_event_fork(p);
|
||||
|
||||
|
@@ -880,9 +880,8 @@ int tg_nop(struct task_group *tg, void *data)
|
||||
}
|
||||
#endif
|
||||
|
||||
static void set_load_weight(struct task_struct *p)
|
||||
static void set_load_weight(struct task_struct *p, bool update_load)
|
||||
{
|
||||
bool update_load = !(READ_ONCE(p->state) & TASK_NEW);
|
||||
int prio = p->static_prio - MAX_RT_PRIO;
|
||||
struct load_weight *load = &p->se.load;
|
||||
|
||||
@@ -3485,7 +3484,7 @@ int sched_fork(unsigned long clone_flags, struct task_struct *p)
|
||||
p->static_prio = NICE_TO_PRIO(0);
|
||||
|
||||
p->prio = p->normal_prio = p->static_prio;
|
||||
set_load_weight(p);
|
||||
set_load_weight(p, false);
|
||||
|
||||
/*
|
||||
* We don't need the reset flag anymore after the fork. It has
|
||||
@@ -3504,6 +3503,7 @@ int sched_fork(unsigned long clone_flags, struct task_struct *p)
|
||||
init_entity_runnable_average(&p->se);
|
||||
trace_android_rvh_finish_prio_fork(p);
|
||||
|
||||
|
||||
#ifdef CONFIG_SCHED_INFO
|
||||
if (likely(sched_info_on()))
|
||||
memset(&p->sched_info, 0, sizeof(p->sched_info));
|
||||
@@ -3519,18 +3519,24 @@ int sched_fork(unsigned long clone_flags, struct task_struct *p)
|
||||
return 0;
|
||||
}
|
||||
|
||||
void sched_post_fork(struct task_struct *p, struct kernel_clone_args *kargs)
|
||||
void sched_cgroup_fork(struct task_struct *p, struct kernel_clone_args *kargs)
|
||||
{
|
||||
unsigned long flags;
|
||||
#ifdef CONFIG_CGROUP_SCHED
|
||||
struct task_group *tg;
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Because we're not yet on the pid-hash, p->pi_lock isn't strictly
|
||||
* required yet, but lockdep gets upset if rules are violated.
|
||||
*/
|
||||
raw_spin_lock_irqsave(&p->pi_lock, flags);
|
||||
#ifdef CONFIG_CGROUP_SCHED
|
||||
tg = container_of(kargs->cset->subsys[cpu_cgrp_id],
|
||||
struct task_group, css);
|
||||
p->sched_task_group = autogroup_task_group(p, tg);
|
||||
if (1) {
|
||||
struct task_group *tg;
|
||||
|
||||
tg = container_of(kargs->cset->subsys[cpu_cgrp_id],
|
||||
struct task_group, css);
|
||||
tg = autogroup_task_group(p, tg);
|
||||
p->sched_task_group = tg;
|
||||
}
|
||||
#endif
|
||||
rseq_migrate(p);
|
||||
/*
|
||||
@@ -3541,7 +3547,10 @@ void sched_post_fork(struct task_struct *p, struct kernel_clone_args *kargs)
|
||||
if (p->sched_class->task_fork)
|
||||
p->sched_class->task_fork(p);
|
||||
raw_spin_unlock_irqrestore(&p->pi_lock, flags);
|
||||
}
|
||||
|
||||
void sched_post_fork(struct task_struct *p)
|
||||
{
|
||||
uclamp_post_fork(p);
|
||||
}
|
||||
|
||||
@@ -5253,7 +5262,7 @@ void set_user_nice(struct task_struct *p, long nice)
|
||||
put_prev_task(rq, p);
|
||||
|
||||
p->static_prio = NICE_TO_PRIO(nice);
|
||||
set_load_weight(p);
|
||||
set_load_weight(p, true);
|
||||
old_prio = p->prio;
|
||||
p->prio = effective_prio(p);
|
||||
|
||||
@@ -5427,7 +5436,7 @@ static void __setscheduler_params(struct task_struct *p,
|
||||
*/
|
||||
p->rt_priority = attr->sched_priority;
|
||||
p->normal_prio = normal_prio(p);
|
||||
set_load_weight(p);
|
||||
set_load_weight(p, true);
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -7570,7 +7579,7 @@ void __init sched_init(void)
|
||||
atomic_set(&rq->nr_iowait, 0);
|
||||
}
|
||||
|
||||
set_load_weight(&init_task);
|
||||
set_load_weight(&init_task, false);
|
||||
|
||||
/*
|
||||
* The boot idle thread does lazy MMU switching as well:
|
||||
|
Reference in New Issue
Block a user