linux-arch.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: David Howells <dhowells@redhat.com>
To: paul.gortmaker@windriver.com
Cc: linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org,
	arnd@arndb.de,
	David Howells <dhowells@redhat.com>Arnd Bergmann <arnd@arndb.de>
Subject: [PATCH 30/38] Create asm-generic/barrier.h [ver #3]
Date: Thu, 15 Mar 2012 20:59:57 +0000	[thread overview]
Message-ID: <20120315205957.28759.64508.stgit@warthog.procyon.org.uk> (raw)
In-Reply-To: <20120315205514.28759.58969.stgit@warthog.procyon.org.uk>

Create asm-generic/barrier.h and move the barrier definitions from
asm-generic/system.h to it.

Signed-off-by: David Howells <dhowells@redhat.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
---

 include/asm-generic/barrier.h |   50 +++++++++++++++++++++++++++++++++++++++++
 include/asm-generic/system.h  |   34 +---------------------------
 2 files changed, 51 insertions(+), 33 deletions(-)
 create mode 100644 include/asm-generic/barrier.h

diff --git a/include/asm-generic/barrier.h b/include/asm-generic/barrier.h
new file mode 100644
index 0000000..639d7a4
--- /dev/null
+++ b/include/asm-generic/barrier.h
@@ -0,0 +1,50 @@
+/* Generic barrier definitions, based on MN10300 definitions.
+ *
+ * It should be possible to use these on really simple architectures,
+ * but it serves more as a starting point for new ports.
+ *
+ * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved.
+ * Written by David Howells (dhowells@redhat.com)
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public Licence
+ * as published by the Free Software Foundation; either version
+ * 2 of the Licence, or (at your option) any later version.
+ */
+#ifndef __ASM_GENERIC_BARRIER_H
+#define __ASM_GENERIC_BARRIER_H
+
+#ifndef __ASSEMBLY__
+
+#define nop() asm volatile ("nop")
+
+/*
+ * Force strict CPU ordering.
+ * And yes, this is required on UP too when we're talking
+ * to devices.
+ *
+ * This implementation only contains a compiler barrier.
+ */
+
+#define mb()	asm volatile ("": : :"memory")
+#define rmb()	mb()
+#define wmb()	asm volatile ("": : :"memory")
+
+#ifdef CONFIG_SMP
+#define smp_mb()	mb()
+#define smp_rmb()	rmb()
+#define smp_wmb()	wmb()
+#else
+#define smp_mb()	barrier()
+#define smp_rmb()	barrier()
+#define smp_wmb()	barrier()
+#endif
+
+#define set_mb(var, value)  do { var = value;  mb(); } while (0)
+#define set_wmb(var, value) do { var = value; wmb(); } while (0)
+
+#define read_barrier_depends()		do {} while (0)
+#define smp_read_barrier_depends()	do {} while (0)
+
+#endif /* !__ASSEMBLY__ */
+#endif /* __ASM_GENERIC_BARRIER_H */
diff --git a/include/asm-generic/system.h b/include/asm-generic/system.h
index 82cb53a..f98f693 100644
--- a/include/asm-generic/system.h
+++ b/include/asm-generic/system.h
@@ -19,6 +19,7 @@
 #include <linux/types.h>
 #include <linux/irqflags.h>
 
+#include <asm/barrier.h>
 #include <asm/cmpxchg.h>
 
 struct task_struct;
@@ -33,42 +34,9 @@ extern struct task_struct *__switch_to(struct task_struct *,
 
 #define arch_align_stack(x) (x)
 
-#define nop() asm volatile ("nop")
-
-#endif /* !__ASSEMBLY__ */
-
-/*
- * Force strict CPU ordering.
- * And yes, this is required on UP too when we're talking
- * to devices.
- *
- * This implementation only contains a compiler barrier.
- */
-
-#define mb()	asm volatile ("": : :"memory")
-#define rmb()	mb()
-#define wmb()	asm volatile ("": : :"memory")
-
-#ifdef CONFIG_SMP
-#define smp_mb()	mb()
-#define smp_rmb()	rmb()
-#define smp_wmb()	wmb()
-#else
-#define smp_mb()	barrier()
-#define smp_rmb()	barrier()
-#define smp_wmb()	barrier()
-#endif
-
-#define set_mb(var, value)  do { var = value;  mb(); } while (0)
-#define set_wmb(var, value) do { var = value; wmb(); } while (0)
-
-#define read_barrier_depends()		do {} while (0)
-#define smp_read_barrier_depends()	do {} while (0)
-
 /*
  * we make sure local_irq_enable() doesn't cause priority inversion
  */
-#ifndef __ASSEMBLY__
 
 /* This function doesn't exist, so you'll get a linker error
  *    if something tries to do an invalid xchg().  */

  parent reply	other threads:[~2012-03-15 21:00 UTC|newest]

Thread overview: 81+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-03-15 20:55 [RFC][PATCH 00/38] Disintegrate and kill asm/system.h [ver #3] David Howells
2012-03-15 20:55 ` [PATCH 01/38] ARM: Fix missing linux/types.h #inclusion in asm/hardware/iop3xx.h " David Howells
2012-03-15 20:55 ` [PATCH 02/38] Disintegrate asm/system.h for X86 " David Howells
2012-03-15 20:55 ` [PATCH 03/38] Disintegrate asm/system.h for Alpha " David Howells
2012-03-15 20:55   ` David Howells
2012-03-15 20:55 ` [PATCH 04/38] ARM: move CP15 definitions to separate header file " David Howells
2012-03-15 20:55   ` David Howells
2012-03-15 20:56 ` [PATCH 05/38] Disintegrate asm/system.h for ARM " David Howells
2012-03-15 20:56   ` David Howells
2012-03-16 14:40   ` Mark Salter
2012-03-19 10:45   ` David Howells
2012-03-15 20:56 ` [PATCH 06/38] Disintegrate asm/system.h for AVR32 " David Howells
2012-03-15 20:56 ` [PATCH 07/38] Disintegrate asm/system.h for Blackfin " David Howells
2012-03-15 20:56   ` David Howells
2012-03-15 23:02   ` Mike Frysinger
2012-03-16  3:06     ` Bob Liu
2012-03-15 20:56 ` [PATCH 08/38] Fix c6x's entry.S " David Howells
2012-03-15 20:56 ` [PATCH 09/38] Disintegrate asm/system.h for C6X " David Howells
2012-03-16 15:29   ` Mark Salter
2012-03-15 20:56 ` [PATCH 10/38] Disintegrate asm/system.h for CRIS " David Howells
2012-03-15 20:56   ` David Howells
2012-03-15 20:56 ` [PATCH 11/38] Disintegrate asm/system.h for FRV " David Howells
2012-03-15 20:56   ` David Howells
2012-03-15 20:57 ` [PATCH 12/38] Disintegrate asm/system.h for H8300 " David Howells
2012-03-15 20:57   ` David Howells
2012-03-15 20:57 ` [PATCH 13/38] Disintegrate asm/system.h for Hexagon " David Howells
2012-03-15 20:57   ` David Howells
2012-03-15 20:57 ` [PATCH 14/38] Disintegrate asm/system.h for IA64 " David Howells
2012-03-15 20:57   ` David Howells
2012-03-15 20:57 ` [PATCH 15/38] Disintegrate asm/system.h for M32R " David Howells
2012-03-15 20:57 ` [PATCH 16/38] Disintegrate asm/system.h for M68K " David Howells
2012-03-15 20:57 ` [PATCH 17/38] Disintegrate asm/system.h for Microblaze " David Howells
2012-03-15 20:57   ` David Howells
     [not found]   ` <20120315205754.28759.56543.stgit-S6HVgzuS8uM4Awkfq6JHfwNdhmdF6hFW@public.gmane.org>
2012-03-30  9:58     ` [microblaze-linux] " Michal Simek
2012-03-15 20:58 ` [PATCH 18/38] Disintegrate asm/system.h for MIPS " David Howells
2012-03-15 20:58   ` David Howells
2012-03-15 20:58 ` [PATCH 19/38] Disintegrate asm/system.h for MN10300 " David Howells
2012-03-15 20:58   ` David Howells
2012-03-15 20:58 ` [PATCH 20/38] Disintegrate asm/system.h for PA-RISC " David Howells
2012-03-15 20:58 ` [PATCH 21/38] Disintegrate asm/system.h for PowerPC " David Howells
2012-03-15 22:11   ` Stephen Rothwell
2012-03-15 20:58 ` [PATCH 22/38] Disintegrate asm/system.h for S390 " David Howells
2012-03-15 20:58   ` David Howells
2012-03-15 20:58 ` [PATCH 23/38] Disintegrate asm/system.h for Score " David Howells
2012-03-15 20:58 ` [PATCH 24/38] Disintegrate asm/system.h for SH " David Howells
2012-03-15 20:58   ` David Howells
2012-03-15 20:59 ` [PATCH 25/38] Disintegrate asm/system.h for Sparc " David Howells
2012-03-15 20:59   ` David Howells
2012-03-15 20:59 ` [PATCH 26/38] Disintegrate asm/system.h for Tile " David Howells
2012-03-15 20:59   ` David Howells
2012-03-15 20:59 ` [PATCH 27/38] Disintegrate asm/system.h for Unicore32 " David Howells
2012-03-16  3:20   ` Guan Xuetao
2012-03-16  9:10   ` David Howells
2012-03-19  8:50     ` Guan Xueao
2012-03-20 10:15     ` David Howells
2012-03-21  1:40       ` Guan Xuetao
2012-03-16 14:28   ` David Howells
2012-03-16 14:28     ` David Howells
2012-03-19  8:59     ` Guan Xueao
2012-03-19 11:18     ` David Howells
2012-03-19 11:18       ` David Howells
2012-03-20  3:01       ` [PATCH] Disintegrate asm/system.h for Unicore32 [based on ver #3, changed by gxt] Guan Xuetao
2012-03-20  3:10       ` [PATCH 27/38] Disintegrate asm/system.h for Unicore32 [ver #3] Guan Xuetao
2012-03-20  9:33       ` [PATCH] Disintegrate asm/system.h for Unicore32 [based on ver #3, changed by gxt] David Howells
2012-03-21  1:33         ` Guan Xuetao
2012-03-15 20:59 ` [PATCH 28/38] Disintegrate asm/system.h for Xtensa [ver #3] David Howells
2012-03-15 20:59 ` [PATCH 29/38] Make asm-generic/cmpxchg.h #include asm-generic/cmpxchg-local.h " David Howells
2012-03-15 20:59 ` David Howells [this message]
2012-03-15 21:00 ` [PATCH 31/38] Move the asm-generic/system.h xchg() implementation to asm-generic/cmpxchg.h " David Howells
2012-03-15 21:00   ` David Howells
2012-03-15 21:00 ` [PATCH 32/38] Split the switch_to() wrapper out of asm-generic/system.h " David Howells
2012-03-15 21:00   ` David Howells
2012-03-15 21:00 ` [PATCH 33/38] Split arch_align_stack() out from " David Howells
2012-03-15 21:00 ` [PATCH 34/38] Disintegrate asm/system.h for OpenRISC " David Howells
2012-03-15 21:00   ` David Howells
2012-03-15 21:00 ` [PATCH 35/38] Move all declarations of free_initmem() to linux/mm.h " David Howells
2012-03-15 21:00   ` David Howells
2012-03-15 21:00 ` [PATCH 36/38] Add #includes needed to permit the removal of asm/system.h " David Howells
2012-03-15 21:00   ` David Howells
2012-03-15 21:00 ` [PATCH 37/38] Remove all #inclusions " David Howells
2012-03-15 21:01 ` [PATCH 38/38] Delete all instances " David Howells

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20120315205957.28759.64508.stgit@warthog.procyon.org.uk \
    --to=dhowells@redhat.com \
    --cc=arnd@arndb.de \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=paul.gortmaker@windriver.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).