Hi Marcus,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on balbi-usb/next]
[also build test WARNING on v4.17-rc7]
[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/Marcus-Folkesson/usb-gadget-ccid-add-support-for-USB-CCID-Gadget-Device/20180529-014427
base:   https://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb.git next
config: s390-allyesconfig (attached as .config)
compiler: s390x-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=s390 

All warnings (new ones prefixed by >>):

   In file included from include/linux/printk.h:332:0,
                    from include/linux/kernel.h:14,
                    from include/linux/list.h:9,
                    from include/linux/kobject.h:19,
                    from include/linux/cdev.h:5,
                    from drivers/usb/gadget/function/f_ccid.c:8:
   drivers/usb/gadget/function/f_ccid.c: In function 'ccidg_bulk_read':
>> drivers/usb/gadget/function/f_ccid.c:612:5: warning: format '%i' expects 
>> argument of type 'int', but argument 4 has type 'size_t {aka long unsigned 
>> int}' [-Wformat=]
        "ccid: too small buffer size. %i provided, need at least %i\n",
        ^
   include/linux/dynamic_debug.h:135:39: note: in definition of macro 
'dynamic_dev_dbg'
      __dynamic_dev_dbg(&descriptor, dev, fmt, \
                                          ^~~
>> include/linux/usb/composite.h:632:2: note: in expansion of macro 'dev_dbg'
     dev_dbg(&(d)->gadget->dev , fmt , ## args)
     ^~~~~~~
>> drivers/usb/gadget/function/f_ccid.c:611:3: note: in expansion of macro 'DBG'
      DBG(ccidg->function.config->cdev,
      ^~~
>> drivers/usb/gadget/function/f_ccid.c:612:5: warning: format '%i' expects 
>> argument of type 'int', but argument 5 has type 'long unsigned int' 
>> [-Wformat=]
        "ccid: too small buffer size. %i provided, need at least %i\n",
        ^
   include/linux/dynamic_debug.h:135:39: note: in definition of macro 
'dynamic_dev_dbg'
      __dynamic_dev_dbg(&descriptor, dev, fmt, \
                                          ^~~
>> include/linux/usb/composite.h:632:2: note: in expansion of macro 'dev_dbg'
     dev_dbg(&(d)->gadget->dev , fmt , ## args)
     ^~~~~~~
>> drivers/usb/gadget/function/f_ccid.c:611:3: note: in expansion of macro 'DBG'
      DBG(ccidg->function.config->cdev,
      ^~~
   drivers/usb/gadget/function/f_ccid.c: In function 'ccidg_bulk_write':
   drivers/usb/gadget/function/f_ccid.c:683:5: warning: format '%i' expects 
argument of type 'int', but argument 4 has type 'size_t {aka long unsigned 
int}' [-Wformat=]
        "ccid: too much data. %i provided, but we can only handle %i\n",
        ^
   include/linux/dynamic_debug.h:135:39: note: in definition of macro 
'dynamic_dev_dbg'
      __dynamic_dev_dbg(&descriptor, dev, fmt, \
                                          ^~~
>> include/linux/usb/composite.h:632:2: note: in expansion of macro 'dev_dbg'
     dev_dbg(&(d)->gadget->dev , fmt , ## args)
     ^~~~~~~
   drivers/usb/gadget/function/f_ccid.c:682:3: note: in expansion of macro 'DBG'
      DBG(ccidg->function.config->cdev,
      ^~~
   drivers/usb/gadget/function/f_ccid.c:683:5: warning: format '%i' expects 
argument of type 'int', but argument 5 has type 'long unsigned int' [-Wformat=]
        "ccid: too much data. %i provided, but we can only handle %i\n",
        ^
   include/linux/dynamic_debug.h:135:39: note: in definition of macro 
'dynamic_dev_dbg'
      __dynamic_dev_dbg(&descriptor, dev, fmt, \
                                          ^~~
>> include/linux/usb/composite.h:632:2: note: in expansion of macro 'dev_dbg'
     dev_dbg(&(d)->gadget->dev , fmt , ## args)
     ^~~~~~~
   drivers/usb/gadget/function/f_ccid.c:682:3: note: in expansion of macro 'DBG'
      DBG(ccidg->function.config->cdev,
      ^~~
--
   In file included from include/linux/printk.h:332:0,
                    from include/linux/kernel.h:14,
                    from include/linux/list.h:9,
                    from include/linux/kobject.h:19,
                    from include/linux/cdev.h:5,
                    from drivers/usb//gadget/function/f_ccid.c:8:
   drivers/usb//gadget/function/f_ccid.c: In function 'ccidg_bulk_read':
   drivers/usb//gadget/function/f_ccid.c:612:5: warning: format '%i' expects 
argument of type 'int', but argument 4 has type 'size_t {aka long unsigned 
int}' [-Wformat=]
        "ccid: too small buffer size. %i provided, need at least %i\n",
        ^
   include/linux/dynamic_debug.h:135:39: note: in definition of macro 
'dynamic_dev_dbg'
      __dynamic_dev_dbg(&descriptor, dev, fmt, \
                                          ^~~
>> include/linux/usb/composite.h:632:2: note: in expansion of macro 'dev_dbg'
     dev_dbg(&(d)->gadget->dev , fmt , ## args)
     ^~~~~~~
   drivers/usb//gadget/function/f_ccid.c:611:3: note: in expansion of macro 
'DBG'
      DBG(ccidg->function.config->cdev,
      ^~~
   drivers/usb//gadget/function/f_ccid.c:612:5: warning: format '%i' expects 
argument of type 'int', but argument 5 has type 'long unsigned int' [-Wformat=]
        "ccid: too small buffer size. %i provided, need at least %i\n",
        ^
   include/linux/dynamic_debug.h:135:39: note: in definition of macro 
'dynamic_dev_dbg'
      __dynamic_dev_dbg(&descriptor, dev, fmt, \
                                          ^~~
>> include/linux/usb/composite.h:632:2: note: in expansion of macro 'dev_dbg'
     dev_dbg(&(d)->gadget->dev , fmt , ## args)
     ^~~~~~~
   drivers/usb//gadget/function/f_ccid.c:611:3: note: in expansion of macro 
'DBG'
      DBG(ccidg->function.config->cdev,
      ^~~
   drivers/usb//gadget/function/f_ccid.c: In function 'ccidg_bulk_write':
   drivers/usb//gadget/function/f_ccid.c:683:5: warning: format '%i' expects 
argument of type 'int', but argument 4 has type 'size_t {aka long unsigned 
int}' [-Wformat=]
        "ccid: too much data. %i provided, but we can only handle %i\n",
        ^
   include/linux/dynamic_debug.h:135:39: note: in definition of macro 
'dynamic_dev_dbg'
      __dynamic_dev_dbg(&descriptor, dev, fmt, \
                                          ^~~
>> include/linux/usb/composite.h:632:2: note: in expansion of macro 'dev_dbg'
     dev_dbg(&(d)->gadget->dev , fmt , ## args)
     ^~~~~~~
   drivers/usb//gadget/function/f_ccid.c:682:3: note: in expansion of macro 
'DBG'
      DBG(ccidg->function.config->cdev,
      ^~~
   drivers/usb//gadget/function/f_ccid.c:683:5: warning: format '%i' expects 
argument of type 'int', but argument 5 has type 'long unsigned int' [-Wformat=]
        "ccid: too much data. %i provided, but we can only handle %i\n",
        ^
   include/linux/dynamic_debug.h:135:39: note: in definition of macro 
'dynamic_dev_dbg'
      __dynamic_dev_dbg(&descriptor, dev, fmt, \
                                          ^~~
>> include/linux/usb/composite.h:632:2: note: in expansion of macro 'dev_dbg'
     dev_dbg(&(d)->gadget->dev , fmt , ## args)
     ^~~~~~~
   drivers/usb//gadget/function/f_ccid.c:682:3: note: in expansion of macro 
'DBG'
      DBG(ccidg->function.config->cdev,
      ^~~

vim +612 drivers/usb/gadget/function/f_ccid.c

   599  
   600  static ssize_t ccidg_bulk_read(struct file *file, char __user *buf,
   601                                  size_t count, loff_t *pos)
   602  {
   603          struct f_ccidg *ccidg =  file->private_data;
   604          struct ccidg_bulk_dev *bulk_dev = &ccidg->bulk_dev;
   605          struct usb_request *req;
   606          int r = count, xfer;
   607          int ret;
   608  
   609          /* Make sure we have enough space for a whole package */
   610          if (count < sizeof(struct ccidg_bulk_out_header)) {
 > 611                  DBG(ccidg->function.config->cdev,
 > 612                                  "ccid: too small buffer size. %i 
 > provided, need at least %i\n",
   613                                  count, sizeof(struct 
ccidg_bulk_out_header));
   614                  return -ENOMEM;
   615          }
   616  
   617          if (!atomic_read(&ccidg->online))
   618                  return -ENODEV;
   619  
   620          /* queue a request */
   621          req = bulk_dev->rx_req;
   622          req->length = count;
   623          atomic_set(&bulk_dev->rx_done, 0);
   624  
   625          ret = usb_ep_queue(ccidg->out, req, GFP_KERNEL);
   626          if (ret < 0) {
   627                  ERROR(ccidg->function.config->cdev,
   628                                  "ccid: usb ep queue failed\n");
   629                  return -EIO;
   630          }
   631  
   632          if (!atomic_read(&bulk_dev->rx_done) &&
   633                          file->f_flags & (O_NONBLOCK | O_NDELAY))
   634                  return -EAGAIN;
   635  
   636          /* wait for a request to complete */
   637          ret = wait_event_interruptible(bulk_dev->read_wq,
   638                          atomic_read(&bulk_dev->rx_done) ||
   639                          !atomic_read(&ccidg->online));
   640          if (ret < 0) {
   641                  usb_ep_dequeue(ccidg->out, req);
   642                  return -ERESTARTSYS;
   643          }
   644  
   645          /* Still online? */
   646          if (!atomic_read(&ccidg->online))
   647                  return -ENODEV;
   648  
   649          atomic_set(&bulk_dev->rx_req_busy, 1);
   650          xfer = (req->actual < count) ? req->actual : count;
   651  
   652          if (copy_to_user(buf, req->buf, xfer))
   653                  r = -EFAULT;
   654  
   655          atomic_set(&bulk_dev->rx_req_busy, 0);
   656          if (!atomic_read(&ccidg->online)) {
   657                  ccidg_request_free(bulk_dev->rx_req, ccidg->out);
   658                  return -ENODEV;
   659          }
   660  
   661          return xfer;
   662  }
   663  

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