Deleted Added
full compact
nvme_qpair.c (248780) nvme_qpair.c (248913)
1/*-
2 * Copyright (C) 2012 Intel Corporation
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 11 unchanged lines hidden (view full) ---

20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24 * SUCH DAMAGE.
25 */
26
27#include <sys/cdefs.h>
1/*-
2 * Copyright (C) 2012 Intel Corporation
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 11 unchanged lines hidden (view full) ---

20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24 * SUCH DAMAGE.
25 */
26
27#include <sys/cdefs.h>
28__FBSDID("$FreeBSD: head/sys/dev/nvme/nvme_qpair.c 248780 2013-03-27 00:37:00Z jimharris $");
28__FBSDID("$FreeBSD: head/sys/dev/nvme/nvme_qpair.c 248913 2013-03-29 20:34:28Z jimharris $");
29
30#include <sys/param.h>
31#include <sys/bus.h>
32
33#include <dev/pci/pcivar.h>
34
35#include "nvme_private.h"
36

--- 294 unchanged lines hidden (view full) ---

331
332 mtx_lock(&qpair->lock);
333 callout_stop(&tr->timer);
334
335 if (retry) {
336 req->retries++;
337 nvme_qpair_submit_tracker(qpair, tr);
338 } else {
29
30#include <sys/param.h>
31#include <sys/bus.h>
32
33#include <dev/pci/pcivar.h>
34
35#include "nvme_private.h"
36

--- 294 unchanged lines hidden (view full) ---

331
332 mtx_lock(&qpair->lock);
333 callout_stop(&tr->timer);
334
335 if (retry) {
336 req->retries++;
337 nvme_qpair_submit_tracker(qpair, tr);
338 } else {
339 if (req->payload_size > 0 || req->uio != NULL)
339 if (req->type != NVME_REQUEST_NULL)
340 bus_dmamap_unload(qpair->dma_tag,
341 tr->payload_dma_map);
342
343 nvme_free_request(req);
344 tr->req = NULL;
345
346 TAILQ_REMOVE(&qpair->outstanding_tr, tr, tailq);
347 TAILQ_INSERT_HEAD(&qpair->free_tr, tr, tailq);

--- 387 unchanged lines hidden (view full) ---

735 }
736 return;
737 }
738
739 TAILQ_REMOVE(&qpair->free_tr, tr, tailq);
740 TAILQ_INSERT_TAIL(&qpair->outstanding_tr, tr, tailq);
741 tr->req = req;
742
340 bus_dmamap_unload(qpair->dma_tag,
341 tr->payload_dma_map);
342
343 nvme_free_request(req);
344 tr->req = NULL;
345
346 TAILQ_REMOVE(&qpair->outstanding_tr, tr, tailq);
347 TAILQ_INSERT_HEAD(&qpair->free_tr, tr, tailq);

--- 387 unchanged lines hidden (view full) ---

735 }
736 return;
737 }
738
739 TAILQ_REMOVE(&qpair->free_tr, tr, tailq);
740 TAILQ_INSERT_TAIL(&qpair->outstanding_tr, tr, tailq);
741 tr->req = req;
742
743 if (req->uio == NULL) {
744 if (req->payload_size > 0) {
745 err = bus_dmamap_load(tr->qpair->dma_tag,
746 tr->payload_dma_map, req->payload,
747 req->payload_size,
748 nvme_payload_map, tr, 0);
749 if (err != 0)
750 panic("bus_dmamap_load returned non-zero!\n");
751 } else
752 nvme_qpair_submit_tracker(tr->qpair, tr);
753 } else {
754 err = bus_dmamap_load_uio(tr->qpair->dma_tag,
755 tr->payload_dma_map, req->uio,
756 nvme_payload_map_uio, tr, 0);
743 switch (req->type) {
744 case NVME_REQUEST_VADDR:
745 err = bus_dmamap_load(tr->qpair->dma_tag, tr->payload_dma_map,
746 req->u.payload, req->payload_size, nvme_payload_map, tr, 0);
757 if (err != 0)
758 panic("bus_dmamap_load returned non-zero!\n");
747 if (err != 0)
748 panic("bus_dmamap_load returned non-zero!\n");
749 break;
750 case NVME_REQUEST_NULL:
751 nvme_qpair_submit_tracker(tr->qpair, tr);
752 break;
753 case NVME_REQUEST_UIO:
754 err = bus_dmamap_load_uio(tr->qpair->dma_tag,
755 tr->payload_dma_map, req->u.uio, nvme_payload_map_uio,
756 tr, 0);
757 if (err != 0)
758 panic("bus_dmamap_load_uio returned non-zero!\n");
759 break;
760 default:
761 panic("unknown nvme request type 0x%x\n", req->type);
762 break;
759 }
760}
761
762void
763nvme_qpair_submit_request(struct nvme_qpair *qpair, struct nvme_request *req)
764{
765
766 mtx_lock(&qpair->lock);

--- 153 unchanged lines hidden ---
763 }
764}
765
766void
767nvme_qpair_submit_request(struct nvme_qpair *qpair, struct nvme_request *req)
768{
769
770 mtx_lock(&qpair->lock);

--- 153 unchanged lines hidden ---