On Fri, Nov 11, 2011 at 10:45 AM, Jesse Barnes <jbarnes@xxxxxxxxxxxxxxxx> wrote: > On Wed, 09 Nov 2011 17:43:51 -0700 > Myron Stowe <myron.stowe@xxxxxxxxxx> wrote: > >> From: Myron Stowe <mstowe@xxxxxxxxxx> >> >> Commit 58c84eda075 introduced functionality to try and reinstate the >> original BIOS BAR addresses of a PCI device when normal resource >> assignment attempts fail. To keep track of the BIOS BAR addresses, >> struct pci_dev was augmented with an array to hold the BAR addresses >> of the PCI device: 'resource_size_t fw_addr[DEVICE_COUNT_RESOURCE]'. >> >> The reinstatement of BAR addresses is an uncommon event leaving the >> 'fw_addr' array unused normally. As the use of struct pci_dev is so >> prevalent, this seems wasteful. >> >> This patch introduces a stand alone data structure and corresponding set >> of interfacing routines for maintaining a list of FW-assigned BIOS BAR >> value temporary entries. >> >> Signed-off-by: Myron Stowe <myron.stowe@xxxxxxxxxx> >> --- >> >> drivers/pci/setup-res.c | 73 +++++++++++++++++++++++++++++++++++++++++++++++ >> include/linux/pci.h | 1 + >> 2 files changed, 74 insertions(+), 0 deletions(-) >> >> diff --git a/drivers/pci/setup-res.c b/drivers/pci/setup-res.c >> index ad8c4ae..ab45c11 100644 >> --- a/drivers/pci/setup-res.c >> +++ b/drivers/pci/setup-res.c >> @@ -26,6 +26,79 @@ >> #include "pci.h" >> >> >> +/* >> + * This list of dynamic mappings is for temporarly maintaining >> + * original BIOS BAR addresses for possbile reinstatement. >> + */ >> +struct pci_fwaddrmap { >> + struct list_head list; >> + struct pci_dev *dev; >> + resource_size_t fw_addr[DEVICE_COUNT_RESOURCE]; >> + unsigned long refcount; >> +}; >> + >> +static LIST_HEAD(pci_fwaddrmappings); >> +static DEFINE_SPINLOCK(pci_fwaddrmap_lock); > > Is the refcounting really needed? Can't we just free the whole list at > some point to simplify things a bit? No, refcounting is not absolutely necessary, it's just the approach I came up with initially. I'll look into just freeing the entire list once we are done with it. Myron > > -- > Jesse Barnes, Intel Open Source Technology Center > -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html