diff options
Diffstat (limited to 'drivers/isdn/hisax/config.c')
-rw-r--r-- | drivers/isdn/hisax/config.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/isdn/hisax/config.c b/drivers/isdn/hisax/config.c index 785b08554fca..cede72cdbb31 100644 --- a/drivers/isdn/hisax/config.c +++ b/drivers/isdn/hisax/config.c | |||
@@ -1137,7 +1137,6 @@ static int checkcard(int cardnr, char *id, int *busy_flag, struct module *lockow | |||
1137 | cs->tx_skb = NULL; | 1137 | cs->tx_skb = NULL; |
1138 | cs->tx_cnt = 0; | 1138 | cs->tx_cnt = 0; |
1139 | cs->event = 0; | 1139 | cs->event = 0; |
1140 | cs->tqueue.data = cs; | ||
1141 | 1140 | ||
1142 | skb_queue_head_init(&cs->rq); | 1141 | skb_queue_head_init(&cs->rq); |
1143 | skb_queue_head_init(&cs->sq); | 1142 | skb_queue_head_init(&cs->sq); |
@@ -1554,7 +1553,7 @@ static void hisax_b_l2l1(struct PStack *st, int pr, void *arg); | |||
1554 | static int hisax_cardmsg(struct IsdnCardState *cs, int mt, void *arg); | 1553 | static int hisax_cardmsg(struct IsdnCardState *cs, int mt, void *arg); |
1555 | static int hisax_bc_setstack(struct PStack *st, struct BCState *bcs); | 1554 | static int hisax_bc_setstack(struct PStack *st, struct BCState *bcs); |
1556 | static void hisax_bc_close(struct BCState *bcs); | 1555 | static void hisax_bc_close(struct BCState *bcs); |
1557 | static void hisax_bh(struct IsdnCardState *cs); | 1556 | static void hisax_bh(struct work_struct *work); |
1558 | static void EChannel_proc_rcv(struct hisax_d_if *d_if); | 1557 | static void EChannel_proc_rcv(struct hisax_d_if *d_if); |
1559 | 1558 | ||
1560 | int hisax_register(struct hisax_d_if *hisax_d_if, struct hisax_b_if *b_if[], | 1559 | int hisax_register(struct hisax_d_if *hisax_d_if, struct hisax_b_if *b_if[], |
@@ -1586,7 +1585,7 @@ int hisax_register(struct hisax_d_if *hisax_d_if, struct hisax_b_if *b_if[], | |||
1586 | hisax_d_if->cs = cs; | 1585 | hisax_d_if->cs = cs; |
1587 | cs->hw.hisax_d_if = hisax_d_if; | 1586 | cs->hw.hisax_d_if = hisax_d_if; |
1588 | cs->cardmsg = hisax_cardmsg; | 1587 | cs->cardmsg = hisax_cardmsg; |
1589 | INIT_WORK(&cs->tqueue, (void *)(void *)hisax_bh, cs); | 1588 | INIT_WORK(&cs->tqueue, hisax_bh); |
1590 | cs->channel[0].d_st->l2.l2l1 = hisax_d_l2l1; | 1589 | cs->channel[0].d_st->l2.l2l1 = hisax_d_l2l1; |
1591 | for (i = 0; i < 2; i++) { | 1590 | for (i = 0; i < 2; i++) { |
1592 | cs->bcs[i].BC_SetStack = hisax_bc_setstack; | 1591 | cs->bcs[i].BC_SetStack = hisax_bc_setstack; |
@@ -1618,8 +1617,10 @@ static void hisax_sched_event(struct IsdnCardState *cs, int event) | |||
1618 | schedule_work(&cs->tqueue); | 1617 | schedule_work(&cs->tqueue); |
1619 | } | 1618 | } |
1620 | 1619 | ||
1621 | static void hisax_bh(struct IsdnCardState *cs) | 1620 | static void hisax_bh(struct work_struct *work) |
1622 | { | 1621 | { |
1622 | struct IsdnCardState *cs = | ||
1623 | container_of(work, struct IsdnCardState, tqueue); | ||
1623 | struct PStack *st; | 1624 | struct PStack *st; |
1624 | int pr; | 1625 | int pr; |
1625 | 1626 | ||