1. 09 7月, 2013 1 次提交
  2. 29 1月, 2013 2 次提交
  3. 04 1月, 2013 1 次提交
    • G
      Drivers: scsi: remove __dev* attributes. · 6f039790
      Greg Kroah-Hartman 提交于
      CONFIG_HOTPLUG is going away as an option.  As a result, the __dev*
      markings need to be removed.
      
      This change removes the use of __devinit, __devexit_p, __devinitdata,
      __devinitconst, and __devexit from these drivers.
      
      Based on patches originally written by Bill Pemberton, but redone by me
      in order to handle some of the coding style issues better, by hand.
      
      Cc: Bill Pemberton <wfp5p@virginia.edu>
      Cc: Adam Radford <linuxraid@lsi.com>
      Cc: "James E.J. Bottomley" <JBottomley@parallels.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      6f039790
  4. 01 12月, 2012 1 次提交
  5. 24 9月, 2012 2 次提交
  6. 08 9月, 2012 1 次提交
  7. 24 8月, 2012 4 次提交
  8. 20 7月, 2012 1 次提交
  9. 10 5月, 2012 1 次提交
  10. 24 4月, 2012 4 次提交
    • N
      [SCSI] mpt2sas: Fix for hard drive going OFFLINE when hard reset issued and... · 39af7a98
      nagalakshmi.nandigama@lsi.com 提交于
      [SCSI] mpt2sas: Fix for hard drive going OFFLINE when hard reset issued and simultaneously another hard drive is hot unplugged
      
      Following the host reset, the firmware discovery is reassigning another hard
      drive in the topology to the same device handle as that device is getting hot
      removed. Until the driver device removal routine is called, there will be two
      hard drive with the matching device handle in the internal device link
      list. In the device removal routine, a separate function which moves the
      device from BLOCKED into OFFLINE state.  Since this routine is passed with the
      device handle passed as input parameter, the routine will be traversing the
      internal device link list searching for matching device handle. This results
      in two devices with matching device handle, therefore both devices goes
      OFFLINE.
      
      To fix this issue,the input parameter is changed from device handle to SAS
      address, therefore only the device that is hot unplugged will be placed in
      OFFLINE state.
      Signed-off-by: NNagalakshmi Nandigama <nagalakshmi.nandigama@lsi.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
      39af7a98
    • N
      [SCSI] mpt2sas: Fix linux driver sparse errors · d838c36c
      nagalakshmi.nandigama@lsi.com 提交于
      Fix several endian issues found by runing sparse.
      Signed-off-by: NNagalakshmi Nandigama <nagalakshmi.nandigama@lsi.com>
      Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
      d838c36c
    • N
      [SCSI] mpt2sas: Fix security scan issues reported by source code analysis tool · 298c794d
      nagalakshmi.nandigama@lsi.com 提交于
      Modified the source code as per the findings reported by the source
      code analysis tool. Source code for the following functionalities
      has been touched. None of the driver functionalities has changed.
      
      - SMP Passthrough IOCTL
      - Debug messages for MPT Replies (i.e. bit 9 of Logging Level)
      - Task Management using sysfs
      - Device removal, i.e. when a target device (including any PD within a volume)
        is removed, and Volume Deletion.
      - Trace Buffer
      Signed-off-by: NNagalakshmi Nandigama <nagalakshmi.nandigama@lsi.com>
      Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
      298c794d
    • N
      [SCSI] mpt2sas: Improvement were made to better protect the sas_device,... · 09da0b32
      nagalakshmi.nandigama@lsi.com 提交于
      [SCSI] mpt2sas: Improvement were made to better protect the sas_device, raid_device, and expander_device lists
      
      There were possible race conditions surrounding reading an object
      from the link list while from another context in the driver was
      removing it. The nature of this enhancement is to rearrange locking
      so the link lists are better protected.
      
      Change set:
      (1) numerous routines were rearranged so spin locks are held through
      the entire time a link list object is being read from or written to.
      (2) added new routines for object deletion from link list.  Thus ensuring
      lock was held during the deletion of the link list object, then and memory
      for object freed outside the lock. The memory was freed outside the lock
      so driver had access to device object info which was required for
      notifying the scsi mid layer that a device was getting deleted.
      (3) added the ioc->blocking_handles parameter.  This is a bitmask used
      to identify which devices need blocking when there is device loss.  This was
      introduced so that lock can be held for the entire time traversing the link
      list objects, and the bitmask was set to indicate which device handles need
      blocking. Oustide the lock the ioc->blocking_handles bitmask is traversed,
      with the respective device handle the scsi mid layer is called for moving
      devices into blocking state.
      Signed-off-by: NNagalakshmi Nandigama <nagalakshmi.nandigama@lsi.com>
      Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
      09da0b32
  11. 20 2月, 2012 1 次提交
  12. 15 12月, 2011 9 次提交
  13. 12 12月, 2011 1 次提交
  14. 11 11月, 2011 1 次提交
  15. 30 10月, 2011 8 次提交
  16. 22 9月, 2011 1 次提交
    • N
      [SCSI] mpt2sas: Added NUNA IO support in driver which uses multi-reply queue support of the HBA · 911ae943
      nagalakshmi.nandigama@lsi.com 提交于
      Support added for controllers capable of multi reply queues.
      
      The following are the modifications to the driver to support NUMA.
      
      1) Create the new structure adapter_reply_queue to contain the reply queue
         info for every msix vector.  This object will contain a
         reply_post_host_index, reply_post_free for each instance, msix_index, among
         other parameters.  We will track all the reply queues on a link list called
         ioc->reply_queue_list. Each reply queue is aligned with each IRQ, and is
         passed to the interrupt via the bus_id parameter.
      
      (2) The driver will figure out the msix_vector_count from the PCIe MSIX
          capabilities register instead of the IOC Facts->MaxMSIxVectors. This is
          because the firmware is not filling in this field until the driver has
          already registered MSIX support.
      
      (3) If the ioc_facts reports that the controller is MSIX compatible in the
          capabilities, then the driver will request for multiple irqs.  This count
          is calculated based on the minimum between the online cpus available and
          the ioc->msix_vector_count.  This count is reported to firmware in the
          ioc_init request.
      
      (4) New routines were added _base_free_irq and _base_request_irq, so
          registering and freeing msix vectors were done thru simple function API.
      
      (5) The new routine _base_assign_reply_queues was added to align the msix
          indexes across cpus. This will initialize the array called
          ioc->cpu_msix_table.  This array is looked up on every MPI request so the
          MSIxIndex is set appropriately.
      
      (6) A new shost sysfs attribute was added to report the reply_queue_count.
      
      (7) User needs to set the affinity cpu mask, so the interrupts occur on the
          same cpu that sent the original request.
      Signed-off-by: NNagalakshmi Nandigama <nagalakshmi.nandigama@lsi.com>
      Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
      911ae943
  17. 15 9月, 2011 1 次提交