466 lines
9.0 KiB
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
|
|
> 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
|
|
> [2.4.4] added the SCSI_IOCTL_GET_PCI ioctl(),
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> [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
|
|
> [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
|
|
> [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
|
|
> [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
|
|
> [2.4.7] 'max_sectors' was added to the Scsi_Host structure,
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> [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
|
|
> [2.4.9] a major st update,
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> [2.4.9] mid level changed to retry
|
|
commands if lower level (adapter) driver returned DID_RESET,
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> [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
|
|
> [2.4.10] added BLKGETSIZE64, BLKBSZSET and BLKBSZGET ioctls to sd + sr,
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> [2.4.10] sg update that fixes generic_unplug_device() race + bumps
|
|
access_count on opens (and decrements on releases),
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> [2.4.11] added MODULE_LICENSE macro in most drivers, mostly
|
|
MODULE_LICENSE("GPL"),
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> [2.4.11] scsi_pid bumped for each command (why?),
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> [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
|
|
> [2.4.13] scatterlist structure grows (alt_address is removed, page and
|
|
offset added),
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> [2.4.13] don't probe luns > 7 for target <= SCSI_2 ,
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> [2.4.14] fine tuning (bug fixes) associated with scatterlist structure
|
|
changes [it broke st ?],
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> [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
|
|
> [2.4.15] BLKGETSIZE + BLKGETSIZE64 ioctl() implementations moved out of
|
|
SCSI subsystem (and into block subsystem),
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> [2.4.15] large st update,
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> [2.4.15] lk 2.5.0 forks off so lk2.4.15==lk2.5.0 .
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> [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
|
|
> [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
|
|
> [2.4.17] major sg driver update, add mmap()-ed IO
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> [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
|
|
> [2.4.18] Fix for clustering (SCSI commands) on MO devices.
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> [2.4.18] st driver update (compression algorithms).
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> [2.4.18] update Documentation/scsi.txt and scsi-generic.txt .
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> [2.4.18] Revamp scsi_debug driver .
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> [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
|
|
> [2.4.19] Introduce BLIST_LARGELUN to handle LUNs larger than 7 despite
|
|
reporting SCSI 2.
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> [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
|
|
> [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
|
|
> [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
|
|
> [2.4.20] "blocking_open" boot time, module load time parameter added to st.
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> [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
|
|
> [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
|
|
> [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
|
|
> [2.4.21] major work on ide-scsi driver.
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> [2.4.21] add aic79xx driver for Adaptec Ultra 320 controllers.
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> [2.4.22] Extend timeout of SEND DIAGNOSTIC command to 2 hours. This is
|
|
for foreground extended self tests.
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> [2.4.26] Add 'scsi_allow_ghost_devices' kernel boot time and scsi_mod
|
|
module option.
|
|
</P
|
|
></LI
|
|
><LI
|
|
><P
|
|
> [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
|
|
> 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
|
|
> |