Message ID | 1441625652-5233-1-git-send-email-thomas.wood@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Em Seg, 2015-09-07 às 12:34 +0100, Thomas Wood escreveu: > Signed-off-by: Thomas Wood <thomas.wood@intel.com> > --- > benchmarks/kms_vblank.c | 7 ++++--- > debugger/eudb.c | 4 +++- > lib/igt_aux.c | 8 ++++++-- > overlay/gpu-top.c | 4 +++- > overlay/overlay.c | 4 ++-- > tools/intel_l3_udev_listener.c | 4 ++-- > tools/intel_reg.c | 3 ++- > 7 files changed, 22 insertions(+), 12 deletions(-) > > diff --git a/benchmarks/kms_vblank.c b/benchmarks/kms_vblank.c > index f9dbe3d..3d2f977 100644 > --- a/benchmarks/kms_vblank.c > +++ b/benchmarks/kms_vblank.c > @@ -41,6 +41,7 @@ > #include <drm.h> > #include <xf86drm.h> > #include "drmtest.h" > +#include "assert.h" > > static double elapsed(const struct timespec *start, > const struct timespec *end, > @@ -89,7 +90,7 @@ static void vblank_query(int fd, int busy) > > printf("%f\n", 1e6/elapsed(&start, &end, count)); > if (busy) > - read(fd, &event, sizeof(event)); > + assert(read(fd, &event, sizeof(event)) != -1); > } > > static void vblank_event(int fd, int busy) > @@ -118,14 +119,14 @@ static void vblank_event(int fd, int busy) > vbl.request.sequence = 0; > drmIoctl(fd, DRM_IOCTL_WAIT_VBLANK, &vbl); > > - read(fd, &event, sizeof(event)); > + assert(read(fd, &event, sizeof(event)) != -1); > count++; > } while ((event.sequence - seq) <= 120); > clock_gettime(CLOCK_MONOTONIC, &end); > > printf("%f\n", 1e6/elapsed(&start, &end, count)); > if (busy) > - read(fd, &event, sizeof(event)); > + assert(read(fd, &event, sizeof(event)) != -1); > } > > int main(int argc, char **argv) > diff --git a/debugger/eudb.c b/debugger/eudb.c > index 39c5cca..275a27e 100644 > --- a/debugger/eudb.c > +++ b/debugger/eudb.c > @@ -147,7 +147,9 @@ dump_debug(void *buf, size_t count) { > if (!debug_fd) > debug_fd = open(debug_file, O_CREAT | O_WRONLY | > O_TRUNC, S_IRWXO); > > - write(debug_fd, buf, count); > + if (write(debug_fd, buf, count) == -1) > + fprintf(stderr, "Error writing to debug file: %s\n", > + strerror(errno)); > } > > static volatile void * > diff --git a/lib/igt_aux.c b/lib/igt_aux.c > index c26d167..e77392c 100644 > --- a/lib/igt_aux.c > +++ b/lib/igt_aux.c > @@ -767,8 +767,12 @@ static void igt_module_param_exit_handler(int > sig) > > fd = open(file_path, O_RDWR); > if (fd >= 0) { > - write(fd, data->original_value, > - strlen(data->original_value)); > + int size = strlen (data->original_value); > + > + if (size != write(fd, data->original_value, > size)) > + igt_warn("%s may not have been reset > to its" > + " original value\n", > file_path); > + Can't this cause problems due to the fact that we're in an exit handler and igt_warn() doesn't seem to be Async-Signal-Safe? /me remembers the malloc locking problem we had in the past with the connector exit handler (bug 83498) > close(fd); > } > } > diff --git a/overlay/gpu-top.c b/overlay/gpu-top.c > index d1f5ec8..4097cd0 100644 > --- a/overlay/gpu-top.c > +++ b/overlay/gpu-top.c > @@ -29,6 +29,7 @@ > #include <unistd.h> > #include <fcntl.h> > #include <errno.h> > +#include <assert.h> > > #include "perf.h" > #include "igfx.h" > @@ -260,7 +261,8 @@ static void mmio_init(struct gpu_top *gt) > mmio_ring_emit(&render_ring, 1000, payload); > mmio_ring_emit(&bsd_ring, 1000, payload); > mmio_ring_emit(&blt_ring, 1000, payload); > - write(fd[1], payload, sizeof(payload)); > + assert(write(fd[1], payload, sizeof(payload)) > + == sizeof(payload)); > } > } > > diff --git a/overlay/overlay.c b/overlay/overlay.c > index 035e02c..3c0dbb4 100644 > --- a/overlay/overlay.c > +++ b/overlay/overlay.c > @@ -910,8 +910,8 @@ int main(int argc, char **argv) > if (daemonize && daemon(0, 0)) > return EINVAL; > > - if (renice) > - nice(renice); > + if (renice && (nice(renice) == -1)) > + fprintf(stderr, "Could not renice: %s\n", > strerror(errno)); > > signal(SIGUSR1, signal_snapshot); > > diff --git a/tools/intel_l3_udev_listener.c > b/tools/intel_l3_udev_listener.c > index 261630e..0b94c1c 100644 > --- a/tools/intel_l3_udev_listener.c > +++ b/tools/intel_l3_udev_listener.c > @@ -113,10 +113,10 @@ again: > > udev_device_unref(udev_dev); > > - asprintf(&err_msg, "Parity error detected on: %d,%d,%d,%d. " > + assert(asprintf(&err_msg, "Parity error detected on: > %d,%d,%d,%d. " > "Try to run intel_l3_parity -r %d -b %d -s > %d -w %d -d", > loc->slice, loc->row, loc->bank, loc > ->subbank, > - loc->row, loc->bank, loc->subbank, loc > ->slice); > + loc->row, loc->bank, loc->subbank, loc > ->slice) != -1); > if (daemon) { > syslog(LOG_INFO, "%s\n", err_msg); > goto again; > diff --git a/tools/intel_reg.c b/tools/intel_reg.c > index 95760db..bef3287 100644 > --- a/tools/intel_reg.c > +++ b/tools/intel_reg.c > @@ -506,7 +506,8 @@ static int intel_reg_snapshot(struct config > *config, int argc, char *argv[]) > intel_mmio_use_pci_bar(config->pci_dev); > > /* XXX: error handling */ > - write(1, igt_global_mmio, config->pci_dev > ->regions[mmio_bar].size); > + if (write(1, igt_global_mmio, config->pci_dev > ->regions[mmio_bar].size) == -1) > + fprintf(stderr, "Error writing snapshot: %s", > strerror(errno)); > > if (config->verbosity > 0) > printf("use this with --mmio=FILE --devid=0x%04X\n",
diff --git a/benchmarks/kms_vblank.c b/benchmarks/kms_vblank.c index f9dbe3d..3d2f977 100644 --- a/benchmarks/kms_vblank.c +++ b/benchmarks/kms_vblank.c @@ -41,6 +41,7 @@ #include <drm.h> #include <xf86drm.h> #include "drmtest.h" +#include "assert.h" static double elapsed(const struct timespec *start, const struct timespec *end, @@ -89,7 +90,7 @@ static void vblank_query(int fd, int busy) printf("%f\n", 1e6/elapsed(&start, &end, count)); if (busy) - read(fd, &event, sizeof(event)); + assert(read(fd, &event, sizeof(event)) != -1); } static void vblank_event(int fd, int busy) @@ -118,14 +119,14 @@ static void vblank_event(int fd, int busy) vbl.request.sequence = 0; drmIoctl(fd, DRM_IOCTL_WAIT_VBLANK, &vbl); - read(fd, &event, sizeof(event)); + assert(read(fd, &event, sizeof(event)) != -1); count++; } while ((event.sequence - seq) <= 120); clock_gettime(CLOCK_MONOTONIC, &end); printf("%f\n", 1e6/elapsed(&start, &end, count)); if (busy) - read(fd, &event, sizeof(event)); + assert(read(fd, &event, sizeof(event)) != -1); } int main(int argc, char **argv) diff --git a/debugger/eudb.c b/debugger/eudb.c index 39c5cca..275a27e 100644 --- a/debugger/eudb.c +++ b/debugger/eudb.c @@ -147,7 +147,9 @@ dump_debug(void *buf, size_t count) { if (!debug_fd) debug_fd = open(debug_file, O_CREAT | O_WRONLY | O_TRUNC, S_IRWXO); - write(debug_fd, buf, count); + if (write(debug_fd, buf, count) == -1) + fprintf(stderr, "Error writing to debug file: %s\n", + strerror(errno)); } static volatile void * diff --git a/lib/igt_aux.c b/lib/igt_aux.c index c26d167..e77392c 100644 --- a/lib/igt_aux.c +++ b/lib/igt_aux.c @@ -767,8 +767,12 @@ static void igt_module_param_exit_handler(int sig) fd = open(file_path, O_RDWR); if (fd >= 0) { - write(fd, data->original_value, - strlen(data->original_value)); + int size = strlen (data->original_value); + + if (size != write(fd, data->original_value, size)) + igt_warn("%s may not have been reset to its" + " original value\n", file_path); + close(fd); } } diff --git a/overlay/gpu-top.c b/overlay/gpu-top.c index d1f5ec8..4097cd0 100644 --- a/overlay/gpu-top.c +++ b/overlay/gpu-top.c @@ -29,6 +29,7 @@ #include <unistd.h> #include <fcntl.h> #include <errno.h> +#include <assert.h> #include "perf.h" #include "igfx.h" @@ -260,7 +261,8 @@ static void mmio_init(struct gpu_top *gt) mmio_ring_emit(&render_ring, 1000, payload); mmio_ring_emit(&bsd_ring, 1000, payload); mmio_ring_emit(&blt_ring, 1000, payload); - write(fd[1], payload, sizeof(payload)); + assert(write(fd[1], payload, sizeof(payload)) + == sizeof(payload)); } } diff --git a/overlay/overlay.c b/overlay/overlay.c index 035e02c..3c0dbb4 100644 --- a/overlay/overlay.c +++ b/overlay/overlay.c @@ -910,8 +910,8 @@ int main(int argc, char **argv) if (daemonize && daemon(0, 0)) return EINVAL; - if (renice) - nice(renice); + if (renice && (nice(renice) == -1)) + fprintf(stderr, "Could not renice: %s\n", strerror(errno)); signal(SIGUSR1, signal_snapshot); diff --git a/tools/intel_l3_udev_listener.c b/tools/intel_l3_udev_listener.c index 261630e..0b94c1c 100644 --- a/tools/intel_l3_udev_listener.c +++ b/tools/intel_l3_udev_listener.c @@ -113,10 +113,10 @@ again: udev_device_unref(udev_dev); - asprintf(&err_msg, "Parity error detected on: %d,%d,%d,%d. " + assert(asprintf(&err_msg, "Parity error detected on: %d,%d,%d,%d. " "Try to run intel_l3_parity -r %d -b %d -s %d -w %d -d", loc->slice, loc->row, loc->bank, loc->subbank, - loc->row, loc->bank, loc->subbank, loc->slice); + loc->row, loc->bank, loc->subbank, loc->slice) != -1); if (daemon) { syslog(LOG_INFO, "%s\n", err_msg); goto again; diff --git a/tools/intel_reg.c b/tools/intel_reg.c index 95760db..bef3287 100644 --- a/tools/intel_reg.c +++ b/tools/intel_reg.c @@ -506,7 +506,8 @@ static int intel_reg_snapshot(struct config *config, int argc, char *argv[]) intel_mmio_use_pci_bar(config->pci_dev); /* XXX: error handling */ - write(1, igt_global_mmio, config->pci_dev->regions[mmio_bar].size); + if (write(1, igt_global_mmio, config->pci_dev->regions[mmio_bar].size) == -1) + fprintf(stderr, "Error writing snapshot: %s", strerror(errno)); if (config->verbosity > 0) printf("use this with --mmio=FILE --devid=0x%04X\n",
Signed-off-by: Thomas Wood <thomas.wood@intel.com> --- benchmarks/kms_vblank.c | 7 ++++--- debugger/eudb.c | 4 +++- lib/igt_aux.c | 8 ++++++-- overlay/gpu-top.c | 4 +++- overlay/overlay.c | 4 ++-- tools/intel_l3_udev_listener.c | 4 ++-- tools/intel_reg.c | 3 ++- 7 files changed, 22 insertions(+), 12 deletions(-)