From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail.alien8.de (mail.alien8.de [65.109.113.108]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4A8E3361DCB for ; Wed, 22 Jul 2026 15:04:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=65.109.113.108 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784732700; cv=none; b=XpQbVmb6En9/ltWME3LG3FkevQF5K1whcTKLoA/wHfaVqtIhWbxs6o6fE4+BTCdaN9h2nuqgpjV9qjpV3VhFDu15y8CTAHYb7UxYrHAFxKAXyHg6SyZZgk9OSrrQ/OmyTrOpP74TqmBbpfo8XrXQfj+1oKknJXw5MSNJ7508vSs= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784732700; c=relaxed/simple; bh=p3158t3JK12r9FhCkjcH1L0+H+/Pv9Dpfc0LbsjfM3E=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=DuBzsShmpwRM9k9wswjgEhKEhlWXvZCB8C1pemc6+9USkg5gu6iq8VwyMg7KHu8Jo8gTrk3oMfZl6s0s8CmcAy2qjwEA5kbvT6lyOqlhnfLABJMIQonKveAbGKrOEO/n8YkbuJk/zR5FMu1Hn8zhRAg07xXpMQOEHCvvgKAnmak= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=alien8.de; spf=pass smtp.mailfrom=alien8.de; dkim=pass (4096-bit key) header.d=alien8.de header.i=@alien8.de header.b=f9kY6rqd; arc=none smtp.client-ip=65.109.113.108 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=alien8.de Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=alien8.de Authentication-Results: smtp.subspace.kernel.org; dkim=pass (4096-bit key) header.d=alien8.de header.i=@alien8.de header.b="f9kY6rqd" Received: from localhost (localhost.localdomain [127.0.0.1]) by mail.alien8.de (SuperMail on ZX Spectrum 128k) with ESMTP id AE0EE40E02B1; Wed, 22 Jul 2026 15:04:53 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at mail.alien8.de Authentication-Results: mail.alien8.de (amavisd-new); dkim=pass (4096-bit key) header.d=alien8.de Received: from mail.alien8.de ([127.0.0.1]) by localhost (mail.alien8.de [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id 2IGSK6GbTmr3; Wed, 22 Jul 2026 15:04:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alien8.de; s=alien8; t=1784732679; bh=XtCWsDe5n65nHJCOAy/RwdlM2LWZr2iJbd7SWcukJkg=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=f9kY6rqdKe0zAZhhwyfDtKESejYbaUs0lCOv6W2sNbNTcvfSpa5qm4wgj8ccVwHj1 /ma84z7VQGSl2wkPktPmSKjBauqk5IgImu8UNx/F9mpUifJMcAlgxdPcbhrtS9Udqj 2xTahoETRiYm414ES0nS5W818RHSpY8vwefrx0KeGR8MSTbFwoHSJfL+0hAt7ypzth /TZo7N+6RO3A0P/m4I301z8sP7AQyNRHZXArQSrlcraMgOxbCqJMA9O6j6QARH5sbI gjm7ek1hy6CUm+kO16DXOA8L/AfwjD5UPQTuoWc6yhoOPuUbrkGtL0TXljI1AU1Ihc 3wXJ+TsnwGY7mZFj8ph2NPTVgRCTigTLB/WgvpSIJ6cfWPmWwQyHCJHCCyOw78b3CU Lz+MJeJw/F8alRNgDyOArdreIUiEO9K2a55e2pdD2Kq2eRL5jhRFU6zVpc0gAoW3PD pfh9c/Y9ui2ptU/zNbHfWwv2R2eWWYq1IWfog9ZFyXqiUiPZUcIRa3VbTg6zqI59Cr NNvxyK4O9vCXGwDz5Dssey24N96rCnq0oB57J86mPawMzKRbBXlSUz7Aeja8d+VZMQ fxssvBfRXw9SPrpaIkoUxToXxpqpvuHD+zzFwEJI6WHK3NsAcBm+s1rvp7Zc6iHuVP xGSEzpwqR6NJQJwpXWwisVX8= Received: from stx.tnic (unknown [IPv6:2600:1700:38ca:c00::2b]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by mail.alien8.de (SuperMail on ZX Spectrum 128k) with ESMTPSA id DBBB740E00DC; Wed, 22 Jul 2026 15:04:28 +0000 (UTC) Date: Wed, 22 Jul 2026 08:04:25 -0700 From: Borislav Petkov To: jiang.kun2@zte.com.cn Cc: dave.hansen@linux.intel.com, luto@kernel.org, peterz@infradead.org, tglx@kernel.org, mingo@redhat.com, x86@kernel.org, hpa@zytor.com, linux-kernel@vger.kernel.org, xu.xin16@zte.com.cn Subject: Re: [PATCH] x86/mm: remove freed init memory from kmemleak in free_init_pages() Message-ID: <20260722150425.GAamDb-YAimMm61I9c@fat_crate.local> References: <20260709204134153I0-fLVay3PJJjCDRGskzg@zte.com.cn> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <20260709204134153I0-fLVay3PJJjCDRGskzg@zte.com.cn> On Thu, Jul 09, 2026 at 08:41:34PM +0800, jiang.kun2@zte.com.cn wrote: > From: Jiang Kun > > free_init_pages() already informs kmemleak when init memory is unmapped > under debug_pagealloc_enabled(), but the normal free path only releases > the pages through free_reserved_area() without removing the range from > kmemleak. > > This can leave stale kmemleak objects for boot-time init memory such as > initrd/initramfs buffers. Once the freed range is later reused, kmemleak > may detect overlapping objects and report: > > kmemleak: Cannot insert ... into the object search tree (overlaps existing) > > followed by disabling the leak detector. > > Make both paths consistent by calling kmemleak_free_part() before > freeing the range in the normal path as well. > > This matches the existing debug_pagealloc behavior and ensures that > freed init memory is removed from kmemleak before being reused. > > Signed-off-by: Jiang Kun > --- > arch/x86/mm/init.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/arch/x86/mm/init.c b/arch/x86/mm/init.c > index fb67217fddcd..3bed63ec1568 100644 > --- a/arch/x86/mm/init.c > +++ b/arch/x86/mm/init.c > @@ -933,6 +933,7 @@ void free_init_pages(const char *what, unsigned long begin, unsigned long end) > set_memory_nx(begin, (end - begin) >> PAGE_SHIFT); > set_memory_rw(begin, (end - begin) >> PAGE_SHIFT); > > + kmemleak_free_part((void *)begin, end - begin); > free_reserved_area((void *)begin, (void *)end, > POISON_FREE_INITMEM, what); > } How about you do not duplicate that call but make it unconditional, regardless of the if-else? -- Regards/Gruss, Boris. https://people.kernel.org/tglx/notes-about-netiquette