From: Bean Huo
Add command retries parameter to __mmc_switch(), let caller
pass retries according to the caller's condition.
Signed-off-by: Bean Huo
---
drivers/mmc/core/mmc.c | 22 +++---
drivers/mmc/core/mmc_ops.c | 7 ---
drivers/mmc/core/mmc_ops.h | 2 +-
3 files
From: Bean Huo
Not any commands need to retry in case of timeout/failure.
Currently, the sanitize command is issued by the IOCTL interface,
and once its timeouts, the user normally decides to retry or not .
Just blindly retry three times sanitize in the driver, it doesn't
help sanitize retry
From: Bean Huo
Bean Huo (2):
mmc: core: Add a retries parameter to __mmc_switch function
mmc: core: Let sanitize not retry in case of timeout/failure
drivers/mmc/core/mmc.c | 22 +++---
drivers/mmc/core/mmc_ops.c | 11 ++-
drivers/mmc/core/mmc_ops.h | 2 +-
3
On Thu, 2021-04-08 at 10:59 -0700, Scott Branden wrote:
> From: Vladimir Olovyannikov
>
>
>
> In certain rare combination of operations, Micron eMMC v5.0 cards
>
> may experience data errors if internal cache is enabled.
>
> This may lead to eMMC related data errors.
>
> Introduce a quirk
On Mon, 2021-04-12 at 09:50 +0200, Ulf Hansson wrote:
> > diff --git a/drivers/mmc/core/block.c b/drivers/mmc/core/block.c
> > index 8bfd4d95b386..9778093d7006 100644
> > --- a/drivers/mmc/core/block.c
> > +++ b/drivers/mmc/core/block.c
> > @@ -836,7 +836,7 @@ static inline int
From: Bean Huo
Not any commands need to retry in case of timeout/failure.
Currently, the sanitize command is issued by the IOCTL interface,
and once its timeouts, the user normally decides to retry or not .
Just blindly retry three times sanitize in the driver, it doesn't
help sanitize retry
From: Bean Huo
Changelog:
V1--V2:
1. change wrong nouns in patch 1/2 commit message
v2--v3:
1. Replace the original patch 1/2 with the new patch 1/2 based
on the Ulf's suggestion.
Bean Huo (2):
mmc: core: Pass down user specified timeout value to sanitize
mmc: core: Let
From: Bean Huo
As the density increases, the 4-minute timeout value for
sanitize is no longer feasible. At the same time, devices
of different densities have different timeout values, and it is
difficult to obtain a unified standard timeout value. Therefore,
it is better to pass down user
On Fri, 2021-04-02 at 00:48 +0200, Ulf Hansson wrote:
> On Thu, 1 Apr 2021 at 15:29, Bean Huo wrote:
>
> > From: Bean Huo
> > As the density increases, the 4-minute timeout value for
> > sanitize is no longer feasible. At the same time, devices
> > of different de
From: Bean Huo
As the density increases, the 4-minute timeout value for
disinfection is no longer feasible. At the same time, devices
of different densities have different timeout values, and it is
difficult to obtain a unified standard timeout value. Therefore,
it is better to let the user
From: Bean Huo
Bean Huo (2):
mmc: core: Let sanitize timeout readable/writable via sysfs
mmc: core: Let sanitize not retry in case of timeout/failure
drivers/mmc/core/block.c | 13 ---
drivers/mmc/core/mmc.c | 80 --
drivers/mmc/core/mmc_ops.c
From: Bean Huo
Changelog:
V1--V2:
1. change wrong nouns in patch 1/2 commit message
Bean Huo (2):
mmc: core: Let sanitize timeout readable/writable via sysfs
mmc: core: Let sanitize not retry in case timeout
drivers/mmc/core/block.c | 13 +++---
drivers/mmc/core/mmc.c | 81
From: Bean Huo
As the density increases, the 4-minute timeout value for
sanitize is no longer feasible. At the same time, devices
of different densities have different timeout values, and it is
difficult to obtain a unified standard timeout value. Therefore,
it is better to let the user
From: Bean Huo
Not any commands need to retry in case of timeout/failure.
Currently, the sanitize command is issued by the IOCTL interface,
and once its timeouts, the user normally decides to retry or not .
Just blindly retry three times sanitize in the driver, it doesn't
help sanitize retry
From: Bean Huo
Not any commands need to retry in case of timeout/failure.
Currently, the sanitize command is issued by the IOCTL interface,
and once its timeouts, the user normally decides to retry or not .
Just blindly retry three times sanitize in the driver, it doesn't
help sanitize retry
Hi Martin
I don't know when/how do you plan to accept this patch. I think the
Mobile vendors and chipset vendors are all looking forward to this UFS
HPB feature that can be mainlined in the upstream Linux. Since the
first version HPB driver submitted in the community, it is now V32, and
we have
in the mmc-utils.
Co-developed-by: Bean Huo
Signed-off-by: Bean Huo
Reviewed-by: Kenneth Gibbons
---
Hi Ulf,
Please help us review this mmc-utils patch, and if agree, it is
possible to make it merged in the official mmc-utils.
Changelog:
V1--V2:
1. refactor Kimito's original patch
2. change
On Wed, 2021-03-24 at 17:24 +0800, Can Guo wrote:
> On 2021-03-24 16:37, Bean Huo wrote:
> > On Wed, 2021-03-24 at 09:45 +0800, Can Guo wrote:
> > > On 2021-03-23 20:48, Avri Altman wrote:
> > >
> > > > > On 2021-03-23 14:37, Daejun Park wrote:
> >
gt; > > > > > > > > On 2021-03-23 12:22, Can Guo wrote:
> > > > > > > > > > On 2021-03-22 17:11, Bean Huo wrote:
> > > > > > > > > > > On Mon, 2021-03-22 at 15:54 +0900, Daejun Park
> > &
On Mon, 2021-03-22 at 15:54 +0900, Daejun Park wrote:
> + switch (rsp_field->hpb_op) {
>
> + case HPB_RSP_REQ_REGION_UPDATE:
>
> + if (data_seg_len != DEV_DATA_SEG_LEN)
>
> + dev_warn(>sdev_ufs_lu->sdev_dev,
>
> +
On Fri, 2021-03-19 at 15:09 +0100, Ulf Hansson wrote:
> On Fri, 19 Mar 2021 at 13:14, Bean Huo wrote:
>
> > From: Bean Huo
> > Currently, we have two ways to issue multiple-block read/write the
> > command to the eMMC. One is by normal IO request path fs->block
From: Bean Huo
Use preferred way '"%s...", __func__' to print function name.
Signed-off-by: Bean Huo
---
drivers/mmc/host/cavium.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/drivers/mmc/host/cavium.c b/drivers/mmc/host/cavium.c
index 4bb8f2800a2b..95
From: Bean Huo
Bean Huo (2):
mmc: cavium: Use '"%s...", __func__' to print function name
mmc: cavium: Remove redundant if-statement checkup
drivers/mmc/host/cavium.c | 6 ++
1 file changed, 2 insertions(+), 4 deletions(-)
--
2.25.1
From: Bean Huo
Currently, we have two ways to issue multiple-block read/write the
command to the eMMC. One is by normal IO request path fs->block->mmc.
Another one is that we can issue multiple-block read/write through
MMC ioctl interface. For the first path, mrq->stop, and mrq->
unction
> scsi: ufshcd: remove version check
>
> drivers/scsi/ufs/ufs-qcom.c | 4 +--
> drivers/scsi/ufs/ufshcd.c | 66 ++++++-
> --
> drivers/scsi/ufs/ufshci.h | 17 +++-
> 3 files changed, 38 insertions(+), 49 deletions(-)
>
>
Thanks for your patch, good look to me.
Reviewed-by: Bean Huo
On Sat, 2021-03-06 at 03:47 -0800, menglong8.d...@gmail.com wrote:
> From: Zhang Yunkai
>
>
>
> 'blkdev.h' included in 'ufshcd.c' is duplicated.
>
> It is also included in the 18th line.
>
>
>
> Signed-off-by: Zhang Yunkai
Reviewed-by: Bean Huo
On Wed, 2021-03-03 at 15:29 +0900, Daejun Park wrote:
> +
> +static inline int ufshpb_get_read_id(struct ufshpb_lu *hpb)
> +{
> + if (++hpb->cur_read_id >= MAX_HPB_READ_ID)
> + hpb->cur_read_id = 0;
> + return hpb->cur_read_id;
> +}
> +
> +static int
On Wed, 2021-03-03 at 15:29 +0900, Daejun Park wrote:
> +
> +static inline void ufshpb_put_pre_req(struct ufshpb_lu *hpb,
> + struct ufshpb_req *pre_req)
> +{
> + pre_req->req = NULL;
> + pre_req->bio = NULL;
> + list_add_tail(_req->list_req,
On Tue, 2021-03-02 at 13:15 +, Avri Altman wrote:
> >
> > On Fri, 2021-02-26 at 16:35 +0900, Daejun Park wrote:
> > > +static void ufshpb_set_unmap_cmd(unsigned char *cdb, struct
> > > ufshpb_region *rgn)
> > > +{
> > > + cdb[0] = UFSHPB_WRITE_BUFFER;
> > > + cdb[1] = rgn ?
On Fri, 2021-02-26 at 16:35 +0900, Daejun Park wrote:
> +
> +/*
> + * In this driver, WRITE_BUFFER CMD support 36KB (len=9) ~ 512KB
> (len=128) as
> + * default. It is possible to change range of transfer_len through
> sysfs.
> + */
> +static inline bool ufshpb_is_required_wb(struct ufshpb_lu
On Tue, 2021-03-02 at 10:14 +0200, Adrian Hunter wrote:
> > > That can result in the state being UFSHCD_STATE_ERROR even though
> > > ufshcd_reset_and_restore() is successful and returns zero.
> > >
> > > Fix by initializing the state to UFSHCD_STATE_RESET in the start
> > > of each
> > > loop in
On Fri, 2021-02-26 at 16:35 +0900, Daejun Park wrote:
>
>
> static void __ufshpb_evict_region(struct ufshpb_lu *hpb,
> struct ufshpb_region *rgn)
> {
> @@ -1209,6 +1579,16 @@ static void ufshpb_lu_parameter_init(struct
> ufs_hba *hba,
> u32
On Fri, 2021-02-26 at 16:35 +0900, Daejun Park wrote:
> +static void ufshpb_set_unmap_cmd(unsigned char *cdb, struct
> ufshpb_region *rgn)
> +{
> + cdb[0] = UFSHPB_WRITE_BUFFER;
> + cdb[1] = rgn ? UFSHPB_WRITE_BUFFER_INACT_SINGLE_ID :
> +
,
but in This loop, it it better that, before going to reset flow,
ufshcd_state should be set UFSHCD_STATE_RESET.
Reviewed-by: Bean Huo
On Wed, 2021-02-24 at 13:54 +0900, Daejun Park wrote:
> +static int ufshpb_init_mem_wq(void)
> +{
> + int ret;
> + unsigned int pool_size;
> +
> + ufshpb_mctx_cache = kmem_cache_create("ufshpb_mctx_cache",
> + sizeof(struct
> ufshpb_map_ctx),
On Wed, 2021-02-24 at 13:54 +0900, Daejun Park wrote:
>
> +void ufshpb_init(struct ufs_hba *hba)
> +{
> + struct ufshpb_dev_info *hpb_dev_info = >ufshpb_dev;
> + int try;
> + int ret;
> +
> + if (!ufshpb_is_allowed(hba))
> + return;
> +
Here it is better to check
On Mon, 2021-02-22 at 18:31 +0900, Daejun Park wrote:
> }
> }
> @@ -532,8 +870,8 @@ static int ufshpb_execute_map_req(struct
> ufshpb_lu *hpb,
> if (unlikely(last))
> mem_size = hpb->last_srgn_entries * HPB_ENTRY_SIZE;
>
> -
On Mon, 2021-02-22 at 18:31 +0900, Daejun Park wrote:
> +}
> +static DEVICE_ATTR_RW(requeue_timeout_ms);
> +
> +static struct attribute *hpb_dev_param_attrs[] = {
> + _attr_requeue_timeout_ms.attr,
> +};
here, you lost a NULL member at the end of attribute struct.
Bean
gt;
> Signed-off-by: Adrian Hunter
Acked-by: Bean Huo
al-or of those two. A mutex is needed to ensure that the masks
> match
> what was written to the device.
>
> Signed-off-by: Adrian Hunter
Hi Adrian,
I tested this series patch on my platform, and you can add:
Acked-by: Bean Huo
Bean
.. 732.609312:
> ufshcd_exception_event: :00:12.5: status 0x4
>
> Signed-off-by: Adrian Hunter
Reviewed-by: Bean Huo
On Thu, 2021-02-11 at 12:46 +0200, Avri Altman wrote:
> fixes: 2b2bfc8aa519 (scsi: ufs: Introduce a quirk to allow only
> page-aligned sg entries)
>
> Signed-off-by: Avri Altman
thanks Avri.
Reviewed-by: Bean Huo
On Tue, 2021-02-09 at 13:25 +, Avri Altman wrote:
> >
> >
> > > > > + put_unaligned_be64(ppn, [6]);
> > > >
> > > > You are assuming the HPB entries read out by "HPB Read Buffer"
> > > > cmd
> > > > are
> > > > in Little
> > > > Endian, which is why you are using put_unaligned_be64
On Mon, 2021-02-08 at 20:56 +0800, Leo Liou wrote:
> Based on ufshci spec, it defines that "Offset C0h to FFh" belong
> to vendor specific. If cpu vendor doesn't support these commands, it
> makes the dme errors:
>
> ufs: dme-set: attr-id 0xd041 val 0x1fff failed 0 retries
> ufs: dme-set: attr-id
On Fri, 2021-02-05 at 11:29 +0800, Can Guo wrote:
> > + return ppn_table[offset];
> > +}
> > +
> > +static void
> > +ufshpb_get_pos_from_lpn(struct ufshpb_lu *hpb, unsigned long lpn,
> > int
> > *rgn_idx,
> > + int *srgn_idx, int *offset)
> > +{
> > + int rgn_offset;
>
On Sun, 2021-02-07 at 15:36 +0800, Can Guo wrote:
> >
> > Thanks, I tested Daejun's patchset before, it is also ok (I don't
> > know
> > which version patchset). maybe we can keep current implementation
> > as
> > default, then if there is conflict, and submit the quirk.
> >
>
> Yeah, you've
On Sat, 2021-02-06 at 15:23 +0800, Can Guo wrote:
> > + dev_dbg(>sdev_ufs_lu->sdev_dev, "Noti: #ACT %u #INACT
> > %u\n",
> > + rsp_field->active_rgn_cnt, rsp_field-
> > >inactive_rgn_cnt);
> > +
> > + queue_work(ufshpb_wq, >map_work);
> > +}
> > +
> > +/*
> > + * This function
On Fri, 2021-02-05 at 14:06 +, Avri Altman wrote:
> > > > + put_unaligned_be64(ppn, [6]);
> > >
> > > You are assuming the HPB entries read out by "HPB Read Buffer"
> > > cmd
> > > are
> > > in Little
> > > Endian, which is why you are using put_unaligned_be64 here.
> > > However,
> > >
On Fri, 2021-02-05 at 11:29 +0800, Can Guo wrote:
> > + *rgn_idx = lpn >> hpb->entries_per_rgn_shift;
> > + rgn_offset = lpn & hpb->entries_per_rgn_mask;
> > + *srgn_idx = rgn_offset >> hpb->entries_per_srgn_shift;
> > + *offset = rgn_offset & hpb->entries_per_srgn_mask;
> > +}
> >
On Fri, 2021-02-05 at 12:36 +0100, Bean Huo wrote:
> > to whatever recommendation received from the device - In host
> > control
> > mode, the host uses its own algorithms to decide which regions
> > should
> > be activated or inactivated.
> >
> >
On Fri, 2021-02-05 at 11:42 +, Avri Altman wrote:
> > "If the requested field of the HPB Region or HPB Sub-Region is out
> > of
> > range, then the device shall terminate the command by sending
> > RESPONSE
> > UPIU with CHECK CONDITION status, with the SENSE KEY set to ILLEGAL
> > REQUEST,
On Tue, 2021-02-02 at 10:29 +0200, Avri Altman wrote:
> v1 -> v2:
> - attend Greg's and Daejun's comments
> - add patch 9 making host mode parameters configurable
> - rebase on Daejun's v19
>
>
> The HPB spec defines 2 control modes - device control mode and host
> control mode. In oppose to
On Fri, 2021-01-29 at 14:30 +0900, Daejun Park wrote:
> +static void ufshpb_set_read_buf_cmd(unsigned char *cdb, int rgn_idx,
> + int srgn_idx, int
> srgn_mem_size)
> +{
> + cdb[0] = UFSHPB_READ_BUFFER;
> + cdb[1] = UFSHPB_READ_BUFFER_ID;
> +
>
On Wed, 2021-02-03 at 11:56 +0200, Adrian Hunter wrote:
> >
> > Hallo Adrian
>
> Hi Bean
>
> Thanks for the review
>
> >
> > Would you like sharing the advantage of this debugfs node comparing
> > to
> > sysfs node "attributes/exception_event_control(if it is writable)"?
>
> Primarily this
On Tue, 2021-01-19 at 16:15 +0200, Adrian Hunter wrote:
> Allow users to enable specific exception events via debugfs.
>
> The bits enabled by the driver ee_drv_ctrl are separated from the
> bits
> enabled by the user ee_usr_ctrl. The control mask ee_mask_ctrl is the
> logical-or of those two. A
On Tue, 2021-01-19 at 16:15 +0200, Adrian Hunter wrote:
> Currently, exception event status can be read from
> wExceptionEventStatus
> attribute (sysfs file attributes/exception_event_status under the UFS
> host
> controller device directory). Polling that attribute to track UFS
> exception
>
On Tue, 2021-01-19 at 16:15 +0200, Adrian Hunter wrote:
> For readability and completeness, add exception event definitions.
>
> Signed-off-by: Adrian Hunter
Reviewed-by: Bean Huo
On Tue, 2021-01-19 at 17:37 +0530, Nitin Rawat wrote:
> As per JESD223D UFS HCI v3.0 spec, HCI version 3.0
> is also supported. Hence Adding UFS3.0 in UFS HCI
> version check to avoid logging of the error message.
>
> Signed-off-by: Nitin Rawat
> ---
> drivers/scsi/ufs/ufshcd.c | 5 +++--
>
ing()")
>
> Signed-off-by: Can Guo
Reviewed-by: Bean Huo
Tested-by: Bean Huo
From: Bean Huo
Delete ufshcd_wb_buf_flush_enable() and ufshcd_wb_buf_flush_disable(),
move the implementation into ufshcd_wb_toggle_flush().
Reviewed-by: Stanley Chu
Reviewed-by: Can Guo
Signed-off-by: Bean Huo
---
Changelog:
1. Rebased the patch onto 5.12/scsi-staging, since
On Wed, 2021-01-20 at 22:15 -0500, Martin K. Petersen wrote:
> Bean,
>
> > Bean Huo (6):
> >scsi: ufs: Add "wb_on" sysfs node to control WB on/off
> >docs: ABI: Add wb_on documentation for new entry wb_on
> >scsi: ufs: Changes comment in the fun
From: Bean Huo
Changelog:
v6--v7:
1. Change wb_on sysfs documentation and add information that WriteBooster
is already enabled after power-on/reset(Incorporate Adrian Hunter's suggestion)
v5--v6:
1. Remove original patch 7/7:
"scsi: ufs: Keep device active mode
From: Bean Huo
Currently UFS WriteBooster driver uses clock scaling up/down to set
WB on/off, for the platform which doesn't support UFSHCD_CAP_CLK_SCALING,
WB will be always on. Provide a sysfs attribute to enable/disable WB
during runtime. Write 1/0 to "wb_on" sysfs node to enable/d
From: Bean Huo
d_wb_alloc_units and d_ext_ufs_feature_sup only be used while WB probe.
They are just used to confirm the condition that "if bWriteBoosterBufferType
is set to 01h but dNumSharedWriteBoosterBufferAllocUnits is set to zero,
the WriteBooster feature is disabled", and if
From: Bean Huo
UFS device-related flags should be grouped in ufs_dev_info. Take
wb_enabled and wb_buf_flush_enabled out from the struct ufs_hba,
group them to struct ufs_dev_info, and align the names of the structure
members vertically.
Acked-by: Stanley Chu
Reviewed-by: Can Guo
Signed-off
From: Bean Huo
Delete ufshcd_wb_buf_flush_enable() and ufshcd_wb_buf_flush_disable(),
move the implementation into ufshcd_wb_toggle_flush().
Signed-off-by: Bean Huo
Reviewed-by: Stanley Chu
Reviewed-by: Can Guo
Signed-off-by: Bean Huo
---
drivers/scsi/ufs/ufshcd.c | 66
From: Bean Huo
USFHCD supports WriteBooster "LU dedicated buffer” mode and
“shared buffer” mode both, so changes the comment in the
function ufshcd_wb_probe().
Reviewed-by: Can Guo
Reviewed-by: Stanley Chu
Signed-off-by: Bean Huo
---
drivers/scsi/ufs/ufshcd.c | 7 +++
1 file chang
From: Bean Huo
Adds UFS sysfs documentation for new entry wb_on.
Signed-off-by: Bean Huo
---
Documentation/ABI/testing/sysfs-driver-ufs | 11 +++
1 file changed, 11 insertions(+)
diff --git a/Documentation/ABI/testing/sysfs-driver-ufs
b/Documentation/ABI/testing/sysfs-driver-ufs
On Tue, 2021-01-19 at 12:00 +0200, Adrian Hunter wrote:
> > > Is it so, that after a full reset, WB is always enabled again?
> > > Is
> > > that
> > > intended?
> >
> > Hello Adrian
> > Good questions. yes, after a full reset, the UFS device side by
> > default
> > is wb disabled, then WB will
On Tue, 2021-01-19 at 09:01 +0200, Adrian Hunter wrote:
> On 18/01/21 10:10 pm, Bean Huo wrote:
> > From: Bean Huo
> >
> > Currently UFS WriteBooster driver uses clock scaling up/down to set
> > WB on/off, for the platform which doesn't support
> > UFSHCD_CAP_C
From: Bean Huo
Once going into while-do loop, intr_status is already true,
this if-statement is redundant, remove it.
Signed-off-by: Bean Huo
---
drivers/scsi/ufs/ufshcd.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs
From: Bean Huo
Adds UFS sysfs documentation for new entry wb_on.
Signed-off-by: Bean Huo
---
Documentation/ABI/testing/sysfs-driver-ufs | 8
1 file changed, 8 insertions(+)
diff --git a/Documentation/ABI/testing/sysfs-driver-ufs
b/Documentation/ABI/testing/sysfs-driver-ufs
index
From: Bean Huo
Currently UFS WriteBooster driver uses clock scaling up/down to set
WB on/off, for the platform which doesn't support UFSHCD_CAP_CLK_SCALING,
WB will be always on. Provide a sysfs attribute to enable/disable WB
during runtime. Write 1/0 to "wb_on" sysfs node to enable/d
From: Bean Huo
USFHCD supports WriteBooster "LU dedicated buffer” mode and
“shared buffer” mode both, so changes the comment in the
function ufshcd_wb_probe().
Reviewed-by: Can Guo
Reviewed-by: Stanley Chu
Signed-off-by: Bean Huo
---
drivers/scsi/ufs/ufshcd.c | 7 +++
1 file chang
From: Bean Huo
Delete ufshcd_wb_buf_flush_enable() and ufshcd_wb_buf_flush_disable(),
move the implementation into ufshcd_wb_toggle_flush().
Signed-off-by: Bean Huo
Reviewed-by: Stanley Chu
Reviewed-by: Can Guo
Signed-off-by: Bean Huo
---
drivers/scsi/ufs/ufshcd.c | 66
From: Bean Huo
UFS device-related flags should be grouped in ufs_dev_info. Take
wb_enabled and wb_buf_flush_enabled out from the struct ufs_hba,
group them to struct ufs_dev_info, and align the names of the structure
members vertically.
Acked-by: Stanley Chu
Reviewed-by: Can Guo
Signed-off
From: Bean Huo
d_wb_alloc_units and d_ext_ufs_feature_sup only be used while WB probe.
They are just used to confirm the condition that "if bWriteBoosterBufferType
is set to 01h but dNumSharedWriteBoosterBufferAllocUnits is set to zero,
the WriteBooster feature is disabled", and if
From: Bean Huo
Changelog:
v5--v6:
1. Remove original patch 7/7:
"scsi: ufs: Keep device active mode only
fWriteBoosterBufferFlushDuringHibernate == 1"
2. Rebased patch onto 5.12/scsi-staging
3. Add protection of PM ops and err_handler for the wb_on entry access
V4--V5:
1.
On Tue, 2021-01-12 at 08:45 +0800, Can Guo wrote:
> > > > > to
> > > > > talk to UFS, OCP can happen on VCCQ/VCCQ2. This leads to
> > > > > system
> > > > > CRASH
> > > > > too.
> > > >
> > > > the same as above, share the crash log.
> > > >
> > >
> > > If you have hand-on experiences on NoC
From: Bean Huo
Add description for two function parameters, to fix below two warnings:
kernel/trace/trace.c:464: warning: Function parameter or member 'this_tr' not
described in 'trace_array_put'
kernel/trace/trace.c:543: warning: Function parameter or member
'filtered_no_pids' not described
From: Bean Huo
The memory allocated with devm_kzalloc() is freed automatically
no need to explicitly call devm_kfree, so delete it and save some
instruction cycles.
Reviewed-by: Eric Biggers
Signed-off-by: Bean Huo
---
Nothing changed in this patch, just drop one patch from the patchset
On Tue, 2021-01-12 at 09:03 +, John Garry wrote:
> On 11/01/2021 23:10, Bean Huo wrote:
> > From: Bean Huo
> >
> > The memory allocated with devm_kzalloc() is freed automatically
> > no need to explicitly call devm_kfree.
> >
>
> This change is not
From: Bean Huo
Changelog:
V1-V2:
1. Remove unused variable i in patch 1/2
2. Add Eric Biggers review tag in patch 2/2
Bean Huo (2):
scsi: hisi_sas: Remove unnecessary devm_kfree
scsi: ufs: Remove unnecessary devm_kfree
drivers/scsi/hisi_sas/hisi_sas_v3_hw.c | 28
From: Bean Huo
The memory allocated with devm_kzalloc() is freed automatically
no need to explicitly call devm_kfree.
Signed-off-by: Bean Huo
---
drivers/scsi/hisi_sas/hisi_sas_v3_hw.c | 28 +-
1 file changed, 1 insertion(+), 27 deletions(-)
diff --git a/drivers/scsi
From: Bean Huo
The memory allocated with devm_kzalloc() is freed automatically
no need to explicitly call devm_kfree.
Reviewed-by: Eric Biggers
Signed-off-by: Bean Huo
---
drivers/scsi/ufs/ufshcd-crypto.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/drivers/scsi/ufs
From: Bean Huo
The memory allocated with devm_kzalloc() is freed automatically
no need to explicitly call devm_kfree.
Signed-off-by: Bean Huo
---
drivers/scsi/ufs/ufshcd-crypto.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/drivers/scsi/ufs/ufshcd-crypto.c b/drivers
From: Bean Huo
The memory allocated with devm_kzalloc() is freed automatically
no need to explicitly call devm_kfree.
Signed-off-by: Bean Huo
---
drivers/scsi/hisi_sas/hisi_sas_v3_hw.c | 26 --
1 file changed, 26 deletions(-)
diff --git a/drivers/scsi/hisi_sas
From: Bean Huo
*** BLURB HERE ***
Bean Huo (2):
scsi: hisi_sas: Remove unnecessary devm_kfree
scsi: ufs: Remove unnecessary devm_kfree
drivers/scsi/hisi_sas/hisi_sas_v3_hw.c | 26 --
drivers/scsi/ufs/ufshcd-crypto.c | 4 +---
2 files changed, 1 insertion
On Mon, 2021-01-11 at 17:22 +0800, Can Guo wrote:
> > > meaning you are tring to access a register when clocks are
> > > disabled.
> > > This
> > > leads to system CRASH.
> > >
> >
> > OK, let it simple, share this kind of crash log becuase of access
> > sysfs
> > node in the shutdown flow.
> >
On Mon, 2021-01-11 at 09:30 +0800, Can Guo wrote:
> > > +static inline bool ufshcd_is_sysfs_allowed(struct ufs_hba *hba)
> > > +{
> > > + return !hba->shutting_down;
> > > +}
> > > +
> >
> >
> > Can,
> >
> > Instead adding new shutting_down flag, can we use availible
> > variable
> >
On Mon, 2021-01-11 at 09:27 +0800, Can Guo wrote:
> >
> > If accessing sysfs nodes, which triggers a UFS UPIU request to
> > read/write UFS device descriptors during shutdown flow, there is
> > only
> > one issue that sysfs node access failure since UFS device and LINK
> > has
> > been shutdown.
On Sat, 2021-01-02 at 05:59 -0800, Can Guo wrote:
> + * @shutting_down: flag to check if shutdown has been invoked
> + * @host_sem: semaphore used to serialize concurrent contexts
> * @eh_wq: Workqueue that eh_work works on
> * @eh_work: Worker to handle UFS errors that require s/w attention
>
On Sat, 2021-01-09 at 12:51 +0800, Can Guo wrote:
> On 2021-01-09 12:45, Can Guo wrote:
> > On 2021-01-08 19:29, Bean Huo wrote:
> > > On Wed, 2021-01-06 at 09:20 +0800, Can Guo wrote:
> > > > Hi Bean,
> > > >
> > > > On 2021-01-06 02:38,
On Sun, 2021-01-10 at 10:46 +0200, Avri Altman wrote:
> Remove a redundant if clause in ufshcd_add_query_upiu_trace.
>
> Signed-off-by: Avri Altman
Looks good to me, thanks.
Reviewed-by: Bean Huo
On Wed, 2021-01-06 at 09:20 +0800, Can Guo wrote:
> Hi Bean,
>
> On 2021-01-06 02:38, Bean Huo wrote:
> > On Tue, 2021-01-05 at 09:07 +0800, Can Guo wrote:
> > > On 2021-01-05 04:05, Bean Huo wrote:
> > > > On Sat, 2021-01-02 at 05:59 -0800, Can Guo wrote
From: Bean Huo
sprintf and snprintf may cause output defect in sysfs content, it is
better to use new added sysfs_emit function which knows the size of the
temporary buffer.
Reviewed-by: Avri Altman
Suggested-by: Greg Kroah-Hartman
Signed-off-by: Bean Huo
---
Nothing changed in this patch
On Tue, 2021-01-05 at 09:07 +0800, Can Guo wrote:
> On 2021-01-05 04:05, Bean Huo wrote:
> > On Sat, 2021-01-02 at 05:59 -0800, Can Guo wrote:
> > > + * @shutting_down: flag to check if shutdown has been invoked
> >
> > I am not much sure if this flag is need, since
From: Bean Huo
Don't call trace_ufshcd_upiu() in case ufshba_upiu trace poit is not enabled.
Acked-by: Steven Rostedt (VMware)
Signed-off-by: Bean Huo
---
drivers/scsi/ufs/ufshcd.c | 9 +
1 file changed, 9 insertions(+)
diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs
From: Bean Huo
Transaction Specific Fields (TSF) in the UPIU package could be CDB
(SCSI/UFS Command Descriptor Block), OSF (Opcode Specific Field), and
TM I/O parameter (Task Management Input/Output Parameter). But, currently,
we take all of these as CDB in the UPIU trace. Thus makes user
From: Bean Huo
Distinguish between TM request UPIU and response UPIU in TM UPIU trace,
for the TM response, let TM UPIU trace print its TM response UPIU.
Acked-by: Avri Altman
Acked-by: Steven Rostedt (VMware)
Signed-off-by: Bean Huo
---
drivers/scsi/ufs/ufshcd.c | 8 ++--
1 file
1 - 100 of 526 matches
Mail list logo