void zfcp_qdio_destroy(struct zfcp_qdio *qdio) { if (!qdio) return; if (qdio->adapter->ccw_device) qdio_free(qdio->adapter->ccw_device); qdio_free_buffers(qdio->req_q, QDIO_MAX_BUFFERS_PER_Q); qdio_free_buffers(qdio->res_q, QDIO_MAX_BUFFERS_PER_Q); kfree(qdio); }
/** * zfcp_qdio_free - free memory used by request- and resposne queue * @adapter: pointer to the zfcp_adapter structure */ void zfcp_qdio_free(struct zfcp_adapter *adapter) { struct qdio_buffer **sbal_req, **sbal_resp; int p; if (adapter->ccw_device) qdio_free(adapter->ccw_device); sbal_req = adapter->req_q.sbal; sbal_resp = adapter->resp_q.sbal; for (p = 0; p < QDIO_MAX_BUFFERS_PER_Q; p += QBUFF_PER_PAGE) { free_page((unsigned long) sbal_req[p]); free_page((unsigned long) sbal_resp[p]); } }
void zfcp_qdio_destroy(struct zfcp_qdio *qdio) { int p; if (!qdio) return; if (qdio->adapter->ccw_device) qdio_free(qdio->adapter->ccw_device); for (p = 0; p < QDIO_MAX_BUFFERS_PER_Q; p += QBUFF_PER_PAGE) { free_page((unsigned long) qdio->req_q[p]); free_page((unsigned long) qdio->res_q[p]); } kfree(qdio); }
void zfcp_qdio_destroy(struct zfcp_qdio *qdio) { struct qdio_buffer **sbal_req, **sbal_resp; int p; if (!qdio) return; if (qdio->adapter->ccw_device) qdio_free(qdio->adapter->ccw_device); sbal_req = qdio->req_q.sbal; sbal_resp = qdio->resp_q.sbal; for (p = 0; p < QDIO_MAX_BUFFERS_PER_Q; p += QBUFF_PER_PAGE) { free_page((unsigned long) sbal_req[p]); free_page((unsigned long) sbal_resp[p]); } kfree(qdio); }