sna: Check results from syscalls

Reported-by: Zdenek Kabelac <zkabelac@redhat.com>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
This commit is contained in:
Chris Wilson 2012-06-19 15:34:09 +01:00
parent 06634604ab
commit 2dc93b2a6c
4 changed files with 24 additions and 7 deletions

View File

@ -753,7 +753,10 @@ I830HandleUEvents(int fd, void *closure)
return;
udev_devnum = udev_device_get_devnum(dev);
fstat(intel->drmSubFD, &s);
if (fstat(intel->drmSubFD, &s)) {
udev_device_unref(dev);
return;
}
/*
* Check to make sure this event is directed at our
* device (by comparing dev_t values), then make

View File

@ -567,7 +567,8 @@ static int gem_param(struct kgem *kgem, int name)
VG_CLEAR(gp);
gp.param = name;
gp.value = &v;
drmIoctl(kgem->fd, DRM_IOCTL_I915_GETPARAM, &gp);
if (drmIoctl(kgem->fd, DRM_IOCTL_I915_GETPARAM, &gp))
return -1;
VG(VALGRIND_MAKE_MEM_DEFINED(&v, sizeof(v)));
return v;
@ -2129,7 +2130,9 @@ void kgem_cleanup_cache(struct kgem *kgem)
set_domain.handle = rq->bo->handle;
set_domain.read_domains = I915_GEM_DOMAIN_GTT;
set_domain.write_domain = I915_GEM_DOMAIN_GTT;
drmIoctl(kgem->fd, DRM_IOCTL_I915_GEM_SET_DOMAIN, &set_domain);
(void)drmIoctl(kgem->fd,
DRM_IOCTL_I915_GEM_SET_DOMAIN,
&set_domain);
}
kgem_retire(kgem);

View File

@ -353,7 +353,7 @@ static int sna_open_drm_master(ScrnInfoPtr scrn)
/* make the fd nonblocking to handle event loops */
flags = fcntl(fd, F_GETFL, 0);
if (flags != -1)
fcntl(fd, F_SETFL, flags | O_NONBLOCK);
(void)fcntl(fd, F_SETFL, flags | O_NONBLOCK);
dev->fd = fd;
dev->open_count = 1;
@ -392,10 +392,14 @@ static bool has_pageflipping(struct sna *sna)
if (sna->flags & SNA_NO_WAIT)
return false;
v = 0;
VG_CLEAR(gp);
gp.param = I915_PARAM_HAS_PAGEFLIPPING;
gp.value = &v;
drmIoctl(sna->kgem.fd, DRM_IOCTL_I915_GETPARAM, &gp);
if (drmIoctl(sna->kgem.fd, DRM_IOCTL_I915_GETPARAM, &gp))
return false;
VG(VALGRIND_MAKE_MEM_DEFINED(&v, sizeof(v)));
return v > 0;
@ -625,7 +629,11 @@ sna_handle_uevents(int fd, void *closure)
return;
udev_devnum = udev_device_get_devnum(dev);
fstat(sna->kgem.fd, &s);
if (fstat(sna->kgem.fd, &s)) {
udev_device_unref(dev);
return;
}
/*
* Check to make sure this event is directed at our
* device (by comparing dev_t values), then make

View File

@ -148,7 +148,10 @@ static void sna_video_overlay_off(struct sna *sna)
request.flags = 0;
drmIoctl(sna->kgem.fd, DRM_IOCTL_I915_OVERLAY_PUT_IMAGE, &request);
/* Not much we can do if the hardware dies before we turn it off! */
(void)drmIoctl(sna->kgem.fd,
DRM_IOCTL_I915_OVERLAY_PUT_IMAGE,
&request);
}
static void sna_video_overlay_stop(ScrnInfoPtr scrn,