public inbox for linux-staging@lists.linux.dev
 help / color / mirror / Atom feed
From: Greg KH <gregkh@linuxfoundation.org>
To: Ayush Mukkanwar <ayushmukkanwar@gmail.com>
Cc: linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2 1/2] staging: octeon: ethernet-spi: replace pr_err with dev_err
Date: Sun, 5 Apr 2026 10:02:54 +0200	[thread overview]
Message-ID: <2026040531-reverence-caregiver-5581@gregkh> (raw)
In-Reply-To: <CABJ81bhbWnH_BjCM4ABSv1aW=EtptxGbgZOGMTcan3=GO6mLCA@mail.gmail.com>

On Sat, Apr 04, 2026 at 02:50:56PM +0530, Ayush Mukkanwar wrote:
> On Wed, Apr 1, 2026 at 3:39 PM Greg KH <gregkh@linuxfoundation.org> wrote:
> >
> > On Tue, Mar 31, 2026 at 04:47:56PM +0530, AyushMukkanwar wrote:
> > > 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
> > > dev->dev.parent in request_irq and free_irq.
> > >
> > > Signed-off-by: AyushMukkanwar <ayushmukkanwar@gmail.com>
> > > ---
> > >  drivers/staging/octeon/ethernet-spi.c | 59 ++++++++++++++-------------
> > >  1 file changed, 30 insertions(+), 29 deletions(-)
> > >
> > > diff --git a/drivers/staging/octeon/ethernet-spi.c b/drivers/staging/octeon/ethernet-spi.c
> > > index 699c98c5ec13..8c02920c3cdc 100644
> > > --- a/drivers/staging/octeon/ethernet-spi.c
> > > +++ b/drivers/staging/octeon/ethernet-spi.c
> > > @@ -17,67 +17,67 @@
> > >  static int number_spi_ports;
> > >  static int need_retrain[2] = { 0, 0 };
> > >
> > > -static void cvm_oct_spxx_int_pr(union cvmx_spxx_int_reg spx_int_reg, int index)
> > > +static void cvm_oct_spxx_int_pr(union cvmx_spxx_int_reg spx_int_reg, int index, struct device *dev)
> >
> > This is ok, but this, but usually the pointer is the first argument.
> > And shouldn't this be a netdev (see below...)
> >
> > > @@ -107,14 +107,15 @@ static irqreturn_t cvm_oct_spi_rml_interrupt(int cpl, void *dev_id)
> > >  {
> > >       irqreturn_t return_status = IRQ_NONE;
> > >       union cvmx_npi_rsl_int_blocks rsl_int_blocks;
> > > +     struct device *dev = dev_id;
> >
> > This isn't ok, the function prototype should really be a pointer, not a
> > void thing.
> >
> > > @@ -196,7 +197,7 @@ int cvm_oct_spi_init(struct net_device *dev)
> > >
> > >       if (number_spi_ports == 0) {
> > >               r = request_irq(OCTEON_IRQ_RML, cvm_oct_spi_rml_interrupt,
> > > -                             IRQF_SHARED, "SPI", &number_spi_ports);
> > > +                             IRQF_SHARED, "SPI", dev->dev.parent);
> >
> > Wait, no, you can't do anything with the parent!
> >
> > This is a netdev, keep it a netdev.  Don't pass it "up" the device
> > heirchary to the device pointer, use the real netdev pointer instead.
> >
> > Also, it seems you didn't test build your changes, what happened?
> >
> > thanks,
> >
> > greg k-h
> 
> Hi Greg,
> 
> I'm preparing v4 of the octeon pr_*() conversion series, broken into
> smaller patches as you requested.
> 
> While converting ethernet-spi.c, I hit a complication with the IRQ
> handler. The SPI code registers a single shared IRQ across all SPI
> ports:
> if (number_spi_ports == 0)
>     request_irq(OCTEON_IRQ_RML, handler, IRQF_SHARED, "SPI", dev_id);
> number_spi_ports++;
> 
> The original code used &number_spi_ports (a static) as dev_id, so
> request_irq and free_irq always matched. But to convert the handler's
> pr_err() calls to netdev_err(), I need to pass a net_device * as
> dev_id.
> 
> The problem is: the first SPI port registers the IRQ, but the last
> port to uninit frees it with a different net_device *, causing a
> dev_id mismatch.
> 
> Additionally, all the error messages in the handler are SPI4 bus-level
> errors (DIP4, calendar parity, FIFO overflow, etc.), not specific to
> any individual port. Would using dev_err() with the platform device be
> acceptable here since the IRQ is registered once for the whole SPI
> subsystem? Or would you prefer a different approach?

Use your best judgement here, it sounds like this driver needs lots of
cleanups!

good luck,

greg k-h

  reply	other threads:[~2026-04-05  8:02 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-03-24 13:30 [PATCH 0/3] staging: octeon: add pr_fmt macro to ethernet drivers AyushMukkanwar
2026-03-24 13:30 ` [PATCH 1/3] staging: octeon: ethernet-mem: add pr_fmt macro AyushMukkanwar
2026-03-24 13:30 ` [PATCH 2/3] staging: octeon: ethernet-spi: " AyushMukkanwar
2026-03-24 13:30 ` [PATCH 3/3] staging: octeon: ethernet: " AyushMukkanwar
2026-03-24 14:28   ` Greg KH
2026-03-25  9:03     ` Ayush Mukkanwar
2026-03-25  9:11       ` Greg KH
2026-03-25 19:12         ` Ayush Mukkanwar
2026-03-30 15:56           ` Greg KH
2026-03-31  7:16             ` Ayush Mukkanwar
2026-03-31  8:28               ` Greg KH
2026-03-31 11:17                 ` [PATCH v2 0/2] staging: octeon: replace pr_*() calls with dev_*() and netdev_*() AyushMukkanwar
2026-03-31 11:17                   ` [PATCH v2 1/2] staging: octeon: ethernet-spi: replace pr_err with dev_err AyushMukkanwar
2026-04-01 10:09                     ` Greg KH
2026-04-04  9:17                       ` Ayush Mukkanwar
2026-04-04  9:20                       ` Ayush Mukkanwar
2026-04-05  8:02                         ` Greg KH [this message]
2026-03-31 11:17                   ` [PATCH v2 2/2] staging: octeon: ethernet: replace pr_* with dev_* and netdev_* AyushMukkanwar
2026-04-01  1:10                     ` kernel test robot
2026-04-01  9:32                     ` Dan Carpenter

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=2026040531-reverence-caregiver-5581@gregkh \
    --to=gregkh@linuxfoundation.org \
    --cc=ayushmukkanwar@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-staging@lists.linux.dev \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox