A couple issues here. The nvme driver was ported from 4.5, but the block layer was based on 4.4, so there was a mismatch in how to handle timeouts. That was this launchpad:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1597908
But also, there is a bug handling legacy IRQ that only affected the 4.5 version of this driver, and that was fixed in commit: https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit?id=a5229050b69cfffb690b546c357ca5a60434c0c8
A couple issues here. The nvme driver was ported from 4.5, but the block layer was based on 4.4, so there was a mismatch in how to handle timeouts. That was this launchpad:
https:/ /bugs.launchpad .net/ubuntu/ +source/ linux/+ bug/1597908
But also, there is a bug handling legacy IRQ that only affected the 4.5 version of this driver, and that was fixed in commit: https:/ /git.kernel. org/cgit/ linux/kernel/ git/torvalds/ linux.git/ commit? id=a5229050b69c fffb690b546c357 ca5a60434c0c8