nvme: Fix u32 overflow in the number of namespace list calculation
authorJaesoo Lee <jalee@purestorage.com>
Mon, 3 Jun 2019 23:42:28 +0000 (16:42 -0700)
committerSagi Grimberg <sagi@grimberg.me>
Thu, 6 Jun 2019 16:53:07 +0000 (09:53 -0700)
commitc8e8c77b3bdbade6e26e8e76595f141ede12b692
tree4208435720b69ba62d21bf61a95a149a3ce71893
parent3562f5d9f21e7779ae442a45197fed6cb247fd22
nvme: Fix u32 overflow in the number of namespace list calculation

The Number of Namespaces (nn) field in the identify controller data structure is
defined as u32 and the maximum allowed value in NVMe specification is
0xFFFFFFFEUL. This change fixes the possible overflow of the DIV_ROUND_UP()
operation used in nvme_scan_ns_list() by casting the nn to u64.

Signed-off-by: Jaesoo Lee <jalee@purestorage.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Sagi Grimberg <sagi@grimberg.me>
drivers/nvme/host/core.c