tree:
https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git staging-next
head: 06b0c0dce88e2aa2f01343db0f26d214d7f264a0
commit: a2e904fc59e15d9e4128415579a2664ab3a1ed14 [67/73] staging: hikey9xx:
hi6421-spmi-pmic: cleanup probe code
config: x86_64-randconfig-m001-20210207 (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(a)intel.com>
Reported-by: Dan Carpenter <dan.carpenter(a)oracle.com>
New smatch warnings:
drivers/staging/hikey9xx/hi6421-spmi-pmic.c:238 hi6421_spmi_pmic_probe() warn:
'ddata->irq' not released on lines: 238.
Old smatch warnings:
drivers/staging/hikey9xx/hi6421-spmi-pmic.c:52 hi6421_spmi_irq_handler() error:
uninitialized symbol 'offset'.
vim +238 drivers/staging/hikey9xx/hi6421-spmi-pmic.c
1eb2784a90925d Mauro Carvalho Chehab 2020-08-17 164 static int
hi6421_spmi_pmic_probe(struct spmi_device *pdev)
4524ac56cdcabf Mayulong 2020-08-17 165 {
4524ac56cdcabf Mayulong 2020-08-17 166 struct device *dev =
&pdev->dev;
4524ac56cdcabf Mayulong 2020-08-17 167 struct device_node *np =
dev->of_node;
fcd732406c5d65 Mauro Carvalho Chehab 2021-01-29 168 struct hi6421_spmi_pmic *ddata;
4524ac56cdcabf Mayulong 2020-08-17 169 unsigned int virq;
6b946699252c68 Mauro Carvalho Chehab 2020-08-17 170 int ret, i;
4524ac56cdcabf Mayulong 2020-08-17 171
fcd732406c5d65 Mauro Carvalho Chehab 2021-01-29 172 ddata = devm_kzalloc(dev,
sizeof(*ddata), GFP_KERNEL);
fcd732406c5d65 Mauro Carvalho Chehab 2021-01-29 173 if (!ddata)
4524ac56cdcabf Mayulong 2020-08-17 174 return -ENOMEM;
4524ac56cdcabf Mayulong 2020-08-17 175
a2e904fc59e15d Mauro Carvalho Chehab 2021-01-29 176 ddata->regmap =
devm_regmap_init_spmi_ext(pdev, ®map_config);
a2e904fc59e15d Mauro Carvalho Chehab 2021-01-29 177 if (IS_ERR(ddata->regmap))
a2e904fc59e15d Mauro Carvalho Chehab 2021-01-29 178 return PTR_ERR(ddata->regmap);
fb02e3ebfb2da2 Mauro Carvalho Chehab 2021-01-29 179
fcd732406c5d65 Mauro Carvalho Chehab 2021-01-29 180
spin_lock_init(&ddata->lock);
4524ac56cdcabf Mayulong 2020-08-17 181
fcd732406c5d65 Mauro Carvalho Chehab 2021-01-29 182 ddata->dev = dev;
4524ac56cdcabf Mayulong 2020-08-17 183
fcd732406c5d65 Mauro Carvalho Chehab 2021-01-29 184 ddata->gpio = of_get_gpio(np,
0);
fcd732406c5d65 Mauro Carvalho Chehab 2021-01-29 185 if (ddata->gpio < 0)
fcd732406c5d65 Mauro Carvalho Chehab 2021-01-29 186 return ddata->gpio;
4524ac56cdcabf Mayulong 2020-08-17 187
fcd732406c5d65 Mauro Carvalho Chehab 2021-01-29 188 if
(!gpio_is_valid(ddata->gpio))
4524ac56cdcabf Mayulong 2020-08-17 189 return -EINVAL;
4524ac56cdcabf Mayulong 2020-08-17 190
fcd732406c5d65 Mauro Carvalho Chehab 2021-01-29 191 ret = devm_gpio_request_one(dev,
ddata->gpio, GPIOF_IN, "pmic");
4524ac56cdcabf Mayulong 2020-08-17 192 if (ret < 0) {
a2e904fc59e15d Mauro Carvalho Chehab 2021-01-29 193 dev_err(dev, "Failed to
request gpio%d\n", ddata->gpio);
4524ac56cdcabf Mayulong 2020-08-17 194 return ret;
4524ac56cdcabf Mayulong 2020-08-17 195 }
4524ac56cdcabf Mayulong 2020-08-17 196
fcd732406c5d65 Mauro Carvalho Chehab 2021-01-29 197 ddata->irq =
gpio_to_irq(ddata->gpio);
4524ac56cdcabf Mayulong 2020-08-17 198
fcd732406c5d65 Mauro Carvalho Chehab 2021-01-29 199 hi6421_spmi_pmic_irq_prc(ddata);
4524ac56cdcabf Mayulong 2020-08-17 200
fcd732406c5d65 Mauro Carvalho Chehab 2021-01-29 201 ddata->irqs = devm_kzalloc(dev,
HISI_IRQ_NUM * sizeof(int), GFP_KERNEL);
a2e904fc59e15d Mauro Carvalho Chehab 2021-01-29 202 if (!ddata->irqs)
a2e904fc59e15d Mauro Carvalho Chehab 2021-01-29 203 return -ENOMEM;
4524ac56cdcabf Mayulong 2020-08-17 204
fcd732406c5d65 Mauro Carvalho Chehab 2021-01-29 205 ddata->domain =
irq_domain_add_simple(np, HISI_IRQ_NUM, 0,
fcd732406c5d65 Mauro Carvalho Chehab 2021-01-29 206
&hi6421_spmi_domain_ops, ddata);
fcd732406c5d65 Mauro Carvalho Chehab 2021-01-29 207 if (!ddata->domain) {
a2e904fc59e15d Mauro Carvalho Chehab 2021-01-29 208 dev_err(dev, "Failed to
create IRQ domain\n");
a2e904fc59e15d Mauro Carvalho Chehab 2021-01-29 209 return -ENODEV;
4524ac56cdcabf Mayulong 2020-08-17 210 }
4524ac56cdcabf Mayulong 2020-08-17 211
b240d0143bfbc9 Mauro Carvalho Chehab 2020-08-18 212 for (i = 0; i < HISI_IRQ_NUM;
i++) {
fcd732406c5d65 Mauro Carvalho Chehab 2021-01-29 213 virq =
irq_create_mapping(ddata->domain, i);
6b946699252c68 Mauro Carvalho Chehab 2020-08-17 214 if (!virq) {
a2e904fc59e15d Mauro Carvalho Chehab 2021-01-29 215 dev_err(dev, "Failed to map
H/W IRQ\n");
a2e904fc59e15d Mauro Carvalho Chehab 2021-01-29 216 return -ENOSPC;
4524ac56cdcabf Mayulong 2020-08-17 217 }
fcd732406c5d65 Mauro Carvalho Chehab 2021-01-29 218 ddata->irqs[i] = virq;
4524ac56cdcabf Mayulong 2020-08-17 219 }
4524ac56cdcabf Mayulong 2020-08-17 220
fcd732406c5d65 Mauro Carvalho Chehab 2021-01-29 221 ret =
request_threaded_irq(ddata->irq, hi6421_spmi_irq_handler, NULL,
4524ac56cdcabf Mayulong 2020-08-17 222 IRQF_TRIGGER_LOW |
IRQF_SHARED | IRQF_NO_SUSPEND,
fcd732406c5d65 Mauro Carvalho Chehab 2021-01-29 223 "pmic", ddata);
Use the devm_request_threaded_irq() version.
4524ac56cdcabf Mayulong 2020-08-17 224 if (ret < 0) {
a2e904fc59e15d Mauro Carvalho Chehab 2021-01-29 225 dev_err(dev, "Failed to start
IRQ handling thread: error %d\n",
a2e904fc59e15d Mauro Carvalho Chehab 2021-01-29 226 ret);
a2e904fc59e15d Mauro Carvalho Chehab 2021-01-29 227 return ret;
4524ac56cdcabf Mayulong 2020-08-17 228 }
4524ac56cdcabf Mayulong 2020-08-17 229
fcd732406c5d65 Mauro Carvalho Chehab 2021-01-29 230 dev_set_drvdata(&pdev->dev,
ddata);
cf0f27b7b20b5f Mauro Carvalho Chehab 2020-08-17 231
cf0f27b7b20b5f Mauro Carvalho Chehab 2020-08-17 232 ret =
devm_mfd_add_devices(&pdev->dev, PLATFORM_DEVID_NONE,
cf0f27b7b20b5f Mauro Carvalho Chehab 2020-08-17 233 hi6421v600_devs,
ARRAY_SIZE(hi6421v600_devs),
cf0f27b7b20b5f Mauro Carvalho Chehab 2020-08-17 234 NULL, 0, NULL);
a2e904fc59e15d Mauro Carvalho Chehab 2021-01-29 235 if (ret < 0)
6b946699252c68 Mauro Carvalho Chehab 2020-08-17 236 dev_err(dev, "Failed to add
child devices: %d\n", ret);
Resource leak if devm_mfd_add_devices() fails.
6b946699252c68 Mauro Carvalho Chehab 2020-08-17 237
4524ac56cdcabf Mayulong 2020-08-17 @238 return ret;
4524ac56cdcabf Mayulong 2020-08-17 239 }
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org