Print this page
NEX-5733 cleanup qlt/qlc
Reviewed by: Yuri Pankov <yuri.pankov@nexenta.com>
Reviewed by: Alek Pinchuk <alek.pinchuk@nexenta.com>
NEX-5717 import QLogic 16G FC drivers
Reviewed by: Steve Peng <steve.peng@nexenta.com>
Reviewed by: Josef 'Jeff' Sipek <josef.sipek@nexenta.com>
Reviewed by: Yuri Pankov <yuri.pankov@nexenta.com>
*** 18,33 ****
*
* CDDL HEADER END
*/
/*
! * Copyright 2009 QLogic Corporation. All rights reserved.
* Use is subject to license terms.
*/
/*
! * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
*/
#include <sys/conf.h>
#include <sys/ddi.h>
#include <sys/sunddi.h>
--- 18,33 ----
*
* CDDL HEADER END
*/
/*
! * Copyright 2009-2015 QLogic Corporation. All rights reserved.
* Use is subject to license terms.
*/
/*
! * Copyright (c) 2008, 2015, Oracle and/or its affiliates. All rights reserved.
*/
#include <sys/conf.h>
#include <sys/ddi.h>
#include <sys/sunddi.h>
*** 212,223 ****
p = qlt->dmem_buckets[ndx];
bctl = p->dmem_bctl_free_list;
goto dmem_failure_loop;
}
kmem_free(qlt->dmem_buckets, sizeof (dmem_buckets) +
! ((sizeof (dmem_buckets)/sizeof (void *))
! *sizeof (qlt_dmem_bucket_t)));
qlt->dmem_buckets = NULL;
return (QLT_FAILURE);
}
--- 212,223 ----
p = qlt->dmem_buckets[ndx];
bctl = p->dmem_bctl_free_list;
goto dmem_failure_loop;
}
kmem_free(qlt->dmem_buckets, sizeof (dmem_buckets) +
! (((sizeof (dmem_buckets)/sizeof (void *))-1)*
! sizeof (qlt_dmem_bucket_t)));
qlt->dmem_buckets = NULL;
return (QLT_FAILURE);
}
*** 561,573 ****
--- 561,575 ----
* reused. It may not be bound if there was a bind failure.
*/
if (tmp_handle->num_cookies != 0) {
rv = ddi_dma_unbind_handle(tmp_handle->dma_handle);
ASSERT(rv == DDI_SUCCESS);
+ if (rv == DDI_SUCCESS) {
tmp_handle->num_cookies = 0;
tmp_handle->num_cookies_fetched = 0;
}
+ }
tmp_handle = tmp_handle->next;
handle_count++;
}
/*
* Insert this list into the free list
*** 644,654 ****
* Set this flag to fetch the DDI dma cookies from the handles here and
* store them in the port private area of the dbuf. This will allow
* faster access to the cookies in qlt_xfer_scsi_data() at the expense of
* an extra copy. If the qlt->req_lock is hot, this may help.
*/
! int qlt_sgl_prefetch = 0;
/*ARGSUSED*/
stmf_status_t
qlt_dma_setup_dbuf(fct_local_port_t *port, stmf_data_buf_t *dbuf,
uint32_t flags)
--- 646,656 ----
* Set this flag to fetch the DDI dma cookies from the handles here and
* store them in the port private area of the dbuf. This will allow
* faster access to the cookies in qlt_xfer_scsi_data() at the expense of
* an extra copy. If the qlt->req_lock is hot, this may help.
*/
! uint16_t qlt_sgl_prefetch = 0;
/*ARGSUSED*/
stmf_status_t
qlt_dma_setup_dbuf(fct_local_port_t *port, stmf_data_buf_t *dbuf,
uint32_t flags)
*** 657,668 ****
qlt_dma_sgl_t *qsgl;
struct stmf_sglist_ent *sglp;
qlt_dma_handle_t *handle_list, *th;
int i, rv;
ddi_dma_cookie_t *cookie_p;
! int cookie_count, numbufs;
! int prefetch;
size_t qsize;
/*
* psuedo code:
* get dma handle list from cache - one per sglist entry
--- 659,671 ----
qlt_dma_sgl_t *qsgl;
struct stmf_sglist_ent *sglp;
qlt_dma_handle_t *handle_list, *th;
int i, rv;
ddi_dma_cookie_t *cookie_p;
! int numbufs;
! uint16_t cookie_count;
! uint16_t prefetch;
size_t qsize;
/*
* psuedo code:
* get dma handle list from cache - one per sglist entry