mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
To: <linux-kernel@vger.kernel.org>
Cc: <xen-devel@lists.xensource.com>,
	<Stefano.Stabellini@eu.citrix.com>, <konrad.wilk@oracle.com>,
	<Ian.Campbell@citrix.com>, <tim@xen.org>,
	<linux-arm-kernel@lists.infradead.org>,
	<linaro-dev@lists.linaro.org>, <catalin.marinas@arm.com>,
	<arnd@arndb.de>,
	Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Subject: [PATCH v2 04/23] xen/arm: sync_bitops
Date: Mon, 6 Aug 2012 15:27:07 +0100	[thread overview]
Message-ID: <1344263246-28036-4-git-send-email-stefano.stabellini@eu.citrix.com> (raw)
In-Reply-To: <alpine.DEB.2.02.1208061428060.4645@kaball.uk.xensource.com>

sync_bitops functions are equivalent to the SMP implementation of the
original functions, independently from CONFIG_SMP being defined.

We need them because _set_bit etc are not SMP safe if !CONFIG_SMP. But
under Xen you might be communicating with a completely external entity
who might be on another CPU (e.g. two uniprocessor guests communicating
via event channels and grant tables). So we need a variant of the bit
ops which are SMP safe even on a UP kernel.

Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
---
 arch/arm/include/asm/sync_bitops.h |   27 +++++++++++++++++++++++++++
 1 files changed, 27 insertions(+), 0 deletions(-)
 create mode 100644 arch/arm/include/asm/sync_bitops.h

diff --git a/arch/arm/include/asm/sync_bitops.h b/arch/arm/include/asm/sync_bitops.h
new file mode 100644
index 0000000..63479ee
--- /dev/null
+++ b/arch/arm/include/asm/sync_bitops.h
@@ -0,0 +1,27 @@
+#ifndef __ASM_SYNC_BITOPS_H__
+#define __ASM_SYNC_BITOPS_H__
+
+#include <asm/bitops.h>
+#include <asm/system.h>
+
+/* sync_bitops functions are equivalent to the SMP implementation of the
+ * original functions, independently from CONFIG_SMP being defined.
+ *
+ * We need them because _set_bit etc are not SMP safe if !CONFIG_SMP. But
+ * under Xen you might be communicating with a completely external entity
+ * who might be on another CPU (e.g. two uniprocessor guests communicating
+ * via event channels and grant tables). So we need a variant of the bit
+ * ops which are SMP safe even on a UP kernel.
+ */
+
+#define sync_set_bit(nr, p)		_set_bit(nr, p)
+#define sync_clear_bit(nr, p)		_clear_bit(nr, p)
+#define sync_change_bit(nr, p)		_change_bit(nr, p)
+#define sync_test_and_set_bit(nr, p)	_test_and_set_bit(nr, p)
+#define sync_test_and_clear_bit(nr, p)	_test_and_clear_bit(nr, p)
+#define sync_test_and_change_bit(nr, p)	_test_and_change_bit(nr, p)
+#define sync_test_bit(nr, addr)		test_bit(nr, addr)
+#define sync_cmpxchg			cmpxchg
+
+
+#endif
-- 
1.7.2.5


  parent reply	other threads:[~2012-08-06 14:36 UTC|newest]

Thread overview: 62+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-08-06 14:25 [PATCH v2 00/23] Introduce Xen support on ARM Stefano Stabellini
2012-08-06 14:27 ` [PATCH v2 01/23] arm: initial Xen support Stefano Stabellini
2012-08-07 18:10   ` Konrad Rzeszutek Wilk
2012-08-08 16:31     ` Stefano Stabellini
2012-08-06 14:27 ` [PATCH v2 02/23] xen/arm: hypercalls Stefano Stabellini
2012-08-08 12:41   ` Dave Martin
2012-08-09 15:37     ` Stefano Stabellini
2012-08-09 16:50       ` Dave Martin
2012-08-06 14:27 ` [PATCH v2 03/23] xen/arm: page.h definitions Stefano Stabellini
2012-08-07 18:13   ` Konrad Rzeszutek Wilk
2012-08-08 16:33     ` Stefano Stabellini
2012-08-06 14:27 ` Stefano Stabellini [this message]
2012-08-07 18:13   ` [PATCH v2 04/23] xen/arm: sync_bitops Konrad Rzeszutek Wilk
2012-08-06 14:27 ` [PATCH v2 05/23] xen/arm: empty implementation of grant_table arch specific functions Stefano Stabellini
2012-08-07 18:13   ` Konrad Rzeszutek Wilk
2012-08-06 14:27 ` [PATCH v2 06/23] xen: missing includes Stefano Stabellini
2012-08-07 18:14   ` Konrad Rzeszutek Wilk
2012-08-08 16:38     ` Stefano Stabellini
2012-08-06 14:27 ` [PATCH v2 07/23] xen/arm: Xen detection and shared_info page mapping Stefano Stabellini
2012-08-06 16:23   ` [Xen-devel] " David Vrabel
2012-08-08 16:24     ` Stefano Stabellini
2012-08-07 18:17   ` Konrad Rzeszutek Wilk
2012-08-06 14:27 ` [PATCH v2 08/23] xen/arm: Introduce xen_pfn_t for pfn and mfn types Stefano Stabellini
2012-08-07 18:18   ` Konrad Rzeszutek Wilk
2012-08-06 14:27 ` [PATCH v2 09/23] xen/arm: Introduce xen_ulong_t for unsigned long Stefano Stabellini
2012-08-07 18:18   ` Konrad Rzeszutek Wilk
2012-08-08 16:42     ` Stefano Stabellini
2012-08-06 14:27 ` [PATCH v2 10/23] xen/arm: compile and run xenbus Stefano Stabellini
2012-08-07 18:21   ` Konrad Rzeszutek Wilk
2012-08-07 18:44     ` Daniel De Graaf
2012-08-08 16:51       ` Stefano Stabellini
2012-08-08 17:01         ` Daniel De Graaf
2012-08-08 17:19           ` Stefano Stabellini
2012-08-08 17:33             ` Daniel De Graaf
2012-08-08 17:42               ` Stefano Stabellini
2012-08-09 16:54                 ` Konrad Rzeszutek Wilk
2012-08-06 14:27 ` [PATCH v2 11/23] xen: do not compile manage, balloon, pci, acpi and cpu_hotplug on ARM Stefano Stabellini
2012-08-07 18:23   ` Konrad Rzeszutek Wilk
2012-08-06 14:27 ` [PATCH v2 12/23] xen/arm: introduce CONFIG_XEN " Stefano Stabellini
2012-08-07 18:23   ` Konrad Rzeszutek Wilk
2012-08-06 14:27 ` [PATCH v2 13/23] xen/arm: get privilege status Stefano Stabellini
2012-08-07 18:24   ` Konrad Rzeszutek Wilk
2012-08-06 14:27 ` [PATCH v2 14/23] xen/arm: initialize grant_table on ARM Stefano Stabellini
2012-08-06 14:27 ` [PATCH v2 15/23] xen/arm: receive Xen events " Stefano Stabellini
2012-08-07 18:30   ` Konrad Rzeszutek Wilk
2012-08-08 18:05     ` Stefano Stabellini
2012-08-06 14:27 ` [PATCH v2 16/23] xen: clear IRQ_NOAUTOEN and IRQ_NOREQUEST Stefano Stabellini
2012-08-07 18:31   ` Konrad Rzeszutek Wilk
2012-08-06 14:27 ` [PATCH v2 17/23] xen/arm: implement alloc/free_xenballooned_pages with alloc_pages/kfree Stefano Stabellini
2012-08-07 18:31   ` Konrad Rzeszutek Wilk
2012-08-06 14:27 ` [PATCH v2 18/23] xen: allow privcmd for HVM guests Stefano Stabellini
2012-08-07 18:31   ` Konrad Rzeszutek Wilk
2012-08-06 14:27 ` [PATCH v2 19/23] xen/arm: compile blkfront and blkback Stefano Stabellini
2012-08-07 18:32   ` Konrad Rzeszutek Wilk
2012-08-06 14:27 ` [PATCH v2 20/23] xen/arm: compile netback Stefano Stabellini
2012-08-07 18:32   ` Konrad Rzeszutek Wilk
2012-08-06 14:27 ` [PATCH v2 21/23] xen: update xen_add_to_physmap interface Stefano Stabellini
2012-08-07 18:33   ` Konrad Rzeszutek Wilk
2012-08-08 17:22     ` Stefano Stabellini
2012-08-06 14:27 ` [PATCH v2 22/23] arm/v2m: initialize arch_timers even if v2m_timer is not present Stefano Stabellini
2012-08-06 14:27 ` [PATCH v2 23/23] [HACK] xen/arm: implement xen_remap_domain_mfn_range Stefano Stabellini
2012-08-07 18:39   ` Konrad Rzeszutek Wilk

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=1344263246-28036-4-git-send-email-stefano.stabellini@eu.citrix.com \
    --to=stefano.stabellini@eu.citrix.com \
    --cc=Ian.Campbell@citrix.com \
    --cc=arnd@arndb.de \
    --cc=catalin.marinas@arm.com \
    --cc=konrad.wilk@oracle.com \
    --cc=linaro-dev@lists.linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=tim@xen.org \
    --cc=xen-devel@lists.xensource.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

all inboxes | Powered by JetHome®