Re: [PATCH v5 03/23] scsi: hisi_sas: optimise the usage of hisi_hba.lock

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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);
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@xxxxxxxxxx>
:::::: CC: Martin K. Petersen <martin.petersen@xxxxxxxxxx>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]

  Powered by Linux