tree:   git://anongit.freedesktop.org/drm/drm-misc drm-misc-next
head:   041261ac4c365e03b07427569d6735f8adfd21c8
commit: 42d6196f6a948aaecfedf72326925dcbd054f9db [2/6] drm/managed: Add 
drmm_release_action
config: x86_64-randconfig-103-20240201 
(https://download.01.org/0day-ci/archive/20240202/202402020855.4fsjr97a-...@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <l...@intel.com>
| Closes: 
https://lore.kernel.org/oe-kbuild-all/202402020855.4fsjr97a-...@intel.com/

cocci warnings: (new ones prefixed by >>)
>> drivers/gpu/drm/drm_managed.c:200:22-24: WARNING !A || A && B is equivalent 
>> to !A || B

vim +200 drivers/gpu/drm/drm_managed.c

   178  
   179  /**
   180   * drmm_release_action - release a managed action from a &drm_device
   181   * @dev: DRM device
   182   * @action: function which would be called when @dev is released
   183   * @data: opaque pointer, passed to @action
   184   *
   185   * This function calls the @action previously added by drmm_add_action()
   186   * immediately.
   187   * The @action is removed from the list of cleanup actions for @dev,
   188   * which means that it won't be called in the final drm_dev_put().
   189   */
   190  void drmm_release_action(struct drm_device *dev,
   191                           drmres_release_t action,
   192                           void *data)
   193  {
   194          struct drmres *dr_match = NULL, *dr;
   195          unsigned long flags;
   196  
   197          spin_lock_irqsave(&dev->managed.lock, flags);
   198          list_for_each_entry_reverse(dr, &dev->managed.resources, 
node.entry) {
   199                  if (dr->node.release == action) {
 > 200                          if (!data || (data && *(void **)dr->data == 
 > data)) {
   201                                  dr_match = dr;
   202                                  del_dr(dev, dr_match);
   203                                  break;
   204                          }
   205                  }
   206          }
   207          spin_unlock_irqrestore(&dev->managed.lock, flags);
   208  
   209          if (WARN_ON(!dr_match))
   210                  return;
   211  
   212          action(dev, data);
   213  
   214          free_dr(dr_match);
   215  }
   216  EXPORT_SYMBOL(drmm_release_action);
   217  

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

Reply via email to