{"id":2219722,"url":"http://patchwork.ozlabs.org/api/1.1/patches/2219722/?format=json","web_url":"http://patchwork.ozlabs.org/project/linux-pci/patch/20260403170432.v4.8.I806b8636cd3724f6cd1f5e199318ab8694472d90@changeid/","project":{"id":28,"url":"http://patchwork.ozlabs.org/api/1.1/projects/28/?format=json","name":"Linux PCI development","link_name":"linux-pci","list_id":"linux-pci.vger.kernel.org","list_email":"linux-pci@vger.kernel.org","web_url":null,"scm_url":null,"webscm_url":null},"msgid":"<20260403170432.v4.8.I806b8636cd3724f6cd1f5e199318ab8694472d90@changeid>","date":"2026-04-04T00:05:02","name":"[v4,8/9] driver core: Replace dev->of_node_reused with dev_of_node_reused()","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"c4a3919036094eed3c59276c243871b1ad1693bd","submitter":{"id":9763,"url":"http://patchwork.ozlabs.org/api/1.1/people/9763/?format=json","name":"Douglas Anderson","email":"dianders@chromium.org"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/linux-pci/patch/20260403170432.v4.8.I806b8636cd3724f6cd1f5e199318ab8694472d90@changeid/mbox/","series":[{"id":498689,"url":"http://patchwork.ozlabs.org/api/1.1/series/498689/?format=json","web_url":"http://patchwork.ozlabs.org/project/linux-pci/list/?series=498689","date":"2026-04-04T00:04:54","name":"driver core: Fix some race conditions","version":4,"mbox":"http://patchwork.ozlabs.org/series/498689/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/2219722/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2219722/checks/","tags":{},"headers":{"Return-Path":"\n <linux-pci+bounces-51855-incoming=patchwork.ozlabs.org@vger.kernel.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linux-pci@vger.kernel.org"],"Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=chromium.org header.i=@chromium.org header.a=rsa-sha256\n header.s=google header.b=hMxqXADh;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c0a:e001:db::12fc:5321; helo=sea.lore.kernel.org;\n envelope-from=linux-pci+bounces-51855-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org\n header.b=\"hMxqXADh\"","smtp.subspace.kernel.org;\n arc=none smtp.client-ip=74.125.82.177","smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=chromium.org","smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=chromium.org"],"Received":["from sea.lore.kernel.org (sea.lore.kernel.org\n [IPv6:2600:3c0a:e001:db::12fc:5321])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fnbdm3jLWz1xtJ\n\tfor <incoming@patchwork.ozlabs.org>; Sat, 04 Apr 2026 11:13:00 +1100 (AEDT)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sea.lore.kernel.org (Postfix) with ESMTP id 7AF543092AE9\n\tfor <incoming@patchwork.ozlabs.org>; Sat,  4 Apr 2026 00:07:54 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 97FD614F112;\n\tSat,  4 Apr 2026 00:07:48 +0000 (UTC)","from mail-dy1-f177.google.com (mail-dy1-f177.google.com\n [74.125.82.177])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id 2A0CB1A0BD6\n\tfor <linux-pci@vger.kernel.org>; Sat,  4 Apr 2026 00:07:43 +0000 (UTC)","by mail-dy1-f177.google.com with SMTP id\n 5a478bee46e88-2c54c68db4dso4526379eec.0\n        for <linux-pci@vger.kernel.org>; Fri, 03 Apr 2026 17:07:43 -0700 (PDT)","from dianders.sjc.corp.google.com\n ([2a00:79e0:2e7c:8:a8b6:55b2:3eb6:2c0e])\n        by smtp.gmail.com with ESMTPSA id\n 5a478bee46e88-2ca79e1d93bsm6520716eec.12.2026.04.03.17.07.39\n        (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n        Fri, 03 Apr 2026 17:07:41 -0700 (PDT)"],"ARC-Seal":"i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1775261268; cv=none;\n b=sqViKSezh4PPGyc+9j2ANyPOfTB67oq2OYydOMPx9hRDrxiBpdnXJPjRRqn71BTt1z0mImzuQpLmuOH/qX/O6XHMN4QathE0KL1ZRKCVYl7+ynM/NPycaZmGJAcRDub7grvxWXjErrp515YErfdJRboX/3cn8B3NJtg3U5auiWg=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1775261268; c=relaxed/simple;\n\tbh=d23SS4JYDl51gvVRVxBmRbh490gs/+zf7Nk228iDvk8=;\n\th=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References:\n\t MIME-Version;\n b=XKkLh7CcbB8yIgMn+wMA9PxrxUd69wk8oTxcmbPSVTcw6SLnuJ8Xn9fc5tlfhHKdk2jLIwD8sjCwOQ8Xwe5TR9r+K4JK5Yq6H/kzdfH1bNIZ5S2XyI9SZrJTFB+19ozmPh0hoJGrMrkf+Pff37Jj0t4sRnCgYQOGtsUJ80eld9I=","ARC-Authentication-Results":"i=1; smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=chromium.org;\n spf=pass smtp.mailfrom=chromium.org;\n dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org\n header.b=hMxqXADh; arc=none smtp.client-ip=74.125.82.177","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n        d=chromium.org; s=google; t=1775261262; x=1775866062;\n darn=vger.kernel.org;\n        h=content-transfer-encoding:mime-version:references:in-reply-to\n         :message-id:date:subject:cc:to:from:from:to:cc:subject:date\n         :message-id:reply-to;\n        bh=P2v/+uE3FItR13RHlHLOGT8kS+I6Lrtj4w+A1WuT72k=;\n        b=hMxqXADhxHEB8PpGdPLT3E9BO7OEHrvpWlZgyRi1Z2P4yHLA/qTd/aCjzL1Dc6fFZB\n         konlEU2Rq7JWysWGyGFiBmz0kHvfShFp2gkJPzuPGYtBJ5wUHk5GvMiN8CNOWZUFhHjm\n         bnHr67qxcR3dgctlQitioXagTk5MeQd9NKn30=","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n        d=1e100.net; s=20251104; t=1775261262; x=1775866062;\n        h=content-transfer-encoding:mime-version:references:in-reply-to\n         :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from\n         :to:cc:subject:date:message-id:reply-to;\n        bh=P2v/+uE3FItR13RHlHLOGT8kS+I6Lrtj4w+A1WuT72k=;\n        b=jaUelCxetLeCQKKKu3usO16Q+MWoZ6t2PFKAjdhHAGPCFSEr1oNcvQpJ+gCi7QKSey\n         Vz0FNZVe5LwT6km/wfFKpu2iYQBMdwVZk5fQM63T+BxCHavjUb9Rk6z0aQeRQYOzkr56\n         bjcoRxSOnui5dc/GS/12d3PenYNKH+NOXiZLiyY6JzkEZCXKEneR9Drq4nlLdD5VYzhb\n         RYzfYLfnhXQSUGFTyeSJTHgLzTUgO6hKe49UmReIWfy5OcLM8lQNFSWVLciqT3GD5Rg/\n         jZtYQZWPKSxAR9QQec4CjodgZkwDl4p/mrXLp7C4G9yXq8fBcmH6IO1Hk8PU/S5P33gD\n         Qung==","X-Forwarded-Encrypted":"i=1;\n AJvYcCUYrwv1vUTSGL69sLUyWik2hzZb7WttKmcIWPO0ujF6GDCj0yY6Ym8zj5PA/1BZOl99nqQfCqKU7b4=@vger.kernel.org","X-Gm-Message-State":"AOJu0Yx80fbroYQsCLsx6i7R8BPZmYDg6zmSVt9OqIvZ+62nlubkAV0t\n\tQmnBLE/U/r275daLQs+TV+Ny9Jq7/eOIGC1wWxljO+0WaYnGWHFRo9XOSzfTVWKwZg==","X-Gm-Gg":"AeBDieuqHnN/S5yBcItQDM/TBnCCVUYiaunPGHK4Z4R7FwLCDJAeqYJPe04rWCGBNfr\n\t828ANwNm+sIoMNCC9XYdS9nnu9V/EgYWSsQNBZorDk1vLs0JhDxl7IDXccIjEIMRsi3DRn5nKng\n\tWHd40er3uBOtkZF+SSe3+OaOMKSFbchTHLXD+Mwg+OqLkYMNq7Wl0Ms1YtfCWV7y1NcEmZEBcVA\n\t8R4CuIfGrPwbFq3Lqal0E7ywEEnFRLK6GwA0gmPp9WTfe7vSGHUG4vw0g3vc2AXRdJdZKCXRLhc\n\tOw2OC3kUhKrinn20Wsb6GfY2XFO9tWpG0xyEl31ofzDP2lrOYr/04tQBtKVTdf8Zu+cQt6hwG/r\n\tkvtS8KWOkPMoEZ59dRyeRHiCOG5G1ocV9cEJZ3MLbtwe+DgVMNICZp1WuRK1qC0xT5AtbIDHHaf\n\tKK2jYm0HBjcvJBrgWSnsTZeFzZDSslJBO3dYfRJQVR19y17k5QosQ0a1dnqcjSCYWMU02zhK7OQ\n\tQOaBepIJTg=","X-Received":"by 2002:a05:7300:b54b:b0:2c5:347:e628 with SMTP id\n 5a478bee46e88-2cbfbf77d5bmr2583156eec.21.1775261262312;\n        Fri, 03 Apr 2026 17:07:42 -0700 (PDT)","From":"Douglas Anderson <dianders@chromium.org>","To":"Greg Kroah-Hartman <gregkh@linuxfoundation.org>,\n\t\"Rafael J . Wysocki\" <rafael@kernel.org>,\n\tDanilo Krummrich <dakr@kernel.org>,\n\tAlan Stern <stern@rowland.harvard.edu>","Cc":"Saravana Kannan <saravanak@kernel.org>,\n\tChristoph Hellwig <hch@lst.de>,\n\tEric Dumazet <edumazet@google.com>,\n\tJohan Hovold <johan@kernel.org>,\n\tLeon Romanovsky <leon@kernel.org>,\n\tAlexander Lobakin <aleksander.lobakin@intel.com>,\n\tAlexey Kardashevskiy <aik@ozlabs.ru>,\n\tRobin Murphy <robin.murphy@arm.com>,\n\tDouglas Anderson <dianders@chromium.org>,\n\tMark Brown <broonie@kernel.org>,\n\talexander.stein@ew.tq-group.com,\n\tandrew@codeconstruct.com.au,\n\tandrew@lunn.ch,\n\tandriy.shevchenko@linux.intel.com,\n\tbhelgaas@google.com,\n\tbrgl@kernel.org,\n\tdavem@davemloft.net,\n\tdevicetree@vger.kernel.org,\n\tdriver-core@lists.linux.dev,\n\thkallweit1@gmail.com,\n\tjirislaby@kernel.org,\n\tjoel@jms.id.au,\n\tkees@kernel.org,\n\tkuba@kernel.org,\n\tlgirdwood@gmail.com,\n\tlinux-arm-kernel@lists.infradead.org,\n\tlinux-aspeed@lists.ozlabs.org,\n\tlinux-kernel@vger.kernel.org,\n\tlinux-pci@vger.kernel.org,\n\tlinux-serial@vger.kernel.org,\n\tlinux-usb@vger.kernel.org,\n\tlinux@armlinux.org.uk,\n\tmani@kernel.org,\n\tnetdev@vger.kernel.org,\n\tpabeni@redhat.com,\n\trobh@kernel.org","Subject":"[PATCH v4 8/9] driver core: Replace dev->of_node_reused with\n dev_of_node_reused()","Date":"Fri,  3 Apr 2026 17:05:02 -0700","Message-ID":"\n <20260403170432.v4.8.I806b8636cd3724f6cd1f5e199318ab8694472d90@changeid>","X-Mailer":"git-send-email 2.53.0.1213.gd9a14994de-goog","In-Reply-To":"<20260404000644.522677-1-dianders@chromium.org>","References":"<20260404000644.522677-1-dianders@chromium.org>","Precedence":"bulk","X-Mailing-List":"linux-pci@vger.kernel.org","List-Id":"<linux-pci.vger.kernel.org>","List-Subscribe":"<mailto:linux-pci+subscribe@vger.kernel.org>","List-Unsubscribe":"<mailto:linux-pci+unsubscribe@vger.kernel.org>","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit"},"content":"In C, bitfields are not necessarily safe to modify from multiple\nthreads without locking. Switch \"of_node_reused\" over to the \"flags\"\nfield so modifications are safe.\n\nCc: Johan Hovold <johan@kernel.org>\nAcked-by: Mark Brown <broonie@kernel.org>\nSigned-off-by: Douglas Anderson <dianders@chromium.org>\n---\nNot fixing any known bugs; problem is theoretical and found by code\ninspection. Change is done somewhat manually and only lightly tested\n(mostly compile-time tested).\n\nChanges in v4:\n- Use accessor functions for flags\n\nChanges in v3:\n- New\n\n drivers/base/core.c                      | 2 +-\n drivers/base/pinctrl.c                   | 2 +-\n drivers/base/platform.c                  | 2 +-\n drivers/net/pcs/pcs-xpcs-plat.c          | 2 +-\n drivers/of/device.c                      | 6 +++---\n drivers/pci/of.c                         | 2 +-\n drivers/pci/pwrctrl/core.c               | 2 +-\n drivers/regulator/bq257xx-regulator.c    | 2 +-\n drivers/regulator/rk808-regulator.c      | 2 +-\n drivers/tty/serial/serial_base_bus.c     | 2 +-\n drivers/usb/gadget/udc/aspeed-vhub/dev.c | 2 +-\n include/linux/device.h                   | 7 ++++---\n 12 files changed, 17 insertions(+), 16 deletions(-)","diff":"diff --git a/drivers/base/core.c b/drivers/base/core.c\nindex 531f02a5469a..f12f3b53b4d0 100644\n--- a/drivers/base/core.c\n+++ b/drivers/base/core.c\n@@ -5281,7 +5281,7 @@ void device_set_of_node_from_dev(struct device *dev, const struct device *dev2)\n {\n \tof_node_put(dev->of_node);\n \tdev->of_node = of_node_get(dev2->of_node);\n-\tdev->of_node_reused = true;\n+\tdev_set_of_node_reused(dev);\n }\n EXPORT_SYMBOL_GPL(device_set_of_node_from_dev);\n \ndiff --git a/drivers/base/pinctrl.c b/drivers/base/pinctrl.c\nindex 6e250272c843..0bbc83231234 100644\n--- a/drivers/base/pinctrl.c\n+++ b/drivers/base/pinctrl.c\n@@ -24,7 +24,7 @@ int pinctrl_bind_pins(struct device *dev)\n {\n \tint ret;\n \n-\tif (dev->of_node_reused)\n+\tif (dev_of_node_reused(dev))\n \t\treturn 0;\n \n \tdev->pins = devm_kzalloc(dev, sizeof(*(dev->pins)), GFP_KERNEL);\ndiff --git a/drivers/base/platform.c b/drivers/base/platform.c\nindex d44591d52e36..199e6fb25770 100644\n--- a/drivers/base/platform.c\n+++ b/drivers/base/platform.c\n@@ -856,7 +856,7 @@ struct platform_device *platform_device_register_full(\n \tpdev->dev.parent = pdevinfo->parent;\n \tpdev->dev.fwnode = pdevinfo->fwnode;\n \tpdev->dev.of_node = of_node_get(to_of_node(pdev->dev.fwnode));\n-\tpdev->dev.of_node_reused = pdevinfo->of_node_reused;\n+\tdev_assign_of_node_reused(&pdev->dev, pdevinfo->of_node_reused);\n \n \tif (pdevinfo->dma_mask) {\n \t\tpdev->platform_dma_mask = pdevinfo->dma_mask;\ndiff --git a/drivers/net/pcs/pcs-xpcs-plat.c b/drivers/net/pcs/pcs-xpcs-plat.c\nindex b8c48f9effbf..f4b1b8246ce9 100644\n--- a/drivers/net/pcs/pcs-xpcs-plat.c\n+++ b/drivers/net/pcs/pcs-xpcs-plat.c\n@@ -349,7 +349,7 @@ static int xpcs_plat_init_dev(struct dw_xpcs_plat *pxpcs)\n \t * up later. Make sure DD-core is aware of the OF-node being re-used.\n \t */\n \tdevice_set_node(&mdiodev->dev, fwnode_handle_get(dev_fwnode(dev)));\n-\tmdiodev->dev.of_node_reused = true;\n+\tdev_set_of_node_reused(&mdiodev->dev);\n \n \t/* Pass the data further so the DW XPCS driver core could use it */\n \tmdiodev->dev.platform_data = (void *)device_get_match_data(dev);\ndiff --git a/drivers/of/device.c b/drivers/of/device.c\nindex f7e75e527667..be4e1584e0af 100644\n--- a/drivers/of/device.c\n+++ b/drivers/of/device.c\n@@ -26,7 +26,7 @@\n const struct of_device_id *of_match_device(const struct of_device_id *matches,\n \t\t\t\t\t   const struct device *dev)\n {\n-\tif (!matches || !dev->of_node || dev->of_node_reused)\n+\tif (!matches || !dev->of_node || dev_of_node_reused(dev))\n \t\treturn NULL;\n \treturn of_match_node(matches, dev->of_node);\n }\n@@ -192,7 +192,7 @@ ssize_t of_device_modalias(struct device *dev, char *str, ssize_t len)\n {\n \tssize_t sl;\n \n-\tif (!dev || !dev->of_node || dev->of_node_reused)\n+\tif (!dev || !dev->of_node || dev_of_node_reused(dev))\n \t\treturn -ENODEV;\n \n \tsl = of_modalias(dev->of_node, str, len - 2);\n@@ -254,7 +254,7 @@ int of_device_uevent_modalias(const struct device *dev, struct kobj_uevent_env *\n {\n \tint sl;\n \n-\tif ((!dev) || (!dev->of_node) || dev->of_node_reused)\n+\tif ((!dev) || (!dev->of_node) || dev_of_node_reused(dev))\n \t\treturn -ENODEV;\n \n \t/* Devicetree modalias is tricky, we add it in 2 steps */\ndiff --git a/drivers/pci/of.c b/drivers/pci/of.c\nindex 9f8eb5df279e..1f9b669abdb0 100644\n--- a/drivers/pci/of.c\n+++ b/drivers/pci/of.c\n@@ -38,7 +38,7 @@ int pci_set_of_node(struct pci_dev *dev)\n \tstruct device *pdev __free(put_device) =\n \t\tbus_find_device_by_of_node(&platform_bus_type, node);\n \tif (pdev)\n-\t\tdev->bus->dev.of_node_reused = true;\n+\t\tdev_set_of_node_reused(&dev->bus->dev);\n \n \tdevice_set_node(&dev->dev, of_fwnode_handle(no_free_ptr(node)));\n \treturn 0;\ndiff --git a/drivers/pci/pwrctrl/core.c b/drivers/pci/pwrctrl/core.c\nindex 7754baed67f2..72963a92362a 100644\n--- a/drivers/pci/pwrctrl/core.c\n+++ b/drivers/pci/pwrctrl/core.c\n@@ -39,7 +39,7 @@ static int pci_pwrctrl_notify(struct notifier_block *nb, unsigned long action,\n \t\t * If we got here then the PCI device is the second after the\n \t\t * power control platform device. Mark its OF node as reused.\n \t\t */\n-\t\tdev->of_node_reused = true;\n+\t\tdev_set_of_node_reused(dev);\n \t\tbreak;\n \t}\n \ndiff --git a/drivers/regulator/bq257xx-regulator.c b/drivers/regulator/bq257xx-regulator.c\nindex dab8f1ab4450..40e0f1a7ae81 100644\n--- a/drivers/regulator/bq257xx-regulator.c\n+++ b/drivers/regulator/bq257xx-regulator.c\n@@ -143,7 +143,7 @@ static int bq257xx_regulator_probe(struct platform_device *pdev)\n \tstruct regulator_config cfg = {};\n \n \tpdev->dev.of_node = pdev->dev.parent->of_node;\n-\tpdev->dev.of_node_reused = true;\n+\tdev_set_of_node_reused(&pdev->dev);\n \n \tpdata = devm_kzalloc(&pdev->dev, sizeof(struct bq257xx_reg_data), GFP_KERNEL);\n \tif (!pdata)\ndiff --git a/drivers/regulator/rk808-regulator.c b/drivers/regulator/rk808-regulator.c\nindex e66408f23bb6..8297d31cde9f 100644\n--- a/drivers/regulator/rk808-regulator.c\n+++ b/drivers/regulator/rk808-regulator.c\n@@ -2115,7 +2115,7 @@ static int rk808_regulator_probe(struct platform_device *pdev)\n \tint ret, i, nregulators;\n \n \tpdev->dev.of_node = pdev->dev.parent->of_node;\n-\tpdev->dev.of_node_reused = true;\n+\tdev_set_of_node_reused(&pdev->dev);\n \n \tregmap = dev_get_regmap(pdev->dev.parent, NULL);\n \tif (!regmap)\ndiff --git a/drivers/tty/serial/serial_base_bus.c b/drivers/tty/serial/serial_base_bus.c\nindex a12935f6b992..5f23284a8778 100644\n--- a/drivers/tty/serial/serial_base_bus.c\n+++ b/drivers/tty/serial/serial_base_bus.c\n@@ -74,7 +74,7 @@ static int serial_base_device_init(struct uart_port *port,\n \tdev->parent = parent_dev;\n \tdev->bus = &serial_base_bus_type;\n \tdev->release = release;\n-\tdev->of_node_reused = true;\n+\tdev_set_of_node_reused(dev);\n \n \tdevice_set_node(dev, fwnode_handle_get(dev_fwnode(parent_dev)));\n \ndiff --git a/drivers/usb/gadget/udc/aspeed-vhub/dev.c b/drivers/usb/gadget/udc/aspeed-vhub/dev.c\nindex 2ecd049dacc2..8b9449d16324 100644\n--- a/drivers/usb/gadget/udc/aspeed-vhub/dev.c\n+++ b/drivers/usb/gadget/udc/aspeed-vhub/dev.c\n@@ -593,7 +593,7 @@ int ast_vhub_init_dev(struct ast_vhub *vhub, unsigned int idx)\n \t\td->gadget.max_speed = USB_SPEED_HIGH;\n \td->gadget.speed = USB_SPEED_UNKNOWN;\n \td->gadget.dev.of_node = vhub->pdev->dev.of_node;\n-\td->gadget.dev.of_node_reused = true;\n+\tdev_set_of_node_reused(&d->gadget.dev);\n \n \trc = usb_add_gadget_udc(d->port_dev, &d->gadget);\n \tif (rc != 0)\ndiff --git a/include/linux/device.h b/include/linux/device.h\nindex fca986cef2ed..8132aab17e04 100644\n--- a/include/linux/device.h\n+++ b/include/linux/device.h\n@@ -483,6 +483,8 @@ struct device_physical_location {\n  *\t\tdriver/bus sync_state() callback.\n  * @DEV_FLAG_DMA_COHERENT: This particular device is dma coherent, even if the\n  *\t\tarchitecture supports non-coherent devices.\n+ * @DEV_FLAG_OF_NODE_REUSED: Set if the device-tree node is shared with an\n+ *\t\tancestor device.\n  */\n enum struct_device_flags {\n \tDEV_FLAG_READY_TO_PROBE = 0,\n@@ -492,6 +494,7 @@ enum struct_device_flags {\n \tDEV_FLAG_DMA_OPS_BYPASS = 4,\n \tDEV_FLAG_STATE_SYNCED = 5,\n \tDEV_FLAG_DMA_COHERENT = 6,\n+\tDEV_FLAG_OF_NODE_REUSED = 7,\n \n \tDEV_FLAG_COUNT\n };\n@@ -573,8 +576,6 @@ enum struct_device_flags {\n  *\n  * @offline_disabled: If set, the device is permanently online.\n  * @offline:\tSet after successful invocation of bus type's .offline().\n- * @of_node_reused: Set if the device-tree node is shared with an ancestor\n- *              device.\n  * @flags:\tDEV_FLAG_XXX flags. Use atomic bitfield operations to modify.\n  *\n  * At the lowest level, every device in a Linux system is represented by an\n@@ -681,7 +682,6 @@ struct device {\n \n \tbool\t\t\toffline_disabled:1;\n \tbool\t\t\toffline:1;\n-\tbool\t\t\tof_node_reused:1;\n \n \tDECLARE_BITMAP(flags, DEV_FLAG_COUNT);\n };\n@@ -715,6 +715,7 @@ __create_dev_flag_accessors(dma_skip_sync, DEV_FLAG_DMA_SKIP_SYNC);\n __create_dev_flag_accessors(dma_ops_bypass, DEV_FLAG_DMA_OPS_BYPASS);\n __create_dev_flag_accessors(state_synced, DEV_FLAG_STATE_SYNCED);\n __create_dev_flag_accessors(dma_coherent, DEV_FLAG_DMA_COHERENT);\n+__create_dev_flag_accessors(of_node_reused, DEV_FLAG_OF_NODE_REUSED);\n \n /**\n  * struct device_link - Device link representation.\n","prefixes":["v4","8/9"]}