All of lore.kernel.org
 help / color / mirror / Atom feed
* [Adeos-main] [PATCH] fix !CONFIG_IPIPE build
@ 2006-12-21 11:49 Jan Kiszka
  2006-12-21 17:03 ` [Adeos-main] " Philippe Gerum
  0 siblings, 1 reply; 2+ messages in thread
From: Jan Kiszka @ 2006-12-21 11:49 UTC (permalink / raw)
  To: Philippe Gerum, adeos-main


[-- Attachment #1.1: Type: text/plain, Size: 177 bytes --]

Hi Philippe,

I never tested my type-based spinlocks in !CONFIG_IPIPE scenarios. Now I
did, and here comes the patch for 2.6.19-1.6-02 that is required - of
course.

Jan

[-- Attachment #1.2: fix-ipipe-off.patch --]
[-- Type: text/plain, Size: 5970 bytes --]

---
 include/linux/spinlock.h       |   36 ++++++++++++++++++------------------
 include/linux/spinlock_types.h |   10 ++++++----
 2 files changed, 24 insertions(+), 22 deletions(-)

Index: linux-2.6.19/include/linux/spinlock_types.h
===================================================================
--- linux-2.6.19.orig/include/linux/spinlock_types.h
+++ linux-2.6.19/include/linux/spinlock_types.h
@@ -33,7 +33,7 @@ typedef struct {
 
 typedef struct {
 	raw_spinlock_t __raw_lock;
-} ipipe_spinlock_t;
+} __ipipe_spinlock_t;
 
 #define SPINLOCK_MAGIC		0xdead4ead
 
@@ -91,16 +91,18 @@ typedef struct {
 
 #define SPIN_LOCK_UNLOCKED	__SPIN_LOCK_UNLOCKED(old_style_spin_init)
 #define IPIPE_SPIN_LOCK_UNLOCKED					\
-	(ipipe_spinlock_t) {	.__raw_lock = __RAW_SPIN_LOCK_UNLOCKED }
+	(__ipipe_spinlock_t) {	.__raw_lock = __RAW_SPIN_LOCK_UNLOCKED }
 #define RW_LOCK_UNLOCKED	__RW_LOCK_UNLOCKED(old_style_rw_init)
 
 #define DEFINE_SPINLOCK(x)	spinlock_t x = __SPIN_LOCK_UNLOCKED(x)
 #define DEFINE_RWLOCK(x)	rwlock_t x = __RW_LOCK_UNLOCKED(x)
 
 #ifdef CONFIG_IPIPE
-#define IPIPE_DEFINE_SPINLOCK(x) ipipe_spinlock_t x = IPIPE_SPIN_LOCK_UNLOCKED
+# define ipipe_spinlock_t	__ipipe_spinlock_t
+# define IPIPE_DEFINE_SPINLOCK(x) ipipe_spinlock_t x = IPIPE_SPIN_LOCK_UNLOCKED
 #else
-#define IPIPE_DEFINE_SPINLOCK(x) DEFINE_SPINLOCK(x)
+# define ipipe_spinlock_t	spinlock_t
+# define IPIPE_DEFINE_SPINLOCK(x) DEFINE_SPINLOCK(x)
 #endif
 
 #endif /* __LINUX_SPINLOCK_TYPES_H */
Index: linux-2.6.19/include/linux/spinlock.h
===================================================================
--- linux-2.6.19.orig/include/linux/spinlock.h
+++ linux-2.6.19/include/linux/spinlock.h
@@ -177,33 +177,33 @@ do {								\
 
 #define PICK_SPINOP(op, lock)						\
 do {									\
-	if (TYPE_EQUAL((lock), ipipe_spinlock_t))			\
-		__raw_spin##op(&((ipipe_spinlock_t *)(lock))->__raw_lock); \
+	if (TYPE_EQUAL((lock), __ipipe_spinlock_t))			\
+		__raw_spin##op(&((__ipipe_spinlock_t *)(lock))->__raw_lock); \
 	else if (TYPE_EQUAL(lock, spinlock_t))				\
 		_spin##op((spinlock_t *)(lock));			\
 } while (0)
 
 #define PICK_SPINOP_RAW(op, lock)					\
 do {									\
-	if (TYPE_EQUAL((lock), ipipe_spinlock_t))			\
-		__raw_spin##op(&((ipipe_spinlock_t *)(lock))->__raw_lock); \
+	if (TYPE_EQUAL((lock), __ipipe_spinlock_t))			\
+		__raw_spin##op(&((__ipipe_spinlock_t *)(lock))->__raw_lock); \
 	else if (TYPE_EQUAL(lock, spinlock_t))				\
 		__raw_spin##op(&((spinlock_t *)(lock))->raw_lock);	\
 } while (0)
 
 #define PICK_SPINLOCK_IRQ(lock)					\
 do {									\
-	if (TYPE_EQUAL((lock), ipipe_spinlock_t)) {			\
+	if (TYPE_EQUAL((lock), __ipipe_spinlock_t)) {			\
 		local_irq_disable_hw();					\
-		__raw_spin_lock(&((ipipe_spinlock_t *)(lock))->__raw_lock); \
+		__raw_spin_lock(&((__ipipe_spinlock_t *)(lock))->__raw_lock); \
 	} else if (TYPE_EQUAL(lock, spinlock_t))			\
 		_spin_lock_irq((spinlock_t *)(lock));			\
 } while (0)
 
 #define PICK_SPINUNLOCK_IRQ(lock)					\
 do {									\
-	if (TYPE_EQUAL((lock), ipipe_spinlock_t)) {			\
-		__raw_spin_unlock(&((ipipe_spinlock_t *)(lock))->__raw_lock); \
+	if (TYPE_EQUAL((lock), __ipipe_spinlock_t)) {			\
+		__raw_spin_unlock(&((__ipipe_spinlock_t *)(lock))->__raw_lock); \
 		local_irq_enable_hw();					\
 	} else if (TYPE_EQUAL(lock, spinlock_t))			\
 		_spin_unlock_irq((spinlock_t *)(lock));			\
@@ -211,9 +211,9 @@ do {									\
 
 #define PICK_SPINLOCK_IRQ_RAW(lock)					\
 do {									\
-	if (TYPE_EQUAL((lock), ipipe_spinlock_t)) {			\
+	if (TYPE_EQUAL((lock), __ipipe_spinlock_t)) {			\
 		local_irq_disable_hw();					\
-		__raw_spin_lock(&((ipipe_spinlock_t *)(lock))->__raw_lock); \
+		__raw_spin_lock(&((__ipipe_spinlock_t *)(lock))->__raw_lock); \
 	} else if (TYPE_EQUAL(lock, spinlock_t))			\
 		local_irq_disable();					\
 		__raw_spin_lock(&((spinlock_t *)(lock))->raw_lock);	\
@@ -221,8 +221,8 @@ do {									\
 
 #define PICK_SPINUNLOCK_IRQ_RAW(lock)				\
 do {									\
-	if (TYPE_EQUAL((lock), ipipe_spinlock_t)) {			\
-		__raw_spin_unlock(&((ipipe_spinlock_t *)(lock))->__raw_lock); \
+	if (TYPE_EQUAL((lock), __ipipe_spinlock_t)) {			\
+		__raw_spin_unlock(&((__ipipe_spinlock_t *)(lock))->__raw_lock); \
 		local_irq_enable_hw();				\
 	} else if (TYPE_EQUAL(lock, spinlock_t))			\
 		__raw_spin_unlock(&((spinlock_t *)(lock))->raw_lock);	\
@@ -234,9 +234,9 @@ extern int __bad_spinlock_type(void);
 
 #define PICK_SPINLOCK_IRQSAVE(lock, flags)				\
 do {									\
-	if (TYPE_EQUAL((lock), ipipe_spinlock_t)) {			\
+	if (TYPE_EQUAL((lock), __ipipe_spinlock_t)) {			\
 		local_irq_save_hw(flags);				\
-		__raw_spin_lock(&((ipipe_spinlock_t *)(lock))->__raw_lock); \
+		__raw_spin_lock(&((__ipipe_spinlock_t *)(lock))->__raw_lock); \
 	} else if (TYPE_EQUAL(lock, spinlock_t))			\
 		flags = _spin_lock_irqsave((spinlock_t *)(lock));	\
 	else __bad_spinlock_type();					\
@@ -244,9 +244,9 @@ do {									\
 #else
 #define PICK_SPINLOCK_IRQSAVE(lock, flags)				\
 do {									\
-	if (TYPE_EQUAL((lock), ipipe_spinlock_t)) {			\
+	if (TYPE_EQUAL((lock), __ipipe_spinlock_t)) {			\
 		local_irq_save_hw(flags);				\
-		__raw_spin_lock(&((ipipe_spinlock_t *)(lock))->__raw_lock); \
+		__raw_spin_lock(&((__ipipe_spinlock_t *)(lock))->__raw_lock); \
 	} else if (TYPE_EQUAL(lock, spinlock_t))			\
 		_spin_lock_irqsave((spinlock_t *)(lock), flags);	\
 } while (0)
@@ -254,8 +254,8 @@ do {									\
 
 #define PICK_SPINUNLOCK_IRQRESTORE(lock, flags)			\
 	do {								\
-	if (TYPE_EQUAL((lock), ipipe_spinlock_t)) {			\
-		__raw_spin_unlock(&((ipipe_spinlock_t *)(lock))->__raw_lock); \
+	if (TYPE_EQUAL((lock), __ipipe_spinlock_t)) {			\
+		__raw_spin_unlock(&((__ipipe_spinlock_t *)(lock))->__raw_lock); \
 		local_irq_restore_hw(flags);				\
 	} else if (TYPE_EQUAL(lock, spinlock_t))			\
 		_spin_unlock_irqrestore((spinlock_t *)(lock), flags);	\

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 250 bytes --]

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2006-12-21 17:03 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-12-21 11:49 [Adeos-main] [PATCH] fix !CONFIG_IPIPE build Jan Kiszka
2006-12-21 17:03 ` [Adeos-main] " Philippe Gerum

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.