Re: [PATCH] mm: change tlb_finish_mmu() to be more simple

2015-11-04 Thread yalin wang

> On Nov 4, 2015, at 16:36, Sergey Senozhatsky 
>  wrote:
> 
> On (11/04/15 15:35), yalin wang wrote:
> [..]
>> 
>> -for (batch = tlb->local.next; batch; batch = next) {
>> -next = batch->next;
>> +for (batch = tlb->local.next; batch; batch = batch->next)
>>  free_pages((unsigned long)batch, 0);
> 
> accessing `batch->next' after calling free_pages() on `batch'?
> 
>   -ss
oh,  my mistake, my code is buggy here .

Thanks--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] mm: change tlb_finish_mmu() to be more simple

2015-11-04 Thread Sergey Senozhatsky
On (11/04/15 15:35), yalin wang wrote:
[..]
>  
> - for (batch = tlb->local.next; batch; batch = next) {
> - next = batch->next;
> + for (batch = tlb->local.next; batch; batch = batch->next)
>   free_pages((unsigned long)batch, 0);

accessing `batch->next' after calling free_pages() on `batch'?

-ss
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] mm: change tlb_finish_mmu() to be more simple

2015-11-04 Thread Kirill A. Shutemov
On Wed, Nov 04, 2015 at 03:35:31PM +0800, yalin wang wrote:
> This patch remove unneeded *next temp variable,
> make this function more simple to read.
> 
> Signed-off-by: yalin wang 
> ---
>  mm/memory.c | 7 +++
>  1 file changed, 3 insertions(+), 4 deletions(-)
> 
> diff --git a/mm/memory.c b/mm/memory.c
> index 7f3b9f2..f0040ed 100644
> --- a/mm/memory.c
> +++ b/mm/memory.c
> @@ -270,17 +270,16 @@ void tlb_flush_mmu(struct mmu_gather *tlb)
>   */
>  void tlb_finish_mmu(struct mmu_gather *tlb, unsigned long start, unsigned 
> long end)
>  {
> - struct mmu_gather_batch *batch, *next;
> + struct mmu_gather_batch *batch;
>  
>   tlb_flush_mmu(tlb);
>  
>   /* keep the page table cache within bounds */
>   check_pgt_cache();
>  
> - for (batch = tlb->local.next; batch; batch = next) {
> - next = batch->next;
> + for (batch = tlb->local.next; batch; batch = batch->next)

Use after free? No, thanks.

>   free_pages((unsigned long)batch, 0);
> - }
> +
>   tlb->local.next = NULL;
>  }
>  
> -- 
> 1.9.1
> 
> --
> To unsubscribe, send a message with 'unsubscribe linux-mm' in
> the body to majord...@kvack.org.  For more info on Linux MM,
> see: http://www.linux-mm.org/ .
> Don't email: mailto:"d...@kvack.org;> em...@kvack.org 

-- 
 Kirill A. Shutemov
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] mm: change tlb_finish_mmu() to be more simple

2015-11-04 Thread Sergey Senozhatsky
On (11/04/15 15:35), yalin wang wrote:
[..]
>  
> - for (batch = tlb->local.next; batch; batch = next) {
> - next = batch->next;
> + for (batch = tlb->local.next; batch; batch = batch->next)
>   free_pages((unsigned long)batch, 0);

accessing `batch->next' after calling free_pages() on `batch'?

-ss
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] mm: change tlb_finish_mmu() to be more simple

2015-11-04 Thread yalin wang

> On Nov 4, 2015, at 16:36, Sergey Senozhatsky 
>  wrote:
> 
> On (11/04/15 15:35), yalin wang wrote:
> [..]
>> 
>> -for (batch = tlb->local.next; batch; batch = next) {
>> -next = batch->next;
>> +for (batch = tlb->local.next; batch; batch = batch->next)
>>  free_pages((unsigned long)batch, 0);
> 
> accessing `batch->next' after calling free_pages() on `batch'?
> 
>   -ss
oh,  my mistake, my code is buggy here .

Thanks--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] mm: change tlb_finish_mmu() to be more simple

2015-11-04 Thread Kirill A. Shutemov
On Wed, Nov 04, 2015 at 03:35:31PM +0800, yalin wang wrote:
> This patch remove unneeded *next temp variable,
> make this function more simple to read.
> 
> Signed-off-by: yalin wang 
> ---
>  mm/memory.c | 7 +++
>  1 file changed, 3 insertions(+), 4 deletions(-)
> 
> diff --git a/mm/memory.c b/mm/memory.c
> index 7f3b9f2..f0040ed 100644
> --- a/mm/memory.c
> +++ b/mm/memory.c
> @@ -270,17 +270,16 @@ void tlb_flush_mmu(struct mmu_gather *tlb)
>   */
>  void tlb_finish_mmu(struct mmu_gather *tlb, unsigned long start, unsigned 
> long end)
>  {
> - struct mmu_gather_batch *batch, *next;
> + struct mmu_gather_batch *batch;
>  
>   tlb_flush_mmu(tlb);
>  
>   /* keep the page table cache within bounds */
>   check_pgt_cache();
>  
> - for (batch = tlb->local.next; batch; batch = next) {
> - next = batch->next;
> + for (batch = tlb->local.next; batch; batch = batch->next)

Use after free? No, thanks.

>   free_pages((unsigned long)batch, 0);
> - }
> +
>   tlb->local.next = NULL;
>  }
>  
> -- 
> 1.9.1
> 
> --
> To unsubscribe, send a message with 'unsubscribe linux-mm' in
> the body to majord...@kvack.org.  For more info on Linux MM,
> see: http://www.linux-mm.org/ .
> Don't email: mailto:"d...@kvack.org;> em...@kvack.org 

-- 
 Kirill A. Shutemov
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/