]> git.proxmox.com Git - qemu.git/commit
pci: honor PCI_COMMAND_MASTER
authorAvi Kivity <avi@redhat.com>
Wed, 3 Oct 2012 15:42:58 +0000 (17:42 +0200)
committerAvi Kivity <avi@redhat.com>
Mon, 22 Oct 2012 12:50:08 +0000 (14:50 +0200)
commit1c380f9460522f32c8dd2577b2a53d518ec91c6d
tree49dbad84ac83432d9f727c41647cdcd81373d3ba
parent817dcc5368988b023c5e1d3f1444fd370c77c6a9
pci: honor PCI_COMMAND_MASTER

Currently we ignore PCI_COMMAND_MASTER completely: DMA succeeds even when
the bit is clear.

Honor PCI_COMMAND_MASTER by inserting a memory region into the device's
bus master address space, and tying its enable status to PCI_COMMAND_MASTER.

Tested using

  setpci -s 03 COMMAND=3

while a ping was running on a NIC in slot 3.  The kernel (Linux) detected
the stall and recovered after the command

  setpci -s 03 COMMAND=7

was issued.

Signed-off-by: Avi Kivity <avi@redhat.com>
hw/pci.c
hw/pci.h