asahi: don't leak drm version

valgrind.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31908>
This commit is contained in:
Alyssa Rosenzweig
2024-10-28 17:57:19 -04:00
parent 9ce092c982
commit b3ef0f5aa8

View File

@@ -402,26 +402,31 @@ agx_open_device(void *memctx, struct agx_device *dev)
dev->ops = agx_device_drm_ops;
ssize_t params_size = -1;
drmVersionPtr version;
version = drmGetVersion(dev->fd);
if (!version) {
fprintf(stderr, "cannot get version: %s", strerror(errno));
return NULL;
}
/* DRM version check */
{
drmVersionPtr version = drmGetVersion(dev->fd);
if (!version) {
fprintf(stderr, "cannot get version: %s", strerror(errno));
return NULL;
}
if (!strcmp(version->name, "asahi")) {
dev->is_virtio = false;
dev->ops = agx_device_drm_ops;
} else if (!strcmp(version->name, "virtio_gpu")) {
dev->is_virtio = true;
if (!agx_virtio_open_device(dev)) {
fprintf(stderr,
"Error opening virtio-gpu device for Asahi native context\n");
if (!strcmp(version->name, "asahi")) {
dev->is_virtio = false;
dev->ops = agx_device_drm_ops;
} else if (!strcmp(version->name, "virtio_gpu")) {
dev->is_virtio = true;
if (!agx_virtio_open_device(dev)) {
fprintf(
stderr,
"Error opening virtio-gpu device for Asahi native context\n");
return false;
}
} else {
return false;
}
} else {
return false;
drmFreeVersion(version);
}
params_size = dev->ops.get_params(dev, &dev->params, sizeof(dev->params));