2013-06-26 04:59:26

by Chen Gang

[permalink] [raw]
Subject: [PATCH] arch: frv: mb93090-mb00: remove '__init' for pci_fixup_umc_ide() which used by 'DECLARE_PCI_FIXUP_HEADER'

pci_fixup_umc_ide() is for 'DECLARE_PCI_FIXUP_HEADER', so need remove
it from init section to normal section.

The related warning (with allmodconfig):

LD arch/frv/mb93090-mb00/built-in.o
WARNING: arch/frv/mb93090-mb00/built-in.o(.pci_fixup_header+0x4c): Section mismatch in reference from the variable __pci_fixup_PCI_VENDOR_ID_UMCPCI_DEVICE_ID_UMC_UM8886BFpci_fixup_umc_ide to the function .init.text:pci_fixup_umc_ide()
The variable __pci_fixup_PCI_VENDOR_ID_UMCPCI_DEVICE_ID_UMC_UM8886BFpci_fixup_umc_ide references
a function __init pci_fixup_umc_ide().
This is often seen when error handling in the init function
uses functionality in the exit path.
The fix is often to remove the __init annotation of
pci_fixup_umc_ide() so it may be used outside an exit section.


Signed-off-by: Chen Gang <[email protected]>
---
arch/frv/mb93090-mb00/pci-vdk.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/arch/frv/mb93090-mb00/pci-vdk.c b/arch/frv/mb93090-mb00/pci-vdk.c
index 0aa35f0..56a3abf 100644
--- a/arch/frv/mb93090-mb00/pci-vdk.c
+++ b/arch/frv/mb93090-mb00/pci-vdk.c
@@ -254,7 +254,7 @@ static void __init pcibios_fixup_peer_bridges(void)
* Exceptions for specific devices. Usually work-arounds for fatal design flaws.
*/

-static void __init pci_fixup_umc_ide(struct pci_dev *d)
+static void pci_fixup_umc_ide(struct pci_dev *d)
{
/*
* UM8886BF IDE controller sets region type bits incorrectly,
--
1.7.7.6


2013-06-26 16:19:37

by Bjorn Helgaas

[permalink] [raw]
Subject: Re: [PATCH] arch: frv: mb93090-mb00: remove '__init' for pci_fixup_umc_ide() which used by 'DECLARE_PCI_FIXUP_HEADER'

On Tue, Jun 25, 2013 at 8:55 PM, Chen Gang <[email protected]> wrote:
> pci_fixup_umc_ide() is for 'DECLARE_PCI_FIXUP_HEADER', so need remove
> it from init section to normal section.
>
> The related warning (with allmodconfig):
>
> LD arch/frv/mb93090-mb00/built-in.o
> WARNING: arch/frv/mb93090-mb00/built-in.o(.pci_fixup_header+0x4c): Section mismatch in reference from the variable __pci_fixup_PCI_VENDOR_ID_UMCPCI_DEVICE_ID_UMC_UM8886BFpci_fixup_umc_ide to the function .init.text:pci_fixup_umc_ide()
> The variable __pci_fixup_PCI_VENDOR_ID_UMCPCI_DEVICE_ID_UMC_UM8886BFpci_fixup_umc_ide references
> a function __init pci_fixup_umc_ide().
> This is often seen when error handling in the init function
> uses functionality in the exit path.
> The fix is often to remove the __init annotation of
> pci_fixup_umc_ide() so it may be used outside an exit section.
>
>
> Signed-off-by: Chen Gang <[email protected]>

Reviewed-by: Bjorn Helgaas <[email protected]>

> ---
> arch/frv/mb93090-mb00/pci-vdk.c | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/arch/frv/mb93090-mb00/pci-vdk.c b/arch/frv/mb93090-mb00/pci-vdk.c
> index 0aa35f0..56a3abf 100644
> --- a/arch/frv/mb93090-mb00/pci-vdk.c
> +++ b/arch/frv/mb93090-mb00/pci-vdk.c
> @@ -254,7 +254,7 @@ static void __init pcibios_fixup_peer_bridges(void)
> * Exceptions for specific devices. Usually work-arounds for fatal design flaws.
> */
>
> -static void __init pci_fixup_umc_ide(struct pci_dev *d)
> +static void pci_fixup_umc_ide(struct pci_dev *d)
> {
> /*
> * UM8886BF IDE controller sets region type bits incorrectly,
> --
> 1.7.7.6

2013-06-27 00:22:50

by Chen Gang

[permalink] [raw]
Subject: Re: [PATCH] arch: frv: mb93090-mb00: remove '__init' for pci_fixup_umc_ide() which used by 'DECLARE_PCI_FIXUP_HEADER'

On 06/27/2013 12:19 AM, Bjorn Helgaas wrote:
> On Tue, Jun 25, 2013 at 8:55 PM, Chen Gang <[email protected]> wrote:
>> > pci_fixup_umc_ide() is for 'DECLARE_PCI_FIXUP_HEADER', so need remove
>> > it from init section to normal section.
>> >
>> > The related warning (with allmodconfig):
>> >
>> > LD arch/frv/mb93090-mb00/built-in.o
>> > WARNING: arch/frv/mb93090-mb00/built-in.o(.pci_fixup_header+0x4c): Section mismatch in reference from the variable __pci_fixup_PCI_VENDOR_ID_UMCPCI_DEVICE_ID_UMC_UM8886BFpci_fixup_umc_ide to the function .init.text:pci_fixup_umc_ide()
>> > The variable __pci_fixup_PCI_VENDOR_ID_UMCPCI_DEVICE_ID_UMC_UM8886BFpci_fixup_umc_ide references
>> > a function __init pci_fixup_umc_ide().
>> > This is often seen when error handling in the init function
>> > uses functionality in the exit path.
>> > The fix is often to remove the __init annotation of
>> > pci_fixup_umc_ide() so it may be used outside an exit section.
>> >
>> >
>> > Signed-off-by: Chen Gang <[email protected]>
> Reviewed-by: Bjorn Helgaas <[email protected]>
>

Thanks.

--
Chen Gang

Asianux Corporation