From d854eba0b6c94324500dd77be721a4ca9417bc7d Mon Sep 17 00:00:00 2001 From: Stefan Lankes Date: Mon, 14 Aug 2023 15:40:06 +0200 Subject: [PATCH] fix calculation of the queue size --- Cargo.lock | 6 +++--- src/drivers/net/virtio_net.rs | 11 +++-------- 2 files changed, 6 insertions(+), 11 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 22d6fd07b4..d6a1d36cbb 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -450,9 +450,9 @@ dependencies = [ [[package]] name = "num-complex" -version = "0.4.3" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02e0d21255c828d6f128a1e41534206671e8c3ea0c62f32291e808dc82cff17d" +checksum = "1ba157ca0885411de85d6ca030ba7e2a83a28636056c7c699b07c8b6f7383214" dependencies = [ "num-traits", ] @@ -779,7 +779,7 @@ checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de" [[package]] name = "smoltcp" version = "0.10.0" -source = "git+https://github.com/hermitcore/smoltcp.git?branch=tso#ffc0f9949b8bb69bb1e69008970a4fc74ed4b4b5" +source = "git+https://github.com/hermitcore/smoltcp.git?branch=tso#504c57549a44d715b2ae8e57e56df64f5c0730d1" dependencies = [ "bitflags 1.3.2", "byteorder", diff --git a/src/drivers/net/virtio_net.rs b/src/drivers/net/virtio_net.rs index d4bef59343..ae7979a87b 100644 --- a/src/drivers/net/virtio_net.rs +++ b/src/drivers/net/virtio_net.rs @@ -209,7 +209,7 @@ impl RxQueues { // as many packages as possible inside the queue. let buff_def = [ Bytes::new(mem::size_of::()).unwrap(), - Bytes::new(65550 + ETHERNET_HEADER_LEN).unwrap(), + Bytes::new(65550).unwrap(), ]; let spec = if dev_cfg @@ -218,10 +218,7 @@ impl RxQueues { { BuffSpec::Indirect(&buff_def) } else { - BuffSpec::Single( - Bytes::new(mem::size_of::() + 65550 + ETHERNET_HEADER_LEN) - .unwrap(), - ) + BuffSpec::Single(Bytes::new(mem::size_of::() + 65550).unwrap()) }; let num_buff: u16 = vq.size().into(); @@ -408,9 +405,7 @@ impl TxQueues { // Header and data are added as ONE output descriptor to the transmitvq. // Hence we are interpreting this, as the fact, that send packets must be inside a single descriptor. // As usize is currently safe as the minimal usize is defined as 16bit in rust. - let buff_def = - Bytes::new(mem::size_of::() + 65550 + ETHERNET_HEADER_LEN) - .unwrap(); + let buff_def = Bytes::new(mem::size_of::() + 65550).unwrap(); let spec = BuffSpec::Single(buff_def); let num_buff: u16 = vq.size().into();