From: Greg KH <gregkh@suse.de>
To: Haiyang Zhang <haiyangz@microsoft.com>
Cc: "'linux-kernel@vger.kernel.org'" <linux-kernel@vger.kernel.org>,
"'devel@driverdev.osuosl.org'" <devel@driverdev.osuosl.org>,
"'virtualization@lists.osdl.org'" <virtualization@lists.osdl.org>,
Hank Janssen <hjanssen@microsoft.com>
Subject: Re: [PATCH 1/1] staging: hv: Fix race condition on IC channel initialization
Date: Fri, 21 May 2010 15:22:01 -0700 [thread overview]
Message-ID: <20100521222201.GA12429@suse.de> (raw)
In-Reply-To: <1FB5E1D5CA062146B38059374562DF7266B8B5F2@TK5EX14MBXC128.redmond.corp.microsoft.com>
On Fri, May 21, 2010 at 10:07:17PM +0000, Haiyang Zhang wrote:
> > From: Greg KH [mailto:gregkh@suse.de]
> > > +/* Counter of IC channels initialized */
> > > +atomic_t hv_utils_initcnt = ATOMIC_INIT(0);
> >
> > This doesn't need to be an atomic variable, does it really?
> >
> > Why not have a simple bool variable "vmbus_initialized" or something.
> > It starts out as false, and then turns true when you are up and ready.
> > Then provide a function that tests it:
> > bool hv_vmbus_ready(void)
> > {
> > return vmbus_initialized
> > }
> > EXPORT_SYMBOL_GPL(hv_vmbus_ready);
> >
> >
> > this turns into a simple function call, again, never needing to know
> > about message types or any other mess.
>
> This looks good. I will add the hv_vmbus_ready() function. It doesn't even
> have to be exported symbol, because it's only used in vmbus module to ensure
> all channels are ready before vmbus_init() returns. Other modules won't get a
> chance to see uninitialized channels after hv_vmbus is loaded.
>
> Also, I'll cleanup the printk in hv_utils load/unload.
>
> Regarding the atomic variable -- the channel offer processing function is
> triggered by interrupts from host -- should we be concerned about "counter++"
> racing with each other in two interrupts happening around the same time?
If you are, having races like this, then you should be using a lock to
protect lots of things, not just one single atomic variable, right?
thanks,
greg k-h
next prev parent reply other threads:[~2010-05-21 22:22 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-05-21 19:58 [PATCH 1/1] staging: hv: Fix race condition on IC channel initialization Haiyang Zhang
2010-05-21 20:12 ` Greg KH
2010-05-21 20:21 ` Ky Srinivasan
2010-05-21 20:55 ` Greg KH
2010-05-22 15:10 ` Ky Srinivasan
2010-05-21 22:07 ` Haiyang Zhang
2010-05-21 22:22 ` Greg KH [this message]
2010-05-22 15:21 ` Ky Srinivasan
2010-05-25 23:14 ` Haiyang Zhang
-- strict thread matches above, loose matches on Subject: below --
2010-05-21 19:58 Haiyang Zhang
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=20100521222201.GA12429@suse.de \
--to=gregkh@suse.de \
--cc=devel@driverdev.osuosl.org \
--cc=haiyangz@microsoft.com \
--cc=hjanssen@microsoft.com \
--cc=linux-kernel@vger.kernel.org \
--cc=virtualization@lists.osdl.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.