[PATCH] hw/net/rocker: Report unimplemented feature with qemu_log_mask(UNIMP)

Philippe Mathieu-Daudé posted 1 patch 5 years, 9 months ago
Test FreeBSD passed
Test docker-quick@centos7 passed
Test docker-mingw@fedora passed
Test checkpatch passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20200217101637.27558-1-philmd@redhat.com
Maintainers: Jiri Pirko <jiri@resnulli.us>, Jason Wang <jasowang@redhat.com>
hw/net/rocker/rocker.c | 15 +++++++++------
1 file changed, 9 insertions(+), 6 deletions(-)
[PATCH] hw/net/rocker: Report unimplemented feature with qemu_log_mask(UNIMP)
Posted by Philippe Mathieu-Daudé 5 years, 9 months ago
Fix warnings reported by Clang static code analyzer:

    CC      hw/net/rocker/rocker.o
  hw/net/rocker/rocker.c:213:9: warning: Value stored to 'tx_tso_mss' is never read
          tx_tso_mss = rocker_tlv_get_le16(tlvs[ROCKER_TLV_TX_TSO_MSS]);
          ^            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  hw/net/rocker/rocker.c:217:9: warning: Value stored to 'tx_tso_hdr_len' is never read
          tx_tso_hdr_len = rocker_tlv_get_le16(tlvs[ROCKER_TLV_TX_TSO_HDR_LEN]);
          ^                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  hw/net/rocker/rocker.c:255:9: warning: Value stored to 'tx_l3_csum_off' is never read
          tx_l3_csum_off += tx_tso_mss = tx_tso_hdr_len = 0;
          ^                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Fixes: dc488f888
Reported-by: Clang Static Analyzer
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
---
 hw/net/rocker/rocker.c | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

diff --git a/hw/net/rocker/rocker.c b/hw/net/rocker/rocker.c
index 81dd3b5f14..15d66f6cbc 100644
--- a/hw/net/rocker/rocker.c
+++ b/hw/net/rocker/rocker.c
@@ -27,6 +27,7 @@
 #include "qemu/iov.h"
 #include "qemu/module.h"
 #include "qemu/bitops.h"
+#include "qemu/log.h"
 
 #include "rocker.h"
 #include "rocker_hw.h"
@@ -207,14 +208,22 @@ static int tx_consume(Rocker *r, DescInfo *info)
 
     if (tlvs[ROCKER_TLV_TX_L3_CSUM_OFF]) {
         tx_l3_csum_off = rocker_tlv_get_le16(tlvs[ROCKER_TLV_TX_L3_CSUM_OFF]);
+        qemu_log_mask(LOG_UNIMP, "rocker %s: L3 not implemented"
+                                 " (cksum off: %u)\n",
+                      __func__, tx_l3_csum_off);
     }
 
     if (tlvs[ROCKER_TLV_TX_TSO_MSS]) {
         tx_tso_mss = rocker_tlv_get_le16(tlvs[ROCKER_TLV_TX_TSO_MSS]);
+        qemu_log_mask(LOG_UNIMP, "rocker %s: TSO not implemented (MSS: %u)\n",
+                      __func__, tx_tso_mss);
     }
 
     if (tlvs[ROCKER_TLV_TX_TSO_HDR_LEN]) {
         tx_tso_hdr_len = rocker_tlv_get_le16(tlvs[ROCKER_TLV_TX_TSO_HDR_LEN]);
+        qemu_log_mask(LOG_UNIMP, "rocker %s: TSO not implemented"
+                                 " (hdr length: %u)\n",
+                      __func__, tx_tso_hdr_len);
     }
 
     rocker_tlv_for_each_nested(tlv_frag, tlvs[ROCKER_TLV_TX_FRAGS], rem) {
@@ -249,12 +258,6 @@ static int tx_consume(Rocker *r, DescInfo *info)
         iovcnt++;
     }
 
-    if (iovcnt) {
-        /* XXX perform Tx offloads */
-        /* XXX   silence compiler for now */
-        tx_l3_csum_off += tx_tso_mss = tx_tso_hdr_len = 0;
-    }
-
     err = fp_port_eg(r->fp_port[port], iov, iovcnt);
 
 err_too_many_frags:
-- 
2.21.1


Re: [PATCH] hw/net/rocker: Report unimplemented feature with qemu_log_mask(UNIMP)
Posted by Stefan Hajnoczi 5 years, 8 months ago
On Mon, Feb 17, 2020 at 11:16:37AM +0100, Philippe Mathieu-Daudé wrote:
> Fix warnings reported by Clang static code analyzer:
> 
>     CC      hw/net/rocker/rocker.o
>   hw/net/rocker/rocker.c:213:9: warning: Value stored to 'tx_tso_mss' is never read
>           tx_tso_mss = rocker_tlv_get_le16(tlvs[ROCKER_TLV_TX_TSO_MSS]);
>           ^            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>   hw/net/rocker/rocker.c:217:9: warning: Value stored to 'tx_tso_hdr_len' is never read
>           tx_tso_hdr_len = rocker_tlv_get_le16(tlvs[ROCKER_TLV_TX_TSO_HDR_LEN]);
>           ^                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>   hw/net/rocker/rocker.c:255:9: warning: Value stored to 'tx_l3_csum_off' is never read
>           tx_l3_csum_off += tx_tso_mss = tx_tso_hdr_len = 0;
>           ^                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> 
> Fixes: dc488f888
> Reported-by: Clang Static Analyzer
> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
> ---
>  hw/net/rocker/rocker.c | 15 +++++++++------
>  1 file changed, 9 insertions(+), 6 deletions(-)

Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Re: [PATCH] hw/net/rocker: Report unimplemented feature with qemu_log_mask(UNIMP)
Posted by Laurent Vivier 5 years, 8 months ago
Le 17/02/2020 à 11:16, Philippe Mathieu-Daudé a écrit :
> Fix warnings reported by Clang static code analyzer:
> 
>     CC      hw/net/rocker/rocker.o
>   hw/net/rocker/rocker.c:213:9: warning: Value stored to 'tx_tso_mss' is never read
>           tx_tso_mss = rocker_tlv_get_le16(tlvs[ROCKER_TLV_TX_TSO_MSS]);
>           ^            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>   hw/net/rocker/rocker.c:217:9: warning: Value stored to 'tx_tso_hdr_len' is never read
>           tx_tso_hdr_len = rocker_tlv_get_le16(tlvs[ROCKER_TLV_TX_TSO_HDR_LEN]);
>           ^                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>   hw/net/rocker/rocker.c:255:9: warning: Value stored to 'tx_l3_csum_off' is never read
>           tx_l3_csum_off += tx_tso_mss = tx_tso_hdr_len = 0;
>           ^                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> 
> Fixes: dc488f888
> Reported-by: Clang Static Analyzer
> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
> ---
>  hw/net/rocker/rocker.c | 15 +++++++++------
>  1 file changed, 9 insertions(+), 6 deletions(-)
> 
> diff --git a/hw/net/rocker/rocker.c b/hw/net/rocker/rocker.c
> index 81dd3b5f14..15d66f6cbc 100644
> --- a/hw/net/rocker/rocker.c
> +++ b/hw/net/rocker/rocker.c
> @@ -27,6 +27,7 @@
>  #include "qemu/iov.h"
>  #include "qemu/module.h"
>  #include "qemu/bitops.h"
> +#include "qemu/log.h"
>  
>  #include "rocker.h"
>  #include "rocker_hw.h"
> @@ -207,14 +208,22 @@ static int tx_consume(Rocker *r, DescInfo *info)
>  
>      if (tlvs[ROCKER_TLV_TX_L3_CSUM_OFF]) {
>          tx_l3_csum_off = rocker_tlv_get_le16(tlvs[ROCKER_TLV_TX_L3_CSUM_OFF]);
> +        qemu_log_mask(LOG_UNIMP, "rocker %s: L3 not implemented"
> +                                 " (cksum off: %u)\n",
> +                      __func__, tx_l3_csum_off);
>      }
>  
>      if (tlvs[ROCKER_TLV_TX_TSO_MSS]) {
>          tx_tso_mss = rocker_tlv_get_le16(tlvs[ROCKER_TLV_TX_TSO_MSS]);
> +        qemu_log_mask(LOG_UNIMP, "rocker %s: TSO not implemented (MSS: %u)\n",
> +                      __func__, tx_tso_mss);
>      }
>  
>      if (tlvs[ROCKER_TLV_TX_TSO_HDR_LEN]) {
>          tx_tso_hdr_len = rocker_tlv_get_le16(tlvs[ROCKER_TLV_TX_TSO_HDR_LEN]);
> +        qemu_log_mask(LOG_UNIMP, "rocker %s: TSO not implemented"
> +                                 " (hdr length: %u)\n",
> +                      __func__, tx_tso_hdr_len);
>      }
>  
>      rocker_tlv_for_each_nested(tlv_frag, tlvs[ROCKER_TLV_TX_FRAGS], rem) {
> @@ -249,12 +258,6 @@ static int tx_consume(Rocker *r, DescInfo *info)
>          iovcnt++;
>      }
>  
> -    if (iovcnt) {
> -        /* XXX perform Tx offloads */
> -        /* XXX   silence compiler for now */
> -        tx_l3_csum_off += tx_tso_mss = tx_tso_hdr_len = 0;
> -    }
> -
>      err = fp_port_eg(r->fp_port[port], iov, iovcnt);
>  
>  err_too_many_frags:
> 

Applied to my trivial-patches branch.

Thanks,
Laurent