Skip to content

Commit

Permalink
virtio_pci: add isr field
Browse files Browse the repository at this point in the history
Use isr field instead of direct access to ioaddr.
This way generalizes easily to virtio 1.0.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
  • Loading branch information
Michael S. Tsirkin committed Dec 9, 2014
1 parent d71a6fc commit af53572
Showing 1 changed file with 6 additions and 1 deletion.
7 changes: 6 additions & 1 deletion drivers/virtio/virtio_pci.c
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,9 @@ struct virtio_pci_device
/* the IO mapping for the PCI config space */
void __iomem *ioaddr;

/* the IO mapping for ISR operation */
void __iomem *isr;

/* a list of queues so we can dispatch IRQs */
spinlock_t lock;
struct list_head virtqueues;
Expand Down Expand Up @@ -248,7 +251,7 @@ static irqreturn_t vp_interrupt(int irq, void *opaque)

/* reading the ISR has the effect of also clearing it so it's very
* important to save off the value. */
isr = ioread8(vp_dev->ioaddr + VIRTIO_PCI_ISR);
isr = ioread8(vp_dev->isr);

/* It's definitely not us if the ISR was not high */
if (!isr)
Expand Down Expand Up @@ -719,6 +722,8 @@ static int virtio_pci_probe(struct pci_dev *pci_dev,
goto out_req_regions;
}

vp_dev->isr = vp_dev->ioaddr + VIRTIO_PCI_ISR;

pci_set_drvdata(pci_dev, vp_dev);
pci_set_master(pci_dev);

Expand Down

0 comments on commit af53572

Please sign in to comment.