Lines Matching refs:buf_pool

1088 	qp->buf_pool.num_bufs = qp->req->length;  in qla_create_buf_pool()
1091 qp->buf_pool.buf_map = kcalloc(sz, sizeof(long), GFP_KERNEL); in qla_create_buf_pool()
1092 if (!qp->buf_pool.buf_map) { in qla_create_buf_pool()
1098 qp->buf_pool.buf_array = kcalloc(qp->req->length, sizeof(void *), GFP_KERNEL); in qla_create_buf_pool()
1099 if (!qp->buf_pool.buf_array) { in qla_create_buf_pool()
1102 kfree(qp->buf_pool.buf_map); in qla_create_buf_pool()
1106 qp->buf_pool.dma_array = kcalloc(qp->req->length, sizeof(dma_addr_t), GFP_KERNEL); in qla_create_buf_pool()
1107 if (!qp->buf_pool.dma_array) { in qla_create_buf_pool()
1110 kfree(qp->buf_pool.buf_map); in qla_create_buf_pool()
1111 kfree(qp->buf_pool.buf_array); in qla_create_buf_pool()
1114 set_bit(0, qp->buf_pool.buf_map); in qla_create_buf_pool()
1123 for (i = 0; i < qp->buf_pool.num_bufs; i++) { in qla_free_buf_pool()
1124 if (qp->buf_pool.buf_array[i] && qp->buf_pool.dma_array[i]) in qla_free_buf_pool()
1125 dma_pool_free(ha->fcp_cmnd_dma_pool, qp->buf_pool.buf_array[i], in qla_free_buf_pool()
1126 qp->buf_pool.dma_array[i]); in qla_free_buf_pool()
1127 qp->buf_pool.buf_array[i] = NULL; in qla_free_buf_pool()
1128 qp->buf_pool.dma_array[i] = 0; in qla_free_buf_pool()
1131 kfree(qp->buf_pool.dma_array); in qla_free_buf_pool()
1132 kfree(qp->buf_pool.buf_array); in qla_free_buf_pool()
1133 kfree(qp->buf_pool.buf_map); in qla_free_buf_pool()
1146 tag = find_first_zero_bit(qp->buf_pool.buf_map, qp->buf_pool.num_bufs); in qla_get_buf()
1147 if (tag >= qp->buf_pool.num_bufs) { in qla_get_buf()
1153 set_bit(0, qp->buf_pool.buf_map); in qla_get_buf()
1163 if (!qp->buf_pool.buf_array[tag]) { in qla_get_buf()
1171 dsc->buf = qp->buf_pool.buf_array[tag] = buf; in qla_get_buf()
1172 dsc->buf_dma = qp->buf_pool.dma_array[tag] = buf_dma; in qla_get_buf()
1173 qp->buf_pool.num_alloc++; in qla_get_buf()
1175 dsc->buf = qp->buf_pool.buf_array[tag]; in qla_get_buf()
1176 dsc->buf_dma = qp->buf_pool.dma_array[tag]; in qla_get_buf()
1180 qp->buf_pool.num_active++; in qla_get_buf()
1181 if (qp->buf_pool.num_active > qp->buf_pool.max_used) in qla_get_buf()
1182 qp->buf_pool.max_used = qp->buf_pool.num_active; in qla_get_buf()
1185 set_bit(tag, qp->buf_pool.buf_map); in qla_get_buf()
1198 j = qp->buf_pool.num_alloc - 1; in qla_trim_buf()
1199 if (test_bit(j, qp->buf_pool.buf_map)) { in qla_trim_buf()
1202 qp->id, j, qp->buf_pool.num_alloc); in qla_trim_buf()
1206 if (qp->buf_pool.buf_array[j]) { in qla_trim_buf()
1207 dma_pool_free(ha->fcp_cmnd_dma_pool, qp->buf_pool.buf_array[j], in qla_trim_buf()
1208 qp->buf_pool.dma_array[j]); in qla_trim_buf()
1209 qp->buf_pool.buf_array[j] = NULL; in qla_trim_buf()
1210 qp->buf_pool.dma_array[j] = 0; in qla_trim_buf()
1212 qp->buf_pool.num_alloc--; in qla_trim_buf()
1213 if (!qp->buf_pool.num_alloc) in qla_trim_buf()
1218 qp->id, trim, qp->buf_pool.num_alloc); in qla_trim_buf()
1225 qp->buf_pool.take_snapshot = 0; in __qla_adjust_buf()
1226 qp->buf_pool.prev_max = qp->buf_pool.max_used; in __qla_adjust_buf()
1227 qp->buf_pool.max_used = qp->buf_pool.num_active; in __qla_adjust_buf()
1229 if (qp->buf_pool.prev_max > qp->buf_pool.max_used && in __qla_adjust_buf()
1230 qp->buf_pool.num_alloc > qp->buf_pool.max_used) { in __qla_adjust_buf()
1232 trim = qp->buf_pool.num_alloc - qp->buf_pool.max_used; in __qla_adjust_buf()
1236 } else if (!qp->buf_pool.prev_max && !qp->buf_pool.max_used) { in __qla_adjust_buf()
1238 qla_trim_buf(qp, qp->buf_pool.num_alloc); in __qla_adjust_buf()
1249 clear_bit(dsc->tag, qp->buf_pool.buf_map); in qla_put_buf()
1250 qp->buf_pool.num_active--; in qla_put_buf()
1253 if (qp->buf_pool.take_snapshot) in qla_put_buf()
1280 if (!qp->buf_pool.num_alloc) in qla_adjust_buf()
1283 if (qp->buf_pool.take_snapshot) { in qla_adjust_buf()
1289 qp->buf_pool.take_snapshot = 1; in qla_adjust_buf()