Dear Larysa,

Am 07.10.25 um 13:46 schrieb Larysa Zaremba:
IPU SDK versions 1.9 through 2.0.5 require send buffer to contain a single
empty memory region. Set number of regions to 1 and use appropriate send
buffer size to satisfy this requirement.

Where are the SDK requirements documented?

What are the current SDK versions?

Do you have a reproducer?

Suggested-by: Michal Swiatkowski <[email protected]>
Reviewed-by: Aleksandr Loktionov <[email protected]>
Signed-off-by: Larysa Zaremba <[email protected]>
---
  drivers/net/ethernet/intel/idpf/idpf_virtchnl.c | 5 +++++
  1 file changed, 5 insertions(+)

diff --git a/drivers/net/ethernet/intel/idpf/idpf_virtchnl.c 
b/drivers/net/ethernet/intel/idpf/idpf_virtchnl.c
index fa3ce1e4f6ac..af8b3ebee4d4 100644
--- a/drivers/net/ethernet/intel/idpf/idpf_virtchnl.c
+++ b/drivers/net/ethernet/intel/idpf/idpf_virtchnl.c
@@ -1016,6 +1016,9 @@ static int idpf_send_get_lan_memory_regions(struct 
idpf_adapter *adapter)
        struct idpf_vc_xn_params xn_params = {
                .vc_op = VIRTCHNL2_OP_GET_LAN_MEMORY_REGIONS,
                .recv_buf.iov_len = IDPF_CTLQ_MAX_BUF_LEN,
+               .send_buf.iov_len =
+                       sizeof(struct virtchnl2_get_lan_memory_regions) +
+                       sizeof(struct virtchnl2_mem_region),
                .timeout_ms = IDPF_VC_XN_DEFAULT_TIMEOUT_MSEC,
        };
        int num_regions, size;
@@ -1028,6 +1031,8 @@ static int idpf_send_get_lan_memory_regions(struct 
idpf_adapter *adapter)
                return -ENOMEM;
xn_params.recv_buf.iov_base = rcvd_regions;
+       rcvd_regions->num_memory_regions = cpu_to_le16(1);
+       xn_params.send_buf.iov_base = rcvd_regions;
        reply_sz = idpf_vc_xn_exec(adapter, &xn_params);
        if (reply_sz < 0)
                return reply_sz;


Kind regards,

Paul

Reply via email to