Showing error 828

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


Source:

160        pci_read_config_byte(dev, (0x56|hwif->channel), &ultra_timing);
161        pci_read_config_byte(dev, 0x54, &ultra_enable);
162
163        ultra_timing        &= ~(0x0F << (4*unit));
164        ultra_enable        &= ~(0x01 << drive->dn);
165
166        if (speed >= XFER_UDMA_0) {
167                dma_timing   |= dma_modes[2];
168                ultra_timing |= (udma_modes[speed - XFER_UDMA_0] << (4 * unit));
169                ultra_enable |= (0x01 << drive->dn);
170        } else if (speed >= XFER_MW_DMA_0)
171                dma_timing   |= dma_modes[speed - XFER_MW_DMA_0];
172
173        pci_write_config_byte(dev, drive_pci2[drive->dn], dma_timing);
174        pci_write_config_byte(dev, (0x56|hwif->channel), ultra_timing);
175        pci_write_config_byte(dev, 0x54, ultra_enable);
176}
177
178static unsigned int init_chipset_svwks(struct pci_dev *dev)
179{
180        unsigned int reg;
181        u8 btr;
182
183        /* force Master Latency Timer value to 64 PCICLKs */
184        pci_write_config_byte(dev, PCI_LATENCY_TIMER, 0x40);
185
186        /* OSB4 : South Bridge and IDE */
187        if (dev->device == PCI_DEVICE_ID_SERVERWORKS_OSB4IDE) {
188                isa_dev = pci_get_device(PCI_VENDOR_ID_SERVERWORKS,
189                          PCI_DEVICE_ID_SERVERWORKS_OSB4, NULL);
190                if (isa_dev) {
191                        pci_read_config_dword(isa_dev, 0x64, &reg);
192                        reg &= ~0x00002000; /* disable 600ns interrupt mask */
193                        if(!(reg & 0x00004000))
194                                printk(KERN_DEBUG DRV_NAME " %s: UDMA not BIOS "
195                                        "enabled.\n", pci_name(dev));
196                        reg |=  0x00004000; /* enable UDMA/33 support */
197                        pci_write_config_dword(isa_dev, 0x64, reg);
198                }
199        }
200
Show full sources