old-www/HOWTO/SCSI-2.4-HOWTO/chg24.html

466 lines
9.0 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML
><HEAD
><TITLE
>Changes during the lk 2.4 series</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
REL="HOME"
TITLE="The Linux 2.4 SCSI subsystem HOWTO"
HREF="index.html"><LINK
REL="UP"
TITLE="Changes between lk 2.2 and (during) 2.4"
HREF="changes.html"><LINK
REL="PREVIOUS"
TITLE="sg changes"
HREF="chgsg.html"><LINK
REL="NEXT"
TITLE="Troubleshooting"
HREF="trouble.html"></HEAD
><BODY
CLASS="sect1"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>The Linux 2.4 SCSI subsystem HOWTO</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="chgsg.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Appendix B. Changes between lk 2.2 and (during) 2.4</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="trouble.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="sect1"
><H1
CLASS="sect1"
><A
NAME="chg24"
></A
>B.6. Changes during the lk 2.4 series</H1
><P
>&#13;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.
<A
NAME="AEN898"
HREF="#FTN.AEN898"
><SPAN
CLASS="footnote"
>[1]</SPAN
></A
>
<P
></P
><UL
><LI
><P
>&#13;[2.4.4] added the SCSI_IOCTL_GET_PCI ioctl(),
</P
></LI
><LI
><P
>&#13;[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,
</P
></LI
><LI
><P
>&#13;[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.]
</P
></LI
><LI
><P
>&#13;[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),
</P
></LI
><LI
><P
>&#13;[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 ...",
</P
></LI
><LI
><P
>&#13;[2.4.7] 'max_sectors' was added to the Scsi_Host structure,
</P
></LI
><LI
><P
>&#13;[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],
</P
></LI
><LI
><P
>&#13;[2.4.9] a major st update,
</P
></LI
><LI
><P
>&#13;[2.4.9] mid level changed to retry
commands if lower level (adapter) driver returned DID_RESET,
</P
></LI
><LI
><P
>&#13;[2.4.10] original result (including SCSI status) saved when mid level
issues a REQUEST SENSE so it can be restored afterwards,
</P
></LI
><LI
><P
>&#13;[2.4.10] added BLKGETSIZE64, BLKBSZSET and BLKBSZGET ioctls to sd + sr,
</P
></LI
><LI
><P
>&#13;[2.4.10] sg update that fixes generic_unplug_device() race + bumps
access_count on opens (and decrements on releases),
</P
></LI
><LI
><P
>&#13;[2.4.11] added MODULE_LICENSE macro in most drivers, mostly
MODULE_LICENSE("GPL"),
</P
></LI
><LI
><P
>&#13;[2.4.11] scsi_pid bumped for each command (why?),
</P
></LI
><LI
><P
>&#13;[2.4.11] st update to bump access_count. Now all upper level drivers
increment access_count on opens and decrement it on releases,
</P
></LI
><LI
><P
>&#13;[2.4.13] scatterlist structure grows (alt_address is removed, page and
offset added),
</P
></LI
><LI
><P
>&#13;[2.4.13] don't probe luns &#62; 7 for target &#60;= SCSI_2 ,
</P
></LI
><LI
><P
>&#13;[2.4.14] fine tuning (bug fixes) associated with scatterlist structure
changes [it broke st ?],
</P
></LI
><LI
><P
>&#13;[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,
</P
></LI
><LI
><P
>&#13;[2.4.15] BLKGETSIZE + BLKGETSIZE64 ioctl() implementations moved out of
SCSI subsystem (and into block subsystem),
</P
></LI
><LI
><P
>&#13;[2.4.15] large st update,
</P
></LI
><LI
><P
>&#13;[2.4.15] lk 2.5.0 forks off so lk2.4.15==lk2.5.0 .
</P
></LI
><LI
><P
>&#13;[2.4.17] add generic_unplug_device() call to scsi_wait_req(). This stops
long waits in SCSI_IOCTL_SEND_COMMAND.
</P
></LI
><LI
><P
>&#13;[2.4.17] fix device scanning bug where, in some cases, the scsi_level
(i.e. SCSI standard adherence) was misplaced.
</P
></LI
><LI
><P
>&#13;[2.4.17] major sg driver update, add mmap()-ed IO
</P
></LI
><LI
><P
>&#13;[2.4.18] permit upper level driver "init()" functions (e.g. sd_init() )
to fail gracefully. [Add Scsi_Device::detected and scsi_unregister_module() .]
</P
></LI
><LI
><P
>&#13;[2.4.18] Fix for clustering (SCSI commands) on MO devices.
</P
></LI
><LI
><P
>&#13;[2.4.18] st driver update (compression algorithms).
</P
></LI
><LI
><P
>&#13;[2.4.18] update Documentation/scsi.txt and scsi-generic.txt .
</P
></LI
><LI
><P
>&#13;[2.4.18] Revamp scsi_debug driver .
</P
></LI
><LI
><P
>&#13;[2.4.19] Scsi reservation and reset capability added. Reservations allow
multiple machines to share the same device (via a reserve/release mechanism).
Scsi reset (via sg) is needed to "break" a reservation held by a
non-responding machine.
</P
></LI
><LI
><P
>&#13;[2.4.19] Introduce BLIST_LARGELUN to handle LUNs larger than 7 despite
reporting SCSI 2.
</P
></LI
><LI
><P
>&#13;[2.4.19] Change sd and sr so RECOVERED_ERROR is not treated as a hard
error. Send warning to log/console.
</P
></LI
><LI
><P
>&#13;[2.4.19] Zero out sg's buffers before use. [Sg version upgraded from
3.1.22 to 3.1.24 but this is not reflected in sg.h (supeficial).]
</P
></LI
><LI
><P
>&#13;[2.4.20] Support for highmem I/O added. Used by aic7xxx,
3w-xxxx, esp, megaraid, qlogicfc and sym53c8xx_2 LLDs.
</P
></LI
><LI
><P
>&#13;[2.4.20] "blocking_open" boot time, module load time parameter added to st.
</P
></LI
><LI
><P
>&#13;[2.4.21] Give new HBAs a new host number (higher than any previously used)
unless there is a "scsihosts" match. Host numbering sequence "holes" are
only re-used if there is a "scsihosts" match.
</P
></LI
><LI
><P
>&#13;[2.4.21] stop the SCSI status RECOVERED ERROR being treated as an error
by the mid level (complements a change in 2.4.19).
</P
></LI
><LI
><P
>&#13;[2.4.21] use the TEST_UNIT_READY command (rather than START_STOP) to
determine if removable media has changed (in sd driver).
</P
></LI
><LI
><P
>&#13;[2.4.21] major work on ide-scsi driver.
</P
></LI
><LI
><P
>&#13;[2.4.21] add aic79xx driver for Adaptec Ultra 320 controllers.
</P
></LI
><LI
><P
>&#13;[2.4.22] Extend timeout of SEND DIAGNOSTIC command to 2 hours. This is
for foreground extended self tests.
</P
></LI
><LI
><P
>&#13;[2.4.26] Add 'scsi_allow_ghost_devices' kernel boot time and scsi_mod
module option.
</P
></LI
><LI
><P
>&#13;[2.4.27] SATA support via "libata" library introduced. SATA disks appear
with SCSI subsystem names (e.g. "/dev/sdb) and respond to SCSI commands (via
a command translation facility).
</P
></LI
></UL
>
</P
></DIV
><H3
CLASS="FOOTNOTES"
>Notes</H3
><TABLE
BORDER="0"
CLASS="FOOTNOTES"
WIDTH="100%"
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
WIDTH="5%"
><A
NAME="FTN.AEN898"
HREF="chg24.html#AEN898"
><SPAN
CLASS="footnote"
>[1]</SPAN
></A
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
WIDTH="95%"
><P
>&#13;This list has been compiled from the official 2.4 series kernels released
at <A
HREF="http://www.kernel.org"
TARGET="_top"
> www.kernel.org</A
>. Distributions
are free to tailor the official kernels and this may impact what is
supported (or changed) in the SCSI subsystem. For example this machine
reports this kernel: "2.4.18-27.8.0". So that is roughly based on the
official 2.4.18 kernel which the vendor has "modded" 27 times for the
"8.0" level of their distribution. As an example of the type of changes,
the aic7xxx driver in the official 2.4.18 does not support Adaptec's
Ultra 320 series of PCI adapters; however that vendor's version does.
</P
></TD
></TR
></TABLE
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="chgsg.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="trouble.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>sg changes</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="changes.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Troubleshooting</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>