Subject: Re: [PATCH v2 4/8] net: dsa: hellcreek: Add support for hardware timestamping

From: kernel test robot <[email-masked]>
Date: Fri, 24 Jul 2020 10:34:11 +0800

Hi Kurt,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on net-next/master]
[also build test ERROR on next-20200723]
[cannot apply to robh/for-next sparc-next/master net/master linus/master v5.8-rc6]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/Kurt-Kanzenbach/Hirschmann-Hellcreek-DSA-driver/20200723-161930
base:   https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git 7fc3b978a8971305d456b32d3f2ac13191f5a0d7
config: ia64-allmodconfig (attached as .config)
compiler: ia64-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=ia64 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email-masked]>

All error/warnings (new ones prefixed by >>):

   drivers/net/dsa/hirschmann/hellcreek_hwtstamp.c: In function 'hellcreek_should_tstamp':
>> drivers/net/dsa/hirschmann/hellcreek_hwtstamp.c:165:8: error: implicit declaration of function 'ptp_parse_header'; did you mean 'dev_parse_header'? [-Werror=implicit-function-declaration]
     165 |  hdr = ptp_parse_header(skb, type);
         |        ^~~~~~~~~~~~~~~~
         |        dev_parse_header
>> drivers/net/dsa/hirschmann/hellcreek_hwtstamp.c:165:6: warning: assignment to 'struct ptp_header *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     165 |  hdr = ptp_parse_header(skb, type);
         |      ^
   In file included from include/linux/swab.h:5,
                    from include/uapi/linux/byteorder/little_endian.h:13,
                    from include/linux/byteorder/little_endian.h:5,
                    from arch/ia64/include/uapi/asm/byteorder.h:5,
                    from include/asm-generic/bitops/le.h:6,
                    from arch/ia64/include/asm/bitops.h:448,
                    from include/linux/bitops.h:29,
                    from include/linux/kernel.h:12,
                    from include/linux/skbuff.h:13,
                    from include/linux/ip.h:16,
                    from include/linux/ptp_classify.h:13,
                    from drivers/net/dsa/hirschmann/hellcreek_hwtstamp.c:12:
   drivers/net/dsa/hirschmann/hellcreek_hwtstamp.c: In function 'hellcreek_get_reserved_field':
>> drivers/net/dsa/hirschmann/hellcreek_hwtstamp.c:177:24: error: dereferencing pointer to incomplete type 'const struct ptp_header'
     177 |  return be32_to_cpu(hdr->reserved2);
         |                        ^~
   include/uapi/linux/swab.h:118:32: note: in definition of macro '__swab32'
     118 |  (__builtin_constant_p((__u32)(x)) ? \
         |                                ^
   include/linux/byteorder/generic.h:95:21: note: in expansion of macro '__be32_to_cpu'
      95 | #define be32_to_cpu __be32_to_cpu
         |                     ^~~~~~~~~~~~~
   drivers/net/dsa/hirschmann/hellcreek_hwtstamp.c:177:9: note: in expansion of macro 'be32_to_cpu'
     177 |  return be32_to_cpu(hdr->reserved2);
         |         ^~~~~~~~~~~
   drivers/net/dsa/hirschmann/hellcreek_hwtstamp.c: In function 'hellcreek_clear_reserved_field':
>> drivers/net/dsa/hirschmann/hellcreek_hwtstamp.c:182:5: error: dereferencing pointer to incomplete type 'struct ptp_header'
     182 |  hdr->reserved2 = 0;
         |     ^~
   drivers/net/dsa/hirschmann/hellcreek_hwtstamp.c: In function 'hellcreek_get_rxts':
   drivers/net/dsa/hirschmann/hellcreek_hwtstamp.c:325:8: warning: assignment to 'struct ptp_header *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     325 |   hdr  = ptp_parse_header(skb, type);
         |        ^
   drivers/net/dsa/hirschmann/hellcreek_hwtstamp.c: In function 'hellcreek_get_reserved_field':
>> drivers/net/dsa/hirschmann/hellcreek_hwtstamp.c:178:1: warning: control reaches end of non-void function [-Wreturn-type]
     178 | }
         | ^
   cc1: some warnings being treated as errors

vim +165 drivers/net/dsa/hirschmann/hellcreek_hwtstamp.c

   153	
   154	/* Returns a pointer to the PTP header if the caller should time stamp, or NULL
   155	 * if the caller should not.
   156	 */
   157	static struct ptp_header *hellcreek_should_tstamp(struct hellcreek *hellcreek,
   158							  int port, struct sk_buff *skb,
   159							  unsigned int type)
   160	{
   161		struct hellcreek_port_hwtstamp *ps =
   162			&hellcreek->ports[port].port_hwtstamp;
   163		struct ptp_header *hdr;
   164	
 > 165		hdr = ptp_parse_header(skb, type);
   166		if (!hdr)
   167			return NULL;
   168	
   169		if (!test_bit(HELLCREEK_HWTSTAMP_ENABLED, &ps->state))
   170			return NULL;
   171	
   172		return hdr;
   173	}
   174	
   175	static u64 hellcreek_get_reserved_field(const struct ptp_header *hdr)
   176	{
 > 177		return be32_to_cpu(hdr->reserved2);
 > 178	}
   179	
   180	static void hellcreek_clear_reserved_field(struct ptp_header *hdr)
   181	{
 > 182		hdr->reserved2 = 0;
   183	}
   184	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email-masked]