Hi Ding,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on bluetooth/master]
[also build test ERROR on v4.18 next-20180824]
[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/Ding-Xiang/Bluetooth-bt3c_cs-Fix-obsolete-function/20180824-184743
base:   https://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth.git 
master
config: i386-randconfig-x002-201833 (attached as .config)
compiler: gcc-7 (Debian 7.3.0-16) 7.3.0
reproduce:
        # save the attached .config to linux build tree
        make ARCH=i386 

All errors (new ones prefixed by >>):

   drivers/bluetooth/bt3c_cs.c: In function 'bt3c_load_firmware':
>> drivers/bluetooth/bt3c_cs.c:510:25: error: passing argument 3 of 'kstrtoul' 
>> from incompatible pointer type [-Werror=incompatible-pointer-types]
        if (kstrtoul(b, 16, &tmp))
                            ^
   In file included from include/linux/list.h:9:0,
                    from include/linux/module.h:9,
                    from drivers/bluetooth/bt3c_cs.c:24:
   include/linux/kernel.h:333:32: note: expected 'long unsigned int *' but 
argument is of type 'unsigned int *'
    static inline int __must_check kstrtoul(const char *s, unsigned int base, 
unsigned long *res)
                                   ^~~~~~~~
   cc1: some warnings being treated as errors

vim +/kstrtoul +510 drivers/bluetooth/bt3c_cs.c

   443  
   444  
   445  static int bt3c_load_firmware(struct bt3c_info *info,
   446                                const unsigned char *firmware,
   447                                int count)
   448  {
   449          char *ptr = (char *) firmware;
   450          char b[9];
   451          unsigned int iobase, tmp;
   452          unsigned long size, addr, fcs, tn;
   453          int i, err = 0;
   454  
   455          iobase = info->p_dev->resource[0]->start;
   456  
   457          /* Reset */
   458          bt3c_io_write(iobase, 0x8040, 0x0404);
   459          bt3c_io_write(iobase, 0x8040, 0x0400);
   460  
   461          udelay(1);
   462  
   463          bt3c_io_write(iobase, 0x8040, 0x0404);
   464  
   465          udelay(17);
   466  
   467          /* Load */
   468          while (count) {
   469                  if (ptr[0] != 'S') {
   470                          BT_ERR("Bad address in firmware");
   471                          err = -EFAULT;
   472                          goto error;
   473                  }
   474  
   475                  memset(b, 0, sizeof(b));
   476                  memcpy(b, ptr + 2, 2);
   477                  if (kstrtoul(b, 16, &size) < 0)
   478                          return -EINVAL;
   479  
   480                  memset(b, 0, sizeof(b));
   481                  memcpy(b, ptr + 4, 8);
   482                  if (kstrtoul(b, 16, &addr) < 0)
   483                          return -EINVAL;
   484  
   485                  memset(b, 0, sizeof(b));
   486                  memcpy(b, ptr + (size * 2) + 2, 2);
   487                  if (kstrtoul(b, 16, &fcs) < 0)
   488                          return -EINVAL;
   489  
   490                  memset(b, 0, sizeof(b));
   491                  for (tmp = 0, i = 0; i < size; i++) {
   492                          memcpy(b, ptr + (i * 2) + 2, 2);
   493                          if (kstrtoul(b, 16, &tn))
   494                                  return -EINVAL;
   495                          tmp += tn;
   496                  }
   497  
   498                  if (((tmp + fcs) & 0xff) != 0xff) {
   499                          BT_ERR("Checksum error in firmware");
   500                          err = -EILSEQ;
   501                          goto error;
   502                  }
   503  
   504                  if (ptr[1] == '3') {
   505                          bt3c_address(iobase, addr);
   506  
   507                          memset(b, 0, sizeof(b));
   508                          for (i = 0; i < (size - 4) / 2; i++) {
   509                                  memcpy(b, ptr + (i * 4) + 12, 4);
 > 510                                  if (kstrtoul(b, 16, &tmp))
   511                                          return -EINVAL;
   512                                  bt3c_put(iobase, tmp);
   513                          }
   514                  }
   515  
   516                  ptr   += (size * 2) + 6;
   517                  count -= (size * 2) + 6;
   518          }
   519  
   520          udelay(17);
   521  
   522          /* Boot */
   523          bt3c_address(iobase, 0x3000);
   524          outb(inb(iobase + CONTROL) | 0x40, iobase + CONTROL);
   525  
   526  error:
   527          udelay(17);
   528  
   529          /* Clear */
   530          bt3c_io_write(iobase, 0x7006, 0x0000);
   531          bt3c_io_write(iobase, 0x7005, 0x0000);
   532          bt3c_io_write(iobase, 0x7001, 0x0000);
   533  
   534          return err;
   535  }
   536  

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

Attachment: .config.gz
Description: application/gzip

Reply via email to