svn commit: r248771 - head/sys/dev/nvme
Jim Harris
jimharris at FreeBSD.org
Tue Mar 26 22:13:07 UTC 2013
Author: jimharris
Date: Tue Mar 26 22:13:07 2013
New Revision: 248771
URL: http://svnweb.freebsd.org/changeset/base/248771
Log:
Move common code from the different nvme_allocate_request functions into a
separate function.
Sponsored by: Intel
Suggested by: carl
Reviewed by: carl
Modified:
head/sys/dev/nvme/nvme_private.h
Modified: head/sys/dev/nvme/nvme_private.h
==============================================================================
--- head/sys/dev/nvme/nvme_private.h Tue Mar 26 22:11:34 2013 (r248770)
+++ head/sys/dev/nvme/nvme_private.h Tue Mar 26 22:13:07 2013 (r248771)
@@ -464,21 +464,30 @@ nvme_single_map(void *arg, bus_dma_segme
}
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 *ui
{
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);
}
More information about the svn-src-head
mailing list