forked from luck/tmp_suning_uos_patched
rds: rds_ib_recv_alloc_cache() should call alloc_percpu_gfp() instead
Currently, rds_ib_conn_alloc() calls rds_ib_recv_alloc_caches() without passing along the gfp_t flag. But rds_ib_recv_alloc_caches() and rds_ib_recv_alloc_cache() should take a gfp_t parameter so that rds_ib_recv_alloc_cache() can call alloc_percpu_gfp() using the correct flag instead of calling alloc_percpu(). Signed-off-by: Ka-Cheong Poon <ka-cheong.poon@oracle.com> Acked-by: Santosh Shilimkar <santosh.shilimkar@oracle.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
fea49f60c9
commit
f394ad28fe
|
@ -400,7 +400,7 @@ void rds_ib_mr_cqe_handler(struct rds_ib_connection *ic, struct ib_wc *wc);
|
|||
int rds_ib_recv_init(void);
|
||||
void rds_ib_recv_exit(void);
|
||||
int rds_ib_recv_path(struct rds_conn_path *conn);
|
||||
int rds_ib_recv_alloc_caches(struct rds_ib_connection *ic);
|
||||
int rds_ib_recv_alloc_caches(struct rds_ib_connection *ic, gfp_t gfp);
|
||||
void rds_ib_recv_free_caches(struct rds_ib_connection *ic);
|
||||
void rds_ib_recv_refill(struct rds_connection *conn, int prefill, gfp_t gfp);
|
||||
void rds_ib_inc_free(struct rds_incoming *inc);
|
||||
|
|
|
@ -1102,7 +1102,7 @@ int rds_ib_conn_alloc(struct rds_connection *conn, gfp_t gfp)
|
|||
if (!ic)
|
||||
return -ENOMEM;
|
||||
|
||||
ret = rds_ib_recv_alloc_caches(ic);
|
||||
ret = rds_ib_recv_alloc_caches(ic, gfp);
|
||||
if (ret) {
|
||||
kfree(ic);
|
||||
return ret;
|
||||
|
|
|
@ -98,12 +98,12 @@ static void rds_ib_cache_xfer_to_ready(struct rds_ib_refill_cache *cache)
|
|||
}
|
||||
}
|
||||
|
||||
static int rds_ib_recv_alloc_cache(struct rds_ib_refill_cache *cache)
|
||||
static int rds_ib_recv_alloc_cache(struct rds_ib_refill_cache *cache, gfp_t gfp)
|
||||
{
|
||||
struct rds_ib_cache_head *head;
|
||||
int cpu;
|
||||
|
||||
cache->percpu = alloc_percpu(struct rds_ib_cache_head);
|
||||
cache->percpu = alloc_percpu_gfp(struct rds_ib_cache_head, gfp);
|
||||
if (!cache->percpu)
|
||||
return -ENOMEM;
|
||||
|
||||
|
@ -118,13 +118,13 @@ static int rds_ib_recv_alloc_cache(struct rds_ib_refill_cache *cache)
|
|||
return 0;
|
||||
}
|
||||
|
||||
int rds_ib_recv_alloc_caches(struct rds_ib_connection *ic)
|
||||
int rds_ib_recv_alloc_caches(struct rds_ib_connection *ic, gfp_t gfp)
|
||||
{
|
||||
int ret;
|
||||
|
||||
ret = rds_ib_recv_alloc_cache(&ic->i_cache_incs);
|
||||
ret = rds_ib_recv_alloc_cache(&ic->i_cache_incs, gfp);
|
||||
if (!ret) {
|
||||
ret = rds_ib_recv_alloc_cache(&ic->i_cache_frags);
|
||||
ret = rds_ib_recv_alloc_cache(&ic->i_cache_frags, gfp);
|
||||
if (ret)
|
||||
free_percpu(ic->i_cache_incs.percpu);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user