45a46
> #include "debug/Drain.hh"
106c107
< if (pendingCount == 0 && drainEvent) {
---
> if (pendingCount == 0 && transmitList.empty() && drainEvent) {
145c146
< if (pendingCount == 0)
---
> if (transmitList.empty() && pendingCount == 0)
147a149
> DPRINTF(Drain, "DmaPort not drained\n");
185,186d186
< assert(device->getState() == SimObject::Running);
<
290c290,291
< if (pendingCount == 0 && drainEvent) {
---
> if (pendingCount == 0 && transmitList.empty() && drainEvent) {
> DPRINTF(Drain, "DmaPort done draining, processing drain event\n");