Skip to content

Commit

Permalink
Merge branch 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git…
Browse files Browse the repository at this point in the history
…/mkp/scsi into for-5.5/drivers-post

* 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/mkp/scsi:
  scsi: core: Handle drivers which set sg_tablesize to zero
  scsi: qla2xxx: fix NPIV tear down process
  scsi: sd_zbc: Fix sd_zbc_complete()
  • Loading branch information
Jens Axboe committed Nov 7, 2019
2 parents e163817 + 9393c8d commit 6d1ec78
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 26 deletions.
8 changes: 5 additions & 3 deletions drivers/scsi/qla2xxx/qla_mid.c
Original file line number Diff line number Diff line change
Expand Up @@ -76,9 +76,11 @@ qla24xx_deallocate_vp_id(scsi_qla_host_t *vha)
* ensures no active vp_list traversal while the vport is removed
* from the queue)
*/
for (i = 0; i < 10 && atomic_read(&vha->vref_count); i++)
wait_event_timeout(vha->vref_waitq,
atomic_read(&vha->vref_count), HZ);
for (i = 0; i < 10; i++) {
if (wait_event_timeout(vha->vref_waitq,
!atomic_read(&vha->vref_count), HZ) > 0)
break;
}

spin_lock_irqsave(&ha->vport_slock, flags);
if (atomic_read(&vha->vref_count)) {
Expand Down
8 changes: 5 additions & 3 deletions drivers/scsi/qla2xxx/qla_os.c
Original file line number Diff line number Diff line change
Expand Up @@ -1119,9 +1119,11 @@ qla2x00_wait_for_sess_deletion(scsi_qla_host_t *vha)

qla2x00_mark_all_devices_lost(vha, 0);

for (i = 0; i < 10; i++)
wait_event_timeout(vha->fcport_waitQ, test_fcport_count(vha),
HZ);
for (i = 0; i < 10; i++) {
if (wait_event_timeout(vha->fcport_waitQ,
test_fcport_count(vha), HZ) > 0)
break;
}

flush_workqueue(vha->hw->wq);
}
Expand Down
3 changes: 2 additions & 1 deletion drivers/scsi/scsi_lib.c
Original file line number Diff line number Diff line change
Expand Up @@ -1882,7 +1882,8 @@ int scsi_mq_setup_tags(struct Scsi_Host *shost)
{
unsigned int cmd_size, sgl_size;

sgl_size = scsi_mq_inline_sgl_size(shost);
sgl_size = max_t(unsigned int, sizeof(struct scatterlist),
scsi_mq_inline_sgl_size(shost));
cmd_size = sizeof(struct scsi_cmnd) + shost->hostt->cmd_size + sgl_size;
if (scsi_host_get_prot(shost))
cmd_size += sizeof(struct scsi_data_buffer) +
Expand Down
29 changes: 10 additions & 19 deletions drivers/scsi/sd_zbc.c
Original file line number Diff line number Diff line change
Expand Up @@ -263,25 +263,16 @@ void sd_zbc_complete(struct scsi_cmnd *cmd, unsigned int good_bytes,
int result = cmd->result;
struct request *rq = cmd->request;

switch (req_op(rq)) {
case REQ_OP_ZONE_RESET:
case REQ_OP_ZONE_RESET_ALL:

if (result &&
sshdr->sense_key == ILLEGAL_REQUEST &&
sshdr->asc == 0x24)
/*
* INVALID FIELD IN CDB error: reset of a conventional
* zone was attempted. Nothing to worry about, so be
* quiet about the error.
*/
rq->rq_flags |= RQF_QUIET;
break;

case REQ_OP_WRITE:
case REQ_OP_WRITE_ZEROES:
case REQ_OP_WRITE_SAME:
break;
if (req_op(rq) == REQ_OP_ZONE_RESET &&
result &&
sshdr->sense_key == ILLEGAL_REQUEST &&
sshdr->asc == 0x24) {
/*
* INVALID FIELD IN CDB error: reset of a conventional
* zone was attempted. Nothing to worry about, so be
* quiet about the error.
*/
rq->rq_flags |= RQF_QUIET;
}
}

Expand Down

0 comments on commit 6d1ec78

Please sign in to comment.