aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/isdn
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/isdn')
-rw-r--r--drivers/isdn/capi/capiutil.c2
-rw-r--r--drivers/isdn/gigaset/Kconfig2
-rw-r--r--drivers/isdn/gigaset/gigaset.h3
-rw-r--r--drivers/isdn/gigaset/usb-gigaset.c77
-rw-r--r--drivers/isdn/hardware/eicon/message.c4
-rw-r--r--drivers/isdn/hardware/mISDN/Kconfig2
-rw-r--r--drivers/isdn/hardware/mISDN/hfcpci.c2
-rw-r--r--drivers/isdn/hardware/mISDN/mISDNipac.c12
-rw-r--r--drivers/isdn/hardware/mISDN/w6692.c6
-rw-r--r--drivers/isdn/hisax/hfc4s8s_l1.c21
-rw-r--r--drivers/isdn/hisax/hfc_2bs0.c2
-rw-r--r--drivers/isdn/hisax/hfc_sx.c3
-rw-r--r--drivers/isdn/hisax/hfc_usb.c5
-rw-r--r--drivers/isdn/hisax/ipacx.c2
-rw-r--r--drivers/isdn/hisax/isdnl1.c2
-rw-r--r--drivers/isdn/hisax/isdnl3.c2
-rw-r--r--drivers/isdn/hysdn/hycapi.c2
-rw-r--r--drivers/isdn/icn/icn.c2
-rw-r--r--drivers/isdn/isdnloop/isdnloop.c64
-rw-r--r--drivers/isdn/mISDN/l1oip_codec.c6
-rw-r--r--drivers/isdn/mISDN/socket.c4
-rw-r--r--drivers/isdn/pcbit/layer2.c1
-rw-r--r--drivers/isdn/sc/init.c15
23 files changed, 104 insertions, 137 deletions
diff --git a/drivers/isdn/capi/capiutil.c b/drivers/isdn/capi/capiutil.c
index 36c1b37cea0a..9846d82eb097 100644
--- a/drivers/isdn/capi/capiutil.c
+++ b/drivers/isdn/capi/capiutil.c
@@ -201,7 +201,7 @@ static unsigned char *cpars[] =
201#define structTRcpyovl(x, y, l) memmove(y, x, l) 201#define structTRcpyovl(x, y, l) memmove(y, x, l)
202 202
203/*-------------------------------------------------------*/ 203/*-------------------------------------------------------*/
204static unsigned command_2_index(unsigned c, unsigned sc) 204static unsigned command_2_index(u8 c, u8 sc)
205{ 205{
206 if (c & 0x80) 206 if (c & 0x80)
207 c = 0x9 + (c & 0x0f); 207 c = 0x9 + (c & 0x0f);
diff --git a/drivers/isdn/gigaset/Kconfig b/drivers/isdn/gigaset/Kconfig
index dde5e09e6267..83f62b8d82b5 100644
--- a/drivers/isdn/gigaset/Kconfig
+++ b/drivers/isdn/gigaset/Kconfig
@@ -20,7 +20,7 @@ if ISDN_DRV_GIGASET
20config GIGASET_CAPI 20config GIGASET_CAPI
21 bool "Gigaset CAPI support" 21 bool "Gigaset CAPI support"
22 depends on ISDN_CAPI='y'||(ISDN_CAPI='m'&&ISDN_DRV_GIGASET='m') 22 depends on ISDN_CAPI='y'||(ISDN_CAPI='m'&&ISDN_DRV_GIGASET='m')
23 default ISDN_I4L='n' 23 default 'y'
24 help 24 help
25 Build the Gigaset driver as a CAPI 2.0 driver interfacing with 25 Build the Gigaset driver as a CAPI 2.0 driver interfacing with
26 the Kernel CAPI subsystem. To use it with the old ISDN4Linux 26 the Kernel CAPI subsystem. To use it with the old ISDN4Linux
diff --git a/drivers/isdn/gigaset/gigaset.h b/drivers/isdn/gigaset/gigaset.h
index eb63a0f7a02a..166537e2dfca 100644
--- a/drivers/isdn/gigaset/gigaset.h
+++ b/drivers/isdn/gigaset/gigaset.h
@@ -751,9 +751,6 @@ void gigaset_stop(struct cardstate *cs);
751/* Tell common.c that the driver is being unloaded. */ 751/* Tell common.c that the driver is being unloaded. */
752int gigaset_shutdown(struct cardstate *cs); 752int gigaset_shutdown(struct cardstate *cs);
753 753
754/* Tell common.c that an skb has been sent. */
755void gigaset_skb_sent(struct bc_state *bcs, struct sk_buff *skb);
756
757/* Append event to the queue. 754/* Append event to the queue.
758 * Returns NULL on failure or a pointer to the event on success. 755 * Returns NULL on failure or a pointer to the event on success.
759 * ptr must be kmalloc()ed (and not be freed by the caller). 756 * ptr must be kmalloc()ed (and not be freed by the caller).
diff --git a/drivers/isdn/gigaset/usb-gigaset.c b/drivers/isdn/gigaset/usb-gigaset.c
index a8e652dac54d..5f306e2eece5 100644
--- a/drivers/isdn/gigaset/usb-gigaset.c
+++ b/drivers/isdn/gigaset/usb-gigaset.c
@@ -293,7 +293,7 @@ static int gigaset_close_bchannel(struct bc_state *bcs)
293} 293}
294 294
295static int write_modem(struct cardstate *cs); 295static int write_modem(struct cardstate *cs);
296static int send_cb(struct cardstate *cs, struct cmdbuf_t *cb); 296static int send_cb(struct cardstate *cs);
297 297
298 298
299/* Write tasklet handler: Continue sending current skb, or send command, or 299/* Write tasklet handler: Continue sending current skb, or send command, or
@@ -303,8 +303,6 @@ static void gigaset_modem_fill(unsigned long data)
303{ 303{
304 struct cardstate *cs = (struct cardstate *) data; 304 struct cardstate *cs = (struct cardstate *) data;
305 struct bc_state *bcs = &cs->bcs[0]; /* only one channel */ 305 struct bc_state *bcs = &cs->bcs[0]; /* only one channel */
306 struct cmdbuf_t *cb;
307 int again;
308 306
309 gig_dbg(DEBUG_OUTPUT, "modem_fill"); 307 gig_dbg(DEBUG_OUTPUT, "modem_fill");
310 308
@@ -313,36 +311,32 @@ static void gigaset_modem_fill(unsigned long data)
313 return; 311 return;
314 } 312 }
315 313
316 do { 314again:
317 again = 0; 315 if (!bcs->tx_skb) { /* no skb is being sent */
318 if (!bcs->tx_skb) { /* no skb is being sent */ 316 if (cs->cmdbuf) { /* commands to send? */
319 cb = cs->cmdbuf; 317 gig_dbg(DEBUG_OUTPUT, "modem_fill: cb");
320 if (cb) { /* commands to send? */ 318 if (send_cb(cs) < 0) {
321 gig_dbg(DEBUG_OUTPUT, "modem_fill: cb");
322 if (send_cb(cs, cb) < 0) {
323 gig_dbg(DEBUG_OUTPUT,
324 "modem_fill: send_cb failed");
325 again = 1; /* no callback will be
326 called! */
327 }
328 } else { /* skbs to send? */
329 bcs->tx_skb = skb_dequeue(&bcs->squeue);
330 if (bcs->tx_skb)
331 gig_dbg(DEBUG_INTR,
332 "Dequeued skb (Adr: %lx)!",
333 (unsigned long) bcs->tx_skb);
334 }
335 }
336
337 if (bcs->tx_skb) {
338 gig_dbg(DEBUG_OUTPUT, "modem_fill: tx_skb");
339 if (write_modem(cs) < 0) {
340 gig_dbg(DEBUG_OUTPUT, 319 gig_dbg(DEBUG_OUTPUT,
341 "modem_fill: write_modem failed"); 320 "modem_fill: send_cb failed");
342 again = 1; /* no callback will be called! */ 321 goto again; /* no callback will be called! */
343 } 322 }
323 return;
344 } 324 }
345 } while (again); 325
326 /* skbs to send? */
327 bcs->tx_skb = skb_dequeue(&bcs->squeue);
328 if (!bcs->tx_skb)
329 return;
330
331 gig_dbg(DEBUG_INTR, "Dequeued skb (Adr: %lx)!",
332 (unsigned long) bcs->tx_skb);
333 }
334
335 gig_dbg(DEBUG_OUTPUT, "modem_fill: tx_skb");
336 if (write_modem(cs) < 0) {
337 gig_dbg(DEBUG_OUTPUT, "modem_fill: write_modem failed");
338 goto again; /* no callback will be called! */
339 }
346} 340}
347 341
348/* 342/*
@@ -429,9 +423,9 @@ static void gigaset_write_bulk_callback(struct urb *urb)
429 spin_unlock_irqrestore(&cs->lock, flags); 423 spin_unlock_irqrestore(&cs->lock, flags);
430} 424}
431 425
432static int send_cb(struct cardstate *cs, struct cmdbuf_t *cb) 426static int send_cb(struct cardstate *cs)
433{ 427{
434 struct cmdbuf_t *tcb; 428 struct cmdbuf_t *cb = cs->cmdbuf;
435 unsigned long flags; 429 unsigned long flags;
436 int count; 430 int count;
437 int status = -ENOENT; 431 int status = -ENOENT;
@@ -439,26 +433,27 @@ static int send_cb(struct cardstate *cs, struct cmdbuf_t *cb)
439 433
440 do { 434 do {
441 if (!cb->len) { 435 if (!cb->len) {
442 tcb = cb;
443
444 spin_lock_irqsave(&cs->cmdlock, flags); 436 spin_lock_irqsave(&cs->cmdlock, flags);
445 cs->cmdbytes -= cs->curlen; 437 cs->cmdbytes -= cs->curlen;
446 gig_dbg(DEBUG_OUTPUT, "send_cb: sent %u bytes, %u left", 438 gig_dbg(DEBUG_OUTPUT, "send_cb: sent %u bytes, %u left",
447 cs->curlen, cs->cmdbytes); 439 cs->curlen, cs->cmdbytes);
448 cs->cmdbuf = cb = cb->next; 440 cs->cmdbuf = cb->next;
449 if (cb) { 441 if (cs->cmdbuf) {
450 cb->prev = NULL; 442 cs->cmdbuf->prev = NULL;
451 cs->curlen = cb->len; 443 cs->curlen = cs->cmdbuf->len;
452 } else { 444 } else {
453 cs->lastcmdbuf = NULL; 445 cs->lastcmdbuf = NULL;
454 cs->curlen = 0; 446 cs->curlen = 0;
455 } 447 }
456 spin_unlock_irqrestore(&cs->cmdlock, flags); 448 spin_unlock_irqrestore(&cs->cmdlock, flags);
457 449
458 if (tcb->wake_tasklet) 450 if (cb->wake_tasklet)
459 tasklet_schedule(tcb->wake_tasklet); 451 tasklet_schedule(cb->wake_tasklet);
460 kfree(tcb); 452 kfree(cb);
453
454 cb = cs->cmdbuf;
461 } 455 }
456
462 if (cb) { 457 if (cb) {
463 count = min(cb->len, ucs->bulk_out_size); 458 count = min(cb->len, ucs->bulk_out_size);
464 gig_dbg(DEBUG_OUTPUT, "send_cb: send %d bytes", count); 459 gig_dbg(DEBUG_OUTPUT, "send_cb: send %d bytes", count);
diff --git a/drivers/isdn/hardware/eicon/message.c b/drivers/isdn/hardware/eicon/message.c
index a82e542ffc21..d7c286656a25 100644
--- a/drivers/isdn/hardware/eicon/message.c
+++ b/drivers/isdn/hardware/eicon/message.c
@@ -1474,7 +1474,7 @@ static byte connect_res(dword Id, word Number, DIVA_CAPI_ADAPTER *a,
1474 add_ai(plci, &parms[5]); 1474 add_ai(plci, &parms[5]);
1475 sig_req(plci, REJECT, 0); 1475 sig_req(plci, REJECT, 0);
1476 } 1476 }
1477 else if (Reject == 1 || Reject > 9) 1477 else if (Reject == 1 || Reject >= 9)
1478 { 1478 {
1479 add_ai(plci, &parms[5]); 1479 add_ai(plci, &parms[5]);
1480 sig_req(plci, HANGUP, 0); 1480 sig_req(plci, HANGUP, 0);
@@ -4880,7 +4880,7 @@ static void sig_ind(PLCI *plci)
4880 byte SS_Ind[] = "\x05\x02\x00\x02\x00\x00"; /* Hold_Ind struct*/ 4880 byte SS_Ind[] = "\x05\x02\x00\x02\x00\x00"; /* Hold_Ind struct*/
4881 byte CF_Ind[] = "\x09\x02\x00\x06\x00\x00\x00\x00\x00\x00"; 4881 byte CF_Ind[] = "\x09\x02\x00\x06\x00\x00\x00\x00\x00\x00";
4882 byte Interr_Err_Ind[] = "\x0a\x02\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"; 4882 byte Interr_Err_Ind[] = "\x0a\x02\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00";
4883 byte CONF_Ind[] = "\x09\x16\x00\x06\x00\x00\0x00\0x00\0x00\0x00"; 4883 byte CONF_Ind[] = "\x09\x16\x00\x06\x00\x00\x00\x00\x00\x00";
4884 byte force_mt_info = false; 4884 byte force_mt_info = false;
4885 byte dir; 4885 byte dir;
4886 dword d; 4886 dword d;
diff --git a/drivers/isdn/hardware/mISDN/Kconfig b/drivers/isdn/hardware/mISDN/Kconfig
index b8611e3e5e74..09df54fc1fef 100644
--- a/drivers/isdn/hardware/mISDN/Kconfig
+++ b/drivers/isdn/hardware/mISDN/Kconfig
@@ -24,7 +24,7 @@ config MISDN_HFCMULTI
24 * HFC-E1 (E1 interface for 2Mbit ISDN) 24 * HFC-E1 (E1 interface for 2Mbit ISDN)
25 25
26config MISDN_HFCMULTI_8xx 26config MISDN_HFCMULTI_8xx
27 boolean "Support for XHFC embedded board in HFC multiport driver" 27 bool "Support for XHFC embedded board in HFC multiport driver"
28 depends on MISDN 28 depends on MISDN
29 depends on MISDN_HFCMULTI 29 depends on MISDN_HFCMULTI
30 depends on 8xx 30 depends on 8xx
diff --git a/drivers/isdn/hardware/mISDN/hfcpci.c b/drivers/isdn/hardware/mISDN/hfcpci.c
index 3c92780bda09..ff48da61c94c 100644
--- a/drivers/isdn/hardware/mISDN/hfcpci.c
+++ b/drivers/isdn/hardware/mISDN/hfcpci.c
@@ -1755,7 +1755,7 @@ init_card(struct hfc_pci *hc)
1755 enable_hwirq(hc); 1755 enable_hwirq(hc);
1756 spin_unlock_irqrestore(&hc->lock, flags); 1756 spin_unlock_irqrestore(&hc->lock, flags);
1757 /* Timeout 80ms */ 1757 /* Timeout 80ms */
1758 current->state = TASK_UNINTERRUPTIBLE; 1758 set_current_state(TASK_UNINTERRUPTIBLE);
1759 schedule_timeout((80 * HZ) / 1000); 1759 schedule_timeout((80 * HZ) / 1000);
1760 printk(KERN_INFO "HFC PCI: IRQ %d count %d\n", 1760 printk(KERN_INFO "HFC PCI: IRQ %d count %d\n",
1761 hc->irq, hc->irqcnt); 1761 hc->irq, hc->irqcnt);
diff --git a/drivers/isdn/hardware/mISDN/mISDNipac.c b/drivers/isdn/hardware/mISDN/mISDNipac.c
index ccd7d851be26..a77eea594b69 100644
--- a/drivers/isdn/hardware/mISDN/mISDNipac.c
+++ b/drivers/isdn/hardware/mISDN/mISDNipac.c
@@ -754,10 +754,10 @@ dbusy_timer_handler(struct isac_hw *isac)
754} 754}
755 755
756static int 756static int
757open_dchannel(struct isac_hw *isac, struct channel_req *rq) 757open_dchannel_caller(struct isac_hw *isac, struct channel_req *rq, void *caller)
758{ 758{
759 pr_debug("%s: %s dev(%d) open from %p\n", isac->name, __func__, 759 pr_debug("%s: %s dev(%d) open from %p\n", isac->name, __func__,
760 isac->dch.dev.id, __builtin_return_address(1)); 760 isac->dch.dev.id, caller);
761 if (rq->protocol != ISDN_P_TE_S0) 761 if (rq->protocol != ISDN_P_TE_S0)
762 return -EINVAL; 762 return -EINVAL;
763 if (rq->adr.channel == 1) 763 if (rq->adr.channel == 1)
@@ -771,6 +771,12 @@ open_dchannel(struct isac_hw *isac, struct channel_req *rq)
771 return 0; 771 return 0;
772} 772}
773 773
774static int
775open_dchannel(struct isac_hw *isac, struct channel_req *rq)
776{
777 return open_dchannel_caller(isac, rq, __builtin_return_address(0));
778}
779
774static const char *ISACVer[] = 780static const char *ISACVer[] =
775{"2086/2186 V1.1", "2085 B1", "2085 B2", 781{"2086/2186 V1.1", "2085 B1", "2085 B2",
776 "2085 V2.3"}; 782 "2085 V2.3"};
@@ -1548,7 +1554,7 @@ ipac_dctrl(struct mISDNchannel *ch, u32 cmd, void *arg)
1548 case OPEN_CHANNEL: 1554 case OPEN_CHANNEL:
1549 rq = arg; 1555 rq = arg;
1550 if (rq->protocol == ISDN_P_TE_S0) 1556 if (rq->protocol == ISDN_P_TE_S0)
1551 err = open_dchannel(isac, rq); 1557 err = open_dchannel_caller(isac, rq, __builtin_return_address(0));
1552 else 1558 else
1553 err = open_bchannel(ipac, rq); 1559 err = open_bchannel(ipac, rq);
1554 if (err) 1560 if (err)
diff --git a/drivers/isdn/hardware/mISDN/w6692.c b/drivers/isdn/hardware/mISDN/w6692.c
index de69f6828c76..741675525b53 100644
--- a/drivers/isdn/hardware/mISDN/w6692.c
+++ b/drivers/isdn/hardware/mISDN/w6692.c
@@ -1176,10 +1176,10 @@ w6692_l1callback(struct dchannel *dch, u32 cmd)
1176} 1176}
1177 1177
1178static int 1178static int
1179open_dchannel(struct w6692_hw *card, struct channel_req *rq) 1179open_dchannel(struct w6692_hw *card, struct channel_req *rq, void *caller)
1180{ 1180{
1181 pr_debug("%s: %s dev(%d) open from %p\n", card->name, __func__, 1181 pr_debug("%s: %s dev(%d) open from %p\n", card->name, __func__,
1182 card->dch.dev.id, __builtin_return_address(1)); 1182 card->dch.dev.id, caller);
1183 if (rq->protocol != ISDN_P_TE_S0) 1183 if (rq->protocol != ISDN_P_TE_S0)
1184 return -EINVAL; 1184 return -EINVAL;
1185 if (rq->adr.channel == 1) 1185 if (rq->adr.channel == 1)
@@ -1207,7 +1207,7 @@ w6692_dctrl(struct mISDNchannel *ch, u32 cmd, void *arg)
1207 case OPEN_CHANNEL: 1207 case OPEN_CHANNEL:
1208 rq = arg; 1208 rq = arg;
1209 if (rq->protocol == ISDN_P_TE_S0) 1209 if (rq->protocol == ISDN_P_TE_S0)
1210 err = open_dchannel(card, rq); 1210 err = open_dchannel(card, rq, __builtin_return_address(0));
1211 else 1211 else
1212 err = open_bchannel(card, rq); 1212 err = open_bchannel(card, rq);
1213 if (err) 1213 if (err)
diff --git a/drivers/isdn/hisax/hfc4s8s_l1.c b/drivers/isdn/hisax/hfc4s8s_l1.c
index fc9f9d03fa13..0e5d673871c0 100644
--- a/drivers/isdn/hisax/hfc4s8s_l1.c
+++ b/drivers/isdn/hisax/hfc4s8s_l1.c
@@ -225,20 +225,6 @@ fWrite_hfc8(hfc4s8s_hw *a, u_char c)
225} 225}
226 226
227static inline void 227static inline void
228Write_hfc16(hfc4s8s_hw *a, u_char b, u_short c)
229{
230 SetRegAddr(a, b);
231 outw(c, a->iobase);
232}
233
234static inline void
235Write_hfc32(hfc4s8s_hw *a, u_char b, u_long c)
236{
237 SetRegAddr(a, b);
238 outl(c, a->iobase);
239}
240
241static inline void
242fWrite_hfc32(hfc4s8s_hw *a, u_long c) 228fWrite_hfc32(hfc4s8s_hw *a, u_long c)
243{ 229{
244 outl(c, a->iobase); 230 outl(c, a->iobase);
@@ -266,13 +252,6 @@ Read_hfc16(hfc4s8s_hw *a, u_char b)
266} 252}
267 253
268static inline u_long 254static inline u_long
269Read_hfc32(hfc4s8s_hw *a, u_char b)
270{
271 SetRegAddr(a, b);
272 return (inl((volatile u_int) a->iobase));
273}
274
275static inline u_long
276fRead_hfc32(hfc4s8s_hw *a) 255fRead_hfc32(hfc4s8s_hw *a)
277{ 256{
278 return (inl((volatile u_int) a->iobase)); 257 return (inl((volatile u_int) a->iobase));
diff --git a/drivers/isdn/hisax/hfc_2bs0.c b/drivers/isdn/hisax/hfc_2bs0.c
index 838531b6a60e..14dada42874e 100644
--- a/drivers/isdn/hisax/hfc_2bs0.c
+++ b/drivers/isdn/hisax/hfc_2bs0.c
@@ -31,7 +31,7 @@ WaitForBusy(struct IsdnCardState *cs)
31 to--; 31 to--;
32 } 32 }
33 if (!to) { 33 if (!to) {
34 printk(KERN_WARNING "HiSax: waitforBusy timeout\n"); 34 printk(KERN_WARNING "HiSax: %s timeout\n", __func__);
35 return (0); 35 return (0);
36 } else 36 } else
37 return (to); 37 return (to);
diff --git a/drivers/isdn/hisax/hfc_sx.c b/drivers/isdn/hisax/hfc_sx.c
index fa1fefd711cd..b1fad81f0722 100644
--- a/drivers/isdn/hisax/hfc_sx.c
+++ b/drivers/isdn/hisax/hfc_sx.c
@@ -1159,7 +1159,8 @@ hfcsx_l2l1(struct PStack *st, int pr, void *arg)
1159 case (PH_PULL | INDICATION): 1159 case (PH_PULL | INDICATION):
1160 spin_lock_irqsave(&bcs->cs->lock, flags); 1160 spin_lock_irqsave(&bcs->cs->lock, flags);
1161 if (bcs->tx_skb) { 1161 if (bcs->tx_skb) {
1162 printk(KERN_WARNING "hfc_l2l1: this shouldn't happen\n"); 1162 printk(KERN_WARNING "%s: this shouldn't happen\n",
1163 __func__);
1163 } else { 1164 } else {
1164// test_and_set_bit(BC_FLG_BUSY, &bcs->Flag); 1165// test_and_set_bit(BC_FLG_BUSY, &bcs->Flag);
1165 bcs->tx_skb = skb; 1166 bcs->tx_skb = skb;
diff --git a/drivers/isdn/hisax/hfc_usb.c b/drivers/isdn/hisax/hfc_usb.c
index 849a80752685..678bd5224bc3 100644
--- a/drivers/isdn/hisax/hfc_usb.c
+++ b/drivers/isdn/hisax/hfc_usb.c
@@ -927,9 +927,8 @@ start_int_fifo(usb_fifo *fifo)
927 fifo->active = 1; /* must be marked active */ 927 fifo->active = 1; /* must be marked active */
928 errcode = usb_submit_urb(fifo->urb, GFP_KERNEL); 928 errcode = usb_submit_urb(fifo->urb, GFP_KERNEL);
929 if (errcode) { 929 if (errcode) {
930 printk(KERN_ERR 930 printk(KERN_ERR "HFC-S USB: submit URB error(%s): status:%i\n",
931 "HFC-S USB: submit URB error(start_int_info): status:%i\n", 931 __func__, errcode);
932 errcode);
933 fifo->active = 0; 932 fifo->active = 0;
934 fifo->skbuff = NULL; 933 fifo->skbuff = NULL;
935 } 934 }
diff --git a/drivers/isdn/hisax/ipacx.c b/drivers/isdn/hisax/ipacx.c
index 5faa5de24305..9cc26b40a437 100644
--- a/drivers/isdn/hisax/ipacx.c
+++ b/drivers/isdn/hisax/ipacx.c
@@ -580,7 +580,7 @@ bch_fill_fifo(struct BCState *bcs)
580 if (cs->debug & L1_DEB_HSCX_FIFO) { 580 if (cs->debug & L1_DEB_HSCX_FIFO) {
581 char *t = bcs->blog; 581 char *t = bcs->blog;
582 582
583 t += sprintf(t, "chb_fill_fifo() B-%d cnt %d", hscx, count); 583 t += sprintf(t, "%s() B-%d cnt %d", __func__, hscx, count);
584 QuickHex(t, ptr, count); 584 QuickHex(t, ptr, count);
585 debugl1(cs, "%s", bcs->blog); 585 debugl1(cs, "%s", bcs->blog);
586 } 586 }
diff --git a/drivers/isdn/hisax/isdnl1.c b/drivers/isdn/hisax/isdnl1.c
index 800095781bfb..a560842c0e48 100644
--- a/drivers/isdn/hisax/isdnl1.c
+++ b/drivers/isdn/hisax/isdnl1.c
@@ -867,7 +867,7 @@ l1_msg(struct IsdnCardState *cs, int pr, void *arg) {
867 break; 867 break;
868 default: 868 default:
869 if (cs->debug) 869 if (cs->debug)
870 debugl1(cs, "l1msg %04X unhandled", pr); 870 debugl1(cs, "%s %04X unhandled", __func__, pr);
871 break; 871 break;
872 } 872 }
873 st = st->next; 873 st = st->next;
diff --git a/drivers/isdn/hisax/isdnl3.c b/drivers/isdn/hisax/isdnl3.c
index 45b03840f716..c754706f83cd 100644
--- a/drivers/isdn/hisax/isdnl3.c
+++ b/drivers/isdn/hisax/isdnl3.c
@@ -153,7 +153,7 @@ void
153newl3state(struct l3_process *pc, int state) 153newl3state(struct l3_process *pc, int state)
154{ 154{
155 if (pc->debug & L3_DEB_STATE) 155 if (pc->debug & L3_DEB_STATE)
156 l3_debug(pc->st, "newstate cr %d %d --> %d", 156 l3_debug(pc->st, "%s cr %d %d --> %d", __func__,
157 pc->callref & 0x7F, 157 pc->callref & 0x7F,
158 pc->state, state); 158 pc->state, state);
159 pc->state = state; 159 pc->state = state;
diff --git a/drivers/isdn/hysdn/hycapi.c b/drivers/isdn/hysdn/hycapi.c
index 00aad10507d8..93bae94314a6 100644
--- a/drivers/isdn/hysdn/hycapi.c
+++ b/drivers/isdn/hysdn/hycapi.c
@@ -501,7 +501,7 @@ static char *hycapi_procinfo(struct capi_ctr *ctrl)
501{ 501{
502 hycapictrl_info *cinfo = (hycapictrl_info *)(ctrl->driverdata); 502 hycapictrl_info *cinfo = (hycapictrl_info *)(ctrl->driverdata);
503#ifdef HYCAPI_PRINTFNAMES 503#ifdef HYCAPI_PRINTFNAMES
504 printk(KERN_NOTICE "hycapi_proc_info\n"); 504 printk(KERN_NOTICE "%s\n", __func__);
505#endif 505#endif
506 if (!cinfo) 506 if (!cinfo)
507 return ""; 507 return "";
diff --git a/drivers/isdn/icn/icn.c b/drivers/isdn/icn/icn.c
index 6a7447c304ac..358a574d9e8b 100644
--- a/drivers/isdn/icn/icn.c
+++ b/drivers/isdn/icn/icn.c
@@ -1609,7 +1609,7 @@ icn_setup(char *line)
1609 if (ints[0] > 1) 1609 if (ints[0] > 1)
1610 membase = (unsigned long)ints[2]; 1610 membase = (unsigned long)ints[2];
1611 if (str && *str) { 1611 if (str && *str) {
1612 strcpy(sid, str); 1612 strlcpy(sid, str, sizeof(sid));
1613 icn_id = sid; 1613 icn_id = sid;
1614 if ((p = strchr(sid, ','))) { 1614 if ((p = strchr(sid, ','))) {
1615 *p++ = 0; 1615 *p++ = 0;
diff --git a/drivers/isdn/isdnloop/isdnloop.c b/drivers/isdn/isdnloop/isdnloop.c
index 5a4da94aefb0..ef9c8e4f1fa2 100644
--- a/drivers/isdn/isdnloop/isdnloop.c
+++ b/drivers/isdn/isdnloop/isdnloop.c
@@ -59,7 +59,8 @@ isdnloop_bchan_send(isdnloop_card *card, int ch)
59 isdn_ctrl cmd; 59 isdn_ctrl cmd;
60 60
61 while (card->sndcount[ch]) { 61 while (card->sndcount[ch]) {
62 if ((skb = skb_dequeue(&card->bqueue[ch]))) { 62 skb = skb_dequeue(&card->bqueue[ch]);
63 if (skb) {
63 len = skb->len; 64 len = skb->len;
64 card->sndcount[ch] -= len; 65 card->sndcount[ch] -= len;
65 ack = *(skb->head); /* used as scratch area */ 66 ack = *(skb->head); /* used as scratch area */
@@ -149,8 +150,7 @@ typedef struct isdnloop_stat {
149 int action; 150 int action;
150} isdnloop_stat; 151} isdnloop_stat;
151/* *INDENT-OFF* */ 152/* *INDENT-OFF* */
152static isdnloop_stat isdnloop_stat_table[] = 153static isdnloop_stat isdnloop_stat_table[] = {
153{
154 {"BCON_", ISDN_STAT_BCONN, 1}, /* B-Channel connected */ 154 {"BCON_", ISDN_STAT_BCONN, 1}, /* B-Channel connected */
155 {"BDIS_", ISDN_STAT_BHUP, 2}, /* B-Channel disconnected */ 155 {"BDIS_", ISDN_STAT_BHUP, 2}, /* B-Channel disconnected */
156 {"DCON_", ISDN_STAT_DCONN, 0}, /* D-Channel connected */ 156 {"DCON_", ISDN_STAT_DCONN, 0}, /* D-Channel connected */
@@ -317,7 +317,8 @@ isdnloop_polldchan(unsigned long data)
317 u_char *p; 317 u_char *p;
318 isdn_ctrl cmd; 318 isdn_ctrl cmd;
319 319
320 if ((skb = skb_dequeue(&card->dqueue))) 320 skb = skb_dequeue(&card->dqueue);
321 if (skb)
321 avail = skb->len; 322 avail = skb->len;
322 else 323 else
323 avail = 0; 324 avail = 0;
@@ -471,8 +472,8 @@ isdnloop_fake(isdnloop_card *card, char *s, int ch)
471{ 472{
472 struct sk_buff *skb; 473 struct sk_buff *skb;
473 int len = strlen(s) + ((ch >= 0) ? 3 : 0); 474 int len = strlen(s) + ((ch >= 0) ? 3 : 0);
474 475 skb = dev_alloc_skb(len);
475 if (!(skb = dev_alloc_skb(len))) { 476 if (!skb) {
476 printk(KERN_WARNING "isdnloop: Out of memory in isdnloop_fake\n"); 477 printk(KERN_WARNING "isdnloop: Out of memory in isdnloop_fake\n");
477 return 1; 478 return 1;
478 } 479 }
@@ -483,8 +484,7 @@ isdnloop_fake(isdnloop_card *card, char *s, int ch)
483 return 0; 484 return 0;
484} 485}
485/* *INDENT-OFF* */ 486/* *INDENT-OFF* */
486static isdnloop_stat isdnloop_cmd_table[] = 487static isdnloop_stat isdnloop_cmd_table[] = {
487{
488 {"BCON_R", 0, 1}, /* B-Channel connect */ 488 {"BCON_R", 0, 1}, /* B-Channel connect */
489 {"BCON_I", 0, 17}, /* B-Channel connect ind */ 489 {"BCON_I", 0, 17}, /* B-Channel connect ind */
490 {"BDIS_R", 0, 2}, /* B-Channel disconnect */ 490 {"BDIS_R", 0, 2}, /* B-Channel disconnect */
@@ -525,10 +525,8 @@ isdnloop_fake_err(isdnloop_card *card)
525 isdnloop_fake(card, "NAK", -1); 525 isdnloop_fake(card, "NAK", -1);
526} 526}
527 527
528static u_char ctable_eu[] = 528static u_char ctable_eu[] = {0x00, 0x11, 0x01, 0x12};
529{0x00, 0x11, 0x01, 0x12}; 529static u_char ctable_1t[] = {0x00, 0x3b, 0x01, 0x3a};
530static u_char ctable_1t[] =
531{0x00, 0x3b, 0x01, 0x3a};
532 530
533/* 531/*
534 * Assemble a simplified cause message depending on the 532 * Assemble a simplified cause message depending on the
@@ -554,9 +552,9 @@ isdnloop_unicause(isdnloop_card *card, int loc, int cau)
554 sprintf(buf, "%02X44", ctable_1t[cau]); 552 sprintf(buf, "%02X44", ctable_1t[cau]);
555 break; 553 break;
556 default: 554 default:
557 return ("0000"); 555 return "0000";
558 } 556 }
559 return (buf); 557 return buf;
560} 558}
561 559
562/* 560/*
@@ -647,10 +645,8 @@ isdnloop_kill_ctimer(isdnloop_card *card, int ch)
647 spin_unlock_irqrestore(&card->isdnloop_lock, flags); 645 spin_unlock_irqrestore(&card->isdnloop_lock, flags);
648} 646}
649 647
650static u_char si2bit[] = 648static u_char si2bit[] = {0, 1, 0, 0, 0, 2, 0, 4, 0, 0};
651{0, 1, 0, 0, 0, 2, 0, 4, 0, 0}; 649static u_char bit2si[] = {1, 5, 7};
652static u_char bit2si[] =
653{1, 5, 7};
654 650
655/* 651/*
656 * Try finding a listener for an outgoing call. 652 * Try finding a listener for an outgoing call.
@@ -754,17 +750,17 @@ isdnloop_vstphone(isdnloop_card *card, char *phone, int caller)
754 if (caller) { 750 if (caller) {
755 for (i = 0; i < 2; i++) 751 for (i = 0; i < 2; i++)
756 if (!(strcmp(card->s0num[i], phone))) 752 if (!(strcmp(card->s0num[i], phone)))
757 return (phone); 753 return phone;
758 return (card->s0num[0]); 754 return card->s0num[0];
759 } 755 }
760 return (phone); 756 return phone;
761 break; 757 break;
762 case ISDN_PTYPE_1TR6: 758 case ISDN_PTYPE_1TR6:
763 if (caller) { 759 if (caller) {
764 sprintf(nphone, "%s%c", card->s0num[0], phone[0]); 760 sprintf(nphone, "%s%c", card->s0num[0], phone[0]);
765 return (nphone); 761 return nphone;
766 } else 762 } else
767 return (&phone[strlen(phone) - 1]); 763 return &phone[strlen(phone) - 1];
768 break; 764 break;
769 } 765 }
770 return ""; 766 return "";
@@ -1148,14 +1144,14 @@ isdnloop_command(isdn_ctrl *c, isdnloop_card *card)
1148 case ISDNLOOP_IOCTL_STARTUP: 1144 case ISDNLOOP_IOCTL_STARTUP:
1149 if (!access_ok(VERIFY_READ, (void *) a, sizeof(isdnloop_sdef))) 1145 if (!access_ok(VERIFY_READ, (void *) a, sizeof(isdnloop_sdef)))
1150 return -EFAULT; 1146 return -EFAULT;
1151 return (isdnloop_start(card, (isdnloop_sdef *) a)); 1147 return isdnloop_start(card, (isdnloop_sdef *) a);
1152 break; 1148 break;
1153 case ISDNLOOP_IOCTL_ADDCARD: 1149 case ISDNLOOP_IOCTL_ADDCARD:
1154 if (copy_from_user((char *)&cdef, 1150 if (copy_from_user((char *)&cdef,
1155 (char *)a, 1151 (char *)a,
1156 sizeof(cdef))) 1152 sizeof(cdef)))
1157 return -EFAULT; 1153 return -EFAULT;
1158 return (isdnloop_addcard(cdef.id1)); 1154 return isdnloop_addcard(cdef.id1);
1159 break; 1155 break;
1160 case ISDNLOOP_IOCTL_LEASEDCFG: 1156 case ISDNLOOP_IOCTL_LEASEDCFG:
1161 if (a) { 1157 if (a) {
@@ -1377,7 +1373,7 @@ if_command(isdn_ctrl *c)
1377 isdnloop_card *card = isdnloop_findcard(c->driver); 1373 isdnloop_card *card = isdnloop_findcard(c->driver);
1378 1374
1379 if (card) 1375 if (card)
1380 return (isdnloop_command(c, card)); 1376 return isdnloop_command(c, card);
1381 printk(KERN_ERR 1377 printk(KERN_ERR
1382 "isdnloop: if_command called with invalid driverId!\n"); 1378 "isdnloop: if_command called with invalid driverId!\n");
1383 return -ENODEV; 1379 return -ENODEV;
@@ -1391,7 +1387,7 @@ if_writecmd(const u_char __user *buf, int len, int id, int channel)
1391 if (card) { 1387 if (card) {
1392 if (!(card->flags & ISDNLOOP_FLAGS_RUNNING)) 1388 if (!(card->flags & ISDNLOOP_FLAGS_RUNNING))
1393 return -ENODEV; 1389 return -ENODEV;
1394 return (isdnloop_writecmd(buf, len, 1, card)); 1390 return isdnloop_writecmd(buf, len, 1, card);
1395 } 1391 }
1396 printk(KERN_ERR 1392 printk(KERN_ERR
1397 "isdnloop: if_writecmd called with invalid driverId!\n"); 1393 "isdnloop: if_writecmd called with invalid driverId!\n");
@@ -1406,7 +1402,7 @@ if_readstatus(u_char __user *buf, int len, int id, int channel)
1406 if (card) { 1402 if (card) {
1407 if (!(card->flags & ISDNLOOP_FLAGS_RUNNING)) 1403 if (!(card->flags & ISDNLOOP_FLAGS_RUNNING))
1408 return -ENODEV; 1404 return -ENODEV;
1409 return (isdnloop_readstatus(buf, len, card)); 1405 return isdnloop_readstatus(buf, len, card);
1410 } 1406 }
1411 printk(KERN_ERR 1407 printk(KERN_ERR
1412 "isdnloop: if_readstatus called with invalid driverId!\n"); 1408 "isdnloop: if_readstatus called with invalid driverId!\n");
@@ -1423,7 +1419,7 @@ if_sendbuf(int id, int channel, int ack, struct sk_buff *skb)
1423 return -ENODEV; 1419 return -ENODEV;
1424 /* ack request stored in skb scratch area */ 1420 /* ack request stored in skb scratch area */
1425 *(skb->head) = ack; 1421 *(skb->head) = ack;
1426 return (isdnloop_sendbuf(channel, skb, card)); 1422 return isdnloop_sendbuf(channel, skb, card);
1427 } 1423 }
1428 printk(KERN_ERR 1424 printk(KERN_ERR
1429 "isdnloop: if_sendbuf called with invalid driverId!\n"); 1425 "isdnloop: if_sendbuf called with invalid driverId!\n");
@@ -1439,8 +1435,8 @@ isdnloop_initcard(char *id)
1439{ 1435{
1440 isdnloop_card *card; 1436 isdnloop_card *card;
1441 int i; 1437 int i;
1442 1438 card = kzalloc(sizeof(isdnloop_card), GFP_KERNEL);
1443 if (!(card = kzalloc(sizeof(isdnloop_card), GFP_KERNEL))) { 1439 if (!card) {
1444 printk(KERN_WARNING 1440 printk(KERN_WARNING
1445 "isdnloop: (%s) Could not allocate card-struct.\n", id); 1441 "isdnloop: (%s) Could not allocate card-struct.\n", id);
1446 return (isdnloop_card *) 0; 1442 return (isdnloop_card *) 0;
@@ -1489,8 +1485,8 @@ static int
1489isdnloop_addcard(char *id1) 1485isdnloop_addcard(char *id1)
1490{ 1486{
1491 isdnloop_card *card; 1487 isdnloop_card *card;
1492 1488 card = isdnloop_initcard(id1);
1493 if (!(card = isdnloop_initcard(id1))) { 1489 if (!card) {
1494 return -EIO; 1490 return -EIO;
1495 } 1491 }
1496 printk(KERN_INFO 1492 printk(KERN_INFO
@@ -1503,7 +1499,7 @@ static int __init
1503isdnloop_init(void) 1499isdnloop_init(void)
1504{ 1500{
1505 if (isdnloop_id) 1501 if (isdnloop_id)
1506 return (isdnloop_addcard(isdnloop_id)); 1502 return isdnloop_addcard(isdnloop_id);
1507 1503
1508 return 0; 1504 return 0;
1509} 1505}
diff --git a/drivers/isdn/mISDN/l1oip_codec.c b/drivers/isdn/mISDN/l1oip_codec.c
index a601c8472220..9b033be11a5f 100644
--- a/drivers/isdn/mISDN/l1oip_codec.c
+++ b/drivers/isdn/mISDN/l1oip_codec.c
@@ -312,10 +312,8 @@ l1oip_ulaw_to_alaw(u8 *data, int len, u8 *result)
312void 312void
313l1oip_4bit_free(void) 313l1oip_4bit_free(void)
314{ 314{
315 if (table_dec) 315 vfree(table_dec);
316 vfree(table_dec); 316 vfree(table_com);
317 if (table_com)
318 vfree(table_com);
319 table_com = NULL; 317 table_com = NULL;
320 table_dec = NULL; 318 table_dec = NULL;
321} 319}
diff --git a/drivers/isdn/mISDN/socket.c b/drivers/isdn/mISDN/socket.c
index 1be82284cf9d..84b35925ee4d 100644
--- a/drivers/isdn/mISDN/socket.c
+++ b/drivers/isdn/mISDN/socket.c
@@ -163,7 +163,7 @@ mISDN_sock_recvmsg(struct kiocb *iocb, struct socket *sock,
163 memcpy(skb_push(skb, MISDN_HEADER_LEN), mISDN_HEAD_P(skb), 163 memcpy(skb_push(skb, MISDN_HEADER_LEN), mISDN_HEAD_P(skb),
164 MISDN_HEADER_LEN); 164 MISDN_HEADER_LEN);
165 165
166 err = skb_copy_datagram_iovec(skb, 0, msg->msg_iov, copied); 166 err = skb_copy_datagram_msg(skb, 0, msg, copied);
167 167
168 mISDN_sock_cmsg(sk, msg, skb); 168 mISDN_sock_cmsg(sk, msg, skb);
169 169
@@ -203,7 +203,7 @@ mISDN_sock_sendmsg(struct kiocb *iocb, struct socket *sock,
203 if (!skb) 203 if (!skb)
204 goto done; 204 goto done;
205 205
206 if (memcpy_fromiovec(skb_put(skb, len), msg->msg_iov, len)) { 206 if (memcpy_from_msg(skb_put(skb, len), msg, len)) {
207 err = -EFAULT; 207 err = -EFAULT;
208 goto done; 208 goto done;
209 } 209 }
diff --git a/drivers/isdn/pcbit/layer2.c b/drivers/isdn/pcbit/layer2.c
index 42ecfef80132..46e1240ae074 100644
--- a/drivers/isdn/pcbit/layer2.c
+++ b/drivers/isdn/pcbit/layer2.c
@@ -85,7 +85,6 @@ pcbit_l2_write(struct pcbit_dev *dev, ulong msg, ushort refnum,
85 } 85 }
86 if ((frame = kmalloc(sizeof(struct frame_buf), 86 if ((frame = kmalloc(sizeof(struct frame_buf),
87 GFP_ATOMIC)) == NULL) { 87 GFP_ATOMIC)) == NULL) {
88 printk(KERN_WARNING "pcbit_2_write: kmalloc failed\n");
89 dev_kfree_skb(skb); 88 dev_kfree_skb(skb);
90 return -1; 89 return -1;
91 } 90 }
diff --git a/drivers/isdn/sc/init.c b/drivers/isdn/sc/init.c
index d6f19b168e8a..3597ef47b28a 100644
--- a/drivers/isdn/sc/init.c
+++ b/drivers/isdn/sc/init.c
@@ -30,7 +30,7 @@ static const char *boardname[] = { "DataCommute/BRI", "DataCommute/PRI", "TeleCo
30static unsigned int io[] = {0, 0, 0, 0}; 30static unsigned int io[] = {0, 0, 0, 0};
31static unsigned char irq[] = {0, 0, 0, 0}; 31static unsigned char irq[] = {0, 0, 0, 0};
32static unsigned long ram[] = {0, 0, 0, 0}; 32static unsigned long ram[] = {0, 0, 0, 0};
33static bool do_reset = 0; 33static bool do_reset;
34 34
35module_param_array(io, int, NULL, 0); 35module_param_array(io, int, NULL, 0);
36module_param_array(irq, byte, NULL, 0); 36module_param_array(irq, byte, NULL, 0);
@@ -104,13 +104,12 @@ static int __init sc_init(void)
104 io[b] + 0x400 * EXP_PAGE0); 104 io[b] + 0x400 * EXP_PAGE0);
105 continue; 105 continue;
106 } 106 }
107 } 107 } else {
108 else {
109 /* 108 /*
110 * Yes, probe for I/O Base 109 * Yes, probe for I/O Base
111 */ 110 */
112 if (probe_exhasted) { 111 if (probe_exhasted) {
113 pr_debug("All probe addresses exhasted, skipping\n"); 112 pr_debug("All probe addresses exhausted, skipping\n");
114 continue; 113 continue;
115 } 114 }
116 pr_debug("Probing for I/O...\n"); 115 pr_debug("Probing for I/O...\n");
@@ -169,8 +168,7 @@ static int __init sc_init(void)
169 model = identify_board(ram[b], io[b]); 168 model = identify_board(ram[b], io[b]);
170 release_region(ram[b], SRAM_PAGESIZE); 169 release_region(ram[b], SRAM_PAGESIZE);
171 } 170 }
172 } 171 } else {
173 else {
174 /* 172 /*
175 * Yes, probe for free RAM and look for 173 * Yes, probe for free RAM and look for
176 * a signature and id the board model 174 * a signature and id the board model
@@ -187,7 +185,7 @@ static int __init sc_init(void)
187 ram[b] = i; 185 ram[b] = i;
188 break; 186 break;
189 } 187 }
190 pr_debug(" Unidentifed or inaccessible\n"); 188 pr_debug(" Unidentified or inaccessible\n");
191 continue; 189 continue;
192 } 190 }
193 pr_debug(" request failed\n"); 191 pr_debug(" request failed\n");
@@ -337,8 +335,7 @@ static int __init sc_init(void)
337 sc_adapter[cinst]->interrupt = irq[b]; 335 sc_adapter[cinst]->interrupt = irq[b];
338 if (request_irq(sc_adapter[cinst]->interrupt, interrupt_handler, 336 if (request_irq(sc_adapter[cinst]->interrupt, interrupt_handler,
339 0, interface->id, 337 0, interface->id,
340 (void *)(unsigned long) cinst)) 338 (void *)(unsigned long) cinst)) {
341 {
342 kfree(sc_adapter[cinst]->channel); 339 kfree(sc_adapter[cinst]->channel);
343 indicate_status(cinst, ISDN_STAT_UNLOAD, 0, NULL); /* Fix me */ 340 indicate_status(cinst, ISDN_STAT_UNLOAD, 0, NULL); /* Fix me */
344 kfree(interface); 341 kfree(interface);