summaryrefslogtreecommitdiff
path: root/sysutils/xenkernel45
diff options
context:
space:
mode:
authorjoerg <joerg@pkgsrc.org>2015-09-14 13:36:29 +0000
committerjoerg <joerg@pkgsrc.org>2015-09-14 13:36:29 +0000
commit262aa97619926b26c21190dc99e4684fabb5d64f (patch)
treea330efd97ba3ce08edb6e13de1d14625d2f38842 /sysutils/xenkernel45
parent98a2893057bfc3a106d5935e24734fd3f20860c5 (diff)
downloadpkgsrc-262aa97619926b26c21190dc99e4684fabb5d64f.tar.gz
Avoid undefined behavior when left-shifting negative values.
Diffstat (limited to 'sysutils/xenkernel45')
-rw-r--r--sysutils/xenkernel45/distinfo4
-rw-r--r--sysutils/xenkernel45/patches/patch-xen_common_page__alloc.c13
-rw-r--r--sysutils/xenkernel45/patches/patch-xen_drivers_passthrough_vtd_x86_ats.c22
3 files changed, 38 insertions, 1 deletions
diff --git a/sysutils/xenkernel45/distinfo b/sysutils/xenkernel45/distinfo
index d4c308b93dc..4739dce4dc0 100644
--- a/sysutils/xenkernel45/distinfo
+++ b/sysutils/xenkernel45/distinfo
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.8 2015/06/23 17:45:33 bouyer Exp $
+$NetBSD: distinfo,v 1.9 2015/09/14 13:36:29 joerg Exp $
SHA1 (xen-4.5.1.tar.gz) = f10328ce63625a5a7bfa3af5899c4432a467c051
RMD160 (xen-4.5.1.tar.gz) = 4c449d799e041a52a94c00ee43a8c28fd4af1b96
@@ -6,5 +6,7 @@ Size (xen-4.5.1.tar.gz) = 18410400 bytes
SHA1 (patch-Config.mk) = a2a104d023cea4e551a3ad40927d4884d6c610bf
SHA1 (patch-xen_Makefile) = 750d0c8d4fea14d3ef3f872de5242a1f5104cbbe
SHA1 (patch-xen_arch_x86_Rules.mk) = 7b0894ba7311edb02118a021671f304cf3872154
+SHA1 (patch-xen_common_page__alloc.c) = c4d606de1cada8cf89b5abd16efada3d58c68a03
+SHA1 (patch-xen_drivers_passthrough_vtd_x86_ats.c) = f72fd4bb2aeeaeb0b167031dfd5498e73666aa4e
SHA1 (patch-xen_include_asm-x86_current.h) = 8a21577be06383c0c7f53c15ba828f77fb6314ad
SHA1 (patch-xen_include_xen_lib.h) = 82a219b7d9c5deaa2b8e0adc774f60395adc4815
diff --git a/sysutils/xenkernel45/patches/patch-xen_common_page__alloc.c b/sysutils/xenkernel45/patches/patch-xen_common_page__alloc.c
new file mode 100644
index 00000000000..10b5940c0a4
--- /dev/null
+++ b/sysutils/xenkernel45/patches/patch-xen_common_page__alloc.c
@@ -0,0 +1,13 @@
+$NetBSD: patch-xen_common_page__alloc.c,v 1.1 2015/09/14 13:36:29 joerg Exp $
+
+--- xen/common/page_alloc.c.orig 2015-09-13 17:37:09.000000000 +0000
++++ xen/common/page_alloc.c
+@@ -1561,7 +1561,7 @@ void *alloc_xenheap_pages(unsigned int o
+ ASSERT(!in_irq());
+
+ if ( xenheap_bits && (memflags >> _MEMF_bits) > xenheap_bits )
+- memflags &= ~MEMF_bits(~0);
++ memflags &= ~MEMF_bits(~0U);
+ if ( !(memflags >> _MEMF_bits) )
+ memflags |= MEMF_bits(xenheap_bits);
+
diff --git a/sysutils/xenkernel45/patches/patch-xen_drivers_passthrough_vtd_x86_ats.c b/sysutils/xenkernel45/patches/patch-xen_drivers_passthrough_vtd_x86_ats.c
new file mode 100644
index 00000000000..f026086878d
--- /dev/null
+++ b/sysutils/xenkernel45/patches/patch-xen_drivers_passthrough_vtd_x86_ats.c
@@ -0,0 +1,22 @@
+$NetBSD: patch-xen_drivers_passthrough_vtd_x86_ats.c,v 1.1 2015/09/14 13:36:29 joerg Exp $
+
+--- xen/drivers/passthrough/vtd/x86/ats.c.orig 2015-06-22 13:41:35.000000000 +0000
++++ xen/drivers/passthrough/vtd/x86/ats.c
+@@ -134,7 +134,7 @@ int dev_invalidate_iotlb(struct iommu *i
+ case DMA_TLB_GLOBAL_FLUSH:
+ /* invalidate all translations: sbit=1,bit_63=0,bit[62:12]=1 */
+ sbit = 1;
+- addr = (~0 << PAGE_SHIFT_4K) & 0x7FFFFFFFFFFFFFFF;
++ addr = (~0ULL << PAGE_SHIFT_4K) & 0x7FFFFFFFFFFFFFFF;
+ rc = qinval_device_iotlb(iommu, pdev->ats_queue_depth,
+ sid, sbit, addr);
+ break;
+@@ -146,7 +146,7 @@ int dev_invalidate_iotlb(struct iommu *i
+ sbit = size_order ? 1 : 0;
+
+ /* clear lower bits */
+- addr &= ~0 << PAGE_SHIFT_4K;
++ addr &= ~0ULL << PAGE_SHIFT_4K;
+
+ /* if sbit == 1, zero out size_order bit and set lower bits to 1 */
+ if ( sbit )