]> git.proxmox.com Git - mirror_smartmontools-debian.git/commitdiff
3w-sas support (from upstream changeset r3128)
authorFlorian Weimer <fweimer@bfk.de>
Sun, 26 Dec 2010 11:22:25 +0000 (12:22 +0100)
committerGiuseppe Iuculano <iuculano@debian.org>
Sun, 26 Dec 2010 11:22:25 +0000 (12:22 +0100)
Closes: #604016
debian/patches/3w-sas [new file with mode: 0644]
debian/patches/series

diff --git a/debian/patches/3w-sas b/debian/patches/3w-sas
new file mode 100644 (file)
index 0000000..53449e3
--- /dev/null
@@ -0,0 +1,405 @@
+Author: chrfranke <chrfranke@4ea69e1a-61f1-4043-bf83-b5c94c648137>
+Date:   Tue Jul 27 13:08:31 2010 +0000
+
+    Linux: Support SATA drives on LSI 3ware 9750 controllers (ticket #86).
+    
+Index: smartmontools-5.39.1+svn3124/CHANGELOG
+===================================================================
+--- smartmontools-5.39.1+svn3124.orig/CHANGELOG        2010-07-12 21:21:00.000000000 +0200
++++ smartmontools-5.39.1+svn3124/CHANGELOG     2010-12-23 11:05:12.103063859 +0100
+@@ -86,6 +86,10 @@
+        This fixes build on QNX (ticket #1).
+        Thanks to Stefan (stevestereo) for testing.
++  [CF] Linux: Support SATA drives on LSI 3ware 9750 controllers.
++       Patch provided by Victor Payno (ticket #86).
++       Modified to avoid duplicate code.
++
+   [CF] drivedb.h update:
+        - WD Caviar Green (Adv. Format) family
+Index: smartmontools-5.39.1+svn3124/NEWS
+===================================================================
+--- smartmontools-5.39.1+svn3124.orig/NEWS     2010-06-11 18:21:25.000000000 +0200
++++ smartmontools-5.39.1+svn3124/NEWS  2010-12-23 11:05:12.103063859 +0100
+@@ -22,6 +22,7 @@
+   SCT Error Recovery Control time limit.
+ - smartctl options '--scan, --scan-open'.
+ - Linux: Add '/dev/sd[a-c][a-z]' to smartd DEVICESCAN.
++- Linux: Support SATA drives on LSI 3ware 9750 controllers.
+ - Windows: Read 'drivedb.h' and 'smartd.conf' from exe directory.
+ - Windows: Support for 64-bit executables.
+ - Windows: Support for cross compilation on Linux.
+Index: smartmontools-5.39.1+svn3124/os_linux.cpp
+===================================================================
+--- smartmontools-5.39.1+svn3124.orig/os_linux.cpp     2010-04-30 19:35:35.000000000 +0200
++++ smartmontools-5.39.1+svn3124/os_linux.cpp  2010-12-23 11:05:12.103063859 +0100
+@@ -196,6 +196,7 @@
+                 "  smartctl --all --device=3ware,2 /dev/sda\n"
+                 "  smartctl --all --device=3ware,2 /dev/twe0\n"
+                 "  smartctl --all --device=3ware,2 /dev/twa0\n"
++                "  smartctl --all --device=3ware,2 /dev/twl0\n"
+                 "          (Prints all SMART info for 3rd ATA disk on 3ware RAID controller)\n"
+                 "  smartctl --all --device=hpt,1/1/3 /dev/sda\n"
+                 "          (Prints all SMART info for the SATA disk attached to the 3rd PMPort\n"
+@@ -1216,7 +1217,8 @@
+   enum escalade_type_t {
+     AMCC_3WARE_678K,
+     AMCC_3WARE_678K_CHAR,
+-    AMCC_3WARE_9000_CHAR
++    AMCC_3WARE_9000_CHAR,
++    AMCC_3WARE_9700_CHAR
+   };
+   linux_escalade_device(smart_interface * intf, const char * dev_name,
+@@ -1389,12 +1391,17 @@
+ bool linux_escalade_device::open()
+ {
+-  if (m_escalade_type == AMCC_3WARE_9000_CHAR || m_escalade_type == AMCC_3WARE_678K_CHAR) {
++  if (m_escalade_type == AMCC_3WARE_9700_CHAR || m_escalade_type == AMCC_3WARE_9000_CHAR ||
++      m_escalade_type == AMCC_3WARE_678K_CHAR) {
+     // the device nodes for these controllers are dynamically assigned,
+     // so we need to check that they exist with the correct major
+     // numbers and if not, create them
+-    const char * node   = (m_escalade_type == AMCC_3WARE_9000_CHAR ? "twa"    : "twe"    );
+-    const char * driver = (m_escalade_type == AMCC_3WARE_9000_CHAR ? "3w-9xxx": "3w-xxxx");
++    const char * node   = (m_escalade_type == AMCC_3WARE_9700_CHAR ? "twl"     :
++                           m_escalade_type == AMCC_3WARE_9000_CHAR ? "twa"     :
++                                                                     "twe"      );
++    const char * driver = (m_escalade_type == AMCC_3WARE_9700_CHAR ? "3w-sas"  :
++                           m_escalade_type == AMCC_3WARE_9000_CHAR ? "3w-9xxx" :
++                                                                     "3w-xxxx"  );
+     if (setup_3ware_nodes(node, driver))
+       return set_err((errno ? errno : ENXIO), "setup_3ware_nodes(\"%s\", \"%s\") failed", node, driver);
+   }
+@@ -1461,7 +1468,7 @@
+   memset(ioctl_buffer, 0, TW_IOCTL_BUFFER_SIZE);
+   // TODO: Handle controller differences by different classes
+-  if (m_escalade_type==AMCC_3WARE_9000_CHAR) {
++  if (m_escalade_type == AMCC_3WARE_9700_CHAR || m_escalade_type == AMCC_3WARE_9000_CHAR) {
+     tw_ioctl_apache                               = (TW_Ioctl_Buf_Apache *)ioctl_buffer;
+     tw_ioctl_apache->driver_command.control_code  = TW_IOCTL_FIRMWARE_PASS_THROUGH;
+     tw_ioctl_apache->driver_command.buffer_length = 512; /* payload size */
+@@ -1523,7 +1530,8 @@
+     // in dwords by 1 to account for the 64-bit single sgl 'address'
+     // field. Note that this doesn't agree with the typedefs but it's
+     // right (agree with kernel driver behavior/typedefs).
+-    if (m_escalade_type==AMCC_3WARE_9000_CHAR && sizeof(long)==8)
++    if ((m_escalade_type == AMCC_3WARE_9700_CHAR || m_escalade_type == AMCC_3WARE_9000_CHAR)
++        && sizeof(long) == 8)
+       passthru->size++;
+   }
+   else if (in.direction == ata_cmd_in::no_data) {
+@@ -1535,7 +1543,7 @@
+     passthru->sector_count = 0x0;
+   }
+   else if (in.direction == ata_cmd_in::data_out) {
+-    if (m_escalade_type == AMCC_3WARE_9000_CHAR)
++    if (m_escalade_type == AMCC_3WARE_9700_CHAR || m_escalade_type == AMCC_3WARE_9000_CHAR)
+       memcpy(tw_ioctl_apache->data_buffer, in.buffer, in.size);
+     else if (m_escalade_type == AMCC_3WARE_678K_CHAR)
+       memcpy(tw_ioctl_char->data_buffer,   in.buffer, in.size);
+@@ -1548,7 +1556,8 @@
+     passthru->byte0.sgloff = 0x5;
+     passthru->size         = 0x7;  // TODO: Other value for multi-sector ?
+     passthru->param        = 0xF;  // PIO data write
+-    if (m_escalade_type==AMCC_3WARE_9000_CHAR && sizeof(long)==8)
++    if ((m_escalade_type == AMCC_3WARE_9700_CHAR || m_escalade_type == AMCC_3WARE_9000_CHAR)
++        && sizeof(long) == 8)
+       passthru->size++;
+   }
+   else
+@@ -1556,7 +1565,7 @@
+   // Now send the command down through an ioctl()
+   int ioctlreturn;
+-  if (m_escalade_type==AMCC_3WARE_9000_CHAR)
++  if (m_escalade_type == AMCC_3WARE_9700_CHAR || m_escalade_type == AMCC_3WARE_9000_CHAR)
+     ioctlreturn=ioctl(get_fd(), TW_IOCTL_FIRMWARE_PASS_THROUGH, tw_ioctl_apache);
+   else if (m_escalade_type==AMCC_3WARE_678K_CHAR)
+     ioctlreturn=ioctl(get_fd(), TW_CMD_PACKET_WITH_DATA, tw_ioctl_char);
+@@ -1607,7 +1616,7 @@
+   // If this is a read data command, copy data to output buffer
+   if (readdata) {
+-    if (m_escalade_type==AMCC_3WARE_9000_CHAR)
++    if (m_escalade_type == AMCC_3WARE_9700_CHAR || m_escalade_type == AMCC_3WARE_9000_CHAR)
+       memcpy(in.buffer, tw_ioctl_apache->data_buffer, in.size);
+     else if (m_escalade_type==AMCC_3WARE_678K_CHAR)
+       memcpy(in.buffer, tw_ioctl_char->data_buffer, in.size);
+@@ -2695,7 +2704,7 @@
+     if (!memcmp(req_buff + 8, "3ware", 5) || !memcmp(req_buff + 8, "AMCC", 4)) {
+       close();
+       set_err(EINVAL, "AMCC/3ware controller, please try adding '-d 3ware,N',\n"
+-                      "you may need to replace %s with /dev/twaN or /dev/tweN", get_dev_name());
++                      "you may need to replace %s with /dev/twlN, /dev/twaN or /dev/tweN", get_dev_name());
+       return this;
+     }
+@@ -2997,6 +3006,7 @@
+ static const char * lin_dev_scsi_tape1 = "ns";
+ static const char * lin_dev_scsi_tape2 = "os";
+ static const char * lin_dev_scsi_tape3 = "nos";
++static const char * lin_dev_3ware_9700_char = "twl";
+ static const char * lin_dev_3ware_9000_char = "twa";
+ static const char * lin_dev_3ware_678k_char = "twe";
+ static const char * lin_dev_cciss_dir = "cciss/";
+@@ -3080,6 +3090,11 @@
+                strlen(lin_dev_scsi_tape3)))
+     return new linux_scsi_device(this, name, "");
++  // form /dev/twl*
++  if (!strncmp(lin_dev_3ware_9700_char, dev_name,
++               strlen(lin_dev_3ware_9700_char)))
++    return missing_option("-d 3ware,N");
++
+   // form /dev/twa*
+   if (!strncmp(lin_dev_3ware_9000_char, dev_name,
+                strlen(lin_dev_3ware_9000_char)))
+@@ -3122,7 +3137,9 @@
+       return 0;
+     }
+-    if (!strncmp(name, "/dev/twa", 8))
++    if (!strncmp(name, "/dev/twl", 8))
++      return new linux_escalade_device(this, name, linux_escalade_device::AMCC_3WARE_9700_CHAR, disknum);
++    else if (!strncmp(name, "/dev/twa", 8))
+       return new linux_escalade_device(this, name, linux_escalade_device::AMCC_3WARE_9000_CHAR, disknum);
+     else if (!strncmp(name, "/dev/twe", 8))
+       return new linux_escalade_device(this, name, linux_escalade_device::AMCC_3WARE_678K_CHAR, disknum);
+Index: smartmontools-5.39.1+svn3124/smartctl.8.in
+===================================================================
+--- smartmontools-5.39.1+svn3124.orig/smartctl.8.in    2010-06-11 18:21:25.000000000 +0200
++++ smartmontools-5.39.1+svn3124/smartctl.8.in 2010-12-23 11:05:12.103063859 +0100
+@@ -65,7 +65,7 @@
+ \fB"/dev/sg*"\fP.  For SATA disks accessed with libata, use
+ \fB"/dev/sd[a\-z]"\fP and append \fB"\-d ata"\fP. For disks behind
+ 3ware controllers you may need \fB"/dev/sd[a\-z]"\fP or
+-\fB"/dev/twe[0\-9]"\fP or \fB"/dev/twa[0\-9]"\fP: see details
++\fB"/dev/twe[0\-9]"\fP, \fB"/dev/twa[0\-9]"\fP or \fB"/dev/twl[0\-9]"\fP: see details
+ below. For disks behind HighPoint RocketRAID controllers you may need
+ \fB"/dev/sd[a\-z]"\fP.  For disks behind Areca SATA RAID controllers,
+ you need \fB"/dev/sg[2\-9]"\fP (note that smartmontools interacts with
+@@ -303,6 +303,9 @@
+ .nf
+ \fBsmartctl \-a \-d 3ware,1 /dev/twa0\fP
+ .fi
++.nf
++\fBsmartctl \-a \-d 3ware,1 /dev/twl0\fP
++.fi
+ where in the argument \fI3ware,N\fP, the integer N is the disk number
+ (3ware \'port\') within the 3ware ATA RAID controller.  The allowed
+ values of N are from 0 to 127 inclusive.  The first two forms, which
+@@ -314,12 +317,17 @@
+ /dev/twa0\-15, must be used with 3ware 9000 series controllers, which
+ use the 3w\-9xxx driver.
+-Note that if the special character device nodes /dev/twa? and
+-/dev/twe? do not exist, or exist with the incorrect major or minor
++The devices /dev/twl0\-15 must be used with the 3ware/LSI 9750 series
++controllers which use the 3w-sas driver.
++
++Note that if the special character device nodes /dev/twl?, /dev/twa?
++and /dev/twe? do not exist, or exist with the incorrect major or minor
+ numbers, smartctl will recreate them on the fly.  Typically /dev/twa0
+ refers to the first 9000\-series controller, /dev/twa1 refers to the
+-second 9000 series controller, and so on. Likewise /dev/twe0 refers to
+-the first 6/7/8000\-series controller, /dev/twa1 refers to the second
++second 9000 series controller, and so on. The /dev/twl0 devices refers
++to the first 9750 series controller, /dev/twl1 resfers to the second
++9750 series controller, and so on. Likewise /dev/twe0 refers to
++the first 6/7/8000\-series controller, /dev/twe1 refers to the second
+ 6/7/8000 series controller, and so on.
+ Note that for the 6/7/8000 controllers, \fBany\fP of the physical
+@@ -354,7 +362,7 @@
+ instructions.  Alternatively, use the character device /dev/twe0\-15 interface.
+ The selective self\-test functions (\'\-t select,A\-B\') are only supported
+-using the character device interface /dev/twa0\-15 and /dev/twe0\-15.
++using the character device interface /dev/twl0\-15, /dev/twa0\-15 and /dev/twe0\-15.
+ The necessary WRITE LOG commands can not be passed through the SCSI
+ interface.
+@@ -1688,8 +1696,14 @@
+ .nf
+ .B smartctl \-a \-d 3ware,0 /dev/twa0
+ .fi
+-Examine all SMART data for the first ATA disk connected to a 3ware
+-RAID 9000 controller card.
++Examine all SMART data for the first ATA disk connected to a
++3ware RAID 9000 controller card.
++.PP
++.nf
++.B smartctl \-a \-d 3ware,0 /dev/twl0
++.fi
++Examine all SMART data for the first SATA (not SAS) disk connected to a
++3ware RAID 9750 controller card.
+ .PP
+ .nf
+ .B smartctl \-t short \-d 3ware,3 /dev/sdb
+Index: smartmontools-5.39.1+svn3124/smartd.8.in
+===================================================================
+--- smartmontools-5.39.1+svn3124.orig/smartd.8.in      2010-12-23 11:00:15.000000000 +0100
++++ smartmontools-5.39.1+svn3124/smartd.8.in   2010-12-23 11:06:26.676860226 +0100
+@@ -601,10 +601,17 @@
+ .B #
+ .nf
+ .B # Two ATA disks on a 3ware 9000 controller.
+-.B # Start long self-tests Sundays between  midnight and 
++.B # Start long self-tests Sundays between midnight and
+ .B # 1am and 2-3 am
+ .B \ \ /dev/twa0 -d 3ware,0 -a -s L/../../7/00
+ .B \ \ /dev/twa0 -d 3ware,1 -a -s L/../../7/02
++.nf
++.B #
++.B # Two SATA (not SAS) disks on a 3ware 9750 controller.
++.B # Start long self-tests Sundays between midnight and
++.B # 1am and 2-3 am
++.B \ \ /dev/twl0 -d 3ware,0 -a -s L/../../7/00
++.B \ \ /dev/twl0 -d 3ware,1 -a -s L/../../7/02
+ .B #
+ .nf
+ .B # Monitor 2 disks connected to the first HP SmartArray controller which
+@@ -703,11 +710,11 @@
+ status fails, or if new errors appear in the self-test log.
+ .B If a 3ware controller is used
+-then the corresponding SCSI (/dev/sd?) or character device (/dev/twe?
+-or /dev/twa?) must be listed, along with the \'\-d 3ware,N\' Directive
+-(see below).  The individual ATA disks hosted by the 3ware controller
+-appear to \fBsmartd\fP as normal ATA devices.  Hence all the ATA
+-directives can be used for these disks (but see note below).
++then the corresponding SCSI (/dev/sd?) or character device (/dev/twe?,
++/dev/twa? or /dev/twl?) must be listed, along with the \'\-d 3ware,N\'
++Directive (see below).  The individual ATA disks hosted by the 3ware
++controller appear to \fBsmartd\fP as normal ATA devices.  Hence all
++the ATA directives can be used for these disks (but see note below).
+ .B If an Areca controller is used
+ then the corresponding SCSI generic device (/dev/sg?)  must be listed,
+@@ -791,11 +798,11 @@
+ ATA disks behind 3ware controllers may alternatively be accessed via a
+ character device interface /dev/twe0-15 (3ware 6000/7000/8000
+-controllers) and /dev/twa0-15 (3ware 9000 series controllers).  Note
+-that the 9000 series controllers may \fBonly\fP be accessed using the
+-character device interface /dev/twa0-15 and not the SCSI device
+-interface /dev/sd?.  Please see the \fBsmartctl\fP(8) man page for
+-further details.
++controllers), /dev/twa0-15 (3ware 9000 series controllers) and
++/dev/twl0-15 (3ware 9750 series controllers).  Note that the 9000 series
++controllers may \fBonly\fP be accessed using the character device
++interface /dev/twa0-15 and not the SCSI device interface /dev/sd?.
++Please see the \fBsmartctl\fP(8) man page for further details.
+ Note that older 3w-xxxx drivers do not pass the \'Enable Autosave\'
+ (\fB-S on\fP) and \'Enable Automatic Offline\' (\fB-o on\fP) commands
+@@ -806,8 +813,8 @@
+ patch to older versions.  See
+ \fBhttp://smartmontools.sourceforge.net/\fP for instructions.
+ Alternatively use the character device interfaces /dev/twe0-15 (3ware
+-6/7/8000 series controllers) or /dev/twa0-15 (3ware 9000 series
+-controllers).
++6/7/8000 series controllers), /dev/twa0-15 (3ware 9000 series
++controllers) or /dev/twl0-15 (3ware 9750 series controllers).
+ .I areca,N
+ \- the device consists of one or more SATA disks connected to an Areca
+Index: smartmontools-5.39.1+svn3124/smartd.conf
+===================================================================
+--- smartmontools-5.39.1+svn3124.orig/smartd.conf      2010-12-23 11:00:15.000000000 +0100
++++ smartmontools-5.39.1+svn3124/smartd.conf   2010-12-23 11:05:12.107063211 +0100
+@@ -75,12 +75,18 @@
+ #/dev/sdc -d 3ware,2 -a -s L/../../7/03
+ #/dev/sdc -d 3ware,3 -a -s L/../../7/04
+-# Monitor 2 ATA disks connected to a 3ware 9000 controller which uses
+-# the 3w-9xxx driver (Linux, FreeBSD). Start long self-tests Tuesdays
++# Monitor 2 ATA disks connected to a 3ware 9000 controller which
++# uses the 3w-9xxx driver (Linux, FreeBSD). Start long self-tests Tuesdays
+ # between 1-2 and 3-4 am.
+ #/dev/twa0 -d 3ware,0 -a -s L/../../2/01
+ #/dev/twa0 -d 3ware,1 -a -s L/../../2/03
++# Monitor 2 SATA (not SAS) disks connected to a 3ware 9000 controller which
++# uses the 3w-sas driver (Linux, FreeBSD). Start long self-tests Tuesdays
++# between 1-2 and 3-4 am.
++#/dev/twl0 -d 3ware,0 -a -s L/../../2/01
++#/dev/twa0 -d 3ware,1 -a -s L/../../2/03
++
+ # Same as above for Windows. Option '-d 3ware,N' is not necessary,
+ # disk (port) number is specified in device name.
+ # NOTE: On Windows, DEVICESCAN works also for 3ware controllers.
+Index: smartmontools-5.39.1+svn3124/smartd.conf.5.in
+===================================================================
+--- smartmontools-5.39.1+svn3124.orig/smartd.conf.5.in 2010-12-23 11:00:15.000000000 +0100
++++ smartmontools-5.39.1+svn3124/smartd.conf.5.in      2010-12-23 11:07:46.278565643 +0100
+@@ -177,12 +177,19 @@
+ .B #
+ .nf
+ .B # Two ATA disks on a 3ware 9000 controller.
+-.B # Start long self-tests Sundays between  midnight and 
++.B # Start long self-tests Sundays between midnight and
+ .B # 1am and 2-3 am
+ .B \ \ /dev/twa0 -d 3ware,0 -a -s L/../../7/00
+ .B \ \ /dev/twa0 -d 3ware,1 -a -s L/../../7/02
+ .B #
+ .nf
++.B # Two SATA (not SAS) disks on a 3ware 9750 controller.
++.B # Start long self-tests Sundays between midnight and
++.B # 1am and 2-3 am
++.B \ \ /dev/twl0 -d 3ware,0 -a -s L/../../7/00
++.B \ \ /dev/twl0 -d 3ware,1 -a -s L/../../7/02
++.B #
++.nf
+ .B # Monitor 2 disks connected to the first HP SmartArray controller which
+ .B # uses the cciss driver. Start long tests on Sunday nights and short
+ .B # self-tests every night and send errors to root
+@@ -279,11 +286,11 @@
+ status fails, or if new errors appear in the self-test log.
+ .B If a 3ware controller is used
+-then the corresponding SCSI (/dev/sd?) or character device (/dev/twe?
+-or /dev/twa?) must be listed, along with the \'\-d 3ware,N\' Directive
+-(see below).  The individual ATA disks hosted by the 3ware controller
+-appear to \fBsmartd\fP as normal ATA devices.  Hence all the ATA
+-directives can be used for these disks (but see note below).
++then the corresponding SCSI (/dev/sd?) or character device (/dev/twe?,
++/dev/twa? or /dev/twl?) must be listed, along with the \'\-d 3ware,N\'
++Directive (see below).  The individual ATA disks hosted by the 3ware
++controller appear to \fBsmartd\fP as normal ATA devices.  Hence all
++the ATA directives can be used for these disks (but see note below).
+ .B If an Areca controller is used
+ then the corresponding SCSI generic device (/dev/sg?)  must be listed,
+@@ -367,11 +374,11 @@
+ ATA disks behind 3ware controllers may alternatively be accessed via a
+ character device interface /dev/twe0-15 (3ware 6000/7000/8000
+-controllers) and /dev/twa0-15 (3ware 9000 series controllers).  Note
+-that the 9000 series controllers may \fBonly\fP be accessed using the
+-character device interface /dev/twa0-15 and not the SCSI device
+-interface /dev/sd?.  Please see the \fBsmartctl\fP(8) man page for
+-further details.
++controllers), /dev/twa0-15 (3ware 9000 series controllers) and
++/dev/twl0-15 (3ware 9750 series controllers).  Note that the 9000 series
++controllers may \fBonly\fP be accessed using the character device
++interface /dev/twa0-15 and not the SCSI device interface /dev/sd?.
++Please see the \fBsmartctl\fP(8) man page for further details.
+ Note that older 3w-xxxx drivers do not pass the \'Enable Autosave\'
+ (\fB-S on\fP) and \'Enable Automatic Offline\' (\fB-o on\fP) commands
+@@ -382,8 +389,8 @@
+ patch to older versions.  See
+ \fBhttp://smartmontools.sourceforge.net/\fP for instructions.
+ Alternatively use the character device interfaces /dev/twe0-15 (3ware
+-6/7/8000 series controllers) or /dev/twa0-15 (3ware 9000 series
+-controllers).
++6/7/8000 series controllers), /dev/twa0-15 (3ware 9000 series
++controllers) or /dev/twl0-15 (3ware 9750 series controllers).
+ .I areca,N
+ \- the device consists of one or more SATA disks connected to an Areca
index fe127df423ce747ad9d3ee980132b1bdf3de64ce..2cb795a5f8a06ae06d1cabd3f3b19f3580e6ec34 100644 (file)
@@ -5,3 +5,4 @@
 61_cciss-doc.patch
 63_removable.patch
 manpage.diff
+3w-sas