All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2] zcrypt: handle AP Info notification from CHSC SEI command
@ 2019-02-06 21:31 Tony Krowiak
  2019-02-07  9:59 ` Cornelia Huck
  2019-02-07 10:24 ` Sebastian Ott
  0 siblings, 2 replies; 4+ messages in thread
From: Tony Krowiak @ 2019-02-06 21:31 UTC (permalink / raw)
  To: linux-s390, linux-kernel
  Cc: freude, schwidefsky, heiko.carstens, borntraeger, cohuck, pmorel,
	pasic, akrowiak, oberpar, sebott, Tony Krowiak

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 <akrowiak@linux.ibm.com>
Reviewed-by: Halil Pasic <pasic@linux.ibm.com>
Reviewed-by: Sebastian Ott <sebott@linux.ibm.com>
---
 arch/s390/include/asm/ap.h   | 11 +++++++++++
 drivers/s390/cio/chsc.c      | 13 +++++++++++++
 drivers/s390/crypto/ap_bus.c | 11 +++++++++++
 3 files changed, 35 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 <asm/crw.h>
 #include <asm/isc.h>
 #include <asm/ebcdic.h>
+#include <asm/ap.h>
 
 #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 48ea0004a56d..015cd2ba8afe 100644
--- a/drivers/s390/crypto/ap_bus.c
+++ b/drivers/s390/crypto/ap_bus.c
@@ -860,6 +860,17 @@ 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();
+}
+EXPORT_SYMBOL(ap_bus_cfg_chg);
+
+/*
  * 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


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH v2] zcrypt: handle AP Info notification from CHSC SEI command
  2019-02-06 21:31 [PATCH v2] zcrypt: handle AP Info notification from CHSC SEI command Tony Krowiak
@ 2019-02-07  9:59 ` Cornelia Huck
  2019-02-07 10:24 ` Sebastian Ott
  1 sibling, 0 replies; 4+ messages in thread
From: Cornelia Huck @ 2019-02-07  9:59 UTC (permalink / raw)
  To: Tony Krowiak
  Cc: linux-s390, linux-kernel, freude, schwidefsky, heiko.carstens,
	borntraeger, pmorel, pasic, akrowiak, oberpar, sebott

On Wed,  6 Feb 2019 16:31:26 -0500
Tony Krowiak <akrowiak@linux.ibm.com> wrote:

> 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 <akrowiak@linux.ibm.com>
> Reviewed-by: Halil Pasic <pasic@linux.ibm.com>
> Reviewed-by: Sebastian Ott <sebott@linux.ibm.com>
> ---
>  arch/s390/include/asm/ap.h   | 11 +++++++++++
>  drivers/s390/cio/chsc.c      | 13 +++++++++++++
>  drivers/s390/crypto/ap_bus.c | 11 +++++++++++
>  3 files changed, 35 insertions(+)

Reviewed-by: Cornelia Huck <cohuck@redhat.com>

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH v2] zcrypt: handle AP Info notification from CHSC SEI command
  2019-02-06 21:31 [PATCH v2] zcrypt: handle AP Info notification from CHSC SEI command Tony Krowiak
  2019-02-07  9:59 ` Cornelia Huck
@ 2019-02-07 10:24 ` Sebastian Ott
  2019-02-07 18:51   ` Tony Krowiak
  1 sibling, 1 reply; 4+ messages in thread
From: Sebastian Ott @ 2019-02-07 10:24 UTC (permalink / raw)
  To: Tony Krowiak
  Cc: linux-s390, linux-kernel, freude, Martin Schwidefsky,
	Heiko Carstens, borntraeger, cohuck, pmorel, pasic, akrowiak,
	oberpar

On Wed, 6 Feb 2019, Tony Krowiak wrote:
> diff --git a/drivers/s390/crypto/ap_bus.c b/drivers/s390/crypto/ap_bus.c
> +void ap_bus_cfg_chg(void)
> +{
> +	AP_DBF(DBF_INFO, "%s config change, forcing bus rescan\n", __func__);
> +
> +	ap_bus_force_rescan();
> +}
> +EXPORT_SYMBOL(ap_bus_cfg_chg);

There is still no need for the EXPORT_SYMBOL. You only call that function
from chsc.c which is always build in.


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH v2] zcrypt: handle AP Info notification from CHSC SEI command
  2019-02-07 10:24 ` Sebastian Ott
@ 2019-02-07 18:51   ` Tony Krowiak
  0 siblings, 0 replies; 4+ messages in thread
From: Tony Krowiak @ 2019-02-07 18:51 UTC (permalink / raw)
  To: Sebastian Ott
  Cc: linux-s390, linux-kernel, freude, Martin Schwidefsky,
	Heiko Carstens, borntraeger, cohuck, pmorel, pasic, akrowiak,
	oberpar

On 2/7/19 5:24 AM, Sebastian Ott wrote:
> On Wed, 6 Feb 2019, Tony Krowiak wrote:
>> diff --git a/drivers/s390/crypto/ap_bus.c b/drivers/s390/crypto/ap_bus.c
>> +void ap_bus_cfg_chg(void)
>> +{
>> +	AP_DBF(DBF_INFO, "%s config change, forcing bus rescan\n", __func__);
>> +
>> +	ap_bus_force_rescan();
>> +}
>> +EXPORT_SYMBOL(ap_bus_cfg_chg);
> 
> There is still no need for the EXPORT_SYMBOL. You only call that function
> from chsc.c which is always build in.

I verified this, so I will take it out.

> 


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2019-02-07 18:51 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-02-06 21:31 [PATCH v2] zcrypt: handle AP Info notification from CHSC SEI command Tony Krowiak
2019-02-07  9:59 ` Cornelia Huck
2019-02-07 10:24 ` Sebastian Ott
2019-02-07 18:51   ` Tony Krowiak

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.