diff options
Diffstat (limited to 'drivers/isdn/mISDN')
-rw-r--r-- | drivers/isdn/mISDN/hwchannel.c | 15 | ||||
-rw-r--r-- | drivers/isdn/mISDN/layer2.c | 2 |
2 files changed, 13 insertions, 4 deletions
diff --git a/drivers/isdn/mISDN/hwchannel.c b/drivers/isdn/mISDN/hwchannel.c index 0481a0cdf6db..e8049be552aa 100644 --- a/drivers/isdn/mISDN/hwchannel.c +++ b/drivers/isdn/mISDN/hwchannel.c | |||
@@ -114,13 +114,14 @@ mISDN_freedchannel(struct dchannel *ch) | |||
114 | } | 114 | } |
115 | EXPORT_SYMBOL(mISDN_freedchannel); | 115 | EXPORT_SYMBOL(mISDN_freedchannel); |
116 | 116 | ||
117 | int | 117 | void |
118 | mISDN_freebchannel(struct bchannel *ch) | 118 | mISDN_clear_bchannel(struct bchannel *ch) |
119 | { | 119 | { |
120 | if (ch->tx_skb) { | 120 | if (ch->tx_skb) { |
121 | dev_kfree_skb(ch->tx_skb); | 121 | dev_kfree_skb(ch->tx_skb); |
122 | ch->tx_skb = NULL; | 122 | ch->tx_skb = NULL; |
123 | } | 123 | } |
124 | ch->tx_idx = 0; | ||
124 | if (ch->rx_skb) { | 125 | if (ch->rx_skb) { |
125 | dev_kfree_skb(ch->rx_skb); | 126 | dev_kfree_skb(ch->rx_skb); |
126 | ch->rx_skb = NULL; | 127 | ch->rx_skb = NULL; |
@@ -129,6 +130,16 @@ mISDN_freebchannel(struct bchannel *ch) | |||
129 | dev_kfree_skb(ch->next_skb); | 130 | dev_kfree_skb(ch->next_skb); |
130 | ch->next_skb = NULL; | 131 | ch->next_skb = NULL; |
131 | } | 132 | } |
133 | test_and_clear_bit(FLG_TX_BUSY, &ch->Flags); | ||
134 | test_and_clear_bit(FLG_TX_NEXT, &ch->Flags); | ||
135 | test_and_clear_bit(FLG_ACTIVE, &ch->Flags); | ||
136 | } | ||
137 | EXPORT_SYMBOL(mISDN_clear_bchannel); | ||
138 | |||
139 | int | ||
140 | mISDN_freebchannel(struct bchannel *ch) | ||
141 | { | ||
142 | mISDN_clear_bchannel(ch); | ||
132 | skb_queue_purge(&ch->rqueue); | 143 | skb_queue_purge(&ch->rqueue); |
133 | ch->rcount = 0; | 144 | ch->rcount = 0; |
134 | flush_scheduled_work(); | 145 | flush_scheduled_work(); |
diff --git a/drivers/isdn/mISDN/layer2.c b/drivers/isdn/mISDN/layer2.c index 9c2589e986d6..e17f0044e0b6 100644 --- a/drivers/isdn/mISDN/layer2.c +++ b/drivers/isdn/mISDN/layer2.c | |||
@@ -1832,8 +1832,6 @@ static struct FsmNode L2FnList[] = | |||
1832 | {ST_L2_8, EV_L1_DEACTIVATE, l2_persistant_da}, | 1832 | {ST_L2_8, EV_L1_DEACTIVATE, l2_persistant_da}, |
1833 | }; | 1833 | }; |
1834 | 1834 | ||
1835 | #define L2_FN_COUNT (sizeof(L2FnList)/sizeof(struct FsmNode)) | ||
1836 | |||
1837 | static int | 1835 | static int |
1838 | ph_data_indication(struct layer2 *l2, struct mISDNhead *hh, struct sk_buff *skb) | 1836 | ph_data_indication(struct layer2 *l2, struct mISDNhead *hh, struct sk_buff *skb) |
1839 | { | 1837 | { |