Hi Jason-JH.Lin,

kernel test robot noticed the following build warnings:

[auto build test WARNING on linus/master]
[also build test WARNING on next-20240523]
[cannot apply to robh/for-next krzk-dt/for-next 
fujitsu-integration/mailbox-for-next v6.9]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    
https://github.com/intel-lab-lkp/linux/commits/Jason-JH-Lin/dt-bindings-gce-mt8195-Add-CMDQ_SYNC_TOKEN_SECURE_THR_EOF-event-id/20240526-071102
base:   linus/master
patch link:    
https://lore.kernel.org/r/20240525230810.24623-7-jason-jh.lin%40mediatek.com
patch subject: [PATCH v6 6/8] mailbox: mediatek: Add CMDQ secure mailbox driver
config: m68k-allyesconfig 
(https://download.01.org/0day-ci/archive/20240526/[email protected]/config)
compiler: m68k-linux-gcc (GCC) 13.2.0
reproduce (this is a W=1 build): 
(https://download.01.org/0day-ci/archive/20240526/[email protected]/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <[email protected]>
| Closes: 
https://lore.kernel.org/oe-kbuild-all/[email protected]/

All warnings (new ones prefixed by >>):

   drivers/mailbox/mtk-cmdq-sec-mailbox.c: In function 
'cmdq_sec_task_exec_work':
>> drivers/mailbox/mtk-cmdq-sec-mailbox.c:619:31: warning: variable 'data' set 
>> but not used [-Wunused-but-set-variable]
     619 |         struct cmdq_sec_data *data;
         |                               ^~~~


vim +/data +619 drivers/mailbox/mtk-cmdq-sec-mailbox.c

   611  
   612  static void cmdq_sec_task_exec_work(struct work_struct *work_item)
   613  {
   614          struct cmdq_sec_task *sec_task = container_of(work_item,
   615                                                        struct 
cmdq_sec_task, exec_work);
   616          struct cmdq_sec_thread *sec_thread = 
container_of(sec_task->task.thread,
   617                                                           struct 
cmdq_sec_thread, thread);
   618          struct cmdq_sec *cmdq = container_of(sec_thread->dev, struct 
cmdq_sec, dev);
 > 619          struct cmdq_sec_data *data;
   620          unsigned long flags;
   621          int err;
   622  
   623          dev_dbg(&cmdq->dev, "%s gce:%#lx sec_task:%p pkt:%p thread:%u",
   624                  __func__, (unsigned long)cmdq->base_pa,
   625                  sec_task, sec_task->task.pkt, sec_thread->idx);
   626  
   627          if (!sec_task->task.pkt->sec_data) {
   628                  dev_err(&cmdq->dev, "pkt:%p without sec_data", 
sec_task->task.pkt);
   629                  return;
   630          }
   631          data = (struct cmdq_sec_data *)sec_task->task.pkt->sec_data;
   632  
   633          mutex_lock(&cmdq->exec_lock);
   634  
   635          spin_lock_irqsave(&sec_thread->thread.chan->lock, flags);
   636          if (!sec_thread->task_cnt) {
   637                  mod_timer(&sec_thread->timeout, jiffies +
   638                            msecs_to_jiffies(sec_thread->timeout_ms));
   639                  sec_thread->wait_cookie = 1;
   640                  sec_thread->next_cookie = 1;
   641                  sec_thread->task_cnt = 0;
   642                  __raw_writel(0, (void __iomem *)cmdq->shared_mem->va +
   643                               CMDQ_SEC_SHARED_THR_CNT_OFFSET + 
sec_thread->idx * sizeof(u32));
   644          }
   645  
   646          sec_task->reset_exec = sec_thread->task_cnt ? false : true;
   647          sec_task->wait_cookie = sec_thread->next_cookie;
   648          sec_thread->next_cookie = (sec_thread->next_cookie + 1) % 
CMDQ_MAX_COOKIE_VALUE;
   649          list_add_tail(&sec_task->task.list_entry, 
&sec_thread->thread.task_busy_list);
   650          sec_thread->task_cnt += 1;
   651          spin_unlock_irqrestore(&sec_thread->thread.chan->lock, flags);
   652          sec_task->trigger = sched_clock();
   653  
   654          if (!atomic_cmpxchg(&cmdq_path_res, 0, 1)) {
   655                  err = cmdq_sec_task_submit(cmdq, NULL, 
CMD_CMDQ_IWC_PATH_RES_ALLOCATE,
   656                                             CMDQ_INVALID_THREAD);
   657                  if (err) {
   658                          atomic_set(&cmdq_path_res, 0);
   659                          goto task_end;
   660                  }
   661          }
   662  
   663          if (sec_thread->task_cnt > CMDQ_MAX_TASK_IN_SECURE_THREAD) {
   664                  dev_err(&cmdq->dev, "task_cnt:%u cannot more than %u 
sec_task:%p thread:%u",
   665                          sec_thread->task_cnt, 
CMDQ_MAX_TASK_IN_SECURE_THREAD,
   666                          sec_task, sec_thread->idx);
   667                  err = -EMSGSIZE;
   668                  goto task_end;
   669          }
   670  
   671          err = cmdq_sec_task_submit(cmdq, sec_task, 
CMD_CMDQ_IWC_SUBMIT_TASK,
   672                                     sec_thread->idx);
   673          if (err)
   674                  dev_err(&cmdq->dev, "cmdq_sec_task_submit err:%d 
sec_task:%p thread:%u",
   675                          err, sec_task, sec_thread->idx);
   676  
   677  task_end:
   678          if (err) {
   679                  struct cmdq_cb_data cb_data;
   680  
   681                  cb_data.sta = err;
   682                  cb_data.pkt = sec_task->task.pkt;
   683                  mbox_chan_received_data(sec_thread->thread.chan, 
&cb_data);
   684  
   685                  spin_lock_irqsave(&sec_thread->thread.chan->lock, 
flags);
   686                  if (!sec_thread->task_cnt)
   687                          dev_err(&cmdq->dev, "thread:%u task_cnt:%u 
cannot below zero",
   688                                  sec_thread->idx, sec_thread->task_cnt);
   689                  else
   690                          sec_thread->task_cnt -= 1;
   691  
   692                  sec_thread->next_cookie = (sec_thread->next_cookie - 1 +
   693                          CMDQ_MAX_COOKIE_VALUE) % CMDQ_MAX_COOKIE_VALUE;
   694                  list_del(&sec_task->task.list_entry);
   695                  dev_dbg(&cmdq->dev, "gce:%#lx err:%d sec_task:%p 
pkt:%p",
   696                          (unsigned long)cmdq->base_pa, err, sec_task, 
sec_task->task.pkt);
   697                  dev_dbg(&cmdq->dev, "thread:%u task_cnt:%u 
wait_cookie:%u next_cookie:%u",
   698                          sec_thread->idx, sec_thread->task_cnt,
   699                          sec_thread->wait_cookie, 
sec_thread->next_cookie);
   700                  spin_unlock_irqrestore(&sec_thread->thread.chan->lock, 
flags);
   701  
   702                  kfree(sec_task);
   703          }
   704  
   705          mutex_unlock(&cmdq->exec_lock);
   706  }
   707  

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

Reply via email to