s390/ap_bus: use and-mask instead of a cast
authorHeiko Carstens <heiko.carstens@de.ibm.com>
Sat, 7 Sep 2013 09:07:22 +0000 (11:07 +0200)
committerHeiko Carstens <heiko.carstens@de.ibm.com>
Sat, 7 Sep 2013 09:58:18 +0000 (11:58 +0200)
Let's get rid of another sparse false positive:

drivers/s390/crypto/ap_bus.c:416:64: warning:
  cast truncates bits from constant value (102030405060708 becomes 5060708)

So instead of using a cast let's use an and-mask.
That way sparse remains silent and one doesn't always have to check
if this is a valid warning/bug or just a false positive.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
drivers/s390/crypto/ap_bus.c

index d4174b8..02300dc 100644 (file)
@@ -413,7 +413,7 @@ __ap_send(ap_qid_t qid, unsigned long long psmid, void *msg, size_t length,
        register unsigned long reg2 asm ("2") = (unsigned long) msg;
        register unsigned long reg3 asm ("3") = (unsigned long) length;
        register unsigned long reg4 asm ("4") = (unsigned int) (psmid >> 32);
-       register unsigned long reg5 asm ("5") = (unsigned int) psmid;
+       register unsigned long reg5 asm ("5") = psmid & 0xffffffff;
 
        if (special == 1)
                reg0 |= 0x400000UL;