summaryrefslogtreecommitdiffstats
path: root/include/net/irda
diff options
context:
space:
mode:
authorG. Liakhovetski <gl@dsa-ac.de>2007-06-09 04:15:17 +0200
committerDavid S. Miller <davem@davemloft.net>2007-06-09 04:15:17 +0200
commitc0cfe7faa12f189ef1024fce5a710791d0062355 (patch)
treee3f6e22de451d8d679235f8adea313a25c5de497 /include/net/irda
parentMerge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/ne... (diff)
downloadlinux-c0cfe7faa12f189ef1024fce5a710791d0062355.tar.xz
linux-c0cfe7faa12f189ef1024fce5a710791d0062355.zip
[IrDA]: Fix Rx/Tx path race.
From: G. Liakhovetski <gl@dsa-ac.de> We need to switch to NRM _before_ sending the final packet otherwise we might hit a race condition where we get the first packet from the peer while we're still in LAP_XMIT_P. Signed-off-by: Samuel Ortiz <samuel@sortiz.org> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net/irda')
-rw-r--r--include/net/irda/irlap.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/include/net/irda/irlap.h b/include/net/irda/irlap.h
index f0248fb8e196..a3d370efb903 100644
--- a/include/net/irda/irlap.h
+++ b/include/net/irda/irlap.h
@@ -289,4 +289,21 @@ static inline void irlap_clear_disconnect(struct irlap_cb *self)
self->disconnect_pending = FALSE;
}
+/*
+ * Function irlap_next_state (self, state)
+ *
+ * Switches state and provides debug information
+ *
+ */
+static inline void irlap_next_state(struct irlap_cb *self, IRLAP_STATE state)
+{
+ /*
+ if (!self || self->magic != LAP_MAGIC)
+ return;
+
+ IRDA_DEBUG(4, "next LAP state = %s\n", irlap_state[state]);
+ */
+ self->state = state;
+}
+
#endif