diff options
| author | Paolo Bonzini <pbonzini@redhat.com> | 2020-12-15 12:48:24 -0500 |
|---|---|---|
| committer | Paolo Bonzini <pbonzini@redhat.com> | 2020-12-15 12:48:24 -0500 |
| commit | 722e039d9a290a06e38199f6baffc04cfd98f2db (patch) | |
| tree | 2a4ac383efafe5a77c8c9dddb503d6978044ace1 /kernel/futex.c | |
| parent | 8640ca588b032166d6be6b4d3632d565d6d88e89 (diff) | |
| parent | 3a514592b698588326924625b6948a10c35fadd5 (diff) | |
| download | lwn-722e039d9a290a06e38199f6baffc04cfd98f2db.tar.gz lwn-722e039d9a290a06e38199f6baffc04cfd98f2db.zip | |
Merge tag 'kvmarm-5.11' of git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm into HEAD
KVM/arm64 updates for Linux 5.11
- PSCI relay at EL2 when "protected KVM" is enabled
- New exception injection code
- Simplification of AArch32 system register handling
- Fix PMU accesses when no PMU is enabled
- Expose CSV3 on non-Meltdown hosts
- Cache hierarchy discovery fixes
- PV steal-time cleanups
- Allow function pointers at EL2
- Various host EL2 entry cleanups
- Simplification of the EL2 vector allocation
Diffstat (limited to 'kernel/futex.c')
| -rw-r--r-- | kernel/futex.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/kernel/futex.c b/kernel/futex.c index ac328874f6e5..00259c7e288e 100644 --- a/kernel/futex.c +++ b/kernel/futex.c @@ -788,8 +788,9 @@ static void put_pi_state(struct futex_pi_state *pi_state) */ if (pi_state->owner) { struct task_struct *owner; + unsigned long flags; - raw_spin_lock_irq(&pi_state->pi_mutex.wait_lock); + raw_spin_lock_irqsave(&pi_state->pi_mutex.wait_lock, flags); owner = pi_state->owner; if (owner) { raw_spin_lock(&owner->pi_lock); @@ -797,7 +798,7 @@ static void put_pi_state(struct futex_pi_state *pi_state) raw_spin_unlock(&owner->pi_lock); } rt_mutex_proxy_unlock(&pi_state->pi_mutex, owner); - raw_spin_unlock_irq(&pi_state->pi_mutex.wait_lock); + raw_spin_unlock_irqrestore(&pi_state->pi_mutex.wait_lock, flags); } if (current->pi_state_cache) { |
