[PATCH 2.6 IrDA] IrLAP disconnection pending race

From: Jean Tourrilhes
Date: Mon Feb 09 2004 - 20:13:55 EST


ir260_irlap_discon_pend_race.diff :
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
o [FEATURE] Don't drop IrLAP connection is we *just* received an
incomming IrLMP connection request.


diff -u -p linux/include/net/irda/irlap.d4.h linux/include/net/irda/irlap.h
--- linux/include/net/irda/irlap.d4.h Wed Jan 7 16:27:07 2004
+++ linux/include/net/irda/irlap.h Wed Jan 7 16:29:31 2004
@@ -283,4 +283,10 @@ static inline int irlap_is_primary(struc
return(ret);
}

+/* Clear a pending IrLAP disconnect. - Jean II */
+static inline void irlap_clear_disconnect(struct irlap_cb *self)
+{
+ self->disconnect_pending = FALSE;
+}
+
#endif
diff -u -p linux/net/irda/irlmp_event.d4.c linux/net/irda/irlmp_event.c
--- linux/net/irda/irlmp_event.d4.c Wed Jan 7 16:25:13 2004
+++ linux/net/irda/irlmp_event.c Wed Jan 7 16:32:08 2004
@@ -391,6 +391,14 @@ static void irlmp_state_active(struct la
IRDA_DEBUG(4, "%s(), LS_CONNECT_REQUEST\n", __FUNCTION__);

/*
+ * IrLAP may have a pending disconnect. We tried to close
+ * IrLAP, but it was postponed because the link was
+ * busy or we were still sending packets. As we now
+ * need it, make sure it stays on. Jean II
+ */
+ irlap_clear_disconnect(self->irlap);
+
+ /*
* LAP connection already active, just bounce back! Since we
* don't know which LSAP that tried to do this, we have to
* notify all LSAPs using this LAP, but that should be safe to
-
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/