This patch remove unneeded *next temp variable,
make this function more simple to read.
Signed-off-by: yalin wang <[email protected]>
---
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)
free_pages((unsigned long)batch, 0);
- }
+
tlb->local.next = NULL;
}
--
1.9.1
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 <[email protected]>
> ---
> 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 [email protected]. For more info on Linux MM,
> see: http://www.linux-mm.org/ .
> Don't email: <a href=mailto:"[email protected]"> [email protected] </a>
--
Kirill A. Shutemov
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
> On Nov 4, 2015, at 16:36, Sergey Senozhatsky <[email protected]> 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-