From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.8 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id ADB5DC48BE8 for ; Mon, 24 Jun 2019 10:05:25 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 7C19A21655 for ; Mon, 24 Jun 2019 10:05:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1561370725; bh=LiMkDk0A3ef731YpjvZFVVVUe3S59l1oevaiy1sIbeA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=C0IxXhvxa+rL21U2PiATlDMbNAfWfiCzlmVEpwL7sItw4mCquuN9Q75yHHsrK0X4O 93YYlDSXzQlNn/lUiVmto04oVrv+RZr0sokmjAh2Ye1jcPXFLBUW4zC5+9Ks/qnCS+ TsqIM3lyL/3mcd5vGZ5777Mke1FrsOvfeRS7q6/c= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729917AbfFXKFY (ORCPT ); Mon, 24 Jun 2019 06:05:24 -0400 Received: from mail.kernel.org ([198.145.29.99]:37310 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729909AbfFXKFX (ORCPT ); Mon, 24 Jun 2019 06:05:23 -0400 Received: from localhost (f4.8f.5177.ip4.static.sl-reverse.com [119.81.143.244]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 484CA2145D; Mon, 24 Jun 2019 10:05:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1561370722; bh=LiMkDk0A3ef731YpjvZFVVVUe3S59l1oevaiy1sIbeA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=conVvIGW6yTYugNe1wHwpq+6wgoLm5x69HJ1jsA8X+zP612ctQq1+8XrM03ZaPnq9 VHN9VM9Cla7IE1aaF/2KqxgVU3tLHrj8J5qqIuEnsf6cY2ULn2I5SkP1vYHAuik3Jx nYSD32Z6wsCClossRUNSZt8T8gSeGrdidXY/KBHQ= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Jaesoo Lee , Christoph Hellwig , Sagi Grimberg , Sasha Levin Subject: [PATCH 4.19 67/90] nvme: Fix u32 overflow in the number of namespace list calculation Date: Mon, 24 Jun 2019 17:56:57 +0800 Message-Id: <20190624092318.451220287@linuxfoundation.org> X-Mailer: git-send-email 2.22.0 In-Reply-To: <20190624092313.788773607@linuxfoundation.org> References: <20190624092313.788773607@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org [ Upstream commit c8e8c77b3bdbade6e26e8e76595f141ede12b692 ] 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 Reviewed-by: Christoph Hellwig Signed-off-by: Sagi Grimberg Signed-off-by: Sasha Levin --- drivers/nvme/host/core.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c index a867a139bb35..d8869d978c34 100644 --- a/drivers/nvme/host/core.c +++ b/drivers/nvme/host/core.c @@ -3228,7 +3228,8 @@ static int nvme_scan_ns_list(struct nvme_ctrl *ctrl, unsigned nn) { struct nvme_ns *ns; __le32 *ns_list; - unsigned i, j, nsid, prev = 0, num_lists = DIV_ROUND_UP(nn, 1024); + unsigned i, j, nsid, prev = 0; + unsigned num_lists = DIV_ROUND_UP_ULL((u64)nn, 1024); int ret = 0; ns_list = kzalloc(NVME_IDENTIFY_DATA_SIZE, GFP_KERNEL); -- 2.20.1