Re: Linux 2.6.0

From: Martin Diehl
Date: Thu Dec 18 2003 - 19:55:24 EST


On Thu, 18 Dec 2003, Jean Tourrilhes wrote:

> > drivers/net/irda/
> > ~~~~~~~~~~~~~~~~~
> >
> > o dongle drivers need to be converted to sir-dev
>
> In (slow) progress ; tekram-sir patches on my web page.

I have converted dongle drivers on disk here. So far I was holding back
basically due to:
* 2.6.0 freeze
* neither hardware nor testers to do even basic validation
* wait for tx-lock and rawmode fixes to get applied first so we would
hopefully get some more feedback and trust in the infrastructure.

If you would like to accept it now I'd sent patches this weekend.

> > o new drivers (irtty-sir/smsc-ircc2/donauboe) need more testing
>
> In (slow) progress ; Patch for irtty-sir on my web page.

Yes, tekram-sir is reportedly working now with those patches.

> o IrCOMM disconnect race condition Oops ; todo

After some user provided helpful information off-list I found out it gets
triggered when the app doesn't close the ircomm-fd before exiting.
Just do "cat /dev/ircomm0" and kill -9 the cat to see.

Below my current experimental patch. It works for me and I've got an user
confirmation meanwhile. It's definedly an improvement and I do think it is
as safe as we can get without reworking the whole ircomm-locking...

Martin

----------------------

diff -urp linux-2.6.0-test9-bk22/net/irda/ircomm/ircomm_tty.c v2.6.0-test9-bk22/net/irda/ircomm/ircomm_tty.c
--- linux-2.6.0-test9-bk22/net/irda/ircomm/ircomm_tty.c Wed Nov 19 12:33:50 2003
+++ v2.6.0-test9-bk22/net/irda/ircomm/ircomm_tty.c Wed Nov 19 15:47:23 2003
@@ -982,6 +982,8 @@ static void ircomm_tty_shutdown(struct i
if (!(self->flags & ASYNC_INITIALIZED))
return;

+ ircomm_tty_detach_cable(self); /* first it does is deleting wd-timer! */
+
spin_lock_irqsave(&self->spinlock, flags);

del_timer(&self->watchdog_timer);
@@ -998,8 +1000,6 @@ static void ircomm_tty_shutdown(struct i
self->tx_skb = NULL;
}

- ircomm_tty_detach_cable(self);
-
if (self->ircomm) {
ircomm_close(self->ircomm);
self->ircomm = NULL;

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/