mbox series

[0/1] mm/debug_vm_pgtable: fix alignment for pmd/pud_advanced_tests()

Message ID 20210525130043.186290-1-gerald.schaefer@linux.ibm.com
Headers show
Series mm/debug_vm_pgtable: fix alignment for pmd/pud_advanced_tests() | expand

Message

Gerald Schaefer May 25, 2021, 1 p.m. UTC
We sometimes see a "BUG task_struct (Not tainted): Padding overwritten"
on s390, directly after running debug_vm_pgtable. This is because of
wrong vaddr alignment in pmd/pud_advanced_tests(), leading to memory
corruption at least on s390, see patch description.

At first glance, other architectures do not seem to care about vaddr in
their xxx_get_and_clear() implementations, so they should not be affected.
One exception is sparc, where the addr is passed over to some tlb_batch
code, but I'm not sure what implication the wrongly aligned vaddr would
have in this case.

Also adding linux-arch, just to make sure.

Gerald Schaefer (1):
  mm/debug_vm_pgtable: fix alignment for pmd/pud_advanced_tests()

 mm/debug_vm_pgtable.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Anshuman Khandual May 26, 2021, 4:24 a.m. UTC | #1
On 5/25/21 6:30 PM, Gerald Schaefer wrote:
> We sometimes see a "BUG task_struct (Not tainted): Padding overwritten"
> on s390, directly after running debug_vm_pgtable. This is because of
> wrong vaddr alignment in pmd/pud_advanced_tests(), leading to memory
> corruption at least on s390, see patch description.
> 
> At first glance, other architectures do not seem to care about vaddr in
> their xxx_get_and_clear() implementations, so they should not be affected.

IIRC, alignment (regardless up or down) is the only requirement on certain
platforms. Probably it should not affect other platforms as this change
just aligns the virtual address down.

> One exception is sparc, where the addr is passed over to some tlb_batch
> code, but I'm not sure what implication the wrongly aligned vaddr would
> have in this case.
> 
> Also adding linux-arch, just to make sure.

Right. Not sure if this test gets to run on sparc platform for not being
currently supported. But we could take a look if there are any reported
problems because of vaddr.

> 
> Gerald Schaefer (1):
>   mm/debug_vm_pgtable: fix alignment for pmd/pud_advanced_tests()
> 
>  mm/debug_vm_pgtable.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>