15 Dec, 2011

19 commits


12 Dec, 2011

1 commit


11 Nov, 2011

1 commit

  • There was supposed to be a kzalloc() here and the compiler complained
    about it.
    mpt2sas_scsih.c: In function ‘mpt2sas_scsih_reset_handler’:
    mpt2sas_scsih.c:2807:21: warning: ‘fw_event’ may be used uninitialized in this function [-Wuninitialized]

    Signed-off-by: Dan Carpenter
    Acked-by: "Nandigama, Nagalakshmi"
    Signed-off-by: James Bottomley

    Dan Carpenter
     

30 Oct, 2011

10 commits

  • Bump driver vesion to 10.100.00.00

    Signed-off-by: Nagalakshmi Nandigama
    Signed-off-by: James Bottomley

    nagalakshmi.nandigama@lsi.com
     
  • The driver was setting the action to MPI2_CONFIG_ACTION_PAGE_READ_CURRENT,
    which only returns active volumes. In order to get info on inactive volumes,
    the driver needs to change the action to
    MPI2_RAID_PGAD_FORM_GET_NEXT_CONFIGNUM, and traverse each config till the
    iocstatus is MPI2_IOCSTATUS_CONFIG_INVALID_PAGE returned.
    Added a change in the driver to remove the instance of
    sas_device object when the driver returns "1" from the slave_configure callback.
    Also fixed code to report the hot spares to the operating system with a /dev/sg
    assigned.

    Signed-off-by: Nagalakshmi Nandigama
    Cc: stable@kernel.org
    Signed-off-by: James Bottomley

    nagalakshmi.nandigama@lsi.com
     
  • …lete while issued during creating a volume

    This is due to the slave_configuration routine is getting called when
    host reset is active, and config page reads are failing, and driver
    attempts to added device with stale config data.

    To fix the issue, added error checking in slave_configure to check
    for configuration pages failing, and return "1" so the device is
    not configured. The config pages are failing if raid volume is
    configured while issuing a host reset, thus driver is reading stale
    data and proceeding to attempt to add. The fix is to return error
    so the volume is not configured.

    Signed-off-by: Nagalakshmi Nandigama <nagalakshmi.nandigama@lsi.com>
    Signed-off-by: James Bottomley <JBottomley@Parallels.com>

    nagalakshmi.nandigama@lsi.com
     
  • This is due to driver reporting a device missing to the OS then the OS sending
    a SYNC_CACHE request to driver while the IO queues are locked due to host reset.

    To fix the issue, the driver will be waking up the port enable context
    immediately when the driver receives the reply message, instead of waiting
    on the hot plug worker threads.

    Signed-off-by: Nagalakshmi Nandigama
    Signed-off-by: James Bottomley

    nagalakshmi.nandigama@lsi.com
     
  • Fix for dead lock occurring between host_lock and sas_device_lock.

    The deadlock is between two spin locks, between the shost->host_lock
    and driver ioc->sas_device_lock.

    The fix is to rearrange the code in the FW/Driver device removal
    handshake so the ioc->sas_device_lock is not occurring when the
    shost->host_lock is taken.

    [jejb: zero initialise sas_address to fix spurious compiler warning]
    Signed-off-by: Nagalakshmi Nandigama
    Signed-off-by: James Bottomley

    nagalakshmi.nandigama@lsi.com
     
  • …while host reset is active

    The fix is in the driver-firmware handshake device removal code. We
    need to read the controller ioc_state to see if controller is OPERATIONAL
    prior to sending target reset and OP_REMOVE. Previously it was checking
    the flag ioc->shost_recovery flag, which is always set when host reset is
    active, thus preventing drives from getting properly deleted.

    Signed-off-by: Nagalakshmi Nandigama <nagalakshmi.nandigama@lsi.com>
    Signed-off-by: James Bottomley <JBottomley@Parallels.com>

    nagalakshmi.nandigama@lsi.com
     
  • The fix is to inhibit the warning message in _scsih_get_sas_address
    when the MPI2_IOCSTATUS_CONFIG_INVALID_PAGE ioc status is returned.

    Signed-off-by: Nagalakshmi Nandigama
    Signed-off-by: James Bottomley

    nagalakshmi.nandigama@lsi.com
     
  • Fix for issue : While discovery is in progress, hot unplug and hot plug of
    enclosure connected to the controller card is causing system to hang.

    When a device is in the process of being detected at driver load time then
    if it is removed, the device that is no longer present will not be added
    to the list. So the code in _scsih_probe_sas() is rearranged as such so
    the devices that failed to be detected are not added to the list.

    Signed-off-by: Nagalakshmi Nandigama
    Cc: stable@kernel.org
    Signed-off-by: James Bottomley

    nagalakshmi.nandigama@lsi.com
     
  • New feature Fast Load Support.

    (1)Asynchronous SCSI scanning: This will allow the drivers to scan
    for devices in parallel while other device drivers are loading at
    the same time. This will improve the amount of time it takes for the
    OS to load.

    (2) Reporting Devices while port enable is active: This feature will
    allow devices to be reported to OS immediately while port enable is
    active. The previous implementation waits for port enable to complete,
    and then report devices. This feature is only enabled on IT firmware
    configurations when there are no boot device configured in BIOS Configuration
    Utility, else the driver will wait till port enable completes reporting
    devices. For IR firmware, this feature is turned off. This feature is to
    address large SAS topologies (>100 drives) when the boot OS is using onboard
    SATA device, in other words, the boot devices is not
    connected to our controller.

    (3) Scanning for devices after diagnostic reset completes: A new routine
    _scsih_scan_start is added. This will scan the expander pages, IR pages,
    and sas device pages, then reporting new devices to SCSI Mid layer. It
    seems the driver is not supporting adding devices while diagnostic reset
    is active. Apparently this is due to the sanity checks on
    ioc->shost_recovery flag throughout the context of kernel work thread FIFO,
    and the mpt2sas_fw_work.

    Signed-off-by: Nagalakshmi Nandigama
    Signed-off-by: James Bottomley

    nagalakshmi.nandigama@lsi.com
     
  • 1)Added ProxyVF_ID field to Configuration Request message.
    2)Added IO Unit Page 8, IO Unit Page 9,and IO Unit Page 10.
    3)Added SASNotifyPrimitiveMasks field to IOC Page 7.
    4)Added SAS NOTIFY Primitive event.
    5)Added Temperature Threshold Event.
    6)Added Host Message Event.
    7)Added Send Host Message request and reply.

    Signed-off-by: Nagalakshmi Nandigama
    Signed-off-by: James Bottomley

    nagalakshmi.nandigama@lsi.com
     

29 Oct, 2011

1 commit

  • * git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (204 commits)
    [SCSI] qla4xxx: export address/port of connection (fix udev disk names)
    [SCSI] ipr: Fix BUG on adapter dump timeout
    [SCSI] megaraid_sas: Fix instance access in megasas_reset_timer
    [SCSI] hpsa: change confusing message to be more clear
    [SCSI] iscsi class: fix vlan configuration
    [SCSI] qla4xxx: fix data alignment and use nl helpers
    [SCSI] iscsi class: fix link local mispelling
    [SCSI] iscsi class: Replace iscsi_get_next_target_id with IDA
    [SCSI] aacraid: use lower snprintf() limit
    [SCSI] lpfc 8.3.27: Change driver version to 8.3.27
    [SCSI] lpfc 8.3.27: T10 additions for SLI4
    [SCSI] lpfc 8.3.27: Fix queue allocation failure recovery
    [SCSI] lpfc 8.3.27: Change algorithm for getting physical port name
    [SCSI] lpfc 8.3.27: Changed worst case mailbox timeout
    [SCSI] lpfc 8.3.27: Miscellanous logic and interface fixes
    [SCSI] megaraid_sas: Changelog and version update
    [SCSI] megaraid_sas: Add driver workaround for PERC5/1068 kdump kernel panic
    [SCSI] megaraid_sas: Add multiple MSI-X vector/multiple reply queue support
    [SCSI] megaraid_sas: Add support for MegaRAID 9360/9380 12GB/s controllers
    [SCSI] megaraid_sas: Clear FUSION_IN_RESET before enabling interrupts
    ...

    Linus Torvalds
     

22 Sep, 2011

3 commits

  • Sizeof a pointer-typed expression returns the size of the pointer, not that
    of the pointed data.

    The semantic patch that fixes this problem is as follows:
    (http://coccinelle.lip6.fr/)

    //
    @@
    expression *e;
    type T;
    identifier f;
    @@

    f(...,(T)e,...,
    -sizeof(e)
    +sizeof(*e)
    ,...)
    //

    Signed-off-by: Julia Lawall
    Signed-off-by: James Bottomley

    Julia Lawall
     
  • Signed-off-by: Nagalakshmi Nandigama
    Signed-off-by: James Bottomley

    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: Nagalakshmi Nandigama
    Signed-off-by: James Bottomley

    nagalakshmi.nandigama@lsi.com
     

15 Sep, 2011

2 commits


27 Aug, 2011

1 commit


26 Jul, 2011

1 commit


30 Jun, 2011

1 commit