diff options
| author | G. Liakhovetski <gl@dsa-ac.de> | 2007-06-08 22:15:17 -0400 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2007-06-08 22:15:17 -0400 |
| commit | c0cfe7faa12f189ef1024fce5a710791d0062355 (patch) | |
| tree | e3f6e22de451d8d679235f8adea313a25c5de497 /include/net/irda | |
| parent | 81d84a94be8085475c3585596e52b06ccbedd922 (diff) | |
[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.h | 17 |
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) | |||
| 289 | self->disconnect_pending = FALSE; | 289 | self->disconnect_pending = FALSE; |
| 290 | } | 290 | } |
| 291 | 291 | ||
| 292 | /* | ||
| 293 | * Function irlap_next_state (self, state) | ||
| 294 | * | ||
| 295 | * Switches state and provides debug information | ||
| 296 | * | ||
| 297 | */ | ||
| 298 | static inline void irlap_next_state(struct irlap_cb *self, IRLAP_STATE state) | ||
| 299 | { | ||
| 300 | /* | ||
| 301 | if (!self || self->magic != LAP_MAGIC) | ||
| 302 | return; | ||
| 303 | |||
| 304 | IRDA_DEBUG(4, "next LAP state = %s\n", irlap_state[state]); | ||
| 305 | */ | ||
| 306 | self->state = state; | ||
| 307 | } | ||
| 308 | |||
| 292 | #endif | 309 | #endif |
