Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754908AbbHXPR7 (ORCPT ); Mon, 24 Aug 2015 11:17:59 -0400 Received: from mail-qk0-f182.google.com ([209.85.220.182]:34315 "EHLO mail-qk0-f182.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752395AbbHXPR5 (ORCPT ); Mon, 24 Aug 2015 11:17:57 -0400 MIME-Version: 1.0 In-Reply-To: <1440015467-21364-1-git-send-email-ddaney.cavm@gmail.com> References: <1440015467-21364-1-git-send-email-ddaney.cavm@gmail.com> From: Rob Herring Date: Mon, 24 Aug 2015 10:17:37 -0500 Message-ID: Subject: Re: [PATCH] of/address: Don't loop forever in of_find_matching_node_by_address(). To: David Daney Cc: "linux-kernel@vger.kernel.org" , Grant Likely , Rob Herring , "devicetree@vger.kernel.org" , Robert Richter , David Daney Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1565 Lines: 47 On Wed, Aug 19, 2015 at 3:17 PM, David Daney wrote: > From: David Daney > > If the internal call to of_address_to_resource() fails, we end up > looping forever in of_find_matching_node_by_address(). This can be > caused by a defective device tree, or calling with an incorrect > matches argument. > > Fix by calling of_find_matching_node() unconditionally at the end of > the loop. > > Signed-off-by: David Daney Applied and tagged for stable. Thanks. Rob > --- > drivers/of/address.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/drivers/of/address.c b/drivers/of/address.c > index 8bfda6a..384574c 100644 > --- a/drivers/of/address.c > +++ b/drivers/of/address.c > @@ -845,10 +845,10 @@ struct device_node *of_find_matching_node_by_address(struct device_node *from, > struct resource res; > > while (dn) { > - if (of_address_to_resource(dn, 0, &res)) > - continue; > - if (res.start == base_address) > + if (!of_address_to_resource(dn, 0, &res) && > + res.start == base_address) > return dn; > + > dn = of_find_matching_node(dn, matches); > } > > -- > 1.9.1 > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/