+diff --git a/drivers/xen/pciback/pciback_ops.c b/drivers/xen/pciback/pciback_ops.c
+index 8e6f512..83ebb6f 100644
+--- a/drivers/xen/pciback/pciback_ops.c
++++ b/drivers/xen/pciback/pciback_ops.c
+@@ -246,6 +246,11 @@ static void pciback_do_pci_flr(struct pci_dev *dev, int af_pos, int clear_cmd)
+ u8 status = 0;
+
+ dev_dbg(&dev->dev, "doing PCI FLR\n");
++
++ /* TODO remove this patch after th_alpha - this disabled flr for
++ Q35/Q45 platforms */
++ if ((dev->class >> 8) == PCIBACK_CLASS_ID_VGA)
++ return;
+
+ pci_block_user_cfg_access(dev);
+
+@@ -290,6 +295,10 @@ static int pciback_do_vendor_specific_reset(struct pci_dev *dev)
+ return -ENXIO;
+
+ if ((dev->class >> 8) == PCIBACK_CLASS_ID_VGA) {
++ /* TODO remove this patch after th_alpha - this disabled flr for
++ for GM45 platforms */
++ return -ENXIO;
++#if 0
+ if (dev->bus->number != 0 || dev->devfn != PCI_DEVFN(2,0))
+ return -ENXIO;
+
+@@ -312,6 +321,7 @@ static int pciback_do_vendor_specific_reset(struct pci_dev *dev)
+ return -ENXIO;
+
+ vendor_pos = PCIBACK_IGFX_CAP09_OFFSET;
++#endif
+ } else if ((dev->class >> 8) == PCIBACK_CLASS_ID_USB) {
+ vendor_pos = pci_find_capability(dev, PCI_CAP_ID_VNDR);
+ if (vendor_pos == 0)