A method, system, and computer program product for enforcing logical
partitioning of input/output slots within a data processing system is
provided. In one embodiment, the system includes a hypervisor and at least
one DMA address checking component. The hypervisor receives
non-direct-memory-access requests for access to input/output slots and
prohibits devices within one logical partition from accessing the
input/output slots assigned to a different logical partition. The DMA
address checking component receives direct-memory-access requests and
prohibits requests for addresses not within the same logical partition as
the requesting device from being completed. Requests with addresses
corresponding to the same logical partition as the requesting device are
placed on the primary PCI bus by the DMA address checking component for
delivery to the system memory.