From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-dy1-f169.google.com (mail-dy1-f169.google.com [74.125.82.169]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5596E405ACE for ; Fri, 27 Mar 2026 18:16:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.82.169 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774635415; cv=none; b=YnbAe92Gei3DZFrLbMWOJBaExa6/Ab3RAmJs5CHNOpdIJc9eVtCkpenxSWX2vfLgsoHpsd3iaGOT2oACFEv1lg8jwJWejGX+viBvX5zJJvo9oKlOgHKJGdND/gwLWkZK+iKeV/6gPldmU6uGUVnjRw3QoJfYUCOeVrGcruNVV6k= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774635415; c=relaxed/simple; bh=4Zrz52H95k+2o4Ds3cyFVf9KDSMD0Ecbhl8XG1xNSLE=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=YufNptf1NK4SEBU9ybBDVbDVUlAtDzwEc97ucFu3dT255gfdUxCOWVAjAEKqSOBh3BzLnvg4yEmtftrXvjTb/t6AqLRWzY5EQtdR2AlJZOEJMEH3t3+l6cCZdmoR47Yyx0HDHRFI25DzXNffYaE+lpqDS5SLedUem7U9asOfx3s= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=NBa2OYyc; arc=none smtp.client-ip=74.125.82.169 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="NBa2OYyc" Received: by mail-dy1-f169.google.com with SMTP id 5a478bee46e88-2c1632faeb9so4136442eec.0 for ; Fri, 27 Mar 2026 11:16:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1774635406; x=1775240206; darn=vger.kernel.org; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date:from:to :cc:subject:date:message-id:reply-to; bh=So9g254LjIG5mvcH+IfiKGLnYk5lJbv9pvaJ0NR//W4=; b=NBa2OYycUzzHgCcPiToCMO5ix/iCd7DXuiDT+1zZbparpN2AUGlb0ThptzB0boWr1c wFrhOnljaTKpdbVsrd471DumoqjHgJzeyIqJA2S1Wuecv9vurWXlGmmrOhGan/AAtaMC EXv/5Al5OuFaEq2osGhQDIN9tsjL2iuD7XYt0P1UpspTJ7/HqBTh7K+WXnTZQJlENHTa FqwTcVj1fiJ/F3tuBBXUS3Q0e+VHtbQZ9RGoHzdsQF+HC9Q6iBIynh8B+HA2duOCctQ1 JpvGBKRi1aIUXzDgbU4guDnMbysCmUEspTnxKxzL8E267qzl3zmZUCQUakQNCLEjho2m Pc3g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774635406; x=1775240206; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=So9g254LjIG5mvcH+IfiKGLnYk5lJbv9pvaJ0NR//W4=; b=QFT5FyFO8dik9jLO9b+nSC8MQlnc9At/z5xQG4pUWfRuim2kkpTgZjMM1MpuS86P5Q QUCPD7aWB9cXXMi0amGDJbObCWGsdWG4haGFMPS/yuEo2o7lgJ93PRH6RvwzzSQyx/k3 7ZXsAZe7A+ylEcX0bsDFUf4KAHgj7cObCeOVIMeN+/Am/3oxW1UnJetp3njwLlkLVQ8I mQh4EudMiEzxbYgNTk4R8SRumt4txGfDFerSGUGMO0/Lm4CJb99AvGBIoKdkPFCM8g8F 6XBO55pWQEsROvDECp+GfbGv1zMJwi1uj4f3wxUV1vttURQd0XWDoBykPd8J6UOanfz5 c44Q== X-Forwarded-Encrypted: i=1; AJvYcCVAjEL/B5RJzPF9R+DE4bfLt5ST+pRdvM5HKsToWHOg2m8PW1alcIIYc6DqKeWMWIR3J+dBDpHTaR+NWs0=@vger.kernel.org X-Gm-Message-State: AOJu0YwOmg3pd9jGSzn3nrtOq1W7PkCwet9GKs9Yl3wu+V1Tz4cxP5xU zBd/k7w4McSZbyeYQRjPWIyMgeu+U7QJ/G/A3j2/KFaqahfi5fn5fWeYlNT1Dw== X-Gm-Gg: ATEYQzwC91D7RWSKA/1aiHEh2sNSYfWe3EXSa/CfbaKJvyC+req3XjhQa8XN4oqWqdj hB+7NtvWrYtE05ALPbMuJrz0lccTkx2I+zFM3mZwFhp4E9EiG8mGSyPikt2l2b7xXvh/oDtkak6 h7omY1jpATy1EQZuS76F8SkHLATLw52erte0Rp+pH/2ZNxH2KIVxyNHYEYakwivvGkLgakWjZai 674ScJpzGTA7/2Ph36MDWBml4RqWUQXU/fh/NO1vqqAfOnHaLilKSVQijPrKeRuP9EsFiXJsxcB VHPKJQPply0CcRr4jGgJq82D8FKhKech7gYRj9d9w6kpOLj6iVFn0VjmTZ31QN6H05egkM4GvGC ONIg6Q7sgNhOss0aNpijLmzdAEKzUQ1+vB5R55g6dslCaGW/eUOZwIR7CKagU9VHN+ayYOsIgNJ QF+EE38FNGtq6gfUuiN/wYxbGLIEmTylczJBE/860/uwOwV22WpTsyQIiCaYmeHPLq X-Received: by 2002:a05:7300:d215:b0:2c2:5cc9:6d2 with SMTP id 5a478bee46e88-2c25cc90ba2mr856175eec.2.1774635405883; Fri, 27 Mar 2026 11:16:45 -0700 (PDT) Received: from google.com ([2a00:79e0:2ebe:8:85b0:37ea:7fa8:4717]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2c3c7483ffcsm32538eec.26.2026.03.27.11.16.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Mar 2026 11:16:45 -0700 (PDT) Date: Fri, 27 Mar 2026 11:16:41 -0700 From: Dmitry Torokhov To: Bartosz Golaszewski Cc: Janusz Krzysztofik , Arnd Bergmann , Bartosz Golaszewski , Tony Lindgren , Russell King , Hans de Goede , Linux-OMAP , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Kevin Hilman , Aaro Koskinen , Andy Shevchenko Subject: Re: [RFT PATCH v3] ARM: omap1: enable real software node lookup of GPIOs on Nokia 770 Message-ID: References: <2fb42d16-887a-4564-8e50-c9d6db564c4e@app.fastmail.com> <7h1phxpzml.fsf@baylibre.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: On Fri, Mar 27, 2026 at 10:27:07AM -0700, Bartosz Golaszewski wrote: > On Fri, 27 Mar 2026 18:23:29 +0100, Bartosz Golaszewski said: > > On Fri, Mar 27, 2026 at 5:59 PM Aaro Koskinen wrote: > >> > >> Hi, > >> > >> On Fri, Mar 27, 2026 at 03:22:12PM +0100, Bartosz Golaszewski wrote: > >> > Hmm, I'm wondering if there's a race with consumers already requesting > >> > the GPIOs after the controller device is registered but before the > >> > software node is added. I'll send a version with software nodes being > >> > registered first, then passes as firmware nodes to the platform device > >> > API before the device is registered. > >> > >> It crashes early, I was able to get an UART log from OSK (another > >> 16xx board): > >> > >> [ 1.001525] Register r12 information: 2-page vmalloc region starting at 0xc2808000 allocated at kernel_clone+0xa4/0x20c > >> [ 1.013092] Process swapper/0 (pid: 1, stack limit = 0x(ptrval)) > >> [ 1.019500] Stack: (0xc2809ed0 to 0xc280a000) > >> [ 1.024230] 9ec0: c072d000 c0529474 c06b3aa0 c050a3cc > >> [ 1.032958] 9ee0: c072d000 c085c000 00000002 c052582c c050a324 c072d000 00000000 c0503160 > >> [ 1.041687] 9f00: 00002710 00000000 c04da8f8 c0060900 c2809f64 ffffffff 00010000 946f70b5 > >> [ 1.050384] 9f20: 00000062 c0816120 00000002 c052582c c0525848 c072d000 c04da8f8 c0060a18 > >> [ 1.059112] 9f40: c2809f64 c2809f64 00000000 946f70b5 00000062 c0816120 00000002 c052582c > >> [ 1.067810] 9f60: c052584c c072d000 c04da8f8 c050352c 00000002 00000002 00000000 c0502400 > >> [ 1.076507] 9f80: c2809f7c 00000000 c03f86f4 00000000 00000000 00000000 00000000 00000000 > >> [ 1.085205] 9fa0: 00000000 c03f8704 00000000 c000850c 00000000 00000000 00000000 00000000 > >> [ 1.093902] 9fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 > >> [ 1.102600] 9fe0: 00000000 00000000 00000000 00000000 00000013 00000000 00000000 00000000 > >> [ 1.111206] Call trace: > >> [ 1.111328] software_node_to_swnode from device_add_software_node+0x20/0x80 > >> [ 1.121704] device_add_software_node from omap16xx_gpio_init+0xa8/0xe4 > >> [ 1.128997] omap16xx_gpio_init from do_one_initcall+0x68/0x1f4 > >> [ 1.135620] do_one_initcall from kernel_init_freeable+0x1ec/0x240 > >> [ 1.142517] kernel_init_freeable from kernel_init+0x10/0x108 > >> [ 1.148864] kernel_init from ret_from_fork+0x14/0x28 > >> [ 1.154357] Exception stack(0xc2809fb0 to 0xc2809ff8) > >> [ 1.159820] 9fa0: 00000000 00000000 00000000 00000000 > >> [ 1.168518] 9fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 > >> [ 1.177185] 9fe0: 00000000 00000000 00000000 00000000 00000013 00000000 > >> [ 1.184295] Code: e3500000 012fff1e e59f3034 e5932000 (e5923000) > >> [ 1.191040] ---[ end trace 0000000000000000 ]--- > >> [ 1.196350] Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b > >> [ 1.204559] ---[ end Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b ]--- > >> > > > > Thanks. This makes sense. Both omap16xx_gpio_init() and > > software_node_init() run as postcore_initcall() so if the order is not > > right, it will fail. > > > > Cc'ing Andy who's a reviewer for software nodes. Andy: is there any > > reason to run software_node_init() as a postcore initcall? It only > > allocates the kset, can we move it to core_initcall() by any chance? > > > > Bart > > > > In any case, Aaro: the following should theoretically fix it: > > diff --git a/drivers/base/swnode.c b/drivers/base/swnode.c > index 51320837f3a9..5ba904f8a08a 100644 > --- a/drivers/base/swnode.c > +++ b/drivers/base/swnode.c > @@ -1134,7 +1134,7 @@ static int __init software_node_init(void) > return -ENOMEM; > return 0; > } > -postcore_initcall(software_node_init); > +core_initcall(software_node_init); This is wrong direction IMO. The matching by label is working now, so there is no reason to rush this change into the kernel, it is simply a cleanup. Wait until the resolution of my pact allowing using node names, or your proposal that installs and attaches nodes dynamically based on bus notifiers (or both) and then make the conversion. Then you will not need to move init order around, add new dependencies between drivers, and so on. Thanks. -- Dmitry