lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <p0lc3b$rh7$1@blaine.gmane.org>
Date:   Mon, 11 Dec 2017 08:28:51 +0100
From:   Christophe JAILLET <christophe.jaillet@...adoo.fr>
To:     linux-kernel@...r.kernel.org
Cc:     linux-mm@...ck.org, kernel-janitors@...r.kernel.org
Subject: Re: [PATCH] mm: Release a semaphore in 'get_vaddr_frames()'

Le 10/12/2017 à 10:45, Michal Hocko a écrit :
> On Sat 09-12-17 08:09:41, Christophe JAILLET wrote:
>> A semaphore is acquired before this check, so we must release it before
>> leaving.
>>
>> Fixes: b7f0554a56f2 ("mm: fail get_vaddr_frames() for filesystem-dax mappings")
>> Signed-off-by: Christophe JAILLET <christophe.jaillet@...adoo.fr>
>> ---
>> -- Untested --
>>
>> The wording of the commit entry and log description could be improved
>> but I didn't find something better.
> The changelog is ok imo.
>
>> ---
>>   mm/frame_vector.c | 4 +++-
>>   1 file changed, 3 insertions(+), 1 deletion(-)
>>
>> diff --git a/mm/frame_vector.c b/mm/frame_vector.c
>> index 297c7238f7d4..e0c5e659fa82 100644
>> --- a/mm/frame_vector.c
>> +++ b/mm/frame_vector.c
>> @@ -62,8 +62,10 @@ int get_vaddr_frames(unsigned long start, unsigned int nr_frames,
>>   	 * get_user_pages_longterm() and disallow it for filesystem-dax
>>   	 * mappings.
>>   	 */
>> -	if (vma_is_fsdax(vma))
>> +	if (vma_is_fsdax(vma)) {
>> +		up_read(&mm->mmap_sem);
>>   		return -EOPNOTSUPP;
>> +	}
> Is there any reason to do a different error handling than other error
> paths? Namely not going without goto out?

You are right, I misread the code after out:.
I thought it would override the returned value, but I was wrong.
'goto out' is definitively better, IMHO. I'll propose a v2.

CJ


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ