Code Review
/
kvmfornfv.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
Upgrade to 4.4.50-rt62
[kvmfornfv.git]
/
kernel
/
drivers
/
crypto
/
nx
/
nx-842-powernv.c
diff --git
a/kernel/drivers/crypto/nx/nx-842-powernv.c
b/kernel/drivers/crypto/nx/nx-842-powernv.c
index
9ef51fa
..
6e105e8
100644
(file)
--- a/
kernel/drivers/crypto/nx/nx-842-powernv.c
+++ b/
kernel/drivers/crypto/nx/nx-842-powernv.c
@@
-442,6
+442,14
@@
static int nx842_powernv_function(const unsigned char *in, unsigned int inlen,
(unsigned int)ccw,
(unsigned int)be32_to_cpu(crb->ccw));
(unsigned int)ccw,
(unsigned int)be32_to_cpu(crb->ccw));
+ /*
+ * NX842 coprocessor sets 3rd bit in CR register with XER[S0].
+ * XER[S0] is the integer summary overflow bit which is nothing
+ * to do NX. Since this bit can be set with other return values,
+ * mask this bit.
+ */
+ ret &= ~ICSWX_XERS0;
+
switch (ret) {
case ICSWX_INITIATED:
ret = wait_for_csb(wmem, csb);
switch (ret) {
case ICSWX_INITIATED:
ret = wait_for_csb(wmem, csb);
@@
-454,10
+462,6
@@
static int nx842_powernv_function(const unsigned char *in, unsigned int inlen,
pr_err_ratelimited("ICSWX rejected\n");
ret = -EPROTO;
break;
pr_err_ratelimited("ICSWX rejected\n");
ret = -EPROTO;
break;
- default:
- pr_err_ratelimited("Invalid ICSWX return code %x\n", ret);
- ret = -EPROTO;
- break;
}
if (!ret)
}
if (!ret)