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);
 }
 
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to