On Thu, Jul 13, 2023 at 4:47 AM Li Chen <me@linux.beauty> wrote: > > This commit addresses an issue where enabling fw_devlink=on was causing > a PCIe malfunction, resulting in endpoints missing. > After thorough investigation, it was determined that the root cause was > an incorrect usage of strcmp_suffix in parse_gpios. > > Fixes: d473d32c2fba ("of: property: fw_devlink: do not link ".*,nr-gpios"") > Signed-off-by: Li Chen <lchen@xxxxxxxxxxxxx> > Cc: stable@xxxxxxxxxxxxxxx > --- > changes: > v1->v2: add Cc stable > > drivers/of/property.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/of/property.c b/drivers/of/property.c > index ddc75cd50825..261eb8f3be08 100644 > --- a/drivers/of/property.c > +++ b/drivers/of/property.c > @@ -1272,7 +1272,7 @@ DEFINE_SUFFIX_PROP(gpio, "-gpio", "#gpio-cells") > static struct device_node *parse_gpios(struct device_node *np, > const char *prop_name, int index) > { > - if (!strcmp_suffix(prop_name, ",nr-gpios")) > + if (strcmp_suffix(prop_name, ",nr-gpios")) strcmp returns 0 when there is a match. When we match ",nr-gpios", we want to bail out. The existing code was correct. Your patch just disables fw_devlink for all GPIO dependencies. Rob