--- sys/dev/e1000/e1000_osdep.h (revision 353336) +++ sys/dev/e1000/e1000_osdep.h (working copy) @@ -82,7 +82,7 @@ static inline void safe_pause_us(int x) { - if (cold) { + if (cold || in_epoch(net_epoch_preempt)) { DELAY(x); } else { pause("e1000_delay", max(1, x/(1000000/hz))); @@ -91,7 +91,7 @@ static inline void safe_pause_ms(int x) { - if (cold) { + if (cold || in_epoch(net_epoch_preempt)) { DELAY(x*1000); } else { pause("e1000_delay", ms_scale(x));