diff options
author | Insu Yun <wuninsu@gmail.com> | 2015-12-29 17:20:11 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2016-01-04 17:18:42 -0500 |
commit | 3934aa4c1f7f4ccdff25f530b0e37d776ac453e2 (patch) | |
tree | 6089a510198e507a9b378683a9715e6c94e05fa9 | |
parent | b77357b69225a8e68d222451911feab50f2c6652 (diff) |
cxgb4: correctly handling failed allocation
Since t4_alloc_mem can be failed in memory pressure,
if not properly handled, NULL dereference could be happened.
Signed-off-by: Insu Yun <wuninsu@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | drivers/net/ethernet/chelsio/cxgb4/clip_tbl.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/net/ethernet/chelsio/cxgb4/clip_tbl.c b/drivers/net/ethernet/chelsio/cxgb4/clip_tbl.c index c308429dd9c7..11dd91e4db56 100644 --- a/drivers/net/ethernet/chelsio/cxgb4/clip_tbl.c +++ b/drivers/net/ethernet/chelsio/cxgb4/clip_tbl.c | |||
@@ -295,6 +295,10 @@ struct clip_tbl *t4_init_clip_tbl(unsigned int clipt_start, | |||
295 | INIT_LIST_HEAD(&ctbl->hash_list[i]); | 295 | INIT_LIST_HEAD(&ctbl->hash_list[i]); |
296 | 296 | ||
297 | cl_list = t4_alloc_mem(clipt_size*sizeof(struct clip_entry)); | 297 | cl_list = t4_alloc_mem(clipt_size*sizeof(struct clip_entry)); |
298 | if (!cl_list) { | ||
299 | t4_free_mem(ctbl); | ||
300 | return NULL; | ||
301 | } | ||
298 | ctbl->cl_list = (void *)cl_list; | 302 | ctbl->cl_list = (void *)cl_list; |
299 | 303 | ||
300 | for (i = 0; i < clipt_size; i++) { | 304 | for (i = 0; i < clipt_size; i++) { |