From nobody Mon Jul 27 20:01:03 2026 Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com [148.163.156.1]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B4853385D88; Thu, 16 Jul 2026 17:52:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.163.156.1 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784224370; cv=none; b=XKl3r/sMkPXrwsa1x88wYrzFIQKtTgPLZEOzqJk2kPF/mSXchlb8UgtXzEoKfYkQo47+4lgou12QDc2m0kpFapvo+6yJuDYBZnXmEQnpJ35YQAGq2lMXMHH6EIHtkeYTGBh2TW7FAFuNugZwc9lcFAgTOceg5B+rC3vRJOvrRDA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784224370; c=relaxed/simple; bh=JcP9PixSey+zPC7bEDWe+KXuetvt0F7UwdBKq52/3N4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ZdQrRk6BKSRwvPOu05RUIu6sFxpqpQhUfFZi8ij2R7zlTAPGwaDMCQoFgi3+5TKYb3Lr9ljFh0GMAz8d2BNPQ0cEYoCPcNLhT1PJgVnlaaHlcpFej4t+QEcI9hYw/9TnEuUkVq3+yWQcf2mzexlO/YfOQbDVw064kd72XNFpJZY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.ibm.com; spf=pass smtp.mailfrom=linux.ibm.com; dkim=pass (2048-bit key) header.d=ibm.com header.i=@ibm.com header.b=tundDbx+; arc=none smtp.client-ip=148.163.156.1 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.ibm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.ibm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=ibm.com header.i=@ibm.com header.b="tundDbx+" Received: from pps.filterd (m0356517.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66GGflfY3764418; Thu, 16 Jul 2026 17:52:47 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=pp1; bh=eyHG4APSlwxaNMQ6I 3JKLzvWUjUxyohiPkCqHugwBao=; b=tundDbx+fxAKXBxjb9JmgXJM70hy3tgj9 rtWpL1400ETZDkwfLt/lF/jMhtkevRPrnD4rNmMXvjz7IK+/wXmSeX98HOLCS22e 0YI8A88dTOYQaxEIkXbCoQ0fzGBiBzavfkqhEa83URVt32HYHofY84ytD+L8Y4uV /uzCGhD4e7pyFwa3/AtJEY/+ZN8XS+bpqiFhx42uf8DXZ7IOry3VSvvlU/Tz02XA sPWKWG/T7jTpi89/t3DNnMpV3bIFg1WmKfPxcRFrqYP2fkskcKw0R8MCI7kf8uWl K4KCf7UoYvpNZmSy7D04yQou1l+I0tHaR3AByKKbjP6uhzrfUO7Kw== Received: from ppma23.wdc07v.mail.ibm.com (5d.69.3da9.ip4.static.sl-reverse.com [169.61.105.93]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4fbegtjap9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 16 Jul 2026 17:52:47 +0000 (GMT) Received: from pps.filterd (ppma23.wdc07v.mail.ibm.com [127.0.0.1]) by ppma23.wdc07v.mail.ibm.com (8.18.1.7/8.18.1.7) with ESMTP id 66GHndmi020723; Thu, 16 Jul 2026 17:52:46 GMT Received: from smtprelay04.dal12v.mail.ibm.com ([172.16.1.6]) by ppma23.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4fc1nhp2y8-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 16 Jul 2026 17:52:46 +0000 (GMT) Received: from smtpav02.wdc07v.mail.ibm.com (smtpav02.wdc07v.mail.ibm.com [10.39.53.229]) by smtprelay04.dal12v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 66GHqiB123331354 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 16 Jul 2026 17:52:44 GMT Received: from smtpav02.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 8ECC358059; Thu, 16 Jul 2026 17:52:44 +0000 (GMT) Received: from smtpav02.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id B99EB58058; Thu, 16 Jul 2026 17:52:43 +0000 (GMT) Received: from IBM-D32RQW3.ibm.com (unknown [9.61.248.47]) by smtpav02.wdc07v.mail.ibm.com (Postfix) with ESMTP; Thu, 16 Jul 2026 17:52:43 +0000 (GMT) From: Farhan Ali To: linux-kernel@vger.kernel.org, linux-s390@vger.kernel.org, kvm@vger.kernel.org Cc: alifm@linux.ibm.com, mjrosato@linux.ibm.com, borntraeger@linux.ibm.com, farman@linux.ibm.com Subject: [PATCH v2 1/4] KVM: s390: pci: Fix memory accounting for pinned/unpinned pages Date: Thu, 16 Jul 2026 10:52:38 -0700 Message-ID: <20260716175241.1039-2-alifm@linux.ibm.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260716175241.1039-1-alifm@linux.ibm.com> References: <20260716175241.1039-1-alifm@linux.ibm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-ORIG-GUID: VIS4naqT6z_nAGpO5FEyrnciMfsAx6JA X-Proofpoint-Spam-Info: AW1haW4tMjYwNzE2MDE4MSBTYWx0ZWRfX8O++iRmHzc5m qNzzzZE8ve4zmZIA20LVAfna7qWq2RVxj2y2xL1h/Wik+IFgqSSqALd7Sb8kj80vsAInX29DoG8 v8gpCS/YSEEVAlVFdRa9Y4Oe1UZpfzc= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzE2MDE4MSBTYWx0ZWRfXzRfQ0I4SL9MH onpChLa/ZQKi+J128gvYYKNf8eJWNg9VqrKRfOeFFBuZmOkbxyu6gFsi1mtmGzmo4MhAK1RLzI0 BO+FJ0qcAbHcH9VcGGfLcnFMEqbYA93DweMcXmkRLLWKAvEK7+udll06scsYllLfMeUy9f6bEHt 0i1iVw7dN24G0l995VP5eBLMV/qOjuNJiApiNzqMtyhTMQ6m15cbWrF1ilnSvFGESyIQ7JpwRQ7 qe6Gg0M3znp3KktCohXWbOOJY9JCFJKB7A02DBLwm4iGcUsg+lZPiuVeXkPB1EMKCiACd4/+Fj8 0Hm6XQa9Yf6Csds+yH50MG4Z8RDwZP0RgUXrcbQHx8uH71pqlsNkIn9CnY1HVfYHYeeghe81BRl 5NyjO96hpGjtgN6IKIWXFFnd/wYv3YX7FujEZxVHteNyR+E1JCNMxQZrNqsA2Aa9ZT50Nv6bYYo oga0lYCbRBsAg3a25eA== X-Authority-Analysis: v=2.4 cv=IqMutr/g c=1 sm=1 tr=0 ts=6a591a6f cx=c_pps a=3Bg1Hr4SwmMryq2xdFQyZA==:117 a=3Bg1Hr4SwmMryq2xdFQyZA==:17 a=RAioF0-LDSMA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=U7nrCbtTmkRpXpFmAIza:22 a=VnNF1IyMAAAA:8 a=EQJuD_CdQHuXhf-s-5YA:9 X-Proofpoint-GUID: VIS4naqT6z_nAGpO5FEyrnciMfsAx6JA X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-16_06,2026-07-15_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 clxscore=1015 impostorscore=0 malwarescore=0 adultscore=0 phishscore=0 suspectscore=0 priorityscore=1501 bulkscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607160181 Content-Type: text/plain; charset="utf-8" The account_mem() and unaccount_mem() functions call get_uid() which increments the reference count of struct user_struct on every invocation. But we don't decrement the count by calling free_uid(). It also accounted/unaccounted the pages against the current->mm. But its possible the unaccount_mem() can be called from a different process context than the one that originally pinned the pages. Let's fix this by storing the pinning process user_struct and mm_struct when accounting for pinned pages, and subsequently free these resources when the pages are unpinned. Fixes: 3c5a1b6f0a18 ("KVM: s390: pci: provide routines for enabling/disabli= ng interrupt forwarding") Signed-off-by: Farhan Ali --- arch/s390/kvm/pci.c | 38 ++++++++++++++++++++++++++++---------- arch/s390/kvm/pci.h | 2 ++ 2 files changed, 30 insertions(+), 10 deletions(-) diff --git a/arch/s390/kvm/pci.c b/arch/s390/kvm/pci.c index 720bb58cabe2..dd17f8a7b473 100644 --- a/arch/s390/kvm/pci.c +++ b/arch/s390/kvm/pci.c @@ -190,33 +190,51 @@ static int kvm_zpci_clear_airq(struct zpci_dev *zdev) return cc ? -EIO : 0; } =20 -static inline void unaccount_mem(unsigned long nr_pages) +static inline void unaccount_mem(struct kvm_zdev *kzdev, unsigned long nr_= pages) { - struct user_struct *user =3D get_uid(current_user()); + struct user_struct *user =3D kzdev->user_account; + struct mm_struct *mm_account =3D kzdev->mm_account; =20 - if (user) + if (user) { atomic_long_sub(nr_pages, &user->locked_vm); - if (current->mm) - atomic64_sub(nr_pages, ¤t->mm->pinned_vm); + free_uid(user); + kzdev->user_account =3D NULL; + } + + if (mm_account) { + atomic64_sub(nr_pages, &mm_account->pinned_vm); + mmdrop(mm_account); + kzdev->mm_account =3D NULL; + } } =20 -static inline int account_mem(unsigned long nr_pages) +static inline int account_mem(struct kvm_zdev *kzdev, unsigned long nr_pag= es) { struct user_struct *user =3D get_uid(current_user()); unsigned long page_limit, cur_pages, new_pages; + int rc =3D 0; =20 page_limit =3D rlimit(RLIMIT_MEMLOCK) >> PAGE_SHIFT; =20 cur_pages =3D atomic_long_read(&user->locked_vm); do { new_pages =3D cur_pages + nr_pages; - if (new_pages > page_limit) - return -ENOMEM; + if (new_pages > page_limit) { + rc =3D -ENOMEM; + goto out; + } } while (!atomic_long_try_cmpxchg(&user->locked_vm, &cur_pages, new_pages= )); =20 + mmgrab(current->mm); atomic64_add(nr_pages, ¤t->mm->pinned_vm); + kzdev->user_account =3D user; + kzdev->mm_account =3D current->mm; =20 return 0; + +out: + free_uid(user); + return rc; } =20 static int kvm_s390_pci_aif_enable(struct zpci_dev *zdev, struct zpci_fib = *fib, @@ -275,7 +293,7 @@ static int kvm_s390_pci_aif_enable(struct zpci_dev *zde= v, struct zpci_fib *fib, } =20 /* Account for pinned pages, roll back on failure */ - if (account_mem(pcount)) + if (account_mem(zdev->kzdev, pcount)) goto unpin2; =20 /* AISB must be allocated before we can fill in GAITE */ @@ -396,7 +414,7 @@ static int kvm_s390_pci_aif_disable(struct zpci_dev *zd= ev, bool force) pcount++; } if (pcount > 0) - unaccount_mem(pcount); + unaccount_mem(kzdev, pcount); out: mutex_unlock(&aift->aift_lock); =20 diff --git a/arch/s390/kvm/pci.h b/arch/s390/kvm/pci.h index ff0972dd5e71..544e6aa75e38 100644 --- a/arch/s390/kvm/pci.h +++ b/arch/s390/kvm/pci.h @@ -21,6 +21,8 @@ struct kvm_zdev { struct zpci_dev *zdev; struct kvm *kvm; struct zpci_fib fib; + struct user_struct *user_account; + struct mm_struct *mm_account; struct list_head entry; }; =20 --=20 2.43.0 From nobody Mon Jul 27 20:01:03 2026 Received: from mx0b-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com [148.163.158.5]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 641A7388E49; Thu, 16 Jul 2026 17:52:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.163.158.5 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784224371; cv=none; b=uhZGRZYTAOcWJ7kEhD5wWYEEdirW1lc8zygvLf9vZMUGsT3WLcE6BsU0QQMa9y+X4qL6ZKroJIvswSu8LTuz7daa9Gk3yC1293Lxk+BIxX0JWA9JENPqFWmonQruzHpg7dpn9BrTOEpNTeSeXtQWDF5qvue0yv+qyZND5I1RxSU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784224371; c=relaxed/simple; bh=/FCnwK2bYG5mPZx3iyQYNVlvTbFlLmWpD+OL4/OrUrU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=aH9ObsxIia+ldi4iInPy504HFoQ+ulGrj+mdO2tzOcyfxCdeZqTFcC1oGhm3NaBSm4YlDNB/s5jR7vLR3tIeV8cYQ83gH3S8YHd+hoJGEcCQN4ebOJUYkpixF/iDn0YfZBYjBEVKatt052P/vSd74tcQFa1ImY3t5FcfbRkuAHE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.ibm.com; spf=pass smtp.mailfrom=linux.ibm.com; dkim=pass (2048-bit key) header.d=ibm.com header.i=@ibm.com header.b=asrACzEJ; arc=none smtp.client-ip=148.163.158.5 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.ibm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.ibm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=ibm.com header.i=@ibm.com header.b="asrACzEJ" Received: from pps.filterd (m0360072.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66GGfxWZ3741669; Thu, 16 Jul 2026 17:52:48 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=pp1; bh=NpY9tLW+7Lf/n9lqU bMid6TKV4aPj2Kx6ri/Ubyi1mY=; b=asrACzEJmXWfZL3rGsEkVtlSBVwkRvEi/ f9ctR00DsZ8+xEGdogwrOK7lm0y+z3eqn/VShuJcfDS6zF6fOJ32/1syCc/iBxX+ jaTlc4rOaneG87m4tX0f/y7yeGEjVtpNjH8aVVZDaHaric3IFNx1Y2AIrtci2Jow QhqueXnsjx0206y2LsC9Bkr7JnlCVtFgVMAaZvdazmZU/y0yWsOEy1J/f5LKaB4C b4+YOQDodFCY+t/7P+NZFZa0DYOekjPI3BCE8gVMWn9d04Lj5lnukUVEuijrj2pa /Gvlsjt7+H9w3c2/6ThGFlze/opKhDAAt63cbFOqwQCzhYdG9H4Og== Received: from ppma22.wdc07v.mail.ibm.com (5c.69.3da9.ip4.static.sl-reverse.com [169.61.105.92]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4fbegc1gpf-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 16 Jul 2026 17:52:47 +0000 (GMT) Received: from pps.filterd (ppma22.wdc07v.mail.ibm.com [127.0.0.1]) by ppma22.wdc07v.mail.ibm.com (8.18.1.7/8.18.1.7) with ESMTP id 66GHnc6P016691; Thu, 16 Jul 2026 17:52:47 GMT Received: from smtprelay05.dal12v.mail.ibm.com ([172.16.1.7]) by ppma22.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4fc0hwe995-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 16 Jul 2026 17:52:46 +0000 (GMT) Received: from smtpav02.wdc07v.mail.ibm.com (smtpav02.wdc07v.mail.ibm.com [10.39.53.229]) by smtprelay05.dal12v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 66GHqjEq30212648 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 16 Jul 2026 17:52:45 GMT Received: from smtpav02.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 8576B58058; Thu, 16 Jul 2026 17:52:45 +0000 (GMT) Received: from smtpav02.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id B831C5805B; Thu, 16 Jul 2026 17:52:44 +0000 (GMT) Received: from IBM-D32RQW3.ibm.com (unknown [9.61.248.47]) by smtpav02.wdc07v.mail.ibm.com (Postfix) with ESMTP; Thu, 16 Jul 2026 17:52:44 +0000 (GMT) From: Farhan Ali To: linux-kernel@vger.kernel.org, linux-s390@vger.kernel.org, kvm@vger.kernel.org Cc: alifm@linux.ibm.com, mjrosato@linux.ibm.com, borntraeger@linux.ibm.com, farman@linux.ibm.com Subject: [PATCH v2 2/4] KVM: s390: pci: Fix missing error codes and memory unaccounting Date: Thu, 16 Jul 2026 10:52:39 -0700 Message-ID: <20260716175241.1039-3-alifm@linux.ibm.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260716175241.1039-1-alifm@linux.ibm.com> References: <20260716175241.1039-1-alifm@linux.ibm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Authority-Analysis: v=2.4 cv=fOcJG5ae c=1 sm=1 tr=0 ts=6a591a6f cx=c_pps a=5BHTudwdYE3Te8bg5FgnPg==:117 a=5BHTudwdYE3Te8bg5FgnPg==:17 a=RAioF0-LDSMA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=RzCfie-kr_QcCd8fBx8p:22 a=VnNF1IyMAAAA:8 a=g4erIPh_aaDScpLpsJUA:9 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzE2MDE4MSBTYWx0ZWRfX4ZyIEIQ6HKNV pWkR5hZjpdf6TGzerseC33d24kCzUk8c6/SPpHkTMJT59FP+MKuxNgPSZbvG9QvaEIDZ3HGh26h FF2mIsear4th03RzSTWF2ImsiZYjJvGbLI9rCQbZ5uBKZ4rKZMzAumAh2wIQHBIbNdpjmbY6pnY 69qUXa4R+GrI+qOsqCnw45NnAbdcYsRfqFH2X/Q/BG6F53qKfgjew7ydFvlBcKvblMu6jFBQhUu wGmPSfsTdgkhc6GTQJauG+5jDOzKCKf+fwm8z11m+nu50y4H/3I0qQzk/OEcEZsT8JDeni/A6LQ uyI6xOtWpRu88Mi5ffcFkY5tHKyMmHPJ9fHj5ZtQFuPMGOe87VjnPaQUDaN92MAVwGoRnpX6P3r utlxXqplIIVbD95//FZgL7a0RmimJMX087hRXIwDz2XE35w+GG8J9NRWX90WMhbrTw+vHEGqCIN BJM1KlmU6V7lFoa7xOg== X-Proofpoint-Spam-Info: AW1haW4tMjYwNzE2MDE4MSBTYWx0ZWRfXwVGdJwZHoFIu 5LTSJGmn5I03Ac+Aaxwap9txHIR3DLQ7LMNFfuN48DesTdFmZpkI/44QoZJYqNFfTSgiM0dBzwx BV+WmJw4pcIH8vyxyd0PjZk2mmhKWzw= X-Proofpoint-GUID: bmM21CzXyb53wCuQGsq_W-lJD1wVK4IA X-Proofpoint-ORIG-GUID: bmM21CzXyb53wCuQGsq_W-lJD1wVK4IA X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-16_06,2026-07-15_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 bulkscore=0 impostorscore=0 suspectscore=0 adultscore=0 priorityscore=1501 malwarescore=0 clxscore=1015 phishscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607160181 Content-Type: text/plain; charset="utf-8" In kvm_s390_pci_aif_enable() two error paths failed to set error code, causing the function to return 0 on failure. It also failed to rollback memory accounting on failure. Fix both by propagating error code on failure and calling unaccount_mem() in the cleanup path. Fixes: 3c5a1b6f0a18 ("KVM: s390: pci: provide routines for enabling/disabli= ng interrupt forwarding") Signed-off-by: Farhan Ali --- arch/s390/kvm/pci.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/arch/s390/kvm/pci.c b/arch/s390/kvm/pci.c index dd17f8a7b473..9fdb6e383b18 100644 --- a/arch/s390/kvm/pci.c +++ b/arch/s390/kvm/pci.c @@ -293,14 +293,17 @@ static int kvm_s390_pci_aif_enable(struct zpci_dev *z= dev, struct zpci_fib *fib, } =20 /* Account for pinned pages, roll back on failure */ - if (account_mem(zdev->kzdev, pcount)) + rc =3D account_mem(zdev->kzdev, pcount); + if (rc) goto unpin2; =20 /* AISB must be allocated before we can fill in GAITE */ mutex_lock(&aift->aift_lock); bit =3D airq_iv_alloc_bit(aift->sbv); - if (bit =3D=3D -1UL) + if (bit =3D=3D -1UL) { + rc =3D -ENOMEM; goto unlock; + } zdev->aisb =3D bit; /* store the summary bit number */ zdev->aibv =3D airq_iv_create(msi_vecs, AIRQ_IV_DATA | AIRQ_IV_BITLOCK | @@ -344,6 +347,8 @@ static int kvm_s390_pci_aif_enable(struct zpci_dev *zde= v, struct zpci_fib *fib, return rc; =20 unlock: + if (pcount > 0) + unaccount_mem(zdev->kzdev, pcount); mutex_unlock(&aift->aift_lock); unpin2: if (fib->fmt0.sum =3D=3D 1) --=20 2.43.0 From nobody Mon Jul 27 20:01:03 2026 Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com [148.163.156.1]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6DD873A0E8A; Thu, 16 Jul 2026 17:52:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.163.156.1 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784224371; cv=none; b=BYZ/jveZQ7TC7NrbfKfIrwVzIQHiHatcUpcBnFExutzS2Vtz3vQ2ZRcKccOitVHnZiOT25sxhRbTohqSag+uJ3Zlh0N4IJ8NnqMCjDxEh/0zWqyaeAahhHWxSn2cyLPsggBYca0nZwjj9TSKANrubYs8iNLRaNNEwbLmbfpOXAk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784224371; c=relaxed/simple; bh=CcqKWYY7ZsYS5qGMWh/UlpC4JOWFday01Sj2aFj3F7Y=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=aFz9tl+gMYxhbFX4SIYZvyFHMpSoIrg4J8uT9EzDcHgmP+xC3NOw5Ft6kfUKHdcxoc1n2pW6PGrbLXOuMC4XMwWsix5l8DNCG0LuT1XLRb/7WXB91cvdEXoc318fPvkxPoyUFfa0Gkt4qlhPGKaZVp36hyP/4UqiG/Ib5xDKOIg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.ibm.com; spf=pass smtp.mailfrom=linux.ibm.com; dkim=pass (2048-bit key) header.d=ibm.com header.i=@ibm.com header.b=Fv49gaB1; arc=none smtp.client-ip=148.163.156.1 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.ibm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.ibm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=ibm.com header.i=@ibm.com header.b="Fv49gaB1" Received: from pps.filterd (m0353729.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66GGfggP1866349; Thu, 16 Jul 2026 17:52:48 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=pp1; bh=+h3hHDJBubYDrmeM2 +O+lmqQ0VlmK2E3XRocYf/CfIg=; b=Fv49gaB1ATb+xi9U2Hcs58kNza+WGhbYG i3+9vg3opD+67peLWps6ySMTxar4lXOWeIvRMZEGoxUQRpMa8evXHGDAItetGRTn WXgdB3Io6NxkVBKkBdAKXihUClap5qz3BPOq2OtPUpJbJ4YCEJzE0GZ1kHbLSO3g 0+JuwIR7cSJV69UFaC7iMVu5tg3gD5qpVuTLDabNjCrSJyLrlMsfGWpJ/yJAhreB mxxVhmQE9ttnkjTWUWwd5V9bNrudG8ZgRDrJbqHV7X94BmnMt8FmdjyfgQdx5r+r mE7duCcp9JJqsUfyONSzAzi5yQZkEYOTf+hQZ7ToR5DkmTGEHV/3w== Received: from ppma11.dal12v.mail.ibm.com (db.9e.1632.ip4.static.sl-reverse.com [50.22.158.219]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4fcv33jtbb-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 16 Jul 2026 17:52:48 +0000 (GMT) Received: from pps.filterd (ppma11.dal12v.mail.ibm.com [127.0.0.1]) by ppma11.dal12v.mail.ibm.com (8.18.1.7/8.18.1.7) with ESMTP id 66GHncA4005511; Thu, 16 Jul 2026 17:52:47 GMT Received: from smtprelay06.dal12v.mail.ibm.com ([172.16.1.8]) by ppma11.dal12v.mail.ibm.com (PPS) with ESMTPS id 4fc2uyduvd-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 16 Jul 2026 17:52:47 +0000 (GMT) Received: from smtpav02.wdc07v.mail.ibm.com (smtpav02.wdc07v.mail.ibm.com [10.39.53.229]) by smtprelay06.dal12v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 66GHqkZb22938290 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 16 Jul 2026 17:52:46 GMT Received: from smtpav02.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 8717A58059; Thu, 16 Jul 2026 17:52:46 +0000 (GMT) Received: from smtpav02.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id B0E4C5805B; Thu, 16 Jul 2026 17:52:45 +0000 (GMT) Received: from IBM-D32RQW3.ibm.com (unknown [9.61.248.47]) by smtpav02.wdc07v.mail.ibm.com (Postfix) with ESMTP; Thu, 16 Jul 2026 17:52:45 +0000 (GMT) From: Farhan Ali To: linux-kernel@vger.kernel.org, linux-s390@vger.kernel.org, kvm@vger.kernel.org Cc: alifm@linux.ibm.com, mjrosato@linux.ibm.com, borntraeger@linux.ibm.com, farman@linux.ibm.com Subject: [PATCH v2 3/4] KVM: s390: pci: Fix NULL dereference on AIBV allocation failure Date: Thu, 16 Jul 2026 10:52:40 -0700 Message-ID: <20260716175241.1039-4-alifm@linux.ibm.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260716175241.1039-1-alifm@linux.ibm.com> References: <20260716175241.1039-1-alifm@linux.ibm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-Spam-Info: AW1haW4tMjYwNzE2MDE4MSBTYWx0ZWRfX9CdIMR5tN62L 3xSlwAVDjau5V4uvx2LVZ9lDWDGmVT3kdIcCrCZbAtbpnO8GO8rZUVNBIefO+ewgYybTZzTdq0W FldRTp9lQCiCnGqgB2OlQmRUUp3RNXQ= X-Authority-Analysis: v=2.4 cv=Mp1iLWae c=1 sm=1 tr=0 ts=6a591a70 cx=c_pps a=aDMHemPKRhS1OARIsFnwRA==:117 a=aDMHemPKRhS1OARIsFnwRA==:17 a=RAioF0-LDSMA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=uAbxVGIbfxUO_5tXvNgY:22 a=VnNF1IyMAAAA:8 a=VpFnpj6RERqEfYQjrFkA:9 X-Proofpoint-GUID: LCQbIG4row-tHaDhqCyhgYQuk2BGyqgd X-Proofpoint-ORIG-GUID: LCQbIG4row-tHaDhqCyhgYQuk2BGyqgd X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzE2MDE4MSBTYWx0ZWRfX904m1TKkYeUV 91qTtz5zDZvbSa/r3ytxiF99aPVqyVDbvVRkr5GpYoS/BidJSoMhPOe5qMqdRlxGST6ulo2lZrk EwyGseJUK96wqR2ZGz6dqoqyI4BSmi+krgbfvzXp9dbrrx1UxwsnEBEp7kQO40Eap4OVSVmMqw7 tSK1/3+DBwTo2YZhZxJmnjAZ6A37l4391T5GSpG3YGK8iAfPPLvOS/XyKLMVyp+B7v0xFoHLe1C C3H5Wher4cqebUj+UwspRA++Jx6dtKRkagSAvPk6mWB7QxpYYLQE6H1ipS4VJvVQQHkyMYkpRj9 amnpMNJgPE+iZAYpIkqCB7YmZfaFus2Tucz+LNl/LBR9TgarG30B8aa1RvZu+2hDiCa91dSgHiq SDNlP4hOL3iNtzVnaiydpnygarZMifLQunX4hxck9EOvZSSbZsKHPw2DTiAqY8lsnwtN+ewkaaC YDYGvv93AarBU6gZr7A== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-16_06,2026-07-15_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 bulkscore=0 spamscore=0 malwarescore=0 lowpriorityscore=0 impostorscore=0 priorityscore=1501 suspectscore=0 clxscore=1015 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607160181 Content-Type: text/plain; charset="utf-8" The airq_iv_create() can return NULL on failure, but the return value was never checked. If it fails, zdev->aibv will be NULL and fail when derefenced in kvm_zpci_set_airq(). Add a NULL check and free the previously allocated AISB bit and zdev->aisb on failure. Fixes: 3c5a1b6f0a18 ("KVM: s390: pci: provide routines for enabling/disabli= ng interrupt forwarding") Signed-off-by: Farhan Ali --- arch/s390/kvm/pci.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/arch/s390/kvm/pci.c b/arch/s390/kvm/pci.c index 9fdb6e383b18..85f4fb5d36b3 100644 --- a/arch/s390/kvm/pci.c +++ b/arch/s390/kvm/pci.c @@ -310,6 +310,11 @@ static int kvm_s390_pci_aif_enable(struct zpci_dev *zd= ev, struct zpci_fib *fib, AIRQ_IV_GUESTVEC, phys_to_virt(fib->fmt0.aibv)); =20 + if (!zdev->aibv) { + rc =3D -ENOMEM; + goto free_aisb; + } + spin_lock_irq(&aift->gait_lock); gaite =3D aift->gait + zdev->aisb; =20 @@ -346,6 +351,9 @@ static int kvm_s390_pci_aif_enable(struct zpci_dev *zde= v, struct zpci_fib *fib, rc =3D kvm_zpci_set_airq(zdev); return rc; =20 +free_aisb: + airq_iv_free_bit(aift->sbv, zdev->aisb); + zdev->aisb =3D 0; unlock: if (pcount > 0) unaccount_mem(zdev->kzdev, pcount); --=20 2.43.0 From nobody Mon Jul 27 20:01:03 2026 Received: from mx0b-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com [148.163.158.5]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 41ABF443AB2; Thu, 16 Jul 2026 17:52:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.163.158.5 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784224372; cv=none; b=im6FUc84Ag/cvODGRBV4JW9bGKMABqZKn8arDW5dJb56+TvmRLhrxe3Xmg/nfHAgSEnZIPixTL3PJmJGsl+LelTu+NGwtCv9XuYhxgDV0jBlFycJk8SosfzwNfVz7jPm5/qta8KtdKrrkakEASDxU936OvMfbeibnxLUFQEoHA4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784224372; c=relaxed/simple; bh=UWdOZNWZXME+2Yz7BGzABGZKWdPgE+RuBS0qOAwoptg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ajgoxjoBRRkWr5Kw3vy4xjUGHBjYnGlbbqQRftJPmGeK67PLrAtbKvAsz5j0++6Ah4MJyeKPXYH/8ZUQdeQxGjlJ4lpvwpqB6MQRw66i/tr3EnCnpJYtlgZmbkaHP2DHrFf0ojFKvGAh98/rLHA4NCBwPiuoFWbbLxNwew7pT9w= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.ibm.com; spf=pass smtp.mailfrom=linux.ibm.com; dkim=pass (2048-bit key) header.d=ibm.com header.i=@ibm.com header.b=W3GF3puw; arc=none smtp.client-ip=148.163.158.5 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.ibm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.ibm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=ibm.com header.i=@ibm.com header.b="W3GF3puw" Received: from pps.filterd (m0356516.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66GGft4H3678372; Thu, 16 Jul 2026 17:52:49 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=pp1; bh=o/jy0bzMaQjq8R5k+ AwwaVrD/J+EDOrQRIcnF5S22bw=; b=W3GF3puw1TzHr4dbJFWSsj/hZx6sab6B9 lHSIi2GowcKon+mrdRZRBVHSIJZ6MzBVuZ/UqFnQG7PEFYf73/uOGU7kqUv2BLzM IOzvKPLFtcsgR9fqW+X01bDp76VN7eXXQduy9yr1ty7Scbue1guLktEpjTdCEoNK jZl/ov4xg1pjAinp+fhSsDGhY4KMnRkCSDyJ6d7peWGDrH1w7lHHTxxKLMhJGekS q3rlqu8TMaTP+BiR8K7CpX/CYCaOh4W67AwT7h8osBMNLkWoKciiSePLsbxirzri ddX9pZcp5YDZBIeI6eISQ0jjj8Fqu9tHYI2ZkcfnOJn0qjgYy8jNw== Received: from ppma23.wdc07v.mail.ibm.com (5d.69.3da9.ip4.static.sl-reverse.com [169.61.105.93]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4fbf2ahgd6-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 16 Jul 2026 17:52:49 +0000 (GMT) Received: from pps.filterd (ppma23.wdc07v.mail.ibm.com [127.0.0.1]) by ppma23.wdc07v.mail.ibm.com (8.18.1.7/8.18.1.7) with ESMTP id 66GHne1l020733; Thu, 16 Jul 2026 17:52:49 GMT Received: from smtprelay07.dal12v.mail.ibm.com ([172.16.1.9]) by ppma23.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4fc1nhp2yg-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 16 Jul 2026 17:52:49 +0000 (GMT) Received: from smtpav02.wdc07v.mail.ibm.com (smtpav02.wdc07v.mail.ibm.com [10.39.53.229]) by smtprelay07.dal12v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 66GHqlJW21496388 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 16 Jul 2026 17:52:47 GMT Received: from smtpav02.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 7E3865805C; Thu, 16 Jul 2026 17:52:47 +0000 (GMT) Received: from smtpav02.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id B0A095805D; Thu, 16 Jul 2026 17:52:46 +0000 (GMT) Received: from IBM-D32RQW3.ibm.com (unknown [9.61.248.47]) by smtpav02.wdc07v.mail.ibm.com (Postfix) with ESMTP; Thu, 16 Jul 2026 17:52:46 +0000 (GMT) From: Farhan Ali To: linux-kernel@vger.kernel.org, linux-s390@vger.kernel.org, kvm@vger.kernel.org Cc: alifm@linux.ibm.com, mjrosato@linux.ibm.com, borntraeger@linux.ibm.com, farman@linux.ibm.com Subject: [PATCH v2 4/4] KVM: s390: pci: Fix resource leak on IRQ registration failure Date: Thu, 16 Jul 2026 10:52:41 -0700 Message-ID: <20260716175241.1039-5-alifm@linux.ibm.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260716175241.1039-1-alifm@linux.ibm.com> References: <20260716175241.1039-1-alifm@linux.ibm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-Spam-Info: AW1haW4tMjYwNzE2MDE4MSBTYWx0ZWRfX7/SJZYxEhnAz HD/70NcLYI+pArOI+X+v04CSjGhdypo6NxSZAMukbtzku3YUH4pvcdpcDkaW2gEvI/SqnlW4QKw HVwQsnWz8mjMz0F8A61X7C7f5pHgkgU= X-Proofpoint-GUID: vK18012Y_ahZg_mt3T3mDGqsAsuckNBP X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzE2MDE4MSBTYWx0ZWRfX+sZAXPTvvOIc chTwV0ATXrEPbmp4YRnaeYPdScGEZOpzkrYZDKACD5KmCqZ/NCASpVRLNi7Bz3ibVLgs6TqeTXm NkN+Ams8GHCsAo6sgeYnpvJesyJ9UeUq+xtx7jpxEb8I2gXoqh/JVkMLj35Heyj6luLqvAxhx29 xz1GKXoxFqXU2LoL3cHipScwP24fMH2A8HG+PPxP3JVNPee616HxTazB5an/V914RFr0ugnk8JC pMpei8qIiM4RNBv/9ZojEgYi+7ypdDYJOc1u0hOFQzPgooeIRJ9eAu+lCy5wF5SQ9/MePMbMoLh UMzbydtyTvx+hKp6KKA2bhmT22hNc0CrnPDZOWFLjcX8Kv7zYiLSq5ax3qbsI03Jw0SpO9Wno/F T27GzamEHI0ulrfiGFx7Cg3zptorvq36OjIhF7NrFA5rrhJT9jrj3E3KO5+oyVgbG6+YGjZL6KA u4zoP9oVaAPusEMc8+g== X-Proofpoint-ORIG-GUID: vK18012Y_ahZg_mt3T3mDGqsAsuckNBP X-Authority-Analysis: v=2.4 cv=PvajqQM3 c=1 sm=1 tr=0 ts=6a591a71 cx=c_pps a=3Bg1Hr4SwmMryq2xdFQyZA==:117 a=3Bg1Hr4SwmMryq2xdFQyZA==:17 a=RAioF0-LDSMA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=Y2IxJ9c9Rs8Kov3niI8_:22 a=VnNF1IyMAAAA:8 a=S3gQTLpqa8hfpVGigeQA:9 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-16_06,2026-07-15_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 malwarescore=0 bulkscore=0 impostorscore=0 adultscore=0 clxscore=1015 lowpriorityscore=0 spamscore=0 suspectscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607160181 Content-Type: text/plain; charset="utf-8" Currently if kvm_zpci_set_airq() fails, kvm_s390_pci_aif_enable() returns the error code but doesn't do any resource cleanup thus leaking resources. Fix this by cleaning up all the resources such as the GAITE, AIBV, AISB and unpinning any pinned pages. Fixes: 3c5a1b6f0a18 ("KVM: s390: pci: provide routines for enabling/disabli= ng interrupt forwarding") Signed-off-by: Farhan Ali --- arch/s390/kvm/pci.c | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/arch/s390/kvm/pci.c b/arch/s390/kvm/pci.c index 85f4fb5d36b3..f85d856b58c6 100644 --- a/arch/s390/kvm/pci.c +++ b/arch/s390/kvm/pci.c @@ -345,11 +345,29 @@ static int kvm_s390_pci_aif_enable(struct zpci_dev *z= dev, struct zpci_fib *fib, /* Save some guest fib values in the host for later use */ zdev->kzdev->fib.fmt0.isc =3D fib->fmt0.isc; zdev->kzdev->fib.fmt0.aibv =3D fib->fmt0.aibv; - mutex_unlock(&aift->aift_lock); =20 /* Issue the clp to setup the irq now */ rc =3D kvm_zpci_set_airq(zdev); - return rc; + if (!rc) { + mutex_unlock(&aift->aift_lock); + return rc; + } + + /* Start cleanup */ + zdev->kzdev->fib.fmt0.isc =3D 0; + zdev->kzdev->fib.fmt0.aibv =3D 0; + + spin_lock_irq(&aift->gait_lock); + gaite->count--; + gaite->aisb =3D 0; + gaite->gisc =3D 0; + gaite->aisbo =3D 0; + gaite->gisa =3D 0; + aift->kzdev[zdev->aisb] =3D NULL; + spin_unlock_irq(&aift->gait_lock); + + airq_iv_release(zdev->aibv); + zdev->aibv =3D NULL; =20 free_aisb: airq_iv_free_bit(aift->sbv, zdev->aisb); --=20 2.43.0