]> git.baikalelectronics.ru Git - kernel.git/commit
[SPARC64] PCI: Use root list of pbm's instead of pci_controller_info's
authorDavid S. Miller <davem@sunset.davemloft.net>
Tue, 8 May 2007 06:06:27 +0000 (23:06 -0700)
committerDavid S. Miller <davem@sunset.davemloft.net>
Tue, 8 May 2007 23:41:24 +0000 (16:41 -0700)
commit8eac5dcb225dc6d2d96f02dc95f4d0ea8ae0aea2
tree3fff53138966f3a58e796a71c19a3b75de86fbf7
parentd84afba6f07da3c850f8aff837d422c8eae8b285
[SPARC64] PCI: Use root list of pbm's instead of pci_controller_info's

The idea is to move more and more things into the pbm,
with the eventual goal of eliminating the pci_controller_info
entirely as there really isn't any need for it.

This stage of the transformations requires some reworking of
the PCI error interrupt handling.

It might be tricky to get rid of the pci_controller_info parenting for
a few reasons:

1) When we get an uncorrectable or correctable error we want
   to interrogate the IOMMU and streaming cache of both
   PBMs for error status.  These errors come from the UPA
   front-end which is shared between the two PBM PCI bus
   segments.

   Historically speaking this is why I choose the datastructure
   hierarchy of pci_controller_info-->pci_pbm_info

2) The probing does a portid/devhandle match to look for the
   'other' pbm, but this is entirely an artifact and can be
   eliminated trivially.

What we could do to solve #1 is to have a "buddy" pointer from one pbm
to another.

Signed-off-by: David S. Miller <davem@davemloft.net>
arch/sparc64/kernel/pci.c
arch/sparc64/kernel/pci_fire.c
arch/sparc64/kernel/pci_impl.h
arch/sparc64/kernel/pci_psycho.c
arch/sparc64/kernel/pci_sabre.c
arch/sparc64/kernel/pci_schizo.c
arch/sparc64/kernel/pci_sun4v.c
include/asm-sparc64/pbm.h