Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 685346 | Differences between
and this patch

Collapse All | Expand All

(-)a/kernel/nvidia-uvm/uvm8_tools.c (-6 / +8 lines)
Lines 204-221 Link Here
204
    return event_tracker != NULL && !event_tracker->is_queue;
204
    return event_tracker != NULL && !event_tracker->is_queue;
205
}
205
}
206
206
207
static void put_user_pages(struct page **pages, NvU64 page_count)
207
static void nv_put_user_pages(struct page **pages, NvU64 page_count)
208
{
208
{
209
    NvU64 i;
209
#if ULONG_MAX == ULLONG_MAX
210
    for (i = 0; i < page_count; i++)
210
    put_user_pages(pages, (unsigned long)page_count);
211
        put_page(pages[i]);
211
#else
212
#error "This patch works only for 64 bits machines!"
213
#endif
212
}
214
}
213
215
214
static void unmap_user_pages(struct page **pages, void *addr, NvU64 size)
216
static void unmap_user_pages(struct page **pages, void *addr, NvU64 size)
215
{
217
{
216
    size = DIV_ROUND_UP(size, PAGE_SIZE);
218
    size = DIV_ROUND_UP(size, PAGE_SIZE);
217
    vunmap((NvU8 *)addr);
219
    vunmap((NvU8 *)addr);
218
    put_user_pages(pages, size);
220
    nv_put_user_pages(pages, size);
219
    uvm_kvfree(pages);
221
    uvm_kvfree(pages);
220
}
222
}
221
223
Lines 279-285 Link Here
279
    uvm_kvfree(vmas);
281
    uvm_kvfree(vmas);
280
282
281
    if (ret > 0)
283
    if (ret > 0)
282
        put_user_pages(*pages, ret);
284
        nv_put_user_pages(*pages, ret);
283
    else if (ret < 0)
285
    else if (ret < 0)
284
        status = errno_to_nv_status(ret);
286
        status = errno_to_nv_status(ret);
285
287

Return to bug 685346