BXE: changes sp_state back to a long
authorBarret Rhoden <brho@cs.berkeley.edu>
Thu, 15 Jan 2015 18:29:02 +0000 (10:29 -0800)
committerBarret Rhoden <brho@cs.berkeley.edu>
Tue, 3 Feb 2015 15:12:27 +0000 (10:12 -0500)
The only atomic_t ops were the reads, which can be done with an ACCESS_ONCE().
Note that we drop the & from sp_state, since ACCESS_ONCE() provides that.

Also, all of the bitops dislike getting an atomic_t (a pointer, for now).

kern/drivers/net/bxe/bxe.c
kern/drivers/net/bxe/bxe.h

index e2130e4..cb8ca63 100644 (file)
@@ -4024,7 +4024,7 @@ bxe_wait_sp_comp(struct bxe_adapter *sc,
 
     while (tout--) {
         mb();
-        if (!(atomic_read(&sc->sp_state) & mask)) {
+        if (!(ACCESS_ONCE(sc->sp_state) & mask)) {
             return (TRUE);
         }
 
@@ -4033,7 +4033,7 @@ bxe_wait_sp_comp(struct bxe_adapter *sc,
 
     mb();
 
-    tmp = atomic_read(&sc->sp_state);
+    tmp = ACCESS_ONCE(sc->sp_state);
     if (tmp & mask) {
         BLOGE(sc, "Filtering completion timed out: "
                   "sp_state 0x%lx, mask 0x%lx\n",
index fbde54a..c59fa61 100644 (file)
@@ -1612,7 +1612,7 @@ struct bxe_adapter {
     /* slow path */
        struct bxe_dma      sp_dma;
        struct bxe_slowpath *sp;
-       atomic_t       sp_state;
+       unsigned long       sp_state;
        
        /* slow path queue */
        struct bxe_dma spq_dma;