Hi. The following patch fixes an interrupt flag bug in irtty.c as per the stanford team's report way back. Applies against 224-ac18. --- linux-244-ac18-clean/drivers/net/irda/irtty.c Sat May 19 20:59:17 2001 +++ linux-244-ac18/drivers/net/irda/irtty.c Sun May 27 21:56:14 2001 @@ -971,13 +971,17 @@ switch (cmd) { case SIOCSBANDWIDTH: /* Set bandwidth */ if (!capable(CAP_NET_ADMIN)) - return -EPERM; - irda_task_execute(self, irtty_change_speed, NULL, NULL, - (void *) irq->ifr_baudrate); + ret = -EPERM; + else + irda_task_execute(self, irtty_change_speed, NULL, NULL, + (void *) irq->ifr_baudrate); break; case SIOCSDONGLE: /* Set dongle */ - if (!capable(CAP_NET_ADMIN)) - return -EPERM; + if (!capable(CAP_NET_ADMIN)) { + ret = -EPERM; + break; + } + /* Initialize dongle */ dongle = irda_device_dongle_init(dev, irq->ifr_dongle); if (!dongle) @@ -999,21 +1003,24 @@ break; case SIOCSMEDIABUSY: /* Set media busy */ if (!capable(CAP_NET_ADMIN)) - return -EPERM; - irda_device_set_media_busy(self->netdev, TRUE); + ret = -EPERM; + else + irda_device_set_media_busy(self->netdev, TRUE); break; case SIOCGRECEIVING: /* Check if we are receiving right now */ irq->ifr_receiving = irtty_is_receiving(self); break; case SIOCSDTRRTS: if (!capable(CAP_NET_ADMIN)) - return -EPERM; - irtty_set_dtr_rts(dev, irq->ifr_dtr, irq->ifr_rts); + ret = -EPERM; + else + irtty_set_dtr_rts(dev, irq->ifr_dtr, irq->ifr_rts); break; case SIOCSMODE: if (!capable(CAP_NET_ADMIN)) - return -EPERM; - irtty_set_mode(dev, irq->ifr_mode); + ret = -EPERM; + else + irtty_set_mode(dev, irq->ifr_mode); break; default: ret = -EOPNOTSUPP; -- Regards, Rasmus([EMAIL PROTECTED]) Things are more like they are now than they ever were before. -Former U.S. President Dwight D. Eisenhower - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/