• Steven Rostedt (Google)'s avatar
    net: hns3: tracing: fix hclgevf trace event strings · 3f9952e8
    Steven Rostedt (Google) authored
    The __string() and __assign_str() helper macros of the TRACE_EVENT() macro
    are going through some optimizations where only the source string of
    __string() will be used and the __assign_str() source will be ignored and
    later removed.
    
    To make sure that there's no issues, a new check is added between the
    __string() src argument and the __assign_str() src argument that does a
    strcmp() to make sure they are the same string.
    
    The hclgevf trace events have:
    
      __assign_str(devname, &hdev->nic.kinfo.netdev->name);
    
    Which triggers the warning:
    
    hclgevf_trace.h:34:39: error: passing argument 1 of ‘strcmp’ from incompatible pointer type [-Werror=incompatible-pointer-types]
       34 |                 __assign_str(devname, &hdev->nic.kinfo.netdev->name);
     [..]
    arch/x86/include/asm/string_64.h:75:24: note: expected ‘const char *’ but argument is of type ‘char (*)[16]’
       75 | int strcmp(const char *cs, const char *ct);
          |            ~~~~~~~~~~~~^~
    
    Because __assign_str() now has:
    
    	WARN_ON_ONCE(__builtin_constant_p(src) ?		\
    		     strcmp((src), __data_offsets.dst##_ptr_) :	\
    		     (src) != __data_offsets.dst##_ptr_);	\
    
    The problem is the '&' on hdev->nic.kinfo.netdev->name. That's because
    that name is:
    
    	char			name[IFNAMSIZ]
    
    Where passing an address '&' of a char array is not compatible with strcmp().
    
    The '&' is not necessary, remove it.
    
    Link: https://lore.kernel.org/linux-trace-kernel/20240313093454.3909afe7@gandalf.local.home
    
    Cc: netdev <netdev@vger.kernel.org>
    Cc: Yisen Zhuang <yisen.zhuang@huawei.com>
    Cc: Salil Mehta <salil.mehta@huawei.com>
    Cc: "David S. Miller" <davem@davemloft.net>
    Cc: Eric Dumazet <edumazet@google.com>
    Cc: Jakub Kicinski <kuba@kernel.org>
    Cc: Yufeng Mo <moyufeng@huawei.com>
    Cc: Huazhong Tan <tanhuazhong@huawei.com>
    Cc: stable@vger.kernel.org
    Acked-by: default avatarPaolo Abeni <pabeni@redhat.com>
    Reviewed-by: default avatarJijie Shao <shaojijie@huawei.com>
    Fixes: d8355240 ("net: hns3: add trace event support for PF/VF mailbox")
    Signed-off-by: default avatarSteven Rostedt (Google) <rostedt@goodmis.org>
    3f9952e8
hclgevf_trace.h 2.34 KB