From: ngn <ngn@ngn.tf>
To: Bjorn Helgaas <helgaas@kernel.org>
Cc: Nam Cao <namcao@linutronix.de>,
linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v3] PCI: shpchp: Remove hpc_ops
Date: Fri, 2 Aug 2024 16:06:09 +0300 [thread overview]
Message-ID: <ZqzZwRx0Fug4bcwv@archbtw> (raw)
In-Reply-To: <20240802000852.GA129961@bhelgaas>
On Thu, Aug 01, 2024 at 07:08:52PM -0500, Bjorn Helgaas wrote:
> On Tue, Jul 23, 2024 at 02:43:25PM +0300, ngn wrote:
> > Remove the hpc_ops struct from shpchp. This struct is unnecessary as
> > no other hotplug controller implements it. A similar thing has already
> > been done in pciehp with commit 82a9e79ef132 ("PCI: pciehp: remove hpc_ops")
>
> > +++ b/drivers/pci/hotplug/shpchp_hpc.c
> > @@ -167,7 +167,6 @@
> >
> > static irqreturn_t shpc_isr(int irq, void *dev_id);
> > static void start_int_poll_timer(struct controller *ctrl, int sec);
> > -static int hpc_check_cmd_status(struct controller *ctrl);
> >
> > static inline u8 shpc_readb(struct controller *ctrl, int reg)
> > {
> > @@ -317,7 +316,7 @@ static int shpc_write_cmd(struct slot *slot, u8 t_slot, u8 cmd)
> > if (retval)
> > goto out;
> >
> > - cmd_status = hpc_check_cmd_status(slot->ctrl);
> > + cmd_status = shpchp_check_cmd_status(slot->ctrl);
>
> This rename looks like it should be a separate patch because it's not
> part of removing hpc_ops.
I think hpc_check_cmd_status meant to be a part of the hpc_ops struct.
Here is the original struct:
struct hpc_ops {
int (*power_on_slot)(struct slot *slot);
int (*slot_enable)(struct slot *slot);
int (*slot_disable)(struct slot *slot);
int (*set_bus_speed_mode)(struct slot *slot, enum pci_bus_speed speed);
int (*get_power_status)(struct slot *slot, u8 *status);
int (*get_attention_status)(struct slot *slot, u8 *status);
int (*set_attention_status)(struct slot *slot, u8 status);
int (*get_latch_status)(struct slot *slot, u8 *status);
int (*get_adapter_status)(struct slot *slot, u8 *status);
int (*get_adapter_speed)(struct slot *slot, enum pci_bus_speed *speed);
int (*get_prog_int)(struct slot *slot, u8 *prog_int);
int (*query_power_fault)(struct slot *slot);
void (*green_led_on)(struct slot *slot);
void (*green_led_off)(struct slot *slot);
void (*green_led_blink)(struct slot *slot);
void (*release_ctlr)(struct controller *ctrl);
int (*check_cmd_status)(struct controller *ctrl);
};
As you can see it contains a pointer for check_cmd_status function,
however the hpc_check_cmd_status was never assigned to it:
static const struct hpc_ops shpchp_hpc_ops = {
.power_on_slot = hpc_power_on_slot,
.slot_enable = hpc_slot_enable,
.slot_disable = hpc_slot_disable,
.set_bus_speed_mode = hpc_set_bus_speed_mode,
.set_attention_status = hpc_set_attention_status,
.get_power_status = hpc_get_power_status,
.get_attention_status = hpc_get_attention_status,
.get_latch_status = hpc_get_latch_status,
.get_adapter_status = hpc_get_adapter_status,
.get_adapter_speed = hpc_get_adapter_speed,
.get_prog_int = hpc_get_prog_int,
.query_power_fault = hpc_query_power_fault,
.green_led_on = hpc_set_green_led_on,
.green_led_off = hpc_set_green_led_off,
.green_led_blink = hpc_set_green_led_blink,
.release_ctlr = hpc_release_ctlr,
};
Which made me believe that this function supposed to be a part of the
hpc_ops struct and whoever wrote the code added a pointer for it but
then they forgot to assign the function to it during the actual
definition of the struct. So I renamed it anyway.
next prev parent reply other threads:[~2024-08-02 13:13 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-07-23 11:43 [PATCH v3] PCI: shpchp: Remove hpc_ops ngn
2024-08-02 0:08 ` Bjorn Helgaas
2024-08-02 13:06 ` ngn [this message]
2024-08-02 16:41 ` Bjorn Helgaas
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=ZqzZwRx0Fug4bcwv@archbtw \
--to=ngn@ngn.tf \
--cc=helgaas@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=namcao@linutronix.de \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.