diff --git a/repos/libports/src/lib/libdrm/ioctl_iris.cc b/repos/libports/src/lib/libdrm/ioctl_iris.cc index 169ec3ff7e..bb96d0d1c5 100644 --- a/repos/libports/src/lib/libdrm/ioctl_iris.cc +++ b/repos/libports/src/lib/libdrm/ioctl_iris.cc @@ -1247,6 +1247,21 @@ class Drm_call Genode::warning("syncobject 0 not reserved"); } + ~Drm_call() + { + while(_buffer_space.apply_any([&] (Buffer &buffer) { + _free_buffer(buffer.id()); + })); + + while (_context_space.apply_any([&] (Drm::Context &context) { + Libc::close(context.fd()); + destroy(_heap, &context); + })); + + while (_sync_objects.apply_any([&] (Sync_obj &obj) { + destroy(_heap, &obj); })); + } + int lseek(int fd, off_t offset, int whence) { if (fd != prime_fd || offset || whence != SEEK_END)