Displaying 20 results from an estimated 42 matches for "__smp_rmb".
Did you mean:
__smp_mb
2016 Jan 04
2
[PATCH v2 22/32] s390: define __smp_xxx
...18 +26,21 @@
> #define wmb() barrier()
> #define dma_rmb() mb()
> #define dma_wmb() mb()
> -#define smp_mb() mb()
> -#define smp_rmb() rmb()
> -#define smp_wmb() wmb()
> -
> -#define smp_store_release(p, v) \
> +#define __smp_mb() mb()
> +#define __smp_rmb() rmb()
> +#define __smp_wmb() wmb()
> +#define smp_mb() __smp_mb()
> +#define smp_rmb() __smp_rmb()
> +#define smp_wmb() __smp_wmb()
Why define the smp_*mb() primitives here? Would not the inclusion of
asm-generic/barrier.h do this?
2016 Jan 04
2
[PATCH v2 22/32] s390: define __smp_xxx
...18 +26,21 @@
> #define wmb() barrier()
> #define dma_rmb() mb()
> #define dma_wmb() mb()
> -#define smp_mb() mb()
> -#define smp_rmb() rmb()
> -#define smp_wmb() wmb()
> -
> -#define smp_store_release(p, v) \
> +#define __smp_mb() mb()
> +#define __smp_rmb() rmb()
> +#define __smp_wmb() wmb()
> +#define smp_mb() __smp_mb()
> +#define smp_rmb() __smp_rmb()
> +#define smp_wmb() __smp_wmb()
Why define the smp_*mb() primitives here? Would not the inclusion of
asm-generic/barrier.h do this?
2016 Jan 05
1
[PATCH v2 20/32] metag: define __smp_xxx
...flushptr = (volatile int *) LINSYSEVENT_WR_ATOMIC_UNLOCK;
> barrier();
> *flushptr = 0;
> barrier();
> }
> -#define smp_mb() fence()
> -#define smp_rmb() fence()
> -#define smp_wmb() barrier()
> +#define __smp_mb() metag_fence()
> +#define __smp_rmb() metag_fence()
> +#define __smp_wmb() barrier()
> #else
> -#define fence() do { } while (0)
> -#define smp_mb() barrier()
> -#define smp_rmb() barrier()
> -#define smp_wmb() barrier()
> +#define metag_fence() do { } while (0)
> +#define __s...
2016 Jan 05
1
[PATCH v2 20/32] metag: define __smp_xxx
...flushptr = (volatile int *) LINSYSEVENT_WR_ATOMIC_UNLOCK;
> barrier();
> *flushptr = 0;
> barrier();
> }
> -#define smp_mb() fence()
> -#define smp_rmb() fence()
> -#define smp_wmb() barrier()
> +#define __smp_mb() metag_fence()
> +#define __smp_rmb() metag_fence()
> +#define __smp_wmb() barrier()
> #else
> -#define fence() do { } while (0)
> -#define smp_mb() barrier()
> -#define smp_rmb() barrier()
> -#define smp_wmb() barrier()
> +#define metag_fence() do { } while (0)
> +#define __s...
2016 Jan 05
3
[PATCH v2 22/32] s390: define __smp_xxx
...; > > #define dma_wmb() mb()
> > > -#define smp_mb() mb()
> > > -#define smp_rmb() rmb()
> > > -#define smp_wmb() wmb()
> > > -
> > > -#define smp_store_release(p, v) \
> > > +#define __smp_mb() mb()
> > > +#define __smp_rmb() rmb()
> > > +#define __smp_wmb() wmb()
> > > +#define smp_mb() __smp_mb()
> > > +#define smp_rmb() __smp_rmb()
> > > +#define smp_wmb() __smp_wmb()
> >
> > Why define the smp_*mb() primitives here? Would not the inclusion of
> > asm...
2016 Jan 05
3
[PATCH v2 22/32] s390: define __smp_xxx
...; > > #define dma_wmb() mb()
> > > -#define smp_mb() mb()
> > > -#define smp_rmb() rmb()
> > > -#define smp_wmb() wmb()
> > > -
> > > -#define smp_store_release(p, v) \
> > > +#define __smp_mb() mb()
> > > +#define __smp_rmb() rmb()
> > > +#define __smp_wmb() wmb()
> > > +#define smp_mb() __smp_mb()
> > > +#define smp_rmb() __smp_rmb()
> > > +#define smp_wmb() __smp_wmb()
> >
> > Why define the smp_*mb() primitives here? Would not the inclusion of
> > asm...
2016 Jan 05
2
[PATCH v2 22/32] s390: define __smp_xxx
...e smp_mb() mb()
> > > > > -#define smp_rmb() rmb()
> > > > > -#define smp_wmb() wmb()
> > > > > -
> > > > > -#define smp_store_release(p, v) \
> > > > > +#define __smp_mb() mb()
> > > > > +#define __smp_rmb() rmb()
> > > > > +#define __smp_wmb() wmb()
> > > > > +#define smp_mb() __smp_mb()
> > > > > +#define smp_rmb() __smp_rmb()
> > > > > +#define smp_wmb() __smp_wmb()
> > > >
> > > > Why define the smp_*mb...
2016 Jan 05
2
[PATCH v2 22/32] s390: define __smp_xxx
...e smp_mb() mb()
> > > > > -#define smp_rmb() rmb()
> > > > > -#define smp_wmb() wmb()
> > > > > -
> > > > > -#define smp_store_release(p, v) \
> > > > > +#define __smp_mb() mb()
> > > > > +#define __smp_rmb() rmb()
> > > > > +#define __smp_wmb() wmb()
> > > > > +#define smp_mb() __smp_mb()
> > > > > +#define smp_rmb() __smp_rmb()
> > > > > +#define smp_wmb() __smp_wmb()
> > > >
> > > > Why define the smp_*mb...
2015 Dec 31
0
[PATCH v2 20/32] metag: define __smp_xxx
...ne void metag_fence(void)
{
volatile int *flushptr = (volatile int *) LINSYSEVENT_WR_ATOMIC_UNLOCK;
barrier();
*flushptr = 0;
barrier();
}
-#define smp_mb() fence()
-#define smp_rmb() fence()
-#define smp_wmb() barrier()
+#define __smp_mb() metag_fence()
+#define __smp_rmb() metag_fence()
+#define __smp_wmb() barrier()
#else
-#define fence() do { } while (0)
-#define smp_mb() barrier()
-#define smp_rmb() barrier()
-#define smp_wmb() barrier()
+#define metag_fence() do { } while (0)
+#define __smp_mb() barrier()
+#define __smp_...
2015 Dec 31
0
[PATCH v2 22/32] s390: define __smp_xxx
...er.h
+++ b/arch/s390/include/asm/barrier.h
@@ -26,18 +26,21 @@
#define wmb() barrier()
#define dma_rmb() mb()
#define dma_wmb() mb()
-#define smp_mb() mb()
-#define smp_rmb() rmb()
-#define smp_wmb() wmb()
-
-#define smp_store_release(p, v) \
+#define __smp_mb() mb()
+#define __smp_rmb() rmb()
+#define __smp_wmb() wmb()
+#define smp_mb() __smp_mb()
+#define smp_rmb() __smp_rmb()
+#define smp_wmb() __smp_wmb()
+
+#define __smp_store_release(p, v) \
do { \
compiletime_assert_atomic_type(*p); \
barrier(); \
WRITE_ONCE(*p, v); \
} while (0)...
2016 Jan 04
0
[PATCH v2 22/32] s390: define __smp_xxx
...> > #define dma_rmb() mb()
> > #define dma_wmb() mb()
> > -#define smp_mb() mb()
> > -#define smp_rmb() rmb()
> > -#define smp_wmb() wmb()
> > -
> > -#define smp_store_release(p, v) \
> > +#define __smp_mb() mb()
> > +#define __smp_rmb() rmb()
> > +#define __smp_wmb() wmb()
> > +#define smp_mb() __smp_mb()
> > +#define smp_rmb() __smp_rmb()
> > +#define smp_wmb() __smp_wmb()
>
> Why define the smp_*mb() primitives here? Would not the inclusion of
> asm-generic/barrier.h do this?
No bec...
2015 Dec 30
46
[PATCH 00/34] arch: barrier cleanup + __smp_XXX barriers for virt
This is really trying to cleanup some virt code, as suggested by Peter, who
said
> You could of course go fix that instead of mutilating things into
> sort-of functional state.
This work is needed for virtio, so it's probably easiest to
merge it through my tree - is this fine by everyone?
Arnd, if you agree, could you ack this please?
Note to arch maintainers: please don't
2015 Dec 30
46
[PATCH 00/34] arch: barrier cleanup + __smp_XXX barriers for virt
This is really trying to cleanup some virt code, as suggested by Peter, who
said
> You could of course go fix that instead of mutilating things into
> sort-of functional state.
This work is needed for virtio, so it's probably easiest to
merge it through my tree - is this fine by everyone?
Arnd, if you agree, could you ack this please?
Note to arch maintainers: please don't
2015 Dec 31
54
[PATCH v2 00/34] arch: barrier cleanup + barriers for virt
Changes since v1:
- replaced my asm-generic patch with an equivalent patch already in tip
- add wrappers with virt_ prefix for better code annotation,
as suggested by David Miller
- dropped XXX in patch names as this makes vger choke, Cc all relevant
mailing lists on all patches (not personal email, as the list becomes
too long then)
I parked this in vhost tree for now, but the
2015 Dec 31
54
[PATCH v2 00/34] arch: barrier cleanup + barriers for virt
Changes since v1:
- replaced my asm-generic patch with an equivalent patch already in tip
- add wrappers with virt_ prefix for better code annotation,
as suggested by David Miller
- dropped XXX in patch names as this makes vger choke, Cc all relevant
mailing lists on all patches (not personal email, as the list becomes
too long then)
I parked this in vhost tree for now, but the
2016 Jan 05
2
[PATCH v2 15/32] powerpc: define __smp_xxx
..._asm__ __volatile__ (stringify_in_c(SMPWMB) : : :"memory")
> -#else
> -#define smp_lwsync() barrier()
> -
> -#define smp_mb() barrier()
> -#define smp_rmb() barrier()
> -#define smp_wmb() barrier()
> -#endif /* CONFIG_SMP */
> +#define __smp_mb() mb()
> +#define __smp_rmb() __lwsync()
> +#define __smp_wmb() __asm__ __volatile__ (stringify_in_c(SMPWMB) : : :"memory")
>
> /*
> * This is a barrier which prevents following instructions from being
> @@ -67,18 +59,18 @@
> #define data_barrier(x) \
> asm volatile("twi 0,%0,0; isy...
2016 Jan 05
2
[PATCH v2 15/32] powerpc: define __smp_xxx
..._asm__ __volatile__ (stringify_in_c(SMPWMB) : : :"memory")
> -#else
> -#define smp_lwsync() barrier()
> -
> -#define smp_mb() barrier()
> -#define smp_rmb() barrier()
> -#define smp_wmb() barrier()
> -#endif /* CONFIG_SMP */
> +#define __smp_mb() mb()
> +#define __smp_rmb() __lwsync()
> +#define __smp_wmb() __asm__ __volatile__ (stringify_in_c(SMPWMB) : : :"memory")
>
> /*
> * This is a barrier which prevents following instructions from being
> @@ -67,18 +59,18 @@
> #define data_barrier(x) \
> asm volatile("twi 0,%0,0; isy...
2016 Jan 10
48
[PATCH v3 00/41] arch: barrier cleanup + barriers for virt
Changes since v2:
- extended checkpatch tests for barriers, and added patches
teaching it to warn about incorrect usage of barriers
(__smp_xxx barriers are for use by asm-generic code only),
should help prevent misuse by arch code
to address comments by Russell King
- patched more instances of xen to use virt_ barriers
as suggested by Stefano Stabellini
- implemented a 2 byte xchg on sh
2016 Jan 10
48
[PATCH v3 00/41] arch: barrier cleanup + barriers for virt
Changes since v2:
- extended checkpatch tests for barriers, and added patches
teaching it to warn about incorrect usage of barriers
(__smp_xxx barriers are for use by asm-generic code only),
should help prevent misuse by arch code
to address comments by Russell King
- patched more instances of xen to use virt_ barriers
as suggested by Stefano Stabellini
- implemented a 2 byte xchg on sh
2016 Jan 05
0
[PATCH v2 22/32] s390: define __smp_xxx
...()
> > > > -#define smp_mb() mb()
> > > > -#define smp_rmb() rmb()
> > > > -#define smp_wmb() wmb()
> > > > -
> > > > -#define smp_store_release(p, v) \
> > > > +#define __smp_mb() mb()
> > > > +#define __smp_rmb() rmb()
> > > > +#define __smp_wmb() wmb()
> > > > +#define smp_mb() __smp_mb()
> > > > +#define smp_rmb() __smp_rmb()
> > > > +#define smp_wmb() __smp_wmb()
> > >
> > > Why define the smp_*mb() primitives here? Would not...