diff options
Diffstat (limited to 'net/lapb/lapb_timer.c')
| -rw-r--r-- | net/lapb/lapb_timer.c | 11 | 
1 files changed, 9 insertions, 2 deletions
| diff --git a/net/lapb/lapb_timer.c b/net/lapb/lapb_timer.c index 8f5b17001a07..baa247fe4ed0 100644 --- a/net/lapb/lapb_timer.c +++ b/net/lapb/lapb_timer.c @@ -85,11 +85,18 @@ static void lapb_t1timer_expiry(struct timer_list *t)  	switch (lapb->state) {  		/* -		 *	If we are a DCE, keep going DM .. DM .. DM +		 *	If we are a DCE, send DM up to N2 times, then switch to +		 *	STATE_1 and send SABM(E).  		 */  		case LAPB_STATE_0: -			if (lapb->mode & LAPB_DCE) +			if (lapb->mode & LAPB_DCE && +			    lapb->n2count != lapb->n2) { +				lapb->n2count++;  				lapb_send_control(lapb, LAPB_DM, LAPB_POLLOFF, LAPB_RESPONSE); +			} else { +				lapb->state = LAPB_STATE_1; +				lapb_establish_data_link(lapb); +			}  			break;  		/* | 
