View | Details | Raw Unified | Return to bug 132308
Collapse All | Expand All

(-)programs/Xserver/hw/xfree86/os-support/bus/linuxPci.c (-12 / +11 lines)
Lines 540-557 Link Here
540
    pPCI = xf86GetPciHostConfigFromTag(Tag);
540
    pPCI = xf86GetPciHostConfigFromTag(Tag);
541
541
542
    if (pPCI && (result = PCI_DOM_FROM_BUS(pPCI->busnum)))
542
    if (pPCI && (result = PCI_DOM_FROM_BUS(pPCI->busnum)))
543
	return result + 1;
543
	return result;
544
544
545
    if (!pPCI || pPCI->fakeDevice)
545
    if (!pPCI || pPCI->fakeDevice)
546
	return 1;		/* Domain 0 is reserved */
546
	return 0;
547
547
548
    if ((fd = linuxPciOpenFile(pPCI ? pPCI->tag : 0,FALSE)) < 0)
548
    if ((fd = linuxPciOpenFile(pPCI ? pPCI->tag : 0,FALSE)) < 0)
549
	return 0;
549
	return -1;
550
550
551
    if ((result = ioctl(fd, PCIIOC_CONTROLLER, 0)) < 0)
551
    if ((result = ioctl(fd, PCIIOC_CONTROLLER, 0)) < 0)
552
	return 0;
552
	return -1;
553
553
554
    return result + 1;		/* Domain 0 is reserved */
554
    return result;
555
}
555
}
556
556
557
static pointer
557
static pointer
Lines 623-629 Link Here
623
    return NULL;
623
    return NULL;
624
}
624
}
625
625
626
#define MAX_DOMAINS 257
626
#define MAX_DOMAINS 256
627
static pointer DomainMmappedIO[MAX_DOMAINS];
627
static pointer DomainMmappedIO[MAX_DOMAINS];
628
static pointer DomainMmappedMem[MAX_DOMAINS];
628
static pointer DomainMmappedMem[MAX_DOMAINS];
629
629
Lines 645-655 Link Here
645
	domain = xf86GetPciDomain(Tag);
645
	domain = xf86GetPciDomain(Tag);
646
	bus = PCI_BUS_NO_DOMAIN(PCI_BUS_FROM_TAG(Tag));
646
	bus = PCI_BUS_NO_DOMAIN(PCI_BUS_FROM_TAG(Tag));
647
647
648
	/* Domain 0 is reserved -- see xf86GetPciDomain() */
648
	if ((domain < 0) || (domain >= MAX_DOMAINS))
649
	if ((domain <= 0) || (domain >= MAX_DOMAINS))
650
	    FatalError("linuxOpenLegacy():  domain out of range\n");
649
	    FatalError("linuxOpenLegacy():  domain out of range\n");
651
650
652
	sprintf(path, PREFIX, domain - 1, bus, name);
651
	sprintf(path, PREFIX, domain, bus, name);
653
	fd = open(path, O_RDWR);
652
	fd = open(path, O_RDWR);
654
	if (fd >= 0) {
653
	if (fd >= 0) {
655
	    xfree(path);
654
	    xfree(path);
Lines 734-740 Link Here
734
    int domain = xf86GetPciDomain(Tag);
733
    int domain = xf86GetPciDomain(Tag);
735
    int fd;
734
    int fd;
736
735
737
    if ((domain <= 0) || (domain >= MAX_DOMAINS))
736
    if ((domain < 0) || (domain >= MAX_DOMAINS))
738
	FatalError("xf86MapDomainIO():  domain out of range\n");
737
	FatalError("xf86MapDomainIO():  domain out of range\n");
739
738
740
    if (DomainMmappedIO[domain])
739
    if (DomainMmappedIO[domain])
Lines 880-886 Link Here
880
		  RANGE_TYPE(ResExcIoBlock, domain));
879
		  RANGE_TYPE(ResExcIoBlock, domain));
881
	    pRes = xf86AddResToList(pRes, &range, -1);
880
	    pRes = xf86AddResToList(pRes, &range, -1);
882
881
883
	    if (domain <= 0)
882
	    if (domain < 0)
884
		break;
883
		break;
885
	}
884
	}
886
    }
885
    }
Lines 932-938 Link Here
932
		  RANGE_TYPE(ResExcIoBlock, domain));
931
		  RANGE_TYPE(ResExcIoBlock, domain));
933
	    pRes = xf86AddResToList(pRes, &range, -1);
932
	    pRes = xf86AddResToList(pRes, &range, -1);
934
933
935
	    if (domain <= 0)
934
	    if (domain < 0)
936
		break;
935
		break;
937
	}
936
	}
938
    }
937
    }

Return to bug 132308