Restructure error handling in rcu_torture_fwd_prog_init() to provide cleaner allocation failure paths. The current code checks both allocations in a single condition, making error handling less efficient and clear.
The improved approach: - Check rfp allocation immediately and return early on failure - Separately handle fwd_prog_tasks allocation failure with proper cleanup - Remove redundant kfree(fwd_prog_tasks) since it would be NULL on failure Signed-off-by: Kaushlendra Kumar <kaushlendra.ku...@intel.com> --- kernel/rcu/rcutorture.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/kernel/rcu/rcutorture.c b/kernel/rcu/rcutorture.c index 807fbf6123a7..6af0d207adba 100644 --- a/kernel/rcu/rcutorture.c +++ b/kernel/rcu/rcutorture.c @@ -2995,11 +2995,11 @@ static int __init rcu_torture_fwd_prog_init(void) if (fwd_progress_div <= 0) fwd_progress_div = 4; rfp = kcalloc(fwd_progress, sizeof(*rfp), GFP_KERNEL); + if (!rfp) + return -ENOMEM; fwd_prog_tasks = kcalloc(fwd_progress, sizeof(*fwd_prog_tasks), GFP_KERNEL); - if (!rfp || !fwd_prog_tasks) { + if (!fwd_prog_tasks) { kfree(rfp); - kfree(fwd_prog_tasks); - fwd_prog_tasks = NULL; fwd_progress = 0; return -ENOMEM; } -- 2.34.1