1. 12 1月, 2008 2 次提交
    • 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. 28 7月, 2007 1 次提交
    • S
      [SCSI] aacraid: fix Sunrise Lake reset handling · 9859c1aa
      Salyzyn, Mark 提交于
      The patch is *much* smaller than the description. I am attempting to
      answer to those that want to understand an issue that was reported in
      May this year.
      
      If a Sunrise Lake based card that requires an alternate reset mechanism
      is set up to ignore the commanded IOP_RESET it reports 0x00000010
      (IOP_RESET ignored) instead of 0x3803000F (use alternate reset mechanism
      to reset all cores), and thus the reset platform function decides to
      switch to IOP_RESET_ALWAYS because the reset platform function
      parameters indicate that we *need* to reset the card. IOP_RESET_ALWAYS
      then responds with the 0x3803000F return code, but alas we treat this as
      an error instead of using the alternate reset mechanism (put a 0x03 into
      the register offset 0x38). The reset fails, but the fact that the
      IOP_RESET_ALWAYS command was issued has put the card in a purposeful
      shutdown state in preparation for the alternate hardware reset to be
      applied. Yuck.
      
      IOP_RESET is ignored in internal production cards, typically to ensure
      that we catch all adapter lockup issues without the driver progressing
      further, so this would not appear to be a field issue and thus this
      patch was destined to be only in the internal Adaptec source tree.
      IOP_RESET_ALWAYS is reserved for
      kexec/kdump/FirmwareUpdate/AutomatedTestFrames so we did not function as
      expected in any case. Also in the past we have had OEMs specifically
      request that cards not be resetable after a BlinkLED/FirmwareAssert for
      one reason or another and To head off the possibility that the Sunrise
      Lake based cards would suffer a similar fate, we propose the enclosed
      fix.
      
      Yinghai Lu of SUN had a pre-production card with IOP_RESET disabled when
      he reported an issue to the linux kernel list back in May regarding a
      kexec problem resulting from this reset being ignore. His fix was to
      update the Firmware to one that did not ignore the IOP_RESET. Previous
      kernels did not attempt to reset the adapter and that is why it surfaced
      as a regression in his hands.
      
      The current list of aacraid based cards that use Sunrise Lake:
      
      9005:0285:9005:02b5     Adaptec 5445
      9005:0285:9005:02b6     Adaptec 5805
      9005:0285:9005:02b7     Adaptec 5085
      9005:0285:9005:02c3     Adaptec 51205
      9005:0285:9005:02c4     Adaptec 51605
      9005:0285:9005:02ce     Adaptec 51245
      9005:0285:9005:02cf     Adaptec 51645
      9005:0285:9005:02d0     Adaptec 52445
      9005:0285:9005:02d1     Adaptec 5405
      9005:0285:9005:02b8     ICP     ICP5445SL
      9005:0285:9005:02b9     ICP     ICP5085SL
      9005:0285:9005:02ba     ICP     ICP5805SL
      9005:0285:9005:02c5     ICP     ICP5125SL
      9005:0285:9005:02c6     ICP     ICP5165SL
      9005:0285:108e:7aac     SUN     STK RAID REM
      9005:0285:108e:0286     SUN     STK RAID INT
      9005:0285:108e:0287     SUN     STK RAID EXT
      9005:0285:108e:7aae     SUN     STK RAID EM
      
      All of these are publicly released with IOP_RESET enabled. So there is
      no immediate need for this patch.
      Signed-off-by: NMark Salyzyn <aacraid@adaptec.com>
      Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
      9859c1aa
  3. 18 6月, 2007 1 次提交
  4. 23 5月, 2007 1 次提交
    • S
      [SCSI] aacraid: apply commit config for reset_devices flag · 1208bab5
      Salyzyn, Mark 提交于
      Under some conditions associated with the unclean transition to kdump,
      the aacraid adapters will view the array as foreign and not export it to
      prevent access and data manipulation. The solution is to submit a commit
      configuration to export the devices since this is a expected behavior
      when transitioning to a kdump kernel.
      
      This patch adds the aacraid.reset_devices flag and when either this or
      the global reset_devices flag is set, ensures that a commit config is
      issued and extends the startup_timeout if it is set less than 5 minutes.
      Signed-off-by: NMark Salyzyn <aacraid@adaptec.com>
      Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
      1208bab5
  5. 17 5月, 2007 1 次提交
  6. 06 5月, 2007 2 次提交
  7. 02 4月, 2007 1 次提交
    • S
      [SCSI] aacraid: [Fastboot] Panics for AACRAID driver during 'insmod' for kexec test. · 18a6598f
      Salyzyn, Mark 提交于
      Attached is the patch I feel will address this issue. As an added
      'perk' I have also added the code to detect if the controller was
      previously initialized for interrupted operations by ANY operating
      system should the reset_devices kernel parameter not be set and we are
      dealing with a naïve kexec without the addition of this kernel
      parameter. The reset handler is also improved. Related to reset
      operations, but not pertinent specifically to this issue, I have also
      altered the handling somewhat so that we reset the adapter if we feel
      it is taking too long (three minutes) to start up.
      
      We have not unit tested the reset_devices flag propagation to this
      driver code, nor have we unit tested the check for the interrupted
      operations under the conditions of a naively issued kexec. We are
      submitting this modified driver to our Q/A department for integration
      testing in our current programs. I would appreciate an ACK to this
      patch should it resolve the issue described in this thread...
      Signed-off-by: NMark Salyzyn <aacraid@adaptec.com>
      Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
      18a6598f
  8. 01 4月, 2007 2 次提交
  9. 20 3月, 2007 2 次提交
  10. 15 2月, 2007 1 次提交
    • T
      [PATCH] remove many unneeded #includes of sched.h · cd354f1a
      Tim Schmielau 提交于
      After Al Viro (finally) succeeded in removing the sched.h #include in module.h
      recently, it makes sense again to remove other superfluous sched.h includes.
      There are quite a lot of files which include it but don't actually need
      anything defined in there.  Presumably these includes were once needed for
      macros that used to live in sched.h, but moved to other header files in the
      course of cleaning it up.
      
      To ease the pain, this time I did not fiddle with any header files and only
      removed #includes from .c-files, which tend to cause less trouble.
      
      Compile tested against 2.6.20-rc2 and 2.6.20-rc2-mm2 (with offsets) on alpha,
      arm, i386, ia64, mips, powerpc, and x86_64 with allnoconfig, defconfig,
      allmodconfig, and allyesconfig as well as a few randconfigs on x86_64 and all
      configs in arch/arm/configs on arm.  I also checked that no new warnings were
      introduced by the patch (actually, some warnings are removed that were emitted
      by unnecessarily included header files).
      Signed-off-by: NTim Schmielau <tim@physik3.uni-rostock.de>
      Acked-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      cd354f1a
  11. 27 1月, 2007 1 次提交
    • M
      [SCSI] aacraid: rework communication support code · 28713324
      Mark Haverkamp 提交于
      Received from Mark Salyzyn,
      
      Replace all if/else communication transports with a platform function call.
      This is in recognition of the need to migrate to up-and-coming transports.
      Currently the Linux driver does not support two available communication
      transports provided by our products, these will be added in future patches, and
      will expand the platform function set.
      
      Signed-off-by Mark Haverkamp <markh@linux-foundation.org>
      Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
      28713324
  12. 05 10月, 2006 1 次提交
    • D
      IRQ: Maintain regs pointer globally rather than passing to IRQ handlers · 7d12e780
      David Howells 提交于
      Maintain a per-CPU global "struct pt_regs *" variable which can be used instead
      of passing regs around manually through all ~1800 interrupt handlers in the
      Linux kernel.
      
      The regs pointer is used in few places, but it potentially costs both stack
      space and code to pass it around.  On the FRV arch, removing the regs parameter
      from all the genirq function results in a 20% speed up of the IRQ exit path
      (ie: from leaving timer_interrupt() to leaving do_IRQ()).
      
      Where appropriate, an arch may override the generic storage facility and do
      something different with the variable.  On FRV, for instance, the address is
      maintained in GR28 at all times inside the kernel as part of general exception
      handling.
      
      Having looked over the code, it appears that the parameter may be handed down
      through up to twenty or so layers of functions.  Consider a USB character
      device attached to a USB hub, attached to a USB controller that posts its
      interrupts through a cascaded auxiliary interrupt controller.  A character
      device driver may want to pass regs to the sysrq handler through the input
      layer which adds another few layers of parameter passing.
      
      I've build this code with allyesconfig for x86_64 and i386.  I've runtested the
      main part of the code on FRV and i386, though I can't test most of the drivers.
      I've also done partial conversion for powerpc and MIPS - these at least compile
      with minimal configurations.
      
      This will affect all archs.  Mostly the changes should be relatively easy.
      Take do_IRQ(), store the regs pointer at the beginning, saving the old one:
      
      	struct pt_regs *old_regs = set_irq_regs(regs);
      
      And put the old one back at the end:
      
      	set_irq_regs(old_regs);
      
      Don't pass regs through to generic_handle_irq() or __do_IRQ().
      
      In timer_interrupt(), this sort of change will be necessary:
      
      	-	update_process_times(user_mode(regs));
      	-	profile_tick(CPU_PROFILING, regs);
      	+	update_process_times(user_mode(get_irq_regs()));
      	+	profile_tick(CPU_PROFILING);
      
      I'd like to move update_process_times()'s use of get_irq_regs() into itself,
      except that i386, alone of the archs, uses something other than user_mode().
      
      Some notes on the interrupt handling in the drivers:
      
       (*) input_dev() is now gone entirely.  The regs pointer is no longer stored in
           the input_dev struct.
      
       (*) finish_unlinks() in drivers/usb/host/ohci-q.c needs checking.  It does
           something different depending on whether it's been supplied with a regs
           pointer or not.
      
       (*) Various IRQ handler function pointers have been moved to type
           irq_handler_t.
      Signed-Off-By: NDavid Howells <dhowells@redhat.com>
      (cherry picked from 1b16e7ac850969f38b375e511e3fa2f474a33867 commit)
      7d12e780
  13. 24 9月, 2006 1 次提交
    • 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
  14. 20 8月, 2006 1 次提交
    • M
      [SCSI] aacraid: Restart adapter on firmware assert (Update 2) · 8c23cd74
      Mark Haverkamp 提交于
      Received from Mark Salyzyn
      
      If the adapter should be in a blinkled (Firmware Assert) state when the
      driver loads, we will perform a warm restart of the Adapter Firmware to
      see if we can rescue the adapter. Possible causes of a blinkled can
      occur on some early release motherboard BIOSes, transitory PCI bus
      problems on embedded systems or non-x86 based architectures, transitory
      startup failures of early release drives or transitory hardware
      failures; some of which can bite the adapter later at runtime. Future
      enhancements will include recovery during runtime.
      
      Fixed extra whitespace space issue.
      Signed-off-by: NMark Haverkamp <markh@osdl.org>
      Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
      8c23cd74
  15. 03 7月, 2006 1 次提交
  16. 20 5月, 2006 1 次提交
    • M
      [SCSI] aacraid: adjustable timeouts · 404d9a90
      Mark Haverkamp 提交于
      Received From Mark Salyzyn
      
      Add the ability to adjust for unusual corner case failures. Both of
      these additional module parameters deal with embedded, non-intel or
      complicated system scenarios.
      
      Aif_timeout can be increased past the default 2 minute timeout to drop
      application registrations when a system has an unusually high event load
      resulting from continuing management requests, or simultaneous builds,
      or sluggish user space as a result of system load.
      
      Startup_timeout can be increased past the default 3 minute timeout to
      drop an adapter initialization for systems that have a very large number
      of targets, or slow to spin-up targets, or a complicated set of array
      configurations that extend the time for the firmware to declare that it
      is operational. This timeout would only have an affect on non-intel
      based systems, as the (more patient) BIOS would generally be where the
      startup delay would be dealt with.
      Signed-off-by: NMark Haverkamp <markh@osdl.org>
      Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
      404d9a90
  17. 13 4月, 2006 1 次提交
  18. 07 11月, 2005 1 次提交
  19. 29 10月, 2005 1 次提交
  20. 06 8月, 2005 1 次提交
  21. 21 5月, 2005 2 次提交
    • M
      [SCSI] 2.6 aacraid: Variable FIB size (updated patch) · 7c00ffa3
      Mark Haverkamp 提交于
      New code from the Adaptec driver.  Performance enhancement for newer
      adapters.  I hope that this isn't too big for a single patch.  I believe
      that other than the few small cleanups mentioned, that the changes are
      all related.
      
      - Added Variable FIB size negotiation for new adapters.
      - Added support to maximize scatter gather tables and thus permit
        requests larger than 64KB/each.
      - Limit Scatter Gather to 34 elements for ROMB platforms.
      - aac_printf is only enabled with AAC_QUIRK_34SG
      - Large FIB ioctl support
      - some minor cleanup
      
      Passes sparse check.
      I have tested it on x86 and ppc64 machines.
      Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
      7c00ffa3
    • M
      [SCSI] aacraid: remove sparse warnings · 56b58712
      Mark Haverkamp 提交于
      This patch addresses the sparse -Wbitwise warnings that Christoph wanted
      me to eliminate.  This mostly consisted of making data structure
      elements of hardware associated structures the __le* equivalent.
      Although there were a couple places where there was mixing of cpu and le
      variable math.  These changes have been tested on both an x86 and ppc
      machine running bonnie++.  The usage of the LE32_ALL_ONES macro has been
      eliminated.
      Signed-off-by: NMark Haverkamp <markh@osdl.org>
      Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
      56b58712
  22. 17 4月, 2005 1 次提交
    • L
      Linux-2.6.12-rc2 · 1da177e4
      Linus Torvalds 提交于
      Initial git repository build. I'm not bothering with the full history,
      even though we have it. We can create a separate "historical" git
      archive of that later if we want to, and in the meantime it's about
      3.2GB when imported into git - space that would just make the early
      git days unnecessarily complicated, when we don't have a lot of good
      infrastructure for it.
      
      Let it rip!
      1da177e4