From: John Garry <john.garry@huawei.com>
To: kbuild test robot <lkp@intel.com>
Cc: <kbuild-all@01.org>, <martin.petersen@oracle.com>,
<jejb@linux.vnet.ibm.com>, <linuxarm@huawei.com>, <arnd@arndb.de>,
<linux-scsi@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
<hch@infradead.org>, Xiang Chen <chenxiang66@hisilicon.com>
Subject: Re: [PATCH v5 03/23] scsi: hisi_sas: optimise the usage of hisi_hba.lock
Date: Mon, 12 Jun 2017 09:26:28 +0100 [thread overview]
Message-ID: <aec6fd20-3b7c-0684-7e49-57ff61de6064@huawei.com> (raw)
In-Reply-To: <201706110427.UEjoe6NO%fengguang.wu@intel.com>
On 10/06/2017 21:44, kbuild test robot wrote:
> Hi Xiang,
>
> [auto build test WARNING on mkp-scsi/for-next]
> [also build test WARNING on v4.12-rc4 next-20170609]
> [if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
>
> url: https://github.com/0day-ci/linux/commits/John-Garry/hisi_sas-hip08-support/20170611-014437
> base: https://git.kernel.org/pub/scm/linux/kernel/git/mkp/scsi.git for-next
>
>
> coccinelle warnings: (new ones prefixed by >>)
>
>>> drivers/scsi/hisi_sas/hisi_sas_main.c:1208:1-18: ERROR: nested lock+irqsave that reuses flags from line 1178.
>
> vim +1208 drivers/scsi/hisi_sas/hisi_sas_main.c
>
> bf95e9ccc Xiang Chen 2017-06-09 1172 if (rc) {
> bf95e9ccc Xiang Chen 2017-06-09 1173 spin_unlock_irqrestore(&hisi_hba->lock, flags);
> 441c27401 John Garry 2016-08-24 1174 goto err_out;
> bf95e9ccc Xiang Chen 2017-06-09 1175 }
> bf95e9ccc Xiang Chen 2017-06-09 1176 spin_unlock_irqrestore(&hisi_hba->lock, flags);
> bf95e9ccc Xiang Chen 2017-06-09 1177
> bf95e9ccc Xiang Chen 2017-06-09 @1178 spin_lock_irqsave(&dq->lock, flags);
> bf95e9ccc Xiang Chen 2017-06-09 1179 rc = hisi_hba->hw->get_free_slot(hisi_hba, dq);
> 441c27401 John Garry 2016-08-24 1180 if (rc)
> 441c27401 John Garry 2016-08-24 1181 goto err_out_tag;
> 441c27401 John Garry 2016-08-24 1182
> bf95e9ccc Xiang Chen 2017-06-09 1183 dlvry_queue = dq->id;
> bf95e9ccc Xiang Chen 2017-06-09 1184 dlvry_queue_slot = dq->wr_point;
> bf95e9ccc Xiang Chen 2017-06-09 1185
> 441c27401 John Garry 2016-08-24 1186 slot = &hisi_hba->slot_info[slot_idx];
> 441c27401 John Garry 2016-08-24 1187 memset(slot, 0, sizeof(struct hisi_sas_slot));
> 441c27401 John Garry 2016-08-24 1188
> 441c27401 John Garry 2016-08-24 1189 slot->idx = slot_idx;
> 441c27401 John Garry 2016-08-24 1190 slot->n_elem = n_elem;
> 441c27401 John Garry 2016-08-24 1191 slot->dlvry_queue = dlvry_queue;
> 441c27401 John Garry 2016-08-24 1192 slot->dlvry_queue_slot = dlvry_queue_slot;
> 441c27401 John Garry 2016-08-24 1193 cmd_hdr_base = hisi_hba->cmd_hdr[dlvry_queue];
> 441c27401 John Garry 2016-08-24 1194 slot->cmd_hdr = &cmd_hdr_base[dlvry_queue_slot];
> 441c27401 John Garry 2016-08-24 1195 slot->task = task;
> 441c27401 John Garry 2016-08-24 1196 slot->port = port;
> 441c27401 John Garry 2016-08-24 1197 task->lldd_task = slot;
> 441c27401 John Garry 2016-08-24 1198
> 441c27401 John Garry 2016-08-24 1199 memset(slot->cmd_hdr, 0, sizeof(struct hisi_sas_cmd_hdr));
> 441c27401 John Garry 2016-08-24 1200
> 441c27401 John Garry 2016-08-24 1201 rc = hisi_sas_task_prep_abort(hisi_hba, slot, device_id,
> 441c27401 John Garry 2016-08-24 1202 abort_flag, task_tag);
> 441c27401 John Garry 2016-08-24 1203 if (rc)
> 441c27401 John Garry 2016-08-24 1204 goto err_out_tag;
> 441c27401 John Garry 2016-08-24 1205
> 405314df5 John Garry 2017-03-23 1206
> 405314df5 John Garry 2017-03-23 1207 list_add_tail(&slot->entry, &sas_dev->list);
> 54c9dd2d2 John Garry 2017-03-23 @1208 spin_lock_irqsave(&task->task_state_lock, flags);
I don't think that reusing flags variable is in error, as there would be
no nested spinlock at this point within the function.
If it is not recommended or not permitted to reuse flags variable for
separate spinlocks, then that can be changed - I don't know.
John
> 441c27401 John Garry 2016-08-24 1209 task->task_state_flags |= SAS_TASK_AT_INITIATOR;
> 54c9dd2d2 John Garry 2017-03-23 1210 spin_unlock_irqrestore(&task->task_state_lock, flags);
> 441c27401 John Garry 2016-08-24 1211
>
> :::::: The code at line 1208 was first introduced by commit
> :::::: 54c9dd2d26d0951891516a956893428feb9aea17 scsi: hisi_sas: fix some sas_task.task_state_lock locking
>
> :::::: TO: John Garry <john.garry@huawei.com>
> :::::: CC: Martin K. Petersen <martin.petersen@oracle.com>
>
> ---
> 0-DAY kernel test infrastructure Open Source Technology Center
> https://lists.01.org/pipermail/kbuild-all Intel Corporation
>
> .
>
next prev parent reply other threads:[~2017-06-12 8:28 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-06-09 14:16 [PATCH v5 00/23] hisi_sas: hip08 support John Garry
2017-06-09 14:16 ` [PATCH v5 01/23] scsi: hisi_sas: fix timeout check in hisi_sas_internal_task_abort() John Garry
2017-06-09 14:16 ` [PATCH v5 02/23] scsi: hisi_sas: define hisi_sas_device.device_id as int John Garry
2017-06-09 14:16 ` [PATCH v5 03/23] scsi: hisi_sas: optimise the usage of hisi_hba.lock John Garry
2017-06-10 20:44 ` kbuild test robot
2017-06-12 8:26 ` John Garry [this message]
2017-06-12 9:45 ` Arnd Bergmann
2017-06-12 10:24 ` John Garry
2017-06-09 14:16 ` [PATCH v5 04/23] scsi: hisi_sas: relocate get_ata_protocol() John Garry
2017-06-09 14:16 ` [PATCH v5 05/23] scsi: hisi_sas: relocate sata_done_v2_hw() John Garry
2017-06-09 14:16 ` [PATCH v5 06/23] scsi: hisi_sas: relocate get_ncq_tag_v2_hw() John Garry
2017-06-09 14:16 ` [PATCH v5 07/23] scsi: hisi_sas: add pci_dev in hisi_hba struct John Garry
2017-06-09 14:16 ` [PATCH v5 08/23] scsi: hisi_sas: create hisi_sas_get_fw_info() John Garry
2017-06-09 14:16 ` [PATCH v5 09/23] scsi: hisi_sas: add skeleton v3 hw driver John Garry
2017-06-09 14:16 ` [PATCH v5 10/23] scsi: hisi_sas: add initialisation for v3 pci-based controller John Garry
2017-06-09 14:16 ` [PATCH v5 11/23] scsi: hisi_sas: add v3 hw init John Garry
2017-06-09 14:16 ` [PATCH v5 12/23] scsi: hisi_sas: add v3 hw PHY init John Garry
2017-06-09 14:16 ` [PATCH v5 13/23] scsi: hisi_sas: add phy up/down/bcast and channel ISR John Garry
2017-06-09 14:16 ` [PATCH v5 14/23] scsi: hisi_sas: add v3 cq interrupt handler John Garry
2017-06-09 14:16 ` [PATCH v5 15/23] scsi: hisi_sas: add v3 code to send SSP frame John Garry
2017-06-09 14:16 ` [PATCH v5 16/23] scsi: hisi_sas: add v3 code to send SMP frame John Garry
2017-06-09 14:16 ` [PATCH v5 17/23] scsi: hisi_sas: add v3 code to send ATA frame John Garry
2017-06-09 14:16 ` [PATCH v5 18/23] scsi: hisi_sas: add v3 code for itct setup and free John Garry
2017-06-09 14:16 ` [PATCH v5 19/23] scsi: hisi_sas: add v3 code to send internal abort command John Garry
2017-06-09 14:16 ` [PATCH v5 20/23] scsi: hisi_sas: add get_wideport_bitmap_v3_hw() John Garry
2017-06-09 14:16 ` [PATCH v5 21/23] scsi: hisi_sas: Add v3 code to support ECC and AXI bus fatal error John Garry
2017-06-09 14:16 ` [PATCH v5 22/23] scsi: hisi_sas: add v3 code to fill some more hw function pointers John Garry
2017-06-09 14:16 ` [PATCH v5 23/23] scsi: hisi_sas: modify internal abort dev flow for v3 hw John Garry
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=aec6fd20-3b7c-0684-7e49-57ff61de6064@huawei.com \
--to=john.garry@huawei.com \
--cc=arnd@arndb.de \
--cc=chenxiang66@hisilicon.com \
--cc=hch@infradead.org \
--cc=jejb@linux.vnet.ibm.com \
--cc=kbuild-all@01.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=linuxarm@huawei.com \
--cc=lkp@intel.com \
--cc=martin.petersen@oracle.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®