Em Seg, 2015-09-07 às 12:34 +0100, Thomas Wood escreveu:
> Signed-off-by: Thomas Wood <thomas.w...@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",
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to