qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] Re: [PATCH] e1000: Fix hotplug


From: Alex Williamson
Subject: [Qemu-devel] Re: [PATCH] e1000: Fix hotplug
Date: Mon, 02 Aug 2010 15:29:49 -0600

rtl8139 has the same problem, except there's a much bigger pile of code
in rtl8139_reset()?  I think maybe we need to revisit this wholesale
remove of reset calls from init functions, unless I'm missing how
hotplug is supposed to work.  Thanks,

Alex

On Mon, 2010-08-02 at 15:15 -0600, Alex Williamson wrote:
> When we removed the call to e1000_reset() back in cset c1699988, we
> left some register state uninitialized.  When we hotplug the device,
> we don't go through a reset cycle, which means a hot added e1000 is
> useless until the VM reboots.  Duplicate the bits we need from
> e1000_reset().
> 
> Signed-off-by: Alex Williamson <address@hidden>
> ---
> 
>  0.13 candidate?
> 
>  hw/e1000.c |    4 ++++
>  1 files changed, 4 insertions(+), 0 deletions(-)
> 
> diff --git a/hw/e1000.c b/hw/e1000.c
> index 80b78bc..eb323d2 100644
> --- a/hw/e1000.c
> +++ b/hw/e1000.c
> @@ -1129,6 +1129,10 @@ static int pci_e1000_init(PCIDevice *pci_dev)
>      checksum = (uint16_t) EEPROM_SUM - checksum;
>      d->eeprom_data[EEPROM_CHECKSUM_REG] = checksum;
>  
> +    memmove(d->phy_reg, phy_reg_init, sizeof phy_reg_init);
> +    memmove(d->mac_reg, mac_reg_init, sizeof mac_reg_init);
> +    d->rxbuf_min_shift = 1;
> +
>      d->nic = qemu_new_nic(&net_e1000_info, &d->conf,
>                            d->dev.qdev.info->name, d->dev.qdev.id, d);
>  
> 






reply via email to

[Prev in Thread] Current Thread [Next in Thread]