From 6c761775f4d0033372d805ca0b9eb90c36f348ee Mon Sep 17 00:00:00 2001 From: Ivan Kokshaysky Date: Sun, 7 Aug 2005 13:49:59 +0400 Subject: [PATCH] --- yaml --- r: 5691 b: refs/heads/master c: cf7bee5a0bf270a4eace0be39329d6ac0136cc47 h: refs/heads/master i: 5689: fb7017acd5421583dca5f8313f70c77198dfda98 5687: eef9c8063f9906345d653881f23d1ec98dfd1f5b v: v3 --- [refs] | 2 +- trunk/drivers/pci/setup-res.c | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 95fe7c59ee32..420bae5d2310 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 0d317fb72fe3cf0f611608cf3a3015bbe6cd2a66 +refs/heads/master: cf7bee5a0bf270a4eace0be39329d6ac0136cc47 diff --git a/trunk/drivers/pci/setup-res.c b/trunk/drivers/pci/setup-res.c index 878fd0a65c02..589486704ce3 100644 --- a/trunk/drivers/pci/setup-res.c +++ b/trunk/drivers/pci/setup-res.c @@ -33,6 +33,11 @@ pci_update_resource(struct pci_dev *dev, struct resource *res, int resno) u32 new, check, mask; int reg; + /* Ignore resources for unimplemented BARs and unused resource slots + for 64 bit BARs. */ + if (!res->flags) + return; + pcibios_resource_to_bus(dev, ®ion, res); pr_debug(" got res [%lx:%lx] bus [%lx:%lx] flags %lx for " @@ -67,7 +72,7 @@ pci_update_resource(struct pci_dev *dev, struct resource *res, int resno) if ((new & (PCI_BASE_ADDRESS_SPACE|PCI_BASE_ADDRESS_MEM_TYPE_MASK)) == (PCI_BASE_ADDRESS_SPACE_MEMORY|PCI_BASE_ADDRESS_MEM_TYPE_64)) { - new = 0; /* currently everyone zeros the high address */ + new = region.start >> 16 >> 16; pci_write_config_dword(dev, reg + 4, new); pci_read_config_dword(dev, reg + 4, &check); if (check != new) {