mirror of
https://github.com/kata-containers/kata-containers.git
synced 2025-08-02 00:02:01 +00:00
Merge pull request #8634 from justxuewei/disable-packed-vq
dragonball: Disable packed virtqueue for vhost-user devices
This commit is contained in:
commit
855adbc63b
@ -13,6 +13,7 @@ use vhost_rs::vhost_user::{
|
|||||||
Error as VhostUserError, Listener as VhostUserListener, Master, VhostUserMaster,
|
Error as VhostUserError, Listener as VhostUserListener, Master, VhostUserMaster,
|
||||||
};
|
};
|
||||||
use vhost_rs::{VhostBackend, VhostUserMemoryRegionInfo, VringConfigData};
|
use vhost_rs::{VhostBackend, VhostUserMemoryRegionInfo, VringConfigData};
|
||||||
|
use virtio_bindings::bindings::virtio_net::VIRTIO_F_RING_PACKED;
|
||||||
use virtio_queue::QueueT;
|
use virtio_queue::QueueT;
|
||||||
use vm_memory::{
|
use vm_memory::{
|
||||||
Address, GuestAddress, GuestAddressSpace, GuestMemory, GuestMemoryRegion, MemoryRegionAddress,
|
Address, GuestAddress, GuestAddressSpace, GuestMemory, GuestMemoryRegion, MemoryRegionAddress,
|
||||||
@ -50,7 +51,12 @@ impl Listener {
|
|||||||
pub fn accept(&self) -> VirtioResult<(Master, u64)> {
|
pub fn accept(&self) -> VirtioResult<(Master, u64)> {
|
||||||
loop {
|
loop {
|
||||||
match self.try_accept() {
|
match self.try_accept() {
|
||||||
Ok(Some((master, feature))) => return Ok((master, feature)),
|
Ok(Some((master, mut feature))) => {
|
||||||
|
// Disable VIRTIO_F_RING_PACKED since the layout of packed virtqueue isn't
|
||||||
|
// supported by `Endpoint::negotiate()`.
|
||||||
|
feature &= !(1 << VIRTIO_F_RING_PACKED);
|
||||||
|
return Ok((master, feature));
|
||||||
|
}
|
||||||
Ok(None) => continue,
|
Ok(None) => continue,
|
||||||
Err(e) => return Err(e),
|
Err(e) => return Err(e),
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user