Message ID | 1614244046-57560-1-git-send-email-yang.lee@linux.alibaba.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | regulator: add missing call to of_node_put() | expand |
Hi, thanks for reporting this, you're right but you've missed the braces around the if block in your patch, because we really want to exit only on -ENOMEM. Something like: if (ret == -ENOMEM) { of_node_put(child); return ret; } Regards, Cristian On Thu, Feb 25, 2021 at 05:07:26PM +0800, Yang Li wrote: > In one of the error paths of the for_each_child_of_node() loop, > add missing call to of_node_put(). > > Fix the following coccicheck warning: > ./drivers/regulator/scmi-regulator.c:343:1-23: WARNING: Function > "for_each_child_of_node" should have of_node_put() before return around > line 347. > > Reported-by: Abaci Robot <abaci@linux.alibaba.com> > Signed-off-by: Yang Li <yang.lee@linux.alibaba.com> > --- > drivers/regulator/scmi-regulator.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/regulator/scmi-regulator.c b/drivers/regulator/scmi-regulator.c > index 0e8b3ca..a41bb06 100644 > --- a/drivers/regulator/scmi-regulator.c > +++ b/drivers/regulator/scmi-regulator.c > @@ -344,6 +344,7 @@ static int scmi_regulator_probe(struct scmi_device *sdev) > ret = process_scmi_regulator_of_node(sdev, child, rinfo); > /* abort on any mem issue */ > if (ret == -ENOMEM) > + of_node_put(child); > return ret; > } > > -- > 1.8.3.1 >
Hi Yang,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on regulator/for-next]
[also build test WARNING on v5.11 next-20210225]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Yang-Li/regulator-add-missing-call-to-of_node_put/20210225-171554
base: https://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator.git for-next
config: x86_64-randconfig-a002-20210225 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project a921aaf789912d981cbb2036bdc91ad7289e1523)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install x86_64 cross compiling tool for clang build
# apt-get install binutils-x86-64-linux-gnu
# https://github.com/0day-ci/linux/commit/1e86ace1b41a7e1cd7f89e0ceba95768d4e5760a
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Yang-Li/regulator-add-missing-call-to-of_node_put/20210225-171554
git checkout 1e86ace1b41a7e1cd7f89e0ceba95768d4e5760a
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All warnings (new ones prefixed by >>):
>> drivers/regulator/scmi-regulator.c:348:4: warning: misleading indentation; statement is not part of the previous 'if' [-Wmisleading-indentation]
return ret;
^
drivers/regulator/scmi-regulator.c:346:3: note: previous statement is here
if (ret == -ENOMEM)
^
1 warning generated.
vim +/if +348 drivers/regulator/scmi-regulator.c
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 298
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 299 static int scmi_regulator_probe(struct scmi_device *sdev)
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 300 {
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 301 int d, ret, num_doms;
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 302 struct device_node *np, *child;
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 303 const struct scmi_handle *handle = sdev->handle;
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 304 struct scmi_regulator_info *rinfo;
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 305
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 306 if (!handle || !handle->voltage_ops)
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 307 return -ENODEV;
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 308
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 309 num_doms = handle->voltage_ops->num_domains_get(handle);
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 310 if (num_doms <= 0) {
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 311 if (!num_doms) {
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 312 dev_err(&sdev->dev,
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 313 "number of voltage domains invalid\n");
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 314 num_doms = -EINVAL;
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 315 } else {
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 316 dev_err(&sdev->dev,
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 317 "failed to get voltage domains - err:%d\n",
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 318 num_doms);
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 319 }
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 320
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 321 return num_doms;
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 322 }
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 323
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 324 rinfo = devm_kzalloc(&sdev->dev, sizeof(*rinfo), GFP_KERNEL);
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 325 if (!rinfo)
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 326 return -ENOMEM;
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 327
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 328 /* Allocate pointers array for all possible domains */
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 329 rinfo->sregv = devm_kcalloc(&sdev->dev, num_doms,
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 330 sizeof(void *), GFP_KERNEL);
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 331 if (!rinfo->sregv)
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 332 return -ENOMEM;
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 333
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 334 rinfo->num_doms = num_doms;
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 335
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 336 /*
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 337 * Start collecting into rinfo->sregv possibly good SCMI Regulators as
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 338 * described by a well-formed DT entry and associated with an existing
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 339 * plausible SCMI Voltage Domain number, all belonging to this SCMI
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 340 * platform instance node (handle->dev->of_node).
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 341 */
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 342 np = of_find_node_by_name(handle->dev->of_node, "regulators");
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 343 for_each_child_of_node(np, child) {
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 344 ret = process_scmi_regulator_of_node(sdev, child, rinfo);
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 345 /* abort on any mem issue */
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 346 if (ret == -ENOMEM)
1e86ace1b41a7e Yang Li 2021-02-25 347 of_node_put(child);
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 @348 return ret;
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 349 }
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 350
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 351 /*
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 352 * Register a regulator for each valid regulator-DT-entry that we
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 353 * can successfully reach via SCMI and has a valid associated voltage
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 354 * domain.
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 355 */
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 356 for (d = 0; d < num_doms; d++) {
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 357 struct scmi_regulator *sreg = rinfo->sregv[d];
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 358
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 359 /* Skip empty slots */
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 360 if (!sreg)
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 361 continue;
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 362
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 363 ret = scmi_regulator_common_init(sreg);
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 364 /* Skip invalid voltage domains */
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 365 if (ret)
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 366 continue;
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 367
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 368 sreg->rdev = devm_regulator_register(&sdev->dev, &sreg->desc,
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 369 &sreg->conf);
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 370 if (IS_ERR(sreg->rdev)) {
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 371 sreg->rdev = NULL;
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 372 continue;
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 373 }
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 374
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 375 dev_info(&sdev->dev,
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 376 "Regulator %s registered for domain [%d]\n",
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 377 sreg->desc.name, sreg->id);
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 378 }
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 379
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 380 dev_set_drvdata(&sdev->dev, rinfo);
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 381
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 382 return 0;
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 383 }
0fbeae70ee7ce9 Cristian Marussi 2020-11-23 384
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
Hi Yang,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on regulator/for-next]
[also build test WARNING on v5.11 next-20210225]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Yang-Li/regulator-add-missing-call-to-of_node_put/20210225-171554
base: https://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator.git for-next
config: riscv-allmodconfig (attached as .config)
compiler: riscv64-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/0day-ci/linux/commit/1e86ace1b41a7e1cd7f89e0ceba95768d4e5760a
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Yang-Li/regulator-add-missing-call-to-of_node_put/20210225-171554
git checkout 1e86ace1b41a7e1cd7f89e0ceba95768d4e5760a
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=riscv
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All warnings (new ones prefixed by >>):
drivers/regulator/scmi-regulator.c: In function 'scmi_regulator_probe':
>> drivers/regulator/scmi-regulator.c:346:3: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
346 | if (ret == -ENOMEM)
| ^~
drivers/regulator/scmi-regulator.c:348:4: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
348 | return ret;
| ^~~~~~
vim +/if +346 drivers/regulator/scmi-regulator.c
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 298
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 299 static int scmi_regulator_probe(struct scmi_device *sdev)
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 300 {
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 301 int d, ret, num_doms;
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 302 struct device_node *np, *child;
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 303 const struct scmi_handle *handle = sdev->handle;
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 304 struct scmi_regulator_info *rinfo;
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 305
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 306 if (!handle || !handle->voltage_ops)
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 307 return -ENODEV;
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 308
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 309 num_doms = handle->voltage_ops->num_domains_get(handle);
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 310 if (num_doms <= 0) {
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 311 if (!num_doms) {
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 312 dev_err(&sdev->dev,
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 313 "number of voltage domains invalid\n");
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 314 num_doms = -EINVAL;
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 315 } else {
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 316 dev_err(&sdev->dev,
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 317 "failed to get voltage domains - err:%d\n",
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 318 num_doms);
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 319 }
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 320
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 321 return num_doms;
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 322 }
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 323
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 324 rinfo = devm_kzalloc(&sdev->dev, sizeof(*rinfo), GFP_KERNEL);
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 325 if (!rinfo)
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 326 return -ENOMEM;
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 327
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 328 /* Allocate pointers array for all possible domains */
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 329 rinfo->sregv = devm_kcalloc(&sdev->dev, num_doms,
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 330 sizeof(void *), GFP_KERNEL);
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 331 if (!rinfo->sregv)
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 332 return -ENOMEM;
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 333
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 334 rinfo->num_doms = num_doms;
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 335
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 336 /*
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 337 * Start collecting into rinfo->sregv possibly good SCMI Regulators as
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 338 * described by a well-formed DT entry and associated with an existing
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 339 * plausible SCMI Voltage Domain number, all belonging to this SCMI
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 340 * platform instance node (handle->dev->of_node).
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 341 */
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 342 np = of_find_node_by_name(handle->dev->of_node, "regulators");
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 343 for_each_child_of_node(np, child) {
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 344 ret = process_scmi_regulator_of_node(sdev, child, rinfo);
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 345 /* abort on any mem issue */
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 @346 if (ret == -ENOMEM)
1e86ace1b41a7e1c Yang Li 2021-02-25 347 of_node_put(child);
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 348 return ret;
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 349 }
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 350
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 351 /*
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 352 * Register a regulator for each valid regulator-DT-entry that we
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 353 * can successfully reach via SCMI and has a valid associated voltage
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 354 * domain.
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 355 */
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 356 for (d = 0; d < num_doms; d++) {
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 357 struct scmi_regulator *sreg = rinfo->sregv[d];
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 358
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 359 /* Skip empty slots */
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 360 if (!sreg)
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 361 continue;
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 362
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 363 ret = scmi_regulator_common_init(sreg);
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 364 /* Skip invalid voltage domains */
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 365 if (ret)
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 366 continue;
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 367
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 368 sreg->rdev = devm_regulator_register(&sdev->dev, &sreg->desc,
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 369 &sreg->conf);
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 370 if (IS_ERR(sreg->rdev)) {
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 371 sreg->rdev = NULL;
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 372 continue;
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 373 }
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 374
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 375 dev_info(&sdev->dev,
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 376 "Regulator %s registered for domain [%d]\n",
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 377 sreg->desc.name, sreg->id);
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 378 }
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 379
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 380 dev_set_drvdata(&sdev->dev, rinfo);
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 381
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 382 return 0;
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 383 }
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 384
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
diff --git a/drivers/regulator/scmi-regulator.c b/drivers/regulator/scmi-regulator.c index 0e8b3ca..a41bb06 100644 --- a/drivers/regulator/scmi-regulator.c +++ b/drivers/regulator/scmi-regulator.c @@ -344,6 +344,7 @@ static int scmi_regulator_probe(struct scmi_device *sdev) ret = process_scmi_regulator_of_node(sdev, child, rinfo); /* abort on any mem issue */ if (ret == -ENOMEM) + of_node_put(child); return ret; }
In one of the error paths of the for_each_child_of_node() loop, add missing call to of_node_put(). Fix the following coccicheck warning: ./drivers/regulator/scmi-regulator.c:343:1-23: WARNING: Function "for_each_child_of_node" should have of_node_put() before return around line 347. Reported-by: Abaci Robot <abaci@linux.alibaba.com> Signed-off-by: Yang Li <yang.lee@linux.alibaba.com> --- drivers/regulator/scmi-regulator.c | 1 + 1 file changed, 1 insertion(+)