[rcu:dev.2019.04.28a 85/85] htmldocs: kernel/rcu/sync.c:74: warning: Function parameter or member 'rcu' not described in 'rcu_sync_func'

From: kbuild test robot
Date: Fri May 03 2019 - 03:00:08 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git dev.2019.04.28a
head: a4e0e069df6e8718bf165fb009cd3a23e7a808a3
commit: a4e0e069df6e8718bf165fb009cd3a23e7a808a3 [85/85] rcu/sync: Simplify the state machine
reproduce: make htmldocs

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@xxxxxxxxx>

All warnings (new ones prefixed by >>):

WARNING: convert(1) not found, for SVG to PDF conversion install ImageMagick (https://www.imagemagick.org)
include/linux/generic-radix-tree.h:1: warning: no structured comments found
kernel/rcu/tree_plugin.h:1: warning: no structured comments found
>> kernel/rcu/sync.c:74: warning: Function parameter or member 'rcu' not described in 'rcu_sync_func'
kernel/rcu/sync.c:74: warning: Excess function parameter 'rhp' description in 'rcu_sync_func'
kernel/rcu/tree_plugin.h:1: warning: no structured comments found
include/linux/firmware/intel/stratix10-svc-client.h:1: warning: no structured comments found
include/linux/gpio/driver.h:371: warning: Function parameter or member 'init_valid_mask' not described in 'gpio_chip'
include/linux/i2c.h:343: warning: Function parameter or member 'init_irq' not described in 'i2c_client'
include/linux/iio/hw-consumer.h:1: warning: no structured comments found
include/linux/input/sparse-keymap.h:46: warning: Function parameter or member 'sw' not described in 'key_entry'
include/linux/regulator/machine.h:199: warning: Function parameter or member 'max_uV_step' not described in 'regulation_constraints'
include/linux/regulator/driver.h:228: warning: Function parameter or member 'resume' not described in 'regulator_ops'
drivers/slimbus/stream.c:1: warning: no structured comments found
include/linux/spi/spi.h:188: warning: Function parameter or member 'driver_override' not described in 'spi_device'
drivers/target/target_core_device.c:1: warning: no structured comments found
drivers/usb/typec/bus.c:1: warning: no structured comments found
drivers/usb/typec/class.c:1: warning: no structured comments found
include/linux/w1.h:281: warning: Function parameter or member 'of_match_table' not described in 'w1_family'
fs/direct-io.c:257: warning: Excess function parameter 'offset' description in 'dio_complete'
fs/file_table.c:1: warning: no structured comments found
fs/libfs.c:477: warning: Excess function parameter 'available' description in 'simple_write_end'
fs/posix_acl.c:646: warning: Function parameter or member 'inode' not described in 'posix_acl_update_mode'
fs/posix_acl.c:646: warning: Function parameter or member 'mode_p' not described in 'posix_acl_update_mode'
fs/posix_acl.c:646: warning: Function parameter or member 'acl' not described in 'posix_acl_update_mode'
drivers/gpu/drm/amd/amdgpu/amdgpu_mn.c:294: warning: Excess function parameter 'mm' description in 'amdgpu_mn_invalidate_range_start_hsa'
drivers/gpu/drm/amd/amdgpu/amdgpu_mn.c:294: warning: Excess function parameter 'start' description in 'amdgpu_mn_invalidate_range_start_hsa'
drivers/gpu/drm/amd/amdgpu/amdgpu_mn.c:294: warning: Excess function parameter 'end' description in 'amdgpu_mn_invalidate_range_start_hsa'
drivers/gpu/drm/amd/amdgpu/amdgpu_mn.c:343: warning: Excess function parameter 'mm' description in 'amdgpu_mn_invalidate_range_end'
drivers/gpu/drm/amd/amdgpu/amdgpu_mn.c:343: warning: Excess function parameter 'start' description in 'amdgpu_mn_invalidate_range_end'
drivers/gpu/drm/amd/amdgpu/amdgpu_mn.c:343: warning: Excess function parameter 'end' description in 'amdgpu_mn_invalidate_range_end'
drivers/gpu/drm/amd/amdgpu/amdgpu_mn.c:183: warning: Function parameter or member 'blockable' not described in 'amdgpu_mn_read_lock'
drivers/gpu/drm/amd/amdgpu/amdgpu_mn.c:295: warning: Function parameter or member 'range' not described in 'amdgpu_mn_invalidate_range_start_hsa'
drivers/gpu/drm/amd/amdgpu/amdgpu_mn.c:295: warning: Excess function parameter 'mm' description in 'amdgpu_mn_invalidate_range_start_hsa'
drivers/gpu/drm/amd/amdgpu/amdgpu_mn.c:295: warning: Excess function parameter 'start' description in 'amdgpu_mn_invalidate_range_start_hsa'
drivers/gpu/drm/amd/amdgpu/amdgpu_mn.c:295: warning: Excess function parameter 'end' description in 'amdgpu_mn_invalidate_range_start_hsa'
drivers/gpu/drm/amd/amdgpu/amdgpu_mn.c:344: warning: Function parameter or member 'range' not described in 'amdgpu_mn_invalidate_range_end'
drivers/gpu/drm/amd/amdgpu/amdgpu_mn.c:344: warning: Excess function parameter 'mm' description in 'amdgpu_mn_invalidate_range_end'
drivers/gpu/drm/amd/amdgpu/amdgpu_mn.c:344: warning: Excess function parameter 'start' description in 'amdgpu_mn_invalidate_range_end'
drivers/gpu/drm/amd/amdgpu/amdgpu_mn.c:344: warning: Excess function parameter 'end' description in 'amdgpu_mn_invalidate_range_end'
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:374: warning: cannot understand function prototype: 'struct amdgpu_vm_pt_cursor '
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:375: warning: cannot understand function prototype: 'struct amdgpu_vm_pt_cursor '
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:547: warning: Function parameter or member 'adev' not described in 'for_each_amdgpu_vm_pt_leaf'
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:547: warning: Function parameter or member 'vm' not described in 'for_each_amdgpu_vm_pt_leaf'
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:547: warning: Function parameter or member 'start' not described in 'for_each_amdgpu_vm_pt_leaf'
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:547: warning: Function parameter or member 'end' not described in 'for_each_amdgpu_vm_pt_leaf'
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:547: warning: Function parameter or member 'cursor' not described in 'for_each_amdgpu_vm_pt_leaf'
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:595: warning: Function parameter or member 'adev' not described in 'for_each_amdgpu_vm_pt_dfs_safe'
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:595: warning: Function parameter or member 'vm' not described in 'for_each_amdgpu_vm_pt_dfs_safe'
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:595: warning: Function parameter or member 'cursor' not described in 'for_each_amdgpu_vm_pt_dfs_safe'
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:595: warning: Function parameter or member 'entry' not described in 'for_each_amdgpu_vm_pt_dfs_safe'
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:866: warning: Function parameter or member 'level' not described in 'amdgpu_vm_bo_param'
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:1346: warning: Function parameter or member 'params' not described in 'amdgpu_vm_update_func'
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:1346: warning: Function parameter or member 'bo' not described in 'amdgpu_vm_update_func'
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:1346: warning: Function parameter or member 'pe' not described in 'amdgpu_vm_update_func'
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:1346: warning: Function parameter or member 'addr' not described in 'amdgpu_vm_update_func'
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:1346: warning: Function parameter or member 'count' not described in 'amdgpu_vm_update_func'
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:1346: warning: Function parameter or member 'incr' not described in 'amdgpu_vm_update_func'
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:1346: warning: Function parameter or member 'flags' not described in 'amdgpu_vm_update_func'
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:1514: warning: Function parameter or member 'params' not described in 'amdgpu_vm_update_flags'
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:1514: warning: Function parameter or member 'bo' not described in 'amdgpu_vm_update_flags'
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:1514: warning: Function parameter or member 'level' not described in 'amdgpu_vm_update_flags'
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:1514: warning: Function parameter or member 'pe' not described in 'amdgpu_vm_update_flags'
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:1514: warning: Function parameter or member 'addr' not described in 'amdgpu_vm_update_flags'
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:1514: warning: Function parameter or member 'count' not described in 'amdgpu_vm_update_flags'
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:1514: warning: Function parameter or member 'incr' not described in 'amdgpu_vm_update_flags'
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:1514: warning: Function parameter or member 'flags' not described in 'amdgpu_vm_update_flags'
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:3105: warning: Function parameter or member 'pasid' not described in 'amdgpu_vm_make_compute'
drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c:375: warning: Excess function parameter 'entry' description in 'amdgpu_irq_dispatch'
drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c:376: warning: Function parameter or member 'ih' not described in 'amdgpu_irq_dispatch'
drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c:376: warning: Excess function parameter 'entry' description in 'amdgpu_irq_dispatch'
drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c:1: warning: no structured comments found
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h:128: warning: Incorrect use of kernel-doc format: Documentation Makefile include scripts source @atomic_obj
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h:203: warning: Function parameter or member 'atomic_obj' not described in 'amdgpu_display_manager'
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h:203: warning: Function parameter or member 'atomic_obj_lock' not described in 'amdgpu_display_manager'
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h:203: warning: Function parameter or member 'backlight_link' not described in 'amdgpu_display_manager'
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h:203: warning: Function parameter or member 'backlight_caps' not described in 'amdgpu_display_manager'
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h:203: warning: Function parameter or member 'freesync_module' not described in 'amdgpu_display_manager'
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h:203: warning: Function parameter or member 'fw_dmcu' not described in 'amdgpu_display_manager'
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h:203: warning: Function parameter or member 'dmcu_fw_version' not described in 'amdgpu_display_manager'
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c:1: warning: no structured comments found
include/drm/drm_drv.h:715: warning: Function parameter or member 'gem_prime_pin' not described in 'drm_driver'
include/drm/drm_drv.h:715: warning: Function parameter or member 'gem_prime_unpin' not described in 'drm_driver'
include/drm/drm_drv.h:715: warning: Function parameter or member 'gem_prime_res_obj' not described in 'drm_driver'
include/drm/drm_drv.h:715: warning: Function parameter or member 'gem_prime_get_sg_table' not described in 'drm_driver'
include/drm/drm_drv.h:715: warning: Function parameter or member 'gem_prime_import_sg_table' not described in 'drm_driver'
include/drm/drm_drv.h:715: warning: Function parameter or member 'gem_prime_vmap' not described in 'drm_driver'
include/drm/drm_drv.h:715: warning: Function parameter or member 'gem_prime_vunmap' not described in 'drm_driver'
include/drm/drm_drv.h:715: warning: Function parameter or member 'gem_prime_mmap' not described in 'drm_driver'
include/drm/drm_atomic_state_helper.h:1: warning: no structured comments found
drivers/gpu/drm/scheduler/sched_main.c:376: warning: Excess function parameter 'bad' description in 'drm_sched_stop'
drivers/gpu/drm/scheduler/sched_main.c:377: warning: Excess function parameter 'bad' description in 'drm_sched_stop'
drivers/gpu/drm/scheduler/sched_main.c:420: warning: Function parameter or member 'full_recovery' not described in 'drm_sched_start'
drivers/gpu/drm/i915/i915_vma.h:50: warning: cannot understand function prototype: 'struct i915_vma '
drivers/gpu/drm/i915/i915_vma.h:1: warning: no structured comments found
drivers/gpu/drm/i915/intel_guc_fwif.h:536: warning: cannot understand function prototype: 'struct guc_log_buffer_state '
drivers/gpu/drm/i915/i915_trace.h:1: warning: no structured comments found
drivers/gpu/drm/arm/display/komeda/komeda_pipeline.h:126: warning: Function parameter or member 'hw_id' not described in 'komeda_component'
drivers/gpu/drm/arm/display/komeda/komeda_pipeline.h:126: warning: Function parameter or member 'max_active_outputs' not described in 'komeda_component'
drivers/gpu/drm/arm/display/komeda/komeda_pipeline.h:126: warning: Function parameter or member 'supported_outputs' not described in 'komeda_component'
drivers/gpu/drm/arm/display/komeda/komeda_pipeline.h:142: warning: Function parameter or member 'output_port' not described in 'komeda_component_output'
drivers/gpu/drm/arm/display/komeda/komeda_pipeline.h:196: warning: Function parameter or member 'component' not described in 'komeda_component_state'
drivers/gpu/drm/arm/display/komeda/komeda_pipeline.h:196: warning: Function parameter or member 'crtc' not described in 'komeda_component_state'
drivers/gpu/drm/arm/display/komeda/komeda_pipeline.h:196: warning: Function parameter or member 'plane' not described in 'komeda_component_state'

vim +74 kernel/rcu/sync.c

cc44ca84 Oleg Nesterov 2015-08-21 49
cc44ca84 Oleg Nesterov 2015-08-21 50 /**
cc44ca84 Oleg Nesterov 2015-08-21 51 * rcu_sync_func() - Callback function managing reader access to fastpath
27fdb35f Paul E. McKenney 2017-10-19 52 * @rhp: Pointer to rcu_head in rcu_sync structure to use for synchronization
cc44ca84 Oleg Nesterov 2015-08-21 53 *
a4e0e069 Oleg Nesterov 2019-04-25 54 * This function is passed to call_rcu() function by rcu_sync_enter() and
cc44ca84 Oleg Nesterov 2015-08-21 55 * rcu_sync_exit(), so that it is invoked after a grace period following the
a4e0e069 Oleg Nesterov 2019-04-25 56 * that invocation of enter/exit.
a4e0e069 Oleg Nesterov 2019-04-25 57 *
a4e0e069 Oleg Nesterov 2019-04-25 58 * If it is called by rcu_sync_enter() it signals that all the readers were
a4e0e069 Oleg Nesterov 2019-04-25 59 * switched onto slow path.
a4e0e069 Oleg Nesterov 2019-04-25 60 *
a4e0e069 Oleg Nesterov 2019-04-25 61 * If it is called by rcu_sync_exit() it takes action based on events that
cc44ca84 Oleg Nesterov 2015-08-21 62 * have taken place in the meantime, so that closely spaced rcu_sync_enter()
cc44ca84 Oleg Nesterov 2015-08-21 63 * and rcu_sync_exit() pairs need not wait for a grace period.
cc44ca84 Oleg Nesterov 2015-08-21 64 *
cc44ca84 Oleg Nesterov 2015-08-21 65 * If another rcu_sync_enter() is invoked before the grace period
cc44ca84 Oleg Nesterov 2015-08-21 66 * ended, reset state to allow the next rcu_sync_exit() to let the
cc44ca84 Oleg Nesterov 2015-08-21 67 * readers back onto their fastpaths (after a grace period). If both
cc44ca84 Oleg Nesterov 2015-08-21 68 * another rcu_sync_enter() and its matching rcu_sync_exit() are invoked
cc44ca84 Oleg Nesterov 2015-08-21 69 * before the grace period ended, re-invoke call_rcu() on behalf of that
cc44ca84 Oleg Nesterov 2015-08-21 70 * rcu_sync_exit(). Otherwise, set all state back to idle so that readers
cc44ca84 Oleg Nesterov 2015-08-21 71 * can again use their fastpaths.
cc44ca84 Oleg Nesterov 2015-08-21 72 */
a4e0e069 Oleg Nesterov 2019-04-25 73 static void rcu_sync_func(struct rcu_head *rcu)
cc44ca84 Oleg Nesterov 2015-08-21 @74 {
a4e0e069 Oleg Nesterov 2019-04-25 75 struct rcu_sync *rsp = container_of(rcu, struct rcu_sync, cb_head);
cc44ca84 Oleg Nesterov 2015-08-21 76 unsigned long flags;
cc44ca84 Oleg Nesterov 2015-08-21 77
a4e0e069 Oleg Nesterov 2019-04-25 78 WARN_ON_ONCE(READ_ONCE(rsp->gp_state) == GP_IDLE);
a4e0e069 Oleg Nesterov 2019-04-25 79 WARN_ON_ONCE(READ_ONCE(rsp->gp_state) == GP_PASSED);
cc44ca84 Oleg Nesterov 2015-08-21 80
cc44ca84 Oleg Nesterov 2015-08-21 81 spin_lock_irqsave(&rsp->rss_lock, flags);
cc44ca84 Oleg Nesterov 2015-08-21 82 if (rsp->gp_count) {
cc44ca84 Oleg Nesterov 2015-08-21 83 /*
a4e0e069 Oleg Nesterov 2019-04-25 84 * We're at least a GP after the GP_IDLE->GP_ENTER transition.
cc44ca84 Oleg Nesterov 2015-08-21 85 */
a4e0e069 Oleg Nesterov 2019-04-25 86 WRITE_ONCE(rsp->gp_state, GP_PASSED);
a4e0e069 Oleg Nesterov 2019-04-25 87 wake_up_locked(&rsp->gp_wait);
a4e0e069 Oleg Nesterov 2019-04-25 88 } else if (rsp->gp_state == GP_REPLAY) {
cc44ca84 Oleg Nesterov 2015-08-21 89 /*
a4e0e069 Oleg Nesterov 2019-04-25 90 * A new rcu_sync_exit() has happened; requeue the callback to
a4e0e069 Oleg Nesterov 2019-04-25 91 * catch a later GP.
cc44ca84 Oleg Nesterov 2015-08-21 92 */
a4e0e069 Oleg Nesterov 2019-04-25 93 WRITE_ONCE(rsp->gp_state, GP_EXIT);
a4e0e069 Oleg Nesterov 2019-04-25 94 rcu_sync_call(rsp);
cc44ca84 Oleg Nesterov 2015-08-21 95 } else {
cc44ca84 Oleg Nesterov 2015-08-21 96 /*
a4e0e069 Oleg Nesterov 2019-04-25 97 * We're at least a GP after the last rcu_sync_exit(); eveybody
a4e0e069 Oleg Nesterov 2019-04-25 98 * will now have observed the write side critical section.
a4e0e069 Oleg Nesterov 2019-04-25 99 * Let 'em rip!.
cc44ca84 Oleg Nesterov 2015-08-21 100 */
a4e0e069 Oleg Nesterov 2019-04-25 101 WRITE_ONCE(rsp->gp_state, GP_IDLE);
cc44ca84 Oleg Nesterov 2015-08-21 102 }
cc44ca84 Oleg Nesterov 2015-08-21 103 spin_unlock_irqrestore(&rsp->rss_lock, flags);
cc44ca84 Oleg Nesterov 2015-08-21 104 }
cc44ca84 Oleg Nesterov 2015-08-21 105

:::::: The code at line 74 was first introduced by commit
:::::: cc44ca848f5e517aeca9f5eabbe13609a3f71450 rcu: Create rcu_sync infrastructure

:::::: TO: Oleg Nesterov <oleg@xxxxxxxxxx>
:::::: CC: Paul E. McKenney <paulmck@xxxxxxxxxxxxxxxxxx>

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

Attachment: .config.gz
Description: application/gzip