2006-03-24 05:31:05

by Nigel Cunningham

[permalink] [raw]
Subject: 92c05fc1a32e5ccef5e0e8201f32dcdab041524c breaks x86_64 compile.

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


Attachments:
(No filename) (409.00 B)
(No filename) (189.00 B)
Download all attachments

2006-03-24 11:13:38

by Jean Delvare

[permalink] [raw]
Subject: Re: 92c05fc1a32e5ccef5e0e8201f32dcdab041524c breaks x86_64 compile.

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

2006-03-24 11:43:03

by Andi Kleen

[permalink] [raw]
Subject: Re: 92c05fc1a32e5ccef5e0e8201f32dcdab041524c breaks x86_64 compile.

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

2006-03-26 23:03:20

by Nigel Cunningham

[permalink] [raw]
Subject: Re: 92c05fc1a32e5ccef5e0e8201f32dcdab041524c breaks x86_64 compile.

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


Attachments:
(No filename) (0.98 kB)
(No filename) (189.00 B)
Download all attachments

2006-03-26 23:03:41

by Nigel Cunningham

[permalink] [raw]
Subject: Re: 92c05fc1a32e5ccef5e0e8201f32dcdab041524c breaks x86_64 compile.

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


Attachments:
(No filename) (707.00 B)
(No filename) (189.00 B)
Download all attachments