Lines Matching defs:pool

791  * @pool:	event_pool that contains the event
797 static int ibmvfc_valid_event(struct ibmvfc_event_pool *pool,
800 int index = evt - pool->events;
801 if (index < 0 || index >= pool->size) /* outside of bounds */
803 if (evt != pool->events + index) /* unaligned */
816 struct ibmvfc_event_pool *pool = &vhost->pool;
818 BUG_ON(!ibmvfc_valid_event(pool, evt));
1248 * ibmvfc_init_event_pool - Allocates and initializes the event pool for a host
1249 * @vhost: ibmvfc host who owns the event pool
1256 struct ibmvfc_event_pool *pool = &vhost->pool;
1259 pool->size = max_requests + IBMVFC_NUM_INTERNAL_REQ;
1260 pool->events = kcalloc(pool->size, sizeof(*pool->events), GFP_KERNEL);
1261 if (!pool->events)
1264 pool->iu_storage = dma_alloc_coherent(vhost->dev,
1265 pool->size * sizeof(*pool->iu_storage),
1266 &pool->iu_token, 0);
1268 if (!pool->iu_storage) {
1269 kfree(pool->events);
1273 for (i = 0; i < pool->size; ++i) {
1274 struct ibmvfc_event *evt = &pool->events[i];
1277 evt->crq.ioba = cpu_to_be64(pool->iu_token + (sizeof(*evt->xfer_iu) * i));
1278 evt->xfer_iu = pool->iu_storage + i;
1289 * ibmvfc_free_event_pool - Frees memory of the event pool of a host
1290 * @vhost: ibmvfc host who owns the event pool
1296 struct ibmvfc_event_pool *pool = &vhost->pool;
1299 for (i = 0; i < pool->size; ++i) {
1300 list_del(&pool->events[i].queue);
1301 BUG_ON(atomic_read(&pool->events[i].free) != 1);
1302 if (pool->events[i].ext_list)
1304 pool->events[i].ext_list,
1305 pool->events[i].ext_list_token);
1308 kfree(pool->events);
1310 pool->size * sizeof(*pool->iu_storage),
1311 pool->iu_storage, pool->iu_token);
1316 * ibmvfc_get_event - Gets the next free event in pool
1319 * Returns a free event from the pool.
2859 if (unlikely(!ibmvfc_valid_event(&vhost->pool, evt))) {
4995 dev_err(dev, "Failed to allocate sg pool\n");
5026 dev_err(dev, "Couldn't allocate target memory pool\n");
5170 dev_err(dev, "Couldn't initialize event pool. rc=%d\n", rc);