On Fri,  6 Sep 2019 18:47:09 +0000 John Stultz wrote:
> 
> +     cma_pages = cma_alloc(cma_heap->cma, nr_pages, align, false);
> +     if (!cma_pages)
> +             goto free_buf;
> +
> +     if (PageHighMem(cma_pages)) {
> +             unsigned long nr_clear_pages = nr_pages;
> +             struct page *page = cma_pages;
> +
> +             while (nr_clear_pages > 0) {
> +                     void *vaddr = kmap_atomic(page);
> +
> +                     memset(vaddr, 0, PAGE_SIZE);
> +                     kunmap_atomic(vaddr);
> +                     page++;
> +                     nr_clear_pages--;
> +             }
> +     } else {
> +             memset(page_address(cma_pages), 0, size);
> +     }

Take a breath after zeroing a page, and a peep at pending signal.

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to