vmbus: use kernel bitops for traversing interrupt mask
Use standard kernel operations for find first set bit to traverse the channel bit array. This has added benefit of speeding up lookup on 64 bit and because it uses find first set instruction. Signed-off-by: Stephen Hemminger <sthemmin@microsoft.com> Signed-off-by: K. Y. Srinivasan <kys@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:

committed by
Greg Kroah-Hartman

parent
bb6a4db92f
commit
5c1bec61fd
@@ -47,12 +47,8 @@ void vmbus_setevent(struct vmbus_channel *channel)
|
||||
* For channels marked as in "low latency" mode
|
||||
* bypass the monitor page mechanism.
|
||||
*/
|
||||
if ((channel->offermsg.monitor_allocated) &&
|
||||
(!channel->low_latency)) {
|
||||
/* Each u32 represents 32 channels */
|
||||
sync_set_bit(channel->offermsg.child_relid & 31,
|
||||
(unsigned long *) vmbus_connection.send_int_page +
|
||||
(channel->offermsg.child_relid >> 5));
|
||||
if (channel->offermsg.monitor_allocated && !channel->low_latency) {
|
||||
vmbus_send_interrupt(channel->offermsg.child_relid);
|
||||
|
||||
/* Get the child to parent monitor page */
|
||||
monitorpage = vmbus_connection.monitor_pages[1];
|
||||
|
Reference in New Issue
Block a user