[PATCH v4 16/24] s390/zcrypt: Propagate xflags argument with cca_get_info()

Harald Freudenberger
2025-04-09T14:03:24Z

Propagate the xflags argument from the cca_get_info()
caller down to the lower level functions for proper
memory allocation hints.

Signed-off-by: Harald Freudenberger <freude@linux.ibm.com>
---
drivers/s390/crypto/zcrypt_ccamisc.c | 11 ++++++-----
drivers/s390/crypto/zcrypt_ccamisc.h | 2 +-
drivers/s390/crypto/zcrypt_cex4.c | 4 ++--
3 files changed, 9 insertions(+), 8 deletions(-)

diff --git a/drivers/s390/crypto/zcrypt_ccamisc.c b/drivers/s390/crypto/zcrypt_ccamisc.c
index 88f3c7708c2a..2257410110f5 100644
--- a/drivers/s390/crypto/zcrypt_ccamisc.c
+++ b/drivers/s390/crypto/zcrypt_ccamisc.c
@@ -1636,14 +1636,14 @@ EXPORT_SYMBOL(cca_query_crypto_facility);
/*
* Fetch cca_info values via query_crypto_facility from adapter.
*/
-static int fetch_cca_info(u16 cardnr, u16 domain, struct cca_info *ci)
+static int fetch_cca_info(u16 cardnr, u16 domain,
+ struct cca_info *ci, u32 xflags)
{
void *mem;
int rc, found = 0;
size_t rlen, vlen;
u8 *rarray, *varray;
struct zcrypt_device_status_ext devstat;
- u32 xflags = 0;

memset(ci, 0, sizeof(*ci));

@@ -1717,9 +1717,9 @@ static int fetch_cca_info(u16 cardnr, u16 domain, struct cca_info *ci)
/*
* Fetch cca information about a CCA queue.
*/
-int cca_get_info(u16 card, u16 dom, struct cca_info *ci)
+int cca_get_info(u16 card, u16 dom, struct cca_info *ci, u32 xflags)
{
- return fetch_cca_info(card, dom, ci);
+ return fetch_cca_info(card, dom, ci, xflags);
}
EXPORT_SYMBOL(cca_get_info);

@@ -1730,6 +1730,7 @@ int cca_findcard2(u32 *apqns, u32 *nr_apqns, u16 cardnr, u16 domain,
int i, card, dom, curmatch, oldmatch;
struct cca_info ci;
u32 _nr_apqns = 0;
+ u32 xflags = 0;

/* occupy the device status memory */
mutex_lock(&dev_status_mem_mutex);
@@ -1758,7 +1759,7 @@ int cca_findcard2(u32 *apqns, u32 *nr_apqns, u16 cardnr, u16 domain,
if (domain != 0xFFFF && dom != domain)
continue;
/* get cca info on this apqn */
- if (cca_get_info(card, dom, &ci))
+ if (cca_get_info(card, dom, &ci, xflags))
continue;
/* current master key needs to be valid */
if (mktype == AES_MK_SET && ci.cur_aes_mk_state != '2')
diff --git a/drivers/s390/crypto/zcrypt_ccamisc.h b/drivers/s390/crypto/zcrypt_ccamisc.h
index ca41a675dd3b..38d69aceefe6 100644
--- a/drivers/s390/crypto/zcrypt_ccamisc.h
+++ b/drivers/s390/crypto/zcrypt_ccamisc.h
@@ -255,7 +255,7 @@ struct cca_info {
/*
* Fetch cca information about an CCA queue.
*/
-int cca_get_info(u16 card, u16 dom, struct cca_info *ci);
+int cca_get_info(u16 card, u16 dom, struct cca_info *ci, u32 xflags);

int zcrypt_ccamisc_init(void);
void zcrypt_ccamisc_exit(void);
diff --git a/drivers/s390/crypto/zcrypt_cex4.c b/drivers/s390/crypto/zcrypt_cex4.c
index ecf1fcc6315e..84cbcbab2741 100644
--- a/drivers/s390/crypto/zcrypt_cex4.c
+++ b/drivers/s390/crypto/zcrypt_cex4.c
@@ -85,7 +85,7 @@ static ssize_t cca_serialnr_show(struct device *dev,
memset(&ci, 0, sizeof(ci));

if (ap_domain_index >= 0)
- cca_get_info(ac->id, ap_domain_index, &ci);
+ cca_get_info(ac->id, ap_domain_index, &ci, 0);

return sysfs_emit(buf, "%s\n", ci.serial);
}
@@ -119,7 +119,7 @@ static ssize_t cca_mkvps_show(struct device *dev,

cca_get_info(AP_QID_CARD(zq->queue->qid),
AP_QID_QUEUE(zq->queue->qid),
- &ci);
+ &ci, 0);

if (ci.new_aes_mk_state >= '1' && ci.new_aes_mk_state <= '3')
n += sysfs_emit_at(buf, n, "AES NEW: %s 0x%016llx\n",
--
2.43.0