2015-10-21 16:47 GMT+03:00 Johannes Thumshirn :
> On Wed, 2015-10-21 at 16:18 +0300, Dāvis Mosāns wrote:
>> 2015-10-21 10:33 GMT+03:00 Johannes Thumshirn :
>> > On Tue, 2015-10-20 at 20:41 +0300, Dāvis Mosāns wrote:
>> > > 2015-08-21 7:29 GMT+03:00 Dāvis
2015-09-02 19:13 GMT+09:00 Yaniv Gardi :
> A race condition appear to exist between request completion when
> scsi_done() is called to end the request and set the tag back to
> -1 (at blk_queue_end_tag() scsi_end_request), and scsi layer error
> handling which aborts the
On Wed, 2015-10-21 at 17:26 +0300, Dāvis Mosāns wrote:
> 2015-10-21 16:47 GMT+03:00 Johannes Thumshirn :
> > On Wed, 2015-10-21 at 16:18 +0300, Dāvis Mosāns wrote:
> > > 2015-10-21 10:33 GMT+03:00 Johannes Thumshirn > > >:
> > > > On Tue, 2015-10-20 at
2015-09-02 19:13 GMT+09:00 Yaniv Gardi :
> DME commands such as Hibern8 enter/exit and gear switch generate 2
> completion interrupts, one for confirmation that command is received
> by local UniPro and 2nd one is the final confirmation after communication
> with remote
2015-09-02 19:13 GMT+09:00 Yaniv Gardi :
> According to UFS device specification REQUEST_SENSE command can
> only report back up to 18 bytes of data.
>
> Signed-off-by: Gilad Broner
> Signed-off-by: Yaniv Gardi
>
> ---
>
2015-09-02 19:13 GMT+09:00 Yaniv Gardi :
> If hibern8 enter command fails then UFS link state may be unknown which
> may result into timeout of all the commands issued after failure.
>
> This change does 2 things (for pre-defined number of retry counts) after
> hibern8 enter
2015-09-13 23:52 GMT+09:00 Yaniv Gardi :
> diff --git a/drivers/scsi/ufs/ufs_quirks.c b/drivers/scsi/ufs/ufs_quirks.c
> new file mode 100644
> index 000..b649bbf
> --- /dev/null
> +++ b/drivers/scsi/ufs/ufs_quirks.c
> @@ -0,0 +1,101 @@
> +/*
> + * Copyright (c)
2015-09-13 23:52 GMT+09:00 Yaniv Gardi :
> diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c
> index 1c37a7d..9638553 100644
> --- a/drivers/scsi/ufs/ufshcd.c
> +++ b/drivers/scsi/ufs/ufshcd.c
> @@ -40,6 +40,7 @@
> #include
> #include
>
> +#include
>
2015-09-13 23:52 GMT+09:00 Yaniv Gardi :
> Query commands have 100ms timeout and it may timeout if they are
> issued in parallel to ongoing read/write SCSI commands, this change
> adds the retry (max: 10) in case command timeouts.
>
> Signed-off-by: Subhash Jadavani
2015-09-13 23:52 GMT+09:00 Yaniv Gardi :
> Sometimes due to hw issues it takes some time to the
> host controller register to update. In order to verify the register
> has updated, a polling is done until its value is set.
>
> In addition the functions ufshcd_hba_stop() and
2015-09-13 23:52 GMT+09:00 Yaniv Gardi :
> Currently when UFSHCD_BROKEN_LCC quirk is defined, LCC is getting
> disabled on both host and device side but there could be a need
> where we don't want to disable the LCC on both side hence this change
> splits the quirk in 2
2015-09-13 23:52 GMT+09:00 Yaniv Gardi :
> UFS device and link can be put in multiple different low power modes
> hence UFS driver supports multiple different low power modes.
> By default UFS driver selects the default (optimal) low power mode
> (which gives moderate power
2015-09-13 23:52 GMT+09:00 Yaniv Gardi :
> Optimal values of local UniPro parameters like PA_Hibern8Time &
> PA_TActivate can help reduce the hibern8 exit latency. If both host and
> device supports UniPro ver1.6 or later, these parameters will be
> automatically tuned
2015-09-13 23:52 GMT+09:00 Yaniv Gardi :
> We put the UFS device in sleep state & UFS link in hibern8 state during
> runtime suspaned. After this we put all the UFS rails in low power
> modes immediately but it seems some devices may still draw more than
> sleep current from
A Gentle Reminder !!
On 10/14/2015 06:25 PM, Alim Akhtar wrote:
This patch-set introduces UFS (Universal Flash Storage) host support
for Samsung Exynos SoC. Mostly, it consists of UFS PHY and host specific driver.
And it also contains some quirks handling for Exynos.
NOTE: ** This series has a
The trace following the failure of alloc_mem() incorrectly identifies
which function failed. This can lead to misdiagnosing a failure.
Fix the string to correctly indicate that alloc_mem() failed.
Reported-by: Brian King
Signed-off-by: Matthew R. Ochs
Ioctl threads that use scsi_execute() can run for an excessive amount
of time due to the fact that they have lengthy timeouts and retry logic
built in. Under normal operation this is not an issue. However, once EEH
enters the picture, a long execution time coupled with the possibility
that a
The fops owned by the adapter can be corrupted in certain scenarios,
opening a window where certain fops are temporarily NULLed before being
reset to their proper value. This can potentially lead software to make
incorrect decisions, leaving the user with the inability to function as
intended.
An
Add stanza for cxlflash SCSI driver.
Signed-off-by: Matthew R. Ochs
Signed-off-by: Manoj N. Kumar
Reviewed-by: Brian King
Reviewed-by: Andrew Donnellan
---
MAINTAINERS | 9 +
From: Manoj Kumar
The operator used to double the master context response delay
is incorrect and does not result in delay doubling.
To fix, use a left shift instead of the XOR operator.
Reported-by: Tomas Henzl
Signed-off-by: Matthew R. Ochs
Borrowing the TMF waitq's spinlock causes a stall condition when
waiting for the TMF to complete. To remedy, introduce our own spin
lock to serialize TMF and use the appropriate wait services.
Also add a timeout while waiting for a TMF completion. When a TMF
times out, report back a failure such
The resid is incorrectly set which can lead to unnecessary retry
attempts by the stack. This is due to resid _always_ being set
using a value returned from the adapter. Instead, the value
should only be interpreted and set when in an underrun scenario.
Signed-off-by: Matthew R. Ochs
The context encode mask covers more than 32-bits, making it
a long integer. This should be noted by appending the ULL
width suffix to the mask.
Signed-off-by: Matthew R. Ochs
Signed-off-by: Manoj N. Kumar
Reviewed-by: Brian King
Using sizeof(bool) is considered poor form for various reasons and
sparse warns us of that. Correct by changing type from bool to u8.
Signed-off-by: Matthew R. Ochs
Signed-off-by: Manoj N. Kumar
Reviewed-by: Brian King
A bug was introduced earlier in the development cycle when cleaning
up logic statements. Instead of skipping bits that are not set, set
bits are skipped, causing async interrupts to not be handled correctly.
To fix, simply add back in the proper evaluation for an unset bit.
Signed-off-by:
Following an adapter reset, the AFU RRQ that resides in host memory
holds stale data. This can lead to a condition where the RRQ interrupt
handler tries to process stale entries and/or endlessly loops due to an
out of sync generation bit.
To fix, the AFU RRQ in host memory needs to be cleared
At present, both ports must be online for the device to
configure properly. Remove this dependency and the unnecessary
internal LUN override logic as well. Additionally, as a refactoring
measure, change the return code variable name to match that used
throughout the driver.
With this change, the
Sparse uncovered several errors with MMIO operations (accessing
directly) and handling endianness. These can cause issues when
running in different environments.
Introduce __iomem and proper endianness tags/swaps where
appropriate to make driver sparse clean.
Signed-off-by: Matthew R. Ochs
The process_sense() routine can perform a read capacity which
can take some time to complete. If an EEH occurs while waiting
on the read capacity, the EEH handler will wait to obtain the
context's mutex in order to put the context in an error state.
The EEH handler will sit and wait until the
There are several spelling and grammar mistakes throughout the
driver. Additionally there are a handful of places where there
are extra lines and unnecessary variables/statements. These are
a nuisance and pollute the driver.
Fix spelling and grammar issues. Update some comments for clarity and
Several function prologs have incorrect parameter names and return
code descriptions. This can lead to confusion when reviewing the
source and creates inaccurate documentation.
To remedy, update the function prologs to properly reflect parameter
names and return codes.
Signed-off-by: Matthew R.
This patch set contains various fixes and corrections for issues that
were found during test and code review. The series is based upon the
code upstreamed in 4.3 (rebased to Dan Carpenter's 9/22 patch) and is
intended for 4.4. The entire set is bisectable. Please reference the
changelog below for
The workq can process work in parallel with a remove event, leading
to a condition where the workq handler can access freed memory.
To remedy, the workq should be terminated prior to freeing memory. Move
the termination call earlier in remove and use cancel_work_sync() instead
of flush_work() as
Currently, scsi_host_put() is being called prematurely in the
remove path and is missing entirely in an error cleanup path.
The former can lead to memory being freed too early with
subsequent access potentially corrupting data whilst the former
would result in a memory leak.
Move the usage on
The AFU version is stored as a non-terminated string of bytes within
a 64-bit little-endian register. Presently the value is read directly
(no MMIO accessor) and is stored in a buffer that is not big enough
to contain a NULL terminator. Additionally the version obtained is not
evaluated against a
When the device reset handler is entered while a reset operation
is taking place, the handler exits without actually sending a
reset (TMF) to the targeted device. This behavior is incorrect
as the device is not reset. Further complicating matters is the
fact that a success is returned even when
From: Manoj Kumar
The timeout value for read capacity is too small. Certain devices
may take longer to respond and thus the command may prematurely
timeout. Additionally the literal used for the timeout is stale.
Update the timeout to 30 seconds (matches the value used in
From: Manoj Kumar
Magic numbers are not meaningful and can create confusion. As a
remedy, replace them with descriptive literals.
Replace 512 with literal MAX_SECTOR_UNIT.
Replace 5 with literal CMD_RETRIES.
Signed-off-by: Matthew R. Ochs
From: Manoj Kumar
A 'login timed out' asynchronous error interrupt is generated if no
response is seen to a FLOGI within 2 seconds. If the time out error
is not escalated to a LINK_RESET the port will not be available for
use. This fix provides the required escalation.
When running with an unsupported AFU, the cxlflash driver fails
the probe. When the driver is removed, the following Oops is
encountered on a show_interrupts() thread:
Call Trace:
[c01fba5a7a10] [0003] 0x3 (unreliable)
[c01fba5a7a60] [c053dcf4] vsnprintf+0x204/0x4c0
The host reset handler is called with I/O already blocked, thus
there is no need to explicitly block and unblock I/O in the handler.
Signed-off-by: Matthew R. Ochs
Signed-off-by: Manoj N. Kumar
Reviewed-by: Brian King
Contexts may be skipped over for cleanup in situations where contention
for the adapter's table-list mutex is experienced in the presence of a
signal during the execution of the release handler.
This can lead to two known issues:
- A hang condition on remove as that path tries to wait for users
The port selection mask of a LUN can be corrupted when the manage LUN
ioctl (DK_CXLFLASH_MANAGE_LUN) is issued more than once for any device.
This mask indicates to the AFU which port[s] can be used for a data
transfer to/from a particular LUN. The mask is critical to ensuring the
correct
Following a link up event, the LUNs available to the host may
have changed. Without rescanning the host, the LUN topology is
unknown to the user. In such a state, the user would be unable
to locate provisioned resources.
To remedy, the host should be rescanned after a link up event.
When running with lock instrumentation (e.g. lockdep), some of the
instrumentation can become disabled at probe time for a cxlflash
adapter. This is due to a missing lock registration for the tmf_slock.
The fix is to call spin_lock_init() for the tmf_slock during probe.
Signed-off-by: Matthew R.
During run-time the driver can be very chatty and spam the system
kernel log. Various print statements can be limited and/or moved
to development-only mode. Additionally, numerous prints can be
converted to trace the corresponding device. Lastly, one spelling
correction was made: 'entra' to
Reviewed-by: Brian King
--
Brian King
Power Linux I/O
IBM Linux Technology Center
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majord...@vger.kernel.org
More majordomo info at
Found during code inspection, that the following functions are not
being used outside of the file where they are defined. Make them static.
int cxlflash_send_cmd(struct afu *, struct afu_cmd *);
void cxlflash_wait_resp(struct afu *, struct afu_cmd *);
int cxlflash_afu_reset(struct cxlflash_cfg
When a LUN is removed, the sdev that is associated with the LUN
remains intact until its reference count drops to 0. In order
to prevent an sdev from being removed while a context is still
associated with it, obtain an additional reference per-context
for each LUN attached to the context.
This
From: Manoj Kumar
If two concurrent MANAGE_LUN ioctls are issued with the same
WWID parameter, it would result in an incorrect value of port_sel.
This is because port_sel is modified without any locks being
held. If the first caller stalls after the return from
During an EEH freeze event, certain CXL services should not be
called until after the hardware reset has taken place. Doing so
can result in unnecessary failures and possibly cause other ill
effects by triggering hardware accesses. This translates to a
requirement to quiesce all threads that may
Implement the following suggestions and add two new attributes
to allow for debugging the port LUN table.
- use scnprintf() instead of snprintf()
- use DEVICE_ATTR_RO and DEVICE_ATTR_RW
Suggested-by: Shane Seymour
Signed-off-by: Matthew R. Ochs
If the same virtual LUN is accessed over multiple cards, only accesses
made over the first card will be valid. Accesses made over the second
card will go to the wrong LUN causing data corruption.
This is because the global LUN's mode word was being used to determine
whether the LUN table for that
Limbo is not an accurate representation of this state and is
also not consistent with the terminology that other drivers
use to represent this concept. Rename the state and and its
associated waitq to 'reset'.
Signed-off-by: Matthew R. Ochs
Signed-off-by: Manoj N.
Use struct pci_device_id instead of DEFINE_PCI_DEVICE_TABLE with
the goal of getting rid of this macro completely, as this macro
is deprecated.
Signed-off-by: Muhammad Falak R Wani
---
drivers/scsi/wd719x.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git
Remove boilerplate code by using macro module_pci_driver.
For drivers whose __init and __exit paths only register and
unregister to the pci API, it is preferred to use this macro.
Signed-off-by: Muhammad Falak R Wani
---
drivers/scsi/wd719x.c | 13 +
1 file
On 22/10/15 07:16, Matthew R. Ochs wrote:
Contexts may be skipped over for cleanup in situations where contention
for the adapter's table-list mutex is experienced in the presence of a
signal during the execution of the release handler.
This can lead to two known issues:
- A hang condition
On Wed, 2015-10-21 at 16:18 +0300, Dāvis Mosāns wrote:
> 2015-10-21 10:33 GMT+03:00 Johannes Thumshirn :
> > On Tue, 2015-10-20 at 20:41 +0300, Dāvis Mosāns wrote:
> > > 2015-08-21 7:29 GMT+03:00 Dāvis Mosāns :
> > > > When pci_pool_alloc fails in
AUF DEINE ANTWORT WARTEND
Ich bin mit diesem Medium, um Sie über die Transaktion zur Abgabe von
$ 2150 (einundzwanzig Millionen fünfhunderttausend US-Dollar) auf meinem
Bank in China, Sie als Empfänger zu informieren. Es ist 100% sicher, wobei der
Finanzvorstand des verstorbenen
2015-10-21 10:33 GMT+03:00 Johannes Thumshirn :
> On Tue, 2015-10-20 at 20:41 +0300, Dāvis Mosāns wrote:
>> 2015-08-21 7:29 GMT+03:00 Dāvis Mosāns :
>> > When pci_pool_alloc fails in mvs_task_prep then task->lldd_task
>> > stays
>> > NULL but it's later used
On 10/19/2015 09:40 PM, Chad Dupuis wrote:
> Signed-off-by: Giridhar Malavali
> Signed-off-by: Chad Dupuis
> ---
> drivers/scsi/bnx2fc/57xx_hsi_bnx2fc.h |4 ++--
> drivers/scsi/bnx2fc/bnx2fc.h |4 ++--
>
On 10/19/2015 09:40 PM, Chad Dupuis wrote:
> Signed-off-by: Giridhar Malavali
> Signed-off-by: Chad Dupuis
> ---
> drivers/scsi/bnx2fc/bnx2fc_io.c |5 -
> 1 files changed, 4 insertions(+), 1 deletions(-)
>
> diff --git
On 10/19/2015 09:40 PM, Chad Dupuis wrote:
> Signed-off-by: Giridhar Malavali
> Signed-off-by: Chad Dupuis
> ---
> drivers/scsi/bnx2fc/57xx_hsi_bnx2fc.h |2 +-
> drivers/scsi/bnx2fc/Kconfig|5 ++---
>
On 10/19/2015 09:40 PM, Chad Dupuis wrote:
> Signed-off-by: Giridhar Malavali
> Signed-off-by: Chad Dupuis
> ---
> drivers/scsi/bnx2fc/bnx2fc_els.c |1 +
> drivers/scsi/bnx2fc/bnx2fc_io.c |8 ++--
> 2 files changed, 7
On 10/19/2015 09:40 PM, Chad Dupuis wrote:
> Signed-off-by: Giridhar Malavali
> Signed-off-by: Chad Dupuis
> ---
> drivers/scsi/bnx2fc/bnx2fc.h |2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git
On 10/19/2015 09:40 PM, Chad Dupuis wrote:
> Signed-off-by: Giridhar Malavali
> Signed-off-by: Chad Dupuis
> ---
> drivers/scsi/bnx2fc/bnx2fc.h |2 +-
> drivers/scsi/bnx2fc/bnx2fc_fcoe.c |2 +-
> 2 files changed, 2
On 10/19/2015 09:40 PM, Chad Dupuis wrote:
> Explicit logouts from bnx2fc were causing race conditions in either returning
> stale SCSI commands or not allowing a target to log back in.
>
> Signed-off-by: Giridhar Malavali
> Signed-off-by: Chad Dupuis
On 10/20/2015 10:07 PM, Don Brace wrote:
>> -Original Message-
>> From: Hannes Reinecke [mailto:h...@suse.de]
>> Sent: Wednesday, September 30, 2015 2:50 AM
>> To: Don Brace; linux-scsi@vger.kernel.org
>> Subject: Re: [PATCH] hpsa: add in sas transport
>>
>> On 09/30/2015 12:21 AM, Don
On 09/24/2015 04:54 PM, Johannes Thumshirn wrote:
>
> Ping?
>
I really would like to see them included, as with this we can move
the udev rules over to not issuing any SG_IO commands during event
processing. This helps a lot for multipath failover scenarios.
Cheers,
Hannes
--
Dr. Hannes
On Tue, 2015-10-20 at 20:41 +0300, Dāvis Mosāns wrote:
> 2015-08-21 7:29 GMT+03:00 Dāvis Mosāns :
> > When pci_pool_alloc fails in mvs_task_prep then task->lldd_task
> > stays
> > NULL but it's later used in mvs_abort_task as slot which is passed
> > to mvs_slot_task_free
Hi All,
I am seeing the following messages during boot up of latest kernel
image on APM X-Gene 1 Mustang board with sil3132 card plugged in and 2
disks connected. Similar messages are also seen during dd/xdd
operations. This happens even when libata.force=noncq parameter is set
on command line.
71 matches
Mail list logo