| From e71ea63c5d5b821dc86720de2dcf9664fcac9241 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Wed, 29 Jul 2020 17:19:18 -0700 |
| Subject: ice: Graceful error handling in HW table calloc failure |
| |
| From: Surabhi Boob <surabhi.boob@intel.com> |
| |
| [ Upstream commit bcc46cb8a077c6189b44f1555b8659837f748eb2 ] |
| |
| In the ice_init_hw_tbls, if the devm_kcalloc for es->written fails, catch |
| that error and bail out gracefully, instead of continuing with a NULL |
| pointer. |
| |
| Fixes: 32d63fa1e9f3 ("ice: Initialize DDP package structures") |
| Signed-off-by: Surabhi Boob <surabhi.boob@intel.com> |
| Tested-by: Andrew Bowers <andrewx.bowers@intel.com> |
| Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/net/ethernet/intel/ice/ice_flex_pipe.c | 4 +++- |
| 1 file changed, 3 insertions(+), 1 deletion(-) |
| |
| diff --git a/drivers/net/ethernet/intel/ice/ice_flex_pipe.c b/drivers/net/ethernet/intel/ice/ice_flex_pipe.c |
| index d60e31f65749f..a9a89bdb6036a 100644 |
| --- a/drivers/net/ethernet/intel/ice/ice_flex_pipe.c |
| +++ b/drivers/net/ethernet/intel/ice/ice_flex_pipe.c |
| @@ -2521,10 +2521,12 @@ enum ice_status ice_init_hw_tbls(struct ice_hw *hw) |
| es->ref_count = devm_kcalloc(ice_hw_to_dev(hw), es->count, |
| sizeof(*es->ref_count), |
| GFP_KERNEL); |
| + if (!es->ref_count) |
| + goto err; |
| |
| es->written = devm_kcalloc(ice_hw_to_dev(hw), es->count, |
| sizeof(*es->written), GFP_KERNEL); |
| - if (!es->ref_count) |
| + if (!es->written) |
| goto err; |
| } |
| return 0; |
| -- |
| 2.25.1 |
| |