summaryrefslogtreecommitdiffstats
path: root/drivers/block/skd_main.c
diff options
context:
space:
mode:
authorBart Van Assche2017-08-17 22:13:00 +0200
committerJens Axboe2017-08-18 16:45:29 +0200
commit760b48ca938ee8a0a8719b0ca18302b1fe69654e (patch)
tree77e10584b7e3b2ed3dc1cf544b8750ce9878d514 /drivers/block/skd_main.c
parentskd: Fix endianness annotations (diff)
downloadkernel-qcow2-linux-760b48ca938ee8a0a8719b0ca18302b1fe69654e.tar.gz
kernel-qcow2-linux-760b48ca938ee8a0a8719b0ca18302b1fe69654e.tar.xz
kernel-qcow2-linux-760b48ca938ee8a0a8719b0ca18302b1fe69654e.zip
skd: Document locking assumptions
Signed-off-by: Bart Van Assche <bart.vanassche@wdc.com> Cc: Christoph Hellwig <hch@lst.de> Cc: Hannes Reinecke <hare@suse.de> Cc: Johannes Thumshirn <jthumshirn@suse.de> Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'drivers/block/skd_main.c')
-rw-r--r--drivers/block/skd_main.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/block/skd_main.c b/drivers/block/skd_main.c
index 5a69e3288ab7..5c69e9210a62 100644
--- a/drivers/block/skd_main.c
+++ b/drivers/block/skd_main.c
@@ -1894,6 +1894,8 @@ static void skd_complete_internal(struct skd_device *skdev,
struct skd_scsi_request *scsi =
(struct skd_scsi_request *)&skspcl->msg_buf[64];
+ lockdep_assert_held(&skdev->lock);
+
SKD_ASSERT(skspcl == &skdev->internal_skspcl);
dev_dbg(&skdev->pdev->dev, "complete internal %x\n", scsi->cdb[0]);
@@ -2564,6 +2566,8 @@ static int skd_isr_completion_posted(struct skd_device *skdev,
int rc = 0;
int processed = 0;
+ lockdep_assert_held(&skdev->lock);
+
for (;; ) {
SKD_ASSERT(skdev->skcomp_ix < SKD_N_COMPLETION_ENTRY);
@@ -2701,6 +2705,8 @@ static void skd_complete_other(struct skd_device *skdev,
u32 req_slot;
struct skd_special_context *skspcl;
+ lockdep_assert_held(&skdev->lock);
+
req_id = skcomp->tag;
req_table = req_id & SKD_ID_TABLE_MASK;
req_slot = req_id & SKD_ID_SLOT_MASK;
@@ -2774,6 +2780,8 @@ static void skd_complete_special(struct skd_device *skdev,
volatile struct fit_comp_error_info *skerr,
struct skd_special_context *skspcl)
{
+ lockdep_assert_held(&skdev->lock);
+
dev_dbg(&skdev->pdev->dev, " completing special request %p\n", skspcl);
if (skspcl->orphaned) {
/* Discard orphaned request */