Received: by 2002:ac0:946b:0:0:0:0:0 with SMTP id j40csp2723559imj; Mon, 18 Feb 2019 10:58:43 -0800 (PST) X-Google-Smtp-Source: AHgI3IYZuFe6a8zu3pjEosFmafefc7UBYfNAUzxceFSt+EID4WjrZo9ZQYCyWzUdImGE7QMya3nG X-Received: by 2002:a63:5518:: with SMTP id j24mr19933902pgb.208.1550516323152; Mon, 18 Feb 2019 10:58:43 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1550516323; cv=none; d=google.com; s=arc-20160816; b=imVTxDsG/pHQK58Cb2QQhiCzL0+Q9AC5xDgAH1FqpflL5AedeptZqy7Nx9+WnkLivG /KULaRdjsZ9jLTCN0RYbpWi9S+AUhvUj4bFO6BLDLN1DAxOI3VTdv7JcQLoKvADxty4Z OQsgHUxTA001EfDF0+7k40EunoTVQSrK/btHZL4Oxhip49xOTg34lftnrGxsfjlcxBJa Yt/pWJpFgbFD/q2F6LajXZFb5ZahKmRB+UZ7RqmDBqWMGotxe92JlCybSLT6lFHo6i+I 8yBJmNnR/alRnpyTJjlQ9u8AFE3P+W0ArX5Kt+OxOKThHF3wR9GkbyyRCygNb1E7z5x0 FQlw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from; bh=/OONSqmHAx0LVFoHBGh5xK3AbtzFiAIcRmm8ORxAnp4=; b=SW/v6n/LcJPnNchpEZeT482c4Dpd+Rw7Jqn1Gb0/M9wrDsJ0p5aaQ2XrOi+SxEZRhU CzSGol5RDEPTmuKtJmHZCRrLPlXZsvztvi1mSMccMYa8MvttRbNWEpy+OXFQo1r8qRf2 4UvDnQqkDC0+CJTvkQUkGPZJvjzceZnKzHhSj1SOszqsvaH6IH3LPvRtFn4iFz/IiSta wz97rtxbQLKL9bTHMYVhxsrKSJ7NM4zZScWtHHQD1jJykWfdcKsMZQliKS5dM6npO2AI MUfXDFgqLJLKnAQpBjgDlaloA8bQNB9LsdUhdKdtC6lVYJz74aBkrVvT/UNZQ9/WCIfp X6Tw== ARC-Authentication-Results: i=1; mx.google.com; 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=fail (p=NONE sp=NONE dis=NONE) header.from=ibm.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id f23si14582535pfa.228.2019.02.18.10.58.27; Mon, 18 Feb 2019 10:58:43 -0800 (PST) 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; 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=fail (p=NONE sp=NONE dis=NONE) header.from=ibm.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2390886AbfBRRB6 (ORCPT + 99 others); Mon, 18 Feb 2019 12:01:58 -0500 Received: from mx0b-001b2d01.pphosted.com ([148.163.158.5]:44066 "EHLO mx0a-001b2d01.pphosted.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S2387648AbfBRRB4 (ORCPT ); Mon, 18 Feb 2019 12:01:56 -0500 Received: from pps.filterd (m0098420.ppops.net [127.0.0.1]) by mx0b-001b2d01.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id x1IGsbUq186820 for ; Mon, 18 Feb 2019 12:01:54 -0500 Received: from e34.co.us.ibm.com (e34.co.us.ibm.com [32.97.110.152]) by mx0b-001b2d01.pphosted.com with ESMTP id 2qqxatg8e0-1 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=NOT) for ; Mon, 18 Feb 2019 12:01:53 -0500 Received: from localhost by e34.co.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Mon, 18 Feb 2019 17:01:52 -0000 Received: from b03cxnp08026.gho.boulder.ibm.com (9.17.130.18) by e34.co.us.ibm.com (192.168.1.134) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; (version=TLSv1/SSLv3 cipher=AES256-GCM-SHA384 bits=256/256) Mon, 18 Feb 2019 17:01:49 -0000 Received: from b03ledav004.gho.boulder.ibm.com (b03ledav004.gho.boulder.ibm.com [9.17.130.235]) by b03cxnp08026.gho.boulder.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id x1IH1gx425952462 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 18 Feb 2019 17:01:42 GMT Received: from b03ledav004.gho.boulder.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 9961C7806A; Mon, 18 Feb 2019 17:01:42 +0000 (GMT) Received: from b03ledav004.gho.boulder.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id A3F2A78068; Mon, 18 Feb 2019 17:01:40 +0000 (GMT) Received: from akrowiak-ThinkPad-P50.ibm.com (unknown [9.85.134.111]) by b03ledav004.gho.boulder.ibm.com (Postfix) with ESMTPS; Mon, 18 Feb 2019 17:01:40 +0000 (GMT) From: Tony Krowiak To: linux-s390@vger.kernel.org, linux-kernel@vger.kernel.org Cc: freude@de.ibm.com, schwidefsky@de.ibm.com, heiko.carstens@de.ibm.com, borntraeger@de.ibm.com, cohuck@redhat.com, pmorel@linux.vnet.ibm.com, pasic@linux.vnet.ibm.com, akrowiak@linux.vnet.ibm.com, oberpar@linux.ibm.com, sebott@linux.ibm.com, Tony Krowiak Subject: [PATCH v3] zcrypt: handle AP Info notification from CHSC SEI command Date: Mon, 18 Feb 2019 12:01:35 -0500 X-Mailer: git-send-email 2.7.4 X-TM-AS-GCONF: 00 x-cbid: 19021817-0016-0000-0000-00000985B5A3 X-IBM-SpamModules-Scores: X-IBM-SpamModules-Versions: BY=3.00010620; HX=3.00000242; KW=3.00000007; PH=3.00000004; SC=3.00000281; SDB=6.01162912; UDB=6.00607158; IPR=6.00943488; MB=3.00025639; MTD=3.00000008; XFM=3.00000015; UTC=2019-02-18 17:01:50 X-IBM-AV-DETECTION: SAVI=unused REMOTE=unused XFE=unused x-cbparentid: 19021817-0017-0000-0000-000042319FEA Message-Id: <1550509295-1199-1-git-send-email-akrowiak@linux.ibm.com> X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:,, definitions=2019-02-18_13:,, signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1902180126 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The current AP bus implementation periodically polls the AP configuration to detect changes. When the AP configuration is dynamically changed via the SE or an SCLP instruction, the changes will not be reflected to sysfs until the next time the AP configuration is polled. The CHSC architecture provides a Store Event Information (SEI) command to make notification of an AP configuration change. This patch introduces a handler to process notification from the CHSC SEI command by immediately kicking off an AP bus scan-after-event. Signed-off-by: Tony Krowiak Reviewed-by: Halil Pasic Reviewed-by: Sebastian Ott Reviewed-by: Harald Freudenberger Reviewed-by: Cornelia Huck --- arch/s390/include/asm/ap.h | 11 +++++++++++ drivers/s390/cio/chsc.c | 13 +++++++++++++ drivers/s390/crypto/ap_bus.c | 10 ++++++++++ 3 files changed, 34 insertions(+) diff --git a/arch/s390/include/asm/ap.h b/arch/s390/include/asm/ap.h index 1a6a7092d942..e94a0a28b5eb 100644 --- a/arch/s390/include/asm/ap.h +++ b/arch/s390/include/asm/ap.h @@ -360,4 +360,15 @@ static inline struct ap_queue_status ap_dqap(ap_qid_t qid, return reg1; } +/* + * Interface to tell the AP bus code that a configuration + * change has happened. The bus code should at least do + * an ap bus resource rescan. + */ +#if IS_ENABLED(CONFIG_ZCRYPT) +void ap_bus_cfg_chg(void); +#else +static inline void ap_bus_cfg_chg(void){}; +#endif + #endif /* _ASM_S390_AP_H_ */ diff --git a/drivers/s390/cio/chsc.c b/drivers/s390/cio/chsc.c index a0baee25134c..eaf4699be2c5 100644 --- a/drivers/s390/cio/chsc.c +++ b/drivers/s390/cio/chsc.c @@ -24,6 +24,7 @@ #include #include #include +#include #include "css.h" #include "cio.h" @@ -586,6 +587,15 @@ static void chsc_process_sei_scm_avail(struct chsc_sei_nt0_area *sei_area) " failed (rc=%d).\n", ret); } +static void chsc_process_sei_ap_cfg_chg(struct chsc_sei_nt0_area *sei_area) +{ + CIO_CRW_EVENT(3, "chsc: ap config changed\n"); + if (sei_area->rs != 5) + return; + + ap_bus_cfg_chg(); +} + static void chsc_process_sei_nt2(struct chsc_sei_nt2_area *sei_area) { switch (sei_area->cc) { @@ -612,6 +622,9 @@ static void chsc_process_sei_nt0(struct chsc_sei_nt0_area *sei_area) case 2: /* i/o resource accessibility */ chsc_process_sei_res_acc(sei_area); break; + case 3: /* ap config changed */ + chsc_process_sei_ap_cfg_chg(sei_area); + break; case 7: /* channel-path-availability information */ chsc_process_sei_chp_avail(sei_area); break; diff --git a/drivers/s390/crypto/ap_bus.c b/drivers/s390/crypto/ap_bus.c index 5a699746c357..d0d415954142 100644 --- a/drivers/s390/crypto/ap_bus.c +++ b/drivers/s390/crypto/ap_bus.c @@ -861,6 +861,16 @@ void ap_bus_force_rescan(void) EXPORT_SYMBOL(ap_bus_force_rescan); /* +* A config change has happened, force an ap bus rescan. +*/ +void ap_bus_cfg_chg(void) +{ + AP_DBF(DBF_INFO, "%s config change, forcing bus rescan\n", __func__); + + ap_bus_force_rescan(); +} + +/* * hex2bitmap() - parse hex mask string and set bitmap. * Valid strings are "0x012345678" with at least one valid hex number. * Rest of the bitmap to the right is padded with 0. No spaces allowed -- 2.7.4