diff options
Diffstat (limited to 'drivers/isdn')
-rw-r--r-- | drivers/isdn/act2000/capi.c | 4 | ||||
-rw-r--r-- | drivers/isdn/act2000/capi.h | 2 | ||||
-rw-r--r-- | drivers/isdn/act2000/module.c | 18 | ||||
-rw-r--r-- | drivers/isdn/capi/kcapi.c | 14 | ||||
-rw-r--r-- | drivers/isdn/gigaset/bas-gigaset.c | 34 | ||||
-rw-r--r-- | drivers/isdn/gigaset/usb-gigaset.c | 12 | ||||
-rw-r--r-- | drivers/isdn/hisax/amd7930_fn.c | 7 | ||||
-rw-r--r-- | drivers/isdn/hisax/config.c | 9 | ||||
-rw-r--r-- | drivers/isdn/hisax/hfc4s8s_l1.c | 5 | ||||
-rw-r--r-- | drivers/isdn/hisax/hfc_2bds0.c | 9 | ||||
-rw-r--r-- | drivers/isdn/hisax/hfc_pci.c | 6 | ||||
-rw-r--r-- | drivers/isdn/hisax/hfc_sx.c | 6 | ||||
-rw-r--r-- | drivers/isdn/hisax/icc.c | 6 | ||||
-rw-r--r-- | drivers/isdn/hisax/isac.c | 6 | ||||
-rw-r--r-- | drivers/isdn/hisax/isar.c | 6 | ||||
-rw-r--r-- | drivers/isdn/hisax/isdnhdlc.h | 8 | ||||
-rw-r--r-- | drivers/isdn/hisax/isdnl1.c | 6 | ||||
-rw-r--r-- | drivers/isdn/hisax/w6692.c | 6 | ||||
-rw-r--r-- | drivers/isdn/hysdn/boardergo.c | 5 | ||||
-rw-r--r-- | drivers/isdn/i4l/isdn_net.c | 6 | ||||
-rw-r--r-- | drivers/isdn/pcbit/drv.c | 4 | ||||
-rw-r--r-- | drivers/isdn/pcbit/layer2.c | 6 | ||||
-rw-r--r-- | drivers/isdn/pcbit/pcbit.h | 2 |
23 files changed, 108 insertions, 79 deletions
diff --git a/drivers/isdn/act2000/capi.c b/drivers/isdn/act2000/capi.c index 6ae6eb322111..946c38cf6f8a 100644 --- a/drivers/isdn/act2000/capi.c +++ b/drivers/isdn/act2000/capi.c | |||
@@ -627,8 +627,10 @@ handle_ack(act2000_card *card, act2000_chan *chan, __u8 blocknr) { | |||
627 | } | 627 | } |
628 | 628 | ||
629 | void | 629 | void |
630 | actcapi_dispatch(act2000_card *card) | 630 | actcapi_dispatch(struct work_struct *work) |
631 | { | 631 | { |
632 | struct act2000_card *card = | ||
633 | container_of(work, struct act2000_card, rcv_tq); | ||
632 | struct sk_buff *skb; | 634 | struct sk_buff *skb; |
633 | actcapi_msg *msg; | 635 | actcapi_msg *msg; |
634 | __u16 ccmd; | 636 | __u16 ccmd; |
diff --git a/drivers/isdn/act2000/capi.h b/drivers/isdn/act2000/capi.h index 49f453c53c64..e55f6a931f66 100644 --- a/drivers/isdn/act2000/capi.h +++ b/drivers/isdn/act2000/capi.h | |||
@@ -356,7 +356,7 @@ extern int actcapi_connect_req(act2000_card *, act2000_chan *, char *, char, int | |||
356 | extern void actcapi_select_b2_protocol_req(act2000_card *, act2000_chan *); | 356 | extern void actcapi_select_b2_protocol_req(act2000_card *, act2000_chan *); |
357 | extern void actcapi_disconnect_b3_req(act2000_card *, act2000_chan *); | 357 | extern void actcapi_disconnect_b3_req(act2000_card *, act2000_chan *); |
358 | extern void actcapi_connect_resp(act2000_card *, act2000_chan *, __u8); | 358 | extern void actcapi_connect_resp(act2000_card *, act2000_chan *, __u8); |
359 | extern void actcapi_dispatch(act2000_card *); | 359 | extern void actcapi_dispatch(struct work_struct *); |
360 | #ifdef DEBUG_MSG | 360 | #ifdef DEBUG_MSG |
361 | extern void actcapi_debug_msg(struct sk_buff *skb, int); | 361 | extern void actcapi_debug_msg(struct sk_buff *skb, int); |
362 | #else | 362 | #else |
diff --git a/drivers/isdn/act2000/module.c b/drivers/isdn/act2000/module.c index d89dcde4eade..90593e2ef872 100644 --- a/drivers/isdn/act2000/module.c +++ b/drivers/isdn/act2000/module.c | |||
@@ -192,8 +192,11 @@ act2000_set_msn(act2000_card *card, char *eazmsn) | |||
192 | } | 192 | } |
193 | 193 | ||
194 | static void | 194 | static void |
195 | act2000_transmit(struct act2000_card *card) | 195 | act2000_transmit(struct work_struct *work) |
196 | { | 196 | { |
197 | struct act2000_card *card = | ||
198 | container_of(work, struct act2000_card, snd_tq); | ||
199 | |||
197 | switch (card->bus) { | 200 | switch (card->bus) { |
198 | case ACT2000_BUS_ISA: | 201 | case ACT2000_BUS_ISA: |
199 | act2000_isa_send(card); | 202 | act2000_isa_send(card); |
@@ -207,8 +210,11 @@ act2000_transmit(struct act2000_card *card) | |||
207 | } | 210 | } |
208 | 211 | ||
209 | static void | 212 | static void |
210 | act2000_receive(struct act2000_card *card) | 213 | act2000_receive(struct work_struct *work) |
211 | { | 214 | { |
215 | struct act2000_card *card = | ||
216 | container_of(work, struct act2000_card, poll_tq); | ||
217 | |||
212 | switch (card->bus) { | 218 | switch (card->bus) { |
213 | case ACT2000_BUS_ISA: | 219 | case ACT2000_BUS_ISA: |
214 | act2000_isa_receive(card); | 220 | act2000_isa_receive(card); |
@@ -227,7 +233,7 @@ act2000_poll(unsigned long data) | |||
227 | act2000_card * card = (act2000_card *)data; | 233 | act2000_card * card = (act2000_card *)data; |
228 | unsigned long flags; | 234 | unsigned long flags; |
229 | 235 | ||
230 | act2000_receive(card); | 236 | act2000_receive(&card->poll_tq); |
231 | spin_lock_irqsave(&card->lock, flags); | 237 | spin_lock_irqsave(&card->lock, flags); |
232 | mod_timer(&card->ptimer, jiffies+3); | 238 | mod_timer(&card->ptimer, jiffies+3); |
233 | spin_unlock_irqrestore(&card->lock, flags); | 239 | spin_unlock_irqrestore(&card->lock, flags); |
@@ -578,9 +584,9 @@ act2000_alloccard(int bus, int port, int irq, char *id) | |||
578 | skb_queue_head_init(&card->sndq); | 584 | skb_queue_head_init(&card->sndq); |
579 | skb_queue_head_init(&card->rcvq); | 585 | skb_queue_head_init(&card->rcvq); |
580 | skb_queue_head_init(&card->ackq); | 586 | skb_queue_head_init(&card->ackq); |
581 | INIT_WORK(&card->snd_tq, (void *) (void *) act2000_transmit, card); | 587 | INIT_WORK(&card->snd_tq, act2000_transmit); |
582 | INIT_WORK(&card->rcv_tq, (void *) (void *) actcapi_dispatch, card); | 588 | INIT_WORK(&card->rcv_tq, actcapi_dispatch); |
583 | INIT_WORK(&card->poll_tq, (void *) (void *) act2000_receive, card); | 589 | INIT_WORK(&card->poll_tq, act2000_receive); |
584 | init_timer(&card->ptimer); | 590 | init_timer(&card->ptimer); |
585 | card->interface.owner = THIS_MODULE; | 591 | card->interface.owner = THIS_MODULE; |
586 | card->interface.channels = ACT2000_BCH; | 592 | card->interface.channels = ACT2000_BCH; |
diff --git a/drivers/isdn/capi/kcapi.c b/drivers/isdn/capi/kcapi.c index 8c4fcb9027b3..783a25526315 100644 --- a/drivers/isdn/capi/kcapi.c +++ b/drivers/isdn/capi/kcapi.c | |||
@@ -208,9 +208,10 @@ static void notify_down(u32 contr) | |||
208 | } | 208 | } |
209 | } | 209 | } |
210 | 210 | ||
211 | static void notify_handler(void *data) | 211 | static void notify_handler(struct work_struct *work) |
212 | { | 212 | { |
213 | struct capi_notifier *np = data; | 213 | struct capi_notifier *np = |
214 | container_of(work, struct capi_notifier, work); | ||
214 | 215 | ||
215 | switch (np->cmd) { | 216 | switch (np->cmd) { |
216 | case KCI_CONTRUP: | 217 | case KCI_CONTRUP: |
@@ -235,7 +236,7 @@ static int notify_push(unsigned int cmd, u32 controller, u16 applid, u32 ncci) | |||
235 | if (!np) | 236 | if (!np) |
236 | return -ENOMEM; | 237 | return -ENOMEM; |
237 | 238 | ||
238 | INIT_WORK(&np->work, notify_handler, np); | 239 | INIT_WORK(&np->work, notify_handler); |
239 | np->cmd = cmd; | 240 | np->cmd = cmd; |
240 | np->controller = controller; | 241 | np->controller = controller; |
241 | np->applid = applid; | 242 | np->applid = applid; |
@@ -248,10 +249,11 @@ static int notify_push(unsigned int cmd, u32 controller, u16 applid, u32 ncci) | |||
248 | 249 | ||
249 | /* -------- Receiver ------------------------------------------ */ | 250 | /* -------- Receiver ------------------------------------------ */ |
250 | 251 | ||
251 | static void recv_handler(void *_ap) | 252 | static void recv_handler(struct work_struct *work) |
252 | { | 253 | { |
253 | struct sk_buff *skb; | 254 | struct sk_buff *skb; |
254 | struct capi20_appl *ap = (struct capi20_appl *) _ap; | 255 | struct capi20_appl *ap = |
256 | container_of(work, struct capi20_appl, recv_work); | ||
255 | 257 | ||
256 | if ((!ap) || (ap->release_in_progress)) | 258 | if ((!ap) || (ap->release_in_progress)) |
257 | return; | 259 | return; |
@@ -527,7 +529,7 @@ u16 capi20_register(struct capi20_appl *ap) | |||
527 | ap->callback = NULL; | 529 | ap->callback = NULL; |
528 | init_MUTEX(&ap->recv_sem); | 530 | init_MUTEX(&ap->recv_sem); |
529 | skb_queue_head_init(&ap->recv_queue); | 531 | skb_queue_head_init(&ap->recv_queue); |
530 | INIT_WORK(&ap->recv_work, recv_handler, (void *)ap); | 532 | INIT_WORK(&ap->recv_work, recv_handler); |
531 | ap->release_in_progress = 0; | 533 | ap->release_in_progress = 0; |
532 | 534 | ||
533 | write_unlock_irqrestore(&application_lock, flags); | 535 | write_unlock_irqrestore(&application_lock, flags); |
diff --git a/drivers/isdn/gigaset/bas-gigaset.c b/drivers/isdn/gigaset/bas-gigaset.c index 0c937325a1b3..63b629b1cdb2 100644 --- a/drivers/isdn/gigaset/bas-gigaset.c +++ b/drivers/isdn/gigaset/bas-gigaset.c | |||
@@ -572,7 +572,7 @@ static int atread_submit(struct cardstate *cs, int timeout) | |||
572 | ucs->rcvbuf, ucs->rcvbuf_size, | 572 | ucs->rcvbuf, ucs->rcvbuf_size, |
573 | read_ctrl_callback, cs->inbuf); | 573 | read_ctrl_callback, cs->inbuf); |
574 | 574 | ||
575 | if ((ret = usb_submit_urb(ucs->urb_cmd_in, SLAB_ATOMIC)) != 0) { | 575 | if ((ret = usb_submit_urb(ucs->urb_cmd_in, GFP_ATOMIC)) != 0) { |
576 | update_basstate(ucs, 0, BS_ATRDPEND); | 576 | update_basstate(ucs, 0, BS_ATRDPEND); |
577 | dev_err(cs->dev, "could not submit HD_READ_ATMESSAGE: %s\n", | 577 | dev_err(cs->dev, "could not submit HD_READ_ATMESSAGE: %s\n", |
578 | get_usb_rcmsg(ret)); | 578 | get_usb_rcmsg(ret)); |
@@ -747,7 +747,7 @@ static void read_int_callback(struct urb *urb) | |||
747 | check_pending(ucs); | 747 | check_pending(ucs); |
748 | 748 | ||
749 | resubmit: | 749 | resubmit: |
750 | rc = usb_submit_urb(urb, SLAB_ATOMIC); | 750 | rc = usb_submit_urb(urb, GFP_ATOMIC); |
751 | if (unlikely(rc != 0 && rc != -ENODEV)) { | 751 | if (unlikely(rc != 0 && rc != -ENODEV)) { |
752 | dev_err(cs->dev, "could not resubmit interrupt URB: %s\n", | 752 | dev_err(cs->dev, "could not resubmit interrupt URB: %s\n", |
753 | get_usb_rcmsg(rc)); | 753 | get_usb_rcmsg(rc)); |
@@ -807,7 +807,7 @@ static void read_iso_callback(struct urb *urb) | |||
807 | urb->number_of_packets = BAS_NUMFRAMES; | 807 | urb->number_of_packets = BAS_NUMFRAMES; |
808 | gig_dbg(DEBUG_ISO, "%s: isoc read overrun/resubmit", | 808 | gig_dbg(DEBUG_ISO, "%s: isoc read overrun/resubmit", |
809 | __func__); | 809 | __func__); |
810 | rc = usb_submit_urb(urb, SLAB_ATOMIC); | 810 | rc = usb_submit_urb(urb, GFP_ATOMIC); |
811 | if (unlikely(rc != 0 && rc != -ENODEV)) { | 811 | if (unlikely(rc != 0 && rc != -ENODEV)) { |
812 | dev_err(bcs->cs->dev, | 812 | dev_err(bcs->cs->dev, |
813 | "could not resubmit isochronous read " | 813 | "could not resubmit isochronous read " |
@@ -900,7 +900,7 @@ static int starturbs(struct bc_state *bcs) | |||
900 | } | 900 | } |
901 | 901 | ||
902 | dump_urb(DEBUG_ISO, "Initial isoc read", urb); | 902 | dump_urb(DEBUG_ISO, "Initial isoc read", urb); |
903 | if ((rc = usb_submit_urb(urb, SLAB_ATOMIC)) != 0) | 903 | if ((rc = usb_submit_urb(urb, GFP_ATOMIC)) != 0) |
904 | goto error; | 904 | goto error; |
905 | } | 905 | } |
906 | 906 | ||
@@ -935,7 +935,7 @@ static int starturbs(struct bc_state *bcs) | |||
935 | /* submit two URBs, keep third one */ | 935 | /* submit two URBs, keep third one */ |
936 | for (k = 0; k < 2; ++k) { | 936 | for (k = 0; k < 2; ++k) { |
937 | dump_urb(DEBUG_ISO, "Initial isoc write", urb); | 937 | dump_urb(DEBUG_ISO, "Initial isoc write", urb); |
938 | rc = usb_submit_urb(ubc->isoouturbs[k].urb, SLAB_ATOMIC); | 938 | rc = usb_submit_urb(ubc->isoouturbs[k].urb, GFP_ATOMIC); |
939 | if (rc != 0) | 939 | if (rc != 0) |
940 | goto error; | 940 | goto error; |
941 | } | 941 | } |
@@ -1042,7 +1042,7 @@ static int submit_iso_write_urb(struct isow_urbctx_t *ucx) | |||
1042 | return 0; /* no data to send */ | 1042 | return 0; /* no data to send */ |
1043 | urb->number_of_packets = nframe; | 1043 | urb->number_of_packets = nframe; |
1044 | 1044 | ||
1045 | rc = usb_submit_urb(urb, SLAB_ATOMIC); | 1045 | rc = usb_submit_urb(urb, GFP_ATOMIC); |
1046 | if (unlikely(rc)) { | 1046 | if (unlikely(rc)) { |
1047 | if (rc == -ENODEV) | 1047 | if (rc == -ENODEV) |
1048 | /* device removed - give up silently */ | 1048 | /* device removed - give up silently */ |
@@ -1341,7 +1341,7 @@ static void read_iso_tasklet(unsigned long data) | |||
1341 | urb->dev = bcs->cs->hw.bas->udev; | 1341 | urb->dev = bcs->cs->hw.bas->udev; |
1342 | urb->transfer_flags = URB_ISO_ASAP; | 1342 | urb->transfer_flags = URB_ISO_ASAP; |
1343 | urb->number_of_packets = BAS_NUMFRAMES; | 1343 | urb->number_of_packets = BAS_NUMFRAMES; |
1344 | rc = usb_submit_urb(urb, SLAB_ATOMIC); | 1344 | rc = usb_submit_urb(urb, GFP_ATOMIC); |
1345 | if (unlikely(rc != 0 && rc != -ENODEV)) { | 1345 | if (unlikely(rc != 0 && rc != -ENODEV)) { |
1346 | dev_err(cs->dev, | 1346 | dev_err(cs->dev, |
1347 | "could not resubmit isochronous read URB: %s\n", | 1347 | "could not resubmit isochronous read URB: %s\n", |
@@ -1458,7 +1458,7 @@ static void write_ctrl_callback(struct urb *urb) | |||
1458 | ucs->retry_ctrl); | 1458 | ucs->retry_ctrl); |
1459 | /* urb->dev is clobbered by USB subsystem */ | 1459 | /* urb->dev is clobbered by USB subsystem */ |
1460 | urb->dev = ucs->udev; | 1460 | urb->dev = ucs->udev; |
1461 | rc = usb_submit_urb(urb, SLAB_ATOMIC); | 1461 | rc = usb_submit_urb(urb, GFP_ATOMIC); |
1462 | if (unlikely(rc)) { | 1462 | if (unlikely(rc)) { |
1463 | dev_err(&ucs->interface->dev, | 1463 | dev_err(&ucs->interface->dev, |
1464 | "could not resubmit request 0x%02x: %s\n", | 1464 | "could not resubmit request 0x%02x: %s\n", |
@@ -1517,7 +1517,7 @@ static int req_submit(struct bc_state *bcs, int req, int val, int timeout) | |||
1517 | (unsigned char*) &ucs->dr_ctrl, NULL, 0, | 1517 | (unsigned char*) &ucs->dr_ctrl, NULL, 0, |
1518 | write_ctrl_callback, ucs); | 1518 | write_ctrl_callback, ucs); |
1519 | ucs->retry_ctrl = 0; | 1519 | ucs->retry_ctrl = 0; |
1520 | ret = usb_submit_urb(ucs->urb_ctrl, SLAB_ATOMIC); | 1520 | ret = usb_submit_urb(ucs->urb_ctrl, GFP_ATOMIC); |
1521 | if (unlikely(ret)) { | 1521 | if (unlikely(ret)) { |
1522 | dev_err(bcs->cs->dev, "could not submit request 0x%02x: %s\n", | 1522 | dev_err(bcs->cs->dev, "could not submit request 0x%02x: %s\n", |
1523 | req, get_usb_rcmsg(ret)); | 1523 | req, get_usb_rcmsg(ret)); |
@@ -1763,7 +1763,7 @@ static int atwrite_submit(struct cardstate *cs, unsigned char *buf, int len) | |||
1763 | usb_sndctrlpipe(ucs->udev, 0), | 1763 | usb_sndctrlpipe(ucs->udev, 0), |
1764 | (unsigned char*) &ucs->dr_cmd_out, buf, len, | 1764 | (unsigned char*) &ucs->dr_cmd_out, buf, len, |
1765 | write_command_callback, cs); | 1765 | write_command_callback, cs); |
1766 | rc = usb_submit_urb(ucs->urb_cmd_out, SLAB_ATOMIC); | 1766 | rc = usb_submit_urb(ucs->urb_cmd_out, GFP_ATOMIC); |
1767 | if (unlikely(rc)) { | 1767 | if (unlikely(rc)) { |
1768 | update_basstate(ucs, 0, BS_ATWRPEND); | 1768 | update_basstate(ucs, 0, BS_ATWRPEND); |
1769 | dev_err(cs->dev, "could not submit HD_WRITE_ATMESSAGE: %s\n", | 1769 | dev_err(cs->dev, "could not submit HD_WRITE_ATMESSAGE: %s\n", |
@@ -2218,21 +2218,21 @@ static int gigaset_probe(struct usb_interface *interface, | |||
2218 | * - three for the different uses of the default control pipe | 2218 | * - three for the different uses of the default control pipe |
2219 | * - three for each isochronous pipe | 2219 | * - three for each isochronous pipe |
2220 | */ | 2220 | */ |
2221 | if (!(ucs->urb_int_in = usb_alloc_urb(0, SLAB_KERNEL)) || | 2221 | if (!(ucs->urb_int_in = usb_alloc_urb(0, GFP_KERNEL)) || |
2222 | !(ucs->urb_cmd_in = usb_alloc_urb(0, SLAB_KERNEL)) || | 2222 | !(ucs->urb_cmd_in = usb_alloc_urb(0, GFP_KERNEL)) || |
2223 | !(ucs->urb_cmd_out = usb_alloc_urb(0, SLAB_KERNEL)) || | 2223 | !(ucs->urb_cmd_out = usb_alloc_urb(0, GFP_KERNEL)) || |
2224 | !(ucs->urb_ctrl = usb_alloc_urb(0, SLAB_KERNEL))) | 2224 | !(ucs->urb_ctrl = usb_alloc_urb(0, GFP_KERNEL))) |
2225 | goto allocerr; | 2225 | goto allocerr; |
2226 | 2226 | ||
2227 | for (j = 0; j < 2; ++j) { | 2227 | for (j = 0; j < 2; ++j) { |
2228 | ubc = cs->bcs[j].hw.bas; | 2228 | ubc = cs->bcs[j].hw.bas; |
2229 | for (i = 0; i < BAS_OUTURBS; ++i) | 2229 | for (i = 0; i < BAS_OUTURBS; ++i) |
2230 | if (!(ubc->isoouturbs[i].urb = | 2230 | if (!(ubc->isoouturbs[i].urb = |
2231 | usb_alloc_urb(BAS_NUMFRAMES, SLAB_KERNEL))) | 2231 | usb_alloc_urb(BAS_NUMFRAMES, GFP_KERNEL))) |
2232 | goto allocerr; | 2232 | goto allocerr; |
2233 | for (i = 0; i < BAS_INURBS; ++i) | 2233 | for (i = 0; i < BAS_INURBS; ++i) |
2234 | if (!(ubc->isoinurbs[i] = | 2234 | if (!(ubc->isoinurbs[i] = |
2235 | usb_alloc_urb(BAS_NUMFRAMES, SLAB_KERNEL))) | 2235 | usb_alloc_urb(BAS_NUMFRAMES, GFP_KERNEL))) |
2236 | goto allocerr; | 2236 | goto allocerr; |
2237 | } | 2237 | } |
2238 | 2238 | ||
@@ -2246,7 +2246,7 @@ static int gigaset_probe(struct usb_interface *interface, | |||
2246 | (endpoint->bEndpointAddress) & 0x0f), | 2246 | (endpoint->bEndpointAddress) & 0x0f), |
2247 | ucs->int_in_buf, 3, read_int_callback, cs, | 2247 | ucs->int_in_buf, 3, read_int_callback, cs, |
2248 | endpoint->bInterval); | 2248 | endpoint->bInterval); |
2249 | if ((rc = usb_submit_urb(ucs->urb_int_in, SLAB_KERNEL)) != 0) { | 2249 | if ((rc = usb_submit_urb(ucs->urb_int_in, GFP_KERNEL)) != 0) { |
2250 | dev_err(cs->dev, "could not submit interrupt URB: %s\n", | 2250 | dev_err(cs->dev, "could not submit interrupt URB: %s\n", |
2251 | get_usb_rcmsg(rc)); | 2251 | get_usb_rcmsg(rc)); |
2252 | goto error; | 2252 | goto error; |
diff --git a/drivers/isdn/gigaset/usb-gigaset.c b/drivers/isdn/gigaset/usb-gigaset.c index 5ebf49ac9b23..04f2ad7ba8b0 100644 --- a/drivers/isdn/gigaset/usb-gigaset.c +++ b/drivers/isdn/gigaset/usb-gigaset.c | |||
@@ -410,7 +410,7 @@ static void gigaset_read_int_callback(struct urb *urb) | |||
410 | 410 | ||
411 | if (resubmit) { | 411 | if (resubmit) { |
412 | spin_lock_irqsave(&cs->lock, flags); | 412 | spin_lock_irqsave(&cs->lock, flags); |
413 | r = cs->connected ? usb_submit_urb(urb, SLAB_ATOMIC) : -ENODEV; | 413 | r = cs->connected ? usb_submit_urb(urb, GFP_ATOMIC) : -ENODEV; |
414 | spin_unlock_irqrestore(&cs->lock, flags); | 414 | spin_unlock_irqrestore(&cs->lock, flags); |
415 | if (r) | 415 | if (r) |
416 | dev_err(cs->dev, "error %d when resubmitting urb.\n", | 416 | dev_err(cs->dev, "error %d when resubmitting urb.\n", |
@@ -486,7 +486,7 @@ static int send_cb(struct cardstate *cs, struct cmdbuf_t *cb) | |||
486 | atomic_set(&ucs->busy, 1); | 486 | atomic_set(&ucs->busy, 1); |
487 | 487 | ||
488 | spin_lock_irqsave(&cs->lock, flags); | 488 | spin_lock_irqsave(&cs->lock, flags); |
489 | status = cs->connected ? usb_submit_urb(ucs->bulk_out_urb, SLAB_ATOMIC) : -ENODEV; | 489 | status = cs->connected ? usb_submit_urb(ucs->bulk_out_urb, GFP_ATOMIC) : -ENODEV; |
490 | spin_unlock_irqrestore(&cs->lock, flags); | 490 | spin_unlock_irqrestore(&cs->lock, flags); |
491 | 491 | ||
492 | if (status) { | 492 | if (status) { |
@@ -664,7 +664,7 @@ static int write_modem(struct cardstate *cs) | |||
664 | ucs->bulk_out_endpointAddr & 0x0f), | 664 | ucs->bulk_out_endpointAddr & 0x0f), |
665 | ucs->bulk_out_buffer, count, | 665 | ucs->bulk_out_buffer, count, |
666 | gigaset_write_bulk_callback, cs); | 666 | gigaset_write_bulk_callback, cs); |
667 | ret = usb_submit_urb(ucs->bulk_out_urb, SLAB_ATOMIC); | 667 | ret = usb_submit_urb(ucs->bulk_out_urb, GFP_ATOMIC); |
668 | } else { | 668 | } else { |
669 | ret = -ENODEV; | 669 | ret = -ENODEV; |
670 | } | 670 | } |
@@ -763,7 +763,7 @@ static int gigaset_probe(struct usb_interface *interface, | |||
763 | goto error; | 763 | goto error; |
764 | } | 764 | } |
765 | 765 | ||
766 | ucs->bulk_out_urb = usb_alloc_urb(0, SLAB_KERNEL); | 766 | ucs->bulk_out_urb = usb_alloc_urb(0, GFP_KERNEL); |
767 | if (!ucs->bulk_out_urb) { | 767 | if (!ucs->bulk_out_urb) { |
768 | dev_err(cs->dev, "Couldn't allocate bulk_out_urb\n"); | 768 | dev_err(cs->dev, "Couldn't allocate bulk_out_urb\n"); |
769 | retval = -ENOMEM; | 769 | retval = -ENOMEM; |
@@ -774,7 +774,7 @@ static int gigaset_probe(struct usb_interface *interface, | |||
774 | 774 | ||
775 | atomic_set(&ucs->busy, 0); | 775 | atomic_set(&ucs->busy, 0); |
776 | 776 | ||
777 | ucs->read_urb = usb_alloc_urb(0, SLAB_KERNEL); | 777 | ucs->read_urb = usb_alloc_urb(0, GFP_KERNEL); |
778 | if (!ucs->read_urb) { | 778 | if (!ucs->read_urb) { |
779 | dev_err(cs->dev, "No free urbs available\n"); | 779 | dev_err(cs->dev, "No free urbs available\n"); |
780 | retval = -ENOMEM; | 780 | retval = -ENOMEM; |
@@ -797,7 +797,7 @@ static int gigaset_probe(struct usb_interface *interface, | |||
797 | gigaset_read_int_callback, | 797 | gigaset_read_int_callback, |
798 | cs->inbuf + 0, endpoint->bInterval); | 798 | cs->inbuf + 0, endpoint->bInterval); |
799 | 799 | ||
800 | retval = usb_submit_urb(ucs->read_urb, SLAB_KERNEL); | 800 | retval = usb_submit_urb(ucs->read_urb, GFP_KERNEL); |
801 | if (retval) { | 801 | if (retval) { |
802 | dev_err(cs->dev, "Could not submit URB (error %d)\n", -retval); | 802 | dev_err(cs->dev, "Could not submit URB (error %d)\n", -retval); |
803 | goto error; | 803 | goto error; |
diff --git a/drivers/isdn/hisax/amd7930_fn.c b/drivers/isdn/hisax/amd7930_fn.c index bec59010bc66..3b19caeba258 100644 --- a/drivers/isdn/hisax/amd7930_fn.c +++ b/drivers/isdn/hisax/amd7930_fn.c | |||
@@ -232,9 +232,10 @@ Amd7930_new_ph(struct IsdnCardState *cs) | |||
232 | 232 | ||
233 | 233 | ||
234 | static void | 234 | static void |
235 | Amd7930_bh(struct IsdnCardState *cs) | 235 | Amd7930_bh(struct work_struct *work) |
236 | { | 236 | { |
237 | 237 | struct IsdnCardState *cs = | |
238 | container_of(work, struct IsdnCardState, tqueue); | ||
238 | struct PStack *stptr; | 239 | struct PStack *stptr; |
239 | 240 | ||
240 | if (!cs) | 241 | if (!cs) |
@@ -789,7 +790,7 @@ Amd7930_init(struct IsdnCardState *cs) | |||
789 | void __devinit | 790 | void __devinit |
790 | setup_Amd7930(struct IsdnCardState *cs) | 791 | setup_Amd7930(struct IsdnCardState *cs) |
791 | { | 792 | { |
792 | INIT_WORK(&cs->tqueue, (void *)(void *) Amd7930_bh, cs); | 793 | INIT_WORK(&cs->tqueue, Amd7930_bh); |
793 | cs->dbusytimer.function = (void *) dbusy_timer_handler; | 794 | cs->dbusytimer.function = (void *) dbusy_timer_handler; |
794 | cs->dbusytimer.data = (long) cs; | 795 | cs->dbusytimer.data = (long) cs; |
795 | init_timer(&cs->dbusytimer); | 796 | init_timer(&cs->dbusytimer); |
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 | ||
diff --git a/drivers/isdn/hisax/hfc4s8s_l1.c b/drivers/isdn/hisax/hfc4s8s_l1.c index d852c9d998b2..de9b1a4d6bac 100644 --- a/drivers/isdn/hisax/hfc4s8s_l1.c +++ b/drivers/isdn/hisax/hfc4s8s_l1.c | |||
@@ -1083,8 +1083,9 @@ tx_b_frame(struct hfc4s8s_btype *bch) | |||
1083 | /* bottom half handler for interrupt */ | 1083 | /* bottom half handler for interrupt */ |
1084 | /*************************************/ | 1084 | /*************************************/ |
1085 | static void | 1085 | static void |
1086 | hfc4s8s_bh(hfc4s8s_hw * hw) | 1086 | hfc4s8s_bh(struct work_struct *work) |
1087 | { | 1087 | { |
1088 | hfc4s8s_hw *hw = container_of(work, hfc4s8s_hw, tqueue); | ||
1088 | u_char b; | 1089 | u_char b; |
1089 | struct hfc4s8s_l1 *l1p; | 1090 | struct hfc4s8s_l1 *l1p; |
1090 | volatile u_char *fifo_stat; | 1091 | volatile u_char *fifo_stat; |
@@ -1550,7 +1551,7 @@ setup_instance(hfc4s8s_hw * hw) | |||
1550 | goto out; | 1551 | goto out; |
1551 | } | 1552 | } |
1552 | 1553 | ||
1553 | INIT_WORK(&hw->tqueue, (void *) (void *) hfc4s8s_bh, hw); | 1554 | INIT_WORK(&hw->tqueue, hfc4s8s_bh); |
1554 | 1555 | ||
1555 | if (request_irq | 1556 | if (request_irq |
1556 | (hw->irq, hfc4s8s_interrupt, IRQF_SHARED, hw->card_name, hw)) { | 1557 | (hw->irq, hfc4s8s_interrupt, IRQF_SHARED, hw->card_name, hw)) { |
diff --git a/drivers/isdn/hisax/hfc_2bds0.c b/drivers/isdn/hisax/hfc_2bds0.c index 6360e8214720..8d9864453a23 100644 --- a/drivers/isdn/hisax/hfc_2bds0.c +++ b/drivers/isdn/hisax/hfc_2bds0.c | |||
@@ -549,10 +549,11 @@ setstack_2b(struct PStack *st, struct BCState *bcs) | |||
549 | } | 549 | } |
550 | 550 | ||
551 | static void | 551 | static void |
552 | hfcd_bh(struct IsdnCardState *cs) | 552 | hfcd_bh(struct work_struct *work) |
553 | { | 553 | { |
554 | if (!cs) | 554 | struct IsdnCardState *cs = |
555 | return; | 555 | container_of(work, struct IsdnCardState, tqueue); |
556 | |||
556 | if (test_and_clear_bit(D_L1STATECHANGE, &cs->event)) { | 557 | if (test_and_clear_bit(D_L1STATECHANGE, &cs->event)) { |
557 | switch (cs->dc.hfcd.ph_state) { | 558 | switch (cs->dc.hfcd.ph_state) { |
558 | case (0): | 559 | case (0): |
@@ -1072,5 +1073,5 @@ set_cs_func(struct IsdnCardState *cs) | |||
1072 | cs->dbusytimer.function = (void *) hfc_dbusy_timer; | 1073 | cs->dbusytimer.function = (void *) hfc_dbusy_timer; |
1073 | cs->dbusytimer.data = (long) cs; | 1074 | cs->dbusytimer.data = (long) cs; |
1074 | init_timer(&cs->dbusytimer); | 1075 | init_timer(&cs->dbusytimer); |
1075 | INIT_WORK(&cs->tqueue, (void *)(void *) hfcd_bh, cs); | 1076 | INIT_WORK(&cs->tqueue, hfcd_bh); |
1076 | } | 1077 | } |
diff --git a/drivers/isdn/hisax/hfc_pci.c b/drivers/isdn/hisax/hfc_pci.c index 93f60b563515..5db0a85b827f 100644 --- a/drivers/isdn/hisax/hfc_pci.c +++ b/drivers/isdn/hisax/hfc_pci.c | |||
@@ -1506,8 +1506,10 @@ setstack_2b(struct PStack *st, struct BCState *bcs) | |||
1506 | /* handle L1 state changes */ | 1506 | /* handle L1 state changes */ |
1507 | /***************************/ | 1507 | /***************************/ |
1508 | static void | 1508 | static void |
1509 | hfcpci_bh(struct IsdnCardState *cs) | 1509 | hfcpci_bh(struct work_struct *work) |
1510 | { | 1510 | { |
1511 | struct IsdnCardState *cs = | ||
1512 | container_of(work, struct IsdnCardState, tqueue); | ||
1511 | u_long flags; | 1513 | u_long flags; |
1512 | // struct PStack *stptr; | 1514 | // struct PStack *stptr; |
1513 | 1515 | ||
@@ -1722,7 +1724,7 @@ setup_hfcpci(struct IsdnCard *card) | |||
1722 | Write_hfc(cs, HFCPCI_INT_M2, cs->hw.hfcpci.int_m2); | 1724 | Write_hfc(cs, HFCPCI_INT_M2, cs->hw.hfcpci.int_m2); |
1723 | /* At this point the needed PCI config is done */ | 1725 | /* At this point the needed PCI config is done */ |
1724 | /* fifos are still not enabled */ | 1726 | /* fifos are still not enabled */ |
1725 | INIT_WORK(&cs->tqueue, (void *)(void *) hfcpci_bh, cs); | 1727 | INIT_WORK(&cs->tqueue, hfcpci_bh); |
1726 | cs->setstack_d = setstack_hfcpci; | 1728 | cs->setstack_d = setstack_hfcpci; |
1727 | cs->BC_Send_Data = &hfcpci_send_data; | 1729 | cs->BC_Send_Data = &hfcpci_send_data; |
1728 | cs->readisac = NULL; | 1730 | cs->readisac = NULL; |
diff --git a/drivers/isdn/hisax/hfc_sx.c b/drivers/isdn/hisax/hfc_sx.c index 954d1536db1f..4fd09d21a27f 100644 --- a/drivers/isdn/hisax/hfc_sx.c +++ b/drivers/isdn/hisax/hfc_sx.c | |||
@@ -1251,8 +1251,10 @@ setstack_2b(struct PStack *st, struct BCState *bcs) | |||
1251 | /* handle L1 state changes */ | 1251 | /* handle L1 state changes */ |
1252 | /***************************/ | 1252 | /***************************/ |
1253 | static void | 1253 | static void |
1254 | hfcsx_bh(struct IsdnCardState *cs) | 1254 | hfcsx_bh(struct work_struct *work) |
1255 | { | 1255 | { |
1256 | struct IsdnCardState *cs = | ||
1257 | container_of(work, struct IsdnCardState, tqueue); | ||
1256 | u_long flags; | 1258 | u_long flags; |
1257 | 1259 | ||
1258 | if (!cs) | 1260 | if (!cs) |
@@ -1499,7 +1501,7 @@ setup_hfcsx(struct IsdnCard *card) | |||
1499 | cs->dbusytimer.function = (void *) hfcsx_dbusy_timer; | 1501 | cs->dbusytimer.function = (void *) hfcsx_dbusy_timer; |
1500 | cs->dbusytimer.data = (long) cs; | 1502 | cs->dbusytimer.data = (long) cs; |
1501 | init_timer(&cs->dbusytimer); | 1503 | init_timer(&cs->dbusytimer); |
1502 | INIT_WORK(&cs->tqueue, (void *)(void *) hfcsx_bh, cs); | 1504 | INIT_WORK(&cs->tqueue, hfcsx_bh); |
1503 | cs->readisac = NULL; | 1505 | cs->readisac = NULL; |
1504 | cs->writeisac = NULL; | 1506 | cs->writeisac = NULL; |
1505 | cs->readisacfifo = NULL; | 1507 | cs->readisacfifo = NULL; |
diff --git a/drivers/isdn/hisax/icc.c b/drivers/isdn/hisax/icc.c index da706925d54d..682cac32f259 100644 --- a/drivers/isdn/hisax/icc.c +++ b/drivers/isdn/hisax/icc.c | |||
@@ -77,8 +77,10 @@ icc_new_ph(struct IsdnCardState *cs) | |||
77 | } | 77 | } |
78 | 78 | ||
79 | static void | 79 | static void |
80 | icc_bh(struct IsdnCardState *cs) | 80 | icc_bh(struct work_struct *work) |
81 | { | 81 | { |
82 | struct IsdnCardState *cs = | ||
83 | container_of(work, struct IsdnCardState, tqueue); | ||
82 | struct PStack *stptr; | 84 | struct PStack *stptr; |
83 | 85 | ||
84 | if (!cs) | 86 | if (!cs) |
@@ -674,7 +676,7 @@ clear_pending_icc_ints(struct IsdnCardState *cs) | |||
674 | void __devinit | 676 | void __devinit |
675 | setup_icc(struct IsdnCardState *cs) | 677 | setup_icc(struct IsdnCardState *cs) |
676 | { | 678 | { |
677 | INIT_WORK(&cs->tqueue, (void *)(void *) icc_bh, cs); | 679 | INIT_WORK(&cs->tqueue, icc_bh); |
678 | cs->dbusytimer.function = (void *) dbusy_timer_handler; | 680 | cs->dbusytimer.function = (void *) dbusy_timer_handler; |
679 | cs->dbusytimer.data = (long) cs; | 681 | cs->dbusytimer.data = (long) cs; |
680 | init_timer(&cs->dbusytimer); | 682 | init_timer(&cs->dbusytimer); |
diff --git a/drivers/isdn/hisax/isac.c b/drivers/isdn/hisax/isac.c index 282f349408bc..4e9f23803dae 100644 --- a/drivers/isdn/hisax/isac.c +++ b/drivers/isdn/hisax/isac.c | |||
@@ -81,8 +81,10 @@ isac_new_ph(struct IsdnCardState *cs) | |||
81 | } | 81 | } |
82 | 82 | ||
83 | static void | 83 | static void |
84 | isac_bh(struct IsdnCardState *cs) | 84 | isac_bh(struct work_struct *work) |
85 | { | 85 | { |
86 | struct IsdnCardState *cs = | ||
87 | container_of(work, struct IsdnCardState, tqueue); | ||
86 | struct PStack *stptr; | 88 | struct PStack *stptr; |
87 | 89 | ||
88 | if (!cs) | 90 | if (!cs) |
@@ -674,7 +676,7 @@ clear_pending_isac_ints(struct IsdnCardState *cs) | |||
674 | void __devinit | 676 | void __devinit |
675 | setup_isac(struct IsdnCardState *cs) | 677 | setup_isac(struct IsdnCardState *cs) |
676 | { | 678 | { |
677 | INIT_WORK(&cs->tqueue, (void *)(void *) isac_bh, cs); | 679 | INIT_WORK(&cs->tqueue, isac_bh); |
678 | cs->dbusytimer.function = (void *) dbusy_timer_handler; | 680 | cs->dbusytimer.function = (void *) dbusy_timer_handler; |
679 | cs->dbusytimer.data = (long) cs; | 681 | cs->dbusytimer.data = (long) cs; |
680 | init_timer(&cs->dbusytimer); | 682 | init_timer(&cs->dbusytimer); |
diff --git a/drivers/isdn/hisax/isar.c b/drivers/isdn/hisax/isar.c index 674af673ff96..6f1a6583b17d 100644 --- a/drivers/isdn/hisax/isar.c +++ b/drivers/isdn/hisax/isar.c | |||
@@ -437,8 +437,10 @@ extern void BChannel_bh(struct BCState *); | |||
437 | #define B_LL_OK 10 | 437 | #define B_LL_OK 10 |
438 | 438 | ||
439 | static void | 439 | static void |
440 | isar_bh(struct BCState *bcs) | 440 | isar_bh(struct work_struct *work) |
441 | { | 441 | { |
442 | struct BCState *bcs = container_of(work, struct BCState, tqueue); | ||
443 | |||
442 | BChannel_bh(bcs); | 444 | BChannel_bh(bcs); |
443 | if (test_and_clear_bit(B_LL_NOCARRIER, &bcs->event)) | 445 | if (test_and_clear_bit(B_LL_NOCARRIER, &bcs->event)) |
444 | ll_deliver_faxstat(bcs, ISDN_FAX_CLASS1_NOCARR); | 446 | ll_deliver_faxstat(bcs, ISDN_FAX_CLASS1_NOCARR); |
@@ -1580,7 +1582,7 @@ isar_setup(struct IsdnCardState *cs) | |||
1580 | cs->bcs[i].mode = 0; | 1582 | cs->bcs[i].mode = 0; |
1581 | cs->bcs[i].hw.isar.dpath = i + 1; | 1583 | cs->bcs[i].hw.isar.dpath = i + 1; |
1582 | modeisar(&cs->bcs[i], 0, 0); | 1584 | modeisar(&cs->bcs[i], 0, 0); |
1583 | INIT_WORK(&cs->bcs[i].tqueue, (void *)(void *) isar_bh, &cs->bcs[i]); | 1585 | INIT_WORK(&cs->bcs[i].tqueue, isar_bh); |
1584 | } | 1586 | } |
1585 | } | 1587 | } |
1586 | 1588 | ||
diff --git a/drivers/isdn/hisax/isdnhdlc.h b/drivers/isdn/hisax/isdnhdlc.h index 269315988dc8..5655b5f9c48e 100644 --- a/drivers/isdn/hisax/isdnhdlc.h +++ b/drivers/isdn/hisax/isdnhdlc.h | |||
@@ -41,10 +41,10 @@ struct isdnhdlc_vars { | |||
41 | unsigned char shift_reg; | 41 | unsigned char shift_reg; |
42 | unsigned char ffvalue; | 42 | unsigned char ffvalue; |
43 | 43 | ||
44 | int data_received:1; // set if transferring data | 44 | unsigned int data_received:1; // set if transferring data |
45 | int dchannel:1; // set if D channel (send idle instead of flags) | 45 | unsigned int dchannel:1; // set if D channel (send idle instead of flags) |
46 | int do_adapt56:1; // set if 56K adaptation | 46 | unsigned int do_adapt56:1; // set if 56K adaptation |
47 | int do_closing:1; // set if in closing phase (need to send CRC + flag | 47 | unsigned int do_closing:1; // set if in closing phase (need to send CRC + flag |
48 | }; | 48 | }; |
49 | 49 | ||
50 | 50 | ||
diff --git a/drivers/isdn/hisax/isdnl1.c b/drivers/isdn/hisax/isdnl1.c index bab356886483..a14204ec88ee 100644 --- a/drivers/isdn/hisax/isdnl1.c +++ b/drivers/isdn/hisax/isdnl1.c | |||
@@ -315,8 +315,10 @@ BChannel_proc_ack(struct BCState *bcs) | |||
315 | } | 315 | } |
316 | 316 | ||
317 | void | 317 | void |
318 | BChannel_bh(struct BCState *bcs) | 318 | BChannel_bh(struct work_struct *work) |
319 | { | 319 | { |
320 | struct BCState *bcs = container_of(work, struct BCState, tqueue); | ||
321 | |||
320 | if (!bcs) | 322 | if (!bcs) |
321 | return; | 323 | return; |
322 | if (test_and_clear_bit(B_RCVBUFREADY, &bcs->event)) | 324 | if (test_and_clear_bit(B_RCVBUFREADY, &bcs->event)) |
@@ -362,7 +364,7 @@ init_bcstate(struct IsdnCardState *cs, int bc) | |||
362 | 364 | ||
363 | bcs->cs = cs; | 365 | bcs->cs = cs; |
364 | bcs->channel = bc; | 366 | bcs->channel = bc; |
365 | INIT_WORK(&bcs->tqueue, (void *)(void *) BChannel_bh, bcs); | 367 | INIT_WORK(&bcs->tqueue, BChannel_bh); |
366 | spin_lock_init(&bcs->aclock); | 368 | spin_lock_init(&bcs->aclock); |
367 | bcs->BC_SetStack = NULL; | 369 | bcs->BC_SetStack = NULL; |
368 | bcs->BC_Close = NULL; | 370 | bcs->BC_Close = NULL; |
diff --git a/drivers/isdn/hisax/w6692.c b/drivers/isdn/hisax/w6692.c index 1655341797a9..3aeceaf9769e 100644 --- a/drivers/isdn/hisax/w6692.c +++ b/drivers/isdn/hisax/w6692.c | |||
@@ -101,8 +101,10 @@ W6692_new_ph(struct IsdnCardState *cs) | |||
101 | } | 101 | } |
102 | 102 | ||
103 | static void | 103 | static void |
104 | W6692_bh(struct IsdnCardState *cs) | 104 | W6692_bh(struct work_struct *work) |
105 | { | 105 | { |
106 | struct IsdnCardState *cs = | ||
107 | container_of(work, struct IsdnCardState, tqueue); | ||
106 | struct PStack *stptr; | 108 | struct PStack *stptr; |
107 | 109 | ||
108 | if (!cs) | 110 | if (!cs) |
@@ -1070,7 +1072,7 @@ setup_w6692(struct IsdnCard *card) | |||
1070 | id_list[cs->subtyp].card_name, cs->irq, | 1072 | id_list[cs->subtyp].card_name, cs->irq, |
1071 | cs->hw.w6692.iobase); | 1073 | cs->hw.w6692.iobase); |
1072 | 1074 | ||
1073 | INIT_WORK(&cs->tqueue, (void *)(void *) W6692_bh, cs); | 1075 | INIT_WORK(&cs->tqueue, W6692_bh); |
1074 | cs->readW6692 = &ReadW6692; | 1076 | cs->readW6692 = &ReadW6692; |
1075 | cs->writeW6692 = &WriteW6692; | 1077 | cs->writeW6692 = &WriteW6692; |
1076 | cs->readisacfifo = &ReadISACfifo; | 1078 | cs->readisacfifo = &ReadISACfifo; |
diff --git a/drivers/isdn/hysdn/boardergo.c b/drivers/isdn/hysdn/boardergo.c index 82e42a80dc4b..a1206498a1cf 100644 --- a/drivers/isdn/hysdn/boardergo.c +++ b/drivers/isdn/hysdn/boardergo.c | |||
@@ -71,8 +71,9 @@ ergo_interrupt(int intno, void *dev_id) | |||
71 | /* may be queued from everywhere (interrupts included). */ | 71 | /* may be queued from everywhere (interrupts included). */ |
72 | /******************************************************************************/ | 72 | /******************************************************************************/ |
73 | static void | 73 | static void |
74 | ergo_irq_bh(hysdn_card * card) | 74 | ergo_irq_bh(struct work_struct *ugli_api) |
75 | { | 75 | { |
76 | hysdn_card * card = container_of(ugli_api, hysdn_card, irq_queue); | ||
76 | tErgDpram *dpr; | 77 | tErgDpram *dpr; |
77 | int again; | 78 | int again; |
78 | unsigned long flags; | 79 | unsigned long flags; |
@@ -442,7 +443,7 @@ ergo_inithardware(hysdn_card * card) | |||
442 | card->writebootseq = ergo_writebootseq; | 443 | card->writebootseq = ergo_writebootseq; |
443 | card->waitpofready = ergo_waitpofready; | 444 | card->waitpofready = ergo_waitpofready; |
444 | card->set_errlog_state = ergo_set_errlog_state; | 445 | card->set_errlog_state = ergo_set_errlog_state; |
445 | INIT_WORK(&card->irq_queue, (void *) (void *) ergo_irq_bh, card); | 446 | INIT_WORK(&card->irq_queue, ergo_irq_bh); |
446 | card->hysdn_lock = SPIN_LOCK_UNLOCKED; | 447 | card->hysdn_lock = SPIN_LOCK_UNLOCKED; |
447 | 448 | ||
448 | return (0); | 449 | return (0); |
diff --git a/drivers/isdn/i4l/isdn_net.c b/drivers/isdn/i4l/isdn_net.c index 1f8d6ae66b41..2e4daebfb7e0 100644 --- a/drivers/isdn/i4l/isdn_net.c +++ b/drivers/isdn/i4l/isdn_net.c | |||
@@ -984,9 +984,9 @@ void isdn_net_write_super(isdn_net_local *lp, struct sk_buff *skb) | |||
984 | /* | 984 | /* |
985 | * called from tq_immediate | 985 | * called from tq_immediate |
986 | */ | 986 | */ |
987 | static void isdn_net_softint(void *private) | 987 | static void isdn_net_softint(struct work_struct *work) |
988 | { | 988 | { |
989 | isdn_net_local *lp = private; | 989 | isdn_net_local *lp = container_of(work, isdn_net_local, tqueue); |
990 | struct sk_buff *skb; | 990 | struct sk_buff *skb; |
991 | 991 | ||
992 | spin_lock_bh(&lp->xmit_lock); | 992 | spin_lock_bh(&lp->xmit_lock); |
@@ -2596,7 +2596,7 @@ isdn_net_new(char *name, struct net_device *master) | |||
2596 | netdev->local->netdev = netdev; | 2596 | netdev->local->netdev = netdev; |
2597 | netdev->local->next = netdev->local; | 2597 | netdev->local->next = netdev->local; |
2598 | 2598 | ||
2599 | INIT_WORK(&netdev->local->tqueue, (void *)(void *) isdn_net_softint, netdev->local); | 2599 | INIT_WORK(&netdev->local->tqueue, isdn_net_softint); |
2600 | spin_lock_init(&netdev->local->xmit_lock); | 2600 | spin_lock_init(&netdev->local->xmit_lock); |
2601 | 2601 | ||
2602 | netdev->local->isdn_device = -1; | 2602 | netdev->local->isdn_device = -1; |
diff --git a/drivers/isdn/pcbit/drv.c b/drivers/isdn/pcbit/drv.c index 6ead5e1508b7..1966f3410a13 100644 --- a/drivers/isdn/pcbit/drv.c +++ b/drivers/isdn/pcbit/drv.c | |||
@@ -68,8 +68,6 @@ static void pcbit_set_msn(struct pcbit_dev *dev, char *list); | |||
68 | static int pcbit_check_msn(struct pcbit_dev *dev, char *msn); | 68 | static int pcbit_check_msn(struct pcbit_dev *dev, char *msn); |
69 | 69 | ||
70 | 70 | ||
71 | extern void pcbit_deliver(void * data); | ||
72 | |||
73 | int pcbit_init_dev(int board, int mem_base, int irq) | 71 | int pcbit_init_dev(int board, int mem_base, int irq) |
74 | { | 72 | { |
75 | struct pcbit_dev *dev; | 73 | struct pcbit_dev *dev; |
@@ -129,7 +127,7 @@ int pcbit_init_dev(int board, int mem_base, int irq) | |||
129 | memset(dev->b2, 0, sizeof(struct pcbit_chan)); | 127 | memset(dev->b2, 0, sizeof(struct pcbit_chan)); |
130 | dev->b2->id = 1; | 128 | dev->b2->id = 1; |
131 | 129 | ||
132 | INIT_WORK(&dev->qdelivery, pcbit_deliver, dev); | 130 | INIT_WORK(&dev->qdelivery, pcbit_deliver); |
133 | 131 | ||
134 | /* | 132 | /* |
135 | * interrupts | 133 | * interrupts |
diff --git a/drivers/isdn/pcbit/layer2.c b/drivers/isdn/pcbit/layer2.c index 937fd2120381..0c9f6df873fc 100644 --- a/drivers/isdn/pcbit/layer2.c +++ b/drivers/isdn/pcbit/layer2.c | |||
@@ -67,7 +67,6 @@ extern void pcbit_l3_receive(struct pcbit_dev *dev, ulong msg, | |||
67 | * Prototypes | 67 | * Prototypes |
68 | */ | 68 | */ |
69 | 69 | ||
70 | void pcbit_deliver(void *data); | ||
71 | static void pcbit_transmit(struct pcbit_dev *dev); | 70 | static void pcbit_transmit(struct pcbit_dev *dev); |
72 | 71 | ||
73 | static void pcbit_recv_ack(struct pcbit_dev *dev, unsigned char ack); | 72 | static void pcbit_recv_ack(struct pcbit_dev *dev, unsigned char ack); |
@@ -299,11 +298,12 @@ pcbit_transmit(struct pcbit_dev *dev) | |||
299 | */ | 298 | */ |
300 | 299 | ||
301 | void | 300 | void |
302 | pcbit_deliver(void *data) | 301 | pcbit_deliver(struct work_struct *work) |
303 | { | 302 | { |
304 | struct frame_buf *frame; | 303 | struct frame_buf *frame; |
305 | unsigned long flags, msg; | 304 | unsigned long flags, msg; |
306 | struct pcbit_dev *dev = (struct pcbit_dev *) data; | 305 | struct pcbit_dev *dev = |
306 | container_of(work, struct pcbit_dev, qdelivery); | ||
307 | 307 | ||
308 | spin_lock_irqsave(&dev->lock, flags); | 308 | spin_lock_irqsave(&dev->lock, flags); |
309 | 309 | ||
diff --git a/drivers/isdn/pcbit/pcbit.h b/drivers/isdn/pcbit/pcbit.h index 388bacefd23a..19c18e88ff16 100644 --- a/drivers/isdn/pcbit/pcbit.h +++ b/drivers/isdn/pcbit/pcbit.h | |||
@@ -166,4 +166,6 @@ struct pcbit_ioctl { | |||
166 | #define L2_RUNNING 5 | 166 | #define L2_RUNNING 5 |
167 | #define L2_ERROR 6 | 167 | #define L2_ERROR 6 |
168 | 168 | ||
169 | extern void pcbit_deliver(struct work_struct *work); | ||
170 | |||
169 | #endif | 171 | #endif |