hpilo: add locking comment
authorDavid Altobelli <david.altobelli@hp.com>
Fri, 18 Sep 2009 19:46:26 +0000 (12:46 -0700)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 11 Dec 2009 19:24:51 +0000 (11:24 -0800)
Add explanation about lock nesting and purpose of each lock in hpilo.

Signed-off-by: David Altobelli <david.altobelli@hp.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/misc/hpilo.h

index 3857605..247eb38 100644 (file)
@@ -44,9 +44,20 @@ struct ilo_hwinfo {
 
        struct pci_dev *ilo_dev;
 
+       /*
+        * open_lock      serializes ccb_cnt during open and close
+        * [ irq disabled ]
+        * -> alloc_lock  used when adding/removing/searching ccb_alloc,
+        *                which represents all ccbs open on the device
+        * --> fifo_lock  controls access to fifo queues shared with hw
+        *
+        * Locks must be taken in this order, but open_lock and alloc_lock
+        * are optional, they do not need to be held in order to take a
+        * lower level lock.
+        */
+       spinlock_t open_lock;
        spinlock_t alloc_lock;
        spinlock_t fifo_lock;
-       spinlock_t open_lock;
 
        struct cdev cdev;
 };