Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 356835
b: refs/heads/master
c: b26ba22
h: refs/heads/master
i:
  356833: 16c50a8
  356831: 27076e9
v: v3
  • Loading branch information
Christian Borntraeger authored and Marcelo Tosatti committed Jan 9, 2013
1 parent 8fddf3c commit d608803
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 6 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 73fa21ea4fc662a2e8e85f84c4ca3fcb55fa4da2
refs/heads/master: b26ba22bb4f12289f9d5eb878c490e674934a197
13 changes: 8 additions & 5 deletions trunk/drivers/s390/kvm/virtio_ccw.c
Original file line number Diff line number Diff line change
Expand Up @@ -132,11 +132,14 @@ static int ccw_io_helper(struct virtio_ccw_device *vcdev,
unsigned long flags;
int flag = intparm & VIRTIO_CCW_INTPARM_MASK;

spin_lock_irqsave(get_ccwdev_lock(vcdev->cdev), flags);
ret = ccw_device_start(vcdev->cdev, ccw, intparm, 0, 0);
if (!ret)
vcdev->curr_io |= flag;
spin_unlock_irqrestore(get_ccwdev_lock(vcdev->cdev), flags);
do {
spin_lock_irqsave(get_ccwdev_lock(vcdev->cdev), flags);
ret = ccw_device_start(vcdev->cdev, ccw, intparm, 0, 0);
if (!ret)
vcdev->curr_io |= flag;
spin_unlock_irqrestore(get_ccwdev_lock(vcdev->cdev), flags);
cpu_relax();
} while (ret == -EBUSY);
wait_event(vcdev->wait_q, doing_io(vcdev, flag) == 0);
return ret ? ret : vcdev->err;
}
Expand Down

0 comments on commit d608803

Please sign in to comment.