Received: by 2002:a05:6a10:1287:0:0:0:0 with SMTP id d7csp3889616pxv; Mon, 19 Jul 2021 11:12:28 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzlshn3m5VglRKJ4Qj9ZOEKWhMdi4azpaLJpubrs7H0Us7sznR3WWDFaeAndTlX6oN3cHOd X-Received: by 2002:a6b:1685:: with SMTP id 127mr19825758iow.135.1626718348779; Mon, 19 Jul 2021 11:12:28 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1626718348; cv=none; d=google.com; s=arc-20160816; b=UUN232uh5QE7HxCTtNa3j2tQsbd6OPaqcno1VMGkIzNDcsZLxaM7EZkTx9HlLK/cOA A1PElgXv5jUeHoeh1teFSYMvA2FAmv/JUnBLvr4t876hNHW1mLFdGx+ITYcuUgMO90LJ xZ73m2cUSDyE+Big7q5kcLWN8drdtI1leRpsVBJSn+IgD24M3CDNRcBoXTH7j2QFIvCl LtAudSBtJM3j6/3Juk7aGvOfcLbID7bid5UKWow0/Q2lRNJBWYHkjdMXxfqNvdujWXBO TIepMMtuWqzDCOhOgFlm8tvzwDxc0g5dUw7jQB5fWnhNCokOZFRQJUMBgzSUXygQLQFO e0/w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=bsT5qxHnGhc/zyUWh6w4wVATOJf8RMYnzFeIa52iV9M=; b=LP8CK2FZ7M0M+X8wOVXNuHQOL49tsqhFA1lxNMejD3MerJUrlpZepbPYNyGUL04Gaa VP7w1IpGGuUOe3AtrM/zNimB7w9TM09qGMW0YeH3nGY/iBzbCuP7vqaFgPx3camDUr1M 3z7PH4cE3nB5ZjUFKUB4oMqHniae57UDzSNRehYTsYgiHn3mi09tXBvI1iFvLeHs5N/g LZq9skyNt4M9G4NF+I6oucVKinGsxJvrsaxxwEArBinq6xehjxQTOET4GZERJXLHv/nF N4/BFb3ypLXmbak8uS2lsHwjw9K9GzHOmVS68zjuXXzMlxwYf6D36Qyxt6FLHOAsDlOl R0wA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=Vs03qZN7; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id d24si9599195iob.3.2021.07.19.11.12.17; Mon, 19 Jul 2021 11:12:28 -0700 (PDT) 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; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=Vs03qZN7; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1380449AbhGSR3O (ORCPT + 99 others); Mon, 19 Jul 2021 13:29:14 -0400 Received: from mail.kernel.org ([198.145.29.99]:47932 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S242613AbhGSPqS (ORCPT ); Mon, 19 Jul 2021 11:46:18 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 6F19E60FE9; Mon, 19 Jul 2021 16:26:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1626712016; bh=4FcsHxi4CzxlZaRAlc6eWSCvhTpDgoZ9eZ2lh8B2xhw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Vs03qZN74HKVAGWpicNdsxOLbSkj+mJ4jtYOLriu8oQvaAXWOE+Jds3WdvCuDsjWW iCT5bV5j5pa6d/JTfubFiJ/aQCacGo5D1ea45YQJ60BwYDD4tMd+VARiqUYpiDHkDM v71EyJP3Wxu4Esw4EcvsAk+lSCvIqOdybROUmkeA= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, David Hildenbrand , "Michael S. Tsirkin" , Sasha Levin Subject: [PATCH 5.12 217/292] virtio-mem: dont read big block size in Sub Block Mode Date: Mon, 19 Jul 2021 16:54:39 +0200 Message-Id: <20210719144950.124458040@linuxfoundation.org> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210719144942.514164272@linuxfoundation.org> References: <20210719144942.514164272@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: David Hildenbrand [ Upstream commit 500817bf5e110ad9b7138bc582971bb7ee77d6f7 ] We are reading a Big Block Mode value while in Sub Block Mode when initializing. Fortunately, vm->bbm.bb_size maps to some counter in the vm->sbm.mb_count array, which is 0 at that point in time. No harm done; still, this was unintended and is not future-proof. Fixes: 4ba50cd3355d ("virtio-mem: Big Block Mode (BBM) memory hotplug") Signed-off-by: David Hildenbrand Link: https://lore.kernel.org/r/20210602185720.31821-2-david@redhat.com Signed-off-by: Michael S. Tsirkin Signed-off-by: Sasha Levin --- drivers/virtio/virtio_mem.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/drivers/virtio/virtio_mem.c b/drivers/virtio/virtio_mem.c index 10ec60d81e84..3bf08b5bb359 100644 --- a/drivers/virtio/virtio_mem.c +++ b/drivers/virtio/virtio_mem.c @@ -2420,6 +2420,10 @@ static int virtio_mem_init(struct virtio_mem *vm) dev_warn(&vm->vdev->dev, "Some device memory is not addressable/pluggable. This can make some memory unusable.\n"); + /* Prepare the offline threshold - make sure we can add two blocks. */ + vm->offline_threshold = max_t(uint64_t, 2 * memory_block_size_bytes(), + VIRTIO_MEM_DEFAULT_OFFLINE_THRESHOLD); + /* * We want subblocks to span at least MAX_ORDER_NR_PAGES and * pageblock_nr_pages pages. This: @@ -2466,14 +2470,11 @@ static int virtio_mem_init(struct virtio_mem *vm) vm->bbm.bb_size - 1; vm->bbm.first_bb_id = virtio_mem_phys_to_bb_id(vm, addr); vm->bbm.next_bb_id = vm->bbm.first_bb_id; - } - /* Prepare the offline threshold - make sure we can add two blocks. */ - vm->offline_threshold = max_t(uint64_t, 2 * memory_block_size_bytes(), - VIRTIO_MEM_DEFAULT_OFFLINE_THRESHOLD); - /* In BBM, we also want at least two big blocks. */ - vm->offline_threshold = max_t(uint64_t, 2 * vm->bbm.bb_size, - vm->offline_threshold); + /* Make sure we can add two big blocks. */ + vm->offline_threshold = max_t(uint64_t, 2 * vm->bbm.bb_size, + vm->offline_threshold); + } dev_info(&vm->vdev->dev, "start address: 0x%llx", vm->addr); dev_info(&vm->vdev->dev, "region size: 0x%llx", vm->region_size); -- 2.30.2