> 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. hv_channle_ready will still be a global variable. And, the wakeup call -- osd_WaitEventSet() --remains in VmbusChannelProcessOffer() ? Thanks, - Haiyang _______________________________________________ Virtualization mailing list Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/virtualization