IB/hfi1: Remove duplicate definitions of num_user_pages() function
num_user_pages() function has been defined in both user_exp_rcv.c file and user_sdma.c file. Move the function definition to a header file so there is only one definition in the source repo. Reviewed-by: Dennis Dalessandro <dennis.dalessandro@intel.com> Signed-off-by: Harish Chegondi <harish.chegondi@intel.com> Signed-off-by: Dennis Dalessandro <dennis.dalessandro@intel.com> Signed-off-by: Doug Ledford <dledford@redhat.com>
This commit is contained in:
parent
04a646df12
commit
ddd3affb50
|
@ -67,11 +67,6 @@ struct tid_pageset {
|
|||
u16 count;
|
||||
};
|
||||
|
||||
#define num_user_pages(vaddr, len) \
|
||||
(1 + (((((unsigned long)(vaddr) + \
|
||||
(unsigned long)(len) - 1) & PAGE_MASK) - \
|
||||
((unsigned long)vaddr & PAGE_MASK)) >> PAGE_SHIFT))
|
||||
|
||||
static void unlock_exp_tids(struct hfi1_ctxtdata *uctxt,
|
||||
struct exp_tid_set *set,
|
||||
struct hfi1_filedata *fd);
|
||||
|
|
|
@ -60,6 +60,15 @@ struct tid_user_buf {
|
|||
unsigned int n_psets;
|
||||
};
|
||||
|
||||
static inline int num_user_pages(unsigned long addr,
|
||||
unsigned long len)
|
||||
{
|
||||
const unsigned long spage = addr & PAGE_MASK;
|
||||
const unsigned long epage = (addr + len - 1) & PAGE_MASK;
|
||||
|
||||
return 1 + ((epage - spage) >> PAGE_SHIFT);
|
||||
}
|
||||
|
||||
int hfi1_user_exp_rcv_init(struct hfi1_filedata *fd,
|
||||
struct hfi1_ctxtdata *uctxt);
|
||||
void hfi1_user_exp_rcv_free(struct hfi1_filedata *fd);
|
||||
|
|
|
@ -246,7 +246,6 @@ struct user_sdma_txreq {
|
|||
|
||||
static int user_sdma_send_pkts(struct user_sdma_request *req,
|
||||
unsigned maxpkts);
|
||||
static int num_user_pages(const struct iovec *iov);
|
||||
static void user_sdma_txreq_cb(struct sdma_txreq *txreq, int status);
|
||||
static inline void pq_update(struct hfi1_user_sdma_pkt_q *pq);
|
||||
static void user_sdma_free_request(struct user_sdma_request *req, bool unpin);
|
||||
|
@ -1101,19 +1100,6 @@ free_tx:
|
|||
return ret;
|
||||
}
|
||||
|
||||
/*
|
||||
* How many pages in this iovec element?
|
||||
*/
|
||||
static inline int num_user_pages(const struct iovec *iov)
|
||||
{
|
||||
const unsigned long addr = (unsigned long)iov->iov_base;
|
||||
const unsigned long len = iov->iov_len;
|
||||
const unsigned long spage = addr & PAGE_MASK;
|
||||
const unsigned long epage = (addr + len - 1) & PAGE_MASK;
|
||||
|
||||
return 1 + ((epage - spage) >> PAGE_SHIFT);
|
||||
}
|
||||
|
||||
static u32 sdma_cache_evict(struct hfi1_user_sdma_pkt_q *pq, u32 npages)
|
||||
{
|
||||
struct evict_data evict_data;
|
||||
|
@ -1182,6 +1168,7 @@ static int pin_vector_pages(struct user_sdma_request *req,
|
|||
struct hfi1_user_sdma_pkt_q *pq = req->pq;
|
||||
struct sdma_mmu_node *node = NULL;
|
||||
struct mmu_rb_node *rb_node;
|
||||
struct iovec *iov;
|
||||
bool extracted;
|
||||
|
||||
extracted =
|
||||
|
@ -1210,7 +1197,8 @@ static int pin_vector_pages(struct user_sdma_request *req,
|
|||
atomic_set(&node->refcount, 0);
|
||||
}
|
||||
|
||||
npages = num_user_pages(&iovec->iov);
|
||||
iov = &iovec->iov;
|
||||
npages = num_user_pages((unsigned long)iov->iov_base, iov->iov_len);
|
||||
if (node->npages < npages) {
|
||||
pinned = pin_sdma_pages(req, iovec, node, npages);
|
||||
if (pinned < 0) {
|
||||
|
|
Loading…
Reference in New Issue