From: Greg KH <greg-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
To: Laszlo Papp <lpapp-RoXCvvDuEio@public.gmane.org>
Cc: linux-serial-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: g_serial hangs on write when the cable is disconnected
Date: Wed, 5 Aug 2015 09:29:23 -0700 [thread overview]
Message-ID: <20150805162923.GC21870@kroah.com> (raw)
In-Reply-To: <CAOMwXhM7TNZAGOUAC=gcwjqTz8y7FGs0FRbJb4SQO+VfbzYJJA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
On Wed, Aug 05, 2015 at 04:40:21PM +0100, Laszlo Papp wrote:
> On Wed, Aug 5, 2015 at 3:56 PM, Greg KH <greg-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org> wrote:
> > On Wed, Aug 05, 2015 at 11:05:56AM +0100, Laszlo Papp wrote:
> >> Hi,
> >>
> >> The code below reproduces the issue. The code is intentionally kept
> >> small, so it deliberately does not have error checking, et al.
> >>
> >> Now, my concern is that it blocks for the write operation if the cable
> >> is disconnected. This is not inline with the /dev/ttyS* operation, for
> >> instance. They would not block if I disconnected the serial cable.
> >>
> >> Is this a bug or feature? :-) If it turns out to be a feature, is it
> >> better to use O_NONBLOCK if one does not want to use pthreads, etc?
> >>
> >> #include <sys/types.h>
> >> #include <sys/stat.h>
> >> #include <fcntl.h>
> >>
> >> int main()
> >> {
> >> const char buf[] = "Hello World!\n";
> >> int fd = open("/dev/ttyGS0", O_RDWR | O_NONBLOCK);
> >
> > This line discipline is very different from the "traditional" tty line
> > discipline, so it might not know anything about cable removals.
> >
> > good luck,
> >
> > greg k-h
> > --
>
> Thank you for your prompt reply.
>
> Wow, I managed to mess it up in my original email! So, this code above
> made it working, but without O_NONBLOCK, it was not working. Using
> O_NONBLOCK is my current nasty workaround. As you are indicating it,
> this does not quite feel right, does it! I am not sure what the right
> thing would be to do in order to get write non-blocking for g_serial.
> I hope that someone with more knowledge about it than me could help
> out!
I doubt the O_NONBLOCK setting does anything, this is a character
device, with a very specific line discipline that works in a very
specific way and assumes you know exactly how to talk to it and
communicate with it properly.
Why not look at some examples of userspace code that uses this
connection properly to see how they do it?
good luck,
greg k-h
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2015-08-05 16:29 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-08-05 10:05 g_serial hangs on write when the cable is disconnected Laszlo Papp
[not found] ` <CAOMwXhNwVKCK1+-q+fAgMc0ebpremXd+S1kUvZ9Ank-5BTMLCA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-08-05 14:56 ` Greg KH
[not found] ` <20150805145627.GA610-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2015-08-05 15:40 ` Laszlo Papp
[not found] ` <CAOMwXhM7TNZAGOUAC=gcwjqTz8y7FGs0FRbJb4SQO+VfbzYJJA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-08-05 16:29 ` Greg KH [this message]
[not found] ` <20150805162923.GC21870-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2015-08-05 17:09 ` Peter Stuge
[not found] ` <20150805170927.20219.qmail-Y+HMSxxDrH8@public.gmane.org>
2015-08-05 17:26 ` Greg KH
[not found] ` <20150805172640.GB25008-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2015-08-05 18:15 ` Alan Stern
[not found] ` <Pine.LNX.4.44L0.1508051411090.1713-100000-IYeN2dnnYyZXsRXLowluHWD2FQJk+8+b@public.gmane.org>
2015-08-06 6:05 ` Laszlo Papp
[not found] ` <CAOMwXhNPi-5iF7BDnb0FTCA885yYJd_UdZyU2RtUL13gw08Z4g-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-08-06 13:52 ` Alan Stern
[not found] ` <Pine.LNX.4.44L0.1508060951250.1844-100000-IYeN2dnnYyZXsRXLowluHWD2FQJk+8+b@public.gmane.org>
2015-08-06 14:03 ` Laszlo Papp
[not found] ` <CAOMwXhPpqEPV+PqM6BgJNByGCKVT4-a3s49iGdrk37VCcX+jQg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-08-06 14:15 ` Alan Stern
2015-08-06 15:16 ` Peter Hurley
[not found] ` <55C37A49.3020503-WaGBZJeGNqdsbIuE7sb01tBPR1lH4CV8@public.gmane.org>
2015-08-06 16:16 ` Laszlo Papp
2015-08-06 6:01 ` Laszlo Papp
2015-08-06 5:59 ` Laszlo Papp
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=20150805162923.GC21870@kroah.com \
--to=greg-u8xffu+wg4eavxtiumwx3w@public.gmane.org \
--cc=linux-serial-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=lpapp-RoXCvvDuEio@public.gmane.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 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.