Message ID | 20211211140154.23613-1-linmq006@gmail.com (mailing list archive) |
---|---|
State | Accepted |
Commit | ab8eb798ddabddb2944401bf31ead9671cb97d95 |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | net: bcmgenet: Fix NULL vs IS_ERR() checking | expand |
On Sat, 2021-12-11 at 14:01 +0000, Miaoqian Lin wrote:
> The phy_attach() function does not return NULL. It returns error pointers.
Perhaps all the functions that return error pointers rather than
NULL on error should be marked with a special attribute:
Something like:
#define __returns_nonnull __attribute__((__returns_nonnull__))
---
include/linux/compiler_attributes.h | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/include/linux/compiler_attributes.h b/include/linux/compiler_attributes.h
index 37e2600202216..e2351a36dda97 100644
--- a/include/linux/compiler_attributes.h
+++ b/include/linux/compiler_attributes.h
@@ -250,6 +250,18 @@
# define __no_profile
#endif
+/*
+ * Optional: only supported since GCC >= 5.x
+ *
+ * gcc: https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#index-returns_005fnonnull-function-attribute
+ * clang: https://clang.llvm.org/docs/AttributeReference.html#returns-nonnull
+ */
+#if __has_attribute(__returns_nonnull__)
+# define __returns_nonnull __attribute__((__returns_nonnull__))
+#else
+# define __returns_nonnull
+#endif
+
/*
* gcc: https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#index-noreturn-function-attribute
* clang: https://clang.llvm.org/docs/AttributeReference.html#noreturn
On 12/11/2021 6:01 AM, Miaoqian Lin wrote: > The phy_attach() function does not return NULL. It returns error pointers. > > Signed-off-by: Miaoqian Lin <linmq006@gmail.com> Acked-by: Florian Fainelli <f.fainelli@gmail.com>
Hello: This patch was applied to netdev/net.git (master) by David S. Miller <davem@davemloft.net>: On Sat, 11 Dec 2021 14:01:53 +0000 you wrote: > The phy_attach() function does not return NULL. It returns error pointers. > > Signed-off-by: Miaoqian Lin <linmq006@gmail.com> > --- > drivers/net/ethernet/broadcom/genet/bcmmii.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) Here is the summary with links: - net: bcmgenet: Fix NULL vs IS_ERR() checking https://git.kernel.org/netdev/net/c/ab8eb798ddab You are awesome, thank you!
diff --git a/drivers/net/ethernet/broadcom/genet/bcmmii.c b/drivers/net/ethernet/broadcom/genet/bcmmii.c index 5f259641437a..c888ddee1fc4 100644 --- a/drivers/net/ethernet/broadcom/genet/bcmmii.c +++ b/drivers/net/ethernet/broadcom/genet/bcmmii.c @@ -589,9 +589,9 @@ static int bcmgenet_mii_pd_init(struct bcmgenet_priv *priv) * Internal or external PHY with MDIO access */ phydev = phy_attach(priv->dev, phy_name, pd->phy_interface); - if (!phydev) { + if (IS_ERR(phydev)) { dev_err(kdev, "failed to register PHY device\n"); - return -ENODEV; + return PTR_ERR(phydev); } } else { /*
The phy_attach() function does not return NULL. It returns error pointers. Signed-off-by: Miaoqian Lin <linmq006@gmail.com> --- drivers/net/ethernet/broadcom/genet/bcmmii.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)