Wed Apr 29 21:11:13 2015 UTC ()
Pullup ticket #4698 - requested by spz
Pullup ticket #4698 - requested by spz
sysutils/xenkernel41: security patch
sysutils/xenkernel42: security patch
sysutils/xenkernel45: security patch

Revisions pulled up:
- sysutils/xenkernel41/Makefile                                 1.45
- sysutils/xenkernel41/distinfo                                 1.36
- sysutils/xenkernel41/patches/patch-CVE-2015-2752              1.1
- sysutils/xenkernel41/patches/patch-CVE-2015-2756              1.1
- sysutils/xenkernel42/Makefile                                 1.15
- sysutils/xenkernel42/distinfo                                 1.13
- sysutils/xenkernel42/patches/patch-CVE-2015-2752              1.1
- sysutils/xenkernel42/patches/patch-CVE-2015-2756              1.1
- sysutils/xenkernel45/Makefile                                 1.6
- sysutils/xenkernel45/distinfo                                 1.5
- sysutils/xenkernel45/patches/patch-CVE-2015-2752              1.1
- sysutils/xenkernel45/patches/patch-CVE-2015-2756              1.1
- sysutils/xentools41/Makefile                                  1.50
- sysutils/xentools41/distinfo                                  1.38
- sysutils/xentools41/patches/patch-CVE-2015-2752               1.1
- sysutils/xentools41/patches/patch-CVE-2015-2756               1.1
- sysutils/xentools42/Makefile                                  1.27
- sysutils/xentools42/distinfo                                  1.16
- sysutils/xentools42/patches/patch-CVE-2015-2752               1.1
- sysutils/xentools42/patches/patch-CVE-2015-2756               1.1
- sysutils/xentools45/Makefile                                  1.6
- sysutils/xentools45/distinfo                                  1.6
- sysutils/xentools45/patches/patch-CVE-2015-2752               1.1
- sysutils/xentools45/patches/patch-CVE-2015-2756               1.1

---
   Module Name:	pkgsrc
   Committed By:	spz
   Date:		Sun Apr 19 13:13:21 UTC 2015

   Modified Files:
   	pkgsrc/sysutils/xenkernel41: Makefile distinfo
   	pkgsrc/sysutils/xenkernel42: Makefile distinfo
   	pkgsrc/sysutils/xenkernel45: Makefile distinfo
   	pkgsrc/sysutils/xentools41: Makefile distinfo
   	pkgsrc/sysutils/xentools42: Makefile distinfo
   	pkgsrc/sysutils/xentools45: Makefile distinfo
   Added Files:
   	pkgsrc/sysutils/xenkernel41/patches: patch-CVE-2015-2752
   	    patch-CVE-2015-2756
   	pkgsrc/sysutils/xenkernel42/patches: patch-CVE-2015-2752
   	    patch-CVE-2015-2756
   	pkgsrc/sysutils/xenkernel45/patches: patch-CVE-2015-2752
   	    patch-CVE-2015-2756
   	pkgsrc/sysutils/xentools41/patches: patch-CVE-2015-2752
   	    patch-CVE-2015-2756
   	pkgsrc/sysutils/xentools42/patches: patch-CVE-2015-2752
   	    patch-CVE-2015-2756
   	pkgsrc/sysutils/xentools45/patches: patch-CVE-2015-2752
   	    patch-CVE-2015-2756

   Log Message:
   apply fixes from upstream for
   XSA-125 Long latency MMIO mapping operations are not preemptible
   XSA-126 Unmediated PCI command register access in qemu


(tron)
diff -r1.44 -r1.44.2.1 pkgsrc/sysutils/xenkernel41/Makefile
diff -r1.35 -r1.35.2.1 pkgsrc/sysutils/xenkernel41/distinfo
diff -r0 -r1.1.2.2 pkgsrc/sysutils/xenkernel41/patches/patch-CVE-2015-2752
diff -r0 -r1.1.2.2 pkgsrc/sysutils/xenkernel41/patches/patch-CVE-2015-2756
diff -r1.14 -r1.14.2.1 pkgsrc/sysutils/xenkernel42/Makefile
diff -r1.12 -r1.12.2.1 pkgsrc/sysutils/xenkernel42/distinfo
diff -r0 -r1.1.2.2 pkgsrc/sysutils/xenkernel42/patches/patch-CVE-2015-2752
diff -r0 -r1.1.2.2 pkgsrc/sysutils/xenkernel42/patches/patch-CVE-2015-2756
diff -r1.5 -r1.5.2.1 pkgsrc/sysutils/xenkernel45/Makefile
diff -r1.4 -r1.4.2.1 pkgsrc/sysutils/xenkernel45/distinfo
diff -r0 -r1.1.2.2 pkgsrc/sysutils/xenkernel45/patches/patch-CVE-2015-2752
diff -r0 -r1.1.2.2 pkgsrc/sysutils/xenkernel45/patches/patch-CVE-2015-2756
diff -r1.49 -r1.49.4.1 pkgsrc/sysutils/xentools41/Makefile
diff -r1.37 -r1.37.6.1 pkgsrc/sysutils/xentools41/distinfo
diff -r0 -r1.1.2.2 pkgsrc/sysutils/xentools41/patches/patch-CVE-2015-2752
diff -r0 -r1.1.2.2 pkgsrc/sysutils/xentools41/patches/patch-CVE-2015-2756
diff -r1.26 -r1.26.2.1 pkgsrc/sysutils/xentools42/Makefile
diff -r1.15 -r1.15.2.1 pkgsrc/sysutils/xentools42/distinfo
diff -r0 -r1.1.2.2 pkgsrc/sysutils/xentools42/patches/patch-CVE-2015-2752
diff -r0 -r1.1.2.2 pkgsrc/sysutils/xentools42/patches/patch-CVE-2015-2756
diff -r1.5 -r1.5.2.1 pkgsrc/sysutils/xentools45/Makefile
diff -r1.5 -r1.5.2.1 pkgsrc/sysutils/xentools45/distinfo
diff -r0 -r1.1.2.2 pkgsrc/sysutils/xentools45/patches/patch-CVE-2015-2752
diff -r0 -r1.1.2.2 pkgsrc/sysutils/xentools45/patches/patch-CVE-2015-2756

cvs diff -r1.44 -r1.44.2.1 pkgsrc/sysutils/xenkernel41/Attic/Makefile (switch to unified diff)

--- pkgsrc/sysutils/xenkernel41/Attic/Makefile 2015/03/10 20:27:16 1.44
+++ pkgsrc/sysutils/xenkernel41/Attic/Makefile 2015/04/29 21:11:12 1.44.2.1
@@ -1,61 +1,61 @@ @@ -1,61 +1,61 @@
1# $NetBSD: Makefile,v 1.44 2015/03/10 20:27:16 spz Exp $ 1# $NetBSD: Makefile,v 1.44.2.1 2015/04/29 21:11:12 tron Exp $
2 2
3VERSION= 4.1.6.1 3VERSION= 4.1.6.1
4DISTNAME= xen-${VERSION} 4DISTNAME= xen-${VERSION}
5PKGNAME= xenkernel41-${VERSION} 5PKGNAME= xenkernel41-${VERSION}
6PKGREVISION= 15 6PKGREVISION= 16
7CATEGORIES= sysutils 7CATEGORIES= sysutils
8MASTER_SITES= http://bits.xensource.com/oss-xen/release/${VERSION}/ 8MASTER_SITES= http://bits.xensource.com/oss-xen/release/${VERSION}/
9 9
10MAINTAINER= cegger@NetBSD.org 10MAINTAINER= cegger@NetBSD.org
11HOMEPAGE= http://xen.org/ 11HOMEPAGE= http://xen.org/
12COMMENT= Xen 4.1.x Kernel 12COMMENT= Xen 4.1.x Kernel
13 13
14LICENSE= gnu-gpl-v2 14LICENSE= gnu-gpl-v2
15 15
16ONLY_FOR_PLATFORM= Linux-2.6*-i386 Linux-2.6*-x86_64 16ONLY_FOR_PLATFORM= Linux-2.6*-i386 Linux-2.6*-x86_64
17ONLY_FOR_PLATFORM+= NetBSD-[5-9].*-x86_64 NetBSD-[5-9].*-i386 17ONLY_FOR_PLATFORM+= NetBSD-[5-9].*-x86_64 NetBSD-[5-9].*-i386
18 18
19NO_CONFIGURE= yes 19NO_CONFIGURE= yes
20USE_TOOLS+= gmake 20USE_TOOLS+= gmake
21 21
22PYTHON_FOR_BUILD_ONLY= yes 22PYTHON_FOR_BUILD_ONLY= yes
23PY_PATCHPLIST= NO 23PY_PATCHPLIST= NO
24PYTHON_VERSIONS_INCOMPATIBLE= 33 34 # not yet ported as of 4.1.6.1 24PYTHON_VERSIONS_INCOMPATIBLE= 33 34 # not yet ported as of 4.1.6.1
25 25
26# XXX Why does this not work? 26# XXX Why does this not work?
27# See work/xen-4.1.2/Config.mk:41 why PYTHON must be set and what for 27# See work/xen-4.1.2/Config.mk:41 why PYTHON must be set and what for
28MAKE_ENV+= PYTHON=${PYTHONBIN:Q} 28MAKE_ENV+= PYTHON=${PYTHONBIN:Q}
29MAKE_ENV+= OCAML_TOOLS=no 29MAKE_ENV+= OCAML_TOOLS=no
30 30
31INSTALLATION_DIRS= xen41-kernel 31INSTALLATION_DIRS= xen41-kernel
32XENKERNELDIR= ${PREFIX}/${INSTALLATION_DIRS} 32XENKERNELDIR= ${PREFIX}/${INSTALLATION_DIRS}
33 33
34MESSAGE_SUBST+= XENKERNELDIR=${XENKERNELDIR:Q} 34MESSAGE_SUBST+= XENKERNELDIR=${XENKERNELDIR:Q}
35 35
36.include "../../mk/compiler.mk" 36.include "../../mk/compiler.mk"
37.if !empty(PKGSRC_COMPILER:Mclang) 37.if !empty(PKGSRC_COMPILER:Mclang)
38EXTRA_CFLAGS+= -Qunused-arguments -no-integrated-as -Wno-error=format \ 38EXTRA_CFLAGS+= -Qunused-arguments -no-integrated-as -Wno-error=format \
39 -Wno-error=parentheses-equality -Wno-error=enum-conversion \ 39 -Wno-error=parentheses-equality -Wno-error=enum-conversion \
40 -Wno-error=unused-function \ 40 -Wno-error=unused-function \
41 -Wno-error=tautological-pointer-compare \ 41 -Wno-error=tautological-pointer-compare \
42 -Wno-error=pointer-bool-conversion 42 -Wno-error=pointer-bool-conversion
43.endif 43.endif
44 44
45MAKE_ENV+= EXTRA_CFLAGS=${EXTRA_CFLAGS:Q} 45MAKE_ENV+= EXTRA_CFLAGS=${EXTRA_CFLAGS:Q}
46 46
47do-build: 47do-build:
48 cd ${WRKSRC}/xen && ${BUILD_MAKE_CMD} debug=n build 48 cd ${WRKSRC}/xen && ${BUILD_MAKE_CMD} debug=n build
49 ${CP} ${WRKSRC}/xen/xen.gz ${WRKDIR}/xen.gz 49 ${CP} ${WRKSRC}/xen/xen.gz ${WRKDIR}/xen.gz
50 cd ${WRKSRC}/xen && ${MAKE_PROGRAM} clean 50 cd ${WRKSRC}/xen && ${MAKE_PROGRAM} clean
51 cd ${WRKSRC}/xen && ${BUILD_MAKE_CMD} debug=y build 51 cd ${WRKSRC}/xen && ${BUILD_MAKE_CMD} debug=y build
52 ${CP} ${WRKSRC}/xen/xen.gz ${WRKDIR}/xen-debug.gz 52 ${CP} ${WRKSRC}/xen/xen.gz ${WRKDIR}/xen-debug.gz
53 53
54do-install: 54do-install:
55 ${INSTALL_DATA} ${WRKDIR}/xen.gz \ 55 ${INSTALL_DATA} ${WRKDIR}/xen.gz \
56 ${DESTDIR}${XENKERNELDIR}/xen.gz 56 ${DESTDIR}${XENKERNELDIR}/xen.gz
57 ${INSTALL_DATA} ${WRKDIR}/xen-debug.gz \ 57 ${INSTALL_DATA} ${WRKDIR}/xen-debug.gz \
58 ${DESTDIR}${XENKERNELDIR}/xen-debug.gz 58 ${DESTDIR}${XENKERNELDIR}/xen-debug.gz
59 59
60.include "../../lang/python/application.mk" 60.include "../../lang/python/application.mk"
61.include "../../mk/bsd.pkg.mk" 61.include "../../mk/bsd.pkg.mk"

cvs diff -r1.35 -r1.35.2.1 pkgsrc/sysutils/xenkernel41/Attic/distinfo (switch to unified diff)

--- pkgsrc/sysutils/xenkernel41/Attic/distinfo 2015/03/10 20:27:16 1.35
+++ pkgsrc/sysutils/xenkernel41/Attic/distinfo 2015/04/29 21:11:12 1.35.2.1
@@ -1,37 +1,39 @@ @@ -1,37 +1,39 @@
1$NetBSD: distinfo,v 1.35 2015/03/10 20:27:16 spz Exp $ 1$NetBSD: distinfo,v 1.35.2.1 2015/04/29 21:11:12 tron Exp $
2 2
3SHA1 (xen-4.1.6.1.tar.gz) = e5f15feb0821578817a65ede16110c6eac01abd0 3SHA1 (xen-4.1.6.1.tar.gz) = e5f15feb0821578817a65ede16110c6eac01abd0
4RMD160 (xen-4.1.6.1.tar.gz) = bff11421fc44a26f2cc3156713267abcb36d7a19 4RMD160 (xen-4.1.6.1.tar.gz) = bff11421fc44a26f2cc3156713267abcb36d7a19
5Size (xen-4.1.6.1.tar.gz) = 10428485 bytes 5Size (xen-4.1.6.1.tar.gz) = 10428485 bytes
6SHA1 (patch-CVE-2013-1442) = 7aa43513ea7cddc50b4e6802412cfc2903cce8e1 6SHA1 (patch-CVE-2013-1442) = 7aa43513ea7cddc50b4e6802412cfc2903cce8e1
7SHA1 (patch-CVE-2013-4355_1) = 56dde995d7df4f18576040007fd5532de61d9069 7SHA1 (patch-CVE-2013-4355_1) = 56dde995d7df4f18576040007fd5532de61d9069
8SHA1 (patch-CVE-2013-4355_2) = 70fd2f2e45a05a53d8ce7d0bd72b18165dd13509 8SHA1 (patch-CVE-2013-4355_2) = 70fd2f2e45a05a53d8ce7d0bd72b18165dd13509
9SHA1 (patch-CVE-2013-4355_3) = 93f7bf877945e585fb906dbfc8159e688813c12f 9SHA1 (patch-CVE-2013-4355_3) = 93f7bf877945e585fb906dbfc8159e688813c12f
10SHA1 (patch-CVE-2013-4355_4) = 88f478997d2631ec41adfd42a9d79f2d87bb44d8 10SHA1 (patch-CVE-2013-4355_4) = 88f478997d2631ec41adfd42a9d79f2d87bb44d8
11SHA1 (patch-CVE-2013-4361) = b9074af976ba98c02aeb84288a10527bf7693241 11SHA1 (patch-CVE-2013-4361) = b9074af976ba98c02aeb84288a10527bf7693241
12SHA1 (patch-CVE-2013-4368) = 77caf392b472e5586eb2fa6a37d173cd856f6f15 12SHA1 (patch-CVE-2013-4368) = 77caf392b472e5586eb2fa6a37d173cd856f6f15
13SHA1 (patch-CVE-2013-4494) = d74dfc898d1128f3c205bd178c8cf663935711e3 13SHA1 (patch-CVE-2013-4494) = d74dfc898d1128f3c205bd178c8cf663935711e3
14SHA1 (patch-CVE-2013-4553) = 6708dcef1737b119a3fcf2e3414c22c115cbacc1 14SHA1 (patch-CVE-2013-4553) = 6708dcef1737b119a3fcf2e3414c22c115cbacc1
15SHA1 (patch-CVE-2013-6885_1) = 18d155b2c76119988be32cfd43e3c4aa6a507b9d 15SHA1 (patch-CVE-2013-6885_1) = 18d155b2c76119988be32cfd43e3c4aa6a507b9d
16SHA1 (patch-CVE-2013-6885_2) = be3c99ba3e349492d45cd4f2fce0acc26ac1a96d 16SHA1 (patch-CVE-2013-6885_2) = be3c99ba3e349492d45cd4f2fce0acc26ac1a96d
17SHA1 (patch-CVE-2014-1666) = acf27080799d4aae6a03b556caadb01081d5314e 17SHA1 (patch-CVE-2014-1666) = acf27080799d4aae6a03b556caadb01081d5314e
18SHA1 (patch-CVE-2014-3124) = 59a48eed88abcda5de2fc7e398451a492e5d2145 18SHA1 (patch-CVE-2014-3124) = 59a48eed88abcda5de2fc7e398451a492e5d2145
19SHA1 (patch-CVE-2014-4021) = ee8ee800b35f7eaa242b06536c1ffa6568305b36 19SHA1 (patch-CVE-2014-4021) = ee8ee800b35f7eaa242b06536c1ffa6568305b36
20SHA1 (patch-CVE-2014-7154) = 5f0541559d911778aa5267bb5c0e1e8a9a3904e2 20SHA1 (patch-CVE-2014-7154) = 5f0541559d911778aa5267bb5c0e1e8a9a3904e2
21SHA1 (patch-CVE-2014-7155) = 0f1aa6a5d4fdb8403fc1e01b884491a63de501f8 21SHA1 (patch-CVE-2014-7155) = 0f1aa6a5d4fdb8403fc1e01b884491a63de501f8
22SHA1 (patch-CVE-2014-7156) = 85043bdcf2644227d135f725cb442aade565c9d6 22SHA1 (patch-CVE-2014-7156) = 85043bdcf2644227d135f725cb442aade565c9d6
23SHA1 (patch-CVE-2014-8594) = 39d9d220d89c2356fa745dad5bf8c7ef5e8f2516 23SHA1 (patch-CVE-2014-8594) = 39d9d220d89c2356fa745dad5bf8c7ef5e8f2516
24SHA1 (patch-CVE-2014-8595) = 46bd285b7eb8f2e23984f7917b12af2191bfef80 24SHA1 (patch-CVE-2014-8595) = 46bd285b7eb8f2e23984f7917b12af2191bfef80
25SHA1 (patch-CVE-2014-8866) = ee0bc3afb767b50e973d6065b84adc7e51949def 25SHA1 (patch-CVE-2014-8866) = ee0bc3afb767b50e973d6065b84adc7e51949def
26SHA1 (patch-CVE-2014-8867) = 576433746660f62b753088a66c5315a1a2ff8f76 26SHA1 (patch-CVE-2014-8867) = 576433746660f62b753088a66c5315a1a2ff8f76
27SHA1 (patch-CVE-2014-9030) = f52c302585b0f4b074f7562e6b8cddacb26deee4 27SHA1 (patch-CVE-2014-9030) = f52c302585b0f4b074f7562e6b8cddacb26deee4
28SHA1 (patch-CVE-2015-2044) = 00d32273d0a9f51927ff94a13f916382c3126e60 28SHA1 (patch-CVE-2015-2044) = 00d32273d0a9f51927ff94a13f916382c3126e60
29SHA1 (patch-CVE-2015-2045) = e1874bbde0cce7db4ee9260440f5280d404027d7 29SHA1 (patch-CVE-2015-2045) = e1874bbde0cce7db4ee9260440f5280d404027d7
30SHA1 (patch-CVE-2015-2151) = aed92f50d162febc3074f7edecaf6ca418d0b42c 30SHA1 (patch-CVE-2015-2151) = aed92f50d162febc3074f7edecaf6ca418d0b42c
 31SHA1 (patch-CVE-2015-2752) = 37f44989a3b3c69dea8e9de9fc34ffd5c2e8b087
 32SHA1 (patch-CVE-2015-2756) = b3b133d42229ecc8c308644b17e5317cd77f9a98
31SHA1 (patch-Config.mk) = a43ed1b3304d6383dc093acd128a7f373d0ca266 33SHA1 (patch-Config.mk) = a43ed1b3304d6383dc093acd128a7f373d0ca266
32SHA1 (patch-xen_Makefile) = d1c7e4860221f93d90818f45a77748882486f92b 34SHA1 (patch-xen_Makefile) = d1c7e4860221f93d90818f45a77748882486f92b
33SHA1 (patch-xen_arch_x86_Rules.mk) = 6b9b4bfa28924f7d3f6c793a389f1a7ac9d228e2 35SHA1 (patch-xen_arch_x86_Rules.mk) = 6b9b4bfa28924f7d3f6c793a389f1a7ac9d228e2
34SHA1 (patch-xen_arch_x86_cpu_mcheck_vmce.c) = 5afd01780a13654f1d21bf1562f6431c8370be0b 36SHA1 (patch-xen_arch_x86_cpu_mcheck_vmce.c) = 5afd01780a13654f1d21bf1562f6431c8370be0b
35SHA1 (patch-xen_arch_x86_time.c) = 1611959c08ad79e3f042ac70c8d9d57b60225289 37SHA1 (patch-xen_arch_x86_time.c) = 1611959c08ad79e3f042ac70c8d9d57b60225289
36SHA1 (patch-xen_drivers_char_console_c) = 0fe186369602ccffaeec6f4bfbee8bb4298d3ff0 38SHA1 (patch-xen_drivers_char_console_c) = 0fe186369602ccffaeec6f4bfbee8bb4298d3ff0
37SHA1 (patch-xen_include_xen_stdarg.h) = e9df974a9b783ed442ab17497198432cb9844b70 39SHA1 (patch-xen_include_xen_stdarg.h) = e9df974a9b783ed442ab17497198432cb9844b70

File Added: pkgsrc/sysutils/xenkernel41/patches/Attic/patch-CVE-2015-2752
$NetBSD: patch-CVE-2015-2752,v 1.1.2.2 2015/04/29 21:11:12 tron Exp $

Patch for CVE-2015-2752 aka XSA-125 from
http://xenbits.xenproject.org/xsa/xsa125-4.2.patch

--- tools/libxc/xc_domain.c.orig	2013-09-10 06:42:18.000000000 +0000
+++ tools/libxc/xc_domain.c
@@ -1322,6 +1322,13 @@ int xc_domain_bind_pt_isa_irq(
                                   PT_IRQ_TYPE_ISA, 0, 0, 0, machine_irq));
 }
 
+#ifndef min
+#define min(X, Y) ({                             \
+            const typeof (X) _x = (X);           \
+            const typeof (Y) _y = (Y);           \
+            (void) (&_x == &_y);                 \
+            (_x < _y) ? _x : _y; })
+#endif
 int xc_domain_memory_mapping(
     xc_interface *xch,
     uint32_t domid,
@@ -1331,17 +1338,55 @@ int xc_domain_memory_mapping(
     uint32_t add_mapping)
 {
     DECLARE_DOMCTL;
+    int ret = 0, err;
+    unsigned long done = 0, nr, max_batch_sz;
+
+    if ( !nr_mfns )
+        return 0;
 
     domctl.cmd = XEN_DOMCTL_memory_mapping;
     domctl.domain = domid;
-    domctl.u.memory_mapping.first_gfn = first_gfn;
-    domctl.u.memory_mapping.first_mfn = first_mfn;
-    domctl.u.memory_mapping.nr_mfns = nr_mfns;
     domctl.u.memory_mapping.add_mapping = add_mapping;
+    max_batch_sz = nr_mfns;
+    do
+    {
+        nr = min(nr_mfns - done, max_batch_sz);
+        domctl.u.memory_mapping.nr_mfns = nr;
+        domctl.u.memory_mapping.first_gfn = first_gfn + done;
+        domctl.u.memory_mapping.first_mfn = first_mfn + done;
+        err = do_domctl(xch, &domctl);
+        if ( err && errno == E2BIG )
+        {
+            if ( max_batch_sz <= 1 )
+                break;
+            max_batch_sz >>= 1;
+            continue;
+        }
+        /* Save the first error... */
+        if ( !ret )
+            ret = err;
+        /* .. and ignore the rest of them when removing. */
+        if ( err && add_mapping != DPCI_REMOVE_MAPPING )
+            break;
+
+        done += nr;
+    } while ( done < nr_mfns );
+
+    /*
+     * Undo what we have done unless unmapping, by unmapping the entire region.
+     * Errors here are ignored.
+     */
+    if ( ret && add_mapping != DPCI_REMOVE_MAPPING )
+        xc_domain_memory_mapping(xch, domid, first_gfn, first_mfn, nr_mfns,
+                                 DPCI_REMOVE_MAPPING);
+
+    /* We might get E2BIG so many times that we never advance. */
+    if ( !done && !ret )
+        ret = -1;
 
-    return do_domctl(xch, &domctl);
+    return ret;
 }
-
+#undef min
 int xc_domain_ioport_mapping(
     xc_interface *xch,
     uint32_t domid,

--- xen/arch/x86/domctl.c.orig	2015-04-19 10:54:27.000000000 +0000
+++ xen/arch/x86/domctl.c
@@ -998,6 +998,11 @@ long arch_do_domctl(
              (gfn + nr_mfns - 1) < gfn ) /* wrap? */
             break;
 
+        ret = -E2BIG;
+        /* Must break hypercall up as this could take a while. */
+        if ( nr_mfns > 64 )
+            break;
+
         ret = -EPERM;
         if ( !IS_PRIV(current->domain) &&
              !iomem_access_permitted(current->domain, mfn, mfn + nr_mfns - 1) )

--- xen/include/public/domctl.h.orig	2013-09-10 06:42:18.000000000 +0000
+++ xen/include/public/domctl.h
@@ -505,6 +505,7 @@ DEFINE_XEN_GUEST_HANDLE(xen_domctl_bind_
 
 
 /* Bind machine I/O address range -> HVM address range. */
+/* If this returns -E2BIG lower nr_mfns value. */
 /* XEN_DOMCTL_memory_mapping */
 #define DPCI_ADD_MAPPING         1
 #define DPCI_REMOVE_MAPPING      0

File Added: pkgsrc/sysutils/xenkernel41/patches/Attic/patch-CVE-2015-2756
$NetBSD: patch-CVE-2015-2756,v 1.1.2.2 2015/04/29 21:11:12 tron Exp $

patch for CVE-2015-2756 aka XSA-126 from
http://xenbits.xenproject.org/xsa/xsa126-qemut.patch

--- tools/ioemu-qemu-xen/hw/pass-through.c.orig	2013-07-17 10:59:40.000000000 +0000
+++ tools/ioemu-qemu-xen/hw/pass-through.c
@@ -171,9 +171,6 @@ static int pt_word_reg_read(struct pt_de
 static int pt_long_reg_read(struct pt_dev *ptdev,
     struct pt_reg_tbl *cfg_entry,
     uint32_t *value, uint32_t valid_mask);
-static int pt_cmd_reg_read(struct pt_dev *ptdev,
-    struct pt_reg_tbl *cfg_entry,
-    uint16_t *value, uint16_t valid_mask);
 static int pt_bar_reg_read(struct pt_dev *ptdev,
     struct pt_reg_tbl *cfg_entry,
     uint32_t *value, uint32_t valid_mask);
@@ -277,9 +274,9 @@ static struct pt_reg_info_tbl pt_emu_reg
         .size       = 2,
         .init_val   = 0x0000,
         .ro_mask    = 0xF880,
-        .emu_mask   = 0x0740,
+        .emu_mask   = 0x0743,
         .init       = pt_common_reg_init,
-        .u.w.read   = pt_cmd_reg_read,
+        .u.w.read   = pt_word_reg_read,
         .u.w.write  = pt_cmd_reg_write,
         .u.w.restore  = pt_cmd_reg_restore,
     },
@@ -1865,7 +1862,7 @@ static int pt_dev_is_virtfn(struct pci_d
     return rc;
 }
 
-static int pt_register_regions(struct pt_dev *assigned_device)
+static int pt_register_regions(struct pt_dev *assigned_device, uint16_t *cmd)
 {
     int i = 0;
     uint32_t bar_data = 0;
@@ -1885,17 +1882,26 @@ static int pt_register_regions(struct pt
 
             /* Register current region */
             if ( pci_dev->base_addr[i] & PCI_ADDRESS_SPACE_IO )
+            {
                 pci_register_io_region((PCIDevice *)assigned_device, i,
                     (uint32_t)pci_dev->size[i], PCI_ADDRESS_SPACE_IO,
                     pt_ioport_map);
+                *cmd |= PCI_COMMAND_IO;
+            }
             else if ( pci_dev->base_addr[i] & PCI_ADDRESS_SPACE_MEM_PREFETCH )
+            {
                 pci_register_io_region((PCIDevice *)assigned_device, i,
                     (uint32_t)pci_dev->size[i], PCI_ADDRESS_SPACE_MEM_PREFETCH,
                     pt_iomem_map);
+                *cmd |= PCI_COMMAND_MEMORY;
+            }
             else
+            {
                 pci_register_io_region((PCIDevice *)assigned_device, i,
                     (uint32_t)pci_dev->size[i], PCI_ADDRESS_SPACE_MEM,
                     pt_iomem_map);
+                *cmd |= PCI_COMMAND_MEMORY;
+            }
 
             PT_LOG("IO region registered (size=0x%08x base_addr=0x%08x)\n",
                 (uint32_t)(pci_dev->size[i]),
@@ -3221,27 +3227,6 @@ static int pt_long_reg_read(struct pt_de
    return 0;
 }
 
-/* read Command register */
-static int pt_cmd_reg_read(struct pt_dev *ptdev,
-        struct pt_reg_tbl *cfg_entry,
-        uint16_t *value, uint16_t valid_mask)
-{
-    struct pt_reg_info_tbl *reg = cfg_entry->reg;
-    uint16_t valid_emu_mask = 0;
-    uint16_t emu_mask = reg->emu_mask;
-
-    if ( ptdev->is_virtfn )
-        emu_mask |= PCI_COMMAND_MEMORY;
-    if ( pt_is_iomul(ptdev) )
-        emu_mask |= PCI_COMMAND_IO;
-
-    /* emulate word register */
-    valid_emu_mask = emu_mask & valid_mask;
-    *value = PT_MERGE_VALUE(*value, cfg_entry->data, ~valid_emu_mask);
-
-    return 0;
-}
-
 /* read BAR */
 static int pt_bar_reg_read(struct pt_dev *ptdev,
         struct pt_reg_tbl *cfg_entry,
@@ -3376,19 +3361,13 @@ static int pt_cmd_reg_write(struct pt_de
     uint16_t writable_mask = 0;
     uint16_t throughable_mask = 0;
     uint16_t wr_value = *value;
-    uint16_t emu_mask = reg->emu_mask;
-
-    if ( ptdev->is_virtfn )
-        emu_mask |= PCI_COMMAND_MEMORY;
-    if ( pt_is_iomul(ptdev) )
-        emu_mask |= PCI_COMMAND_IO;
 
     /* modify emulate register */
     writable_mask = ~reg->ro_mask & valid_mask;
     cfg_entry->data = PT_MERGE_VALUE(*value, cfg_entry->data, writable_mask);
 
     /* create value for writing to I/O device register */
-    throughable_mask = ~emu_mask & valid_mask;
+    throughable_mask = ~reg->emu_mask & valid_mask;
 
     if (*value & PCI_COMMAND_DISABLE_INTx)
     {
@@ -4151,6 +4130,7 @@ static struct pt_dev * register_real_dev
     struct pt_dev *assigned_device = NULL;
     struct pci_dev *pci_dev;
     uint8_t e_device, e_intx;
+    uint16_t cmd = 0;
     char *key, *val;
     int msi_translate, power_mgmt;
 
@@ -4240,7 +4220,7 @@ static struct pt_dev * register_real_dev
         assigned_device->dev.config[i] = pci_read_byte(pci_dev, i);
 
     /* Handle real device's MMIO/PIO BARs */
-    pt_register_regions(assigned_device);
+    pt_register_regions(assigned_device, &cmd);
 
     /* Setup VGA bios for passthroughed gfx */
     if ( setup_vga_pt(assigned_device) < 0 )
@@ -4318,6 +4298,10 @@ static struct pt_dev * register_real_dev
     }
 
 out:
+    if (cmd)
+        pci_write_word(pci_dev, PCI_COMMAND,
+            *(uint16_t *)(&assigned_device->dev.config[PCI_COMMAND]) | cmd);
+
     PT_LOG("Real physical device %02x:%02x.%x registered successfuly!\n"
            "IRQ type = %s\n", r_bus, r_dev, r_func,
            assigned_device->msi_trans_en? "MSI-INTx":"INTx");

cvs diff -r1.14 -r1.14.2.1 pkgsrc/sysutils/xenkernel42/Attic/Makefile (switch to unified diff)

--- pkgsrc/sysutils/xenkernel42/Attic/Makefile 2015/03/18 15:05:51 1.14
+++ pkgsrc/sysutils/xenkernel42/Attic/Makefile 2015/04/29 21:11:12 1.14.2.1
@@ -1,56 +1,56 @@ @@ -1,56 +1,56 @@
1# $NetBSD: Makefile,v 1.14 2015/03/18 15:05:51 joerg Exp $ 1# $NetBSD: Makefile,v 1.14.2.1 2015/04/29 21:11:12 tron Exp $
2 2
3VERSION= 4.2.5 3VERSION= 4.2.5
4DISTNAME= xen-${VERSION} 4DISTNAME= xen-${VERSION}
5PKGNAME= xenkernel42-${VERSION} 5PKGNAME= xenkernel42-${VERSION}
6PKGREVISION= 5 6PKGREVISION= 6
7CATEGORIES= sysutils 7CATEGORIES= sysutils
8MASTER_SITES= http://bits.xensource.com/oss-xen/release/${VERSION}/ 8MASTER_SITES= http://bits.xensource.com/oss-xen/release/${VERSION}/
9 9
10MAINTAINER= pkgsrc-users@NetBSD.org 10MAINTAINER= pkgsrc-users@NetBSD.org
11HOMEPAGE= http://xenproject.org/ 11HOMEPAGE= http://xenproject.org/
12COMMENT= Xen 4.2.x Kernel 12COMMENT= Xen 4.2.x Kernel
13 13
14LICENSE= gnu-gpl-v2 14LICENSE= gnu-gpl-v2
15 15
16ONLY_FOR_PLATFORM= Linux-2.6*-i386 Linux-2.6*-x86_64 16ONLY_FOR_PLATFORM= Linux-2.6*-i386 Linux-2.6*-x86_64
17ONLY_FOR_PLATFORM+= NetBSD-[5-9].*-x86_64 NetBSD-[5-9].*-i386 17ONLY_FOR_PLATFORM+= NetBSD-[5-9].*-x86_64 NetBSD-[5-9].*-i386
18 18
19NO_CONFIGURE= yes 19NO_CONFIGURE= yes
20USE_TOOLS+= gmake 20USE_TOOLS+= gmake
21 21
22PYTHON_FOR_BUILD_ONLY= YES 22PYTHON_FOR_BUILD_ONLY= YES
23PYTHON_VERSIONS_INCOMPATIBLE= 33 34 # not yet ported as of 4.2.3 23PYTHON_VERSIONS_INCOMPATIBLE= 33 34 # not yet ported as of 4.2.3
24 24
25MAKE_ENV+= OCAML_TOOLS=no 25MAKE_ENV+= OCAML_TOOLS=no
26 26
27INSTALLATION_DIRS= xen42-kernel 27INSTALLATION_DIRS= xen42-kernel
28XENKERNELDIR= ${PREFIX}/${INSTALLATION_DIRS} 28XENKERNELDIR= ${PREFIX}/${INSTALLATION_DIRS}
29 29
30MESSAGE_SUBST+= XENKERNELDIR=${XENKERNELDIR} 30MESSAGE_SUBST+= XENKERNELDIR=${XENKERNELDIR}
31 31
32.include "../../mk/compiler.mk" 32.include "../../mk/compiler.mk"
33.if !empty(PKGSRC_COMPILER:Mclang) 33.if !empty(PKGSRC_COMPILER:Mclang)
34EXTRA_CFLAGS+= -Qunused-arguments -no-integrated-as -Wno-error=format \ 34EXTRA_CFLAGS+= -Qunused-arguments -no-integrated-as -Wno-error=format \
35 -Wno-error=parentheses-equality -Wno-error=enum-conversion \ 35 -Wno-error=parentheses-equality -Wno-error=enum-conversion \
36 -Wno-error=unused-function -Wno-error=unused-const-variable \ 36 -Wno-error=unused-function -Wno-error=unused-const-variable \
37 -Wno-error=pointer-bool-conversion 37 -Wno-error=pointer-bool-conversion
38.endif 38.endif
39 39
40MAKE_ENV+= EXTRA_CFLAGS=${EXTRA_CFLAGS:Q} 40MAKE_ENV+= EXTRA_CFLAGS=${EXTRA_CFLAGS:Q}
41 41
42do-build: 42do-build:
43 cd ${WRKSRC}/xen && ${BUILD_MAKE_CMD} debug=n build 43 cd ${WRKSRC}/xen && ${BUILD_MAKE_CMD} debug=n build
44 ${CP} ${WRKSRC}/xen/xen.gz ${WRKDIR}/xen.gz 44 ${CP} ${WRKSRC}/xen/xen.gz ${WRKDIR}/xen.gz
45 cd ${WRKSRC}/xen && ${MAKE_PROGRAM} clean 45 cd ${WRKSRC}/xen && ${MAKE_PROGRAM} clean
46 cd ${WRKSRC}/xen && ${BUILD_MAKE_CMD} debug=y build 46 cd ${WRKSRC}/xen && ${BUILD_MAKE_CMD} debug=y build
47 ${CP} ${WRKSRC}/xen/xen.gz ${WRKDIR}/xen-debug.gz 47 ${CP} ${WRKSRC}/xen/xen.gz ${WRKDIR}/xen-debug.gz
48 48
49do-install: 49do-install:
50 ${INSTALL_DATA} ${WRKDIR}/xen.gz \ 50 ${INSTALL_DATA} ${WRKDIR}/xen.gz \
51 ${DESTDIR}${XENKERNELDIR}/xen.gz 51 ${DESTDIR}${XENKERNELDIR}/xen.gz
52 ${INSTALL_DATA} ${WRKDIR}/xen-debug.gz \ 52 ${INSTALL_DATA} ${WRKDIR}/xen-debug.gz \
53 ${DESTDIR}${XENKERNELDIR}/xen-debug.gz 53 ${DESTDIR}${XENKERNELDIR}/xen-debug.gz
54 54
55.include "../../lang/python/application.mk" 55.include "../../lang/python/application.mk"
56.include "../../mk/bsd.pkg.mk" 56.include "../../mk/bsd.pkg.mk"

cvs diff -r1.12 -r1.12.2.1 pkgsrc/sysutils/xenkernel42/Attic/distinfo (switch to unified diff)

--- pkgsrc/sysutils/xenkernel42/Attic/distinfo 2015/03/18 15:05:51 1.12
+++ pkgsrc/sysutils/xenkernel42/Attic/distinfo 2015/04/29 21:11:12 1.12.2.1
@@ -1,25 +1,27 @@ @@ -1,25 +1,27 @@
1$NetBSD: distinfo,v 1.12 2015/03/18 15:05:51 joerg Exp $ 1$NetBSD: distinfo,v 1.12.2.1 2015/04/29 21:11:12 tron Exp $
2 2
3SHA1 (xen-4.2.5.tar.gz) = f42741e4ec174495ace70c4b17a6b9b0e60e798a 3SHA1 (xen-4.2.5.tar.gz) = f42741e4ec174495ace70c4b17a6b9b0e60e798a
4RMD160 (xen-4.2.5.tar.gz) = 7d4f7f1b32ee541d341a756b1f8da02816438d19 4RMD160 (xen-4.2.5.tar.gz) = 7d4f7f1b32ee541d341a756b1f8da02816438d19
5Size (xen-4.2.5.tar.gz) = 15671925 bytes 5Size (xen-4.2.5.tar.gz) = 15671925 bytes
6SHA1 (patch-CVE-2014-8594) = 8599e5007e8f15eddc1385aa1d90accf1690952e 6SHA1 (patch-CVE-2014-8594) = 8599e5007e8f15eddc1385aa1d90accf1690952e
7SHA1 (patch-CVE-2014-8595) = 46bd285b7eb8f2e23984f7917b12af2191bfef80 7SHA1 (patch-CVE-2014-8595) = 46bd285b7eb8f2e23984f7917b12af2191bfef80
8SHA1 (patch-CVE-2014-8866) = 9888e9585364681dfaa43af953eb104715cc4f99 8SHA1 (patch-CVE-2014-8866) = 9888e9585364681dfaa43af953eb104715cc4f99
9SHA1 (patch-CVE-2014-8867) = 576433746660f62b753088a66c5315a1a2ff8f76 9SHA1 (patch-CVE-2014-8867) = 576433746660f62b753088a66c5315a1a2ff8f76
10SHA1 (patch-CVE-2014-9030) = f4646ab2b0d01ad2a3bf47839fe0ffd35479b4a6 10SHA1 (patch-CVE-2014-9030) = f4646ab2b0d01ad2a3bf47839fe0ffd35479b4a6
11SHA1 (patch-CVE-2015-2044) = bcb7152da8d37902540cbfbdfd7309536cffa61e 11SHA1 (patch-CVE-2015-2044) = bcb7152da8d37902540cbfbdfd7309536cffa61e
12SHA1 (patch-CVE-2015-2045) = f70839fabd4ef9086c8fb808e4f3448a8e844c98 12SHA1 (patch-CVE-2015-2045) = f70839fabd4ef9086c8fb808e4f3448a8e844c98
13SHA1 (patch-CVE-2015-2151) = df05750b86331b88102b41f065c314c38c6bc396 13SHA1 (patch-CVE-2015-2151) = df05750b86331b88102b41f065c314c38c6bc396
 14SHA1 (patch-CVE-2015-2752) = 62547b55385aaf54af23270939fe086b996d5744
 15SHA1 (patch-CVE-2015-2756) = cb1be46c28e6f88c13fc0d26ff0606bdb877283c
14SHA1 (patch-Config.mk) = a43ed1b3304d6383dc093acd128a7f373d0ca266 16SHA1 (patch-Config.mk) = a43ed1b3304d6383dc093acd128a7f373d0ca266
15SHA1 (patch-xen_Makefile) = e0d1b74518b9675ddc64295d1523ded9a8757c0a 17SHA1 (patch-xen_Makefile) = e0d1b74518b9675ddc64295d1523ded9a8757c0a
16SHA1 (patch-xen_arch_x86_Rules.mk) = 6b9b4bfa28924f7d3f6c793a389f1a7ac9d228e2 18SHA1 (patch-xen_arch_x86_Rules.mk) = 6b9b4bfa28924f7d3f6c793a389f1a7ac9d228e2
17SHA1 (patch-xen_arch_x86_hvm_hvm.c) = b6bac1d466ba5bc276bc3aea9d4c9df37f2b9b0f 19SHA1 (patch-xen_arch_x86_hvm_hvm.c) = b6bac1d466ba5bc276bc3aea9d4c9df37f2b9b0f
18SHA1 (patch-xen_arch_x86_mm_shadow_common.c) = 89dce860cc6aef7d0ec31f3137616b592490e60a 20SHA1 (patch-xen_arch_x86_mm_shadow_common.c) = 89dce860cc6aef7d0ec31f3137616b592490e60a
19SHA1 (patch-xen_arch_x86_x86_emulate_x86_emulate.c) = 8b906e762c8f94a670398b4e033d50a2fb012f0a 21SHA1 (patch-xen_arch_x86_x86_emulate_x86_emulate.c) = 8b906e762c8f94a670398b4e033d50a2fb012f0a
20SHA1 (patch-xen_common_spinlock.c) = 06f06b5e9b098262ebaa8af0be4837005fb5b8b4 22SHA1 (patch-xen_common_spinlock.c) = 06f06b5e9b098262ebaa8af0be4837005fb5b8b4
21SHA1 (patch-xen_include_asm-arm_spinlock.h) = fe2e35a5ebec4c551df5d1680c93e6ad19348d93 23SHA1 (patch-xen_include_asm-arm_spinlock.h) = fe2e35a5ebec4c551df5d1680c93e6ad19348d93
22SHA1 (patch-xen_include_asm-x86_atomic.h) = d406c6071ea3823c25113a801dd77ff32146d162 24SHA1 (patch-xen_include_asm-x86_atomic.h) = d406c6071ea3823c25113a801dd77ff32146d162
23SHA1 (patch-xen_include_asm-x86_spinlock.h) = fbaaf264e9aa4857635a81b63c4a77cba4bf560f 25SHA1 (patch-xen_include_asm-x86_spinlock.h) = fbaaf264e9aa4857635a81b63c4a77cba4bf560f
24SHA1 (patch-xen_include_xen_lib.h) = 36dcaf3874a1b1214babc45d7e19fe3b556c1044 26SHA1 (patch-xen_include_xen_lib.h) = 36dcaf3874a1b1214babc45d7e19fe3b556c1044
25SHA1 (patch-xen_include_xen_spinlock.h) = 8e06de55c9b4bfc360e0b8ac5a605adedab8eb8f 27SHA1 (patch-xen_include_xen_spinlock.h) = 8e06de55c9b4bfc360e0b8ac5a605adedab8eb8f

File Added: pkgsrc/sysutils/xenkernel42/patches/Attic/patch-CVE-2015-2752
$NetBSD: patch-CVE-2015-2752,v 1.1.2.2 2015/04/29 21:11:12 tron Exp $

Patch for CVE-2015-2752 aka XSA-125 from
http://xenbits.xenproject.org/xsa/xsa125-4.2.patch

--- tools/libxc/xc_domain.c.orig	2014-09-02 06:22:57.000000000 +0000
+++ tools/libxc/xc_domain.c
@@ -1352,6 +1352,13 @@ int xc_domain_bind_pt_isa_irq(
                                   PT_IRQ_TYPE_ISA, 0, 0, 0, machine_irq));
 }
 
+#ifndef min
+#define min(X, Y) ({                             \
+            const typeof (X) _x = (X);           \
+            const typeof (Y) _y = (Y);           \
+            (void) (&_x == &_y);                 \
+            (_x < _y) ? _x : _y; })
+#endif
 int xc_domain_memory_mapping(
     xc_interface *xch,
     uint32_t domid,
@@ -1361,17 +1368,55 @@ int xc_domain_memory_mapping(
     uint32_t add_mapping)
 {
     DECLARE_DOMCTL;
+    int ret = 0, err;
+    unsigned long done = 0, nr, max_batch_sz;
+
+    if ( !nr_mfns )
+        return 0;
 
     domctl.cmd = XEN_DOMCTL_memory_mapping;
     domctl.domain = domid;
-    domctl.u.memory_mapping.first_gfn = first_gfn;
-    domctl.u.memory_mapping.first_mfn = first_mfn;
-    domctl.u.memory_mapping.nr_mfns = nr_mfns;
     domctl.u.memory_mapping.add_mapping = add_mapping;
+    max_batch_sz = nr_mfns;
+    do
+    {
+        nr = min(nr_mfns - done, max_batch_sz);
+        domctl.u.memory_mapping.nr_mfns = nr;
+        domctl.u.memory_mapping.first_gfn = first_gfn + done;
+        domctl.u.memory_mapping.first_mfn = first_mfn + done;
+        err = do_domctl(xch, &domctl);
+        if ( err && errno == E2BIG )
+        {
+            if ( max_batch_sz <= 1 )
+                break;
+            max_batch_sz >>= 1;
+            continue;
+        }
+        /* Save the first error... */
+        if ( !ret )
+            ret = err;
+        /* .. and ignore the rest of them when removing. */
+        if ( err && add_mapping != DPCI_REMOVE_MAPPING )
+            break;
+
+        done += nr;
+    } while ( done < nr_mfns );
+
+    /*
+     * Undo what we have done unless unmapping, by unmapping the entire region.
+     * Errors here are ignored.
+     */
+    if ( ret && add_mapping != DPCI_REMOVE_MAPPING )
+        xc_domain_memory_mapping(xch, domid, first_gfn, first_mfn, nr_mfns,
+                                 DPCI_REMOVE_MAPPING);
+
+    /* We might get E2BIG so many times that we never advance. */
+    if ( !done && !ret )
+        ret = -1;
 
-    return do_domctl(xch, &domctl);
+    return ret;
 }
-
+#undef min
 int xc_domain_ioport_mapping(
     xc_interface *xch,
     uint32_t domid,

--- xen/arch/x86/domctl.c.orig	2014-09-02 06:22:57.000000000 +0000
+++ xen/arch/x86/domctl.c
@@ -865,6 +865,11 @@ long arch_do_domctl(
              (gfn + nr_mfns - 1) < gfn ) /* wrap? */
             break;
 
+        ret = -E2BIG;
+        /* Must break hypercall up as this could take a while. */
+        if ( nr_mfns > 64 )
+            break;
+
         ret = -EPERM;
         if ( !IS_PRIV(current->domain) &&
              !iomem_access_permitted(current->domain, mfn, mfn + nr_mfns - 1) )

--- xen/include/public/domctl.h.orig	2014-09-02 06:22:57.000000000 +0000
+++ xen/include/public/domctl.h
@@ -507,6 +507,7 @@ DEFINE_XEN_GUEST_HANDLE(xen_domctl_bind_
 
 
 /* Bind machine I/O address range -> HVM address range. */
+/* If this returns -E2BIG lower nr_mfns value. */
 /* XEN_DOMCTL_memory_mapping */
 #define DPCI_ADD_MAPPING         1
 #define DPCI_REMOVE_MAPPING      0

File Added: pkgsrc/sysutils/xenkernel42/patches/Attic/patch-CVE-2015-2756
$NetBSD: patch-CVE-2015-2756,v 1.1.2.2 2015/04/29 21:11:12 tron Exp $

patch for CVE-2015-2756 aka XSA-126 from
http://xenbits.xenproject.org/xsa/xsa126-qemut.patch

--- tools/qemu-xen-traditional/hw/pass-through.c.orig	2014-01-09 12:44:42.000000000 +0000
+++ tools/qemu-xen-traditional/hw/pass-through.c
@@ -172,9 +172,6 @@ static int pt_word_reg_read(struct pt_de
 static int pt_long_reg_read(struct pt_dev *ptdev,
     struct pt_reg_tbl *cfg_entry,
     uint32_t *value, uint32_t valid_mask);
-static int pt_cmd_reg_read(struct pt_dev *ptdev,
-    struct pt_reg_tbl *cfg_entry,
-    uint16_t *value, uint16_t valid_mask);
 static int pt_bar_reg_read(struct pt_dev *ptdev,
     struct pt_reg_tbl *cfg_entry,
     uint32_t *value, uint32_t valid_mask);
@@ -286,9 +283,9 @@ static struct pt_reg_info_tbl pt_emu_reg
         .size       = 2,
         .init_val   = 0x0000,
         .ro_mask    = 0xF880,
-        .emu_mask   = 0x0740,
+        .emu_mask   = 0x0743,
         .init       = pt_common_reg_init,
-        .u.w.read   = pt_cmd_reg_read,
+        .u.w.read   = pt_word_reg_read,
         .u.w.write  = pt_cmd_reg_write,
         .u.w.restore  = pt_cmd_reg_restore,
     },
@@ -1905,7 +1902,7 @@ static int pt_dev_is_virtfn(struct pci_d
     return rc;
 }
 
-static int pt_register_regions(struct pt_dev *assigned_device)
+static int pt_register_regions(struct pt_dev *assigned_device, uint16_t *cmd)
 {
     int i = 0;
     uint32_t bar_data = 0;
@@ -1925,17 +1922,26 @@ static int pt_register_regions(struct pt
 
             /* Register current region */
             if ( pci_dev->base_addr[i] & PCI_ADDRESS_SPACE_IO )
+            {
                 pci_register_io_region((PCIDevice *)assigned_device, i,
                     (uint32_t)pci_dev->size[i], PCI_ADDRESS_SPACE_IO,
                     pt_ioport_map);
+                *cmd |= PCI_COMMAND_IO;
+            }
             else if ( pci_dev->base_addr[i] & PCI_ADDRESS_SPACE_MEM_PREFETCH )
+            {
                 pci_register_io_region((PCIDevice *)assigned_device, i,
                     (uint32_t)pci_dev->size[i], PCI_ADDRESS_SPACE_MEM_PREFETCH,
                     pt_iomem_map);
+                *cmd |= PCI_COMMAND_MEMORY;
+            }
             else
+            {
                 pci_register_io_region((PCIDevice *)assigned_device, i,
                     (uint32_t)pci_dev->size[i], PCI_ADDRESS_SPACE_MEM,
                     pt_iomem_map);
+                *cmd |= PCI_COMMAND_MEMORY;
+            }
 
             PT_LOG("IO region registered (size=0x%08x base_addr=0x%08x)\n",
                 (uint32_t)(pci_dev->size[i]),
@@ -3263,27 +3269,6 @@ static int pt_long_reg_read(struct pt_de
    return 0;
 }
 
-/* read Command register */
-static int pt_cmd_reg_read(struct pt_dev *ptdev,
-        struct pt_reg_tbl *cfg_entry,
-        uint16_t *value, uint16_t valid_mask)
-{
-    struct pt_reg_info_tbl *reg = cfg_entry->reg;
-    uint16_t valid_emu_mask = 0;
-    uint16_t emu_mask = reg->emu_mask;
-
-    if ( ptdev->is_virtfn )
-        emu_mask |= PCI_COMMAND_MEMORY;
-    if ( pt_is_iomul(ptdev) )
-        emu_mask |= PCI_COMMAND_IO;
-
-    /* emulate word register */
-    valid_emu_mask = emu_mask & valid_mask;
-    *value = PT_MERGE_VALUE(*value, cfg_entry->data, ~valid_emu_mask);
-
-    return 0;
-}
-
 /* read BAR */
 static int pt_bar_reg_read(struct pt_dev *ptdev,
         struct pt_reg_tbl *cfg_entry,
@@ -3418,19 +3403,13 @@ static int pt_cmd_reg_write(struct pt_de
     uint16_t writable_mask = 0;
     uint16_t throughable_mask = 0;
     uint16_t wr_value = *value;
-    uint16_t emu_mask = reg->emu_mask;
-
-    if ( ptdev->is_virtfn )
-        emu_mask |= PCI_COMMAND_MEMORY;
-    if ( pt_is_iomul(ptdev) )
-        emu_mask |= PCI_COMMAND_IO;
 
     /* modify emulate register */
     writable_mask = ~reg->ro_mask & valid_mask;
     cfg_entry->data = PT_MERGE_VALUE(*value, cfg_entry->data, writable_mask);
 
     /* create value for writing to I/O device register */
-    throughable_mask = ~emu_mask & valid_mask;
+    throughable_mask = ~reg->emu_mask & valid_mask;
 
     if (*value & PCI_COMMAND_DISABLE_INTx)
     {
@@ -4205,6 +4184,7 @@ static struct pt_dev * register_real_dev
     struct pt_dev *assigned_device = NULL;
     struct pci_dev *pci_dev;
     uint8_t e_device, e_intx;
+    uint16_t cmd = 0;
     char *key, *val;
     int msi_translate, power_mgmt;
 
@@ -4294,7 +4274,7 @@ static struct pt_dev * register_real_dev
         assigned_device->dev.config[i] = pci_read_byte(pci_dev, i);
 
     /* Handle real device's MMIO/PIO BARs */
-    pt_register_regions(assigned_device);
+    pt_register_regions(assigned_device, &cmd);
 
     /* Setup VGA bios for passthroughed gfx */
     if ( setup_vga_pt(assigned_device) < 0 )
@@ -4372,6 +4352,10 @@ static struct pt_dev * register_real_dev
     }
 
 out:
+    if (cmd)
+        pci_write_word(pci_dev, PCI_COMMAND,
+            *(uint16_t *)(&assigned_device->dev.config[PCI_COMMAND]) | cmd);
+
     PT_LOG("Real physical device %02x:%02x.%x registered successfuly!\n"
            "IRQ type = %s\n", r_bus, r_dev, r_func,
            assigned_device->msi_trans_en? "MSI-INTx":"INTx");

cvs diff -r1.5 -r1.5.2.1 pkgsrc/sysutils/xenkernel45/Attic/Makefile (switch to unified diff)

--- pkgsrc/sysutils/xenkernel45/Attic/Makefile 2015/03/10 20:08:43 1.5
+++ pkgsrc/sysutils/xenkernel45/Attic/Makefile 2015/04/29 21:11:12 1.5.2.1
@@ -1,56 +1,56 @@ @@ -1,56 +1,56 @@
1# $NetBSD: Makefile,v 1.5 2015/03/10 20:08:43 spz Exp $ 1# $NetBSD: Makefile,v 1.5.2.1 2015/04/29 21:11:12 tron Exp $
2 2
3VERSION= 4.5.0 3VERSION= 4.5.0
4DISTNAME= xen-${VERSION} 4DISTNAME= xen-${VERSION}
5PKGNAME= xenkernel45-${VERSION} 5PKGNAME= xenkernel45-${VERSION}
6PKGREVISION= 2 6PKGREVISION= 3
7CATEGORIES= sysutils 7CATEGORIES= sysutils
8MASTER_SITES= http://bits.xensource.com/oss-xen/release/${VERSION}/ 8MASTER_SITES= http://bits.xensource.com/oss-xen/release/${VERSION}/
9 9
10MAINTAINER= pkgsrc-users@NetBSD.org 10MAINTAINER= pkgsrc-users@NetBSD.org
11HOMEPAGE= http://xenproject.org/ 11HOMEPAGE= http://xenproject.org/
12COMMENT= Xen 4.5.x Kernel 12COMMENT= Xen 4.5.x Kernel
13 13
14LICENSE= gnu-gpl-v2 14LICENSE= gnu-gpl-v2
15 15
16ONLY_FOR_PLATFORM= Linux-2.6*-i386 Linux-2.6*-x86_64 16ONLY_FOR_PLATFORM= Linux-2.6*-i386 Linux-2.6*-x86_64
17ONLY_FOR_PLATFORM+= NetBSD-[5-9].*-x86_64 NetBSD-[5-9].*-i386 17ONLY_FOR_PLATFORM+= NetBSD-[5-9].*-x86_64 NetBSD-[5-9].*-i386
18 18
19NO_CONFIGURE= yes 19NO_CONFIGURE= yes
20USE_TOOLS+= gmake 20USE_TOOLS+= gmake
21 21
22PYTHON_FOR_BUILD_ONLY= YES 22PYTHON_FOR_BUILD_ONLY= YES
23PYTHON_VERSIONS_INCOMPATIBLE= 33 34 23PYTHON_VERSIONS_INCOMPATIBLE= 33 34
24 24
25MAKE_ENV+= OCAML_TOOLS=no 25MAKE_ENV+= OCAML_TOOLS=no
26 26
27INSTALLATION_DIRS= xen45-kernel 27INSTALLATION_DIRS= xen45-kernel
28XENKERNELDIR= ${PREFIX}/${INSTALLATION_DIRS} 28XENKERNELDIR= ${PREFIX}/${INSTALLATION_DIRS}
29 29
30MESSAGE_SUBST+= XENKERNELDIR=${XENKERNELDIR} 30MESSAGE_SUBST+= XENKERNELDIR=${XENKERNELDIR}
31 31
32.include "../../mk/compiler.mk" 32.include "../../mk/compiler.mk"
33.if !empty(PKGSRC_COMPILER:Mclang) 33.if !empty(PKGSRC_COMPILER:Mclang)
34EXTRA_CFLAGS+= -Qunused-arguments -no-integrated-as -Wno-error=format \ 34EXTRA_CFLAGS+= -Qunused-arguments -no-integrated-as -Wno-error=format \
35 -Wno-error=parentheses-equality -Wno-error=enum-conversion \ 35 -Wno-error=parentheses-equality -Wno-error=enum-conversion \
36 -Wno-error=unused-function -Wno-error=unused-const-variable \ 36 -Wno-error=unused-function -Wno-error=unused-const-variable \
37 -Wno-error=ignored-attributes -Wno-error=initializer-overrides 37 -Wno-error=ignored-attributes -Wno-error=initializer-overrides
38.endif 38.endif
39 39
40MAKE_ENV+= EXTRA_CFLAGS=${EXTRA_CFLAGS:Q} 40MAKE_ENV+= EXTRA_CFLAGS=${EXTRA_CFLAGS:Q}
41 41
42do-build: 42do-build:
43 cd ${WRKSRC}/xen && ${BUILD_MAKE_CMD} debug=n build 43 cd ${WRKSRC}/xen && ${BUILD_MAKE_CMD} debug=n build
44 ${CP} ${WRKSRC}/xen/xen.gz ${WRKDIR}/xen.gz 44 ${CP} ${WRKSRC}/xen/xen.gz ${WRKDIR}/xen.gz
45 cd ${WRKSRC}/xen && ${MAKE_PROGRAM} clean 45 cd ${WRKSRC}/xen && ${MAKE_PROGRAM} clean
46 cd ${WRKSRC}/xen && ${BUILD_MAKE_CMD} debug=y build 46 cd ${WRKSRC}/xen && ${BUILD_MAKE_CMD} debug=y build
47 ${CP} ${WRKSRC}/xen/xen.gz ${WRKDIR}/xen-debug.gz 47 ${CP} ${WRKSRC}/xen/xen.gz ${WRKDIR}/xen-debug.gz
48 48
49do-install: 49do-install:
50 ${INSTALL_DATA} ${WRKDIR}/xen.gz \ 50 ${INSTALL_DATA} ${WRKDIR}/xen.gz \
51 ${DESTDIR}${XENKERNELDIR}/xen.gz 51 ${DESTDIR}${XENKERNELDIR}/xen.gz
52 ${INSTALL_DATA} ${WRKDIR}/xen-debug.gz \ 52 ${INSTALL_DATA} ${WRKDIR}/xen-debug.gz \
53 ${DESTDIR}${XENKERNELDIR}/xen-debug.gz 53 ${DESTDIR}${XENKERNELDIR}/xen-debug.gz
54 54
55.include "../../lang/python/application.mk" 55.include "../../lang/python/application.mk"
56.include "../../mk/bsd.pkg.mk" 56.include "../../mk/bsd.pkg.mk"

cvs diff -r1.4 -r1.4.2.1 pkgsrc/sysutils/xenkernel45/Attic/distinfo (switch to unified diff)

--- pkgsrc/sysutils/xenkernel45/Attic/distinfo 2015/03/10 20:08:43 1.4
+++ pkgsrc/sysutils/xenkernel45/Attic/distinfo 2015/04/29 21:11:12 1.4.2.1
@@ -1,13 +1,15 @@ @@ -1,13 +1,15 @@
1$NetBSD: distinfo,v 1.4 2015/03/10 20:08:43 spz Exp $ 1$NetBSD: distinfo,v 1.4.2.1 2015/04/29 21:11:12 tron Exp $
2 2
3SHA1 (xen-4.5.0.tar.gz) = c4aab5fb366496ad1edc7fe0a935a0d604335637 3SHA1 (xen-4.5.0.tar.gz) = c4aab5fb366496ad1edc7fe0a935a0d604335637
4RMD160 (xen-4.5.0.tar.gz) = e35ba0cb484492c1a289218eb9bf53b57dbd3a45 4RMD160 (xen-4.5.0.tar.gz) = e35ba0cb484492c1a289218eb9bf53b57dbd3a45
5Size (xen-4.5.0.tar.gz) = 18404933 bytes 5Size (xen-4.5.0.tar.gz) = 18404933 bytes
6SHA1 (patch-CVE-2015-2044) = 354fe44df0c3b464137f50e2b9de3930f3910c0d 6SHA1 (patch-CVE-2015-2044) = 354fe44df0c3b464137f50e2b9de3930f3910c0d
7SHA1 (patch-CVE-2015-2045) = 98e3f8064b7c190b2ae69c7d4c8f71febf8fbf52 7SHA1 (patch-CVE-2015-2045) = 98e3f8064b7c190b2ae69c7d4c8f71febf8fbf52
8SHA1 (patch-CVE-2015-2151) = 30344d233eade872fa7062493d754f8bccaf9d2a 8SHA1 (patch-CVE-2015-2151) = 30344d233eade872fa7062493d754f8bccaf9d2a
 9SHA1 (patch-CVE-2015-2752) = 390edab296a91c83197205dce7030cbdd60e0d78
 10SHA1 (patch-CVE-2015-2756) = e76490b858e213d09d326b413004d29a7e177b20
9SHA1 (patch-Config.mk) = a2a104d023cea4e551a3ad40927d4884d6c610bf 11SHA1 (patch-Config.mk) = a2a104d023cea4e551a3ad40927d4884d6c610bf
10SHA1 (patch-xen_Makefile) = 750d0c8d4fea14d3ef3f872de5242a1f5104cbbe 12SHA1 (patch-xen_Makefile) = 750d0c8d4fea14d3ef3f872de5242a1f5104cbbe
11SHA1 (patch-xen_arch_x86_Rules.mk) = 7b0894ba7311edb02118a021671f304cf3872154 13SHA1 (patch-xen_arch_x86_Rules.mk) = 7b0894ba7311edb02118a021671f304cf3872154
12SHA1 (patch-xen_include_asm-x86_current.h) = 8a21577be06383c0c7f53c15ba828f77fb6314ad 14SHA1 (patch-xen_include_asm-x86_current.h) = 8a21577be06383c0c7f53c15ba828f77fb6314ad
13SHA1 (patch-xen_include_xen_lib.h) = b9f5dff5b4cf11333d95d9835941c6bc19b776ad 15SHA1 (patch-xen_include_xen_lib.h) = b9f5dff5b4cf11333d95d9835941c6bc19b776ad

File Added: pkgsrc/sysutils/xenkernel45/patches/Attic/patch-CVE-2015-2752
$NetBSD: patch-CVE-2015-2752,v 1.1.2.2 2015/04/29 21:11:12 tron Exp $

Patch for CVE-2015-2752 aka XSA-125 from
http://xenbits.xenproject.org/xsa/xsa125-4.2.patch

--- tools/libxc/xc_domain.c.orig	2015-01-12 16:53:24.000000000 +0000
+++ tools/libxc/xc_domain.c
@@ -1992,6 +1992,8 @@ int xc_domain_memory_mapping(
 {
     DECLARE_DOMCTL;
     xc_dominfo_t info;
+    int ret = 0, err;
+    unsigned long done = 0, nr, max_batch_sz;
 
     if ( xc_domain_getinfo(xch, domid, 1, &info) != 1 ||
          info.domid != domid )
@@ -2002,14 +2004,50 @@ int xc_domain_memory_mapping(
     if ( !xc_core_arch_auto_translated_physmap(&info) )
         return 0;
 
+    if ( !nr_mfns )
+        return 0;
+
     domctl.cmd = XEN_DOMCTL_memory_mapping;
     domctl.domain = domid;
-    domctl.u.memory_mapping.first_gfn = first_gfn;
-    domctl.u.memory_mapping.first_mfn = first_mfn;
-    domctl.u.memory_mapping.nr_mfns = nr_mfns;
     domctl.u.memory_mapping.add_mapping = add_mapping;
+    max_batch_sz = nr_mfns;
+    do
+    {
+        nr = min(nr_mfns - done, max_batch_sz);
+        domctl.u.memory_mapping.nr_mfns = nr;
+        domctl.u.memory_mapping.first_gfn = first_gfn + done;
+        domctl.u.memory_mapping.first_mfn = first_mfn + done;
+        err = do_domctl(xch, &domctl);
+        if ( err && errno == E2BIG )
+        {
+            if ( max_batch_sz <= 1 )
+                break;
+            max_batch_sz >>= 1;
+            continue;
+        }
+        /* Save the first error... */
+        if ( !ret )
+            ret = err;
+        /* .. and ignore the rest of them when removing. */
+        if ( err && add_mapping != DPCI_REMOVE_MAPPING )
+            break;
+
+        done += nr;
+    } while ( done < nr_mfns );
+
+    /*
+     * Undo what we have done unless unmapping, by unmapping the entire region.
+     * Errors here are ignored.
+     */
+    if ( ret && add_mapping != DPCI_REMOVE_MAPPING )
+        xc_domain_memory_mapping(xch, domid, first_gfn, first_mfn, nr_mfns,
+                                 DPCI_REMOVE_MAPPING);
+
+    /* We might get E2BIG so many times that we never advance. */
+    if ( !done && !ret )
+        ret = -1;
 
-    return do_domctl(xch, &domctl);
+    return ret;
 }
 
 int xc_domain_ioport_mapping(

--- xen/common/domctl.c.orig	2015-01-12 16:53:24.000000000 +0000
+++ xen/common/domctl.c
@@ -1036,6 +1036,11 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xe
              (gfn + nr_mfns - 1) < gfn ) /* wrap? */
             break;
 
+        ret = -E2BIG;
+        /* Must break hypercall up as this could take a while. */
+        if ( nr_mfns > 64 )
+            break;
+
         ret = -EPERM;
         if ( !iomem_access_permitted(current->domain, mfn, mfn_end) ||
              !iomem_access_permitted(d, mfn, mfn_end) )

--- xen/include/public/domctl.h.orig	2015-01-12 16:53:24.000000000 +0000
+++ xen/include/public/domctl.h
@@ -543,6 +543,7 @@ DEFINE_XEN_GUEST_HANDLE(xen_domctl_bind_
 
 
 /* Bind machine I/O address range -> HVM address range. */
+/* If this returns -E2BIG lower nr_mfns value. */
 /* XEN_DOMCTL_memory_mapping */
 #define DPCI_ADD_MAPPING         1
 #define DPCI_REMOVE_MAPPING      0

File Added: pkgsrc/sysutils/xenkernel45/patches/Attic/patch-CVE-2015-2756
$NetBSD: patch-CVE-2015-2756,v 1.1.2.2 2015/04/29 21:11:12 tron Exp $

patch for CVE-2015-2756 aka XSA-126 from
http://xenbits.xenproject.org/xsa/xsa126-qemuu.patch
and
http://xenbits.xenproject.org/xsa/xsa126-qemut.patch

--- tools/qemu-xen/hw/xen/xen_pt.c.orig	2014-12-02 10:41:02.000000000 +0000
+++ tools/qemu-xen/hw/xen/xen_pt.c
@@ -388,7 +388,7 @@ static const MemoryRegionOps ops = {
     .write = xen_pt_bar_write,
 };
 
-static int xen_pt_register_regions(XenPCIPassthroughState *s)
+static int xen_pt_register_regions(XenPCIPassthroughState *s, uint16_t *cmd)
 {
     int i = 0;
     XenHostPCIDevice *d = &s->real_device;
@@ -406,6 +406,7 @@ static int xen_pt_register_regions(XenPC
 
         if (r->type & XEN_HOST_PCI_REGION_TYPE_IO) {
             type = PCI_BASE_ADDRESS_SPACE_IO;
+            *cmd |= PCI_COMMAND_IO;
         } else {
             type = PCI_BASE_ADDRESS_SPACE_MEMORY;
             if (r->type & XEN_HOST_PCI_REGION_TYPE_PREFETCH) {
@@ -414,6 +415,7 @@ static int xen_pt_register_regions(XenPC
             if (r->type & XEN_HOST_PCI_REGION_TYPE_MEM_64) {
                 type |= PCI_BASE_ADDRESS_MEM_TYPE_64;
             }
+            *cmd |= PCI_COMMAND_MEMORY;
         }
 
         memory_region_init_io(&s->bar[i], OBJECT(s), &ops, &s->dev,
@@ -657,6 +659,7 @@ static int xen_pt_initfn(PCIDevice *d)
     XenPCIPassthroughState *s = DO_UPCAST(XenPCIPassthroughState, dev, d);
     int rc = 0;
     uint8_t machine_irq = 0;
+    uint16_t cmd = 0;
     int pirq = XEN_PT_UNASSIGNED_PIRQ;
 
     /* register real device */
@@ -691,7 +694,7 @@ static int xen_pt_initfn(PCIDevice *d)
     s->io_listener = xen_pt_io_listener;
 
     /* Handle real device's MMIO/PIO BARs */
-    xen_pt_register_regions(s);
+    xen_pt_register_regions(s, &cmd);
 
     /* reinitialize each config register to be emulated */
     if (xen_pt_config_init(s)) {
@@ -755,6 +758,11 @@ static int xen_pt_initfn(PCIDevice *d)
     }
 
 out:
+    if (cmd) {
+        xen_host_pci_set_word(&s->real_device, PCI_COMMAND,
+                              pci_get_word(d->config + PCI_COMMAND) | cmd);
+    }
+
     memory_listener_register(&s->memory_listener, &address_space_memory);
     memory_listener_register(&s->io_listener, &address_space_io);
     XEN_PT_LOG(d,

--- tools/qemu-xen/hw/xen/xen_pt_config_init.c.orig	2014-12-02 10:41:02.000000000 +0000
+++ tools/qemu-xen/hw/xen/xen_pt_config_init.c
@@ -286,23 +286,6 @@ static int xen_pt_irqpin_reg_init(XenPCI
 }
 
 /* Command register */
-static int xen_pt_cmd_reg_read(XenPCIPassthroughState *s, XenPTReg *cfg_entry,
-                               uint16_t *value, uint16_t valid_mask)
-{
-    XenPTRegInfo *reg = cfg_entry->reg;
-    uint16_t valid_emu_mask = 0;
-    uint16_t emu_mask = reg->emu_mask;
-
-    if (s->is_virtfn) {
-        emu_mask |= PCI_COMMAND_MEMORY;
-    }
-
-    /* emulate word register */
-    valid_emu_mask = emu_mask & valid_mask;
-    *value = XEN_PT_MERGE_VALUE(*value, cfg_entry->data, ~valid_emu_mask);
-
-    return 0;
-}
 static int xen_pt_cmd_reg_write(XenPCIPassthroughState *s, XenPTReg *cfg_entry,
                                 uint16_t *val, uint16_t dev_value,
                                 uint16_t valid_mask)
@@ -310,18 +293,13 @@ static int xen_pt_cmd_reg_write(XenPCIPa
     XenPTRegInfo *reg = cfg_entry->reg;
     uint16_t writable_mask = 0;
     uint16_t throughable_mask = 0;
-    uint16_t emu_mask = reg->emu_mask;
-
-    if (s->is_virtfn) {
-        emu_mask |= PCI_COMMAND_MEMORY;
-    }
 
     /* modify emulate register */
     writable_mask = ~reg->ro_mask & valid_mask;
     cfg_entry->data = XEN_PT_MERGE_VALUE(*val, cfg_entry->data, writable_mask);
 
     /* create value for writing to I/O device register */
-    throughable_mask = ~emu_mask & valid_mask;
+    throughable_mask = ~reg->emu_mask & valid_mask;
 
     if (*val & PCI_COMMAND_INTX_DISABLE) {
         throughable_mask |= PCI_COMMAND_INTX_DISABLE;
@@ -605,9 +583,9 @@ static XenPTRegInfo xen_pt_emu_reg_heade
         .size       = 2,
         .init_val   = 0x0000,
         .ro_mask    = 0xF880,
-        .emu_mask   = 0x0740,
+        .emu_mask   = 0x0743,
         .init       = xen_pt_common_reg_init,
-        .u.w.read   = xen_pt_cmd_reg_read,
+        .u.w.read   = xen_pt_word_reg_read,
         .u.w.write  = xen_pt_cmd_reg_write,
     },
     /* Capabilities Pointer reg */

--- tools/qemu-xen-traditional/hw/pass-through.c.orig	2014-10-06 15:50:24.000000000 +0000
+++ tools/qemu-xen-traditional/hw/pass-through.c
@@ -172,9 +172,6 @@ static int pt_word_reg_read(struct pt_de
 static int pt_long_reg_read(struct pt_dev *ptdev,
     struct pt_reg_tbl *cfg_entry,
     uint32_t *value, uint32_t valid_mask);
-static int pt_cmd_reg_read(struct pt_dev *ptdev,
-    struct pt_reg_tbl *cfg_entry,
-    uint16_t *value, uint16_t valid_mask);
 static int pt_bar_reg_read(struct pt_dev *ptdev,
     struct pt_reg_tbl *cfg_entry,
     uint32_t *value, uint32_t valid_mask);
@@ -286,9 +283,9 @@ static struct pt_reg_info_tbl pt_emu_reg
         .size       = 2,
         .init_val   = 0x0000,
         .ro_mask    = 0xF880,
-        .emu_mask   = 0x0740,
+        .emu_mask   = 0x0743,
         .init       = pt_common_reg_init,
-        .u.w.read   = pt_cmd_reg_read,
+        .u.w.read   = pt_word_reg_read,
         .u.w.write  = pt_cmd_reg_write,
         .u.w.restore  = pt_cmd_reg_restore,
     },
@@ -1905,7 +1902,7 @@ static int pt_dev_is_virtfn(struct pci_d
     return rc;
 }
 
-static int pt_register_regions(struct pt_dev *assigned_device)
+static int pt_register_regions(struct pt_dev *assigned_device, uint16_t *cmd)
 {
     int i = 0;
     uint32_t bar_data = 0;
@@ -1925,17 +1922,26 @@ static int pt_register_regions(struct pt
 
             /* Register current region */
             if ( pci_dev->base_addr[i] & PCI_ADDRESS_SPACE_IO )
+            {
                 pci_register_io_region((PCIDevice *)assigned_device, i,
                     (uint32_t)pci_dev->size[i], PCI_ADDRESS_SPACE_IO,
                     pt_ioport_map);
+                *cmd |= PCI_COMMAND_IO;
+            }
             else if ( pci_dev->base_addr[i] & PCI_ADDRESS_SPACE_MEM_PREFETCH )
+            {
                 pci_register_io_region((PCIDevice *)assigned_device, i,
                     (uint32_t)pci_dev->size[i], PCI_ADDRESS_SPACE_MEM_PREFETCH,
                     pt_iomem_map);
+                *cmd |= PCI_COMMAND_MEMORY;
+            }
             else
+            {
                 pci_register_io_region((PCIDevice *)assigned_device, i,
                     (uint32_t)pci_dev->size[i], PCI_ADDRESS_SPACE_MEM,
                     pt_iomem_map);
+                *cmd |= PCI_COMMAND_MEMORY;
+            }
 
             PT_LOG("IO region registered (size=0x%08x base_addr=0x%08x)\n",
                 (uint32_t)(pci_dev->size[i]),
@@ -3263,27 +3269,6 @@ static int pt_long_reg_read(struct pt_de
    return 0;
 }
 
-/* read Command register */
-static int pt_cmd_reg_read(struct pt_dev *ptdev,
-        struct pt_reg_tbl *cfg_entry,
-        uint16_t *value, uint16_t valid_mask)
-{
-    struct pt_reg_info_tbl *reg = cfg_entry->reg;
-    uint16_t valid_emu_mask = 0;
-    uint16_t emu_mask = reg->emu_mask;
-
-    if ( ptdev->is_virtfn )
-        emu_mask |= PCI_COMMAND_MEMORY;
-    if ( pt_is_iomul(ptdev) )
-        emu_mask |= PCI_COMMAND_IO;
-
-    /* emulate word register */
-    valid_emu_mask = emu_mask & valid_mask;
-    *value = PT_MERGE_VALUE(*value, cfg_entry->data, ~valid_emu_mask);
-
-    return 0;
-}
-
 /* read BAR */
 static int pt_bar_reg_read(struct pt_dev *ptdev,
         struct pt_reg_tbl *cfg_entry,
@@ -3418,19 +3403,13 @@ static int pt_cmd_reg_write(struct pt_de
     uint16_t writable_mask = 0;
     uint16_t throughable_mask = 0;
     uint16_t wr_value = *value;
-    uint16_t emu_mask = reg->emu_mask;
-
-    if ( ptdev->is_virtfn )
-        emu_mask |= PCI_COMMAND_MEMORY;
-    if ( pt_is_iomul(ptdev) )
-        emu_mask |= PCI_COMMAND_IO;
 
     /* modify emulate register */
     writable_mask = ~reg->ro_mask & valid_mask;
     cfg_entry->data = PT_MERGE_VALUE(*value, cfg_entry->data, writable_mask);
 
     /* create value for writing to I/O device register */
-    throughable_mask = ~emu_mask & valid_mask;
+    throughable_mask = ~reg->emu_mask & valid_mask;
 
     if (*value & PCI_COMMAND_DISABLE_INTx)
     {
@@ -4211,6 +4190,7 @@ static struct pt_dev * register_real_dev
     struct pt_dev *assigned_device = NULL;
     struct pci_dev *pci_dev;
     uint8_t e_device, e_intx;
+    uint16_t cmd = 0;
     char *key, *val;
     int msi_translate, power_mgmt;
 
@@ -4300,7 +4280,7 @@ static struct pt_dev * register_real_dev
         assigned_device->dev.config[i] = pci_read_byte(pci_dev, i);
 
     /* Handle real device's MMIO/PIO BARs */
-    pt_register_regions(assigned_device);
+    pt_register_regions(assigned_device, &cmd);
 
     /* Setup VGA bios for passthroughed gfx */
     if ( setup_vga_pt(assigned_device) < 0 )
@@ -4378,6 +4358,10 @@ static struct pt_dev * register_real_dev
     }
 
 out:
+    if (cmd)
+        pci_write_word(pci_dev, PCI_COMMAND,
+            *(uint16_t *)(&assigned_device->dev.config[PCI_COMMAND]) | cmd);
+
     PT_LOG("Real physical device %02x:%02x.%x registered successfuly!\n"
            "IRQ type = %s\n", r_bus, r_dev, r_func,
            assigned_device->msi_trans_en? "MSI-INTx":"INTx");

cvs diff -r1.49 -r1.49.4.1 pkgsrc/sysutils/xentools41/Attic/Makefile (switch to unified diff)

--- pkgsrc/sysutils/xentools41/Attic/Makefile 2014/12/27 00:27:11 1.49
+++ pkgsrc/sysutils/xentools41/Attic/Makefile 2015/04/29 21:11:13 1.49.4.1
@@ -1,204 +1,204 @@ @@ -1,204 +1,204 @@
1# $NetBSD: Makefile,v 1.49 2014/12/27 00:27:11 gdt Exp $ 1# $NetBSD: Makefile,v 1.49.4.1 2015/04/29 21:11:13 tron Exp $
2# 2#
3# VERSION is set in version.mk as it is shared with other packages 3# VERSION is set in version.mk as it is shared with other packages
4.include "version.mk" 4.include "version.mk"
5 5
6DISTNAME= xen-${VERSION} 6DISTNAME= xen-${VERSION}
7PKGNAME= xentools41-${VERSION} 7PKGNAME= xentools41-${VERSION}
8PKGREVISION= 6 8PKGREVISION= 7
9CATEGORIES= sysutils 9CATEGORIES= sysutils
10MASTER_SITES= http://bits.xensource.com/oss-xen/release/${VERSION}/ 10MASTER_SITES= http://bits.xensource.com/oss-xen/release/${VERSION}/
11 11
12DISTFILES= ${DISTNAME}.tar.gz 12DISTFILES= ${DISTNAME}.tar.gz
13DISTFILES+= ipxe-git-v${VERSION_IPXE}.tar.gz 13DISTFILES+= ipxe-git-v${VERSION_IPXE}.tar.gz
14SITES.ipxe-git-v${VERSION_IPXE}.tar.gz += http://xenbits.xensource.com/xen-extfiles/ 14SITES.ipxe-git-v${VERSION_IPXE}.tar.gz += http://xenbits.xensource.com/xen-extfiles/
15 15
16MAINTAINER= cegger@NetBSD.org 16MAINTAINER= cegger@NetBSD.org
17HOMEPAGE= http://xen.org/ 17HOMEPAGE= http://xen.org/
18COMMENT= Userland Tools for Xen 4.1.x 18COMMENT= Userland Tools for Xen 4.1.x
19 19
20LICENSE= gnu-gpl-v2 20LICENSE= gnu-gpl-v2
21 21
22#DEPENDS+= ${PYPKGPREFIX}-readline-[0-9]*:../../devel/py-readline 22#DEPENDS+= ${PYPKGPREFIX}-readline-[0-9]*:../../devel/py-readline
23DEPENDS+= ${PYPKGPREFIX}-curses>=0nb4:../../devel/py-curses 23DEPENDS+= ${PYPKGPREFIX}-curses>=0nb4:../../devel/py-curses
24 24
25# XXX add version check: Xen requires dev86 >= 0.16.14 25# XXX add version check: Xen requires dev86 >= 0.16.14
26BUILD_DEPENDS+= dev86-[0-9]*:../../devel/dev86 # needed to build firmware 26BUILD_DEPENDS+= dev86-[0-9]*:../../devel/dev86 # needed to build firmware
27.if !exists(/usr/bin/iasl) 27.if !exists(/usr/bin/iasl)
28BUILD_DEPENDS+= acpica-utils-[0-9]*:../../sysutils/acpica-utils 28BUILD_DEPENDS+= acpica-utils-[0-9]*:../../sysutils/acpica-utils
29.endif 29.endif
30 30
31PYTHON_VERSIONS_INCOMPATIBLE= 33 34 # py-xml 31PYTHON_VERSIONS_INCOMPATIBLE= 33 34 # py-xml
32 32
33PKG_SYSCONFSUBDIR= xen 33PKG_SYSCONFSUBDIR= xen
34 34
35ONLY_FOR_PLATFORM= Linux-2.6*-i386 Linux-2.6*-x86_64 35ONLY_FOR_PLATFORM= Linux-2.6*-i386 Linux-2.6*-x86_64
36ONLY_FOR_PLATFORM+= NetBSD-[5-9].*-x86_64 NetBSD-[5-9].*-i386 36ONLY_FOR_PLATFORM+= NetBSD-[5-9].*-x86_64 NetBSD-[5-9].*-i386
37 37
38CONFLICTS+= libxen-[0-9]* 38CONFLICTS+= libxen-[0-9]*
39CONFLICTS+= xentools20-[0-9]* 39CONFLICTS+= xentools20-[0-9]*
40CONFLICTS+= xentools3* 40CONFLICTS+= xentools3*
41CONFLICTS+= xenstoretools-* 41CONFLICTS+= xenstoretools-*
42 42
43WRKSRC= ${WRKDIR}/xen-${VERSION}/tools 43WRKSRC= ${WRKDIR}/xen-${VERSION}/tools
44CHECK_PORTABILITY_SKIP= examples/* 44CHECK_PORTABILITY_SKIP= examples/*
45 45
46EGDIR= ${PREFIX}/share/examples/xen 46EGDIR= ${PREFIX}/share/examples/xen
47MESSAGE_SUBST= EGDIR=${EGDIR} 47MESSAGE_SUBST= EGDIR=${EGDIR}
48 48
49USE_TOOLS+= perl #for pod2man 49USE_TOOLS+= perl #for pod2man
50USE_TOOLS+= gmake pkg-config 50USE_TOOLS+= gmake pkg-config
51 51
52MAKE_ENV+= PREFIX=${prefix:Q} WRKSRC=${WRKSRC} 52MAKE_ENV+= PREFIX=${prefix:Q} WRKSRC=${WRKSRC}
53MAKE_ENV+= EGDIR=${EGDIR:Q} 53MAKE_ENV+= EGDIR=${EGDIR:Q}
54MAKE_ENV+= BASH_COMPLETION_DIR=${EGDIR:Q} 54MAKE_ENV+= BASH_COMPLETION_DIR=${EGDIR:Q}
55MAKE_ENV+= MV=${MV:Q} PYTHON=${PYTHONBIN:Q} SED=${SED:Q} 55MAKE_ENV+= MV=${MV:Q} PYTHON=${PYTHONBIN:Q} SED=${SED:Q}
56MAKE_ENV+= VARBASE=${VARBASE} 56MAKE_ENV+= VARBASE=${VARBASE}
57MAKE_ENV+= XEN_CONFIG_DIR=${PKG_SYSCONFDIR} 57MAKE_ENV+= XEN_CONFIG_DIR=${PKG_SYSCONFDIR}
58MAKE_ENV+= V=YES 58MAKE_ENV+= V=YES
59 59
60#MAKE_ENV+= INSTALL_DIR=${BSD_INSTALL_DATA_DIR} 60#MAKE_ENV+= INSTALL_DIR=${BSD_INSTALL_DATA_DIR}
61#MAKE_ENV+= INSTALL_DATA=${BSD_INSTALL_DATA} 61#MAKE_ENV+= INSTALL_DATA=${BSD_INSTALL_DATA}
62#MAKE_ENV+= INSTALL_PROG=${BSD_INSTALL_PROGRAM} 62#MAKE_ENV+= INSTALL_PROG=${BSD_INSTALL_PROGRAM}
63 63
64PY_PATCHPLIST= yes 64PY_PATCHPLIST= yes
65#REPLACE_PYTHON+= misc/xm 65#REPLACE_PYTHON+= misc/xm
66#REPLACE_PYTHON+= misc/netfix 66#REPLACE_PYTHON+= misc/netfix
67#REPLACE_PYTHON+= misc/xen-bugtool 67#REPLACE_PYTHON+= misc/xen-bugtool
68#REPLACE_PYTHON+= misc/xencons 68#REPLACE_PYTHON+= misc/xencons
69#REPLACE_PYTHON+= misc/xend 69#REPLACE_PYTHON+= misc/xend
70#REPLACE_PYTHON+= misc/xensymoops 70#REPLACE_PYTHON+= misc/xensymoops
71#REPLACE_PYTHON+= misc/xen-python-path 71#REPLACE_PYTHON+= misc/xen-python-path
72#REPLACE_PYTHON+= pygrub/src/pygrub 72#REPLACE_PYTHON+= pygrub/src/pygrub
73#REPLACE_PYTHON+= python/xen/util/*.py 73#REPLACE_PYTHON+= python/xen/util/*.py
74#REPLACE_PYTHON+= python/xen/xend/*.py 74#REPLACE_PYTHON+= python/xen/xend/*.py
75#REPLACE_PYTHON+= python/xen/xm/*.py 75#REPLACE_PYTHON+= python/xen/xm/*.py
76#REPLACE_PYTHON+= python/xen/util/*.py 76#REPLACE_PYTHON+= python/xen/util/*.py
77#REPLACE_PYTHON+= python/*.py 77#REPLACE_PYTHON+= python/*.py
78#REPLACE_PYTHON+= security/python/xensec_gen/cgi-bin/policy.cgi 78#REPLACE_PYTHON+= security/python/xensec_gen/cgi-bin/policy.cgi
79#REPLACE_PYTHON+= security/python/xensec_gen/*.py 79#REPLACE_PYTHON+= security/python/xensec_gen/*.py
80#REPLACE_PYTHON+= security/python/*.py 80#REPLACE_PYTHON+= security/python/*.py
81#REPLACE_PYTHON+= security/*.py 81#REPLACE_PYTHON+= security/*.py
82#REPLACE_PYTHON+= xenmon/*.py 82#REPLACE_PYTHON+= xenmon/*.py
83#REPLACE_PYTHON+= xentrace/xentrace_format 83#REPLACE_PYTHON+= xentrace/xentrace_format
84 84
85REPLACE_PYTHON+= python/xen/remus/*.py 85REPLACE_PYTHON+= python/xen/remus/*.py
86REPLACE_PYTHON+= python/xen/util/*.py 86REPLACE_PYTHON+= python/xen/util/*.py
87REPLACE_PYTHON+= python/xen/xend/*.py 87REPLACE_PYTHON+= python/xen/xend/*.py
88REPLACE_PYTHON+= python/xen/xm/*.py 88REPLACE_PYTHON+= python/xen/xm/*.py
89REPLACE_PYTHON+= xenmon/xenmon.py 89REPLACE_PYTHON+= xenmon/xenmon.py
90 90
91SUBST_CLASSES+= pathsvar 91SUBST_CLASSES+= pathsvar
92SUBST_STAGE.pathsvar= pre-configure 92SUBST_STAGE.pathsvar= pre-configure
93SUBST_FILES.pathsvar= Makefile \ 93SUBST_FILES.pathsvar= Makefile \
94 examples/xend-config.sxp \ 94 examples/xend-config.sxp \
95 hotplug/Linux/init.d/sysconfig.xendomains \ 95 hotplug/Linux/init.d/sysconfig.xendomains \
96 python/xen/xend/XendOptions.py \ 96 python/xen/xend/XendOptions.py \
97 python/xen/xend/server/relocate.py \ 97 python/xen/xend/server/relocate.py \
98 python/xen/xend/tests/xend-config.sxp \ 98 python/xen/xend/tests/xend-config.sxp \
99 security/Makefile \ 99 security/Makefile \
100 security/python/xensec_gen/main.py \ 100 security/python/xensec_gen/main.py \
101 xenstore/xs_lib.c 101 xenstore/xs_lib.c
102SUBST_SED.pathsvar= -e "s|/var/lib|${VARBASE}/run|g" 102SUBST_SED.pathsvar= -e "s|/var/lib|${VARBASE}/run|g"
103 103
104SUBST_CLASSES+= conf 104SUBST_CLASSES+= conf
105SUBST_STAGE.conf= pre-configure 105SUBST_STAGE.conf= pre-configure
106SUBST_FILES.conf+= python/xen/xm/create.py 106SUBST_FILES.conf+= python/xen/xm/create.py
107SUBST_FILES.conf+= ocaml/xenstored/define.ml 107SUBST_FILES.conf+= ocaml/xenstored/define.ml
108SUBST_SED.conf= -e "s,@XENDCONFDIR@,${PKG_SYSCONFDIR},g" 108SUBST_SED.conf= -e "s,@XENDCONFDIR@,${PKG_SYSCONFDIR},g"
109 109
110.include "../../mk/bsd.prefs.mk" 110.include "../../mk/bsd.prefs.mk"
111 111
112XEND_SCRIPTS= block vif-bridge vif-ip qemu-ifup hotplugpath.sh 112XEND_SCRIPTS= block vif-bridge vif-ip qemu-ifup hotplugpath.sh
113 113
114.if ${OPSYS} == "NetBSD" 114.if ${OPSYS} == "NetBSD"
115SUBST_CLASSES+= proc 115SUBST_CLASSES+= proc
116SUBST_STAGE.proc= pre-configure 116SUBST_STAGE.proc= pre-configure
117SUBST_FILES.proc= python/xen/xend/XendVnet.py 117SUBST_FILES.proc= python/xen/xend/XendVnet.py
118SUBST_FILES.proc+= ocaml/xenstored/define.ml 118SUBST_FILES.proc+= ocaml/xenstored/define.ml
119SUBST_SED.proc= -e "s|/proc|/kern|g" 119SUBST_SED.proc= -e "s|/proc|/kern|g"
120PROCPATH= /kern 120PROCPATH= /kern
121.else 121.else
122PROCPATH= /proc 122PROCPATH= /proc
123.endif 123.endif
124 124
125SUBST_CLASSES+= procdev 125SUBST_CLASSES+= procdev
126SUBST_STAGE.procdev= pre-configure 126SUBST_STAGE.procdev= pre-configure
127SUBST_FILES.procdev= ocaml/xenstored/define.ml 127SUBST_FILES.procdev= ocaml/xenstored/define.ml
128.if ${OPSYS} == "NetBSD" 128.if ${OPSYS} == "NetBSD"
129SUBST_SED.procdev= -e "s|@PROCDEV@|/dev|g" 129SUBST_SED.procdev= -e "s|@PROCDEV@|/dev|g"
130.else 130.else
131SUBST_SED.procdev= -e "s|@PROCDEV@|/proc/xen|g" 131SUBST_SED.procdev= -e "s|@PROCDEV@|/proc/xen|g"
132.endif 132.endif
133 133
134RCD_SCRIPTS= xen-watchdog xencommons xend xendomains 134RCD_SCRIPTS= xen-watchdog xencommons xend xendomains
135FILES_SUBST+= RCD_INTERPRETER=${PYTHONBIN:Q} 135FILES_SUBST+= RCD_INTERPRETER=${PYTHONBIN:Q}
136FILES_SUBST+= PROCPATH=${PROCPATH:Q} 136FILES_SUBST+= PROCPATH=${PROCPATH:Q}
137FILES_SUBST+= PKG_SYSCONFDIR=${PKG_SYSCONFDIR:Q} 137FILES_SUBST+= PKG_SYSCONFDIR=${PKG_SYSCONFDIR:Q}
138FILES_SUBST+= PREFIX=${PREFIX:Q} 138FILES_SUBST+= PREFIX=${PREFIX:Q}
139 139
140BLKTAP_FILES= blk_netbsd.c blktapctrl_netbsd.c 140BLKTAP_FILES= blk_netbsd.c blktapctrl_netbsd.c
141 141
142CONF_FILES+= ${EGDIR}/xend-config.sxp ${PKG_SYSCONFDIR}/xend-config.sxp 142CONF_FILES+= ${EGDIR}/xend-config.sxp ${PKG_SYSCONFDIR}/xend-config.sxp
143CONF_FILES+= ${EGDIR}/formats ${PKG_SYSCONFDIR}/formats 143CONF_FILES+= ${EGDIR}/formats ${PKG_SYSCONFDIR}/formats
144CONF_FILES+= ${EGDIR}/xm-config.xml ${PKG_SYSCONFDIR}/xm-config.xml 144CONF_FILES+= ${EGDIR}/xm-config.xml ${PKG_SYSCONFDIR}/xm-config.xml
145 145
146OWN_DIRS= ${PKG_SYSCONFDIR}/scripts ${VARBASE}/log/xen ${VARBASE}/lib 146OWN_DIRS= ${PKG_SYSCONFDIR}/scripts ${VARBASE}/log/xen ${VARBASE}/lib
147 147
148.for s in ${XEND_SCRIPTS} 148.for s in ${XEND_SCRIPTS}
149CONF_FILES_PERMS+= ${EGDIR}/scripts/${s} ${PKG_SYSCONFDIR}/scripts/${s} \ 149CONF_FILES_PERMS+= ${EGDIR}/scripts/${s} ${PKG_SYSCONFDIR}/scripts/${s} \
150 ${REAL_ROOT_USER} ${REAL_ROOT_GROUP} 0755 150 ${REAL_ROOT_USER} ${REAL_ROOT_GROUP} 0755
151.endfor 151.endfor
152 152
153pre-build: 153pre-build:
154 rm -f ${WRKSRC}/check/check_x11_devel 154 rm -f ${WRKSRC}/check/check_x11_devel
155.for s in ${BLKTAP_FILES} 155.for s in ${BLKTAP_FILES}
156 ${CP} ${FILESDIR}/${s} ${WRKSRC}/blktap/drivers/ 156 ${CP} ${FILESDIR}/${s} ${WRKSRC}/blktap/drivers/
157.endfor 157.endfor
158 pod2man ${WRKSRC}/../docs/man/xend-config.sxp.pod.5 |\ 158 pod2man ${WRKSRC}/../docs/man/xend-config.sxp.pod.5 |\
159 ${SED} -e "s,@XENDCONFDIR@,${PKG_SYSCONFDIR},g" \ 159 ${SED} -e "s,@XENDCONFDIR@,${PKG_SYSCONFDIR},g" \
160 >${WRKDIR}/xend-config.sxp.5 160 >${WRKDIR}/xend-config.sxp.5
161 pod2man ${WRKSRC}/../docs/man/xmdomain.cfg.pod.5 |\ 161 pod2man ${WRKSRC}/../docs/man/xmdomain.cfg.pod.5 |\
162 ${SED} -e "s,@XENDCONFDIR@,${PKG_SYSCONFDIR},g" \ 162 ${SED} -e "s,@XENDCONFDIR@,${PKG_SYSCONFDIR},g" \
163 >${WRKDIR}/xmdomain.cfg.5 163 >${WRKDIR}/xmdomain.cfg.5
164 pod2man ${WRKSRC}/../docs/man/xm.pod.1 |\ 164 pod2man ${WRKSRC}/../docs/man/xm.pod.1 |\
165 ${SED} -e "s,@XENDCONFDIR@,${PKG_SYSCONFDIR},g" \ 165 ${SED} -e "s,@XENDCONFDIR@,${PKG_SYSCONFDIR},g" \
166 >${WRKDIR}/xm.1 166 >${WRKDIR}/xm.1
167 167
168INSTALLATION_DIRS= ${EGDIR} ${PKGMANDIR}/man5 168INSTALLATION_DIRS= ${EGDIR} ${PKGMANDIR}/man5
169 169
170post-install: 170post-install:
171 for f in xend-config.sxp xmexample1 xmexample2 xmexample3; do \ 171 for f in xend-config.sxp xmexample1 xmexample2 xmexample3; do \
172 ${INSTALL_DATA} ${WRKSRC}/examples/$$f ${DESTDIR}${EGDIR}/$$f; \ 172 ${INSTALL_DATA} ${WRKSRC}/examples/$$f ${DESTDIR}${EGDIR}/$$f; \
173 done 173 done
174 ${INSTALL_DATA} ${WRKDIR}/xend-config.sxp.5 ${DESTDIR}${PREFIX}/${PKGMANDIR}/man5 174 ${INSTALL_DATA} ${WRKDIR}/xend-config.sxp.5 ${DESTDIR}${PREFIX}/${PKGMANDIR}/man5
175 ${INSTALL_DATA} ${WRKDIR}/xmdomain.cfg.5 ${DESTDIR}${PREFIX}/${PKGMANDIR}/man5 175 ${INSTALL_DATA} ${WRKDIR}/xmdomain.cfg.5 ${DESTDIR}${PREFIX}/${PKGMANDIR}/man5
176 ${INSTALL_DATA} ${WRKDIR}/xm.1 ${DESTDIR}${PREFIX}/${PKGMANDIR}/man1 176 ${INSTALL_DATA} ${WRKDIR}/xm.1 ${DESTDIR}${PREFIX}/${PKGMANDIR}/man1
177 177
178.if ${OPSYS} == "NetBSD" && !exists(/var/shm) 178.if ${OPSYS} == "NetBSD" && !exists(/var/shm)
179CPPFLAGS+= -Dshm_open=open -Dshm_unlink=unlink 179CPPFLAGS+= -Dshm_open=open -Dshm_unlink=unlink
180.endif 180.endif
181 181
182.include "../../mk/compiler.mk" 182.include "../../mk/compiler.mk"
183.if !empty(PKGSRC_COMPILER:Mclang) 183.if !empty(PKGSRC_COMPILER:Mclang)
184EXTRA_HOSTCFLAGS+= -Wno-error=ignored-attributes 184EXTRA_HOSTCFLAGS+= -Wno-error=ignored-attributes
185EXTRA_CFLAGS+= -Wno-error=ignored-attributes -no-integrated-as \ 185EXTRA_CFLAGS+= -Wno-error=ignored-attributes -no-integrated-as \
186 -Wno-error=tautological-compare -Wno-error=null-dereference \ 186 -Wno-error=tautological-compare -Wno-error=null-dereference \
187 -Wno-error=empty-body -Wno-error=self-assign \ 187 -Wno-error=empty-body -Wno-error=self-assign \
188 -Wno-error=sometimes-uninitialized -Wno-error=unused-function 188 -Wno-error=sometimes-uninitialized -Wno-error=unused-function
189BUILDLINK_TRANSFORM+= rm:-falign-jumps=1 rm:-falign-loops=1 \ 189BUILDLINK_TRANSFORM+= rm:-falign-jumps=1 rm:-falign-loops=1 \
190 rm:-mpreferred-stack-boundary=2 190 rm:-mpreferred-stack-boundary=2
191.endif 191.endif
192 192
193MAKE_ENV+= EXTRA_HOSTCFLAGS=${EXTRA_HOSTCFLAGS:Q} EXTRA_CFLAGS=${EXTRA_CFLAGS:Q} 193MAKE_ENV+= EXTRA_HOSTCFLAGS=${EXTRA_HOSTCFLAGS:Q} EXTRA_CFLAGS=${EXTRA_CFLAGS:Q}
194 194
195.include "../../lang/python/application.mk" 195.include "../../lang/python/application.mk"
196.include "../../lang/python/extension.mk" 196.include "../../lang/python/extension.mk"
197.include "../../textproc/py-xml/buildlink3.mk" 197.include "../../textproc/py-xml/buildlink3.mk"
198.include "../../devel/ncurses/buildlink3.mk" 198.include "../../devel/ncurses/buildlink3.mk"
199#.include "../../devel/SDL/buildlink3.mk" 199#.include "../../devel/SDL/buildlink3.mk"
200.include "../../lang/ocaml/buildlink3.mk" 200.include "../../lang/ocaml/buildlink3.mk"
201.include "../../devel/ocaml-findlib/buildlink3.mk" 201.include "../../devel/ocaml-findlib/buildlink3.mk"
202.include "../../sysutils/pciutils/buildlink3.mk" 202.include "../../sysutils/pciutils/buildlink3.mk"
203 203
204.include "../../mk/bsd.pkg.mk" 204.include "../../mk/bsd.pkg.mk"

cvs diff -r1.37 -r1.37.6.1 pkgsrc/sysutils/xentools41/Attic/distinfo (switch to unified diff)

--- pkgsrc/sysutils/xentools41/Attic/distinfo 2014/08/28 14:30:03 1.37
+++ pkgsrc/sysutils/xentools41/Attic/distinfo 2015/04/29 21:11:13 1.37.6.1
@@ -1,64 +1,66 @@ @@ -1,64 +1,66 @@
1$NetBSD: distinfo,v 1.37 2014/08/28 14:30:03 bouyer Exp $ 1$NetBSD: distinfo,v 1.37.6.1 2015/04/29 21:11:13 tron Exp $
2 2
3SHA1 (ipxe-git-v1.0.0.tar.gz) = da052c8de5f3485fe0253c19cf52ed6d72528485 3SHA1 (ipxe-git-v1.0.0.tar.gz) = da052c8de5f3485fe0253c19cf52ed6d72528485
4RMD160 (ipxe-git-v1.0.0.tar.gz) = dcd9b6eaafa1ce05c1ebf2a15f2f73ad7a8c5547 4RMD160 (ipxe-git-v1.0.0.tar.gz) = dcd9b6eaafa1ce05c1ebf2a15f2f73ad7a8c5547
5Size (ipxe-git-v1.0.0.tar.gz) = 1996881 bytes 5Size (ipxe-git-v1.0.0.tar.gz) = 1996881 bytes
6SHA1 (xen-4.1.6.1.tar.gz) = e5f15feb0821578817a65ede16110c6eac01abd0 6SHA1 (xen-4.1.6.1.tar.gz) = e5f15feb0821578817a65ede16110c6eac01abd0
7RMD160 (xen-4.1.6.1.tar.gz) = bff11421fc44a26f2cc3156713267abcb36d7a19 7RMD160 (xen-4.1.6.1.tar.gz) = bff11421fc44a26f2cc3156713267abcb36d7a19
8Size (xen-4.1.6.1.tar.gz) = 10428485 bytes 8Size (xen-4.1.6.1.tar.gz) = 10428485 bytes
9SHA1 (patch-.._.._ipxe_src_arch_i386_include_librm.h) = 4549ac641b112321b4731a918d85219c3fce6808 9SHA1 (patch-.._.._ipxe_src_arch_i386_include_librm.h) = 4549ac641b112321b4731a918d85219c3fce6808
10SHA1 (patch-.._.._ipxe_src_core_settings.c) = 240ff973757403b983f12b2cbed826584c4a8aba 10SHA1 (patch-.._.._ipxe_src_core_settings.c) = 240ff973757403b983f12b2cbed826584c4a8aba
11SHA1 (patch-.._.._ipxe_src_net_tls.c) = c0cfbc2ab2b92c659c146601c4f80d58c951ca62 11SHA1 (patch-.._.._ipxe_src_net_tls.c) = c0cfbc2ab2b92c659c146601c4f80d58c951ca62
12SHA1 (patch-.._Config.mk) = 9b971a41f67bb3974d3a4459bb9d96fbbd636c96 12SHA1 (patch-.._Config.mk) = 9b971a41f67bb3974d3a4459bb9d96fbbd636c96
13SHA1 (patch-CVE-2014-1950) = b0d900722fd0f59a50f1e1eda1471105d5b557e5 13SHA1 (patch-CVE-2014-1950) = b0d900722fd0f59a50f1e1eda1471105d5b557e5
 14SHA1 (patch-CVE-2015-2752) = f9bca0b8744233e20ff97c3e8e2e404522e87f49
 15SHA1 (patch-CVE-2015-2756) = 07aaac4bcd0dfc6d708c1823288b9fc789ebd125
14SHA1 (patch-aa) = 9b53ba4a809dad7a1de34c8fa0dbe493d7256ada 16SHA1 (patch-aa) = 9b53ba4a809dad7a1de34c8fa0dbe493d7256ada
15SHA1 (patch-ab) = 0906a5ec3a7450fc987b01289e2560e60966d00d 17SHA1 (patch-ab) = 0906a5ec3a7450fc987b01289e2560e60966d00d
16SHA1 (patch-ac) = c3cc5335a1d6b066307c5f03fe72f513a9eb2bdb 18SHA1 (patch-ac) = c3cc5335a1d6b066307c5f03fe72f513a9eb2bdb
17SHA1 (patch-ad) = 5eb15470bff85d30b6d26d8fe094f59fc8e34175 19SHA1 (patch-ad) = 5eb15470bff85d30b6d26d8fe094f59fc8e34175
18SHA1 (patch-ae) = 400bd6cac23af1e75f45c3e4e88e3130a3517129 20SHA1 (patch-ae) = 400bd6cac23af1e75f45c3e4e88e3130a3517129
19SHA1 (patch-af) = e866e7d96766b735a53432350275810803eeb510 21SHA1 (patch-af) = e866e7d96766b735a53432350275810803eeb510
20SHA1 (patch-ag) = 90893326dcce4e3e2ef273f22ec5ddf5af0f7cd8 22SHA1 (patch-ag) = 90893326dcce4e3e2ef273f22ec5ddf5af0f7cd8
21SHA1 (patch-ah) = ab91c41ef6bbdd7f7f3d992b9f81e43056a765e2 23SHA1 (patch-ah) = ab91c41ef6bbdd7f7f3d992b9f81e43056a765e2
22SHA1 (patch-ai) = 8da6bba38bd7677ea829ca35058f7d2d1d7acad4 24SHA1 (patch-ai) = 8da6bba38bd7677ea829ca35058f7d2d1d7acad4
23SHA1 (patch-aj) = d0999d8dcbc1eef4de7037db0e54dcd8d2f706eb 25SHA1 (patch-aj) = d0999d8dcbc1eef4de7037db0e54dcd8d2f706eb
24SHA1 (patch-ak) = 722a6b0541b036d84c703037134e25bc47f3eb65 26SHA1 (patch-ak) = 722a6b0541b036d84c703037134e25bc47f3eb65
25SHA1 (patch-al) = d9a310c16db708dd86170a13946f87e4cd21eb7a 27SHA1 (patch-al) = d9a310c16db708dd86170a13946f87e4cd21eb7a
26SHA1 (patch-am) = b89785a97208454eb3f2e1e43ba4674ad0828aa6 28SHA1 (patch-am) = b89785a97208454eb3f2e1e43ba4674ad0828aa6
27SHA1 (patch-ba) = 2c65e4b4b85e91e92dfb3aa402ebc44694bdff06 29SHA1 (patch-ba) = 2c65e4b4b85e91e92dfb3aa402ebc44694bdff06
28SHA1 (patch-bb) = 64a61fb156bcb6a99ff0963063a0716b808e3b61 30SHA1 (patch-bb) = 64a61fb156bcb6a99ff0963063a0716b808e3b61
29SHA1 (patch-bc) = 25c99a428fda6dee709888ddbcfdcfef5f654564 31SHA1 (patch-bc) = 25c99a428fda6dee709888ddbcfdcfef5f654564
30SHA1 (patch-ca) = 36afc7b063f83adfe5b927ed0be586b102684020 32SHA1 (patch-ca) = 36afc7b063f83adfe5b927ed0be586b102684020
31SHA1 (patch-cb) = 5563a72e203e789a86f4166c71ddb3fcff5215c6 33SHA1 (patch-cb) = 5563a72e203e789a86f4166c71ddb3fcff5215c6
32SHA1 (patch-cc) = 24d71f68a93b59bd5c5441c257d34862e7302040 34SHA1 (patch-cc) = 24d71f68a93b59bd5c5441c257d34862e7302040
33SHA1 (patch-cd) = 7b25b3b3a8d58effae395d776f2a4b94d79acfcb 35SHA1 (patch-cd) = 7b25b3b3a8d58effae395d776f2a4b94d79acfcb
34SHA1 (patch-ce) = 613f4c4605af860e5f88b68c49a0e7870ba6ecde 36SHA1 (patch-ce) = 613f4c4605af860e5f88b68c49a0e7870ba6ecde
35SHA1 (patch-cf) = c8740b1c9cfac686f2e4e32c7613b5f02206459d 37SHA1 (patch-cf) = c8740b1c9cfac686f2e4e32c7613b5f02206459d
36SHA1 (patch-cg) = 119029fda1d4ecee90d0a108151596cb3ef0ec74 38SHA1 (patch-cg) = 119029fda1d4ecee90d0a108151596cb3ef0ec74
37SHA1 (patch-ch) = 84e816c95167828314ef901e324772249a407c41 39SHA1 (patch-ch) = 84e816c95167828314ef901e324772249a407c41
38SHA1 (patch-config_StdGNU.mk) = bbded4d6da3fae55bfd8dad42ac9b45721ee1ebe 40SHA1 (patch-config_StdGNU.mk) = bbded4d6da3fae55bfd8dad42ac9b45721ee1ebe
39SHA1 (patch-da) = 06c07b32d70f8259a762ebcdc738218cfad57ad4 41SHA1 (patch-da) = 06c07b32d70f8259a762ebcdc738218cfad57ad4
40SHA1 (patch-db) = 4766f9925462023332793bcea4321072758e289d 42SHA1 (patch-db) = 4766f9925462023332793bcea4321072758e289d
41SHA1 (patch-dc) = d860fe3725978227278d58f09e7d5157001e463e 43SHA1 (patch-dc) = d860fe3725978227278d58f09e7d5157001e463e
42SHA1 (patch-dd) = e66d9cc0028ba922b050fc142862b4095cd018f3 44SHA1 (patch-dd) = e66d9cc0028ba922b050fc142862b4095cd018f3
43SHA1 (patch-de) = fae94b61a430a1a7dd98c9a6a04e4513824c6d8d 45SHA1 (patch-de) = fae94b61a430a1a7dd98c9a6a04e4513824c6d8d
44SHA1 (patch-df) = d20bf9d3fd05f5334f77c9154bf0fb9944c1292c 46SHA1 (patch-df) = d20bf9d3fd05f5334f77c9154bf0fb9944c1292c
45SHA1 (patch-firmware_hvmloader_Makefile) = b2914e4988ba004d45403d67f1580b1f9725d006 47SHA1 (patch-firmware_hvmloader_Makefile) = b2914e4988ba004d45403d67f1580b1f9725d006
46SHA1 (patch-ioemu-qemu-xen_hw_pass-through.c) = 76185c239078f29cb42b953d6c2cd1f59e240989 48SHA1 (patch-ioemu-qemu-xen_hw_pass-through.c) = 76185c239078f29cb42b953d6c2cd1f59e240989
47SHA1 (patch-ioemu-qemu-xen_hw_pass-through.h) = 98c26798d1ad99d3eee8b33deb08f747c958c886 49SHA1 (patch-ioemu-qemu-xen_hw_pass-through.h) = 98c26798d1ad99d3eee8b33deb08f747c958c886
48SHA1 (patch-ioemu-qemu-xen_hw_piix4acpi.c) = ca19457e9bde2d844a86a866960ac6de1f3d084c 50SHA1 (patch-ioemu-qemu-xen_hw_piix4acpi.c) = ca19457e9bde2d844a86a866960ac6de1f3d084c
49SHA1 (patch-ioemu-qemu-xen_hw_pt-graphics.c) = 3c03404f1d711c667559a1332e717a5f1b5ceda8 51SHA1 (patch-ioemu-qemu-xen_hw_pt-graphics.c) = 3c03404f1d711c667559a1332e717a5f1b5ceda8
50SHA1 (patch-ioemu-qemu-xen_hw_pt-msi.c) = 2dcebc65f591988bb95dea74c3b21f7066154a9f 52SHA1 (patch-ioemu-qemu-xen_hw_pt-msi.c) = 2dcebc65f591988bb95dea74c3b21f7066154a9f
51SHA1 (patch-ioemu-qemu-xen_hw_pt-msi.h) = d1bb1a8ad90d6577056f11df96f5469ffe74a3b0 53SHA1 (patch-ioemu-qemu-xen_hw_pt-msi.h) = d1bb1a8ad90d6577056f11df96f5469ffe74a3b0
52SHA1 (patch-ioemu-qemu-xen_xen-hooks.mak) = a00d9a9fd0fbb9fd89788b9dfaf5b389a28d47e2 54SHA1 (patch-ioemu-qemu-xen_xen-hooks.mak) = a00d9a9fd0fbb9fd89788b9dfaf5b389a28d47e2
53SHA1 (patch-libfsimage_ufs_ufs.h) = dc59f33cf3abd08a8cdee5977ca4168613327513 55SHA1 (patch-libfsimage_ufs_ufs.h) = dc59f33cf3abd08a8cdee5977ca4168613327513
54SHA1 (patch-libxl_libxl_create.c) = 02b661ca684609939c6ef762c0ddd1c5e62ad4d0 56SHA1 (patch-libxl_libxl_create.c) = 02b661ca684609939c6ef762c0ddd1c5e62ad4d0
55SHA1 (patch-libxl_libxl_internal.h) = e126e5e998117903f0c66cc370d350c504ed33d9 57SHA1 (patch-libxl_libxl_internal.h) = e126e5e998117903f0c66cc370d350c504ed33d9
56SHA1 (patch-libxl_xl__cmdimpl.c) = 0e038b9702e131ec527d49cb2c21e4acf581cbfe 58SHA1 (patch-libxl_xl__cmdimpl.c) = 0e038b9702e131ec527d49cb2c21e4acf581cbfe
57SHA1 (patch-ocaml_Makefile.rules) = 104f9d40186e5e4ca6a2e6359bbb369c3c91d1dc 59SHA1 (patch-ocaml_Makefile.rules) = 104f9d40186e5e4ca6a2e6359bbb369c3c91d1dc
58SHA1 (patch-ocaml_common.make) = c59d32301198d65691ab23529dd791de5ac40199 60SHA1 (patch-ocaml_common.make) = c59d32301198d65691ab23529dd791de5ac40199
59SHA1 (patch-ocaml_xenstored_define.ml) = f44841625554ceba6e83dbb41f688993c2a8d9a2 61SHA1 (patch-ocaml_xenstored_define.ml) = f44841625554ceba6e83dbb41f688993c2a8d9a2
60SHA1 (patch-ocaml_xenstored_utils.ml) = cc792a696743fa348b274b1c23783ea1a0d7da47 62SHA1 (patch-ocaml_xenstored_utils.ml) = cc792a696743fa348b274b1c23783ea1a0d7da47
61SHA1 (patch-qemu-phy-devices) = fef90e50ef0a58db2f2b49b6c23218f371791de5 63SHA1 (patch-qemu-phy-devices) = fef90e50ef0a58db2f2b49b6c23218f371791de5
62SHA1 (patch-xenstat_libxenstat_Makefile) = 800dfa58e9f65cfc9694ff4ee8a85c96d6336cfe 64SHA1 (patch-xenstat_libxenstat_Makefile) = 800dfa58e9f65cfc9694ff4ee8a85c96d6336cfe
63SHA1 (patch-xenstat_xentop_Makefile) = 6b59d1a8024f0b7f493a2205afd1d90495f01151 65SHA1 (patch-xenstat_xentop_Makefile) = 6b59d1a8024f0b7f493a2205afd1d90495f01151
64SHA1 (patch-xenstore_Makefile) = 4fa0ed7b76a96011c3cca9c5017be4b5151489f7 66SHA1 (patch-xenstore_Makefile) = 4fa0ed7b76a96011c3cca9c5017be4b5151489f7

File Added: pkgsrc/sysutils/xentools41/patches/Attic/patch-CVE-2015-2752
$NetBSD: patch-CVE-2015-2752,v 1.1.2.2 2015/04/29 21:11:13 tron Exp $

Patch for CVE-2015-2752 aka XSA-125 from
http://xenbits.xenproject.org/xsa/xsa125-4.2.patch

--- libxc/xc_domain.c.orig	2013-09-10 06:42:18.000000000 +0000
+++ libxc/xc_domain.c
@@ -1322,6 +1322,13 @@ int xc_domain_bind_pt_isa_irq(
                                   PT_IRQ_TYPE_ISA, 0, 0, 0, machine_irq));
 }
 
+#ifndef min
+#define min(X, Y) ({                             \
+            const typeof (X) _x = (X);           \
+            const typeof (Y) _y = (Y);           \
+            (void) (&_x == &_y);                 \
+            (_x < _y) ? _x : _y; })
+#endif
 int xc_domain_memory_mapping(
     xc_interface *xch,
     uint32_t domid,
@@ -1331,17 +1338,55 @@ int xc_domain_memory_mapping(
     uint32_t add_mapping)
 {
     DECLARE_DOMCTL;
+    int ret = 0, err;
+    unsigned long done = 0, nr, max_batch_sz;
+
+    if ( !nr_mfns )
+        return 0;
 
     domctl.cmd = XEN_DOMCTL_memory_mapping;
     domctl.domain = domid;
-    domctl.u.memory_mapping.first_gfn = first_gfn;
-    domctl.u.memory_mapping.first_mfn = first_mfn;
-    domctl.u.memory_mapping.nr_mfns = nr_mfns;
     domctl.u.memory_mapping.add_mapping = add_mapping;
+    max_batch_sz = nr_mfns;
+    do
+    {
+        nr = min(nr_mfns - done, max_batch_sz);
+        domctl.u.memory_mapping.nr_mfns = nr;
+        domctl.u.memory_mapping.first_gfn = first_gfn + done;
+        domctl.u.memory_mapping.first_mfn = first_mfn + done;
+        err = do_domctl(xch, &domctl);
+        if ( err && errno == E2BIG )
+        {
+            if ( max_batch_sz <= 1 )
+                break;
+            max_batch_sz >>= 1;
+            continue;
+        }
+        /* Save the first error... */
+        if ( !ret )
+            ret = err;
+        /* .. and ignore the rest of them when removing. */
+        if ( err && add_mapping != DPCI_REMOVE_MAPPING )
+            break;
+
+        done += nr;
+    } while ( done < nr_mfns );
+
+    /*
+     * Undo what we have done unless unmapping, by unmapping the entire region.
+     * Errors here are ignored.
+     */
+    if ( ret && add_mapping != DPCI_REMOVE_MAPPING )
+        xc_domain_memory_mapping(xch, domid, first_gfn, first_mfn, nr_mfns,
+                                 DPCI_REMOVE_MAPPING);
+
+    /* We might get E2BIG so many times that we never advance. */
+    if ( !done && !ret )
+        ret = -1;
 
-    return do_domctl(xch, &domctl);
+    return ret;
 }
-
+#undef min
 int xc_domain_ioport_mapping(
     xc_interface *xch,
     uint32_t domid,


File Added: pkgsrc/sysutils/xentools41/patches/Attic/patch-CVE-2015-2756
$NetBSD: patch-CVE-2015-2756,v 1.1.2.2 2015/04/29 21:11:13 tron Exp $

patch for CVE-2015-2756 aka XSA-126 from
http://xenbits.xenproject.org/xsa/xsa126-qemut.patch

--- ioemu-qemu-xen/hw/pass-through.c.orig	2013-07-17 10:59:40.000000000 +0000
+++ ioemu-qemu-xen/hw/pass-through.c
@@ -171,9 +171,6 @@ static int pt_word_reg_read(struct pt_de
 static int pt_long_reg_read(struct pt_dev *ptdev,
     struct pt_reg_tbl *cfg_entry,
     uint32_t *value, uint32_t valid_mask);
-static int pt_cmd_reg_read(struct pt_dev *ptdev,
-    struct pt_reg_tbl *cfg_entry,
-    uint16_t *value, uint16_t valid_mask);
 static int pt_bar_reg_read(struct pt_dev *ptdev,
     struct pt_reg_tbl *cfg_entry,
     uint32_t *value, uint32_t valid_mask);
@@ -277,9 +274,9 @@ static struct pt_reg_info_tbl pt_emu_reg
         .size       = 2,
         .init_val   = 0x0000,
         .ro_mask    = 0xF880,
-        .emu_mask   = 0x0740,
+        .emu_mask   = 0x0743,
         .init       = pt_common_reg_init,
-        .u.w.read   = pt_cmd_reg_read,
+        .u.w.read   = pt_word_reg_read,
         .u.w.write  = pt_cmd_reg_write,
         .u.w.restore  = pt_cmd_reg_restore,
     },
@@ -1865,7 +1862,7 @@ static int pt_dev_is_virtfn(struct pci_d
     return rc;
 }
 
-static int pt_register_regions(struct pt_dev *assigned_device)
+static int pt_register_regions(struct pt_dev *assigned_device, uint16_t *cmd)
 {
     int i = 0;
     uint32_t bar_data = 0;
@@ -1885,17 +1882,26 @@ static int pt_register_regions(struct pt
 
             /* Register current region */
             if ( pci_dev->base_addr[i] & PCI_ADDRESS_SPACE_IO )
+            {
                 pci_register_io_region((PCIDevice *)assigned_device, i,
                     (uint32_t)pci_dev->size[i], PCI_ADDRESS_SPACE_IO,
                     pt_ioport_map);
+                *cmd |= PCI_COMMAND_IO;
+            }
             else if ( pci_dev->base_addr[i] & PCI_ADDRESS_SPACE_MEM_PREFETCH )
+            {
                 pci_register_io_region((PCIDevice *)assigned_device, i,
                     (uint32_t)pci_dev->size[i], PCI_ADDRESS_SPACE_MEM_PREFETCH,
                     pt_iomem_map);
+                *cmd |= PCI_COMMAND_MEMORY;
+            }
             else
+            {
                 pci_register_io_region((PCIDevice *)assigned_device, i,
                     (uint32_t)pci_dev->size[i], PCI_ADDRESS_SPACE_MEM,
                     pt_iomem_map);
+                *cmd |= PCI_COMMAND_MEMORY;
+            }
 
             PT_LOG("IO region registered (size=0x%08x base_addr=0x%08x)\n",
                 (uint32_t)(pci_dev->size[i]),
@@ -3221,27 +3227,6 @@ static int pt_long_reg_read(struct pt_de
    return 0;
 }
 
-/* read Command register */
-static int pt_cmd_reg_read(struct pt_dev *ptdev,
-        struct pt_reg_tbl *cfg_entry,
-        uint16_t *value, uint16_t valid_mask)
-{
-    struct pt_reg_info_tbl *reg = cfg_entry->reg;
-    uint16_t valid_emu_mask = 0;
-    uint16_t emu_mask = reg->emu_mask;
-
-    if ( ptdev->is_virtfn )
-        emu_mask |= PCI_COMMAND_MEMORY;
-    if ( pt_is_iomul(ptdev) )
-        emu_mask |= PCI_COMMAND_IO;
-
-    /* emulate word register */
-    valid_emu_mask = emu_mask & valid_mask;
-    *value = PT_MERGE_VALUE(*value, cfg_entry->data, ~valid_emu_mask);
-
-    return 0;
-}
-
 /* read BAR */
 static int pt_bar_reg_read(struct pt_dev *ptdev,
         struct pt_reg_tbl *cfg_entry,
@@ -3376,19 +3361,13 @@ static int pt_cmd_reg_write(struct pt_de
     uint16_t writable_mask = 0;
     uint16_t throughable_mask = 0;
     uint16_t wr_value = *value;
-    uint16_t emu_mask = reg->emu_mask;
-
-    if ( ptdev->is_virtfn )
-        emu_mask |= PCI_COMMAND_MEMORY;
-    if ( pt_is_iomul(ptdev) )
-        emu_mask |= PCI_COMMAND_IO;
 
     /* modify emulate register */
     writable_mask = ~reg->ro_mask & valid_mask;
     cfg_entry->data = PT_MERGE_VALUE(*value, cfg_entry->data, writable_mask);
 
     /* create value for writing to I/O device register */
-    throughable_mask = ~emu_mask & valid_mask;
+    throughable_mask = ~reg->emu_mask & valid_mask;
 
     if (*value & PCI_COMMAND_DISABLE_INTx)
     {
@@ -4151,6 +4130,7 @@ static struct pt_dev * register_real_dev
     struct pt_dev *assigned_device = NULL;
     struct pci_dev *pci_dev;
     uint8_t e_device, e_intx;
+    uint16_t cmd = 0;
     char *key, *val;
     int msi_translate, power_mgmt;
 
@@ -4240,7 +4220,7 @@ static struct pt_dev * register_real_dev
         assigned_device->dev.config[i] = pci_read_byte(pci_dev, i);
 
     /* Handle real device's MMIO/PIO BARs */
-    pt_register_regions(assigned_device);
+    pt_register_regions(assigned_device, &cmd);
 
     /* Setup VGA bios for passthroughed gfx */
     if ( setup_vga_pt(assigned_device) < 0 )
@@ -4318,6 +4298,10 @@ static struct pt_dev * register_real_dev
     }
 
 out:
+    if (cmd)
+        pci_write_word(pci_dev, PCI_COMMAND,
+            *(uint16_t *)(&assigned_device->dev.config[PCI_COMMAND]) | cmd);
+
     PT_LOG("Real physical device %02x:%02x.%x registered successfuly!\n"
            "IRQ type = %s\n", r_bus, r_dev, r_func,
            assigned_device->msi_trans_en? "MSI-INTx":"INTx");

cvs diff -r1.26 -r1.26.2.1 pkgsrc/sysutils/xentools42/Attic/Makefile (switch to unified diff)

--- pkgsrc/sysutils/xentools42/Attic/Makefile 2015/03/13 09:43:41 1.26
+++ pkgsrc/sysutils/xentools42/Attic/Makefile 2015/04/29 21:11:13 1.26.2.1
@@ -1,268 +1,268 @@ @@ -1,268 +1,268 @@
1# $NetBSD: Makefile,v 1.26 2015/03/13 09:43:41 spz Exp $ 1# $NetBSD: Makefile,v 1.26.2.1 2015/04/29 21:11:13 tron Exp $
2 2
3VERSION= 4.2.5 3VERSION= 4.2.5
4VERSION_IPXE= 1.0.0 4VERSION_IPXE= 1.0.0
5 5
6DISTNAME= xen-${VERSION} 6DISTNAME= xen-${VERSION}
7PKGNAME= xentools42-${VERSION} 7PKGNAME= xentools42-${VERSION}
8PKGREVISION= 3 8PKGREVISION= 4
9CATEGORIES= sysutils 9CATEGORIES= sysutils
10MASTER_SITES= http://bits.xensource.com/oss-xen/release/${VERSION}/ 10MASTER_SITES= http://bits.xensource.com/oss-xen/release/${VERSION}/
11 11
12DISTFILES= ${DISTNAME}.tar.gz 12DISTFILES= ${DISTNAME}.tar.gz
13DISTFILES+= ipxe-git-v${VERSION_IPXE}.tar.gz 13DISTFILES+= ipxe-git-v${VERSION_IPXE}.tar.gz
14SITES.ipxe-git-v${VERSION_IPXE}.tar.gz += http://xenbits.xensource.com/xen-extfiles/ 14SITES.ipxe-git-v${VERSION_IPXE}.tar.gz += http://xenbits.xensource.com/xen-extfiles/
15 15
16MAINTAINER= pkgsrc-users@NetBSD.org 16MAINTAINER= pkgsrc-users@NetBSD.org
17HOMEPAGE= http://xen.org/ 17HOMEPAGE= http://xen.org/
18COMMENT= Userland Tools for Xen 4.2.x 18COMMENT= Userland Tools for Xen 4.2.x
19LICENSE= gnu-gpl-v2 19LICENSE= gnu-gpl-v2
20 20
21# XXX add version check: Xen requires dev86 >= 0.16.14 21# XXX add version check: Xen requires dev86 >= 0.16.14
22BUILD_DEPENDS+= dev86-[0-9]*:../../devel/dev86 # needed to build firmware 22BUILD_DEPENDS+= dev86-[0-9]*:../../devel/dev86 # needed to build firmware
23.if !exists(/usr/bin/iasl) 23.if !exists(/usr/bin/iasl)
24BUILD_DEPENDS+= acpica-utils-[0-9]*:../../sysutils/acpica-utils 24BUILD_DEPENDS+= acpica-utils-[0-9]*:../../sysutils/acpica-utils
25.endif 25.endif
26DEPENDS+= ${PYPKGPREFIX}-curses>=0nb4:../../devel/py-curses 26DEPENDS+= ${PYPKGPREFIX}-curses>=0nb4:../../devel/py-curses
27DEPENDS+= ${PYPKGPREFIX}-lxml-[0-9]*:../../textproc/py-lxml 27DEPENDS+= ${PYPKGPREFIX}-lxml-[0-9]*:../../textproc/py-lxml
28 28
29PYTHON_VERSIONS_INCOMPATIBLE= 33 34 # py-xml 29PYTHON_VERSIONS_INCOMPATIBLE= 33 34 # py-xml
30 30
31PKG_SYSCONFSUBDIR= xen 31PKG_SYSCONFSUBDIR= xen
32 32
33ONLY_FOR_PLATFORM= Linux-2.6*-i386 Linux-2.6*-x86_64 33ONLY_FOR_PLATFORM= Linux-2.6*-i386 Linux-2.6*-x86_64
34ONLY_FOR_PLATFORM+= NetBSD-[5-9].*-x86_64 NetBSD-[5-9].*-i386 34ONLY_FOR_PLATFORM+= NetBSD-[5-9].*-x86_64 NetBSD-[5-9].*-i386
35 35
36CONFLICTS+= libxen-[0-9]* 36CONFLICTS+= libxen-[0-9]*
37CONFLICTS+= xentools20-[0-9]* 37CONFLICTS+= xentools20-[0-9]*
38CONFLICTS+= xentools3-[0-9]* 38CONFLICTS+= xentools3-[0-9]*
39CONFLICTS+= xenstoretools-[0-9]* 39CONFLICTS+= xenstoretools-[0-9]*
40 40
41XENTOP= ${WRKDIR}/xen-${VERSION} 41XENTOP= ${WRKDIR}/xen-${VERSION}
42WRKSRC= ${XENTOP}/tools 42WRKSRC= ${XENTOP}/tools
43CHECK_PORTABILITY_SKIP= examples/* 43CHECK_PORTABILITY_SKIP= examples/*
44 44
45EGDIR= ${PREFIX}/share/examples/xen 45EGDIR= ${PREFIX}/share/examples/xen
46MESSAGE_SUBST+= EGDIR=${EGDIR} 46MESSAGE_SUBST+= EGDIR=${EGDIR}
47 47
48USE_TOOLS+= pod2man gmake pkg-config makeinfo perl bash 48USE_TOOLS+= pod2man gmake pkg-config makeinfo perl bash
49 49
50GNU_CONFIGURE= YES 50GNU_CONFIGURE= YES
51#CONFIGURE_ARGS+= --enable-xenapi 51#CONFIGURE_ARGS+= --enable-xenapi
52CONFIGURE_ARGS+= --disable-seabios 52CONFIGURE_ARGS+= --disable-seabios
53 53
54MAKE_ENV+= PREFIX=${prefix:Q} WRKSRC=${WRKSRC} 54MAKE_ENV+= PREFIX=${prefix:Q} WRKSRC=${WRKSRC}
55MAKE_ENV+= EGDIR=${EGDIR} 55MAKE_ENV+= EGDIR=${EGDIR}
56MAKE_ENV+= BASH_COMPLETION_DIR=${EGDIR} 56MAKE_ENV+= BASH_COMPLETION_DIR=${EGDIR}
57MAKE_ENV+= MV=${MV:Q} PYTHON=${PYTHONBIN:Q} SED=${SED:Q} 57MAKE_ENV+= MV=${MV:Q} PYTHON=${PYTHONBIN:Q} SED=${SED:Q}
58MAKE_ENV+= VARBASE=${VARBASE} 58MAKE_ENV+= VARBASE=${VARBASE}
59MAKE_ENV+= XEN_CONFIG_DIR=${PKG_SYSCONFDIR} 59MAKE_ENV+= XEN_CONFIG_DIR=${PKG_SYSCONFDIR}
60MAKE_ENV+= V=YES 60MAKE_ENV+= V=YES
61MAKE_ENV+= NO_WERROR=1 61MAKE_ENV+= NO_WERROR=1
62 62
63#MAKE_ENV+= INSTALL_DIR=${BSD_INSTALL_DATA_DIR} 63#MAKE_ENV+= INSTALL_DIR=${BSD_INSTALL_DATA_DIR}
64#MAKE_ENV+= INSTALL_DATA=${BSD_INSTALL_DATA} 64#MAKE_ENV+= INSTALL_DATA=${BSD_INSTALL_DATA}
65#MAKE_ENV+= INSTALL_PROG=${BSD_INSTALL_PROGRAM} 65#MAKE_ENV+= INSTALL_PROG=${BSD_INSTALL_PROGRAM}
66 66
67PY_PATCHPLIST= yes 67PY_PATCHPLIST= yes
68#REPLACE_PYTHON+= misc/xm 68#REPLACE_PYTHON+= misc/xm
69#REPLACE_PYTHON+= misc/netfix 69#REPLACE_PYTHON+= misc/netfix
70#REPLACE_PYTHON+= misc/xen-bugtool 70#REPLACE_PYTHON+= misc/xen-bugtool
71#REPLACE_PYTHON+= misc/xencons 71#REPLACE_PYTHON+= misc/xencons
72#REPLACE_PYTHON+= misc/xend 72#REPLACE_PYTHON+= misc/xend
73#REPLACE_PYTHON+= misc/xensymoops 73#REPLACE_PYTHON+= misc/xensymoops
74#REPLACE_PYTHON+= misc/xen-python-path 74#REPLACE_PYTHON+= misc/xen-python-path
75#REPLACE_PYTHON+= pygrub/src/pygrub 75#REPLACE_PYTHON+= pygrub/src/pygrub
76#REPLACE_PYTHON+= python/xen/util/*.py 76#REPLACE_PYTHON+= python/xen/util/*.py
77#REPLACE_PYTHON+= python/xen/xend/*.py 77#REPLACE_PYTHON+= python/xen/xend/*.py
78#REPLACE_PYTHON+= python/xen/xm/*.py 78#REPLACE_PYTHON+= python/xen/xm/*.py
79#REPLACE_PYTHON+= python/xen/util/*.py 79#REPLACE_PYTHON+= python/xen/util/*.py
80#REPLACE_PYTHON+= python/*.py 80#REPLACE_PYTHON+= python/*.py
81#REPLACE_PYTHON+= security/python/xensec_gen/cgi-bin/policy.cgi 81#REPLACE_PYTHON+= security/python/xensec_gen/cgi-bin/policy.cgi
82#REPLACE_PYTHON+= security/python/xensec_gen/*.py 82#REPLACE_PYTHON+= security/python/xensec_gen/*.py
83#REPLACE_PYTHON+= security/python/*.py 83#REPLACE_PYTHON+= security/python/*.py
84#REPLACE_PYTHON+= security/*.py 84#REPLACE_PYTHON+= security/*.py
85#REPLACE_PYTHON+= xenmon/*.py 85#REPLACE_PYTHON+= xenmon/*.py
86#REPLACE_PYTHON+= xentrace/xentrace_format 86#REPLACE_PYTHON+= xentrace/xentrace_format
87 87
88REPLACE_PYTHON+= misc/sbdf2devicepath misc/sxp-pretty misc/xen-bugtool 88REPLACE_PYTHON+= misc/sbdf2devicepath misc/sxp-pretty misc/xen-bugtool
89REPLACE_PYTHON+= misc/xen-python-path misc/xen-ringwatch misc/xencons 89REPLACE_PYTHON+= misc/xen-python-path misc/xen-ringwatch misc/xencons
90REPLACE_PYTHON+= misc/xend misc/xenpvnetboot misc/xensymoops misc/xm 90REPLACE_PYTHON+= misc/xend misc/xenpvnetboot misc/xensymoops misc/xm
91REPLACE_PYTHON+= misc/xsview 91REPLACE_PYTHON+= misc/xsview
92REPLACE_PYTHON+= python/xen/remus/*.py 92REPLACE_PYTHON+= python/xen/remus/*.py
93REPLACE_PYTHON+= python/xen/util/*.py 93REPLACE_PYTHON+= python/xen/util/*.py
94REPLACE_PYTHON+= python/xen/xend/*.py 94REPLACE_PYTHON+= python/xen/xend/*.py
95REPLACE_PYTHON+= python/xen/xm/*.py 95REPLACE_PYTHON+= python/xen/xm/*.py
96REPLACE_PYTHON+= xenmon/xenmon.py 96REPLACE_PYTHON+= xenmon/xenmon.py
97 97
98SUBST_CLASSES+= perlpath 98SUBST_CLASSES+= perlpath
99SUBST_STAGE.perlpath= pre-configure 99SUBST_STAGE.perlpath= pre-configure
100SUBST_FILES.perlpath= ../tools/firmware/rombios/makesym.perl 100SUBST_FILES.perlpath= ../tools/firmware/rombios/makesym.perl
101SUBST_FILES.perlpath+= ../tools/qemu-xen-traditional/texi2pod.pl 101SUBST_FILES.perlpath+= ../tools/qemu-xen-traditional/texi2pod.pl
102SUBST_FILES.perlpath+= ../tools/examples/xeninfo.pl 102SUBST_FILES.perlpath+= ../tools/examples/xeninfo.pl
103SUBST_FILES.perlpath+= ../tools/include/xen-external/bsd-sys-queue-h-seddery 103SUBST_FILES.perlpath+= ../tools/include/xen-external/bsd-sys-queue-h-seddery
104SUBST_FILES.perlpath+= ../tools/qemu-xen/scripts/texi2pod.pl 104SUBST_FILES.perlpath+= ../tools/qemu-xen/scripts/texi2pod.pl
105SUBST_FILES.perlpath+= ../tools/qemu-xen/scripts/get_maintainer.pl 105SUBST_FILES.perlpath+= ../tools/qemu-xen/scripts/get_maintainer.pl
106SUBST_FILES.perlpath+= ../tools/qemu-xen/scripts/checkpatch.pl 106SUBST_FILES.perlpath+= ../tools/qemu-xen/scripts/checkpatch.pl
107SUBST_FILES.perlpath+= ../tools/xm-test/mkreport 107SUBST_FILES.perlpath+= ../tools/xm-test/mkreport
108SUBST_FILES.perlpath+= ../tools/libxl/libxl_save_msgs_gen.pl 108SUBST_FILES.perlpath+= ../tools/libxl/libxl_save_msgs_gen.pl
109SUBST_FILES.perlpath+= ../tools/libxl/check-libxl-api-rules 109SUBST_FILES.perlpath+= ../tools/libxl/check-libxl-api-rules
110SUBST_FILES.perlpath+= ../../ipxe/src/Makefile 110SUBST_FILES.perlpath+= ../../ipxe/src/Makefile
111SUBST_FILES.perlpath+= ../../ipxe/src/drivers/infiniband/qib_genbits.pl 111SUBST_FILES.perlpath+= ../../ipxe/src/drivers/infiniband/qib_genbits.pl
112SUBST_FILES.perlpath+= ../../ipxe/src/include/gpxe/efi/import.pl 112SUBST_FILES.perlpath+= ../../ipxe/src/include/gpxe/efi/import.pl
113SUBST_FILES.perlpath+= ../../ipxe/src/util/catrom.pl 113SUBST_FILES.perlpath+= ../../ipxe/src/util/catrom.pl
114SUBST_FILES.perlpath+= ../../ipxe/src/util/diffsize.pl 114SUBST_FILES.perlpath+= ../../ipxe/src/util/diffsize.pl
115SUBST_FILES.perlpath+= ../../ipxe/src/util/disrom.pl 115SUBST_FILES.perlpath+= ../../ipxe/src/util/disrom.pl
116SUBST_FILES.perlpath+= ../../ipxe/src/util/get-pci-ids 116SUBST_FILES.perlpath+= ../../ipxe/src/util/get-pci-ids
117SUBST_FILES.perlpath+= ../../ipxe/src/util/licence.pl 117SUBST_FILES.perlpath+= ../../ipxe/src/util/licence.pl
118SUBST_FILES.perlpath+= ../../ipxe/src/util/makerom.pl 118SUBST_FILES.perlpath+= ../../ipxe/src/util/makerom.pl
119SUBST_FILES.perlpath+= ../../ipxe/src/util/mergerom.pl 119SUBST_FILES.perlpath+= ../../ipxe/src/util/mergerom.pl
120SUBST_FILES.perlpath+= ../../ipxe/src/util/modrom.pl 120SUBST_FILES.perlpath+= ../../ipxe/src/util/modrom.pl
121SUBST_FILES.perlpath+= ../../ipxe/src/util/padimg.pl 121SUBST_FILES.perlpath+= ../../ipxe/src/util/padimg.pl
122SUBST_FILES.perlpath+= ../../ipxe/src/util/parserom.pl 122SUBST_FILES.perlpath+= ../../ipxe/src/util/parserom.pl
123SUBST_FILES.perlpath+= ../../ipxe/src/util/sortobjdump.pl 123SUBST_FILES.perlpath+= ../../ipxe/src/util/sortobjdump.pl
124SUBST_FILES.perlpath+= ../../ipxe/src/util/swapdevids.pl 124SUBST_FILES.perlpath+= ../../ipxe/src/util/swapdevids.pl
125SUBST_FILES.perlpath+= ../../ipxe/src/util/symcheck.pl 125SUBST_FILES.perlpath+= ../../ipxe/src/util/symcheck.pl
126SUBST_SED.perlpath= -e "s|/usr/bin/perl|${PREFIX}/bin/perl|g" 126SUBST_SED.perlpath= -e "s|/usr/bin/perl|${PREFIX}/bin/perl|g"
127 127
128SUBST_CLASSES+= pathsvar 128SUBST_CLASSES+= pathsvar
129SUBST_STAGE.pathsvar= pre-configure 129SUBST_STAGE.pathsvar= pre-configure
130SUBST_FILES.pathsvar= Makefile \ 130SUBST_FILES.pathsvar= Makefile \
131 examples/xend-config.sxp \ 131 examples/xend-config.sxp \
132 hotplug/Linux/init.d/sysconfig.xendomains \ 132 hotplug/Linux/init.d/sysconfig.xendomains \
133 python/xen/xend/XendOptions.py \ 133 python/xen/xend/XendOptions.py \
134 python/xen/xend/server/relocate.py \ 134 python/xen/xend/server/relocate.py \
135 python/xen/xend/tests/xend-config.sxp \ 135 python/xen/xend/tests/xend-config.sxp \
136 xenstore/xs_lib.c 136 xenstore/xs_lib.c
137SUBST_SED.pathsvar= -e "s|/var/lib|${VARBASE}/run|g" 137SUBST_SED.pathsvar= -e "s|/var/lib|${VARBASE}/run|g"
138 138
139SUBST_CLASSES+= conf 139SUBST_CLASSES+= conf
140SUBST_STAGE.conf= pre-configure 140SUBST_STAGE.conf= pre-configure
141SUBST_FILES.conf+= python/xen/xm/create.py 141SUBST_FILES.conf+= python/xen/xm/create.py
142SUBST_FILES.conf+= ocaml/xenstored/define.ml 142SUBST_FILES.conf+= ocaml/xenstored/define.ml
143SUBST_SED.conf= -e "s,@XENDCONFDIR@,${PKG_SYSCONFDIR},g" 143SUBST_SED.conf= -e "s,@XENDCONFDIR@,${PKG_SYSCONFDIR},g"
144 144
145.include "../../mk/bsd.prefs.mk" 145.include "../../mk/bsd.prefs.mk"
146 146
147XEND_SCRIPTS= block vif-bridge vif-ip qemu-ifup hotplugpath.sh 147XEND_SCRIPTS= block vif-bridge vif-ip qemu-ifup hotplugpath.sh
148 148
149.if ${OPSYS} == "NetBSD" 149.if ${OPSYS} == "NetBSD"
150SUBST_CLASSES+= proc 150SUBST_CLASSES+= proc
151SUBST_STAGE.proc= pre-configure 151SUBST_STAGE.proc= pre-configure
152SUBST_FILES.proc= python/xen/xend/XendVnet.py 152SUBST_FILES.proc= python/xen/xend/XendVnet.py
153SUBST_FILES.proc+= ocaml/xenstored/define.ml 153SUBST_FILES.proc+= ocaml/xenstored/define.ml
154SUBST_SED.proc= -e "s|/proc|/kern|g" 154SUBST_SED.proc= -e "s|/proc|/kern|g"
155PROCPATH= /kern 155PROCPATH= /kern
156.else 156.else
157PROCPATH= /proc 157PROCPATH= /proc
158.endif 158.endif
159 159
160SUBST_CLASSES+= procdev 160SUBST_CLASSES+= procdev
161SUBST_STAGE.procdev= pre-configure 161SUBST_STAGE.procdev= pre-configure
162SUBST_FILES.procdev= ocaml/xenstored/define.ml 162SUBST_FILES.procdev= ocaml/xenstored/define.ml
163.if ${OPSYS} == "NetBSD" 163.if ${OPSYS} == "NetBSD"
164SUBST_SED.procdev= -e "s|@PROCDEV@|/dev|g" 164SUBST_SED.procdev= -e "s|@PROCDEV@|/dev|g"
165.else 165.else
166SUBST_SED.procdev= -e "s|@PROCDEV@|/proc/xen|g" 166SUBST_SED.procdev= -e "s|@PROCDEV@|/proc/xen|g"
167.endif 167.endif
168 168
169.if ${OPSYS} == "NetBSD" 169.if ${OPSYS} == "NetBSD"
170MESSAGE_SRC= ${.CURDIR}/MESSAGE ${.CURDIR}/MESSAGE.NetBSD 170MESSAGE_SRC= ${.CURDIR}/MESSAGE ${.CURDIR}/MESSAGE.NetBSD
171.endif 171.endif
172 172
173RCD_SCRIPTS= xen-watchdog xencommons xend xendomains 173RCD_SCRIPTS= xen-watchdog xencommons xend xendomains
174FILES_SUBST+= RCD_INTERPRETER=${PYTHONBIN:Q} 174FILES_SUBST+= RCD_INTERPRETER=${PYTHONBIN:Q}
175FILES_SUBST+= PROCPATH=${PROCPATH:Q} 175FILES_SUBST+= PROCPATH=${PROCPATH:Q}
176FILES_SUBST+= PKG_SYSCONFDIR=${PKG_SYSCONFDIR} 176FILES_SUBST+= PKG_SYSCONFDIR=${PKG_SYSCONFDIR}
177FILES_SUBST+= PREFIX=${PREFIX} 177FILES_SUBST+= PREFIX=${PREFIX}
178 178
179BLKTAP_FILES= blk_netbsd.c blktapctrl_netbsd.c 179BLKTAP_FILES= blk_netbsd.c blktapctrl_netbsd.c
180 180
181CONF_FILES+= ${EGDIR}/formats ${PKG_SYSCONFDIR}/formats 181CONF_FILES+= ${EGDIR}/formats ${PKG_SYSCONFDIR}/formats
182CONF_FILES+= ${EGDIR}/xend-config.sxp ${PKG_SYSCONFDIR}/xend-config.sxp 182CONF_FILES+= ${EGDIR}/xend-config.sxp ${PKG_SYSCONFDIR}/xend-config.sxp
183CONF_FILES+= ${EGDIR}/xl.conf ${PKG_SYSCONFDIR}/xl.conf 183CONF_FILES+= ${EGDIR}/xl.conf ${PKG_SYSCONFDIR}/xl.conf
184CONF_FILES+= ${EGDIR}/xm-config.xml ${PKG_SYSCONFDIR}/xm-config.xml 184CONF_FILES+= ${EGDIR}/xm-config.xml ${PKG_SYSCONFDIR}/xm-config.xml
185CONF_FILES+= ${EGDIR}/oxenstored.conf ${PKG_SYSCONFDIR}/oxenstored.conf 185CONF_FILES+= ${EGDIR}/oxenstored.conf ${PKG_SYSCONFDIR}/oxenstored.conf
186 186
187 187
188OWN_DIRS= ${PKG_SYSCONFDIR}/scripts ${VARBASE}/log/xen 188OWN_DIRS= ${PKG_SYSCONFDIR}/scripts ${VARBASE}/log/xen
189OWN_DIRS+= ${VARBASE}/lib/xen 189OWN_DIRS+= ${VARBASE}/lib/xen
190 190
191.for s in ${XEND_SCRIPTS} 191.for s in ${XEND_SCRIPTS}
192CONF_FILES_PERMS+= ${EGDIR}/scripts/${s} ${PKG_SYSCONFDIR}/scripts/${s} \ 192CONF_FILES_PERMS+= ${EGDIR}/scripts/${s} ${PKG_SYSCONFDIR}/scripts/${s} \
193 ${REAL_ROOT_USER} ${REAL_ROOT_GROUP} 0755 193 ${REAL_ROOT_USER} ${REAL_ROOT_GROUP} 0755
194.endfor 194.endfor
195 195
196pre-build: 196pre-build:
197 rm -f ${WRKSRC}/check/check_x11_devel 197 rm -f ${WRKSRC}/check/check_x11_devel
198.for s in ${BLKTAP_FILES} 198.for s in ${BLKTAP_FILES}
199 ${CP} -f ${FILESDIR}/${s} ${WRKSRC}/blktap/drivers/ 199 ${CP} -f ${FILESDIR}/${s} ${WRKSRC}/blktap/drivers/
200.endfor 200.endfor
201 ${SED} -e "s,@XENDCONFDIR@,${PKG_SYSCONFDIR},g" \ 201 ${SED} -e "s,@XENDCONFDIR@,${PKG_SYSCONFDIR},g" \
202 ${XENTOP}/docs/man/xl.pod.1 |\ 202 ${XENTOP}/docs/man/xl.pod.1 |\
203 pod2man >${WRKDIR}/xl.1 203 pod2man >${WRKDIR}/xl.1
204 ${SED} -e "s,@XENDCONFDIR@,${PKG_SYSCONFDIR},g" \ 204 ${SED} -e "s,@XENDCONFDIR@,${PKG_SYSCONFDIR},g" \
205 ${XENTOP}/docs/man/xm.pod.1 |\ 205 ${XENTOP}/docs/man/xm.pod.1 |\
206 pod2man >${WRKDIR}/xm.1 206 pod2man >${WRKDIR}/xm.1
207 ${SED} -e "s,@XENDCONFDIR@,${PKG_SYSCONFDIR},g" \ 207 ${SED} -e "s,@XENDCONFDIR@,${PKG_SYSCONFDIR},g" \
208 ${XENTOP}/docs/man/xend-config.sxp.pod.5 |\ 208 ${XENTOP}/docs/man/xend-config.sxp.pod.5 |\
209 pod2man >${WRKDIR}/xend-config.sxp.5 209 pod2man >${WRKDIR}/xend-config.sxp.5
210 ${SED} -e "s,@XENDCONFDIR@,${PKG_SYSCONFDIR},g" \ 210 ${SED} -e "s,@XENDCONFDIR@,${PKG_SYSCONFDIR},g" \
211 ${XENTOP}/docs/man/xl.cfg.pod.5 |\ 211 ${XENTOP}/docs/man/xl.cfg.pod.5 |\
212 pod2man >${WRKDIR}/xl.cfg.5 212 pod2man >${WRKDIR}/xl.cfg.5
213 ${SED} -e "s,@XENDCONFDIR@,${PKG_SYSCONFDIR},g" \ 213 ${SED} -e "s,@XENDCONFDIR@,${PKG_SYSCONFDIR},g" \
214 ${XENTOP}/docs/man/xl.conf.pod.5 |\ 214 ${XENTOP}/docs/man/xl.conf.pod.5 |\
215 pod2man >${WRKDIR}/xl.conf.5 215 pod2man >${WRKDIR}/xl.conf.5
216 ${SED} -e "s,@XENDCONFDIR@,${PKG_SYSCONFDIR},g" \ 216 ${SED} -e "s,@XENDCONFDIR@,${PKG_SYSCONFDIR},g" \
217 ${XENTOP}/docs/man/xlcpupool.cfg.pod.5 |\ 217 ${XENTOP}/docs/man/xlcpupool.cfg.pod.5 |\
218 pod2man >${WRKDIR}/xlcpupool.cfg.5 218 pod2man >${WRKDIR}/xlcpupool.cfg.5
219 ${SED} -e "s,@XENDCONFDIR@,${PKG_SYSCONFDIR},g" \ 219 ${SED} -e "s,@XENDCONFDIR@,${PKG_SYSCONFDIR},g" \
220 ${XENTOP}/docs/man/xmdomain.cfg.pod.5 |\ 220 ${XENTOP}/docs/man/xmdomain.cfg.pod.5 |\
221 pod2man >${WRKDIR}/xmdomain.cfg.5 221 pod2man >${WRKDIR}/xmdomain.cfg.5
222 222
223INSTALLATION_DIRS= ${EGDIR} ${PKGMANDIR}/man5 223INSTALLATION_DIRS= ${EGDIR} ${PKGMANDIR}/man5
224 224
225BUILD_DEFS+= VARBASE 225BUILD_DEFS+= VARBASE
226 226
227post-install: 227post-install:
228 ${INSTALL_DATA} ${WRKDIR}/xl.1 ${DESTDIR}${PREFIX}/${PKGMANDIR}/man1 228 ${INSTALL_DATA} ${WRKDIR}/xl.1 ${DESTDIR}${PREFIX}/${PKGMANDIR}/man1
229 ${INSTALL_DATA} ${WRKDIR}/xm.1 ${DESTDIR}${PREFIX}/${PKGMANDIR}/man1 229 ${INSTALL_DATA} ${WRKDIR}/xm.1 ${DESTDIR}${PREFIX}/${PKGMANDIR}/man1
230 ${INSTALL_DATA} ${WRKDIR}/xl.cfg.5 ${DESTDIR}${PREFIX}/${PKGMANDIR}/man5 230 ${INSTALL_DATA} ${WRKDIR}/xl.cfg.5 ${DESTDIR}${PREFIX}/${PKGMANDIR}/man5
231 ${INSTALL_DATA} ${WRKDIR}/xl.conf.5 ${DESTDIR}${PREFIX}/${PKGMANDIR}/man5 231 ${INSTALL_DATA} ${WRKDIR}/xl.conf.5 ${DESTDIR}${PREFIX}/${PKGMANDIR}/man5
232 ${INSTALL_DATA} ${WRKDIR}/xlcpupool.cfg.5 ${DESTDIR}${PREFIX}/${PKGMANDIR}/man5 232 ${INSTALL_DATA} ${WRKDIR}/xlcpupool.cfg.5 ${DESTDIR}${PREFIX}/${PKGMANDIR}/man5
233 ${INSTALL_DATA} ${WRKDIR}/xend-config.sxp.5 ${DESTDIR}${PREFIX}/${PKGMANDIR}/man5 233 ${INSTALL_DATA} ${WRKDIR}/xend-config.sxp.5 ${DESTDIR}${PREFIX}/${PKGMANDIR}/man5
234 ${INSTALL_DATA} ${WRKDIR}/xmdomain.cfg.5 ${DESTDIR}${PREFIX}/${PKGMANDIR}/man5 234 ${INSTALL_DATA} ${WRKDIR}/xmdomain.cfg.5 ${DESTDIR}${PREFIX}/${PKGMANDIR}/man5
235 235
236.if ${OPSYS} == "NetBSD" && !exists(/var/shm) 236.if ${OPSYS} == "NetBSD" && !exists(/var/shm)
237CPPFLAGS+= -Dshm_open=open -Dshm_unlink=unlink 237CPPFLAGS+= -Dshm_open=open -Dshm_unlink=unlink
238.endif 238.endif
239 239
240.include "../../mk/compiler.mk" 240.include "../../mk/compiler.mk"
241.if !empty(PKGSRC_COMPILER:Mclang) 241.if !empty(PKGSRC_COMPILER:Mclang)
242EXTRA_HOSTCFLAGS+= -Wno-error=ignored-attributes 242EXTRA_HOSTCFLAGS+= -Wno-error=ignored-attributes
243EXTRA_CFLAGS+= -Wno-error=ignored-attributes -no-integrated-as \ 243EXTRA_CFLAGS+= -Wno-error=ignored-attributes -no-integrated-as \
244 -Wno-error=tautological-compare -Wno-error=null-dereference \ 244 -Wno-error=tautological-compare -Wno-error=null-dereference \
245 -Wno-error=empty-body -Wno-error=self-assign \ 245 -Wno-error=empty-body -Wno-error=self-assign \
246 -Wno-error=sometimes-uninitialized \ 246 -Wno-error=sometimes-uninitialized \
247 -Wno-error=unused-function -Wno-error=format \ 247 -Wno-error=unused-function -Wno-error=format \
248 -Wno-error=unused-const-variable \ 248 -Wno-error=unused-const-variable \
249 -Wno-error=gnu-designator -Wno-error=uninitialized \ 249 -Wno-error=gnu-designator -Wno-error=uninitialized \
250 -Wno-error=parentheses-equality 250 -Wno-error=parentheses-equality
251BUILDLINK_TRANSFORM+= rm:-falign-jumps=1 rm:-falign-loops=1 \ 251BUILDLINK_TRANSFORM+= rm:-falign-jumps=1 rm:-falign-loops=1 \
252 rm:-mpreferred-stack-boundary=2 252 rm:-mpreferred-stack-boundary=2
253.endif 253.endif
254 254
255MAKE_ENV+= EXTRA_HOSTCFLAGS=${EXTRA_HOSTCFLAGS:Q} EXTRA_CFLAGS=${EXTRA_CFLAGS:M*:Q} 255MAKE_ENV+= EXTRA_HOSTCFLAGS=${EXTRA_HOSTCFLAGS:Q} EXTRA_CFLAGS=${EXTRA_CFLAGS:M*:Q}
256 256
257.include "../../lang/python/application.mk" 257.include "../../lang/python/application.mk"
258.include "../../lang/python/extension.mk" 258.include "../../lang/python/extension.mk"
259.include "../../textproc/py-xml/buildlink3.mk" 259.include "../../textproc/py-xml/buildlink3.mk"
260.include "../../devel/ncurses/buildlink3.mk" 260.include "../../devel/ncurses/buildlink3.mk"
261#.include "../../devel/SDL/buildlink3.mk" 261#.include "../../devel/SDL/buildlink3.mk"
262.include "../../lang/ocaml/buildlink3.mk" 262.include "../../lang/ocaml/buildlink3.mk"
263.include "../../devel/ocaml-findlib/buildlink3.mk" 263.include "../../devel/ocaml-findlib/buildlink3.mk"
264.include "../../sysutils/pciutils/buildlink3.mk" 264.include "../../sysutils/pciutils/buildlink3.mk"
265.include "../../devel/glib2/buildlink3.mk" 265.include "../../devel/glib2/buildlink3.mk"
266.include "../../devel/yajl/buildlink3.mk" 266.include "../../devel/yajl/buildlink3.mk"
267 267
268.include "../../mk/bsd.pkg.mk" 268.include "../../mk/bsd.pkg.mk"

cvs diff -r1.15 -r1.15.2.1 pkgsrc/sysutils/xentools42/Attic/distinfo (switch to unified diff)

--- pkgsrc/sysutils/xentools42/Attic/distinfo 2015/03/13 09:43:41 1.15
+++ pkgsrc/sysutils/xentools42/Attic/distinfo 2015/04/29 21:11:13 1.15.2.1
@@ -1,75 +1,77 @@ @@ -1,75 +1,77 @@
1$NetBSD: distinfo,v 1.15 2015/03/13 09:43:41 spz Exp $ 1$NetBSD: distinfo,v 1.15.2.1 2015/04/29 21:11:13 tron Exp $
2 2
3SHA1 (ipxe-git-v1.0.0.tar.gz) = da052c8de5f3485fe0253c19cf52ed6d72528485 3SHA1 (ipxe-git-v1.0.0.tar.gz) = da052c8de5f3485fe0253c19cf52ed6d72528485
4RMD160 (ipxe-git-v1.0.0.tar.gz) = dcd9b6eaafa1ce05c1ebf2a15f2f73ad7a8c5547 4RMD160 (ipxe-git-v1.0.0.tar.gz) = dcd9b6eaafa1ce05c1ebf2a15f2f73ad7a8c5547
5Size (ipxe-git-v1.0.0.tar.gz) = 1996881 bytes 5Size (ipxe-git-v1.0.0.tar.gz) = 1996881 bytes
6SHA1 (xen-4.2.5.tar.gz) = f42741e4ec174495ace70c4b17a6b9b0e60e798a 6SHA1 (xen-4.2.5.tar.gz) = f42741e4ec174495ace70c4b17a6b9b0e60e798a
7RMD160 (xen-4.2.5.tar.gz) = 7d4f7f1b32ee541d341a756b1f8da02816438d19 7RMD160 (xen-4.2.5.tar.gz) = 7d4f7f1b32ee541d341a756b1f8da02816438d19
8Size (xen-4.2.5.tar.gz) = 15671925 bytes 8Size (xen-4.2.5.tar.gz) = 15671925 bytes
9SHA1 (patch-.._.._ipxe_src_Makefile.housekeeping) = 5ec8020a9705b2f64096c2942473a8de4db578bb 9SHA1 (patch-.._.._ipxe_src_Makefile.housekeeping) = 5ec8020a9705b2f64096c2942473a8de4db578bb
10SHA1 (patch-.._.._ipxe_src_arch_i386_include_librm.h) = 4549ac641b112321b4731a918d85219c3fce6808 10SHA1 (patch-.._.._ipxe_src_arch_i386_include_librm.h) = 4549ac641b112321b4731a918d85219c3fce6808
11SHA1 (patch-.._.._ipxe_src_arch_i386_scripts_i386.lds) = 4c0cbb7f535be43e1b6f53c284340a8bafc37c0b 11SHA1 (patch-.._.._ipxe_src_arch_i386_scripts_i386.lds) = 4c0cbb7f535be43e1b6f53c284340a8bafc37c0b
12SHA1 (patch-.._.._ipxe_src_core_settings.c) = 240ff973757403b983f12b2cbed826584c4a8aba 12SHA1 (patch-.._.._ipxe_src_core_settings.c) = 240ff973757403b983f12b2cbed826584c4a8aba
13SHA1 (patch-.._.._ipxe_src_drivers_net_ath5k_ath5k_qcu.c) = eb86106d05d5cc3300b7b57b0e0c2fdd338bbf43 13SHA1 (patch-.._.._ipxe_src_drivers_net_ath5k_ath5k_qcu.c) = eb86106d05d5cc3300b7b57b0e0c2fdd338bbf43
14SHA1 (patch-.._.._ipxe_src_drivers_net_ns83820.c) = fbdfc47949f4946174b705d41d2b6c4405a68704 14SHA1 (patch-.._.._ipxe_src_drivers_net_ns83820.c) = fbdfc47949f4946174b705d41d2b6c4405a68704
15SHA1 (patch-.._.._ipxe_src_drivers_net_tulip.c) = 0d9370c64e5e6bf15a5b87944e03333a10e4a299 15SHA1 (patch-.._.._ipxe_src_drivers_net_tulip.c) = 0d9370c64e5e6bf15a5b87944e03333a10e4a299
16SHA1 (patch-.._.._ipxe_src_net_tls.c) = 893c70515bc4cb0d4d9319fd94eddc4945f6a0b3 16SHA1 (patch-.._.._ipxe_src_net_tls.c) = 893c70515bc4cb0d4d9319fd94eddc4945f6a0b3
17SHA1 (patch-.._Config.mk) = ec5ba76be10e43cb1b2d37686e35d5fb81d8de80 17SHA1 (patch-.._Config.mk) = ec5ba76be10e43cb1b2d37686e35d5fb81d8de80
18SHA1 (patch-.._config_NetBSD.mk) = 90893326dcce4e3e2ef273f22ec5ddf5af0f7cd8 18SHA1 (patch-.._config_NetBSD.mk) = 90893326dcce4e3e2ef273f22ec5ddf5af0f7cd8
19SHA1 (patch-.._config_StdGNU.mk) = 3f93999038bd9d25277803cd1d969dc5733b593f 19SHA1 (patch-.._config_StdGNU.mk) = 3f93999038bd9d25277803cd1d969dc5733b593f
20SHA1 (patch-.._docs_man_xend-config.sxp.pod.5) = 36afc7b063f83adfe5b927ed0be586b102684020 20SHA1 (patch-.._docs_man_xend-config.sxp.pod.5) = 36afc7b063f83adfe5b927ed0be586b102684020
21SHA1 (patch-.._docs_man_xl.cfg.pod.5) = 8f580bc91f346167999d91a279855c6e2710a8cc 21SHA1 (patch-.._docs_man_xl.cfg.pod.5) = 8f580bc91f346167999d91a279855c6e2710a8cc
22SHA1 (patch-.._docs_man_xl.conf.pod.5) = 4009ff6aefb0a770ed42d096117dc97f8f55997f 22SHA1 (patch-.._docs_man_xl.conf.pod.5) = 4009ff6aefb0a770ed42d096117dc97f8f55997f
23SHA1 (patch-.._docs_man_xl.pod.1) = 740ad6f53e113b755bc6b04abce4ec9ba08eb815 23SHA1 (patch-.._docs_man_xl.pod.1) = 740ad6f53e113b755bc6b04abce4ec9ba08eb815
24SHA1 (patch-.._docs_man_xlcpupool.cfg.pod.5) = a693a79a1f1c16548f62f7da1fa58fa28030990f 24SHA1 (patch-.._docs_man_xlcpupool.cfg.pod.5) = a693a79a1f1c16548f62f7da1fa58fa28030990f
25SHA1 (patch-.._docs_man_xm.pod.1) = 975b7570da4bf9fd9cb79539fbd36b8dfbcbd571 25SHA1 (patch-.._docs_man_xm.pod.1) = 975b7570da4bf9fd9cb79539fbd36b8dfbcbd571
26SHA1 (patch-.._docs_man_xmdomain.cfg.pod.5) = 5563a72e203e789a86f4166c71ddb3fcff5215c6 26SHA1 (patch-.._docs_man_xmdomain.cfg.pod.5) = 5563a72e203e789a86f4166c71ddb3fcff5215c6
27SHA1 (patch-CVE-2015-2152) = 676339abef9e79595f6c40de31ca740f8284c7a2 27SHA1 (patch-CVE-2015-2152) = 676339abef9e79595f6c40de31ca740f8284c7a2
 28SHA1 (patch-CVE-2015-2752) = fdc83a758c34581d91586f24815952a4b7145af7
 29SHA1 (patch-CVE-2015-2756) = 73223969ce65688e9226c485f0f444c69ee23bf3
28SHA1 (patch-Makefile) = 37fbcd6d2f0279d4c04c91085b0e7f5611a5b92a 30SHA1 (patch-Makefile) = 37fbcd6d2f0279d4c04c91085b0e7f5611a5b92a
29SHA1 (patch-Rules.mk) = 51a2804e9a2a509a428392c0eb11243884bb7f22 31SHA1 (patch-Rules.mk) = 51a2804e9a2a509a428392c0eb11243884bb7f22
30SHA1 (patch-blktap_drivers_Makefile) = 0906a5ec3a7450fc987b01289e2560e60966d00d 32SHA1 (patch-blktap_drivers_Makefile) = 0906a5ec3a7450fc987b01289e2560e60966d00d
31SHA1 (patch-configure) = 7bf4183efb76bded94a9519bf2737fb1240ab0e7 33SHA1 (patch-configure) = 7bf4183efb76bded94a9519bf2737fb1240ab0e7
32SHA1 (patch-examples_Makefile) = 8e89fab7817785b32d79ec0cad3a2645c6981f01 34SHA1 (patch-examples_Makefile) = 8e89fab7817785b32d79ec0cad3a2645c6981f01
33SHA1 (patch-examples_xend-config.sxp) = 5eb15470bff85d30b6d26d8fe094f59fc8e34175 35SHA1 (patch-examples_xend-config.sxp) = 5eb15470bff85d30b6d26d8fe094f59fc8e34175
34SHA1 (patch-firmware_etherboot_Makefile) = 1cb31183853c6069dafe47db8430e0577b21408e 36SHA1 (patch-firmware_etherboot_Makefile) = 1cb31183853c6069dafe47db8430e0577b21408e
35SHA1 (patch-firmware_etherboot_patches_boot__prompt__option.patch) = 7d14b60557b1e81de370b21544cd49643fa15f08 37SHA1 (patch-firmware_etherboot_patches_boot__prompt__option.patch) = 7d14b60557b1e81de370b21544cd49643fa15f08
36SHA1 (patch-firmware_etherboot_patches_series) = cb653834fe14ff0b23fdfa525a20d3bcfe6e3819 38SHA1 (patch-firmware_etherboot_patches_series) = cb653834fe14ff0b23fdfa525a20d3bcfe6e3819
37SHA1 (patch-firmware_hvmloader_Makefile) = 7d907fa33fa1f121b3d54116d905855529a020fd 39SHA1 (patch-firmware_hvmloader_Makefile) = 7d907fa33fa1f121b3d54116d905855529a020fd
38SHA1 (patch-firmware_hvmloader_util.h) = 6346ff8b33001dcecb7297b29c9df68be34af64d 40SHA1 (patch-firmware_hvmloader_util.h) = 6346ff8b33001dcecb7297b29c9df68be34af64d
39SHA1 (patch-hotplug_NetBSD_Makefile) = ab91c41ef6bbdd7f7f3d992b9f81e43056a765e2 41SHA1 (patch-hotplug_NetBSD_Makefile) = ab91c41ef6bbdd7f7f3d992b9f81e43056a765e2
40SHA1 (patch-hotplug_NetBSD_vif-bridge) = 663d0117612730960fd610b863d863d3abeea460 42SHA1 (patch-hotplug_NetBSD_vif-bridge) = 663d0117612730960fd610b863d863d3abeea460
41SHA1 (patch-hotplug_NetBSD_vif-ip) = c8fa179f58f1e550ab64901afd4fca53c3d11ceb 43SHA1 (patch-hotplug_NetBSD_vif-ip) = c8fa179f58f1e550ab64901afd4fca53c3d11ceb
42SHA1 (patch-hotplug_common_Makefile) = 288b1fe2565c1d4ded551bf159c068504ecab470 44SHA1 (patch-hotplug_common_Makefile) = 288b1fe2565c1d4ded551bf159c068504ecab470
43SHA1 (patch-include_xen-sys_NetBSD_gntdev.h) = 25c99a428fda6dee709888ddbcfdcfef5f654564 45SHA1 (patch-include_xen-sys_NetBSD_gntdev.h) = 25c99a428fda6dee709888ddbcfdcfef5f654564
44SHA1 (patch-libfsimage_common_Makefile) = c3cc5335a1d6b066307c5f03fe72f513a9eb2bdb 46SHA1 (patch-libfsimage_common_Makefile) = c3cc5335a1d6b066307c5f03fe72f513a9eb2bdb
45SHA1 (patch-libfsimage_ufs_ufs.h) = dc59f33cf3abd08a8cdee5977ca4168613327513 47SHA1 (patch-libfsimage_ufs_ufs.h) = dc59f33cf3abd08a8cdee5977ca4168613327513
46SHA1 (patch-libxc_xc__netbsd.c) = c94a2f7b38bfc1479401acf1bb124251bb4e3fcf 48SHA1 (patch-libxc_xc__netbsd.c) = c94a2f7b38bfc1479401acf1bb124251bb4e3fcf
47SHA1 (patch-libxl_libxl__create.c) = a212b3760f1bb796c6f126e5c795154f4e8030e2 49SHA1 (patch-libxl_libxl__create.c) = a212b3760f1bb796c6f126e5c795154f4e8030e2
48SHA1 (patch-libxl_libxl__internal.h) = f8ff92400f7ba7858cc1963b11c1e8ee23d4e51f 50SHA1 (patch-libxl_libxl__internal.h) = f8ff92400f7ba7858cc1963b11c1e8ee23d4e51f
49SHA1 (patch-ocaml_common.make) = c59d32301198d65691ab23529dd791de5ac40199 51SHA1 (patch-ocaml_common.make) = c59d32301198d65691ab23529dd791de5ac40199
50SHA1 (patch-ocaml_xenstored_Makefile) = 0df19c3507616e104ecdfa403d14e046c5b2a368 52SHA1 (patch-ocaml_xenstored_Makefile) = 0df19c3507616e104ecdfa403d14e046c5b2a368
51SHA1 (patch-ocaml_xenstored_define.ml) = 044144295c2818a71c14dffc9c58f8592b222b0c 53SHA1 (patch-ocaml_xenstored_define.ml) = 044144295c2818a71c14dffc9c58f8592b222b0c
52SHA1 (patch-ocaml_xenstored_utils.ml) = cc792a696743fa348b274b1c23783ea1a0d7da47 54SHA1 (patch-ocaml_xenstored_utils.ml) = cc792a696743fa348b274b1c23783ea1a0d7da47
53SHA1 (patch-pygrub_Makefile) = fa3671e0ff50a6a341ddf54a7b81c21add9e4f89 55SHA1 (patch-pygrub_Makefile) = fa3671e0ff50a6a341ddf54a7b81c21add9e4f89
54SHA1 (patch-python_xen_xend_XendNode.py) = 2c65e4b4b85e91e92dfb3aa402ebc44694bdff06 56SHA1 (patch-python_xen_xend_XendNode.py) = 2c65e4b4b85e91e92dfb3aa402ebc44694bdff06
55SHA1 (patch-python_xen_xend_osdep.py) = 8da6bba38bd7677ea829ca35058f7d2d1d7acad4 57SHA1 (patch-python_xen_xend_osdep.py) = 8da6bba38bd7677ea829ca35058f7d2d1d7acad4
56SHA1 (patch-python_xen_xm_create.py) = 7b25b3b3a8d58effae395d776f2a4b94d79acfcb 58SHA1 (patch-python_xen_xm_create.py) = 7b25b3b3a8d58effae395d776f2a4b94d79acfcb
57SHA1 (patch-qemu-xen-traditional_Makefile) = 0fcd7d5342269e87f14ff76be05d8757151438bc 59SHA1 (patch-qemu-xen-traditional_Makefile) = 0fcd7d5342269e87f14ff76be05d8757151438bc
58SHA1 (patch-qemu-xen-traditional_block-raw-posix.c) = 6376edcc57313c2ffe9bb3d88043d160d1f644ec 60SHA1 (patch-qemu-xen-traditional_block-raw-posix.c) = 6376edcc57313c2ffe9bb3d88043d160d1f644ec
59SHA1 (patch-qemu-xen-traditional_configure) = 0f09a0128762dc7d083e5986908fed5b7746a981 61SHA1 (patch-qemu-xen-traditional_configure) = 0f09a0128762dc7d083e5986908fed5b7746a981
60SHA1 (patch-qemu-xen-traditional_hw_e1000.c) = a8faf95491867c19471690ae98df93ff1d73114a 62SHA1 (patch-qemu-xen-traditional_hw_e1000.c) = a8faf95491867c19471690ae98df93ff1d73114a
61SHA1 (patch-qemu-xen-traditional_hw_ide.c) = d562c36627e861658e7a1d52514e59368871cbdb 63SHA1 (patch-qemu-xen-traditional_hw_ide.c) = d562c36627e861658e7a1d52514e59368871cbdb
62SHA1 (patch-qemu-xen-traditional_hw_pass-through.c) = d1f3a1842c595e2d261b997bac02bb71de41eaac 64SHA1 (patch-qemu-xen-traditional_hw_pass-through.c) = d1f3a1842c595e2d261b997bac02bb71de41eaac
63SHA1 (patch-qemu-xen-traditional_hw_pass-through.h) = 765cfbb30bdcf9c212bd7f9aa00d19d723da496e 65SHA1 (patch-qemu-xen-traditional_hw_pass-through.h) = 765cfbb30bdcf9c212bd7f9aa00d19d723da496e
64SHA1 (patch-qemu-xen-traditional_hw_piix4acpi.c) = bd89d2da04e2b816a097d4eb6d18936e5fe6bceb 66SHA1 (patch-qemu-xen-traditional_hw_piix4acpi.c) = bd89d2da04e2b816a097d4eb6d18936e5fe6bceb
65SHA1 (patch-qemu-xen-traditional_hw_pt-graphics.c) = 5484b9ec7d673502d73b0e4802969940eacad218 67SHA1 (patch-qemu-xen-traditional_hw_pt-graphics.c) = 5484b9ec7d673502d73b0e4802969940eacad218
66SHA1 (patch-qemu-xen-traditional_hw_pt-msi.c) = 7281d62de494fbbb6508818c9f8c5cfc212c77d8 68SHA1 (patch-qemu-xen-traditional_hw_pt-msi.c) = 7281d62de494fbbb6508818c9f8c5cfc212c77d8
67SHA1 (patch-qemu-xen-traditional_hw_pt-msi.h) = a33b6ed927db0204c25a9f6ff1bb8870c765f8ad 69SHA1 (patch-qemu-xen-traditional_hw_pt-msi.h) = a33b6ed927db0204c25a9f6ff1bb8870c765f8ad
68SHA1 (patch-qemu-xen-traditional_i386-dm_hookstarget.mak) = 7d526e8a9a0b0daf7215c54a036f7a3306291589 70SHA1 (patch-qemu-xen-traditional_i386-dm_hookstarget.mak) = 7d526e8a9a0b0daf7215c54a036f7a3306291589
69SHA1 (patch-qemu-xen-traditional_xen-hooks.mak) = 7acec9c981d18e1b659efc1d8e7c5c3b90d45411 71SHA1 (patch-qemu-xen-traditional_xen-hooks.mak) = 7acec9c981d18e1b659efc1d8e7c5c3b90d45411
70SHA1 (patch-qemu-xen_audio_audio.c) = 95f7417cec027239e9591b8def632d9344f42e05 72SHA1 (patch-qemu-xen_audio_audio.c) = 95f7417cec027239e9591b8def632d9344f42e05
71SHA1 (patch-qemu-xen_fpu_softfloat-specialize.h) = 791aeac1642101cbe2b15bf7ec189765c370f1a2 73SHA1 (patch-qemu-xen_fpu_softfloat-specialize.h) = 791aeac1642101cbe2b15bf7ec189765c370f1a2
72SHA1 (patch-qemu-xen_ioport.c) = 3dde5877f35396015d28eb2bb318ad2f79e6b4f8 74SHA1 (patch-qemu-xen_ioport.c) = 3dde5877f35396015d28eb2bb318ad2f79e6b4f8
73SHA1 (patch-qemu-xen_memory.c) = e4e39a0d02195e3b04d97af04d4aa31ff379b73e 75SHA1 (patch-qemu-xen_memory.c) = e4e39a0d02195e3b04d97af04d4aa31ff379b73e
74SHA1 (patch-qemu-xen_qemu-doc.texi) = 33d746120d2d063708824f315641a88e3aae67d4 76SHA1 (patch-qemu-xen_qemu-doc.texi) = 33d746120d2d063708824f315641a88e3aae67d4
75SHA1 (patch-xentrace_Makefile) = 9b53ba4a809dad7a1de34c8fa0dbe493d7256ada 77SHA1 (patch-xentrace_Makefile) = 9b53ba4a809dad7a1de34c8fa0dbe493d7256ada

File Added: pkgsrc/sysutils/xentools42/patches/Attic/patch-CVE-2015-2752
$NetBSD: patch-CVE-2015-2752,v 1.1.2.2 2015/04/29 21:11:13 tron Exp $

Patch for CVE-2015-2752 aka XSA-125 from
http://xenbits.xenproject.org/xsa/xsa125-4.2.patch

--- libxc/xc_domain.c.orig	2014-09-02 06:22:57.000000000 +0000
+++ libxc/xc_domain.c
@@ -1352,6 +1352,13 @@ int xc_domain_bind_pt_isa_irq(
                                   PT_IRQ_TYPE_ISA, 0, 0, 0, machine_irq));
 }
 
+#ifndef min
+#define min(X, Y) ({                             \
+            const typeof (X) _x = (X);           \
+            const typeof (Y) _y = (Y);           \
+            (void) (&_x == &_y);                 \
+            (_x < _y) ? _x : _y; })
+#endif
 int xc_domain_memory_mapping(
     xc_interface *xch,
     uint32_t domid,
@@ -1361,17 +1368,55 @@ int xc_domain_memory_mapping(
     uint32_t add_mapping)
 {
     DECLARE_DOMCTL;
+    int ret = 0, err;
+    unsigned long done = 0, nr, max_batch_sz;
+
+    if ( !nr_mfns )
+        return 0;
 
     domctl.cmd = XEN_DOMCTL_memory_mapping;
     domctl.domain = domid;
-    domctl.u.memory_mapping.first_gfn = first_gfn;
-    domctl.u.memory_mapping.first_mfn = first_mfn;
-    domctl.u.memory_mapping.nr_mfns = nr_mfns;
     domctl.u.memory_mapping.add_mapping = add_mapping;
+    max_batch_sz = nr_mfns;
+    do
+    {
+        nr = min(nr_mfns - done, max_batch_sz);
+        domctl.u.memory_mapping.nr_mfns = nr;
+        domctl.u.memory_mapping.first_gfn = first_gfn + done;
+        domctl.u.memory_mapping.first_mfn = first_mfn + done;
+        err = do_domctl(xch, &domctl);
+        if ( err && errno == E2BIG )
+        {
+            if ( max_batch_sz <= 1 )
+                break;
+            max_batch_sz >>= 1;
+            continue;
+        }
+        /* Save the first error... */
+        if ( !ret )
+            ret = err;
+        /* .. and ignore the rest of them when removing. */
+        if ( err && add_mapping != DPCI_REMOVE_MAPPING )
+            break;
+
+        done += nr;
+    } while ( done < nr_mfns );
+
+    /*
+     * Undo what we have done unless unmapping, by unmapping the entire region.
+     * Errors here are ignored.
+     */
+    if ( ret && add_mapping != DPCI_REMOVE_MAPPING )
+        xc_domain_memory_mapping(xch, domid, first_gfn, first_mfn, nr_mfns,
+                                 DPCI_REMOVE_MAPPING);
+
+    /* We might get E2BIG so many times that we never advance. */
+    if ( !done && !ret )
+        ret = -1;
 
-    return do_domctl(xch, &domctl);
+    return ret;
 }
-
+#undef min
 int xc_domain_ioport_mapping(
     xc_interface *xch,
     uint32_t domid,


File Added: pkgsrc/sysutils/xentools42/patches/Attic/patch-CVE-2015-2756
$NetBSD: patch-CVE-2015-2756,v 1.1.2.2 2015/04/29 21:11:13 tron Exp $

patch for CVE-2015-2756 aka XSA-126 from
http://xenbits.xenproject.org/xsa/xsa126-qemut.patch

--- qemu-xen-traditional/hw/pass-through.c.orig	2014-01-09 12:44:42.000000000 +0000
+++ qemu-xen-traditional/hw/pass-through.c
@@ -172,9 +172,6 @@ static int pt_word_reg_read(struct pt_de
 static int pt_long_reg_read(struct pt_dev *ptdev,
     struct pt_reg_tbl *cfg_entry,
     uint32_t *value, uint32_t valid_mask);
-static int pt_cmd_reg_read(struct pt_dev *ptdev,
-    struct pt_reg_tbl *cfg_entry,
-    uint16_t *value, uint16_t valid_mask);
 static int pt_bar_reg_read(struct pt_dev *ptdev,
     struct pt_reg_tbl *cfg_entry,
     uint32_t *value, uint32_t valid_mask);
@@ -286,9 +283,9 @@ static struct pt_reg_info_tbl pt_emu_reg
         .size       = 2,
         .init_val   = 0x0000,
         .ro_mask    = 0xF880,
-        .emu_mask   = 0x0740,
+        .emu_mask   = 0x0743,
         .init       = pt_common_reg_init,
-        .u.w.read   = pt_cmd_reg_read,
+        .u.w.read   = pt_word_reg_read,
         .u.w.write  = pt_cmd_reg_write,
         .u.w.restore  = pt_cmd_reg_restore,
     },
@@ -1905,7 +1902,7 @@ static int pt_dev_is_virtfn(struct pci_d
     return rc;
 }
 
-static int pt_register_regions(struct pt_dev *assigned_device)
+static int pt_register_regions(struct pt_dev *assigned_device, uint16_t *cmd)
 {
     int i = 0;
     uint32_t bar_data = 0;
@@ -1925,17 +1922,26 @@ static int pt_register_regions(struct pt
 
             /* Register current region */
             if ( pci_dev->base_addr[i] & PCI_ADDRESS_SPACE_IO )
+            {
                 pci_register_io_region((PCIDevice *)assigned_device, i,
                     (uint32_t)pci_dev->size[i], PCI_ADDRESS_SPACE_IO,
                     pt_ioport_map);
+                *cmd |= PCI_COMMAND_IO;
+            }
             else if ( pci_dev->base_addr[i] & PCI_ADDRESS_SPACE_MEM_PREFETCH )
+            {
                 pci_register_io_region((PCIDevice *)assigned_device, i,
                     (uint32_t)pci_dev->size[i], PCI_ADDRESS_SPACE_MEM_PREFETCH,
                     pt_iomem_map);
+                *cmd |= PCI_COMMAND_MEMORY;
+            }
             else
+            {
                 pci_register_io_region((PCIDevice *)assigned_device, i,
                     (uint32_t)pci_dev->size[i], PCI_ADDRESS_SPACE_MEM,
                     pt_iomem_map);
+                *cmd |= PCI_COMMAND_MEMORY;
+            }
 
             PT_LOG("IO region registered (size=0x%08x base_addr=0x%08x)\n",
                 (uint32_t)(pci_dev->size[i]),
@@ -3263,27 +3269,6 @@ static int pt_long_reg_read(struct pt_de
    return 0;
 }
 
-/* read Command register */
-static int pt_cmd_reg_read(struct pt_dev *ptdev,
-        struct pt_reg_tbl *cfg_entry,
-        uint16_t *value, uint16_t valid_mask)
-{
-    struct pt_reg_info_tbl *reg = cfg_entry->reg;
-    uint16_t valid_emu_mask = 0;
-    uint16_t emu_mask = reg->emu_mask;
-
-    if ( ptdev->is_virtfn )
-        emu_mask |= PCI_COMMAND_MEMORY;
-    if ( pt_is_iomul(ptdev) )
-        emu_mask |= PCI_COMMAND_IO;
-
-    /* emulate word register */
-    valid_emu_mask = emu_mask & valid_mask;
-    *value = PT_MERGE_VALUE(*value, cfg_entry->data, ~valid_emu_mask);
-
-    return 0;
-}
-
 /* read BAR */
 static int pt_bar_reg_read(struct pt_dev *ptdev,
         struct pt_reg_tbl *cfg_entry,
@@ -3418,19 +3403,13 @@ static int pt_cmd_reg_write(struct pt_de
     uint16_t writable_mask = 0;
     uint16_t throughable_mask = 0;
     uint16_t wr_value = *value;
-    uint16_t emu_mask = reg->emu_mask;
-
-    if ( ptdev->is_virtfn )
-        emu_mask |= PCI_COMMAND_MEMORY;
-    if ( pt_is_iomul(ptdev) )
-        emu_mask |= PCI_COMMAND_IO;
 
     /* modify emulate register */
     writable_mask = ~reg->ro_mask & valid_mask;
     cfg_entry->data = PT_MERGE_VALUE(*value, cfg_entry->data, writable_mask);
 
     /* create value for writing to I/O device register */
-    throughable_mask = ~emu_mask & valid_mask;
+    throughable_mask = ~reg->emu_mask & valid_mask;
 
     if (*value & PCI_COMMAND_DISABLE_INTx)
     {
@@ -4205,6 +4184,7 @@ static struct pt_dev * register_real_dev
     struct pt_dev *assigned_device = NULL;
     struct pci_dev *pci_dev;
     uint8_t e_device, e_intx;
+    uint16_t cmd = 0;
     char *key, *val;
     int msi_translate, power_mgmt;
 
@@ -4294,7 +4274,7 @@ static struct pt_dev * register_real_dev
         assigned_device->dev.config[i] = pci_read_byte(pci_dev, i);
 
     /* Handle real device's MMIO/PIO BARs */
-    pt_register_regions(assigned_device);
+    pt_register_regions(assigned_device, &cmd);
 
     /* Setup VGA bios for passthroughed gfx */
     if ( setup_vga_pt(assigned_device) < 0 )
@@ -4372,6 +4352,10 @@ static struct pt_dev * register_real_dev
     }
 
 out:
+    if (cmd)
+        pci_write_word(pci_dev, PCI_COMMAND,
+            *(uint16_t *)(&assigned_device->dev.config[PCI_COMMAND]) | cmd);
+
     PT_LOG("Real physical device %02x:%02x.%x registered successfuly!\n"
            "IRQ type = %s\n", r_bus, r_dev, r_func,
            assigned_device->msi_trans_en? "MSI-INTx":"INTx");

cvs diff -r1.5 -r1.5.2.1 pkgsrc/sysutils/xentools45/Attic/Makefile (switch to unified diff)

--- pkgsrc/sysutils/xentools45/Attic/Makefile 2015/03/13 10:27:48 1.5
+++ pkgsrc/sysutils/xentools45/Attic/Makefile 2015/04/29 21:11:13 1.5.2.1
@@ -1,217 +1,217 @@ @@ -1,217 +1,217 @@
1# $NetBSD: Makefile,v 1.5 2015/03/13 10:27:48 spz Exp $ 1# $NetBSD: Makefile,v 1.5.2.1 2015/04/29 21:11:13 tron Exp $
2 2
3VERSION= 4.5.0 3VERSION= 4.5.0
4VERSION_IPXE= 9a93db3f0947484e30e753bbd61a10b17336e20e 4VERSION_IPXE= 9a93db3f0947484e30e753bbd61a10b17336e20e
5 5
6DISTNAME= xen-${VERSION} 6DISTNAME= xen-${VERSION}
7PKGNAME= xentools45-${VERSION} 7PKGNAME= xentools45-${VERSION}
8PKGREVISION= 2 8PKGREVISION= 3
9CATEGORIES= sysutils 9CATEGORIES= sysutils
10MASTER_SITES= http://bits.xensource.com/oss-xen/release/${VERSION}/ 10MASTER_SITES= http://bits.xensource.com/oss-xen/release/${VERSION}/
11 11
12DISTFILES= ${DISTNAME}.tar.gz 12DISTFILES= ${DISTNAME}.tar.gz
13DISTFILES+= ipxe-git-${VERSION_IPXE}.tar.gz 13DISTFILES+= ipxe-git-${VERSION_IPXE}.tar.gz
14SITES.ipxe-git-${VERSION_IPXE}.tar.gz += http://xenbits.xensource.com/xen-extfiles/ 14SITES.ipxe-git-${VERSION_IPXE}.tar.gz += http://xenbits.xensource.com/xen-extfiles/
15 15
16MAINTAINER= pkgsrc-users@NetBSD.org 16MAINTAINER= pkgsrc-users@NetBSD.org
17HOMEPAGE= http://xen.org/ 17HOMEPAGE= http://xen.org/
18COMMENT= Userland Tools for Xen 4.5.x 18COMMENT= Userland Tools for Xen 4.5.x
19LICENSE= gnu-gpl-v2 19LICENSE= gnu-gpl-v2
20 20
21# XXX add version check: Xen requires dev86 >= 0.16.14 21# XXX add version check: Xen requires dev86 >= 0.16.14
22BUILD_DEPENDS+= dev86-[0-9]*:../../devel/dev86 # needed to build firmware 22BUILD_DEPENDS+= dev86-[0-9]*:../../devel/dev86 # needed to build firmware
23.if !exists(/usr/bin/iasl) 23.if !exists(/usr/bin/iasl)
24BUILD_DEPENDS+= acpica-utils-[0-9]*:../../sysutils/acpica-utils 24BUILD_DEPENDS+= acpica-utils-[0-9]*:../../sysutils/acpica-utils
25.endif 25.endif
26 26
27PKG_SYSCONFSUBDIR= xen 27PKG_SYSCONFSUBDIR= xen
28 28
29ONLY_FOR_PLATFORM= Linux-2.6*-i386 Linux-2.6*-x86_64 29ONLY_FOR_PLATFORM= Linux-2.6*-i386 Linux-2.6*-x86_64
30ONLY_FOR_PLATFORM+= NetBSD-[5-9].*-x86_64 NetBSD-[5-9].*-i386 30ONLY_FOR_PLATFORM+= NetBSD-[5-9].*-x86_64 NetBSD-[5-9].*-i386
31 31
32CONFLICTS+= libxen-[0-9]* 32CONFLICTS+= libxen-[0-9]*
33CONFLICTS+= xentools20-[0-9]* 33CONFLICTS+= xentools20-[0-9]*
34CONFLICTS+= xentools3-[0-9]* 34CONFLICTS+= xentools3-[0-9]*
35CONFLICTS+= xenstoretools-[0-9]* 35CONFLICTS+= xenstoretools-[0-9]*
36 36
37XENTOP= ${WRKDIR}/xen-${VERSION} 37XENTOP= ${WRKDIR}/xen-${VERSION}
38WRKSRC= ${XENTOP}/tools 38WRKSRC= ${XENTOP}/tools
39CHECK_PORTABILITY_SKIP= examples/* 39CHECK_PORTABILITY_SKIP= examples/*
40 40
41EGDIR= ${PREFIX}/share/examples/xen 41EGDIR= ${PREFIX}/share/examples/xen
42MESSAGE_SUBST+= EGDIR=${EGDIR} 42MESSAGE_SUBST+= EGDIR=${EGDIR}
43 43
44USE_TOOLS+= pod2man gmake pkg-config makeinfo perl bash 44USE_TOOLS+= pod2man gmake pkg-config makeinfo perl bash
45 45
46GNU_CONFIGURE= YES 46GNU_CONFIGURE= YES
47#CONFIGURE_ARGS+= --enable-xenapi 47#CONFIGURE_ARGS+= --enable-xenapi
48CONFIGURE_ARGS+= --disable-seabios 48CONFIGURE_ARGS+= --disable-seabios
49 49
50MAKE_ENV+= PREFIX=${prefix:Q} WRKSRC=${WRKSRC} 50MAKE_ENV+= PREFIX=${prefix:Q} WRKSRC=${WRKSRC}
51MAKE_ENV+= EGDIR=${EGDIR} 51MAKE_ENV+= EGDIR=${EGDIR}
52MAKE_ENV+= XEN_EXAMPLES_DIR=${EGDIR} 52MAKE_ENV+= XEN_EXAMPLES_DIR=${EGDIR}
53MAKE_ENV+= BASH_COMPLETION_DIR=${EGDIR} 53MAKE_ENV+= BASH_COMPLETION_DIR=${EGDIR}
54MAKE_ENV+= MV=${MV:Q} PYTHON=${PYTHONBIN:Q} SED=${SED:Q} 54MAKE_ENV+= MV=${MV:Q} PYTHON=${PYTHONBIN:Q} SED=${SED:Q}
55MAKE_ENV+= VARBASE=${VARBASE} 55MAKE_ENV+= VARBASE=${VARBASE}
56MAKE_ENV+= XEN_CONFIG_DIR=${PKG_SYSCONFDIR} 56MAKE_ENV+= XEN_CONFIG_DIR=${PKG_SYSCONFDIR}
57MAKE_ENV+= V=YES 57MAKE_ENV+= V=YES
58MAKE_ENV+= NO_WERROR=1 58MAKE_ENV+= NO_WERROR=1
59 59
60#MAKE_ENV+= INSTALL_DIR=${BSD_INSTALL_DATA_DIR} 60#MAKE_ENV+= INSTALL_DIR=${BSD_INSTALL_DATA_DIR}
61#MAKE_ENV+= INSTALL_DATA=${BSD_INSTALL_DATA} 61#MAKE_ENV+= INSTALL_DATA=${BSD_INSTALL_DATA}
62#MAKE_ENV+= INSTALL_PROG=${BSD_INSTALL_PROGRAM} 62#MAKE_ENV+= INSTALL_PROG=${BSD_INSTALL_PROGRAM}
63 63
64PYTHON_VERSIONS_INCOMPATIBLE= 33 34 64PYTHON_VERSIONS_INCOMPATIBLE= 33 34
65 65
66PY_PATCHPLIST= yes 66PY_PATCHPLIST= yes
67REPLACE_PYTHON+= misc/sbdf2devicepath misc/xen-bugtool 67REPLACE_PYTHON+= misc/sbdf2devicepath misc/xen-bugtool
68REPLACE_PYTHON+= misc/xen-ringwatch misc/xencons 68REPLACE_PYTHON+= misc/xen-ringwatch misc/xencons
69REPLACE_PYTHON+= misc/xenpvnetboot misc/xensymoops 69REPLACE_PYTHON+= misc/xenpvnetboot misc/xensymoops
70REPLACE_PYTHON+= xenmon/xenmon.py 70REPLACE_PYTHON+= xenmon/xenmon.py
71 71
72SUBST_CLASSES+= perlpath 72SUBST_CLASSES+= perlpath
73SUBST_STAGE.perlpath= pre-configure 73SUBST_STAGE.perlpath= pre-configure
74SUBST_FILES.perlpath= ../tools/misc/xencov_split 74SUBST_FILES.perlpath= ../tools/misc/xencov_split
75SUBST_FILES.perlpath+= ../tools/firmware/rombios/makesym.perl 75SUBST_FILES.perlpath+= ../tools/firmware/rombios/makesym.perl
76SUBST_FILES.perlpath+= ../tools/qemu-xen-traditional/texi2pod.pl 76SUBST_FILES.perlpath+= ../tools/qemu-xen-traditional/texi2pod.pl
77SUBST_FILES.perlpath+= ../tools/examples/xeninfo.pl 77SUBST_FILES.perlpath+= ../tools/examples/xeninfo.pl
78SUBST_FILES.perlpath+= ../tools/include/xen-external/bsd-sys-queue-h-seddery 78SUBST_FILES.perlpath+= ../tools/include/xen-external/bsd-sys-queue-h-seddery
79SUBST_FILES.perlpath+= ../tools/qemu-xen/scripts/texi2pod.pl 79SUBST_FILES.perlpath+= ../tools/qemu-xen/scripts/texi2pod.pl
80SUBST_FILES.perlpath+= ../tools/qemu-xen/scripts/get_maintainer.pl 80SUBST_FILES.perlpath+= ../tools/qemu-xen/scripts/get_maintainer.pl
81SUBST_FILES.perlpath+= ../tools/qemu-xen/scripts/checkpatch.pl 81SUBST_FILES.perlpath+= ../tools/qemu-xen/scripts/checkpatch.pl
82SUBST_FILES.perlpath+= ../tools/libxl/libxl_save_msgs_gen.pl 82SUBST_FILES.perlpath+= ../tools/libxl/libxl_save_msgs_gen.pl
83SUBST_FILES.perlpath+= ../tools/libxl/check-libxl-api-rules 83SUBST_FILES.perlpath+= ../tools/libxl/check-libxl-api-rules
84SUBST_FILES.perlpath+= ../../ipxe/src/drivers/infiniband/qib_genbits.pl 84SUBST_FILES.perlpath+= ../../ipxe/src/drivers/infiniband/qib_genbits.pl
85SUBST_FILES.perlpath+= ../../ipxe/src/util/catrom.pl 85SUBST_FILES.perlpath+= ../../ipxe/src/util/catrom.pl
86SUBST_FILES.perlpath+= ../../ipxe/src/util/diffsize.pl 86SUBST_FILES.perlpath+= ../../ipxe/src/util/diffsize.pl
87SUBST_FILES.perlpath+= ../../ipxe/src/util/disrom.pl 87SUBST_FILES.perlpath+= ../../ipxe/src/util/disrom.pl
88SUBST_FILES.perlpath+= ../../ipxe/src/util/get-pci-ids 88SUBST_FILES.perlpath+= ../../ipxe/src/util/get-pci-ids
89SUBST_FILES.perlpath+= ../../ipxe/src/util/licence.pl 89SUBST_FILES.perlpath+= ../../ipxe/src/util/licence.pl
90SUBST_FILES.perlpath+= ../../ipxe/src/util/mergerom.pl 90SUBST_FILES.perlpath+= ../../ipxe/src/util/mergerom.pl
91SUBST_FILES.perlpath+= ../../ipxe/src/util/modrom.pl 91SUBST_FILES.perlpath+= ../../ipxe/src/util/modrom.pl
92SUBST_FILES.perlpath+= ../../ipxe/src/util/padimg.pl 92SUBST_FILES.perlpath+= ../../ipxe/src/util/padimg.pl
93SUBST_FILES.perlpath+= ../../ipxe/src/util/parserom.pl 93SUBST_FILES.perlpath+= ../../ipxe/src/util/parserom.pl
94SUBST_FILES.perlpath+= ../../ipxe/src/util/sortobjdump.pl 94SUBST_FILES.perlpath+= ../../ipxe/src/util/sortobjdump.pl
95SUBST_FILES.perlpath+= ../../ipxe/src/util/swapdevids.pl 95SUBST_FILES.perlpath+= ../../ipxe/src/util/swapdevids.pl
96SUBST_FILES.perlpath+= ../../ipxe/src/util/symcheck.pl 96SUBST_FILES.perlpath+= ../../ipxe/src/util/symcheck.pl
97SUBST_SED.perlpath= -e "s|/usr/bin/perl|${PREFIX}/bin/perl|g" 97SUBST_SED.perlpath= -e "s|/usr/bin/perl|${PREFIX}/bin/perl|g"
98 98
99SUBST_CLASSES+= pathsvar 99SUBST_CLASSES+= pathsvar
100SUBST_STAGE.pathsvar= pre-configure 100SUBST_STAGE.pathsvar= pre-configure
101SUBST_FILES.pathsvar= Makefile \ 101SUBST_FILES.pathsvar= Makefile \
102 hotplug/Linux/init.d/sysconfig.xendomains 102 hotplug/Linux/init.d/sysconfig.xendomains
103SUBST_SED.pathsvar= -e "s|/var/lib|${VARBASE}/run|g" 103SUBST_SED.pathsvar= -e "s|/var/lib|${VARBASE}/run|g"
104 104
105SUBST_CLASSES+= conf 105SUBST_CLASSES+= conf
106SUBST_STAGE.conf= pre-configure 106SUBST_STAGE.conf= pre-configure
107SUBST_FILES.conf+= ocaml/xenstored/define.ml 107SUBST_FILES.conf+= ocaml/xenstored/define.ml
108SUBST_SED.conf= -e "s,@XENDCONFDIR@,${PKG_SYSCONFDIR},g" 108SUBST_SED.conf= -e "s,@XENDCONFDIR@,${PKG_SYSCONFDIR},g"
109 109
110.include "../../mk/bsd.prefs.mk" 110.include "../../mk/bsd.prefs.mk"
111 111
112XEND_SCRIPTS= block vif-bridge vif-ip qemu-ifup hotplugpath.sh 112XEND_SCRIPTS= block vif-bridge vif-ip qemu-ifup hotplugpath.sh
113 113
114.if ${OPSYS} == "NetBSD" 114.if ${OPSYS} == "NetBSD"
115SUBST_CLASSES+= proc 115SUBST_CLASSES+= proc
116SUBST_STAGE.proc= pre-configure 116SUBST_STAGE.proc= pre-configure
117SUBST_FILES.proc+= ocaml/xenstored/define.ml 117SUBST_FILES.proc+= ocaml/xenstored/define.ml
118SUBST_SED.proc= -e "s|/proc|/kern|g" 118SUBST_SED.proc= -e "s|/proc|/kern|g"
119PROCPATH= /kern 119PROCPATH= /kern
120.else 120.else
121PROCPATH= /proc 121PROCPATH= /proc
122.endif 122.endif
123 123
124SUBST_CLASSES+= procdev 124SUBST_CLASSES+= procdev
125SUBST_STAGE.procdev= pre-configure 125SUBST_STAGE.procdev= pre-configure
126SUBST_FILES.procdev= ocaml/xenstored/define.ml 126SUBST_FILES.procdev= ocaml/xenstored/define.ml
127.if ${OPSYS} == "NetBSD" 127.if ${OPSYS} == "NetBSD"
128SUBST_SED.procdev= -e "s|@PROCDEV@|/dev|g" 128SUBST_SED.procdev= -e "s|@PROCDEV@|/dev|g"
129.else 129.else
130SUBST_SED.procdev= -e "s|@PROCDEV@|/proc/xen|g" 130SUBST_SED.procdev= -e "s|@PROCDEV@|/proc/xen|g"
131.endif 131.endif
132 132
133.if ${OPSYS} == "NetBSD" 133.if ${OPSYS} == "NetBSD"
134MESSAGE_SRC= ${.CURDIR}/MESSAGE ${.CURDIR}/MESSAGE.NetBSD 134MESSAGE_SRC= ${.CURDIR}/MESSAGE ${.CURDIR}/MESSAGE.NetBSD
135.endif 135.endif
136 136
137RCD_SCRIPTS= xen-watchdog xencommons xendomains 137RCD_SCRIPTS= xen-watchdog xencommons xendomains
138FILES_SUBST+= RCD_INTERPRETER=${PYTHONBIN:Q} 138FILES_SUBST+= RCD_INTERPRETER=${PYTHONBIN:Q}
139FILES_SUBST+= PROCPATH=${PROCPATH:Q} 139FILES_SUBST+= PROCPATH=${PROCPATH:Q}
140FILES_SUBST+= PKG_SYSCONFDIR=${PKG_SYSCONFDIR} 140FILES_SUBST+= PKG_SYSCONFDIR=${PKG_SYSCONFDIR}
141FILES_SUBST+= PREFIX=${PREFIX} 141FILES_SUBST+= PREFIX=${PREFIX}
142 142
143BLKTAP_FILES= blk_netbsd.c blktapctrl_netbsd.c 143BLKTAP_FILES= blk_netbsd.c blktapctrl_netbsd.c
144 144
145CONF_FILES+= ${EGDIR}/xl.conf ${PKG_SYSCONFDIR}/xl.conf 145CONF_FILES+= ${EGDIR}/xl.conf ${PKG_SYSCONFDIR}/xl.conf
146CONF_FILES+= ${EGDIR}/oxenstored.conf ${PKG_SYSCONFDIR}/oxenstored.conf 146CONF_FILES+= ${EGDIR}/oxenstored.conf ${PKG_SYSCONFDIR}/oxenstored.conf
147 147
148OWN_DIRS= ${PKG_SYSCONFDIR}/scripts ${VARBASE}/log/xen 148OWN_DIRS= ${PKG_SYSCONFDIR}/scripts ${VARBASE}/log/xen
149OWN_DIRS+= ${VARBASE}/lib/xen 149OWN_DIRS+= ${VARBASE}/lib/xen
150 150
151.for s in ${XEND_SCRIPTS} 151.for s in ${XEND_SCRIPTS}
152CONF_FILES_PERMS+= ${EGDIR}/scripts/${s} ${PKG_SYSCONFDIR}/scripts/${s} \ 152CONF_FILES_PERMS+= ${EGDIR}/scripts/${s} ${PKG_SYSCONFDIR}/scripts/${s} \
153 ${REAL_ROOT_USER} ${REAL_ROOT_GROUP} 0755 153 ${REAL_ROOT_USER} ${REAL_ROOT_GROUP} 0755
154.endfor 154.endfor
155 155
156pre-build: 156pre-build:
157 rm -f ${WRKSRC}/check/check_x11_devel 157 rm -f ${WRKSRC}/check/check_x11_devel
158.for s in ${BLKTAP_FILES} 158.for s in ${BLKTAP_FILES}
159 ${CP} -f ${FILESDIR}/${s} ${WRKSRC}/blktap/drivers/ 159 ${CP} -f ${FILESDIR}/${s} ${WRKSRC}/blktap/drivers/
160.endfor 160.endfor
161 ${SED} -e "s,@XENDCONFDIR@,${PKG_SYSCONFDIR},g" \ 161 ${SED} -e "s,@XENDCONFDIR@,${PKG_SYSCONFDIR},g" \
162 ${XENTOP}/docs/man/xl.pod.1 |\ 162 ${XENTOP}/docs/man/xl.pod.1 |\
163 pod2man >${WRKDIR}/xl.1 163 pod2man >${WRKDIR}/xl.1
164 ${SED} -e "s,@XENDCONFDIR@,${PKG_SYSCONFDIR},g" \ 164 ${SED} -e "s,@XENDCONFDIR@,${PKG_SYSCONFDIR},g" \
165 ${XENTOP}/docs/man/xl.cfg.pod.5 |\ 165 ${XENTOP}/docs/man/xl.cfg.pod.5 |\
166 pod2man >${WRKDIR}/xl.cfg.5 166 pod2man >${WRKDIR}/xl.cfg.5
167 ${SED} -e "s,@XENDCONFDIR@,${PKG_SYSCONFDIR},g" \ 167 ${SED} -e "s,@XENDCONFDIR@,${PKG_SYSCONFDIR},g" \
168 ${XENTOP}/docs/man/xl.conf.pod.5 |\ 168 ${XENTOP}/docs/man/xl.conf.pod.5 |\
169 pod2man >${WRKDIR}/xl.conf.5 169 pod2man >${WRKDIR}/xl.conf.5
170 ${SED} -e "s,@XENDCONFDIR@,${PKG_SYSCONFDIR},g" \ 170 ${SED} -e "s,@XENDCONFDIR@,${PKG_SYSCONFDIR},g" \
171 ${XENTOP}/docs/man/xlcpupool.cfg.pod.5 |\ 171 ${XENTOP}/docs/man/xlcpupool.cfg.pod.5 |\
172 pod2man >${WRKDIR}/xlcpupool.cfg.5 172 pod2man >${WRKDIR}/xlcpupool.cfg.5
173 173
174INSTALLATION_DIRS= ${EGDIR} ${PKGMANDIR}/man5 174INSTALLATION_DIRS= ${EGDIR} ${PKGMANDIR}/man5
175 175
176BUILD_DEFS+= VARBASE 176BUILD_DEFS+= VARBASE
177 177
178post-install: 178post-install:
179 ${INSTALL_DATA} ${WRKDIR}/xl.1 ${DESTDIR}${PREFIX}/${PKGMANDIR}/man1 179 ${INSTALL_DATA} ${WRKDIR}/xl.1 ${DESTDIR}${PREFIX}/${PKGMANDIR}/man1
180 ${INSTALL_DATA} ${WRKDIR}/xl.cfg.5 ${DESTDIR}${PREFIX}/${PKGMANDIR}/man5 180 ${INSTALL_DATA} ${WRKDIR}/xl.cfg.5 ${DESTDIR}${PREFIX}/${PKGMANDIR}/man5
181 ${INSTALL_DATA} ${WRKDIR}/xl.conf.5 ${DESTDIR}${PREFIX}/${PKGMANDIR}/man5 181 ${INSTALL_DATA} ${WRKDIR}/xl.conf.5 ${DESTDIR}${PREFIX}/${PKGMANDIR}/man5
182 ${INSTALL_DATA} ${WRKDIR}/xlcpupool.cfg.5 ${DESTDIR}${PREFIX}/${PKGMANDIR}/man5 182 ${INSTALL_DATA} ${WRKDIR}/xlcpupool.cfg.5 ${DESTDIR}${PREFIX}/${PKGMANDIR}/man5
183 183
184.if ${OPSYS} == "NetBSD" && !exists(/var/shm) 184.if ${OPSYS} == "NetBSD" && !exists(/var/shm)
185CPPFLAGS+= -Dshm_open=open -Dshm_unlink=unlink 185CPPFLAGS+= -Dshm_open=open -Dshm_unlink=unlink
186.endif 186.endif
187 187
188.include "../../mk/compiler.mk" 188.include "../../mk/compiler.mk"
189.if !empty(PKGSRC_COMPILER:Mclang) 189.if !empty(PKGSRC_COMPILER:Mclang)
190EXTRA_HOSTCFLAGS+= -Wno-error=ignored-attributes 190EXTRA_HOSTCFLAGS+= -Wno-error=ignored-attributes
191EXTRA_CFLAGS+= -Wno-error=ignored-attributes -no-integrated-as \ 191EXTRA_CFLAGS+= -Wno-error=ignored-attributes -no-integrated-as \
192 -Wno-error=tautological-compare -Wno-error=null-dereference \ 192 -Wno-error=tautological-compare -Wno-error=null-dereference \
193 -Wno-error=empty-body -Wno-error=self-assign \ 193 -Wno-error=empty-body -Wno-error=self-assign \
194 -Wno-error=sometimes-uninitialized \ 194 -Wno-error=sometimes-uninitialized \
195 -Wno-error=unused-function -Wno-error=format \ 195 -Wno-error=unused-function -Wno-error=format \
196 -Wno-error=unused-const-variable \ 196 -Wno-error=unused-const-variable \
197 -Wno-error=gnu-designator -Wno-error=uninitialized \ 197 -Wno-error=gnu-designator -Wno-error=uninitialized \
198 -Wno-error=parentheses-equality \ 198 -Wno-error=parentheses-equality \
199 -Wno-error=enum-conversion 199 -Wno-error=enum-conversion
200BUILDLINK_TRANSFORM+= rm:-falign-jumps=1 rm:-falign-loops=1 \ 200BUILDLINK_TRANSFORM+= rm:-falign-jumps=1 rm:-falign-loops=1 \
201 rm:-mpreferred-stack-boundary=2 201 rm:-mpreferred-stack-boundary=2
202.endif 202.endif
203 203
204MAKE_ENV+= EXTRA_HOSTCFLAGS=${EXTRA_HOSTCFLAGS:Q} EXTRA_CFLAGS=${EXTRA_CFLAGS:M*:Q} 204MAKE_ENV+= EXTRA_HOSTCFLAGS=${EXTRA_HOSTCFLAGS:Q} EXTRA_CFLAGS=${EXTRA_CFLAGS:M*:Q}
205 205
206.include "../../lang/python/application.mk" 206.include "../../lang/python/application.mk"
207.include "../../lang/python/extension.mk" 207.include "../../lang/python/extension.mk"
208.include "../../devel/ncurses/buildlink3.mk" 208.include "../../devel/ncurses/buildlink3.mk"
209#.include "../../devel/SDL/buildlink3.mk" 209#.include "../../devel/SDL/buildlink3.mk"
210.include "../../lang/ocaml/buildlink3.mk" 210.include "../../lang/ocaml/buildlink3.mk"
211.include "../../devel/ocaml-findlib/buildlink3.mk" 211.include "../../devel/ocaml-findlib/buildlink3.mk"
212.include "../../sysutils/pciutils/buildlink3.mk" 212.include "../../sysutils/pciutils/buildlink3.mk"
213.include "../../devel/glib2/buildlink3.mk" 213.include "../../devel/glib2/buildlink3.mk"
214.include "../../devel/yajl/buildlink3.mk" 214.include "../../devel/yajl/buildlink3.mk"
215.include "../../x11/pixman/buildlink3.mk" 215.include "../../x11/pixman/buildlink3.mk"
216 216
217.include "../../mk/bsd.pkg.mk" 217.include "../../mk/bsd.pkg.mk"

cvs diff -r1.5 -r1.5.2.1 pkgsrc/sysutils/xentools45/Attic/distinfo (switch to unified diff)

--- pkgsrc/sysutils/xentools45/Attic/distinfo 2015/03/13 10:27:48 1.5
+++ pkgsrc/sysutils/xentools45/Attic/distinfo 2015/04/29 21:11:13 1.5.2.1
@@ -1,61 +1,63 @@ @@ -1,61 +1,63 @@
1$NetBSD: distinfo,v 1.5 2015/03/13 10:27:48 spz Exp $ 1$NetBSD: distinfo,v 1.5.2.1 2015/04/29 21:11:13 tron Exp $
2 2
3SHA1 (ipxe-git-9a93db3f0947484e30e753bbd61a10b17336e20e.tar.gz) = fecadf952821e830ce1a1d19655288eef8488f88 3SHA1 (ipxe-git-9a93db3f0947484e30e753bbd61a10b17336e20e.tar.gz) = fecadf952821e830ce1a1d19655288eef8488f88
4RMD160 (ipxe-git-9a93db3f0947484e30e753bbd61a10b17336e20e.tar.gz) = 539bfa12db7054228250d6dd380bbf96c1a040f8 4RMD160 (ipxe-git-9a93db3f0947484e30e753bbd61a10b17336e20e.tar.gz) = 539bfa12db7054228250d6dd380bbf96c1a040f8
5Size (ipxe-git-9a93db3f0947484e30e753bbd61a10b17336e20e.tar.gz) = 2867999 bytes 5Size (ipxe-git-9a93db3f0947484e30e753bbd61a10b17336e20e.tar.gz) = 2867999 bytes
6SHA1 (xen-4.5.0.tar.gz) = c4aab5fb366496ad1edc7fe0a935a0d604335637 6SHA1 (xen-4.5.0.tar.gz) = c4aab5fb366496ad1edc7fe0a935a0d604335637
7RMD160 (xen-4.5.0.tar.gz) = e35ba0cb484492c1a289218eb9bf53b57dbd3a45 7RMD160 (xen-4.5.0.tar.gz) = e35ba0cb484492c1a289218eb9bf53b57dbd3a45
8Size (xen-4.5.0.tar.gz) = 18404933 bytes 8Size (xen-4.5.0.tar.gz) = 18404933 bytes
9SHA1 (patch-.._.._ipxe_src_core_settings.c) = 9e053e5e9936f49c46af0d59382a67d5f28cb39d 9SHA1 (patch-.._.._ipxe_src_core_settings.c) = 9e053e5e9936f49c46af0d59382a67d5f28cb39d
10SHA1 (patch-.._.._ipxe_src_interface_efi_efi_snp.c) = 7cd8a2d2dbeff55624b5d3461d22cd8331221762 10SHA1 (patch-.._.._ipxe_src_interface_efi_efi_snp.c) = 7cd8a2d2dbeff55624b5d3461d22cd8331221762
11SHA1 (patch-.._.._ipxe_src_net_fcels.c) = 7c13c87af5e38233f8b867503789f536394e7005 11SHA1 (patch-.._.._ipxe_src_net_fcels.c) = 7c13c87af5e38233f8b867503789f536394e7005
12SHA1 (patch-.._.._ipxe_src_net_tls.c) = c36b812c4c9a3aa7309219dfad2f7a24ba818e59 12SHA1 (patch-.._.._ipxe_src_net_tls.c) = c36b812c4c9a3aa7309219dfad2f7a24ba818e59
13SHA1 (patch-.._Config.mk) = 36a8942a9fc0f7d601c9b5f7fd1332db99f9ac4b 13SHA1 (patch-.._Config.mk) = 36a8942a9fc0f7d601c9b5f7fd1332db99f9ac4b
14SHA1 (patch-.._docs_man_xl.cfg.pod.5) = e2058495b6fe85af338e22560d46996d36aeedab 14SHA1 (patch-.._docs_man_xl.cfg.pod.5) = e2058495b6fe85af338e22560d46996d36aeedab
15SHA1 (patch-.._docs_man_xl.conf.pod.5) = 015da24a45388468d56f1ecfa60f6acf07bdfef8 15SHA1 (patch-.._docs_man_xl.conf.pod.5) = 015da24a45388468d56f1ecfa60f6acf07bdfef8
16SHA1 (patch-.._docs_man_xl.pod.1) = b194f2c5608c6f0e80a4abd8655808cf91355cd5 16SHA1 (patch-.._docs_man_xl.pod.1) = b194f2c5608c6f0e80a4abd8655808cf91355cd5
17SHA1 (patch-.._docs_man_xlcpupool.cfg.pod.5) = b44813af965e4d9d0d51c18b22d286736a4663b2 17SHA1 (patch-.._docs_man_xlcpupool.cfg.pod.5) = b44813af965e4d9d0d51c18b22d286736a4663b2
18SHA1 (patch-CVE-2015-2152) = 5a1cabf330b3a1bd902adf2b33dd5c4c32b8ab9d 18SHA1 (patch-CVE-2015-2152) = 5a1cabf330b3a1bd902adf2b33dd5c4c32b8ab9d
 19SHA1 (patch-CVE-2015-2752) = 85bcb80dab938b85da3342e7001d95bacf7f49e5
 20SHA1 (patch-CVE-2015-2756) = 350cfd57a77d90997b81c7186e320bb52fb62d75
19SHA1 (patch-Makefile) = 5d5b9678ed9764275ee95f49d24e8538a0e8a01c 21SHA1 (patch-Makefile) = 5d5b9678ed9764275ee95f49d24e8538a0e8a01c
20SHA1 (patch-Rules.mk) = e0dc4234c35dc2d78afad4a90b0af829a6a10b50 22SHA1 (patch-Rules.mk) = e0dc4234c35dc2d78afad4a90b0af829a6a10b50
21SHA1 (patch-blktap_drivers_Makefile) = 7cc53b2a0dea1694a969046ab8542271ca63f9e7 23SHA1 (patch-blktap_drivers_Makefile) = 7cc53b2a0dea1694a969046ab8542271ca63f9e7
22SHA1 (patch-configure) = d1a1b9c9e00dd79bb872190282006201510ce2c1 24SHA1 (patch-configure) = d1a1b9c9e00dd79bb872190282006201510ce2c1
23SHA1 (patch-examples_Makefile) = 5fe7bb876d254cf0c4f774ed0f08dcaea5b355ff 25SHA1 (patch-examples_Makefile) = 5fe7bb876d254cf0c4f774ed0f08dcaea5b355ff
24SHA1 (patch-firmware_etherboot_Makefile) = f55e14948b7191e533a82b8fc3575f1052f23c45 26SHA1 (patch-firmware_etherboot_Makefile) = f55e14948b7191e533a82b8fc3575f1052f23c45
25SHA1 (patch-firmware_etherboot_patches_series) = 2fa1342c78094c6dd5d60a07c236c4a1c0599fc4 27SHA1 (patch-firmware_etherboot_patches_series) = 2fa1342c78094c6dd5d60a07c236c4a1c0599fc4
26SHA1 (patch-firmware_hvmloader_Makefile) = bc5e81ddfc5e95887c2af4bb32eced9c5748b3c6 28SHA1 (patch-firmware_hvmloader_Makefile) = bc5e81ddfc5e95887c2af4bb32eced9c5748b3c6
27SHA1 (patch-hotplug_NetBSD_Makefile) = 5afbf8dc910c93fcc0904ba09164a441704e31a2 29SHA1 (patch-hotplug_NetBSD_Makefile) = 5afbf8dc910c93fcc0904ba09164a441704e31a2
28SHA1 (patch-hotplug_NetBSD_vif-bridge) = ac4cc7446715330b504b8cce8cbd47c8035cf33c 30SHA1 (patch-hotplug_NetBSD_vif-bridge) = ac4cc7446715330b504b8cce8cbd47c8035cf33c
29SHA1 (patch-hotplug_NetBSD_vif-ip) = ed23b0c16d87bd05230399d921e28860c5857b01 31SHA1 (patch-hotplug_NetBSD_vif-ip) = ed23b0c16d87bd05230399d921e28860c5857b01
30SHA1 (patch-hotplug_common_Makefile) = 1c8af96a3d0d1d5e9c168b1eb75fabb3e2164a19 32SHA1 (patch-hotplug_common_Makefile) = 1c8af96a3d0d1d5e9c168b1eb75fabb3e2164a19
31SHA1 (patch-include_xen-sys_NetBSD_gntdev.h) = b1f60f46e606b7591d68d98655d1cb29df977c14 33SHA1 (patch-include_xen-sys_NetBSD_gntdev.h) = b1f60f46e606b7591d68d98655d1cb29df977c14
32SHA1 (patch-libfsimage_common_Makefile) = 9c80a669805ba2e1f224985c71ca976fbe60e8b5 34SHA1 (patch-libfsimage_common_Makefile) = 9c80a669805ba2e1f224985c71ca976fbe60e8b5
33SHA1 (patch-libfsimage_ufs_ufs.h) = ce1461ab83499edb4e127e3b7af9dfc1e9c0267f 35SHA1 (patch-libfsimage_ufs_ufs.h) = ce1461ab83499edb4e127e3b7af9dfc1e9c0267f
34SHA1 (patch-libxc_xc__netbsd.c) = 547a713bbe9ddc92ee51b57a7b58a619f01225f1 36SHA1 (patch-libxc_xc__netbsd.c) = 547a713bbe9ddc92ee51b57a7b58a619f01225f1
35SHA1 (patch-libxl_Makefile) = 5b5dede29e5d9c579cdd7d6497f692ecf3a3c2cb 37SHA1 (patch-libxl_Makefile) = 5b5dede29e5d9c579cdd7d6497f692ecf3a3c2cb
36SHA1 (patch-libxl_libxl__create.c) = d4c94e9a389e9a7601513460f31c82e4f4bf28c9 38SHA1 (patch-libxl_libxl__create.c) = d4c94e9a389e9a7601513460f31c82e4f4bf28c9
37SHA1 (patch-libxl_libxl__save__helper.c) = 70e5237e28bea1aa87486e080fc25aa81300a6d8 39SHA1 (patch-libxl_libxl__save__helper.c) = 70e5237e28bea1aa87486e080fc25aa81300a6d8
38SHA1 (patch-libxl_libxl_uuid.c) = d14286be8ccdbcb5fae544a1968e7b681b63e884 40SHA1 (patch-libxl_libxl_uuid.c) = d14286be8ccdbcb5fae544a1968e7b681b63e884
39SHA1 (patch-ocaml_common.make) = 4d4bddca7b5d93489a3f6620af51d95bbe265abb 41SHA1 (patch-ocaml_common.make) = 4d4bddca7b5d93489a3f6620af51d95bbe265abb
40SHA1 (patch-ocaml_xenstored_Makefile) = 8014db42b65ca9290013069d1f3cb816e3f023c2 42SHA1 (patch-ocaml_xenstored_Makefile) = 8014db42b65ca9290013069d1f3cb816e3f023c2
41SHA1 (patch-ocaml_xenstored_define.ml) = 18d6878ae536554e8831f3732d2a8ea1b13a9b63 43SHA1 (patch-ocaml_xenstored_define.ml) = 18d6878ae536554e8831f3732d2a8ea1b13a9b63
42SHA1 (patch-ocaml_xenstored_utils.ml) = 04997cb9189a3331522c344aa1957e61febfd4d2 44SHA1 (patch-ocaml_xenstored_utils.ml) = 04997cb9189a3331522c344aa1957e61febfd4d2
43SHA1 (patch-pygrub_Makefile) = 4380d7ddeed41c80e47f8130760f4bdc6842a394 45SHA1 (patch-pygrub_Makefile) = 4380d7ddeed41c80e47f8130760f4bdc6842a394
44SHA1 (patch-qemu-xen-traditional_Makefile) = aac50189b3e359314c5d47745d50113f190bbbe0 46SHA1 (patch-qemu-xen-traditional_Makefile) = aac50189b3e359314c5d47745d50113f190bbbe0
45SHA1 (patch-qemu-xen-traditional_block-raw-posix.c) = fb03fe527515424d72758b606ab8d2e5bf8c341b 47SHA1 (patch-qemu-xen-traditional_block-raw-posix.c) = fb03fe527515424d72758b606ab8d2e5bf8c341b
46SHA1 (patch-qemu-xen-traditional_configure) = a29520d12c229feed85b335e9241dc085427a3db 48SHA1 (patch-qemu-xen-traditional_configure) = a29520d12c229feed85b335e9241dc085427a3db
47SHA1 (patch-qemu-xen-traditional_hw_e1000.c) = d94874baa64a0974d29c8c3a117cf0fae030952d 49SHA1 (patch-qemu-xen-traditional_hw_e1000.c) = d94874baa64a0974d29c8c3a117cf0fae030952d
48SHA1 (patch-qemu-xen-traditional_hw_ide.c) = fb674b326321f4865183eee889967b1a948698e0 50SHA1 (patch-qemu-xen-traditional_hw_ide.c) = fb674b326321f4865183eee889967b1a948698e0
49SHA1 (patch-qemu-xen-traditional_hw_pass-through.c) = b87481f764e16fb1345c44b4f46fa3837901a4e2 51SHA1 (patch-qemu-xen-traditional_hw_pass-through.c) = b87481f764e16fb1345c44b4f46fa3837901a4e2
50SHA1 (patch-qemu-xen-traditional_hw_pass-through.h) = 0bf5cbc1d6f5506c1878296fce98ca3e42fc6560 52SHA1 (patch-qemu-xen-traditional_hw_pass-through.h) = 0bf5cbc1d6f5506c1878296fce98ca3e42fc6560
51SHA1 (patch-qemu-xen-traditional_hw_piix4acpi.c) = 432cbbd922a2453d3aab37e49cced767a3f1ad34 53SHA1 (patch-qemu-xen-traditional_hw_piix4acpi.c) = 432cbbd922a2453d3aab37e49cced767a3f1ad34
52SHA1 (patch-qemu-xen-traditional_hw_pt-graphics.c) = 7c887bfea57f601dba439a2ee20061a772a0aca5 54SHA1 (patch-qemu-xen-traditional_hw_pt-graphics.c) = 7c887bfea57f601dba439a2ee20061a772a0aca5
53SHA1 (patch-qemu-xen-traditional_hw_pt-msi.c) = bc22e828a0cb9c93448b6f14284318963b7088e6 55SHA1 (patch-qemu-xen-traditional_hw_pt-msi.c) = bc22e828a0cb9c93448b6f14284318963b7088e6
54SHA1 (patch-qemu-xen-traditional_hw_pt-msi.h) = e2028d255bdfaee9e7eb4ca3be2edb061196809c 56SHA1 (patch-qemu-xen-traditional_hw_pt-msi.h) = e2028d255bdfaee9e7eb4ca3be2edb061196809c
55SHA1 (patch-qemu-xen-traditional_i386-dm_hookstarget.mak) = 50c6bc068406effe94b638ffced7d8edf5729717 57SHA1 (patch-qemu-xen-traditional_i386-dm_hookstarget.mak) = 50c6bc068406effe94b638ffced7d8edf5729717
56SHA1 (patch-qemu-xen-traditional_xen-hooks.mak) = ccc055fdb56ee796e1464f709aa576ab8cd9c6f1 58SHA1 (patch-qemu-xen-traditional_xen-hooks.mak) = ccc055fdb56ee796e1464f709aa576ab8cd9c6f1
57SHA1 (patch-qemu-xen_audio_audio.c) = 8452d63fe90e38a64111d0cf425bacd565fe6d82 59SHA1 (patch-qemu-xen_audio_audio.c) = 8452d63fe90e38a64111d0cf425bacd565fe6d82
58SHA1 (patch-qemu-xen_qemu-doc.texi) = 721e80d15ac30ac71df3d6c4c485b0bf70897cf9 60SHA1 (patch-qemu-xen_qemu-doc.texi) = 721e80d15ac30ac71df3d6c4c485b0bf70897cf9
59SHA1 (patch-qemu-xen_util_hbitmap.c) = 5a495ae2b47d1ff6dd342633b8d655582f21dffe 61SHA1 (patch-qemu-xen_util_hbitmap.c) = 5a495ae2b47d1ff6dd342633b8d655582f21dffe
60SHA1 (patch-qemu-xen_xen-hvm.c) = 11d4deb5de577e8beb2d1c6c3ca886e3d7563f8a 62SHA1 (patch-qemu-xen_xen-hvm.c) = 11d4deb5de577e8beb2d1c6c3ca886e3d7563f8a
61SHA1 (patch-xenstore_xc.c) = 51b39e9929062e72d0ff85f0ee6d13a6ac04ac65 63SHA1 (patch-xenstore_xc.c) = 51b39e9929062e72d0ff85f0ee6d13a6ac04ac65

File Added: pkgsrc/sysutils/xentools45/patches/Attic/patch-CVE-2015-2752
$NetBSD: patch-CVE-2015-2752,v 1.1.2.2 2015/04/29 21:11:13 tron Exp $

Patch for CVE-2015-2752 aka XSA-125 from
http://xenbits.xenproject.org/xsa/xsa125-4.2.patch

--- libxc/xc_domain.c.orig	2015-01-12 16:53:24.000000000 +0000
+++ libxc/xc_domain.c
@@ -1992,6 +1992,8 @@ int xc_domain_memory_mapping(
 {
     DECLARE_DOMCTL;
     xc_dominfo_t info;
+    int ret = 0, err;
+    unsigned long done = 0, nr, max_batch_sz;
 
     if ( xc_domain_getinfo(xch, domid, 1, &info) != 1 ||
          info.domid != domid )
@@ -2002,14 +2004,50 @@ int xc_domain_memory_mapping(
     if ( !xc_core_arch_auto_translated_physmap(&info) )
         return 0;
 
+    if ( !nr_mfns )
+        return 0;
+
     domctl.cmd = XEN_DOMCTL_memory_mapping;
     domctl.domain = domid;
-    domctl.u.memory_mapping.first_gfn = first_gfn;
-    domctl.u.memory_mapping.first_mfn = first_mfn;
-    domctl.u.memory_mapping.nr_mfns = nr_mfns;
     domctl.u.memory_mapping.add_mapping = add_mapping;
+    max_batch_sz = nr_mfns;
+    do
+    {
+        nr = min(nr_mfns - done, max_batch_sz);
+        domctl.u.memory_mapping.nr_mfns = nr;
+        domctl.u.memory_mapping.first_gfn = first_gfn + done;
+        domctl.u.memory_mapping.first_mfn = first_mfn + done;
+        err = do_domctl(xch, &domctl);
+        if ( err && errno == E2BIG )
+        {
+            if ( max_batch_sz <= 1 )
+                break;
+            max_batch_sz >>= 1;
+            continue;
+        }
+        /* Save the first error... */
+        if ( !ret )
+            ret = err;
+        /* .. and ignore the rest of them when removing. */
+        if ( err && add_mapping != DPCI_REMOVE_MAPPING )
+            break;
+
+        done += nr;
+    } while ( done < nr_mfns );
+
+    /*
+     * Undo what we have done unless unmapping, by unmapping the entire region.
+     * Errors here are ignored.
+     */
+    if ( ret && add_mapping != DPCI_REMOVE_MAPPING )
+        xc_domain_memory_mapping(xch, domid, first_gfn, first_mfn, nr_mfns,
+                                 DPCI_REMOVE_MAPPING);
+
+    /* We might get E2BIG so many times that we never advance. */
+    if ( !done && !ret )
+        ret = -1;
 
-    return do_domctl(xch, &domctl);
+    return ret;
 }
 
 int xc_domain_ioport_mapping(


File Added: pkgsrc/sysutils/xentools45/patches/Attic/patch-CVE-2015-2756
$NetBSD: patch-CVE-2015-2756,v 1.1.2.2 2015/04/29 21:11:13 tron Exp $

patch for CVE-2015-2756 aka XSA-126 from
http://xenbits.xenproject.org/xsa/xsa126-qemuu.patch
and
http://xenbits.xenproject.org/xsa/xsa126-qemut.patch

--- qemu-xen/hw/xen/xen_pt.c.orig	2014-12-02 10:41:02.000000000 +0000
+++ qemu-xen/hw/xen/xen_pt.c
@@ -388,7 +388,7 @@ static const MemoryRegionOps ops = {
     .write = xen_pt_bar_write,
 };
 
-static int xen_pt_register_regions(XenPCIPassthroughState *s)
+static int xen_pt_register_regions(XenPCIPassthroughState *s, uint16_t *cmd)
 {
     int i = 0;
     XenHostPCIDevice *d = &s->real_device;
@@ -406,6 +406,7 @@ static int xen_pt_register_regions(XenPC
 
         if (r->type & XEN_HOST_PCI_REGION_TYPE_IO) {
             type = PCI_BASE_ADDRESS_SPACE_IO;
+            *cmd |= PCI_COMMAND_IO;
         } else {
             type = PCI_BASE_ADDRESS_SPACE_MEMORY;
             if (r->type & XEN_HOST_PCI_REGION_TYPE_PREFETCH) {
@@ -414,6 +415,7 @@ static int xen_pt_register_regions(XenPC
             if (r->type & XEN_HOST_PCI_REGION_TYPE_MEM_64) {
                 type |= PCI_BASE_ADDRESS_MEM_TYPE_64;
             }
+            *cmd |= PCI_COMMAND_MEMORY;
         }
 
         memory_region_init_io(&s->bar[i], OBJECT(s), &ops, &s->dev,
@@ -657,6 +659,7 @@ static int xen_pt_initfn(PCIDevice *d)
     XenPCIPassthroughState *s = DO_UPCAST(XenPCIPassthroughState, dev, d);
     int rc = 0;
     uint8_t machine_irq = 0;
+    uint16_t cmd = 0;
     int pirq = XEN_PT_UNASSIGNED_PIRQ;
 
     /* register real device */
@@ -691,7 +694,7 @@ static int xen_pt_initfn(PCIDevice *d)
     s->io_listener = xen_pt_io_listener;
 
     /* Handle real device's MMIO/PIO BARs */
-    xen_pt_register_regions(s);
+    xen_pt_register_regions(s, &cmd);
 
     /* reinitialize each config register to be emulated */
     if (xen_pt_config_init(s)) {
@@ -755,6 +758,11 @@ static int xen_pt_initfn(PCIDevice *d)
     }
 
 out:
+    if (cmd) {
+        xen_host_pci_set_word(&s->real_device, PCI_COMMAND,
+                              pci_get_word(d->config + PCI_COMMAND) | cmd);
+    }
+
     memory_listener_register(&s->memory_listener, &address_space_memory);
     memory_listener_register(&s->io_listener, &address_space_io);
     XEN_PT_LOG(d,

--- qemu-xen/hw/xen/xen_pt_config_init.c.orig	2014-12-02 10:41:02.000000000 +0000
+++ qemu-xen/hw/xen/xen_pt_config_init.c
@@ -286,23 +286,6 @@ static int xen_pt_irqpin_reg_init(XenPCI
 }
 
 /* Command register */
-static int xen_pt_cmd_reg_read(XenPCIPassthroughState *s, XenPTReg *cfg_entry,
-                               uint16_t *value, uint16_t valid_mask)
-{
-    XenPTRegInfo *reg = cfg_entry->reg;
-    uint16_t valid_emu_mask = 0;
-    uint16_t emu_mask = reg->emu_mask;
-
-    if (s->is_virtfn) {
-        emu_mask |= PCI_COMMAND_MEMORY;
-    }
-
-    /* emulate word register */
-    valid_emu_mask = emu_mask & valid_mask;
-    *value = XEN_PT_MERGE_VALUE(*value, cfg_entry->data, ~valid_emu_mask);
-
-    return 0;
-}
 static int xen_pt_cmd_reg_write(XenPCIPassthroughState *s, XenPTReg *cfg_entry,
                                 uint16_t *val, uint16_t dev_value,
                                 uint16_t valid_mask)
@@ -310,18 +293,13 @@ static int xen_pt_cmd_reg_write(XenPCIPa
     XenPTRegInfo *reg = cfg_entry->reg;
     uint16_t writable_mask = 0;
     uint16_t throughable_mask = 0;
-    uint16_t emu_mask = reg->emu_mask;
-
-    if (s->is_virtfn) {
-        emu_mask |= PCI_COMMAND_MEMORY;
-    }
 
     /* modify emulate register */
     writable_mask = ~reg->ro_mask & valid_mask;
     cfg_entry->data = XEN_PT_MERGE_VALUE(*val, cfg_entry->data, writable_mask);
 
     /* create value for writing to I/O device register */
-    throughable_mask = ~emu_mask & valid_mask;
+    throughable_mask = ~reg->emu_mask & valid_mask;
 
     if (*val & PCI_COMMAND_INTX_DISABLE) {
         throughable_mask |= PCI_COMMAND_INTX_DISABLE;
@@ -605,9 +583,9 @@ static XenPTRegInfo xen_pt_emu_reg_heade
         .size       = 2,
         .init_val   = 0x0000,
         .ro_mask    = 0xF880,
-        .emu_mask   = 0x0740,
+        .emu_mask   = 0x0743,
         .init       = xen_pt_common_reg_init,
-        .u.w.read   = xen_pt_cmd_reg_read,
+        .u.w.read   = xen_pt_word_reg_read,
         .u.w.write  = xen_pt_cmd_reg_write,
     },
     /* Capabilities Pointer reg */

--- qemu-xen-traditional/hw/pass-through.c.orig	2014-10-06 15:50:24.000000000 +0000
+++ qemu-xen-traditional/hw/pass-through.c
@@ -172,9 +172,6 @@ static int pt_word_reg_read(struct pt_de
 static int pt_long_reg_read(struct pt_dev *ptdev,
     struct pt_reg_tbl *cfg_entry,
     uint32_t *value, uint32_t valid_mask);
-static int pt_cmd_reg_read(struct pt_dev *ptdev,
-    struct pt_reg_tbl *cfg_entry,
-    uint16_t *value, uint16_t valid_mask);
 static int pt_bar_reg_read(struct pt_dev *ptdev,
     struct pt_reg_tbl *cfg_entry,
     uint32_t *value, uint32_t valid_mask);
@@ -286,9 +283,9 @@ static struct pt_reg_info_tbl pt_emu_reg
         .size       = 2,
         .init_val   = 0x0000,
         .ro_mask    = 0xF880,
-        .emu_mask   = 0x0740,
+        .emu_mask   = 0x0743,
         .init       = pt_common_reg_init,
-        .u.w.read   = pt_cmd_reg_read,
+        .u.w.read   = pt_word_reg_read,
         .u.w.write  = pt_cmd_reg_write,
         .u.w.restore  = pt_cmd_reg_restore,
     },
@@ -1905,7 +1902,7 @@ static int pt_dev_is_virtfn(struct pci_d
     return rc;
 }
 
-static int pt_register_regions(struct pt_dev *assigned_device)
+static int pt_register_regions(struct pt_dev *assigned_device, uint16_t *cmd)
 {
     int i = 0;
     uint32_t bar_data = 0;
@@ -1925,17 +1922,26 @@ static int pt_register_regions(struct pt
 
             /* Register current region */
             if ( pci_dev->base_addr[i] & PCI_ADDRESS_SPACE_IO )
+            {
                 pci_register_io_region((PCIDevice *)assigned_device, i,
                     (uint32_t)pci_dev->size[i], PCI_ADDRESS_SPACE_IO,
                     pt_ioport_map);
+                *cmd |= PCI_COMMAND_IO;
+            }
             else if ( pci_dev->base_addr[i] & PCI_ADDRESS_SPACE_MEM_PREFETCH )
+            {
                 pci_register_io_region((PCIDevice *)assigned_device, i,
                     (uint32_t)pci_dev->size[i], PCI_ADDRESS_SPACE_MEM_PREFETCH,
                     pt_iomem_map);
+                *cmd |= PCI_COMMAND_MEMORY;
+            }
             else
+            {
                 pci_register_io_region((PCIDevice *)assigned_device, i,
                     (uint32_t)pci_dev->size[i], PCI_ADDRESS_SPACE_MEM,
                     pt_iomem_map);
+                *cmd |= PCI_COMMAND_MEMORY;
+            }
 
             PT_LOG("IO region registered (size=0x%08x base_addr=0x%08x)\n",
                 (uint32_t)(pci_dev->size[i]),
@@ -3263,27 +3269,6 @@ static int pt_long_reg_read(struct pt_de
    return 0;
 }
 
-/* read Command register */
-static int pt_cmd_reg_read(struct pt_dev *ptdev,
-        struct pt_reg_tbl *cfg_entry,
-        uint16_t *value, uint16_t valid_mask)
-{
-    struct pt_reg_info_tbl *reg = cfg_entry->reg;
-    uint16_t valid_emu_mask = 0;
-    uint16_t emu_mask = reg->emu_mask;
-
-    if ( ptdev->is_virtfn )
-        emu_mask |= PCI_COMMAND_MEMORY;
-    if ( pt_is_iomul(ptdev) )
-        emu_mask |= PCI_COMMAND_IO;
-
-    /* emulate word register */
-    valid_emu_mask = emu_mask & valid_mask;
-    *value = PT_MERGE_VALUE(*value, cfg_entry->data, ~valid_emu_mask);
-
-    return 0;
-}
-
 /* read BAR */
 static int pt_bar_reg_read(struct pt_dev *ptdev,
         struct pt_reg_tbl *cfg_entry,
@@ -3418,19 +3403,13 @@ static int pt_cmd_reg_write(struct pt_de
     uint16_t writable_mask = 0;
     uint16_t throughable_mask = 0;
     uint16_t wr_value = *value;
-    uint16_t emu_mask = reg->emu_mask;
-
-    if ( ptdev->is_virtfn )
-        emu_mask |= PCI_COMMAND_MEMORY;
-    if ( pt_is_iomul(ptdev) )
-        emu_mask |= PCI_COMMAND_IO;
 
     /* modify emulate register */
     writable_mask = ~reg->ro_mask & valid_mask;
     cfg_entry->data = PT_MERGE_VALUE(*value, cfg_entry->data, writable_mask);
 
     /* create value for writing to I/O device register */
-    throughable_mask = ~emu_mask & valid_mask;
+    throughable_mask = ~reg->emu_mask & valid_mask;
 
     if (*value & PCI_COMMAND_DISABLE_INTx)
     {
@@ -4211,6 +4190,7 @@ static struct pt_dev * register_real_dev
     struct pt_dev *assigned_device = NULL;
     struct pci_dev *pci_dev;
     uint8_t e_device, e_intx;
+    uint16_t cmd = 0;
     char *key, *val;
     int msi_translate, power_mgmt;
 
@@ -4300,7 +4280,7 @@ static struct pt_dev * register_real_dev
         assigned_device->dev.config[i] = pci_read_byte(pci_dev, i);
 
     /* Handle real device's MMIO/PIO BARs */
-    pt_register_regions(assigned_device);
+    pt_register_regions(assigned_device, &cmd);
 
     /* Setup VGA bios for passthroughed gfx */
     if ( setup_vga_pt(assigned_device) < 0 )
@@ -4378,6 +4358,10 @@ static struct pt_dev * register_real_dev
     }
 
 out:
+    if (cmd)
+        pci_write_word(pci_dev, PCI_COMMAND,
+            *(uint16_t *)(&assigned_device->dev.config[PCI_COMMAND]) | cmd);
+
     PT_LOG("Real physical device %02x:%02x.%x registered successfuly!\n"
            "IRQ type = %s\n", r_bus, r_dev, r_func,
            assigned_device->msi_trans_en? "MSI-INTx":"INTx");