* [Qemu-devel] [PATCH] e1000: fix init values for command register
@ 2009-12-09 20:35 Michael S. Tsirkin
2009-12-10 13:03 ` [Qemu-devel] " Luiz Capitulino
2009-12-10 18:14 ` Michael S. Tsirkin
0 siblings, 2 replies; 3+ messages in thread
From: Michael S. Tsirkin @ 2009-12-09 20:35 UTC (permalink / raw)
To: Anthony Liguori, Luiz Capitulino, qemu-devel
Command register for e1000 was initialized to
values out of spec: all of bus master,
io, memory and interrupt disable bits were set.
This breaks the device now that we actually respect
the interrupt disable bit, unless the guest
happens to clear it. Fix, and make the device
more spec compliant, by not touching
the default.
There are implications for migration
from old qemu as well, will be addressed
separately.
Reported-by: Luiz Capitulino <lcapitulino@redhat.com>
Tested-by: Luiz Capitulino <lcapitulino@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
hw/e1000.c | 1 -
1 files changed, 0 insertions(+), 1 deletions(-)
diff --git a/hw/e1000.c b/hw/e1000.c
index 8566fe3..ad7a267 100644
--- a/hw/e1000.c
+++ b/hw/e1000.c
@@ -1089,7 +1089,6 @@ static int pci_e1000_init(PCIDevice *pci_dev)
pci_config_set_vendor_id(pci_conf, PCI_VENDOR_ID_INTEL);
pci_config_set_device_id(pci_conf, E1000_DEVID);
- *(uint16_t *)(pci_conf+0x04) = cpu_to_le16(0x0407);
*(uint16_t *)(pci_conf+0x06) = cpu_to_le16(0x0010);
pci_conf[0x08] = 0x03;
pci_config_set_class(pci_conf, PCI_CLASS_NETWORK_ETHERNET);
--
1.6.6.rc1.43.gf55cc
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [Qemu-devel] Re: [PATCH] e1000: fix init values for command register
2009-12-09 20:35 [Qemu-devel] [PATCH] e1000: fix init values for command register Michael S. Tsirkin
@ 2009-12-10 13:03 ` Luiz Capitulino
2009-12-10 18:14 ` Michael S. Tsirkin
1 sibling, 0 replies; 3+ messages in thread
From: Luiz Capitulino @ 2009-12-10 13:03 UTC (permalink / raw)
To: Michael S. Tsirkin; +Cc: qemu-devel
On Wed, 9 Dec 2009 22:35:37 +0200
"Michael S. Tsirkin" <mst@redhat.com> wrote:
> Command register for e1000 was initialized to
> values out of spec: all of bus master,
> io, memory and interrupt disable bits were set.
>
> This breaks the device now that we actually respect
> the interrupt disable bit, unless the guest
> happens to clear it. Fix, and make the device
> more spec compliant, by not touching
> the default.
>
> There are implications for migration
> from old qemu as well, will be addressed
> separately.
FWIW, I've tested the others network cards (only for the slirp case)
and they worked fine.
^ permalink raw reply [flat|nested] 3+ messages in thread
* [Qemu-devel] Re: [PATCH] e1000: fix init values for command register
2009-12-09 20:35 [Qemu-devel] [PATCH] e1000: fix init values for command register Michael S. Tsirkin
2009-12-10 13:03 ` [Qemu-devel] " Luiz Capitulino
@ 2009-12-10 18:14 ` Michael S. Tsirkin
1 sibling, 0 replies; 3+ messages in thread
From: Michael S. Tsirkin @ 2009-12-10 18:14 UTC (permalink / raw)
To: Anthony Liguori, Luiz Capitulino, qemu-devel
On Wed, Dec 09, 2009 at 10:35:37PM +0200, Michael S. Tsirkin wrote:
> Command register for e1000 was initialized to
> values out of spec: all of bus master,
> io, memory and interrupt disable bits were set.
>
> This breaks the device now that we actually respect
> the interrupt disable bit, unless the guest
> happens to clear it. Fix, and make the device
> more spec compliant, by not touching
> the default.
>
> There are implications for migration
> from old qemu as well, will be addressed
> separately.
>
> Reported-by: Luiz Capitulino <lcapitulino@redhat.com>
> Tested-by: Luiz Capitulino <lcapitulino@redhat.com>
> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This patch is also appropriate for 0.12, it will make migration 0.12 to
master less painful.
What's the process to get it there?
Should I create pci-for-0.12 branch on my tree?
> ---
> hw/e1000.c | 1 -
> 1 files changed, 0 insertions(+), 1 deletions(-)
>
> diff --git a/hw/e1000.c b/hw/e1000.c
> index 8566fe3..ad7a267 100644
> --- a/hw/e1000.c
> +++ b/hw/e1000.c
> @@ -1089,7 +1089,6 @@ static int pci_e1000_init(PCIDevice *pci_dev)
>
> pci_config_set_vendor_id(pci_conf, PCI_VENDOR_ID_INTEL);
> pci_config_set_device_id(pci_conf, E1000_DEVID);
> - *(uint16_t *)(pci_conf+0x04) = cpu_to_le16(0x0407);
> *(uint16_t *)(pci_conf+0x06) = cpu_to_le16(0x0010);
> pci_conf[0x08] = 0x03;
> pci_config_set_class(pci_conf, PCI_CLASS_NETWORK_ETHERNET);
> --
> 1.6.6.rc1.43.gf55cc
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2009-12-10 18:17 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-12-09 20:35 [Qemu-devel] [PATCH] e1000: fix init values for command register Michael S. Tsirkin
2009-12-10 13:03 ` [Qemu-devel] " Luiz Capitulino
2009-12-10 18:14 ` Michael S. Tsirkin
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).