From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45332) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XUsSd-0001ZC-Qc for qemu-devel@nongnu.org; Fri, 19 Sep 2014 03:18:38 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XUsSW-0006Jo-8o for qemu-devel@nongnu.org; Fri, 19 Sep 2014 03:18:31 -0400 Received: from mail-wi0-f179.google.com ([209.85.212.179]:62155) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XUsSV-0006Hx-W2 for qemu-devel@nongnu.org; Fri, 19 Sep 2014 03:18:24 -0400 Received: by mail-wi0-f179.google.com with SMTP id cc10so2282196wib.6 for ; Fri, 19 Sep 2014 00:18:17 -0700 (PDT) Message-ID: <541BD8B6.30806@6wind.com> Date: Fri, 19 Sep 2014 09:18:14 +0200 From: David Marchand MIME-Version: 1.0 References: <1411082250-27776-1-git-send-email-drjones@redhat.com> In-Reply-To: <1411082250-27776-1-git-send-email-drjones@redhat.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v2] ivshmem: use error_report List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Andrew Jones , qemu-devel@nongnu.org Cc: afaerber@suse.de, mst@redhat.com On 09/19/2014 01:17 AM, Andrew Jones wrote: > Replace all the fprintf(stderr, ...) calls with error_report. > Also make sure exit() consistently uses the error code 1. A few calls > used -1. > > Signed-off-by: Andrew Jones > --- > hw/misc/ivshmem.c | 39 +++++++++++++++++++-------------------- > 1 file changed, 19 insertions(+), 20 deletions(-) > > diff --git a/hw/misc/ivshmem.c b/hw/misc/ivshmem.c > index bf585b7691998..b3983296f58fa 100644 > --- a/hw/misc/ivshmem.c > +++ b/hw/misc/ivshmem.c > @@ -300,8 +300,8 @@ static CharDriverState* create_eventfd_chr_device(void * opaque, EventNotifier * > chr = qemu_chr_open_eventfd(eventfd); > > if (chr == NULL) { > - fprintf(stderr, "creating eventfd for eventfd %d failed\n", eventfd); > - exit(-1); > + error_report("creating eventfd for eventfd %d failed", eventfd); > + exit(1); > } > qemu_chr_fe_claim_no_fail(chr); > > @@ -328,15 +328,14 @@ static int check_shm_size(IVShmemState *s, int fd) { > struct stat buf; > > if (fstat(fd, &buf) < 0) { > - fprintf(stderr, "ivshmem: exiting: fstat on fd %d failed: %s\n", > + error_report("exiting: fstat on fd %d failed: %s", > fd, strerror(errno)); > return -1; > } > > if (s->ivshmem_size > buf.st_size) { > - fprintf(stderr, > - "IVSHMEM ERROR: Requested memory size greater" > - " than shared object size (%" PRIu64 " > %" PRIu64")\n", > + error_report("Requested memory size greater" > + " than shared object size (%" PRIu64 " > %" PRIu64")", > s->ivshmem_size, (uint64_t)buf.st_size); > return -1; > } else { > @@ -510,7 +509,7 @@ static void ivshmem_read(void *opaque, const uint8_t *buf, int size) > incoming_fd = dup(tmp_fd); > > if (incoming_fd == -1) { > - fprintf(stderr, "could not allocate file descriptor %s\n", > + error_report("could not allocate file descriptor %s", > strerror(errno)); > close(tmp_fd); > return; > @@ -524,7 +523,7 @@ static void ivshmem_read(void *opaque, const uint8_t *buf, int size) > s->max_peer = 0; > > if (check_shm_size(s, incoming_fd) == -1) { > - exit(-1); > + exit(1); > } > > /* mmap the region and map into the BAR2 */ > @@ -618,13 +617,13 @@ static uint64_t ivshmem_get_size(IVShmemState * s) { > value <<= 30; > break; > default: > - fprintf(stderr, "qemu: invalid ram size: %s\n", s->sizearg); > + error_report("invalid ram size: %s", s->sizearg); > exit(1); > } > > /* BARs must be a power of 2 */ > if (!is_power_of_two(value)) { > - fprintf(stderr, "ivshmem: size must be power of 2\n"); > + error_report("size must be power of 2"); > exit(1); > } > > @@ -676,7 +675,7 @@ static int ivshmem_load(QEMUFile* f, void *opaque, int version_id) > } > > if (proxy->role_val == IVSHMEM_PEER) { > - fprintf(stderr, "ivshmem: 'peer' devices are not migratable\n"); > + error_report("'peer' devices are not migratable"); > return -EINVAL; > } > > @@ -722,7 +721,7 @@ static int pci_ivshmem_init(PCIDevice *dev) > /* IRQFD requires MSI */ > if (ivshmem_has_feature(s, IVSHMEM_IOEVENTFD) && > !ivshmem_has_feature(s, IVSHMEM_MSI)) { > - fprintf(stderr, "ivshmem: ioeventfd/irqfd requires MSI\n"); > + error_report("ioeventfd/irqfd requires MSI"); > exit(1); > } > > @@ -733,7 +732,7 @@ static int pci_ivshmem_init(PCIDevice *dev) > } else if (strncmp(s->role, "master", 7) == 0) { > s->role_val = IVSHMEM_MASTER; > } else { > - fprintf(stderr, "ivshmem: 'role' must be 'peer' or 'master'\n"); > + error_report("'role' must be 'peer' or 'master'"); > exit(1); > } > } else { > @@ -773,8 +772,8 @@ static int pci_ivshmem_init(PCIDevice *dev) > * to the ivshmem server to receive the memory region */ > > if (s->shmobj != NULL) { > - fprintf(stderr, "WARNING: do not specify both 'chardev' " > - "and 'shm' with ivshmem\n"); > + error_report("WARNING: do not specify both 'chardev' " > + "and 'shm' with ivshmem"); > } > > IVSHMEM_DPRINTF("using shared memory server (socket = %s)\n", > @@ -802,7 +801,7 @@ static int pci_ivshmem_init(PCIDevice *dev) > int fd; > > if (s->shmobj == NULL) { > - fprintf(stderr, "Must specify 'chardev' or 'shm' to ivshmem\n"); > + error_report("Must specify 'chardev' or 'shm' to ivshmem"); > exit(1); > } > > @@ -814,18 +813,18 @@ static int pci_ivshmem_init(PCIDevice *dev) > S_IRWXU|S_IRWXG|S_IRWXO)) > 0) { > /* truncate file to length PCI device's memory */ > if (ftruncate(fd, s->ivshmem_size) != 0) { > - fprintf(stderr, "ivshmem: could not truncate shared file\n"); > + error_report("could not truncate shared file"); > } > > } else if ((fd = shm_open(s->shmobj, O_CREAT|O_RDWR, > S_IRWXU|S_IRWXG|S_IRWXO)) < 0) { > - fprintf(stderr, "ivshmem: could not open shared file\n"); > - exit(-1); > + error_report("could not open shared file"); > + exit(1); > > } > > if (check_shm_size(s, fd) == -1) { > - exit(-1); > + exit(1); > } > > create_shared_memory_BAR(s, fd); > Looks good to me (a comment on a dependency on Andreas patchset would have been good). Acked-by: David Marchand -- David Marchand