[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <202312152044.iRWfyQXJ-lkp@intel.com>
Date: Fri, 15 Dec 2023 20:50:30 +0800
From: kernel test robot <lkp@...el.com>
To: Christian Marangi <ansuelsmth@...il.com>, Andrew Lunn <andrew@...n.ch>,
Heiner Kallweit <hkallweit1@...il.com>,
Russell King <linux@...linux.org.uk>,
"David S. Miller" <davem@...emloft.net>,
Eric Dumazet <edumazet@...gle.com>,
Jakub Kicinski <kuba@...nel.org>, Paolo Abeni <pabeni@...hat.com>,
linux-kernel@...r.kernel.org
Cc: llvm@...ts.linux.dev, oe-kbuild-all@...ts.linux.dev,
netdev@...r.kernel.org, Christian Marangi <ansuelsmth@...il.com>
Subject: Re: [net-next PATCH v2 3/3] net: phy: led: dynamically allocate
speed modes array
Hi Christian,
kernel test robot noticed the following build errors:
[auto build test ERROR on net-next/main]
url: https://github.com/intel-lab-lkp/linux/commits/Christian-Marangi/net-phy-refactor-and-better-document-phy_speeds-function/20231215-064112
base: net-next/main
patch link: https://lore.kernel.org/r/20231214154906.29436-4-ansuelsmth%40gmail.com
patch subject: [net-next PATCH v2 3/3] net: phy: led: dynamically allocate speed modes array
config: arm-randconfig-003-20231215 (https://download.01.org/0day-ci/archive/20231215/202312152044.iRWfyQXJ-lkp@intel.com/config)
compiler: clang version 14.0.6 (https://github.com/llvm/llvm-project.git f28c006a5895fc0e329fe15fead81e37457cb1d1)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231215/202312152044.iRWfyQXJ-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@...el.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202312152044.iRWfyQXJ-lkp@intel.com/
All errors (new ones prefixed by >>):
>> drivers/net/phy/phy_led_triggers.c:89:30: error: implicit declaration of function 'phy_supported_speeds_num' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
phy->phy_num_led_triggers = phy_supported_speeds_num(phy);
^
drivers/net/phy/phy_led_triggers.c:89:30: note: did you mean 'phy_supported_speeds'?
include/linux/phy.h:208:14: note: 'phy_supported_speeds' declared here
unsigned int phy_supported_speeds(struct phy_device *phy,
^
>> drivers/net/phy/phy_led_triggers.c:133:2: error: implicitly declaring library function 'free' with type 'void (void *)' [-Werror,-Wimplicit-function-declaration]
free(speeds);
^
drivers/net/phy/phy_led_triggers.c:133:2: note: include the header <stdlib.h> or explicitly provide a declaration for 'free'
2 errors generated.
vim +/phy_supported_speeds_num +89 drivers/net/phy/phy_led_triggers.c
83
84 int phy_led_triggers_register(struct phy_device *phy)
85 {
86 unsigned int *speeds;
87 int i, err;
88
> 89 phy->phy_num_led_triggers = phy_supported_speeds_num(phy);
90 if (!phy->phy_num_led_triggers)
91 return 0;
92
93 speeds = kmalloc_array(phy->phy_num_led_triggers, sizeof(*speeds),
94 GFP_KERNEL);
95 if (!speeds)
96 return -ENOMEM;
97
98 /* Presence of speed modes already checked up */
99 phy_supported_speeds(phy, speeds, phy->phy_num_led_triggers);
100
101 phy->led_link_trigger = devm_kzalloc(&phy->mdio.dev,
102 sizeof(*phy->led_link_trigger),
103 GFP_KERNEL);
104 if (!phy->led_link_trigger) {
105 err = -ENOMEM;
106 goto out_clear;
107 }
108
109 err = phy_led_trigger_register(phy, phy->led_link_trigger, 0, "link");
110 if (err)
111 goto out_free_link;
112
113 phy->phy_led_triggers = devm_kcalloc(&phy->mdio.dev,
114 phy->phy_num_led_triggers,
115 sizeof(struct phy_led_trigger),
116 GFP_KERNEL);
117 if (!phy->phy_led_triggers) {
118 err = -ENOMEM;
119 goto out_unreg_link;
120 }
121
122 for (i = 0; i < phy->phy_num_led_triggers; i++) {
123 err = phy_led_trigger_register(phy, &phy->phy_led_triggers[i],
124 speeds[i],
125 phy_speed_to_str(speeds[i]));
126 if (err)
127 goto out_unreg;
128 }
129
130 phy->last_triggered = NULL;
131 phy_led_trigger_change_speed(phy);
132
> 133 free(speeds);
134
135 return 0;
136 out_unreg:
137 while (i--)
138 phy_led_trigger_unregister(&phy->phy_led_triggers[i]);
139 devm_kfree(&phy->mdio.dev, phy->phy_led_triggers);
140 out_unreg_link:
141 phy_led_trigger_unregister(phy->led_link_trigger);
142 out_free_link:
143 devm_kfree(&phy->mdio.dev, phy->led_link_trigger);
144 phy->led_link_trigger = NULL;
145 out_clear:
146 free(speeds);
147 phy->phy_num_led_triggers = 0;
148 return err;
149 }
150 EXPORT_SYMBOL_GPL(phy_led_triggers_register);
151
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
Powered by blists - more mailing lists