1. 13 1月, 2015 2 次提交
  2. 09 1月, 2015 1 次提交
  3. 17 9月, 2014 5 次提交
    • S
      mpt2sas: Get IOC_FACTS information using handshake protocol only after HBA... · a66dd970
      Sreekanth Reddy 提交于
      mpt2sas: Get IOC_FACTS information using handshake protocol only after HBA card gets into READY or Operational state.
      
      Driver initialization fails if driver tries to send IOC facts request message when the IOC is in reset or in a fault state.
      
      This patch will make sure that
       1.Driver to send IOC facts request message only if HBA is in operational or ready state.
       2.If IOC is in fault state, a diagnostic reset would be issued.
       3.If IOC is in reset state then driver will wait for 10 seconds to exit out of reset state.
         If the HBA continues to be in reset state, then the HBA wouldn't be claimed by the driver.
      Signed-off-by: NSreekanth Reddy <Sreekanth.Reddy@avagotech.com>
      Reviewed-by: NMartin K. Petersen <martin.petersen@oracle.com>
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      a66dd970
    • S
      mpt2sas: Added Reply Descriptor Post Queue (RDPQ) Array support · 5fb1bf8a
      Sreekanth Reddy 提交于
      Up to now, Driver allocates a single contiguous block of memory
      pool for all reply queues and passes down a single address in the
      ReplyDescriptorPostQueueAddress field of the IOC Init Request
      Message to the firmware.
      
      When firmware receives this address, it will program each of the
      Reply Descriptor Post Queue registers, as each reply queue has its
      own register. Thus the firmware, starting from a base address it
      determines the starting address of the subsequent reply queues
      through some simple arithmetic calculations.
      
      The size of this contiguous block of memory pool is directly proportional
      to number of MSI-X vectors and the HBA queue depth. For example higher
      MSIX vectors requires larger contiguous block of memory pool.
      
      But some of the OS kernels are unable to allocate this larger
      contiguous block of memory pool.
      
      So, the proposal is to allocate memory independently for each
      Reply Queue and pass down all of the addresses to the firmware.
      Then the firmware will just take each address and program the value
      into the correct register.
      
      When HBAs with older firmware(i.e. without RDPQ capability) is used
      with this new driver then the max_msix_vectors value would be set
      to 8 by default.
      
      Change_set in v1:
      
      1. Declared _base_get_ioc_facts() function at the beginning of the mpt2sas_base.c
      file instead of moving all these functions before mpt2sas_base_map_resources() function
              a. _base_wait_for_doorbell_int()
              b. _base_wait_for_doorbell_ack()
              c. _base_wait_for_doorbell_not_used()
              d. _base_handshake_req_reply_wait()
              e. _base_get_ioc_facts()
      
      2. Initially set the consistent DMA mask to 32 bit and then change it to 64 bit mask
      after allocating RDPQ pools by calling the function _base_change_consistent_dma_mask.
      This is to ensure that all the upper 32 bits of RDPQ entries's base address to be same.
      
      3. Reduced the redundancy between the RDPQ and non-RDPQ support in these following functions
              a. _base_release_memory_pools()
              b. _base_allocate_memory_pools()
              c. _base_send_ioc_init()
              d. _base_make_ioc_operational()
      Signed-off-by: NSreekanth Reddy <Sreekanth.Reddy@avagotech.com>
      Reviewed-by: NMartin K. Petersen <martin.petersen@oracle.com>
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      5fb1bf8a
    • S
      mpt2sas: Copyright in driver sources is updated for year the 2014 · e9edbe31
      Sreekanth Reddy 提交于
      Copyright in driver sources is updated for year the 2014.
      Signed-off-by: NSreekanth Reddy <Sreekanth.Reddy@avagotech.com>
      Reviewed-by: NMartin K. Petersen <martin.petersen@oracle.com>
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      e9edbe31
    • S
      mpt2sas: Added driver module parameter max_msix_vectors · 4e1f20ae
      Sreekanth Reddy 提交于
      Added driver module parameter max_msix_vectors. Using this
      module parameter the maximum number of MSI-X vectors could be set.
      
      The number of MSI-X vectors used would be the minimum of MSI-X vectors
      supported by the HBA, the number of CPU cores and the value set to
      max_msix_vectors module parameters.
      Signed-off-by: NSreekanth Reddy <Sreekanth.Reddy@avagotech.com>
      Reviewed-by: NMartin K. Petersen <martin.petersen@oracle.com>
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      4e1f20ae
    • A
      mpt2sas: Use pci_enable_msix_exact() instead of pci_enable_msix() · 52674c65
      Alexander Gordeev 提交于
      As result of deprecation of MSI-X/MSI enablement functions
      pci_enable_msix() and pci_enable_msi_block() all drivers
      using these two interfaces need to be updated to use the
      new pci_enable_msi_range()  or pci_enable_msi_exact()
      and pci_enable_msix_range() or pci_enable_msix_exact()
      interfaces.
      Signed-off-by: NAlexander Gordeev <agordeev@redhat.com>
      Reviewed-by: NTomas Henzl <thenzl@redhat.com>
      Cc: Nagalakshmi Nandigama <Nagalakshmi.Nandigama@lsi.com>
      Cc: Sreekanth Reddy <Sreekanth.Reddy@lsi.com>
      Cc: support@lsi.com
      Cc: DL-MPTFusionLinux@lsi.com
      Cc: linux-scsi@vger.kernel.org
      Cc: linux-pci@vger.kernel.org
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      52674c65
  4. 26 7月, 2014 3 次提交
  5. 29 5月, 2014 1 次提交
  6. 15 1月, 2014 1 次提交
  7. 03 9月, 2013 2 次提交
  8. 26 8月, 2013 1 次提交
  9. 25 6月, 2013 3 次提交
  10. 24 2月, 2013 1 次提交
  11. 29 1月, 2013 1 次提交
  12. 17 9月, 2012 1 次提交
  13. 24 8月, 2012 2 次提交
  14. 22 8月, 2012 1 次提交
    • S
      [SCSI] mpt2sas: Fix for Driver oops, when loading driver with max_queue_depth... · 338b131a
      sreekanth.reddy@lsi.com 提交于
      [SCSI] mpt2sas: Fix for Driver oops, when loading driver with max_queue_depth command line option to a very small value
      
      If the specified max_queue_depth setting is less than the
      expected number of internal commands, then driver will calculate
      the queue depth size to a negitive number. This negitive number
      is actually a very large number because variable is unsigned
      16bit integer. So, the driver will ask for a very large amount of
      memory for message frames and resulting into oops as memory
      allocation routines will not able to handle such a large request.
      
      So, in order to limit this kind of oops, The driver need to set
      the max_queue_depth to a scsi mid layer's can_queue value. Then
      the overall message frames required for IO is minimum of either
      (max_queue_depth plus internal commands) or the IOC global
      credits.
      Signed-off-by: NSreekanth Reddy <sreekanth.reddy@lsi.com>
      Cc: <stable@kernel.org>
      Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
      338b131a
  15. 06 6月, 2012 1 次提交
  16. 24 4月, 2012 4 次提交
  17. 28 3月, 2012 2 次提交
  18. 28 2月, 2012 1 次提交
  19. 19 2月, 2012 1 次提交
  20. 13 2月, 2012 1 次提交
  21. 15 12月, 2011 5 次提交