fix page addr in tcmu_flush_dcache_range
diff mbox

Message ID 1510996463-26020-1-git-send-email-tang.wenji@zte.com.cn
State New, archived
Headers show

Commit Message

tang.wenji@zte.com.cn Nov. 18, 2017, 9:14 a.m. UTC
From: tangwenji <tang.wenji@zte.com.cn>

The page addr should be update.

Signed-off-by: tangwenji <tang.wenji@zte.com.cn>
---
 drivers/target/target_core_user.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

Comments

Mike Christie Nov. 20, 2017, 8:16 p.m. UTC | #1
On 11/18/2017 03:14 AM, tang.wenji@zte.com.cn wrote:
> From: tangwenji <tang.wenji@zte.com.cn>
> 
> The page addr should be update.
> 
> Signed-off-by: tangwenji <tang.wenji@zte.com.cn>
> ---
>  drivers/target/target_core_user.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/target/target_core_user.c b/drivers/target/target_core_user.c
> index 942d0942..82dc246 100644
> --- a/drivers/target/target_core_user.c
> +++ b/drivers/target/target_core_user.c
> @@ -470,12 +470,13 @@ static struct tcmu_cmd *tcmu_alloc_cmd(struct se_cmd *se_cmd)
>  static inline void tcmu_flush_dcache_range(void *vaddr, size_t size)
>  {
>  	unsigned long offset = offset_in_page(vaddr);
> +	void *start = vaddr - offset;
>  
>  	size = round_up(size+offset, PAGE_SIZE);
> -	vaddr -= offset;
>  
>  	while (size) {
> -		flush_dcache_page(virt_to_page(vaddr));
> +		flush_dcache_page(virt_to_page(start));
> +		start += PAGE_SIZE;
>  		size -= PAGE_SIZE;
>  	}
>  }
> 

Reviewed-by: Mike Christie <mchristi@redhat.com>
--
To unsubscribe from this list: send the line "unsubscribe target-devel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch
diff mbox

diff --git a/drivers/target/target_core_user.c b/drivers/target/target_core_user.c
index 942d0942..82dc246 100644
--- a/drivers/target/target_core_user.c
+++ b/drivers/target/target_core_user.c
@@ -470,12 +470,13 @@  static struct tcmu_cmd *tcmu_alloc_cmd(struct se_cmd *se_cmd)
 static inline void tcmu_flush_dcache_range(void *vaddr, size_t size)
 {
 	unsigned long offset = offset_in_page(vaddr);
+	void *start = vaddr - offset;
 
 	size = round_up(size+offset, PAGE_SIZE);
-	vaddr -= offset;
 
 	while (size) {
-		flush_dcache_page(virt_to_page(vaddr));
+		flush_dcache_page(virt_to_page(start));
+		start += PAGE_SIZE;
 		size -= PAGE_SIZE;
 	}
 }