dev_fd = open("/dev/xen/gntdev", O_RDWR);
if (dev_fd<=0) {
perror("Could not open /dev/xen/gntdev! Have you loaded the xen_gntdev module?");
+ close(alloc_fd);
return 1;
}
rv = ioctl(alloc_fd, IOCTL_GNTALLOC_ALLOC_GREF, gref_);
if (rv) {
pa_log_debug("Xen audio sink: src-add error: %s (rv=%d)\n", strerror(errno), rv);
- return rv;
+ goto finish;
}
/*addr=NULL(default),length, prot, flags, fd, offset*/
if (*addr == MAP_FAILED) {
*addr = 0;
pa_log_debug("Xen audio sink: mmap'ing shared page failed\n");
- return rv;
+ goto finish;
}
pa_log_debug("Xen audio sink: Got grant #%d. Mapped locally at %Ld=%p\n",
if (rv)
pa_log_debug("gntalloc unmap notify error: %s (rv=%d)\n", strerror(errno), rv);
*/
-
+finish:
close(alloc_fd);
close(dev_fd);