Commit bf8d1cd4 authored by Linus Torvalds's avatar Linus Torvalds

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
parents 48a8dd17 e4dc9a4c
...@@ -121,7 +121,8 @@ static inline void cxgbi_device_destroy(struct cxgbi_device *cdev) ...@@ -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 = { ...@@ -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 = { ...@@ -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) ...@@ -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) ...@@ -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, ...@@ -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) ...@@ -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 @@ lpfc_sli4_sp_handle_mbox_event(struct lpfc_hba *phba, struct lpfc_mcqe *mcqe) ...@@ -13270,7 +13270,7 @@ lpfc_sli4_sp_handle_mbox_event(struct lpfc_hba *phba, struct lpfc_mcqe *mcqe)
* @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) ...@@ -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, ...@@ -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);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment