pci: Arch hook to determine config space size

Matthew Wilcox matthew at wil.cx
Tue Feb 1 06:29:55 EST 2005

On Mon, Jan 31, 2005 at 01:10:46PM -0600, Brian King wrote:
> Greg KH wrote:
> >On Fri, Jan 28, 2005 at 06:52:34PM +0000, Christoph Hellwig wrote:
> >
> >>>+int __attribute__ ((weak)) pcibios_exp_cfg_space(struct pci_dev *dev) { 
> >>>return 1; }
> >>
> >>- prototypes belong to headers
> >>- weak linkage is the perfect way for total obsfucation
> >>
> >>please make this a regular arch hook
> >
> >
> >I agree.  Also, when sending PCI related patches, please cc the
> >linux-pci mailing list.
> How about this?

Thanks for copying linux-pci.  I hate this patch.

Basically, ppc64's config ops are broken and need to check the offset
being read.  Here's i386:

static int pci_conf1_write (int seg, int bus, int devfn, int reg, int len, u32 v
        unsigned long flags;

        if ((bus > 255) || (devfn > 255) || (reg > 255)) 
                return -EINVAL;

I think all the config ops in ppc64 are broken and need to check for these
limits.  Also, it does some checks that are already performed by upper layers:

        if (where & (size - 1))
                return PCIBIOS_BAD_REGISTER_NUMBER;

is checked for in drivers/pci/access.c

"Next the statesmen will invent cheap lies, putting the blame upon 
the nation that is attacked, and every man will be glad of those
conscience-soothing falsities, and will diligently study them, and refuse
to examine any refutations of them; and thus he will by and by convince 
himself that the war is just, and will thank God for the better sleep 
he enjoys after this process of grotesque self-deception." -- Mark Twain

More information about the Linuxppc64-dev mailing list