Showing error 876

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/ide/hpt366.c
Line in file: 1572
Project: Linux Kernel
Project version: 2.6.28
Tools: Stanse (1.2)
Entered: 2011-11-07 22:40:13 UTC


Source:

1542                break;
1543        }
1544
1545        printk(KERN_INFO DRV_NAME ": %s chipset detected\n", info->chip_name);
1546
1547        d = hpt366_chipsets[min_t(u8, idx, 1)];
1548
1549        d.udma_mask = info->udma_mask;
1550
1551        /* fixup ->dma_ops for HPT370/HPT370A */
1552        if (info == &hpt370 || info == &hpt370a)
1553                d.dma_ops = &hpt370_dma_ops;
1554
1555        if (info == &hpt36x || info == &hpt374)
1556                dev2 = pci_get_slot(dev->bus, dev->devfn + 1);
1557
1558        dyn_info = kzalloc(sizeof(*dyn_info) * (dev2 ? 2 : 1), GFP_KERNEL);
1559        if (dyn_info == NULL) {
1560                printk(KERN_ERR "%s %s: out of memory!\n",
1561                        d.name, pci_name(dev));
1562                pci_dev_put(dev2);
1563                return -ENOMEM;
1564        }
1565
1566        /*
1567         * Copy everything from a static "template" structure
1568         * to just allocated per-chip hpt_info structure.
1569         */
1570        memcpy(dyn_info, info, sizeof(*dyn_info));
1571
1572        if (dev2) {
1573                memcpy(dyn_info + 1, info, sizeof(*dyn_info));
1574
1575                if (info == &hpt374)
1576                        hpt374_init(dev, dev2);
1577                else {
1578                        if (hpt36x_init(dev, dev2))
1579                                d.host_flags &= ~IDE_HFLAG_NON_BOOTABLE;
1580                }
1581
1582                ret = ide_pci_init_two(dev, dev2, &d, dyn_info);
Show full sources