diff options
| author | G. Liakhovetski <gl@dsa-ac.de> | 2007-07-03 01:56:57 -0400 |
|---|---|---|
| committer | David S. Miller <davem@sunset.davemloft.net> | 2007-07-11 01:16:52 -0400 |
| commit | 93cce3d3657bfb5d04789afcd5104f8c48700f32 (patch) | |
| tree | 03d9392aec25c4386c390d0b45f3ec3f50bd8702 /net/irda | |
| parent | 66f5e51ed5a300291b34bf3e2b1e22ac28ca3631 (diff) | |
[IrDA]: tsap init routine factorisation.
This patch extracts common code from irttp_open_tsap() and irttp_dup()
into a new function to 1) avoid code duplication, 2) help avoid
forgetting object initialization in the tsap duplication path in the
future.
Signed-off-by: G. Liakhovetski <gl@dsa-ac.de>
Signed-off-by: Samuel Ortiz <samuel@sortiz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/irda')
| -rw-r--r-- | net/irda/irttp.c | 29 |
1 files changed, 19 insertions, 10 deletions
diff --git a/net/irda/irttp.c b/net/irda/irttp.c index 7069e4a582..ce4647542b 100644 --- a/net/irda/irttp.c +++ b/net/irda/irttp.c | |||
| @@ -369,6 +369,20 @@ static int irttp_param_max_sdu_size(void *instance, irda_param_t *param, | |||
| 369 | /* Everything is happily mixed up. Waiting for next clean up - Jean II */ | 369 | /* Everything is happily mixed up. Waiting for next clean up - Jean II */ |
| 370 | 370 | ||
| 371 | /* | 371 | /* |
| 372 | * Initialization, that has to be done on new tsap | ||
| 373 | * instance allocation and on duplication | ||
| 374 | */ | ||
| 375 | static void irttp_init_tsap(struct tsap_cb *tsap) | ||
| 376 | { | ||
| 377 | spin_lock_init(&tsap->lock); | ||
| 378 | init_timer(&tsap->todo_timer); | ||
| 379 | |||
| 380 | skb_queue_head_init(&tsap->rx_queue); | ||
| 381 | skb_queue_head_init(&tsap->tx_queue); | ||
| 382 | skb_queue_head_init(&tsap->rx_fragments); | ||
| 383 | } | ||
| 384 | |||
| 385 | /* | ||
| 372 | * Function irttp_open_tsap (stsap, notify) | 386 | * Function irttp_open_tsap (stsap, notify) |
| 373 | * | 387 | * |
| 374 | * Create TSAP connection endpoint, | 388 | * Create TSAP connection endpoint, |
| @@ -395,10 +409,11 @@ struct tsap_cb *irttp_open_tsap(__u8 stsap_sel, int credit, notify_t *notify) | |||
| 395 | IRDA_DEBUG(0, "%s(), unable to kmalloc!\n", __FUNCTION__); | 409 | IRDA_DEBUG(0, "%s(), unable to kmalloc!\n", __FUNCTION__); |
| 396 | return NULL; | 410 | return NULL; |
| 397 | } | 411 | } |
| 398 | spin_lock_init(&self->lock); | 412 | |
| 413 | /* Initialize internal objects */ | ||
| 414 | irttp_init_tsap(self); | ||
| 399 | 415 | ||
| 400 | /* Initialise todo timer */ | 416 | /* Initialise todo timer */ |
| 401 | init_timer(&self->todo_timer); | ||
| 402 | self->todo_timer.data = (unsigned long) self; | 417 | self->todo_timer.data = (unsigned long) self; |
| 403 | self->todo_timer.function = &irttp_todo_expired; | 418 | self->todo_timer.function = &irttp_todo_expired; |
| 404 | 419 | ||
| @@ -418,9 +433,6 @@ struct tsap_cb *irttp_open_tsap(__u8 stsap_sel, int credit, notify_t *notify) | |||
| 418 | self->magic = TTP_TSAP_MAGIC; | 433 | self->magic = TTP_TSAP_MAGIC; |
| 419 | self->connected = FALSE; | 434 | self->connected = FALSE; |
| 420 | 435 | ||
| 421 | skb_queue_head_init(&self->rx_queue); | ||
| 422 | skb_queue_head_init(&self->tx_queue); | ||
| 423 | skb_queue_head_init(&self->rx_fragments); | ||
| 424 | /* | 436 | /* |
| 425 | * Create LSAP at IrLMP layer | 437 | * Create LSAP at IrLMP layer |
| 426 | */ | 438 | */ |
| @@ -1455,12 +1467,9 @@ struct tsap_cb *irttp_dup(struct tsap_cb *orig, void *instance) | |||
| 1455 | 1467 | ||
| 1456 | /* Not everything should be copied */ | 1468 | /* Not everything should be copied */ |
| 1457 | new->notify.instance = instance; | 1469 | new->notify.instance = instance; |
| 1458 | spin_lock_init(&new->lock); | ||
| 1459 | init_timer(&new->todo_timer); | ||
| 1460 | 1470 | ||
| 1461 | skb_queue_head_init(&new->rx_queue); | 1471 | /* Initialize internal objects */ |
| 1462 | skb_queue_head_init(&new->tx_queue); | 1472 | irttp_init_tsap(new); |
| 1463 | skb_queue_head_init(&new->rx_fragments); | ||
| 1464 | 1473 | ||
| 1465 | /* This is locked */ | 1474 | /* This is locked */ |
| 1466 | hashbin_insert(irttp->tsaps, (irda_queue_t *) new, (long) new, NULL); | 1475 | hashbin_insert(irttp->tsaps, (irda_queue_t *) new, (long) new, NULL); |
