staging: unisys: remove MEMORYBARRIER AND VolatileBarrier from commontypes
authorBenjamin Romer <benjamin.romer@unisys.com>
Sun, 3 Aug 2014 02:03:38 +0000 (22:03 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 16 Aug 2014 19:23:06 +0000 (12:23 -0700)
Remove the MEMORYBARRIER and VolatileBarrier() defines from commontypes.h and
convert the spots that used this to mb(). Add comments to each use to indicate
that the barrier is used to ensure channel synchronization between guests.

Signed-off-by: Benjamin Romer <benjamin.romer@unisys.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/unisys/channels/channel.c
drivers/staging/unisys/common-spar/include/channels/channel.h
drivers/staging/unisys/include/commontypes.h
drivers/staging/unisys/visorchannel/visorchannel_funcs.c

index ade2fe0da154f1c82d998f5bf8939fd5ca1eabe6..b4bdee4b575b0b459f3a0c299e2988d359931fdc 100644 (file)
@@ -75,7 +75,7 @@ visor_signal_insert(CHANNEL_HEADER __iomem *pChannel, u32 Queue, void *pSignal)
                (head * readl(&pqhdr->SignalSize));
        memcpy_toio(psignal, pSignal, readl(&pqhdr->SignalSize));
 
-       VolatileBarrier();
+       mb(); /* channel synch */
        writel(head, &pqhdr->Head);
 
        writeq(readq(&pqhdr->NumSignalsSent) + 1, &pqhdr->NumSignalsSent);
@@ -128,7 +128,7 @@ visor_signal_remove(CHANNEL_HEADER __iomem *pChannel, u32 Queue, void *pSignal)
                (tail * readl(&pqhdr->SignalSize));
        memcpy_fromio(pSignal, psource, readl(&pqhdr->SignalSize));
 
-       VolatileBarrier();
+       mb(); /* channel synch */
        writel(tail, &pqhdr->Tail);
 
        writeq(readq(&pqhdr->NumSignalsReceived) + 1,
@@ -186,7 +186,7 @@ SignalRemoveAll(pCHANNEL_HEADER pChannel, u32 Queue, void *pSignal)
                memcpy((char *) pSignal + (pqhdr->SignalSize * signalCount),
                       psource, pqhdr->SignalSize);
 
-               VolatileBarrier();
+               mb(); /* channel synch */
                pqhdr->Tail = tail;
 
                signalCount++;
index 15a8d6b35dac304784e4543ab7f9792a364ac271..bc923336fabdc08836bd413b67dfb4fe47604a11 100644 (file)
@@ -157,7 +157,7 @@ ULTRA_CHANNELCLI_STRING(u32 v)
                              PathName_Last_N_Nodes(__FILE__, 4), __LINE__); \
                writel(newstate, &((CHANNEL_HEADER __iomem *) \
                                   (pChan))->CliStateOS);               \
-               MEMORYBARRIER;                                          \
+               mb(); /* required for channel synch */                  \
        } while (0)
 
 #define ULTRA_CHANNEL_CLIENT_ACQUIRE_OS(pChan, chanId, logCtx) \
@@ -458,7 +458,7 @@ ULTRA_channel_client_acquire_os(void __iomem *pChannel, u8 *chanId,
                              CHANNELCLI_OWNED,
                              PathName_Last_N_Nodes((u8 *) file, 4), line);
                writel(CHANNELCLI_OWNED, &pChan->CliStateOS);
-               MEMORYBARRIER;
+               mb(); /* required for channel synch */
        }
        if (readl(&pChan->CliStateOS) == CHANNELCLI_OWNED) {
                if (readb(&pChan->CliErrorOS) != 0) {
@@ -502,7 +502,7 @@ ULTRA_channel_client_acquire_os(void __iomem *pChannel, u8 *chanId,
                return 0;
        }
        writel(CHANNELCLI_BUSY, &pChan->CliStateOS);
-       MEMORYBARRIER;
+       mb(); /* required for channel synch */
        if (readl(&pChan->CliStateBoot) == CHANNELCLI_BUSY) {
                if ((readb(&pChan->CliErrorOS)
                     & ULTRA_CLIERROROS_THROTTLEMSG_BUSY) == 0) {
@@ -521,7 +521,7 @@ ULTRA_channel_client_acquire_os(void __iomem *pChannel, u8 *chanId,
                }
                /* reset busy */
                writel(CHANNELCLI_ATTACHED, &pChan->CliStateOS);
-               MEMORYBARRIER;
+               mb(); /* required for channel synch */
                return 0;
        }
        if (readb(&pChan->CliErrorOS) != 0) {
index 53ac77053340d622f1e4949aa0d0e6b27a925d01..34b31ad7b934963f6eee3e73bf3f29f55f5f1f09 100644 (file)
@@ -30,8 +30,6 @@ typedef u64 GUEST_PHYSICAL_ADDRESS;
 #define INLINE inline
 #define OFFSETOF offsetof
 
-#define MEMORYBARRIER mb()
-
 #define CHANNEL_GUID_MISMATCH(chType, chName, field, expected, actual, fil, \
                              lin, logCtx)                              \
        do {                                                            \
@@ -63,7 +61,5 @@ typedef u64 GUEST_PHYSICAL_ADDRESS;
                      LineNumber, Str, args...)                         \
        pr_info(Str, ## args)
 
-#define VolatileBarrier() MEMORYBARRIER
-
 #endif
 
index 62ec9280cb3a7566e26d29e5792ea29eafac4f89..947b23c1e47817052dfa317ff2a51e1055398529 100644 (file)
@@ -424,7 +424,7 @@ visorchannel_signalremove(VISORCHANNEL *channel, u32 queue, void *msg)
        /* For each data field in SIGNAL_QUEUE_HEADER that was modified,
         * update host memory.
         */
-       MEMORYBARRIER;
+       mb(); /* required for channel synch */
        if (!SIG_WRITE_FIELD(channel, queue, &sig_hdr, Tail)) {
                ERRDRV("visor_memregion_write of Tail failed: (status=%d)\n",
                       rc);
@@ -477,7 +477,7 @@ visorchannel_signalinsert(VISORCHANNEL *channel, u32 queue, void *msg)
        /* For each data field in SIGNAL_QUEUE_HEADER that was modified,
         * update host memory.
         */
-       MEMORYBARRIER;
+       mb(); /* required for channel synch */
        if (!SIG_WRITE_FIELD(channel, queue, &sig_hdr, Head)) {
                ERRDRV("visor_memregion_write of Head failed: (status=%d)\n",
                       rc);