Even though the lk 2.4 production series is meant to be "stable" there
have been a significant number of changes as well as bug fixes. The
following list does not include changes to the lower level (adapter)
drivers. Each item of the list is prefixed by the kernel version that
it was introduced.
[2.4.4] added the SCSI_IOCTL_GET_PCI ioctl(),
[2.4.7] the "lun" bits (3 bits representing lun values 0 through 7
in the SCSI 1 and SCSI 2 standards) are no longer masked into the second
byte of SCSI commands if the INQUIRY for that devices shows a SCSI level
greater than SCSI_2,
[2.4.7] the max_scsi_luns kernel (and module scsi_mod) option
previously could be 1 to 7. Now the upper value can be large. [The scan
algorithms are still doing a sequential scan rather than using REPORT_LUNS.]
[2.4.7] both scsi_unregister_host() and scsi_unregister_module() now
return an int (previously they were void functions). They return 0 for
success, -1 for failure (typically busy),
[2.4.7] the upper level drivers now report the correct scsi device
name when they are attached. [The log messages that started with
"Detected ..." previously sometimes reported the wrong device (e.g. sdc
rather than sdb).] Kernel boot up messages will now show SCSI devices
as "Attached ...",
[2.4.7] 'max_sectors' was added to the Scsi_Host structure,
[2.4.8] some mid level logic was altered to retry commands if the
sense buffer indicates that logical unit is becoming ready [ASC=4, ASQ=1],
[2.4.9] a major st update,
[2.4.9] mid level changed to retry
commands if lower level (adapter) driver returned DID_RESET,
[2.4.10] original result (including SCSI status) saved when mid level
issues a REQUEST SENSE so it can be restored afterwards,
[2.4.10] added BLKGETSIZE64, BLKBSZSET and BLKBSZGET ioctls to sd + sr,
[2.4.10] sg update that fixes generic_unplug_device() race + bumps
access_count on opens (and decrements on releases),
[2.4.11] added MODULE_LICENSE macro in most drivers, mostly
MODULE_LICENSE("GPL"),
[2.4.11] scsi_pid bumped for each command (why?),
[2.4.11] st update to bump access_count. Now all upper level drivers
increment access_count on opens and decrement it on releases,
[2.4.13] scatterlist structure grows (alt_address is removed, page and
offset added),
[2.4.13] don't probe luns > 7 for target <= SCSI_2 ,
[2.4.14] fine tuning (bug fixes) associated with scatterlist structure
changes [it broke st ?],
[2.4.15] 16 byte SCSI commands permitted [MAX_COMMAND_SIZE changes from
12 to 16]. HBA driver must set Scsi_Host::max_cmd_len to 16 for
mid level to forward 16 byte SCSI commands,
[2.4.15] BLKGETSIZE + BLKGETSIZE64 ioctl() implementations moved out of
SCSI subsystem (and into block subsystem),
[2.4.15] large st update,
[2.4.15] lk 2.5.0 forks off so lk2.4.15==lk2.5.0 .
[2.4.17] add generic_unplug_device() call to scsi_wait_req(). This stops
long waits in SCSI_IOCTL_SEND_COMMAND.
[2.4.17] fix device scanning bug where, in some cases, the scsi_level
(i.e. SCSI standard adherence) was misplaced.
[2.4.17] major sg driver update, add mmap()-ed IO