From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756007AbcBINNb (ORCPT ); Tue, 9 Feb 2016 08:13:31 -0500 Received: from mail-wm0-f67.google.com ([74.125.82.67]:35438 "EHLO mail-wm0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755588AbcBINNa (ORCPT ); Tue, 9 Feb 2016 08:13:30 -0500 Date: Tue, 9 Feb 2016 14:13:26 +0100 From: Ingo Molnar To: Alexander Kuleshov Cc: Ingo Molnar , Thomas Gleixner , "H . Peter Anvin" , Borislav Petkov , Joerg Roedel , Dave Young , Andrew Morton , Jiri Kosina , Baoquan He , Paolo Bonzini , Mark Salter , linux-kernel@vger.kernel.org, x86@kernel.org Subject: Re: [PATCH v3] x86/setup: get ramdisk parameters only once Message-ID: <20160209131326.GA21762@gmail.com> References: <1455022488-1519-1-git-send-email-kuleshovmail@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1455022488-1519-1-git-send-email-kuleshovmail@gmail.com> User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org * Alexander Kuleshov wrote: > +/* > + * ramdisk setup > + */ > +struct ramdisk { > + u64 image; > + u64 size; > + u64 end; > +}; So what exactly are 'image' and 'end'? The names are not self-descriptory. Please add comments that describe them and use the opportunity to rename the fields to more self-descriptory names. > +static void __init relocate_initrd(struct ramdisk ramdisk) Why pass by value, why not by address? > { > + u64 area_size = PAGE_ALIGN(ramdisk.size); Why introduce a local variable here? Also, isn't ramdisk.size already page aligned? > +static void __init early_reserve_initrd(struct ramdisk ramdisk) > { > + memblock_reserve(ramdisk.image, ramdisk.end - ramdisk.image); > } Looks like a pretty pointless function now - can be expanded into its call site. > void __init setup_arch(char **cmdline_p) > { > + struct ramdisk ramdisk_image = { > + .image = get_ramdisk_image(), > + .size = get_ramdisk_size(), > + /* Assume only end is not page aligned */ > + .end = PAGE_ALIGN(ramdisk_image.image + ramdisk_image.size) > + }; > + bool reserve_ramdisk = true; Why not merge 'reserve_ramdisk' into the ramdisk state structure as well? > - early_reserve_initrd(); > + if (!boot_params.hdr.type_of_loader || !ramdisk_image.image > + || !ramdisk_image.size) { > + reserve_ramdisk = false; > + return; /* No initrd provided by bootloader */ > + } else > + early_reserve_initrd(ramdisk_image); Curly braces should be balanced. Thanks, Ingo