diff options
| author | Steve French <sfrench@us.ibm.com> | 2010-05-14 13:11:48 -0400 |
|---|---|---|
| committer | Steve French <sfrench@us.ibm.com> | 2010-05-14 13:11:48 -0400 |
| commit | ade275c4b6db98ae7b197cc7c6bdd73567a975c2 (patch) | |
| tree | 9953adc43c9afe95f73298470c69ea02102c2eba /drivers | |
| parent | 5f65f150fbc580ccfd57e5528e1fc905aaaef65c (diff) | |
| parent | 508ff9d41c9aa7e178f6330e703a22af03090dd5 (diff) | |
Merge branch 'master' of /pub/scm/linux/kernel/git/torvalds/linux-2.6
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/vhost/vhost.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/vhost/vhost.c b/drivers/vhost/vhost.c index e69d238c5af0..49fa953aaf6e 100644 --- a/drivers/vhost/vhost.c +++ b/drivers/vhost/vhost.c | |||
| @@ -1035,7 +1035,12 @@ int vhost_add_used(struct vhost_virtqueue *vq, unsigned int head, int len) | |||
| 1035 | /* This actually signals the guest, using eventfd. */ | 1035 | /* This actually signals the guest, using eventfd. */ |
| 1036 | void vhost_signal(struct vhost_dev *dev, struct vhost_virtqueue *vq) | 1036 | void vhost_signal(struct vhost_dev *dev, struct vhost_virtqueue *vq) |
| 1037 | { | 1037 | { |
| 1038 | __u16 flags = 0; | 1038 | __u16 flags; |
| 1039 | /* Flush out used index updates. This is paired | ||
| 1040 | * with the barrier that the Guest executes when enabling | ||
| 1041 | * interrupts. */ | ||
| 1042 | smp_mb(); | ||
| 1043 | |||
| 1039 | if (get_user(flags, &vq->avail->flags)) { | 1044 | if (get_user(flags, &vq->avail->flags)) { |
| 1040 | vq_err(vq, "Failed to get flags"); | 1045 | vq_err(vq, "Failed to get flags"); |
| 1041 | return; | 1046 | return; |
