From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jan Kiszka Subject: Re: Why doesn't Intel e1000 NIC work correctly in Windows XP? Date: Wed, 15 Jun 2011 10:04:19 +0200 Message-ID: <4DF86783.4060608@siemens.com> References: <1308099263.2515.63.camel@x201> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Cc: kvm@vger.kernel.org To: Alex Williamson , Flypen CloudMe Return-path: Received: from david.siemens.de ([192.35.17.14]:34957 "EHLO david.siemens.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752905Ab1FOIE0 (ORCPT ); Wed, 15 Jun 2011 04:04:26 -0400 In-Reply-To: <1308099263.2515.63.camel@x201> Sender: kvm-owner@vger.kernel.org List-ID: On 2011-06-15 02:54, Alex Williamson wrote: > On Tue, 2011-06-14 at 16:11 +0800, Flypen CloudMe wrote: >> Hi, >> >> I use Redhat Enterprise Linux 6, and use the KVM that is released by >> Redhat officially. The kernel version is 2.6.32-71.el6.x86_64. >> >> It seems that the IRQs are conflicted after reboot. The NIC and the >> SCSI controller have the same IRQ number. If I re-install the NIC >> driver, the IRQ number of the NIC will be assigned another value, then >> it can work normally. Do we have a way to let the NIC and the SCSI >> controller have different IRQ number in VM? > > I'll see if I can reproduce and figure anything out. Windows XP isn't a > guest we concentrate on, especially with device assignment. Are you > using an AMD or Intel host system? Does the same thing happen if you > run the XP guest on an IDE controller? It would be helpful to post the > guest configuration, command line used or libvirt xml. Also, you might > try latest upstream qemu-kvm to see if the problem still exists. Maybe tracking of the INTx route across reset fails. Does this help? diff --git a/hw/device-assignment.c b/hw/device-assignment.c index 7eeecad..0693141 100644 --- a/hw/device-assignment.c +++ b/hw/device-assignment.c @@ -1719,6 +1719,8 @@ static void reset_assigned_device(DeviceState *dev) * disconnected from the PCI bus. This avoids further DMA transfers. */ assigned_dev_pci_write_config(pci_dev, PCI_COMMAND, 0, 2); + + assign_irq(adev); } static int assigned_initfn(struct PCIDevice *pci_dev) Jan -- Siemens AG, Corporate Technology, CT T DE IT 1 Corporate Competence Center Embedded Linux