- 09 7月, 2013 1 次提交
-
-
由 Sreekanth Reddy 提交于
The Copyright String in all mpt3sas files are changed to 2012-2013. Signed-off-by: NSreekanth Reddy <Sreekanth.Reddy@lsi.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
- 29 1月, 2013 2 次提交
-
-
由 Wei Yongjun 提交于
The variable 'chain_flags' and 'phy_number' are initialized but never used otherwise, So remove those unused variables. Signed-off-by: NWei Yongjun <yongjun_wei@trendmicro.com.cn> Signed-off-by: NSreekanth Reddy <Sreekanth.Reddy@lsi.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
由 Sachin Kamat 提交于
linux/version.h is not necessary as detected by checkversion.pl script. Signed-off-by: NSachin Kamat <sachin.kamat@linaro.org> Acked-by: N"Sreekanth Reddy" <Sreekanth.reddy@lsi.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
- 04 1月, 2013 1 次提交
-
-
由 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>
-
- 01 12月, 2012 1 次提交
-
-
由 Sreekanth Reddy 提交于
These driver files are initially, substantially similar to mpt2sas but, because mpt2sas is going into maintenance mode and mp3sas will become heavily developed, we elected to keep the code bases separate. Signed-off-by: NSreekanth Reddy <Sreekanth.Reddy@lsi.com> Reviewed-by: NNagalakshmi Nandigama <Nagalakshmi.Nandigama@lsi.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
- 24 9月, 2012 2 次提交
-
-
由 Martin K. Petersen 提交于
Add a parameter that allows the host protection capabilities mask to be provided at module load time. Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com> Acked-by: N"Sreekanth Reddy" <Sreekanth.reddy@lsi.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
由 Martin K. Petersen 提交于
Only a target device should return ABORTED COMMAND when a PI error is discovered. The HBA should always set the sense key to ILLEGAL REQUEST. Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com> Acked-by: N"Sreekanth Reddy" <Sreekanth.reddy@lsi.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
- 08 9月, 2012 1 次提交
-
-
由 Stephen Hemminger 提交于
Signed-off-by: NStephen Hemminger <shemminger@vyatta.com> Signed-off-by: NBjorn Helgaas <bhelgaas@google.com>
-
- 24 8月, 2012 4 次提交
-
-
由 sreekanth.reddy@lsi.com 提交于
[SCSI] mpt2sas: Fix for With post diag reset same set of device gets added, removed and then again gets added with new target ids When device discovery is disabled during driver load time using module parameter "disable_discovery=1" and when diag reset is issued then from logs, it is observed that the devices get added, removed and then added with new target ids. So, in order to limit this turn-off the code which is deleting and devices across host reset when the disable_discovery module parameter is turned on. Signed-off-by: NSreekanth Reddy <sreekanth.reddy@lsi.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
由 sreekanth.reddy@lsi.com 提交于
This patch provides a command line option to disable "Port enable" during the driver load. The objective of this command line option is to load the driver and do all the necessary initialization excluding port enable(i.e. delay device discovery) Signed-off-by: NSreekanth Reddy <sreekanth.reddy@lsi.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
由 sreekanth.reddy@lsi.com 提交于
When specifying the command line option "max_sectors" less than 64, then warning message should provide correct upper boundary value 32767 instead of 8192. Signed-off-by: NSreekanth Reddy <sreekanth.reddy@lsi.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
由 sreekanth.reddy@lsi.com 提交于
The Copyright String in all the drivers sources were changed to 2012 Signed-off-by: NSreekanth Reddy <sreekanth.reddy@lsi.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
- 20 7月, 2012 1 次提交
-
-
由 Mike Christie 提交于
This has scsi_internal_device_unblock/scsi_target_unblock take the new state to set the devices as an argument instead of always setting to running. The patch also converts users of these functions. This allows the FC and iSCSI class to transition devices from blocked to transport-offline, so that when fast_io_fail/replacement_timeout has fired we do not set the devices back to running. Instead, we set them to SDEV_TRANSPORT_OFFLINE. Signed-off-by: NMike Christie <michaelc@cs.wisc.edu> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
- 10 5月, 2012 1 次提交
-
-
由 Tomas Henzl 提交于
When scsi_add_host fails the scsi_host_put should be called. Signed-off-by: NTomas Henzl <thenzl@redhat.com> Acked-by: N"Nandigama, Nagalakshmi" <Nagalakshmi.Nandigama@lsi.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
- 24 4月, 2012 4 次提交
-
-
[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>
-
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>
-
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>
-
[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>
-
- 20 2月, 2012 1 次提交
-
-
由 Andrew Morton 提交于
Signed-off-by: NAndrew Morton <akpm@linux-foundation.org> Acked-by: N"Nandigama, Nagalakshmi" <Nagalakshmi.Nandigama@lsi.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
- 15 12月, 2011 9 次提交
-
-
Removed redundant calling of _scsih_probe_devices() from _scsih_probe as it is getting called from _scsih_scan_finished. Also moved the function scsi_scan_host(shost) to get called after the volumes on warp drive are reported to the OS. Otherwise by the time the (ioc->hide_drives) flags is set, the volumes on warp drive are reported to the OS already. Also modified the initialization of reply queues only in case of driver load time in the function _base_make_ioc_operational(). Signed-off-by: NNagalakshmi Nandigama <nagalakshmi.nandigama@lsi.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
The amount of memory required for tracking chain buffers is rather large, and when the host credit count is big, memory allocation failure occurs inside __get_free_pages. The fix is to limit the number of chains to 100,000. In addition, the number of host credits is limited to 30,000 IOs. However this limitation can be overridden this using the command line option max_queue_depth. The algorithm for calculating the reply_post_queue_depth is changed so that it is equal to (reply_free_queue_depth + 16), previously it was (reply_free_queue_depth * 2). Signed-off-by: NNagalakshmi Nandigama <nagalakshmi.nandigama@lsi.com> Cc: stable@kernel.org Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
When an I/O request to a WarpDrive is timed out by SML and if the I/O request to the WarpDrive is sent as direct I/O then the aborted direct I/O will be retried as normal Volume I/O and which results in failure of Target Reset and results in host reset. The fix is to not retry a failed IO to volume when the original IO was sent as direct IO with an ioc status MPI2_IOCSTATUS_SCSI_TASK_TERMINATED. Signed-off-by: NNagalakshmi Nandigama <nagalakshmi.nandigama@lsi.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
Added code to release the spinlock that is used to protect the raid device list before calling a function that can block. The blocking was causing a reschedule, and subsequently it is tried to acquire the same lock, resulting in a panic (NMI Watchdog detecting a CPU lockup). Signed-off-by: NNagalakshmi Nandigama <nagalakshmi.nandigama@lsi.com> Cc: stable@kernel.org Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
Increase max transfer support from 4MB to 16MB. This is done by changing the shost->max_sector from 8192 to 32767 Signed-off-by: NNagalakshmi Nandigama <nagalakshmi.nandigama@lsi.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
The driver is modified to allow access to the greater than 2TB WarpDrive and properly handle direct-io mapping for WarpDrive volumes greater than 2TB. Signed-off-by: NNagalakshmi Nandigama <nagalakshmi.nandigama@lsi.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
[SCSI] mpt2sas: Do not set sas_device->starget to NULL from the slave_destroy callback when all the LUNS have been deleted If the sas_device->starget to NULL from slave_destroy callback for LUN=1 even though LUN=0 exist, results in entire target getting deleted. To resolve the issue, the driver should only set sas_device->starget to NULL when all the LUNS have been deleted from the slave_destroy. Signed-off-by: NNagalakshmi Nandigama <nagalakshmi.nandigama@lsi.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
[SCSI] mpt2sas: When IOs are terminated, update the result to DID_SOFT_ERROR to avoid infinite resets Signed-off-by: NNagalakshmi Nandigama <nagalakshmi.nandigama@lsi.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
Detection of Dead IOC has been done in fault_reset_work thread. If IOC Doorbell is 0xFFFFFFFF, it will be detected as non-operation/DEAD IOC. When a DEAD IOC is detected, the code is modified to remove that IOC and all its attached devices from OS. The PCI layer API pci_remove_bus_device() is called to remove the dead IOC. Signed-off-by: NNagalakshmi Nandigama <nagalakshmi.nandigama@lsi.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
- 12 12月, 2011 1 次提交
-
-
由 Anton Blanchard 提交于
_scsih_smart_predicted_fault is called in an interrupt and therefore must allocate memory using GFP_ATOMIC. Signed-off-by: NAnton Blanchard <anton@samba.org> Cc: <stable@kernel.org> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
- 11 11月, 2011 1 次提交
-
-
由 Dan Carpenter 提交于
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: NDan Carpenter <dan.carpenter@oracle.com> Acked-by: N"Nandigama, Nagalakshmi" <Nagalakshmi.Nandigama@lsi.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
- 30 10月, 2011 8 次提交
-
-
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: NNagalakshmi Nandigama <nagalakshmi.nandigama@lsi.com> Cc: stable@kernel.org Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
[SCSI] mpt2sas: Fix for issue Port Reset taking long time(around 5 mins) to complete 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: NNagalakshmi Nandigama <nagalakshmi.nandigama@lsi.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.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: NNagalakshmi Nandigama <nagalakshmi.nandigama@lsi.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.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: NNagalakshmi Nandigama <nagalakshmi.nandigama@lsi.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
[SCSI] mpt2sas: Fix drives not getting properly deleted if sas cable is removed 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: NNagalakshmi Nandigama <nagalakshmi.nandigama@lsi.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.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: NNagalakshmi Nandigama <nagalakshmi.nandigama@lsi.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.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: NNagalakshmi Nandigama <nagalakshmi.nandigama@lsi.com> Cc: stable@kernel.org Signed-off-by: NJames Bottomley <JBottomley@Parallels.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: NNagalakshmi Nandigama <nagalakshmi.nandigama@lsi.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
- 22 9月, 2011 1 次提交
-
-
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>
-
- 15 9月, 2011 1 次提交
-
-
由 Jesper Juhl 提交于
It was pointed out by 'make versioncheck' that some includes of linux/version.h are not needed in drivers/scsi/. This patch removes them. Signed-off-by: NJesper Juhl <jj@chaosbits.net> Signed-off-by: NJiri Kosina <jkosina@suse.cz>
-