| Age | Commit message (Collapse) | Author | Files | Lines |
|
In case psataPayload->status has a status of IO_OPEN_CNX_ERROR_HW_RESOURCE_BUSY
ts->stat gets set to SAS_OPEN_REJECT but a missing 'break' statement causes a
fallthrough to the default handler of the switch statement overriding ts->stat
to SAS_DEV_NO_RESPONSE.
Signed-off-by: Johannes Thumshirn <[email protected]>
Acked-by: Jack Wang <[email protected]>
Signed-off-by: James Bottomley <[email protected]>
|
|
Bump pm80xx driver version to 0.1.38.
Signed-off-by: Viswas G <[email protected]>
Reviewed-by: Suresh Thiagarajan <[email protected]>
Reviewed-by: Hannes Reinecke <[email protected]>
Reviewed-by: Jack Wang <[email protected]>
Reviewed-by: Tomas Henzl <[email protected]>
Signed-off-by: James Bottomley <[email protected]>
|
|
The request has to be retried incase if the length of the SSP
Response IU is invalid.
Signed-off-by: Viswas G <[email protected]>
Reviewed-by: Suresh Thiagarajan <[email protected]>
Reviewed-by: Hannes Reinecke <[email protected]>
Reviewed-by: Jack Wang <[email protected]>
Reviewed-by: Tomas Henzl <[email protected]>
Signed-off-by: James Bottomley <[email protected]>
|
|
PORT RECOVERY TIMEOUT is the maximum time between the controller's
detection of the PHY down until the receipt of the ID_Frame (from the
same remote SAS port). If the time expires before the ID_FRAME is
received, the port is considered INVALID and can be removed. The
IOP_EVENT_PORT_RECOVERY_TIMER_TMO event is reported following the
IOP_EVENT_ PHY_DOWN event when the PHY/port does not recover after
Port Recovery Time.
Signed-off-by: Viswas G <[email protected]>
Reviewed-by: Suresh Thiagarajan <[email protected]>
Reviewed-by: Hannes Reinecke <[email protected]>
Reviewed-by: Jack Wang <[email protected]>
Reviewed-by: Tomas Henzl <[email protected]>
Signed-off-by: James Bottomley <[email protected]>
|
|
If the link error happens, we don't need to disconnect the phy,
which will remove the drive. Instead acknowledging the controller
and logging the error will be enough.
Signed-off-by: Viswas G <[email protected]>
Reviewed-by: Suresh Thiagarajan <[email protected]>
Reviewed-by: Hannes Reinecke <[email protected]>
Reviewed-by: Jack Wang <[email protected]>
Reviewed-by: Tomas Henzl <[email protected]>
Signed-off-by: James Bottomley <[email protected]>
|
|
In pm8001_ccb_task_free(), the dma unmapping is done based on
ccb->n_elem value. This should be initialized to zero in the
task_abort(). Otherwise, pm8001_ccb_task_free() will try for
dma_unmap_sg() which is invalid for task abort and can lead to
kernel crash.
Changes From V1:
None
Signed-off-by: Viswas G <[email protected]>
Reviewed-by: Suresh Thiagarajan <[email protected]>
Reviewed-by: Hannes Reinecke <[email protected]>
Reviewed-by: Jack Wang <[email protected]>
Reviewed-by: Tomas Henzl <[email protected]>
Signed-off-by: James Bottomley <[email protected]>
|
|
Thermal page code has been changed to 7 for the 12G controllers.
Signed-off-by: Viswas G <[email protected]>
Reviewed-by: Suresh Thiagarajan <[email protected]>
Reviewed-by: Hannes Reinecke <[email protected]>
Reviewed-by: Jack Wang <[email protected]>
Reviewed-by: Tomas Henzl <[email protected]>
Signed-off-by: James Bottomley <[email protected]>
|
|
In Nexus reset the device state request are not needed.
Signed-off-by: Viswas G <[email protected]>
Reviewed-by: Suresh Thiagarajan <[email protected]>
Acked-by: Jack Wang <[email protected]>
Reviewed-by: Tomas Henzl <[email protected]>
Signed-off-by: James Bottomley <[email protected]>
|
|
Updated 12G linkrate to libsas.
Signed-off-by: Viswas G <[email protected]>
Reviewed-by: Suresh Thiagarajan <[email protected]>
Reviewed-by: Hannes Reinecke <[email protected]>
Reviewed-by: Jack Wang <[email protected]>
Reviewed-by: Tomas Henzl <[email protected]>
Signed-off-by: James Bottomley <[email protected]>
|
|
Signed-off-by: Suresh Thiagarajan <[email protected]>
Signed-off-by: Viswas G <[email protected]>
Acked-by: Jack Wang <[email protected]>
Signed-off-by: James Bottomley <[email protected]>
|
|
'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: Hannes Reinecke <[email protected]>
Reviewed-by: Christoph Hellwig <[email protected]>
Signed-off-by: James Bottomley <[email protected]>
|
|
|
|
git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata
Pull libata changes from Tejun Heo:
"The only interesting piece is the support for shingled drives. The
changes in libata layer are minimal. All it does is identifying the
new class of device and report upwards accordingly"
* 'for-3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata:
libata: Remove FIXME comment in atapi_request_sense()
sata_rcar: Document deprecated "renesas,rcar-sata"
sata_rcar: Add clocks to sata_rcar bindings
ahci_sunxi: Make AHCI_HFLAG_NO_PMP flag configurable with a module option
libata-scsi: Update SATL for ZAC drives
libata: Implement ATA_DEV_ZAC
libsas: use ata_dev_classify()
|
|
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: Christoph Hellwig <[email protected]>
Reviewed-by: Bart Van Assche <[email protected]>
Reviewed-by: Martin K. Petersen <[email protected]
Reviewed-by: Hannes Reinecke <[email protected]>
|
|
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: Christoph Hellwig <[email protected]>
Reviewed-by: Hannes Reinecke <[email protected]>
Acked-by: Dan Williams <[email protected]>
|
|
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: Christoph Hellwig <[email protected]>
Reviewed-by: Mike Christie <[email protected]>
Reviewed-by: Hannes Reinecke <[email protected]>
Reviewed-by: Venkatesh Srinivas <[email protected]>
|
|
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: Christoph Hellwig <[email protected]>
Reviewed-by: Mike Christie <[email protected]>
Reviewed-by: Martin K. Petersen <[email protected]>
Reviewed-by: Hannes Reinecke <[email protected]>
|
|
Use the ata device class from libata in libsas instead of checking
the supported command set and switch to using ata_dev_classify()
instead of our own method.
Cc: Tejun Heo <[email protected]>
Cc: Dan Williams <[email protected]>
Acked-by: Christoph Hellwig <[email protected]>
Signed-off-by: Hannes Reinecke <[email protected]>
Signed-off-by: Tejun Heo <[email protected]>
|
|
Instead of using the virt_ptr use request buffer for copying
back the nvmd response data and use the same in request function also
Signed-off-by: Suresh Thiagarajan <[email protected]>
Reviewed-by: Tomas Henzl <[email protected]>
Signed-off-by: Christoph Hellwig <[email protected]>
|
|
Pull more SCSI changes from James Bottomley:
"This is a small set of updates which missed the first pull. It's more
msix updates, some iscsi and qla4xxx fixes, we also have some string
null termination fixes a return value fix and a couple of pm8001
firmware fixes.
Just a note, we do have a couple of bug fixes coming under separate
cover, but they don't have to be part of the merge window"
* tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
iscsi class: Fix freeing of skb in get host error path
scsi: fix u14-34f printk format warnings
pm8001: fix pm8001_store_update_fw
pm8001: Fix erratic calculation in update_flash
pm8001: Update MAINTAINERS list
libiscsi: return new error code when nop times out
iscsi class: fix get_host_stats return code when not supported
iscsi class: fix get_host_stats error handling
qla4xxx: fix get_host_stats error propagation
qla4xxx: check the return value of dma_alloc_coherent()
scsi: qla4xxx: ql4_mbx.c: Cleaning up missing null-terminate in conjunction with strncpy
scsi: qla4xxx: ql4_os.c: Cleaning up missing null-terminate in conjunction with strncpy
qla4xxx: Use pci_enable_msix_exact() instead of pci_enable_msix()
pm8001: Use pci_enable_msix_exact() instead of pci_enable_msix()
|
|
Remove the now unnecessary memset too.
Signed-off-by: Joe Perches <[email protected]>
Cc: Adam Radford <[email protected]>
Cc: "James E.J. Bottomley" <[email protected]>
Cc: Jayamohan Kallickal <[email protected]>
Cc: Dario Ballabio <[email protected]>
Cc: Michael Neuffer <[email protected]>
Cc: "Stephen M. Cameron" <[email protected]>
Cc: Neela Syam Kolli <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
|
|
The current implementation may mix the negative value returned from
pm8001_set_nvmd with count. -(-ENOMEM) could be interpreted as bytes
programmed, this patch fixes it.
Signed-off-by: Tomas Henzl <[email protected]>
Signed-off-by: Suresh Thiagarajan <[email protected]>
Signed-off-by: Christoph Hellwig <[email protected]>
|
|
The loopcount is calculated by using some weird magic. Use instead a boring
macro.
Signed-off-by: Tomas Henzl <[email protected]>
Acked-by: Suresh Thiagarajan <[email protected]>
Signed-off-by: Christoph Hellwig <[email protected]>
|
|
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: Alexander Gordeev <[email protected]>
Reviewed-by: Jack Wang <[email protected]>
Signed-off-by: Christoph Hellwig <[email protected]>
|
|
When a call to request_irq() failed pm8001_setup_msix()
still returns the success. This udate fixes the described
misbehaviour.
Signed-off-by: Alexander Gordeev <[email protected]>
Acked-by: Jack Wang <[email protected]>
Signed-off-by: Christoph Hellwig <[email protected]>
|
|
Instead of copying information to fw_control_context free it.
The task is forgotten thus also the reference to fw_control_context
and the completion thread takes the info from virt_ptr again.
Signed-off-by: Tomas Henzl <[email protected]>
Acked-by: Suresh Thiagarajan <[email protected]>
Signed-off-by: Christoph Hellwig <[email protected]>
|
|
The driver checks the return valu, but after he tries to wait_for_completion
which might never happen. Also the ioctl buffer is freed at the end of the
function, so the first removal is not needed.
Signed-off-by: Tomas Henzl <[email protected]>
Acked-by: Suresh Thiagarajan <[email protected]>
Signed-off-by: Christoph Hellwig <[email protected]>
|
|
ccb->fw_control_context is copied to local fw_control_context and
the local variable is never used later
Free ccb->fw_control_context. The task is forgotten thus also the
reference to fw_control_context and the completion thread takes the info
from virt_ptr again.
Signed-off-by: Tomas Henzl <[email protected]>
Acked-by: Suresh Thiagarajan <[email protected]>
Signed-off-by: Christoph Hellwig <[email protected]>
|
|
There is a risk that the variable will be used without being initialized.
This was largely found by using a static code analysis program called cppche
Signed-off-by: Rickard Strandqvist <[email protected]>
Acked-by: Suresh Thiagarajan <[email protected]>
Acked-by: Jack Wang <[email protected]>
Signed-off-by: Christoph Hellwig <[email protected]>
|
|
Removal of null pointer checks that could never happen
Signed-off-by: Rickard Strandqvist <[email protected]>
Acked-by: Suresh Thiagarajan <[email protected]>
Acked-by: Jack Wang <[email protected]>
Signed-off-by: Christoph Hellwig <[email protected]>
|
|
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: Tomas Henzl <[email protected]>
Acked-by: Suresh Thiagarajan <[email protected]>
Acked-by: Jack Wang <[email protected]>
Signed-off-by: Christoph Hellwig <[email protected]>
|
|
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: Tomas Henzl <[email protected]>
Acked-by: Suresh Thiagarajan <[email protected]>
Acked-by: Jack Wang <[email protected]>
Signed-off-by: Christoph Hellwig <[email protected]>
|
|
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: Tomas Henzl <[email protected]>
Acked-by: Suresh Thiagarajan <[email protected]>
Acked-by: Jack Wang <[email protected]>
Signed-off-by: Christoph Hellwig <[email protected]>
|
|
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: Tomas Henzl <[email protected]>
Acked-by: Suresh Thiagarajan <[email protected]>
Acked-by: Jack Wang <[email protected]>
Signed-off-by: Christoph Hellwig <[email protected]>
|
|
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=76681
Signed-off-by: Bradley Grove <[email protected]>
Acked-by: Jack Wang <[email protected]>
Signed-off-by: Christoph Hellwig <[email protected]>
|
|
The pm8001_get_phy_settings_info() function does not check
the kzalloc() return value and does not free the allocated memory.
Signed-off-by: Maurizio Lombardi <[email protected]>
Acked-by: Suresh Thiagarajan <[email protected]>
Acked-by: Jack Wang <[email protected]>
Signed-off-by: Christoph Hellwig <[email protected]>
|
|
git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux
Pull module updates from Rusty Russell:
"Most of this is cleaning up various driver sysfs permissions so we can
re-add the perm check (we unified the module param and sysfs checks,
but the module ones were stronger so we weakened them temporarily).
Param parsing gets documented, and also "--" now forces args to be
handed to init (and ignored by the kernel).
Module NX/RO protections get tightened: we now set them before calling
parse_args()"
* tag 'modules-next-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux:
module: set nx before marking module MODULE_STATE_COMING.
samples/kobject/: avoid world-writable sysfs files.
drivers/hid/hid-picolcd_fb: avoid world-writable sysfs files.
drivers/staging/speakup/: avoid world-writable sysfs files.
drivers/regulator/virtual: avoid world-writable sysfs files.
drivers/scsi/pm8001/pm8001_ctl.c: avoid world-writable sysfs files.
drivers/hid/hid-lg4ff.c: avoid world-writable sysfs files.
drivers/video/fbdev/sm501fb.c: avoid world-writable sysfs files.
drivers/mtd/devices/docg3.c: avoid world-writable sysfs files.
speakup: fix incorrect perms on speakup_acntsa.c
cpumask.h: silence warning with -Wsign-compare
Documentation: Update kernel-parameters.tx
param: hand arguments after -- straight to init
modpost: Fix resource leak in read_dump()
|
|
Checking return value for the memory allocattion and freeing it
while exiting the function
Signed-off-by: Viswas G <[email protected]>
Signed-off-by: Suresh Thiagarajan <[email protected]>
Reviewed-by: Tomas Henzl <[email protected]>
Acked-by: Jack Wang <[email protected]>
Signed-off-by: Christoph Hellwig <[email protected]>
|
|
In line with practice for module parameters, we're adding a build-time
check that sysfs files aren't world-writable.
Cc: Lindar Liu <[email protected]>
Cc: James Bottomley <[email protected]>
Signed-off-by: Rusty Russell <[email protected]>
|
|
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: Michael Opdenacker <[email protected]>
Signed-off-by: James Bottomley <[email protected]>
|
|
If a phy device is removed, the device can get error of I/O and HBA maybe
receieve IO_OPEN_CNX_ERROR_IT_NEXUS_LOSS of event which causes pm8001_work_fn
to reset the phy device but in pm8001_task_exec we don't assign a value for
the device field of the ccb and in other case a ccb used have device field
set, when ccb is freed the field device of the ccb don't be set NULL.So there
is possibility of getting another device reset in function mpi_ssp_completion.
Signed-off-by: zhuxh <[email protected]>
Acked-by: Lindar Liu <[email protected]>
Signed-off-by: James Bottomley <[email protected]>
|
|
unregistering device
In function pm8001_dev_gone_notify we consume a tag from bitmap resource and
later don't free that tag resource, so the tag resource will never be
freed. In the function we don't need to use any tag to issue command for
unregistering the device .
Signed-off-by: XinHong Zhu <[email protected]>
Acked-by: Lindar Liu <[email protected]>
Signed-off-by: James Bottomley <[email protected]>
|
|
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: Jason Seba <[email protected]>
Signed-off-by: Oleg Nesterov <[email protected]>
Signed-off-by: Suresh Thiagarajan <[email protected]>
Signed-off-by: Viswas G <[email protected]>
Acked-by: Jack Wang <[email protected]>
Signed-off-by: James Bottomley <[email protected]>
|
|
ATTO pm8001 based HBAs.
Signed-off-by: Bradley Grove <[email protected]>
Signed-off-by: James Bottomley <[email protected]>
|
|
Signed-off-by: Bradley Grove <[email protected]>
Signed-off-by: James Bottomley <[email protected]>
|
|
pm80xx_get_gsm_dump() was returning "1" in error case
instead of negative error value.
Signed-off-by: Viswas G <[email protected]>
Reviewed-by: Jack Wang <[email protected]>
Reviewed-by: Tomas Henzl <[email protected]>
Signed-off-by: James Bottomley <[email protected]>
|
|
Removed redundant code snippets in pm8001_hwi.c and
pm8001_ctl.c
Signed-off-by: Viswas G <[email protected]>
Reviewed-by: Jack Wang <[email protected]>
Signed-off-by: James Bottomley <[email protected]>
|
|
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: [email protected]
Signed-off-by: [email protected]
Reviewed-by: Jack Wang <[email protected]>
Signed-off-by: James Bottomley <[email protected]>
|
|
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: [email protected]
Signed-off-by: [email protected]
Reviewed-by: Jack Wang <[email protected]>
Signed-off-by: James Bottomley <[email protected]>
|
|
In case of direct attached SATA device delay is not enough.
It will give crash for set device state command response and
wait_for_completion is the best solution for this.
Signed-off-by: [email protected]
Signed-off-by: [email protected]
Reviewed-by: Jack Wang <[email protected]>
Signed-off-by: James Bottomley <[email protected]>
|