From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753781Ab0CZXm3 (ORCPT ); Fri, 26 Mar 2010 19:42:29 -0400 Received: from f0.cmpxchg.org ([85.214.51.133]:53134 "EHLO cmpxchg.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751246Ab0CZXm0 (ORCPT ); Fri, 26 Mar 2010 19:42:26 -0400 Date: Sat, 27 Mar 2010 00:42:03 +0100 From: Johannes Weiner To: Yinghai Lu Cc: Ingo Molnar , Thomas Gleixner , "H. Peter Anvin" , Andrew Morton , David Miller , Benjamin Herrenschmidt , Linus Torvalds , linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, Ian Campbell , Peter Zijlstra Subject: Re: [PATCH 03/24] x86: Do not free zero sized per cpu areas Message-ID: <20100326234203.GD29222@cmpxchg.org> References: <1269642114-16588-1-git-send-email-yinghai@kernel.org> <1269642114-16588-4-git-send-email-yinghai@kernel.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1269642114-16588-4-git-send-email-yinghai@kernel.org> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Mar 26, 2010 at 03:21:33PM -0700, Yinghai Lu wrote: > From: Ian Campbell > > This avoids an infinite loop in free_early_partial(). > > Add a warning to free_early_partial to catch future problems. > > -v5: put back start > end back into WARN_ONCE() > -v6: use one line for warning according to linus > -v7: more test by > > Signed-off-by: Ian Campbell > Signed-off-by: Yinghai Lu > Tested-by: Konrad Rzeszutek Wilk > Tested-by: Joel Becker > Tested-by: Stanislaw Gruszka > Cc: Peter Zijlstra > Cc: Ingo Molnar > --- > kernel/early_res.c | 6 ++++++ > 1 files changed, 6 insertions(+), 0 deletions(-) > > diff --git a/kernel/early_res.c b/kernel/early_res.c > index 3cb2c66..69bed5b 100644 > --- a/kernel/early_res.c > +++ b/kernel/early_res.c > @@ -333,6 +333,12 @@ void __init free_early_partial(u64 start, u64 end) > struct early_res *r; > int i; > > + if (start == end) > + return; > + > + if (WARN_ONCE(start > end, "free_early_partial: wrong range [%#llx, %#llx]\n", start, end)) > + return; I think you can drop the function name, it will be in the stack dump anyway. And that would get the line back into bounds :) Other than that, Acked-by: Johannes Weiner