Hi Matthew,

I love your patch! Yet something to improve:

[auto build test ERROR on linus/master]
[also build test ERROR on v4.17 next-20180607]
[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/Matthew-Wilcox/More-conversions-to-struct_size/20180608-112654
config: x86_64-randconfig-x017-201822 (attached as .config)
compiler: gcc-7 (Debian 7.3.0-16) 7.3.0
reproduce:
        # save the attached .config to linux build tree
        make ARCH=x86_64 

All errors (new ones prefixed by >>):

   drivers/media/v4l2-core/v4l2-event.c: In function 'v4l2_event_subscribe':
>> drivers/media/v4l2-core/v4l2-event.c:218:17: error: implicit declaration of 
>> function 'struct_size'; did you mean 'resource_size'? 
>> [-Werror=implicit-function-declaration]
     sev = kvzalloc(struct_size(sev, events, elems), GFP_KERNEL);
                    ^~~~~~~~~~~
                    resource_size
   drivers/media/v4l2-core/v4l2-event.c:218:34: error: 'events' undeclared 
(first use in this function); did you mean 'elems'?
     sev = kvzalloc(struct_size(sev, events, elems), GFP_KERNEL);
                                     ^~~~~~
                                     elems
   drivers/media/v4l2-core/v4l2-event.c:218:34: note: each undeclared 
identifier is reported only once for each function it appears in
   cc1: some warnings being treated as errors

vim +218 drivers/media/v4l2-core/v4l2-event.c

   203  
   204  int v4l2_event_subscribe(struct v4l2_fh *fh,
   205                           const struct v4l2_event_subscription *sub, 
unsigned elems,
   206                           const struct v4l2_subscribed_event_ops *ops)
   207  {
   208          struct v4l2_subscribed_event *sev, *found_ev;
   209          unsigned long flags;
   210          unsigned i;
   211  
   212          if (sub->type == V4L2_EVENT_ALL)
   213                  return -EINVAL;
   214  
   215          if (elems < 1)
   216                  elems = 1;
   217  
 > 218          sev = kvzalloc(struct_size(sev, events, elems), GFP_KERNEL);
   219          if (!sev)
   220                  return -ENOMEM;
   221          for (i = 0; i < elems; i++)
   222                  sev->events[i].sev = sev;
   223          sev->type = sub->type;
   224          sev->id = sub->id;
   225          sev->flags = sub->flags;
   226          sev->fh = fh;
   227          sev->ops = ops;
   228  
   229          spin_lock_irqsave(&fh->vdev->fh_lock, flags);
   230          found_ev = v4l2_event_subscribed(fh, sub->type, sub->id);
   231          if (!found_ev)
   232                  list_add(&sev->list, &fh->subscribed);
   233          spin_unlock_irqrestore(&fh->vdev->fh_lock, flags);
   234  
   235          if (found_ev) {
   236                  kvfree(sev);
   237                  return 0; /* Already listening */
   238          }
   239  
   240          if (sev->ops && sev->ops->add) {
   241                  int ret = sev->ops->add(sev, elems);
   242                  if (ret) {
   243                          sev->ops = NULL;
   244                          v4l2_event_unsubscribe(fh, sub);
   245                          return ret;
   246                  }
   247          }
   248  
   249          /* Mark as ready for use */
   250          sev->elems = elems;
   251  
   252          return 0;
   253  }
   254  EXPORT_SYMBOL_GPL(v4l2_event_subscribe);
   255  

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