Whole document tree
    

Whole document tree

Changes during the lk 2.4 series

B.6. Changes during the lk 2.4 series

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