diff --git a/drivers/target/target_core_spc.c b/drivers/target/target_core_spc.c index 33022a3f31fc0dc17bb0f143f2ddf47a7510feeb..f9c2bd02043c6e023226a16b6d4be2986453e8e3 100644 --- a/drivers/target/target_core_spc.c +++ b/drivers/target/target_core_spc.c @@ -870,8 +870,11 @@ static int spc_emulate_modesense(struct se_cmd *cmd) } else { buf = map_buf; } - - length = ten ? 2 : 1; + /* + * Skip over MODE DATA LENGTH + MEDIUM TYPE fields to byte 3 for + * MODE_SENSE_10 and byte 2 for MODE_SENSE (6). + */ + length = ten ? 3 : 2; /* DEVICE-SPECIFIC PARAMETER */ if ((cmd->se_lun->lun_access & TRANSPORT_LUNFLAGS_READ_ONLY) ||