2024-03-05 13:59:45

by Robert Marko

[permalink] [raw]
Subject: [PATCH net v2] net: phy: qca807x: fix compilation when CONFIG_GPIOLIB is not set

Kernel bot has discovered that if CONFIG_GPIOLIB is not set compilation
will fail.

Upon investigation the issue is that qca807x_gpio() is guarded by a
preprocessor check but then it is called under
if (IS_ENABLED(CONFIG_GPIOLIB)) in the probe call so the compiler will
error out since qca807x_gpio() has not been declared if CONFIG_GPIOLIB has
not been set.

Fixes: d1cb613efbd3 ("net: phy: qcom: add support for QCA807x PHY Family")
Reported-by: kernel test robot <[email protected]>
Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/
Signed-off-by: Robert Marko <[email protected]>
---
Changes in v2:
* Reduce the code indent level

drivers/net/phy/qcom/qca807x.c | 32 ++++++++++++++++----------------
1 file changed, 16 insertions(+), 16 deletions(-)

diff --git a/drivers/net/phy/qcom/qca807x.c b/drivers/net/phy/qcom/qca807x.c
index 780c28e2e4aa..672c6929119a 100644
--- a/drivers/net/phy/qcom/qca807x.c
+++ b/drivers/net/phy/qcom/qca807x.c
@@ -732,24 +732,24 @@ static int qca807x_probe(struct phy_device *phydev)
priv->dac_disable_bias_current_tweak = of_property_read_bool(node,
"qcom,dac-disable-bias-current-tweak");

- if (IS_ENABLED(CONFIG_GPIOLIB)) {
- /* Make sure we don't have mixed leds node and gpio-controller
- * to prevent registering leds and having gpio-controller usage
- * conflicting with them.
- */
- if (of_find_property(node, "leds", NULL) &&
- of_find_property(node, "gpio-controller", NULL)) {
- phydev_err(phydev, "Invalid property detected. LEDs and gpio-controller are mutually exclusive.");
- return -EINVAL;
- }
+#if IS_ENABLED(CONFIG_GPIOLIB)
+ /* Make sure we don't have mixed leds node and gpio-controller
+ * to prevent registering leds and having gpio-controller usage
+ * conflicting with them.
+ */
+ if (of_find_property(node, "leds", NULL) &&
+ of_find_property(node, "gpio-controller", NULL)) {
+ phydev_err(phydev, "Invalid property detected. LEDs and gpio-controller are mutually exclusive.");
+ return -EINVAL;
+ }

- /* Do not register a GPIO controller unless flagged for it */
- if (of_property_read_bool(node, "gpio-controller")) {
- ret = qca807x_gpio(phydev);
- if (ret)
- return ret;
- }
+ /* Do not register a GPIO controller unless flagged for it */
+ if (of_property_read_bool(node, "gpio-controller")) {
+ ret = qca807x_gpio(phydev);
+ if (ret)
+ return ret;
}
+#endif

/* Attach SFP bus on combo port*/
if (phy_read(phydev, QCA807X_CHIP_CONFIGURATION)) {
--
2.44.0



2024-03-05 14:36:36

by Robert Marko

[permalink] [raw]
Subject: Re: [PATCH net v2] net: phy: qca807x: fix compilation when CONFIG_GPIOLIB is not set

On Tue, 5 Mar 2024 at 14:59, Robert Marko <[email protected]> wrote:
>
> Kernel bot has discovered that if CONFIG_GPIOLIB is not set compilation
> will fail.
>
> Upon investigation the issue is that qca807x_gpio() is guarded by a
> preprocessor check but then it is called under
> if (IS_ENABLED(CONFIG_GPIOLIB)) in the probe call so the compiler will
> error out since qca807x_gpio() has not been declared if CONFIG_GPIOLIB has
> not been set.
>
> Fixes: d1cb613efbd3 ("net: phy: qcom: add support for QCA807x PHY Family")
> Reported-by: kernel test robot <[email protected]>
> Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/
> Signed-off-by: Robert Marko <[email protected]>

I will resend this as I sent it targeting net instead of net-next.

Regards,
Robert
> ---
> Changes in v2:
> * Reduce the code indent level
>
> drivers/net/phy/qcom/qca807x.c | 32 ++++++++++++++++----------------
> 1 file changed, 16 insertions(+), 16 deletions(-)
>
> diff --git a/drivers/net/phy/qcom/qca807x.c b/drivers/net/phy/qcom/qca807x.c
> index 780c28e2e4aa..672c6929119a 100644
> --- a/drivers/net/phy/qcom/qca807x.c
> +++ b/drivers/net/phy/qcom/qca807x.c
> @@ -732,24 +732,24 @@ static int qca807x_probe(struct phy_device *phydev)
> priv->dac_disable_bias_current_tweak = of_property_read_bool(node,
> "qcom,dac-disable-bias-current-tweak");
>
> - if (IS_ENABLED(CONFIG_GPIOLIB)) {
> - /* Make sure we don't have mixed leds node and gpio-controller
> - * to prevent registering leds and having gpio-controller usage
> - * conflicting with them.
> - */
> - if (of_find_property(node, "leds", NULL) &&
> - of_find_property(node, "gpio-controller", NULL)) {
> - phydev_err(phydev, "Invalid property detected. LEDs and gpio-controller are mutually exclusive.");
> - return -EINVAL;
> - }
> +#if IS_ENABLED(CONFIG_GPIOLIB)
> + /* Make sure we don't have mixed leds node and gpio-controller
> + * to prevent registering leds and having gpio-controller usage
> + * conflicting with them.
> + */
> + if (of_find_property(node, "leds", NULL) &&
> + of_find_property(node, "gpio-controller", NULL)) {
> + phydev_err(phydev, "Invalid property detected. LEDs and gpio-controller are mutually exclusive.");
> + return -EINVAL;
> + }
>
> - /* Do not register a GPIO controller unless flagged for it */
> - if (of_property_read_bool(node, "gpio-controller")) {
> - ret = qca807x_gpio(phydev);
> - if (ret)
> - return ret;
> - }
> + /* Do not register a GPIO controller unless flagged for it */
> + if (of_property_read_bool(node, "gpio-controller")) {
> + ret = qca807x_gpio(phydev);
> + if (ret)
> + return ret;
> }
> +#endif
>
> /* Attach SFP bus on combo port*/
> if (phy_read(phydev, QCA807X_CHIP_CONFIGURATION)) {
> --
> 2.44.0
>