freebsd-skq/sys/dev/nvme
imp 0786751235 Make multi-namespace nvme drives more robust.
Fix assumptions about name spaces in NVME driver. First, it assumes
cdata.nn is the number of configured devices. However, it is the
number of supported name spaces. Second, it assumes that there will
never be more than 16 name spaces supported, but a certain drive I'm
testing reports 1024. It assumes that name spaces are a tightly packed
namespace, but the standard seems to indicate otherwise. Finally, it
assumes that an error would be generated when quearying an
unconfigured namespace. Instead, it succeeds but the identify data is
all zeros.

Fix these by limiting the number of name spaces we probe to 16. Remove
aborting when we find one in error. When the size of the name space is
zero, ignore it.

This is admittedly a bandaide. The long term fix will be to
participate in the enumeration and name space change protocols
definfed in the NVNe standard.

Sponsored by: Netflix
2017-03-07 21:47:54 +00:00
..
nvme_ctrlr_cmd.c
nvme_ctrlr.c Make multi-namespace nvme drives more robust. 2017-03-07 21:47:54 +00:00
nvme_ns_cmd.c Supporting flushing the dump before returning, and simplify/combine the 2016-07-19 19:09:23 +00:00
nvme_ns.c Make multi-namespace nvme drives more robust. 2017-03-07 21:47:54 +00:00
nvme_private.h Convert the Q-Pair and PRP list memory allocations to use BUSDMA. Add a 2016-11-08 00:24:49 +00:00
nvme_qpair.c Convert the Q-Pair and PRP list memory allocations to use BUSDMA. Add a 2016-11-08 00:24:49 +00:00
nvme_sim.c Remove obsolete comment after prior rev. 2017-02-19 17:38:17 +00:00
nvme_sysctl.c
nvme_test.c
nvme_util.c
nvme.c Make multi-namespace nvme drives more robust. 2017-03-07 21:47:54 +00:00
nvme.h Implement HGST Log page 0xc1, as documented in the HGST SN100 and 2016-11-19 17:13:08 +00:00