Error reporting patches for 2016-08-08

-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJXqDFpAAoJEDhwtADrkYZTlQMQALZDzjoYJQlmcLQu92O52a3L
 XlluF82W4Y6jOLR6u/eRsP4uok/C3FA23SMtw7CfPLJZbet/PDKLS4N7J0m4mrqa
 mGmBT/9ZY7jVeISJz4X7WW7chgFR0JF2rOUpEmQPvzrEYYY7cTd4DwHpb0UB1f7W
 /H3i55vkVUCpSeib8Ah/MgzYGdgv1ZVmh0X+IsEwd42J8f4nv8y3YSPO8J/DPooY
 hfHVikObX/LIx1yItFkKWzA2JW+nSLvBMXYtbvVUkVkDXwQYcHJcAKhYPzdiE6Iy
 GTSrnwXCW/4ckic/AumZ1WNTbcK5tp9FtdI/li4JzZHoJ/pWo0lt+BWCTmQOFCvs
 f0Vqza5Ux3B+hvCYM+ulmydnEGZVopc51u8cqEKGzYE2VrxJ0A63lqWCzm5F9gQj
 cE/546oiTa9pm4DDTfB064+Chzq1ao4AWga2yol7IWBvljkQZ7j+I620l5xv5Xaa
 WLhIDZg4e6EwViNtta73Fo3y8HqlvHTiPh3Gpfgvrnc7hocL7im3yh8O1RSOUCdY
 4aUmWonDg4zKPb2u9nkerWBCDM4s0p5rNTYmntJtoVIlsFvcUm/3yzVipdWyz5AX
 y9xLc3FqVfE2Kfw1qJHlw5fx7FegFJCfGzsa1xBZfL1qC9bfU1XGqj4fnyIbQ8pE
 WWrWL7bGuzSWZsQ2+JBT
 =FNBu
 -----END PGP SIGNATURE-----

Merge remote-tracking branch 'remotes/armbru/tags/pull-error-2016-08-08' into staging

Error reporting patches for 2016-08-08

# gpg: Signature made Mon 08 Aug 2016 08:14:49 BST
# gpg:                using RSA key 0x3870B400EB918653
# gpg: Good signature from "Markus Armbruster <armbru@redhat.com>"
# gpg:                 aka "Markus Armbruster <armbru@pond.sub.org>"
# Primary key fingerprint: 354B C8B3 D7EB 2A6B 6867  4E5F 3870 B400 EB91 8653

* remotes/armbru/tags/pull-error-2016-08-08:
  error: Fix error_printf() calls lacking newlines
  vfio: Use error_report() instead of error_printf() for errors
  checkpatch: Fix newline detection in error_setg() & friends
  error: Strip trailing '\n' from error string arguments (again)

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
Peter Maydell 2016-08-08 13:25:35 +01:00
commit f5edfcfafb
12 changed files with 47 additions and 15 deletions

View File

@ -381,7 +381,7 @@ ISADevice *pc_find_fdc0(void)
error_report("warning: multiple floppy disk controllers with " error_report("warning: multiple floppy disk controllers with "
"iobase=0x3f0 have been found"); "iobase=0x3f0 have been found");
error_printf("the one being picked for CMOS setup might not reflect " error_printf("the one being picked for CMOS setup might not reflect "
"your intent"); "your intent\n");
} }
return state.floppy; return state.floppy;

View File

@ -73,7 +73,7 @@ static void mips_cps_realize(DeviceState *dev, Error **errp)
for (i = 0; i < s->num_vp; i++) { for (i = 0; i < s->num_vp; i++) {
cpu = cpu_mips_init(s->cpu_model); cpu = cpu_mips_init(s->cpu_model);
if (cpu == NULL) { if (cpu == NULL) {
error_setg(errp, "%s: CPU initialization failed\n", __func__); error_setg(errp, "%s: CPU initialization failed", __func__);
return; return;
} }

View File

@ -744,7 +744,7 @@ static int get_fw_cfg_order(FWCfgState *s, const char *name)
} }
/* Stick unknown stuff at the end. */ /* Stick unknown stuff at the end. */
error_report("warning: Unknown firmware file in legacy mode: %s\n", name); error_report("warning: Unknown firmware file in legacy mode: %s", name);
return FW_CFG_ORDER_OVERRIDE_LAST; return FW_CFG_ORDER_OVERRIDE_LAST;
} }

View File

@ -231,7 +231,7 @@ void spapr_core_pre_plug(HotplugHandler *hotplug_dev, DeviceState *dev,
} }
if (cc->core_id % smp_threads) { if (cc->core_id % smp_threads) {
error_setg(&local_err, "invalid core id %d\n", cc->core_id); error_setg(&local_err, "invalid core id %d", cc->core_id);
goto out; goto out;
} }

View File

@ -496,7 +496,7 @@ static int vfio_populate_device(VFIODevice *vbasedev)
irq.index = i; irq.index = i;
ret = ioctl(vbasedev->fd, VFIO_DEVICE_GET_IRQ_INFO, &irq); ret = ioctl(vbasedev->fd, VFIO_DEVICE_GET_IRQ_INFO, &irq);
if (ret) { if (ret) {
error_printf("vfio: error getting device %s irq info", error_report("vfio: error getting device %s irq info",
vbasedev->name); vbasedev->name);
goto irq_err; goto irq_err;
} else { } else {

View File

@ -2143,7 +2143,7 @@ void kvm_device_access(int fd, int group, uint64_t attr,
if (err < 0) { if (err < 0) {
error_report("KVM_%s_DEVICE_ATTR failed: %s", error_report("KVM_%s_DEVICE_ATTR failed: %s",
write ? "SET" : "GET", strerror(-err)); write ? "SET" : "GET", strerror(-err));
error_printf("Group %d attr 0x%016" PRIx64, group, attr); error_printf("Group %d attr 0x%016" PRIx64 "\n", group, attr);
abort(); abort();
} }
} }

View File

@ -3490,7 +3490,7 @@ typedef struct BenchData {
static void bench_undrained_flush_cb(void *opaque, int ret) static void bench_undrained_flush_cb(void *opaque, int ret)
{ {
if (ret < 0) { if (ret < 0) {
error_report("Failed flush request: %s\n", strerror(-ret)); error_report("Failed flush request: %s", strerror(-ret));
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
} }
@ -3501,7 +3501,7 @@ static void bench_cb(void *opaque, int ret)
BlockAIOCB *acb; BlockAIOCB *acb;
if (ret < 0) { if (ret < 0) {
error_report("Failed request: %s\n", strerror(-ret)); error_report("Failed request: %s", strerror(-ret));
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }

View File

@ -2514,11 +2514,14 @@ sub process {
my $qemu_error_funcs = qr{error_setg| my $qemu_error_funcs = qr{error_setg|
error_setg_errno| error_setg_errno|
error_setg_win32| error_setg_win32|
error_setg_file_open|
error_set| error_set|
error_prepend|
error_reportf_err|
error_vreport| error_vreport|
error_report}x; error_report}x;
if ($rawline =~ /\b(?:$qemu_error_funcs)\s*\(\s*\".*\\n/) { if ($rawline =~ /\b(?:$qemu_error_funcs)\s*\(.*\".*\\n/) {
WARN("Error messages should not contain newlines\n" . $herecurr); WARN("Error messages should not contain newlines\n" . $herecurr);
} }

View File

@ -0,0 +1,29 @@
// Error messages should not contain newlines. This script finds
// messages that do. Fixing them is manual.
@r@
expression errp, eno, cls, fmt;
position p;
@@
(
error_report(fmt, ...)@p
|
error_setg(errp, fmt, ...)@p
|
error_setg_errno(errp, eno, fmt, ...)@p
|
error_setg_win32(errp, eno, cls, fmt, ...)@p
|
error_prepend(errp, fmt, ...)@p
|
error_setg_file_open(errp, eno, cls, fmt, ...)@p
|
error_reportf_err(errp, fmt, ...)@p
|
error_set(errp, cls, fmt, ...)@p
)
@script:python@
fmt << r.fmt;
p << r.p;
@@
if "\\n" in str(fmt):
print "%s:%s:%s:%s" % (p[0].file, p[0].line, p[0].column, fmt)

View File

@ -1197,8 +1197,8 @@ static void slirp_socket_save(QEMUFile *f, struct socket *so)
qemu_put_be16(f, so->so_fport); qemu_put_be16(f, so->so_fport);
break; break;
default: default:
error_report( error_report("so_ffamily unknown, unable to save so_faddr and"
"so_ffamily unknown, unable to save so_faddr and so_fport\n"); " so_fport");
} }
qemu_put_be16(f, so->so_lfamily); qemu_put_be16(f, so->so_lfamily);
switch (so->so_lfamily) { switch (so->so_lfamily) {
@ -1207,8 +1207,8 @@ static void slirp_socket_save(QEMUFile *f, struct socket *so)
qemu_put_be16(f, so->so_lport); qemu_put_be16(f, so->so_lport);
break; break;
default: default:
error_report( error_report("so_ffamily unknown, unable to save so_laddr and"
"so_ffamily unknown, unable to save so_laddr and so_lport\n"); " so_lport");
} }
qemu_put_byte(f, so->so_iptos); qemu_put_byte(f, so->so_iptos);
qemu_put_byte(f, so->so_emu); qemu_put_byte(f, so->so_emu);

View File

@ -3250,7 +3250,7 @@ int kvm_arch_irqchip_create(MachineState *ms, KVMState *s)
if (machine_kernel_irqchip_split(ms)) { if (machine_kernel_irqchip_split(ms)) {
ret = kvm_vm_enable_cap(s, KVM_CAP_SPLIT_IRQCHIP, 0, 24); ret = kvm_vm_enable_cap(s, KVM_CAP_SPLIT_IRQCHIP, 0, 24);
if (ret) { if (ret) {
error_report("Could not enable split irqchip mode: %s\n", error_report("Could not enable split irqchip mode: %s",
strerror(-ret)); strerror(-ret));
exit(1); exit(1);
} else { } else {

View File

@ -3201,7 +3201,7 @@ int vnc_display_password(const char *id, const char *password)
} }
if (vs->auth == VNC_AUTH_NONE) { if (vs->auth == VNC_AUTH_NONE) {
error_printf_unless_qmp("If you want use passwords please enable " error_printf_unless_qmp("If you want use passwords please enable "
"password auth using '-vnc ${dpy},password'."); "password auth using '-vnc ${dpy},password'.\n");
return -EINVAL; return -EINVAL;
} }