Showing error 1214

User: Jiri Slaby
Error type: Double Unlock
Error type description: Some lock is unlocked twice unintentionally in a sequence
File location: drivers/pci/intel-iommu.c
Line in file: 1422
Project: Linux Kernel
Project version: 2.6.28
Tools: Stanse (1.2)
Entered: 2012-04-30 10:52:00 UTC


Source:

1392        if (dev_tmp) {
1393                info = alloc_devinfo_mem();
1394                if (!info) {
1395                        domain_exit(domain);
1396                        goto error;
1397                }
1398                info->bus = bus;
1399                info->devfn = devfn;
1400                info->dev = NULL;
1401                info->domain = domain;
1402                /* This domain is shared by devices under p2p bridge */
1403                domain->flags |= DOMAIN_FLAG_MULTIPLE_DEVICES;
1404
1405                /* pcie-to-pci bridge already has a domain, uses it */
1406                found = NULL;
1407                spin_lock_irqsave(&device_domain_lock, flags);
1408                list_for_each_entry(tmp, &device_domain_list, global) {
1409                        if (tmp->bus == bus && tmp->devfn == devfn) {
1410                                found = tmp->domain;
1411                                break;
1412                        }
1413                }
1414                if (found) {
1415                        free_devinfo_mem(info);
1416                        domain_exit(domain);
1417                        domain = found;
1418                } else {
1419                        list_add(&info->link, &domain->devices);
1420                        list_add(&info->global, &device_domain_list);
1421                }
1422                spin_unlock_irqrestore(&device_domain_lock, flags);
1423        }
1424
1425found_domain:
1426        info = alloc_devinfo_mem();
1427        if (!info)
1428                goto error;
1429        info->bus = pdev->bus->number;
1430        info->devfn = pdev->devfn;
1431        info->dev = pdev;
1432        info->domain = domain;
Show full sources