drivers/staging/comedi/drivers/s626.c:2516 s626_attach_pci() warn:
PATCH 253/267 drivers/staging/comedi/drivers/s626.c:2516 s626_attach_pci() warn:
Hi H,
FYI, there are new smatch warnings show up in
tree: git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git staging-next head: 3cd73bc1cf59b2c9232d9889ba2b148e262054b6 commit: 8c7e4277c1197d31c0b34dbaf23e6edddb5978f7 [253/267] staging: comedi: s626: cleanup request_irq in s626_attach_pci()
drivers/staging/comedi/drivers/s626.c:1428 s626_ai_cmd() Error invalid range 4096 to -1 drivers/staging/comedi/drivers/s626.c:1448 s626_ai_cmd() Error invalid range 4096 to -1 drivers/staging/comedi/drivers/s626.c:1649 s626_ai_cmdtest() Error invalid range 4096 to -1 drivers/staging/comedi/drivers/s626.c:1656 s626_ai_cmdtest() Error invalid range 4096 to -1 drivers/staging/comedi/drivers/s626.c:2504 s626_attach_pci() warn: '(dev->private)->base_addr' was not released on error drivers/staging/comedi/drivers/s626.c:2516 s626_attach_pci() warn: '(dev->private)->base_addr' was not released on error
+ drivers/staging/comedi/drivers/s626.c:2516 s626_attach_pci() warn: 'pcidev->irq' was not released on error
vim +2516 drivers/staging/comedi/drivers/s626.c
2500 /* DMA FIXME DMA// */
2501
2502 ret = s626_allocate_dma_buffers(dev);
2503 if (ret)
2504 return ret;
2505
2506 if (pcidev->irq) {
2507 ret = request_irq(pcidev->irq, s626_irq_handler, IRQF_SHARED,
2508 dev->board_name, dev);
2509
2510 if (ret = 0)
2511 dev->irq = pcidev->irq;
2512 }
2513
2514 ret = comedi_alloc_subdevices(dev, 6);
2515 if (ret)
Quoted 1 line
2516 return ret;
2517
2518 s = dev->subdevices + 0;
2519 /* analog input subdevice */
2520 dev->read_subdev = s;
2521 /* we support single-ended (ground) and differential */
2522 s->type = COMEDI_SUBD_AI;
2523 s->subdev_flags = SDF_READABLE | SDF_DIFF | SDF_CMD_READ;
2524 s->n_chan = S626_ADC_CHANNELS;
---
0-DAY kernel build testing backend Open Source Technology Centre
Fengguang Wu, Yuanhan Liu Intel Corporation
RE: [staging:staging-next 253/267] drivers/staging/comedi/drivers/s626.c:2516 s626_attach_pci() warn
Quoted 7 lines · Fengguang Wu
FYI, there are new smatch warnings show up in
tree: git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git staging-next head: 3cd73bc1cf59b2c9232d9889ba2b148e262054b6 commit: 8c7e4277c1197d31c0b34dbaf23e6edddb5978f7 [253/267] staging: comedi: s626: cleanup request_irq in s626_attach_pci()
Quoted 7 lines
drivers/staging/comedi/drivers/s626.c:1428s626_ai_cmd()Error invalid range 4096 to -1drivers/staging/comedi/drivers/s626.c:1448s626_ai_cmd()Error invalid range 4096 to -1drivers/staging/comedi/drivers/s626.c:1649s626_ai_cmdtest()Error invalid range 4096 to -1drivers/staging/comedi/drivers/s626.c:1656s626_ai_cmdtest()Error invalid range 4096 to -1drivers/staging/comedi/drivers/s626.c:2504s626_attach_pci()warn: '(dev->private)->base_addr' was not released on errordrivers/staging/comedi/drivers/s626.c:2516s626_attach_pci()warn: '(dev->private)->base_addr' was not released on error
+drivers/staging/comedi/drivers/s626.c:2516s626_attach_pci()warn: 'pcidev->irq' was not released on error
These shouldn't be "new" warnings. The logic of the code has not been changed. Its just been shuffled around.
I'll take a look at the first four tommorrow just to make sure. They may actually be a problem but they shouldn't be new.
The last three warnings should exist in _every_ comedi driver. The comedi drivers are designed _not_ to release anything in the "attach" functions. Everything gets released either in the "detach" function or by the comedi core itself. I think it was orignally modeled on the tty subsystem.
I plan on looking into if it would be cleaner for the "attach" functions to cleanup after themselves on error. My initial impression is that the patch to "fix" this is going to be huge...
Regards,
Hartley
Re: [staging:staging-next 253/267] drivers/staging/comedi/drivers/s626.c:2516 s626_attach_pci() warn
In reply to Fengguang WuQuoted 16 lines · H Hartley Sweeten
Quoted 7 lines · Fengguang Wu
FYI, there are new smatch warnings show up in
tree: git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git staging-next head: 3cd73bc1cf59b2c9232d9889ba2b148e262054b6 commit: 8c7e4277c1197d31c0b34dbaf23e6edddb5978f7 [253/267] staging: comedi: s626: cleanup request_irq in s626_attach_pci()Quoted 7 lines
drivers/staging/comedi/drivers/s626.c:1428s626_ai_cmd()Error invalid range 4096 to -1drivers/staging/comedi/drivers/s626.c:1448s626_ai_cmd()Error invalid range 4096 to -1drivers/staging/comedi/drivers/s626.c:1649s626_ai_cmdtest()Error invalid range 4096 to -1drivers/staging/comedi/drivers/s626.c:1656s626_ai_cmdtest()Error invalid range 4096 to -1drivers/staging/comedi/drivers/s626.c:2504s626_attach_pci()warn: '(dev->private)->base_addr' was not released on errordrivers/staging/comedi/drivers/s626.c:2516s626_attach_pci()warn: '(dev->private)->base_addr' was not released on error
+drivers/staging/comedi/drivers/s626.c:2516s626_attach_pci()warn: 'pcidev->irq' was not released on error
Quoted 5 lines
These shouldn't be "new" warnings. The logic of the code has not been changed. Its just been shuffled around.
I'll take a look at the first four tommorrow just to make sure. They may actually be a problem but they shouldn't be new.
Right, it's not really a new *problem*. Technically, it's classified as "new" by the script because of the s626_attach()=>s626_attach_pci() rename, which makes it a new error *message*. This prevents the system from bisecting it to the initial commit that caused the *problem*.
Hopefully such mistakes will only happen on a small fraction of pretty old bugs.
Quoted 5 lines
The last three warnings should exist in _every_ comedi driver. The comedi drivers are designed _not_ to release anything in the "attach" functions. Everything gets released either in the "detach" function or by the comedi core itself. I think it was orignally modeled on the tty subsystem.
Ah OK. These error messages will be ignored by the build system until there comes another rename ;)
Quoted 3 lines
I plan on looking into if it would be cleaner for the "attach" functions to cleanup after themselves on error. My initial impression is that the patch to "fix" this is going to be huge...
OK, thanks!
Fengguang
Re: [staging:staging-next 253/267] drivers/staging/comedi/drivers/s626.c:2516 s626_attach_pci() warn
In reply to Fengguang WuQuoted 9 lines · Fengguang Wu
Quoted 8 lines · H Hartley Sweeten
Quoted 7 lines · Fengguang Wu
FYI, there are new smatch warnings show up in
tree: git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git staging-next head: 3cd73bc1cf59b2c9232d9889ba2b148e262054b6 commit: 8c7e4277c1197d31c0b34dbaf23e6edddb5978f7 [253/267] staging: comedi: s626: cleanup request_irq in s626_attach_pci()
Quoted 7 lines
Quoted 7 lines
Quoted 7 lines
drivers/staging/comedi/drivers/s626.c:1428s626_ai_cmd()Error invalid range 4096 to -1drivers/staging/comedi/drivers/s626.c:1448s626_ai_cmd()Error invalid range 4096 to -1drivers/staging/comedi/drivers/s626.c:1649s626_ai_cmdtest()Error invalid range 4096 to -1drivers/staging/comedi/drivers/s626.c:1656s626_ai_cmdtest()Error invalid range 4096 to -1drivers/staging/comedi/drivers/s626.c:2504s626_attach_pci()warn: '(dev->private)->base_addr' was not released on errordrivers/staging/comedi/drivers/s626.c:2516s626_attach_pci()warn: '(dev->private)->base_addr' was not released on error
+drivers/staging/comedi/drivers/s626.c:2516s626_attach_pci()warn: 'pcidev->irq' was not released on error
Gar. That check produces too many false positives because of logic like comedi's. I want to move it under --spammy.
Fengguang, that would be ok with you?
regards,
dan carpenter
Re: [staging:staging-next 253/267] drivers/staging/comedi/drivers/s626.c:2516 s626_attach_pci() warn
In reply to Fengguang WuQuoted 18 lines · Dan Carpenter
Quoted 9 lines · Fengguang Wu
Quoted 8 lines · H Hartley Sweeten
Quoted 7 lines · Fengguang Wu
FYI, there are new smatch warnings show up in
tree: git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git staging-next head: 3cd73bc1cf59b2c9232d9889ba2b148e262054b6 commit: 8c7e4277c1197d31c0b34dbaf23e6edddb5978f7 [253/267] staging: comedi: s626: cleanup request_irq in s626_attach_pci()Quoted 7 lines
Quoted 7 lines
Quoted 7 lines
drivers/staging/comedi/drivers/s626.c:1428s626_ai_cmd()Error invalid range 4096 to -1drivers/staging/comedi/drivers/s626.c:1448s626_ai_cmd()Error invalid range 4096 to -1drivers/staging/comedi/drivers/s626.c:1649s626_ai_cmdtest()Error invalid range 4096 to -1drivers/staging/comedi/drivers/s626.c:1656s626_ai_cmdtest()Error invalid range 4096 to -1drivers/staging/comedi/drivers/s626.c:2504s626_attach_pci()warn: '(dev->private)->base_addr' was not released on errordrivers/staging/comedi/drivers/s626.c:2516s626_attach_pci()warn: '(dev->private)->base_addr' was not released on error
+drivers/staging/comedi/drivers/s626.c:2516s626_attach_pci()warn: 'pcidev->irq' was not released on error
Quoted 4 lines
Gar. That check produces too many false positives because of logic like comedi's. I want to move it under --spammy.
Fengguang, that would be ok with you?
I have no strong idea about this because I've not run into many such "not released on error" warnings.
I don't quite get the "invalid range 4096 to -1" warnings and they show up quite often. What's your typical way to tell whether it's a false warning?
Thanks,
Fengguang