···104104 * RETURNS: An appropriate -ERRNO error value on error, or zero for success.105105 */106106int ntb_register_event_callback(struct ntb_device *ndev,107107- void (*func)(void *handle, unsigned int event))107107+ void (*func)(void *handle, enum ntb_hw_event event))108108{109109 if (ndev->event_cb)110110 return -EINVAL;···343343 *344344 * RETURNS: pointer to virtual address, or NULL on error.345345 */346346-void *ntb_get_mw_vbase(struct ntb_device *ndev, unsigned int mw)346346+void __iomem *ntb_get_mw_vbase(struct ntb_device *ndev, unsigned int mw)347347{348348 if (mw > NTB_NUM_MW)349349 return NULL;
+2-2
drivers/ntb/ntb_hw.h
···165165void ntb_unregister_db_callback(struct ntb_device *ndev, unsigned int idx);166166int ntb_register_event_callback(struct ntb_device *ndev,167167 void (*event_cb_func) (void *handle,168168- unsigned int event));168168+ enum ntb_hw_event event));169169void ntb_unregister_event_callback(struct ntb_device *ndev);170170int ntb_get_max_spads(struct ntb_device *ndev);171171int ntb_write_local_spad(struct ntb_device *ndev, unsigned int idx, u32 val);172172int ntb_read_local_spad(struct ntb_device *ndev, unsigned int idx, u32 *val);173173int ntb_write_remote_spad(struct ntb_device *ndev, unsigned int idx, u32 val);174174int ntb_read_remote_spad(struct ntb_device *ndev, unsigned int idx, u32 *val);175175-void *ntb_get_mw_vbase(struct ntb_device *ndev, unsigned int mw);175175+void __iomem *ntb_get_mw_vbase(struct ntb_device *ndev, unsigned int mw);176176resource_size_t ntb_get_mw_size(struct ntb_device *ndev, unsigned int mw);177177void ntb_ring_sdb(struct ntb_device *ndev, unsigned int idx);178178void *ntb_find_transport(struct pci_dev *pdev);
+16-16
drivers/ntb/ntb_transport.c
···5858#include <linux/ntb.h>5959#include "ntb_hw.h"60606161-#define NTB_TRANSPORT_VERSION 16161+#define NTB_TRANSPORT_VERSION 262626363static unsigned int transport_mtu = 0x401E;6464module_param(transport_mtu, uint, 0644);···9191 bool qp_link;9292 u8 qp_num; /* Only 64 QP's are allowed. 0-63 */93939494- struct ntb_rx_info *rx_info;9494+ struct ntb_rx_info __iomem *rx_info;9595 struct ntb_rx_info *remote_rx_info;96969797 void (*tx_handler) (struct ntb_transport_qp *qp, void *qp_data,9898 void *data, int len);9999 struct list_head tx_free_q;100100 spinlock_t ntb_tx_free_q_lock;101101- void *tx_mw;101101+ void __iomem *tx_mw;102102 unsigned int tx_index;103103 unsigned int tx_max_entry;104104 unsigned int tx_max_frame;···166166};167167168168struct ntb_payload_header {169169- u64 ver;169169+ unsigned int ver;170170 unsigned int len;171171 unsigned int flags;172172};···474474 u8 mw_num = QP_TO_MW(qp_num);475475 unsigned int i;476476477477- WARN_ON(nt->mw[mw_num].virt_addr == 0);477477+ WARN_ON(nt->mw[mw_num].virt_addr == NULL);478478479479 if (nt->max_qps % NTB_NUM_MW && mw_num < nt->max_qps % NTB_NUM_MW)480480 num_qps_mw = nt->max_qps / NTB_NUM_MW + 1;···933933 entry = ntb_list_rm(&qp->ntb_rx_pend_q_lock, &qp->rx_pend_q);934934 if (!entry) {935935 dev_dbg(&ntb_query_pdev(qp->ndev)->dev,936936- "no buffer - HDR ver %llu, len %d, flags %x\n",936936+ "no buffer - HDR ver %u, len %d, flags %x\n",937937 hdr->ver, hdr->len, hdr->flags);938938 qp->rx_err_no_buf++;939939 return -ENOMEM;···946946 return -EAGAIN;947947 }948948949949- if (hdr->ver != qp->rx_pkts) {949949+ if (hdr->ver != (u32) qp->rx_pkts) {950950 dev_dbg(&ntb_query_pdev(qp->ndev)->dev,951951- "qp %d: version mismatch, expected %llu - got %llu\n",951951+ "qp %d: version mismatch, expected %llu - got %u\n",952952 qp->qp_num, qp->rx_pkts, hdr->ver);953953 ntb_list_add(&qp->ntb_rx_pend_q_lock, &entry->entry,954954 &qp->rx_pend_q);···965965 }966966967967 dev_dbg(&ntb_query_pdev(qp->ndev)->dev,968968- "rx offset %u, ver %llu - %d payload received, buf size %d\n",968968+ "rx offset %u, ver %u - %d payload received, buf size %d\n",969969 qp->rx_index, hdr->ver, hdr->len, entry->len);970970971971 if (hdr->len <= entry->len) {···988988 /* Ensure that the data is fully copied out before clearing the flag */989989 wmb();990990 hdr->flags = 0;991991- qp->rx_info->entry = qp->rx_index;991991+ iowrite32(qp->rx_index, &qp->rx_info->entry);992992993993 qp->rx_index++;994994 qp->rx_index %= qp->rx_max_entry;···1018101810191019static void ntb_tx_copy_task(struct ntb_transport_qp *qp,10201020 struct ntb_queue_entry *entry,10211021- void *offset)10211021+ void __iomem *offset)10221022{10231023- struct ntb_payload_header *hdr;10231023+ struct ntb_payload_header __iomem *hdr;1024102410251025 memcpy_toio(offset, entry->buf, entry->len);1026102610271027 hdr = offset + qp->tx_max_frame - sizeof(struct ntb_payload_header);10281028- hdr->len = entry->len;10291029- hdr->ver = qp->tx_pkts;10281028+ iowrite32(entry->len, &hdr->len);10291029+ iowrite32((u32) qp->tx_pkts, &hdr->ver);1030103010311031 /* Ensure that the data is fully copied out before setting the flag */10321032 wmb();10331033- hdr->flags = entry->flags | DESC_DONE_FLAG;10331033+ iowrite32(entry->flags | DESC_DONE_FLAG, &hdr->flags);1034103410351035 ntb_ring_sdb(qp->ndev, qp->qp_num);10361036···10521052static int ntb_process_tx(struct ntb_transport_qp *qp,10531053 struct ntb_queue_entry *entry)10541054{10551055- void *offset;10551055+ void __iomem *offset;1056105610571057 offset = qp->tx_mw + qp->tx_max_frame * qp->tx_index;10581058