diff options
author | Nicholas Bellinger <[email protected]> | 2015-07-30 18:28:13 -0700 |
---|---|---|
committer | Nicholas Bellinger <[email protected]> | 2015-09-11 00:31:39 -0700 |
commit | 8f9b565482c537821588444e09ff732c7d65ed6e (patch) | |
tree | b411dd3479eb5f3f86e2eb390c1c973e4b31ee12 /tools/perf/scripts/python/bin/export-to-postgresql-report | |
parent | 13a3cf08fa1e4b3a252f24202d47a556242aea03 (diff) |
target/qla2xxx: Honor max_data_sg_nents I/O transfer limit
This patch adds an optional fabric driver provided SGL limit
that target-core will honor as it's own internal I/O maximum
transfer length limit, as exposed by EVPD=0xb0 block limits
parameters.
This is required for handling cases when host I/O transfer
length exceeds the requested EVPD block limits maximum
transfer length. The initial user of this logic is qla2xxx,
so that we can avoid having to reject I/Os from some legacy
FC hosts where EVPD=0xb0 parameters are not honored.
When se_cmd payload length exceeds the provided limit in
target_check_max_data_sg_nents() code, se_cmd->data_length +
se_cmd->prot_length are reset with se_cmd->residual_count
plus underflow bit for outgoing TFO response callbacks.
It also checks for existing CDB level underflow + overflow
and recalculates final residual_count as necessary.
Note this patch currently assumes 1:1 mapping of PAGE_SIZE
per struct scatterlist entry.
Reported-by: Craig Watson <[email protected]>
Cc: Craig Watson <[email protected]>
Tested-by: Himanshu Madhani <[email protected]>
Cc: Roland Dreier <[email protected]>
Cc: Arun Easi <[email protected]>
Cc: Giridhar Malavali <[email protected]>
Cc: Andrew Vasquez <[email protected]>
Cc: Christoph Hellwig <[email protected]>
Cc: Hannes Reinecke <[email protected]>
Cc: Martin K. Petersen <[email protected]>
Signed-off-by: Nicholas Bellinger <[email protected]>
Diffstat (limited to 'tools/perf/scripts/python/bin/export-to-postgresql-report')
0 files changed, 0 insertions, 0 deletions