From 441e39d74a8b65e1a5e429cc3ae03dcdfbbf2d18 Mon Sep 17 00:00:00 2001 From: Stefan Eßer Date: Tue, 19 Jan 1999 23:29:20 +0000 Subject: Fix problem with zero valued map registers followed by valid map entries. The previous code just ignored the invalid map register, but this gave surprising results because of the way pci_map_port() associated the map register offset supplied with a map entry in the map array. --- sys/dev/pci/pci.c | 3 ++- sys/dev/pci/pcivar.h | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) (limited to 'sys/dev') diff --git a/sys/dev/pci/pci.c b/sys/dev/pci/pci.c index 447570cd4e097..73b8142a89c00 100644 --- a/sys/dev/pci/pci.c +++ b/sys/dev/pci/pci.c @@ -23,7 +23,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $Id: pci.c,v 1.91 1998/11/09 08:08:06 peter Exp $ + * $Id: pci.c,v 1.92 1999/01/12 01:44:42 eivind Exp $ * */ @@ -190,6 +190,7 @@ pci_readmaps(pcicfgregs *cfg, int maxmaps) testval = pci_cfgread(cfg, reg, 4); pci_cfgwrite(cfg, reg, base, 4); + map[j].reg = reg; map[j].base = pci_mapbase(base); map[j].type = pci_maptype(base); map[j].ln2size = pci_mapsize(testval); diff --git a/sys/dev/pci/pcivar.h b/sys/dev/pci/pcivar.h index 15f1478753b98..7843e3a6d656b 100644 --- a/sys/dev/pci/pcivar.h +++ b/sys/dev/pci/pcivar.h @@ -23,7 +23,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $Id: pcivar.h,v 1.23 1998/12/14 05:47:29 dillon Exp $ + * $Id: pcivar.h,v 1.24 1999/01/13 04:59:19 bde Exp $ * */ @@ -66,7 +66,7 @@ typedef struct { #define PCI_MAPPORT 0x04 /* port map */ u_int8_t ln2size; u_int8_t ln2range; -/* u_int8_t dummy;*/ + u_int8_t reg; /* offset of map register in config space */ } pcimap; /* config header information common to all header types */ -- cgit v1.3