SCSI fixes on 20191227
Four fixes and one spelling update, all in drivers: 2 in lpfc and the rest in mp3sas, cxgbi and target. Signed-off-by: James E.J. Bottomley <jejb@linux.ibm.com> -----BEGIN PGP SIGNATURE----- iJwEABMIAEQWIQTnYEDbdso9F2cI+arnQslM7pishQUCXgaIWSYcamFtZXMuYm90 dG9tbGV5QGhhbnNlbnBhcnRuZXJzaGlwLmNvbQAKCRDnQslM7pishb2SAP45hS5T owI8lIt+jMBnYG3k/66EleVdqMOcvtm9ewDN2gD/eW1LBz6uPzPn07gLB3V4TTTZ rI8lfohhWJwRAHjvL8A= =nxXW -----END PGP SIGNATURE----- Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi Pull SCSI fixes from James Bottomley: "Four fixes and one spelling update, all in drivers: two in lpfc and the rest in mp3sas, cxgbi and target" * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: scsi: target/iblock: Fix protection error with blocks greater than 512B scsi: libcxgbi: fix NULL pointer dereference in cxgbi_device_destroy() scsi: lpfc: fix spelling mistakes of asynchronous scsi: lpfc: fix build failure with DEBUGFS disabled scsi: mpt3sas: Fix double free in attach error handling
This commit is contained in:
commit
bf8d1cd438
@ -121,7 +121,8 @@ static inline void cxgbi_device_destroy(struct cxgbi_device *cdev)
|
|||||||
"cdev 0x%p, p# %u.\n", cdev, cdev->nports);
|
"cdev 0x%p, p# %u.\n", cdev, cdev->nports);
|
||||||
cxgbi_hbas_remove(cdev);
|
cxgbi_hbas_remove(cdev);
|
||||||
cxgbi_device_portmap_cleanup(cdev);
|
cxgbi_device_portmap_cleanup(cdev);
|
||||||
cxgbi_ppm_release(cdev->cdev2ppm(cdev));
|
if (cdev->cdev2ppm)
|
||||||
|
cxgbi_ppm_release(cdev->cdev2ppm(cdev));
|
||||||
if (cdev->pmap.max_connect)
|
if (cdev->pmap.max_connect)
|
||||||
cxgbi_free_big_mem(cdev->pmap.port_csk);
|
cxgbi_free_big_mem(cdev->pmap.port_csk);
|
||||||
kfree(cdev);
|
kfree(cdev);
|
||||||
|
@ -5385,7 +5385,6 @@ static const struct file_operations lpfc_debugfs_ras_log = {
|
|||||||
.read = lpfc_debugfs_read,
|
.read = lpfc_debugfs_read,
|
||||||
.release = lpfc_debugfs_ras_log_release,
|
.release = lpfc_debugfs_ras_log_release,
|
||||||
};
|
};
|
||||||
#endif
|
|
||||||
|
|
||||||
#undef lpfc_debugfs_op_dumpHBASlim
|
#undef lpfc_debugfs_op_dumpHBASlim
|
||||||
static const struct file_operations lpfc_debugfs_op_dumpHBASlim = {
|
static const struct file_operations lpfc_debugfs_op_dumpHBASlim = {
|
||||||
@ -5557,7 +5556,7 @@ static const struct file_operations lpfc_idiag_op_extAcc = {
|
|||||||
.write = lpfc_idiag_extacc_write,
|
.write = lpfc_idiag_extacc_write,
|
||||||
.release = lpfc_idiag_cmd_release,
|
.release = lpfc_idiag_cmd_release,
|
||||||
};
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
/* lpfc_idiag_mbxacc_dump_bsg_mbox - idiag debugfs dump bsg mailbox command
|
/* lpfc_idiag_mbxacc_dump_bsg_mbox - idiag debugfs dump bsg mailbox command
|
||||||
* @phba: Pointer to HBA context object.
|
* @phba: Pointer to HBA context object.
|
||||||
|
@ -5883,7 +5883,7 @@ void lpfc_sli4_async_event_proc(struct lpfc_hba *phba)
|
|||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
lpfc_printf_log(phba, KERN_ERR, LOG_SLI,
|
lpfc_printf_log(phba, KERN_ERR, LOG_SLI,
|
||||||
"1804 Invalid asynchrous event code: "
|
"1804 Invalid asynchronous event code: "
|
||||||
"x%x\n", bf_get(lpfc_trailer_code,
|
"x%x\n", bf_get(lpfc_trailer_code,
|
||||||
&cq_event->cqe.mcqe_cmpl));
|
&cq_event->cqe.mcqe_cmpl));
|
||||||
break;
|
break;
|
||||||
|
@ -8555,7 +8555,7 @@ lpfc_sli4_async_mbox_unblock(struct lpfc_hba *phba)
|
|||||||
psli->sli_flag &= ~LPFC_SLI_ASYNC_MBX_BLK;
|
psli->sli_flag &= ~LPFC_SLI_ASYNC_MBX_BLK;
|
||||||
spin_unlock_irq(&phba->hbalock);
|
spin_unlock_irq(&phba->hbalock);
|
||||||
|
|
||||||
/* wake up worker thread to post asynchronlous mailbox command */
|
/* wake up worker thread to post asynchronous mailbox command */
|
||||||
lpfc_worker_wake_up(phba);
|
lpfc_worker_wake_up(phba);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -8823,7 +8823,7 @@ lpfc_sli_issue_mbox_s4(struct lpfc_hba *phba, LPFC_MBOXQ_t *mboxq,
|
|||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Now, interrupt mode asynchrous mailbox command */
|
/* Now, interrupt mode asynchronous mailbox command */
|
||||||
rc = lpfc_mbox_cmd_check(phba, mboxq);
|
rc = lpfc_mbox_cmd_check(phba, mboxq);
|
||||||
if (rc) {
|
if (rc) {
|
||||||
lpfc_printf_log(phba, KERN_ERR, LOG_MBOX | LOG_SLI,
|
lpfc_printf_log(phba, KERN_ERR, LOG_MBOX | LOG_SLI,
|
||||||
@ -13112,11 +13112,11 @@ lpfc_cq_event_setup(struct lpfc_hba *phba, void *entry, int size)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* lpfc_sli4_sp_handle_async_event - Handle an asynchroous event
|
* lpfc_sli4_sp_handle_async_event - Handle an asynchronous event
|
||||||
* @phba: Pointer to HBA context object.
|
* @phba: Pointer to HBA context object.
|
||||||
* @cqe: Pointer to mailbox completion queue entry.
|
* @cqe: Pointer to mailbox completion queue entry.
|
||||||
*
|
*
|
||||||
* This routine process a mailbox completion queue entry with asynchrous
|
* This routine process a mailbox completion queue entry with asynchronous
|
||||||
* event.
|
* event.
|
||||||
*
|
*
|
||||||
* Return: true if work posted to worker thread, otherwise false.
|
* Return: true if work posted to worker thread, otherwise false.
|
||||||
@ -13270,7 +13270,7 @@ out_no_mqe_complete:
|
|||||||
* @cqe: Pointer to mailbox completion queue entry.
|
* @cqe: Pointer to mailbox completion queue entry.
|
||||||
*
|
*
|
||||||
* This routine process a mailbox completion queue entry, it invokes the
|
* This routine process a mailbox completion queue entry, it invokes the
|
||||||
* proper mailbox complete handling or asynchrous event handling routine
|
* proper mailbox complete handling or asynchronous event handling routine
|
||||||
* according to the MCQE's async bit.
|
* according to the MCQE's async bit.
|
||||||
*
|
*
|
||||||
* Return: true if work posted to worker thread, otherwise false.
|
* Return: true if work posted to worker thread, otherwise false.
|
||||||
|
@ -5248,7 +5248,6 @@ _base_allocate_memory_pools(struct MPT3SAS_ADAPTER *ioc)
|
|||||||
&ct->chain_buffer_dma);
|
&ct->chain_buffer_dma);
|
||||||
if (!ct->chain_buffer) {
|
if (!ct->chain_buffer) {
|
||||||
ioc_err(ioc, "chain_lookup: pci_pool_alloc failed\n");
|
ioc_err(ioc, "chain_lookup: pci_pool_alloc failed\n");
|
||||||
_base_release_memory_pools(ioc);
|
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -646,7 +646,9 @@ iblock_alloc_bip(struct se_cmd *cmd, struct bio *bio,
|
|||||||
}
|
}
|
||||||
|
|
||||||
bip->bip_iter.bi_size = bio_integrity_bytes(bi, bio_sectors(bio));
|
bip->bip_iter.bi_size = bio_integrity_bytes(bi, bio_sectors(bio));
|
||||||
bip_set_seed(bip, bio->bi_iter.bi_sector);
|
/* virtual start sector must be in integrity interval units */
|
||||||
|
bip_set_seed(bip, bio->bi_iter.bi_sector >>
|
||||||
|
(bi->interval_exp - SECTOR_SHIFT));
|
||||||
|
|
||||||
pr_debug("IBLOCK BIP Size: %u Sector: %llu\n", bip->bip_iter.bi_size,
|
pr_debug("IBLOCK BIP Size: %u Sector: %llu\n", bip->bip_iter.bi_size,
|
||||||
(unsigned long long)bip->bip_iter.bi_sector);
|
(unsigned long long)bip->bip_iter.bi_sector);
|
||||||
|
Loading…
Reference in New Issue
Block a user