Messages in this thread | | | Subject | Re: [PATCH 6/6] x86/xen: open code alloc_vm_area in arch_gnttab_valloc | From | boris.ostrovsky@oracle ... | Date | Tue, 22 Sep 2020 11:34:35 -0400 |
| |
On 9/22/20 11:27 AM, Christoph Hellwig wrote: > On Tue, Sep 22, 2020 at 11:24:20AM -0400, boris.ostrovsky@oracle.com wrote: >> On 9/22/20 10:58 AM, Christoph Hellwig wrote: >>> On Mon, Sep 21, 2020 at 04:44:10PM -0400, boris.ostrovsky@oracle.com wrote: >>>> This will end up incrementing area->ptes pointer. So perhaps something like >>>> >>>> >>>> pte_t **ptes = area->ptes; >>>> >>>> if (apply_to_page_range(&init_mm, (unsigned long)area->area->addr, >>>> PAGE_SIZE * nr_frames, gnttab_apply, &ptes)) { >>>> >>>> ... >>> Yeah. What do you think of this version? >> >> Oh yes, this is way better. This now can actually be read without trying to mentally unwind triple pointers. (You probably want to initialize idx to zero before calling apply_to_page_range(), I am not sure it's guaranteed to be zero). > Both instances are static variables, thus in .bss and initialized. > So unless you insist I don't think we need a manual one.
Yes, you are right. (I thought perhaps this code could be called more than once but no, it can't).
-boris
| |