Re: [PATCH v2 0/3] USB: serial: return errors from break handling

Johan Hovold
2023-06-06T11:40:11Z

On Tue, Jun 06, 2023 at 01:18:19PM +0200, Oliver Neukum wrote:
> On 04.06.23 14:35, Johan Hovold wrote:
> > This series starts returning errors from break handling and also uses
> > that mechanism to report to user space when break signalling is not
> > supported (e.g. when device or driver support is missing).

> do you eventually want this to be done for all serial devices?
> That is does cdc-acm need something like this patch?

Looks good to me. If this turns out to confuse userspace we may have to
turn that -ENOTTY into 0 in the tty layer, but we can still use it to
avoid the unnecessary wait to "disable" the break state.

> From 16430d9f109f904b2bfbac6e43a939209b6c4bc7 Mon Sep 17 00:00:00 2001
> From: Oliver Neukum <oneukum@suse.com>
> Date: Tue, 6 Jun 2023 12:57:00 +0200
> Subject: [PATCH] usb: cdc-acm: return correct error code on unsupported break
>
> Return -ENOTTY if the device says that it doesn't support break
> so that the upper layers get error reporting right.
>
> Signed-off-by: Oliver Neukum <oneukum@suse.com>

Acked-by: Johan Hovold <johan@kernel.org>

> ---
> drivers/usb/class/cdc-acm.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/drivers/usb/class/cdc-acm.c b/drivers/usb/class/cdc-acm.c
> index 11da5fb284d0..7751f5728716 100644
> --- a/drivers/usb/class/cdc-acm.c
> +++ b/drivers/usb/class/cdc-acm.c
> @@ -892,6 +892,9 @@ static int acm_tty_break_ctl(struct tty_struct *tty, int state)
> struct acm *acm = tty->driver_data;
> int retval;
>
> + if (!(acm->ctrl_caps & USB_CDC_CAP_BRK))
> + return -ENOTTY;
> +
> retval = acm_send_break(acm, state ? 0xffff : 0);
> if (retval < 0)
> dev_dbg(&acm->control->dev,