Gal Pressman wrote:
> The toeplitz.py test passed the hex mask without "0x" prefix (e.g.,
> "300" for CPUs 8,9). The toeplitz.c strtoul() call wrongly parsed this
> as decimal 300 (0x12c) instead of hex 0x300.
> 
> Use separate format strings for sysfs (plain hex via format()) and
> command line (prefixed hex via hex()).
> 
> Fixes: 9cf9aa77a1f6 ("selftests: drv-net: hw: convert the Toeplitz test to 
> Python")
> Reviewed-by: Nimrod Oren <[email protected]>
> Signed-off-by: Gal Pressman <[email protected]>

Reviewed-by: Willem de Bruijn <[email protected]>

> ---
>  tools/testing/selftests/drivers/net/hw/toeplitz.py | 9 ++++++---
>  1 file changed, 6 insertions(+), 3 deletions(-)
> 
> diff --git a/tools/testing/selftests/drivers/net/hw/toeplitz.py 
> b/tools/testing/selftests/drivers/net/hw/toeplitz.py
> index d2db5ee9e358..7a9af4af1838 100755
> --- a/tools/testing/selftests/drivers/net/hw/toeplitz.py
> +++ b/tools/testing/selftests/drivers/net/hw/toeplitz.py
> @@ -94,14 +94,17 @@ def _configure_rps(cfg, rps_cpus):
>      mask = 0
>      for cpu in rps_cpus:
>          mask |= (1 << cpu)
> -    mask = hex(mask)[2:]
> +
> +    # sysfs expect hex without '0x' prefix, toeplitz.c needs the prefix
> +    mask_sysfs = format(mask, 'x')

A particular reason not to use the existing slicing?

> +    mask_cmdline = hex(mask)
>  
>      # Set RPS bitmap for all rx queues
>      for rps_file in 
> glob.glob(f"/sys/class/net/{cfg.ifname}/queues/rx-*/rps_cpus"):
>          with open(rps_file, "w", encoding="utf-8") as fp:
> -            fp.write(mask)
> +            fp.write(mask_sysfs)

Alternatively 

-    mask = hex(mask)[2:]
+    mask = hex(mask)

- fp.write(mask)
+ fp.write(mask[2:])

The comment that sysfs and toeplitz.c expect different input is
definitely helpful.

>  
> -    return mask
> +    return mask_cmdline
>  
>  
>  def _send_traffic(cfg, proto_flag, ipver, port):
> -- 
> 2.40.1
> 



Reply via email to