Skip to contentSkip to conversation

drivers/staging/comedi/drivers/s626.c:2516 s626_attach_pci() warn:

PATCH In review Fengguang Wu 3 participants 5 messages Sep 27, 2012 Kernel janitors

lore
Share & tools
lore
#0 lore raw

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

#1 lore raw

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: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

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

#2 lore raw

Re: [staging:staging-next 253/267] drivers/staging/comedi/drivers/s626.c:2516 s626_attach_pci() warn

In reply to Fengguang Wu
Quoted 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: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

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

#3 lore raw

Re: [staging:staging-next 253/267] drivers/staging/comedi/drivers/s626.c:2516 s626_attach_pci() warn

In reply to Fengguang Wu
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: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

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

#4 lore raw

Re: [staging:staging-next 253/267] drivers/staging/comedi/drivers/s626.c:2516 s626_attach_pci() warn

In reply to Fengguang Wu
Quoted 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: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

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