2022-03-28 17:51:51

by Rolf Eike Beer

[permalink] [raw]
Subject: mm: use mmap_assert_write_locked() instead of open coding it

In case the lock is actually not held at this point this also avoids a
stale lock reference if built with NDEBUG.

Signed-off-by: Rolf Eike Beer <[email protected]>
---
mm/mmap.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/mm/mmap.c b/mm/mmap.c
index 3aa839f81e63..d62598dc2fdd 100644
--- a/mm/mmap.c
+++ b/mm/mmap.c
@@ -3561,7 +3561,7 @@ int mm_take_all_locks(struct mm_struct *mm)
struct vm_area_struct *vma;
struct anon_vma_chain *avc;

- BUG_ON(mmap_read_trylock(mm));
+ mmap_assert_write_locked(mm);

mutex_lock(&mm_all_locks_mutex);

@@ -3641,7 +3641,7 @@ void mm_drop_all_locks(struct mm_struct *mm)
struct vm_area_struct *vma;
struct anon_vma_chain *avc;

- BUG_ON(mmap_read_trylock(mm));
+ mmap_assert_write_locked(mm);
BUG_ON(!mutex_is_locked(&mm_all_locks_mutex));

for (vma = mm->mmap; vma; vma = vma->vm_next) {
--
2.35.1


--
Rolf Eike Beer, emlix GmbH, https://www.emlix.com
Fon +49 551 30664-0, Fax +49 551 30664-11
Gothaer Platz 3, 37083 Göttingen, Germany
Sitz der Gesellschaft: Göttingen, Amtsgericht Göttingen HR B 3160
Geschäftsführung: Heike Jordan, Dr. Uwe Kracke – Ust-IdNr.: DE 205 198 055

emlix - smart embedded open source



2022-03-29 07:33:34

by Christoph Hellwig

[permalink] [raw]
Subject: Re: mm: use mmap_assert_write_locked() instead of open coding it

On Mon, Mar 28, 2022 at 10:24:51AM +0200, Rolf Eike Beer wrote:
> In case the lock is actually not held at this point this also avoids a
> stale lock reference if built with NDEBUG.

The change looks good:

Reviewed-by: Christoph Hellwig <[email protected]>

But I don't think NDEBUG is a thing in the kernel.

2022-03-29 12:52:38

by Rolf Eike Beer

[permalink] [raw]
Subject: Re: mm: use mmap_assert_write_locked() instead of open coding it

Am Dienstag, 29. März 2022, 08:36:39 CEST schrieb Christoph Hellwig:
> On Mon, Mar 28, 2022 at 10:24:51AM +0200, Rolf Eike Beer wrote:
> > In case the lock is actually not held at this point this also avoids a
> > stale lock reference if built with NDEBUG.
>
> The change looks good:
>
> Reviewed-by: Christoph Hellwig <[email protected]>
>
> But I don't think NDEBUG is a thing in the kernel.

You are right, it was in tools/include/linux/kernel.h and I didn't spot the
prefix. Andrew, maybe you could just delete the sentence when you add the
Reviewed-by?

Eike
--
Rolf Eike Beer, emlix GmbH, https://www.emlix.com
Fon +49 551 30664-0, Fax +49 551 30664-11
Gothaer Platz 3, 37083 Göttingen, Germany
Sitz der Gesellschaft: Göttingen, Amtsgericht Göttingen HR B 3160
Geschäftsführung: Heike Jordan, Dr. Uwe Kracke – Ust-IdNr.: DE 205 198 055

emlix - smart embedded open source


Attachments:
signature.asc (321.00 B)
This is a digitally signed message part.

2022-04-01 09:35:52

by Andrew Morton

[permalink] [raw]
Subject: Re: mm: use mmap_assert_write_locked() instead of open coding it

On Tue, 29 Mar 2022 08:45:37 +0200 Rolf Eike Beer <[email protected]> wrote:

> You are right, it was in tools/include/linux/kernel.h and I didn't spot the
> prefix. Andrew, maybe you could just delete the sentence when you add the
> Reviewed-by?

Did that. I used simply "In case the lock is actually not held at this
point."