virtio-devices: Use new VirtioCommon::access_platform() accessor

Use the new virtio feature gated accessor when creating the handlers for
the virtio devices. This now means that the translations via the
accessor will only be applied if the feature is acked in accordance with
the spec.

Signed-off-by: Rob Bradford <rbradford@meta.com>
This commit is contained in:
Rob Bradford
2026-04-17 08:56:44 +01:00
parent ea64d109c7
commit 81ee260ac3
7 changed files with 10 additions and 10 deletions

View File

@@ -1140,7 +1140,7 @@ impl VirtioDevice for Block {
.map(|r| r.new_handle())
.transpose()
.unwrap(),
access_platform: self.common.access_platform.clone(),
access_platform: self.common.access_platform(),
host_cpus: self.queue_affinity.get(&queue_idx).cloned(),
acked_features: self.common.acked_features,
disable_sector0_writes: self.disable_sector0_writes,

View File

@@ -751,7 +751,7 @@ impl VirtioDevice for Console {
self.resize_pipe.as_ref().map(|p| p.try_clone().unwrap()),
kill_evt,
pause_evt,
self.common.access_platform.clone(),
self.common.access_platform(),
);
let paused = self.common.paused.clone();

View File

@@ -765,7 +765,7 @@ impl VirtioDevice for Net {
ctrl_q: CtrlQueue::new(self.taps.clone()),
queue: ctrl_queue,
queue_evt: ctrl_queue_evt,
access_platform: self.common.access_platform.clone(),
access_platform: self.common.access_platform(),
queue_index: ctrl_queue_index as u16,
interrupt_cb: interrupt_cb.clone(),
};
@@ -837,7 +837,7 @@ impl VirtioDevice for Net {
rx_desc_avail: false,
rx_rate_limiter,
tx_rate_limiter,
access_platform: self.common.access_platform.clone(),
access_platform: self.common.access_platform(),
},
mem: mem.clone(),
queue_index_base: (i * 2) as u16,

View File

@@ -404,7 +404,7 @@ impl VirtioDevice for Pmem {
queue_evt,
kill_evt,
pause_evt,
access_platform: self.common.access_platform.clone(),
access_platform: self.common.access_platform(),
};
let paused = self.common.paused.clone();

View File

@@ -273,7 +273,7 @@ impl VirtioDevice for Rng {
queue_evt,
kill_evt,
pause_evt,
access_platform: self.common.access_platform.clone(),
access_platform: self.common.access_platform(),
};
let paused = self.common.paused.clone();

View File

@@ -251,21 +251,21 @@ impl Vdpa {
desc_table_addr: queue
.desc_table()
.translate_gpa(
self.common.access_platform.as_deref(),
self.common.access_platform().as_deref(),
queue_size as usize * std::mem::size_of::<RawDescriptor>(),
)
.map_err(Error::TranslateAddress)?,
used_ring_addr: queue
.used_ring()
.translate_gpa(
self.common.access_platform.as_deref(),
self.common.access_platform().as_deref(),
4 + queue_size as usize * 8,
)
.map_err(Error::TranslateAddress)?,
avail_ring_addr: queue
.avail_ring()
.translate_gpa(
self.common.access_platform.as_deref(),
self.common.access_platform().as_deref(),
4 + queue_size as usize * 2,
)
.map_err(Error::TranslateAddress)?,

View File

@@ -466,7 +466,7 @@ where
pause_evt,
interrupt_cb,
backend: self.backend.clone(),
access_platform: self.common.access_platform.clone(),
access_platform: self.common.access_platform(),
};
let paused = self.common.paused.clone();