From nobody Thu Apr 16 10:43:14 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 AD5EC43E499; Sat, 28 Feb 2026 13:14:55 +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=1772284495; cv=none; b=g8O7f0LQU/VgnJlvmqS/e+znnYgc0mvqBaKIMZCGKHYZcQyxPGMj6YAhcc5RnLrixnKmgdYu7kP6TITk/31XsPnf3tTNMIQSp/ghYF0W5/Aqv2CrAopHW9fQnH1bYmsHVdUQ3t3aJ3vJZ4db/J8+VzNBat6wvKn99SF23QxOIO0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772284495; c=relaxed/simple; bh=qA8U8SexRG4+N0RJnGy3EmK6kVD0iSiu4oBY0ZzsegQ=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=awik+ka/UkzSK4IfUNiRoTO3U9wMGlZOpOe58aAdTIMfclmemTSNku2YE1L3TwFlvz1oY4SI8gMdVF9ls2XmawNhMWqKx9rIrsiiOq4bfQV2o2cPrmGQrwpaimoQAytOx1qHpG8veAxoPpW5JUPtGD1gOtbfFbTAOxtihCo7r74= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=GFmmrMAj; 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="GFmmrMAj" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 43166C116D0; Sat, 28 Feb 2026 13:14:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1772284495; bh=qA8U8SexRG4+N0RJnGy3EmK6kVD0iSiu4oBY0ZzsegQ=; h=From:To:Cc:Subject:Date:From; b=GFmmrMAjfk3dyBbORZGyzyxFR2GxEm3+vCJYeO3vdyE/CBh83D6iSnIAO/uJT49+2 JQRUaRt2L4xDX1gdoWpxOZE2VqjrqAchG0Sl+J5xSxSCAv2lb4mW6DIYHE9z7Q+r2K 7919WvDABaRzZrAuj1t7RqhUFOJllaz+zBkZrAAbL9hD7kme8JHTORo5CFkBeikHjj 3cSigtNXExw/AaYqCT9etNq1NKyXT6Rw/QiGS5zq5QDgXlOfdTOgBNe+1VRst6AhdP pHDaRxSiGhW5z0uJZ/0Zxmt7eUc2zyw3JXZzUd3rd6HrKpM/PJIUtw6ZCwLPsMCDMQ AgNLoYjUNdS9w== From: Tzung-Bi Shih To: Bartosz Golaszewski , Linus Walleij Cc: tzungbi@kernel.org, linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, Marek Szyprowski Subject: [PATCH] gpio: Fix lockdep warnings in gpiolib_{cdev,sysfs}_register() Date: Sat, 28 Feb 2026 21:14:30 +0800 Message-ID: <20260228131430.102388-1-tzungbi@kernel.org> X-Mailer: git-send-email 2.51.0 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" A lockdep warning is reported in gpiolib-cdev driver: WARNING: drivers/gpio/gpiolib-cdev.c:2735 at gpiolib_cdev_register+0x114/0x140, CPU#1: swapper/0/1 Modules linked in: CPU: 1 UID: 0 PID: 1 Comm: swapper/0 Not tainted 7.0.0-rc1-next-20260227-00065-g6af4b9cfeded #12259 PREEMPT Hardware name: Samsung Exynos (Flattened Device Tree) Call trace: unwind_backtrace from show_stack+0x10/0x14 show_stack from dump_stack_lvl+0x68/0x88 dump_stack_lvl from __warn+0x94/0x210 __warn from warn_slowpath_fmt+0x1b0/0x1bc warn_slowpath_fmt from gpiolib_cdev_register+0x114/0x140 gpiolib_cdev_register from gpiochip_setup_dev+0x4c/0xd0 gpiochip_setup_dev from gpiochip_add_data_with_key+0x960/0xad4 gpiochip_add_data_with_key from devm_gpiochip_add_data_with_key+0x20/0x= 5c This is because the SRCU wasn't held in gpiolib_cdev_register() when the caller is from gpiochip_add_data_with_key() instead of gpiochip_setup_devs(). gpiochip_sysfs_register() shares the similar concern. Given that both gpiolib_cdev_register() and gpiochip_sysfs_register() are only called from gpiolib but no external users. Remove the lockdep checks to fix the warnings. Reported-by: Marek Szyprowski Closes: https://lore.kernel.org/all/506ce9b3-d492-4fce-9d02-330e411911e2@sa= msung.com/ Fixes: cf674f1a0c98 ("gpio: Ensure struct gpio_chip for gpiochip_setup_dev(= )") Signed-off-by: Tzung-Bi Shih Tested-by: Marek Szyprowski --- drivers/gpio/gpiolib-cdev.c | 2 -- drivers/gpio/gpiolib-sysfs.c | 2 -- 2 files changed, 4 deletions(-) diff --git a/drivers/gpio/gpiolib-cdev.c b/drivers/gpio/gpiolib-cdev.c index 7ebdb4993a74..f36b7c06996d 100644 --- a/drivers/gpio/gpiolib-cdev.c +++ b/drivers/gpio/gpiolib-cdev.c @@ -2732,8 +2732,6 @@ int gpiolib_cdev_register(struct gpio_chip *gc, dev_t= devt) struct gpio_device *gdev =3D gc->gpiodev; int ret; =20 - lockdep_assert_held(&gdev->srcu); - cdev_init(&gdev->chrdev, &gpio_fileops); gdev->chrdev.owner =3D THIS_MODULE; gdev->dev.devt =3D MKDEV(MAJOR(devt), gdev->id); diff --git a/drivers/gpio/gpiolib-sysfs.c b/drivers/gpio/gpiolib-sysfs.c index 748a3eb1bf35..fc06b0c2881b 100644 --- a/drivers/gpio/gpiolib-sysfs.c +++ b/drivers/gpio/gpiolib-sysfs.c @@ -990,8 +990,6 @@ int gpiochip_sysfs_register(struct gpio_chip *gc) struct device *parent; int err; =20 - lockdep_assert_held(&gdev->srcu); - /* * Many systems add gpio chips for SOC support very early, * before driver model support is available. In those cases we --=20 2.51.0