Looks good to me.
Reviewed-by: Subhash Jadavani
> Signed-off-by: Yaniv Gardi
>
> ---
> drivers/scsi/ufs/ufs-qcom.c | 34 +-
> drivers/scsi/ufs/ufshcd.h | 21 +
> 2 files changed, 38 insertions(+), 17 deletions(-)
>
> diff --git a/drivers/sc
Looks good to me.
Reviewed-by: Subhash Jadavani
> This change is required in order to be able to build the component
> as a module.
>
> Signed-off-by: Yaniv Gardi
>
> ---
> drivers/scsi/ufs/Kconfig | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/scsi/ufs/Kconfi
Looks good to me.
Reviewed-by: Subhash Jadavani
> In order to simplify the code a set of wrapper functions is created
> to test and call each of the variant operations.
>
> Signed-off-by: Yaniv Gardi
>
> ---
> drivers/scsi/ufs/ufs-qcom.c | 1 -
> drivers/scsi/ufs/ufshcd.c | 104
> +
Looks good to me.
Reviewed-by: Subhash Jadavani
> This change fixes a compilation warning that happens if SCSI_UFS_QCOM
> is compiled as a module.
> Also this patch fixes an error happens when insmod the module:
> "ufs_qcom: module license 'unspecified' taints kernel."
>
> Signed-off-by: Yaniv G
Looks good to me.
Reviewed-by: Subhash Jadavani
> Export the following functions in order to avoid build errors
> when the component PHY_QCOM_UFS is compiled as a module:
>
> ERROR: "ufs_qcom_phy_disable_ref_clk"
> [drivers/scsi/ufs/ufs-qcom.ko] undefined!
> ERROR: "ufs_qcom_phy_enable_ref_
Looks good to me.
Reviewed-by: Subhash Jadavani
> This patch exposes the ioctl interface for UFS driver via SCSI device
> ioctl interface. As of now UFS driver would provide the ioctl for query
> interface to connected UFS device.
>
> Signed-off-by: Dolev Raviv
> Signed-off-by: Noa Rubens
> Sig
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
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
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 changed, 1 insertion(+), 1
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 a/drivers/scsi/wd719x.c
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 'extra'
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 t
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
Signed-off-by
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
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.
Signed-off-by: Manoj N. K
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
---
drivers/scsi/cxlflash/main.c | 2 --
1 file changed, 2 deletions(-)
dif
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
[c0
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 behavior
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.
Signed-off-by
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.
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 +
1 file changed, 9 insertions(+)
diff --git a/MAINTAINERS b/MAINTAINERS
index 274f854..f2f3046 100644
--- a/MA
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
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
Signed-off-by: Manoj N. Kumar
Reviewed-by:
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 timeou
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
Signed-off-by: Manoj N. Kumar
Reviewed-by: Brian K
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 afte
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 conte
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
con
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 c
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
Signe
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. O
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 the
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 t
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 k
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 remo
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: Matthew
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. Kumar
Reviewed-by: Brian King
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
Reviewed-by: Daniel Axtens
Reviewed-by: Tomas Henzl
---
drivers
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 po
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
Signed-off-by: Manoj N. Kumar
Reviewed-by: Bria
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
Reviewed-by: Daniel Axtens
Reviewed-by: Tomas Henzl
---
drivers/scsi/cxlf
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 res
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 *);
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
find_and_create_lun(), the value o
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
Signed-off-by: Manoj N. Kumar
Reviewed-by: Brian King
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 sd.c)
and rework the ti
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 d
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 http://vger.kernel.org/majordomo-info.html
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 UFS rails (especially f
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 during link startup itself. B
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
> Signed-off-by: Yaniv Gardi
>
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 savings and have relativ
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 parts one for host and one f
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) 2013-2015, The Linux Foundation.
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
> ufshcd_wait_for_regist
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
> #include "ufshcd.h"
> #i
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 failure:
> 1. Recovers
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 UniPro. Currently both of th
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
>
> ---
> drivers/scsi/ufs/ufshcd.c | 11 ++-
> 1 file changed, 6 insertions(
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 command and reuses it to re
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 20:41 +0300, Dāvis Mosāns wrote:
> > > > > 20
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 Mosāns :
>> > > > When pci_pool_alloc fails
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
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 mvs_task_prep then task->lldd_task
> > > > stays
>
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 in mvs_abort_task as slot which is passe
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 insertions(+), 2 deletions(-)
>
Reviewed-by: Hannes Reinecke
Chee
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 a/drivers/scsi/bnx2fc/bnx2fc.h b/drivers/scsi/bnx2fc/bnx2fc.h
> index d462
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
> ---
> drivers/scsi/bnx2fc/bnx2fc.h |
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 a/drivers/scsi/bnx2fc/bnx2fc_io.c b/drivers/scsi/bnx2fc/bnx2fc_io.c
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 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/scsi/bnx2
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 ++---
> drivers/scsi/bnx2fc/bnx2fc.h |2 +-
> drivers/scsi/bnx2fc/bn
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 ++--
> drivers/scsi/bnx2fc/bnx2fc_constants.h |4 ++--
> drivers/scsi/bnx2fc
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. No
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 causing NULL pointer deref
75 matches
Mail list logo