mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 19:21:31 -04:00
Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending
Pull target updates from Nicholas Bellinger:
"There have been lots of work in a number of areas this past round.
The highlights include:
- Break out target_core_cdb.c emulation into SPC/SBC ops (hch)
- Add a parse_cdb method to target backend drivers (hch)
- Move sync_cache + write_same + unmap into spc_ops (hch)
- Use target_execute_cmd for WRITEs in iscsi_target + srpt (hch)
- Offload WRITE I/O backend submission in tcm_qla2xxx + tcm_fc (hch +
nab)
- Refactor core_update_device_list_for_node() into enable/disable
funcs (agrover)
- Replace the TCM processing thread with a TMR work queue (hch)
- Fix regression in transport_add_device_to_core_hba from TMR
conversion (DanC)
- Remove racy, now-redundant check of sess_tearing_down with qla2xxx
(roland)
- Add range checking, fix reading of data len + possible underflow in
UNMAP (roland)
- Allow for target_submit_cmd() returning errors + convert fabrics
(roland + nab)
- Drop bogus struct file usage for iSCSI/SCTP (viro)"
* 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending: (54 commits)
iscsi-target: Drop bogus struct file usage for iSCSI/SCTP
target: NULL dereference on error path
target: Allow for target_submit_cmd() returning errors
target: Check number of unmap descriptors against our limit
target: Fix possible integer underflow in UNMAP emulation
target: Fix reading of data length fields for UNMAP commands
target: Add range checking to UNMAP emulation
target: Add generation of LOGICAL BLOCK ADDRESS OUT OF RANGE
target: Make unnecessarily global se_dev_align_max_sectors() static
target: Remove se_session.sess_wait_list
qla2xxx: Remove racy, now-redundant check of sess_tearing_down
target: Check sess_tearing_down in target_get_sess_cmd()
sbp-target: Consolidate duplicated error path code in sbp_handle_command()
target: Un-export target_get_sess_cmd()
qla2xxx: Get rid of redundant qla_tgt_sess.tearing_down
target: Make core_disable_device_list_for_node use pre-refactoring lock ordering
target: refactor core_update_device_list_for_node()
target: Eliminate else using boolean logic
target: Misc retval cleanups
target: Remove hba param from core_dev_add_lun
...
This commit is contained in:
commit
cb47c1831f
35 changed files with 1718 additions and 2433 deletions
|
|
@ -294,7 +294,7 @@ static int bot_send_write_request(struct usbg_cmd *cmd)
|
|||
pr_err("%s(%d)\n", __func__, __LINE__);
|
||||
|
||||
wait_for_completion(&cmd->write_complete);
|
||||
transport_generic_process_write(se_cmd);
|
||||
target_execute_cmd(se_cmd);
|
||||
cleanup:
|
||||
return ret;
|
||||
}
|
||||
|
|
@ -725,7 +725,7 @@ static int uasp_send_write_request(struct usbg_cmd *cmd)
|
|||
}
|
||||
|
||||
wait_for_completion(&cmd->write_complete);
|
||||
transport_generic_process_write(se_cmd);
|
||||
target_execute_cmd(se_cmd);
|
||||
cleanup:
|
||||
return ret;
|
||||
}
|
||||
|
|
@ -1065,16 +1065,20 @@ static void usbg_cmd_work(struct work_struct *work)
|
|||
tv_nexus->tvn_se_sess->se_tpg->se_tpg_tfo,
|
||||
tv_nexus->tvn_se_sess, cmd->data_len, DMA_NONE,
|
||||
cmd->prio_attr, cmd->sense_iu.sense);
|
||||
|
||||
transport_send_check_condition_and_sense(se_cmd,
|
||||
TCM_UNSUPPORTED_SCSI_OPCODE, 1);
|
||||
usbg_cleanup_cmd(cmd);
|
||||
return;
|
||||
goto out;
|
||||
}
|
||||
|
||||
target_submit_cmd(se_cmd, tv_nexus->tvn_se_sess,
|
||||
if (target_submit_cmd(se_cmd, tv_nexus->tvn_se_sess,
|
||||
cmd->cmd_buf, cmd->sense_iu.sense, cmd->unpacked_lun,
|
||||
0, cmd->prio_attr, dir, TARGET_SCF_UNKNOWN_SIZE);
|
||||
0, cmd->prio_attr, dir, TARGET_SCF_UNKNOWN_SIZE) < 0)
|
||||
goto out;
|
||||
|
||||
return;
|
||||
|
||||
out:
|
||||
transport_send_check_condition_and_sense(se_cmd,
|
||||
TCM_UNSUPPORTED_SCSI_OPCODE, 1);
|
||||
usbg_cleanup_cmd(cmd);
|
||||
}
|
||||
|
||||
static int usbg_submit_command(struct f_uas *fu,
|
||||
|
|
@ -1177,16 +1181,20 @@ static void bot_cmd_work(struct work_struct *work)
|
|||
tv_nexus->tvn_se_sess->se_tpg->se_tpg_tfo,
|
||||
tv_nexus->tvn_se_sess, cmd->data_len, DMA_NONE,
|
||||
cmd->prio_attr, cmd->sense_iu.sense);
|
||||
|
||||
transport_send_check_condition_and_sense(se_cmd,
|
||||
TCM_UNSUPPORTED_SCSI_OPCODE, 1);
|
||||
usbg_cleanup_cmd(cmd);
|
||||
return;
|
||||
goto out;
|
||||
}
|
||||
|
||||
target_submit_cmd(se_cmd, tv_nexus->tvn_se_sess,
|
||||
if (target_submit_cmd(se_cmd, tv_nexus->tvn_se_sess,
|
||||
cmd->cmd_buf, cmd->sense_iu.sense, cmd->unpacked_lun,
|
||||
cmd->data_len, cmd->prio_attr, dir, 0);
|
||||
cmd->data_len, cmd->prio_attr, dir, 0) < 0)
|
||||
goto out;
|
||||
|
||||
return;
|
||||
|
||||
out:
|
||||
transport_send_check_condition_and_sense(se_cmd,
|
||||
TCM_UNSUPPORTED_SCSI_OPCODE, 1);
|
||||
usbg_cleanup_cmd(cmd);
|
||||
}
|
||||
|
||||
static int bot_submit_command(struct f_uas *fu,
|
||||
|
|
@ -1400,19 +1408,6 @@ static u32 usbg_tpg_get_inst_index(struct se_portal_group *se_tpg)
|
|||
return 1;
|
||||
}
|
||||
|
||||
static int usbg_new_cmd(struct se_cmd *se_cmd)
|
||||
{
|
||||
struct usbg_cmd *cmd = container_of(se_cmd, struct usbg_cmd,
|
||||
se_cmd);
|
||||
int ret;
|
||||
|
||||
ret = target_setup_cmd_from_cdb(se_cmd, cmd->cmd_buf);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
return transport_generic_map_mem_to_cmd(se_cmd, NULL, 0, NULL, 0);
|
||||
}
|
||||
|
||||
static void usbg_cmd_release(struct kref *ref)
|
||||
{
|
||||
struct usbg_cmd *cmd = container_of(ref, struct usbg_cmd,
|
||||
|
|
@ -1902,7 +1897,6 @@ static struct target_core_fabric_ops usbg_ops = {
|
|||
.tpg_alloc_fabric_acl = usbg_alloc_fabric_acl,
|
||||
.tpg_release_fabric_acl = usbg_release_fabric_acl,
|
||||
.tpg_get_inst_index = usbg_tpg_get_inst_index,
|
||||
.new_cmd_map = usbg_new_cmd,
|
||||
.release_cmd = usbg_release_cmd,
|
||||
.shutdown_session = usbg_shutdown_session,
|
||||
.close_session = usbg_close_session,
|
||||
|
|
|
|||
Loading…
Reference in a new issue