提交 760b48ca 编写于 作者: B Bart Van Assche 提交者: Jens Axboe

skd: Document locking assumptions

Signed-off-by: NBart 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: NJens Axboe <axboe@kernel.dk>
上级 4854afe3
...@@ -1894,6 +1894,8 @@ static void skd_complete_internal(struct skd_device *skdev, ...@@ -1894,6 +1894,8 @@ static void skd_complete_internal(struct skd_device *skdev,
struct skd_scsi_request *scsi = struct skd_scsi_request *scsi =
(struct skd_scsi_request *)&skspcl->msg_buf[64]; (struct skd_scsi_request *)&skspcl->msg_buf[64];
lockdep_assert_held(&skdev->lock);
SKD_ASSERT(skspcl == &skdev->internal_skspcl); SKD_ASSERT(skspcl == &skdev->internal_skspcl);
dev_dbg(&skdev->pdev->dev, "complete internal %x\n", scsi->cdb[0]); 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, ...@@ -2564,6 +2566,8 @@ static int skd_isr_completion_posted(struct skd_device *skdev,
int rc = 0; int rc = 0;
int processed = 0; int processed = 0;
lockdep_assert_held(&skdev->lock);
for (;; ) { for (;; ) {
SKD_ASSERT(skdev->skcomp_ix < SKD_N_COMPLETION_ENTRY); SKD_ASSERT(skdev->skcomp_ix < SKD_N_COMPLETION_ENTRY);
...@@ -2701,6 +2705,8 @@ static void skd_complete_other(struct skd_device *skdev, ...@@ -2701,6 +2705,8 @@ static void skd_complete_other(struct skd_device *skdev,
u32 req_slot; u32 req_slot;
struct skd_special_context *skspcl; struct skd_special_context *skspcl;
lockdep_assert_held(&skdev->lock);
req_id = skcomp->tag; req_id = skcomp->tag;
req_table = req_id & SKD_ID_TABLE_MASK; req_table = req_id & SKD_ID_TABLE_MASK;
req_slot = req_id & SKD_ID_SLOT_MASK; req_slot = req_id & SKD_ID_SLOT_MASK;
...@@ -2774,6 +2780,8 @@ static void skd_complete_special(struct skd_device *skdev, ...@@ -2774,6 +2780,8 @@ static void skd_complete_special(struct skd_device *skdev,
volatile struct fit_comp_error_info *skerr, volatile struct fit_comp_error_info *skerr,
struct skd_special_context *skspcl) struct skd_special_context *skspcl)
{ {
lockdep_assert_held(&skdev->lock);
dev_dbg(&skdev->pdev->dev, " completing special request %p\n", skspcl); dev_dbg(&skdev->pdev->dev, " completing special request %p\n", skspcl);
if (skspcl->orphaned) { if (skspcl->orphaned) {
/* Discard orphaned request */ /* Discard orphaned request */
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册