Received: by 2002:ac0:a594:0:0:0:0:0 with SMTP id m20-v6csp3669228imm; Thu, 17 May 2018 12:34:12 -0700 (PDT) X-Google-Smtp-Source: AB8JxZrWJh3fMVyP749kcFK3/3+OqPRHTCkI2MfAtQy7VuomKDDr5sSauNe6+xRt52dNlVXzcv4a X-Received: by 2002:a17:902:9883:: with SMTP id s3-v6mr6489859plp.179.1526585652754; Thu, 17 May 2018 12:34:12 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1526585652; cv=none; d=google.com; s=arc-20160816; b=xrOl29Q/6Fg80iUNm0U478kubE2P1ZXU+yjkU0hQLNm1JrB/FmrfAWMaDZyKIYLM3l k9obZ03+odD/asl1XDYd9xChJHBFrVAgn40y7VNOoJLRItOzyAXcMbJ/oNbnligqCR+i 9kzHA0Xnd33PC2r4yFq5sndgyy45r46/NdVwPWCxHY2YO0NLiJBCVKgKZJ7TbhbZFLJG xBSk82Wc1Cm1mng6U4TJ8Mv0kv9Qe45eVaZbHjs8lGnIGuLO9VEMb5qFaF+KTIizCAf3 FQAYfoOMdxj19EOz7gb+pvFV0TU2BETNh4/sOcUJ+21gy+H9OetAcKOEEq2HX+ftPrBV nHAA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:mime-version:user-agent:date:message-id:cc:to :subject:from:dkim-signature:arc-authentication-results; bh=uRrXjKNlDGJt93HiKjpfWpkfR3RYtSdw2xcsDk7ZMjU=; b=Epd1YXwWH8M/6b43+oEy9gOym67hjzl9lsaI3rA1yAJG+vYV0QNcg0Hdv51yj1BJos tDBNCX9dzTCqOesYFM3nwpzdrf5gx4PEvm+fLJsVL7AaL/1gbZjgUseUUq696kifM51G C8HJMs2Nw/MRy784N9hvqAbZb48rx1BHGi7x18SfZIhDQtWHR/jPerajVyj53xs8MLcw aXA+YOr277EPAk3c/i3CAdFG9SVEIdaYWNRHw0YIHSB8w3MeZ9EBMIZl70QMxIEfRJwc uKSAW7CLm09PWgKJEm27yh1+jVWGqWpT4Y2jrTqFU57FLL/EYNP0nqembpSsvlVWWIWF iGcA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2017-10-26 header.b=ooj+h3Vf; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id y5-v6si1290380pgq.276.2018.05.17.12.33.58; Thu, 17 May 2018 12:34:12 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2017-10-26 header.b=ooj+h3Vf; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752291AbeEQTdf (ORCPT + 99 others); Thu, 17 May 2018 15:33:35 -0400 Received: from aserp2130.oracle.com ([141.146.126.79]:44676 "EHLO aserp2130.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752237AbeEQTdc (ORCPT ); Thu, 17 May 2018 15:33:32 -0400 Received: from pps.filterd (aserp2130.oracle.com [127.0.0.1]) by aserp2130.oracle.com (8.16.0.22/8.16.0.22) with SMTP id w4HJKgVF162088; Thu, 17 May 2018 19:33:30 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : subject : to : cc : message-id : date : mime-version : content-type : content-transfer-encoding; s=corp-2017-10-26; bh=uRrXjKNlDGJt93HiKjpfWpkfR3RYtSdw2xcsDk7ZMjU=; b=ooj+h3VfJTrKxldsAyIX/8cA0NaUf3GviLFTpk6IN3kA4AsGQDSjLoTQjMDt4Hs7bAPt qpW+XNHMrijH9WFvKyqY1DSrosqw2sv/LcVsAdkHMM/6VzCRvukv3NnCi9B++ZegUS02 CykNkwYpzIhBme+dG590ShFcC5HSCg7I1Gi7MSATWQ3Gsd4vSdIVfCx7x/ljGTYtaS+n ln+JBR93mHiFv1iUey5d9luQ4foy3cogevNRNUmI3HWhJmeqrZqNGnOWY7nmW6WW00a4 3Arlzj0xFQjzvH+1n2upidm8eAc7kp0/pLvkake2QOjcF6zzsE+XeklfzuaRSYhaz4in nw== Received: from aserv0021.oracle.com (aserv0021.oracle.com [141.146.126.233]) by aserp2130.oracle.com with ESMTP id 2hxpvd1bw1-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 17 May 2018 19:33:30 +0000 Received: from aserv0122.oracle.com (aserv0122.oracle.com [141.146.126.236]) by aserv0021.oracle.com (8.14.4/8.14.4) with ESMTP id w4HJXToP004193 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 17 May 2018 19:33:29 GMT Received: from abhmp0019.oracle.com (abhmp0019.oracle.com [141.146.116.25]) by aserv0122.oracle.com (8.14.4/8.14.4) with ESMTP id w4HJXT2s009176; Thu, 17 May 2018 19:33:29 GMT Received: from [10.211.202.39] (/10.211.202.39) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Thu, 17 May 2018 12:33:29 -0700 From: Joe Jin Subject: [PATCH] xen-swiotlb: fix the check condition for xen_swiotlb_free_coherent To: Konrad Rzeszutek Wilk , John Sobecki , "linux-kernel@vger.kernel.org" , "xen-devel@lists.xenproject.org" Cc: ASHISH_B_SRIVASTAVA , stable@vger.kernel.org Message-ID: Date: Thu, 17 May 2018 12:33:28 -0700 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:52.0) Gecko/20100101 Thunderbird/52.6.0 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-Proofpoint-Virus-Version: vendor=nai engine=5900 definitions=8896 signatures=668698 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=2 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0 mlxscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1711220000 definitions=main-1805170182 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org When run raidconfig from Dom0 we found that the Xen DMA heap is reduced, but Dom Heap is increased by the same size. Tracing raidconfig we found that the related ioctl() in megaraid_sas will call dma_alloc_coherent() to apply memory. If the memory allocated by Dom0 is not in the DMA area, it will exchange memory with Xen to meet the requiment. Later drivers call dma_free_coherent() to free the memory, on xen_swiotlb_free_coherent() the check condition (dev_addr + size - 1 <= dma_mask) is always false, it prevents calling xen_destroy_contiguous_region() to return the memory to the Xen DMA heap. This issue introduced by commit 6810df88dcfc2 "xen-swiotlb: When doing coherent alloc/dealloc check before swizzling the MFNs.". Signed-off-by: Joe Jin Tested-by: John Sobecki Reviewed-by: Rzeszutek Wilk Cc: stable@vger.kernel.org --- drivers/xen/swiotlb-xen.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/xen/swiotlb-xen.c b/drivers/xen/swiotlb-xen.c index e1c60899fdbc..a6f9ba85dc4b 100644 --- a/drivers/xen/swiotlb-xen.c +++ b/drivers/xen/swiotlb-xen.c @@ -351,7 +351,7 @@ xen_swiotlb_free_coherent(struct device *hwdev, size_t size, void *vaddr, * physical address */ phys = xen_bus_to_phys(dev_addr); - if (((dev_addr + size - 1 > dma_mask)) || + if (((dev_addr + size - 1 <= dma_mask)) || range_straddles_page_boundary(phys, size)) xen_destroy_contiguous_region(phys, order); -- 2.14.3 (Apple Git-98)