Hi.
It looks to me like the above commit from Andi causes a compilation failure on
x86_64, because it makes pci_mmcfg_init non static:
arch/x86_64/pci/mmconfig.c:152: error: conflicting types for ‘pci_mmcfg_init’
arch/i386/pci/pci.h:85: error: previous declaration of ‘pci_mmcfg_init’ was
here
make[1]: *** [arch/x86_64/pci/mmconfig.o] Error 1
make: *** [arch/x86_64/pci] Error 2
Regards,
Nigel
Hi Nigel, Andi, all,
> It looks to me like the above commit from Andi causes a compilation failure on
> x86_64, because it makes pci_mmcfg_init non static:
>
> arch/x86_64/pci/mmconfig.c:152: error: conflicting types for ‘pci_mmcfg_init’
> arch/i386/pci/pci.h:85: error: previous declaration of ‘pci_mmcfg_init’ was
> here
> make[1]: *** [arch/x86_64/pci/mmconfig.o] Error 1
> make: *** [arch/x86_64/pci] Error 2
I just hit the same compilation failure. Here's a fix which works for
me.
Fix the x86_64 compilation breakage introduced by commit
92c05fc1a32e5ccef5e0e8201f32dcdab041524c
Signed-off-by: Jean Delvare <[email protected]>
Cc: Andi Kleen <[email protected]>
---
arch/x86_64/pci/mmconfig.c | 14 ++++++--------
1 file changed, 6 insertions(+), 8 deletions(-)
--- linux-2.6.16-git.orig/arch/x86_64/pci/mmconfig.c 2006-03-21 20:15:49.000000000 +0100
+++ linux-2.6.16-git/arch/x86_64/pci/mmconfig.c 2006-03-24 11:54:01.000000000 +0100
@@ -148,24 +148,24 @@
}
}
-static int __init pci_mmcfg_init(void)
+void __init pci_mmcfg_init(void)
{
int i;
if ((pci_probe & PCI_PROBE_MMCONF) == 0)
- return 0;
+ return;
acpi_table_parse(ACPI_MCFG, acpi_parse_mcfg);
if ((pci_mmcfg_config_num == 0) ||
(pci_mmcfg_config == NULL) ||
(pci_mmcfg_config[0].base_address == 0))
- return 0;
+ return;
/* RED-PEN i386 doesn't do _nocache right now */
pci_mmcfg_virt = kmalloc(sizeof(*pci_mmcfg_virt) * pci_mmcfg_config_num, GFP_KERNEL);
if (pci_mmcfg_virt == NULL) {
printk("PCI: Can not allocate memory for mmconfig structures\n");
- return 0;
+ return;
}
for (i = 0; i < pci_mmcfg_config_num; ++i) {
pci_mmcfg_virt[i].cfg = &pci_mmcfg_config[i];
@@ -173,7 +173,7 @@
if (!pci_mmcfg_virt[i].virt) {
printk("PCI: Cannot map mmconfig aperture for segment %d\n",
pci_mmcfg_config[i].pci_segment_group_number);
- return 0;
+ return;
}
printk(KERN_INFO "PCI: Using MMCONFIG at %x\n", pci_mmcfg_config[i].base_address);
}
@@ -183,7 +183,5 @@
raw_pci_ops = &pci_mmcfg;
pci_probe = (pci_probe & ~PCI_PROBE_MASK) | PCI_PROBE_MMCONF;
- return 0;
+ return;
}
-
-arch_initcall(pci_mmcfg_init);
--
Jean Delvare
On Friday 24 March 2006 12:14, Jean Delvare wrote:
> Hi Nigel, Andi, all,
>
> > It looks to me like the above commit from Andi causes a compilation failure on
> > x86_64, because it makes pci_mmcfg_init non static:
> >
> > arch/x86_64/pci/mmconfig.c:152: error: conflicting types for ‘pci_mmcfg_init’
> > arch/i386/pci/pci.h:85: error: previous declaration of ‘pci_mmcfg_init’ was
> > here
> > make[1]: *** [arch/x86_64/pci/mmconfig.o] Error 1
> > make: *** [arch/x86_64/pci] Error 2
>
> I just hit the same compilation failure. Here's a fix which works for
> me.
This was my mistake. I fixed the problem in the wrong patch. And then
Greg submitted only the one patch. I think Andrew fixed it up by
submitting the other (unrelated) patch which fixes this too.
Thanks.
-Andi
Hi Andi.
On Friday 24 March 2006 21:36, Andi Kleen wrote:
> On Friday 24 March 2006 12:14, Jean Delvare wrote:
> > Hi Nigel, Andi, all,
> >
> > > It looks to me like the above commit from Andi causes a compilation
> > > failure on x86_64, because it makes pci_mmcfg_init non static:
> > >
> > > arch/x86_64/pci/mmconfig.c:152: error: conflicting types for
> > > ‘pci_mmcfg_init’ arch/i386/pci/pci.h:85: error: previous declaration of
> > > ‘pci_mmcfg_init’ was here
> > > make[1]: *** [arch/x86_64/pci/mmconfig.o] Error 1
> > > make: *** [arch/x86_64/pci] Error 2
> >
> > I just hit the same compilation failure. Here's a fix which works for
> > me.
>
> This was my mistake. I fixed the problem in the wrong patch. And then
> Greg submitted only the one patch. I think Andrew fixed it up by
> submitting the other (unrelated) patch which fixes this too.
Thanks for the reply. It's not in Linus' tree yet, so I think the Andrew might
still need some encouragement to merge it :)
Regards,
Nigel
Hi.
On Friday 24 March 2006 21:14, Jean Delvare wrote:
> Hi Nigel, Andi, all,
>
> > It looks to me like the above commit from Andi causes a compilation
> > failure on x86_64, because it makes pci_mmcfg_init non static:
> >
> > arch/x86_64/pci/mmconfig.c:152: error: conflicting types for
> > ‘pci_mmcfg_init’ arch/i386/pci/pci.h:85: error: previous declaration of
> > ‘pci_mmcfg_init’ was here
> > make[1]: *** [arch/x86_64/pci/mmconfig.o] Error 1
> > make: *** [arch/x86_64/pci] Error 2
>
> I just hit the same compilation failure. Here's a fix which works for
> me.
Yes, that's what I came up with too. Sent it a little earlier.
Thanks for the confirmation that I did the right thing :)
Nigel