All of lore.kernel.org
 help / color / mirror / Atom feed
From: Rusty Russell <rusty@rustcorp.com.au>
To: Amit Shah <amit.shah@redhat.com>
Cc: virtualization@lists.linux-foundation.org
Subject: Re: [PATCH 08/28] virtio: console: remove global var
Date: Mon, 30 Nov 2009 12:27:21 +1030	[thread overview]
Message-ID: <200911301227.21515.rusty@rustcorp.com.au> (raw)
In-Reply-To: <1259391051-7752-9-git-send-email-amit.shah@redhat.com>

On Sat, 28 Nov 2009 05:20:31 pm Amit Shah wrote:
> From: Rusty Russell <rusty@rustcorp.com.au>
> 
> Now we can use an allocation function to remove our global console variable.
> 
> Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
> Signed-off-by: Amit Shah <amit.shah@redhat.com>
> ---
>  drivers/char/virtio_console.c |   70 +++++++++++++++++++++++++++-------------
>  1 files changed, 47 insertions(+), 23 deletions(-)
> 
> diff --git a/drivers/char/virtio_console.c b/drivers/char/virtio_console.c
> index c133bf6..98a5249 100644
> --- a/drivers/char/virtio_console.c
> +++ b/drivers/char/virtio_console.c
> @@ -32,6 +32,18 @@
>   * across multiple devices and multiple ports per device.
>   */
>  struct ports_driver_data {
> +	/*
> +	 * This is used to keep track of the number of hvc consoles
> +	 * spawned by this driver.  This number is given as the first
> +	 * argument to hvc_alloc().  To correctly map an initial
> +	 * console spawned via hvc_instantiate to the console being
> +	 * hooked up via hvc_alloc, we need to pass the same vtermno.
> +	 *
> +	 * We also just assume the first console being initialised was
> +	 * the first one that got used as the initial console.
> +	 */
> +	unsigned int next_vtermno;

Let's just make this a global?

> +static struct port *__devinit add_port(u32 vtermno)
> +{
> +	struct port *port;
> +
> +	port = kzalloc(sizeof *port, GFP_KERNEL);
> +	if (!port)
> +		return NULL;
> +
> +	port->used_len = port->offset = 0;
> +	port->inbuf = kmalloc(PAGE_SIZE, GFP_KERNEL);
> +	if (!port->inbuf) {
> +		kfree(port);
> +		return NULL;
> +	}
> +	port->hvc = NULL;
> +	port->vtermno = vtermno;
> +	return port;
> +}

Rename this to add_console_port(), and split off the core part which
does ->port setup into "int setup_port(struct port *)" for later re-use?

> +static void free_port(struct port *port)
> +{
> +	kfree(port->inbuf);
> +	kfree(port);
> +}

Similarly, free_console_port/free_port?

> +	err = -ENOMEM;
> +	port = add_port(pdrvdata.next_vtermno);
> +	if (!port)
> +		goto fail;

I realize other coders do this pre-init, and it saves a line, but it also
means that you don't get a warning about err being uninitialized if it doesn't
get set correctly later on.

So I prefer:
	port = add...
	if (!port) {
		err = -ENOMEM;
		goto fail;
	}

Thanks,
Rusty.

  parent reply	other threads:[~2009-11-30  1:57 UTC|newest]

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-11-28  6:50 [PATCH 00/28] virtio: console: Fixes, support for generic ports Amit Shah
2009-11-28  6:50 ` [PATCH 01/28] virtio: console: comment cleanup Amit Shah
2009-11-28  6:50   ` [PATCH 02/28] virtio: console: statically initialize virtio_cons Amit Shah
2009-11-28  6:50     ` [PATCH 03/28] hvc_console: make the ops pointer const Amit Shah
2009-11-28  6:50     ` Amit Shah
2009-11-28  6:50       ` [PATCH 04/28] virtio: console: We support only one device at a time Amit Shah
2009-11-28  6:50         ` [PATCH 05/28] virtio: console: port encapsulation Amit Shah
2009-11-28  6:50           ` [PATCH 06/28] virtio: console: use vdev->priv to avoid accessing global var Amit Shah
2009-11-28  6:50             ` [PATCH 07/28] virtio: console: don't assume a single console port Amit Shah
2009-11-28  6:50               ` [PATCH 08/28] virtio: console: remove global var Amit Shah
2009-11-28  6:50                 ` [PATCH 09/28] virtio: console: struct ports for multiple ports per device Amit Shah
2009-11-28  6:50                   ` [PATCH 10/28] virtio: console: ensure console size is updated on hvc open Amit Shah
2009-11-28  6:50                     ` [PATCH 11/28] virtio: console: Introduce a workqueue for handling host->guest notifications Amit Shah
2009-11-28  6:50                       ` [PATCH 12/28] virtio: console: Buffer data that comes in from the host Amit Shah
2009-11-28  6:50                         ` [PATCH 13/28] virtio: console: Create a buffer pool for sending data to host Amit Shah
2009-11-28  6:50                           ` [PATCH 14/28] virtio: console: Separate out console-specific data into a separate struct Amit Shah
2009-11-28  6:50                             ` [PATCH 15/28] virtio: console: Separate out console init into a new function Amit Shah
2009-11-28  6:50                               ` [PATCH 16/28] virtio: console: Introduce a 'header' for each buffer towards supporting multiport Amit Shah
2009-11-28  6:50                                 ` [PATCH 17/28] virtio: console: Add a new MULTIPORT feature, support for generic ports Amit Shah
2009-11-28  6:50                                   ` [PATCH 18/28] virtio: console: Associate each port with a char device Amit Shah
2009-11-28  6:50                                     ` [PATCH 19/28] virtio: console: Prepare for writing to / reading from userspace buffers Amit Shah
2009-11-28  6:50                                       ` [PATCH 20/28] virtio: console: Add file operations to ports for open/read/write/poll Amit Shah
2009-11-28  6:50                                         ` [PATCH 21/28] virtio: console: Ensure only one process can have a port open at a time Amit Shah
2009-11-28  6:50                                           ` [PATCH 22/28] virtio: console: Register with sysfs and create a 'name' attribute for ports Amit Shah
2009-11-28  6:50                                             ` [PATCH 23/28] virtio: console: Add throttling support to prevent flooding ports Amit Shah
2009-11-28  6:50                                               ` [PATCH 24/28] virtio: console: Add option to remove cached buffers on port close Amit Shah
2009-11-28  6:50                                                 ` [PATCH 25/28] virtio: console: Handle port hot-plug Amit Shah
2009-11-28  6:50                                                   ` [PATCH 26/28] hvc_console: Export (GPL'ed) hvc_remove Amit Shah
2009-11-28  6:50                                                     ` [PATCH 27/28] virtio: console: Add ability to hot-unplug ports Amit Shah
2009-11-28  6:50                                                       ` [PATCH 28/28] virtio: console: Add debugfs files for each port to expose debug info Amit Shah
2009-11-28  6:50                                                   ` [PATCH 26/28] hvc_console: Export (GPL'ed) hvc_remove Amit Shah
2009-12-02  8:30                           ` [PATCH 13/28] virtio: console: Create a buffer pool for sending data to host Rusty Russell
2009-12-02  9:19                             ` Amit Shah
2009-12-02  3:44                         ` [PATCH 12/28] virtio: console: Buffer data that comes in from the host Rusty Russell
2009-12-02  9:24                           ` Amit Shah
2009-12-02 22:54                             ` Rusty Russell
2009-12-03  3:43                               ` Amit Shah
2009-12-04 11:02                                 ` Amit Shah
2009-12-08  1:16                                   ` Rusty Russell
2009-12-15 10:45                                     ` Amit Shah
2009-12-15 22:55                                       ` Rusty Russell
2009-11-30  2:09                   ` [PATCH 09/28] virtio: console: struct ports for multiple ports per device Rusty Russell
2009-11-30  5:50                     ` Amit Shah
2009-11-30  1:57                 ` Rusty Russell [this message]
2009-11-30  5:45                   ` [PATCH 08/28] virtio: console: remove global var Amit Shah
2009-11-30  1:50               ` [PATCH 07/28] virtio: console: don't assume a single console port Rusty Russell
2009-11-30  5:42                 ` Amit Shah

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200911301227.21515.rusty@rustcorp.com.au \
    --to=rusty@rustcorp.com.au \
    --cc=amit.shah@redhat.com \
    --cc=virtualization@lists.linux-foundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.