diff options
Diffstat (limited to 'drivers/isdn/gigaset/interface.c')
| -rw-r--r-- | drivers/isdn/gigaset/interface.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/isdn/gigaset/interface.c b/drivers/isdn/gigaset/interface.c index 08e4c4eea14d..74fd234956c8 100644 --- a/drivers/isdn/gigaset/interface.c +++ b/drivers/isdn/gigaset/interface.c | |||
| @@ -625,7 +625,14 @@ void gigaset_if_init(struct cardstate *cs) | |||
| 625 | return; | 625 | return; |
| 626 | 626 | ||
| 627 | tasklet_init(&cs->if_wake_tasklet, &if_wake, (unsigned long) cs); | 627 | tasklet_init(&cs->if_wake_tasklet, &if_wake, (unsigned long) cs); |
| 628 | tty_register_device(drv->tty, cs->minor_index, NULL); | 628 | cs->class = tty_register_device(drv->tty, cs->minor_index, NULL); |
| 629 | |||
| 630 | if (!IS_ERR(cs->class)) | ||
| 631 | class_set_devdata(cs->class, cs); | ||
| 632 | else { | ||
| 633 | warn("could not register device to the tty subsystem"); | ||
| 634 | cs->class = NULL; | ||
| 635 | } | ||
| 629 | } | 636 | } |
| 630 | 637 | ||
| 631 | void gigaset_if_free(struct cardstate *cs) | 638 | void gigaset_if_free(struct cardstate *cs) |
| @@ -638,6 +645,7 @@ void gigaset_if_free(struct cardstate *cs) | |||
| 638 | 645 | ||
| 639 | tasklet_disable(&cs->if_wake_tasklet); | 646 | tasklet_disable(&cs->if_wake_tasklet); |
| 640 | tasklet_kill(&cs->if_wake_tasklet); | 647 | tasklet_kill(&cs->if_wake_tasklet); |
| 648 | cs->class = NULL; | ||
| 641 | tty_unregister_device(drv->tty, cs->minor_index); | 649 | tty_unregister_device(drv->tty, cs->minor_index); |
| 642 | } | 650 | } |
| 643 | 651 | ||
