Modifications done for revision = 25240 have to be commented out (I think). For more details, please have a look at http://xenbits.xensource.com/hg/staging/xen-unstable.hg/rev/8fd318f89728. Indeed

This patch makes sure the passthrough device belongs to pciback before allow them passthrough to the guest. There are still many other checks missing.

However I am used to assign Video Card using pci-stub (not pciback). Then I need to comment out those modifications in tools/libxl/libxl_pci.c file
 667 /*
 668 static int libxl_pcidev_assignable(libxl_ctx *ctx, libxl_device_pci *pcidev)
 669 {
 670     libxl_device_pci *pcidevs;
 671     int num, i;
 672 
 673     pcidevs = libxl_device_pci_list_assignable(ctx, &num);
 674     for (i = 0; i < num; i++) {
 675         if (pcidevs[i].domain == pcidev->domain &&
 676             pcidevs[i].bus == pcidev->bus &&
 677             pcidevs[i].dev == pcidev->dev &&
 678             pcidevs[i].func == pcidev->func)
 679         {
 680             return 1;
 681         }
 682     }
 683     return 0;
 684 }
 685 */
 686 int libxl__device_pci_add(libxl__gc *gc, uint32_t domid, libxl_device_pci *pcidev, int starting)
 687 {
 688     libxl_ctx *ctx = libxl__gc_owner(gc);
 689     unsigned int orig_vdev, pfunc_mask;
 690     libxl_device_pci *assigned;
 691     int num_assigned, i, rc;
 692     int stubdomid = 0;
 693 
 694     rc = libxl__device_pci_setdefault(gc, pcidev);
 695     if (rc) goto out;
 696 
 697 /*    if (!libxl_pcidev_assignable(ctx, pcidev)) {
 698         LIBXL__LOG(ctx, LIBXL__LOG_ERROR, "PCI device %x:%x:%x.%x is not assignable",
 699                    pcidev->domain, pcidev->bus, pcidev->dev, pcidev->func);
 700         rc = ERROR_FAIL;
 701         goto out;
 702     }
 703 */
Then I can compil Xen as usual.

From what I heard, Xen 4.2 may be frozen in a couple of weeks (first release candidate may appear in a couple of weeks...Sounds good!) That's the reason why I don't include those modifications in NVIDIA patches for the moment.