[Intel-gfx] [PATCH i-g-t] Lib: Move __gem_context_create to common ioctl wrapper library.
Chris Wilson
chris at chris-wilson.co.uk
Thu Oct 12 07:59:19 UTC 2017
Quoting Antonio Argenziano (2017-10-12 00:07:34)
> +int __gem_context_create(int fd, uint32_t *ctx_id)
> +{
> + struct drm_i915_gem_context_create create;
> + int err = 0;
> +
> + memset(&create, 0, sizeof(create));
> + if (igt_ioctl(fd, DRM_IOCTL_I915_GEM_CONTEXT_CREATE, &create) == 0)
> + *ctx_id = create.ctx_id;
> + else
> + err = -errno;
> +
> + errno = 0;
> + return err;
> +}
> +
> /**
> * gem_context_create:
> * @fd: open i915 drm file descriptor
> @@ -906,18 +921,16 @@ int gem_madvise(int fd, uint32_t handle, int state)
> */
> uint32_t gem_context_create(int fd)
> {
> - struct drm_i915_gem_context_create create;
> + uint32_t ctx_id;
> + int ret;
>
> - memset(&create, 0, sizeof(create));
> - if (igt_ioctl(fd, DRM_IOCTL_I915_GEM_CONTEXT_CREATE, &create)) {
> - int err = -errno;
> - igt_skip_on(err == -ENODEV || errno == -EINVAL);
> - igt_assert_eq(err, 0);
> - }
> - igt_assert(create.ctx_id != 0);
> - errno = 0;
> + ret = __gem_context_create(fd, &ctx_id);
> +
> + igt_skip_on(ret == -ENODEV || errno == -EINVAL);
So close and yet so far.
> + igt_assert_eq(ret, 0);
> + igt_assert(ctx_id != 0);
>
> - return create.ctx_id;
> + return ctx_id;
> }
Whilst you are here, can you remove that igt_skip_on() entirely and add
gem_require_contexts() so that we don't have the spam hiding important
details in tests.
Please also think twice before adding it outside of tests/ as the igt_()
infrastructure is snafu there.
-Chris
More information about the Intel-gfx
mailing list