mmap for /proc/vmcore broken since 3.12-rc1

HATAYAMA Daisuke d.hatayama at jp.fujitsu.com
Wed Oct 9 06:14:55 EDT 2013


Hello,

(2013/10/08 21:49), Alexey Dobriyan wrote:
> On Mon, Oct 7, 2013 at 5:42 AM, HATAYAMA Daisuke
> <d.hatayama at 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.

-- 
Thanks.
HATAYAMA, Daisuke




More information about the kexec mailing list