I think the recent change to pci.c to export pci_generic_prep_mwi()
is incorrect.
pci_generic_prep_mwi() is only defined if !HAVE_ARCH_PCI_MWI,
so it is wrong to export it. In particular, it breaks on
ia64, because we define HAVE_ARCH_PCI_MWI.
It looks to me like the following patch should be applied. This
removes the export and in fact makes pci_generic_prep_mwi() static
as it is in 2.5.
===== drivers/pci/pci.c 1.45 vs edited =====
--- 1.45/drivers/pci/pci.c Sun Aug 31 07:52:15 2003
+++ edited/drivers/pci/pci.c Tue Sep 16 13:24:31 2003
@@ -921,7 +921,7 @@
*
* RETURNS: An appriopriate -ERRNO error value on eror, or zero for success.
*/
-int
+static int
pci_generic_prep_mwi(struct pci_dev *dev)
{
u8 cacheline_size;
@@ -2151,7 +2151,6 @@
EXPORT_SYMBOL(pci_set_master);
EXPORT_SYMBOL(pci_set_mwi);
EXPORT_SYMBOL(pci_clear_mwi);
-EXPORT_SYMBOL(pci_generic_prep_mwi);
EXPORT_SYMBOL(pci_set_dma_mask);
EXPORT_SYMBOL(pci_dac_set_dma_mask);
EXPORT_SYMBOL(pci_assign_resource);
===== include/linux/pci.h 1.34 vs edited =====
--- 1.34/include/linux/pci.h Sun Aug 31 07:52:15 2003
+++ edited/include/linux/pci.h Tue Sep 16 13:16:15 2003
@@ -628,7 +628,6 @@
#define HAVE_PCI_SET_MWI
int pci_set_mwi(struct pci_dev *dev);
void pci_clear_mwi(struct pci_dev *dev);
-int pci_generic_prep_mwi(struct pci_dev *dev);
int pci_set_dma_mask(struct pci_dev *dev, u64 mask);
int pci_dac_set_dma_mask(struct pci_dev *dev, u64 mask);
int pci_assign_resource(struct pci_dev *dev, int i);
Bjorn Helgaas wrote:
> I think the recent change to pci.c to export pci_generic_prep_mwi()
> is incorrect.
>
> pci_generic_prep_mwi() is only defined if !HAVE_ARCH_PCI_MWI,
> so it is wrong to export it. In particular, it breaks on
> ia64, because we define HAVE_ARCH_PCI_MWI.
>
> It looks to me like the following patch should be applied. This
> removes the export and in fact makes pci_generic_prep_mwi() static
> as it is in 2.5.
Looks OK to me. Marcelo applied this already, right?
Jeff
On Sat, 20 Sep 2003, Jeff Garzik wrote:
> Bjorn Helgaas wrote:
> > I think the recent change to pci.c to export pci_generic_prep_mwi()
> > is incorrect.
> >
> > pci_generic_prep_mwi() is only defined if !HAVE_ARCH_PCI_MWI,
> > so it is wrong to export it. In particular, it breaks on
> > ia64, because we define HAVE_ARCH_PCI_MWI.
> >
> > It looks to me like the following patch should be applied. This
> > removes the export and in fact makes pci_generic_prep_mwi() static
> > as it is in 2.5.
>
>
> Looks OK to me. Marcelo applied this already, right?
Well I dont remember applying it but I dont seem to have
pci_generic_prep_mwi exported.
On Sunday 21 September 2003 12:28 pm, Marcelo Tosatti wrote:
> On Sat, 20 Sep 2003, Jeff Garzik wrote:
> > Bjorn Helgaas wrote:
> > > I think the recent change to pci.c to export pci_generic_prep_mwi()
> > > is incorrect.
> > >
> > > pci_generic_prep_mwi() is only defined if !HAVE_ARCH_PCI_MWI,
> > > so it is wrong to export it. In particular, it breaks on
> > > ia64, because we define HAVE_ARCH_PCI_MWI.
> > >
> > > It looks to me like the following patch should be applied. This
> > > removes the export and in fact makes pci_generic_prep_mwi() static
> > > as it is in 2.5.
> >
> > Looks OK to me. Marcelo applied this already, right?
>
> Well I dont remember applying it but I dont seem to have
> pci_generic_prep_mwi exported.
Looks to me like your tree still needs this change. Here's the
patch again in case you need it:
===== drivers/pci/pci.c 1.45 vs edited =====
--- 1.45/drivers/pci/pci.c Sun Aug 31 07:52:15 2003
+++ edited/drivers/pci/pci.c Mon Sep 22 12:27:35 2003
@@ -921,7 +921,7 @@
*
* RETURNS: An appriopriate -ERRNO error value on eror, or zero for success.
*/
-int
+static int
pci_generic_prep_mwi(struct pci_dev *dev)
{
u8 cacheline_size;
@@ -2151,7 +2151,6 @@
EXPORT_SYMBOL(pci_set_master);
EXPORT_SYMBOL(pci_set_mwi);
EXPORT_SYMBOL(pci_clear_mwi);
-EXPORT_SYMBOL(pci_generic_prep_mwi);
EXPORT_SYMBOL(pci_set_dma_mask);
EXPORT_SYMBOL(pci_dac_set_dma_mask);
EXPORT_SYMBOL(pci_assign_resource);
===== include/linux/pci.h 1.34 vs edited =====
--- 1.34/include/linux/pci.h Sun Aug 31 07:52:15 2003
+++ edited/include/linux/pci.h Mon Sep 22 12:27:35 2003
@@ -628,7 +628,6 @@
#define HAVE_PCI_SET_MWI
int pci_set_mwi(struct pci_dev *dev);
void pci_clear_mwi(struct pci_dev *dev);
-int pci_generic_prep_mwi(struct pci_dev *dev);
int pci_set_dma_mask(struct pci_dev *dev, u64 mask);
int pci_dac_set_dma_mask(struct pci_dev *dev, u64 mask);
int pci_assign_resource(struct pci_dev *dev, int i);