diff --git a/iscsi-scst/usr/iscsi_scstd.c b/iscsi-scst/usr/iscsi_scstd.c index 392d73277..358d0a6f8 100644 --- a/iscsi-scst/usr/iscsi_scstd.c +++ b/iscsi-scst/usr/iscsi_scstd.c @@ -575,7 +575,6 @@ static void init_max_params(void) (session_keys[key_max_xmit_data_length].max != -1) || (session_keys[key_max_burst_length].local_def != -1) || (session_keys[key_max_burst_length].max != -1) || - (session_keys[key_first_burst_length].local_def != -1) || (session_keys[key_first_burst_length].max != -1)) { log_error("Wrong session_keys initialization"); exit(-1); @@ -602,7 +601,9 @@ static void init_max_params(void) session_keys[key_max_burst_length].max = iscsi_init_params.max_data_seg_len; /* FirstBurstLength */ - session_keys[key_first_burst_length].local_def = iscsi_init_params.max_data_seg_len; + session_keys[key_first_burst_length].local_def = + min((int)session_keys[key_first_burst_length].local_def, + iscsi_init_params.max_data_seg_len); session_keys[key_first_burst_length].max = iscsi_init_params.max_data_seg_len; return; diff --git a/iscsi-scst/usr/param.c b/iscsi-scst/usr/param.c index b65a3c6e6..f0776f274 100644 --- a/iscsi-scst/usr/param.c +++ b/iscsi-scst/usr/param.c @@ -370,7 +370,7 @@ struct iscsi_key session_keys[] = { {"MaxRecvDataSegmentLength", 8192, -1, 512, -1, 1, &minimum_ops}, {"MaxXmitDataSegmentLength", 8192, -1, 512, -1, 1, &minimum_ops}, {"MaxBurstLength", 262144, -1, 512, -1, 1, &minimum_ops}, - {"FirstBurstLength", 65536, -1, 512, -1, 1, &minimum_ops}, + {"FirstBurstLength", 65536, 65536, 512, -1, 1, &minimum_ops}, {"DefaultTime2Wait", 2, 0, 0, 0, 0, &maximum_ops}, {"DefaultTime2Retain", 20, 0, 0, 0, 0, &minimum_ops}, {"MaxOutstandingR2T", 1, 32, 1, 65535, 1, &minimum_ops},