~ubuntu-branches/debian/experimental/linux-2.6/experimental

« back to all changes in this revision

Viewing changes to arch/x86/pci/xen.c

  • Committer: Package Import Robot
  • Author(s): maximilian attems, maximilian attems, Ben Hutchings
  • Date: 2012-06-06 10:25:57 UTC
  • mfrom: (1.2.38)
  • Revision ID: package-import@ubuntu.com-20120606102557-b9j3506wcwrqrnx8
Tags: 3.4.1-1~experimental.1
* New upstream release: http://kernelnewbies.org/Linux_3.4
* New upstream stable update:
  http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.4.1

[ maximilian attems ]
* Enable DM_VERITY, NF_CONNTRACK_TIMEOUT, NF_CT_NETLINK_TIMEOUT,
  IP_NF_MATCH_RPFILTER, IP6_NF_MATCH_RPFILTER, NETFILTER_NETLINK_ACCT,
  NETFILTER_XT_MATCH_NFACCT, NET_SCH_PLUG, SCSI_UFSHCD, SCSI_VIRTIO,
  NET_TEAM, ATH6KL.

[ Ben Hutchings ]
* DFSG: Remove the new vs6624 driver, which contains non-free firmware
* aufs: Update to aufs3.4-20120521
* [rt] Update to 3.4-rt8 and reenable

Show diffs side-by-side

added added

removed removed

Lines of Context:
64
64
        int shareable = 0;
65
65
        char *name;
66
66
 
 
67
        irq = xen_irq_from_gsi(gsi);
 
68
        if (irq > 0)
 
69
                return irq;
 
70
 
67
71
        if (set_pirq)
68
72
                pirq = gsi;
69
73
 
324
328
out:
325
329
        return ret;
326
330
}
 
331
 
 
332
static void xen_initdom_restore_msi_irqs(struct pci_dev *dev, int irq)
 
333
{
 
334
        int ret = 0;
 
335
 
 
336
        if (pci_seg_supported) {
 
337
                struct physdev_pci_device restore_ext;
 
338
 
 
339
                restore_ext.seg = pci_domain_nr(dev->bus);
 
340
                restore_ext.bus = dev->bus->number;
 
341
                restore_ext.devfn = dev->devfn;
 
342
                ret = HYPERVISOR_physdev_op(PHYSDEVOP_restore_msi_ext,
 
343
                                        &restore_ext);
 
344
                if (ret == -ENOSYS)
 
345
                        pci_seg_supported = false;
 
346
                WARN(ret && ret != -ENOSYS, "restore_msi_ext -> %d\n", ret);
 
347
        }
 
348
        if (!pci_seg_supported) {
 
349
                struct physdev_restore_msi restore;
 
350
 
 
351
                restore.bus = dev->bus->number;
 
352
                restore.devfn = dev->devfn;
 
353
                ret = HYPERVISOR_physdev_op(PHYSDEVOP_restore_msi, &restore);
 
354
                WARN(ret && ret != -ENOSYS, "restore_msi -> %d\n", ret);
 
355
        }
 
356
}
327
357
#endif
328
358
 
329
359
static void xen_teardown_msi_irqs(struct pci_dev *dev)
446
476
#ifdef CONFIG_PCI_MSI
447
477
        x86_msi.setup_msi_irqs = xen_initdom_setup_msi_irqs;
448
478
        x86_msi.teardown_msi_irq = xen_teardown_msi_irq;
 
479
        x86_msi.restore_msi_irqs = xen_initdom_restore_msi_irqs;
449
480
#endif
450
481
        xen_setup_acpi_sci();
451
482
        __acpi_register_gsi = acpi_register_gsi_xen;