* any pages that have changed their caching state already put them to the
* pool.
*/
-static void ttm_handle_caching_state_failure(struct list_head *pages,
- int ttm_flags, enum ttm_caching_state cstate,
- struct page **failed_pages, unsigned cpages)
+static void ttm_handle_caching_failure(struct page **failed_pages,
+ unsigned cpages)
{
unsigned i;
+
/* Failed pages have to be freed */
for (i = 0; i < cpages; ++i) {
list_del(&failed_pages[i]->lru);
r = ttm_set_pages_caching(caching_array,
cstate, cpages);
if (r)
- ttm_handle_caching_state_failure(pages,
- ttm_flags, cstate,
- caching_array, cpages);
+ ttm_handle_caching_failure(caching_array,
+ cpages);
}
r = -ENOMEM;
goto out;
r = ttm_set_pages_caching(caching_array,
cstate, cpages);
if (r) {
- ttm_handle_caching_state_failure(pages,
- ttm_flags, cstate,
- caching_array, cpages);
+ ttm_handle_caching_failure(caching_array,
+ cpages);
goto out;
}
cpages = 0;
if (cpages) {
r = ttm_set_pages_caching(caching_array, cstate, cpages);
if (r)
- ttm_handle_caching_state_failure(pages,
- ttm_flags, cstate,
- caching_array, cpages);
+ ttm_handle_caching_failure(caching_array, cpages);
}
out:
kfree(caching_array);