Re: [PATCH] uapi: Make generic uapi headers compile standalone.

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

 



Hi Jayant,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on linus/master]
[also build test WARNING on v4.17 next-20180607]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Jayant-Chowdhary/uapi-Make-generic-uapi-headers-compile-standalone/20180608-014548
reproduce:
        # apt-get install sparse
        make ARCH=x86_64 allmodconfig
        make C=1 CF=-D__CHECK_ENDIAN__


sparse warnings: (new ones prefixed by >>)

   /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:417:9: sparse: preprocessor token offsetof redefined
   include/linux/stddef.h:17:9: this was the original definition
>> drivers/hv/hv_fcopy.c:160:34: sparse: incorrect type in argument 1 (different type sizes) @@    expected unsigned short const [usertype] *pwcs @@    got nst [usertype] *pwcs @@
   drivers/hv/hv_fcopy.c:160:34:    expected unsigned short const [usertype] *pwcs
   drivers/hv/hv_fcopy.c:160:34:    got int [usertype] *<noident>
   drivers/hv/hv_fcopy.c:164:34: sparse: incorrect type in argument 1 (different type sizes) @@    expected unsigned short const [usertype] *pwcs @@    got nst [usertype] *pwcs @@
   drivers/hv/hv_fcopy.c:164:34:    expected unsigned short const [usertype] *pwcs
   drivers/hv/hv_fcopy.c:164:34:    got int [usertype] *<noident>
--
   /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:417:9: sparse: preprocessor token offsetof redefined
   include/linux/stddef.h:17:9: this was the original definition
   drivers/hwmon/asc7621.c:194:18: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:194:18: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:194:18: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:194:18: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:194:18: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:194:18: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:194:18: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:227:18: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:227:18: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:227:18: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:227:18: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:227:18: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:227:18: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:227:18: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:227:18: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:277:37: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:277:37: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:277:37: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:277:37: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:277:37: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:277:37: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:277:37: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:346:18: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:346:18: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:346:18: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:346:18: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:346:18: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:346:18: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:346:18: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:350:18: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:350:18: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:350:18: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:350:18: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:350:18: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:350:18: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:350:18: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:379:18: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:379:18: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:379:18: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:379:18: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:379:18: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:379:18: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:379:18: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:435:18: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:435:18: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:435:18: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:435:18: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:435:18: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:435:18: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:435:18: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:471:48: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:471:48: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:471:48: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:471:48: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:471:48: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:471:48: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:471:48: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:492:18: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:492:18: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:492:18: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:492:18: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:492:18: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:492:18: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:492:18: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:492:18: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:492:18: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:492:18: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:492:18: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:492:18: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:492:18: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:492:18: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:526:41: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:526:41: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:526:41: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:526:41: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:526:41: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:526:41: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:526:41: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:665:18: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:665:18: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:665:18: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:665:18: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:665:18: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:665:18: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:665:18: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:713:18: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:713:18: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:713:18: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:713:18: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:713:18: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:713:18: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:713:18: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:761:18: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:761:18: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:761:18: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:761:18: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:761:18: sparse: expression using sizeof(void)
   drivers/hwmon/asc7621.c:761:18: sparse: expression using sizeof(void)
>> drivers/hwmon/asc7621.c:761:18: sparse: too many warnings
--
   /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:417:9: sparse: preprocessor token offsetof redefined
   include/linux/stddef.h:17:9: this was the original definition
>> fs/hfs/trans.c:52:73: sparse: incorrect type in argument 3 (different type sizes) @@    expected unsigned short [usertype] *uni @@    got pe] *uni @@
   fs/hfs/trans.c:52:73:    expected unsigned short [usertype] *uni
   fs/hfs/trans.c:52:73:    got int *<noident>
   fs/hfs/trans.c:113:63: sparse: incorrect type in argument 3 (different type sizes) @@    expected unsigned short [usertype] *uni @@    got pe] *uni @@
   fs/hfs/trans.c:113:63:    expected unsigned short [usertype] *uni
   fs/hfs/trans.c:113:63:    got int *<noident>
--
   /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:417:9: sparse: preprocessor token offsetof redefined
   include/linux/stddef.h:17:9: this was the original definition
   fs/hfsplus/unicode.c:77:20: sparse: expression using sizeof(void)
   fs/hfsplus/unicode.c:77:20: sparse: expression using sizeof(void)
>> fs/hfsplus/unicode.c:259:61: sparse: incorrect type in argument 3 (different type sizes) @@    expected unsigned short [usertype] *uni @@    got ort [usertype] *uni @@
   fs/hfsplus/unicode.c:259:61:    expected unsigned short [usertype] *uni
   fs/hfsplus/unicode.c:259:61:    got int [usertype] *uc
>> fs/hfsplus/unicode.c:259:61: sparse: incorrect type in argument 3 (different type sizes) @@    expected unsigned short [usertype] *uni @@    got ort [usertype] *uni @@
   fs/hfsplus/unicode.c:259:61:    expected unsigned short [usertype] *uni
   fs/hfsplus/unicode.c:259:61:    got int [usertype] *uc
>> fs/hfsplus/unicode.c:259:61: sparse: incorrect type in argument 3 (different type sizes) @@    expected unsigned short [usertype] *uni @@    got ort [usertype] *uni @@
   fs/hfsplus/unicode.c:259:61:    expected unsigned short [usertype] *uni
   fs/hfsplus/unicode.c:259:61:    got int [usertype] *uc
>> fs/hfsplus/unicode.c:259:61: sparse: incorrect type in argument 3 (different type sizes) @@    expected unsigned short [usertype] *uni @@    got ort [usertype] *uni @@
   fs/hfsplus/unicode.c:259:61:    expected unsigned short [usertype] *uni
   fs/hfsplus/unicode.c:259:61:    got int [usertype] *uc
--
   /usr/lib/gcc/x86_64-linux-gnu/7/include/stddef.h:417:9: sparse: preprocessor token offsetof redefined
   include/linux/stddef.h:17:9: this was the original definition
>> fs/isofs/joliet.c:52:40: sparse: incorrect type in argument 1 (different type sizes) @@    expected unsigned short const [usertype] *pwcs @@    got ort const [usertype] *pwcs @@
   fs/isofs/joliet.c:52:40:    expected unsigned short const [usertype] *pwcs
   fs/isofs/joliet.c:52:40:    got int const [usertype] *<noident>

vim +160 drivers/hv/hv_fcopy.c

01325476d K. Y. Srinivasan 2014-02-16  130  
c7e490fc2 Vitaly Kuznetsov 2015-04-11  131  static void fcopy_send_data(struct work_struct *dummy)
01325476d K. Y. Srinivasan 2014-02-16  132  {
25ef06fe2 Vitaly Kuznetsov 2015-08-01  133  	struct hv_start_fcopy *smsg_out = NULL;
01325476d K. Y. Srinivasan 2014-02-16  134  	int operation = fcopy_transaction.fcopy_msg->operation;
01325476d K. Y. Srinivasan 2014-02-16  135  	struct hv_start_fcopy *smsg_in;
c7e490fc2 Vitaly Kuznetsov 2015-04-11  136  	void *out_src;
c7e490fc2 Vitaly Kuznetsov 2015-04-11  137  	int rc, out_len;
01325476d K. Y. Srinivasan 2014-02-16  138  
01325476d K. Y. Srinivasan 2014-02-16  139  	/*
01325476d K. Y. Srinivasan 2014-02-16  140  	 * The  strings sent from the host are encoded in
01325476d K. Y. Srinivasan 2014-02-16  141  	 * in utf16; convert it to utf8 strings.
01325476d K. Y. Srinivasan 2014-02-16  142  	 * The host assures us that the utf16 strings will not exceed
01325476d K. Y. Srinivasan 2014-02-16  143  	 * the max lengths specified. We will however, reserve room
01325476d K. Y. Srinivasan 2014-02-16  144  	 * for the string terminating character - in the utf16s_utf8s()
01325476d K. Y. Srinivasan 2014-02-16  145  	 * function we limit the size of the buffer where the converted
01325476d K. Y. Srinivasan 2014-02-16  146  	 * string is placed to W_MAX_PATH -1 to guarantee
01325476d K. Y. Srinivasan 2014-02-16  147  	 * that the strings can be properly terminated!
01325476d K. Y. Srinivasan 2014-02-16  148  	 */
01325476d K. Y. Srinivasan 2014-02-16  149  
01325476d K. Y. Srinivasan 2014-02-16  150  	switch (operation) {
01325476d K. Y. Srinivasan 2014-02-16  151  	case START_FILE_COPY:
c7e490fc2 Vitaly Kuznetsov 2015-04-11  152  		out_len = sizeof(struct hv_start_fcopy);
25ef06fe2 Vitaly Kuznetsov 2015-08-01  153  		smsg_out = kzalloc(sizeof(*smsg_out), GFP_KERNEL);
25ef06fe2 Vitaly Kuznetsov 2015-08-01  154  		if (!smsg_out)
25ef06fe2 Vitaly Kuznetsov 2015-08-01  155  			return;
25ef06fe2 Vitaly Kuznetsov 2015-08-01  156  
25ef06fe2 Vitaly Kuznetsov 2015-08-01  157  		smsg_out->hdr.operation = operation;
01325476d K. Y. Srinivasan 2014-02-16  158  		smsg_in = (struct hv_start_fcopy *)fcopy_transaction.fcopy_msg;
01325476d K. Y. Srinivasan 2014-02-16  159  
01325476d K. Y. Srinivasan 2014-02-16 @160  		utf16s_to_utf8s((wchar_t *)smsg_in->file_name, W_MAX_PATH,
01325476d K. Y. Srinivasan 2014-02-16  161  				UTF16_LITTLE_ENDIAN,
25ef06fe2 Vitaly Kuznetsov 2015-08-01  162  				(__u8 *)&smsg_out->file_name, W_MAX_PATH - 1);
01325476d K. Y. Srinivasan 2014-02-16  163  
01325476d K. Y. Srinivasan 2014-02-16  164  		utf16s_to_utf8s((wchar_t *)smsg_in->path_name, W_MAX_PATH,
01325476d K. Y. Srinivasan 2014-02-16  165  				UTF16_LITTLE_ENDIAN,
25ef06fe2 Vitaly Kuznetsov 2015-08-01  166  				(__u8 *)&smsg_out->path_name, W_MAX_PATH - 1);
01325476d K. Y. Srinivasan 2014-02-16  167  
25ef06fe2 Vitaly Kuznetsov 2015-08-01  168  		smsg_out->copy_flags = smsg_in->copy_flags;
25ef06fe2 Vitaly Kuznetsov 2015-08-01  169  		smsg_out->file_size = smsg_in->file_size;
25ef06fe2 Vitaly Kuznetsov 2015-08-01  170  		out_src = smsg_out;
01325476d K. Y. Srinivasan 2014-02-16  171  		break;
01325476d K. Y. Srinivasan 2014-02-16  172  
549e658a0 Olaf Hering      2017-09-21  173  	case WRITE_TO_FILE:
549e658a0 Olaf Hering      2017-09-21  174  		out_src = fcopy_transaction.fcopy_msg;
549e658a0 Olaf Hering      2017-09-21  175  		out_len = sizeof(struct hv_do_fcopy);
549e658a0 Olaf Hering      2017-09-21  176  		break;
01325476d K. Y. Srinivasan 2014-02-16  177  	default:
c7e490fc2 Vitaly Kuznetsov 2015-04-11  178  		out_src = fcopy_transaction.fcopy_msg;
c7e490fc2 Vitaly Kuznetsov 2015-04-11  179  		out_len = fcopy_transaction.recv_len;
01325476d K. Y. Srinivasan 2014-02-16  180  		break;
01325476d K. Y. Srinivasan 2014-02-16  181  	}
c7e490fc2 Vitaly Kuznetsov 2015-04-11  182  
c7e490fc2 Vitaly Kuznetsov 2015-04-11  183  	fcopy_transaction.state = HVUTIL_USERSPACE_REQ;
e0fa3e5e7 Vitaly Kuznetsov 2016-06-09  184  	rc = hvutil_transport_send(hvt, out_src, out_len, NULL);
c7e490fc2 Vitaly Kuznetsov 2015-04-11  185  	if (rc) {
c7e490fc2 Vitaly Kuznetsov 2015-04-11  186  		pr_debug("FCP: failed to communicate to the daemon: %d\n", rc);
c7e490fc2 Vitaly Kuznetsov 2015-04-11  187  		if (cancel_delayed_work_sync(&fcopy_timeout_work)) {
c7e490fc2 Vitaly Kuznetsov 2015-04-11  188  			fcopy_respond_to_host(HV_E_FAIL);
c7e490fc2 Vitaly Kuznetsov 2015-04-11  189  			fcopy_transaction.state = HVUTIL_READY;
c7e490fc2 Vitaly Kuznetsov 2015-04-11  190  		}
c7e490fc2 Vitaly Kuznetsov 2015-04-11  191  	}
25ef06fe2 Vitaly Kuznetsov 2015-08-01  192  	kfree(smsg_out);
01325476d K. Y. Srinivasan 2014-02-16  193  }
01325476d K. Y. Srinivasan 2014-02-16  194  

:::::: The code at line 160 was first introduced by commit
:::::: 01325476d6e46185031be4a9bc6443832dbc807c Drivers: hv: Implement the file copy service

:::::: TO: K. Y. Srinivasan <kys@xxxxxxxxxxxxx>
:::::: CC: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
--
To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux&nblp;USB Development]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite Secrets]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux