Page MenuHomeFreeBSD

D6334.id16366.diff
No OneTemporary

D6334.id16366.diff

Index: head/sys/dev/hyperv/vmbus/hv_connection.c
===================================================================
--- head/sys/dev/hyperv/vmbus/hv_connection.c
+++ head/sys/dev/hyperv/vmbus/hv_connection.c
@@ -333,25 +333,30 @@
* Check events
*/
for (dword = 0; dword < maxdword; dword++) {
- if (recv_interrupt_page[dword]) {
+ if (recv_interrupt_page[dword] == 0)
+ continue;
+
for (bit = 0; bit < HV_CHANNEL_DWORD_LEN; bit++) {
- if (synch_test_and_clear_bit(bit,
- (uint32_t *) &recv_interrupt_page[dword])) {
- struct hv_vmbus_channel *channel;
-
- rel_id = (dword << 5) + bit;
- channel = hv_vmbus_g_connection.channels[rel_id];
-
- /* if channel is closed or closing */
- if (channel == NULL || channel->rxq == NULL)
- continue;
-
- if (channel->batched_reading)
- hv_ring_buffer_read_begin(&channel->inbound);
- taskqueue_enqueue(channel->rxq, &channel->channel_task);
- }
+ if (synch_test_and_clear_bit(bit,
+ (uint32_t *)&recv_interrupt_page[dword])) {
+ struct hv_vmbus_channel *channel;
+
+ rel_id = (dword << 5) + bit;
+ channel =
+ hv_vmbus_g_connection.channels[rel_id];
+
+ /* if channel is closed or closing */
+ if (channel == NULL || channel->rxq == NULL)
+ continue;
+
+ if (channel->batched_reading) {
+ hv_ring_buffer_read_begin(
+ &channel->inbound);
+ }
+ taskqueue_enqueue(channel->rxq,
+ &channel->channel_task);
+ }
}
- }
}
}

File Metadata

Mime Type
text/plain
Expires
Mon, Aug 24, 5:50 PM (21 h, 6 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
37147854
Default Alt Text
D6334.id16366.diff (1 KB)

Event Timeline