diff options
author | Marc-André Lureau <marcandre.lureau@redhat.com> | 2016-10-22 12:52:58 +0300 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2016-10-24 15:27:21 +0200 |
commit | c39860e6dc90f6ee2e82ee078f978c5d7f3df86a (patch) | |
tree | 7af723a578b9f33ee172254b20fd9bbdd519cd0c /net/filter-mirror.c | |
parent | 5d300164d00cf9d37a4481831d2c993255dfa0e8 (diff) | |
download | qemu-c39860e6dc90f6ee2e82ee078f978c5d7f3df86a.tar.gz |
char: replace qemu_chr_claim/release with qemu_chr_fe_init/deinit
Now that all front end use qemu_chr_fe_init(), we can move chardev
claiming in init(), and add a function deinit() to release the chardev
and cleanup handlers.
The qemu_chr_fe_claim_no_fail() for property are gone, since the
property will raise an error instead. In other cases, where there is
already an error path, an error is raised instead. Finally, other cases
are handled by &error_abort in qemu_chr_fe_init().
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <20161022095318.17775-19-marcandre.lureau@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'net/filter-mirror.c')
-rw-r--r-- | net/filter-mirror.c | 20 |
1 files changed, 3 insertions, 17 deletions
diff --git a/net/filter-mirror.c b/net/filter-mirror.c index 12d79cd987..1864c818d5 100644 --- a/net/filter-mirror.c +++ b/net/filter-mirror.c @@ -175,22 +175,15 @@ static void filter_mirror_cleanup(NetFilterState *nf) { MirrorState *s = FILTER_MIRROR(nf); - if (s->chr_out.chr) { - qemu_chr_fe_release(s->chr_out.chr); - } + qemu_chr_fe_deinit(&s->chr_out); } static void filter_redirector_cleanup(NetFilterState *nf) { MirrorState *s = FILTER_REDIRECTOR(nf); - if (s->chr_in.chr) { - qemu_chr_fe_set_handlers(&s->chr_in, NULL, NULL, NULL, NULL, NULL); - qemu_chr_fe_release(s->chr_in.chr); - } - if (s->chr_out.chr) { - qemu_chr_fe_release(s->chr_out.chr); - } + qemu_chr_fe_deinit(&s->chr_in); + qemu_chr_fe_deinit(&s->chr_out); } static void filter_mirror_setup(NetFilterState *nf, Error **errp) @@ -211,11 +204,6 @@ static void filter_mirror_setup(NetFilterState *nf, Error **errp) return; } - if (qemu_chr_fe_claim(chr) != 0) { - error_setg(errp, QERR_DEVICE_IN_USE, s->outdev); - return; - } - qemu_chr_fe_init(&s->chr_out, chr, errp); } @@ -254,7 +242,6 @@ static void filter_redirector_setup(NetFilterState *nf, Error **errp) return; } - qemu_chr_fe_claim_no_fail(chr); if (!qemu_chr_fe_init(&s->chr_in, chr, errp)) { return; } @@ -271,7 +258,6 @@ static void filter_redirector_setup(NetFilterState *nf, Error **errp) "OUT Device '%s' not found", s->outdev); return; } - qemu_chr_fe_claim_no_fail(chr); if (!qemu_chr_fe_init(&s->chr_out, chr, errp)) { return; } |