Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp2531149pxj; Mon, 10 May 2021 05:18:21 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyyjo2Srohaarp4TQePVKvTHDPwjob5jjT0n9C5ge1LACeDGoZBeSbcJPF6KsnYik2mi4P3 X-Received: by 2002:a17:907:2d0c:: with SMTP id gs12mr25216499ejc.173.1620649101234; Mon, 10 May 2021 05:18:21 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1620649101; cv=none; d=google.com; s=arc-20160816; b=YKB9n5ns9plwFi92SSrft1zbSxUFOEsxi9dksGGP4vjl8hqMS0AyQeJuPOXJP3/bUS 0P211imrDLQPbD+HccfrK/38gGqTgpntBrUrkVd5nfeLIL7bB2diwS8/JGqcp/XrRLpx 5KmY4OxkZtnTZspq/qy4RUm6elLYbNKwqoYgo/dIT8EBH80QlhGN8rNWzffxnflU896q jKmbiPXXZEjX+RIHGtb0+l8TyLoRivs+7cRQ68b6ViyowzsaiOUdCGDXYmWwC3No5FZF Gg2WgI3qswpIHrGK1AuvhHZUjuzNJ0zUk+TL8rwzlEBor+Rio5K2ZMVX3vAen2orxOQe 3UCA== 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 :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=IlWcA3L+4rS5yn5prxgTfYvGdH0VbaPys7oQN0GAyBA=; b=I2PiGmz4mkFtlLCLY15XB6NQbkMByZdLE7tmLYybeN+L4RKMbZsmA6R7DMp31tdmu+ Jq7l51c8LEYTIhwnyTyt2mAdbHxvro9K3SrHFw3ouQdErZfsAbSlTCs3+/Mf15wkeRjc 0PAd5Sf06rdENCEZXmw7a0hPa85J94ln+Hq0RxPC/4uT/Fvl6KtlydJoKbdN3gLTnloF s5H7GYQw2tXFa81CkhLpmLFlFT0U4g+9uV0z09RHxJ38pbhnW1T5Yt7jxELV8L/3ZZ4u v5pFbMRY8wjdtv9mKWXlkG1oNf6ML/6BbM64zMAus0rgMNjIdK/zCYM1/sJBWe/Ucnhx /EaQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=DInUEACo; 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=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id d23si13330124edv.568.2021.05.10.05.17.57; Mon, 10 May 2021 05:18:21 -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=@linuxfoundation.org header.s=korg header.b=DInUEACo; 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=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1344249AbhEJMP1 (ORCPT + 99 others); Mon, 10 May 2021 08:15:27 -0400 Received: from mail.kernel.org ([198.145.29.99]:45870 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236036AbhEJLHT (ORCPT ); Mon, 10 May 2021 07:07:19 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id E777D61959; Mon, 10 May 2021 10:57:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1620644262; bh=7hBYsmq3KtSYF2pUFkYJxrX++i1XE/CS+Ns8JFKTeL4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=DInUEACoXksfxg7j/eJLVQvfBSqH7Z4ghH8DMTBQl2U6W+5ke3yHzb9twSsVj7GSx G1i1joJJw4K27SyICUn7amsnPl+eDD10LOeCxvz1qLLouYs/XMInGnYiiKnEv0v3/B rbTmEaeLU8eMIrxlG1Up4SID/6/2PQygpPnb3MzI= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Marc Hartmayer , Harald Freudenberger , Julian Wiedmann , Heiko Carstens Subject: [PATCH 5.12 011/384] s390/zcrypt: fix zcard and zqueue hot-unplug memleak Date: Mon, 10 May 2021 12:16:40 +0200 Message-Id: <20210510102015.251040265@linuxfoundation.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210510102014.849075526@linuxfoundation.org> References: <20210510102014.849075526@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Harald Freudenberger commit 70fac8088cfad9f3b379c9082832b4d7532c16c2 upstream. Tests with kvm and a kmemdebug kernel showed, that on hot unplug the zcard and zqueue structs for the unplugged card or queue are not properly freed because of a mismatch with get/put for the embedded kref counter. This fix now adjusts the handling of the kref counters. With init the kref counter starts with 1. This initial value needs to drop to zero with the unregister of the card or queue to trigger the release and free the object. Fixes: 29c2680fd2bf ("s390/ap: fix ap devices reference counting") Reported-by: Marc Hartmayer Signed-off-by: Harald Freudenberger Cc: stable@vger.kernel.org Reviewed-by: Julian Wiedmann Signed-off-by: Heiko Carstens Signed-off-by: Greg Kroah-Hartman --- drivers/s390/crypto/zcrypt_card.c | 1 + drivers/s390/crypto/zcrypt_queue.c | 1 + 2 files changed, 2 insertions(+) --- a/drivers/s390/crypto/zcrypt_card.c +++ b/drivers/s390/crypto/zcrypt_card.c @@ -192,5 +192,6 @@ void zcrypt_card_unregister(struct zcryp spin_unlock(&zcrypt_list_lock); sysfs_remove_group(&zc->card->ap_dev.device.kobj, &zcrypt_card_attr_group); + zcrypt_card_put(zc); } EXPORT_SYMBOL(zcrypt_card_unregister); --- a/drivers/s390/crypto/zcrypt_queue.c +++ b/drivers/s390/crypto/zcrypt_queue.c @@ -223,5 +223,6 @@ void zcrypt_queue_unregister(struct zcry sysfs_remove_group(&zq->queue->ap_dev.device.kobj, &zcrypt_queue_attr_group); zcrypt_card_put(zc); + zcrypt_queue_put(zq); } EXPORT_SYMBOL(zcrypt_queue_unregister);