mirror of
https://github.com/torvalds/linux.git
synced 2026-04-26 10:32:25 -04:00
s390/ap/zcrypt: New xflag parameter
Introduce a new flag parameter for the both cprb send functions
zcrypt_send_cprb() and zcrypt_send_ep11_cprb(). This new
xflags parameter ("execution flags") shall be used to provide
execution hints and flags for this crypto request.
There are two flags implemented to be used with these functions:
* ZCRYPT_XFLAG_USERSPACE - indicates to the lower layers that
all the ptrs address userspace. So when construction the ap msg
copy_from_user() is to be used. If this flag is NOT set, the ptrs
address kernel memory and thus memcpy() is to be used.
* ZCRYPT_XFLAG_NOMEMALLOC - indicates that this task must not
allocate memory which may be allocated with io operations.
For the AP bus and zcrypt message layer this means:
* The ZCRYPT_XFLAG_USERSPACE is mapped to the already existing
bool variable "userspace" which is propagated to the zcrypt
proto implementations.
* The ZCRYPT_XFLAG_NOMEMALLOC results in setting the AP flag
AP_MSG_FLAG_MEMPOOL when the AP msg buffer is initialized.
Signed-off-by: Harald Freudenberger <freude@linux.ibm.com>
Reviewed-by: Holger Dengler <dengler@linux.ibm.com>
Link: https://lore.kernel.org/r/20250424133619.16495-6-freude@linux.ibm.com
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
This commit is contained in:
committed by
Heiko Carstens
parent
f91bb85d39
commit
80c20b2c6d
@@ -76,6 +76,13 @@ struct zcrypt_track {
|
||||
#define TRACK_AGAIN_CARD_WEIGHT_PENALTY 1000
|
||||
#define TRACK_AGAIN_QUEUE_WEIGHT_PENALTY 10000
|
||||
|
||||
/*
|
||||
* xflags - to be used with zcrypt_send_cprb() and
|
||||
* zcrypt_send_ep11_cprb() for the xflags parameter.
|
||||
*/
|
||||
#define ZCRYPT_XFLAG_USERSPACE 0x0001 /* data ptrs address userspace */
|
||||
#define ZCRYPT_XFLAG_NOMEMALLOC 0x0002 /* do not allocate memory via kmalloc */
|
||||
|
||||
struct zcrypt_ops {
|
||||
long (*rsa_modexpo)(struct zcrypt_queue *, struct ica_rsa_modexpo *,
|
||||
struct ap_message *);
|
||||
@@ -161,8 +168,8 @@ void zcrypt_msgtype_unregister(struct zcrypt_ops *);
|
||||
struct zcrypt_ops *zcrypt_msgtype(unsigned char *, int);
|
||||
int zcrypt_api_init(void);
|
||||
void zcrypt_api_exit(void);
|
||||
long zcrypt_send_cprb(struct ica_xcRB *xcRB);
|
||||
long zcrypt_send_ep11_cprb(struct ep11_urb *urb);
|
||||
long zcrypt_send_cprb(struct ica_xcRB *xcRB, u32 xflags);
|
||||
long zcrypt_send_ep11_cprb(struct ep11_urb *urb, u32 xflags);
|
||||
void zcrypt_device_status_mask_ext(struct zcrypt_device_status_ext *devstatus);
|
||||
int zcrypt_device_status_ext(int card, int queue,
|
||||
struct zcrypt_device_status_ext *devstatus);
|
||||
|
||||
Reference in New Issue
Block a user