Received: by 2002:ab2:3350:0:b0:1f4:6588:b3a7 with SMTP id o16csp1766800lqe; Mon, 8 Apr 2024 22:13:55 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCXQ88/IrFUVc5zqjIS9ThQimlDCPqZUraYPwblsrUEKHpso3LOaVHbBHloR2Zl0cR3+MDo8np50I4bD7Ac9puFcO5VBu37Jq+Mtip+2sg== X-Google-Smtp-Source: AGHT+IEMCngCOkNxVnGY6fTF/5EohAjbzyKvuupUIS5gUJhDdsb+w9sd6LznfzjzqsXbmlsOVfnL X-Received: by 2002:a05:6214:2604:b0:699:3d80:7e19 with SMTP id gu4-20020a056214260400b006993d807e19mr17688687qvb.8.1712639635465; Mon, 08 Apr 2024 22:13:55 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1712639635; cv=pass; d=google.com; s=arc-20160816; b=rrxmci+kobgyN63/+VLDctk4OlS6jM/Lny4zbOYcD0mLWSvcdDrycx1fZMD8PrJ5He jXP1teR+j/t22j7a71Oz/eTciL9MmQToqaR8YxR7LbcxYlQu335FAXZHOorOIByziaHd Lho6MUzvOTFngvuf7rBi7FbQiu7pOuZM4x9zDafogzYW7whjZ8OHWT+Vu7T4esh7Ip25 eSZkk39FYPqFTqy2YcoD42jO9Yjr+o6CA+ZTeNNGF6PYuxkh7aqmci/6qh8B6VaCCscA OHPLsmEPNK68RmyaMtME1dnOBTvuhoNrbPtOruOfBi2bXCUv/8a2fGZjj4Sn9oV/x19e Ub+Q== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:list-unsubscribe:list-subscribe :list-id:precedence:dkim-signature; bh=b6G7fQwZrU8Ut2ONWgYwB5iUHvGBDAPNe+jjAW2C4Mg=; fh=T1ZuNE/3l+v3HNi8sZnfFm+dg0Ete8Ghry0aj1khsbw=; b=ha8yIjZ5RUV8bdT27fdzwFGxSyBMbcgHkmf5sMV/voia0YXU1SGWC320eX0HzNWFOd LzrAECdYzsecq9W8gvWG2tGUiHBXhkkx0UmPdcaZv+aqBlpxhK1OTvK1rjZAXegeGreE a7QLZI7qFa6vLepZhlifFT3ZObKThiP8F9UMrunf6fbxvYbqLY8EqHy2LO72jMe3+SZZ qbzrQ9HQQi2RdGs8Z73GdBlsX1Ro/TwkpyUvh9bb+rXUjmQrVMm5M1CZ3gg79EuRe/T5 pzEFoUtFpkihlCq7gC4RVlHep5tESIb4UTZUV4K3xq4kYCnqdsCtzM+Il73FO+e26CLc miEw==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=LMY5owiJ; arc=pass (i=1 spf=pass spfdomain=google.com dkim=pass dkdomain=google.com dmarc=pass fromdomain=google.com); spf=pass (google.com: domain of linux-kernel+bounces-136247-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-136247-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [2604:1380:45d1:ec00::1]) by mx.google.com with ESMTPS id y22-20020a05622a005600b00432c4c20a01si2860255qtw.645.2024.04.08.22.13.55 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 08 Apr 2024 22:13:55 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-136247-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) client-ip=2604:1380:45d1:ec00::1; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=LMY5owiJ; arc=pass (i=1 spf=pass spfdomain=google.com dkim=pass dkdomain=google.com dmarc=pass fromdomain=google.com); spf=pass (google.com: domain of linux-kernel+bounces-136247-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-136247-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ny.mirrors.kernel.org (Postfix) with ESMTPS id 28B831C23C51 for ; Tue, 9 Apr 2024 05:13:55 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 3BB245FB8F; Tue, 9 Apr 2024 05:13:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="LMY5owiJ" Received: from mail-qt1-f180.google.com (mail-qt1-f180.google.com [209.85.160.180]) (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 89BEC5465D for ; Tue, 9 Apr 2024 05:13:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.160.180 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712639624; cv=none; b=XrlL0EqjzKtf32I/QVYm6BVQ0CuySulSaGjnEwwSqOwYyh8K94qzCJAD4wvOVYc3uAxZPQu34JTPtZ2Bslf+ALAswuXmFQ+CbeA6ChKICHBaai/MCTJ8nA+g0heO2n7ynN8iYxBW+hO7OREKNRFLgmxLMsz72xhBvC/qjtaXR5c= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712639624; c=relaxed/simple; bh=KKjF/zFeP2l4ureM8YQ44jPQw1jLe60wvSyJYXpz6XM=; h=MIME-Version:References:In-Reply-To:From:Date:Message-ID:Subject: To:Cc:Content-Type; b=lys61r118eTQu46e3laqOa36z6wEDZZIvdSY8hfcQEvuf5mUqIW3Cs9dWPuYJH0Z8rgQjVHtN4YgnsLwKJn/4+ZSQZ7axfiFhS1QPjR2bzD43wsTkaRlxzD7mLdaS3YT2JYRA9UKfBAsHN9mq1zoIL5R9EioaRMWfN+xrfg/7uE= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=LMY5owiJ; arc=none smtp.client-ip=209.85.160.180 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=google.com Received: by mail-qt1-f180.google.com with SMTP id d75a77b69052e-43477091797so118941cf.1 for ; Mon, 08 Apr 2024 22:13:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1712639621; x=1713244421; darn=vger.kernel.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=b6G7fQwZrU8Ut2ONWgYwB5iUHvGBDAPNe+jjAW2C4Mg=; b=LMY5owiJ6d9Q1+QuH1YFu5x2LaD9Xn3ti4Co230Nr4lYHpug/9VfXK5Qf8ZDZ3vC6b 8QfihJ4GQ+3F2YhI96evxjnqqlAeyqdbzRnaORale5loyceoqlk/koG0UqPQMaZwRkgm EhjLw26k1QwwBywkgIk7ZyQDOncs/gECAdnck2xs63NQNF+VdE/Z7+2aSkMChp9S54KU pL/yG+j0V7oo5ikfBjNZ5RZErJo7VDbwvOya90y6SpoyaxYWXvo44C12sKnZmNpMlUNh 5Kd2U/nTpf/2c9oEPXcWIlJsdSOW7uQR5SWjU3IJLbYt95XLJ7Dyjm4FTT2/zo4w1PWQ SRHQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712639621; x=1713244421; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=b6G7fQwZrU8Ut2ONWgYwB5iUHvGBDAPNe+jjAW2C4Mg=; b=snMzt6PWPeac77dtUcQyXPGWNIoQP3GgoaSlgm496X+JAw5hPuIPIdCIpnZh/PAE/p 6sFPA0RPp13vXlKOb6L//qgB4BMQrkLdTqFBv0WoBYC16yir6QSTHY6gTW0X3WCwrDbj 9YdW5TDZb6yqnOfBK3PIryQrQM+8kGBFxlOOq/oK3ccSGxFl0kPqOTsAiJzRcrsXxm1o BwVO7nQ8WewPGDWvcfKZLnDxEzNMGma6heo1p+UfNZltGsDr6L55J36lteVqDCv9zCi6 zJ0Lif5561tSWjzxiqGXh5DRitJF2x0GRGr59RULDkLSG9S/06BMjoKZq1n1Ymow5dO7 2gPg== X-Forwarded-Encrypted: i=1; AJvYcCUQVrn4XwGyHNdCbgvi8NR1jcvf6e2aNPKOA2Xl/Tnbp24zboldYyZXyAs/0a1+PxGzqDG/oWJXy6zJ5PAEmG3TGu8MMxRgw9SWn9LL X-Gm-Message-State: AOJu0Yz/W7Zt8IXyjPuwBo6zU11nWiTBS98ivRxFan0UYP7Rw5f5WldS GqLXojJwqtNX28vaQBm05jcxOI+rkBzc8XueT7H/IgauIf4Pz2EqZhTujkTMWasER1iHsgkqQt2 f1m72x/D1zDCtKtKEZqe59icsjlqa+oNz4qr2 X-Received: by 2002:a05:622a:1f9b:b0:431:6155:c602 with SMTP id cb27-20020a05622a1f9b00b004316155c602mr124400qtb.3.1712639621316; Mon, 08 Apr 2024 22:13:41 -0700 (PDT) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 References: <20240408231310.325451-1-saravanak@google.com> <20240408231310.325451-3-saravanak@google.com> In-Reply-To: From: Saravana Kannan Date: Mon, 8 Apr 2024 22:13:01 -0700 Message-ID: Subject: Re: [RFC PATCH v1 2/2] of: dynamic: Fix probing of overlay devices To: Herve Codina , Geert Uytterhoeven Cc: Rob Herring , kernel-team@android.com, linux-kernel@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-i2c@vger.kernel.org, devicetree@vger.kernel.org, linux-spi@vger.kernel.org, linux-acpi@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Mon, Apr 8, 2024 at 6:40=E2=80=AFPM Saravana Kannan wrote: > > On Mon, Apr 8, 2024 at 4:13=E2=80=AFPM Saravana Kannan wrote: > > > > Get fw_devlink to work well with overlay devices. > > > > Signed-off-by: Saravana Kannan > > --- > > drivers/base/core.c | 10 ++++++++++ > > drivers/of/dynamic.c | 8 ++++++++ > > include/linux/fwnode.h | 2 ++ > > 3 files changed, 20 insertions(+) > > > > diff --git a/drivers/base/core.c b/drivers/base/core.c > > index 5f4e03336e68..d856f9c5d601 100644 > > --- a/drivers/base/core.c > > +++ b/drivers/base/core.c > > @@ -237,6 +237,16 @@ static void __fw_devlink_pickup_dangling_consumers= (struct fwnode_handle *fwnode, > > __fw_devlink_pickup_dangling_consumers(child, new_sup); > > } > > > > + > > +void fw_devlink_pickup_dangling_consumers(struct fwnode_handle *child, > > + struct fwnode_handle *= parent) > > +{ > > + mutex_lock(&fwnode_link_lock); > > + __fw_devlink_pickup_dangling_consumers(child, parent); > > + __fw_devlink_link_to_consumers(parent->dev); > > + mutex_unlock(&fwnode_link_lock); > > +} > > + > > static DEFINE_MUTEX(device_links_lock); > > DEFINE_STATIC_SRCU(device_links_srcu); > > > > diff --git a/drivers/of/dynamic.c b/drivers/of/dynamic.c > > index 19a1a38554f2..0a936f46820e 100644 > > --- a/drivers/of/dynamic.c > > +++ b/drivers/of/dynamic.c > > @@ -237,6 +237,7 @@ static void __of_attach_node(struct device_node *np= ) > > int of_attach_node(struct device_node *np) > > { > > struct of_reconfig_data rd; > > + struct fwnode_handle *fwnode, *parent; > > > > memset(&rd, 0, sizeof(rd)); > > rd.dn =3D np; > > @@ -246,6 +247,13 @@ int of_attach_node(struct device_node *np) > > mutex_unlock(&of_mutex); > > > > of_reconfig_notify(OF_RECONFIG_ATTACH_NODE, &rd); > > + fwnode =3D of_fwnode_handle(np); > > + fwnode_for_each_parent_node(fwnode, parent) > > + if (parent->dev) { > > + fw_devlink_pickup_dangling_consumers(fwnode, pa= rent); > > + fwnode_handle_put(parent); > > + break; > > + } > > I'm clearly calling this in the wrong location. Please move this logic > to __of_changeset_entry_notify() and for the case > OF_RECONFIG_ATTACH_NODE. Haven't fully thought through the DETACH > case, but it should work correctly for that case too. If not, I'll > take care of that next. > I'll send out a RFC v2 with the code fixed up in a few minutes. > -Saravana > > > > > return 0; > > } > > diff --git a/include/linux/fwnode.h b/include/linux/fwnode.h > > index 0d79070c5a70..4b3f697a90e8 100644 > > --- a/include/linux/fwnode.h > > +++ b/include/linux/fwnode.h > > @@ -220,6 +220,8 @@ int fwnode_link_add(struct fwnode_handle *con, stru= ct fwnode_handle *sup, > > u8 flags); > > void fwnode_links_purge(struct fwnode_handle *fwnode); > > void fw_devlink_purge_absent_suppliers(struct fwnode_handle *fwnode); > > +void fw_devlink_pickup_dangling_consumers(struct fwnode_handle *child, > > + struct fwnode_handle *parent)= ; > > bool fw_devlink_is_strict(void); > > > > #endif > > -- > > 2.44.0.478.gd926399ef9-goog > >