diff options
author | joerg <joerg@pkgsrc.org> | 2015-09-14 13:36:29 +0000 |
---|---|---|
committer | joerg <joerg@pkgsrc.org> | 2015-09-14 13:36:29 +0000 |
commit | 7e34886acebacbec9796f84152e68330d8f85333 (patch) | |
tree | a330efd97ba3ce08edb6e13de1d14625d2f38842 /sysutils/xenkernel45 | |
parent | 4553a7dc60437ea19c03ec974102f845a894902f (diff) | |
download | pkgsrc-7e34886acebacbec9796f84152e68330d8f85333.tar.gz |
Avoid undefined behavior when left-shifting negative values.
Diffstat (limited to 'sysutils/xenkernel45')
-rw-r--r-- | sysutils/xenkernel45/distinfo | 4 | ||||
-rw-r--r-- | sysutils/xenkernel45/patches/patch-xen_common_page__alloc.c | 13 | ||||
-rw-r--r-- | sysutils/xenkernel45/patches/patch-xen_drivers_passthrough_vtd_x86_ats.c | 22 |
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 ) |