From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S964949AbcJYRIU (ORCPT ); Tue, 25 Oct 2016 13:08:20 -0400 Received: from foss.arm.com ([217.140.101.70]:53112 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752881AbcJYRIS (ORCPT ); Tue, 25 Oct 2016 13:08:18 -0400 Date: Tue, 25 Oct 2016 18:07:45 +0100 From: Mark Rutland To: Joe Perches Cc: linux-kernel@vger.kernel.org, Catalin Marinas , Will Deacon , linux-arm-kernel@lists.infradead.org Subject: Re: [PATCH V2] arm64: Neaten show_regs, remove KERN_CONT Message-ID: <20161025170745.GE8898@leverpostej> References: <289fb30081aba03fec0c960e7334f707bf36c881.1477413522.git.joe@perches.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <289fb30081aba03fec0c960e7334f707bf36c881.1477413522.git.joe@perches.com> User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Oct 25, 2016 at 09:40:26AM -0700, Joe Perches wrote: > commit db4b0710fae9 ("arm64: fix show_regs fallout from KERN_CONT changes") > corrected the KERN_CONT fallout from commit 4bcc595ccd80 > ("printk: reinstate KERN_CONT for printing continuation lines"), but > the code still has unnecessary KERN_CONT uses. > > Remove the KERN_CONT uses to avoid possible message interleaving. > > Miscellanea: > > o Remove unnecessary trailing blank from the output too. > o Convert i and top_reg to unsigned int > o Move the extra blank line after __show_reg to the caller for symmetry > Signed-off-by: Joe Perches > --- > arch/arm64/kernel/process.c | 21 ++++++++++----------- > 1 file changed, 10 insertions(+), 11 deletions(-) > > diff --git a/arch/arm64/kernel/process.c b/arch/arm64/kernel/process.c > index 01753cd7d3f0..5ba12f019bf7 100644 > --- a/arch/arm64/kernel/process.c > +++ b/arch/arm64/kernel/process.c > @@ -168,7 +168,7 @@ void machine_restart(char *cmd) > > void __show_regs(struct pt_regs *regs) > { > - int i, top_reg; > + unsigned int i, top_reg; This change is not necessary. These will work perfectly fine as ints; please leave them as-is. > u64 lr, sp; > > if (compat_user_mode(regs)) { > @@ -190,24 +190,23 @@ void __show_regs(struct pt_regs *regs) > > i = top_reg; > > - while (i >= 0) { > - printk("x%-2d: %016llx ", i, regs->regs[i]); > + if (i % 2) { This should be: if (i % 2 == 0) { Otherwise we'll lose x0 in the native case (and x29 will be given a line of its own). > + printk("x%-2d: %016llx\n", i, regs->regs[i]); > i--; > - > - if (i % 2 == 0) { > - pr_cont("x%-2d: %016llx ", i, regs->regs[i]); > - i--; > - } > - > - pr_cont("\n"); > } > - printk("\n"); > + while (i > 0) { > + printk("x%-2d: %016llx x%-2d: %016llx\n", > + i, regs->regs[i], > + i - 1, regs->regs[i - 1]); > + i -= 2; > + } > } > > void show_regs(struct pt_regs * regs) > { > printk("\n"); > __show_regs(regs); > + printk("\n"); > } Other functions call __show_regs() directly and the trailing newline there is expected. Please leave it in __show_regs(). Otherwise, this looks fine to me. Thanks, Mark.