From patchwork Wed Feb 3 16:18:15 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "David S. Ahern" X-Patchwork-Id: 76743 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by demeter.kernel.org (8.14.3/8.14.3) with ESMTP id o13GIJwT012394 for ; Wed, 3 Feb 2010 16:18:19 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932253Ab0BCQSR (ORCPT ); Wed, 3 Feb 2010 11:18:17 -0500 Received: from sj-iport-6.cisco.com ([171.71.176.117]:57775 "EHLO sj-iport-6.cisco.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752468Ab0BCQSQ (ORCPT ); Wed, 3 Feb 2010 11:18:16 -0500 Authentication-Results: sj-iport-6.cisco.com; dkim=neutral (message not signed) header.i=none X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAEswaUurR7Ht/2dsb2JhbADBCpgRhEUE X-IronPort-AV: E=Sophos;i="4.49,399,1262563200"; d="scan'208";a="477567973" Received: from sj-core-1.cisco.com ([171.71.177.237]) by sj-iport-6.cisco.com with ESMTP; 03 Feb 2010 16:18:15 +0000 Received: from [10.89.3.230] (rcdn-vpn-client-10-89-3-230.cisco.com [10.89.3.230]) by sj-core-1.cisco.com (8.13.8/8.14.3) with ESMTP id o13GIF0V010529; Wed, 3 Feb 2010 16:18:15 GMT Message-ID: <4B69A1C7.80708@cisco.com> Date: Wed, 03 Feb 2010 09:18:15 -0700 From: "David S. Ahern" User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.7) Gecko/20100120 Fedora/3.0.1-1.fc11 Thunderbird/3.0.1 MIME-Version: 1.0 To: qemu-devel@nongnu.org CC: kvm-devel Subject: [PATCH] add close callback for tty-based char device Sender: kvm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-4.2.3 (demeter.kernel.org [140.211.167.41]); Wed, 03 Feb 2010 16:18:19 +0000 (UTC) diff --git a/qemu-char.c b/qemu-char.c index 800ee6c..ecd84ec 100644 --- a/qemu-char.c +++ b/qemu-char.c @@ -1173,6 +1173,20 @@ static int tty_serial_ioctl(CharDriverState *chr, int cmd return 0; } +static void qemu_chr_close_tty(CharDriverState *chr) +{ + FDCharDriver *s = chr->opaque; + int fd = -1; + + if (s) + fd = s->fd_in; + + fd_chr_close(chr); + + if (fd >= 0) + close(fd); +} + static CharDriverState *qemu_chr_open_tty(QemuOpts *opts) {