Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1385768

Re: [PATCH] mm: Fix incorrect pfn passed to untrack_pfn in remap_pfn_range

From Yongji Xie <xyjxie@linux.vnet.ibm.com>
Newsgroups linux.kernel
Subject Re: [PATCH] mm: Fix incorrect pfn passed to untrack_pfn in remap_pfn_range
Date 2016-04-24 05:50 +0200
Message-ID <rrjdw-6ed-3@gated-at.bofh.it> (permalink)
References <rqGFc-vG-5@gated-at.bofh.it> <rqO9I-6yL-5@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


On 2016/4/23 2:38, Andrew Morton wrote:
> On Fri, 22 Apr 2016 18:31:28 +0800 Yongji Xie <xyjxie@linux.vnet.ibm.com> wrote:
>
>> We used generic hooks in remap_pfn_range to help archs to
>> track pfnmap regions. The code is something like:
>>
>> int remap_pfn_range()
>> {
>> 	...
>> 	track_pfn_remap(vma, &prot, pfn, addr, PAGE_ALIGN(size));
>> 	...
>> 	pfn -= addr >> PAGE_SHIFT;
>> 	...
>> 	untrack_pfn(vma, pfn, PAGE_ALIGN(size));
>> 	...
>> }
>>
>> Here we can easily find the pfn is changed but not recovered
>> before untrack_pfn() is called. That's incorrect.
> What are the runtime effects of this bug?

No, this is just a fix in theory:-) .

>> --- a/mm/memory.c
>> +++ b/mm/memory.c
>> @@ -1755,6 +1755,7 @@ int remap_pfn_range(struct vm_area_struct *vma, unsigned long addr,
>>   			break;
>>   	} while (pgd++, addr = next, addr != end);
>>   
>> +	pfn += (end - PAGE_ALIGN(size)) >> PAGE_SHIFT;
>>   	if (err)
>>   		untrack_pfn(vma, pfn, PAGE_ALIGN(size));
> I'm having trouble understanding this.  Wouldn't it be better to simply
> save the track_pfn_remap() call's `pfn' arg in a new local variable?
>

Yes, it's a little difficult to understand this. I will send a v2 soon.

Thanks,
Yongji

Back to linux.kernel | Previous | NextPrevious in thread | Find similar | Unroll thread


Thread

[PATCH] mm: Fix incorrect pfn passed to untrack_pfn in remap_pfn_range Yongji Xie <xyjxie@linux.vnet.ibm.com> - 2016-04-22 12:40 +0200
  Re: [PATCH] mm: Fix incorrect pfn passed to untrack_pfn in  remap_pfn_range Andrew Morton <akpm@linux-foundation.org> - 2016-04-22 20:40 +0200
    Re: [PATCH] mm: Fix incorrect pfn passed to untrack_pfn in  remap_pfn_range Yongji Xie <xyjxie@linux.vnet.ibm.com> - 2016-04-24 05:50 +0200

csiph-web