summaryrefslogtreecommitdiffstats
path: root/drivers/atm/nicstar.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/atm/nicstar.h')
-rw-r--r--drivers/atm/nicstar.h17
1 files changed, 15 insertions, 2 deletions
diff --git a/drivers/atm/nicstar.h b/drivers/atm/nicstar.h
index 4e90650c0..7dfa9ec6f 100644
--- a/drivers/atm/nicstar.h
+++ b/drivers/atm/nicstar.h
@@ -28,6 +28,8 @@
/* Options ********************************************************************/
+#undef NS_DEBUG_SPINLOCKS
+
#define NS_MAX_CARDS 4 /* Maximum number of NICStAR based cards
controlled by the device driver. Must
be <= 5 */
@@ -705,6 +707,11 @@ typedef struct scq_info
int tbd_count; /* Only meaningful on variable rate */
wait_queue_head_t scqfull_waitq;
volatile char full; /* SCQ full indicator */
+ spinlock_t lock; /* SCQ spinlock */
+#ifdef NS_DEBUG_SPINLOCKS
+ volatile long has_lock;
+ volatile int cpu_lock;
+#endif /* NS_DEBUG_SPINLOCKS */
} scq_info;
@@ -779,8 +786,14 @@ typedef struct ns_dev
struct sk_buff *rcbuf; /* Current raw cell buffer */
u32 rawch; /* Raw cell queue head */
unsigned intcnt; /* Interrupt counter */
- volatile int in_handler: 1;
- volatile int in_poll: 1;
+ spinlock_t int_lock; /* Interrupt lock */
+ spinlock_t res_lock; /* Card resource lock */
+#ifdef NS_DEBUG_SPINLOCKS
+ volatile long has_int_lock;
+ volatile int cpu_int;
+ volatile long has_res_lock;
+ volatile int cpu_res;
+#endif /* NS_DEBUG_SPINLOCKS */
} ns_dev;