summaryrefslogtreecommitdiffstats
path: root/include/linux/nvme.h
diff options
context:
space:
mode:
authorMatthew Wilcox <matthew.r.wilcox@intel.com>2013-04-16 15:21:06 -0400
committerMatthew Wilcox <matthew.r.wilcox@intel.com>2013-04-16 15:21:06 -0400
commit1c9b52651dad0ff1fa71fc6205c86d972f25bcc0 (patch)
tree387be3d96798e7b5c4d35accd3067d4095552387 /include/linux/nvme.h
parentaf2d9ca744af5e03390eeb3864d08ce75c860899 (diff)
downloadlinux-1c9b52651dad0ff1fa71fc6205c86d972f25bcc0.tar.gz
linux-1c9b52651dad0ff1fa71fc6205c86d972f25bcc0.tar.xz
NVMe: Fix endian-related problems in user I/O submission path
When constructing the command, dsmgmt needs to be treated as a 32-bit value, not a 16-bit value. reftag, apptag and appmask all need to be converted from native-endian to little-endian. Again, sparse's bitwise warnings caught this problem. Thanks to Keith for pointing out the correct way to fix the reftag. Signed-off-by: Matthew Wilcox <matthew.r.wilcox@intel.com> Acked-by: Keith Busch <keith.busch@intel.com>
Diffstat (limited to 'include/linux/nvme.h')
-rw-r--r--include/linux/nvme.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/include/linux/nvme.h b/include/linux/nvme.h
index 09f419d4da4e..7ae7ecfc0947 100644
--- a/include/linux/nvme.h
+++ b/include/linux/nvme.h
@@ -207,11 +207,11 @@ struct nvme_common_command {
__u8 flags;
__u16 command_id;
__le32 nsid;
- __u32 cdw2[2];
+ __le32 cdw2[2];
__le64 metadata;
__le64 prp1;
__le64 prp2;
- __u32 cdw10[6];
+ __le32 cdw10[6];
};
struct nvme_rw_command {