patch-2.4.17 linux/net/irda/irnet/irnet_irda.c
Next file: linux/net/irda/irsysctl.c
Previous file: linux/net/irda/irnet/irnet.h
Back to the patch index
Back to the overall index
- Lines: 58
- Date:
Fri Dec 21 16:40:33 2001
- Orig file:
linux-2.4.16/net/irda/irnet/irnet_irda.c
- Orig date:
Fri Nov 9 22:22:17 2001
diff -Naur -X /home/marcelo/lib/dontdiff linux-2.4.16/net/irda/irnet/irnet_irda.c linux/net/irda/irnet/irnet_irda.c
@@ -830,8 +830,7 @@
#endif /* STREAM_COMPAT */
/* Clean up the original one to keep it in listen state */
- server->tsap->dtsap_sel = server->tsap->lsap->dlsap_sel = LSAP_ANY;
- server->tsap->lsap->lsap_state = LSAP_DISCONNECTED;
+ irttp_listen(server->tsap);
/* Send a connection response on the new socket */
irttp_connect_response(new->tsap, new->max_sdu_size_rx, NULL);
@@ -897,8 +896,7 @@
self->saddr, self->daddr, self->rname);
/* Clean up the server to keep it in listen state */
- self->tsap->dtsap_sel = self->tsap->lsap->dlsap_sel = LSAP_ANY;
- self->tsap->lsap->lsap_state = LSAP_DISCONNECTED;
+ irttp_listen(self->tsap);
DEXIT(IRDA_SERV_TRACE, "\n");
return;
@@ -1081,7 +1079,8 @@
struct sk_buff *skb)
{
irnet_socket * self = (irnet_socket *) instance;
- int test = 0;
+ int test_open;
+ int test_connect;
DENTER(IRDA_TCB_TRACE, "(self=0x%X)\n", (unsigned int) self);
DASSERT(self != NULL, , IRDA_CB_ERROR, "Self is NULL !!!\n");
@@ -1091,23 +1090,23 @@
dev_kfree_skb(skb);
/* Prevent higher layer from accessing IrTTP */
- test = test_and_clear_bit(0, &self->ttp_open);
+ test_open = test_and_clear_bit(0, &self->ttp_open);
/* Not connecting anymore...
* (note : TSAP is open, so IAP callbacks are no longer pending...) */
- test |= test_and_clear_bit(0, &self->ttp_connect);
+ test_connect = test_and_clear_bit(0, &self->ttp_connect);
/* If both self->ttp_open and self->ttp_connect are NULL, it mean that we
* have a race condition with irda_irnet_destroy() or
* irnet_connect_indication(), so don't mess up tsap...
*/
- if(!test)
+ if(!(test_open || test_connect))
{
DERROR(IRDA_CB_ERROR, "Race condition detected...\n");
return;
}
/* If we were active, notify the control channel */
- if(test_bit(0, &self->ttp_open))
+ if(test_open)
irnet_post_event(self, IRNET_DISCONNECT_FROM,
self->saddr, self->daddr, self->rname);
else
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)