Re: [PATCH 1/6] tty: n_gsm: Add support for serdev drivers

From: Pavel Machek
Date: Fri May 01 2020 - 16:31:35 EST


Hi!

> We can make use of serdev drivers to do simple device drivers for
> TS 27.010 chanels, and we can handle vendor specific protocols on top
> of TS 27.010 with serdev drivers.
>
> So far this has been tested with Motorola droid4 where there is a custom
> packet numbering protocol on top of TS 27.010 for the MDM6600 modem.
>
> I initially though about adding the serdev support into a separate file,
> but that will take some refactoring of n_gsm.c. And I'd like to have
> things working first. Then later on we might want to consider splitting
> n_gsm.c into three pieces for core, tty and serdev parts. And then maybe
> the serdev related parts can be just moved to live under something like
> drivers/tty/serdev/protocol/ngsm.c.
>
> Signed-off-by: Tony Lindgren <tony@xxxxxxxxxxx>

If you fix error path below, you can add:

Reviewed-by: Pavel Machek <pavel@xxxxxx>

> +static struct gsm_dlci *gsd_dlci_get(struct gsm_serdev *gsd, int line,
> + bool allocate)
> +{
> + struct gsm_mux *gsm;
> + struct gsm_dlci *dlci;
> +
> + if (!gsd || !gsd->gsm)
> + return ERR_PTR(-ENODEV);
> +
> + gsm = gsd->gsm;
> +
> + if (line < 1 || line >= 63)
> + return ERR_PTR(-EINVAL);
> +
> + mutex_lock(&gsm->mutex);
...
> + dlci = gsm_dlci_alloc(gsm, line);
> + if (!dlci) {
> + gsm = ERR_PTR(-ENOMEM);
> + goto unlock;

dlci = , or you get nice crash.

Best regards,
Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

Attachment: signature.asc
Description: PGP signature