Showing error 810

User: Jiri Slaby
Error type: Resource Leak
Error type description: The code omits to put the resource to the system for reuse
File location: drivers/pci/hotplug/cpcihp_generic.c
Line in file: 163
Project: Linux Kernel
Project version: 2.6.28
Tools: Stanse (1.2)
Entered: 2011-11-07 22:40:13 UTC


Source:

133
134static int query_enum(void)
135{
136        u8 value;
137
138        value = inb_p(port);
139        return ((value & enum_mask) == enum_mask);
140}
141
142static int __init cpcihp_generic_init(void)
143{
144        int status;
145        struct resource* r;
146        struct pci_dev* dev;
147
148        info(DRIVER_DESC " version: " DRIVER_VERSION);
149        status = validate_parameters();
150        if (status)
151                return status;
152
153        r = request_region(port, 1, "#ENUM hotswap signal register");
154        if(!r)
155                return -EBUSY;
156
157        bus = pci_find_bus(0, bridge_busnr);
158        if (!bus) {
159                err("Invalid bus number %d", bridge_busnr);
160                return -EINVAL;
161        }
162        dev = pci_get_slot(bus, PCI_DEVFN(bridge_slot, 0));
163        if(!dev || dev->hdr_type != PCI_HEADER_TYPE_BRIDGE) {
164                err("Invalid bridge device %s", bridge);
165                return -EINVAL;
166        }
167        bus = dev->subordinate;
168        pci_dev_put(dev);
169
170        memset(&generic_hpc, 0, sizeof (struct cpci_hp_controller));
171        generic_hpc_ops.query_enum = query_enum;
172        generic_hpc.ops = &generic_hpc_ops;
173
Show full sources