From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pj2-f8.google.com (mail-pj2-f8.google.com [74.125.227.136]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 147A2445ADD for ; Tue, 18 Aug 2026 09:24:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.227.136 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787045084; cv=none; b=t7qyv1dfFx7hVF8NODitUZNsKfcOM/S9MR6yHr0L3WpUIhXvtqtCXA83zInCpz4aMfI782+ZbZhkPtu9yEZ1+cxQ3454xiv/N3pnQe5G4fTvi5wPLU2m+ynIVDT9wvjVtDGaXaqasyBufzmzMr/dj6olI1yXsJ37w1t2Asy4z5k= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787045084; c=relaxed/simple; bh=HFaffslyAq00MYKaOo8bzVRYd+um+ZFrtT7zrTOOu9U=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=rZe7/OVlTC8k05L3JiVz1Dp6PeedHlQsQz7ByAN90987EWUn2Nj69iKDJoHLKcP22lxkiIYeS9+OPUfdgyVohEEJEoILyjm4XkNi+a8qy3PIAHlX5Kbcvm2PhPdIv0ZkMqgnsmrQZP1FOms98FSsSpIKcaVYprhVtlY+aIhb7ic= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=BIrbF8lR; arc=none smtp.client-ip=74.125.227.136 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="BIrbF8lR" Received: by mail-pj2-f8.google.com with SMTP id d9443c01a7336-2d313798bf8so29747045ad.0 for ; Tue, 18 Aug 2026 02:24:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1787045082; x=1787649882; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=vgrzyPwZN4L7nqoNRJuB9G+jUytRArcpJTaiildA9bE=; b=BIrbF8lRamH1grc8/bNpXeeYnlJxpNeszUbFqHRk6JcRHV3S20AbFK5H0DqlY7QR3H 3vAFXf8WgRLUdPT4j1ZAPdufbilFhXm5/JCCRy5Rc6l+KytIycWC7/Pu07uKUlPJXkRx wJvpGf5OqIKGd0vrSN8hOJei7IvL4DXsssvJtoDxe6CssxffK9HflGzBxn5sVIJYx9bI yQnr0wWISMvg39bEPcAI/yp/amQ9Plh5KosgvBPZpYjHQjrc34R2k7LWYJckOqH9xTE7 dsRg/cErCZBfhRZUeg+RdAZrBIs4djaUcw1pb42rYeykvNRxmnp9f/Nk/bzk+zEcXFLt ubjg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787045082; x=1787649882; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=vgrzyPwZN4L7nqoNRJuB9G+jUytRArcpJTaiildA9bE=; b=kDl8Nr9vg3GEq8QDDTnzF2JxwbY8nxr9MoCFw01lciEOo90o4kGXON0hX29eepg5e6 Lf8Ic0O1vHkHfHg00UaFHv//jS7BxaIUyg2+H5FlfxmIIoWhS8jUSpFo98QR1z7DD0C3 M2XB5FQjxnUiifiyM/j+c9CkaX7Ugm32jBbi1VCFHdUbZZ4xpo/8tqHFRYQE0llyty37 ThtUtCrgRV4tYNZO0euDMfrtTweF3DRR36wT1oYETj3aZZ8UrcthY+c5quLATiROFQFY 4mi0IBa7MPG3Odb+P1MC7hgon1n5+v3cijuqLQgYcTVZlrzunX9424OCMRTGFboGRDbe WG9Q== X-Forwarded-Encrypted: i=1; AHgh+RpfrP7rP9qtlpGR8f/6bZCKzaAn5sVLaJOaoy9MB38X6Jm0mC3CGpvuguvTI1V7Bi7X54UD5YWXaqWvQKI=@vger.kernel.org X-Gm-Message-State: AOJu0Yy2xoD3Dc6utJN5IV2noB6KnssF9uGi+paP5eEMprZqxuzDxHez h/vJlclvrpJTUjKHmZUPL9m3nPb4rqzfFHX0n2EPeNDdlqYSL2RBQYX1 X-Gm-Gg: AR+sD12BhtA95+f2cpMahyrYTxZrynB/pH8fQVvs2GNIxE0fHddWYped19HzdwvfSO8 hL47BfzQ2yKMWBbpFvmM1sjwpTa1cvdAsLTjFshwOcqc3I5q/lXMxlaRx88QBvfXhdGBd7f58cP Lf1lFdwx5V5TqcOvG2S8rRc4TGq8bEoE1C4vmUfKhF7BurniUMDp9xUM7irEZwM9ZGv32x8EDTs 7bbBLVT+D4kNJcCy4QbB3Lp3Yl6obYAaTK59cgLjUWS6Kaq7xriwTNvZ3DRK8Jkp23ydJ0DbgYd x3uagHTXEE+HK4z1qfO6hdId8Fz89MpjX4s7RiNt9kB9FeOrtNLze0h+aEUQPzC8OTNi7Li0vvn jSpCTUK/CnXEwa4YuZe1Wqx7vGXqp3wpcRh0xsNqvFfv+DOBZdRhE0GwQU8XzPDPh/Xp7VuNTr+ m6K4lCctK7t9CBgUp8DaOcK3R0P9bHXmfyqJGFRV6g43L2cV3UVJriR7BruC7/VRyiTQ7RIZX7 X-Received: by 2002:a05:6a20:4321:b0:398:7ed3:a001 with SMTP id adf61e73a8af0-3cc71af5f13mr34124324637.2.1787045082245; Tue, 18 Aug 2026 02:24:42 -0700 (PDT) Received: from intel.company.local ([122.11.210.25]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-cc13c036c50sm1855975a12.26.2026.08.18.02.24.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 18 Aug 2026 02:24:41 -0700 (PDT) From: Wandun Chen To: robh@kernel.org, saravanak@kernel.org, rppt@kernel.org, m.szyprowski@samsung.com, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org Cc: akpm@linux-foundation.org Subject: [PATCH v2 3/5] of: reserved_mem: reject statically placed regions overlapping existing reservations Date: Tue, 18 Aug 2026 17:24:18 +0800 Message-ID: <20260818092420.2859026-4-chenwandun1@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260818092420.2859026-1-chenwandun1@gmail.com> References: <20260818092420.2859026-1-chenwandun1@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit From: Wandun Chen memblock_reserve() permits overlapping reservations, so a statically placed region whose 'reg' overlaps an existing one is accepted. When initialization of a statically placed reserved-memory region overlapping an existing reservation fails, memblock_phys_free() returns the overlap to the buddy allocator, corrupting that memory. Reject the overlap up front. Dynamically allocated regions are unaffected, as they are allocated from free memory and so cannot overlap an existing reservation. Sashiko found this issue in [1]. Fixes: d0b8ed47e83a ("of: reserved_mem: fix reserve memory leak") Signed-off-by: Wandun Chen Link: https://sashiko.dev/#/message/20260806100605.2C2C01F000E9%40smtp.kernel.org [1] --- drivers/of/of_reserved_mem.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/of/of_reserved_mem.c b/drivers/of/of_reserved_mem.c index 9fb2e4c29443..767ef702392e 100644 --- a/drivers/of/of_reserved_mem.c +++ b/drivers/of/of_reserved_mem.c @@ -158,6 +158,11 @@ static int __init early_init_dt_reserve_memory(phys_addr_t base, return memblock_mark_nomap(base, size); } + + if (memblock_is_region_reserved(base, size) || + memblock_overlaps_nomap(base, size)) + return -EBUSY; + return memblock_reserve(base, size); } -- 2.43.0