Merge branch 'fixes' into misc

This commit is contained in:
James Bottomley 2016-03-15 15:24:44 -07:00
commit a7dee8f45f
8 changed files with 17 additions and 4 deletions

View File

@ -1191,6 +1191,8 @@ static void dm_unprep_request(struct request *rq)
if (clone) if (clone)
free_rq_clone(clone); free_rq_clone(clone);
else if (!tio->md->queue->mq_ops)
free_rq_tio(tio);
} }
/* /*

View File

@ -2232,6 +2232,7 @@ err_irq:
dma_release_channel(host->tx_chan); dma_release_channel(host->tx_chan);
if (host->rx_chan) if (host->rx_chan)
dma_release_channel(host->rx_chan); dma_release_channel(host->rx_chan);
pm_runtime_dont_use_autosuspend(host->dev);
pm_runtime_put_sync(host->dev); pm_runtime_put_sync(host->dev);
pm_runtime_disable(host->dev); pm_runtime_disable(host->dev);
if (host->dbclk) if (host->dbclk)
@ -2253,6 +2254,7 @@ static int omap_hsmmc_remove(struct platform_device *pdev)
dma_release_channel(host->tx_chan); dma_release_channel(host->tx_chan);
dma_release_channel(host->rx_chan); dma_release_channel(host->rx_chan);
pm_runtime_dont_use_autosuspend(host->dev);
pm_runtime_put_sync(host->dev); pm_runtime_put_sync(host->dev);
pm_runtime_disable(host->dev); pm_runtime_disable(host->dev);
device_init_wakeup(&pdev->dev, false); device_init_wakeup(&pdev->dev, false);

View File

@ -4493,6 +4493,7 @@ put_shost:
scsi_host_put(phba->shost); scsi_host_put(phba->shost);
free_kset: free_kset:
iscsi_boot_destroy_kset(phba->boot_kset); iscsi_boot_destroy_kset(phba->boot_kset);
phba->boot_kset = NULL;
return -ENOMEM; return -ENOMEM;
} }

View File

@ -4002,6 +4002,7 @@ static ssize_t ipr_store_update_fw(struct device *dev,
struct ipr_sglist *sglist; struct ipr_sglist *sglist;
char fname[100]; char fname[100];
char *src; char *src;
char *endline;
int result, dnld_size; int result, dnld_size;
if (!capable(CAP_SYS_ADMIN)) if (!capable(CAP_SYS_ADMIN))
@ -4009,6 +4010,10 @@ static ssize_t ipr_store_update_fw(struct device *dev,
snprintf(fname, sizeof(fname), "%s", buf); snprintf(fname, sizeof(fname), "%s", buf);
endline = strchr(fname, '\n');
if (endline)
*endline = '\0';
if (request_firmware(&fw_entry, fname, &ioa_cfg->pdev->dev)) { if (request_firmware(&fw_entry, fname, &ioa_cfg->pdev->dev)) {
dev_err(&ioa_cfg->pdev->dev, "Firmware file %s not found\n", fname); dev_err(&ioa_cfg->pdev->dev, "Firmware file %s not found\n", fname);
return -EIO; return -EIO;

View File

@ -1344,6 +1344,7 @@ scsi_prep_return(struct request_queue *q, struct request *req, int ret)
switch (ret) { switch (ret) {
case BLKPREP_KILL: case BLKPREP_KILL:
case BLKPREP_INVALID:
req->errors = DID_NO_CONNECT << 16; req->errors = DID_NO_CONNECT << 16;
/* release the command and kill it */ /* release the command and kill it */
if (req->special) { if (req->special) {

View File

@ -648,7 +648,7 @@ static void sd_config_discard(struct scsi_disk *sdkp, unsigned int mode)
*/ */
if (sdkp->lbprz) { if (sdkp->lbprz) {
q->limits.discard_alignment = 0; q->limits.discard_alignment = 0;
q->limits.discard_granularity = 1; q->limits.discard_granularity = logical_block_size;
} else { } else {
q->limits.discard_alignment = sdkp->unmap_alignment * q->limits.discard_alignment = sdkp->unmap_alignment *
logical_block_size; logical_block_size;

View File

@ -652,7 +652,8 @@ sg_write(struct file *filp, const char __user *buf, size_t count, loff_t * ppos)
else else
hp->dxfer_direction = (mxsize > 0) ? SG_DXFER_FROM_DEV : SG_DXFER_NONE; hp->dxfer_direction = (mxsize > 0) ? SG_DXFER_FROM_DEV : SG_DXFER_NONE;
hp->dxfer_len = mxsize; hp->dxfer_len = mxsize;
if (hp->dxfer_direction == SG_DXFER_TO_DEV) if ((hp->dxfer_direction == SG_DXFER_TO_DEV) ||
(hp->dxfer_direction == SG_DXFER_TO_FROM_DEV))
hp->dxferp = (char __user *)buf + cmd_size; hp->dxferp = (char __user *)buf + cmd_size;
else else
hp->dxferp = NULL; hp->dxferp = NULL;

View File

@ -914,8 +914,9 @@ static void storvsc_handle_error(struct vmscsi_request *vm_srb,
do_work = true; do_work = true;
process_err_fn = storvsc_remove_lun; process_err_fn = storvsc_remove_lun;
break; break;
case (SRB_STATUS_ABORTED | SRB_STATUS_AUTOSENSE_VALID): case SRB_STATUS_ABORTED:
if ((asc == 0x2a) && (ascq == 0x9)) { if (vm_srb->srb_status & SRB_STATUS_AUTOSENSE_VALID &&
(asc == 0x2a) && (ascq == 0x9)) {
do_work = true; do_work = true;
process_err_fn = storvsc_device_scan; process_err_fn = storvsc_device_scan;
/* /*