aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/isdn/gigaset/capi.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/isdn/gigaset/capi.c b/drivers/isdn/gigaset/capi.c
index e5ea344a551a..bcc174e4f3b1 100644
--- a/drivers/isdn/gigaset/capi.c
+++ b/drivers/isdn/gigaset/capi.c
@@ -1052,6 +1052,7 @@ static inline void remove_appl_from_channel(struct bc_state *bcs,
1052 do { 1052 do {
1053 if (bcap->bcnext == ap) { 1053 if (bcap->bcnext == ap) {
1054 bcap->bcnext = bcap->bcnext->bcnext; 1054 bcap->bcnext = bcap->bcnext->bcnext;
1055 spin_unlock_irqrestore(&bcs->aplock, flags);
1055 return; 1056 return;
1056 } 1057 }
1057 bcap = bcap->bcnext; 1058 bcap = bcap->bcnext;
nt counter; } __attribute__ ((aligned (4))) atomic_t; #define ATOMIC_INIT(i) { (i) } #ifdef __KERNEL__ #if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 2) #define __CS_LOOP(ptr, op_val, op_string) ({ \ typeof(ptr->counter) old_val, new_val; \ asm volatile( \ " l %0,%2\n" \ "0: lr %1,%0\n" \ op_string " %1,%3\n" \ " cs %0,%1,%2\n" \ " jl 0b" \ : "=&d" (old_val), "=&d" (new_val), \ "=Q" (((atomic_t *)(ptr))->counter) \ : "d" (op_val), "Q" (((atomic_t *)(ptr))->counter) \ : "cc", "memory"); \ new_val; \ }) #else /* __GNUC__ */ #define __CS_LOOP(ptr, op_val, op_string) ({ \