Re: [PATCH v3] NVMe: init nvme queue before enabling irq

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Wenbo,

From: Wenbo Wang <wenbo.wang@xxxxxxxxxxxx>

[v3] Do request irq in nvme_init_queue() to handle request irq failures

There is one problem with the original patch. Since init queue happens
before request irq, online_queue might be left increased if request irq
fails. This version merges request irq into nvme_init_queue() because:
1. It solves the online_queue counting issue if request irq fails.
2. nvme_init_queue() is always followed by request irq, this change
    simplifies code.

This version also solves another possible race condition by moving
adminq free irq before iounmap.

[v2] Remove duplicate init code in nvme_alloc_queue()

During reset process, the nvme_dev->bar (ioremapped) may change,
so nvmeq->q_db shall be also updated by nvme_init_queue().

[v1]

Currently nvmeq irq is enabled before queue init, so a spurious
interrupt triggered nvme_process_cq may access nvmeq->q_db just
before it is updated, this could cause kernel panic.

So the patch changes should not appear in the change-log itself, its
meant for the reviewers. The change log should document the fix.


Signed-off-by: Wenbo Wang <wenbo.wang@xxxxxxxxxxxx>
Reviewed-by: Wenwei Tao <wenwei.tao@xxxxxxxxxxxx>
CC: stable@xxxxxxxxxxxxxxx
---

Here (under the '---' separator) the patch vX changes should be
documented in the form:

Changes from v1:
- A2
- B2
- C2

Changes from v0:
- A1
- B1
- C1

This way git-am won't include it in the commit log message.

Other then that the patch itself looks fine,

Reviewed-by: Sagi Grimberg <sagig@xxxxxxxxxxxx>
--
To unsubscribe from this list: send the line "unsubscribe stable" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]