From owner-svn-src-head@FreeBSD.ORG Fri Apr 12 17:48:46 2013 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 41AA91AC; Fri, 12 Apr 2013 17:48:46 +0000 (UTC) (envelope-from jimharris@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 324A61463; Fri, 12 Apr 2013 17:48:46 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.6/8.14.6) with ESMTP id r3CHmkZc093207; Fri, 12 Apr 2013 17:48:46 GMT (envelope-from jimharris@svn.freebsd.org) Received: (from jimharris@localhost) by svn.freebsd.org (8.14.6/8.14.5/Submit) id r3CHmjNS093198; Fri, 12 Apr 2013 17:48:45 GMT (envelope-from jimharris@svn.freebsd.org) Message-Id: <201304121748.r3CHmjNS093198@svn.freebsd.org> From: Jim Harris Date: Fri, 12 Apr 2013 17:48:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r249420 - in head/sys: dev/nvme modules/nvme X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Apr 2013 17:48:46 -0000 Author: jimharris Date: Fri Apr 12 17:48:45 2013 New Revision: 249420 URL: http://svnweb.freebsd.org/changeset/base/249420 Log: Move the busdma mapping functions to nvme_qpair.c. This removes nvme_uio.c completely. Sponsored by: Intel Deleted: head/sys/dev/nvme/nvme_uio.c Modified: head/sys/dev/nvme/nvme.c head/sys/dev/nvme/nvme_private.h head/sys/dev/nvme/nvme_qpair.c head/sys/modules/nvme/Makefile Modified: head/sys/dev/nvme/nvme.c ============================================================================== --- head/sys/dev/nvme/nvme.c Fri Apr 12 17:44:55 2013 (r249419) +++ head/sys/dev/nvme/nvme.c Fri Apr 12 17:48:45 2013 (r249420) @@ -229,43 +229,6 @@ nvme_dump_completion(struct nvme_complet cpl->status.m, cpl->status.dnr); } -void -nvme_payload_map(void *arg, bus_dma_segment_t *seg, int nseg, int error) -{ - struct nvme_tracker *tr = arg; - uint32_t cur_nseg; - - /* - * If the mapping operation failed, return immediately. The caller - * is responsible for detecting the error status and failing the - * tracker manually. - */ - if (error != 0) - return; - - /* - * Note that we specified PAGE_SIZE for alignment and max - * segment size when creating the bus dma tags. So here - * we can safely just transfer each segment to its - * associated PRP entry. - */ - tr->req->cmd.prp1 = seg[0].ds_addr; - - if (nseg == 2) { - tr->req->cmd.prp2 = seg[1].ds_addr; - } else if (nseg > 2) { - cur_nseg = 1; - tr->req->cmd.prp2 = (uint64_t)tr->prp_bus_addr; - while (cur_nseg < nseg) { - tr->prp[cur_nseg-1] = - (uint64_t)seg[cur_nseg].ds_addr; - cur_nseg++; - } - } - - nvme_qpair_submit_tracker(tr->qpair, tr); -} - static int nvme_attach(device_t dev) { Modified: head/sys/dev/nvme/nvme_private.h ============================================================================== --- head/sys/dev/nvme/nvme_private.h Fri Apr 12 17:44:55 2013 (r249419) +++ head/sys/dev/nvme/nvme_private.h Fri Apr 12 17:48:45 2013 (r249420) @@ -429,10 +429,6 @@ void nvme_ctrlr_cmd_set_async_event_conf void nvme_ctrlr_cmd_abort(struct nvme_controller *ctrlr, uint16_t cid, uint16_t sqid, nvme_cb_fn_t cb_fn, void *cb_arg); -void nvme_payload_map(void *arg, bus_dma_segment_t *seg, int nseg, - int error); -void nvme_payload_map_uio(void *arg, bus_dma_segment_t *seg, int nseg, - bus_size_t mapsize, int error); void nvme_completion_poll_cb(void *arg, const struct nvme_completion *cpl); int nvme_ctrlr_construct(struct nvme_controller *ctrlr, device_t dev); Modified: head/sys/dev/nvme/nvme_qpair.c ============================================================================== --- head/sys/dev/nvme/nvme_qpair.c Fri Apr 12 17:44:55 2013 (r249419) +++ head/sys/dev/nvme/nvme_qpair.c Fri Apr 12 17:48:45 2013 (r249420) @@ -699,6 +699,51 @@ nvme_qpair_submit_tracker(struct nvme_qp } static void +nvme_payload_map(void *arg, bus_dma_segment_t *seg, int nseg, int error) +{ + struct nvme_tracker *tr = arg; + uint32_t cur_nseg; + + /* + * If the mapping operation failed, return immediately. The caller + * is responsible for detecting the error status and failing the + * tracker manually. + */ + if (error != 0) + return; + + /* + * Note that we specified PAGE_SIZE for alignment and max + * segment size when creating the bus dma tags. So here + * we can safely just transfer each segment to its + * associated PRP entry. + */ + tr->req->cmd.prp1 = seg[0].ds_addr; + + if (nseg == 2) { + tr->req->cmd.prp2 = seg[1].ds_addr; + } else if (nseg > 2) { + cur_nseg = 1; + tr->req->cmd.prp2 = (uint64_t)tr->prp_bus_addr; + while (cur_nseg < nseg) { + tr->prp[cur_nseg-1] = + (uint64_t)seg[cur_nseg].ds_addr; + cur_nseg++; + } + } + + nvme_qpair_submit_tracker(tr->qpair, tr); +} + +static void +nvme_payload_map_uio(void *arg, bus_dma_segment_t *seg, int nseg, + bus_size_t mapsize, int error) +{ + + nvme_payload_map(arg, seg, nseg, error); +} + +static void _nvme_qpair_submit_request(struct nvme_qpair *qpair, struct nvme_request *req) { struct nvme_tracker *tr; Modified: head/sys/modules/nvme/Makefile ============================================================================== --- head/sys/modules/nvme/Makefile Fri Apr 12 17:44:55 2013 (r249419) +++ head/sys/modules/nvme/Makefile Fri Apr 12 17:48:45 2013 (r249420) @@ -12,7 +12,6 @@ SRCS = nvme.c \ nvme_qpair.c \ nvme_sysctl.c \ nvme_test.c \ - nvme_uio.c \ \ bus_if.h \ device_if.h \