From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Michael S. Tsirkin" Subject: Re: [PATCH] pci-assign: Use PCI-2.3-based shared legacy interrupts Date: Tue, 9 Nov 2010 16:42:56 +0200 Message-ID: <20101109144256.GA24525@redhat.com> References: <4CD7DE3B.3020602@siemens.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: Avi Kivity , Marcelo Tosatti , kvm , Alex Williamson To: Jan Kiszka Return-path: Received: from mx1.redhat.com ([209.132.183.28]:11318 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751406Ab0KIOnD (ORCPT ); Tue, 9 Nov 2010 09:43:03 -0500 Content-Disposition: inline In-Reply-To: <4CD7DE3B.3020602@siemens.com> Sender: kvm-owner@vger.kernel.org List-ID: On Mon, Nov 08, 2010 at 12:25:47PM +0100, Jan Kiszka wrote: > @@ -417,6 +423,17 @@ static void assigned_dev_pci_write_config(PCIDevice *d, uint32_t address, > > if (address == 0x4) { > pci_default_write_config(d, address, val, len); > + pci_dev->intx_masked = val & PCI_COMMAND_INTX_DISABLE; > +#ifdef KVM_CAP_PCI_2_3 > + memset(&assigned_dev_data, 0, sizeof(assigned_dev_data)); > + assigned_dev_data.assigned_dev_id = > + calc_assigned_dev_id(pci_dev->h_segnr, pci_dev->h_busnr, > + pci_dev->h_devfn); > + if (pci_dev->intx_masked) { > + assigned_dev_data.flags = KVM_DEV_ASSIGN_MASK_INTX; > + } > + kvm_assign_set_intx_mask(kvm_context, &assigned_dev_data); > +#endif > /* Continue to program the card */ > } > > @@ -494,6 +511,10 @@ do_log: > else if (address == 6) > val &= ~0x10; > } > + if (address == PCI_COMMAND) { Could also be a single-byte write into the high byte of this word. > + val &= ~PCI_COMMAND_INTX_DISABLE; > + val |= pci_dev->intx_masked; > + } > > return val; > } > @@ -824,11 +845,6 @@ static void free_assigned_device(AssignedDevice *dev)