diff options
author | jimharris <jimharris@FreeBSD.org> | 2013-03-26 22:13:07 +0000 |
---|---|---|
committer | jimharris <jimharris@FreeBSD.org> | 2013-03-26 22:13:07 +0000 |
commit | 8f8689b1b6afaa3b4a9d7677dafa88ba92b74982 (patch) | |
tree | cc98861871a5833a0fbeda68f58ccbd1173ddb26 /sys/dev/nvme/nvme_private.h | |
parent | 61a3cd77ccaa7474a0fa5821a55ad89fa7cea58d (diff) | |
download | FreeBSD-src-8f8689b1b6afaa3b4a9d7677dafa88ba92b74982.zip FreeBSD-src-8f8689b1b6afaa3b4a9d7677dafa88ba92b74982.tar.gz |
Move common code from the different nvme_allocate_request functions into a
separate function.
Sponsored by: Intel
Suggested by: carl
Reviewed by: carl
Diffstat (limited to 'sys/dev/nvme/nvme_private.h')
-rw-r--r-- | sys/dev/nvme/nvme_private.h | 39 |
1 files changed, 21 insertions, 18 deletions
diff --git a/sys/dev/nvme/nvme_private.h b/sys/dev/nvme/nvme_private.h index 8a43f26..6a98599 100644 --- a/sys/dev/nvme/nvme_private.h +++ b/sys/dev/nvme/nvme_private.h @@ -464,21 +464,30 @@ nvme_single_map(void *arg, bus_dma_segment_t *seg, int nseg, int error) } static __inline struct nvme_request * -nvme_allocate_request(void *payload, uint32_t payload_size, nvme_cb_fn_t cb_fn, - void *cb_arg) +_nvme_allocate_request(nvme_cb_fn_t cb_fn, void *cb_arg) { struct nvme_request *req; req = uma_zalloc(nvme_request_zone, M_NOWAIT | M_ZERO); - if (req == NULL) - return (NULL); + if (req != NULL) { + req->cb_fn = cb_fn; + req->cb_arg = cb_arg; + req->timeout = TRUE; + } + return (req); +} - req->payload = payload; - req->payload_size = payload_size; - req->cb_fn = cb_fn; - req->cb_arg = cb_arg; - req->timeout = TRUE; +static __inline struct nvme_request * +nvme_allocate_request(void *payload, uint32_t payload_size, nvme_cb_fn_t cb_fn, + void *cb_arg) +{ + struct nvme_request *req; + req = _nvme_allocate_request(cb_fn, cb_arg); + if (req != NULL) { + req->payload = payload; + req->payload_size = payload_size; + } return (req); } @@ -487,15 +496,9 @@ nvme_allocate_request_uio(struct uio *uio, nvme_cb_fn_t cb_fn, void *cb_arg) { struct nvme_request *req; - req = uma_zalloc(nvme_request_zone, M_NOWAIT | M_ZERO); - if (req == NULL) - return (NULL); - - req->uio = uio; - req->cb_fn = cb_fn; - req->cb_arg = cb_arg; - req->timeout = TRUE; - + req = _nvme_allocate_request(cb_fn, cb_arg); + if (req != NULL) + req->uio = uio; return (req); } |