linux/virt/kvm/mmu_lock.h
<<
>>
Prefs
   1// SPDX-License-Identifier: GPL-2.0-only
   2
   3#ifndef KVM_MMU_LOCK_H
   4#define KVM_MMU_LOCK_H 1
   5
   6/*
   7 * Architectures can choose whether to use an rwlock or spinlock
   8 * for the mmu_lock.  These macros, for use in common code
   9 * only, avoids using #ifdefs in places that must deal with
  10 * multiple architectures.
  11 */
  12
  13#ifdef KVM_HAVE_MMU_RWLOCK
  14#define KVM_MMU_LOCK_INIT(kvm) rwlock_init(&(kvm)->mmu_lock)
  15#define KVM_MMU_LOCK(kvm)      write_lock(&(kvm)->mmu_lock)
  16#define KVM_MMU_UNLOCK(kvm)    write_unlock(&(kvm)->mmu_lock)
  17#else
  18#define KVM_MMU_LOCK_INIT(kvm) spin_lock_init(&(kvm)->mmu_lock)
  19#define KVM_MMU_LOCK(kvm)      spin_lock(&(kvm)->mmu_lock)
  20#define KVM_MMU_UNLOCK(kvm)    spin_unlock(&(kvm)->mmu_lock)
  21#endif /* KVM_HAVE_MMU_RWLOCK */
  22
  23#endif
  24