[PATCH 05/34] drm: kselftest for drm_mm_init()
Joonas Lahtinen
joonas.lahtinen at linux.intel.com
Tue Dec 13 10:16:20 UTC 2016
On ma, 2016-12-12 at 11:53 +0000, Chris Wilson wrote:
> Simple first test to just exercise initialisation of struct drm_mm.
>
> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
<SNIP>
> + drm_mm_for_each_hole(hole, &mm, start, end) {
> + if (start != 0 || end != 4096) {
> + pr_err("empty mm has incorrect hole, found (%llx, %llx), expect (%llx, %llx)\n",
> + start, end,
> + 0ull, 4096ull);
> + goto out;
> + }
> + }
While in paranoia mode, make sure there is just one hole?
> +
> > + memset(&tmp, 0, sizeof(tmp));
> > + tmp.start = 0;
> > + tmp.size = 4096;
> > + ret = drm_mm_reserve_node(&mm, &tmp);
> > + if (ret) {
> > + pr_err("failed to reserve whole drm_mm\n");
> > + goto out;
> + }
Should be no more holes.
drm_mm_for_each_hole() {
pr_err();
goto out;
}
> + drm_mm_remove_node(&tmp);
> +
And it should again have a hole.
<SNIP>
> +static int igt_debug(void *ignored)
> +{
> + struct drm_mm mm;
> + struct drm_mm_node nodes[2];
> + int ret;
> +
> + drm_mm_init(&mm, 0, 4096);
> +
> + memset(nodes, 0, sizeof(nodes));
> + nodes[0].start = 512;
> + nodes[0].size = 1024;
> + ret = drm_mm_reserve_node(&mm, &nodes[0]);
> + if (ret) {
> + pr_err("failed to reserve node[0] {start=%lld, size=%lld)\n",
> + nodes[0].start, nodes[0].size);
> + return ret;
> + }
> +
> + nodes[1].start = 512 - 1024 - 512;
Would be more clear if you used nodes[0].start. This also goes to
negative address which proves my point.
Regards, Joonas
--
Joonas Lahtinen
Open Source Technology Center
Intel Corporation
More information about the dri-devel
mailing list