nvme_qpair.c (bdd1fd402cee27832332e893a6b683424fd882d3) | nvme_qpair.c (1e526bc478edf4fbcefa27a1285fa7bb624f3725) |
---|---|
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 --- 322 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 { | 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 --- 322 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 --- |