From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752873AbcEJO0p (ORCPT ); Tue, 10 May 2016 10:26:45 -0400 Received: from mail-yw0-f178.google.com ([209.85.161.178]:35705 "EHLO mail-yw0-f178.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751422AbcEJO0c convert rfc822-to-8bit (ORCPT ); Tue, 10 May 2016 10:26:32 -0400 MIME-Version: 1.0 In-Reply-To: References: <1462817488-8370-1-git-send-email-pantelis.antoniou@konsulko.com> <1462817488-8370-3-git-send-email-pantelis.antoniou@konsulko.com> From: Rob Herring Date: Tue, 10 May 2016 09:26:11 -0500 Message-ID: Subject: Re: [PATCH 2/3] of: Support hashtable lookups for phandles To: Pantelis Antoniou Cc: Geert Uytterhoeven , Frank Rowand , Matt Porter , Grant Likely , Koen Kooi , Guenter Roeck , Marek Vasut , "devicetree@vger.kernel.org" , "linux-kernel@vger.kernel.org" Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8BIT Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, May 10, 2016 at 8:45 AM, Pantelis Antoniou wrote: > Hi Rob, > >> On May 10, 2016, at 00:11 , Rob Herring wrote: >> >> On Mon, May 9, 2016 at 3:38 PM, Geert Uytterhoeven wrote: >>> Hi Pantelis, >>> >>> On Mon, May 9, 2016 at 8:11 PM, Pantelis Antoniou >>> wrote: >>>> --- a/drivers/of/base.c >>>> +++ b/drivers/of/base.c >>> >>>> @@ -1073,9 +1097,14 @@ struct device_node *of_find_node_by_phandle(phandle handle) >>>> return NULL; >>>> >>>> raw_spin_lock_irqsave(&devtree_lock, flags); >>>> - for_each_of_allnodes(np) >>>> - if (np->phandle == handle) >>>> - break; >>>> + /* when we're ready use the hash table */ >>>> + if (of_phandle_ht_available() && !in_interrupt()) >>> >>> I guess the !in_interrupt() test is because of the locking inside >>> rhashtable_lookup_fast()? >> >> Not a use we should support. Just warn for anyone parsing DT in >> interrupt context. >> > > That’s not about users calling in interrupt context. It’s when we’re > very early in the boot sequence we’re under interrupt context and > calls to the hash methods cannot be made. I don't understand. When exactly are we in interrupt context? Rob