summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcem <cem@FreeBSD.org>2015-11-11 18:54:58 +0000
committercem <cem@FreeBSD.org>2015-11-11 18:54:58 +0000
commit43eab2420657fe1218a7cef4dcef8930cbc9202d (patch)
treee947d314c2e7890758d280b164ddd815c62cbfb6
parent0fbd5a20bf495106460c361230dc0e69ed4a2cc2 (diff)
downloadFreeBSD-src-43eab2420657fe1218a7cef4dcef8930cbc9202d.zip
FreeBSD-src-43eab2420657fe1218a7cef4dcef8930cbc9202d.tar.gz
ntb: Use caddr_t to simplify pointer arithmetic
Sponsored by: EMC / Isilon Storage Division
-rw-r--r--sys/dev/ntb/if_ntb/if_ntb.c21
-rw-r--r--sys/dev/ntb/ntb_hw/ntb_hw.c8
-rw-r--r--sys/dev/ntb/ntb_hw/ntb_hw.h2
3 files changed, 15 insertions, 16 deletions
diff --git a/sys/dev/ntb/if_ntb/if_ntb.c b/sys/dev/ntb/if_ntb/if_ntb.c
index c9ca3b0..89160b2 100644
--- a/sys/dev/ntb/if_ntb/if_ntb.c
+++ b/sys/dev/ntb/if_ntb/if_ntb.c
@@ -143,7 +143,7 @@ struct ntb_transport_qp {
void *data, int len);
struct ntb_queue_list tx_free_q;
struct mtx ntb_tx_free_q_lock;
- void *tx_mw;
+ caddr_t tx_mw;
bus_addr_t tx_mw_phys;
ntb_q_idx_t tx_index;
ntb_q_idx_t tx_max_entry;
@@ -158,7 +158,7 @@ struct ntb_transport_qp {
struct mtx ntb_rx_q_lock;
struct task rx_completion_task;
struct task rxc_db_work;
- void *rx_buff;
+ caddr_t rx_buff;
ntb_q_idx_t rx_index;
ntb_q_idx_t rx_max_entry;
uint64_t rx_max_frame;
@@ -197,11 +197,11 @@ struct ntb_transport_mw {
size_t xlat_align;
size_t xlat_align_size;
/* Tx buff is off vbase / phys_addr */
- void *vbase;
+ caddr_t vbase;
size_t xlat_size;
size_t buff_size;
/* Rx buff is off virt_addr / dma_addr */
- void *virt_addr;
+ caddr_t virt_addr;
bus_addr_t dma_addr;
};
@@ -560,7 +560,7 @@ ntb_transport_init(struct ntb_softc *ntb)
mw->buff_size = 0;
mw->xlat_size = 0;
- mw->virt_addr = 0;
+ mw->virt_addr = NULL;
mw->dma_addr = 0;
}
@@ -665,7 +665,7 @@ ntb_transport_init_queue(struct ntb_transport_ctx *nt, unsigned int qp_num)
tx_size = mw_size / num_qps_mw;
qp_offset = tx_size * qp_num / mw_count;
- qp->tx_mw = (char *)mw->vbase + qp_offset;
+ qp->tx_mw = mw->vbase + qp_offset;
KASSERT(qp->tx_mw != NULL, ("uh oh?"));
/* XXX Assumes that a vm_paddr_t is equivalent to bus_addr_t */
@@ -673,7 +673,7 @@ ntb_transport_init_queue(struct ntb_transport_ctx *nt, unsigned int qp_num)
KASSERT(qp->tx_mw_phys != 0, ("uh oh?"));
tx_size -= sizeof(struct ntb_rx_info);
- qp->rx_info = (void *)((char *)qp->tx_mw + tx_size);
+ qp->rx_info = (void *)(qp->tx_mw + tx_size);
/* Due to house-keeping, there must be at least 2 buffs */
qp->tx_max_frame = qmin(tx_size / 2,
@@ -1356,10 +1356,10 @@ ntb_transport_setup_qp_mw(struct ntb_transport_ctx *nt, unsigned int qp_num)
num_qps_mw = nt->qp_count / mw_count;
rx_size = mw->xlat_size / num_qps_mw;
- qp->rx_buff = (char *)mw->virt_addr + rx_size * qp_num / mw_count;
+ qp->rx_buff = mw->virt_addr + rx_size * qp_num / mw_count;
rx_size -= sizeof(struct ntb_rx_info);
- qp->remote_rx_info = (void*)((char *)qp->rx_buff + rx_size);
+ qp->remote_rx_info = (void*)(qp->rx_buff + rx_size);
/* Due to house-keeping, there must be at least 2 buffs */
qp->rx_max_frame = qmin(rx_size / 2,
@@ -1371,8 +1371,7 @@ ntb_transport_setup_qp_mw(struct ntb_transport_ctx *nt, unsigned int qp_num)
/* Set up the hdr offsets with 0s */
for (i = 0; i < qp->rx_max_entry; i++) {
- offset = (void *)((uint8_t *)qp->rx_buff +
- qp->rx_max_frame * (i + 1) -
+ offset = (void *)(qp->rx_buff + qp->rx_max_frame * (i + 1) -
sizeof(struct ntb_payload_header));
memset(offset, 0, sizeof(struct ntb_payload_header));
}
diff --git a/sys/dev/ntb/ntb_hw/ntb_hw.c b/sys/dev/ntb/ntb_hw/ntb_hw.c
index 480d54b..ca40ae0 100644
--- a/sys/dev/ntb/ntb_hw/ntb_hw.c
+++ b/sys/dev/ntb/ntb_hw/ntb_hw.c
@@ -111,8 +111,8 @@ struct ntb_pci_bar_info {
int pci_resource_id;
struct resource *pci_resource;
vm_paddr_t pbase;
- void *vbase;
- u_long size;
+ caddr_t vbase;
+ vm_size_t size;
/* Configuration register offsets */
uint32_t psz_off;
@@ -2404,7 +2404,7 @@ ntb_peer_spad_read(struct ntb_softc *ntb, unsigned int idx, uint32_t *val)
*/
int
ntb_mw_get_range(struct ntb_softc *ntb, unsigned mw_idx, vm_paddr_t *base,
- void **vbase, size_t *size, size_t *align, size_t *align_size)
+ caddr_t *vbase, size_t *size, size_t *align, size_t *align_size)
{
struct ntb_pci_bar_info *bar;
size_t bar_b2b_off;
@@ -2423,7 +2423,7 @@ ntb_mw_get_range(struct ntb_softc *ntb, unsigned mw_idx, vm_paddr_t *base,
if (base != NULL)
*base = bar->pbase + bar_b2b_off;
if (vbase != NULL)
- *vbase = (char *)bar->vbase + bar_b2b_off;
+ *vbase = bar->vbase + bar_b2b_off;
if (size != NULL)
*size = bar->size - bar_b2b_off;
if (align != NULL)
diff --git a/sys/dev/ntb/ntb_hw/ntb_hw.h b/sys/dev/ntb/ntb_hw/ntb_hw.h
index 4b0b7eb..7ed7e4c 100644
--- a/sys/dev/ntb/ntb_hw/ntb_hw.h
+++ b/sys/dev/ntb/ntb_hw/ntb_hw.h
@@ -77,7 +77,7 @@ void ntb_clear_ctx(struct ntb_softc *);
uint8_t ntb_mw_count(struct ntb_softc *);
int ntb_mw_get_range(struct ntb_softc *, unsigned mw_idx, vm_paddr_t *base,
- void **vbase, size_t *size, size_t *align, size_t *align_size);
+ caddr_t *vbase, size_t *size, size_t *align, size_t *align_size);
int ntb_mw_set_trans(struct ntb_softc *, unsigned mw_idx, bus_addr_t, size_t);
int ntb_mw_clear_trans(struct ntb_softc *, unsigned mw_idx);
OpenPOWER on IntegriCloud