diff options
Diffstat (limited to 'drivers/isdn')
62 files changed, 256 insertions, 338 deletions
diff --git a/drivers/isdn/Kconfig b/drivers/isdn/Kconfig index a233ed53913a..86cd75a0e84d 100644 --- a/drivers/isdn/Kconfig +++ b/drivers/isdn/Kconfig | |||
@@ -4,7 +4,7 @@ | |||
4 | 4 | ||
5 | menuconfig ISDN | 5 | menuconfig ISDN |
6 | bool "ISDN support" | 6 | bool "ISDN support" |
7 | depends on NET | 7 | depends on NET && NETDEVICES |
8 | depends on !S390 && !UML | 8 | depends on !S390 && !UML |
9 | ---help--- | 9 | ---help--- |
10 | ISDN ("Integrated Services Digital Network", called RNIS in France) | 10 | ISDN ("Integrated Services Digital Network", called RNIS in France) |
diff --git a/drivers/isdn/capi/capi.c b/drivers/isdn/capi/capi.c index c679867c2ccd..89562a845f6a 100644 --- a/drivers/isdn/capi/capi.c +++ b/drivers/isdn/capi/capi.c | |||
@@ -77,8 +77,6 @@ struct ackqueue_entry { | |||
77 | }; | 77 | }; |
78 | 78 | ||
79 | struct capiminor { | 79 | struct capiminor { |
80 | struct kref kref; | ||
81 | |||
82 | unsigned int minor; | 80 | unsigned int minor; |
83 | 81 | ||
84 | struct capi20_appl *ap; | 82 | struct capi20_appl *ap; |
@@ -190,7 +188,20 @@ static void capiminor_del_all_ack(struct capiminor *mp) | |||
190 | 188 | ||
191 | /* -------- struct capiminor ---------------------------------------- */ | 189 | /* -------- struct capiminor ---------------------------------------- */ |
192 | 190 | ||
193 | static const struct tty_port_operations capiminor_port_ops; /* we have none */ | 191 | static void capiminor_destroy(struct tty_port *port) |
192 | { | ||
193 | struct capiminor *mp = container_of(port, struct capiminor, port); | ||
194 | |||
195 | kfree_skb(mp->outskb); | ||
196 | skb_queue_purge(&mp->inqueue); | ||
197 | skb_queue_purge(&mp->outqueue); | ||
198 | capiminor_del_all_ack(mp); | ||
199 | kfree(mp); | ||
200 | } | ||
201 | |||
202 | static const struct tty_port_operations capiminor_port_ops = { | ||
203 | .destruct = capiminor_destroy, | ||
204 | }; | ||
194 | 205 | ||
195 | static struct capiminor *capiminor_alloc(struct capi20_appl *ap, u32 ncci) | 206 | static struct capiminor *capiminor_alloc(struct capi20_appl *ap, u32 ncci) |
196 | { | 207 | { |
@@ -204,8 +215,6 @@ static struct capiminor *capiminor_alloc(struct capi20_appl *ap, u32 ncci) | |||
204 | return NULL; | 215 | return NULL; |
205 | } | 216 | } |
206 | 217 | ||
207 | kref_init(&mp->kref); | ||
208 | |||
209 | mp->ap = ap; | 218 | mp->ap = ap; |
210 | mp->ncci = ncci; | 219 | mp->ncci = ncci; |
211 | INIT_LIST_HEAD(&mp->ackqueue); | 220 | INIT_LIST_HEAD(&mp->ackqueue); |
@@ -247,21 +256,10 @@ err_out2: | |||
247 | spin_unlock(&capiminors_lock); | 256 | spin_unlock(&capiminors_lock); |
248 | 257 | ||
249 | err_out1: | 258 | err_out1: |
250 | kfree(mp); | 259 | tty_port_put(&mp->port); |
251 | return NULL; | 260 | return NULL; |
252 | } | 261 | } |
253 | 262 | ||
254 | static void capiminor_destroy(struct kref *kref) | ||
255 | { | ||
256 | struct capiminor *mp = container_of(kref, struct capiminor, kref); | ||
257 | |||
258 | kfree_skb(mp->outskb); | ||
259 | skb_queue_purge(&mp->inqueue); | ||
260 | skb_queue_purge(&mp->outqueue); | ||
261 | capiminor_del_all_ack(mp); | ||
262 | kfree(mp); | ||
263 | } | ||
264 | |||
265 | static struct capiminor *capiminor_get(unsigned int minor) | 263 | static struct capiminor *capiminor_get(unsigned int minor) |
266 | { | 264 | { |
267 | struct capiminor *mp; | 265 | struct capiminor *mp; |
@@ -269,7 +267,7 @@ static struct capiminor *capiminor_get(unsigned int minor) | |||
269 | spin_lock(&capiminors_lock); | 267 | spin_lock(&capiminors_lock); |
270 | mp = capiminors[minor]; | 268 | mp = capiminors[minor]; |
271 | if (mp) | 269 | if (mp) |
272 | kref_get(&mp->kref); | 270 | tty_port_get(&mp->port); |
273 | spin_unlock(&capiminors_lock); | 271 | spin_unlock(&capiminors_lock); |
274 | 272 | ||
275 | return mp; | 273 | return mp; |
@@ -277,7 +275,7 @@ static struct capiminor *capiminor_get(unsigned int minor) | |||
277 | 275 | ||
278 | static inline void capiminor_put(struct capiminor *mp) | 276 | static inline void capiminor_put(struct capiminor *mp) |
279 | { | 277 | { |
280 | kref_put(&mp->kref, capiminor_destroy); | 278 | tty_port_put(&mp->port); |
281 | } | 279 | } |
282 | 280 | ||
283 | static void capiminor_free(struct capiminor *mp) | 281 | static void capiminor_free(struct capiminor *mp) |
diff --git a/drivers/isdn/gigaset/capi.c b/drivers/isdn/gigaset/capi.c index 68452b768da2..03a0a01a4054 100644 --- a/drivers/isdn/gigaset/capi.c +++ b/drivers/isdn/gigaset/capi.c | |||
@@ -248,6 +248,8 @@ static inline void dump_rawmsg(enum debuglevel level, const char *tag, | |||
248 | CAPIMSG_APPID(data), CAPIMSG_MSGID(data), l, | 248 | CAPIMSG_APPID(data), CAPIMSG_MSGID(data), l, |
249 | CAPIMSG_CONTROL(data)); | 249 | CAPIMSG_CONTROL(data)); |
250 | l -= 12; | 250 | l -= 12; |
251 | if (l <= 0) | ||
252 | return; | ||
251 | dbgline = kmalloc(3 * l, GFP_ATOMIC); | 253 | dbgline = kmalloc(3 * l, GFP_ATOMIC); |
252 | if (!dbgline) | 254 | if (!dbgline) |
253 | return; | 255 | return; |
diff --git a/drivers/isdn/gigaset/common.c b/drivers/isdn/gigaset/common.c index 30a6b174fbb0..6849a11a1b24 100644 --- a/drivers/isdn/gigaset/common.c +++ b/drivers/isdn/gigaset/common.c | |||
@@ -507,6 +507,7 @@ void gigaset_freecs(struct cardstate *cs) | |||
507 | gig_dbg(DEBUG_INIT, "clearing at_state"); | 507 | gig_dbg(DEBUG_INIT, "clearing at_state"); |
508 | clear_at_state(&cs->at_state); | 508 | clear_at_state(&cs->at_state); |
509 | dealloc_temp_at_states(cs); | 509 | dealloc_temp_at_states(cs); |
510 | tty_port_destroy(&cs->port); | ||
510 | 511 | ||
511 | /* fall through */ | 512 | /* fall through */ |
512 | case 0: /* error in basic setup */ | 513 | case 0: /* error in basic setup */ |
diff --git a/drivers/isdn/hardware/avm/b1pci.c b/drivers/isdn/hardware/avm/b1pci.c index b305e6b2b8ee..ac4863c2ecbc 100644 --- a/drivers/isdn/hardware/avm/b1pci.c +++ b/drivers/isdn/hardware/avm/b1pci.c | |||
@@ -299,8 +299,8 @@ static void b1pciv4_remove(struct pci_dev *pdev) | |||
299 | 299 | ||
300 | #endif /* CONFIG_ISDN_DRV_AVMB1_B1PCIV4 */ | 300 | #endif /* CONFIG_ISDN_DRV_AVMB1_B1PCIV4 */ |
301 | 301 | ||
302 | static int __devinit b1pci_pci_probe(struct pci_dev *pdev, | 302 | static int b1pci_pci_probe(struct pci_dev *pdev, |
303 | const struct pci_device_id *ent) | 303 | const struct pci_device_id *ent) |
304 | { | 304 | { |
305 | struct capicardparams param; | 305 | struct capicardparams param; |
306 | int retval; | 306 | int retval; |
@@ -344,7 +344,7 @@ static int __devinit b1pci_pci_probe(struct pci_dev *pdev, | |||
344 | return retval; | 344 | return retval; |
345 | } | 345 | } |
346 | 346 | ||
347 | static void __devexit b1pci_pci_remove(struct pci_dev *pdev) | 347 | static void b1pci_pci_remove(struct pci_dev *pdev) |
348 | { | 348 | { |
349 | #ifdef CONFIG_ISDN_DRV_AVMB1_B1PCIV4 | 349 | #ifdef CONFIG_ISDN_DRV_AVMB1_B1PCIV4 |
350 | avmcard *card = pci_get_drvdata(pdev); | 350 | avmcard *card = pci_get_drvdata(pdev); |
@@ -362,7 +362,7 @@ static struct pci_driver b1pci_pci_driver = { | |||
362 | .name = "b1pci", | 362 | .name = "b1pci", |
363 | .id_table = b1pci_pci_tbl, | 363 | .id_table = b1pci_pci_tbl, |
364 | .probe = b1pci_pci_probe, | 364 | .probe = b1pci_pci_probe, |
365 | .remove = __devexit_p(b1pci_pci_remove), | 365 | .remove = b1pci_pci_remove, |
366 | }; | 366 | }; |
367 | 367 | ||
368 | static struct capi_driver capi_driver_b1pci = { | 368 | static struct capi_driver capi_driver_b1pci = { |
diff --git a/drivers/isdn/hardware/avm/c4.c b/drivers/isdn/hardware/avm/c4.c index 98f18812441d..1d7fc44e3eef 100644 --- a/drivers/isdn/hardware/avm/c4.c +++ b/drivers/isdn/hardware/avm/c4.c | |||
@@ -1249,8 +1249,7 @@ err: | |||
1249 | 1249 | ||
1250 | /* ------------------------------------------------------------- */ | 1250 | /* ------------------------------------------------------------- */ |
1251 | 1251 | ||
1252 | static int __devinit c4_probe(struct pci_dev *dev, | 1252 | static int c4_probe(struct pci_dev *dev, const struct pci_device_id *ent) |
1253 | const struct pci_device_id *ent) | ||
1254 | { | 1253 | { |
1255 | int nr = ent->driver_data; | 1254 | int nr = ent->driver_data; |
1256 | int retval = 0; | 1255 | int retval = 0; |
diff --git a/drivers/isdn/hardware/avm/t1pci.c b/drivers/isdn/hardware/avm/t1pci.c index cb9a30427bd2..2180b1685691 100644 --- a/drivers/isdn/hardware/avm/t1pci.c +++ b/drivers/isdn/hardware/avm/t1pci.c | |||
@@ -187,8 +187,7 @@ static char *t1pci_procinfo(struct capi_ctr *ctrl) | |||
187 | 187 | ||
188 | /* ------------------------------------------------------------- */ | 188 | /* ------------------------------------------------------------- */ |
189 | 189 | ||
190 | static int __devinit t1pci_probe(struct pci_dev *dev, | 190 | static int t1pci_probe(struct pci_dev *dev, const struct pci_device_id *ent) |
191 | const struct pci_device_id *ent) | ||
192 | { | 191 | { |
193 | struct capicardparams param; | 192 | struct capicardparams param; |
194 | int retval; | 193 | int retval; |
diff --git a/drivers/isdn/hardware/eicon/divasmain.c b/drivers/isdn/hardware/eicon/divasmain.c index ca6d276bb256..52377b4bf039 100644 --- a/drivers/isdn/hardware/eicon/divasmain.c +++ b/drivers/isdn/hardware/eicon/divasmain.c | |||
@@ -150,12 +150,12 @@ MODULE_DEVICE_TABLE(pci, divas_pci_tbl); | |||
150 | 150 | ||
151 | static int divas_init_one(struct pci_dev *pdev, | 151 | static int divas_init_one(struct pci_dev *pdev, |
152 | const struct pci_device_id *ent); | 152 | const struct pci_device_id *ent); |
153 | static void __devexit divas_remove_one(struct pci_dev *pdev); | 153 | static void divas_remove_one(struct pci_dev *pdev); |
154 | 154 | ||
155 | static struct pci_driver diva_pci_driver = { | 155 | static struct pci_driver diva_pci_driver = { |
156 | .name = "divas", | 156 | .name = "divas", |
157 | .probe = divas_init_one, | 157 | .probe = divas_init_one, |
158 | .remove = __devexit_p(divas_remove_one), | 158 | .remove = divas_remove_one, |
159 | .id_table = divas_pci_tbl, | 159 | .id_table = divas_pci_tbl, |
160 | }; | 160 | }; |
161 | 161 | ||
@@ -688,8 +688,7 @@ static int __init divas_register_chrdev(void) | |||
688 | /* -------------------------------------------------------------------------- | 688 | /* -------------------------------------------------------------------------- |
689 | PCI driver section | 689 | PCI driver section |
690 | -------------------------------------------------------------------------- */ | 690 | -------------------------------------------------------------------------- */ |
691 | static int __devinit divas_init_one(struct pci_dev *pdev, | 691 | static int divas_init_one(struct pci_dev *pdev, const struct pci_device_id *ent) |
692 | const struct pci_device_id *ent) | ||
693 | { | 692 | { |
694 | void *pdiva = NULL; | 693 | void *pdiva = NULL; |
695 | u8 pci_latency; | 694 | u8 pci_latency; |
@@ -749,7 +748,7 @@ static int __devinit divas_init_one(struct pci_dev *pdev, | |||
749 | return (0); | 748 | return (0); |
750 | } | 749 | } |
751 | 750 | ||
752 | static void __devexit divas_remove_one(struct pci_dev *pdev) | 751 | static void divas_remove_one(struct pci_dev *pdev) |
753 | { | 752 | { |
754 | void *pdiva = pci_get_drvdata(pdev); | 753 | void *pdiva = pci_get_drvdata(pdev); |
755 | 754 | ||
diff --git a/drivers/isdn/hardware/mISDN/avmfritz.c b/drivers/isdn/hardware/mISDN/avmfritz.c index dceaec821b0e..292991c90c02 100644 --- a/drivers/isdn/hardware/mISDN/avmfritz.c +++ b/drivers/isdn/hardware/mISDN/avmfritz.c | |||
@@ -1034,7 +1034,7 @@ release_card(struct fritzcard *card) | |||
1034 | AVM_cnt--; | 1034 | AVM_cnt--; |
1035 | } | 1035 | } |
1036 | 1036 | ||
1037 | static int __devinit | 1037 | static int |
1038 | setup_instance(struct fritzcard *card) | 1038 | setup_instance(struct fritzcard *card) |
1039 | { | 1039 | { |
1040 | int i, err; | 1040 | int i, err; |
@@ -1096,7 +1096,7 @@ error: | |||
1096 | return err; | 1096 | return err; |
1097 | } | 1097 | } |
1098 | 1098 | ||
1099 | static int __devinit | 1099 | static int |
1100 | fritzpci_probe(struct pci_dev *pdev, const struct pci_device_id *ent) | 1100 | fritzpci_probe(struct pci_dev *pdev, const struct pci_device_id *ent) |
1101 | { | 1101 | { |
1102 | int err = -ENOMEM; | 1102 | int err = -ENOMEM; |
@@ -1130,7 +1130,7 @@ fritzpci_probe(struct pci_dev *pdev, const struct pci_device_id *ent) | |||
1130 | return err; | 1130 | return err; |
1131 | } | 1131 | } |
1132 | 1132 | ||
1133 | static void __devexit | 1133 | static void |
1134 | fritz_remove_pci(struct pci_dev *pdev) | 1134 | fritz_remove_pci(struct pci_dev *pdev) |
1135 | { | 1135 | { |
1136 | struct fritzcard *card = pci_get_drvdata(pdev); | 1136 | struct fritzcard *card = pci_get_drvdata(pdev); |
@@ -1142,7 +1142,7 @@ fritz_remove_pci(struct pci_dev *pdev) | |||
1142 | pr_info("%s: drvdata already removed\n", __func__); | 1142 | pr_info("%s: drvdata already removed\n", __func__); |
1143 | } | 1143 | } |
1144 | 1144 | ||
1145 | static struct pci_device_id fcpci_ids[] __devinitdata = { | 1145 | static struct pci_device_id fcpci_ids[] = { |
1146 | { PCI_VENDOR_ID_AVM, PCI_DEVICE_ID_AVM_A1, PCI_ANY_ID, PCI_ANY_ID, | 1146 | { PCI_VENDOR_ID_AVM, PCI_DEVICE_ID_AVM_A1, PCI_ANY_ID, PCI_ANY_ID, |
1147 | 0, 0, (unsigned long) "Fritz!Card PCI"}, | 1147 | 0, 0, (unsigned long) "Fritz!Card PCI"}, |
1148 | { PCI_VENDOR_ID_AVM, PCI_DEVICE_ID_AVM_A1_V2, PCI_ANY_ID, PCI_ANY_ID, | 1148 | { PCI_VENDOR_ID_AVM, PCI_DEVICE_ID_AVM_A1_V2, PCI_ANY_ID, PCI_ANY_ID, |
@@ -1154,7 +1154,7 @@ MODULE_DEVICE_TABLE(pci, fcpci_ids); | |||
1154 | static struct pci_driver fcpci_driver = { | 1154 | static struct pci_driver fcpci_driver = { |
1155 | .name = "fcpci", | 1155 | .name = "fcpci", |
1156 | .probe = fritzpci_probe, | 1156 | .probe = fritzpci_probe, |
1157 | .remove = __devexit_p(fritz_remove_pci), | 1157 | .remove = fritz_remove_pci, |
1158 | .id_table = fcpci_ids, | 1158 | .id_table = fcpci_ids, |
1159 | }; | 1159 | }; |
1160 | 1160 | ||
diff --git a/drivers/isdn/hardware/mISDN/hfcmulti.c b/drivers/isdn/hardware/mISDN/hfcmulti.c index f02794203bb1..28543d795188 100644 --- a/drivers/isdn/hardware/mISDN/hfcmulti.c +++ b/drivers/isdn/hardware/mISDN/hfcmulti.c | |||
@@ -5274,7 +5274,7 @@ free_card: | |||
5274 | return ret_err; | 5274 | return ret_err; |
5275 | } | 5275 | } |
5276 | 5276 | ||
5277 | static void __devexit hfc_remove_pci(struct pci_dev *pdev) | 5277 | static void hfc_remove_pci(struct pci_dev *pdev) |
5278 | { | 5278 | { |
5279 | struct hfc_multi *card = pci_get_drvdata(pdev); | 5279 | struct hfc_multi *card = pci_get_drvdata(pdev); |
5280 | u_long flags; | 5280 | u_long flags; |
@@ -5351,7 +5351,7 @@ static const struct hm_map hfcm_map[] = { | |||
5351 | 5351 | ||
5352 | #undef H | 5352 | #undef H |
5353 | #define H(x) ((unsigned long)&hfcm_map[x]) | 5353 | #define H(x) ((unsigned long)&hfcm_map[x]) |
5354 | static struct pci_device_id hfmultipci_ids[] __devinitdata = { | 5354 | static struct pci_device_id hfmultipci_ids[] = { |
5355 | 5355 | ||
5356 | /* Cards with HFC-4S Chip */ | 5356 | /* Cards with HFC-4S Chip */ |
5357 | { PCI_VENDOR_ID_CCD, PCI_DEVICE_ID_CCD_HFC4S, PCI_VENDOR_ID_CCD, | 5357 | { PCI_VENDOR_ID_CCD, PCI_DEVICE_ID_CCD_HFC4S, PCI_VENDOR_ID_CCD, |
@@ -5472,7 +5472,7 @@ hfcmulti_probe(struct pci_dev *pdev, const struct pci_device_id *ent) | |||
5472 | static struct pci_driver hfcmultipci_driver = { | 5472 | static struct pci_driver hfcmultipci_driver = { |
5473 | .name = "hfc_multi", | 5473 | .name = "hfc_multi", |
5474 | .probe = hfcmulti_probe, | 5474 | .probe = hfcmulti_probe, |
5475 | .remove = __devexit_p(hfc_remove_pci), | 5475 | .remove = hfc_remove_pci, |
5476 | .id_table = hfmultipci_ids, | 5476 | .id_table = hfmultipci_ids, |
5477 | }; | 5477 | }; |
5478 | 5478 | ||
diff --git a/drivers/isdn/hardware/mISDN/hfcpci.c b/drivers/isdn/hardware/mISDN/hfcpci.c index 6e99d73563b8..a7e4939787c9 100644 --- a/drivers/isdn/hardware/mISDN/hfcpci.c +++ b/drivers/isdn/hardware/mISDN/hfcpci.c | |||
@@ -2215,7 +2215,7 @@ static struct pci_device_id hfc_ids[] = | |||
2215 | {}, | 2215 | {}, |
2216 | }; | 2216 | }; |
2217 | 2217 | ||
2218 | static int __devinit | 2218 | static int |
2219 | hfc_probe(struct pci_dev *pdev, const struct pci_device_id *ent) | 2219 | hfc_probe(struct pci_dev *pdev, const struct pci_device_id *ent) |
2220 | { | 2220 | { |
2221 | int err = -ENOMEM; | 2221 | int err = -ENOMEM; |
@@ -2246,7 +2246,7 @@ hfc_probe(struct pci_dev *pdev, const struct pci_device_id *ent) | |||
2246 | return err; | 2246 | return err; |
2247 | } | 2247 | } |
2248 | 2248 | ||
2249 | static void __devexit | 2249 | static void |
2250 | hfc_remove_pci(struct pci_dev *pdev) | 2250 | hfc_remove_pci(struct pci_dev *pdev) |
2251 | { | 2251 | { |
2252 | struct hfc_pci *card = pci_get_drvdata(pdev); | 2252 | struct hfc_pci *card = pci_get_drvdata(pdev); |
@@ -2263,7 +2263,7 @@ hfc_remove_pci(struct pci_dev *pdev) | |||
2263 | static struct pci_driver hfc_driver = { | 2263 | static struct pci_driver hfc_driver = { |
2264 | .name = "hfcpci", | 2264 | .name = "hfcpci", |
2265 | .probe = hfc_probe, | 2265 | .probe = hfc_probe, |
2266 | .remove = __devexit_p(hfc_remove_pci), | 2266 | .remove = hfc_remove_pci, |
2267 | .id_table = hfc_ids, | 2267 | .id_table = hfc_ids, |
2268 | }; | 2268 | }; |
2269 | 2269 | ||
diff --git a/drivers/isdn/hardware/mISDN/mISDNinfineon.c b/drivers/isdn/hardware/mISDN/mISDNinfineon.c index 631eb3fa63cf..c1493f4162fb 100644 --- a/drivers/isdn/hardware/mISDN/mISDNinfineon.c +++ b/drivers/isdn/hardware/mISDN/mISDNinfineon.c | |||
@@ -125,7 +125,7 @@ struct inf_hw { | |||
125 | #define PCI_SUBVENDOR_SEDLBAUER_PCI 0x53 | 125 | #define PCI_SUBVENDOR_SEDLBAUER_PCI 0x53 |
126 | #define PCI_SUB_ID_SEDLBAUER 0x01 | 126 | #define PCI_SUB_ID_SEDLBAUER 0x01 |
127 | 127 | ||
128 | static struct pci_device_id infineon_ids[] __devinitdata = { | 128 | static struct pci_device_id infineon_ids[] = { |
129 | { PCI_VDEVICE(EICON, PCI_DEVICE_ID_EICON_DIVA20), INF_DIVA20 }, | 129 | { PCI_VDEVICE(EICON, PCI_DEVICE_ID_EICON_DIVA20), INF_DIVA20 }, |
130 | { PCI_VDEVICE(EICON, PCI_DEVICE_ID_EICON_DIVA20_U), INF_DIVA20U }, | 130 | { PCI_VDEVICE(EICON, PCI_DEVICE_ID_EICON_DIVA20_U), INF_DIVA20U }, |
131 | { PCI_VDEVICE(EICON, PCI_DEVICE_ID_EICON_DIVA201), INF_DIVA201 }, | 131 | { PCI_VDEVICE(EICON, PCI_DEVICE_ID_EICON_DIVA201), INF_DIVA201 }, |
@@ -603,7 +603,7 @@ inf_ctrl(struct inf_hw *hw, u32 cmd, u_long arg) | |||
603 | return ret; | 603 | return ret; |
604 | } | 604 | } |
605 | 605 | ||
606 | static int __devinit | 606 | static int |
607 | init_irq(struct inf_hw *hw) | 607 | init_irq(struct inf_hw *hw) |
608 | { | 608 | { |
609 | int ret, cnt = 3; | 609 | int ret, cnt = 3; |
@@ -662,7 +662,7 @@ release_io(struct inf_hw *hw) | |||
662 | } | 662 | } |
663 | } | 663 | } |
664 | 664 | ||
665 | static int __devinit | 665 | static int |
666 | setup_io(struct inf_hw *hw) | 666 | setup_io(struct inf_hw *hw) |
667 | { | 667 | { |
668 | int err = 0; | 668 | int err = 0; |
@@ -896,7 +896,7 @@ release_card(struct inf_hw *card) { | |||
896 | inf_cnt--; | 896 | inf_cnt--; |
897 | } | 897 | } |
898 | 898 | ||
899 | static int __devinit | 899 | static int |
900 | setup_instance(struct inf_hw *card) | 900 | setup_instance(struct inf_hw *card) |
901 | { | 901 | { |
902 | int err; | 902 | int err; |
@@ -1060,7 +1060,7 @@ static const struct inf_cinfo inf_card_info[] = { | |||
1060 | } | 1060 | } |
1061 | }; | 1061 | }; |
1062 | 1062 | ||
1063 | static const struct inf_cinfo * __devinit | 1063 | static const struct inf_cinfo * |
1064 | get_card_info(enum inf_types typ) | 1064 | get_card_info(enum inf_types typ) |
1065 | { | 1065 | { |
1066 | const struct inf_cinfo *ci = inf_card_info; | 1066 | const struct inf_cinfo *ci = inf_card_info; |
@@ -1073,7 +1073,7 @@ get_card_info(enum inf_types typ) | |||
1073 | return NULL; | 1073 | return NULL; |
1074 | } | 1074 | } |
1075 | 1075 | ||
1076 | static int __devinit | 1076 | static int |
1077 | inf_probe(struct pci_dev *pdev, const struct pci_device_id *ent) | 1077 | inf_probe(struct pci_dev *pdev, const struct pci_device_id *ent) |
1078 | { | 1078 | { |
1079 | int err = -ENOMEM; | 1079 | int err = -ENOMEM; |
@@ -1135,7 +1135,7 @@ inf_probe(struct pci_dev *pdev, const struct pci_device_id *ent) | |||
1135 | return err; | 1135 | return err; |
1136 | } | 1136 | } |
1137 | 1137 | ||
1138 | static void __devexit | 1138 | static void |
1139 | inf_remove(struct pci_dev *pdev) | 1139 | inf_remove(struct pci_dev *pdev) |
1140 | { | 1140 | { |
1141 | struct inf_hw *card = pci_get_drvdata(pdev); | 1141 | struct inf_hw *card = pci_get_drvdata(pdev); |
@@ -1149,7 +1149,7 @@ inf_remove(struct pci_dev *pdev) | |||
1149 | static struct pci_driver infineon_driver = { | 1149 | static struct pci_driver infineon_driver = { |
1150 | .name = "ISDN Infineon pci", | 1150 | .name = "ISDN Infineon pci", |
1151 | .probe = inf_probe, | 1151 | .probe = inf_probe, |
1152 | .remove = __devexit_p(inf_remove), | 1152 | .remove = inf_remove, |
1153 | .id_table = infineon_ids, | 1153 | .id_table = infineon_ids, |
1154 | }; | 1154 | }; |
1155 | 1155 | ||
diff --git a/drivers/isdn/hardware/mISDN/netjet.c b/drivers/isdn/hardware/mISDN/netjet.c index 9bcade59eb73..8e2944784e00 100644 --- a/drivers/isdn/hardware/mISDN/netjet.c +++ b/drivers/isdn/hardware/mISDN/netjet.c | |||
@@ -1008,7 +1008,7 @@ nj_setup(struct tiger_hw *card) | |||
1008 | } | 1008 | } |
1009 | 1009 | ||
1010 | 1010 | ||
1011 | static int __devinit | 1011 | static int |
1012 | setup_instance(struct tiger_hw *card) | 1012 | setup_instance(struct tiger_hw *card) |
1013 | { | 1013 | { |
1014 | int i, err; | 1014 | int i, err; |
@@ -1059,7 +1059,7 @@ error: | |||
1059 | return err; | 1059 | return err; |
1060 | } | 1060 | } |
1061 | 1061 | ||
1062 | static int __devinit | 1062 | static int |
1063 | nj_probe(struct pci_dev *pdev, const struct pci_device_id *ent) | 1063 | nj_probe(struct pci_dev *pdev, const struct pci_device_id *ent) |
1064 | { | 1064 | { |
1065 | int err = -ENOMEM; | 1065 | int err = -ENOMEM; |
@@ -1124,7 +1124,7 @@ nj_probe(struct pci_dev *pdev, const struct pci_device_id *ent) | |||
1124 | } | 1124 | } |
1125 | 1125 | ||
1126 | 1126 | ||
1127 | static void __devexit nj_remove(struct pci_dev *pdev) | 1127 | static void nj_remove(struct pci_dev *pdev) |
1128 | { | 1128 | { |
1129 | struct tiger_hw *card = pci_get_drvdata(pdev); | 1129 | struct tiger_hw *card = pci_get_drvdata(pdev); |
1130 | 1130 | ||
@@ -1137,7 +1137,7 @@ static void __devexit nj_remove(struct pci_dev *pdev) | |||
1137 | /* We cannot select cards with PCI_SUB... IDs, since here are cards with | 1137 | /* We cannot select cards with PCI_SUB... IDs, since here are cards with |
1138 | * SUB IDs set to PCI_ANY_ID, so we need to match all and reject | 1138 | * SUB IDs set to PCI_ANY_ID, so we need to match all and reject |
1139 | * known other cards which not work with this driver - see probe function */ | 1139 | * known other cards which not work with this driver - see probe function */ |
1140 | static struct pci_device_id nj_pci_ids[] __devinitdata = { | 1140 | static struct pci_device_id nj_pci_ids[] = { |
1141 | { PCI_VENDOR_ID_TIGERJET, PCI_DEVICE_ID_TIGERJET_300, | 1141 | { PCI_VENDOR_ID_TIGERJET, PCI_DEVICE_ID_TIGERJET_300, |
1142 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, | 1142 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, |
1143 | { } | 1143 | { } |
@@ -1147,7 +1147,7 @@ MODULE_DEVICE_TABLE(pci, nj_pci_ids); | |||
1147 | static struct pci_driver nj_driver = { | 1147 | static struct pci_driver nj_driver = { |
1148 | .name = "netjet", | 1148 | .name = "netjet", |
1149 | .probe = nj_probe, | 1149 | .probe = nj_probe, |
1150 | .remove = __devexit_p(nj_remove), | 1150 | .remove = nj_remove, |
1151 | .id_table = nj_pci_ids, | 1151 | .id_table = nj_pci_ids, |
1152 | }; | 1152 | }; |
1153 | 1153 | ||
diff --git a/drivers/isdn/hardware/mISDN/speedfax.c b/drivers/isdn/hardware/mISDN/speedfax.c index 93f344d74e54..9815bb4eec9c 100644 --- a/drivers/isdn/hardware/mISDN/speedfax.c +++ b/drivers/isdn/hardware/mISDN/speedfax.c | |||
@@ -282,7 +282,7 @@ sfax_dctrl(struct mISDNchannel *ch, u32 cmd, void *arg) | |||
282 | return err; | 282 | return err; |
283 | } | 283 | } |
284 | 284 | ||
285 | static int __devinit | 285 | static int |
286 | init_card(struct sfax_hw *sf) | 286 | init_card(struct sfax_hw *sf) |
287 | { | 287 | { |
288 | int ret, cnt = 3; | 288 | int ret, cnt = 3; |
@@ -321,7 +321,7 @@ init_card(struct sfax_hw *sf) | |||
321 | } | 321 | } |
322 | 322 | ||
323 | 323 | ||
324 | static int __devinit | 324 | static int |
325 | setup_speedfax(struct sfax_hw *sf) | 325 | setup_speedfax(struct sfax_hw *sf) |
326 | { | 326 | { |
327 | u_long flags; | 327 | u_long flags; |
@@ -371,7 +371,7 @@ release_card(struct sfax_hw *card) { | |||
371 | sfax_cnt--; | 371 | sfax_cnt--; |
372 | } | 372 | } |
373 | 373 | ||
374 | static int __devinit | 374 | static int |
375 | setup_instance(struct sfax_hw *card) | 375 | setup_instance(struct sfax_hw *card) |
376 | { | 376 | { |
377 | const struct firmware *firmware; | 377 | const struct firmware *firmware; |
@@ -451,7 +451,7 @@ error_fw: | |||
451 | return err; | 451 | return err; |
452 | } | 452 | } |
453 | 453 | ||
454 | static int __devinit | 454 | static int |
455 | sfaxpci_probe(struct pci_dev *pdev, const struct pci_device_id *ent) | 455 | sfaxpci_probe(struct pci_dev *pdev, const struct pci_device_id *ent) |
456 | { | 456 | { |
457 | int err = -ENOMEM; | 457 | int err = -ENOMEM; |
@@ -480,7 +480,7 @@ sfaxpci_probe(struct pci_dev *pdev, const struct pci_device_id *ent) | |||
480 | return err; | 480 | return err; |
481 | } | 481 | } |
482 | 482 | ||
483 | static void __devexit | 483 | static void |
484 | sfax_remove_pci(struct pci_dev *pdev) | 484 | sfax_remove_pci(struct pci_dev *pdev) |
485 | { | 485 | { |
486 | struct sfax_hw *card = pci_get_drvdata(pdev); | 486 | struct sfax_hw *card = pci_get_drvdata(pdev); |
@@ -491,7 +491,7 @@ sfax_remove_pci(struct pci_dev *pdev) | |||
491 | pr_debug("%s: drvdata already removed\n", __func__); | 491 | pr_debug("%s: drvdata already removed\n", __func__); |
492 | } | 492 | } |
493 | 493 | ||
494 | static struct pci_device_id sfaxpci_ids[] __devinitdata = { | 494 | static struct pci_device_id sfaxpci_ids[] = { |
495 | { PCI_VENDOR_ID_TIGERJET, PCI_DEVICE_ID_TIGERJET_100, | 495 | { PCI_VENDOR_ID_TIGERJET, PCI_DEVICE_ID_TIGERJET_100, |
496 | PCI_SUBVENDOR_SPEEDFAX_PYRAMID, PCI_SUB_ID_SEDLBAUER, | 496 | PCI_SUBVENDOR_SPEEDFAX_PYRAMID, PCI_SUB_ID_SEDLBAUER, |
497 | 0, 0, (unsigned long) "Pyramid Speedfax + PCI" | 497 | 0, 0, (unsigned long) "Pyramid Speedfax + PCI" |
@@ -507,7 +507,7 @@ MODULE_DEVICE_TABLE(pci, sfaxpci_ids); | |||
507 | static struct pci_driver sfaxpci_driver = { | 507 | static struct pci_driver sfaxpci_driver = { |
508 | .name = "speedfax+ pci", | 508 | .name = "speedfax+ pci", |
509 | .probe = sfaxpci_probe, | 509 | .probe = sfaxpci_probe, |
510 | .remove = __devexit_p(sfax_remove_pci), | 510 | .remove = sfax_remove_pci, |
511 | .id_table = sfaxpci_ids, | 511 | .id_table = sfaxpci_ids, |
512 | }; | 512 | }; |
513 | 513 | ||
diff --git a/drivers/isdn/hardware/mISDN/w6692.c b/drivers/isdn/hardware/mISDN/w6692.c index 335fe6455002..de69f6828c76 100644 --- a/drivers/isdn/hardware/mISDN/w6692.c +++ b/drivers/isdn/hardware/mISDN/w6692.c | |||
@@ -1355,7 +1355,7 @@ error_setup: | |||
1355 | return err; | 1355 | return err; |
1356 | } | 1356 | } |
1357 | 1357 | ||
1358 | static int __devinit | 1358 | static int |
1359 | w6692_probe(struct pci_dev *pdev, const struct pci_device_id *ent) | 1359 | w6692_probe(struct pci_dev *pdev, const struct pci_device_id *ent) |
1360 | { | 1360 | { |
1361 | int err = -ENOMEM; | 1361 | int err = -ENOMEM; |
@@ -1387,7 +1387,7 @@ w6692_probe(struct pci_dev *pdev, const struct pci_device_id *ent) | |||
1387 | return err; | 1387 | return err; |
1388 | } | 1388 | } |
1389 | 1389 | ||
1390 | static void __devexit | 1390 | static void |
1391 | w6692_remove_pci(struct pci_dev *pdev) | 1391 | w6692_remove_pci(struct pci_dev *pdev) |
1392 | { | 1392 | { |
1393 | struct w6692_hw *card = pci_get_drvdata(pdev); | 1393 | struct w6692_hw *card = pci_get_drvdata(pdev); |
@@ -1414,7 +1414,7 @@ MODULE_DEVICE_TABLE(pci, w6692_ids); | |||
1414 | static struct pci_driver w6692_driver = { | 1414 | static struct pci_driver w6692_driver = { |
1415 | .name = "w6692", | 1415 | .name = "w6692", |
1416 | .probe = w6692_probe, | 1416 | .probe = w6692_probe, |
1417 | .remove = __devexit_p(w6692_remove_pci), | 1417 | .remove = w6692_remove_pci, |
1418 | .id_table = w6692_ids, | 1418 | .id_table = w6692_ids, |
1419 | }; | 1419 | }; |
1420 | 1420 | ||
diff --git a/drivers/isdn/hisax/amd7930_fn.c b/drivers/isdn/hisax/amd7930_fn.c index 525471e776a7..1063babe1d3a 100644 --- a/drivers/isdn/hisax/amd7930_fn.c +++ b/drivers/isdn/hisax/amd7930_fn.c | |||
@@ -786,8 +786,7 @@ void Amd7930_init(struct IsdnCardState *cs) | |||
786 | } | 786 | } |
787 | } | 787 | } |
788 | 788 | ||
789 | void __devinit | 789 | void setup_Amd7930(struct IsdnCardState *cs) |
790 | setup_Amd7930(struct IsdnCardState *cs) | ||
791 | { | 790 | { |
792 | INIT_WORK(&cs->tqueue, Amd7930_bh); | 791 | INIT_WORK(&cs->tqueue, Amd7930_bh); |
793 | cs->dbusytimer.function = (void *) dbusy_timer_handler; | 792 | cs->dbusytimer.function = (void *) dbusy_timer_handler; |
diff --git a/drivers/isdn/hisax/asuscom.c b/drivers/isdn/hisax/asuscom.c index 2b74a40ad2a0..62f9c43e2377 100644 --- a/drivers/isdn/hisax/asuscom.c +++ b/drivers/isdn/hisax/asuscom.c | |||
@@ -295,7 +295,7 @@ Asus_card_msg(struct IsdnCardState *cs, int mt, void *arg) | |||
295 | } | 295 | } |
296 | 296 | ||
297 | #ifdef __ISAPNP__ | 297 | #ifdef __ISAPNP__ |
298 | static struct isapnp_device_id asus_ids[] __devinitdata = { | 298 | static struct isapnp_device_id asus_ids[] = { |
299 | { ISAPNP_VENDOR('A', 'S', 'U'), ISAPNP_FUNCTION(0x1688), | 299 | { ISAPNP_VENDOR('A', 'S', 'U'), ISAPNP_FUNCTION(0x1688), |
300 | ISAPNP_VENDOR('A', 'S', 'U'), ISAPNP_FUNCTION(0x1688), | 300 | ISAPNP_VENDOR('A', 'S', 'U'), ISAPNP_FUNCTION(0x1688), |
301 | (unsigned long) "Asus1688 PnP" }, | 301 | (unsigned long) "Asus1688 PnP" }, |
@@ -311,12 +311,11 @@ static struct isapnp_device_id asus_ids[] __devinitdata = { | |||
311 | { 0, } | 311 | { 0, } |
312 | }; | 312 | }; |
313 | 313 | ||
314 | static struct isapnp_device_id *ipid __devinitdata = &asus_ids[0]; | 314 | static struct isapnp_device_id *ipid = &asus_ids[0]; |
315 | static struct pnp_card *pnp_c __devinitdata = NULL; | 315 | static struct pnp_card *pnp_c = NULL; |
316 | #endif | 316 | #endif |
317 | 317 | ||
318 | int __devinit | 318 | int setup_asuscom(struct IsdnCard *card) |
319 | setup_asuscom(struct IsdnCard *card) | ||
320 | { | 319 | { |
321 | int bytecnt; | 320 | int bytecnt; |
322 | struct IsdnCardState *cs = card->cs; | 321 | struct IsdnCardState *cs = card->cs; |
diff --git a/drivers/isdn/hisax/avm_a1.c b/drivers/isdn/hisax/avm_a1.c index 402d489cbbf1..7dd74087ad72 100644 --- a/drivers/isdn/hisax/avm_a1.c +++ b/drivers/isdn/hisax/avm_a1.c | |||
@@ -177,8 +177,7 @@ AVM_card_msg(struct IsdnCardState *cs, int mt, void *arg) | |||
177 | return (0); | 177 | return (0); |
178 | } | 178 | } |
179 | 179 | ||
180 | int __devinit | 180 | int setup_avm_a1(struct IsdnCard *card) |
181 | setup_avm_a1(struct IsdnCard *card) | ||
182 | { | 181 | { |
183 | u_char val; | 182 | u_char val; |
184 | struct IsdnCardState *cs = card->cs; | 183 | struct IsdnCardState *cs = card->cs; |
diff --git a/drivers/isdn/hisax/avm_a1p.c b/drivers/isdn/hisax/avm_a1p.c index 39347198d643..bc52d54ff5e1 100644 --- a/drivers/isdn/hisax/avm_a1p.c +++ b/drivers/isdn/hisax/avm_a1p.c | |||
@@ -213,7 +213,7 @@ AVM_card_msg(struct IsdnCardState *cs, int mt, void *arg) | |||
213 | return 0; | 213 | return 0; |
214 | } | 214 | } |
215 | 215 | ||
216 | int __devinit setup_avm_a1_pcmcia(struct IsdnCard *card) | 216 | int setup_avm_a1_pcmcia(struct IsdnCard *card) |
217 | { | 217 | { |
218 | u_char model, vers; | 218 | u_char model, vers; |
219 | struct IsdnCardState *cs = card->cs; | 219 | struct IsdnCardState *cs = card->cs; |
diff --git a/drivers/isdn/hisax/avm_pci.c b/drivers/isdn/hisax/avm_pci.c index 979492d69dae..ee9b9a03cffa 100644 --- a/drivers/isdn/hisax/avm_pci.c +++ b/drivers/isdn/hisax/avm_pci.c | |||
@@ -718,7 +718,7 @@ AVM_card_msg(struct IsdnCardState *cs, int mt, void *arg) | |||
718 | return (0); | 718 | return (0); |
719 | } | 719 | } |
720 | 720 | ||
721 | static int __devinit avm_setup_rest(struct IsdnCardState *cs) | 721 | static int avm_setup_rest(struct IsdnCardState *cs) |
722 | { | 722 | { |
723 | u_int val, ver; | 723 | u_int val, ver; |
724 | 724 | ||
@@ -770,16 +770,16 @@ static int __devinit avm_setup_rest(struct IsdnCardState *cs) | |||
770 | 770 | ||
771 | #ifndef __ISAPNP__ | 771 | #ifndef __ISAPNP__ |
772 | 772 | ||
773 | static int __devinit avm_pnp_setup(struct IsdnCardState *cs) | 773 | static int avm_pnp_setup(struct IsdnCardState *cs) |
774 | { | 774 | { |
775 | return (1); /* no-op: success */ | 775 | return (1); /* no-op: success */ |
776 | } | 776 | } |
777 | 777 | ||
778 | #else | 778 | #else |
779 | 779 | ||
780 | static struct pnp_card *pnp_avm_c __devinitdata = NULL; | 780 | static struct pnp_card *pnp_avm_c = NULL; |
781 | 781 | ||
782 | static int __devinit avm_pnp_setup(struct IsdnCardState *cs) | 782 | static int avm_pnp_setup(struct IsdnCardState *cs) |
783 | { | 783 | { |
784 | struct pnp_dev *pnp_avm_d = NULL; | 784 | struct pnp_dev *pnp_avm_d = NULL; |
785 | 785 | ||
@@ -825,16 +825,16 @@ static int __devinit avm_pnp_setup(struct IsdnCardState *cs) | |||
825 | 825 | ||
826 | #ifndef CONFIG_PCI | 826 | #ifndef CONFIG_PCI |
827 | 827 | ||
828 | static int __devinit avm_pci_setup(struct IsdnCardState *cs) | 828 | static int avm_pci_setup(struct IsdnCardState *cs) |
829 | { | 829 | { |
830 | return (1); /* no-op: success */ | 830 | return (1); /* no-op: success */ |
831 | } | 831 | } |
832 | 832 | ||
833 | #else | 833 | #else |
834 | 834 | ||
835 | static struct pci_dev *dev_avm __devinitdata = NULL; | 835 | static struct pci_dev *dev_avm = NULL; |
836 | 836 | ||
837 | static int __devinit avm_pci_setup(struct IsdnCardState *cs) | 837 | static int avm_pci_setup(struct IsdnCardState *cs) |
838 | { | 838 | { |
839 | if ((dev_avm = hisax_find_pci_device(PCI_VENDOR_ID_AVM, | 839 | if ((dev_avm = hisax_find_pci_device(PCI_VENDOR_ID_AVM, |
840 | PCI_DEVICE_ID_AVM_A1, dev_avm))) { | 840 | PCI_DEVICE_ID_AVM_A1, dev_avm))) { |
@@ -867,8 +867,7 @@ static int __devinit avm_pci_setup(struct IsdnCardState *cs) | |||
867 | 867 | ||
868 | #endif /* CONFIG_PCI */ | 868 | #endif /* CONFIG_PCI */ |
869 | 869 | ||
870 | int __devinit | 870 | int setup_avm_pcipnp(struct IsdnCard *card) |
871 | setup_avm_pcipnp(struct IsdnCard *card) | ||
872 | { | 871 | { |
873 | struct IsdnCardState *cs = card->cs; | 872 | struct IsdnCardState *cs = card->cs; |
874 | char tmp[64]; | 873 | char tmp[64]; |
diff --git a/drivers/isdn/hisax/avma1_cs.c b/drivers/isdn/hisax/avma1_cs.c index c644557ae614..4e676bcf8506 100644 --- a/drivers/isdn/hisax/avma1_cs.c +++ b/drivers/isdn/hisax/avma1_cs.c | |||
@@ -38,11 +38,11 @@ module_param(isdnprot, int, 0); | |||
38 | 38 | ||
39 | /*====================================================================*/ | 39 | /*====================================================================*/ |
40 | 40 | ||
41 | static int avma1cs_config(struct pcmcia_device *link) __devinit; | 41 | static int avma1cs_config(struct pcmcia_device *link); |
42 | static void avma1cs_release(struct pcmcia_device *link); | 42 | static void avma1cs_release(struct pcmcia_device *link); |
43 | static void avma1cs_detach(struct pcmcia_device *p_dev) __devexit; | 43 | static void avma1cs_detach(struct pcmcia_device *p_dev); |
44 | 44 | ||
45 | static int __devinit avma1cs_probe(struct pcmcia_device *p_dev) | 45 | static int avma1cs_probe(struct pcmcia_device *p_dev) |
46 | { | 46 | { |
47 | dev_dbg(&p_dev->dev, "avma1cs_attach()\n"); | 47 | dev_dbg(&p_dev->dev, "avma1cs_attach()\n"); |
48 | 48 | ||
@@ -54,7 +54,7 @@ static int __devinit avma1cs_probe(struct pcmcia_device *p_dev) | |||
54 | return avma1cs_config(p_dev); | 54 | return avma1cs_config(p_dev); |
55 | } /* avma1cs_attach */ | 55 | } /* avma1cs_attach */ |
56 | 56 | ||
57 | static void __devexit avma1cs_detach(struct pcmcia_device *link) | 57 | static void avma1cs_detach(struct pcmcia_device *link) |
58 | { | 58 | { |
59 | dev_dbg(&link->dev, "avma1cs_detach(0x%p)\n", link); | 59 | dev_dbg(&link->dev, "avma1cs_detach(0x%p)\n", link); |
60 | avma1cs_release(link); | 60 | avma1cs_release(link); |
@@ -72,7 +72,7 @@ static int avma1cs_configcheck(struct pcmcia_device *p_dev, void *priv_data) | |||
72 | } | 72 | } |
73 | 73 | ||
74 | 74 | ||
75 | static int __devinit avma1cs_config(struct pcmcia_device *link) | 75 | static int avma1cs_config(struct pcmcia_device *link) |
76 | { | 76 | { |
77 | int i = -1; | 77 | int i = -1; |
78 | char devname[128]; | 78 | char devname[128]; |
@@ -156,7 +156,7 @@ static struct pcmcia_driver avma1cs_driver = { | |||
156 | .owner = THIS_MODULE, | 156 | .owner = THIS_MODULE, |
157 | .name = "avma1_cs", | 157 | .name = "avma1_cs", |
158 | .probe = avma1cs_probe, | 158 | .probe = avma1cs_probe, |
159 | .remove = __devexit_p(avma1cs_detach), | 159 | .remove = avma1cs_detach, |
160 | .id_table = avma1cs_ids, | 160 | .id_table = avma1cs_ids, |
161 | }; | 161 | }; |
162 | 162 | ||
diff --git a/drivers/isdn/hisax/bkm_a4t.c b/drivers/isdn/hisax/bkm_a4t.c index f6bf9c68892e..c360164bde1b 100644 --- a/drivers/isdn/hisax/bkm_a4t.c +++ b/drivers/isdn/hisax/bkm_a4t.c | |||
@@ -253,10 +253,8 @@ BKM_card_msg(struct IsdnCardState *cs, int mt, void *arg) | |||
253 | return (0); | 253 | return (0); |
254 | } | 254 | } |
255 | 255 | ||
256 | static int __devinit a4t_pci_probe(struct pci_dev *dev_a4t, | 256 | static int a4t_pci_probe(struct pci_dev *dev_a4t, struct IsdnCardState *cs, |
257 | struct IsdnCardState *cs, | 257 | u_int *found, u_int *pci_memaddr) |
258 | u_int *found, | ||
259 | u_int *pci_memaddr) | ||
260 | { | 258 | { |
261 | u16 sub_sys; | 259 | u16 sub_sys; |
262 | u16 sub_vendor; | 260 | u16 sub_vendor; |
@@ -275,9 +273,8 @@ static int __devinit a4t_pci_probe(struct pci_dev *dev_a4t, | |||
275 | return (-1); /* continue looping */ | 273 | return (-1); /* continue looping */ |
276 | } | 274 | } |
277 | 275 | ||
278 | static int __devinit a4t_cs_init(struct IsdnCard *card, | 276 | static int a4t_cs_init(struct IsdnCard *card, struct IsdnCardState *cs, |
279 | struct IsdnCardState *cs, | 277 | u_int pci_memaddr) |
280 | u_int pci_memaddr) | ||
281 | { | 278 | { |
282 | I20_REGISTER_FILE *pI20_Regs; | 279 | I20_REGISTER_FILE *pI20_Regs; |
283 | 280 | ||
@@ -323,10 +320,9 @@ static int __devinit a4t_cs_init(struct IsdnCard *card, | |||
323 | return (1); | 320 | return (1); |
324 | } | 321 | } |
325 | 322 | ||
326 | static struct pci_dev *dev_a4t __devinitdata = NULL; | 323 | static struct pci_dev *dev_a4t = NULL; |
327 | 324 | ||
328 | int __devinit | 325 | int setup_bkm_a4t(struct IsdnCard *card) |
329 | setup_bkm_a4t(struct IsdnCard *card) | ||
330 | { | 326 | { |
331 | struct IsdnCardState *cs = card->cs; | 327 | struct IsdnCardState *cs = card->cs; |
332 | char tmp[64]; | 328 | char tmp[64]; |
diff --git a/drivers/isdn/hisax/bkm_a8.c b/drivers/isdn/hisax/bkm_a8.c index c9c98f071af6..dd663ea57ec6 100644 --- a/drivers/isdn/hisax/bkm_a8.c +++ b/drivers/isdn/hisax/bkm_a8.c | |||
@@ -255,8 +255,7 @@ BKM_card_msg(struct IsdnCardState *cs, int mt, void *arg) | |||
255 | return (0); | 255 | return (0); |
256 | } | 256 | } |
257 | 257 | ||
258 | static int __devinit | 258 | static int sct_alloc_io(u_int adr, u_int len) |
259 | sct_alloc_io(u_int adr, u_int len) | ||
260 | { | 259 | { |
261 | if (!request_region(adr, len, "scitel")) { | 260 | if (!request_region(adr, len, "scitel")) { |
262 | printk(KERN_WARNING | 261 | printk(KERN_WARNING |
@@ -267,15 +266,14 @@ sct_alloc_io(u_int adr, u_int len) | |||
267 | return (0); | 266 | return (0); |
268 | } | 267 | } |
269 | 268 | ||
270 | static struct pci_dev *dev_a8 __devinitdata = NULL; | 269 | static struct pci_dev *dev_a8 = NULL; |
271 | static u16 sub_vendor_id __devinitdata = 0; | 270 | static u16 sub_vendor_id = 0; |
272 | static u16 sub_sys_id __devinitdata = 0; | 271 | static u16 sub_sys_id = 0; |
273 | static u_char pci_bus __devinitdata = 0; | 272 | static u_char pci_bus = 0; |
274 | static u_char pci_device_fn __devinitdata = 0; | 273 | static u_char pci_device_fn = 0; |
275 | static u_char pci_irq __devinitdata = 0; | 274 | static u_char pci_irq = 0; |
276 | 275 | ||
277 | int __devinit | 276 | int setup_sct_quadro(struct IsdnCard *card) |
278 | setup_sct_quadro(struct IsdnCard *card) | ||
279 | { | 277 | { |
280 | struct IsdnCardState *cs = card->cs; | 278 | struct IsdnCardState *cs = card->cs; |
281 | char tmp[64]; | 279 | char tmp[64]; |
diff --git a/drivers/isdn/hisax/callc.c b/drivers/isdn/hisax/callc.c index a47637be0cc5..ddec47a911a0 100644 --- a/drivers/isdn/hisax/callc.c +++ b/drivers/isdn/hisax/callc.c | |||
@@ -35,7 +35,7 @@ static int chancount; | |||
35 | /* experimental REJECT after ALERTING for CALLBACK to beat the 4s delay */ | 35 | /* experimental REJECT after ALERTING for CALLBACK to beat the 4s delay */ |
36 | #define ALERT_REJECT 0 | 36 | #define ALERT_REJECT 0 |
37 | 37 | ||
38 | /* Value to delay the sending of the first B-channel paket after CONNECT | 38 | /* Value to delay the sending of the first B-channel packet after CONNECT |
39 | * here is no value given by ITU, but experience shows that 300 ms will | 39 | * here is no value given by ITU, but experience shows that 300 ms will |
40 | * work on many networks, if you or your other side is behind local exchanges | 40 | * work on many networks, if you or your other side is behind local exchanges |
41 | * a greater value may be recommented. If the delay is to short the first paket | 41 | * a greater value may be recommented. If the delay is to short the first paket |
diff --git a/drivers/isdn/hisax/config.c b/drivers/isdn/hisax/config.c index b5edc0eeec06..bf04d2a3cf4a 100644 --- a/drivers/isdn/hisax/config.c +++ b/drivers/isdn/hisax/config.c | |||
@@ -338,11 +338,11 @@ static int io[HISAX_MAX_CARDS] = { 0, }; | |||
338 | #define IO0_IO1 | 338 | #define IO0_IO1 |
339 | #endif | 339 | #endif |
340 | #ifdef IO0_IO1 | 340 | #ifdef IO0_IO1 |
341 | static int io0[HISAX_MAX_CARDS] __devinitdata = { 0, }; | 341 | static int io0[HISAX_MAX_CARDS] = { 0, }; |
342 | static int io1[HISAX_MAX_CARDS] __devinitdata = { 0, }; | 342 | static int io1[HISAX_MAX_CARDS] = { 0, }; |
343 | #endif | 343 | #endif |
344 | static int irq[HISAX_MAX_CARDS] __devinitdata = { 0, }; | 344 | static int irq[HISAX_MAX_CARDS] = { 0, }; |
345 | static int mem[HISAX_MAX_CARDS] __devinitdata = { 0, }; | 345 | static int mem[HISAX_MAX_CARDS] = { 0, }; |
346 | static char *id = HiSaxID; | 346 | static char *id = HiSaxID; |
347 | 347 | ||
348 | MODULE_DESCRIPTION("ISDN4Linux: Driver for passive ISDN cards"); | 348 | MODULE_DESCRIPTION("ISDN4Linux: Driver for passive ISDN cards"); |
@@ -852,7 +852,7 @@ static int init_card(struct IsdnCardState *cs) | |||
852 | return 3; | 852 | return 3; |
853 | } | 853 | } |
854 | 854 | ||
855 | static int __devinit hisax_cs_setup_card(struct IsdnCard *card) | 855 | static int hisax_cs_setup_card(struct IsdnCard *card) |
856 | { | 856 | { |
857 | int ret; | 857 | int ret; |
858 | 858 | ||
@@ -1171,12 +1171,8 @@ outf_cs: | |||
1171 | return 0; | 1171 | return 0; |
1172 | } | 1172 | } |
1173 | 1173 | ||
1174 | /* Used from an exported function but calls __devinit functions. | 1174 | static int checkcard(int cardnr, char *id, int *busy_flag, |
1175 | * Tell modpost not to warn (__ref) | 1175 | struct module *lockowner, hisax_setup_func_t card_setup) |
1176 | */ | ||
1177 | static int __ref checkcard(int cardnr, char *id, int *busy_flag, | ||
1178 | struct module *lockowner, | ||
1179 | hisax_setup_func_t card_setup) | ||
1180 | { | 1176 | { |
1181 | int ret; | 1177 | int ret; |
1182 | struct IsdnCard *card = cards + cardnr; | 1178 | struct IsdnCard *card = cards + cardnr; |
@@ -1547,9 +1543,7 @@ static void __exit HiSax_exit(void) | |||
1547 | printk(KERN_INFO "HiSax module removed\n"); | 1543 | printk(KERN_INFO "HiSax module removed\n"); |
1548 | } | 1544 | } |
1549 | 1545 | ||
1550 | #ifdef CONFIG_HOTPLUG | 1546 | int hisax_init_pcmcia(void *pcm_iob, int *busy_flag, struct IsdnCard *card) |
1551 | |||
1552 | int __devinit hisax_init_pcmcia(void *pcm_iob, int *busy_flag, struct IsdnCard *card) | ||
1553 | { | 1547 | { |
1554 | u_char ids[16]; | 1548 | u_char ids[16]; |
1555 | int ret = -1; | 1549 | int ret = -1; |
@@ -1568,9 +1562,7 @@ int __devinit hisax_init_pcmcia(void *pcm_iob, int *busy_flag, struct IsdnCard * | |||
1568 | error: | 1562 | error: |
1569 | return ret; | 1563 | return ret; |
1570 | } | 1564 | } |
1571 | |||
1572 | EXPORT_SYMBOL(hisax_init_pcmcia); | 1565 | EXPORT_SYMBOL(hisax_init_pcmcia); |
1573 | #endif | ||
1574 | 1566 | ||
1575 | EXPORT_SYMBOL(HiSax_closecard); | 1567 | EXPORT_SYMBOL(HiSax_closecard); |
1576 | 1568 | ||
@@ -1917,7 +1909,7 @@ static void EChannel_proc_rcv(struct hisax_d_if *d_if) | |||
1917 | #ifdef CONFIG_PCI | 1909 | #ifdef CONFIG_PCI |
1918 | #include <linux/pci.h> | 1910 | #include <linux/pci.h> |
1919 | 1911 | ||
1920 | static struct pci_device_id hisax_pci_tbl[] __devinitdata __used = { | 1912 | static struct pci_device_id hisax_pci_tbl[] __used = { |
1921 | #ifdef CONFIG_HISAX_FRITZPCI | 1913 | #ifdef CONFIG_HISAX_FRITZPCI |
1922 | {PCI_VDEVICE(AVM, PCI_DEVICE_ID_AVM_A1) }, | 1914 | {PCI_VDEVICE(AVM, PCI_DEVICE_ID_AVM_A1) }, |
1923 | #endif | 1915 | #endif |
diff --git a/drivers/isdn/hisax/diva.c b/drivers/isdn/hisax/diva.c index 62a2945fa7f2..8d0cf6e4dc00 100644 --- a/drivers/isdn/hisax/diva.c +++ b/drivers/isdn/hisax/diva.c | |||
@@ -904,7 +904,7 @@ Diva_card_msg(struct IsdnCardState *cs, int mt, void *arg) | |||
904 | return (0); | 904 | return (0); |
905 | } | 905 | } |
906 | 906 | ||
907 | static int __devinit setup_diva_common(struct IsdnCardState *cs) | 907 | static int setup_diva_common(struct IsdnCardState *cs) |
908 | { | 908 | { |
909 | int bytecnt; | 909 | int bytecnt; |
910 | u_char val; | 910 | u_char val; |
@@ -997,7 +997,7 @@ static int __devinit setup_diva_common(struct IsdnCardState *cs) | |||
997 | 997 | ||
998 | #ifdef CONFIG_ISA | 998 | #ifdef CONFIG_ISA |
999 | 999 | ||
1000 | static int __devinit setup_diva_isa(struct IsdnCard *card) | 1000 | static int setup_diva_isa(struct IsdnCard *card) |
1001 | { | 1001 | { |
1002 | struct IsdnCardState *cs = card->cs; | 1002 | struct IsdnCardState *cs = card->cs; |
1003 | u_char val; | 1003 | u_char val; |
@@ -1033,7 +1033,7 @@ static int __devinit setup_diva_isa(struct IsdnCard *card) | |||
1033 | 1033 | ||
1034 | #else /* if !CONFIG_ISA */ | 1034 | #else /* if !CONFIG_ISA */ |
1035 | 1035 | ||
1036 | static int __devinit setup_diva_isa(struct IsdnCard *card) | 1036 | static int setup_diva_isa(struct IsdnCard *card) |
1037 | { | 1037 | { |
1038 | return (-1); /* card not found; continue search */ | 1038 | return (-1); /* card not found; continue search */ |
1039 | } | 1039 | } |
@@ -1041,7 +1041,7 @@ static int __devinit setup_diva_isa(struct IsdnCard *card) | |||
1041 | #endif /* CONFIG_ISA */ | 1041 | #endif /* CONFIG_ISA */ |
1042 | 1042 | ||
1043 | #ifdef __ISAPNP__ | 1043 | #ifdef __ISAPNP__ |
1044 | static struct isapnp_device_id diva_ids[] __devinitdata = { | 1044 | static struct isapnp_device_id diva_ids[] = { |
1045 | { ISAPNP_VENDOR('G', 'D', 'I'), ISAPNP_FUNCTION(0x51), | 1045 | { ISAPNP_VENDOR('G', 'D', 'I'), ISAPNP_FUNCTION(0x51), |
1046 | ISAPNP_VENDOR('G', 'D', 'I'), ISAPNP_FUNCTION(0x51), | 1046 | ISAPNP_VENDOR('G', 'D', 'I'), ISAPNP_FUNCTION(0x51), |
1047 | (unsigned long) "Diva picola" }, | 1047 | (unsigned long) "Diva picola" }, |
@@ -1063,10 +1063,10 @@ static struct isapnp_device_id diva_ids[] __devinitdata = { | |||
1063 | { 0, } | 1063 | { 0, } |
1064 | }; | 1064 | }; |
1065 | 1065 | ||
1066 | static struct isapnp_device_id *ipid __devinitdata = &diva_ids[0]; | 1066 | static struct isapnp_device_id *ipid = &diva_ids[0]; |
1067 | static struct pnp_card *pnp_c __devinitdata = NULL; | 1067 | static struct pnp_card *pnp_c = NULL; |
1068 | 1068 | ||
1069 | static int __devinit setup_diva_isapnp(struct IsdnCard *card) | 1069 | static int setup_diva_isapnp(struct IsdnCard *card) |
1070 | { | 1070 | { |
1071 | struct IsdnCardState *cs = card->cs; | 1071 | struct IsdnCardState *cs = card->cs; |
1072 | struct pnp_dev *pnp_d; | 1072 | struct pnp_dev *pnp_d; |
@@ -1141,7 +1141,7 @@ static int __devinit setup_diva_isapnp(struct IsdnCard *card) | |||
1141 | 1141 | ||
1142 | #else /* if !ISAPNP */ | 1142 | #else /* if !ISAPNP */ |
1143 | 1143 | ||
1144 | static int __devinit setup_diva_isapnp(struct IsdnCard *card) | 1144 | static int setup_diva_isapnp(struct IsdnCard *card) |
1145 | { | 1145 | { |
1146 | return (-1); /* card not found; continue search */ | 1146 | return (-1); /* card not found; continue search */ |
1147 | } | 1147 | } |
@@ -1149,12 +1149,12 @@ static int __devinit setup_diva_isapnp(struct IsdnCard *card) | |||
1149 | #endif /* ISAPNP */ | 1149 | #endif /* ISAPNP */ |
1150 | 1150 | ||
1151 | #ifdef CONFIG_PCI | 1151 | #ifdef CONFIG_PCI |
1152 | static struct pci_dev *dev_diva __devinitdata = NULL; | 1152 | static struct pci_dev *dev_diva = NULL; |
1153 | static struct pci_dev *dev_diva_u __devinitdata = NULL; | 1153 | static struct pci_dev *dev_diva_u = NULL; |
1154 | static struct pci_dev *dev_diva201 __devinitdata = NULL; | 1154 | static struct pci_dev *dev_diva201 = NULL; |
1155 | static struct pci_dev *dev_diva202 __devinitdata = NULL; | 1155 | static struct pci_dev *dev_diva202 = NULL; |
1156 | 1156 | ||
1157 | static int __devinit setup_diva_pci(struct IsdnCard *card) | 1157 | static int setup_diva_pci(struct IsdnCard *card) |
1158 | { | 1158 | { |
1159 | struct IsdnCardState *cs = card->cs; | 1159 | struct IsdnCardState *cs = card->cs; |
1160 | 1160 | ||
@@ -1231,15 +1231,14 @@ static int __devinit setup_diva_pci(struct IsdnCard *card) | |||
1231 | 1231 | ||
1232 | #else /* if !CONFIG_PCI */ | 1232 | #else /* if !CONFIG_PCI */ |
1233 | 1233 | ||
1234 | static int __devinit setup_diva_pci(struct IsdnCard *card) | 1234 | static int setup_diva_pci(struct IsdnCard *card) |
1235 | { | 1235 | { |
1236 | return (-1); /* card not found; continue search */ | 1236 | return (-1); /* card not found; continue search */ |
1237 | } | 1237 | } |
1238 | 1238 | ||
1239 | #endif /* CONFIG_PCI */ | 1239 | #endif /* CONFIG_PCI */ |
1240 | 1240 | ||
1241 | int __devinit | 1241 | int setup_diva(struct IsdnCard *card) |
1242 | setup_diva(struct IsdnCard *card) | ||
1243 | { | 1242 | { |
1244 | int rc, have_card = 0; | 1243 | int rc, have_card = 0; |
1245 | struct IsdnCardState *cs = card->cs; | 1244 | struct IsdnCardState *cs = card->cs; |
diff --git a/drivers/isdn/hisax/elsa.c b/drivers/isdn/hisax/elsa.c index 64ba26a4afe6..1df6f9a56ca2 100644 --- a/drivers/isdn/hisax/elsa.c +++ b/drivers/isdn/hisax/elsa.c | |||
@@ -831,8 +831,7 @@ probe_elsa(struct IsdnCardState *cs) | |||
831 | return (CARD_portlist[i]); | 831 | return (CARD_portlist[i]); |
832 | } | 832 | } |
833 | 833 | ||
834 | static int __devinit | 834 | static int setup_elsa_isa(struct IsdnCard *card) |
835 | setup_elsa_isa(struct IsdnCard *card) | ||
836 | { | 835 | { |
837 | struct IsdnCardState *cs = card->cs; | 836 | struct IsdnCardState *cs = card->cs; |
838 | u_char val; | 837 | u_char val; |
@@ -902,7 +901,7 @@ setup_elsa_isa(struct IsdnCard *card) | |||
902 | } | 901 | } |
903 | 902 | ||
904 | #ifdef __ISAPNP__ | 903 | #ifdef __ISAPNP__ |
905 | static struct isapnp_device_id elsa_ids[] __devinitdata = { | 904 | static struct isapnp_device_id elsa_ids[] = { |
906 | { ISAPNP_VENDOR('E', 'L', 'S'), ISAPNP_FUNCTION(0x0133), | 905 | { ISAPNP_VENDOR('E', 'L', 'S'), ISAPNP_FUNCTION(0x0133), |
907 | ISAPNP_VENDOR('E', 'L', 'S'), ISAPNP_FUNCTION(0x0133), | 906 | ISAPNP_VENDOR('E', 'L', 'S'), ISAPNP_FUNCTION(0x0133), |
908 | (unsigned long) "Elsa QS1000" }, | 907 | (unsigned long) "Elsa QS1000" }, |
@@ -912,12 +911,11 @@ static struct isapnp_device_id elsa_ids[] __devinitdata = { | |||
912 | { 0, } | 911 | { 0, } |
913 | }; | 912 | }; |
914 | 913 | ||
915 | static struct isapnp_device_id *ipid __devinitdata = &elsa_ids[0]; | 914 | static struct isapnp_device_id *ipid = &elsa_ids[0]; |
916 | static struct pnp_card *pnp_c __devinitdata = NULL; | 915 | static struct pnp_card *pnp_c = NULL; |
917 | #endif /* __ISAPNP__ */ | 916 | #endif /* __ISAPNP__ */ |
918 | 917 | ||
919 | static int __devinit | 918 | static int setup_elsa_isapnp(struct IsdnCard *card) |
920 | setup_elsa_isapnp(struct IsdnCard *card) | ||
921 | { | 919 | { |
922 | struct IsdnCardState *cs = card->cs; | 920 | struct IsdnCardState *cs = card->cs; |
923 | 921 | ||
@@ -994,8 +992,7 @@ setup_elsa_isapnp(struct IsdnCard *card) | |||
994 | return (1); | 992 | return (1); |
995 | } | 993 | } |
996 | 994 | ||
997 | static void __devinit | 995 | static void setup_elsa_pcmcia(struct IsdnCard *card) |
998 | setup_elsa_pcmcia(struct IsdnCard *card) | ||
999 | { | 996 | { |
1000 | struct IsdnCardState *cs = card->cs; | 997 | struct IsdnCardState *cs = card->cs; |
1001 | u_char val; | 998 | u_char val; |
@@ -1027,11 +1024,10 @@ setup_elsa_pcmcia(struct IsdnCard *card) | |||
1027 | } | 1024 | } |
1028 | 1025 | ||
1029 | #ifdef CONFIG_PCI | 1026 | #ifdef CONFIG_PCI |
1030 | static struct pci_dev *dev_qs1000 __devinitdata = NULL; | 1027 | static struct pci_dev *dev_qs1000 = NULL; |
1031 | static struct pci_dev *dev_qs3000 __devinitdata = NULL; | 1028 | static struct pci_dev *dev_qs3000 = NULL; |
1032 | 1029 | ||
1033 | static int __devinit | 1030 | static int setup_elsa_pci(struct IsdnCard *card) |
1034 | setup_elsa_pci(struct IsdnCard *card) | ||
1035 | { | 1031 | { |
1036 | struct IsdnCardState *cs = card->cs; | 1032 | struct IsdnCardState *cs = card->cs; |
1037 | 1033 | ||
@@ -1089,15 +1085,13 @@ setup_elsa_pci(struct IsdnCard *card) | |||
1089 | 1085 | ||
1090 | #else | 1086 | #else |
1091 | 1087 | ||
1092 | static int __devinit | 1088 | static int setup_elsa_pci(struct IsdnCard *card) |
1093 | setup_elsa_pci(struct IsdnCard *card) | ||
1094 | { | 1089 | { |
1095 | return (1); | 1090 | return (1); |
1096 | } | 1091 | } |
1097 | #endif /* CONFIG_PCI */ | 1092 | #endif /* CONFIG_PCI */ |
1098 | 1093 | ||
1099 | static int __devinit | 1094 | static int setup_elsa_common(struct IsdnCard *card) |
1100 | setup_elsa_common(struct IsdnCard *card) | ||
1101 | { | 1095 | { |
1102 | struct IsdnCardState *cs = card->cs; | 1096 | struct IsdnCardState *cs = card->cs; |
1103 | u_char val; | 1097 | u_char val; |
@@ -1212,8 +1206,7 @@ setup_elsa_common(struct IsdnCard *card) | |||
1212 | return (1); | 1206 | return (1); |
1213 | } | 1207 | } |
1214 | 1208 | ||
1215 | int __devinit | 1209 | int setup_elsa(struct IsdnCard *card) |
1216 | setup_elsa(struct IsdnCard *card) | ||
1217 | { | 1210 | { |
1218 | int rc; | 1211 | int rc; |
1219 | struct IsdnCardState *cs = card->cs; | 1212 | struct IsdnCardState *cs = card->cs; |
diff --git a/drivers/isdn/hisax/elsa_cs.c b/drivers/isdn/hisax/elsa_cs.c index a8c4d3fc9a6d..ebe56918f6fc 100644 --- a/drivers/isdn/hisax/elsa_cs.c +++ b/drivers/isdn/hisax/elsa_cs.c | |||
@@ -62,9 +62,9 @@ MODULE_LICENSE("Dual MPL/GPL"); | |||
62 | static int protocol = 2; /* EURO-ISDN Default */ | 62 | static int protocol = 2; /* EURO-ISDN Default */ |
63 | module_param(protocol, int, 0); | 63 | module_param(protocol, int, 0); |
64 | 64 | ||
65 | static int elsa_cs_config(struct pcmcia_device *link) __devinit; | 65 | static int elsa_cs_config(struct pcmcia_device *link); |
66 | static void elsa_cs_release(struct pcmcia_device *link); | 66 | static void elsa_cs_release(struct pcmcia_device *link); |
67 | static void elsa_cs_detach(struct pcmcia_device *p_dev) __devexit; | 67 | static void elsa_cs_detach(struct pcmcia_device *p_dev); |
68 | 68 | ||
69 | typedef struct local_info_t { | 69 | typedef struct local_info_t { |
70 | struct pcmcia_device *p_dev; | 70 | struct pcmcia_device *p_dev; |
@@ -72,7 +72,7 @@ typedef struct local_info_t { | |||
72 | int cardnr; | 72 | int cardnr; |
73 | } local_info_t; | 73 | } local_info_t; |
74 | 74 | ||
75 | static int __devinit elsa_cs_probe(struct pcmcia_device *link) | 75 | static int elsa_cs_probe(struct pcmcia_device *link) |
76 | { | 76 | { |
77 | local_info_t *local; | 77 | local_info_t *local; |
78 | 78 | ||
@@ -90,7 +90,7 @@ static int __devinit elsa_cs_probe(struct pcmcia_device *link) | |||
90 | return elsa_cs_config(link); | 90 | return elsa_cs_config(link); |
91 | } /* elsa_cs_attach */ | 91 | } /* elsa_cs_attach */ |
92 | 92 | ||
93 | static void __devexit elsa_cs_detach(struct pcmcia_device *link) | 93 | static void elsa_cs_detach(struct pcmcia_device *link) |
94 | { | 94 | { |
95 | local_info_t *info = link->priv; | 95 | local_info_t *info = link->priv; |
96 | 96 | ||
@@ -126,7 +126,7 @@ static int elsa_cs_configcheck(struct pcmcia_device *p_dev, void *priv_data) | |||
126 | return -ENODEV; | 126 | return -ENODEV; |
127 | } | 127 | } |
128 | 128 | ||
129 | static int __devinit elsa_cs_config(struct pcmcia_device *link) | 129 | static int elsa_cs_config(struct pcmcia_device *link) |
130 | { | 130 | { |
131 | int i; | 131 | int i; |
132 | IsdnCard_t icard; | 132 | IsdnCard_t icard; |
@@ -210,7 +210,7 @@ static struct pcmcia_driver elsa_cs_driver = { | |||
210 | .owner = THIS_MODULE, | 210 | .owner = THIS_MODULE, |
211 | .name = "elsa_cs", | 211 | .name = "elsa_cs", |
212 | .probe = elsa_cs_probe, | 212 | .probe = elsa_cs_probe, |
213 | .remove = __devexit_p(elsa_cs_detach), | 213 | .remove = elsa_cs_detach, |
214 | .id_table = elsa_ids, | 214 | .id_table = elsa_ids, |
215 | .suspend = elsa_suspend, | 215 | .suspend = elsa_suspend, |
216 | .resume = elsa_resume, | 216 | .resume = elsa_resume, |
diff --git a/drivers/isdn/hisax/enternow_pci.c b/drivers/isdn/hisax/enternow_pci.c index b1e38b54ebac..e8d431a8302d 100644 --- a/drivers/isdn/hisax/enternow_pci.c +++ b/drivers/isdn/hisax/enternow_pci.c | |||
@@ -300,8 +300,7 @@ enpci_interrupt(int intno, void *dev_id) | |||
300 | return IRQ_HANDLED; | 300 | return IRQ_HANDLED; |
301 | } | 301 | } |
302 | 302 | ||
303 | static int __devinit en_pci_probe(struct pci_dev *dev_netjet, | 303 | static int en_pci_probe(struct pci_dev *dev_netjet, struct IsdnCardState *cs) |
304 | struct IsdnCardState *cs) | ||
305 | { | 304 | { |
306 | if (pci_enable_device(dev_netjet)) | 305 | if (pci_enable_device(dev_netjet)) |
307 | return (0); | 306 | return (0); |
@@ -326,8 +325,7 @@ static int __devinit en_pci_probe(struct pci_dev *dev_netjet, | |||
326 | return (1); | 325 | return (1); |
327 | } | 326 | } |
328 | 327 | ||
329 | static void __devinit en_cs_init(struct IsdnCard *card, | 328 | static void en_cs_init(struct IsdnCard *card, struct IsdnCardState *cs) |
330 | struct IsdnCardState *cs) | ||
331 | { | 329 | { |
332 | cs->hw.njet.auxa = cs->hw.njet.base + NETJET_AUXDATA; | 330 | cs->hw.njet.auxa = cs->hw.njet.base + NETJET_AUXDATA; |
333 | cs->hw.njet.isac = cs->hw.njet.base + 0xC0; // Fenster zum AMD | 331 | cs->hw.njet.isac = cs->hw.njet.base + 0xC0; // Fenster zum AMD |
@@ -350,8 +348,7 @@ static void __devinit en_cs_init(struct IsdnCard *card, | |||
350 | outb(cs->hw.njet.auxd, cs->hw.njet.auxa); | 348 | outb(cs->hw.njet.auxd, cs->hw.njet.auxa); |
351 | } | 349 | } |
352 | 350 | ||
353 | static int __devinit en_cs_init_rest(struct IsdnCard *card, | 351 | static int en_cs_init_rest(struct IsdnCard *card, struct IsdnCardState *cs) |
354 | struct IsdnCardState *cs) | ||
355 | { | 352 | { |
356 | const int bytecnt = 256; | 353 | const int bytecnt = 256; |
357 | 354 | ||
@@ -384,11 +381,10 @@ static int __devinit en_cs_init_rest(struct IsdnCard *card, | |||
384 | return (1); | 381 | return (1); |
385 | } | 382 | } |
386 | 383 | ||
387 | static struct pci_dev *dev_netjet __devinitdata = NULL; | 384 | static struct pci_dev *dev_netjet = NULL; |
388 | 385 | ||
389 | /* called by config.c */ | 386 | /* called by config.c */ |
390 | int __devinit | 387 | int setup_enternow_pci(struct IsdnCard *card) |
391 | setup_enternow_pci(struct IsdnCard *card) | ||
392 | { | 388 | { |
393 | int ret; | 389 | int ret; |
394 | struct IsdnCardState *cs = card->cs; | 390 | struct IsdnCardState *cs = card->cs; |
diff --git a/drivers/isdn/hisax/gazel.c b/drivers/isdn/hisax/gazel.c index 4fef77562554..35c6df6534ec 100644 --- a/drivers/isdn/hisax/gazel.c +++ b/drivers/isdn/hisax/gazel.c | |||
@@ -483,8 +483,7 @@ error: | |||
483 | return 1; | 483 | return 1; |
484 | } | 484 | } |
485 | 485 | ||
486 | static int __devinit | 486 | static int setup_gazelisa(struct IsdnCard *card, struct IsdnCardState *cs) |
487 | setup_gazelisa(struct IsdnCard *card, struct IsdnCardState *cs) | ||
488 | { | 487 | { |
489 | printk(KERN_INFO "Gazel: ISA PnP card automatic recognition\n"); | 488 | printk(KERN_INFO "Gazel: ISA PnP card automatic recognition\n"); |
490 | // we got an irq parameter, assume it is an ISA card | 489 | // we got an irq parameter, assume it is an ISA card |
@@ -532,10 +531,9 @@ setup_gazelisa(struct IsdnCard *card, struct IsdnCardState *cs) | |||
532 | } | 531 | } |
533 | 532 | ||
534 | #ifdef CONFIG_PCI | 533 | #ifdef CONFIG_PCI |
535 | static struct pci_dev *dev_tel __devinitdata = NULL; | 534 | static struct pci_dev *dev_tel = NULL; |
536 | 535 | ||
537 | static int __devinit | 536 | static int setup_gazelpci(struct IsdnCardState *cs) |
538 | setup_gazelpci(struct IsdnCardState *cs) | ||
539 | { | 537 | { |
540 | u_int pci_ioaddr0 = 0, pci_ioaddr1 = 0; | 538 | u_int pci_ioaddr0 = 0, pci_ioaddr1 = 0; |
541 | u_char pci_irq = 0, found; | 539 | u_char pci_irq = 0, found; |
@@ -622,8 +620,7 @@ setup_gazelpci(struct IsdnCardState *cs) | |||
622 | } | 620 | } |
623 | #endif /* CONFIG_PCI */ | 621 | #endif /* CONFIG_PCI */ |
624 | 622 | ||
625 | int __devinit | 623 | int setup_gazel(struct IsdnCard *card) |
626 | setup_gazel(struct IsdnCard *card) | ||
627 | { | 624 | { |
628 | struct IsdnCardState *cs = card->cs; | 625 | struct IsdnCardState *cs = card->cs; |
629 | char tmp[64]; | 626 | char tmp[64]; |
diff --git a/drivers/isdn/hisax/hfc4s8s_l1.c b/drivers/isdn/hisax/hfc4s8s_l1.c index dea04de8e7ca..c49c294fc81e 100644 --- a/drivers/isdn/hisax/hfc4s8s_l1.c +++ b/drivers/isdn/hisax/hfc4s8s_l1.c | |||
@@ -1497,7 +1497,7 @@ enable_pci_ports(hfc4s8s_hw *hw) | |||
1497 | /* initialise the HFC-4s/8s hardware */ | 1497 | /* initialise the HFC-4s/8s hardware */ |
1498 | /* return 0 on success. */ | 1498 | /* return 0 on success. */ |
1499 | /*************************************/ | 1499 | /*************************************/ |
1500 | static int __devinit | 1500 | static int |
1501 | setup_instance(hfc4s8s_hw *hw) | 1501 | setup_instance(hfc4s8s_hw *hw) |
1502 | { | 1502 | { |
1503 | int err = -EIO; | 1503 | int err = -EIO; |
@@ -1585,7 +1585,7 @@ out: | |||
1585 | /*****************************************/ | 1585 | /*****************************************/ |
1586 | /* PCI hotplug interface: probe new card */ | 1586 | /* PCI hotplug interface: probe new card */ |
1587 | /*****************************************/ | 1587 | /*****************************************/ |
1588 | static int __devinit | 1588 | static int |
1589 | hfc4s8s_probe(struct pci_dev *pdev, const struct pci_device_id *ent) | 1589 | hfc4s8s_probe(struct pci_dev *pdev, const struct pci_device_id *ent) |
1590 | { | 1590 | { |
1591 | int err = -ENOMEM; | 1591 | int err = -ENOMEM; |
@@ -1640,7 +1640,7 @@ out: | |||
1640 | /**************************************/ | 1640 | /**************************************/ |
1641 | /* PCI hotplug interface: remove card */ | 1641 | /* PCI hotplug interface: remove card */ |
1642 | /**************************************/ | 1642 | /**************************************/ |
1643 | static void __devexit | 1643 | static void |
1644 | hfc4s8s_remove(struct pci_dev *pdev) | 1644 | hfc4s8s_remove(struct pci_dev *pdev) |
1645 | { | 1645 | { |
1646 | hfc4s8s_hw *hw = pci_get_drvdata(pdev); | 1646 | hfc4s8s_hw *hw = pci_get_drvdata(pdev); |
@@ -1662,7 +1662,7 @@ hfc4s8s_remove(struct pci_dev *pdev) | |||
1662 | static struct pci_driver hfc4s8s_driver = { | 1662 | static struct pci_driver hfc4s8s_driver = { |
1663 | .name = "hfc4s8s_l1", | 1663 | .name = "hfc4s8s_l1", |
1664 | .probe = hfc4s8s_probe, | 1664 | .probe = hfc4s8s_probe, |
1665 | .remove = __devexit_p(hfc4s8s_remove), | 1665 | .remove = hfc4s8s_remove, |
1666 | .id_table = hfc4s8s_ids, | 1666 | .id_table = hfc4s8s_ids, |
1667 | }; | 1667 | }; |
1668 | 1668 | ||
@@ -1688,14 +1688,6 @@ hfc4s8s_module_init(void) | |||
1688 | } | 1688 | } |
1689 | printk(KERN_INFO "HFC-4S/8S: found %d cards\n", card_cnt); | 1689 | printk(KERN_INFO "HFC-4S/8S: found %d cards\n", card_cnt); |
1690 | 1690 | ||
1691 | #if !defined(CONFIG_HOTPLUG) | ||
1692 | if (err == 0) { | ||
1693 | err = -ENODEV; | ||
1694 | pci_unregister_driver(&hfc4s8s_driver); | ||
1695 | goto out; | ||
1696 | } | ||
1697 | #endif | ||
1698 | |||
1699 | return 0; | 1691 | return 0; |
1700 | out: | 1692 | out: |
1701 | return (err); | 1693 | return (err); |
diff --git a/drivers/isdn/hisax/hfc_pci.c b/drivers/isdn/hisax/hfc_pci.c index f60d4be58941..3ccd724ff8c2 100644 --- a/drivers/isdn/hisax/hfc_pci.c +++ b/drivers/isdn/hisax/hfc_pci.c | |||
@@ -1632,9 +1632,9 @@ hfcpci_card_msg(struct IsdnCardState *cs, int mt, void *arg) | |||
1632 | 1632 | ||
1633 | 1633 | ||
1634 | /* this variable is used as card index when more than one cards are present */ | 1634 | /* this variable is used as card index when more than one cards are present */ |
1635 | static struct pci_dev *dev_hfcpci __devinitdata = NULL; | 1635 | static struct pci_dev *dev_hfcpci = NULL; |
1636 | 1636 | ||
1637 | int __devinit | 1637 | int |
1638 | setup_hfcpci(struct IsdnCard *card) | 1638 | setup_hfcpci(struct IsdnCard *card) |
1639 | { | 1639 | { |
1640 | u_long flags; | 1640 | u_long flags; |
diff --git a/drivers/isdn/hisax/hfc_sx.c b/drivers/isdn/hisax/hfc_sx.c index 4ec279ce052f..90f34ae2b80f 100644 --- a/drivers/isdn/hisax/hfc_sx.c +++ b/drivers/isdn/hisax/hfc_sx.c | |||
@@ -1381,19 +1381,18 @@ hfcsx_card_msg(struct IsdnCardState *cs, int mt, void *arg) | |||
1381 | } | 1381 | } |
1382 | 1382 | ||
1383 | #ifdef __ISAPNP__ | 1383 | #ifdef __ISAPNP__ |
1384 | static struct isapnp_device_id hfc_ids[] __devinitdata = { | 1384 | static struct isapnp_device_id hfc_ids[] = { |
1385 | { ISAPNP_VENDOR('T', 'A', 'G'), ISAPNP_FUNCTION(0x2620), | 1385 | { ISAPNP_VENDOR('T', 'A', 'G'), ISAPNP_FUNCTION(0x2620), |
1386 | ISAPNP_VENDOR('T', 'A', 'G'), ISAPNP_FUNCTION(0x2620), | 1386 | ISAPNP_VENDOR('T', 'A', 'G'), ISAPNP_FUNCTION(0x2620), |
1387 | (unsigned long) "Teles 16.3c2" }, | 1387 | (unsigned long) "Teles 16.3c2" }, |
1388 | { 0, } | 1388 | { 0, } |
1389 | }; | 1389 | }; |
1390 | 1390 | ||
1391 | static struct isapnp_device_id *ipid __devinitdata = &hfc_ids[0]; | 1391 | static struct isapnp_device_id *ipid = &hfc_ids[0]; |
1392 | static struct pnp_card *pnp_c __devinitdata = NULL; | 1392 | static struct pnp_card *pnp_c = NULL; |
1393 | #endif | 1393 | #endif |
1394 | 1394 | ||
1395 | int __devinit | 1395 | int setup_hfcsx(struct IsdnCard *card) |
1396 | setup_hfcsx(struct IsdnCard *card) | ||
1397 | { | 1396 | { |
1398 | struct IsdnCardState *cs = card->cs; | 1397 | struct IsdnCardState *cs = card->cs; |
1399 | char tmp[64]; | 1398 | char tmp[64]; |
diff --git a/drivers/isdn/hisax/hfcscard.c b/drivers/isdn/hisax/hfcscard.c index a5f048bd2bb3..394da646e97b 100644 --- a/drivers/isdn/hisax/hfcscard.c +++ b/drivers/isdn/hisax/hfcscard.c | |||
@@ -136,7 +136,7 @@ hfcs_card_msg(struct IsdnCardState *cs, int mt, void *arg) | |||
136 | } | 136 | } |
137 | 137 | ||
138 | #ifdef __ISAPNP__ | 138 | #ifdef __ISAPNP__ |
139 | static struct isapnp_device_id hfc_ids[] __devinitdata = { | 139 | static struct isapnp_device_id hfc_ids[] = { |
140 | { ISAPNP_VENDOR('A', 'N', 'X'), ISAPNP_FUNCTION(0x1114), | 140 | { ISAPNP_VENDOR('A', 'N', 'X'), ISAPNP_FUNCTION(0x1114), |
141 | ISAPNP_VENDOR('A', 'N', 'X'), ISAPNP_FUNCTION(0x1114), | 141 | ISAPNP_VENDOR('A', 'N', 'X'), ISAPNP_FUNCTION(0x1114), |
142 | (unsigned long) "Acer P10" }, | 142 | (unsigned long) "Acer P10" }, |
@@ -161,12 +161,11 @@ static struct isapnp_device_id hfc_ids[] __devinitdata = { | |||
161 | { 0, } | 161 | { 0, } |
162 | }; | 162 | }; |
163 | 163 | ||
164 | static struct isapnp_device_id *ipid __devinitdata = &hfc_ids[0]; | 164 | static struct isapnp_device_id *ipid = &hfc_ids[0]; |
165 | static struct pnp_card *pnp_c __devinitdata = NULL; | 165 | static struct pnp_card *pnp_c = NULL; |
166 | #endif | 166 | #endif |
167 | 167 | ||
168 | int __devinit | 168 | int setup_hfcs(struct IsdnCard *card) |
169 | setup_hfcs(struct IsdnCard *card) | ||
170 | { | 169 | { |
171 | struct IsdnCardState *cs = card->cs; | 170 | struct IsdnCardState *cs = card->cs; |
172 | char tmp[64]; | 171 | char tmp[64]; |
diff --git a/drivers/isdn/hisax/hisax_fcpcipnp.c b/drivers/isdn/hisax/hisax_fcpcipnp.c index e4f47fe3f7fd..5e8a5d967162 100644 --- a/drivers/isdn/hisax/hisax_fcpcipnp.c +++ b/drivers/isdn/hisax/hisax_fcpcipnp.c | |||
@@ -70,7 +70,7 @@ static struct pci_device_id fcpci_ids[] = { | |||
70 | MODULE_DEVICE_TABLE(pci, fcpci_ids); | 70 | MODULE_DEVICE_TABLE(pci, fcpci_ids); |
71 | 71 | ||
72 | #ifdef CONFIG_PNP | 72 | #ifdef CONFIG_PNP |
73 | static struct pnp_device_id fcpnp_ids[] __devinitdata = { | 73 | static struct pnp_device_id fcpnp_ids[] = { |
74 | { | 74 | { |
75 | .id = "AVM0900", | 75 | .id = "AVM0900", |
76 | .driver_data = (unsigned long) "Fritz!Card PnP", | 76 | .driver_data = (unsigned long) "Fritz!Card PnP", |
@@ -712,7 +712,7 @@ static inline void fcpci_init(struct fritz_adapter *adapter) | |||
712 | 712 | ||
713 | // ---------------------------------------------------------------------- | 713 | // ---------------------------------------------------------------------- |
714 | 714 | ||
715 | static int __devinit fcpcipnp_setup(struct fritz_adapter *adapter) | 715 | static int fcpcipnp_setup(struct fritz_adapter *adapter) |
716 | { | 716 | { |
717 | u32 val = 0; | 717 | u32 val = 0; |
718 | int retval; | 718 | int retval; |
@@ -825,7 +825,7 @@ err: | |||
825 | return retval; | 825 | return retval; |
826 | } | 826 | } |
827 | 827 | ||
828 | static void __devexit fcpcipnp_release(struct fritz_adapter *adapter) | 828 | static void fcpcipnp_release(struct fritz_adapter *adapter) |
829 | { | 829 | { |
830 | DBG(1, ""); | 830 | DBG(1, ""); |
831 | 831 | ||
@@ -836,8 +836,7 @@ static void __devexit fcpcipnp_release(struct fritz_adapter *adapter) | |||
836 | 836 | ||
837 | // ---------------------------------------------------------------------- | 837 | // ---------------------------------------------------------------------- |
838 | 838 | ||
839 | static struct fritz_adapter * __devinit | 839 | static struct fritz_adapter *new_adapter(void) |
840 | new_adapter(void) | ||
841 | { | 840 | { |
842 | struct fritz_adapter *adapter; | 841 | struct fritz_adapter *adapter; |
843 | struct hisax_b_if *b_if[2]; | 842 | struct hisax_b_if *b_if[2]; |
@@ -876,8 +875,7 @@ static void delete_adapter(struct fritz_adapter *adapter) | |||
876 | kfree(adapter); | 875 | kfree(adapter); |
877 | } | 876 | } |
878 | 877 | ||
879 | static int __devinit fcpci_probe(struct pci_dev *pdev, | 878 | static int fcpci_probe(struct pci_dev *pdev, const struct pci_device_id *ent) |
880 | const struct pci_device_id *ent) | ||
881 | { | 879 | { |
882 | struct fritz_adapter *adapter; | 880 | struct fritz_adapter *adapter; |
883 | int retval; | 881 | int retval; |
@@ -917,7 +915,7 @@ err: | |||
917 | } | 915 | } |
918 | 916 | ||
919 | #ifdef CONFIG_PNP | 917 | #ifdef CONFIG_PNP |
920 | static int __devinit fcpnp_probe(struct pnp_dev *pdev, const struct pnp_device_id *dev_id) | 918 | static int fcpnp_probe(struct pnp_dev *pdev, const struct pnp_device_id *dev_id) |
921 | { | 919 | { |
922 | struct fritz_adapter *adapter; | 920 | struct fritz_adapter *adapter; |
923 | int retval; | 921 | int retval; |
@@ -959,7 +957,7 @@ err: | |||
959 | return retval; | 957 | return retval; |
960 | } | 958 | } |
961 | 959 | ||
962 | static void __devexit fcpnp_remove(struct pnp_dev *pdev) | 960 | static void fcpnp_remove(struct pnp_dev *pdev) |
963 | { | 961 | { |
964 | struct fritz_adapter *adapter = pnp_get_drvdata(pdev); | 962 | struct fritz_adapter *adapter = pnp_get_drvdata(pdev); |
965 | 963 | ||
@@ -973,12 +971,12 @@ static void __devexit fcpnp_remove(struct pnp_dev *pdev) | |||
973 | static struct pnp_driver fcpnp_driver = { | 971 | static struct pnp_driver fcpnp_driver = { |
974 | .name = "fcpnp", | 972 | .name = "fcpnp", |
975 | .probe = fcpnp_probe, | 973 | .probe = fcpnp_probe, |
976 | .remove = __devexit_p(fcpnp_remove), | 974 | .remove = fcpnp_remove, |
977 | .id_table = fcpnp_ids, | 975 | .id_table = fcpnp_ids, |
978 | }; | 976 | }; |
979 | #endif | 977 | #endif |
980 | 978 | ||
981 | static void __devexit fcpci_remove(struct pci_dev *pdev) | 979 | static void fcpci_remove(struct pci_dev *pdev) |
982 | { | 980 | { |
983 | struct fritz_adapter *adapter = pci_get_drvdata(pdev); | 981 | struct fritz_adapter *adapter = pci_get_drvdata(pdev); |
984 | 982 | ||
@@ -990,7 +988,7 @@ static void __devexit fcpci_remove(struct pci_dev *pdev) | |||
990 | static struct pci_driver fcpci_driver = { | 988 | static struct pci_driver fcpci_driver = { |
991 | .name = "fcpci", | 989 | .name = "fcpci", |
992 | .probe = fcpci_probe, | 990 | .probe = fcpci_probe, |
993 | .remove = __devexit_p(fcpci_remove), | 991 | .remove = fcpci_remove, |
994 | .id_table = fcpci_ids, | 992 | .id_table = fcpci_ids, |
995 | }; | 993 | }; |
996 | 994 | ||
diff --git a/drivers/isdn/hisax/icc.c b/drivers/isdn/hisax/icc.c index 7be762b17c70..db5321f6379b 100644 --- a/drivers/isdn/hisax/icc.c +++ b/drivers/isdn/hisax/icc.c | |||
@@ -673,8 +673,7 @@ clear_pending_icc_ints(struct IsdnCardState *cs) | |||
673 | cs->writeisac(cs, ICC_MASK, 0xFF); | 673 | cs->writeisac(cs, ICC_MASK, 0xFF); |
674 | } | 674 | } |
675 | 675 | ||
676 | void __devinit | 676 | void setup_icc(struct IsdnCardState *cs) |
677 | setup_icc(struct IsdnCardState *cs) | ||
678 | { | 677 | { |
679 | INIT_WORK(&cs->tqueue, icc_bh); | 678 | INIT_WORK(&cs->tqueue, icc_bh); |
680 | cs->dbusytimer.function = (void *) dbusy_timer_handler; | 679 | cs->dbusytimer.function = (void *) dbusy_timer_handler; |
diff --git a/drivers/isdn/hisax/isac.c b/drivers/isdn/hisax/isac.c index bcd70a387307..a365ccc1c99c 100644 --- a/drivers/isdn/hisax/isac.c +++ b/drivers/isdn/hisax/isac.c | |||
@@ -24,11 +24,11 @@ | |||
24 | #define DBUSY_TIMER_VALUE 80 | 24 | #define DBUSY_TIMER_VALUE 80 |
25 | #define ARCOFI_USE 1 | 25 | #define ARCOFI_USE 1 |
26 | 26 | ||
27 | static char *ISACVer[] __devinitdata = | 27 | static char *ISACVer[] = |
28 | {"2086/2186 V1.1", "2085 B1", "2085 B2", | 28 | {"2086/2186 V1.1", "2085 B1", "2085 B2", |
29 | "2085 V2.3"}; | 29 | "2085 V2.3"}; |
30 | 30 | ||
31 | void __devinit ISACVersion(struct IsdnCardState *cs, char *s) | 31 | void ISACVersion(struct IsdnCardState *cs, char *s) |
32 | { | 32 | { |
33 | int val; | 33 | int val; |
34 | 34 | ||
@@ -669,8 +669,7 @@ void clear_pending_isac_ints(struct IsdnCardState *cs) | |||
669 | cs->writeisac(cs, ISAC_MASK, 0xFF); | 669 | cs->writeisac(cs, ISAC_MASK, 0xFF); |
670 | } | 670 | } |
671 | 671 | ||
672 | void __devinit | 672 | void setup_isac(struct IsdnCardState *cs) |
673 | setup_isac(struct IsdnCardState *cs) | ||
674 | { | 673 | { |
675 | INIT_WORK(&cs->tqueue, isac_bh); | 674 | INIT_WORK(&cs->tqueue, isac_bh); |
676 | cs->dbusytimer.function = (void *) dbusy_timer_handler; | 675 | cs->dbusytimer.function = (void *) dbusy_timer_handler; |
diff --git a/drivers/isdn/hisax/isurf.c b/drivers/isdn/hisax/isurf.c index c1530fe248c2..1399ddd4f6cb 100644 --- a/drivers/isdn/hisax/isurf.c +++ b/drivers/isdn/hisax/isurf.c | |||
@@ -194,11 +194,10 @@ isurf_auxcmd(struct IsdnCardState *cs, isdn_ctrl *ic) { | |||
194 | } | 194 | } |
195 | 195 | ||
196 | #ifdef __ISAPNP__ | 196 | #ifdef __ISAPNP__ |
197 | static struct pnp_card *pnp_c __devinitdata = NULL; | 197 | static struct pnp_card *pnp_c = NULL; |
198 | #endif | 198 | #endif |
199 | 199 | ||
200 | int __devinit | 200 | int setup_isurf(struct IsdnCard *card) |
201 | setup_isurf(struct IsdnCard *card) | ||
202 | { | 201 | { |
203 | int ver; | 202 | int ver; |
204 | struct IsdnCardState *cs = card->cs; | 203 | struct IsdnCardState *cs = card->cs; |
diff --git a/drivers/isdn/hisax/ix1_micro.c b/drivers/isdn/hisax/ix1_micro.c index 5f299f82b801..7ae39f5e865d 100644 --- a/drivers/isdn/hisax/ix1_micro.c +++ b/drivers/isdn/hisax/ix1_micro.c | |||
@@ -209,7 +209,7 @@ ix1_card_msg(struct IsdnCardState *cs, int mt, void *arg) | |||
209 | } | 209 | } |
210 | 210 | ||
211 | #ifdef __ISAPNP__ | 211 | #ifdef __ISAPNP__ |
212 | static struct isapnp_device_id itk_ids[] __devinitdata = { | 212 | static struct isapnp_device_id itk_ids[] = { |
213 | { ISAPNP_VENDOR('I', 'T', 'K'), ISAPNP_FUNCTION(0x25), | 213 | { ISAPNP_VENDOR('I', 'T', 'K'), ISAPNP_FUNCTION(0x25), |
214 | ISAPNP_VENDOR('I', 'T', 'K'), ISAPNP_FUNCTION(0x25), | 214 | ISAPNP_VENDOR('I', 'T', 'K'), ISAPNP_FUNCTION(0x25), |
215 | (unsigned long) "ITK micro 2" }, | 215 | (unsigned long) "ITK micro 2" }, |
@@ -219,13 +219,12 @@ static struct isapnp_device_id itk_ids[] __devinitdata = { | |||
219 | { 0, } | 219 | { 0, } |
220 | }; | 220 | }; |
221 | 221 | ||
222 | static struct isapnp_device_id *ipid __devinitdata = &itk_ids[0]; | 222 | static struct isapnp_device_id *ipid = &itk_ids[0]; |
223 | static struct pnp_card *pnp_c __devinitdata = NULL; | 223 | static struct pnp_card *pnp_c = NULL; |
224 | #endif | 224 | #endif |
225 | 225 | ||
226 | 226 | ||
227 | int __devinit | 227 | int setup_ix1micro(struct IsdnCard *card) |
228 | setup_ix1micro(struct IsdnCard *card) | ||
229 | { | 228 | { |
230 | struct IsdnCardState *cs = card->cs; | 229 | struct IsdnCardState *cs = card->cs; |
231 | char tmp[64]; | 230 | char tmp[64]; |
diff --git a/drivers/isdn/hisax/mic.c b/drivers/isdn/hisax/mic.c index 08a6b7fb17f7..93398676f78f 100644 --- a/drivers/isdn/hisax/mic.c +++ b/drivers/isdn/hisax/mic.c | |||
@@ -187,8 +187,7 @@ mic_card_msg(struct IsdnCardState *cs, int mt, void *arg) | |||
187 | return (0); | 187 | return (0); |
188 | } | 188 | } |
189 | 189 | ||
190 | int __devinit | 190 | int setup_mic(struct IsdnCard *card) |
191 | setup_mic(struct IsdnCard *card) | ||
192 | { | 191 | { |
193 | int bytecnt; | 192 | int bytecnt; |
194 | struct IsdnCardState *cs = card->cs; | 193 | struct IsdnCardState *cs = card->cs; |
diff --git a/drivers/isdn/hisax/niccy.c b/drivers/isdn/hisax/niccy.c index 6569e0315cca..e4c33cfe3ef4 100644 --- a/drivers/isdn/hisax/niccy.c +++ b/drivers/isdn/hisax/niccy.c | |||
@@ -223,10 +223,10 @@ static int niccy_card_msg(struct IsdnCardState *cs, int mt, void *arg) | |||
223 | } | 223 | } |
224 | 224 | ||
225 | #ifdef __ISAPNP__ | 225 | #ifdef __ISAPNP__ |
226 | static struct pnp_card *pnp_c __devinitdata = NULL; | 226 | static struct pnp_card *pnp_c = NULL; |
227 | #endif | 227 | #endif |
228 | 228 | ||
229 | int __devinit setup_niccy(struct IsdnCard *card) | 229 | int setup_niccy(struct IsdnCard *card) |
230 | { | 230 | { |
231 | struct IsdnCardState *cs = card->cs; | 231 | struct IsdnCardState *cs = card->cs; |
232 | char tmp[64]; | 232 | char tmp[64]; |
@@ -298,7 +298,7 @@ int __devinit setup_niccy(struct IsdnCard *card) | |||
298 | } | 298 | } |
299 | } else { | 299 | } else { |
300 | #ifdef CONFIG_PCI | 300 | #ifdef CONFIG_PCI |
301 | static struct pci_dev *niccy_dev __devinitdata; | 301 | static struct pci_dev *niccy_dev; |
302 | 302 | ||
303 | u_int pci_ioaddr; | 303 | u_int pci_ioaddr; |
304 | cs->subtyp = 0; | 304 | cs->subtyp = 0; |
diff --git a/drivers/isdn/hisax/nj_s.c b/drivers/isdn/hisax/nj_s.c index f36ff69c07e1..32b4bbd18eb9 100644 --- a/drivers/isdn/hisax/nj_s.c +++ b/drivers/isdn/hisax/nj_s.c | |||
@@ -148,8 +148,7 @@ NETjet_S_card_msg(struct IsdnCardState *cs, int mt, void *arg) | |||
148 | return (0); | 148 | return (0); |
149 | } | 149 | } |
150 | 150 | ||
151 | static int __devinit njs_pci_probe(struct pci_dev *dev_netjet, | 151 | static int njs_pci_probe(struct pci_dev *dev_netjet, struct IsdnCardState *cs) |
152 | struct IsdnCardState *cs) | ||
153 | { | 152 | { |
154 | u32 cfg; | 153 | u32 cfg; |
155 | 154 | ||
@@ -187,8 +186,7 @@ static int __devinit njs_pci_probe(struct pci_dev *dev_netjet, | |||
187 | return (1); | 186 | return (1); |
188 | } | 187 | } |
189 | 188 | ||
190 | static int __devinit njs_cs_init(struct IsdnCard *card, | 189 | static int njs_cs_init(struct IsdnCard *card, struct IsdnCardState *cs) |
191 | struct IsdnCardState *cs) | ||
192 | { | 190 | { |
193 | 191 | ||
194 | cs->hw.njet.auxa = cs->hw.njet.base + NETJET_AUXDATA; | 192 | cs->hw.njet.auxa = cs->hw.njet.base + NETJET_AUXDATA; |
@@ -225,8 +223,7 @@ static int __devinit njs_cs_init(struct IsdnCard *card, | |||
225 | return 1; /* end loop */ | 223 | return 1; /* end loop */ |
226 | } | 224 | } |
227 | 225 | ||
228 | static int __devinit njs_cs_init_rest(struct IsdnCard *card, | 226 | static int njs_cs_init_rest(struct IsdnCard *card, struct IsdnCardState *cs) |
229 | struct IsdnCardState *cs) | ||
230 | { | 227 | { |
231 | const int bytecnt = 256; | 228 | const int bytecnt = 256; |
232 | 229 | ||
@@ -256,10 +253,9 @@ static int __devinit njs_cs_init_rest(struct IsdnCard *card, | |||
256 | return (1); | 253 | return (1); |
257 | } | 254 | } |
258 | 255 | ||
259 | static struct pci_dev *dev_netjet __devinitdata = NULL; | 256 | static struct pci_dev *dev_netjet = NULL; |
260 | 257 | ||
261 | int __devinit | 258 | int setup_netjet_s(struct IsdnCard *card) |
262 | setup_netjet_s(struct IsdnCard *card) | ||
263 | { | 259 | { |
264 | int ret; | 260 | int ret; |
265 | struct IsdnCardState *cs = card->cs; | 261 | struct IsdnCardState *cs = card->cs; |
diff --git a/drivers/isdn/hisax/nj_u.c b/drivers/isdn/hisax/nj_u.c index 333484aef425..4e8adbede361 100644 --- a/drivers/isdn/hisax/nj_u.c +++ b/drivers/isdn/hisax/nj_u.c | |||
@@ -128,8 +128,7 @@ NETjet_U_card_msg(struct IsdnCardState *cs, int mt, void *arg) | |||
128 | return (0); | 128 | return (0); |
129 | } | 129 | } |
130 | 130 | ||
131 | static int __devinit nju_pci_probe(struct pci_dev *dev_netjet, | 131 | static int nju_pci_probe(struct pci_dev *dev_netjet, struct IsdnCardState *cs) |
132 | struct IsdnCardState *cs) | ||
133 | { | 132 | { |
134 | if (pci_enable_device(dev_netjet)) | 133 | if (pci_enable_device(dev_netjet)) |
135 | return (0); | 134 | return (0); |
@@ -148,8 +147,7 @@ static int __devinit nju_pci_probe(struct pci_dev *dev_netjet, | |||
148 | return (1); | 147 | return (1); |
149 | } | 148 | } |
150 | 149 | ||
151 | static int __devinit nju_cs_init(struct IsdnCard *card, | 150 | static int nju_cs_init(struct IsdnCard *card, struct IsdnCardState *cs) |
152 | struct IsdnCardState *cs) | ||
153 | { | 151 | { |
154 | cs->hw.njet.auxa = cs->hw.njet.base + NETJET_AUXDATA; | 152 | cs->hw.njet.auxa = cs->hw.njet.base + NETJET_AUXDATA; |
155 | cs->hw.njet.isac = cs->hw.njet.base | NETJET_ISAC_OFF; | 153 | cs->hw.njet.isac = cs->hw.njet.base | NETJET_ISAC_OFF; |
@@ -187,8 +185,7 @@ static int __devinit nju_cs_init(struct IsdnCard *card, | |||
187 | return 1; /* end loop */ | 185 | return 1; /* end loop */ |
188 | } | 186 | } |
189 | 187 | ||
190 | static int __devinit nju_cs_init_rest(struct IsdnCard *card, | 188 | static int nju_cs_init_rest(struct IsdnCard *card, struct IsdnCardState *cs) |
191 | struct IsdnCardState *cs) | ||
192 | { | 189 | { |
193 | const int bytecnt = 256; | 190 | const int bytecnt = 256; |
194 | 191 | ||
@@ -219,10 +216,9 @@ static int __devinit nju_cs_init_rest(struct IsdnCard *card, | |||
219 | return (1); | 216 | return (1); |
220 | } | 217 | } |
221 | 218 | ||
222 | static struct pci_dev *dev_netjet __devinitdata = NULL; | 219 | static struct pci_dev *dev_netjet = NULL; |
223 | 220 | ||
224 | int __devinit | 221 | int setup_netjet_u(struct IsdnCard *card) |
225 | setup_netjet_u(struct IsdnCard *card) | ||
226 | { | 222 | { |
227 | int ret; | 223 | int ret; |
228 | struct IsdnCardState *cs = card->cs; | 224 | struct IsdnCardState *cs = card->cs; |
diff --git a/drivers/isdn/hisax/s0box.c b/drivers/isdn/hisax/s0box.c index 383c4e7ce50b..4e7d0aa227ad 100644 --- a/drivers/isdn/hisax/s0box.c +++ b/drivers/isdn/hisax/s0box.c | |||
@@ -210,8 +210,7 @@ S0Box_card_msg(struct IsdnCardState *cs, int mt, void *arg) | |||
210 | return (0); | 210 | return (0); |
211 | } | 211 | } |
212 | 212 | ||
213 | int __devinit | 213 | int setup_s0box(struct IsdnCard *card) |
214 | setup_s0box(struct IsdnCard *card) | ||
215 | { | 214 | { |
216 | struct IsdnCardState *cs = card->cs; | 215 | struct IsdnCardState *cs = card->cs; |
217 | char tmp[64]; | 216 | char tmp[64]; |
diff --git a/drivers/isdn/hisax/saphir.c b/drivers/isdn/hisax/saphir.c index 75dcae6d36e0..6b2d0eccdd56 100644 --- a/drivers/isdn/hisax/saphir.c +++ b/drivers/isdn/hisax/saphir.c | |||
@@ -240,8 +240,7 @@ saphir_card_msg(struct IsdnCardState *cs, int mt, void *arg) | |||
240 | } | 240 | } |
241 | 241 | ||
242 | 242 | ||
243 | int __devinit | 243 | int setup_saphir(struct IsdnCard *card) |
244 | setup_saphir(struct IsdnCard *card) | ||
245 | { | 244 | { |
246 | struct IsdnCardState *cs = card->cs; | 245 | struct IsdnCardState *cs = card->cs; |
247 | char tmp[64]; | 246 | char tmp[64]; |
diff --git a/drivers/isdn/hisax/sedlbauer.c b/drivers/isdn/hisax/sedlbauer.c index 1ee531b6be99..f16a47bcef48 100644 --- a/drivers/isdn/hisax/sedlbauer.c +++ b/drivers/isdn/hisax/sedlbauer.c | |||
@@ -517,7 +517,7 @@ Sedl_card_msg(struct IsdnCardState *cs, int mt, void *arg) | |||
517 | } | 517 | } |
518 | 518 | ||
519 | #ifdef __ISAPNP__ | 519 | #ifdef __ISAPNP__ |
520 | static struct isapnp_device_id sedl_ids[] __devinitdata = { | 520 | static struct isapnp_device_id sedl_ids[] = { |
521 | { ISAPNP_VENDOR('S', 'A', 'G'), ISAPNP_FUNCTION(0x01), | 521 | { ISAPNP_VENDOR('S', 'A', 'G'), ISAPNP_FUNCTION(0x01), |
522 | ISAPNP_VENDOR('S', 'A', 'G'), ISAPNP_FUNCTION(0x01), | 522 | ISAPNP_VENDOR('S', 'A', 'G'), ISAPNP_FUNCTION(0x01), |
523 | (unsigned long) "Speed win" }, | 523 | (unsigned long) "Speed win" }, |
@@ -527,11 +527,10 @@ static struct isapnp_device_id sedl_ids[] __devinitdata = { | |||
527 | { 0, } | 527 | { 0, } |
528 | }; | 528 | }; |
529 | 529 | ||
530 | static struct isapnp_device_id *ipid __devinitdata = &sedl_ids[0]; | 530 | static struct isapnp_device_id *ipid = &sedl_ids[0]; |
531 | static struct pnp_card *pnp_c __devinitdata = NULL; | 531 | static struct pnp_card *pnp_c = NULL; |
532 | 532 | ||
533 | static int __devinit | 533 | static int setup_sedlbauer_isapnp(struct IsdnCard *card, int *bytecnt) |
534 | setup_sedlbauer_isapnp(struct IsdnCard *card, int *bytecnt) | ||
535 | { | 534 | { |
536 | struct IsdnCardState *cs = card->cs; | 535 | struct IsdnCardState *cs = card->cs; |
537 | struct pnp_dev *pnp_d; | 536 | struct pnp_dev *pnp_d; |
@@ -591,18 +590,16 @@ setup_sedlbauer_isapnp(struct IsdnCard *card, int *bytecnt) | |||
591 | } | 590 | } |
592 | #else | 591 | #else |
593 | 592 | ||
594 | static int __devinit | 593 | static int setup_sedlbauer_isapnp(struct IsdnCard *card, int *bytecnt) |
595 | setup_sedlbauer_isapnp(struct IsdnCard *card, int *bytecnt) | ||
596 | { | 594 | { |
597 | return -1; | 595 | return -1; |
598 | } | 596 | } |
599 | #endif /* __ISAPNP__ */ | 597 | #endif /* __ISAPNP__ */ |
600 | 598 | ||
601 | #ifdef CONFIG_PCI | 599 | #ifdef CONFIG_PCI |
602 | static struct pci_dev *dev_sedl __devinitdata = NULL; | 600 | static struct pci_dev *dev_sedl = NULL; |
603 | 601 | ||
604 | static int __devinit | 602 | static int setup_sedlbauer_pci(struct IsdnCard *card) |
605 | setup_sedlbauer_pci(struct IsdnCard *card) | ||
606 | { | 603 | { |
607 | struct IsdnCardState *cs = card->cs; | 604 | struct IsdnCardState *cs = card->cs; |
608 | u16 sub_vendor_id, sub_id; | 605 | u16 sub_vendor_id, sub_id; |
@@ -667,16 +664,14 @@ setup_sedlbauer_pci(struct IsdnCard *card) | |||
667 | 664 | ||
668 | #else | 665 | #else |
669 | 666 | ||
670 | static int __devinit | 667 | static int setup_sedlbauer_pci(struct IsdnCard *card) |
671 | setup_sedlbauer_pci(struct IsdnCard *card) | ||
672 | { | 668 | { |
673 | return (1); | 669 | return (1); |
674 | } | 670 | } |
675 | 671 | ||
676 | #endif /* CONFIG_PCI */ | 672 | #endif /* CONFIG_PCI */ |
677 | 673 | ||
678 | int __devinit | 674 | int setup_sedlbauer(struct IsdnCard *card) |
679 | setup_sedlbauer(struct IsdnCard *card) | ||
680 | { | 675 | { |
681 | int bytecnt = 8, ver, val, rc; | 676 | int bytecnt = 8, ver, val, rc; |
682 | struct IsdnCardState *cs = card->cs; | 677 | struct IsdnCardState *cs = card->cs; |
diff --git a/drivers/isdn/hisax/sedlbauer_cs.c b/drivers/isdn/hisax/sedlbauer_cs.c index f0dfc0c976eb..90f81291641b 100644 --- a/drivers/isdn/hisax/sedlbauer_cs.c +++ b/drivers/isdn/hisax/sedlbauer_cs.c | |||
@@ -62,10 +62,10 @@ MODULE_LICENSE("Dual MPL/GPL"); | |||
62 | static int protocol = 2; /* EURO-ISDN Default */ | 62 | static int protocol = 2; /* EURO-ISDN Default */ |
63 | module_param(protocol, int, 0); | 63 | module_param(protocol, int, 0); |
64 | 64 | ||
65 | static int sedlbauer_config(struct pcmcia_device *link) __devinit; | 65 | static int sedlbauer_config(struct pcmcia_device *link); |
66 | static void sedlbauer_release(struct pcmcia_device *link); | 66 | static void sedlbauer_release(struct pcmcia_device *link); |
67 | 67 | ||
68 | static void sedlbauer_detach(struct pcmcia_device *p_dev) __devexit; | 68 | static void sedlbauer_detach(struct pcmcia_device *p_dev); |
69 | 69 | ||
70 | typedef struct local_info_t { | 70 | typedef struct local_info_t { |
71 | struct pcmcia_device *p_dev; | 71 | struct pcmcia_device *p_dev; |
@@ -73,7 +73,7 @@ typedef struct local_info_t { | |||
73 | int cardnr; | 73 | int cardnr; |
74 | } local_info_t; | 74 | } local_info_t; |
75 | 75 | ||
76 | static int __devinit sedlbauer_probe(struct pcmcia_device *link) | 76 | static int sedlbauer_probe(struct pcmcia_device *link) |
77 | { | 77 | { |
78 | local_info_t *local; | 78 | local_info_t *local; |
79 | 79 | ||
@@ -90,7 +90,7 @@ static int __devinit sedlbauer_probe(struct pcmcia_device *link) | |||
90 | return sedlbauer_config(link); | 90 | return sedlbauer_config(link); |
91 | } /* sedlbauer_attach */ | 91 | } /* sedlbauer_attach */ |
92 | 92 | ||
93 | static void __devexit sedlbauer_detach(struct pcmcia_device *link) | 93 | static void sedlbauer_detach(struct pcmcia_device *link) |
94 | { | 94 | { |
95 | dev_dbg(&link->dev, "sedlbauer_detach(0x%p)\n", link); | 95 | dev_dbg(&link->dev, "sedlbauer_detach(0x%p)\n", link); |
96 | 96 | ||
@@ -110,7 +110,7 @@ static int sedlbauer_config_check(struct pcmcia_device *p_dev, void *priv_data) | |||
110 | return pcmcia_request_io(p_dev); | 110 | return pcmcia_request_io(p_dev); |
111 | } | 111 | } |
112 | 112 | ||
113 | static int __devinit sedlbauer_config(struct pcmcia_device *link) | 113 | static int sedlbauer_config(struct pcmcia_device *link) |
114 | { | 114 | { |
115 | int ret; | 115 | int ret; |
116 | IsdnCard_t icard; | 116 | IsdnCard_t icard; |
@@ -201,7 +201,7 @@ static struct pcmcia_driver sedlbauer_driver = { | |||
201 | .owner = THIS_MODULE, | 201 | .owner = THIS_MODULE, |
202 | .name = "sedlbauer_cs", | 202 | .name = "sedlbauer_cs", |
203 | .probe = sedlbauer_probe, | 203 | .probe = sedlbauer_probe, |
204 | .remove = __devexit_p(sedlbauer_detach), | 204 | .remove = sedlbauer_detach, |
205 | .id_table = sedlbauer_ids, | 205 | .id_table = sedlbauer_ids, |
206 | .suspend = sedlbauer_suspend, | 206 | .suspend = sedlbauer_suspend, |
207 | .resume = sedlbauer_resume, | 207 | .resume = sedlbauer_resume, |
diff --git a/drivers/isdn/hisax/sportster.c b/drivers/isdn/hisax/sportster.c index 1267298ef551..18cee6360d0a 100644 --- a/drivers/isdn/hisax/sportster.c +++ b/drivers/isdn/hisax/sportster.c | |||
@@ -183,8 +183,7 @@ Sportster_card_msg(struct IsdnCardState *cs, int mt, void *arg) | |||
183 | return (0); | 183 | return (0); |
184 | } | 184 | } |
185 | 185 | ||
186 | static int __devinit | 186 | static int get_io_range(struct IsdnCardState *cs) |
187 | get_io_range(struct IsdnCardState *cs) | ||
188 | { | 187 | { |
189 | int i, j, adr; | 188 | int i, j, adr; |
190 | 189 | ||
@@ -208,8 +207,7 @@ get_io_range(struct IsdnCardState *cs) | |||
208 | } | 207 | } |
209 | } | 208 | } |
210 | 209 | ||
211 | int __devinit | 210 | int setup_sportster(struct IsdnCard *card) |
212 | setup_sportster(struct IsdnCard *card) | ||
213 | { | 211 | { |
214 | struct IsdnCardState *cs = card->cs; | 212 | struct IsdnCardState *cs = card->cs; |
215 | char tmp[64]; | 213 | char tmp[64]; |
diff --git a/drivers/isdn/hisax/teleint.c b/drivers/isdn/hisax/teleint.c index fa329e27cc5b..bf647545c70c 100644 --- a/drivers/isdn/hisax/teleint.c +++ b/drivers/isdn/hisax/teleint.c | |||
@@ -259,8 +259,7 @@ TeleInt_card_msg(struct IsdnCardState *cs, int mt, void *arg) | |||
259 | return (0); | 259 | return (0); |
260 | } | 260 | } |
261 | 261 | ||
262 | int __devinit | 262 | int setup_TeleInt(struct IsdnCard *card) |
263 | setup_TeleInt(struct IsdnCard *card) | ||
264 | { | 263 | { |
265 | struct IsdnCardState *cs = card->cs; | 264 | struct IsdnCardState *cs = card->cs; |
266 | char tmp[64]; | 265 | char tmp[64]; |
diff --git a/drivers/isdn/hisax/teles0.c b/drivers/isdn/hisax/teles0.c index 49b4a26f91e0..ce9eabdd2f6e 100644 --- a/drivers/isdn/hisax/teles0.c +++ b/drivers/isdn/hisax/teles0.c | |||
@@ -263,8 +263,7 @@ Teles_card_msg(struct IsdnCardState *cs, int mt, void *arg) | |||
263 | return (0); | 263 | return (0); |
264 | } | 264 | } |
265 | 265 | ||
266 | int __devinit | 266 | int setup_teles0(struct IsdnCard *card) |
267 | setup_teles0(struct IsdnCard *card) | ||
268 | { | 267 | { |
269 | u_char val; | 268 | u_char val; |
270 | struct IsdnCardState *cs = card->cs; | 269 | struct IsdnCardState *cs = card->cs; |
diff --git a/drivers/isdn/hisax/teles3.c b/drivers/isdn/hisax/teles3.c index 220b919fafc3..38fb2c1a3f0f 100644 --- a/drivers/isdn/hisax/teles3.c +++ b/drivers/isdn/hisax/teles3.c | |||
@@ -253,7 +253,7 @@ Teles_card_msg(struct IsdnCardState *cs, int mt, void *arg) | |||
253 | 253 | ||
254 | #ifdef __ISAPNP__ | 254 | #ifdef __ISAPNP__ |
255 | 255 | ||
256 | static struct isapnp_device_id teles_ids[] __devinitdata = { | 256 | static struct isapnp_device_id teles_ids[] = { |
257 | { ISAPNP_VENDOR('T', 'A', 'G'), ISAPNP_FUNCTION(0x2110), | 257 | { ISAPNP_VENDOR('T', 'A', 'G'), ISAPNP_FUNCTION(0x2110), |
258 | ISAPNP_VENDOR('T', 'A', 'G'), ISAPNP_FUNCTION(0x2110), | 258 | ISAPNP_VENDOR('T', 'A', 'G'), ISAPNP_FUNCTION(0x2110), |
259 | (unsigned long) "Teles 16.3 PnP" }, | 259 | (unsigned long) "Teles 16.3 PnP" }, |
@@ -266,12 +266,11 @@ static struct isapnp_device_id teles_ids[] __devinitdata = { | |||
266 | { 0, } | 266 | { 0, } |
267 | }; | 267 | }; |
268 | 268 | ||
269 | static struct isapnp_device_id *ipid __devinitdata = &teles_ids[0]; | 269 | static struct isapnp_device_id *ipid = &teles_ids[0]; |
270 | static struct pnp_card *pnp_c __devinitdata = NULL; | 270 | static struct pnp_card *pnp_c = NULL; |
271 | #endif | 271 | #endif |
272 | 272 | ||
273 | int __devinit | 273 | int setup_teles3(struct IsdnCard *card) |
274 | setup_teles3(struct IsdnCard *card) | ||
275 | { | 274 | { |
276 | u_char val; | 275 | u_char val; |
277 | struct IsdnCardState *cs = card->cs; | 276 | struct IsdnCardState *cs = card->cs; |
diff --git a/drivers/isdn/hisax/teles_cs.c b/drivers/isdn/hisax/teles_cs.c index 4deac451807c..f2476ffb04fd 100644 --- a/drivers/isdn/hisax/teles_cs.c +++ b/drivers/isdn/hisax/teles_cs.c | |||
@@ -43,9 +43,9 @@ MODULE_LICENSE("GPL"); | |||
43 | static int protocol = 2; /* EURO-ISDN Default */ | 43 | static int protocol = 2; /* EURO-ISDN Default */ |
44 | module_param(protocol, int, 0); | 44 | module_param(protocol, int, 0); |
45 | 45 | ||
46 | static int teles_cs_config(struct pcmcia_device *link) __devinit; | 46 | static int teles_cs_config(struct pcmcia_device *link); |
47 | static void teles_cs_release(struct pcmcia_device *link); | 47 | static void teles_cs_release(struct pcmcia_device *link); |
48 | static void teles_detach(struct pcmcia_device *p_dev) __devexit; | 48 | static void teles_detach(struct pcmcia_device *p_dev); |
49 | 49 | ||
50 | typedef struct local_info_t { | 50 | typedef struct local_info_t { |
51 | struct pcmcia_device *p_dev; | 51 | struct pcmcia_device *p_dev; |
@@ -53,7 +53,7 @@ typedef struct local_info_t { | |||
53 | int cardnr; | 53 | int cardnr; |
54 | } local_info_t; | 54 | } local_info_t; |
55 | 55 | ||
56 | static int __devinit teles_probe(struct pcmcia_device *link) | 56 | static int teles_probe(struct pcmcia_device *link) |
57 | { | 57 | { |
58 | local_info_t *local; | 58 | local_info_t *local; |
59 | 59 | ||
@@ -72,7 +72,7 @@ static int __devinit teles_probe(struct pcmcia_device *link) | |||
72 | return teles_cs_config(link); | 72 | return teles_cs_config(link); |
73 | } /* teles_attach */ | 73 | } /* teles_attach */ |
74 | 74 | ||
75 | static void __devexit teles_detach(struct pcmcia_device *link) | 75 | static void teles_detach(struct pcmcia_device *link) |
76 | { | 76 | { |
77 | local_info_t *info = link->priv; | 77 | local_info_t *info = link->priv; |
78 | 78 | ||
@@ -108,7 +108,7 @@ static int teles_cs_configcheck(struct pcmcia_device *p_dev, void *priv_data) | |||
108 | return -ENODEV; | 108 | return -ENODEV; |
109 | } | 109 | } |
110 | 110 | ||
111 | static int __devinit teles_cs_config(struct pcmcia_device *link) | 111 | static int teles_cs_config(struct pcmcia_device *link) |
112 | { | 112 | { |
113 | int i; | 113 | int i; |
114 | IsdnCard_t icard; | 114 | IsdnCard_t icard; |
@@ -192,7 +192,7 @@ static struct pcmcia_driver teles_cs_driver = { | |||
192 | .owner = THIS_MODULE, | 192 | .owner = THIS_MODULE, |
193 | .name = "teles_cs", | 193 | .name = "teles_cs", |
194 | .probe = teles_probe, | 194 | .probe = teles_probe, |
195 | .remove = __devexit_p(teles_detach), | 195 | .remove = teles_detach, |
196 | .id_table = teles_ids, | 196 | .id_table = teles_ids, |
197 | .suspend = teles_suspend, | 197 | .suspend = teles_suspend, |
198 | .resume = teles_resume, | 198 | .resume = teles_resume, |
diff --git a/drivers/isdn/hisax/telespci.c b/drivers/isdn/hisax/telespci.c index 9c002c9dc771..f6ab63aa6995 100644 --- a/drivers/isdn/hisax/telespci.c +++ b/drivers/isdn/hisax/telespci.c | |||
@@ -283,10 +283,9 @@ TelesPCI_card_msg(struct IsdnCardState *cs, int mt, void *arg) | |||
283 | return (0); | 283 | return (0); |
284 | } | 284 | } |
285 | 285 | ||
286 | static struct pci_dev *dev_tel __devinitdata = NULL; | 286 | static struct pci_dev *dev_tel = NULL; |
287 | 287 | ||
288 | int __devinit | 288 | int setup_telespci(struct IsdnCard *card) |
289 | setup_telespci(struct IsdnCard *card) | ||
290 | { | 289 | { |
291 | struct IsdnCardState *cs = card->cs; | 290 | struct IsdnCardState *cs = card->cs; |
292 | char tmp[64]; | 291 | char tmp[64]; |
diff --git a/drivers/isdn/hisax/w6692.c b/drivers/isdn/hisax/w6692.c index 0f0d094af85b..d8cac6935818 100644 --- a/drivers/isdn/hisax/w6692.c +++ b/drivers/isdn/hisax/w6692.c | |||
@@ -991,10 +991,9 @@ w6692_card_msg(struct IsdnCardState *cs, int mt, void *arg) | |||
991 | 991 | ||
992 | static int id_idx; | 992 | static int id_idx; |
993 | 993 | ||
994 | static struct pci_dev *dev_w6692 __devinitdata = NULL; | 994 | static struct pci_dev *dev_w6692 = NULL; |
995 | 995 | ||
996 | int __devinit | 996 | int setup_w6692(struct IsdnCard *card) |
997 | setup_w6692(struct IsdnCard *card) | ||
998 | { | 997 | { |
999 | struct IsdnCardState *cs = card->cs; | 998 | struct IsdnCardState *cs = card->cs; |
1000 | char tmp[64]; | 999 | char tmp[64]; |
diff --git a/drivers/isdn/hysdn/hysdn_init.c b/drivers/isdn/hysdn/hysdn_init.c index b61bbb4bb52b..0db2f7506250 100644 --- a/drivers/isdn/hysdn/hysdn_init.c +++ b/drivers/isdn/hysdn/hysdn_init.c | |||
@@ -56,8 +56,8 @@ static hysdn_card *card_last = NULL; /* pointer to first card */ | |||
56 | /* is assumed and the module will not be kept in memory. */ | 56 | /* is assumed and the module will not be kept in memory. */ |
57 | /****************************************************************************/ | 57 | /****************************************************************************/ |
58 | 58 | ||
59 | static int __devinit hysdn_pci_init_one(struct pci_dev *akt_pcidev, | 59 | static int hysdn_pci_init_one(struct pci_dev *akt_pcidev, |
60 | const struct pci_device_id *ent) | 60 | const struct pci_device_id *ent) |
61 | { | 61 | { |
62 | hysdn_card *card; | 62 | hysdn_card *card; |
63 | int rc; | 63 | int rc; |
@@ -109,7 +109,7 @@ err_out: | |||
109 | return rc; | 109 | return rc; |
110 | } | 110 | } |
111 | 111 | ||
112 | static void __devexit hysdn_pci_remove_one(struct pci_dev *akt_pcidev) | 112 | static void hysdn_pci_remove_one(struct pci_dev *akt_pcidev) |
113 | { | 113 | { |
114 | hysdn_card *card = pci_get_drvdata(akt_pcidev); | 114 | hysdn_card *card = pci_get_drvdata(akt_pcidev); |
115 | 115 | ||
@@ -147,7 +147,7 @@ static struct pci_driver hysdn_pci_driver = { | |||
147 | .name = "hysdn", | 147 | .name = "hysdn", |
148 | .id_table = hysdn_pci_tbl, | 148 | .id_table = hysdn_pci_tbl, |
149 | .probe = hysdn_pci_init_one, | 149 | .probe = hysdn_pci_init_one, |
150 | .remove = __devexit_p(hysdn_pci_remove_one), | 150 | .remove = hysdn_pci_remove_one, |
151 | }; | 151 | }; |
152 | 152 | ||
153 | static int hysdn_have_procfs; | 153 | static int hysdn_have_procfs; |
diff --git a/drivers/isdn/i4l/Kconfig b/drivers/isdn/i4l/Kconfig index 2302fbe70ac6..9c6650ea848e 100644 --- a/drivers/isdn/i4l/Kconfig +++ b/drivers/isdn/i4l/Kconfig | |||
@@ -6,7 +6,7 @@ if ISDN_I4L | |||
6 | 6 | ||
7 | config ISDN_PPP | 7 | config ISDN_PPP |
8 | bool "Support synchronous PPP" | 8 | bool "Support synchronous PPP" |
9 | depends on INET && NETDEVICES | 9 | depends on INET |
10 | select SLHC | 10 | select SLHC |
11 | help | 11 | help |
12 | Over digital connections such as ISDN, there is no need to | 12 | Over digital connections such as ISDN, there is no need to |
diff --git a/drivers/isdn/i4l/isdn_common.c b/drivers/isdn/i4l/isdn_common.c index 8c610fa6782b..e2a945ee9f05 100644 --- a/drivers/isdn/i4l/isdn_common.c +++ b/drivers/isdn/i4l/isdn_common.c | |||
@@ -1312,7 +1312,6 @@ isdn_ioctl(struct file *file, uint cmd, ulong arg) | |||
1312 | } else | 1312 | } else |
1313 | return -EINVAL; | 1313 | return -EINVAL; |
1314 | break; | 1314 | break; |
1315 | #ifdef CONFIG_NETDEVICES | ||
1316 | case IIOCNETGPN: | 1315 | case IIOCNETGPN: |
1317 | /* Get peer phone number of a connected | 1316 | /* Get peer phone number of a connected |
1318 | * isdn network interface */ | 1317 | * isdn network interface */ |
@@ -1322,7 +1321,6 @@ isdn_ioctl(struct file *file, uint cmd, ulong arg) | |||
1322 | return isdn_net_getpeer(&phone, argp); | 1321 | return isdn_net_getpeer(&phone, argp); |
1323 | } else | 1322 | } else |
1324 | return -EINVAL; | 1323 | return -EINVAL; |
1325 | #endif | ||
1326 | default: | 1324 | default: |
1327 | return -EINVAL; | 1325 | return -EINVAL; |
1328 | } | 1326 | } |
@@ -1352,7 +1350,6 @@ isdn_ioctl(struct file *file, uint cmd, ulong arg) | |||
1352 | case IIOCNETLCR: | 1350 | case IIOCNETLCR: |
1353 | printk(KERN_INFO "INFO: ISDN_ABC_LCR_SUPPORT not enabled\n"); | 1351 | printk(KERN_INFO "INFO: ISDN_ABC_LCR_SUPPORT not enabled\n"); |
1354 | return -ENODEV; | 1352 | return -ENODEV; |
1355 | #ifdef CONFIG_NETDEVICES | ||
1356 | case IIOCNETAIF: | 1353 | case IIOCNETAIF: |
1357 | /* Add a network-interface */ | 1354 | /* Add a network-interface */ |
1358 | if (arg) { | 1355 | if (arg) { |
@@ -1491,7 +1488,6 @@ isdn_ioctl(struct file *file, uint cmd, ulong arg) | |||
1491 | return -EFAULT; | 1488 | return -EFAULT; |
1492 | return isdn_net_force_hangup(name); | 1489 | return isdn_net_force_hangup(name); |
1493 | break; | 1490 | break; |
1494 | #endif /* CONFIG_NETDEVICES */ | ||
1495 | case IIOCSETVER: | 1491 | case IIOCSETVER: |
1496 | dev->net_verbose = arg; | 1492 | dev->net_verbose = arg; |
1497 | printk(KERN_INFO "isdn: Verbose-Level is %d\n", dev->net_verbose); | 1493 | printk(KERN_INFO "isdn: Verbose-Level is %d\n", dev->net_verbose); |
diff --git a/drivers/isdn/i4l/isdn_tty.c b/drivers/isdn/i4l/isdn_tty.c index b817809f763c..e09dc8a5e743 100644 --- a/drivers/isdn/i4l/isdn_tty.c +++ b/drivers/isdn/i4l/isdn_tty.c | |||
@@ -1849,6 +1849,8 @@ err_unregister: | |||
1849 | kfree(info->fax); | 1849 | kfree(info->fax); |
1850 | #endif | 1850 | #endif |
1851 | kfree(info->port.xmit_buf - 4); | 1851 | kfree(info->port.xmit_buf - 4); |
1852 | info->port.xmit_buf = NULL; | ||
1853 | tty_port_destroy(&info->port); | ||
1852 | } | 1854 | } |
1853 | tty_unregister_driver(m->tty_modem); | 1855 | tty_unregister_driver(m->tty_modem); |
1854 | err: | 1856 | err: |
@@ -1870,6 +1872,8 @@ isdn_tty_exit(void) | |||
1870 | kfree(info->fax); | 1872 | kfree(info->fax); |
1871 | #endif | 1873 | #endif |
1872 | kfree(info->port.xmit_buf - 4); | 1874 | kfree(info->port.xmit_buf - 4); |
1875 | info->port.xmit_buf = NULL; | ||
1876 | tty_port_destroy(&info->port); | ||
1873 | } | 1877 | } |
1874 | tty_unregister_driver(dev->mdm.tty_modem); | 1878 | tty_unregister_driver(dev->mdm.tty_modem); |
1875 | put_tty_driver(dev->mdm.tty_modem); | 1879 | put_tty_driver(dev->mdm.tty_modem); |
diff --git a/drivers/isdn/mISDN/core.c b/drivers/isdn/mISDN/core.c index c401634c00ec..3e245712bba7 100644 --- a/drivers/isdn/mISDN/core.c +++ b/drivers/isdn/mISDN/core.c | |||
@@ -140,7 +140,6 @@ static struct device_attribute mISDN_dev_attrs[] = { | |||
140 | {} | 140 | {} |
141 | }; | 141 | }; |
142 | 142 | ||
143 | #ifdef CONFIG_HOTPLUG | ||
144 | static int mISDN_uevent(struct device *dev, struct kobj_uevent_env *env) | 143 | static int mISDN_uevent(struct device *dev, struct kobj_uevent_env *env) |
145 | { | 144 | { |
146 | struct mISDNdevice *mdev = dev_to_mISDN(dev); | 145 | struct mISDNdevice *mdev = dev_to_mISDN(dev); |
@@ -153,7 +152,6 @@ static int mISDN_uevent(struct device *dev, struct kobj_uevent_env *env) | |||
153 | 152 | ||
154 | return 0; | 153 | return 0; |
155 | } | 154 | } |
156 | #endif | ||
157 | 155 | ||
158 | static void mISDN_class_release(struct class *cls) | 156 | static void mISDN_class_release(struct class *cls) |
159 | { | 157 | { |
@@ -163,9 +161,7 @@ static void mISDN_class_release(struct class *cls) | |||
163 | static struct class mISDN_class = { | 161 | static struct class mISDN_class = { |
164 | .name = "mISDN", | 162 | .name = "mISDN", |
165 | .owner = THIS_MODULE, | 163 | .owner = THIS_MODULE, |
166 | #ifdef CONFIG_HOTPLUG | ||
167 | .dev_uevent = mISDN_uevent, | 164 | .dev_uevent = mISDN_uevent, |
168 | #endif | ||
169 | .dev_attrs = mISDN_dev_attrs, | 165 | .dev_attrs = mISDN_dev_attrs, |
170 | .dev_release = mISDN_dev_release, | 166 | .dev_release = mISDN_dev_release, |
171 | .class_release = mISDN_class_release, | 167 | .class_release = mISDN_class_release, |
diff --git a/drivers/isdn/mISDN/dsp_core.c b/drivers/isdn/mISDN/dsp_core.c index 28c99c623bcd..22b720ec80cb 100644 --- a/drivers/isdn/mISDN/dsp_core.c +++ b/drivers/isdn/mISDN/dsp_core.c | |||
@@ -1217,8 +1217,7 @@ static void __exit dsp_cleanup(void) | |||
1217 | { | 1217 | { |
1218 | mISDN_unregister_Bprotocol(&DSP); | 1218 | mISDN_unregister_Bprotocol(&DSP); |
1219 | 1219 | ||
1220 | if (timer_pending(&dsp_spl_tl)) | 1220 | del_timer_sync(&dsp_spl_tl); |
1221 | del_timer(&dsp_spl_tl); | ||
1222 | 1221 | ||
1223 | if (!list_empty(&dsp_ilist)) { | 1222 | if (!list_empty(&dsp_ilist)) { |
1224 | printk(KERN_ERR "mISDN_dsp: Audio DSP object inst list not " | 1223 | printk(KERN_ERR "mISDN_dsp: Audio DSP object inst list not " |
diff --git a/drivers/isdn/mISDN/l1oip_core.c b/drivers/isdn/mISDN/l1oip_core.c index d67126dbbb04..2c0d2c2bf946 100644 --- a/drivers/isdn/mISDN/l1oip_core.c +++ b/drivers/isdn/mISDN/l1oip_core.c | |||
@@ -277,7 +277,6 @@ l1oip_socket_send(struct l1oip *hc, u8 localcodec, u8 channel, u32 chanmask, | |||
277 | u16 timebase, u8 *buf, int len) | 277 | u16 timebase, u8 *buf, int len) |
278 | { | 278 | { |
279 | u8 *p; | 279 | u8 *p; |
280 | int multi = 0; | ||
281 | u8 frame[len + 32]; | 280 | u8 frame[len + 32]; |
282 | struct socket *socket = NULL; | 281 | struct socket *socket = NULL; |
283 | 282 | ||
@@ -317,9 +316,7 @@ l1oip_socket_send(struct l1oip *hc, u8 localcodec, u8 channel, u32 chanmask, | |||
317 | *p++ = hc->id >> 8; | 316 | *p++ = hc->id >> 8; |
318 | *p++ = hc->id; | 317 | *p++ = hc->id; |
319 | } | 318 | } |
320 | *p++ = (multi == 1) ? 0x80 : 0x00 + channel; /* m-flag, channel */ | 319 | *p++ = 0x00 + channel; /* m-flag, channel */ |
321 | if (multi == 1) | ||
322 | *p++ = len; /* length */ | ||
323 | *p++ = timebase >> 8; /* time base */ | 320 | *p++ = timebase >> 8; /* time base */ |
324 | *p++ = timebase; | 321 | *p++ = timebase; |
325 | 322 | ||
diff --git a/drivers/isdn/mISDN/tei.c b/drivers/isdn/mISDN/tei.c index be88728f1106..592f597d8951 100644 --- a/drivers/isdn/mISDN/tei.c +++ b/drivers/isdn/mISDN/tei.c | |||
@@ -250,7 +250,7 @@ tei_debug(struct FsmInst *fi, char *fmt, ...) | |||
250 | static int | 250 | static int |
251 | get_free_id(struct manager *mgr) | 251 | get_free_id(struct manager *mgr) |
252 | { | 252 | { |
253 | u64 ids = 0; | 253 | DECLARE_BITMAP(ids, 64) = { [0 ... BITS_TO_LONGS(64) - 1] = 0 }; |
254 | int i; | 254 | int i; |
255 | struct layer2 *l2; | 255 | struct layer2 *l2; |
256 | 256 | ||
@@ -261,11 +261,11 @@ get_free_id(struct manager *mgr) | |||
261 | __func__); | 261 | __func__); |
262 | return -EBUSY; | 262 | return -EBUSY; |
263 | } | 263 | } |
264 | test_and_set_bit(l2->ch.nr, (u_long *)&ids); | 264 | __set_bit(l2->ch.nr, ids); |
265 | } | 265 | } |
266 | for (i = 1; i < 64; i++) | 266 | i = find_next_zero_bit(ids, 64, 1); |
267 | if (!test_bit(i, (u_long *)&ids)) | 267 | if (i < 64) |
268 | return i; | 268 | return i; |
269 | printk(KERN_WARNING "%s: more as 63 layer2 for one device\n", | 269 | printk(KERN_WARNING "%s: more as 63 layer2 for one device\n", |
270 | __func__); | 270 | __func__); |
271 | return -EBUSY; | 271 | return -EBUSY; |
@@ -274,7 +274,7 @@ get_free_id(struct manager *mgr) | |||
274 | static int | 274 | static int |
275 | get_free_tei(struct manager *mgr) | 275 | get_free_tei(struct manager *mgr) |
276 | { | 276 | { |
277 | u64 ids = 0; | 277 | DECLARE_BITMAP(ids, 64) = { [0 ... BITS_TO_LONGS(64) - 1] = 0 }; |
278 | int i; | 278 | int i; |
279 | struct layer2 *l2; | 279 | struct layer2 *l2; |
280 | 280 | ||
@@ -288,11 +288,11 @@ get_free_tei(struct manager *mgr) | |||
288 | continue; | 288 | continue; |
289 | i -= 64; | 289 | i -= 64; |
290 | 290 | ||
291 | test_and_set_bit(i, (u_long *)&ids); | 291 | __set_bit(i, ids); |
292 | } | 292 | } |
293 | for (i = 0; i < 64; i++) | 293 | i = find_first_zero_bit(ids, 64); |
294 | if (!test_bit(i, (u_long *)&ids)) | 294 | if (i < 64) |
295 | return i + 64; | 295 | return i + 64; |
296 | printk(KERN_WARNING "%s: more as 63 dynamic tei for one device\n", | 296 | printk(KERN_WARNING "%s: more as 63 dynamic tei for one device\n", |
297 | __func__); | 297 | __func__); |
298 | return -1; | 298 | return -1; |