diff options
author | Keir Fraser <keir.fraser@citrix.com> | 2010-06-10 18:01:03 +0100 |
---|---|---|
committer | Keir Fraser <keir.fraser@citrix.com> | 2010-06-10 18:01:03 +0100 |
commit | 2c76d23d0c7886cce135bf73cb0e99819a436990 (patch) | |
tree | f36e304fa62b4ec6e4170875d9941ee053e4baed /xen/arch/x86/hvm/vmsi.c | |
parent | 5bc894f65b3a26cd0ee1fc7658e95f2908fdbb0b (diff) | |
download | xen-2c76d23d0c7886cce135bf73cb0e99819a436990.tar.gz xen-2c76d23d0c7886cce135bf73cb0e99819a436990.tar.bz2 xen-2c76d23d0c7886cce135bf73cb0e99819a436990.zip |
rcu: Update all rcu_read_lock() users to implement a dummy RCU read lock.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
Diffstat (limited to 'xen/arch/x86/hvm/vmsi.c')
-rw-r--r-- | xen/arch/x86/hvm/vmsi.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/xen/arch/x86/hvm/vmsi.c b/xen/arch/x86/hvm/vmsi.c index d9ec9fb0a4..31ee9b7cfe 100644 --- a/xen/arch/x86/hvm/vmsi.c +++ b/xen/arch/x86/hvm/vmsi.c @@ -162,6 +162,8 @@ struct msixtbl_entry struct rcu_head rcu; }; +static DEFINE_RCU_READ_LOCK(msixtbl_rcu_lock); + static struct msixtbl_entry *msixtbl_find_entry( struct vcpu *v, unsigned long addr) { @@ -207,7 +209,7 @@ static int msixtbl_read( void *virt; int r = X86EMUL_UNHANDLEABLE; - rcu_read_lock(); + rcu_read_lock(&msixtbl_rcu_lock); if ( len != 4 ) goto out; @@ -225,7 +227,7 @@ static int msixtbl_read( r = X86EMUL_OKAY; out: - rcu_read_unlock(); + rcu_read_unlock(&msixtbl_rcu_lock); return r; } @@ -238,7 +240,7 @@ static int msixtbl_write(struct vcpu *v, unsigned long address, int nr_entry; int r = X86EMUL_UNHANDLEABLE; - rcu_read_lock(); + rcu_read_lock(&msixtbl_rcu_lock); if ( len != 4 ) goto out; @@ -265,7 +267,7 @@ static int msixtbl_write(struct vcpu *v, unsigned long address, r = X86EMUL_OKAY; out: - rcu_read_unlock(); + rcu_read_unlock(&msixtbl_rcu_lock); return r; } @@ -274,12 +276,12 @@ static int msixtbl_range(struct vcpu *v, unsigned long addr) struct msixtbl_entry *entry; void *virt; - rcu_read_lock(); + rcu_read_lock(&msixtbl_rcu_lock); entry = msixtbl_find_entry(v, addr); virt = msixtbl_addr_to_virt(entry, addr); - rcu_read_unlock(); + rcu_read_unlock(&msixtbl_rcu_lock); return !!virt; } |