From nobody Sun Jun 14 11:27:14 2026 Received: from mail-pl1-f169.google.com (mail-pl1-f169.google.com [209.85.214.169]) (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 C23003C6607 for ; Thu, 2 Apr 2026 11:43:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.169 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775130214; cv=none; b=ovUQ29KNzCDEmwYYfzkrchzIVmOQihnYNHWG19Ja6dN7uKnFvIkkJtFk/GyI1nPTpe/7X6KUbTkr7B1N85IuvMFxr0Ou//xjDMCTf09164tOs1kiu6jzDOvA/XU2yIuJhWGqjOLAJzgD/banTaVLz/GvcPpCKx//05c8r9swJDw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775130214; c=relaxed/simple; bh=gY7HQ300MO0CkpLIn/GZpMCQ/jOuQ/Egue7d3Mkk4X8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=TZ1S9l0tkQ9lqwC7tJm4iwkDxlxT6+HnQ87NmOzX0BHOCnzoTZdpr1yVZ0SlFx3lhL/07z6LQJOuS/mDnhRZdZYaacaO/pQFR505DVwtMkhkKfFFvwFoOgQ6xPeqf7Y/W63n+tA/7x4JI5RSBgSYxsUX/mXIuagjFFAmn7fVTGQ= 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=oMcJkCtZ; arc=none smtp.client-ip=209.85.214.169 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="oMcJkCtZ" Received: by mail-pl1-f169.google.com with SMTP id d9443c01a7336-2b240d753ceso1999555ad.3 for ; Thu, 02 Apr 2026 04:43:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1775130204; x=1775735004; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=BWfaZDglV+5Mmp6GJdkcLBtTlrEQHvz96dOIQDefcZo=; b=oMcJkCtZYyVn9rSYyimff8rMxwXuOFEByBm2U9+8KqemJIskE7ZL2veoKx49Gq59pI gjOtQ8UEXIpxkXy31XTXCXv1LgcLNExJFzSTJeL60/fe5hCiA1NrRqAMxa6mNSUTQN48 VU9jTTPFDZ+LC31QePpxtRXv99grNEllk4R7CcrY0DBvePgA/P/l3c1xCKFC0GJRK6rb cjtwl45cYYqdbasKqficodLKxUfkg7T7W0an9yKaqiJUw87LFRy2mvre1IGtC6q+7K62 fmTz9dgIdTU4ah/HVR1b5SC3UJOWUNgZ45DdK29P/1wNq+srfP8HfSzOF85rn9Y/PPg+ CUtg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775130204; x=1775735004; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=BWfaZDglV+5Mmp6GJdkcLBtTlrEQHvz96dOIQDefcZo=; b=RQdLQd1vUTbpzikeR3kpb5mFoYGmd1qE+6fSKKpYaEu0xHeJ5F6AUyUfSRrh873+2W ZETgl3xIkurXsChZVJu/CN6wcOKtPkIJ3ttoa2Zl0VvFzZlgV5WgnOkDJ2d4sRF02Rl2 P+gfs2FIonfvsksk+5jvkRt1RBq1+s5E8Is1jxd+ui8yzKwXSCUQlLDNACzL+POf/Td2 +jh0H4D0Z2soAIflHL0r06Fm49BBKDYAnw2K7ci7ciQwau4wMcafZC27tgQalgDfbAoY vZchxNug1zpz7PCqOU0BglqwtOLHdae3kTv3rLeAYRpC+cYisZD3M/dJk/AomzpPixRe skBg== X-Forwarded-Encrypted: i=1; AJvYcCWgblEk5m8yocxEEjzfTLSJayr9u/MOhceTuwymfmy2PFOFGZywT/vjqvPPr+FrnffNqxuwC+IcIk5D68g=@vger.kernel.org X-Gm-Message-State: AOJu0YyHH0rGInnQlo0dsRCidcn4vnmOzAnVBQFwEfVtTeh3OMChsMph amV+reirWLO6S8qWI39QkRc8GAI5qAlajFK9HK16nynL9iyxCwRORNkl X-Gm-Gg: AeBDies4U/x2CwyaZNFAd87A4BL6WkgEDIwUlKnl/bUJT5oDr+SP39SfSpUzu4XNhdr 1L7V2XR8fXLIsuhTwOnd45IJG7U2E2zfjvS4bFY0xerwXQqB2Covbo44dfmz2wD1w/AEiXkXv/M 9YsKLg4SL1hSUw7aIylgMrBQUsC965W/DD7ogGJbY9meRmgA4gLgIKmTUtG/H0ptlpxd+PMFmxZ NXNyGbkKlXCngLjZllrWKUm42/o8mrsQBLdOgY/zsN9bq1Mh7H6LDIRM5clhCSe0MMUmj7qCPrv 4DkcPWFMoWhggPNN03PIYJ2GACHhsB8mjFQuHEDDOWCWgqU/dJ/dZihhZ0lvEqcgIHJcm4jF4g3 wKsT2Y17ZXxRPjJ5EVWi4YnAsZheuqopNg6BNGzlnExcJ6OxoJdZQpOcvpHse/Pzalqlp3Nv3O5 Um5kh2A7buVDrDmBLMKuL3wCTNoQ== X-Received: by 2002:a17:903:1b6c:b0:2ae:63fd:6d6a with SMTP id d9443c01a7336-2b269d66be7mr44945625ad.7.1775130203649; Thu, 02 Apr 2026 04:43:23 -0700 (PDT) Received: from fedora ([2401:4900:85cc:66d7:5e4d:2506:ea1:a781]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2b274779b48sm37505805ad.25.2026.04.02.04.43.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 02 Apr 2026 04:43:23 -0700 (PDT) From: Ayush Mukkanwar To: gregkh@linuxfoundation.org Cc: linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org, Ayush Mukkanwar Subject: [PATCH v3 1/2] staging: octeon: ethernet-spi: replace pr_err with dev_err Date: Thu, 2 Apr 2026 17:12:41 +0530 Message-ID: <20260402114242.57411-2-ayushmukkanwar@gmail.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260402114242.57411-1-ayushmukkanwar@gmail.com> References: <20260402114242.57411-1-ayushmukkanwar@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Replace pr_err() calls with dev_err() to include device information in log messages. The device pointer is passed through the interrupt handler via dev_id, which is changed from &number_spi_ports to netdev pointer in request_irq and free_irq. Signed-off-by: Ayush Mukkanwar --- drivers/staging/octeon/ethernet-spi.c | 78 +++++++++++++-------------- 1 file changed, 37 insertions(+), 41 deletions(-) diff --git a/drivers/staging/octeon/ethernet-spi.c b/drivers/staging/octeon= /ethernet-spi.c index 699c98c5ec13..1e33544f74b8 100644 --- a/drivers/staging/octeon/ethernet-spi.c +++ b/drivers/staging/octeon/ethernet-spi.c @@ -17,67 +17,62 @@ static int number_spi_ports; static int need_retrain[2] =3D { 0, 0 }; =20 -static void cvm_oct_spxx_int_pr(union cvmx_spxx_int_reg spx_int_reg, int i= ndex) +static void cvm_oct_spxx_int_pr(struct net_device *dev, union cvmx_spxx_in= t_reg spx_int_reg, + int index) { if (spx_int_reg.s.spf) - pr_err("SPI%d: SRX Spi4 interface down\n", index); + netdev_err(dev, "SPI%d: SRX Spi4 interface down\n", index); if (spx_int_reg.s.calerr) - pr_err("SPI%d: SRX Spi4 Calendar table parity error\n", index); + netdev_err(dev, "SPI%d: SRX Spi4 Calendar table parity error\n", index); if (spx_int_reg.s.syncerr) - pr_err("SPI%d: SRX Consecutive Spi4 DIP4 errors have exceeded SPX_ERR_CT= L[ERRCNT]\n", - index); + netdev_err(dev, "SPI%d: SRX Consecutive Spi4 DIP4 errors have exceeded S= PX_ERR_CTL[ERRCNT]\n", + index); if (spx_int_reg.s.diperr) - pr_err("SPI%d: SRX Spi4 DIP4 error\n", index); + netdev_err(dev, "SPI%d: SRX Spi4 DIP4 error\n", index); if (spx_int_reg.s.tpaovr) - pr_err("SPI%d: SRX Selected port has hit TPA overflow\n", - index); + netdev_err(dev, "SPI%d: SRX Selected port has hit TPA overflow\n", index= ); if (spx_int_reg.s.rsverr) - pr_err("SPI%d: SRX Spi4 reserved control word detected\n", - index); + netdev_err(dev, "SPI%d: SRX Spi4 reserved control word detected\n", inde= x); if (spx_int_reg.s.drwnng) - pr_err("SPI%d: SRX Spi4 receive FIFO drowning/overflow\n", - index); + netdev_err(dev, "SPI%d: SRX Spi4 receive FIFO drowning/overflow\n", inde= x); if (spx_int_reg.s.clserr) - pr_err("SPI%d: SRX Spi4 packet closed on non-16B alignment without EOP\n= ", - index); + netdev_err(dev, "SPI%d: SRX Spi4 packet closed on non-16B alignment with= out EOP\n", + index); if (spx_int_reg.s.spiovr) - pr_err("SPI%d: SRX Spi4 async FIFO overflow\n", index); + netdev_err(dev, "SPI%d: SRX Spi4 async FIFO overflow\n", index); if (spx_int_reg.s.abnorm) - pr_err("SPI%d: SRX Abnormal packet termination (ERR bit)\n", - index); + netdev_err(dev, "SPI%d: SRX Abnormal packet termination (ERR bit)\n", in= dex); if (spx_int_reg.s.prtnxa) - pr_err("SPI%d: SRX Port out of range\n", index); + netdev_err(dev, "SPI%d: SRX Port out of range\n", index); } =20 -static void cvm_oct_stxx_int_pr(union cvmx_stxx_int_reg stx_int_reg, int i= ndex) +static void cvm_oct_stxx_int_pr(struct net_device *dev, + union cvmx_stxx_int_reg stx_int_reg, int index) { if (stx_int_reg.s.syncerr) - pr_err("SPI%d: STX Interface encountered a fatal error\n", - index); + netdev_err(dev, "SPI%d: STX Interface encountered a fatal error\n", inde= x); if (stx_int_reg.s.frmerr) - pr_err("SPI%d: STX FRMCNT has exceeded STX_DIP_CNT[MAXFRM]\n", - index); + netdev_err(dev, "SPI%d: STX FRMCNT has exceeded STX_DIP_CNT[MAXFRM]\n", + index); if (stx_int_reg.s.unxfrm) - pr_err("SPI%d: STX Unexpected framing sequence\n", index); + netdev_err(dev, "SPI%d: STX Unexpected framing sequence\n", index); if (stx_int_reg.s.nosync) - pr_err("SPI%d: STX ERRCNT has exceeded STX_DIP_CNT[MAXDIP]\n", - index); + netdev_err(dev, "SPI%d: STX ERRCNT has exceeded STX_DIP_CNT[MAXDIP]\n", + index); if (stx_int_reg.s.diperr) - pr_err("SPI%d: STX DIP2 error on the Spi4 Status channel\n", - index); + netdev_err(dev, "SPI%d: STX DIP2 error on the Spi4 Status channel\n", in= dex); if (stx_int_reg.s.datovr) - pr_err("SPI%d: STX Spi4 FIFO overflow error\n", index); + netdev_err(dev, "SPI%d: STX Spi4 FIFO overflow error\n", index); if (stx_int_reg.s.ovrbst) - pr_err("SPI%d: STX Transmit packet burst too big\n", index); + netdev_err(dev, "SPI%d: STX Transmit packet burst too big\n", index); if (stx_int_reg.s.calpar1) - pr_err("SPI%d: STX Calendar Table Parity Error Bank%d\n", - index, 1); + netdev_err(dev, "SPI%d: STX Calendar Table Parity Error Bank%d\n", + index, 1); if (stx_int_reg.s.calpar0) - pr_err("SPI%d: STX Calendar Table Parity Error Bank%d\n", - index, 0); + netdev_err(dev, "SPI%d: STX Calendar Table Parity Error Bank%d\n", index= , 0); } =20 -static irqreturn_t cvm_oct_spi_spx_int(int index) +static irqreturn_t cvm_oct_spi_spx_int(struct net_device *dev, int index) { union cvmx_spxx_int_reg spx_int_reg; union cvmx_stxx_int_reg stx_int_reg; @@ -86,14 +81,14 @@ static irqreturn_t cvm_oct_spi_spx_int(int index) cvmx_write_csr(CVMX_SPXX_INT_REG(index), spx_int_reg.u64); if (!need_retrain[index]) { spx_int_reg.u64 &=3D cvmx_read_csr(CVMX_SPXX_INT_MSK(index)); - cvm_oct_spxx_int_pr(spx_int_reg, index); + cvm_oct_spxx_int_pr(dev, spx_int_reg, index); } =20 stx_int_reg.u64 =3D cvmx_read_csr(CVMX_STXX_INT_REG(index)); cvmx_write_csr(CVMX_STXX_INT_REG(index), stx_int_reg.u64); if (!need_retrain[index]) { stx_int_reg.u64 &=3D cvmx_read_csr(CVMX_STXX_INT_MSK(index)); - cvm_oct_stxx_int_pr(stx_int_reg, index); + cvm_oct_stxx_int_pr(dev, stx_int_reg, index); } =20 cvmx_write_csr(CVMX_SPXX_INT_MSK(index), 0); @@ -107,14 +102,15 @@ static irqreturn_t cvm_oct_spi_rml_interrupt(int cpl,= void *dev_id) { irqreturn_t return_status =3D IRQ_NONE; union cvmx_npi_rsl_int_blocks rsl_int_blocks; + struct net_device *dev =3D dev_id; =20 /* Check and see if this interrupt was caused by the GMX block */ rsl_int_blocks.u64 =3D cvmx_read_csr(CVMX_NPI_RSL_INT_BLOCKS); if (rsl_int_blocks.s.spx1) /* 19 - SPX1_INT_REG & STX1_INT_REG */ - return_status =3D cvm_oct_spi_spx_int(1); + return_status =3D cvm_oct_spi_spx_int(dev, 1); =20 if (rsl_int_blocks.s.spx0) /* 18 - SPX0_INT_REG & STX0_INT_REG */ - return_status =3D cvm_oct_spi_spx_int(0); + return_status =3D cvm_oct_spi_spx_int(dev, 0); =20 return return_status; } @@ -196,7 +192,7 @@ int cvm_oct_spi_init(struct net_device *dev) =20 if (number_spi_ports =3D=3D 0) { r =3D request_irq(OCTEON_IRQ_RML, cvm_oct_spi_rml_interrupt, - IRQF_SHARED, "SPI", &number_spi_ports); + IRQF_SHARED, "SPI", dev); if (r) return r; } @@ -221,6 +217,6 @@ void cvm_oct_spi_uninit(struct net_device *dev) cvmx_write_csr(CVMX_SPXX_INT_MSK(interface), 0); cvmx_write_csr(CVMX_STXX_INT_MSK(interface), 0); } - free_irq(OCTEON_IRQ_RML, &number_spi_ports); + free_irq(OCTEON_IRQ_RML, dev); } } --=20 2.53.0 From nobody Sun Jun 14 11:27:14 2026 Received: from mail-pl1-f169.google.com (mail-pl1-f169.google.com [209.85.214.169]) (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 118F33B52EF for ; Thu, 2 Apr 2026 11:43:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.169 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775130217; cv=none; b=X0Bxcqt/XNaQhDzd79+E7pyKhbcHu5XyRdm9FS+hc1efyOejF+4/GnKjVuRW0VutN/gKwoRigsQtZiS/4VrNo1JlYEzMT1Y4sqw9eMhR2TWNj9q5n8L/z+RTRyJ2QOD991BMg8CkOjFeFUiabWhqk/YvhLRfMr7z4I7ffSrgBZk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775130217; c=relaxed/simple; bh=IkMdwB5+mP8kQ7jd9LRTgObJFqi06jGriYgjQi/dgYA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Ze5gzKbBHyng5X+lDKUCE41NCV+HEIcSo3H/1vT4w6YOSvH70bSqo0UXdljhhQHx7ePiwnmXMVjDKCla8rnj8KbPVd4sdO4b+YZt3WyIoj2LfoYmoSv96Z96O5IXKV5nxZLoKNfkgii26J4+1HpBlfdx2xPl8kzKElvSQnrzUWY= 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=WPgOFK1b; arc=none smtp.client-ip=209.85.214.169 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="WPgOFK1b" Received: by mail-pl1-f169.google.com with SMTP id d9443c01a7336-2ae3a007bd1so1048215ad.2 for ; Thu, 02 Apr 2026 04:43:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1775130206; x=1775735006; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=4B4/Z8VlQ0Zk02tll8xObdk/FFHwhV2xVgavwF/166s=; b=WPgOFK1bRgH5+6/L7rbJsW2AknsXF5ScV7FmTBrAR3M8yE+MoQBCsuh0pVtNutqfqb n/xef112CImHKxsmDMa7DGlbWP8+D3YqZNQz7mUIdTrepFT5DKTYWYAzkWRu0HTrjAiE w3SUfZtAIahUaLJefl+7PGcA+G0wqtLaTkYBkjXs4NDmwTINe90a+swzOB7k/8WGm5tg +4Vh5Ic45ISxfEBo2/Q2GAVo+mIU5o8pJykKecheKtv7s0rHvxZrliuE01pavZLxX0x7 ByK4esI8q/7trlf1iZXOElZewclarqc8w6hJ8HkiGl1zYQl9ZgSs/z4AJoBRdxfuQmtE R2kA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775130206; x=1775735006; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=4B4/Z8VlQ0Zk02tll8xObdk/FFHwhV2xVgavwF/166s=; b=HfdNnquOIQDOV5i4uMUsw8dmxBZy3/BelQmrl7P/pP8I20FmwpEh9uQeQMJriLUVP4 zCtsGJv8pSVo69nOvT4MAlwyDjT5rrsZRn48c0cAywXl/s4ryP22AcIN0nLtJ58S79rm miKV3/j2Jl8IzGTFZbu6dRLZW1TF2rJDkHAthy7HxSQZfWyH8+9BxrHHGeDA0kogkLt8 vqMerDGzjzALgoeiWnPsB/w/tLOtgW0pexG9GigLlTsZByixixXfTLhEzbOrAbSrxxD/ lnkoJITuplhbfToOgjSU4Yxxdif+W9Yb2nYIYJFBpZbN/Wdao2e/4V6uW7mUKfbdAwio xHoQ== X-Forwarded-Encrypted: i=1; AJvYcCW+R5i128YrBeEKdL73xUnAndjqpn501JFTaeB+TttQaw+4tagUh4yvPWAvYi69VTOOZF3tNQg+KIBL8hI=@vger.kernel.org X-Gm-Message-State: AOJu0YxqLlX86NPdXyx5Iq2icZoGNRI5nNS1vFDUxXqaXzAh/0ixthdE wYP93wHU+URAbpgxLrYKzWNd32naTmuQ0oYR8hVXKfAPJqXm7rjedhKU X-Gm-Gg: AeBDiet9u8IUQmLV4XXTFsXj5qrv+1JK1Y/wN/AC8Y4O4VGjCKBYPYMYj77eFo9lXr6 SGo9XTFRzl8OTUpxeLE+jV6tjbAzoQE+L/ryMX9EICBwRcp5Go3d32es0Hvx2AFhHI/f13XlE5j /iLTYqq5QdQGTbjIIrh36bZrXBTJSFbbei2TGi3tCwSLtLSs2eyfsRdmAAEd5pd22cYrdptziGb XslEBNZPOwVhvmrivUJpfhsfAPmByFxVErTuwmaTaFUPlbvXmXHoDwjRNK21PxKaX7HmSSnoKIZ ERgUShUzUT+hwgOHdHODSu+S0UFTJnQ8wlERJArLcq/Iqeu2gHOJdYAFoWwc4/EwsD4P8dULYc0 172SA2gbZh1Ur60/HcEF000U46pM+Ja45OApKFViqS2EbOI+momLreVW5GelNcadsj1FZdZ0s5Q dEu7OvCAT6bsaBUmC6AorFXTDiEg== X-Received: by 2002:a17:903:37cd:b0:2b0:ac1e:972e with SMTP id d9443c01a7336-2b269d869f4mr42374275ad.8.1775130206192; Thu, 02 Apr 2026 04:43:26 -0700 (PDT) Received: from fedora ([2401:4900:85cc:66d7:5e4d:2506:ea1:a781]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2b274779b48sm37505805ad.25.2026.04.02.04.43.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 02 Apr 2026 04:43:25 -0700 (PDT) From: Ayush Mukkanwar To: gregkh@linuxfoundation.org Cc: linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org, Ayush Mukkanwar Subject: [PATCH v3 2/2] staging: octeon: ethernet: replace pr_* with dev_* and netdev_* Date: Thu, 2 Apr 2026 17:12:42 +0530 Message-ID: <20260402114242.57411-3-ayushmukkanwar@gmail.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260402114242.57411-1-ayushmukkanwar@gmail.com> References: <20260402114242.57411-1-ayushmukkanwar@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Replace pr_*() calls with dev_*() and netdev_*() to include device information in log messages. A per-device struct octeon_ethernet_platform is introduced to pass the device pointer through work queue callbacks via container_of. The device pointer is also stored in oct_rx_group to make it available in the NAPI poll function and propagated through the memory pool functions by adding a struct device * parameter. Signed-off-by: Ayush Mukkanwar --- drivers/staging/octeon/ethernet-mem.c | 39 +++++++++-------- drivers/staging/octeon/ethernet-mem.h | 4 +- drivers/staging/octeon/ethernet-rx.c | 6 ++- drivers/staging/octeon/ethernet-rx.h | 6 +-- drivers/staging/octeon/ethernet.c | 63 ++++++++++++++++----------- 5 files changed, 68 insertions(+), 50 deletions(-) diff --git a/drivers/staging/octeon/ethernet-mem.c b/drivers/staging/octeon= /ethernet-mem.c index 532594957ebc..d5caefe68608 100644 --- a/drivers/staging/octeon/ethernet-mem.c +++ b/drivers/staging/octeon/ethernet-mem.c @@ -43,8 +43,9 @@ static int cvm_oct_fill_hw_skbuff(int pool, int size, int= elements) * @pool: Pool to allocate an skbuff for * @size: Size of the buffer needed for the pool * @elements: Number of buffers to allocate + * @dev: Device to pass to dev_warn() */ -static void cvm_oct_free_hw_skbuff(int pool, int size, int elements) +static void cvm_oct_free_hw_skbuff(int pool, int size, int elements, struc= t device *dev) { char *memory; =20 @@ -59,11 +60,11 @@ static void cvm_oct_free_hw_skbuff(int pool, int size, = int elements) } while (memory); =20 if (elements < 0) - pr_warn("Freeing of pool %u had too many skbuffs (%d)\n", - pool, elements); + dev_warn(dev, "Freeing of pool %u had too many skbuffs (%d)\n", + pool, elements); else if (elements > 0) - pr_warn("Freeing of pool %u is missing %d skbuffs\n", - pool, elements); + dev_warn(dev, "Freeing of pool %u is missing %d skbuffs\n", + pool, elements); } =20 /** @@ -71,10 +72,11 @@ static void cvm_oct_free_hw_skbuff(int pool, int size, = int elements) * @pool: Pool to populate * @size: Size of each buffer in the pool * @elements: Number of buffers to allocate + * @dev: Device to pass to dev_warn() * * Returns the actual number of buffers allocated. */ -static int cvm_oct_fill_hw_memory(int pool, int size, int elements) +static int cvm_oct_fill_hw_memory(int pool, int size, int elements, struct= device *dev) { char *memory; char *fpa; @@ -93,8 +95,8 @@ static int cvm_oct_fill_hw_memory(int pool, int size, int= elements) */ memory =3D kmalloc(size + 256, GFP_ATOMIC); if (unlikely(!memory)) { - pr_warn("Unable to allocate %u bytes for FPA pool %d\n", - elements * size, pool); + dev_warn(dev, "Unable to allocate %u bytes for FPA pool %d\n", + elements * size, pool); break; } fpa =3D (char *)(((unsigned long)memory + 256) & ~0x7fUL); @@ -110,8 +112,9 @@ static int cvm_oct_fill_hw_memory(int pool, int size, i= nt elements) * @pool: FPA pool to free * @size: Size of each buffer in the pool * @elements: Number of buffers that should be in the pool + * @dev: Device to pass to dev_warn() */ -static void cvm_oct_free_hw_memory(int pool, int size, int elements) +static void cvm_oct_free_hw_memory(int pool, int size, int elements, struc= t device *dev) { char *memory; char *fpa; @@ -127,28 +130,28 @@ static void cvm_oct_free_hw_memory(int pool, int size= , int elements) } while (fpa); =20 if (elements < 0) - pr_warn("Freeing of pool %u had too many buffers (%d)\n", - pool, elements); + dev_warn(dev, "Freeing of pool %u had too many buffers (%d)\n", + pool, elements); else if (elements > 0) - pr_warn("Warning: Freeing of pool %u is missing %d buffers\n", - pool, elements); + dev_warn(dev, "Warning: Freeing of pool %u is missing %d buffers\n", + pool, elements); } =20 -int cvm_oct_mem_fill_fpa(int pool, int size, int elements) +int cvm_oct_mem_fill_fpa(int pool, int size, int elements, struct device *= dev) { int freed; =20 if (pool =3D=3D CVMX_FPA_PACKET_POOL) freed =3D cvm_oct_fill_hw_skbuff(pool, size, elements); else - freed =3D cvm_oct_fill_hw_memory(pool, size, elements); + freed =3D cvm_oct_fill_hw_memory(pool, size, elements, dev); return freed; } =20 -void cvm_oct_mem_empty_fpa(int pool, int size, int elements) +void cvm_oct_mem_empty_fpa(int pool, int size, int elements, struct device= *dev) { if (pool =3D=3D CVMX_FPA_PACKET_POOL) - cvm_oct_free_hw_skbuff(pool, size, elements); + cvm_oct_free_hw_skbuff(pool, size, elements, dev); else - cvm_oct_free_hw_memory(pool, size, elements); + cvm_oct_free_hw_memory(pool, size, elements, dev); } diff --git a/drivers/staging/octeon/ethernet-mem.h b/drivers/staging/octeon= /ethernet-mem.h index 692dcdb7154d..22a38846c751 100644 --- a/drivers/staging/octeon/ethernet-mem.h +++ b/drivers/staging/octeon/ethernet-mem.h @@ -5,5 +5,5 @@ * Copyright (c) 2003-2007 Cavium Networks */ =20 -int cvm_oct_mem_fill_fpa(int pool, int size, int elements); -void cvm_oct_mem_empty_fpa(int pool, int size, int elements); +int cvm_oct_mem_fill_fpa(int pool, int size, int elements, struct device *= dev); +void cvm_oct_mem_empty_fpa(int pool, int size, int elements, struct device= *dev); diff --git a/drivers/staging/octeon/ethernet-rx.c b/drivers/staging/octeon/= ethernet-rx.c index d0b43d50b83c..461f9077742e 100644 --- a/drivers/staging/octeon/ethernet-rx.c +++ b/drivers/staging/octeon/ethernet-rx.c @@ -35,6 +35,7 @@ static struct oct_rx_group { int irq; int group; struct napi_struct napi; + struct device *dev; } oct_rx_group[16]; =20 /** @@ -397,7 +398,7 @@ static int cvm_oct_poll(struct oct_rx_group *rx_group, = int budget) /* Restore the scratch area */ cvmx_scratch_write64(CVMX_SCR_SCRATCH, old_scratch); } - cvm_oct_rx_refill_pool(0); + cvm_oct_rx_refill_pool(0, rx_group->dev); =20 return rx_count; } @@ -448,7 +449,7 @@ void cvm_oct_poll_controller(struct net_device *dev) } #endif =20 -void cvm_oct_rx_initialize(void) +void cvm_oct_rx_initialize(struct device *dev) { int i; struct net_device *dev_for_napi =3D NULL; @@ -475,6 +476,7 @@ void cvm_oct_rx_initialize(void) =20 oct_rx_group[i].irq =3D OCTEON_IRQ_WORKQ0 + i; oct_rx_group[i].group =3D i; + oct_rx_group[i].dev =3D dev; =20 /* Register an IRQ handler to receive POW interrupts */ ret =3D request_irq(oct_rx_group[i].irq, cvm_oct_do_interrupt, 0, diff --git a/drivers/staging/octeon/ethernet-rx.h b/drivers/staging/octeon/= ethernet-rx.h index ff6482fa20d6..443c6208d09d 100644 --- a/drivers/staging/octeon/ethernet-rx.h +++ b/drivers/staging/octeon/ethernet-rx.h @@ -6,10 +6,10 @@ */ =20 void cvm_oct_poll_controller(struct net_device *dev); -void cvm_oct_rx_initialize(void); +void cvm_oct_rx_initialize(struct device *dev); void cvm_oct_rx_shutdown(void); =20 -static inline void cvm_oct_rx_refill_pool(int fill_threshold) +static inline void cvm_oct_rx_refill_pool(int fill_threshold, struct devic= e *dev) { int number_to_free; int num_freed; @@ -22,7 +22,7 @@ static inline void cvm_oct_rx_refill_pool(int fill_thresh= old) -number_to_free); num_freed =3D cvm_oct_mem_fill_fpa(CVMX_FPA_PACKET_POOL, CVMX_FPA_PACKET_POOL_SIZE, - number_to_free); + number_to_free, dev); if (num_freed !=3D number_to_free) { cvmx_fau_atomic_add32(FAU_NUM_PACKET_BUFFERS_TO_FREE, number_to_free - num_freed); diff --git a/drivers/staging/octeon/ethernet.c b/drivers/staging/octeon/eth= ernet.c index eadb74fc14c8..89df2a691a0d 100644 --- a/drivers/staging/octeon/ethernet.c +++ b/drivers/staging/octeon/ethernet.c @@ -104,11 +104,18 @@ struct net_device *cvm_oct_device[TOTAL_NUMBER_OF_POR= TS]; =20 u64 cvm_oct_tx_poll_interval; =20 -static void cvm_oct_rx_refill_worker(struct work_struct *work); -static DECLARE_DELAYED_WORK(cvm_oct_rx_refill_work, cvm_oct_rx_refill_work= er); +struct octeon_ethernet_platform { + struct device *dev; + struct delayed_work rx_refill_work; +}; + +static struct octeon_ethernet_platform *oct_plt; =20 static void cvm_oct_rx_refill_worker(struct work_struct *work) { + struct octeon_ethernet_platform *plt =3D container_of(work, struct octeon= _ethernet_platform, + rx_refill_work.work); + /* * FPA 0 may have been drained, try to refill it if we need * more than num_packet_buffers / 2, otherwise normal receive @@ -116,10 +123,11 @@ static void cvm_oct_rx_refill_worker(struct work_stru= ct *work) * could be received so cvm_oct_napi_poll would never be * invoked to do the refill. */ - cvm_oct_rx_refill_pool(num_packet_buffers / 2); + + cvm_oct_rx_refill_pool(num_packet_buffers / 2, plt->dev); =20 if (!atomic_read(&cvm_oct_poll_queue_stopping)) - schedule_delayed_work(&cvm_oct_rx_refill_work, HZ); + schedule_delayed_work(&plt->rx_refill_work, HZ); } =20 static void cvm_oct_periodic_worker(struct work_struct *work) @@ -138,17 +146,17 @@ static void cvm_oct_periodic_worker(struct work_struc= t *work) schedule_delayed_work(&priv->port_periodic_work, HZ); } =20 -static void cvm_oct_configure_common_hw(void) +static void cvm_oct_configure_common_hw(struct device *dev) { /* Setup the FPA */ cvmx_fpa_enable(); cvm_oct_mem_fill_fpa(CVMX_FPA_PACKET_POOL, CVMX_FPA_PACKET_POOL_SIZE, - num_packet_buffers); + num_packet_buffers, dev); cvm_oct_mem_fill_fpa(CVMX_FPA_WQE_POOL, CVMX_FPA_WQE_POOL_SIZE, - num_packet_buffers); + num_packet_buffers, dev); if (CVMX_FPA_OUTPUT_BUFFER_POOL !=3D CVMX_FPA_PACKET_POOL) cvm_oct_mem_fill_fpa(CVMX_FPA_OUTPUT_BUFFER_POOL, - CVMX_FPA_OUTPUT_BUFFER_POOL_SIZE, 1024); + CVMX_FPA_OUTPUT_BUFFER_POOL_SIZE, 1024, dev); =20 #ifdef __LITTLE_ENDIAN { @@ -685,11 +693,17 @@ static int cvm_oct_probe(struct platform_device *pdev) =20 pip =3D pdev->dev.of_node; if (!pip) { - pr_err("Error: No 'pip' in /aliases\n"); + dev_err(&pdev->dev, "Error: No 'pip' in /aliases\n"); return -EINVAL; } =20 - cvm_oct_configure_common_hw(); + oct_plt =3D devm_kzalloc(&pdev->dev, sizeof(*oct_plt), GFP_KERNEL); + if (!oct_plt) + return -ENOMEM; + oct_plt->dev =3D &pdev->dev; + INIT_DELAYED_WORK(&oct_plt->rx_refill_work, cvm_oct_rx_refill_worker); + + cvm_oct_configure_common_hw(&pdev->dev); =20 cvmx_helper_initialize_packet_io_global(); =20 @@ -783,16 +797,15 @@ static int cvm_oct_probe(struct platform_device *pdev) dev->max_mtu =3D OCTEON_MAX_MTU - mtu_overhead; =20 if (register_netdev(dev) < 0) { - pr_err("Failed to register ethernet device for POW\n"); + netdev_err(dev, "Failed to register ethernet device for POW\n"); free_netdev(dev); } else { cvm_oct_device[CVMX_PIP_NUM_INPUT_PORTS] =3D dev; - pr_info("%s: POW send group %d, receive group %d\n", - dev->name, pow_send_group, - pow_receive_group); + netdev_info(dev, "POW send group %d, receive group %d\n", + pow_send_group, pow_receive_group); } } else { - pr_err("Failed to allocate ethernet device for POW\n"); + dev_err(&pdev->dev, "Failed to allocate ethernet device for POW\n"); } } =20 @@ -812,8 +825,8 @@ static int cvm_oct_probe(struct platform_device *pdev) struct net_device *dev =3D alloc_etherdev(sizeof(struct octeon_ethernet)); if (!dev) { - pr_err("Failed to allocate ethernet device for port %d\n", - port); + dev_err(&pdev->dev, "Failed to allocate ethernet device for port %d\n", + port); continue; } =20 @@ -897,8 +910,8 @@ static int cvm_oct_probe(struct platform_device *pdev) if (!dev->netdev_ops) { free_netdev(dev); } else if (register_netdev(dev) < 0) { - pr_err("Failed to register ethernet device for interface %d, port %d\n= ", - interface, priv->port); + netdev_err(dev, "Failed to register ethernet device for interface %d, = port %d\n", + interface, priv->port); free_netdev(dev); } else { cvm_oct_device[priv->port] =3D dev; @@ -912,14 +925,14 @@ static int cvm_oct_probe(struct platform_device *pdev) } =20 cvm_oct_tx_initialize(); - cvm_oct_rx_initialize(); + cvm_oct_rx_initialize(&pdev->dev); =20 /* * 150 uS: about 10 1500-byte packets at 1GE. */ cvm_oct_tx_poll_interval =3D 150 * (octeon_get_clock_rate() / 1000000); =20 - schedule_delayed_work(&cvm_oct_rx_refill_work, HZ); + schedule_delayed_work(&oct_plt->rx_refill_work, HZ); =20 return 0; } @@ -931,7 +944,7 @@ static void cvm_oct_remove(struct platform_device *pdev) cvmx_ipd_disable(); =20 atomic_inc_return(&cvm_oct_poll_queue_stopping); - cancel_delayed_work_sync(&cvm_oct_rx_refill_work); + cancel_delayed_work_sync(&oct_plt->rx_refill_work); =20 cvm_oct_rx_shutdown(); cvm_oct_tx_shutdown(); @@ -959,12 +972,12 @@ static void cvm_oct_remove(struct platform_device *pd= ev) =20 /* Free the HW pools */ cvm_oct_mem_empty_fpa(CVMX_FPA_PACKET_POOL, CVMX_FPA_PACKET_POOL_SIZE, - num_packet_buffers); + num_packet_buffers, &pdev->dev); cvm_oct_mem_empty_fpa(CVMX_FPA_WQE_POOL, CVMX_FPA_WQE_POOL_SIZE, - num_packet_buffers); + num_packet_buffers, &pdev->dev); if (CVMX_FPA_OUTPUT_BUFFER_POOL !=3D CVMX_FPA_PACKET_POOL) cvm_oct_mem_empty_fpa(CVMX_FPA_OUTPUT_BUFFER_POOL, - CVMX_FPA_OUTPUT_BUFFER_POOL_SIZE, 128); + CVMX_FPA_OUTPUT_BUFFER_POOL_SIZE, 128, &pdev->dev); } =20 static const struct of_device_id cvm_oct_match[] =3D { --=20 2.53.0