mirror of
https://github.com/torvalds/linux.git
synced 2024-11-28 07:01:32 +00:00
Merge branch 'fixes' into misc
This commit is contained in:
commit
a7dee8f45f
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -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);
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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;
|
||||||
|
@ -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) {
|
||||||
|
@ -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;
|
||||||
|
@ -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;
|
||||||
|
@ -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;
|
||||||
/*
|
/*
|
||||||
|
Loading…
Reference in New Issue
Block a user