diff --git a/devices/src/pci/ac97_bus_master.rs b/devices/src/pci/ac97_bus_master.rs index 23aec916d6..d3d2f857a1 100644 --- a/devices/src/pci/ac97_bus_master.rs +++ b/devices/src/pci/ac97_bus_master.rs @@ -447,7 +447,9 @@ impl Ac97BusMaster { if new_glob_cnt & GLOB_CNT_WARM_RESET != 0 { // Check if running and if so, ignore. Warm reset is specified to no-op when the device // is playing or recording audio. - if !self.po_info.thread_run.load(Ordering::Relaxed) { + if !self.po_info.thread_run.load(Ordering::Relaxed) + && !self.pi_info.thread_run.load(Ordering::Relaxed) + { self.stop_all_audio(); let mut regs = self.regs.lock(); regs.glob_cnt = new_glob_cnt & !GLOB_CNT_WARM_RESET; // Auto-cleared reset bit.