Received: by 2002:a25:c593:0:0:0:0:0 with SMTP id v141csp5135072ybe; Tue, 17 Sep 2019 03:15:01 -0700 (PDT) X-Google-Smtp-Source: APXvYqxM1UTFduWQtK1NY0iuFea9vbx9qSsHLRSd6ZDJUPqhvctjRMmxQE5niuXG/ZCzM2WpO5Gq X-Received: by 2002:a17:906:694:: with SMTP id u20mr4019286ejb.83.1568715301822; Tue, 17 Sep 2019 03:15:01 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1568715301; cv=none; d=google.com; s=arc-20160816; b=F/gP9i2XU5SwXNtgXZ60DtRm4I4ewhLn5UtzoUW6A1nJ0myFt9kpVbHbYNWQ0QE6Qu LviHtiXLY+HOImWnjjvIGj+RF+zd16XYgbAq/eCHKMFGrLWw9GB3FVemXqw03Y/MHFEK B380kos/Bjx3/E/KG6/RMiz82lSlV10cAdRKW/PLO84JwBXBWaq7V9lsOk7s+/NlDnG9 LP1tmMJw4lUBnEs3NU9OAdoOaOSDcuCxs+VOwAkYhq7wadzhq9r5NizFoWg8O6BiQI9C daBrf2FjdKuOiXjlYCM8L/323KBMfHewK124Z+g4sNGtH02wpos9/oM/pXxlfmZYG0ft 8e5Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:cc:to:subject :message-id:date:from:in-reply-to:references:mime-version; bh=4nhx0iXhfLljU05uVsfpN5KQwQNW/jFQ9eXbHYKa100=; b=WtG2mwuzvqY64JNZVQdOrO0EAhDwo2StWSt7OGY7/OaBdw9jq+HKSZ8gsYX0KBfrw1 fN4Cgg09FmgYZL/Hcr9VHkEWxrMe5kBdhhwdXtcxLfs7WR90A7ZFOsdJUTMGb5fvZrQr Ptn0AnWr35GaO80X2a2G6+xJ90z+oSxUu+gz0kV2ePakZQ8E8/rpb7t5zNUqPXvu7zVC HxMtLGszupCM3sRzTZEHi0yQ24/Pfy+b+Vwra0eDhAXfx5dfq2AZdyvFGJFeUpDJJjrm 4vqt1ZSShLBvTP1ouI+6aX55m2FsW4wFgWkQKW4W03w2YI36gz0VgaiLG9uz+j6D/kqk VEFA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id i12si980624edb.133.2019.09.17.03.14.38; Tue, 17 Sep 2019 03:15:01 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728810AbfIQJki convert rfc822-to-8bit (ORCPT + 99 others); Tue, 17 Sep 2019 05:40:38 -0400 Received: from mail-oi1-f196.google.com ([209.85.167.196]:38769 "EHLO mail-oi1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727534AbfIQJki (ORCPT ); Tue, 17 Sep 2019 05:40:38 -0400 Received: by mail-oi1-f196.google.com with SMTP id 7so2272331oip.5; Tue, 17 Sep 2019 02:40:38 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=uCmhvMwVcStuHY/v3SQn/MtQSiOlz7f/42X793jLSYQ=; b=Jo1up/lMJjjxsVJMkPUcYVgcuRIIjgTGYOnx3bODNDys91Dm3+zOhs+JHvdcnFdMWv 7jaQkEqGEtgDCQ6AO3VY+HcvY0TIoUh9/4zfk2c9QVLC8anTny/Zdkd4JheCjMO408L4 Ac1FD22qk1YARwS57LamqJT7GMSEH7ZbU+pCTs8U350yCcykJemC29Hf2cJBfAuo3lIM fXq7Q3Te3dMyTXQnNDXzu6CVvLUWDNPEFDNh2+WswzX6+Duzx5b36kbeqRbAG1e8EGXo IQZFhiizcilk+MgomYoe3X+ICPDQ7O0qNzCKR+SNN4ezYZaoukVEr8OSZnr7Mvb3Lhlm zEHg== X-Gm-Message-State: APjAAAWtvfyzM0zQuwzScHTL+60aVuOc0Aff0UkDktZGKiqzm+NyaSwk KkN3hQUi581aeXVQIuI2jsYQVQ425uy+XBeT1bo= X-Received: by 2002:aca:cdc7:: with SMTP id d190mr2793514oig.148.1568713237546; Tue, 17 Sep 2019 02:40:37 -0700 (PDT) MIME-Version: 1.0 References: <20190824132846.8589-1-u.kleine-koenig@pengutronix.de> <20190824132846.8589-2-u.kleine-koenig@pengutronix.de> <20190913215809.GA11833@bogus> In-Reply-To: <20190913215809.GA11833@bogus> From: Geert Uytterhoeven Date: Tue, 17 Sep 2019 11:40:25 +0200 Message-ID: Subject: Re: [PATCH v1 2/2] of: Let of_for_each_phandle fallback to non-negative cell_count To: Rob Herring , =?UTF-8?Q?Uwe_Kleine=2DK=C3=B6nig?= Cc: "open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS" , Will Deacon , Joerg Roedel , Linux Kernel Mailing List , Linux IOMMU , linux-mediatek@lists.infradead.org, Sascha Hauer , Matthias Brugger , Frank Rowand , Linux ARM , Robin Murphy , Wolfram Sang , Linux I2C , Linux-Renesas Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8BIT Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Rob, Uwe, On Fri, Sep 13, 2019 at 11:58 PM Rob Herring wrote: > On Sat, 24 Aug 2019 15:28:46 +0200, =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= wrote: > > Referencing device tree nodes from a property allows to pass arguments. > > This is for example used for referencing gpios. This looks as follows: > > > > gpio_ctrl: gpio-controller { > > #gpio-cells = <2> > > ... > > } > > > > someothernode { > > gpios = <&gpio_ctrl 5 0 &gpio_ctrl 3 0>; > > ... > > } > > > > To know the number of arguments this must be either fixed, or the > > referenced node is checked for a $cells_name (here: "#gpio-cells") > > property and with this information the start of the second reference can > > be determined. > > > > Currently regulators are referenced with no additional arguments. To > > allow some optional arguments without having to change all referenced > > nodes this change introduces a way to specify a default cell_count. So > > when a phandle is parsed we check for the $cells_name property and use > > it as before if present. If it is not present we fall back to > > cells_count if non-negative and only fail if cells_count is smaller than > > zero. > > > > Signed-off-by: Uwe Kleine-König This is now commit e42ee61017f58cd9 ("of: Let of_for_each_phandle fallback to non-negative cell_count") in robh/for-next, which causes a lock-up when booting a shmobile_defconfig kernel on r8a7791/koelsch: rcu: INFO: rcu_sched self-detected stall on CPU rcu: 0-....: (2099 ticks this GP) idle=6fe/1/0x40000002 softirq=29/29 fqs=1050 (t=2100 jiffies g=-1131 q=0) NMI backtrace for cpu 0 CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.3.0-rc2-shmobile-00050-ge42ee61017f58cd9 #376 Hardware name: Generic R-Car Gen2 (Flattened Device Tree) [] (unwind_backtrace) from [] (show_stack+0x10/0x14) [] (show_stack) from [] (dump_stack+0x7c/0x9c) [] (dump_stack) from [] (nmi_cpu_backtrace+0xa0/0xb8) [] (nmi_cpu_backtrace) from [] (nmi_trigger_cpumask_backtrace+0x84/0x114) [] (nmi_trigger_cpumask_backtrace) from [] (rcu_dump_cpu_stacks+0xac/0xc8) [] (rcu_dump_cpu_stacks) from [] (rcu_sched_clock_irq+0x2ac/0x6b4) [] (rcu_sched_clock_irq) from [] (update_process_times+0x30/0x5c) [] (update_process_times) from [] (tick_nohz_handler+0xcc/0x120) [] (tick_nohz_handler) from [] (arch_timer_handler_virt+0x28/0x30) [] (arch_timer_handler_virt) from [] (handle_percpu_devid_irq+0xe8/0x21c) [] (handle_percpu_devid_irq) from [] (generic_handle_irq+0x18/0x28) [] (generic_handle_irq) from [] (__handle_domain_irq+0xa0/0xb4) [] (__handle_domain_irq) from [] (gic_handle_irq+0x58/0x90) [] (gic_handle_irq) from [] (__irq_svc+0x6c/0x90) Exception stack(0xeb08dd30 to 0xeb08dd78) dd20: c0cc7514 20000013 00000005 00003b27 dd40: eb7c4020 c0cc750c 00000051 00000051 20000013 c0c66b08 eb1cdc00 00000018 dd60: 00000000 eb08dd80 c05c1a38 c0756c00 20000013 ffffffff [] (__irq_svc) from [] (_raw_spin_unlock_irqrestore+0x1c/0x20) [] (_raw_spin_unlock_irqrestore) from [] (of_find_node_by_phandle+0xcc/0xf0) [] (of_find_node_by_phandle) from [] (of_phandle_iterator_next+0x68/0x178) [] (of_phandle_iterator_next) from [] (of_count_phandle_with_args+0x5c/0x7c) [] (of_count_phandle_with_args) from [] (i2c_demux_pinctrl_probe+0x24/0x1fc) [] (i2c_demux_pinctrl_probe) from [] (platform_drv_probe+0x48/0x94) [] (platform_drv_probe) from [] (really_probe+0x1f0/0x2b8) [] (really_probe) from [] (driver_probe_device+0x140/0x158) [] (driver_probe_device) from [] (device_driver_attach+0x44/0x5c) [] (device_driver_attach) from [] (__driver_attach+0xac/0xb4) [] (__driver_attach) from [] (bus_for_each_dev+0x64/0xa0) [] (bus_for_each_dev) from [] (bus_add_driver+0x148/0x1a8) [] (bus_add_driver) from [] (driver_register+0xac/0xf0) [] (driver_register) from [] (do_one_initcall+0xa8/0x1d4) [] (do_one_initcall) from [] (kernel_init_freeable+0x26c/0x2c8) [] (kernel_init_freeable) from [] (kernel_init+0x8/0x10c) [] (kernel_init) from [] (ret_from_fork+0x14/0x2c) Exception stack(0xeb08dfb0 to 0xeb08dff8) dfa0: 00000000 00000000 00000000 00000000 dfc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 dfe0: 00000000 00000000 00000000 00000000 00000013 00000000 Presumably it loops forever, due to a conversion of -1 to unsigned somewhere? Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds