Hi Prameela,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on wireless-drivers-next/master]
[also build test ERROR on v4.16-rc2 next-20180223]
[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/Amitkumar-Karwar/rsi-add-bluetooth-and-coex-support/20180226-073244
base:   
https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-next.git 
master
config: sh-allmodconfig (attached as .config)
compiler: sh4-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
        # save the attached .config to linux build tree
        make.cross ARCH=sh 

Note: the 
linux-review/Amitkumar-Karwar/rsi-add-bluetooth-and-coex-support/20180226-073244
 HEAD 9c5222af2b3dbf5143bc1fa4dc0af78fcfa3559d builds fine.
      It only hurts bisectibility.

All errors (new ones prefixed by >>):

   drivers/net//wireless/rsi/rsi_91x_main.c: In function 'rsi_read_pkt':
>> drivers/net//wireless/rsi/rsi_91x_main.c:165:5: error: implicit declaration 
>> of function 'rsi_coex_recv_pkt'; did you mean 'rsi_read_pkt'? 
>> [-Werror=implicit-function-declaration]
        rsi_coex_recv_pkt(common, frame_desc + offset);
        ^~~~~~~~~~~~~~~~~
        rsi_read_pkt
   drivers/net//wireless/rsi/rsi_91x_main.c: In function 'rsi_91x_init':
>> drivers/net//wireless/rsi/rsi_91x_main.c:287:7: error: implicit declaration 
>> of function 'rsi_coex_attach'; did you mean 'driver_attach'? 
>> [-Werror=implicit-function-declaration]
      if (rsi_coex_attach(common)) {
          ^~~~~~~~~~~~~~~
          driver_attach
   drivers/net//wireless/rsi/rsi_91x_main.c: In function 'rsi_91x_deinit':
>> drivers/net//wireless/rsi/rsi_91x_main.c:323:3: error: implicit declaration 
>> of function 'rsi_coex_detach'; did you mean 'rsi_91x_deinit'? 
>> [-Werror=implicit-function-declaration]
      rsi_coex_detach(common);
      ^~~~~~~~~~~~~~~
      rsi_91x_deinit
   cc1: some warnings being treated as errors

vim +165 drivers/net//wireless/rsi/rsi_91x_main.c

   133  
   134  /**
   135   * rsi_read_pkt() - This function reads frames from the card.
   136   * @common: Pointer to the driver private structure.
   137   * @rcv_pkt_len: Received pkt length. In case of USB it is 0.
   138   *
   139   * Return: 0 on success, -1 on failure.
   140   */
   141  int rsi_read_pkt(struct rsi_common *common, u8 *rx_pkt, s32 rcv_pkt_len)
   142  {
   143          u8 *frame_desc = NULL, extended_desc = 0;
   144          u32 index, length = 0, queueno = 0;
   145          u16 actual_length = 0, offset;
   146          struct sk_buff *skb = NULL;
   147  
   148          index = 0;
   149          do {
   150                  frame_desc = &rx_pkt[index];
   151                  actual_length = *(u16 *)&frame_desc[0];
   152                  offset = *(u16 *)&frame_desc[2];
   153  
   154                  queueno = rsi_get_queueno(frame_desc, offset);
   155                  length = rsi_get_length(frame_desc, offset);
   156  
   157                  /* Extended descriptor is valid for WLAN queues only */
   158                  if (queueno == RSI_WIFI_DATA_Q || queueno == 
RSI_WIFI_MGMT_Q)
   159                          extended_desc = 
rsi_get_extended_desc(frame_desc,
   160                                                                offset);
   161  
   162                  switch (queueno) {
   163                  case RSI_COEX_Q:
   164                          if (common->coex_mode > 1)
 > 165                                  rsi_coex_recv_pkt(common, frame_desc + 
 > offset);
   166                          else
   167                                  rsi_mgmt_pkt_recv(common,
   168                                                    (frame_desc + 
offset));
   169                          break;
   170  
   171                  case RSI_WIFI_DATA_Q:
   172                          skb = rsi_prepare_skb(common,
   173                                                (frame_desc + offset),
   174                                                length,
   175                                                extended_desc);
   176                          if (skb == NULL)
   177                                  goto fail;
   178  
   179                          rsi_indicate_pkt_to_os(common, skb);
   180                          break;
   181  
   182                  case RSI_WIFI_MGMT_Q:
   183                          rsi_mgmt_pkt_recv(common, (frame_desc + 
offset));
   184                          break;
   185  
   186                  default:
   187                          rsi_dbg(ERR_ZONE, "%s: pkt from invalid queue: 
%d\n",
   188                                  __func__,   queueno);
   189                          goto fail;
   190                  }
   191  
   192                  index  += actual_length;
   193                  rcv_pkt_len -= actual_length;
   194          } while (rcv_pkt_len > 0);
   195  
   196          return 0;
   197  fail:
   198          return -EINVAL;
   199  }
   200  EXPORT_SYMBOL_GPL(rsi_read_pkt);
   201  
   202  /**
   203   * rsi_tx_scheduler_thread() - This function is a kernel thread to send 
the
   204   *                             packets to the device.
   205   * @common: Pointer to the driver private structure.
   206   *
   207   * Return: None.
   208   */
   209  static void rsi_tx_scheduler_thread(struct rsi_common *common)
   210  {
   211          struct rsi_hw *adapter = common->priv;
   212          u32 timeout = EVENT_WAIT_FOREVER;
   213  
   214          do {
   215                  if (adapter->determine_event_timeout)
   216                          timeout = 
adapter->determine_event_timeout(adapter);
   217                  rsi_wait_event(&common->tx_thread.event, timeout);
   218                  rsi_reset_event(&common->tx_thread.event);
   219  
   220                  if (common->init_done)
   221                          rsi_core_qos_processor(common);
   222          } while (atomic_read(&common->tx_thread.thread_done) == 0);
   223          complete_and_exit(&common->tx_thread.completion, 0);
   224  }
   225  
   226  enum rsi_host_intf rsi_get_host_intf(void *priv)
   227  {
   228          struct rsi_common *common = (struct rsi_common *)priv;
   229  
   230          return common->priv->rsi_host_intf;
   231  }
   232  
   233  /**
   234   * rsi_91x_init() - This function initializes os interface operations.
   235   * @void: Void.
   236   *
   237   * Return: Pointer to the adapter structure on success, NULL on failure 
.
   238   */
   239  struct rsi_hw *rsi_91x_init(void)
   240  {
   241          struct rsi_hw *adapter = NULL;
   242          struct rsi_common *common = NULL;
   243          u8 ii = 0;
   244  
   245          adapter = kzalloc(sizeof(*adapter), GFP_KERNEL);
   246          if (!adapter)
   247                  return NULL;
   248  
   249          adapter->priv = kzalloc(sizeof(*common), GFP_KERNEL);
   250          if (adapter->priv == NULL) {
   251                  rsi_dbg(ERR_ZONE, "%s: Failed in allocation of 
memory\n",
   252                          __func__);
   253                  kfree(adapter);
   254                  return NULL;
   255          } else {
   256                  common = adapter->priv;
   257                  common->priv = adapter;
   258          }
   259  
   260          for (ii = 0; ii < NUM_SOFT_QUEUES; ii++)
   261                  skb_queue_head_init(&common->tx_queue[ii]);
   262  
   263          rsi_init_event(&common->tx_thread.event);
   264          mutex_init(&common->mutex);
   265          mutex_init(&common->tx_lock);
   266          mutex_init(&common->rx_lock);
   267          mutex_init(&common->tx_bus_mutex);
   268  
   269          if (rsi_create_kthread(common,
   270                                 &common->tx_thread,
   271                                 rsi_tx_scheduler_thread,
   272                                 "Tx-Thread")) {
   273                  rsi_dbg(ERR_ZONE, "%s: Unable to init tx thrd\n", 
__func__);
   274                  goto err;
   275          }
   276  
   277          rsi_default_ps_params(adapter);
   278          spin_lock_init(&adapter->ps_lock);
   279          timer_setup(&common->roc_timer, rsi_roc_timeout, 0);
   280          init_completion(&common->wlan_init_completion);
   281          common->init_done = true;
   282  
   283          common->coex_mode = RSI_DEV_COEX_MODE_WIFI_ALONE;
   284          common->oper_mode = RSI_DEV_OPMODE_WIFI_ALONE;
   285          adapter->device_model = RSI_DEV_9113;
   286          if (common->coex_mode > 1) {
 > 287                  if (rsi_coex_attach(common)) {
   288                          rsi_dbg(ERR_ZONE, "Failed to init coex 
module\n");
   289                          goto err;
   290                  }
   291          }
   292  
   293          return adapter;
   294  
   295  err:
   296          kfree(common);
   297          kfree(adapter);
   298          return NULL;
   299  }
   300  EXPORT_SYMBOL_GPL(rsi_91x_init);
   301  
   302  /**
   303   * rsi_91x_deinit() - This function de-intializes os intf operations.
   304   * @adapter: Pointer to the adapter structure.
   305   *
   306   * Return: None.
   307   */
   308  void rsi_91x_deinit(struct rsi_hw *adapter)
   309  {
   310          struct rsi_common *common = adapter->priv;
   311          u8 ii;
   312  
   313          rsi_dbg(INFO_ZONE, "%s: Performing deinit os ops\n", __func__);
   314  
   315          rsi_kill_thread(&common->tx_thread);
   316  
   317          for (ii = 0; ii < NUM_SOFT_QUEUES; ii++)
   318                  skb_queue_purge(&common->tx_queue[ii]);
   319  
   320          common->init_done = false;
   321  
   322          if (common->coex_mode > 1)
 > 323                  rsi_coex_detach(common);
   324  
   325          kfree(common);
   326          kfree(adapter->rsi_dev);
   327          kfree(adapter);
   328  }
   329  EXPORT_SYMBOL_GPL(rsi_91x_deinit);
   330  

---
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