Author: sephe
Date: Mon May 16 08:50:32 2016
New Revision: 299927
URL: https://svnweb.freebsd.org/changeset/base/299927

Log:
  hyperv/vmbus: Use atomic_testandclear
  
  Prepare to use unsigned long for event channel bit array.
  
  Sponsored by: Microsoft OSTC
  Differential Revision:        https://reviews.freebsd.org/D6382

Modified:
  head/sys/dev/hyperv/vmbus/hv_connection.c

Modified: head/sys/dev/hyperv/vmbus/hv_connection.c
==============================================================================
--- head/sys/dev/hyperv/vmbus/hv_connection.c   Mon May 16 08:34:17 2016        
(r299926)
+++ head/sys/dev/hyperv/vmbus/hv_connection.c   Mon May 16 08:50:32 2016        
(r299927)
@@ -33,6 +33,7 @@
 #include <sys/lock.h>
 #include <sys/mutex.h>
 #include <machine/bus.h>
+#include <machine/atomic.h>
 #include <vm/vm.h>
 #include <vm/vm_param.h>
 #include <vm/pmap.h>
@@ -313,7 +314,7 @@ hv_vmbus_on_events(int cpu)
                /*
                 * receive size is 1/2 page and divide that by 4 bytes
                 */
-               if (synch_test_and_clear_bit(0, &event->flags32[0])) {
+               if (atomic_testandclear_int(&event->flags32[0], 0)) {
                        recv_interrupt_page =
                            hv_vmbus_g_connection.recv_interrupt_page;
                } else {
@@ -337,8 +338,8 @@ hv_vmbus_on_events(int cpu)
                        continue;
 
                for (bit = 0; bit < HV_CHANNEL_DWORD_LEN; bit++) {
-                       if (synch_test_and_clear_bit(bit,
-                           (uint32_t *)&recv_interrupt_page[dword])) {
+                       if (atomic_testandclear_int(
+                           &recv_interrupt_page[dword], bit)) {
                                struct hv_vmbus_channel *channel;
 
                                rel_id = (dword << 5) + bit;
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to