diff options
author | Roland Dreier <roland@digitalvampire.org> | 2006-09-24 23:09:33 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2006-09-24 23:09:33 -0400 |
commit | 5b7c714ec27584b18279b741b6043016f8adb9de (patch) | |
tree | 29b9599aecd0ebda24da4791abbc82a402fa081a /drivers/atm/he.c | |
parent | 76a081e5b32fde17f6f6d007e1806744cc848712 (diff) |
[ATM] he: Fix __init/__devinit conflict
he_init_one() is declared __devinit, but calls lots of init functions
that are marked __init. However, if CONFIG_HOTPLUG is enabled,
__devinit functions go into normal .text, which leads to
WARNING: drivers/atm/he.o - Section mismatch: reference to .init.text: from .text between 'he_start' (at offset 0x2130) and 'he_service_tbrq'
Fix this by changing the __init functions to __devinit.
Signed-off-by: Roland Dreier <roland@digitalvampire.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/atm/he.c')
-rw-r--r-- | drivers/atm/he.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/drivers/atm/he.c b/drivers/atm/he.c index 41e052fecd7f..f2511b42dba2 100644 --- a/drivers/atm/he.c +++ b/drivers/atm/he.c | |||
@@ -454,7 +454,7 @@ rate_to_atmf(unsigned rate) /* cps to atm forum format */ | |||
454 | return (NONZERO | (exp << 9) | (rate & 0x1ff)); | 454 | return (NONZERO | (exp << 9) | (rate & 0x1ff)); |
455 | } | 455 | } |
456 | 456 | ||
457 | static void __init | 457 | static void __devinit |
458 | he_init_rx_lbfp0(struct he_dev *he_dev) | 458 | he_init_rx_lbfp0(struct he_dev *he_dev) |
459 | { | 459 | { |
460 | unsigned i, lbm_offset, lbufd_index, lbuf_addr, lbuf_count; | 460 | unsigned i, lbm_offset, lbufd_index, lbuf_addr, lbuf_count; |
@@ -485,7 +485,7 @@ he_init_rx_lbfp0(struct he_dev *he_dev) | |||
485 | he_writel(he_dev, he_dev->r0_numbuffs, RLBF0_C); | 485 | he_writel(he_dev, he_dev->r0_numbuffs, RLBF0_C); |
486 | } | 486 | } |
487 | 487 | ||
488 | static void __init | 488 | static void __devinit |
489 | he_init_rx_lbfp1(struct he_dev *he_dev) | 489 | he_init_rx_lbfp1(struct he_dev *he_dev) |
490 | { | 490 | { |
491 | unsigned i, lbm_offset, lbufd_index, lbuf_addr, lbuf_count; | 491 | unsigned i, lbm_offset, lbufd_index, lbuf_addr, lbuf_count; |
@@ -516,7 +516,7 @@ he_init_rx_lbfp1(struct he_dev *he_dev) | |||
516 | he_writel(he_dev, he_dev->r1_numbuffs, RLBF1_C); | 516 | he_writel(he_dev, he_dev->r1_numbuffs, RLBF1_C); |
517 | } | 517 | } |
518 | 518 | ||
519 | static void __init | 519 | static void __devinit |
520 | he_init_tx_lbfp(struct he_dev *he_dev) | 520 | he_init_tx_lbfp(struct he_dev *he_dev) |
521 | { | 521 | { |
522 | unsigned i, lbm_offset, lbufd_index, lbuf_addr, lbuf_count; | 522 | unsigned i, lbm_offset, lbufd_index, lbuf_addr, lbuf_count; |
@@ -546,7 +546,7 @@ he_init_tx_lbfp(struct he_dev *he_dev) | |||
546 | he_writel(he_dev, lbufd_index - 1, TLBF_T); | 546 | he_writel(he_dev, lbufd_index - 1, TLBF_T); |
547 | } | 547 | } |
548 | 548 | ||
549 | static int __init | 549 | static int __devinit |
550 | he_init_tpdrq(struct he_dev *he_dev) | 550 | he_init_tpdrq(struct he_dev *he_dev) |
551 | { | 551 | { |
552 | he_dev->tpdrq_base = pci_alloc_consistent(he_dev->pci_dev, | 552 | he_dev->tpdrq_base = pci_alloc_consistent(he_dev->pci_dev, |
@@ -568,7 +568,7 @@ he_init_tpdrq(struct he_dev *he_dev) | |||
568 | return 0; | 568 | return 0; |
569 | } | 569 | } |
570 | 570 | ||
571 | static void __init | 571 | static void __devinit |
572 | he_init_cs_block(struct he_dev *he_dev) | 572 | he_init_cs_block(struct he_dev *he_dev) |
573 | { | 573 | { |
574 | unsigned clock, rate, delta; | 574 | unsigned clock, rate, delta; |
@@ -664,7 +664,7 @@ he_init_cs_block(struct he_dev *he_dev) | |||
664 | 664 | ||
665 | } | 665 | } |
666 | 666 | ||
667 | static int __init | 667 | static int __devinit |
668 | he_init_cs_block_rcm(struct he_dev *he_dev) | 668 | he_init_cs_block_rcm(struct he_dev *he_dev) |
669 | { | 669 | { |
670 | unsigned (*rategrid)[16][16]; | 670 | unsigned (*rategrid)[16][16]; |
@@ -785,7 +785,7 @@ he_init_cs_block_rcm(struct he_dev *he_dev) | |||
785 | return 0; | 785 | return 0; |
786 | } | 786 | } |
787 | 787 | ||
788 | static int __init | 788 | static int __devinit |
789 | he_init_group(struct he_dev *he_dev, int group) | 789 | he_init_group(struct he_dev *he_dev, int group) |
790 | { | 790 | { |
791 | int i; | 791 | int i; |
@@ -955,7 +955,7 @@ he_init_group(struct he_dev *he_dev, int group) | |||
955 | return 0; | 955 | return 0; |
956 | } | 956 | } |
957 | 957 | ||
958 | static int __init | 958 | static int __devinit |
959 | he_init_irq(struct he_dev *he_dev) | 959 | he_init_irq(struct he_dev *he_dev) |
960 | { | 960 | { |
961 | int i; | 961 | int i; |