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