Re: [PATCH] tcmu: Fix flushing cmd entry dcache page

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 06/30/2017 03:14 AM, lixiubo@xxxxxxxxxxxxxxxxxxxx wrote:
> From: Xiubo Li <lixiubo@xxxxxxxxxxxxxxxxxxxx>
> 
> When feeding the tcmu's cmd ring, we need to flush the dcache page
> for the cmd entry to make sure these kernel stores are visible to
> user space mappings of that page.
> 
> For the none PAD cmd entry, this will be flushed at the end of the
> tcmu_queue_cmd_ring().
> 
> Signed-off-by: Xiubo Li <lixiubo@xxxxxxxxxxxxxxxxxxxx>
> ---
>  drivers/target/target_core_user.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/target/target_core_user.c b/drivers/target/target_core_user.c
> index 203bff1..930800c 100644
> --- a/drivers/target/target_core_user.c
> +++ b/drivers/target/target_core_user.c
> @@ -699,21 +699,21 @@ static inline size_t tcmu_cmd_get_cmd_size(struct tcmu_cmd *tcmu_cmd,
>  		size_t pad_size = head_to_end(cmd_head, udev->cmdr_size);
>  
>  		entry = (void *) mb + CMDR_OFF + cmd_head;
> -		tcmu_flush_dcache_range(entry, sizeof(*entry));
>  		tcmu_hdr_set_op(&entry->hdr.len_op, TCMU_OP_PAD);
>  		tcmu_hdr_set_len(&entry->hdr.len_op, pad_size);
>  		entry->hdr.cmd_id = 0; /* not used for PAD */
>  		entry->hdr.kflags = 0;
>  		entry->hdr.uflags = 0;
> +		tcmu_flush_dcache_range(entry, sizeof(*entry));
>  
>  		UPDATE_HEAD(mb->cmd_head, pad_size, udev->cmdr_size);
> +		tcmu_flush_dcache_range(mb, sizeof(*mb));
>  
>  		cmd_head = mb->cmd_head % udev->cmdr_size; /* UAM */
>  		WARN_ON(cmd_head != 0);
>  	}
>  
>  	entry = (void *) mb + CMDR_OFF + cmd_head;
> -	tcmu_flush_dcache_range(entry, sizeof(*entry));
>  	tcmu_hdr_set_op(&entry->hdr.len_op, TCMU_OP_CMD);
>  	entry->hdr.cmd_id = tcmu_cmd->cmd_id;
>  	entry->hdr.kflags = 0;
> 

Looks ok to me.

Reviewed-by: Mike Christie <mchristi@xxxxxxxxxx>



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]

  Powered by Linux