* [PATCH net-next v3 0/2] Improve wwan qcdm compatibility with user-space tools
@ 2026-07-24 14:28 Daniele Palmas
2026-07-24 14:28 ` [PATCH net-next v3 1/2] net: wwan: add minimalistic IOCTls support also to QCDM port Daniele Palmas
2026-07-24 14:28 ` [PATCH net-next v3 2/2] net: wwan: add exclusive open mode capability to AT and QCDM ports Daniele Palmas
0 siblings, 2 replies; 3+ messages in thread
From: Daniele Palmas @ 2026-07-24 14:28 UTC (permalink / raw)
To: Loic Poulain, Sergey Ryazanov, Johannes Berg, Andrew Lunn,
David Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni
Cc: netdev, Daniele Palmas
Historically, Qualcomm diagnostic port was a serial device, so user-space
tools were developed using tty specific features. One of the most common
tool is, for example, ModemManager libqcdm, available at
https://gitlab.freedesktop.org/mobile-broadband/ModemManager
which requires tcgetattr/tcsetattr and the possibility to get exclusive
device access to properly work.
The wwan qcdm is not really a tty device, but, besides the lack of tty
functions, it behaves as a standard serial Qualcomm diagnostic port, so,
as c230035c2f2f ("net: wwan: core: implement terminal ioctls for AT port"),
this series add support for terminal ioctls also for qcdm ports and
implement the exclusive open mode feature to improve compatibility with
user-space tools.
This is an incremental change which should not affect the existing tools
using wwan which do not rely on the implemented features.
V2: fixed race condition highlighted by Sashiko at
https://sashiko.dev/#/patchset/20260717081935.2071083-1-dnlplm%40gmail.com
V3: simplified patch 2 according to Loic's comment at
https://lore.kernel.org/netdev/CAFEp6-2UiSja11A6nLKqRX8A1eE=P4euEs+fbpKZxPE8fTX2QQ@mail.gmail.com/#t
Daniele Palmas (2):
net: wwan: add minimalistic IOCTls support also to QCDM port
net: wwan: add exclusive open mode capability to AT and QCDM ports
drivers/net/wwan/wwan_core.c | 27 ++++++++++++++++++++++++++-
1 file changed, 26 insertions(+), 1 deletion(-)
--
2.43.0
^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH net-next v3 1/2] net: wwan: add minimalistic IOCTls support also to QCDM port
2026-07-24 14:28 [PATCH net-next v3 0/2] Improve wwan qcdm compatibility with user-space tools Daniele Palmas
@ 2026-07-24 14:28 ` Daniele Palmas
2026-07-24 14:28 ` [PATCH net-next v3 2/2] net: wwan: add exclusive open mode capability to AT and QCDM ports Daniele Palmas
1 sibling, 0 replies; 3+ messages in thread
From: Daniele Palmas @ 2026-07-24 14:28 UTC (permalink / raw)
To: Loic Poulain, Sergey Ryazanov, Johannes Berg, Andrew Lunn,
David Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni
Cc: netdev, Daniele Palmas
Upstream libqcdm requires IOCTLs support to work, so add the current
AT minimalistic support also to the QCDM port.
Reviewed-by: Loic Poulain <loic.poulain@oss.qualcomm.com>
Signed-off-by: Daniele Palmas <dnlplm@gmail.com>
---
drivers/net/wwan/wwan_core.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/net/wwan/wwan_core.c b/drivers/net/wwan/wwan_core.c
index ccce2ad74128..8168239e52c3 100644
--- a/drivers/net/wwan/wwan_core.c
+++ b/drivers/net/wwan/wwan_core.c
@@ -1046,7 +1046,8 @@ static long wwan_port_fops_ioctl(struct file *filp, unsigned int cmd,
struct wwan_port *port = filp->private_data;
int res;
- if (port->type == WWAN_PORT_AT) { /* AT port specific IOCTLs */
+ if (port->type == WWAN_PORT_AT || port->type == WWAN_PORT_QCDM) {
+ /* AT and QCDM port specific IOCTLs */
res = wwan_port_fops_at_ioctl(port, cmd, arg);
if (res != -ENOIOCTLCMD)
return res;
--
2.43.0
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [PATCH net-next v3 2/2] net: wwan: add exclusive open mode capability to AT and QCDM ports
2026-07-24 14:28 [PATCH net-next v3 0/2] Improve wwan qcdm compatibility with user-space tools Daniele Palmas
2026-07-24 14:28 ` [PATCH net-next v3 1/2] net: wwan: add minimalistic IOCTls support also to QCDM port Daniele Palmas
@ 2026-07-24 14:28 ` Daniele Palmas
1 sibling, 0 replies; 3+ messages in thread
From: Daniele Palmas @ 2026-07-24 14:28 UTC (permalink / raw)
To: Loic Poulain, Sergey Ryazanov, Johannes Berg, Andrew Lunn,
David Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni
Cc: netdev, Daniele Palmas
Add exclusive open mode capability to AT and QCDM ports to improve
compatibility with user-space tools using the Qualcomm diagnostic
device (e.g. libqcdm).
Signed-off-by: Daniele Palmas <dnlplm@gmail.com>
---
drivers/net/wwan/wwan_core.c | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)
diff --git a/drivers/net/wwan/wwan_core.c b/drivers/net/wwan/wwan_core.c
index 8168239e52c3..ffbcf11e4e68 100644
--- a/drivers/net/wwan/wwan_core.c
+++ b/drivers/net/wwan/wwan_core.c
@@ -42,6 +42,7 @@ static struct dentry *wwan_debugfs_dir;
/* WWAN port flags */
#define WWAN_PORT_TX_OFF 0
+#define WWAN_PORT_EXCLUSIVE 1
/**
* struct wwan_device - The structure that defines a WWAN device
@@ -748,6 +749,12 @@ static int wwan_port_op_start(struct wwan_port *port)
goto out_unlock;
}
+ if (test_bit(WWAN_PORT_EXCLUSIVE, &port->flags) &&
+ !capable(CAP_SYS_ADMIN)) {
+ ret = -EBUSY;
+ goto out_unlock;
+ }
+
/* If port is already started, don't start again */
if (!port->start_count)
ret = port->ops->start(port);
@@ -769,6 +776,7 @@ static void wwan_port_op_stop(struct wwan_port *port)
if (port->ops)
port->ops->stop(port);
skb_queue_purge(&port->rxq);
+ clear_bit(WWAN_PORT_EXCLUSIVE, &port->flags);
}
mutex_unlock(&port->ops_lock);
}
@@ -1031,6 +1039,22 @@ static long wwan_port_fops_at_ioctl(struct wwan_port *port, unsigned int cmd,
break;
}
+ case TIOCEXCL:
+ set_bit(WWAN_PORT_EXCLUSIVE, &port->flags);
+ break;
+
+ case TIOCNXCL:
+ clear_bit(WWAN_PORT_EXCLUSIVE, &port->flags);
+ break;
+
+ case TIOCGEXCL:
+ {
+ int excl = test_bit(WWAN_PORT_EXCLUSIVE, &port->flags);
+
+ ret = put_user(excl, (int __user *)arg);
+ break;
+ }
+
default:
ret = -ENOIOCTLCMD;
}
--
2.43.0
^ permalink raw reply related [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-07-24 14:32 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-24 14:28 [PATCH net-next v3 0/2] Improve wwan qcdm compatibility with user-space tools Daniele Palmas
2026-07-24 14:28 ` [PATCH net-next v3 1/2] net: wwan: add minimalistic IOCTls support also to QCDM port Daniele Palmas
2026-07-24 14:28 ` [PATCH net-next v3 2/2] net: wwan: add exclusive open mode capability to AT and QCDM ports Daniele Palmas
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.