lkml.org 
[lkml]   [2015]   [Nov]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
SubjectRE: [PATCH v2 5/7] ACPI / x86: introduce acpi_os_readable() support
Date
Hi, Yu

> From: Chen, Yu C
> Sent: Tuesday, November 10, 2015 5:43 PM
>
> Hi, Lv
> Sorry for my late feedback on the patch, one minor nit below:
>
> > From: Zheng, Lv
> > Sent: Tuesday, November 10, 2015 4:22 PM
> >
> > From: Chen Yu <yu.c.chen@intel.com>
> >
> > This patch implements acpi_os_readable(). The function is used by ACPI AML
> > debugger to validate user specified pointers for the dumpable AML operand
> > objects.
> >
> > Signed-off-by: Chen Yu <yu.c.chen@intel.com>
> > Signed-off-by: Lv Zheng <lv.zheng@intel.com>
> > ---
> > +bool __acpi_memory_readable(void *pointer, size_t length) {
> > + unsigned long start_pfn, end_pfn;
> > +
> We should only check the low memory, otherwise the highmem address might
> bring unexpected behavior in this function, I think we should add:
> if (pointer >= PAGE_OFFSET)
> return false;

I think pfn_range_is_mapped() can ensure this.
If you want to add some sanity checks, IMO, virt_addr_valid() could be better.

> > + start_pfn = page_to_pfn(virt_to_page(pointer));
> > + end_pfn = page_to_pfn(virt_to_page(pointer + length));
> Convert pointer to char* first?
> end_pfn = page_to_pfn(virt_to_page((char*)pointer + length));

Either a compiler supports such a conversion or a compiler ends up fatal error by complaining unknown sizeof(void *).
So there is no need to do this here as the build test has passed.

Thanks and best regards
-Lv

>
> > + /*
> > + * Since the acpi address is allocated by kmalloc, we only
> > + * need to consider the direct-mapping virtual address,
> > + * rather than the kmap/vmalloc/ioremap address.
> > + */
> > + return pfn_range_is_mapped(start_pfn, end_pfn) ? true : false; }
> > +
> Thanks!
>
> Best Regards,
> Yu


\
 
 \ /
  Last update: 2015-11-11 06:41    [W:0.216 / U:0.264 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site