tree:   git://people.freedesktop.org/~airlied/linux.git drm-syncobj
head:   0c2ce5924ab63ae73c49bef9cf369a5e9d50e79d
commit: 3f58246dcd0bf3579af908c8e0a7a6715d3f51e4 [4/6] drm: add initial sync 
object interfaces
reproduce: make htmldocs

All warnings (new ones prefixed by >>):

   include/linux/init.h:1: warning: no structured comments found
   kernel/sched/core.c:2085: warning: No description found for parameter 'rf'
   kernel/sched/core.c:2085: warning: Excess function parameter 'cookie' 
description in 'try_to_wake_up_local'
   include/linux/kthread.h:26: warning: Excess function parameter '...' 
description in 'kthread_create'
   kernel/sys.c:1: warning: no structured comments found
   include/linux/device.h:969: warning: No description found for parameter 
'dma_ops'
   drivers/dma-buf/seqno-fence.c:1: warning: no structured comments found
   include/linux/iio/iio.h:597: warning: No description found for parameter 
'trig_readonly'
   include/linux/iio/trigger.h:151: warning: No description found for parameter 
'indio_dev'
   include/linux/iio/trigger.h:151: warning: No description found for parameter 
'trig'
   include/linux/device.h:970: warning: No description found for parameter 
'dma_ops'
   drivers/regulator/core.c:1467: warning: Excess function parameter 'ret' 
description in 'regulator_dev_lookup'
   include/drm/drm_drv.h:439: warning: No description found for parameter 'open'
   include/drm/drm_drv.h:439: warning: No description found for parameter 
'preclose'
   include/drm/drm_drv.h:439: warning: No description found for parameter 
'postclose'
   include/drm/drm_drv.h:439: warning: No description found for parameter 
'lastclose'
   include/drm/drm_drv.h:439: warning: No description found for parameter 
'set_busid'
   include/drm/drm_drv.h:439: warning: No description found for parameter 
'irq_handler'
   include/drm/drm_drv.h:439: warning: No description found for parameter 
'irq_preinstall'
   include/drm/drm_drv.h:439: warning: No description found for parameter 
'irq_postinstall'
   include/drm/drm_drv.h:439: warning: No description found for parameter 
'irq_uninstall'
   include/drm/drm_drv.h:439: warning: No description found for parameter 
'debugfs_init'
   include/drm/drm_drv.h:439: warning: No description found for parameter 
'debugfs_cleanup'
   include/drm/drm_drv.h:439: warning: No description found for parameter 
'gem_open_object'
   include/drm/drm_drv.h:439: warning: No description found for parameter 
'gem_close_object'
   include/drm/drm_drv.h:439: warning: No description found for parameter 
'prime_handle_to_fd'
   include/drm/drm_drv.h:439: warning: No description found for parameter 
'prime_fd_to_handle'
   include/drm/drm_drv.h:439: warning: No description found for parameter 
'gem_prime_export'
   include/drm/drm_drv.h:439: warning: No description found for parameter 
'gem_prime_import'
   include/drm/drm_drv.h:439: warning: No description found for parameter 
'gem_prime_pin'
   include/drm/drm_drv.h:439: warning: No description found for parameter 
'gem_prime_unpin'
   include/drm/drm_drv.h:439: warning: No description found for parameter 
'gem_prime_res_obj'
   include/drm/drm_drv.h:439: warning: No description found for parameter 
'gem_prime_get_sg_table'
   include/drm/drm_drv.h:439: warning: No description found for parameter 
'gem_prime_import_sg_table'
   include/drm/drm_drv.h:439: warning: No description found for parameter 
'gem_prime_vmap'
   include/drm/drm_drv.h:439: warning: No description found for parameter 
'gem_prime_vunmap'
   include/drm/drm_drv.h:439: warning: No description found for parameter 
'gem_prime_mmap'
   include/drm/drm_drv.h:439: warning: No description found for parameter 
'gem_vm_ops'
   include/drm/drm_drv.h:439: warning: No description found for parameter 
'major'
   include/drm/drm_drv.h:439: warning: No description found for parameter 
'minor'
   include/drm/drm_drv.h:439: warning: No description found for parameter 
'patchlevel'
   include/drm/drm_drv.h:439: warning: No description found for parameter 'name'
   include/drm/drm_drv.h:439: warning: No description found for parameter 'desc'
   include/drm/drm_drv.h:439: warning: No description found for parameter 'date'
   include/drm/drm_drv.h:439: warning: No description found for parameter 
'driver_features'
   include/drm/drm_drv.h:439: warning: No description found for parameter 
'ioctls'
   include/drm/drm_drv.h:439: warning: No description found for parameter 
'num_ioctls'
   include/drm/drm_drv.h:439: warning: No description found for parameter 'fops'
   include/drm/drm_color_mgmt.h:1: warning: no structured comments found
   drivers/gpu/drm/drm_fb_cma_helper.c:557: warning: Excess function parameter 
'num_crtc' description in 'drm_fbdev_cma_init'
   drivers/gpu/drm/drm_fb_cma_helper.c:558: warning: Excess function parameter 
'num_crtc' description in 'drm_fbdev_cma_init'
>> drivers/gpu/drm/drm_syncobj.c:75: warning: No description found for 
>> parameter 'file_private'
>> drivers/gpu/drm/drm_syncobj.c:75: warning: No description found for 
>> parameter 'handle'
>> drivers/gpu/drm/drm_syncobj.c:75: warning: No description found for 
>> parameter 'fence'
>> drivers/gpu/drm/drm_syncobj.c:75: warning: No description found for 
>> parameter 'old_fence'
   drivers/gpu/drm/drm_syncobj.c:101: warning: No description found for 
parameter 'file_private'
   drivers/gpu/drm/drm_syncobj.c:101: warning: No description found for 
parameter 'handle'
   drivers/gpu/drm/drm_syncobj.c:101: warning: No description found for 
parameter 'fence'
>> drivers/gpu/drm/drm_syncobj.c:195: warning: Excess function parameter 'dev' 
>> description in 'drm_syncobj_open'
>> drivers/gpu/drm/drm_syncobj.c:220: warning: Excess function parameter 'dev' 
>> description in 'drm_syncobj_release'
   drivers/gpu/drm/i915/intel_lpe_audio.c:342: warning: No description found 
for parameter 'pipe'
   drivers/gpu/drm/i915/intel_lpe_audio.c:342: warning: No description found 
for parameter 'dp_output'
   drivers/gpu/drm/i915/intel_lpe_audio.c:342: warning: No description found 
for parameter 'link_rate'
   drivers/gpu/drm/i915/intel_lpe_audio.c:343: warning: No description found 
for parameter 'pipe'
   drivers/gpu/drm/i915/intel_lpe_audio.c:343: warning: No description found 
for parameter 'dp_output'
   drivers/gpu/drm/i915/intel_lpe_audio.c:343: warning: No description found 
for parameter 'link_rate'
   drivers/media/dvb-core/dvb_frontend.h:677: warning: No description found for 
parameter 'refcount'
   Documentation/core-api/assoc_array.rst:13: WARNING: Enumerated list ends 
without a blank line; unexpected unindent.
   Documentation/doc-guide/sphinx.rst:110: ERROR: Unknown target name: "sphinx 
c domain".
   kernel/sched/fair.c:7616: WARNING: Inline emphasis start-string without 
end-string.
   kernel/time/timer.c:1200: ERROR: Unexpected indentation.
   kernel/time/timer.c:1202: ERROR: Unexpected indentation.
   kernel/time/timer.c:1203: WARNING: Block quote ends without a blank line; 
unexpected unindent.
   include/linux/wait.h:122: WARNING: Block quote ends without a blank line; 
unexpected unindent.
   include/linux/wait.h:125: ERROR: Unexpected indentation.
   include/linux/wait.h:127: WARNING: Block quote ends without a blank line; 
unexpected unindent.
   kernel/time/hrtimer.c:990: WARNING: Block quote ends without a blank line; 
unexpected unindent.
   kernel/signal.c:322: WARNING: Inline literal start-string without end-string.
   include/linux/iio/iio.h:219: ERROR: Unexpected indentation.
   include/linux/iio/iio.h:220: WARNING: Block quote ends without a blank line; 
unexpected unindent.
   include/linux/iio/iio.h:226: WARNING: Definition list ends without a blank 
line; unexpected unindent.
   drivers/iio/industrialio-core.c:639: ERROR: Unknown target name: "iio_val".
   drivers/iio/industrialio-core.c:646: ERROR: Unknown target name: "iio_val".
   drivers/message/fusion/mptbase.c:5051: WARNING: Definition list ends without 
a blank line; unexpected unindent.
   drivers/tty/serial/serial_core.c:1898: WARNING: Definition list ends without 
a blank line; unexpected unindent.
   include/linux/regulator/driver.h:271: ERROR: Unknown target name: 
"regulator_regmap_x_voltage".
   include/linux/spi/spi.h:369: ERROR: Unexpected indentation.
   drivers/usb/core/message.c:478: ERROR: Unexpected indentation.
   drivers/usb/core/message.c:479: WARNING: Block quote ends without a blank 
line; unexpected unindent.
   Documentation/driver-api/usb.rst:623: ERROR: Unknown target name: "usb_type".
   Documentation/driver-api/usb.rst:623: ERROR: Unknown target name: "usb_dir".
   Documentation/driver-api/usb.rst:623: ERROR: Unknown target name: 
"usb_recip".
   Documentation/driver-api/usb.rst:689: ERROR: Unknown target name: 
"usbdevfs_urb_type".
   sound/soc/soc-core.c:2670: ERROR: Unknown target name: "snd_soc_daifmt".
   sound/core/jack.c:312: ERROR: Unknown target name: "snd_jack_btn".
   WARNING: dvipng command 'dvipng' cannot be run (needed for math display), 
check the imgmath_dvipng setting

vim +/file_private +75 drivers/gpu/drm/drm_syncobj.c

    69   */
    70  int drm_syncobj_swap_fences(struct drm_file *file_private,
    71                              uint32_t handle,
    72                              struct dma_fence *fence,
    73                              struct dma_fence **old_fence)
    74  {
  > 75          struct sync_file *sync_file = 
drm_syncobj_file_lookup(file_private, handle);
    76  
    77          if (!sync_file)
    78                  return -EINVAL;
    79  
    80          *old_fence = sync_file_replace_fence(sync_file, fence);
    81          if (*old_fence)
    82                  return -EINVAL;
    83          return 0;
    84  }
    85  EXPORT_SYMBOL(drm_syncobj_swap_fences);
    86  
    87  /**
    88   * drm_syncobj_replace_fence - lookup and replace fence in a sync 
object.
    89   * @file_private - drm file private pointer.
    90   * @handle - syncobj handle to lookup
    91   * @fence - fence to install in sync file.
    92   * Returns: 0 on success or -EINVAL on error
    93   *
    94   * This looks up a sync object and replaces the fence on it, freeing
    95   * the old one.
    96   */
    97  int drm_syncobj_replace_fence(struct drm_file *file_private,
    98                                u32 handle,
    99                                struct dma_fence *fence)
   100  {
   101          struct dma_fence *old_fence;
   102          int r;
   103  
   104          r = drm_syncobj_swap_fences(file_private, handle, fence, 
&old_fence);
   105          if (r)
   106                  return r;
   107          dma_fence_put(old_fence);
   108          return 0;
   109  }
   110  EXPORT_SYMBOL(drm_syncobj_replace_fence);
   111  
   112  static int drm_syncobj_create(struct drm_file *file_private,
   113                                    unsigned type,
   114                                    unsigned flags, u32 *handle)
   115  {
   116          struct sync_file *sync_file = sync_file_alloc();
   117          int ret;
   118  
   119          idr_preload(GFP_KERNEL);
   120          spin_lock(&file_private->syncobj_table_lock);
   121          ret = idr_alloc(&file_private->syncobj_idr, sync_file, 1, 0, 
GFP_NOWAIT);
   122          spin_unlock(&file_private->syncobj_table_lock);
   123  
   124          idr_preload_end();
   125  
   126          if (ret < 0)
   127                  return ret;
   128  
   129          *handle = ret;
   130          return 0;
   131  }
   132  
   133  static void drm_syncobj_destroy(struct drm_file *file_private,
   134                                  u32 handle)
   135  {
   136          struct sync_file *sync_file = 
drm_syncobj_file_lookup(file_private, handle);
   137          if (!sync_file)
   138                  return;
   139  
   140          spin_lock(&file_private->syncobj_table_lock);
   141          idr_remove(&file_private->syncobj_idr, handle);
   142          spin_unlock(&file_private->syncobj_table_lock);
   143  
   144          fput(sync_file->file);
   145  }
   146  
   147  static int drm_syncobj_handle_to_fd(struct drm_file *file_private,
   148                                      u32 handle, int *fd)
   149  {
   150          struct sync_file *sync_file = 
drm_syncobj_file_lookup(file_private, handle);
   151          int ret;
   152          if (!sync_file)
   153                  return -EINVAL;
   154  
   155          ret = get_unused_fd_flags(O_CLOEXEC);
   156          if (ret < 0)
   157                  return ret;
   158          fd_install(ret, sync_file->file);
   159          *fd = ret;
   160          return 0;
   161  }
   162  
   163  static int drm_syncobj_fd_to_handle(struct drm_file *file_private,
   164                                      int fd, u32 *handle)
   165  {
   166          struct sync_file *sync_file = sync_file_fdget(fd);
   167          int ret;
   168          if (!sync_file)
   169                  return -EINVAL;
   170          idr_preload(GFP_KERNEL);
   171          spin_lock(&file_private->syncobj_table_lock);
   172          ret = idr_alloc(&file_private->syncobj_idr, sync_file, 1, 0, 
GFP_NOWAIT);
   173          spin_unlock(&file_private->syncobj_table_lock);
   174          idr_preload_end();
   175  
   176          if (ret < 0) {
   177                  fput(sync_file->file);
   178                  return ret;
   179          }
   180          *handle = ret;
   181          return 0;
   182  }
   183  
   184  /**
   185   * drm_syncobj_open - initalizes syncobj file-private structures at 
devnode open time
   186   * @dev: drm_device which is being opened by userspace
   187   * @file_private: drm file-private structure to set up
   188   *
   189   * Called at device open time, sets up the structure for handling 
refcounting
   190   * of sync objects.
   191   */
   192  void
   193  drm_syncobj_open(struct drm_file *file_private)
   194  {
 > 195          idr_init(&file_private->syncobj_idr);
   196          spin_lock_init(&file_private->syncobj_table_lock);
   197  }
   198  
   199  static int
   200  drm_syncobj_release_handle(int id, void *ptr, void *data)
   201  {
   202          struct sync_file *sync_file = ptr;
   203  
   204          fput(sync_file->file);
   205          return 0;
   206  }
   207  
   208  /**
   209   * drm_syncobj_release - release file-private sync object resources
   210   * @dev: drm_device which is being closed by userspace
   211   * @file_private: drm file-private structure to clean up
   212   *
   213   * Called at close time when the filp is going away.
   214   *
   215   * Releases any remaining references on objects by this filp.
   216   */
   217  void
   218  drm_syncobj_release(struct drm_file *file_private)
   219  {
 > 220          idr_for_each(&file_private->syncobj_idr,
   221                       &drm_syncobj_release_handle, file_private);
   222          idr_destroy(&file_private->syncobj_idr);
   223  }

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Attachment: .config.gz
Description: application/gzip

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to