Message ID | 20120322100234.44393.86465.stgit@amd-6168-8-1.englab.nay.redhat.com |
---|---|
State | New |
Headers | show |
diff --git a/hw/e1000.c b/hw/e1000.c index 921f0cc..5584cc6 100644 --- a/hw/e1000.c +++ b/hw/e1000.c @@ -199,8 +199,10 @@ static const char phy_regcap[0x20] = { static void set_interrupt_cause(E1000State *s, int index, uint32_t val) { - if (val) + if (val && (E1000_DEVID >= E1000_DEV_ID_82547EI_MOBILE)) { + /* Only for 8257x */ val |= E1000_ICR_INT_ASSERTED; + } s->mac_reg[ICR] = val; s->mac_reg[ICS] = val; qemu_set_irq(s->dev.irq[0], (s->mac_reg[IMS] & s->mac_reg[ICR]) != 0);
E1000_ICR_INT_ASSERTED were introduced only for 8257x, so we need to check the E1000_DEVID before setting this bit in ICS. Signed-off-by: Jason Wang <jasowang@redhat.com> --- hw/e1000.c | 4 +++- 1 files changed, 3 insertions(+), 1 deletions(-)