mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-04 00:03:54 -06:00
sunhme: flush any queued packets when HME_MAC_RXCFG_ENABLE bit is raised
Some client drivers use this bit to pause and resume the driver so make sure that queued packets are flushed when the MAC is disabled and then reactivated. Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
This commit is contained in:
parent
076489c043
commit
1058e1a377
1 changed files with 10 additions and 0 deletions
|
@ -373,10 +373,20 @@ static void sunhme_mac_write(void *opaque, hwaddr addr,
|
|||
uint64_t val, unsigned size)
|
||||
{
|
||||
SunHMEState *s = SUNHME(opaque);
|
||||
uint64_t oldval = s->macregs[addr >> 2];
|
||||
|
||||
trace_sunhme_mac_write(addr, val);
|
||||
|
||||
s->macregs[addr >> 2] = val;
|
||||
|
||||
switch (addr) {
|
||||
case HME_MACI_RXCFG:
|
||||
if (!(oldval & HME_MAC_RXCFG_ENABLE) &&
|
||||
(val & HME_MAC_RXCFG_ENABLE)) {
|
||||
qemu_flush_queued_packets(qemu_get_queue(s->nic));
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static uint64_t sunhme_mac_read(void *opaque, hwaddr addr,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue