]> asedeno.scripts.mit.edu Git - linux.git/commit
PCI: hotplug: ensure a consistent return value in error case
authorJulia Lawall <Julia.Lawall@lip6.fr>
Mon, 16 Jul 2012 15:25:56 +0000 (09:25 -0600)
committerBjorn Helgaas <bhelgaas@google.com>
Mon, 16 Jul 2012 15:25:56 +0000 (09:25 -0600)
commit83d057107382b74a4b15c59971631aa3542599a5
treec9a5a3f79af2ff06c466bfff79dc816107f5ff2e
parentcfaf025112d3856637ff34a767ef785ef5cf2ca9
PCI: hotplug: ensure a consistent return value in error case

Typically, the return value desired for the failure of a function with an
integer return value is a negative integer.  In these cases, the return
value is sometimes a negative integer and sometimes 0, due to a subsequent
initialization of the return variable within the loop.

A simplified version of the semantic match that finds this problem is:
(http://coccinelle.lip6.fr/)

//<smpl>
@r exists@
identifier ret;
position p;
constant C;
expression e1,e3,e4;
statement S;
@@

ret = -C
... when != ret = e3
    when any
if@p (...) S
... when any
if (\(ret != 0\|ret < 0\|ret > 0\) || ...) { ... return ...; }
... when != ret = e3
    when any
*if@p (...)
{
  ... when != ret = e4
  return ret;
}
//</smpl>

[bhelgaas: squashed into one patch]
Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
drivers/pci/hotplug/cpci_hotplug_core.c
drivers/pci/hotplug/cpqphp_core.c
drivers/pci/hotplug/pcihp_skeleton.c
drivers/pci/hotplug/shpchp_core.c