Commit 913140e2 authored by Arnd Bergmann's avatar Arnd Bergmann Committed by Martin Schwidefsky

s390: zcrypt: initialize variables before_use

The 'func_code' variable gets printed in debug statements without
a prior initialization in multiple functions, as reported when building
with clang:

drivers/s390/crypto/zcrypt_api.c:659:6: warning: variable 'func_code' is used uninitialized whenever 'if' condition is true
      [-Wsometimes-uninitialized]
        if (mex->outputdatalength < mex->inputdatalength) {
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/s390/crypto/zcrypt_api.c:725:29: note: uninitialized use occurs here
        trace_s390_zcrypt_rep(mex, func_code, rc,
                                   ^~~~~~~~~
drivers/s390/crypto/zcrypt_api.c:659:2: note: remove the 'if' if its condition is always false
        if (mex->outputdatalength < mex->inputdatalength) {
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/s390/crypto/zcrypt_api.c:654:24: note: initialize the variable 'func_code' to silence this warning
        unsigned int func_code;
                              ^

Add initializations to all affected code paths to shut up the warning
and make the warning output consistent.
Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
parent 6e042492
...@@ -659,6 +659,7 @@ static long zcrypt_rsa_modexpo(struct ap_perms *perms, ...@@ -659,6 +659,7 @@ static long zcrypt_rsa_modexpo(struct ap_perms *perms,
trace_s390_zcrypt_req(mex, TP_ICARSAMODEXPO); trace_s390_zcrypt_req(mex, TP_ICARSAMODEXPO);
if (mex->outputdatalength < mex->inputdatalength) { if (mex->outputdatalength < mex->inputdatalength) {
func_code = 0;
rc = -EINVAL; rc = -EINVAL;
goto out; goto out;
} }
...@@ -742,6 +743,7 @@ static long zcrypt_rsa_crt(struct ap_perms *perms, ...@@ -742,6 +743,7 @@ static long zcrypt_rsa_crt(struct ap_perms *perms,
trace_s390_zcrypt_req(crt, TP_ICARSACRT); trace_s390_zcrypt_req(crt, TP_ICARSACRT);
if (crt->outputdatalength < crt->inputdatalength) { if (crt->outputdatalength < crt->inputdatalength) {
func_code = 0;
rc = -EINVAL; rc = -EINVAL;
goto out; goto out;
} }
...@@ -951,6 +953,7 @@ static long zcrypt_send_ep11_cprb(struct ap_perms *perms, ...@@ -951,6 +953,7 @@ static long zcrypt_send_ep11_cprb(struct ap_perms *perms,
targets = kcalloc(target_num, sizeof(*targets), GFP_KERNEL); targets = kcalloc(target_num, sizeof(*targets), GFP_KERNEL);
if (!targets) { if (!targets) {
func_code = 0;
rc = -ENOMEM; rc = -ENOMEM;
goto out; goto out;
} }
...@@ -958,6 +961,7 @@ static long zcrypt_send_ep11_cprb(struct ap_perms *perms, ...@@ -958,6 +961,7 @@ static long zcrypt_send_ep11_cprb(struct ap_perms *perms,
uptr = (struct ep11_target_dev __force __user *) xcrb->targets; uptr = (struct ep11_target_dev __force __user *) xcrb->targets;
if (copy_from_user(targets, uptr, if (copy_from_user(targets, uptr,
target_num * sizeof(*targets))) { target_num * sizeof(*targets))) {
func_code = 0;
rc = -EFAULT; rc = -EFAULT;
goto out_free; goto out_free;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment