[mkl-can-next:j1939-individual 19/460] net//can/j1939/main.c:349:24: error: passing argument 1 of 'can_rx_register' from incompatible pointer type

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



tree:   https://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can-next.git j1939-individual
head:   320c16c728d8cee622305b98d438e0b67bd949e2
commit: ea7cb8b3328d4c510a25fec410f0ea44b71a7cc4 [19/460] can-j1939: Import SAE J1939
config: arm64-allyesconfig (attached as .config)
compiler: aarch64-linux-gnu-gcc (Debian 7.2.0-11) 7.2.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 ea7cb8b3328d4c510a25fec410f0ea44b71a7cc4
        # save the attached .config to linux build tree
        GCC_VERSION=7.2.0 make.cross ARCH=arm64 

Note: the mkl-can-next/j1939-individual HEAD 320c16c728d8cee622305b98d438e0b67bd949e2 builds fine.
      It only hurts bisectibility.

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

   In file included from net//can/j1939/main.c:27:0:
   net//can/j1939/j1939-priv.h:181:3: error: unknown type name 'write_proc_t'; did you mean 'writepage_t'?
      write_proc_t write);
      ^~~~~~~~~~~~
      writepage_t
   net//can/j1939/main.c: In function 'j1939_segment_attach':
>> net//can/j1939/main.c:349:24: error: passing argument 1 of 'can_rx_register' from incompatible pointer type [-Werror=incompatible-pointer-types]
     ret = can_rx_register(netdev, J1939_CAN_ID, J1939_CAN_MASK,
                           ^~~~~~
   In file included from net//can/j1939/main.c:26:0:
   include/linux/can/core.h:80:5: note: expected 'struct net *' but argument is of type 'struct net_device *'
    int can_rx_register(struct net *net, struct net_device *dev,
        ^~~~~~~~~~~~~~~
   In file included from net//can/j1939/main.c:25:0:
>> include/uapi/linux/can.h:55:22: warning: passing argument 2 of 'can_rx_register' makes pointer from integer without a cast [-Wint-conversion]
    #define CAN_EFF_FLAG 0x80000000U /* EFF/SFF is set in the MSB */
                         ^
>> net//can/j1939/main.c:333:22: note: in expansion of macro 'CAN_EFF_FLAG'
    #define J1939_CAN_ID CAN_EFF_FLAG
                         ^~~~~~~~~~~~
>> net//can/j1939/main.c:349:32: note: in expansion of macro 'J1939_CAN_ID'
     ret = can_rx_register(netdev, J1939_CAN_ID, J1939_CAN_MASK,
                                   ^~~~~~~~~~~~
   In file included from net//can/j1939/main.c:26:0:
   include/linux/can/core.h:80:5: note: expected 'struct net_device *' but argument is of type 'unsigned int'
    int can_rx_register(struct net *net, struct net_device *dev,
        ^~~~~~~~~~~~~~~
>> net//can/j1939/main.c:350:4: warning: passing argument 4 of 'can_rx_register' makes integer from pointer without a cast [-Wint-conversion]
       j1939_can_recv, jseg, "j1939");
       ^~~~~~~~~~~~~~
   In file included from net//can/j1939/main.c:26:0:
   include/linux/can/core.h:80:5: note: expected 'canid_t {aka unsigned int}' but argument is of type 'void (*)(struct sk_buff *, void *)'
    int can_rx_register(struct net *net, struct net_device *dev,
        ^~~~~~~~~~~~~~~
   net//can/j1939/main.c:350:20: error: passing argument 5 of 'can_rx_register' from incompatible pointer type [-Werror=incompatible-pointer-types]
       j1939_can_recv, jseg, "j1939");
                       ^~~~
   In file included from net//can/j1939/main.c:26:0:
   include/linux/can/core.h:80:5: note: expected 'void (*)(struct sk_buff *, void *)' but argument is of type 'struct j1939_segment *'
    int can_rx_register(struct net *net, struct net_device *dev,
        ^~~~~~~~~~~~~~~
>> net//can/j1939/main.c:349:8: error: too few arguments to function 'can_rx_register'
     ret = can_rx_register(netdev, J1939_CAN_ID, J1939_CAN_MASK,
           ^~~~~~~~~~~~~~~
   In file included from net//can/j1939/main.c:26:0:
   include/linux/can/core.h:80:5: note: declared here
    int can_rx_register(struct net *net, struct net_device *dev,
        ^~~~~~~~~~~~~~~
   net//can/j1939/main.c: In function 'j1939_segment_detach':
>> net//can/j1939/main.c:370:20: error: passing argument 1 of 'can_rx_unregister' from incompatible pointer type [-Werror=incompatible-pointer-types]
     can_rx_unregister(netdev, J1939_CAN_ID, J1939_CAN_MASK,
                       ^~~~~~
   In file included from net//can/j1939/main.c:26:0:
   include/linux/can/core.h:85:13: note: expected 'struct net *' but argument is of type 'struct net_device *'
    extern void can_rx_unregister(struct net *net, struct net_device *dev,
                ^~~~~~~~~~~~~~~~~
   In file included from net//can/j1939/main.c:25:0:
>> include/uapi/linux/can.h:55:22: warning: passing argument 2 of 'can_rx_unregister' makes pointer from integer without a cast [-Wint-conversion]
    #define CAN_EFF_FLAG 0x80000000U /* EFF/SFF is set in the MSB */
                         ^
>> net//can/j1939/main.c:333:22: note: in expansion of macro 'CAN_EFF_FLAG'
    #define J1939_CAN_ID CAN_EFF_FLAG
                         ^~~~~~~~~~~~
   net//can/j1939/main.c:370:28: note: in expansion of macro 'J1939_CAN_ID'
     can_rx_unregister(netdev, J1939_CAN_ID, J1939_CAN_MASK,
                               ^~~~~~~~~~~~
   In file included from net//can/j1939/main.c:26:0:
   include/linux/can/core.h:85:13: note: expected 'struct net_device *' but argument is of type 'unsigned int'
    extern void can_rx_unregister(struct net *net, struct net_device *dev,
                ^~~~~~~~~~~~~~~~~
>> net//can/j1939/main.c:371:4: warning: passing argument 4 of 'can_rx_unregister' makes integer from pointer without a cast [-Wint-conversion]
       j1939_can_recv, jseg);
       ^~~~~~~~~~~~~~
   In file included from net//can/j1939/main.c:26:0:
   include/linux/can/core.h:85:13: note: expected 'canid_t {aka unsigned int}' but argument is of type 'void (*)(struct sk_buff *, void *)'
    extern void can_rx_unregister(struct net *net, struct net_device *dev,
                ^~~~~~~~~~~~~~~~~
   net//can/j1939/main.c:371:20: error: passing argument 5 of 'can_rx_unregister' from incompatible pointer type [-Werror=incompatible-pointer-types]
       j1939_can_recv, jseg);
                       ^~~~
   In file included from net//can/j1939/main.c:26:0:
   include/linux/can/core.h:85:13: note: expected 'void (*)(struct sk_buff *, void *)' but argument is of type 'struct j1939_segment *'
    extern void can_rx_unregister(struct net *net, struct net_device *dev,
                ^~~~~~~~~~~~~~~~~
>> net//can/j1939/main.c:370:2: error: too few arguments to function 'can_rx_unregister'
     can_rx_unregister(netdev, J1939_CAN_ID, J1939_CAN_MASK,
     ^~~~~~~~~~~~~~~~~
   In file included from net//can/j1939/main.c:26:0:
   include/linux/can/core.h:85:13: note: declared here
    extern void can_rx_unregister(struct net *net, struct net_device *dev,
                ^~~~~~~~~~~~~~~~~
   cc1: some warnings being treated as errors
--
   In file included from net/can/j1939/main.c:27:0:
   net/can/j1939/j1939-priv.h:181:3: error: unknown type name 'write_proc_t'; did you mean 'writepage_t'?
      write_proc_t write);
      ^~~~~~~~~~~~
      writepage_t
   net/can/j1939/main.c: In function 'j1939_segment_attach':
   net/can/j1939/main.c:349:24: error: passing argument 1 of 'can_rx_register' from incompatible pointer type [-Werror=incompatible-pointer-types]
     ret = can_rx_register(netdev, J1939_CAN_ID, J1939_CAN_MASK,
                           ^~~~~~
   In file included from net/can/j1939/main.c:26:0:
   include/linux/can/core.h:80:5: note: expected 'struct net *' but argument is of type 'struct net_device *'
    int can_rx_register(struct net *net, struct net_device *dev,
        ^~~~~~~~~~~~~~~
   In file included from net/can/j1939/main.c:25:0:
>> include/uapi/linux/can.h:55:22: warning: passing argument 2 of 'can_rx_register' makes pointer from integer without a cast [-Wint-conversion]
    #define CAN_EFF_FLAG 0x80000000U /* EFF/SFF is set in the MSB */
                         ^
   net/can/j1939/main.c:333:22: note: in expansion of macro 'CAN_EFF_FLAG'
    #define J1939_CAN_ID CAN_EFF_FLAG
                         ^~~~~~~~~~~~
   net/can/j1939/main.c:349:32: note: in expansion of macro 'J1939_CAN_ID'
     ret = can_rx_register(netdev, J1939_CAN_ID, J1939_CAN_MASK,
                                   ^~~~~~~~~~~~
   In file included from net/can/j1939/main.c:26:0:
   include/linux/can/core.h:80:5: note: expected 'struct net_device *' but argument is of type 'unsigned int'
    int can_rx_register(struct net *net, struct net_device *dev,
        ^~~~~~~~~~~~~~~
   net/can/j1939/main.c:350:4: warning: passing argument 4 of 'can_rx_register' makes integer from pointer without a cast [-Wint-conversion]
       j1939_can_recv, jseg, "j1939");
       ^~~~~~~~~~~~~~
   In file included from net/can/j1939/main.c:26:0:
   include/linux/can/core.h:80:5: note: expected 'canid_t {aka unsigned int}' but argument is of type 'void (*)(struct sk_buff *, void *)'
    int can_rx_register(struct net *net, struct net_device *dev,
        ^~~~~~~~~~~~~~~
   net/can/j1939/main.c:350:20: error: passing argument 5 of 'can_rx_register' from incompatible pointer type [-Werror=incompatible-pointer-types]
       j1939_can_recv, jseg, "j1939");
                       ^~~~
   In file included from net/can/j1939/main.c:26:0:
   include/linux/can/core.h:80:5: note: expected 'void (*)(struct sk_buff *, void *)' but argument is of type 'struct j1939_segment *'
    int can_rx_register(struct net *net, struct net_device *dev,
        ^~~~~~~~~~~~~~~
   net/can/j1939/main.c:349:8: error: too few arguments to function 'can_rx_register'
     ret = can_rx_register(netdev, J1939_CAN_ID, J1939_CAN_MASK,
           ^~~~~~~~~~~~~~~
   In file included from net/can/j1939/main.c:26:0:
   include/linux/can/core.h:80:5: note: declared here
    int can_rx_register(struct net *net, struct net_device *dev,
        ^~~~~~~~~~~~~~~
   net/can/j1939/main.c: In function 'j1939_segment_detach':
   net/can/j1939/main.c:370:20: error: passing argument 1 of 'can_rx_unregister' from incompatible pointer type [-Werror=incompatible-pointer-types]
     can_rx_unregister(netdev, J1939_CAN_ID, J1939_CAN_MASK,
                       ^~~~~~
   In file included from net/can/j1939/main.c:26:0:
   include/linux/can/core.h:85:13: note: expected 'struct net *' but argument is of type 'struct net_device *'
    extern void can_rx_unregister(struct net *net, struct net_device *dev,
                ^~~~~~~~~~~~~~~~~
   In file included from net/can/j1939/main.c:25:0:
>> include/uapi/linux/can.h:55:22: warning: passing argument 2 of 'can_rx_unregister' makes pointer from integer without a cast [-Wint-conversion]
    #define CAN_EFF_FLAG 0x80000000U /* EFF/SFF is set in the MSB */
                         ^
   net/can/j1939/main.c:333:22: note: in expansion of macro 'CAN_EFF_FLAG'
    #define J1939_CAN_ID CAN_EFF_FLAG
                         ^~~~~~~~~~~~
   net/can/j1939/main.c:370:28: note: in expansion of macro 'J1939_CAN_ID'
     can_rx_unregister(netdev, J1939_CAN_ID, J1939_CAN_MASK,
                               ^~~~~~~~~~~~
   In file included from net/can/j1939/main.c:26:0:
   include/linux/can/core.h:85:13: note: expected 'struct net_device *' but argument is of type 'unsigned int'
    extern void can_rx_unregister(struct net *net, struct net_device *dev,
                ^~~~~~~~~~~~~~~~~
   net/can/j1939/main.c:371:4: warning: passing argument 4 of 'can_rx_unregister' makes integer from pointer without a cast [-Wint-conversion]
       j1939_can_recv, jseg);
       ^~~~~~~~~~~~~~
   In file included from net/can/j1939/main.c:26:0:
   include/linux/can/core.h:85:13: note: expected 'canid_t {aka unsigned int}' but argument is of type 'void (*)(struct sk_buff *, void *)'
    extern void can_rx_unregister(struct net *net, struct net_device *dev,
                ^~~~~~~~~~~~~~~~~
   net/can/j1939/main.c:371:20: error: passing argument 5 of 'can_rx_unregister' from incompatible pointer type [-Werror=incompatible-pointer-types]
       j1939_can_recv, jseg);
                       ^~~~
   In file included from net/can/j1939/main.c:26:0:
   include/linux/can/core.h:85:13: note: expected 'void (*)(struct sk_buff *, void *)' but argument is of type 'struct j1939_segment *'
    extern void can_rx_unregister(struct net *net, struct net_device *dev,
                ^~~~~~~~~~~~~~~~~
   net/can/j1939/main.c:370:2: error: too few arguments to function 'can_rx_unregister'
     can_rx_unregister(netdev, J1939_CAN_ID, J1939_CAN_MASK,
     ^~~~~~~~~~~~~~~~~
   In file included from net/can/j1939/main.c:26:0:
   include/linux/can/core.h:85:13: note: declared here
    extern void can_rx_unregister(struct net *net, struct net_device *dev,
                ^~~~~~~~~~~~~~~~~
   cc1: some warnings being treated as errors

vim +/can_rx_register +349 net//can/j1939/main.c

   332	
 > 333	#define J1939_CAN_ID	CAN_EFF_FLAG
   334	#define J1939_CAN_MASK	(CAN_EFF_FLAG | CAN_RTR_FLAG)
   335	int j1939_segment_attach(struct net_device *netdev)
   336	{
   337		int ret;
   338		struct j1939_segment *jseg;
   339	
   340		if (!netdev)
   341			return -ENODEV;
   342		if (netdev->type != ARPHRD_CAN)
   343			return -EAFNOSUPPORT;
   344	
   345		ret = j1939_segment_register(netdev);
   346		if (ret < 0)
   347			goto fail_register;
   348		jseg = j1939_segment_find(netdev->ifindex);
 > 349		ret = can_rx_register(netdev, J1939_CAN_ID, J1939_CAN_MASK,
 > 350				j1939_can_recv, jseg, "j1939");
   351		if (ret < 0)
   352			goto fail_can_rx;
   353		return 0;
   354	
   355	fail_can_rx:
   356		j1939_segment_unregister(jseg);
   357		put_j1939_segment(jseg);
   358	fail_register:
   359		return ret;
   360	}
   361	
   362	int j1939_segment_detach(struct net_device *netdev)
   363	{
   364		struct j1939_segment *jseg;
   365	
   366		BUG_ON(!netdev);
   367		jseg = j1939_segment_find(netdev->ifindex);
   368		if (!jseg)
   369			return -EHOSTDOWN;
 > 370		can_rx_unregister(netdev, J1939_CAN_ID, J1939_CAN_MASK,
 > 371				j1939_can_recv, jseg);
   372		j1939_segment_unregister(jseg);
   373		put_j1939_segment(jseg);
   374		j1939sk_netdev_event(netdev->ifindex, EHOSTDOWN);
   375		return 0;
   376	}
   377	

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

Attachment: .config.gz
Description: application/gzip


[Index of Archives]     [Automotive Discussions]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]     [CAN Bus]

  Powered by Linux