diff --git a/scst_local/scst_local.c b/scst_local/scst_local.c index 1e8868e96..81772cf87 100644 --- a/scst_local/scst_local.c +++ b/scst_local/scst_local.c @@ -988,7 +988,16 @@ static int scst_fake_lld_driver_probe(struct device *dev) hpnt->max_id = scst_local_num_tgts; hpnt->max_lun = scst_local_max_luns - 1; - hpnt->max_cmd_len = 260; + /* + * Because of a change in the size of this field around 2.6.26 + * we use this check ... it allows us to work on earlier + * kernels. If we don't, the max_cmd_size gets set to 4 (and we get + * a compiler warning) so a scan never occurs. + */ + if (sizeof(hpnt->max_cmd_len) == sizeof(unsigned char)) + hpnt->max_cmd_len = 16; + else + hpnt->max_cmd_len = 260; ret = scsi_add_host(hpnt, &scst_lcl_host->dev); if (ret) {