]> git.proxmox.com Git - mirror_edk2.git/commit - MdeModulePkg/Bus/Pci/NvmExpressDxe/NvmExpressPassthru.c
MdeModulePkg/NvmExpressDxe: Handle timeout for blocking PassThru req
authorHao Wu <hao.a.wu@intel.com>
Tue, 6 Jun 2017 08:44:40 +0000 (16:44 +0800)
committerHao Wu <hao.a.wu@intel.com>
Thu, 6 Jul 2017 04:53:36 +0000 (12:53 +0800)
commit5f5bba14b64bef23ac4fbe401db9313e91713026
tree537628b6dd5c10cd25bdc0ebe284b842e5e9de2f
parentd04b72c67097ba4a3f937bdfbe310e4de30c8147
MdeModulePkg/NvmExpressDxe: Handle timeout for blocking PassThru req

https://bugzilla.tianocore.org/show_bug.cgi?id=433

When a blocking NVMe PassThru request experiences timeout, the current
codes in function NvmExpressPassThru() do not abort the timeout request
while advancing synchronous Submission Queue tail. Therefore, it is
possible to submit a new blocking PassThru request when the synchronous
Submission Queue is full.

The commit adds logic to abort the timeout request by resetting the NVMe
controller when a timeout occurs for a blocking PassThru request.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Star Zeng <star.zeng@intel.com>
MdeModulePkg/Bus/Pci/NvmExpressDxe/NvmExpressPassthru.c