From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6C360C3ABAA for ; Fri, 2 May 2025 21:16:41 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 961FB6B0089; Fri, 2 May 2025 17:16:39 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 8E5766B008A; Fri, 2 May 2025 17:16:39 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 7ACCF6B008C; Fri, 2 May 2025 17:16:39 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 5C81D6B0089 for ; Fri, 2 May 2025 17:16:39 -0400 (EDT) Received: from smtpin29.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 1C5D5BA353 for ; Fri, 2 May 2025 21:16:40 +0000 (UTC) X-FDA: 83399226960.29.13C988E Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254]) by imf23.hostedemail.com (Postfix) with ESMTP id 7FCAD140009 for ; Fri, 2 May 2025 21:16:38 +0000 (UTC) Authentication-Results: imf23.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=GK65252c; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf23.hostedemail.com: domain of rppt@kernel.org designates 172.105.4.254 as permitted sender) smtp.mailfrom=rppt@kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1746220598; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=JbNhQBYnEdEg2Y4rui76TMJ+OL5KtDo/xEGr//biWf0=; b=BiSp37hixzsZKLV1qSQTibwDOuyClKn1dw65uZiVzICcnbvTkMcnCI1l/NyWQZHO5kyxmU PwiD2ctYWWKCcUO1slU2LkSqSkDga4gtKNYhFrA04PIl9Vk+oEYd86h+NPl1At37Sb0DHU JAf+1y2jYeDwlrGDqlbRJnsDdT8XcAY= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1746220598; a=rsa-sha256; cv=none; b=OQfNadd5bXofFgqGajLWQs5NQPJU/Yr9vD2MOeFSw+GS7lIeiGPrjCnPpVuJDXhU0/dl4D TnMkKvt+rwNHu1p4ug1P3qQrSUowWECMb8DZ5guhYMuSXlJffv0aUjaERjifBMRLvAq1Fr dOMhF9XEPty5uQidZUOiYZ+/bIkCFUE= ARC-Authentication-Results: i=1; imf23.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=GK65252c; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf23.hostedemail.com: domain of rppt@kernel.org designates 172.105.4.254 as permitted sender) smtp.mailfrom=rppt@kernel.org Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by tor.source.kernel.org (Postfix) with ESMTP id C16A16844F; Fri, 2 May 2025 21:16:08 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 78DFEC4CEE4; Fri, 2 May 2025 21:16:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1746220597; bh=kzsN5X5daKdANNax1/r/iY9EohjZTKAy76Q08oyT2VE=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=GK65252choMKHsOuLDuV4K7qmKnN7fPQ6tHc/J83IS0AgNj5kQar2z31XQL1Hozvj VZap9E+kzyJhOEaLWv7W/dH0F3IDMpwfL8v75SFOq7GZbntAB2zUga29FgDz7jNkUy HJYg6XHrJPV5Q+PBuUwzmN8lDl6dPHm2M1KWxgTJV3jY1gmxUbmNL48CyPxNoXbxvZ mL4e6BLMHzI43/Fvxz6B/d2Ohkv5EFpwH63gQpqDrKE2aXHw16P7khFZPy/UZa7A/X iX+2EobXIhe0vYOQ8U6EcHv87lemL+O9yJbAa+R/CyquCcAu2DP0WopdD4W6LkR573 H/unhCL4q+ijw== Date: Sat, 3 May 2025 00:16:21 +0300 From: Mike Rapoport To: Dave Hansen Cc: Changyuan Lyu , linux-kernel@vger.kernel.org, akpm@linux-foundation.org, anthony.yznaga@oracle.com, arnd@arndb.de, ashish.kalra@amd.com, benh@kernel.crashing.org, bp@alien8.de, catalin.marinas@arm.com, corbet@lwn.net, dave.hansen@linux.intel.com, devicetree@vger.kernel.org, dwmw2@infradead.org, ebiederm@xmission.com, graf@amazon.com, hpa@zytor.com, jgowans@amazon.com, kexec@lists.infradead.org, krzk@kernel.org, linux-arm-kernel@lists.infradead.org, linux-doc@vger.kernel.org, linux-mm@kvack.org, luto@kernel.org, mark.rutland@arm.com, mingo@redhat.com, pasha.tatashin@soleen.com, pbonzini@redhat.com, peterz@infradead.org, ptyadav@amazon.de, robh@kernel.org, rostedt@goodmis.org, saravanak@google.com, skinsburskii@linux.microsoft.com, tglx@linutronix.de, thomas.lendacky@amd.com, will@kernel.org, x86@kernel.org Subject: Re: [PATCH v7 14/18] x86/boot: make sure KASLR does not step over KHO preserved memory Message-ID: References: <20250501225425.635167-1-changyuanl@google.com> <20250501225425.635167-15-changyuanl@google.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 7FCAD140009 X-Rspam-User: X-Stat-Signature: eync94uxmbszse4q538t5hqmjwtyft14 X-HE-Tag: 1746220598-789327 X-HE-Meta: U2FsdGVkX18J9nfvh2ew8U2yDvm5gOGqx6M2AZYtTkbfnHf5k/Gx6la8rYjBmS2x4NSc/TMtaaLXOZpCZh+2Q9lmNGrXjtD+ISXvQPY3Ua4b3gJSpScWJTFEPHxO/TylhUcqdlZdomSv1ckzm7Bpi0F7+x0VHbVsK6Qj6ismHXwuRpSPS+9AAKrKoyndRqNkf7xI1w5CD0z3kuNs0iWi0FJ9ptfMzdEEwCm7czSny6ONX6IQPVZVKFM6aMZSJW4A56v5ARKCWzaRYBkSOyTJugs3vGUoNgCIlaZ0z26pZtaKY5JvCyswZPukwtkypPkazTft2pvnS0tzZadhasyHKRpo4K18dITtq18KkBI6qJUgQW3dov3HWOiTOI38t+Q/7eEglWYxtj2q3cqCbz+dWl3dTPbuPayx9IUjQRCHZ/YeCnwK+de5wrawnYQOlGivrQ7bfczu8sOTbVeATpKUd3gHAxMb+Dcmxry63vtlvstnsvcT1quos3Zaq5EevVY8IcsKzb1g5l56I26sOQfZpszhvbSvjKF5iLja57RjBdxUKXixnnMH76X9QAwb0s6MjrDqWwgbmn82jv/AxgqPUFuMjT3Tkedq3H199sjJ4H/DjcRoudHhqze5Y9Bz5gZQXjeBzaCVj0K1b8JunW8eVV563fdDTLRkKBMu2WQUfKwdPaSw4jvQjeMv7p2eN/nz8rUw/MPM3cVGuoIWtFszE7kMA/x/nU4gt55nt8rp6Kj/AbAdAbwlUlzgG4xdd4deBf/UEffD/QvrmwL5SqlwuylqPQJT4OaVb3WKEQErM4rjA71ImUaHb8qAMIN2J8TggNiDQXow4GZiy/O4+QizIag3yrkCkB0WOZQ2mobqyRezpmAtrVJUipWVTtzTprREgJUZyXxaUnIPDNTfyvG/uFj274a8XAaz9lBd+nvdj96xsvIPegUZb3NoX/v3rVJgV6UpypQVJditOH7yRNA +wFrki/h 6VQHU0UofOtzL7WP9Qb9SQt5NSd0KUosCgNwJVb28a8eCtBgUh9vu+65aVsh0s9OHrurEYyA2vEoHAmQW5j2s5P8unvaYiNnsTcZR7q9A1nelILBCSCAyOTGcqznR7zD2Jt2qz4pOwdreTTBXHwGR/E9VNVIGRCl1DXf738t7MfFv4O0xObYGXxCqg9fQ5zQWm4hE/WQF/6M+DRYVz2GjlElpxQkPpFZ2dQBWFSAK7UPcMo3KjoHWLduSG/dTEvEMieWU X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On Fri, May 02, 2025 at 11:48:54AM -0700, Dave Hansen wrote: > On 5/1/25 15:54, Changyuan Lyu wrote: > > +/* > > + * If KHO is active, only process its scratch areas to ensure we are not > > + * stepping onto preserved memory. > > + */ > > +#ifdef CONFIG_KEXEC_HANDOVER > > +static bool process_kho_entries(unsigned long minimum, unsigned long image_size) > > +{ > > I thought we agreed to rework this to unconditionally define the > kho_scratch structures so the #ifdef can go away? It's either #ifdef or double casting and my understanding was that your preference was to get rid of the double casting. > > + struct kho_scratch *kho_scratch; > > + struct setup_data *ptr; > > + int i, nr_areas = 0; > > + > > + ptr = (struct setup_data *)boot_params_ptr->hdr.setup_data; > > + while (ptr) { > > + if (ptr->type == SETUP_KEXEC_KHO) { > > + struct kho_data *kho = (struct kho_data *)ptr->data; > > + > > + kho_scratch = (void *)kho->scratch_addr; > > + nr_areas = kho->scratch_size / sizeof(*kho_scratch); > > + > > + break; > > + } > > + > > + ptr = (struct setup_data *)ptr->next; > > + } > > + > > + if (!nr_areas) > > + return false; > > + > > + for (i = 0; i < nr_areas; i++) { > > + struct kho_scratch *area = &kho_scratch[i]; > > + struct mem_vector region = { > > + .start = area->addr, > > + .size = area->size, > > + }; > > + > > + if (process_mem_region(®ion, minimum, image_size)) > > + break; > > + } > > + > > + return true; > > +} > > +#else > > +static inline bool process_kho_entries(unsigned long minimum, > > + unsigned long image_size) > > +{ > > + return false; > > +} > > +#endif > > + > > static unsigned long find_random_phys_addr(unsigned long minimum, > > unsigned long image_size) > > { > > @@ -775,7 +824,8 @@ static unsigned long find_random_phys_addr(unsigned long minimum, > > return 0; > > } > > > > - if (!process_efi_entries(minimum, image_size)) > > + if (!process_kho_entries(minimum, image_size) && > > + !process_efi_entries(minimum, image_size)) > > process_e820_entries(minimum, image_size); > > > > phys_addr = slots_fetch_random(); > > I made a comment about this in the last round, making this the second > thing that I've noticed that was not addressed. > > Could you please go back through the last round of comments before you > repost these? I presumed that changelog covers it. We'll add a comment here for the next posting. > Just to be clear: these are making progress, but they're not OK from the > x86 side yet. -- Sincerely yours, Mike.