1. 12 1月, 2008 3 次提交
    • S
      [SCSI] aacraid: fix driver failure with Dell PowerEdge Expandable RAID Controller 3/Di · 94cf6ba1
      Salyzyn, Mark 提交于
      As reported in http://bugzilla.kernel.org/show_bug.cgi?id=3D9133 it was
      discovered that the PERC line of controllers lacked a key 64 bit
      ScatterGather capable SCSI pass-through function. The adapters are still
      capable of 64 bit ScatterGather I/O commands, but these two can not be
      mixed. This problem was exacerbated by the introduction of the SCSI
      Generic access to the DASD physical devices.
      
      The fix for users before this patch is applied is aacraid.dacmode=3D0 on
      the kernel command line to disable 64 bit I/O.
      
      The enclosed patch introduces a new adapter quirk and tries to limp
      along by enabling pass-through in situations where memory is 32 bit
      addressable on 64 bit machines, or disable the pass-through functions
      altogether. I expect that the check for 32 bit addressable memory to be
      controversial in that it can be incorrect in non-Dell non-Intel systems
      that PERC would never be installed under, the alternative is to disable
      pass-through in all cases which could be reported as another regression.
      
      Pass-through is used for SCSI Generic access to the physical devices, or
      for the management applications to properly function.
      
      In systems where this patch has disabled pass-through because it is
      unsupportable in combination with I/O performance, the user can choose
      to enable pass-through by turning off dacmode (aacraid.dacmode=3D0) or
      limiting the discovered kernel memory (mem=3D4G) with an associated loss
      in runtime performance. If we chose instead to turn off 64 bit dacmode
      for the adapters with this quirk, then this would be reported as another
      regression.
      Signed-off-by: NMark Salyzyn <aacraid@adaptec.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NJames Bottomley <James.Bottomley@HansenPartnership.com>
      94cf6ba1
    • C
      [SCSI] aacraid: don't assign cpu_to_le32(int) to u8 · f3307f72
      Christoph Hellwig 提交于
      On Wed, Nov 07, 2007 at 01:51:44PM -0500, Salyzyn, Mark wrote:
      > Christoph Hellwig [mailto:hch@infradead.org] sez:
      > > Did anyone run the driver through sparse to see if we have
      > > more issues like this?
      >
      > There are some warnings from sparse, none like this one. I will deal
      > with the warnings ...
      
      Actually there are a lot of endianess warnings, fortunately most of them
      harmless.  The patch below fixes all of them up (including the ones in
      the patch I replied to), except for aac_init_adapter which is really odd
      and I don't know what to do.
      
      [jejb fixed up rejections and checkpatch issues]
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      Acked-by: NMark Salyzyn <mark_salyzyn@adaptec.com>
      Signed-off-by: NJames Bottomley <James.Bottomley@HansenPartnership.com>
      f3307f72
    • S
      [SCSI] aacraid: forced reset override · f858317d
      Salyzyn, Mark 提交于
      Some of our vendors have requested that our adapters ignore the hardware
      reset attempts during recovery and have enforced this with changes in
      Adapter Firmware. Some of our customers have requested the option to be
      able to reset the adapter under adverse adapter failure, we even had a
      few defects reported here considering it a regression that the Adapter
      could not be reset. This patch addresses this dichotomy. The user can
      force the adapter to be reset if it supports the IOP_RESET_ALWAYS
      command, in cases where the adapter has been programmed to ignore the
      reset, by setting the aacraid.check_reset parameter to a value of -1.
      
      The driver will not reset an Adapter that does not support the reset
      command(s).
      
      This patch also fixes and cleans up some of the logic associated with
      resetting the adapter.
      Signed-off-by: NMark Salyzyn <aacraid@adaptec.com>
      Signed-off-by: NJames <James.Bottomley@HansenPartnership.com>
      Signed-off-by: NJames Bottomley <James.Bottomley@HansenPartnership.com>
      f858317d
  2. 12 11月, 2007 1 次提交
    • A
      [SCSI] aacraid: fix security weakness · 5f78e89b
      Alan Cox 提交于
      Actually there are several but one is trivially fixed
      
      1.	FSACTL_GET_NEXT_ADAPTER_FIB ioctl does not lock dev->fib_list
      but needs to
      2.	Ditto for FSACTL_CLOSE_GET_ADAPTER_FIB
      3.	It is possible to construct an attack via the SRB ioctls where
      the user obtains assorted elevated privileges. Various approaches are
      possible, the trivial ones being things like writing to the raw media
      via scsi commands and the swap image of other executing programs with
      higher privileges.
      
      So the ioctls should be CAP_SYS_RAWIO - at least all the FIB manipulating
      ones. This is a bandaid fix for #3 but probably the ioctls should grow
      their own capable checks. The other two bugs need someone competent in that
      driver to fix them.
      Signed-off-by: NAlan Cox <alan@redhat.com>
      Acked-by: NMark Salyzyn <mark_salyzyn@adaptec.com>
      Signed-off-by: NJames Bottomley <James.Bottomley@HansenPartnership.com>
      5f78e89b
  3. 08 11月, 2007 1 次提交
  4. 16 10月, 2007 1 次提交
  5. 04 8月, 2007 1 次提交
  6. 27 7月, 2007 1 次提交
  7. 25 7月, 2007 1 次提交
  8. 24 7月, 2007 2 次提交
  9. 20 6月, 2007 2 次提交
  10. 18 6月, 2007 1 次提交
  11. 01 6月, 2007 2 次提交
  12. 22 5月, 2007 1 次提交
    • S
      [SCSI] aacraid: add support for FUA · 9d399cc7
      Salyzyn, Mark 提交于
      Back in the beginning of last year we disabled mode page 8 and mode page
      3f requests through device quirk bits instead of enhancing the driver to
      respond to these mode pages because there was no apparent added value.
      
      The Firmware that supports the new communication commands supports the
      ability to force a write around of the adapter cache on a command by
      command basis. In the attached patch we enable mode page 8 and 3f and
      spoof the results as needed in order to *convince* the layers above to
      submit writes with the FUA (Force Unit Attention) bit set if the file
      system or application requires it, if the Firmware supports the write
      through, or instead to submit a SYNCHRONIZE_CACHE if the Firmware does
      not. The added value here is for file systems that benefit from this
      functionality and for clustering or redundancy scenarios.
      
      Caveats: By convince, we are responding with a minimal short 3 byte
      content mode page 8, with only the data the SCSI layer needs and that we
      can fill confidently. Applications that require the customarily larger
      mode page 8 results may be confused by this(?). The FUA, or the
      SYNCHRONIZE_CACHE only affect the cache on the controller. Our firmware
      by default ensure that the underlying physical drives of the array have
      their cache turned off so normally this is not a problem.
      
      This attached patch is against current scsi-misc-2.6 and was unit tested
      on RHEL5. Since this is a feature enhancement, it should not be
      considered for any current stabilization efforts.
      Signed-off-by: NMark Salyzyn <aacraid@adaptec.com>
      Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
      9d399cc7
  13. 01 4月, 2007 1 次提交
  14. 22 3月, 2007 1 次提交
    • S
      [SCSI] aacraid: cleanup and version stamp driver · 802ae2f0
      Salyzyn, Mark 提交于
      There is some residual cleanup of the last series of patches and the
      need to bump the revision number to draw the line in the sand.
      
      The cmd->SCp.phase is set in the aac_valid_context routine, then set
      again to the same value following it's return. The cmd->scsi_done is set
      twice in the aac_queuecommand routine. Free up the scsidev FILO in
      aac_probe_container as it is not needed further down the function in any
      case. Improve the efficiency of the abort handler kernel print
      parameters. Bump revision number of driver to approximate the equivalent
      in the Adaptec supplied version.
      Signed-off-by: NMark Salyzyn <aacraid@adaptec.com>
      Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
      802ae2f0
  15. 20 3月, 2007 1 次提交
    • M
      [SCSI] aacraid: Improved error handling · 03d44337
      Mark Haverkamp 提交于
      Received from Mark Salyzyn,
      
      This set of fixes improve error handling stability of the driver. A popular
      manifestation of the problems is an NULL pointer reference in the interrupt
      handler when referencing portions of the scsi command context, or in the
      scsi_done handling when an offlined device is referenced.
      
      The aacraid driver currently does not get notification of orphaned command
      completions due to devices going offline. The driver also fails to handle the
      commands that are finished by the error handler, and thus can complete again
      later at the hands of the adapter causing situations of completion of an
      invalid scsi command context. Test Unit Ready calls abort assuming that the
      abort was successful, but are not, and thus when the interrupt from the adapter
      occurs, they reference invalid command contexts. We add in a TIMED_OUT flag to
      inform the aacraid FIB context that the interrupt service should merely release
      the driver resources and not complete the command up. We take advantage of this
      with the abort handler as well for select abortable commands. And we detect and
      react if a command that can not be aborted is currently still outstanding to
      the controller when reissued by the retry mechanism.
      Signed-off-by: NMark Haverkamp <markh@linux-foundation.org>
      Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
      03d44337
  16. 13 2月, 2007 1 次提交
  17. 27 1月, 2007 2 次提交
  18. 06 1月, 2007 1 次提交
  19. 24 9月, 2006 2 次提交
    • M
      [SCSI] aacraid: merge rx and rkt code · 76a7f8fd
      Mark Haverkamp 提交于
      Received from Mark Salyzyn:
      
      The only real difference between the rkt and rx platform modules is the
      offset of the message registers. This patch recognizes this similarity
      and simplifies the driver to reduce it's code footprint and to improve
      maintainability by reducing the code duplication.
      
      Visibly, the 'rkt.c' portion of this patch looks more complicated than
      it really is. View it as retaining the rkt-only specifics of the
      interface.
      Signed-off-by: NMark Haverkamp <markh@osdl.org>
      Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
      76a7f8fd
    • M
      [SCSI] aacraid: expose physical devices · 653ba58d
      Mark Haverkamp 提交于
      Received from Mark Salyzyn:
      
      I am placing this functionality into an insmod parameter. Normally the physical
      components are exported to sg, and are blocked from showing up in sd.
      
      Note that the pass-through I/O path via the driver through the Firmware to the
      physical disks is not an optimized path, the card is designed for Hardware
      RAID, elevator sorting and caching. This should not be used as a means for
      utilizing the aacraid based controllers as a generic scsi/SATA/SAS controller,
      performance should suck by a few percentage points, any RAID meta-data on the
      drives will confuse the controller about who owns the drives and there is a
      high risk of destroying content in both directions. Unreliable and for
      experimentation or strange controlled circumstances only.
      Signed-off-by: NMark Haverkamp <markh@osdl.org>
      Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
      653ba58d
  20. 20 8月, 2006 2 次提交
  21. 20 6月, 2006 1 次提交
  22. 13 6月, 2006 1 次提交
  23. 20 5月, 2006 1 次提交
  24. 13 4月, 2006 8 次提交
  25. 29 3月, 2006 1 次提交