Skip to content
/ src Public

Commit 5791596

Browse files
committed
Fix variable shadowing that caused us to map the entire range (many
gigabytes) instead of just the amount the caller asked for. This resulted in a noticeable delay while attaching devices using multiple msi-x vectors as we map and unmap the msi-x table for each vector. ok kettenis@
1 parent 8077cb9 commit 5791596

1 file changed

Lines changed: 5 additions & 5 deletions

File tree

sys/arch/sparc64/dev/vpci.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/* $OpenBSD: vpci.c,v 1.30 2020/06/23 01:21:29 jmatthew Exp $ */
1+
/* $OpenBSD: vpci.c,v 1.31 2020/06/25 21:43:41 jmatthew Exp $ */
22
/*
33
* Copyright (c) 2008 Mark Kettenis <kettenis@openbsd.org>
44
*
@@ -554,15 +554,15 @@ vpci_bus_map(bus_space_tag_t t, bus_space_tag_t t0, bus_addr_t offset,
554554

555555
for (i = 0; i < pbm->vp_nrange; i++) {
556556
bus_addr_t child, paddr;
557-
bus_size_t size;
557+
bus_size_t rsize;
558558

559559
if (((pbm->vp_range[i].cspace >> 24) & 0x03) != ss)
560560
continue;
561561
child = pbm->vp_range[i].child_lo;
562562
child |= ((bus_addr_t)pbm->vp_range[i].child_hi) << 32;
563-
size = pbm->vp_range[i].size_lo;
564-
size |= ((bus_size_t)pbm->vp_range[i].size_hi) << 32;
565-
if (offset < child || offset >= child + size)
563+
rsize = pbm->vp_range[i].size_lo;
564+
rsize |= ((bus_size_t)pbm->vp_range[i].size_hi) << 32;
565+
if (offset < child || offset >= child + rsize)
566566
continue;
567567

568568
paddr = pbm->vp_range[i].phys_lo;

0 commit comments

Comments
 (0)