On Wed, May 26, 2010 at 10:52:36PM +0000, Haiyang Zhang wrote: > > From: Greg KH [mailto:gregkh@xxxxxxx] > > How about a lock! > > > > What's so scary about a pretty little semaphore? They are all cute and > > cuddley and don't bite anyone. You should not be afraid to use them, > > they are here to do your bidding. > > No problem, we will add a lock here. > > > > The VmbusChannelProcessOffer() is called from interrupt context, and > > > initialize the channels, wake up vmbus_init when all channels are > > > ready. If using local variable only, how to pass the channel ready > > > info to vmbus_init() which is in a different context? > > > > No, I mean move the logic you added here, into the vmbus_init() call. > > Do you mean: > Move the event creat/wait/free, which is currently in vmbus_init(), > into vmbus_bus_init() function. Yes. > hv_channle_ready will still be a global variable. That's fine. > And, the wakeup call -- osd_WaitEventSet() --remains in > VmbusChannelProcessOffer() ? Yes. And as Jiri pointed out, this should be a simple completion. thanks, greg k-h _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/devel