Messages in this thread | | | Subject | Re: [PATCH 4/4] tty: n_gsm: add ioctl to map serial device to mux'ed tty | From | Jiri Slaby <> | Date | Tue, 9 Jul 2019 07:35:35 +0200 |
| |
On 08. 07. 19, 21:02, Martin Hundebøll wrote: > Guessing the base tty for a gsm0710 multiplexed serial device is not > currently possible, which makes it racy to use with multiple modems. > > Add a way to map the physical serial tty to its related mux devices > using a ioctl. ... > --- a/Documentation/serial/n_gsm.rst > +++ b/Documentation/serial/n_gsm.rst ... > @@ -58,6 +61,11 @@ Major parts of the initialization program : > c.mtu = 127; > /* set the new configuration */ > ioctl(fd, GSMIOC_SETCONF, &c); > + /* get and print base gsmtty device node */ > + ioctl(fd, GSMIOC_GETBASE, &base); > + /* the base node is used for mux control by the driver */ > + printf(first muxed line: /dev/gsmtty%i\n", base + 1);
Missing " there.
> --- a/drivers/tty/n_gsm.c > +++ b/drivers/tty/n_gsm.c ... > @@ -2623,6 +2624,11 @@ static int gsmld_ioctl(struct tty_struct *tty, struct file *file, > if (copy_from_user(&c, (void *)arg, sizeof(c))) > return -EFAULT; > return gsm_config(gsm, &c); > + case GSMIOC_GETBASE: > + base = mux_num_to_base(gsm); > + if (copy_to_user((void *)arg, &base, sizeof(base)))
put_user would be more appropriate (and easier) for an int here.
thanks, -- js suse labs
| |