mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 03:01:39 -04:00
Merge branch 'for-linus' of git://git.kernel.dk/linux-block
Pull block fixes from Jens Axboe:
"Unfortunately a few issues that warrant sending another pull request,
even if I had hoped to avoid it. This contains:
- A fix for multiqueue xen-blkback, on tear down / disconnect.
- A few fixups for NVMe, including a wrong bit definition, fix for
host memory buffers, and an nvme rdma page size fix"
* 'for-linus' of git://git.kernel.dk/linux-block:
nvme: fix the definition of the doorbell buffer config support bit
nvme-pci: use dma memory for the host memory buffer descriptors
nvme-rdma: default MR page size to 4k
xen-blkback: stop blkback thread of every queue in xen_blkif_disconnect
This commit is contained in:
commit
501d9f7945
4 changed files with 26 additions and 16 deletions
|
|
@ -244,6 +244,7 @@ static int xen_blkif_disconnect(struct xen_blkif *blkif)
|
|||
{
|
||||
struct pending_req *req, *n;
|
||||
unsigned int j, r;
|
||||
bool busy = false;
|
||||
|
||||
for (r = 0; r < blkif->nr_rings; r++) {
|
||||
struct xen_blkif_ring *ring = &blkif->rings[r];
|
||||
|
|
@ -261,8 +262,10 @@ static int xen_blkif_disconnect(struct xen_blkif *blkif)
|
|||
* don't have any discard_io or other_io requests. So, checking
|
||||
* for inflight IO is enough.
|
||||
*/
|
||||
if (atomic_read(&ring->inflight) > 0)
|
||||
return -EBUSY;
|
||||
if (atomic_read(&ring->inflight) > 0) {
|
||||
busy = true;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (ring->irq) {
|
||||
unbind_from_irqhandler(ring->irq, ring);
|
||||
|
|
@ -300,6 +303,9 @@ static int xen_blkif_disconnect(struct xen_blkif *blkif)
|
|||
WARN_ON(i != (XEN_BLKIF_REQS_PER_PAGE * blkif->nr_ring_pages));
|
||||
ring->active = false;
|
||||
}
|
||||
if (busy)
|
||||
return -EBUSY;
|
||||
|
||||
blkif->nr_ring_pages = 0;
|
||||
/*
|
||||
* blkif->rings was allocated in connect_ring, so we should free it in
|
||||
|
|
|
|||
Loading…
Reference in a new issue