From: Marc Kleine-Budde <mkl@pengutronix.de>
To: netdev@vger.kernel.org
Cc: davem@davemloft.net, kuba@kernel.org, linux-can@vger.kernel.org,
kernel@pengutronix.de, "Marc Kleine-Budde" <mkl@pengutronix.de>,
"Nicolai Buchwitz" <nb@tipi-net.de>,
"Lino Sanfilippo" <l.sanfilippo@kunbus.com>,
stable@vger.kernel.org, "Leonard Göhrs" <l.goehrs@pengutronix.de>
Subject: [PATCH net 01/15] can: dev: can_set_termination(): allow sleeping GPIOs
Date: Mon, 2 Dec 2024 09:55:35 +0100 [thread overview]
Message-ID: <20241202090040.1110280-2-mkl@pengutronix.de> (raw)
In-Reply-To: <20241202090040.1110280-1-mkl@pengutronix.de>
In commit 6e86a1543c37 ("can: dev: provide optional GPIO based
termination support") GPIO based termination support was added.
For no particular reason that patch uses gpiod_set_value() to set the
GPIO. This leads to the following warning, if the systems uses a
sleeping GPIO, i.e. behind an I2C port expander:
| WARNING: CPU: 0 PID: 379 at /drivers/gpio/gpiolib.c:3496 gpiod_set_value+0x50/0x6c
| CPU: 0 UID: 0 PID: 379 Comm: ip Not tainted 6.11.0-20241016-1 #1 823affae360cc91126e4d316d7a614a8bf86236c
Replace gpiod_set_value() by gpiod_set_value_cansleep() to allow the
use of sleeping GPIOs.
Cc: Nicolai Buchwitz <nb@tipi-net.de>
Cc: Lino Sanfilippo <l.sanfilippo@kunbus.com>
Cc: stable@vger.kernel.org
Reported-by: Leonard Göhrs <l.goehrs@pengutronix.de>
Tested-by: Leonard Göhrs <l.goehrs@pengutronix.de>
Fixes: 6e86a1543c37 ("can: dev: provide optional GPIO based termination support")
Link: https://patch.msgid.link/20241121-dev-fix-can_set_termination-v1-1-41fa6e29216d@pengutronix.de
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
---
drivers/net/can/dev/dev.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/can/dev/dev.c b/drivers/net/can/dev/dev.c
index 6792c14fd7eb..681643ab3780 100644
--- a/drivers/net/can/dev/dev.c
+++ b/drivers/net/can/dev/dev.c
@@ -468,7 +468,7 @@ static int can_set_termination(struct net_device *ndev, u16 term)
else
set = 0;
- gpiod_set_value(priv->termination_gpio, set);
+ gpiod_set_value_cansleep(priv->termination_gpio, set);
return 0;
}
base-commit: 9bb88c659673003453fd42e0ddf95c9628409094
--
2.45.2
next prev parent reply other threads:[~2024-12-02 9:00 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-12-02 8:55 [PATCH net 0/15] pull-request: can 2024-12-02 Marc Kleine-Budde
2024-12-02 8:55 ` Marc Kleine-Budde [this message]
2024-12-03 2:10 ` [PATCH net 01/15] can: dev: can_set_termination(): allow sleeping GPIOs patchwork-bot+netdevbpf
2024-12-02 8:55 ` [PATCH net 02/15] can: gs_usb: add usb endpoint address detection at driver probe step Marc Kleine-Budde
2024-12-02 8:55 ` [PATCH net 03/15] can: c_can: c_can_handle_bus_err(): update statistics if skb allocation fails Marc Kleine-Budde
2024-12-02 8:55 ` [PATCH net 04/15] can: sun4i_can: sun4i_can_err(): call can_change_state() even if cf is NULL Marc Kleine-Budde
2024-12-02 8:55 ` [PATCH net 05/15] can: hi311x: hi3110_can_ist(): fix potential use-after-free Marc Kleine-Budde
2024-12-02 8:55 ` [PATCH net 06/15] can: hi311x: hi3110_can_ist(): update state error statistics if skb allocation fails Marc Kleine-Budde
2024-12-02 8:55 ` [PATCH net 07/15] can: m_can: m_can_handle_lec_err(): fix {rx,tx}_errors statistics Marc Kleine-Budde
2024-12-02 8:55 ` [PATCH net 08/15] can: ifi_canfd: ifi_canfd_handle_lec_err(): " Marc Kleine-Budde
2024-12-02 8:55 ` [PATCH net 09/15] can: hi311x: hi3110_can_ist(): " Marc Kleine-Budde
2024-12-02 8:55 ` [PATCH net 10/15] can: sja1000: sja1000_err(): " Marc Kleine-Budde
2024-12-02 8:55 ` [PATCH net 11/15] can: sun4i_can: sun4i_can_err(): " Marc Kleine-Budde
2024-12-02 8:55 ` [PATCH net 12/15] can: ems_usb: ems_usb_rx_err(): " Marc Kleine-Budde
2024-12-02 8:55 ` [PATCH net 13/15] can: f81604: f81604_handle_can_bus_errors(): " Marc Kleine-Budde
2024-12-02 8:55 ` [PATCH net 14/15] can: mcp251xfd: mcp251xfd_get_tef_len(): work around erratum DS80000789E 6 Marc Kleine-Budde
2024-12-02 8:55 ` [PATCH net 15/15] can: j1939: j1939_session_new(): fix skb reference counting Marc Kleine-Budde
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20241202090040.1110280-2-mkl@pengutronix.de \
--to=mkl@pengutronix.de \
--cc=davem@davemloft.net \
--cc=kernel@pengutronix.de \
--cc=kuba@kernel.org \
--cc=l.goehrs@pengutronix.de \
--cc=l.sanfilippo@kunbus.com \
--cc=linux-can@vger.kernel.org \
--cc=nb@tipi-net.de \
--cc=netdev@vger.kernel.org \
--cc=stable@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox