- 26 7月, 2014 2 次提交
-
-
由 Tomas Henzl 提交于
The driver ignores the return value in a lot of places, fix it at least somewhere (and release the resources in such cases), to avoid that bad things happen. Signed-off-by: NTomas Henzl <thenzl@redhat.com> Acked-by: NSuresh Thiagarajan <Suresh.Thiagarajan@pmcs.com> Acked-by: NJack Wang <xjtuwjp@gmail.com> Signed-off-by: NChristoph Hellwig <hch@lst.de>
-
由 Tomas Henzl 提交于
In the driver two different functions are used to free the same resource, this patch makes the code easier to read. In addittion to that, some minor optimisations were made too. Signed-off-by: NTomas Henzl <thenzl@redhat.com> Acked-by: NSuresh Thiagarajan <Suresh.Thiagarajan@pmcs.com> Acked-by: NJack Wang <xjtuwjp@gmail.com> Signed-off-by: NChristoph Hellwig <hch@lst.de>
-
- 16 3月, 2014 4 次提交
-
-
由 Suresh Thiagarajan 提交于
spin_lock_irqsave for the HBA lock is called in one function where flag is local to that function. Another function is called from the first function where lock has to be released using spin_unlock_irqrestore for calling task_done of libsas. In the second function also flag is declared and used. For calling task_done there is no need to enable the irq. So instead of using spin_lock_irqsave and spin_unlock_irqrestore, spin_lock and spin_unlock is used now. This also avoids passing the flags across all the functions where HBA lock is being used. Also removed redundant code. Reported-by: NJason Seba <jason.seba42@gmail.com> Signed-off-by: NOleg Nesterov <oleg@redhat.com> Signed-off-by: NSuresh Thiagarajan <Suresh.Thiagarajan@pmcs.com> Signed-off-by: NViswas G <viswas.g@pmcs.com> Acked-by: NJack Wang <xjtuwjp@gmail.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
由 Bradley Grove 提交于
Signed-off-by: NBradley Grove <bgrove@attotech.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
由 Viswas G 提交于
pm80xx_get_gsm_dump() was returning "1" in error case instead of negative error value. Signed-off-by: NViswas G <Viswas.G@pmcs.com> Reviewed-by: NJack Wang <jinpu.wang@profitbricks.com> Reviewed-by: NTomas Henzl <thenzl@redhat.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
由 Viswas G 提交于
Removed redundant code snippets in pm8001_hwi.c and pm8001_ctl.c Signed-off-by: NViswas G <Viswas.G@pmcs.com> Reviewed-by: NJack Wang <jinpu.wang@profitbricks.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
- 03 12月, 2013 1 次提交
-
-
由 Nikith Ganigarakoppal 提交于
Setting the phy state for hard reset response. After sending hard reset for a device ,phy down event sets the phy state to zero but for phy up event it will not set the phy state again.This will cause problem to successive hard resets. Signed-off-by: Nikith.Ganigarakoppal@pmcs.com Signed-off-by: Anandkumar.Santhanam@pmcs.com Reviewed-by: NJack Wang <jinpu.wang@profitbricks.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
- 25 10月, 2013 4 次提交
-
-
由 Anand Kumar Santhanam 提交于
Supports below logging facilities, Inbound outbound queues dump. Non fatal dump in case of IO failures. Fatal dump in case of firmware failure. [jejb: checkpatch spacing fixes] Signed-off-by: Anandkumar.Santhanam@pmcs.com Reviewed-by: NJack Wang <jinpu.wang@profitbricks.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
由 Anand Kumar Santhanam 提交于
Phy profile implementation to support phy settings feature for motherboard controllers. [jejb: checkpatch fixes] Signed-off-by: Anandkumar.Santhanam@pmcs.com Reviewed-by: NJack Wang <jinpu.wang@profitbricks.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
由 Anand Kumar Santhanam 提交于
[jejb: checkpatch fixes] Signed-off-by: Anandkumar.Santhanam@pmcs.com Reviewed-by: NJack Wang <jinpu.wang@profitbricks.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
由 Anand Kumar Santhanam 提交于
Signed-off-by: Anandkumar.Santhanam@pmcs.com Reviewed-by: NJack Wang <jinpu.wang@profitbricks.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
- 26 8月, 2013 1 次提交
-
-
由 Hans Verkuil 提交于
The IO command size is 128 bytes for these new controllers as opposed to 64 for the old 8001 controller. The Adaptec out-of-tree driver did this correctly. After comparing the two this turned out to be the crucial difference. So don't hardcode the IO command size, instead use pm8001_ha->iomb_size as that is the correct value for both old and new controllers. Signed-off-by: NHans Verkuil <hans.verkuil@cisco.com> Acked-by: NAnand Kumar Santhanam <AnandKumar.Santhanam@pmcs.com> Acked-by: NJack Wang <xjtuwjp@gmail.com> Cc: stable@vger.kernel.org # for v3.10 and up Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
- 05 6月, 2013 2 次提交
-
-
由 Dan Carpenter 提交于
Coccinelle complains about the inconsistent NULL checking on "t". It turns out the check isn't needed because we verified that "t" is non-NULL at the start of the function. Signed-off-by: NDan Carpenter <dan.carpenter@oracle.com> Acked-by: NAnand Kumar Santhanam <AnandKumar.Santhanam@pmcs.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
由 James Bottomley 提交于
Remove the arbitrary expectation in libsas that all SCSI commands are 16 bytes or less. Instead do all copies via cmd->cmd_len (and use a pointer to this in the libsas task instead of a copy). Note that this still doesn't enable > 16 byte CDB support in the underlying drivers because their internal format has to be fixed and the wire format of > 16 byte CDBs according to the SAS spec is different. the libsas drivers (isci, aic94xx, mvsas and pm8xxx are all updated for this change. Cc: Lukasz Dorau <lukasz.dorau@intel.com> Cc: Maciej Patelczyk <maciej.patelczyk@intel.com> Cc: Dave Jiang <dave.jiang@intel.com> Cc: Jack Wang <xjtuwjp@gmail.com> Cc: Lindar Liu <lindar_liu@usish.com> Cc: Xiangliang Yu <yuxiangl@marvell.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
- 10 5月, 2013 10 次提交
-
-
由 James Bottomley 提交于
These enums have been separate since the dawn of SAS, mainly because the latter is a procotol only enum and the former includes additional state for libsas. The dichotomy causes endless confusion about which one you should use where and leads to pointless warnings like this: drivers/scsi/mvsas/mv_sas.c: In function 'mvs_update_phyinfo': drivers/scsi/mvsas/mv_sas.c:1162:34: warning: comparison between 'enum sas_device_type' and 'enum sas_dev_type' [-Wenum-compare] Fix by eliminating one of them. The one kept is effectively the sas.h one, but call it sas_device_type and make sure the enums are all properly namespaced with the SAS_ prefix. Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
由 Sakthivel K 提交于
Modified thermal configuration to happen after interrupt registration Added SAS controller configuration during initialization Added error handling logic to handle I_T_Nexus errors and variants [jejb: fix up tabs and spaces issues] Signed-off-by: NAnand Kumar S <AnandKumar.Santhanam@pmcs.com> Acked-by: NJack Wang <jack_wang@usish.com> Reviewed-by: NHannes Reinecke <hare@suse.de> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
由 Sakthivel K 提交于
Handled NCQ errors in the low level driver as the FW is not providing the faulty tag for NCQ errors for libsas to recover. [jejb: fix checkpatch issues] Signed-off-by: NAnand Kumar S <AnandKumar.Santhanam@pmcs.com> Acked-by: NJack Wang <jack_wang@usish.com> Reviewed-by: NHannes Reinecke <hare@suse.de> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
由 Sakthivel K 提交于
Changed name in driver to pm80xx. Updated debug messages. Signed-off-by: NSakthivel K <Sakthivel.SaravananKamalRaju@pmcs.com> Signed-off-by: NAnand Kumar S <AnandKumar.Santhanam@pmcs.com> Acked-by: NJack Wang <jack_wang@usish.com> Reviewed-by: NHannes Reinecke <hare@suse.de> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
由 Sakthivel K 提交于
Performing pci_free_consistent in tasklet had result in a core dump. So allocated a new memory region for it. Fix for passing proper address and operation in firmware flash update. Signed-off-by: NSakthivel K <Sakthivel.SaravananKamalRaju@pmcs.com> Signed-off-by: NAnand Kumar S <AnandKumar.Santhanam@pmcs.com> Acked-by: NJack Wang <jack_wang@usish.com> Reviewed-by: NHannes Reinecke <hare@suse.de> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
由 Sakthivel K 提交于
Additional bar shift for new SPC firmware, applicable to device id 0x8081 only. Signed-off-by: NSakthivel K <Sakthivel.SaravananKamalRaju@pmcs.com> Signed-off-by: NAnand Kumar S <AnandKumar.Santhanam@pmcs.com> Acked-by: NJack Wang <jack_wang@usish.com> Reviewed-by: NHannes Reinecke <hare@suse.de> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
由 Sakthivel K 提交于
Implementation of SPCv/ve specific hardware functionality and macros. Changing common functionalities wrt SPCv/ve operations. Conditional checks for SPC specific operations. Signed-off-by: NSakthivel K <Sakthivel.SaravananKamalRaju@pmcs.com> Signed-off-by: NAnand Kumar S <AnandKumar.Santhanam@pmcs.com> Acked-by: NJack Wang <jack_wang@usish.com> Reviewed-by: NHannes Reinecke <hare@suse.de> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
由 Sakthivel K 提交于
Update of function prototype for common function to SPC and SPCv/ve. Multiple queues implementation for IO. Signed-off-by: NSakthivel K <Sakthivel.SaravananKamalRaju@pmcs.com> Signed-off-by: NAnand Kumar S <AnandKumar.Santhanam@pmcs.com> Acked-by: NJack Wang <jack_wang@usish.com> Reviewed-by: NHannes Reinecke <hare@suse.de> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
由 Sakthivel K 提交于
Memory allocation and configuration of multiple inbound and outbound queues. Signed-off-by: NSakthivel K <Sakthivel.SaravananKamalRaju@pmcs.com> Signed-off-by: NAnand Kumar S <AnandKumar.Santhanam@pmcs.com> Acked-by: NJack Wang <jack_wang@usish.com> Reviewed-by: NHannes Reinecke <hare@suse.de> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
由 Sakthivel K 提交于
Updated pci id table with device, vendor, subdevice and subvendor ids for 8081, 8088, 8089 SAS/SATA controllers. Added SPCv/ve related macros. Updated macros, hba info structure and other structures for SPCv/ve. Update of structure and variable names for SPC hardware functionalities. Signed-off-by: NSakthivel K <Sakthivel.SaravananKamalRaju@pmcs.com> Signed-off-by: NAnand Kumar S <AnandKumar.Santhanam@pmcs.com> Acked-by: NJack Wang <jack_wang@usish.com> Reviewed-by: NHannes Reinecke <hare@suse.de> 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>
-
- 10 5月, 2012 1 次提交
-
-
由 Mark Salyzyn 提交于
This is a followup to a patch provided by Jack Wang on September 21 2011. After increasing the CAN_QUEUE to 510 in pm8001 we discovered some performance degredation from time to time. We needed to increase the MPI queue to compensate and ensure we never hit that limit. We also needed to double the margin to support event and administrivial commands that take from the pool resulting in an occasional largely unproductive command completion with soft error to the caller when the command pool is overloaded temporarily. Signed-off-by: NMark Salyzyn <mark_salyzyn@xyratex.com> Acked-by: NJack Wang <jack_wang@usish.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
- 24 4月, 2012 1 次提交
-
-
由 Santosh Nayak 提交于
Data type of the 'tag' field of 'fw_flash_Update_resp' should be __le32. Data type of 'pHeader' should be __le32. Remove 2nd cast to 'piomb'. Signed-off-by: NSantosh Nayak <santoshprasadnayak@gmail.com> Acked-by: NJack Wang <jack_wang@usish.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
- 28 3月, 2012 1 次提交
-
-
由 Santosh Nayak 提交于
Signed-off-by: NSantosh Nayak <santoshprasadnayak@gmail.com> Acked-by: NJack Wang <jack_wang@usish.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
- 01 3月, 2012 3 次提交
-
-
由 Santosh Nayak 提交于
1. Fix endian issue. 2. Fix the following warning : " drivers/scsi/pm8001/pm8001_hwi.c:2932:32: warning: comparison between ‘enum sas_device_type’ and ‘enum sas_dev_type’". 3. Few code optimization. Signed-off-by: NSantosh Nayak <santoshprasadnayak@gmail.com> Acked-by: NJack Wang <jack_wang@usish.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
由 Santosh Nayak 提交于
There is a possble racing scenario. 'process_oq' is called by two routines, as shown below. pm8001_8001_dispatch = { ....... .isr = pm8001_chip_isr --> process_oq,// A .isr_process_oq = process_oq, // B ..... } process_oq() --> process_one_iomb() --> mpi_sata_completion() In 'mpi_sata_completion', "pm8001_ha->lock" is first released. It means lock is taken before, which is true for the context A, as 'pm8001_ha->lock' is taken in 'pm8001_chip_isr()' But for context B there is no lock taken before and pm8001_ha->lock is unlocked in 'mpi_sata_completion()'. This may unlock the lock taken in context A. Possible racing ?? If 'pm8001_ha->lock' is taken in 'process_oq()' instead of 'pm8001_chip_isr' then the above issue can be avoided. Signed-off-by: NSantosh Nayak <santoshprasadnayak@gmail.com> Acked-by: NJack Wang <jack_wang@usish.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
由 Santosh Nayak 提交于
Static checker is giving following warning: " error: calling 'spin_unlock_irqrestore()' with bogus flags" The code flow is as shown below: process_oq() --> process_one_iomb --> mpi_sata_completion In 'mpi_sata_completion' the first call for 'spin_unlock_irqrestore()' is with flags=0, which is as good as 'spin_unlock_irq()' ( unconditional interrupt enabling). So for better performance 'spin_unlock_irqrestore()' can be replaced with 'spin_unlock_irq()' and 'spin_lock_irqsave()' can be replaced by 'spin_lock_irq()'. Signed-off-by: NSantosh Nayak <santoshprasadnayak@gmail.com> Acked-by: NJack Wang <jack_wang@usish.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
- 19 2月, 2012 2 次提交
-
-
由 Mark Salyzyn 提交于
IO_XFER_ERROR_BREAK and IO_XFER_OPEN_RETRY_TIMEOUT are deficient of the required actions as outlined in the programming manual for the pm8001. Due to the overlapping code requirements of these recovery responses, we found it necessary to bundle them together into one patch. When a break is received during the command phase (ssp_completion), this is a result of a timeout or interruption on the bus. Logic suggests that we should retry the command. When a break is received during the data-phase (ssp_event), the task must be aborted on the target or it will retain a data-phase lock turning the target reticent to all future media commands yet will successfully respond to TUR, INQUIRY and ABORT leading eventually to target failure through several abort-cycle loops. The open retry interval is exceedingly short resulting in occasional target drop-off during expander resets or when targets push-back during bad-block remapping. Increased effective timeout from 130ms to 1.5 seconds for each try so as to trigger after the administrative inquiry/tur timeout in the scsi subsystem to keep error-recovery harmonics to a minimum. When an open retry timeout event is received, the action required by the targets is to issue an abort for the outstanding command then logic suggests we retry the command as this state is usually an indication of a credit block or busy condition on the target. We hijacked the pm8001_handle_event work queue handler so that it will handle task as an argument instead of device for the workers in support of the deferred handling outlined above. Moderate to Heavy bad-path testing on a 2.6.32 vintage kernel, compile-testing on scsi-misc-2.6 kernel ... Signed-off-by: NMark Salyzyn <mark_salyzyn@xyratex.com> Acked-by: NJack Wang <jack_wang@usish.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
由 Mark Salyzyn 提交于
Jack noticed I dropped a patch fragment associated with a flags automatic variable in mpi_set_phys_g3_with_ssc (ooops) and that the pre-emptive locking that piggy-backed this patch was not in-fact necessary because of underlying atomic accesses to the hardware. Here is the updated patch fixing these two issues. The pm8001 driver is missing the FUNC_GET_EVENTS handler in the phy control function. Since the pm8001_bar4_shift function was not designed to be called at runtime, added locking surrounding the adjustment for all accesses. Signed-off-by: NMark Salyzyn <mark_salyzyn@xyratex.com> Acked-by: NJack Wang <jack_wang@usish.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
- 04 2月, 2012 1 次提交
-
-
由 Masanari Iida 提交于
Correct typo "unresgister" to "unregister" and "deviece" to "device" in drivers/scsi/pm8001/pm8001_hwi.c Signed-off-by: NMasanari Iida <standby24x7@gmail.com> Acked-by: NJack Wang <jack_wang@usish.com> Signed-off-by: NJiri Kosina <jkosina@suse.cz>
-
- 03 10月, 2011 1 次提交
-
-
由 Mark Salyzyn 提交于
Code Inspection: found two missing break directives. First one will result in not retrying an a task that report IO_OPEN_CNX_ERROR_HW_RESOURCE_BUSY, the second will result in cosmetic debug printk conflicting statement stutter. Because checkpatch.pl came up with a warning regarding unnecessary space before a newline on one of the fragments associated with the diff context, I took the liberty of fixing all the cases of this issue in the pair of files touched by this defect. These cosmetic changes hide the break changes :-( To help focus, break changes are in pm8001_hwi.c fragment line 1649 for the IO_OPEN_CNX_ERROR_HW_RESOURCE_BUSY case statement and pm8001_sas.c line 1000 deals with the conflicting debug print stutter. Signed-off-by: NMark Salyzyn <mark_salyzyn@us.xyratex.com> Acked-by: NJack Wang <jack_wang@usish.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
- 31 3月, 2011 1 次提交
-
-
由 Lucas De Marchi 提交于
Fixes generated by 'codespell' and manually reviewed. Signed-off-by: NLucas De Marchi <lucas.demarchi@profusion.mobi>
-
- 13 2月, 2011 1 次提交
-
-
由 Tejun Heo 提交于
pm8001 manages its own list of pending works and cancel them on device free. It is unnecessarily complex and has a race condition - the works are canceled but not synced, so the work could still be running during and after the data structures are freed. This patch simplifies workqueue usage. * A driver specific workqueue pm8001_wq is created to serve these work items. * To avoid confusion, the "queue" suffixes are dropped from work items and functions. * Delayed queueing was never used. pm8001_work now uses work_struct instead. * The driver no longer keeps track of pending works. All pm8001_works are queued to pm8001_wq and the workqueue is flushed as necessary. flush_scheduled_work() usage is removed during conversion. Signed-off-by: NTejun Heo <tj@kernel.org> Acked-by: NJack Wang <jack_wang@usish.com> Signed-off-by: NJames Bottomley <James.Bottomley@suse.de>
-
- 10 9月, 2010 1 次提交
-
-
由 Dan Carpenter 提交于
Return -ENOMEM if the allocations fail. Signed-off-by: NDan Carpenter <error27@gmail.com> Acked-by: NJack Wang <jack_wang@usish.com> Signed-off-by: NJames Bottomley <James.Bottomley@suse.de>
-
- 07 8月, 2010 1 次提交
-
-
由 Julia Lawall 提交于
Error handling code following a kmalloc should free the allocated data. The semantic match that finds the problem is as follows: (http://www.emn.fr/x-info/coccinelle/) // <smpl> @r exists@ local idexpression x; expression E; identifier f,f1; position p1,p2; @@ x@p1 = \(kmalloc\|kzalloc\|kcalloc\)(...); <... when != x when != if (...) { <+...x...+> } when != (x) == NULL when != (x) != NULL when != (x) == 0 when != (x) != 0 ( x->f1 = E | (x->f1 == NULL || ...) | f(...,x->f1,...) ) ...> ( return <+...x...+>; | return@p2 ...; ) @script:python@ p1 << r.p1; p2 << r.p2; @@ print "* file: %s kmalloc %s return %s" % (p1[0].file,p1[0].line,p2[0].line) // </smpl> Signed-off-by: NJulia Lawall <julia@diku.dk> Acked-by: Njack wang <jack_wang@usish.com> Signed-off-by: NJames Bottomley <James.Bottomley@suse.de>
-
- 28 7月, 2010 1 次提交
-
-
由 James Bottomley 提交于
We have two separate definitions for identical constants with nearly the same name. One comes from the generic headers in scsi.h; the other is an enum in libsas.h ... it's causing confusion about which one is correct (fortunately they both are). Fix this by eliminating the libsas.h duplicate Signed-off-by: NJames Bottomley <James.Bottomley@suse.de>
-