All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: kbuild@lists.01.org
Subject: Re: [PATCH 1/5] drm: Define DRM_FORMAT_MAX_PLANES
Date: Fri, 16 Jul 2021 07:17:53 +0800	[thread overview]
Message-ID: <202107160729.dsfkD3VR-lkp@intel.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 8379 bytes --]

CC: kbuild-all(a)lists.01.org
In-Reply-To: <20210715180133.3675-2-tzimmermann@suse.de>
References: <20210715180133.3675-2-tzimmermann@suse.de>
TO: Thomas Zimmermann <tzimmermann@suse.de>
TO: maarten.lankhorst(a)linux.intel.com
TO: mripard(a)kernel.org
TO: airlied(a)linux.ie
TO: daniel(a)ffwll.ch
TO: noralf(a)tronnes.org
TO: rodrigosiqueiramelo(a)gmail.com
TO: melissa.srw(a)gmail.com
TO: hamohammed.sa(a)gmail.com
CC: Thomas Zimmermann <tzimmermann@suse.de>
CC: dri-devel(a)lists.freedesktop.org

Hi Thomas,

I love your patch! Perhaps something to improve:

[auto build test WARNING on 4d00e2309398147acdbfefbe1deb4b0e78868466]

url:    https://github.com/0day-ci/linux/commits/Thomas-Zimmermann/drm-Provide-framebuffer-vmap-helpers/20210716-020508
base:   4d00e2309398147acdbfefbe1deb4b0e78868466
:::::: branch date: 5 hours ago
:::::: commit date: 5 hours ago
compiler: hppa-linux-gcc (GCC) 10.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>


cppcheck possible warnings: (new ones prefixed by >>, may not real problems)

>> drivers/gpu/drm/drm_gem_framebuffer_helper.c:192:14: warning: Unsigned variable 'i' can't be negative so it is unnecessary to test it. [unsignedPositive]
    for (i--; i >= 0; i--)
                ^

vim +192 drivers/gpu/drm/drm_gem_framebuffer_helper.c

4c3dbb2c312c9f Noralf Trønnes        2017-08-13  119  
4c3dbb2c312c9f Noralf Trønnes        2017-08-13  120  /**
f2b816d78a9431 Andrzej Pietrasiewicz 2020-03-11  121   * drm_gem_fb_init_with_funcs() - Helper function for implementing
4c3dbb2c312c9f Noralf Trønnes        2017-08-13  122   *				  &drm_mode_config_funcs.fb_create
f2b816d78a9431 Andrzej Pietrasiewicz 2020-03-11  123   *				  callback in cases when the driver
f2b816d78a9431 Andrzej Pietrasiewicz 2020-03-11  124   *				  allocates a subclass of
f2b816d78a9431 Andrzej Pietrasiewicz 2020-03-11  125   *				  struct drm_framebuffer
4c3dbb2c312c9f Noralf Trønnes        2017-08-13  126   * @dev: DRM device
f2b816d78a9431 Andrzej Pietrasiewicz 2020-03-11  127   * @fb: framebuffer object
2e187b2099034a Noralf Trønnes        2017-09-22  128   * @file: DRM file that holds the GEM handle(s) backing the framebuffer
2e187b2099034a Noralf Trønnes        2017-09-22  129   * @mode_cmd: Metadata from the userspace framebuffer creation request
4c3dbb2c312c9f Noralf Trønnes        2017-08-13  130   * @funcs: vtable to be used for the new framebuffer object
4c3dbb2c312c9f Noralf Trønnes        2017-08-13  131   *
dbd62e16fd53d3 Noralf Trønnes        2019-01-15  132   * This function can be used to set &drm_framebuffer_funcs for drivers that need
dbd62e16fd53d3 Noralf Trønnes        2019-01-15  133   * custom framebuffer callbacks. Use drm_gem_fb_create() if you don't need to
dbd62e16fd53d3 Noralf Trønnes        2019-01-15  134   * change &drm_framebuffer_funcs. The function does buffer size validation.
f2b816d78a9431 Andrzej Pietrasiewicz 2020-03-11  135   * The buffer size validation is for a general case, though, so users should
f2b816d78a9431 Andrzej Pietrasiewicz 2020-03-11  136   * pay attention to the checks being appropriate for them or, at least,
f2b816d78a9431 Andrzej Pietrasiewicz 2020-03-11  137   * non-conflicting.
2e187b2099034a Noralf Trønnes        2017-09-22  138   *
2e187b2099034a Noralf Trønnes        2017-09-22  139   * Returns:
f2b816d78a9431 Andrzej Pietrasiewicz 2020-03-11  140   * Zero or a negative error code.
4c3dbb2c312c9f Noralf Trønnes        2017-08-13  141   */
f2b816d78a9431 Andrzej Pietrasiewicz 2020-03-11  142  int drm_gem_fb_init_with_funcs(struct drm_device *dev,
f2b816d78a9431 Andrzej Pietrasiewicz 2020-03-11  143  			       struct drm_framebuffer *fb,
f2b816d78a9431 Andrzej Pietrasiewicz 2020-03-11  144  			       struct drm_file *file,
4c3dbb2c312c9f Noralf Trønnes        2017-08-13  145  			       const struct drm_mode_fb_cmd2 *mode_cmd,
4c3dbb2c312c9f Noralf Trønnes        2017-08-13  146  			       const struct drm_framebuffer_funcs *funcs)
4c3dbb2c312c9f Noralf Trønnes        2017-08-13  147  {
4c3dbb2c312c9f Noralf Trønnes        2017-08-13  148  	const struct drm_format_info *info;
6065e7036e073e Thomas Zimmermann     2021-07-15  149  	struct drm_gem_object *objs[DRM_FORMAT_MAX_PLANES];
6065e7036e073e Thomas Zimmermann     2021-07-15  150  	unsigned int i;
6065e7036e073e Thomas Zimmermann     2021-07-15  151  	int ret;
4c3dbb2c312c9f Noralf Trønnes        2017-08-13  152  
4c3dbb2c312c9f Noralf Trønnes        2017-08-13  153  	info = drm_get_format_info(dev, mode_cmd);
f7f525030854b1 Simon Ser             2021-05-03  154  	if (!info) {
f7f525030854b1 Simon Ser             2021-05-03  155  		drm_dbg_kms(dev, "Failed to get FB format info\n");
f2b816d78a9431 Andrzej Pietrasiewicz 2020-03-11  156  		return -EINVAL;
f7f525030854b1 Simon Ser             2021-05-03  157  	}
4c3dbb2c312c9f Noralf Trønnes        2017-08-13  158  
4c3dbb2c312c9f Noralf Trønnes        2017-08-13  159  	for (i = 0; i < info->num_planes; i++) {
4c3dbb2c312c9f Noralf Trønnes        2017-08-13  160  		unsigned int width = mode_cmd->width / (i ? info->hsub : 1);
4c3dbb2c312c9f Noralf Trønnes        2017-08-13  161  		unsigned int height = mode_cmd->height / (i ? info->vsub : 1);
4c3dbb2c312c9f Noralf Trønnes        2017-08-13  162  		unsigned int min_size;
4c3dbb2c312c9f Noralf Trønnes        2017-08-13  163  
4c3dbb2c312c9f Noralf Trønnes        2017-08-13  164  		objs[i] = drm_gem_object_lookup(file, mode_cmd->handles[i]);
4c3dbb2c312c9f Noralf Trønnes        2017-08-13  165  		if (!objs[i]) {
24f03be4aa7922 Jani Nikula           2019-12-10  166  			drm_dbg_kms(dev, "Failed to lookup GEM object\n");
4c3dbb2c312c9f Noralf Trønnes        2017-08-13  167  			ret = -ENOENT;
4c3dbb2c312c9f Noralf Trønnes        2017-08-13  168  			goto err_gem_object_put;
4c3dbb2c312c9f Noralf Trønnes        2017-08-13  169  		}
4c3dbb2c312c9f Noralf Trønnes        2017-08-13  170  
4c3dbb2c312c9f Noralf Trønnes        2017-08-13  171  		min_size = (height - 1) * mode_cmd->pitches[i]
042bf753842ddb Alexandru Gheorghe    2018-11-01  172  			 + drm_format_info_min_pitch(info, i, width)
4c3dbb2c312c9f Noralf Trønnes        2017-08-13  173  			 + mode_cmd->offsets[i];
4c3dbb2c312c9f Noralf Trønnes        2017-08-13  174  
4c3dbb2c312c9f Noralf Trønnes        2017-08-13  175  		if (objs[i]->size < min_size) {
f7f525030854b1 Simon Ser             2021-05-03  176  			drm_dbg_kms(dev,
f7f525030854b1 Simon Ser             2021-05-03  177  				    "GEM object size (%zu) smaller than minimum size (%u) for plane %d\n",
f7f525030854b1 Simon Ser             2021-05-03  178  				    objs[i]->size, min_size, i);
be6ee102341bc4 Emil Velikov          2020-05-15  179  			drm_gem_object_put(objs[i]);
4c3dbb2c312c9f Noralf Trønnes        2017-08-13  180  			ret = -EINVAL;
4c3dbb2c312c9f Noralf Trønnes        2017-08-13  181  			goto err_gem_object_put;
4c3dbb2c312c9f Noralf Trønnes        2017-08-13  182  		}
4c3dbb2c312c9f Noralf Trønnes        2017-08-13  183  	}
4c3dbb2c312c9f Noralf Trønnes        2017-08-13  184  
f2b816d78a9431 Andrzej Pietrasiewicz 2020-03-11  185  	ret = drm_gem_fb_init(dev, fb, mode_cmd, objs, i, funcs);
f2b816d78a9431 Andrzej Pietrasiewicz 2020-03-11  186  	if (ret)
4c3dbb2c312c9f Noralf Trønnes        2017-08-13  187  		goto err_gem_object_put;
4c3dbb2c312c9f Noralf Trønnes        2017-08-13  188  
f2b816d78a9431 Andrzej Pietrasiewicz 2020-03-11  189  	return 0;
4c3dbb2c312c9f Noralf Trønnes        2017-08-13  190  
4c3dbb2c312c9f Noralf Trønnes        2017-08-13  191  err_gem_object_put:
4c3dbb2c312c9f Noralf Trønnes        2017-08-13 @192  	for (i--; i >= 0; i--)
be6ee102341bc4 Emil Velikov          2020-05-15  193  		drm_gem_object_put(objs[i]);
4c3dbb2c312c9f Noralf Trønnes        2017-08-13  194  
f2b816d78a9431 Andrzej Pietrasiewicz 2020-03-11  195  	return ret;
f2b816d78a9431 Andrzej Pietrasiewicz 2020-03-11  196  }
f2b816d78a9431 Andrzej Pietrasiewicz 2020-03-11  197  EXPORT_SYMBOL_GPL(drm_gem_fb_init_with_funcs);
f2b816d78a9431 Andrzej Pietrasiewicz 2020-03-11  198  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

             reply	other threads:[~2021-07-15 23:17 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-07-15 23:17 kernel test robot [this message]
2021-07-16  9:03 ` [PATCH 1/5] drm: Define DRM_FORMAT_MAX_PLANES kernel test robot
2021-07-16  9:03   ` kernel test robot
  -- strict thread matches above, loose matches on Subject: below --
2021-07-15 18:01 [PATCH 0/5] drm: Provide framebuffer vmap helpers Thomas Zimmermann
2021-07-15 18:01 ` [PATCH 1/5] drm: Define DRM_FORMAT_MAX_PLANES Thomas Zimmermann
2021-07-16  7:30   ` Maxime Ripard
2021-07-16  8:50     ` Thomas Zimmermann
2021-07-18 13:23   ` kernel test robot
2021-07-18 13:23     ` kernel test robot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202107160729.dsfkD3VR-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=kbuild@lists.01.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.