- 16 4月, 2016 1 次提交
-
-
由 David Daney 提交于
It is unclear what the original intent of the masking was, but it is clearly incorrect to truncate a physical address before calling ioremap(). On systems where there are valid physical address bits above bit-31 (arm64 for example) the result is an eventual OOPs when initializing the driver. Remove the bogus code to fix it. Signed-off-by: NDavid Daney <david.daney@cavium.com> Acked-by: NJack Wang <jinpu.wang@profitbricks.com> Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
-
- 10 11月, 2015 2 次提交
-
-
由 Christoph Hellwig 提交于
This patch changes the !blk-mq path to the same defaults as the blk-mq I/O path by always enabling block tagging, and always using host wide tags. We've had blk-mq available for a few releases so bugs with this mode should have been ironed out, and this ensures we get better coverage of over tagging setup over different configs. Signed-off-by: NChristoph Hellwig <hch@lst.de> Acked-by: NJens Axboe <axboe@kernel.dk> Reviewed-by: NHannes Reinecke <hare@suse.de> Signed-off-by: NJames Bottomley <JBottomley@Odin.com>
-
由 Benjamin Rood 提交于
Previously, when this module was unloaded via 'rmmod' with at least one drive attached, the SCSI error handler thread would become stuck in an infinite recovery loop and lockup the system, necessitating a reboot. Once the SAS layer is detached, the driver will fail any subsequent commands since the target devices are removed. However, removing the SCSI host generates a SYNCHRONIZE CACHE (10) command, which was failed and left the error handler no method of recovery. This patch simply removes the SCSI host first so that no more commands can come down, prior to cleaning up the SAS layer. Note that the stack is built up with the SCSI host first, and then the SAS layer. Perhaps it should be reversed for symmetry, so that commands cannot be sent to the pm80xx driver prior to attaching the SAS layer? What was really strange about this bug was that it was introduced at commit cff549e4 ("[SCSI]: proper state checking and module refcount handling in scsi_device_get"). This commit appears to tinker with how the reference counting is performed for SCSI device objects. My theory is that prior to this commit, the refcount for a device object was blindly incremented at some point during the teardown process which coincidentially made the device stick around during the procedure, which also coincidentially made any commands sent to the driver not fail (since the device was technically still "there"). After this commit was applied, my theory is the refcount for the device object is not being incremented at a specific point anymore, which makes the device go away, and thus made the pm80xx driver fail any subsequent commands. You may also want to see the following for more details: [1] http://www.spinics.net/lists/linux-scsi/msg37208.html [2] http://marc.info/?l=linux-scsi&m=144416476406993&w=2Signed-off-by: NBenjamin Rood <brood@attotech.com> Acked-by: NJack Wang <jinpu.wang@profitbricks.com> Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
-
- 03 11月, 2015 7 次提交
-
-
由 Benjamin Rood 提交于
If MSI(X) interrupts are disabled via the kernel command line (pci=nomsi), the pm8001 driver will kernel panic because it does not detect that MSI interrupts are disabled and will soldier on and attempt to configure MSI interrupts anyways. This leads to a kernel panic, most likely because a required data structure is not available down the line. Using the pci_msi_enabled() function in order to detect if MSI interrupts are enabled before configuring them resolves this issue and avoids a kernel panic when the module is loaded. Additionally, the irq_vector structure must be initialized when legacy interrupts are being used otherwise legacy interrupts will simply not function and result in another panic. Signed-off-by: NBenjamin Rood <brood@attotech.com> Reviewed-by: NJack Wang <jinpu.wang@profitbricks.com> Reviewed-by: NHannes Reinecke <hare@suse.de> Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
-
由 Benjamin Rood 提交于
The documentation for the 8070 and 8072 SPCv chip explicitly states that a minimum of 500ms must elapse before issuing commands, otherwise the SPCv may not process them and the firmware may get into an unrecoverable state requiring a reboot. While the Linux guys will probably think this is 'racy', it is called out in the chip documentation and inserting this delay makes power management function properly. Signed-off-by: NBenjamin Rood <brood@attotech.com> Reviewed-by: NJack Wang <jinpu.wang@profitbricks.com> Reviewed-by: NHannes Reinecke <hare@suse.de> Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
-
由 Benjamin Rood 提交于
PHY profiles are not saved in NVRAM on ATTO 12Gb SAS controllers. Therefore, in order for the controller to function in a wide range of configurations, the PHY profiles must be statically set. This patch provides the necessary functionality to do so. Signed-off-by: NBenjamin Rood <brood@attotech.com> Reviewed-by: NJack Wang <jinpu.wang@profitbricks.com> Reviewed-by: NHannes Reinecke <hare@suse.de> Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
-
由 Benjamin Rood 提交于
ATTO SAS controllers retrieve the SAS address from the NVRAM in a location different from non-ATTO PMC Sierra SAS controllers. This patch makes the necessary adjustments in order to retrieve the SAS address on these types of adapters. Signed-off-by: NBenjamin Rood <brood@attotech.com> Reviewed-by: NJack Wang <jinpu.wang@profitbricks.com> Reviewed-by: NHannes Reinecke <hare@suse.de> Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
-
由 Benjamin Rood 提交于
These PCI IDs allow the pm8001 driver to load against ATTO 12Gb SAS controllers that use PMC Sierra 8070 and PMC Sierra 8072 SAS chips. Signed-off-by: NBenjamin Rood <brood@attotech.com> Reviewed-by: NJack Wang <jinpu.wang@profitbricks.com> Reviewed-by: NHannes Reinecke <hare@suse.de> Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
-
由 Benjamin Rood 提交于
These SAS controllers support speeds up to 12Gb. Signed-off-by: NBenjamin Rood <brood@attotech.com> Reviewed-by: NJack Wang <jinpu.wang@profitbricks.com> Reviewed-by: NHannes Reinecke <hare@suse.de> Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
-
由 Benjamin Rood 提交于
Previuosly, all PMC Sierra 80xx controllers are assumed to be a motherboard controller, except if the subsystem vendor ID was equal to PCI_VENDOR_ID_ADAPTEC. The driver then attempts to load PHY settings from NVRAM. While this may be correct behavior for most controllers, it does not work with Adaptec and ATTO controllers since they do not store PHY settings in NVRAM and choose to use either custom PHY settings or chip defaults. Loading random values from NVRAM may cause the controllers to malfunction in this edge case. Signed-off-by: NBenjamin Rood <brood@attotech.com> Reviewed-by: NJack Wang <jinpu.wang@profitbricks.com> Reviewed-by: NHannes Reinecke <hare@suse.de> Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
-
- 13 8月, 2015 1 次提交
-
-
由 Suresh Thiagarajan 提交于
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@Odin.com>
-
- 01 6月, 2015 1 次提交
-
-
由 Hannes Reinecke 提交于
'0' is now used as the default cmd_per_lun value, so there's no need to explicitly set it to '1' in the host template. Signed-off-by: NHannes Reinecke <hare@suse.de> Reviewed-by: NChristoph Hellwig <hch@lst.de> Signed-off-by: NJames Bottomley <JBottomley@Odin.com>
-
- 04 12月, 2014 1 次提交
-
-
由 Christoph Hellwig 提交于
Since we got rid of ordered tag support in 2010 the prime use case of switching on and off ordered tags has been obsolete. The other function of enabling/disabling tagging entirely has only been correctly implemented by the 53c700 driver and isn't generally useful. Signed-off-by: NChristoph Hellwig <hch@lst.de> Reviewed-by: NBart Van Assche <bvanassche@acm.org> Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com Reviewed-by: NHannes Reinecke <hare@suse.de>
-
- 27 11月, 2014 1 次提交
-
-
由 Christoph Hellwig 提交于
The task_collector mode (or "latency_injector", (C) Dan Willians) is an optional I/O path in libsas that queues up scsi commands instead of directly sending it to the hardware. It generall increases latencies to in the optiomal case slightly reduce mmio traffic to the hardware. Only the obsolete aic94xx driver and the mvsas driver allowed to use it without recompiling the kernel, and most drivers didn't support it at all. Remove the giant blob of code to allow better optimizations for scsi-mq in the future. Signed-off-by: NChristoph Hellwig <hch@lst.de> Reviewed-by: NHannes Reinecke <hare@suse.de> Acked-by: NDan Williams <dan.j.williams@intel.com>
-
- 24 11月, 2014 1 次提交
-
-
由 Christoph Hellwig 提交于
All drivers use the implementation for ramping the queue up and down, so instead of overloading the change_queue_depth method call the implementation diretly if the driver opts into it by setting the track_queue_depth flag in the host template. Note that a few drivers validated the new queue depth in their change_queue_depth method, but as we never go over the queue depth set during slave_configure or the sysfs file this isn't nessecary and can safely be removed. Signed-off-by: NChristoph Hellwig <hch@lst.de> Reviewed-by: NMike Christie <michaelc@cs.wisc.edu> Reviewed-by: NHannes Reinecke <hare@suse.de> Reviewed-by: NVenkatesh Srinivas <venkateshs@google.com>
-
- 12 11月, 2014 1 次提交
-
-
由 Christoph Hellwig 提交于
Allow a driver to ask for block layer tags by setting .use_blk_tags in the host template, in which case it will always see a valid value in request->tag, similar to the behavior when using blk-mq. This means even SCSI "untagged" commands will now have a tag, which is especially useful when using a host-wide tag map. Signed-off-by: NChristoph Hellwig <hch@lst.de> Reviewed-by: NMike Christie <michaelc@cs.wisc.edu> Reviewed-by: NMartin K. Petersen <martin.petersen@oracle.com> Reviewed-by: NHannes Reinecke <hare@suse.de>
-
- 30 7月, 2014 1 次提交
-
-
由 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: NJack Wang <xjtuwjp@gmail.com> Signed-off-by: NChristoph Hellwig <hch@lst.de>
-
- 29 7月, 2014 1 次提交
-
-
由 Alexander Gordeev 提交于
When a call to request_irq() failed pm8001_setup_msix() still returns the success. This udate fixes the described misbehaviour. Signed-off-by: NAlexander Gordeev <agordeev@redhat.com> Acked-by: NJack Wang <xjtuwjp@gmail.com> Signed-off-by: NChristoph Hellwig <hch@lst.de>
-
- 26 7月, 2014 3 次提交
-
-
由 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. A memory leak is fixed 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>
-
由 Tomas Henzl 提交于
Patch adds a new spinlock to protect the ccb management. It may happen that concurrent threads become the same tag value from the 'alloc' function', the spinlock prevents this situation. 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>
-
由 Bradley Grove 提交于
During hibernation, the HBA firmware may lose power and forget the device id info. This causes the HBA to reject IO upon resume. The fix is to call the libsas power management routines to make the domain device forgetful. This fixes bug 76681: https://bugzilla.kernel.org/show_bug.cgi?id=76681Signed-off-by: NBradley Grove <bgrove@attotech.com> Acked-by: NJack Wang <xjtuwjp@gmail.com> Signed-off-by: NChristoph Hellwig <hch@lst.de>
-
- 25 6月, 2014 1 次提交
-
-
由 Maurizio Lombardi 提交于
The pm8001_get_phy_settings_info() function does not check the kzalloc() return value and does not free the allocated memory. Signed-off-by: NMaurizio Lombardi <mlombard@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>
-
- 20 3月, 2014 1 次提交
-
-
由 Michael Opdenacker 提交于
It's a NOOP since 2.6.35 and it will be removed one day. [jejb: remove from missed arm scsi drivers] Signed-off-by: NMichael Opdenacker <michael.opdenacker@free-electrons.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
- 16 3月, 2014 1 次提交
-
-
由 Bradley Grove 提交于
Signed-off-by: NBradley Grove <bgrove@attotech.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
- 03 12月, 2013 2 次提交
-
-
由 Nikith Ganigarakoppal 提交于
When multiple vectors are used, the vector variable is over written, resulting in unhandled operation for those vectors. This fix prevents the problem by maitaining HBA instance and vector values for each irq. [jejb: checkpatch fixes] 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>
-
由 Nikith Ganigarakoppal 提交于
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 3 次提交
-
-
由 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 提交于
Updated pci id table with device, vendor, subdevice and subvendor ids for 8074, 8076, 8077 SAS/SATA 12G controllers. Added 12G related macros. Signed-off-by: Anandkumar.Santhanam@pmcs.com Reviewed-by: NJack Wang <jinpu.wang@profitbricks.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
- 14 10月, 2013 1 次提交
-
-
由 Jingoo Han 提交于
Since commit 0998d063 (device-core: Ensure drvdata = NULL when no driver is bound), the driver core clears the driver data to NULL after device_release or on probe failure. Thus, it is not needed to manually clear the device driver data to NULL. Signed-off-by: NJingoo Han <jg1.han@samsung.com> Cc: James Bottomley <JBottomley@parallels.com> Signed-off-by: NJiri Kosina <jkosina@suse.cz>
-
- 26 8月, 2013 2 次提交
-
-
由 Yijing Wang 提交于
PCI core will initialize device MSI/MSI-X capability in pci_msi_init_pci_dev(). So device driver should use pci_dev->msi_cap/msix_cap to determine whether the device support MSI/MSI-X instead of using pci_find_capability(pci_dev, PCI_CAP_ID_MSI/MSIX). Access to PCIe device config space again will consume more time. Signed-off-by: NYijing Wang <wangyijing@huawei.com> Acked-by: Nlindar_liu <lindar_liu@usish.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
由 Anand Kumar Santhanam 提交于
Signed-off-by: Anandkumar.Santhanam@pmcs.com Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
- 06 7月, 2013 1 次提交
-
-
由 Yijing Wang 提交于
Pci core has been saved pm cap register offset by pdev->pm_cap in pci_pm_init() in init path. So we can use pdev->pm_cap instead of using pci_find_capability(pdev, PCI_CAP_ID_PM) for better performance and simplified code. Tested-by: NLindar Liu <lindar_liu@usish.com> Signed-off-by: NYijing Wang <wangyijing@huawei.com> Acked-by: NLindar Liu <lindar_liu@usish.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
- 10 5月, 2013 7 次提交
-
-
由 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 提交于
Individual WWN read operations based on controller. PM8081 - Read WWN from Flash VPD. PM8088/89 - Read WWN from EEPROM. PM8001 - Read WWN from NVM. 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 提交于
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 提交于
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 提交于
Implementation of interrupt handlers and tasklets to support upto 64 interrupt for the device. 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>
-