Received: by 2002:a05:6a10:2785:0:0:0:0 with SMTP id ia5csp720061pxb; Wed, 13 Jan 2021 14:27:55 -0800 (PST) X-Google-Smtp-Source: ABdhPJyJO3xPjZt5N4qaUofURHACdcALi0OPdkvBn8AJJPIEbKZmnVYFxRlHs3H9GDhnG1c7NRfm X-Received: by 2002:aa7:c94a:: with SMTP id h10mr3513016edt.247.1610576875066; Wed, 13 Jan 2021 14:27:55 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1610576875; cv=none; d=google.com; s=arc-20160816; b=ngu11XpSiqTvHKmrjD4eApAF0HYLCmu9tEjx/0KHAMBdRP4k06PhNCAu2qsMpPBjNl wzwKacKimCiXdMW9DuyZZ3UDWrDKoETRUEqhpCtXpx5fTGJ7pL1EYIiMi8IAMx/C+RRU kNwZKMctOYkP5SyssuZvTNnXZJ6e0m4Xq2z9xbo5cGV+tZFDOn+D8rXHEfZq4AgNeLYB SW8O9Zm5S7Czxp03gtYKl05eiQBY3UrGNGw4rBmsS6VoQO2kRkNap9nWWF2LsonYbgO+ ERX8SIJHQ+MWvO88MyDfJs5DKzEJKH8mEv9liHR+Y4RdTehgQ3CVTyXACMWNCKzy2b8J scyw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:content-language :in-reply-to:mime-version:user-agent:date:message-id:from:references :cc:to:subject; bh=VK/iM6R27LRQ/Qm/8qm5HUt4QdKjqmK+S3xgybZNYKk=; b=AioaBRWzUY/IH3G+xZlRfoZFGO7ccmMjFfr8svqkQwoi8ElFUJyVLK6kmNX1UAO83C Fx4btMR0pTA2/UwzH6Ue8/AwJMsD7Ey//3GdI008PXfyMctLfAyRrKBA5r3CyiKhwmoJ TkX0PCSYCUd/5JqX7KLiPuMimPbt5dnfycloW6DRqeRRGUdWnVKMHImEYvic4LminYXv CoNuKYyl56oi8qrSuiSa3qgCuDJp8jEThepZobO7I6kUC3ktxV/jRRNyGKNEn+2ov2iE ogVva1AsDy5dwjqlC1FOdnbPok1VUoD/UFR1l6tVs5asRRcw6mdPOZ6psgvJS6TykGKO nloA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id h17si1493895ejg.46.2021.01.13.14.27.06; Wed, 13 Jan 2021 14:27:55 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729203AbhAMWQn (ORCPT + 99 others); Wed, 13 Jan 2021 17:16:43 -0500 Received: from mail-wr1-f43.google.com ([209.85.221.43]:40609 "EHLO mail-wr1-f43.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727297AbhAMWOb (ORCPT ); Wed, 13 Jan 2021 17:14:31 -0500 Received: by mail-wr1-f43.google.com with SMTP id 91so3752282wrj.7 for ; Wed, 13 Jan 2021 14:13:29 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=VK/iM6R27LRQ/Qm/8qm5HUt4QdKjqmK+S3xgybZNYKk=; b=oZ21GT+y+r5Jo07k5WPdgC8S859Rbn91fDMmQhKkWmt9azJ3a8eatvKf1nolTSP68H +d0RH35VuD5uRbQpx93C42b7P5T9tGF9B3Dg0jHDmg+uTheZKZ+BvqEhwzRhw5Ou8Qsi 75ngOqkd51qxrrNhgEmdPI0qjktpMu22rNMOVMko+0m5nnMZbHelecacapiqQO63tAw+ PkONROlil2sds4lEmops0FisuTVFGpjl/Im6/GC3pa/oa46xtj28VceNhayXKoPUFsQB MOPqmk6sfsa3E7X9DrSXACs3WcYfbEAMkOjbAG20UMAHe9k/cE67O+Fed8PJRNU9nmyv +cPg== X-Gm-Message-State: AOAM531OTNxtam238TMw+KHTQHiSWB+Jy9Mm0CEMpAA/UJ9kebWbKYJ3 xBs0A1vyH2d7jYS1/MDJTKE= X-Received: by 2002:adf:ba47:: with SMTP id t7mr4617979wrg.285.1610575983501; Wed, 13 Jan 2021 14:13:03 -0800 (PST) Received: from ?IPv6:2601:647:4802:9070:e70c:620a:4d8a:b988? ([2601:647:4802:9070:e70c:620a:4d8a:b988]) by smtp.gmail.com with ESMTPSA id s25sm5764685wrs.49.2021.01.13.14.13.01 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 13 Jan 2021 14:13:03 -0800 (PST) Subject: Re: [PATCH] nvme: reject the ns when the block size is smaller than a sector To: Johannes Thumshirn , Li Feng , "martin.petersen@oracle.com" , Keith Busch , Jens Axboe , Christoph Hellwig , "open list:NVM EXPRESS DRIVER" , open list Cc: "lifeng1519@gmail.com" References: <20210113160621.98615-1-fengli@smartx.com> From: Sagi Grimberg Message-ID: <87698545-de26-c0ca-01e9-4dc2ddcacc80@grimberg.me> Date: Wed, 13 Jan 2021 14:12:59 -0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org >> The nvme spec(1.4a, figure 248) says: >> "A value smaller than 9 (i.e., 512 bytes) is not supported." >> >> Signed-off-by: Li Feng >> --- >> drivers/nvme/host/core.c | 6 ++++++ >> 1 file changed, 6 insertions(+) >> >> diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c >> index f320273fc672..1f02e6e49a05 100644 >> --- a/drivers/nvme/host/core.c >> +++ b/drivers/nvme/host/core.c >> @@ -2161,6 +2161,12 @@ static int nvme_update_ns_info(struct nvme_ns *ns, struct nvme_id_ns *id) >> >> blk_mq_freeze_queue(ns->disk->queue); >> ns->lba_shift = id->lbaf[lbaf].ds; >> + if (ns->lba_shift < 9) { >> + pr_warn("%s: bad lba_shift(%d)\n", ns->disk->disk_name, ns->lba_shift); >> + ret = -1; Meaningful errno would be useful. Also better to use dev_warn >> + goto out_unfreeze; >> + } >> + >> nvme_set_queue_limits(ns->ctrl, ns->queue); >> >> if (ns->head->ids.csi == NVME_CSI_ZNS) { >> > > > But this only catches a physical block size < 512 for NVMe, not any other block device. > > Please fix it for the general case in blk_queue_physical_block_size(). We actually call that later and would probably be better to check here..