From: Dan Carpenter <dan.carpenter@oracle.com>
To: kbuild@lists.01.org
Subject: [dinguyen:v5.10_socfpga_reset_fix 1/1] drivers/reset/reset-socfpga.c:69 a10_reset_init() error: uninitialized symbol 'size'.
Date: Wed, 28 Oct 2020 15:46:12 +0300 [thread overview]
Message-ID: <20201028124612.GD1042@kadam> (raw)
[-- Attachment #1: Type: text/plain, Size: 4860 bytes --]
tree: https://git.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux.git v5.10_socfpga_reset_fix
head: 2e7fffa64d1ec2ecb8bc368ec37e5ae2ac8cc6a1
commit: 2e7fffa64d1ec2ecb8bc368ec37e5ae2ac8cc6a1 [1/1] reset: socfpga: add error handling and release mem-region
config: i386-randconfig-m021-20201026 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
smatch warnings:
drivers/reset/reset-socfpga.c:69 a10_reset_init() error: uninitialized symbol 'size'.
vim +/size +69 drivers/reset/reset-socfpga.c
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 22 static int a10_reset_init(struct device_node *np)
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 23 {
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 24 struct reset_simple_data *data;
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 25 struct resource res;
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 26 resource_size_t size;
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 27 int ret;
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 28 u32 reg_offset = 0x10;
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 29
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 30 data = kzalloc(sizeof(*data), GFP_KERNEL);
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 31 if (!data)
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 32 return -ENOMEM;
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 33
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 34 ret = of_address_to_resource(np, 0, &res);
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 35 if (ret)
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 36 goto err_alloc;
^^^^^^^^^^^^^^^
Size isn't initialzed here and you can't really release a memory_region
that wasn't requested successfully. Do this instead:
ret = of_address_to_resource(np, 0, &res);
if (ret)
goto free_data;
size = resource_size(&res);
if (!request_mem_region(res.start, size, np->name)) {
ret = -EBUSY;
goto free_data;
}
data->membase = ioremap(res.start, size);
if (!data->membase) {
ret = -ENOMEM;
goto release_region;
}
...
return 0;
release_region:
release_mem_region(res.start, size);
free_data:
kfree(data);
return ret;
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 37
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 38 size = resource_size(&res);
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 39 if (!request_mem_region(res.start, size, np->name)) {
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 40 ret = -EBUSY;
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 41 goto err_alloc;
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 42 }
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 43
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 44 data->membase = ioremap(res.start, size);
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 45 if (!data->membase) {
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 46 ret = -ENOMEM;
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 47 goto err_alloc;
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 48 }
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 49
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 50 if (of_property_read_u32(np, "altr,modrst-offset", ®_offset))
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 51 pr_warn("missing altr,modrst-offset property, assuming 0x10\n");
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 52 data->membase += reg_offset;
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 53
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 54 spin_lock_init(&data->lock);
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 55
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 56 data->rcdev.owner = THIS_MODULE;
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 57 data->rcdev.nr_resets = SOCFPGA_NR_BANKS * 32;
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 58 data->rcdev.ops = &reset_simple_ops;
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 59 data->rcdev.of_node = np;
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 60 data->status_active_low = true;
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 61
2e7fffa64d1ec2e Dinh Nguyen 2020-10-27 62 ret = reset_controller_register(&data->rcdev);
2e7fffa64d1ec2e Dinh Nguyen 2020-10-27 63 if (ret)
2e7fffa64d1ec2e Dinh Nguyen 2020-10-27 64 pr_err("unable to register device\n");
2e7fffa64d1ec2e Dinh Nguyen 2020-10-27 65
2e7fffa64d1ec2e Dinh Nguyen 2020-10-27 66 return 0;
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 67
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 68 err_alloc:
2e7fffa64d1ec2e Dinh Nguyen 2020-10-27 @69 release_mem_region(res.start, size);
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 70 kfree(data);
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 71 return ret;
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 72 };
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 39752 bytes --]
WARNING: multiple messages have this Message-ID (diff)
From: Dan Carpenter <dan.carpenter@oracle.com>
To: kbuild-all@lists.01.org
Subject: [dinguyen:v5.10_socfpga_reset_fix 1/1] drivers/reset/reset-socfpga.c:69 a10_reset_init() error: uninitialized symbol 'size'.
Date: Wed, 28 Oct 2020 15:46:12 +0300 [thread overview]
Message-ID: <20201028124612.GD1042@kadam> (raw)
[-- Attachment #1: Type: text/plain, Size: 4860 bytes --]
tree: https://git.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux.git v5.10_socfpga_reset_fix
head: 2e7fffa64d1ec2ecb8bc368ec37e5ae2ac8cc6a1
commit: 2e7fffa64d1ec2ecb8bc368ec37e5ae2ac8cc6a1 [1/1] reset: socfpga: add error handling and release mem-region
config: i386-randconfig-m021-20201026 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
smatch warnings:
drivers/reset/reset-socfpga.c:69 a10_reset_init() error: uninitialized symbol 'size'.
vim +/size +69 drivers/reset/reset-socfpga.c
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 22 static int a10_reset_init(struct device_node *np)
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 23 {
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 24 struct reset_simple_data *data;
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 25 struct resource res;
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 26 resource_size_t size;
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 27 int ret;
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 28 u32 reg_offset = 0x10;
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 29
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 30 data = kzalloc(sizeof(*data), GFP_KERNEL);
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 31 if (!data)
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 32 return -ENOMEM;
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 33
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 34 ret = of_address_to_resource(np, 0, &res);
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 35 if (ret)
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 36 goto err_alloc;
^^^^^^^^^^^^^^^
Size isn't initialzed here and you can't really release a memory_region
that wasn't requested successfully. Do this instead:
ret = of_address_to_resource(np, 0, &res);
if (ret)
goto free_data;
size = resource_size(&res);
if (!request_mem_region(res.start, size, np->name)) {
ret = -EBUSY;
goto free_data;
}
data->membase = ioremap(res.start, size);
if (!data->membase) {
ret = -ENOMEM;
goto release_region;
}
...
return 0;
release_region:
release_mem_region(res.start, size);
free_data:
kfree(data);
return ret;
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 37
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 38 size = resource_size(&res);
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 39 if (!request_mem_region(res.start, size, np->name)) {
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 40 ret = -EBUSY;
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 41 goto err_alloc;
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 42 }
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 43
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 44 data->membase = ioremap(res.start, size);
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 45 if (!data->membase) {
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 46 ret = -ENOMEM;
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 47 goto err_alloc;
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 48 }
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 49
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 50 if (of_property_read_u32(np, "altr,modrst-offset", ®_offset))
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 51 pr_warn("missing altr,modrst-offset property, assuming 0x10\n");
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 52 data->membase += reg_offset;
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 53
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 54 spin_lock_init(&data->lock);
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 55
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 56 data->rcdev.owner = THIS_MODULE;
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 57 data->rcdev.nr_resets = SOCFPGA_NR_BANKS * 32;
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 58 data->rcdev.ops = &reset_simple_ops;
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 59 data->rcdev.of_node = np;
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 60 data->status_active_low = true;
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 61
2e7fffa64d1ec2e Dinh Nguyen 2020-10-27 62 ret = reset_controller_register(&data->rcdev);
2e7fffa64d1ec2e Dinh Nguyen 2020-10-27 63 if (ret)
2e7fffa64d1ec2e Dinh Nguyen 2020-10-27 64 pr_err("unable to register device\n");
2e7fffa64d1ec2e Dinh Nguyen 2020-10-27 65
2e7fffa64d1ec2e Dinh Nguyen 2020-10-27 66 return 0;
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 67
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 68 err_alloc:
2e7fffa64d1ec2e Dinh Nguyen 2020-10-27 @69 release_mem_region(res.start, size);
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 70 kfree(data);
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 71 return ret;
b3ca9888f35fa69 Dinh Nguyen 2018-11-13 72 };
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 39752 bytes --]
next reply other threads:[~2020-10-28 12:46 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-10-28 12:46 Dan Carpenter [this message]
2020-10-28 12:46 ` [dinguyen:v5.10_socfpga_reset_fix 1/1] drivers/reset/reset-socfpga.c:69 a10_reset_init() error: uninitialized symbol 'size' Dan Carpenter
-- strict thread matches above, loose matches on Subject: below --
2020-10-28 7:56 kernel test robot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20201028124612.GD1042@kadam \
--to=dan.carpenter@oracle.com \
--cc=kbuild@lists.01.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.