tree:   https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git 
staging-testing
head:   08283d30744434d8f30d386622372e8f5b03bcf2
commit: 73aef0c9d2c6f746e8c84775b73ef374b7a2a4dc [157/337] staging: octeon: 
remove typedef declaration for cvmx_helper_link_info
config: mips-cavium_octeon_defconfig (attached as .config)
compiler: mips64-linux-gcc (GCC) 7.4.0
reproduce:
        wget 
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O 
~/bin/make.cross
        chmod +x ~/bin/make.cross
        git checkout 73aef0c9d2c6f746e8c84775b73ef374b7a2a4dc
        # save the attached .config to linux build tree
        GCC_VERSION=7.4.0 make.cross ARCH=mips 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <l...@intel.com>

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

   In file included from drivers/staging/octeon/ethernet-mem.c:12:0:
>> drivers/staging/octeon/octeon-ethernet.h:94:12: warning: 'union 
>> cvmx_helper_link_info' declared inside parameter list will not be visible 
>> outside of this definition or declaration
         union cvmx_helper_link_info li);
               ^~~~~~~~~~~~~~~~~~~~~
--
   In file included from drivers/staging/octeon/ethernet.c:22:0:
>> drivers/staging/octeon/octeon-ethernet.h:94:12: warning: 'union 
>> cvmx_helper_link_info' declared inside parameter list will not be visible 
>> outside of this definition or declaration
         union cvmx_helper_link_info li);
               ^~~~~~~~~~~~~~~~~~~~~
   drivers/staging/octeon/ethernet.c: In function 'cvm_oct_free_work':
   drivers/staging/octeon/ethernet.c:177:21: error: dereferencing pointer to 
incomplete type 'struct cvmx_wqe'
     int segments = work->word2.s.bufs;
                        ^~
   drivers/staging/octeon/ethernet.c: In function 'cvm_oct_common_open':
>> drivers/staging/octeon/ethernet.c:463:30: error: storage size of 'link_info' 
>> isn't known
     union cvmx_helper_link_info link_info;
                                 ^~~~~~~~~
   drivers/staging/octeon/ethernet.c:463:30: warning: unused variable 
'link_info' [-Wunused-variable]
   drivers/staging/octeon/ethernet.c: In function 'cvm_oct_link_poll':
   drivers/staging/octeon/ethernet.c:499:30: error: storage size of 'link_info' 
isn't known
     union cvmx_helper_link_info link_info;
                                 ^~~~~~~~~
>> drivers/staging/octeon/ethernet.c:516:29: error: type of formal parameter 2 
>> is incomplete
     cvm_oct_note_carrier(priv, link_info);
                                ^~~~~~~~~
   drivers/staging/octeon/ethernet.c:499:30: warning: unused variable 
'link_info' [-Wunused-variable]
     union cvmx_helper_link_info link_info;
                                 ^~~~~~~~~
--
   In file included from drivers/staging/octeon/ethernet-mdio.c:16:0:
>> drivers/staging/octeon/octeon-ethernet.h:94:12: warning: 'union 
>> cvmx_helper_link_info' declared inside parameter list will not be visible 
>> outside of this definition or declaration
         union cvmx_helper_link_info li);
               ^~~~~~~~~~~~~~~~~~~~~
>> drivers/staging/octeon/ethernet-mdio.c:68:12: warning: 'union 
>> cvmx_helper_link_info' declared inside parameter list will not be visible 
>> outside of this definition or declaration
         union cvmx_helper_link_info li)
               ^~~~~~~~~~~~~~~~~~~~~
>> drivers/staging/octeon/ethernet-mdio.c:68:34: error: parameter 2 ('li') has 
>> incomplete type
         union cvmx_helper_link_info li)
                                     ^~
   drivers/staging/octeon/ethernet-mdio.c: In function 'cvm_oct_adjust_link':
>> drivers/staging/octeon/ethernet-mdio.c:84:30: error: storage size of 
>> 'link_info' isn't known
     union cvmx_helper_link_info link_info;
                                 ^~~~~~~~~
>> drivers/staging/octeon/ethernet-mdio.c:101:30: error: type of formal 
>> parameter 2 is incomplete
      cvm_oct_note_carrier(priv, link_info);
                                 ^~~~~~~~~
   drivers/staging/octeon/ethernet-mdio.c:84:30: warning: unused variable 
'link_info' [-Wunused-variable]
     union cvmx_helper_link_info link_info;
                                 ^~~~~~~~~
   drivers/staging/octeon/ethernet-mdio.c: In function 'cvm_oct_common_stop':
   drivers/staging/octeon/ethernet-mdio.c:109:30: error: storage size of 
'link_info' isn't known
     union cvmx_helper_link_info link_info;
                                 ^~~~~~~~~
   drivers/staging/octeon/ethernet-mdio.c:127:30: error: type of formal 
parameter 2 is incomplete
      cvm_oct_note_carrier(priv, link_info);
                                 ^~~~~~~~~
   drivers/staging/octeon/ethernet-mdio.c:109:30: warning: unused variable 
'link_info' [-Wunused-variable]
     union cvmx_helper_link_info link_info;
                                 ^~~~~~~~~
--
   In file included from drivers/staging/octeon/ethernet-rgmii.c:15:0:
>> drivers/staging/octeon/octeon-ethernet.h:94:12: warning: 'union 
>> cvmx_helper_link_info' declared inside parameter list will not be visible 
>> outside of this definition or declaration
         union cvmx_helper_link_info li);
               ^~~~~~~~~~~~~~~~~~~~~
   drivers/staging/octeon/ethernet-rgmii.c: In function 
'cvm_oct_check_preamble_errors':
>> drivers/staging/octeon/ethernet-rgmii.c:56:30: error: storage size of 
>> 'link_info' isn't known
     union cvmx_helper_link_info link_info;
                                 ^~~~~~~~~
   drivers/staging/octeon/ethernet-rgmii.c:56:30: warning: unused variable 
'link_info' [-Wunused-variable]
   drivers/staging/octeon/ethernet-rgmii.c: In function 'cvm_oct_rgmii_poll':
   drivers/staging/octeon/ethernet-rgmii.c:106:30: error: storage size of 
'link_info' isn't known
     union cvmx_helper_link_info link_info;
                                 ^~~~~~~~~
>> drivers/staging/octeon/ethernet-rgmii.c:128:29: error: type of formal 
>> parameter 2 is incomplete
     cvm_oct_note_carrier(priv, link_info);
                                ^~~~~~~~~
   drivers/staging/octeon/ethernet-rgmii.c:106:30: warning: unused variable 
'link_info' [-Wunused-variable]
     union cvmx_helper_link_info link_info;
                                 ^~~~~~~~~
--
   In file included from drivers/staging/octeon/ethernet-rx.c:26:0:
>> drivers/staging/octeon/octeon-ethernet.h:94:12: warning: 'union 
>> cvmx_helper_link_info' declared inside parameter list will not be visible 
>> outside of this definition or declaration
         union cvmx_helper_link_info li);
               ^~~~~~~~~~~~~~~~~~~~~
   drivers/staging/octeon/ethernet-rx.c:63:50: warning: 'struct cvmx_wqe' 
declared inside parameter list will not be visible outside of this definition 
or declaration
    static inline int cvm_oct_check_rcv_error(struct cvmx_wqe *work)
                                                     ^~~~~~~~
   drivers/staging/octeon/ethernet-rx.c: In function 'cvm_oct_check_rcv_error':
   drivers/staging/octeon/ethernet-rx.c:68:14: error: dereferencing pointer to 
incomplete type 'struct cvmx_wqe'
      port = work->word0.pip.cn68xx.pknd;
                 ^~
   drivers/staging/octeon/ethernet-rx.c: At top level:
   drivers/staging/octeon/ethernet-rx.c:138:41: warning: 'struct cvmx_wqe' 
declared inside parameter list will not be visible outside of this definition 
or declaration
    static void copy_segments_to_skb(struct cvmx_wqe *work, struct sk_buff *skb)
                                            ^~~~~~~~
   drivers/staging/octeon/ethernet-rx.c: In function 'copy_segments_to_skb':
   drivers/staging/octeon/ethernet-rx.c:140:21: error: dereferencing pointer to 
incomplete type 'struct cvmx_wqe'
     int segments = work->word2.s.bufs;
                        ^~
   drivers/staging/octeon/ethernet-rx.c: In function 'cvm_oct_poll':
   drivers/staging/octeon/ethernet-rx.c:222:9: error: assignment from 
incompatible pointer type [-Werror=incompatible-pointer-types]
       work = cvmx_pow_work_response_async(CVMX_SCR_SCRATCH);
            ^
   drivers/staging/octeon/ethernet-rx.c:224:9: error: assignment from 
incompatible pointer type [-Werror=incompatible-pointer-types]
       work = cvmx_pow_work_request_sync(CVMX_POW_NO_WAIT);
            ^
   drivers/staging/octeon/ethernet-rx.c:245:32: error: dereferencing pointer to 
incomplete type 'struct cvmx_wqe'
       (cvm_oct_get_buffer_ptr(work->packet_ptr) -
                                   ^~
   drivers/staging/octeon/ethernet-rx.c:272:32: error: passing argument 1 of 
'cvm_oct_check_rcv_error' from incompatible pointer type 
[-Werror=incompatible-pointer-types]
       if (cvm_oct_check_rcv_error(work))
                                   ^~~~
   drivers/staging/octeon/ethernet-rx.c:63:19: note: expected 'struct cvmx_wqe 
*' but argument is of type 'struct cvmx_wqe *'
    static inline int cvm_oct_check_rcv_error(struct cvmx_wqe *work)
                      ^~~~~~~~~~~~~~~~~~~~~~~
   drivers/staging/octeon/ethernet-rx.c:319:26: error: passing argument 1 of 
'copy_segments_to_skb' from incompatible pointer type 
[-Werror=incompatible-pointer-types]
        copy_segments_to_skb(work, skb);
                             ^~~~
   drivers/staging/octeon/ethernet-rx.c:138:13: note: expected 'struct cvmx_wqe 
*' but argument is of type 'struct cvmx_wqe *'
    static void copy_segments_to_skb(struct cvmx_wqe *work, struct sk_buff *skb)
                ^~~~~~~~~~~~~~~~~~~~
   cc1: some warnings being treated as errors
--
   In file included from drivers/staging/octeon/ethernet-tx.c:25:0:
>> drivers/staging/octeon/octeon-ethernet.h:94:12: warning: 'union 
>> cvmx_helper_link_info' declared inside parameter list will not be visible 
>> outside of this definition or declaration
         union cvmx_helper_link_info li);
               ^~~~~~~~~~~~~~~~~~~~~
   drivers/staging/octeon/ethernet-tx.c: In function 'cvm_oct_xmit_pow':
   drivers/staging/octeon/ethernet-tx.c:562:7: error: dereferencing pointer to 
incomplete type 'struct cvmx_wqe'
      work->word0.pip.cn38xx.hw_chksum = skb->csum;
          ^~
   drivers/staging/octeon/ethernet-tx.c:564:20: error: passing argument 1 of 
'cvmx_wqe_set_port' from incompatible pointer type 
[-Werror=incompatible-pointer-types]
     cvmx_wqe_set_port(work, priv->port);
                       ^~~~
   In file included from arch/mips/include/asm/octeon/cvmx-helper.h:39:0,
                    from drivers/staging/octeon/octeon-ethernet.h:25,
                    from drivers/staging/octeon/ethernet-tx.c:25:
   arch/mips/include/asm/octeon/cvmx-wqe.h:610:20: note: expected 'cvmx_wqe_t * 
{aka struct <anonymous> *}' but argument is of type 'struct cvmx_wqe *'
    static inline void cvmx_wqe_set_port(cvmx_wqe_t *work, int port)
                       ^~~~~~~~~~~~~~~~~
   drivers/staging/octeon/ethernet-tx.c:565:19: error: passing argument 1 of 
'cvmx_wqe_set_qos' from incompatible pointer type 
[-Werror=incompatible-pointer-types]
     cvmx_wqe_set_qos(work, priv->port & 0x7);
                      ^~~~
   In file included from arch/mips/include/asm/octeon/cvmx-helper.h:39:0,
                    from drivers/staging/octeon/octeon-ethernet.h:25,
                    from drivers/staging/octeon/ethernet-tx.c:25:
   arch/mips/include/asm/octeon/cvmx-wqe.h:650:20: note: expected 'cvmx_wqe_t * 
{aka struct <anonymous> *}' but argument is of type 'struct cvmx_wqe *'
    static inline void cvmx_wqe_set_qos(cvmx_wqe_t *work, int qos)
                       ^~~~~~~~~~~~~~~~
   drivers/staging/octeon/ethernet-tx.c:566:19: error: passing argument 1 of 
'cvmx_wqe_set_grp' from incompatible pointer type 
[-Werror=incompatible-pointer-types]
     cvmx_wqe_set_grp(work, pow_send_group);
                      ^~~~
   In file included from arch/mips/include/asm/octeon/cvmx-helper.h:39:0,
                    from drivers/staging/octeon/octeon-ethernet.h:25,
                    from drivers/staging/octeon/ethernet-tx.c:25:
   arch/mips/include/asm/octeon/cvmx-wqe.h:630:20: note: expected 'cvmx_wqe_t * 
{aka struct <anonymous> *}' but argument is of type 'struct cvmx_wqe *'
    static inline void cvmx_wqe_set_grp(cvmx_wqe_t *work, int grp)
                       ^~~~~~~~~~~~~~~~
   drivers/staging/octeon/ethernet-tx.c:649:26: error: passing argument 1 of 
'cvmx_wqe_get_qos' from incompatible pointer type 
[-Werror=incompatible-pointer-types]
            cvmx_wqe_get_qos(work), cvmx_wqe_get_grp(work));
                             ^~~~
   In file included from arch/mips/include/asm/octeon/cvmx-helper.h:39:0,
                    from drivers/staging/octeon/octeon-ethernet.h:25,
                    from drivers/staging/octeon/ethernet-tx.c:25:
   arch/mips/include/asm/octeon/cvmx-wqe.h:638:19: note: expected 'cvmx_wqe_t * 
{aka struct <anonymous> *}' but argument is of type 'struct cvmx_wqe *'
    static inline int cvmx_wqe_get_qos(cvmx_wqe_t *work)
                      ^~~~~~~~~~~~~~~~
   drivers/staging/octeon/ethernet-tx.c:649:50: error: passing argument 1 of 
'cvmx_wqe_get_grp' from incompatible pointer type 
[-Werror=incompatible-pointer-types]
            cvmx_wqe_get_qos(work), cvmx_wqe_get_grp(work));
                                                     ^~~~
   In file included from arch/mips/include/asm/octeon/cvmx-helper.h:39:0,
                    from drivers/staging/octeon/octeon-ethernet.h:25,
                    from drivers/staging/octeon/ethernet-tx.c:25:
   arch/mips/include/asm/octeon/cvmx-wqe.h:618:19: note: expected 'cvmx_wqe_t * 
{aka struct <anonymous> *}' but argument is of type 'struct cvmx_wqe *'
    static inline int cvmx_wqe_get_grp(cvmx_wqe_t *work)
                      ^~~~~~~~~~~~~~~~
   drivers/staging/octeon/ethernet-tx.c:648:23: error: passing argument 1 of 
'cvmx_pow_work_submit' from incompatible pointer type 
[-Werror=incompatible-pointer-types]
     cvmx_pow_work_submit(work, work->word1.tag, work->word1.tag_type,
                          ^~~~
   In file included from arch/mips/include/asm/octeon/cvmx-pko.h:62:0,
                    from drivers/staging/octeon/octeon-ethernet.h:31,
                    from drivers/staging/octeon/ethernet-tx.c:25:
   arch/mips/include/asm/octeon/cvmx-pow.h:1806:20: note: expected 'cvmx_wqe_t 
* {aka struct <anonymous> *}' but argument is of type 'struct cvmx_wqe *'
    static inline void cvmx_pow_work_submit(cvmx_wqe_t *wqp, uint32_t tag,
                       ^~~~~~~~~~~~~~~~~~~~
   cc1: some warnings being treated as errors

vim +463 drivers/staging/octeon/ethernet.c

   455  
   456  int cvm_oct_common_open(struct net_device *dev,
   457                          void (*link_poll)(struct net_device *))
   458  {
   459          union cvmx_gmxx_prtx_cfg gmx_cfg;
   460          struct octeon_ethernet *priv = netdev_priv(dev);
   461          int interface = INTERFACE(priv->port);
   462          int index = INDEX(priv->port);
 > 463          union cvmx_helper_link_info link_info;
   464          int rv;
   465  
   466          rv = cvm_oct_phy_setup_device(dev);
   467          if (rv)
   468                  return rv;
   469  
   470          gmx_cfg.u64 = cvmx_read_csr(CVMX_GMXX_PRTX_CFG(index, 
interface));
   471          gmx_cfg.s.en = 1;
   472          if (octeon_has_feature(OCTEON_FEATURE_PKND))
   473                  gmx_cfg.s.pknd = priv->port;
   474          cvmx_write_csr(CVMX_GMXX_PRTX_CFG(index, interface), 
gmx_cfg.u64);
   475  
   476          if (octeon_is_simulation())
   477                  return 0;
   478  
   479          if (dev->phydev) {
   480                  int r = phy_read_status(dev->phydev);
   481  
   482                  if (r == 0 && dev->phydev->link == 0)
   483                          netif_carrier_off(dev);
   484                  cvm_oct_adjust_link(dev);
   485          } else {
   486                  link_info = cvmx_helper_link_get(priv->port);
   487                  if (!link_info.s.link_up)
   488                          netif_carrier_off(dev);
   489                  priv->poll = link_poll;
   490                  link_poll(dev);
   491          }
   492  
   493          return 0;
   494  }
   495  
   496  void cvm_oct_link_poll(struct net_device *dev)
   497  {
   498          struct octeon_ethernet *priv = netdev_priv(dev);
   499          union cvmx_helper_link_info link_info;
   500  
   501          link_info = cvmx_helper_link_get(priv->port);
   502          if (link_info.u64 == priv->link_info)
   503                  return;
   504  
   505          if (cvmx_helper_link_set(priv->port, link_info))
   506                  link_info.u64 = priv->link_info;
   507          else
   508                  priv->link_info = link_info.u64;
   509  
   510          if (link_info.s.link_up) {
   511                  if (!netif_carrier_ok(dev))
   512                          netif_carrier_on(dev);
   513          } else if (netif_carrier_ok(dev)) {
   514                  netif_carrier_off(dev);
   515          }
 > 516          cvm_oct_note_carrier(priv, link_info);
   517  }
   518  

---
0-DAY kernel test infrastructure                 Open Source Technology Center
https://lists.01.org/hyperkitty/list/kbuild-...@lists.01.org Intel Corporation

Attachment: .config.gz
Description: application/gzip

_______________________________________________
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Reply via email to