Re: [PATCH] pagewalk: don't pte_unmap(NULL) in walk_pte_range()

From: Andreas Schwab
Date: Thu Apr 10 2008 - 08:09:22 EST


Johannes Weiner <hannes@xxxxxxxxxxxx> writes:

>> Signed-off-by: Roel Kluin <12o3l@xxxxxxxxxx>
>> ---
>> diff --git a/mm/pagewalk.c b/mm/pagewalk.c
>> index 1cf1417..6615f0b 100644
>> --- a/mm/pagewalk.c
>> +++ b/mm/pagewalk.c
>> @@ -15,7 +15,7 @@ static int walk_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end,
>> break;
>> } while (pte++, addr += PAGE_SIZE, addr != end);
>>
>> - pte_unmap(pte);
>> + pte_unmap(pte - 1);
>> return err;
>> }
>
> This does not make any sense to me.

There is something fishy here. If the loop ends because addr == end
then pte has been incremented past the pmd page for addr, no?

Andreas.

--
Andreas Schwab, SuSE Labs, schwab@xxxxxxx
SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany
PGP key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
"And now for something completely different."
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/