patch-2.4.20 linux-2.4.20/net/irda/irlmp_event.c
Next file: linux-2.4.20/net/irda/irlmp_frame.c
Previous file: linux-2.4.20/net/irda/irlmp.c
Back to the patch index
Back to the overall index
- Lines: 437
- Date:
Thu Nov 28 15:53:16 2002
- Orig file:
linux-2.4.19/net/irda/irlmp_event.c
- Orig date:
Mon Feb 25 11:38:14 2002
diff -urN linux-2.4.19/net/irda/irlmp_event.c linux-2.4.20/net/irda/irlmp_event.c
@@ -121,7 +121,7 @@
IRLMP_STATE state)
{
/*
- IRDA_DEBUG(4, __FUNCTION__ "(), LMP LAP = %s\n", irlmp_state[state]);
+ IRDA_DEBUG(4, "%s(), LMP LAP = %s\n", __FUNCTION__, irlmp_state[state]);
*/
self->lap_state = state;
}
@@ -131,7 +131,7 @@
{
/*
ASSERT(self != NULL, return;);
- IRDA_DEBUG(4, __FUNCTION__ "(), LMP LSAP = %s\n", irlsap_state[state]);
+ IRDA_DEBUG(4, "%s(), LMP LSAP = %s\n", __FUNCTION__, irlsap_state[state]);
*/
self->lsap_state = state;
}
@@ -143,8 +143,8 @@
ASSERT(self != NULL, return -1;);
ASSERT(self->magic == LMP_LSAP_MAGIC, return -1;);
- IRDA_DEBUG(4, __FUNCTION__ "(), EVENT = %s, STATE = %s\n",
- irlmp_event[event], irlsap_state[ self->lsap_state]);
+ IRDA_DEBUG(4, "%s(), EVENT = %s, STATE = %s\n",
+ __FUNCTION__, irlmp_event[event], irlsap_state[ self->lsap_state]);
return (*lsap_state[self->lsap_state]) (self, event, skb);
}
@@ -161,16 +161,16 @@
ASSERT(self != NULL, return;);
ASSERT(self->magic == LMP_LAP_MAGIC, return;);
- IRDA_DEBUG(4, __FUNCTION__ "(), EVENT = %s, STATE = %s\n",
- irlmp_event[event],
- irlmp_state[self->lap_state]);
+ IRDA_DEBUG(4, "%s(), EVENT = %s, STATE = %s\n",
+ __FUNCTION__, irlmp_event[event],
+ irlmp_state[self->lap_state]);
(*lap_state[self->lap_state]) (self, event, skb);
}
void irlmp_discovery_timer_expired(void *data)
{
- IRDA_DEBUG(4, __FUNCTION__ "()\n");
+ IRDA_DEBUG(4, "%s()\n", __FUNCTION__);
/* We always cleanup the log (active & passive discovery) */
irlmp_do_expiry();
@@ -187,7 +187,7 @@
{
struct lsap_cb *self = (struct lsap_cb *) data;
- IRDA_DEBUG(2, __FUNCTION__ "()\n");
+ IRDA_DEBUG(2, "%s()\n", __FUNCTION__);
ASSERT(self != NULL, return;);
ASSERT(self->magic == LMP_LSAP_MAGIC, return;);
@@ -199,7 +199,7 @@
{
struct lap_cb *self = (struct lap_cb *) data;
- IRDA_DEBUG(2, __FUNCTION__ "()\n");
+ IRDA_DEBUG(2, "%s()\n", __FUNCTION__);
ASSERT(self != NULL, return;);
ASSERT(self->magic == LMP_LAP_MAGIC, return;);
@@ -222,7 +222,7 @@
static void irlmp_state_standby(struct lap_cb *self, IRLMP_EVENT event,
struct sk_buff *skb)
{
- IRDA_DEBUG(4, __FUNCTION__ "()\n");
+ IRDA_DEBUG(4, "%s()\n", __FUNCTION__);
ASSERT(self->irlap != NULL, return;);
switch (event) {
@@ -242,7 +242,7 @@
irlap_connect_response(self->irlap, skb);
break;
case LM_LAP_CONNECT_REQUEST:
- IRDA_DEBUG(4, __FUNCTION__ "() LS_CONNECT_REQUEST\n");
+ IRDA_DEBUG(4, "%s() LS_CONNECT_REQUEST\n", __FUNCTION__);
irlmp_next_lap_state(self, LAP_U_CONNECT);
@@ -250,14 +250,12 @@
irlap_connect_request(self->irlap, self->daddr, NULL, 0);
break;
case LM_LAP_DISCONNECT_INDICATION:
- IRDA_DEBUG(4, __FUNCTION__
- "(), Error LM_LAP_DISCONNECT_INDICATION\n");
+ IRDA_DEBUG(4, "%s(), Error LM_LAP_DISCONNECT_INDICATION\n", __FUNCTION__);
irlmp_next_lap_state(self, LAP_STANDBY);
break;
default:
- IRDA_DEBUG(0, __FUNCTION__ "(), Unknown event %s\n",
- irlmp_event[event]);
+ IRDA_DEBUG(0, "%s(), Unknown event %s\n", __FUNCTION__, irlmp_event[event]);
if (skb)
dev_kfree_skb(skb);
break;
@@ -277,7 +275,7 @@
struct lsap_cb *lsap;
struct lsap_cb *lsap_current;
- IRDA_DEBUG(2, __FUNCTION__ "(), event=%s\n", irlmp_event[event]);
+ IRDA_DEBUG(2, "%s(), event=%s\n", __FUNCTION__, irlmp_event[event]);
switch (event) {
case LM_LAP_CONNECT_INDICATION:
@@ -299,7 +297,7 @@
* the lsaps may already have gone. This avoid getting stuck
* forever in LAP_ACTIVE state - Jean II */
if (HASHBIN_GET_SIZE(self->lsaps) == 0) {
- IRDA_DEBUG(0, __FUNCTION__ "() NO LSAPs !\n");
+ IRDA_DEBUG(0, "%s() NO LSAPs !\n", __FUNCTION__);
irlmp_start_idle_timer(self, LM_IDLE_TIMEOUT);
}
break;
@@ -319,12 +317,12 @@
* the lsaps may already have gone. This avoid getting stuck
* forever in LAP_ACTIVE state - Jean II */
if (HASHBIN_GET_SIZE(self->lsaps) == 0) {
- IRDA_DEBUG(0, __FUNCTION__ "() NO LSAPs !\n");
+ IRDA_DEBUG(0, "%s() NO LSAPs !\n", __FUNCTION__);
irlmp_start_idle_timer(self, LM_IDLE_TIMEOUT);
}
break;
case LM_LAP_DISCONNECT_INDICATION:
- IRDA_DEBUG(4, __FUNCTION__ "(), LM_LAP_DISCONNECT_INDICATION\n");
+ IRDA_DEBUG(4, "%s(), LM_LAP_DISCONNECT_INDICATION\n", __FUNCTION__);
irlmp_next_lap_state(self, LAP_STANDBY);
/* Send disconnect event to all LSAPs using this link */
@@ -342,7 +340,7 @@
}
break;
case LM_LAP_DISCONNECT_REQUEST:
- IRDA_DEBUG(4, __FUNCTION__ "(), LM_LAP_DISCONNECT_REQUEST\n");
+ IRDA_DEBUG(4, "%s(), LM_LAP_DISCONNECT_REQUEST\n", __FUNCTION__);
/* One of the LSAP did timeout or was closed, if it was
* the last one, try to get out of here - Jean II */
@@ -351,8 +349,8 @@
}
break;
default:
- IRDA_DEBUG(0, __FUNCTION__ "(), Unknown event %s\n",
- irlmp_event[event]);
+ IRDA_DEBUG(0, "%s(), Unknown event %s\n",
+ __FUNCTION__, irlmp_event[event]);
if (skb)
dev_kfree_skb(skb);
break;
@@ -371,11 +369,11 @@
struct lsap_cb *lsap;
struct lsap_cb *lsap_current;
- IRDA_DEBUG(4, __FUNCTION__ "()\n");
+ IRDA_DEBUG(4, "%s()\n", __FUNCTION__);
switch (event) {
case LM_LAP_CONNECT_REQUEST:
- IRDA_DEBUG(4, __FUNCTION__ "(), LS_CONNECT_REQUEST\n");
+ IRDA_DEBUG(4, "%s(), LS_CONNECT_REQUEST\n", __FUNCTION__);
/*
* LAP connection allready active, just bounce back! Since we
@@ -459,10 +457,19 @@
LM_LAP_DISCONNECT_INDICATION,
NULL);
}
+
+ /* Force an expiry of the discovery log.
+ * Now that the LAP is free, the system may attempt to
+ * connect to another device. Unfortunately, our entries
+ * are stale. There is a small window (<3s) before the
+ * normal discovery will run and where irlmp_connect_request()
+ * can get the wrong info, so make sure things get
+ * cleaned *NOW* ;-) - Jean II */
+ irlmp_do_expiry();
break;
default:
- IRDA_DEBUG(0, __FUNCTION__ "(), Unknown event %s\n",
- irlmp_event[event]);
+ IRDA_DEBUG(0, "%s(), Unknown event %s\n",
+ __FUNCTION__, irlmp_event[event]);
if (skb)
dev_kfree_skb(skb);
break;
@@ -486,7 +493,7 @@
{
int ret = 0;
- IRDA_DEBUG(4, __FUNCTION__ "()\n");
+ IRDA_DEBUG(4, "%s()\n", __FUNCTION__);
ASSERT(self != NULL, return -1;);
ASSERT(self->magic == LMP_LSAP_MAGIC, return -1;);
@@ -498,11 +505,10 @@
break;
#endif /* CONFIG_IRDA_ULTRA */
case LM_CONNECT_REQUEST:
- IRDA_DEBUG(4, __FUNCTION__ "(), LM_CONNECT_REQUEST\n");
+ IRDA_DEBUG(4, "%s(), LM_CONNECT_REQUEST\n", __FUNCTION__);
if (self->conn_skb) {
- WARNING(__FUNCTION__
- "(), busy with another request!\n");
+ WARNING("%s(), busy with another request!\n", __FUNCTION__);
return -EBUSY;
}
self->conn_skb = skb;
@@ -516,8 +522,7 @@
break;
case LM_CONNECT_INDICATION:
if (self->conn_skb) {
- WARNING(__FUNCTION__
- "(), busy with another request!\n");
+ WARNING("%s(), busy with another request!\n", __FUNCTION__);
return -EBUSY;
}
self->conn_skb = skb;
@@ -540,8 +545,8 @@
irlmp_start_watchdog_timer(self, 1*HZ);
break;
default:
- IRDA_DEBUG(2, __FUNCTION__ "(), Unknown event %s\n",
- irlmp_event[event]);
+ IRDA_DEBUG(2, "%s(), Unknown event %s\n",
+ __FUNCTION__, irlmp_event[event]);
if (skb)
dev_kfree_skb(skb);
break;
@@ -561,7 +566,7 @@
struct lsap_cb *lsap;
int ret = 0;
- IRDA_DEBUG(4, __FUNCTION__ "()\n");
+ IRDA_DEBUG(4, "%s()\n", __FUNCTION__);
ASSERT(self != NULL, return -1;);
ASSERT(self->magic == LMP_LSAP_MAGIC, return -1;);
@@ -592,15 +597,15 @@
case LM_WATCHDOG_TIMEOUT:
/* May happen, who knows...
* Jean II */
- IRDA_DEBUG(0, __FUNCTION__ "() WATCHDOG_TIMEOUT!\n");
+ IRDA_DEBUG(0, "%s() WATCHDOG_TIMEOUT!\n", __FUNCTION__);
/* Disconnect, get out... - Jean II */
self->dlsap_sel = LSAP_ANY;
irlmp_next_lsap_state(self, LSAP_DISCONNECTED);
break;
default:
- IRDA_DEBUG(0, __FUNCTION__ "(), Unknown event %s\n",
- irlmp_event[event]);
+ IRDA_DEBUG(0, "%s(), Unknown event %s\n",
+ __FUNCTION__, irlmp_event[event]);
if (skb)
dev_kfree_skb(skb);
break;
@@ -619,7 +624,7 @@
{
int ret = 0;
- IRDA_DEBUG(4, __FUNCTION__ "()\n");
+ IRDA_DEBUG(4, "%s()\n", __FUNCTION__);
ASSERT(self != NULL, return -1;);
ASSERT(self->magic == LMP_LSAP_MAGIC, return -1;);
@@ -629,17 +634,17 @@
/* Keep state */
break;
case LM_CONNECT_RESPONSE:
- IRDA_DEBUG(0, __FUNCTION__ "(), LM_CONNECT_RESPONSE, "
- "no indication issued yet\n");
+ IRDA_DEBUG(0, "%s(), LM_CONNECT_RESPONSE, "
+ "no indication issued yet\n", __FUNCTION__);
/* Keep state */
break;
case LM_DISCONNECT_REQUEST:
- IRDA_DEBUG(0, __FUNCTION__ "(), LM_DISCONNECT_REQUEST, "
- "not yet bound to IrLAP connection\n");
+ IRDA_DEBUG(0, "%s(), LM_DISCONNECT_REQUEST, "
+ "not yet bound to IrLAP connection\n", __FUNCTION__);
/* Keep state */
break;
case LM_LAP_CONNECT_CONFIRM:
- IRDA_DEBUG(4, __FUNCTION__ "(), LS_CONNECT_CONFIRM\n");
+ IRDA_DEBUG(4, "%s(), LS_CONNECT_CONFIRM\n", __FUNCTION__);
irlmp_next_lsap_state(self, LSAP_CONNECT);
skb = self->conn_skb;
@@ -651,7 +656,7 @@
/* Will happen in some rare cases because of a race condition.
* Just make sure we don't stay there forever...
* Jean II */
- IRDA_DEBUG(0, __FUNCTION__ "() WATCHDOG_TIMEOUT!\n");
+ IRDA_DEBUG(0, "%s() WATCHDOG_TIMEOUT!\n", __FUNCTION__);
/* Go back to disconnected mode, keep the socket waiting */
self->dlsap_sel = LSAP_ANY;
@@ -661,8 +666,8 @@
irlmp_next_lsap_state(self, LSAP_DISCONNECTED);
break;
default:
- IRDA_DEBUG(0, __FUNCTION__ "Unknown event %s\n",
- irlmp_event[event]);
+ IRDA_DEBUG(0, "%s() Unknown event %s\n",
+ __FUNCTION__, irlmp_event[event]);
if (skb)
dev_kfree_skb(skb);
break;
@@ -682,7 +687,7 @@
LM_REASON reason;
int ret = 0;
- IRDA_DEBUG(4, __FUNCTION__ "()\n");
+ IRDA_DEBUG(4, "%s()\n", __FUNCTION__);
ASSERT(self != NULL, return -1;);
ASSERT(self->magic == LMP_LSAP_MAGIC, return -1;);
@@ -705,13 +710,13 @@
irlmp_udata_indication(self, skb);
break;
case LM_CONNECT_REQUEST:
- IRDA_DEBUG(0, __FUNCTION__ "(), LM_CONNECT_REQUEST, "
- "error, LSAP already connected\n");
+ IRDA_DEBUG(0, "%s(), LM_CONNECT_REQUEST, "
+ "error, LSAP already connected\n", __FUNCTION__);
/* Keep state */
break;
case LM_CONNECT_RESPONSE:
- IRDA_DEBUG(0, __FUNCTION__ "(), LM_CONNECT_RESPONSE, "
- "error, LSAP allready connected\n");
+ IRDA_DEBUG(0, "%s(), LM_CONNECT_RESPONSE, "
+ "error, LSAP allready connected\n", __FUNCTION__);
/* Keep state */
break;
case LM_DISCONNECT_REQUEST:
@@ -721,7 +726,7 @@
/* Try to close the LAP connection if its still there */
if (self->lap) {
- IRDA_DEBUG(4, __FUNCTION__ "(), trying to close IrLAP\n");
+ IRDA_DEBUG(4, "%s(), trying to close IrLAP\n", __FUNCTION__);
irlmp_do_lap_event(self->lap,
LM_LAP_DISCONNECT_REQUEST,
NULL);
@@ -745,14 +750,14 @@
reason = skb->data[3];
/* Try to close the LAP connection */
- IRDA_DEBUG(4, __FUNCTION__ "(), trying to close IrLAP\n");
+ IRDA_DEBUG(4, "%ss(), trying to close IrLAP\n", __FUNCTION__);
irlmp_do_lap_event(self->lap, LM_LAP_DISCONNECT_REQUEST, NULL);
irlmp_disconnect_indication(self, reason, skb);
break;
default:
- IRDA_DEBUG(0, __FUNCTION__ "(), Unknown event %s\n",
- irlmp_event[event]);
+ IRDA_DEBUG(0, "%s(), Unknown event %s\n",
+ __FUNCTION__, irlmp_event[event]);
if (skb)
dev_kfree_skb(skb);
break;
@@ -776,7 +781,7 @@
ASSERT(self != NULL, return -1;);
ASSERT(self->magic == LMP_LSAP_MAGIC, return -1;);
- IRDA_DEBUG(4, __FUNCTION__ "()\n");
+ IRDA_DEBUG(4, "%s()\n", __FUNCTION__);
switch (event) {
case LM_CONNECT_CONFIRM:
@@ -797,7 +802,7 @@
reason = skb->data[3];
/* Try to close the LAP connection */
- IRDA_DEBUG(4, __FUNCTION__ "(), trying to close IrLAP\n");
+ IRDA_DEBUG(4, "%s(), trying to close IrLAP\n", __FUNCTION__);
irlmp_do_lap_event(self->lap, LM_LAP_DISCONNECT_REQUEST, NULL);
irlmp_disconnect_indication(self, reason, skb);
@@ -815,7 +820,7 @@
irlmp_disconnect_indication(self, reason, skb);
break;
case LM_WATCHDOG_TIMEOUT:
- IRDA_DEBUG(0, __FUNCTION__ "() WATCHDOG_TIMEOUT!\n");
+ IRDA_DEBUG(0, "%s() WATCHDOG_TIMEOUT!\n", __FUNCTION__);
ASSERT(self->lap != NULL, return -1;);
irlmp_do_lap_event(self->lap, LM_LAP_DISCONNECT_REQUEST, NULL);
@@ -824,8 +829,8 @@
irlmp_disconnect_indication(self, LM_CONNECT_FAILURE, NULL);
break;
default:
- IRDA_DEBUG(0, __FUNCTION__ "(), Unknown event %s\n",
- irlmp_event[event]);
+ IRDA_DEBUG(0, "%s(), Unknown event %s\n",
+ __FUNCTION__, irlmp_event[event]);
if (skb)
dev_kfree_skb(skb);
break;
@@ -847,7 +852,7 @@
LM_REASON reason;
int ret = 0;
- IRDA_DEBUG(4, __FUNCTION__ "()\n");
+ IRDA_DEBUG(4, "%s()\n", __FUNCTION__);
ASSERT(self != NULL, return -1;);
ASSERT(irlmp != NULL, return -1;);
@@ -865,7 +870,7 @@
irlmp_next_lsap_state(self, LSAP_SETUP);
break;
case LM_WATCHDOG_TIMEOUT:
- IRDA_DEBUG(0, __FUNCTION__ "() : WATCHDOG_TIMEOUT !\n");
+ IRDA_DEBUG(0, "%s() : WATCHDOG_TIMEOUT !\n", __FUNCTION__);
ASSERT(self->lap != NULL, return -1;);
irlmp_do_lap_event(self->lap, LM_LAP_DISCONNECT_REQUEST, NULL);
@@ -883,8 +888,8 @@
irlmp_disconnect_indication(self, reason, NULL);
break;
default:
- IRDA_DEBUG(0, __FUNCTION__ "(), Unknown event %s\n",
- irlmp_event[event]);
+ IRDA_DEBUG(0, "%s(), Unknown event %s\n",
+ __FUNCTION__, irlmp_event[event]);
if (skb)
dev_kfree_skb(skb);
break;
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)