Hi Ganapathi,

[auto build test WARNING on bluetooth-next/master]
[also build test WARNING on v4.5-rc4 next-20160215]
[if your patch is applied to the wrong git tree, please drop us a note to help 
improving the system]

url:    
https://github.com/0day-ci/linux/commits/Amitkumar-Karwar/Bluetooth-hci_uart-Support-firmware-download-for-Marvell/20160215-234258
base:   
https://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth-next.git 
master
config: i386-allmodconfig (attached as .config)
reproduce:
        # save the attached .config to linux build tree
        make ARCH=i386 

All warnings (new ones prefixed by >>):

   In file included from drivers/bluetooth/hci_mrvl.c:41:0:
   drivers/bluetooth/hci_mrvl.c: In function 'mrvl_dnld_fw':
>> drivers/bluetooth/hci_mrvl.c:301:11: warning: format '%lu' expects argument 
>> of type 'long unsigned int', but argument 2 has type 'size_t {aka const 
>> unsigned int}' [-Wformat=]
      BT_INFO("Downloading FW (%lu bytes)\n", fw->size);
              ^
   include/net/bluetooth/bluetooth.h:133:35: note: in definition of macro 
'BT_INFO'
    #define BT_INFO(fmt, ...) bt_info(fmt "\n", ##__VA_ARGS__)
                                      ^

coccinelle warnings: (new ones prefixed by >>)

>> drivers/bluetooth/hci_mrvl.c:411:9-10: WARNING: return of 0/1 in function 
>> 'mrvl_fw_loaded' with return type bool
--
>> drivers/bluetooth/hci_mrvl.c:536:20-27: ERROR: tty is NULL but dereferenced.

Please review and possibly fold the followup patch.

vim +301 drivers/bluetooth/hci_mrvl.c

   295          if (ret < 0) {
   296                  BT_ERR("request_firmware() failed\n");
   297                  ret = -1;
   298                  goto done;
   299          }
   300          if (fw) {
 > 301                  BT_INFO("Downloading FW (%lu bytes)\n", fw->size);
   302          } else {
   303                  BT_ERR("No FW image found\n");
   304                  ret = -1;
   305                  goto done;
   306          }
   307  
   308          skb = bt_skb_alloc(MRVL_MAX_FW_BLOCK_SIZE, GFP_ATOMIC);
   309          if (!skb) {
   310                  BT_ERR("cannot allocate memory for skb\n");
   311                  ret = -1;
   312                  goto done;
   313          }
   314  
   315          skb->dev = (void *)hdev;
   316          fw_data->last_ack = 0;
   317  
   318          do {
   319                  if ((offset >= fw->size) || (fw_data->last_ack))
   320                          break;
   321                  tx_len = fw_data->next_len;
   322                  if ((fw->size - offset) < tx_len)
   323                          tx_len = fw->size - offset;
   324  
   325                  memcpy(skb->data, &fw->data[offset], tx_len);
   326                  skb_put(skb, tx_len);
   327                  if (mrvl_send_data(hu, skb) != 0) {
   328                          BT_ERR("fail to download firmware\n");
   329                          ret = -1;
   330                          goto done;
   331                  }
   332                  skb_push(skb, tx_len);
   333                  skb_trim(skb, 0);
   334                  offset += tx_len;
   335          } while (1);
   336  
   337          BT_INFO("downloaded %d byte firmware\n", offset);
   338  done:
   339          if (fw)
   340                  release_firmware(fw);
   341  
   342          kfree(skb);
   343          BT_INFO("leave dnld_fw\n");
   344  
   345          return ret;
   346  }
   347  
   348  /* Get standard baud rate, given the speed */
   349  static unsigned int get_baud_rate(unsigned int speed)
   350  {
   351          switch (speed) {
   352          case 9600:
   353                  return B9600;
   354          case 19200:
   355                  return B19200;
   356          case 38400:
   357                  return B38400;
   358          case 57600:
   359                  return B57600;
   360          case 115200:
   361                  return B115200;
   362          case 230400:
   363                  return B230400;
   364          case 460800:
   365                  return B460800;
   366          case 921600:
   367                  return B921600;
   368          case 2000000:
   369                  return B2000000;
   370          case 3000000:
   371                  return B3000000;
   372          default:
   373                  return -1;
   374          }
   375  }
   376  
   377  /* Set terminal properties */
   378  static int mrvl_set_termios(struct tty_struct *tty, unsigned int speed,
   379                              unsigned char flow_ctl)
   380  {
   381          struct ktermios old_termios = tty->termios;
   382          int baud;
   383  
   384          tty->termios.c_cflag &= ~CBAUD;
   385          baud = get_baud_rate(speed);
   386  
   387          if (baud == -1) {
   388                  BT_ERR("Baud rate not supported\n");
   389                  return -1;
   390          }
   391  
   392          tty->termios.c_cflag |= baud;
   393  
   394          if (flow_ctl)
   395                  tty->termios.c_cflag |= CRTSCTS;
   396          else
   397                  tty->termios.c_cflag &= ~CRTSCTS;
   398  
   399          tty->ops->set_termios(tty, &old_termios);
   400  
   401          return 0;
   402  }
   403  
   404  /* Check if firmware is already loaded */
   405  static bool mrvl_fw_loaded(struct hci_uart *hu)
   406  {
   407          struct mrvl_data *mrvl = hu->priv;
   408          struct fw_data *fw_data = mrvl->fwdata;
   409  
   410          if ((get_cts(hu->tty)) || (fw_data->fw_loaded))
 > 411                  return 1;
   412          else
   413                  return 0;
   414  }

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

Attachment: .config.gz
Description: Binary data

Reply via email to