mirror of
https://github.com/SCST-project/scst.git
synced 2026-05-17 18:51:27 +00:00
Set max_cmd_len correctly depending on the size of the field. In earlier
versions of Linux it was an unsigned char, and a value of 260 means 4 after a compiler warning. Added a comment to describe what is going on as well. Since this is done very infequently it should not cause performance problems and means that it will not silently fail to work if people try to use it on kernels earlier than 2.6.26. If I figure out what kernel version the change was made in we could use an ifdef. git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1852 d57e44dd-8a1f-0410-8b47-8ef2f437770f
This commit is contained in:
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user