kcalloc may fails to allocate memory, hence if it is in that case,
We should drop out in time.
Signed-off-by: zhong jiang <[email protected]>
---
drivers/net/ethernet/sfc/efx.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/net/ethernet/sfc/efx.c b/drivers/net/ethernet/sfc/efx.c
index 2fef740..712380a 100644
--- a/drivers/net/ethernet/sfc/efx.c
+++ b/drivers/net/ethernet/sfc/efx.c
@@ -3040,6 +3040,8 @@ static int efx_init_struct(struct efx_nic *efx,
/* Failure to allocate is not fatal, but may degrade ARFS performance */
efx->rps_hash_table = kcalloc(EFX_ARFS_HASH_TABLE_SIZE,
sizeof(*efx->rps_hash_table), GFP_KERNEL);
+ if (!efx->rps_hash_table)
+ goto fail;
#endif
efx->phy_op = &efx_dummy_phy_operations;
efx->mdio.dev = net_dev;
--
1.7.12.4
On 30/10/2019 09:12, zhong jiang wrote:
> kcalloc may fails to allocate memory, hence if it is in that case,
> We should drop out in time.
>
> Signed-off-by: zhong jiang <[email protected]>
> ---
> drivers/net/ethernet/sfc/efx.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/net/ethernet/sfc/efx.c b/drivers/net/ethernet/sfc/efx.c
> index 2fef740..712380a 100644
> --- a/drivers/net/ethernet/sfc/efx.c
> +++ b/drivers/net/ethernet/sfc/efx.c
> @@ -3040,6 +3040,8 @@ static int efx_init_struct(struct efx_nic *efx,
> /* Failure to allocate is not fatal, but may degrade ARFS performance */
> efx->rps_hash_table = kcalloc(EFX_ARFS_HASH_TABLE_SIZE,
> sizeof(*efx->rps_hash_table), GFP_KERNEL);
> + if (!efx->rps_hash_table)
> + goto fail;
NAK.
As per the comment just above the allocation, if this allocation fails we are
able to continue (albeit with possibly reduced performance), since the code
paths that use efx->rps_hash_table all NULL-check it.
-Ed
> #endif
> efx->phy_op = &efx_dummy_phy_operations;
> efx->mdio.dev = net_dev;
>