Received: by 2002:a25:ad19:0:0:0:0:0 with SMTP id y25csp7147182ybi; Mon, 8 Jul 2019 15:35:16 -0700 (PDT) X-Google-Smtp-Source: APXvYqxpwzEINiLrrJHhyEXyIhVSE5oWgHON8dKna/qIrjARY61k107oW1FrLTgHJ4v3Y6V4w3lN X-Received: by 2002:a17:902:467:: with SMTP id 94mr27661440ple.131.1562625316847; Mon, 08 Jul 2019 15:35:16 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1562625316; cv=none; d=google.com; s=arc-20160816; b=gvN9FmkQCIyhSfi63T382Res94O+BfsijKOd0DPqRCkjKkXYgiJQwjOSqlNVR5k3xM loRb4kjqiJEwqvK+wdWJP3C/3YwCtD8gnFQgUekn/Ii0kDgRcIvNn7uRqZKXZGI5tgQr kxskPTdZaKcKuIncbBQ5ehiFYmuTcBKBl1PrTHdWPPvv840ROILD2J0rREm9lLOJxuJ2 MluCXnjjM/pQzOf5HVxw386l/0ce/QkKP0C7J3HgILSGd0fbinaE2LgGJbN6t3pZ0c5R jTjQqQnbrUDJawv8WnxThLZtHRzf0KYksTsr3B6Cpjxgmxr9TPsKDEGjfGhNzoO0PSoR 5Y/Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=eBSPBz0ceQdKKvaLWGEo9pNacUmwBV2BLpXNMVVnvUY=; b=MjVsjZAy2m3gABXG8Qvteye8BGe22LKOhQA0uBLQgl/BhMj3egV8g0J9XlgQr58CTu aZB+ZbpGpWOwm+mFG+nSw7YQjOvgXFCoPMh5jjXooupvmwWPe1nmMcnLfh5fs+nOPwEa 6HuWMpSyKcD9YFJPW2ausXKWSRRY+6gwWp25XHoqEUv4IN1BL/wxHZMmMdv33Q0S5Oil 2UzRazx2VlwHJp6d8t2S+/0T7hhl+MW44hzmlLsucFT+/dghv2cXx0ppCtjLkPhTxIzq ngw9GdVhh2dGNJ0xZIHouKeo6veCZ/n1pDZom68e0g1JMGjSp3sbKVLGtWGf05ginVht K6cg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=TcHz7w5A; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 34si21532531pgy.540.2019.07.08.15.35.02; Mon, 08 Jul 2019 15:35:16 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=TcHz7w5A; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1733233AbfGHPTY (ORCPT + 99 others); Mon, 8 Jul 2019 11:19:24 -0400 Received: from mail.kernel.org ([198.145.29.99]:43670 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1733214AbfGHPTW (ORCPT ); Mon, 8 Jul 2019 11:19:22 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (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 9D2602166E; Mon, 8 Jul 2019 15:19:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1562599162; bh=aiHFcutqADxsW0lhptmbCIUr07Pjksms/jkxR8W7sak=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=TcHz7w5A09ExJ4PgoyA2Lme5CNLWKF3IzJE5MmX1xQ3vLe4v7ftkOHd++IaMxI1O8 QgB7/2Ul2DKz5VHayKiXsx/cYMYmCbBjwbROxXpE0wvJVQ0siaL4cg0jJE8dqsjb/5 J5rQvR7X0WeVfxNO78j2IEV3P1/Y3W8vSloeBdcc= 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.9 025/102] nvme: Fix u32 overflow in the number of namespace list calculation Date: Mon, 8 Jul 2019 17:12:18 +0200 Message-Id: <20190708150527.554182272@linuxfoundation.org> X-Mailer: git-send-email 2.22.0 In-Reply-To: <20190708150525.973820964@linuxfoundation.org> References: <20190708150525.973820964@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@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 979c6ecc6446..8705bfe7bb73 100644 --- a/drivers/nvme/host/core.c +++ b/drivers/nvme/host/core.c @@ -1765,7 +1765,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(0x1000, GFP_KERNEL); -- 2.20.1