[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20120127183734.GA10175@andromeda.dapyr.net>
Date: Fri, 27 Jan 2012 14:37:34 -0400
From: Konrad Rzeszutek Wilk <konrad@...nok.org>
To: Stefano Stabellini <stefano.stabellini@...citrix.com>
Cc: xen-devel@...ts.xensource.com, linux-kernel@...r.kernel.org,
konrad.wilk@...cle.com
Subject: Re: [Xen-devel] [PATCH 2/2] hvc_xen: implement multiconsole support
> +static int xencons_remove(struct xenbus_device *dev)
> +{
> + struct xencons_info *info = dev_get_drvdata(&dev->dev);
> +
> + spin_lock(&xencons_lock);
> + list_del(&info->list);
> + spin_unlock(&xencons_lock);
> + xencons_free(info);
> return 0;
> }
.. snip..
> static void __exit xen_hvc_fini(void)
> {
> - if (hvc)
> - hvc_remove(hvc);
> + struct xencons_info *entry, *next;
> +
> + if (list_empty(&xenconsoles))
> + return;
> +
> + spin_lock(&xencons_lock);
You take a lock.
> + list_for_each_entry_safe(entry, next, &xenconsoles, list) {
> + list_del(&entry->list);
> + if (entry->xbdev)
> + xencons_remove(entry->xbdev);
And then call xencons_remove which also takes the same lock.
> + else {
> + if (entry->irq > 0)
> + unbind_from_irqhandler(entry->irq, NULL);
> + if (entry->hvc);
> + hvc_remove(entry->hvc);
> + kfree(entry);
> + }
> + }
> + spin_unlock(&xencons_lock);
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists