参照元

説明

引数

返り値

参考

実装

static int ion_heap_deferred_free(void *data)
{
	struct ion_heap *heap = data;
	while (true) {
		struct ion_buffer *buffer;
		wait_event_freezable(heap->waitqueue,
				     ion_heap_freelist_size(heap) > 0);
		spin_lock(&heap->free_lock);
		if (list_empty(&heap->free_list)) {
			spin_unlock(&heap->free_lock);
			continue;
		}
		buffer = list_first_entry(&heap->free_list, struct ion_buffer,
					  list);
		list_del(&buffer->list);
		heap->free_list_size -= buffer->size;
		spin_unlock(&heap->free_lock);
		ion_buffer_destroy(buffer);
	}

	return 0;
}

コメント


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS