As discussed previously, I used atomic_t to handle more general case
if vmbus interrupts happen on every cpu.
It ensures the channel assignment happens before the wakeup call:
osd_WaitEventSet(ic_channel_ready), if the compiler optimization re-arrange
the execution order.
Sure, I will replace it with TAB. I already ran checkpatch.pl on
this patch -- no error:
staging-next-2.6> scripts/checkpatch.pl 0525-Fix-race-condition-on-IC-channel-initialization.patch
total: 0 errors, 0 warnings, 71 lines checked
0525-Fix-race-condition-on-IC-channel-initialization.patch has no obvious style problems and is ready for submission.
IC stands for "integration components", such as Shutdown, Timesync,
Heartbeat, etc.
The ic_channel_ready variable is called by VmbusChannelProcessOffer / osd_WaitEventSet(ic_channel_ready) to wake up vmbus_init(). So it's
not a local variable.
Thanks,
- Haiyang
--