From: Dan Carpenter <dan.carpenter@oracle.com>
To: "wenxiong@linux.vnet.ibm.com" <wenxiong@linux.vnet.ibm.com>
Cc: James Bottomley <JBottomley@Parallels.com>,
linux-scsi@vger.kernel.org, kbuild@01.org
Subject: [scsi:for-next 12/27] drivers/scsi/ipr.c:6568 ipr_qc_issue() warn: inconsistent returns spin_lock:&ipr_cmd->hrrq->_lock: locked (6562) unlocked (6499,6507,6568)
Date: Mon, 17 Dec 2012 16:24:04 +0300 [thread overview]
Message-ID: <20121217132403.GO5083@mwanda> (raw)
Hi,
FYI, there are new smatch warnings show up in
tree: git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi.git for-next
head: e3ff197a750d2912d0bb2a0161c23c18bad250ad
commit: e7ef7307d9e2c15802e8ea1da9878e0550ec87bc [12/27] [SCSI] ipr: Reduce lock contention
drivers/scsi/ipr.c:5434 ipr_build_ioadl64() info: why not propagate 'nseg' from scsi_dma_map() instead of (-1)?
drivers/scsi/ipr.c:5485 ipr_build_ioadl() info: why not propagate 'nseg' from scsi_dma_map() instead of (-1)?
+ drivers/scsi/ipr.c:6568 ipr_qc_issue() warn: inconsistent returns spin_lock:&ipr_cmd->hrrq->_lock: locked (6562) unlocked (6499,6507,6568)
git remote add scsi git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi.git
git remote update scsi
git checkout e7ef7307d9e2c15802e8ea1da9878e0550ec87bc
vim +6568 drivers/scsi/ipr.c
35a39691 Brian King 2006-09-25 6493
e7ef7307 wenxiong@linux.vnet.ibm.com 2012-12-03 6494 if (qc->lldd_task == NULL)
e7ef7307 wenxiong@linux.vnet.ibm.com 2012-12-03 6495 ipr_qc_defer(qc);
e7ef7307 wenxiong@linux.vnet.ibm.com 2012-12-03 6496
e7ef7307 wenxiong@linux.vnet.ibm.com 2012-12-03 6497 ipr_cmd = qc->lldd_task;
e7ef7307 wenxiong@linux.vnet.ibm.com 2012-12-03 6498 if (ipr_cmd == NULL)
0feeed82 Brian King 2007-03-29 @6499 return AC_ERR_SYSTEM;
35a39691 Brian King 2006-09-25 6500
e7ef7307 wenxiong@linux.vnet.ibm.com 2012-12-03 6501 qc->lldd_task = NULL;
e7ef7307 wenxiong@linux.vnet.ibm.com 2012-12-03 6502 spin_lock(&ipr_cmd->hrrq->_lock);
e7ef7307 wenxiong@linux.vnet.ibm.com 2012-12-03 6503 if (unlikely(!ipr_cmd->hrrq->allow_cmds ||
e7ef7307 wenxiong@linux.vnet.ibm.com 2012-12-03 6504 ipr_cmd->hrrq->ioa_is_dead)) {
e7ef7307 wenxiong@linux.vnet.ibm.com 2012-12-03 6505 list_add_tail(&ipr_cmd->queue, &ipr_cmd->hrrq->hrrq_free_q);
e7ef7307 wenxiong@linux.vnet.ibm.com 2012-12-03 6506 spin_unlock(&ipr_cmd->hrrq->_lock);
e7ef7307 wenxiong@linux.vnet.ibm.com 2012-12-03 @6507 return AC_ERR_SYSTEM;
e7ef7307 wenxiong@linux.vnet.ibm.com 2012-12-03 6508 }
e7ef7307 wenxiong@linux.vnet.ibm.com 2012-12-03 6509
7af0de31 wenxiong@linux.vnet.ibm.com 2012-12-03 6510 ipr_init_ipr_cmnd(ipr_cmd, ipr_lock_and_done);
35a39691 Brian King 2006-09-25 6511 ioarcb = &ipr_cmd->ioarcb;
35a39691 Brian King 2006-09-25 6512
a32c055f Wayne Boyer 2010-02-19 6513 if (ioa_cfg->sis64) {
a32c055f Wayne Boyer 2010-02-19 6514 regs = &ipr_cmd->i.ata_ioadl.regs;
a32c055f Wayne Boyer 2010-02-19 6515 ioarcb->add_cmd_parms_offset = cpu_to_be16(sizeof(*ioarcb));
a32c055f Wayne Boyer 2010-02-19 6516 } else
a32c055f Wayne Boyer 2010-02-19 6517 regs = &ioarcb->u.add_data.u.regs;
a32c055f Wayne Boyer 2010-02-19 6518
a32c055f Wayne Boyer 2010-02-19 6519 memset(regs, 0, sizeof(*regs));
a32c055f Wayne Boyer 2010-02-19 6520 ioarcb->add_cmd_parms_len = cpu_to_be16(sizeof(*regs));
35a39691 Brian King 2006-09-25 6521
e7ef7307 wenxiong@linux.vnet.ibm.com 2012-12-03 6522 list_add_tail(&ipr_cmd->queue, &ipr_cmd->hrrq->hrrq_pending_q);
35a39691 Brian King 2006-09-25 6523 ipr_cmd->qc = qc;
35a39691 Brian King 2006-09-25 6524 ipr_cmd->done = ipr_sata_done;
3e7ebdfa Wayne Boyer 2010-02-19 6525 ipr_cmd->ioarcb.res_handle = res->res_handle;
35a39691 Brian King 2006-09-25 6526 ioarcb->cmd_pkt.request_type = IPR_RQTYPE_ATA_PASSTHRU;
35a39691 Brian King 2006-09-25 6527 ioarcb->cmd_pkt.flags_hi |= IPR_FLAGS_HI_NO_LINK_DESC;
35a39691 Brian King 2006-09-25 6528 ioarcb->cmd_pkt.flags_hi |= IPR_FLAGS_HI_NO_ULEN_CHK;
dde20207 James Bottomley 2008-02-19 6529 ipr_cmd->dma_use_sg = qc->n_elem;
35a39691 Brian King 2006-09-25 6530
a32c055f Wayne Boyer 2010-02-19 6531 if (ioa_cfg->sis64)
a32c055f Wayne Boyer 2010-02-19 6532 ipr_build_ata_ioadl64(ipr_cmd, qc);
a32c055f Wayne Boyer 2010-02-19 6533 else
a32c055f Wayne Boyer 2010-02-19 6534 ipr_build_ata_ioadl(ipr_cmd, qc);
a32c055f Wayne Boyer 2010-02-19 6535
35a39691 Brian King 2006-09-25 6536 regs->flags |= IPR_ATA_FLAG_STATUS_ON_GOOD_COMPLETION;
35a39691 Brian King 2006-09-25 6537 ipr_copy_sata_tf(regs, &qc->tf);
35a39691 Brian King 2006-09-25 6538 memcpy(ioarcb->cmd_pkt.cdb, qc->cdb, IPR_MAX_CDB_LEN);
3e7ebdfa Wayne Boyer 2010-02-19 6539 ipr_trc_hook(ipr_cmd, IPR_TRACE_START, IPR_GET_RES_PHYS_LOC(res));
35a39691 Brian King 2006-09-25 6540
35a39691 Brian King 2006-09-25 6541 switch (qc->tf.protocol) {
35a39691 Brian King 2006-09-25 6542 case ATA_PROT_NODATA:
35a39691 Brian King 2006-09-25 6543 case ATA_PROT_PIO:
35a39691 Brian King 2006-09-25 6544 break;
35a39691 Brian King 2006-09-25 6545
35a39691 Brian King 2006-09-25 6546 case ATA_PROT_DMA:
35a39691 Brian King 2006-09-25 6547 regs->flags |= IPR_ATA_FLAG_XFER_TYPE_DMA;
35a39691 Brian King 2006-09-25 6548 break;
35a39691 Brian King 2006-09-25 6549
0dc36888 Tejun Heo 2007-12-18 6550 case ATAPI_PROT_PIO:
0dc36888 Tejun Heo 2007-12-18 6551 case ATAPI_PROT_NODATA:
35a39691 Brian King 2006-09-25 6552 regs->flags |= IPR_ATA_FLAG_PACKET_CMD;
35a39691 Brian King 2006-09-25 6553 break;
35a39691 Brian King 2006-09-25 6554
0dc36888 Tejun Heo 2007-12-18 6555 case ATAPI_PROT_DMA:
35a39691 Brian King 2006-09-25 6556 regs->flags |= IPR_ATA_FLAG_PACKET_CMD;
35a39691 Brian King 2006-09-25 6557 regs->flags |= IPR_ATA_FLAG_XFER_TYPE_DMA;
35a39691 Brian King 2006-09-25 6558 break;
35a39691 Brian King 2006-09-25 6559
35a39691 Brian King 2006-09-25 6560 default:
35a39691 Brian King 2006-09-25 6561 WARN_ON(1);
0feeed82 Brian King 2007-03-29 @6562 return AC_ERR_INVALID;
35a39691 Brian King 2006-09-25 6563 }
35a39691 Brian King 2006-09-25 6564
a32c055f Wayne Boyer 2010-02-19 6565 ipr_send_command(ipr_cmd);
e7ef7307 wenxiong@linux.vnet.ibm.com 2012-12-03 6566 spin_unlock(&ipr_cmd->hrrq->_lock);
a32c055f Wayne Boyer 2010-02-19 6567
35a39691 Brian King 2006-09-25 @6568 return 0;
35a39691 Brian King 2006-09-25 6569 }
35a39691 Brian King 2006-09-25 6570
35a39691 Brian King 2006-09-25 6571 /**
---
0-DAY kernel build testing backend Open Source Technology Center
Fengguang Wu, Yuanhan Liu Intel Corporation
next reply other threads:[~2012-12-17 13:24 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-12-17 13:24 Dan Carpenter [this message]
2012-12-20 22:52 ` [scsi:for-next 12/27] drivers/scsi/ipr.c:6568 ipr_qc_issue() warn: inconsistent returns spin_lock:&ipr_cmd->hrrq->_lock: locked (6562) unlocked (6499,6507,6568) James Bottomley
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20121217132403.GO5083@mwanda \
--to=dan.carpenter@oracle.com \
--cc=JBottomley@Parallels.com \
--cc=kbuild@01.org \
--cc=linux-scsi@vger.kernel.org \
--cc=wenxiong@linux.vnet.ibm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.