diff options
Diffstat (limited to 'chardev')
| -rw-r--r-- | chardev/char-mux.c | 6 | ||||
| -rw-r--r-- | chardev/char.c | 7 |
2 files changed, 4 insertions, 9 deletions
diff --git a/chardev/char-mux.c b/chardev/char-mux.c index 5baf419010..ada0c6866f 100644 --- a/chardev/char-mux.c +++ b/chardev/char-mux.c @@ -386,10 +386,9 @@ void suspend_mux_open(void) static int chardev_options_parsed_cb(Object *child, void *opaque) { Chardev *chr = (Chardev *)child; - ChardevClass *class = CHARDEV_GET_CLASS(chr); - if (!chr->be_open && class->chr_options_parsed) { - class->chr_options_parsed(chr); + if (!chr->be_open && CHARDEV_IS_MUX(chr)) { + open_muxes(chr); } return 0; @@ -412,7 +411,6 @@ static void char_mux_class_init(ObjectClass *oc, void *data) cc->chr_accept_input = mux_chr_accept_input; cc->chr_add_watch = mux_chr_add_watch; cc->chr_be_event = mux_chr_be_event; - cc->chr_options_parsed = open_muxes; cc->chr_update_read_handler = mux_chr_update_read_handlers; } diff --git a/chardev/char.c b/chardev/char.c index 4595a8d430..0169d8dde4 100644 --- a/chardev/char.c +++ b/chardev/char.c @@ -241,18 +241,15 @@ static void qemu_char_open(Chardev *chr, ChardevBackend *backend, ChardevCommon *common = backend ? backend->u.null.data : NULL; if (common && common->has_logfile) { - int flags = O_WRONLY | O_CREAT; + int flags = O_WRONLY; if (common->has_logappend && common->logappend) { flags |= O_APPEND; } else { flags |= O_TRUNC; } - chr->logfd = qemu_open_old(common->logfile, flags, 0666); + chr->logfd = qemu_create(common->logfile, flags, 0666, errp); if (chr->logfd < 0) { - error_setg_errno(errp, errno, - "Unable to open logfile %s", - common->logfile); return; } } |