Hi Andrew,

I love your patch! Perhaps something to improve:

[auto build test WARNING on char-misc/char-misc-testing]
[also build test WARNING on v5.11]
[cannot apply to joel-aspeed/for-next next-20210219]
[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]

url:    
https://github.com/0day-ci/linux/commits/Andrew-Jeffery/ipmi-Allow-raw-access-to-KCS-devices/20210219-223144
base:   https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc.git 
d19db80a366576d3ffadf2508ed876b4c1faf959
config: parisc-randconfig-r034-20210221 (attached as .config)
compiler: hppa-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
        wget 
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O 
~/bin/make.cross
        chmod +x ~/bin/make.cross
        # 
https://github.com/0day-ci/linux/commit/8af4fb76b1183097f52d3c67196ae4dbadf508b2
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review 
Andrew-Jeffery/ipmi-Allow-raw-access-to-KCS-devices/20210219-223144
        git checkout 8af4fb76b1183097f52d3c67196ae4dbadf508b2
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross 
ARCH=parisc 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <l...@intel.com>

All warnings (new ones prefixed by >>):

   drivers/char/ipmi/kcs_bmc_cdev_raw.c: In function 'kcs_bmc_raw_write':
>> drivers/char/ipmi/kcs_bmc_cdev_raw.c:253:10: warning: variable 'result' set 
>> but not used [-Wunused-but-set-variable]
     253 |  ssize_t result;
         |          ^~~~~~


vim +/result +253 drivers/char/ipmi/kcs_bmc_cdev_raw.c

   244  
   245  static ssize_t kcs_bmc_raw_write(struct file *filp, const char __user 
*buf,
   246                                size_t count, loff_t *ppos)
   247  {
   248          struct kcs_bmc_device *kcs_bmc;
   249          bool write_odr, write_str;
   250          struct kcs_bmc_raw *priv;
   251          struct device *dev;
   252          uint8_t data[2];
 > 253          ssize_t result;
   254          u8 str;
   255  
   256          priv = file_to_kcs_bmc_raw(filp);
   257          kcs_bmc = priv->client.dev;
   258          dev = priv->miscdev.this_device;
   259  
   260          if (!count)
   261                  return count;
   262  
   263          if (count > 2)
   264                  return -EINVAL;
   265  
   266          if (*ppos >= 2)
   267                  return -EINVAL;
   268  
   269          if (*ppos + count > 2)
   270                  return -EINVAL;
   271  
   272          if (copy_from_user(data, buf, count))
   273                  return -EFAULT;
   274  
   275          write_odr = (*ppos == 0);
   276          write_str = (*ppos == 1) || (count == 2);
   277  
   278          spin_lock_irq(&priv->queue.lock);
   279  
   280          /* Always write status before data, we generate the SerIRQ by 
writing ODR */
   281          if (write_str) {
   282                  /* The index of STR in the userspace buffer depends on 
whether ODR is written */
   283                  str = data[*ppos == 0];
   284                  if (!(str & KCS_BMC_STR_OBF))
   285                          dev_warn(dev, "Clearing OBF with status write: 
0x%x\n", str);
   286                  dev_dbg(dev, "Writing status 0x%x\n", str);
   287                  kcs_bmc_write_status(kcs_bmc, str);
   288          }
   289  
   290          if (write_odr) {
   291                  /* If we're writing ODR it's always the first byte in 
the buffer */
   292                  u8 odr = data[0];
   293  
   294                  str = kcs_bmc_read_status(kcs_bmc);
   295                  if (str & KCS_BMC_STR_OBF) {
   296                          if (filp->f_flags & O_NONBLOCK) {
   297                                  result = -EWOULDBLOCK;
   298                                  goto out;
   299                          }
   300  
   301                          priv->writable = kcs_bmc_raw_prepare_obe(priv);
   302  
   303                          /* Now either OBF is already clear, or we'll 
get an OBE event to wake us */
   304                          dev_dbg(dev, "Waiting for OBF to clear\n");
   305                          wait_event_interruptible_locked(priv->queue, 
priv->writable);
   306  
   307                          if (signal_pending(current)) {
   308                                  kcs_bmc_raw_update_event_mask(priv, 
KCS_BMC_EVENT_TYPE_OBE, 0);
   309                                  result = -EINTR;
   310                                  goto out;
   311                          }
   312  
   313                          WARN_ON(kcs_bmc_read_status(kcs_bmc) & 
KCS_BMC_STR_OBF);
   314                  }
   315  
   316                  dev_dbg(dev, "Writing 0x%x to ODR\n", odr);
   317                  kcs_bmc_write_data(kcs_bmc, odr);
   318          }
   319  
   320  out:
   321          spin_unlock_irq(&priv->queue.lock);
   322  
   323          return count;
   324  }
   325  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-...@lists.01.org

Attachment: .config.gz
Description: application/gzip

_______________________________________________
Openipmi-developer mailing list
Openipmi-developer@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openipmi-developer

Reply via email to