Merged to master at 4dec3510e947..04657bdebf03 (from, to]

You can see the entire diff with 'git diff' or at
https://github.com/brho/akaros/compare/4dec3510e947...04657bdebf03



On 2016-02-18 at 14:11 "'Kanoj Sarcar' via Akaros"
<[email protected]> wrote:
> 
> While trying newer tests, the non-initialization logic of SGL's became
> apparent. Also, newer tests invoke get_user_pages() without faulting
> in corresponding pages, so we need to automatically allocate the
> pages.
> 
> Clean up to do reference counting in get_user_pages() etc will come
> later.
> 
> Signed-off-by: Kanoj Sarcar <[email protected]>
> ---
>  kern/drivers/net/udrvr/compat.c | 13 ++++++++++++-
>  1 file changed, 12 insertions(+), 1 deletion(-)
> 
> diff --git a/kern/drivers/net/udrvr/compat.c
> b/kern/drivers/net/udrvr/compat.c index 436240f..93890d6 100644
> --- a/kern/drivers/net/udrvr/compat.c
> +++ b/kern/drivers/net/udrvr/compat.c
> @@ -77,9 +77,19 @@ int get_user_page(struct proc *p, unsigned long
> uvastart, int write, int force, goto err1;
>  
>       if (!pte_is_present(pte)) {
> +             struct page *pp;
> +             unsigned long prot = PTE_P | PTE_U | PTE_A | PTE_W |
> PTE_D; +#if 0
>               printk("[akaros]: get_user_page() uva=0x%llx pte
> absent\n", uvastart);
> -             goto err1;
> +#endif
> +             /*
> +              * TODO: ok to allocate with pte_lock? "prot" needs
> to be
> +              * based on VMR writability, refer to
> pgprot_noncached().
> +              */
> +             if (upage_alloc(p, &pp, 0))
> +                     goto err1;
> +             pte_write(pte, page2pa(pp), prot);
>       }
>  
>       if (write && (!pte_has_perm_urw(pte))) {
> @@ -100,6 +110,7 @@ int sg_alloc_table(struct sg_table *ptr, unsigned
> int npages, gfp_t mask) {
>       ptr->sgl = kmalloc((sizeof(struct scatterlist) * npages),
> mask); ptr->nents = ptr->orig_nents = npages;
> +     sg_init_table(ptr->sgl, npages);
>       return 0;
>  }
>  
> 

-- 
You received this message because you are subscribed to the Google Groups 
"Akaros" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to