From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wr1-f41.google.com (mail-wr1-f41.google.com [209.85.221.41]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6A7F43C1F50 for ; Mon, 29 Jun 2026 07:44:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.41 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782719075; cv=none; b=uCU3WN1Y4wWfdR+ZrOHKRdapNFzZ1TczTSMvpKdj1mDhxNIumDGacmW+B+cUXX2bzqwTJWstwE/D4750cbG+To9brjnwEEHCQkVsi+52IqPm81wzGpxogCopsI+PTMXBe9+DESNGelgOcej4WQ2AncC/ocNLeFmv3I9mFZHE/LE= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782719075; c=relaxed/simple; bh=C0Dq6IFd8TtJnFLg3Cm0KF4fPoBzrqvPSBWl0Ac4C8k=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=rvzGcebTmu5tttP+XAemZC6SKuLyzZUjZfHw9Tc/OpTSowAUvs2kL+8RVrs23wZzpM4Ilar7ZZ8qHgJmPHh4Kvz+Wi4w3sYiOJhcSkjfhHmaj7ER2fXxVt4i8pFDfvBTENS7E0n6dQEZPvTxDSEOP4JwRBbgodtyASB03P9aE9k= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=rICAZJlB; arc=none smtp.client-ip=209.85.221.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="rICAZJlB" Received: by mail-wr1-f41.google.com with SMTP id ffacd0b85a97d-4745492ed3aso206187f8f.1 for ; Mon, 29 Jun 2026 00:44:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1782719066; x=1783323866; darn=vger.kernel.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=BPt6S0MLw77Iv8h8HNg6XpOGDbgQ8DL3y3lGIp/XDC0=; b=rICAZJlBHaHHw4o/5XqlT2/SVlB+q5qSWeEVQOI6RQoab4q4T3/eIj1JZ9GA+ELpVy AjHOpGezniWA5+unKFRgK+LpJb/4p8EjhPc7pMP+8pngtsRXJ8rFC0bzsBAClc6ghn+A qlhYt7r6S7iuLA5TRwqMxCp16vsAZlND5CrNgGwHC5i3rYQqwRRxkoQvpgY4gDQC9CUz 9s0e9LEizCt8z4bgHcHjGbY14oab3EOFjObU5jDwRWq+jGgpuKepcH3J1TPzcYv5YXzJ QboHr7rXr5n9NzkH1fdO2lvhRL9kxEfAG6b1qPq3jhNfIS3G12iLKb6Mh+xi+zvPsnvg 5KZQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782719066; x=1783323866; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=BPt6S0MLw77Iv8h8HNg6XpOGDbgQ8DL3y3lGIp/XDC0=; b=gMkryQ/8YtgUqta7WgWwkibDhjgbiSx0A/ootTdecuJtyZeOV3QTf3z6u4VI6pU6gP 90fu/vrOetm0pZ6vwQfyAazOHPb0do8fk9DPXbLT0Y5DjdvFMh24QAcVuU1DaOnePgom goQV0zwLUvLfmWJI+qXSleqO3cFMoLEfynvR9JmtbK2l47Ircy5YDHAy/jqFVa/1Rrl+ ch4x2JLb8Y1KEMBc+02ZWduJ3WaW40Dguu6ZLeUz5DL2gaLJ8OSLmEI2o/y8srn6x8V5 FfWn3t8RYe4vnVnQaDQMl0MRzwINTcJGwsuEgZWtJrlsuWIbYk7rPny6qlwQkWOMxTID OQ8A== X-Forwarded-Encrypted: i=1; AHgh+Rp86khAkzqAjErkRizy2PxITuq8TXgfMlXzsHeam055YfRnVhGOv102/33UwTbGEcacN+7rEDii1yfO0XU=@vger.kernel.org X-Gm-Message-State: AOJu0YzjHeUVoDUVR2Pp/AnUtqr+sOyda49sMvnWqBXNWWEGjTRRUKis yiTrviky+1B4oskZUzeHEIz0uZE0M4GcmNUPTy4yrlwItxQA/id2jBt8 X-Gm-Gg: AfdE7cnllXUWI/YbuQl6XwoZ25w4fKS49wXCdrR3fZXrvt5yNo5rCrvTa1FpVXi6NUF AUcW6WUH3NRNEemfDHEO+nJnFyzEP4VQeZ/ef6fHjSNB3G1XMMZxw4AMsQnUy9FM1dlB0RZevAL yJ9c8RVMyF1jNjp2Wx1c8SdtxwsfZb1kwD9rPCgVdS6sjyyt26rSbYLE5L7ghuinit03XhsKrRd xYpKGFqF8Li3oz289oHrMM95ovshXUvibpDo129B6Edm5jGLkQOV/UvE17rPGsKO4aQERootDmH ZEVZifQZCwUMIGQWIf+fEwRFOIyHXag7WAGSEoNn00j5Q1qbjjxWvjrSYvX2JWOxKLWQTwDwJUp lJO78LISrW2Ek0XLi+AtT/rS8FHlP4RFA56QZpE+t2FtqfKdUVlkIMQ4xFJAhf5nm0CmMCN+BC6 54ZyeprRVMXQ== X-Received: by 2002:a5d:64e4:0:b0:474:9002:c708 with SMTP id ffacd0b85a97d-4749002c9d8mr877884f8f.47.1782719066430; Mon, 29 Jun 2026 00:44:26 -0700 (PDT) Received: from localhost ([2c0f:3d00:6be:8900:9cf4:43df:e612:817b]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-4730937e18dsm12014724f8f.21.2026.06.29.00.44.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Jun 2026 00:44:25 -0700 (PDT) Date: Mon, 29 Jun 2026 10:44:21 +0300 From: Dan Carpenter To: Prashant Rahul Cc: Greg Kroah-Hartman , Shuah Khan , linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org Subject: Re: [PATCH 4/4] staging: octeon: handle rx/tx initialization failures in probe Message-ID: References: <20260628-staging-driver-octeon-panic-v1-0-fe8c34989254@gmail.com> <20260628-staging-driver-octeon-panic-v1-4-fe8c34989254@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20260628-staging-driver-octeon-panic-v1-4-fe8c34989254@gmail.com> On Sun, Jun 28, 2026 at 12:31:27PM +0530, Prashant Rahul wrote: > Check return value of rx/tx initialization functions and abort probing > if either one fails. > > Add error handling labels to deallocate resources before returning the > error. > > Signed-off-by: Prashant Rahul > --- > drivers/staging/octeon/ethernet.c | 38 ++++++++++++++++++++++++++++++++++++-- > 1 file changed, 36 insertions(+), 2 deletions(-) > > diff --git a/drivers/staging/octeon/ethernet.c b/drivers/staging/octeon/ethernet.c > index 1d3bf3c79598d..41be73b2ded91 100644 > --- a/drivers/staging/octeon/ethernet.c > +++ b/drivers/staging/octeon/ethernet.c > @@ -688,6 +688,7 @@ static int cvm_oct_probe(struct platform_device *pdev) > { > int num_interfaces; > int interface; > + int ret = 0; > int fau = FAU_NUM_PACKET_BUFFERS_TO_FREE; > int qos; > struct device_node *pip; > @@ -934,17 +935,50 @@ static int cvm_oct_probe(struct platform_device *pdev) > } > } > > - cvm_oct_tx_initialize(pdev); > - cvm_oct_rx_initialize(pdev); > + ret = cvm_oct_tx_initialize(pdev); > + if (ret) > + goto err_tx; > + > + ret = cvm_oct_rx_initialize(pdev); > + if (ret) > + goto err_rx; > > /* > * 150 uS: about 10 1500-byte packets at 1GE. > */ > cvm_oct_tx_poll_interval = 150 * (octeon_get_clock_rate() / 1000000); > > schedule_delayed_work(&plat->rx_refill_work, HZ); > > return 0; > + > +err_rx: > + cvm_oct_tx_shutdown(); > +err_tx: > + cvmx_ipd_disable(); > + > + atomic_inc_return(&cvm_oct_poll_queue_stopping); > + > + cvmx_pko_disable(); > + > + /* Free the ethernet devices */ > + for (int port = 0; port < TOTAL_NUMBER_OF_PORTS; port++) > + cvm_oct_remove_device(port); > + > + cvmx_pko_shutdown(); This is all copied from the shutdown and it looks basically reasonable to me. This is staging code so of course it's a bit wonky. cvmx_pko_shutdown() has a built in call to cvmx_pko_disable() so why are we calling that separately? Also I feel like probe() should fail if alloc_netdev() fails or register_netdev(), but that's not introduced by this patch either. And I have no way to test this. Even reviewing MIPS code is a pain in the behind because I don't have the cross compiler set up. Reviewed-by: Dan Carpenter regards, dan carpenter