diff -Nru a/net/irda/irlan/irlan_eth.c b/net/irda/irlan/irlan_eth.c --- a/net/irda/irlan/irlan_eth.c Fri Mar 19 11:43:53 2004 +++ b/net/irda/irlan/irlan_eth.c Fri Mar 19 11:43:53 2004 @@ -104,10 +104,10 @@ self->disconnect_reason = 0; irlan_client_wakeup(self, self->saddr, self->daddr); - /* Make sure we have a hardware address before we return, so DHCP clients gets happy */ - interruptible_sleep_on(&self->open_wait); - - return 0; + /* Make sure we have a hardware address before we return, + so DHCP clients gets happy */ + return wait_event_interruptible(self->open_wait, + !self->tsap_data->connected); } /*