[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH] xen: Avoid left shifting into a sign bit
Clang 3.8 notices, and objects because it is undefined behaviour. "error: shifting a negative signed value is undefined [-Werror,-Wshift-negative-value]" Use unsigned constants rather than signed ones. Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> --- CC: Jan Beulich <JBeulich@xxxxxxxx> CC: Tim Deegan <tim@xxxxxxx> CC: Ian Campbell <Ian.Campbell@xxxxxxxxxx> CC: Kevin Tian <kevin.tian@xxxxxxxxx> CC: Feng Wu <feng.wu@xxxxxxxxx> --- xen/common/page_alloc.c | 2 +- xen/drivers/passthrough/vtd/x86/ats.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c index 624a266..7179d67 100644 --- a/xen/common/page_alloc.c +++ b/xen/common/page_alloc.c @@ -1675,7 +1675,7 @@ void *alloc_xenheap_pages(unsigned int order, unsigned int memflags) 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/xen/drivers/passthrough/vtd/x86/ats.c b/xen/drivers/passthrough/vtd/x86/ats.c index 7c797f6..334b9c1 100644 --- a/xen/drivers/passthrough/vtd/x86/ats.c +++ b/xen/drivers/passthrough/vtd/x86/ats.c @@ -133,7 +133,7 @@ int dev_invalidate_iotlb(struct iommu *iommu, u16 did, 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 = (~0UL << PAGE_SHIFT_4K) & 0x7FFFFFFFFFFFFFFF; rc = qinval_device_iotlb(iommu, pdev->ats_queue_depth, sid, sbit, addr); break; @@ -145,7 +145,7 @@ int dev_invalidate_iotlb(struct iommu *iommu, u16 did, sbit = size_order ? 1 : 0; /* clear lower bits */ - addr &= ~0 << PAGE_SHIFT_4K; + addr &= ~0UL << PAGE_SHIFT_4K; /* if sbit == 1, zero out size_order bit and set lower bits to 1 */ if ( sbit ) -- 2.1.4 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |