s390/pkey: move pckmo subfunction available checks away from module init
authorHarald Freudenberger <freude@linux.ibm.com>
Fri, 19 Oct 2018 08:36:28 +0000 (10:36 +0200)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Mon, 22 Oct 2018 06:37:46 +0000 (08:37 +0200)
commitf822ad2c2c03af85a531c5174136b6d5b1abc566
tree7920d436f4b88071942e684051500d0218b3a052
parentcf3dbe5dacb3a95d497ace9c714306d17cb05b11
s390/pkey: move pckmo subfunction available checks away from module init

The init of the pkey module currently fails if the pckmo instruction
or the subfunctions are not available.  However, customers may
restrict their LPAR to switch off exactly these functions and work
with secure key only. So it is a valid case to have the pkey module
active and use it for secure key to protected key transfer only.

This patch moves the pckmo subfunction check from the pkey module init
function into the internal function where the pckmo instruction is
called. So now only on invocation of the pckmo instruction the check
for the required subfunction is done. If not available EOPNOTSUPP is
returned to the caller.

The check for having the pckmo instruction available is still done
during module init. This instruction came in with MSA 3 together with
the basic set of kmc instructions needed to work with protected keys.

Signed-off-by: Harald Freudenberger <freude@linux.ibm.com>
Reviewed-by: Ingo Franzki <ifranzki@linux.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
drivers/s390/crypto/pkey_api.c