Skip to content

Commit 598bbef

Browse files
hfreudeVasily Gorbik
authored andcommitted
s390/zcrypt: Enable AUTOSEL_DOM for CCA serialnr sysfs attribute
The serialnr sysfs attribute for CCA cards when queried always used the default domain for sending the request down to the card. If for any reason exactly this default domain is disabled then the attribute code fails to retrieve the CCA info and the sysfs entry shows an empty string. Works as designed but the serial number is a card attribute and thus it does not matter which domain is used for the query. So if there are other domains on this card available, these could be used. So extend the code to use AUTOSEL_DOM for the domain value to address any online domain within the card for querying the cca info and thus show the serialnr as long as there is one domain usable regardless of the default domain setting. Fixes: 8f291eb ("s390/zcrypt: enable card/domain autoselect on ep11 cprbs") Suggested-by: Ingo Franzki <ifranzki@linux.ibm.com> Signed-off-by: Harald Freudenberger <freude@linux.ibm.com> Reviewed-by: Ingo Franzki <ifranzki@linux.ibm.com> Cc: stable@vger.kernel.org Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
1 parent 75aa996 commit 598bbef

2 files changed

Lines changed: 8 additions & 7 deletions

File tree

drivers/s390/crypto/zcrypt_ccamisc.c

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1639,11 +1639,13 @@ int cca_get_info(u16 cardnr, u16 domain, struct cca_info *ci, u32 xflags)
16391639

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

1642-
/* get first info from zcrypt device driver about this apqn */
1643-
rc = zcrypt_device_status_ext(cardnr, domain, &devstat);
1644-
if (rc)
1645-
return rc;
1646-
ci->hwtype = devstat.hwtype;
1642+
/* if specific domain given, fetch status and hw info for this apqn */
1643+
if (domain != AUTOSEL_DOM) {
1644+
rc = zcrypt_device_status_ext(cardnr, domain, &devstat);
1645+
if (rc)
1646+
return rc;
1647+
ci->hwtype = devstat.hwtype;
1648+
}
16471649

16481650
/*
16491651
* Prep memory for rule array and var array use.

drivers/s390/crypto/zcrypt_cex4.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,8 +85,7 @@ static ssize_t cca_serialnr_show(struct device *dev,
8585

8686
memset(&ci, 0, sizeof(ci));
8787

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

9190
return sysfs_emit(buf, "%s\n", ci.serial);
9291
}

0 commit comments

Comments
 (0)