Re: mmap for /proc/vmcore broken since 3.12-rc1

HATAYAMA Daisuke
2013-10-09T10:15:43Z

Hello,

(2013/10/08 21:49), Alexey Dobriyan wrote:
> On Mon, Oct 7, 2013 at 5:42 AM, HATAYAMA Daisuke
> <d.hatayama@jp.fujitsu.com> wrote:
>
>> +static unsigned long
>> +get_unmapped_area_vmcore(struct file *filp, unsigned long addr,
>> + unsigned long len, unsigned long pgoff,
>> + unsigned long flags)
>> +{
>> +#ifdef CONFIG_MMU
>> + return current->mm->get_unmapped_area(filp, addr, len, pgoff,
>> flags);
>> +#else
>> + return -EIO;
>> +#endif
>> +}
>> +
>> static const struct file_operations proc_vmcore_operations = {
>> .read = read_vmcore,
>> .llseek = default_llseek,
>> .mmap = mmap_vmcore,
>> + .get_unmapped_area = get_unmapped_area_vmcore,
>
> I think current->mm->get_unmapped_area should be used by core proc code.

What do you actually suggest here? You mean moving this code in proc code?
I don't think you suggest so.

> ENOMEM bug looks unrelated though.
>

Next step I'll do is to look into vm_unmapped_region() that looks for
for a region fit to a given mmap request and returns its address.
In particular, I'll focus on when vm_unmapped_region() could return
kernel-space address.