mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH iwl-net] idpf: fix LAN memory regions command on some NVMs
@ 2025-10-07 11:46 Larysa Zaremba
  2025-10-07 12:06 ` [Intel-wired-lan] " Paul Menzel
  2025-11-24 19:37 ` Singh, Krishneil K
  0 siblings, 2 replies; 4+ messages in thread
From: Larysa Zaremba @ 2025-10-07 11:46 UTC (permalink / raw)
  To: intel-wired-lan, Tony Nguyen
  Cc: Larysa Zaremba, Przemek Kitszel, Andrew Lunn, David S. Miller,
	Eric Dumazet, Jakub Kicinski, Paolo Abeni, Joshua Hay,
	Chittim Madhu, netdev, linux-kernel, Emil Tantilov,
	Michal Swiatkowski, Aleksandr Loktionov

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.

Suggested-by: Michal Swiatkowski <michal.swiatkowski@linux.intel.com>
Reviewed-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com>
Signed-off-by: Larysa Zaremba <larysa.zaremba@intel.com>
---
 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;
-- 
2.47.0


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [Intel-wired-lan] [PATCH iwl-net] idpf: fix LAN memory regions command on some NVMs
  2025-10-07 11:46 [PATCH iwl-net] idpf: fix LAN memory regions command on some NVMs Larysa Zaremba
@ 2025-10-07 12:06 ` Paul Menzel
  2025-10-07 12:44   ` Larysa Zaremba
  2025-11-24 19:37 ` Singh, Krishneil K
  1 sibling, 1 reply; 4+ messages in thread
From: Paul Menzel @ 2025-10-07 12:06 UTC (permalink / raw)
  To: Larysa Zaremba
  Cc: intel-wired-lan, Tony Nguyen, Przemek Kitszel, Andrew Lunn,
	David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
	Joshua Hay, Chittim Madhu, netdev, linux-kernel, Emil Tantilov,
	Michal Swiatkowski, Aleksandr Loktionov

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 <michal.swiatkowski@linux.intel.com>
> Reviewed-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com>
> Signed-off-by: Larysa Zaremba <larysa.zaremba@intel.com>
> ---
>   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

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [Intel-wired-lan] [PATCH iwl-net] idpf: fix LAN memory regions command on some NVMs
  2025-10-07 12:06 ` [Intel-wired-lan] " Paul Menzel
@ 2025-10-07 12:44   ` Larysa Zaremba
  0 siblings, 0 replies; 4+ messages in thread
From: Larysa Zaremba @ 2025-10-07 12:44 UTC (permalink / raw)
  To: Paul Menzel
  Cc: intel-wired-lan, Tony Nguyen, Przemek Kitszel, Andrew Lunn,
	David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
	Joshua Hay, Chittim Madhu, netdev, linux-kernel, Emil Tantilov,
	Michal Swiatkowski, Aleksandr Loktionov

On Tue, Oct 07, 2025 at 02:06:55PM +0200, Paul Menzel wrote:
> 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?
>

IPU SDK is a fancy name for the FW. AFAIK, aside idpf specification intel did 
not publish any additional resources for it.

idpf specification [1] is unclear on the exact get command contents. What I am 
fixing is the reality of the implementation of the NVMs that support CPFs too 
(supported by ixd [0]).

> What are the current SDK versions?

2.1, I tested with 2.0.5 that was the latest when this patch was first 
implemented in August.

> 
> Do you have a reproducer?

I can reliably reproduce this on my machine with intel IPU SDK 2.0.5, the 
command fails every time without this patch, causing the probe to fail. Also, 
other developers such as Michal S reported such problem. It is most probably 
present on older NVMs too, its just that the command was not used before the 
RDMA patchset.

I have checked that the patch does not cause regression on the platforms that 
use another idpf-only NVMs, used by most intel IPUs.

[0]
https://lore.kernel.org/netdev/20250516145814.5422-1-larysa.zaremba@intel.com/

[1] 
https://github.com/oasis-tcs/idpf-specification/blob/main/idpf_specification.pdf

> 
> > Suggested-by: Michal Swiatkowski <michal.swiatkowski@linux.intel.com>
> > Reviewed-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com>
> > Signed-off-by: Larysa Zaremba <larysa.zaremba@intel.com>
> > ---
> >   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

^ permalink raw reply	[flat|nested] 4+ messages in thread

* RE: [PATCH iwl-net] idpf: fix LAN memory regions command on some NVMs
  2025-10-07 11:46 [PATCH iwl-net] idpf: fix LAN memory regions command on some NVMs Larysa Zaremba
  2025-10-07 12:06 ` [Intel-wired-lan] " Paul Menzel
@ 2025-11-24 19:37 ` Singh, Krishneil K
  1 sibling, 0 replies; 4+ messages in thread
From: Singh, Krishneil K @ 2025-11-24 19:37 UTC (permalink / raw)
  To: Zaremba, Larysa, intel-wired-lan, Nguyen, Anthony L
  Cc: Zaremba, Larysa, Kitszel, Przemyslaw, Andrew Lunn,
	David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni, Hay,
	Joshua A, Chittim, Madhu, netdev, linux-kernel, Tantilov, Emil S,
	Michal Swiatkowski, Loktionov, Aleksandr



> -----Original Message-----
> From: Larysa Zaremba <larysa.zaremba@intel.com>
> Sent: Tuesday, October 7, 2025 4:46 AM
> To: intel-wired-lan@lists.osuosl.org; Nguyen, Anthony L
> <anthony.l.nguyen@intel.com>
> Cc: Zaremba, Larysa <larysa.zaremba@intel.com>; Kitszel, Przemyslaw
> <przemyslaw.kitszel@intel.com>; Andrew Lunn <andrew+netdev@lunn.ch>;
> David S. Miller <davem@davemloft.net>; Eric Dumazet
> <edumazet@google.com>; Jakub Kicinski <kuba@kernel.org>; Paolo Abeni
> <pabeni@redhat.com>; Hay, Joshua A <joshua.a.hay@intel.com>; Chittim,
> Madhu <madhu.chittim@intel.com>; netdev@vger.kernel.org; linux-
> kernel@vger.kernel.org; Tantilov, Emil S <emil.s.tantilov@intel.com>; Michal
> Swiatkowski <michal.swiatkowski@linux.intel.com>; Loktionov, Aleksandr
> <aleksandr.loktionov@intel.com>
> Subject: [PATCH iwl-net] idpf: fix LAN memory regions command on some
> NVMs
> 
> 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.
> 
> Suggested-by: Michal Swiatkowski <michal.swiatkowski@linux.intel.com>
> Reviewed-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com>
> Signed-off-by: Larysa Zaremba <larysa.zaremba@intel.com>
> ---
>  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


Tested-by: Krishneil Singh <krishneil.k.singh@intel.com>



^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2025-11-24 19:37 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-10-07 11:46 [PATCH iwl-net] idpf: fix LAN memory regions command on some NVMs Larysa Zaremba
2025-10-07 12:06 ` [Intel-wired-lan] " Paul Menzel
2025-10-07 12:44   ` Larysa Zaremba
2025-11-24 19:37 ` Singh, Krishneil K

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®