From nobody Mon Feb 9 05:52:17 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 292B32F1FEA; Fri, 16 Jan 2026 08:11:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768551086; cv=none; b=m0CNhDJP+WCgDYEHD8+e3l6rSK88piadDUkHAdcIIgh7ilCETAQ0rX4H/kxHA+dxbYer+XdxxrsFblC6i0sV/n8Y+FmMrXOsfujqTKYgJ/4kBg5Omk9OyzQNZfZm00U2XXiTPTNEzui6wHEWL/zPVoctcwErw2QcCHGPf7CcUj4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768551086; c=relaxed/simple; bh=fTYVnQxEYS1t/0ZMJZL2v8EXREbfgEEsWwMOvi95LOI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Iw2riRgI0dmnrs/wjQp4NU0AtQs4Zww/DKFpD+6qoO3pdTOjsL8LKjVuBvPSgUI7izggYXAMZLeHeAj7vnWVWF/FxfSx3NUihvzucWrcW0dhIHa/kOoeIflLIm9f+0ecLM1aJfcxpOOsXJVzoC9sVtJbUSvQWb3KcH1n7pPD/TM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ZU2JTU3U; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="ZU2JTU3U" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2462DC19421; Fri, 16 Jan 2026 08:11:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1768551085; bh=fTYVnQxEYS1t/0ZMJZL2v8EXREbfgEEsWwMOvi95LOI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ZU2JTU3UikNeUg/65/kqPwX/u1kBvveAHxU438lR+3bUHn1nhxH18nRJX9nPzXrXe LDE3Y5+LEGxcbo9G8P73eTVmb4ALiGokX1r3yE6m/De5mouLJagO3yE4wp/7lJrxP1 ELB/F6VrET77PcnGz11YbVAx6CvfDzQL/h94GkPwSbqqzQw3pjC37N+HFWDE3Igdpb NG+nHOYqNGNilS4RECr6HVTDGLiAl7YWubPSEX0lSIqvLyyUFIcmOejlvUivobH3vM 1zJyrt69fPkeFgsaFG4xQEeWxGnMEbZYQujnTO1388gnjCuak+I+kAZNU+8Z8nqaMD gsUVkCUlFGnhw== From: Tzung-Bi Shih To: Benson Leung , Greg Kroah-Hartman , "Rafael J . Wysocki" , Danilo Krummrich , Bartosz Golaszewski , Linus Walleij Cc: Jonathan Corbet , Shuah Khan , linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, chrome-platform@lists.linux.dev, linux-kselftest@vger.kernel.org, tzungbi@kernel.org, Laurent Pinchart , Wolfram Sang , Simona Vetter , Dan Williams , Jason Gunthorpe , linux-gpio@vger.kernel.org Subject: [PATCH 06/23] gpiolib: Access `gpio_bus_type` in gpiochip_setup_dev() Date: Fri, 16 Jan 2026 08:10:19 +0000 Message-ID: <20260116081036.352286-7-tzungbi@kernel.org> X-Mailer: git-send-email 2.52.0.457.g6b5491de43-goog In-Reply-To: <20260116081036.352286-1-tzungbi@kernel.org> References: <20260116081036.352286-1-tzungbi@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" To make the intent clear, access `gpio_bus_type` only when it's ready in gpiochip_setup_dev(). Signed-off-by: Tzung-Bi Shih --- drivers/gpio/gpiolib.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c index 6fac59716405..3242644eebc6 100644 --- a/drivers/gpio/gpiolib.c +++ b/drivers/gpio/gpiolib.c @@ -902,6 +902,8 @@ static int gpiochip_setup_dev(struct gpio_device *gdev) struct fwnode_handle *fwnode =3D dev_fwnode(&gdev->dev); int ret; =20 + gdev->dev.bus =3D &gpio_bus_type; + /* * If fwnode doesn't belong to another device, it's safe to clear its * initialized flag. @@ -1096,7 +1098,6 @@ int gpiochip_add_data_with_key(struct gpio_chip *gc, = void *data, device_initialize(&gdev->dev); /* From this point, the .release() function cleans up gdev->dev */ gdev->dev.type =3D &gpio_dev_type; - gdev->dev.bus =3D &gpio_bus_type; gdev->dev.parent =3D gc->parent; device_set_node(&gdev->dev, gpiochip_choose_fwnode(gc)); =20 @@ -1217,8 +1218,8 @@ int gpiochip_add_data_with_key(struct gpio_chip *gc, = void *data, * we get a device node entry in sysfs under * /sys/bus/gpio/devices/gpiochipN/dev that can be used for * coldplug of device nodes and other udev business. - * We can do this only if gpiolib has been initialized. - * Otherwise, defer until later. + * We can do this only if gpiolib has been initialized + * (i.e., `gpio_bus_type` is ready). Otherwise, defer until later. */ if (gpiolib_initialized) { ret =3D gpiochip_setup_dev(gdev); --=20 2.52.0.457.g6b5491de43-goog