[Intel-gfx] [bug report] drm/i915: Initial selftests for exercising eviction

Dan Carpenter dan.carpenter at oracle.com
Tue Mar 26 05:09:31 UTC 2019


Hello Chris Wilson,

The patch f40a7b7558ef: "drm/i915: Initial selftests for exercising
eviction" from Feb 13, 2017, leads to the following static checker
warning:

	drivers/gpu/drm/i915/selftests/i915_gem_evict.c:193 igt_overcommit()
	warn: passing a valid pointer to 'PTR_ERR'

drivers/gpu/drm/i915/selftests/i915_gem_evict.c
    167 static int igt_overcommit(void *arg)
    168 {
    169 	struct drm_i915_private *i915 = arg;
    170 	struct drm_i915_gem_object *obj;
    171 	struct i915_vma *vma;
    172 	LIST_HEAD(objects);
    173 	int err;
    174 
    175 	/* Fill the GGTT with pinned objects and then try to pin one more.
    176 	 * We expect it to fail.
    177 	 */
    178 
    179 	err = populate_ggtt(i915, &objects);
    180 	if (err)
    181 		goto cleanup;
    182 
    183 	obj = i915_gem_object_create_internal(i915, I915_GTT_PAGE_SIZE);
    184 	if (IS_ERR(obj)) {
    185 		err = PTR_ERR(obj);
    186 		goto cleanup;
    187 	}
    188 
    189 	quirk_add(obj, &objects);
    190 
    191 	vma = i915_gem_object_ggtt_pin(obj, NULL, 0, 0, 0);
    192 	if (!IS_ERR(vma) || PTR_ERR(vma) != -ENOSPC) {
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
This condition doesn't make sense.  It's equivalent to:

		if (PTR_ERR(vma) != -ENOSPC) {

Maybe what was intended was:

		if (IS_ERR(vma) && PTR_ERR(vma) != -ENOSPC) {

I don't know.

--> 193 		pr_err("Failed to evict+insert, i915_gem_object_ggtt_pin returned err=%d\n", (int)PTR_ERR(vma));
    194 		err = -EINVAL;
    195 		goto cleanup;
    196 	}
    197 
    198 cleanup:
    199 	cleanup_objects(i915, &objects);
    200 	return err;
    201 }

regards,
dan carpenter


More information about the Intel-gfx mailing list