mirror of
https://chromium.googlesource.com/crosvm/crosvm
synced 2024-11-25 05:03:05 +00:00
devices/ac97: keep irq event descriptors
Fix to preserve ac97 event/resample events handles for minijail. Broken by crrev/c/3143586 BUG=b:198773299 TEST=arcvm audio access, record/play. Change-Id: I34d85a9f9355257c98e0c5c28e87d1e289117ed0 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/3144532 Tested-by: kokoro <noreply+kokoro@google.com> Reviewed-by: Daniel Verkamp <dverkamp@chromium.org> Reviewed-by: Kazuhiro Inaba <kinaba@chromium.org> Commit-Queue: Tomasz Jeznach <tjeznach@chromium.org> Commit-Queue: Daniel Verkamp <dverkamp@chromium.org>
This commit is contained in:
parent
3407843bd4
commit
770c0935da
1 changed files with 11 additions and 5 deletions
|
@ -7,7 +7,7 @@ use std::path::PathBuf;
|
||||||
use std::str::FromStr;
|
use std::str::FromStr;
|
||||||
|
|
||||||
use audio_streams::shm_streams::{NullShmStreamSource, ShmStreamSource};
|
use audio_streams::shm_streams::{NullShmStreamSource, ShmStreamSource};
|
||||||
use base::{error, Event, RawDescriptor};
|
use base::{error, AsRawDescriptor, Event, RawDescriptor};
|
||||||
#[cfg(feature = "audio_cras")]
|
#[cfg(feature = "audio_cras")]
|
||||||
use libcras::{CrasClient, CrasClientType, CrasSocketType, CrasSysError};
|
use libcras::{CrasClient, CrasClientType, CrasSocketType, CrasSysError};
|
||||||
use remain::sorted;
|
use remain::sorted;
|
||||||
|
@ -373,11 +373,17 @@ impl PciDevice for Ac97Dev {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn keep_rds(&self) -> Vec<RawDescriptor> {
|
fn keep_rds(&self) -> Vec<RawDescriptor> {
|
||||||
if let Some(server_fds) = self.bus_master.keep_rds() {
|
let mut rds = Vec::new();
|
||||||
server_fds
|
if let Some(mut server_fds) = self.bus_master.keep_rds() {
|
||||||
} else {
|
rds.append(&mut server_fds);
|
||||||
Vec::new()
|
|
||||||
}
|
}
|
||||||
|
if let Some(irq_evt) = &self.irq_evt {
|
||||||
|
rds.push(irq_evt.as_raw_descriptor());
|
||||||
|
}
|
||||||
|
if let Some(irq_resample_evt) = &self.irq_resample_evt {
|
||||||
|
rds.push(irq_resample_evt.as_raw_descriptor());
|
||||||
|
}
|
||||||
|
rds
|
||||||
}
|
}
|
||||||
|
|
||||||
fn read_bar(&mut self, addr: u64, data: &mut [u8]) {
|
fn read_bar(&mut self, addr: u64, data: &mut [u8]) {
|
||||||
|
|
Loading…
Reference in a new issue