From: Greg KH <greg@kroah.com>
To: Jan Kasprzak <kas@informatics.muni.cz>
Cc: linux-kernel@vger.kernel.org
Subject: Re: PPP over ttyUSB (visor.o, Treo)
Date: Wed, 10 Dec 2003 13:28:07 -0800 [thread overview]
Message-ID: <20031210212807.GA8784@kroah.com> (raw)
In-Reply-To: <20031210165540.B26394@fi.muni.cz>
On Wed, Dec 10, 2003 at 04:55:41PM +0100, Jan Kasprzak wrote:
> Hello @subscribers,
>
> does anybody have working PPP over ttyUSB device in 2.6 kernels?
> When I connect the Handspring Treo to the 2.6.0-test11 machine,
> I am able to synchronize it, but not to run PPP to it (it can work
> as modem). I am able to dial the modem connection using AT commands,
> but I am not able to run PPP over it. Firstly the chat(1) program
> complains about not being able to get terminal attributes (TCGETATTR,
> from strace output), and then pppd(8) complains about not being able
> to set terminal attributes (TCSETATTR from the strace output).
> In 2.4 the same setup works OK.
>
> Any hints? (Kernel config and other details are available
> on request). Thanks,
Can you try the patch below? I think it will fix the problem.
thanks,
greg k-h
diff -Nru a/drivers/usb/serial/usb-serial.c b/drivers/usb/serial/usb-serial.c
--- a/drivers/usb/serial/usb-serial.c Wed Dec 10 13:28:31 2003
+++ b/drivers/usb/serial/usb-serial.c Wed Dec 10 13:28:31 2003
@@ -493,12 +493,15 @@
return retval;
}
-static void __serial_close(struct usb_serial_port *port, struct file *filp)
+static void serial_close(struct tty_struct *tty, struct file * filp)
{
- if (!port->open_count) {
- dbg ("%s - port not opened", __FUNCTION__);
+ struct usb_serial_port *port = (struct usb_serial_port *) tty->driver_data;
+ struct usb_serial *serial = get_usb_serial (port, __FUNCTION__);
+
+ if (!serial)
return;
- }
+
+ dbg("%s - port %d", __FUNCTION__, port->number);
--port->open_count;
if (port->open_count <= 0) {
@@ -506,30 +509,18 @@
* port is being closed by the last owner */
port->serial->type->close(port, filp);
port->open_count = 0;
+
+ if (port->tty) {
+ if (port->tty->driver_data)
+ port->tty->driver_data = NULL;
+ port->tty = NULL;
+ }
}
module_put(port->serial->type->owner);
kobject_put(&port->serial->kobj);
}
-static void serial_close(struct tty_struct *tty, struct file * filp)
-{
- struct usb_serial_port *port = (struct usb_serial_port *) tty->driver_data;
- struct usb_serial *serial = get_usb_serial (port, __FUNCTION__);
-
- if (!serial)
- return;
-
- dbg("%s - port %d", __FUNCTION__, port->number);
-
- /* if disconnect beat us to the punch here, there's nothing to do */
- if (tty && tty->driver_data) {
- __serial_close(port, filp);
- tty->driver_data = NULL;
- }
- port->tty = NULL;
-}
-
static int serial_write (struct tty_struct * tty, int from_user, const unsigned char *buf, int count)
{
struct usb_serial_port *port = (struct usb_serial_port *) tty->driver_data;
@@ -848,19 +839,6 @@
dbg ("%s - %s", __FUNCTION__, kobj->name);
serial = to_usb_serial(kobj);
-
- /* fail all future close/read/write/ioctl/etc calls */
- for (i = 0; i < serial->num_ports; ++i) {
- port = serial->port[i];
- if (port->tty != NULL) {
- port->tty->driver_data = NULL;
- while (port->open_count > 0) {
- __serial_close(port, NULL);
- }
- port->tty = NULL;
- }
- }
-
serial_shutdown (serial);
/* return the minor range that this device had */
@@ -1242,7 +1220,7 @@
/* register all of the individual ports with the driver core */
for (i = 0; i < num_ports; ++i) {
port = serial->port[i];
- port->dev.parent = &serial->dev->dev;
+ port->dev.parent = &interface->dev;
port->dev.driver = NULL;
port->dev.bus = &usb_serial_bus_type;
port->dev.release = &port_release;
next prev parent reply other threads:[~2003-12-10 21:48 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-12-10 15:55 PPP over ttyUSB (visor.o, Treo) Jan Kasprzak
2003-12-10 18:12 ` Stian Jordet
2003-12-10 21:28 ` Greg KH [this message]
2003-12-11 1:22 ` Stian Jordet
2003-12-11 3:44 ` Stian Jordet
2003-12-11 6:44 ` Greg KH
2003-12-11 14:23 ` Stian Jordet
2003-12-11 14:53 ` Stian Jordet
2003-12-12 21:15 ` Greg KH
2003-12-13 0:04 ` Stian Jordet
2003-12-13 0:12 ` Greg KH
2003-12-11 13:25 ` Jan Kasprzak
2003-12-12 21:16 ` Greg KH
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=20031210212807.GA8784@kroah.com \
--to=greg@kroah.com \
--cc=kas@informatics.muni.cz \
--cc=linux-kernel@vger.kernel.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.