Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp770616pxj; Wed, 16 Jun 2021 13:13:09 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwjuW9D3FBiNKfY+9Snq+fMxZbaQoKPqPY/dQf4un/4L/XSv1ohQH+u4x22LOtkHUpUsyAn X-Received: by 2002:a17:907:1b02:: with SMTP id mp2mr1292282ejc.196.1623874389130; Wed, 16 Jun 2021 13:13:09 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1623874389; cv=none; d=google.com; s=arc-20160816; b=PmXnyibLKp9Nsyn230l/z8t5eTaTKc/1sp0B9oawv8Me0p3K+0O76VypO9QcaNItml FalaxR6V/gTkVuxwzfXRbwnTfFV4TV26NBgUgf0nzFOMFXWU4DJ9S5coZQatr+YKL8JR Gff5HX0vTyEUXWYXZcEMD9caE7dIrp/QuKG92dv4JpSDlR21L0CaoQvI5YPmnHKauzq7 zz09umXOOxyywETtFbGjguHsxAHAFbDSrt7yWnWWfXWyoT6GTXSi4me8Mb00UOFg/Jok gKWiwJa+J3rxslCgEFP62+DUjI5ErcS7rf0obk+51NNcsTBhlo2jHQIjlD4JohcpjRiB EPYg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=0IvfTc+au9UregmFgb/lEOyK3mSk/vSOjylI1Bf59YU=; b=B5MhQrYrkjacUIGAColVLRA7o4XoSjWhnhIgcx5lSIQzES6jJ0gTN+ZNXVeH8QoBdn cwO9i3HoimpVJzADbLr7K5U1AyL86ejV0F8XIi4yRZa1yl7iMr6Ce5rmV9aZsDKL7f1+ vqwP52l3IzU1ypaoX9XjHioNTphoAEFSBbCI+xEn3+VzQ8xucXO4q1UDLaCuUIH58s0H 6HfQralCJo8itNbG2cYHK0DXVOVmj6FBCkFpQYdYQpse5UQzdVRJ7f7xHqJyPgTNZrM4 6DlroJLHLpNQhvJ6K8iWmQvHHjGTHLb1lp8fw4qBfTVUaUwq2tYsyZDBDFx3gfCwUUd6 aY/g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@ibm.com header.s=pp1 header.b=ALjPZEwh; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=ibm.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id k16si3113972edo.475.2021.06.16.13.12.43; Wed, 16 Jun 2021 13:13:09 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@ibm.com header.s=pp1 header.b=ALjPZEwh; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=ibm.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233956AbhFPOSg (ORCPT + 99 others); Wed, 16 Jun 2021 10:18:36 -0400 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]:36884 "EHLO mx0a-001b2d01.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233880AbhFPOSa (ORCPT ); Wed, 16 Jun 2021 10:18:30 -0400 Received: from pps.filterd (m0098399.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.43/8.16.0.43) with SMTP id 15GE3hhc115185; Wed, 16 Jun 2021 10:16:23 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-transfer-encoding; s=pp1; bh=0IvfTc+au9UregmFgb/lEOyK3mSk/vSOjylI1Bf59YU=; b=ALjPZEwh/gtsKEr+dshA2K+bCzugqUjZXN/+43a/I8Ue7vKDevGY9RHmCZafJJ/WSPSc G7bTitnBRI/bV0E0+sLUMm7v//RvV3vChSs04QOjuskuDuPShO8S2DG7OQjj2fpByucL 0JEG16HWLyBe05Dq5+VQTX5rPVTiPin8Qipd5rietA5Bc4/yOA9hQFmGi9gAu8luS8jd amhVDBiC7i6cbYTm1/W5Fb0hZcs+ZcIfg+yZp2k4zEIVKDKyiXfzO22R73owsCCT0eEn bemQ3wioIEycVl4Vwuom9am1MENly98VISNYYg5Ov4kPRZDTa64lDazpiXmuhR8XeSoe tg== Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com with ESMTP id 397hdy3h3r-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 16 Jun 2021 10:16:22 -0400 Received: from m0098399.ppops.net (m0098399.ppops.net [127.0.0.1]) by pps.reinject (8.16.0.43/8.16.0.43) with SMTP id 15GE4B2f121119; Wed, 16 Jun 2021 10:16:22 -0400 Received: from ppma01dal.us.ibm.com (83.d6.3fa9.ip4.static.sl-reverse.com [169.63.214.131]) by mx0a-001b2d01.pphosted.com with ESMTP id 397hdy3h2e-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 16 Jun 2021 10:16:22 -0400 Received: from pps.filterd (ppma01dal.us.ibm.com [127.0.0.1]) by ppma01dal.us.ibm.com (8.16.1.2/8.16.1.2) with SMTP id 15GEBx3x020465; Wed, 16 Jun 2021 14:16:21 GMT Received: from b01cxnp22035.gho.pok.ibm.com (b01cxnp22035.gho.pok.ibm.com [9.57.198.25]) by ppma01dal.us.ibm.com with ESMTP id 394mjah1n6-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 16 Jun 2021 14:16:21 +0000 Received: from b01ledav001.gho.pok.ibm.com (b01ledav001.gho.pok.ibm.com [9.57.199.106]) by b01cxnp22035.gho.pok.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 15GEGKkh25493928 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 16 Jun 2021 14:16:20 GMT Received: from b01ledav001.gho.pok.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 421A52805A; Wed, 16 Jun 2021 14:16:20 +0000 (GMT) Received: from b01ledav001.gho.pok.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id C049A2805C; Wed, 16 Jun 2021 14:16:19 +0000 (GMT) Received: from cpe-172-100-179-72.stny.res.rr.com (unknown [9.85.128.252]) by b01ledav001.gho.pok.ibm.com (Postfix) with ESMTP; Wed, 16 Jun 2021 14:16:19 +0000 (GMT) From: Tony Krowiak To: linux-s390@vger.kernel.org, linux-kernel@vger.kernel.org Cc: borntraeger@de.ibm.com, cohuck@redhat.com, pasic@linux.vnet.ibm.com, jjherne@linux.ibm.com, jgg@nvidia.com, alex.williamson@redhat.com, kwankhede@nvidia.com, frankja@linux.ibm.com, david@redhat.com, imbrenda@linux.ibm.com, hca@linux.ibm.com Subject: [PATCH v5 1/2] s390/vfio-ap: clean up mdev resources when remove callback invoked Date: Wed, 16 Jun 2021 10:16:17 -0400 Message-Id: <20210616141618.938494-2-akrowiak@linux.ibm.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20210616141618.938494-1-akrowiak@linux.ibm.com> References: <20210616141618.938494-1-akrowiak@linux.ibm.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-TM-AS-GCONF: 00 X-Proofpoint-GUID: swTVPIUZHxiK5VvZDGuGf-ZVe5lCU2cV X-Proofpoint-ORIG-GUID: JeNp9v-Sdk-x0UAPMQfCKZqyiMkXL1EV X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.391,18.0.761 definitions=2021-06-16_07:2021-06-15,2021-06-16 signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 impostorscore=0 adultscore=0 lowpriorityscore=0 suspectscore=0 bulkscore=0 spamscore=0 clxscore=1015 mlxlogscore=999 mlxscore=0 priorityscore=1501 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2104190000 definitions=main-2106160082 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The mdev remove callback for the vfio_ap device driver bails out with -EBUSY if the mdev is in use by a KVM guest (i.e., the KVM pointer in the struct ap_matrix_mdev is not NULL). The intended purpose was to prevent the mdev from being removed while in use. There are two problems with this scenario: 1. Returning a non-zero return code from the remove callback does not prevent the removal of the mdev. 2. The KVM pointer in the struct ap_matrix_mdev will always be NULL because the remove callback will not get invoked until the mdev fd is closed. When the mdev fd is closed, the mdev release callback is invoked and clears the KVM pointer from the struct ap_matrix_mdev. Let's go ahead and remove the check for KVM in the remove callback and allow the cleanup of mdev resources to proceed. Signed-off-by: Tony Krowiak Reviewed-by: Jason Gunthorpe --- drivers/s390/crypto/vfio_ap_ops.c | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/drivers/s390/crypto/vfio_ap_ops.c b/drivers/s390/crypto/vfio_ap_ops.c index b2c7e10dfdcd..122c85c22469 100644 --- a/drivers/s390/crypto/vfio_ap_ops.c +++ b/drivers/s390/crypto/vfio_ap_ops.c @@ -366,16 +366,6 @@ static int vfio_ap_mdev_remove(struct mdev_device *mdev) struct ap_matrix_mdev *matrix_mdev = mdev_get_drvdata(mdev); mutex_lock(&matrix_dev->lock); - - /* - * If the KVM pointer is in flux or the guest is running, disallow - * un-assignment of control domain. - */ - if (matrix_mdev->kvm_busy || matrix_mdev->kvm) { - mutex_unlock(&matrix_dev->lock); - return -EBUSY; - } - vfio_ap_mdev_reset_queues(mdev); list_del(&matrix_mdev->node); kfree(matrix_mdev); -- 2.30.2