From nobody Mon Aug 24 09:10:07 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=reject dis=none) header.from=rsg.ci.i.u-tokyo.ac.jp Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1783056215839757.1349059129371; Thu, 2 Jul 2026 22:23:35 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wfWMY-0005VL-NW; Fri, 03 Jul 2026 01:22:54 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wfWMV-0005T0-R5; Fri, 03 Jul 2026 01:22:51 -0400 Received: from www3579.sakura.ne.jp ([49.212.243.89]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wfWMS-0005s1-0K; Fri, 03 Jul 2026 01:22:51 -0400 Received: from h183.csg.ci.i.u-tokyo.ac.jp (h183.csg.ci.i.u-tokyo.ac.jp [133.11.54.183]) (authenticated bits=0) by www3579.sakura.ne.jp (8.16.1/8.16.1) with ESMTPSA id 6635LT8Q018373 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Fri, 3 Jul 2026 14:21:44 +0900 (JST) (envelope-from odaki@rsg.ci.i.u-tokyo.ac.jp) DKIM-Signature: a=rsa-sha256; bh=8Z+IPYMxREf+abkIImBqXakTaTGWJQ+kmZT646AKWUY=; c=relaxed/relaxed; d=rsg.ci.i.u-tokyo.ac.jp; h=From:Message-Id:To:Subject:Date; s=rs20250326; t=1783056104; v=1; b=mHK+MzHFe5pufb2GxF26lI1muKh0LM+Rd1oFmcUJgWtJDzyFLEyjJTIMi9/UcG9e b6m3yIJruONYSU9TQbQxLPoMEcnG0kf5jFjS2l+n6JAbeK31JNC+hybrwvXnkhJR CG2PwqJugDdAZw7Gq+S+cEf1bBXJ2CehRXn6Zm+byZrqs5/zxSCr3J9Vj7FWVEYI RsrkydzvZE6U7li2a+bESxJ0pFUF36jchgz9/3gCXYzrS6j6CtVSjPUfhtDrgTPY OQIWzIYZLqeZ8afzJdDGh/Wrm8rVJU4n+foWkCyCwvP+A5ahHBTDWNDjflCsEBez 8b8WsIzbrLT4qSjrTeLFkw== From: Akihiko Odaki Date: Fri, 03 Jul 2026 14:19:19 +0900 Subject: [PATCH v2 3/7] system/memory: Remove the resized callback MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260703-ram-v2-3-7f07fc06fba9@rsg.ci.i.u-tokyo.ac.jp> References: <20260703-ram-v2-0-7f07fc06fba9@rsg.ci.i.u-tokyo.ac.jp> In-Reply-To: <20260703-ram-v2-0-7f07fc06fba9@rsg.ci.i.u-tokyo.ac.jp> To: qemu-devel@nongnu.org Cc: Kevin Wolf , Hanna Reitz , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Zhao Liu , Stefano Stabellini , Anthony PERARD , "Edgar E. Iglesias" , Peter Xu , Fabiano Rosas , Paolo Bonzini , Reinoud Zandijk , Marcelo Tosatti , Alex Williamson , =?utf-8?q?C=C3=A9dric_Le_Goater?= , qemu-block@nongnu.org, xen-devel@lists.xenproject.org, kvm@vger.kernel.org, Gerd Hoffmann , Mauro Carvalho Chehab , "Michael S. Tsirkin" , Igor Mammedov , Ani Sinha , Peter Maydell , Richard Henderson , Song Gao , Bibo Mao , Jiaxun Yang , =?utf-8?q?Marc-Andr=C3=A9_Lureau?= , Sunil V L , Palmer Dabbelt , Alistair Francis , Weiwei Li , Daniel Henrique Barboza , Liu Zhiwei , Chao Liu , linux-edac@vger.kernel.org, qemu-arm@nongnu.org, qemu-riscv@nongnu.org, Akihiko Odaki X-Mailer: b4 0.16-dev-925f5 X-Developer-Signature: v=1; a=openpgp-sha256; l=10859; i=odaki@rsg.ci.i.u-tokyo.ac.jp; h=from:subject:message-id; bh=L+KVAMGTsaOt599iuSVgif1jV4HKCoTCrodEu6dG+Qg=; b=owGbwMvMwCWmMbc20y1CyJDxtFoSQ5a72wPp7bZLZ897U1e/sKCf4VvVg/3yNqKLXbesnyLwy /id7LyJHaUsDGJcDLJiiiwpRbu5NaJrPxUmxLfAzGFlAhnCwMUpABPZrcPwP+Flw5Xje7OyFpQu b3h/6c6hbJ/E5wdKXi42TboU9Oen+k+G/1nv1azc0lxehausvPHl3iWuB9z5xvNMzaIFN25JPG0 5ix8A X-Developer-Key: i=odaki@rsg.ci.i.u-tokyo.ac.jp; a=openpgp; fpr=AEDC03C9AF734F2EC26A7BFFA4BAEAA73536753C Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: pass client-ip=49.212.243.89; envelope-from=odaki@rsg.ci.i.u-tokyo.ac.jp; helo=www3579.sakura.ne.jp X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_INVALID=0.1, DKIM_SIGNED=0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZM-MESSAGEID: 1783056217294158500 The previous change moved fw_cfg updates out of the RAMBlock resize callback, leaving the callback pointer unused. Remove the now-unused callback plumbing. Signed-off-by: Akihiko Odaki --- include/system/memory.h | 4 ---- include/system/ramblock.h | 7 +------ hw/core/loader.c | 4 +--- system/memory.c | 7 ++----- system/physmem.c | 24 ++++++------------------ 5 files changed, 10 insertions(+), 36 deletions(-) diff --git a/include/system/memory.h b/include/system/memory.h index e143c9c3f396..6a2d5f5f855f 100644 --- a/include/system/memory.h +++ b/include/system/memory.h @@ -1407,7 +1407,6 @@ bool memory_region_init_ram_flags_nomigrate(MemoryReg= ion *mr, * must be unique within any device * @size: used size of the region. * @max_size: max size of the region. - * @resized: callback to notify owner about used size change. * @errp: pointer to Error*, to store an error if it happens. * * Note that this function does not do anything to cause the data in the @@ -1420,9 +1419,6 @@ bool memory_region_init_resizeable_ram(MemoryRegion *= mr, const char *name, uint64_t size, uint64_t max_size, - void (*resized)(const char*, - uint64_t length, - void *host), Error **errp); #ifdef CONFIG_POSIX =20 diff --git a/include/system/ramblock.h b/include/system/ramblock.h index 4435f8d55fe7..1a95fba87f0c 100644 --- a/include/system/ramblock.h +++ b/include/system/ramblock.h @@ -30,7 +30,6 @@ struct RAMBlock { ram_addr_t offset; ram_addr_t used_length; ram_addr_t max_length; - void (*resized)(const char*, uint64_t length, void *host); uint32_t flags; /* Protected by the BQL. */ char idstr[256]; @@ -244,7 +243,6 @@ static inline unsigned long int ramblock_recv_bitmap_of= fset(void *host_addr, * @size: the size in bytes of the ram block * @max_size: the maximum size of the block after resizing * @mr: the memory region where the ram block is - * @resized: callback after calls to qemu_ram_resize * @ram_flags: RamBlock flags. Supported flags: RAM_SHARED, RAM_PMEM, * RAM_NORESERVE, RAM_PROTECTED, RAM_NAMED_FILE, RAM_READONLY, * RAM_READONLY_FD, RAM_GUEST_MEMFD @@ -257,13 +255,11 @@ static inline unsigned long int ramblock_recv_bitmap_= offset(void *host_addr, * On success, return a pointer to the ram block. * On failure, return NULL. */ -typedef void (*qemu_ram_resize_cb)(const char *, uint64_t length, void *ho= st); - RAMBlock *qemu_ram_alloc_from_file(ram_addr_t size, MemoryRegion *mr, uint32_t ram_flags, const char *mem_pat= h, off_t offset, Error **errp); RAMBlock *qemu_ram_alloc_from_fd(ram_addr_t size, ram_addr_t max_size, - qemu_ram_resize_cb resized, MemoryRegion = *mr, + MemoryRegion *mr, uint32_t ram_flags, int fd, off_t offset, bool grow, Error **errp); @@ -273,7 +269,6 @@ RAMBlock *qemu_ram_alloc_from_ptr(ram_addr_t size, void= *host, RAMBlock *qemu_ram_alloc(ram_addr_t size, uint32_t ram_flags, MemoryRegion= *mr, Error **errp); RAMBlock *qemu_ram_alloc_resizeable(ram_addr_t size, ram_addr_t max_size, - qemu_ram_resize_cb resized, MemoryRegion *mr, Error **errp); void qemu_ram_free(RAMBlock *block); =20 diff --git a/hw/core/loader.c b/hw/core/loader.c index 14d56f52e4ec..147b872031eb 100644 --- a/hw/core/loader.c +++ b/hw/core/loader.c @@ -1068,9 +1068,7 @@ static void *rom_set_mr(Rom *rom, Object *owner, cons= t char *name, bool ro) =20 rom->mr =3D g_malloc(sizeof(*rom->mr)); memory_region_init_resizeable_ram(rom->mr, owner, name, - rom->romsize, rom->romsize, - NULL, - &error_fatal); + rom->romsize, rom->romsize, &error_f= atal); memory_region_set_readonly(rom->mr, ro); vmstate_register_ram_global(rom->mr); =20 diff --git a/system/memory.c b/system/memory.c index 8436668c181d..6ec4b4ebb20e 100644 --- a/system/memory.c +++ b/system/memory.c @@ -1610,16 +1610,13 @@ bool memory_region_init_resizeable_ram(MemoryRegion= *mr, const char *name, uint64_t size, uint64_t max_size, - void (*resized)(const char*, - uint64_t length, - void *host), Error **errp) { RAMBlock *rb; =20 memory_region_init(mr, owner, name, size); mr->ram =3D true; - rb =3D qemu_ram_alloc_resizeable(size, max_size, resized, mr, errp); + rb =3D qemu_ram_alloc_resizeable(size, max_size, mr, errp); return memory_region_set_ram_block(mr, rb); } =20 @@ -1650,7 +1647,7 @@ bool memory_region_init_ram_from_fd(MemoryRegion *mr,= Object *owner, memory_region_init(mr, owner, name, size); mr->ram =3D true; mr->readonly =3D !!(ram_flags & RAM_READONLY); - rb =3D qemu_ram_alloc_from_fd(size, size, NULL, mr, ram_flags, fd, off= set, + rb =3D qemu_ram_alloc_from_fd(size, size, mr, ram_flags, fd, offset, false, errp); return memory_region_set_ram_block(mr, rb); } diff --git a/system/physmem.c b/system/physmem.c index 9e5b50c5b1ca..54fe820ce828 100644 --- a/system/physmem.c +++ b/system/physmem.c @@ -2032,9 +2032,6 @@ int qemu_ram_resize(RAMBlock *block, ram_addr_t newsi= ze, Error **errp) */ if (unaligned_size !=3D memory_region_size(block->mr)) { memory_region_set_size(block->mr, unaligned_size); - if (block->resized) { - block->resized(block->idstr, unaligned_size, block->host); - } } return 0; } @@ -2065,9 +2062,6 @@ int qemu_ram_resize(RAMBlock *block, ram_addr_t newsi= ze, Error **errp) physical_memory_set_dirty_range(block->offset, block->used_length, DIRTY_CLIENTS_ALL); memory_region_set_size(block->mr, unaligned_size); - if (block->resized) { - block->resized(block->idstr, unaligned_size, block->host); - } return 0; } =20 @@ -2297,7 +2291,7 @@ out_free: =20 #if defined(CONFIG_POSIX) && !defined(EMSCRIPTEN) RAMBlock *qemu_ram_alloc_from_fd(ram_addr_t size, ram_addr_t max_size, - qemu_ram_resize_cb resized, MemoryRegion = *mr, + MemoryRegion *mr, uint32_t ram_flags, int fd, off_t offset, bool grow, Error **errp) @@ -2356,7 +2350,6 @@ RAMBlock *qemu_ram_alloc_from_fd(ram_addr_t size, ram= _addr_t max_size, new_block->mr =3D mr; new_block->used_length =3D size; new_block->max_length =3D max_size; - new_block->resized =3D resized; new_block->flags =3D ram_flags; new_block->guest_memfd =3D -1; new_block->host =3D file_ram_alloc(new_block, max_size, fd, @@ -2413,7 +2406,7 @@ RAMBlock *qemu_ram_alloc_from_file(ram_addr_t size, M= emoryRegion *mr, return NULL; } =20 - block =3D qemu_ram_alloc_from_fd(size, size, NULL, mr, ram_flags, fd, = offset, + block =3D qemu_ram_alloc_from_fd(size, size, mr, ram_flags, fd, offset, false, errp); if (!block) { if (created) { @@ -2458,7 +2451,6 @@ static int qemu_ram_get_shared_fd(const char *name, b= ool *reused, Error **errp) =20 static RAMBlock *qemu_ram_alloc_internal(ram_addr_t size, ram_addr_t max_size, - qemu_ram_resize_cb resized, void *host, uint32_t ram_flags, MemoryRegion *mr, Error **errp) { @@ -2504,7 +2496,7 @@ RAMBlock *qemu_ram_alloc_internal(ram_addr_t size, ra= m_addr_t max_size, * region if necessary. The extra space will be usable after a * guest reset. */ - new_block =3D qemu_ram_alloc_from_fd(size, max_size, resized, = mr, + new_block =3D qemu_ram_alloc_from_fd(size, max_size, mr, ram_flags, fd, 0, reused, N= ULL); if (new_block) { trace_qemu_ram_alloc_shared(name, new_block->used_length, @@ -2527,7 +2519,6 @@ RAMBlock *qemu_ram_alloc_internal(ram_addr_t size, ra= m_addr_t max_size, =20 new_block =3D g_malloc0(sizeof(*new_block)); new_block->mr =3D mr; - new_block->resized =3D resized; new_block->used_length =3D size; new_block->max_length =3D max_size; new_block->fd =3D -1; @@ -2547,8 +2538,7 @@ RAMBlock *qemu_ram_alloc_internal(ram_addr_t size, ra= m_addr_t max_size, RAMBlock *qemu_ram_alloc_from_ptr(ram_addr_t size, void *host, MemoryRegion *mr, Error **errp) { - return qemu_ram_alloc_internal(size, size, NULL, host, RAM_PREALLOC, m= r, - errp); + return qemu_ram_alloc_internal(size, size, host, RAM_PREALLOC, mr, err= p); } =20 RAMBlock *qemu_ram_alloc(ram_addr_t size, uint32_t ram_flags, @@ -2556,15 +2546,13 @@ RAMBlock *qemu_ram_alloc(ram_addr_t size, uint32_t = ram_flags, { assert((ram_flags & ~(RAM_SHARED | RAM_NORESERVE | RAM_GUEST_MEMFD | RAM_PRIVATE)) =3D=3D 0); - return qemu_ram_alloc_internal(size, size, NULL, NULL, ram_flags, mr, = errp); + return qemu_ram_alloc_internal(size, size, NULL, ram_flags, mr, errp); } =20 RAMBlock *qemu_ram_alloc_resizeable(ram_addr_t size, ram_addr_t maxsz, - qemu_ram_resize_cb resized, MemoryRegion *mr, Error **errp) { - return qemu_ram_alloc_internal(size, maxsz, resized, NULL, - RAM_RESIZEABLE, mr, errp); + return qemu_ram_alloc_internal(size, maxsz, NULL, RAM_RESIZEABLE, mr, = errp); } =20 static void reclaim_ramblock(RAMBlock *block) --=20 2.54.0