Patch "crypto: ccree - avoid out-of-range warnings from clang" has been added to the 5.14-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    crypto: ccree - avoid out-of-range warnings from clang

to the 5.14-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     crypto-ccree-avoid-out-of-range-warnings-from-clang.patch
and it can be found in the queue-5.14 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 73454c711fe2aa80e0ca7e905a2a9e478a2e8211
Author: Arnd Bergmann <arnd@xxxxxxxx>
Date:   Mon Sep 27 14:18:03 2021 +0200

    crypto: ccree - avoid out-of-range warnings from clang
    
    [ Upstream commit cfd6fb45cfaf46fa9547421d8da387dc9c7997d4 ]
    
    clang points out inconsistencies in the FIELD_PREP() invocation in
    this driver that result from the 'mask' being a 32-bit value:
    
    drivers/crypto/ccree/cc_driver.c:117:18: error: result of comparison of constant 18446744073709551615 with expression of type 'u32' (aka 'unsigned int') is always false [-Werror,-Wtautological-constant-out-of-range-compare]
            cache_params |= FIELD_PREP(mask, val);
                            ^~~~~~~~~~~~~~~~~~~~~
    include/linux/bitfield.h:94:3: note: expanded from macro 'FIELD_PREP'
                    __BF_FIELD_CHECK(_mask, 0ULL, _val, "FIELD_PREP: ");    \
                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    include/linux/bitfield.h:52:28: note: expanded from macro '__BF_FIELD_CHECK'
                    BUILD_BUG_ON_MSG((_mask) > (typeof(_reg))~0ull,         \
                    ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    
    This does not happen in other places that just pass a constant here.
    
    Work around the warnings by widening the type of the temporary variable.
    
    Fixes: 05c2a705917b ("crypto: ccree - rework cache parameters handling")
    Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>
    Acked-by: Gilad ben-Yossef <gilad@xxxxxxxxxxxxx>
    Signed-off-by: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/crypto/ccree/cc_driver.c b/drivers/crypto/ccree/cc_driver.c
index e599ac6dc162a..790fa9058a36d 100644
--- a/drivers/crypto/ccree/cc_driver.c
+++ b/drivers/crypto/ccree/cc_driver.c
@@ -103,7 +103,8 @@ MODULE_DEVICE_TABLE(of, arm_ccree_dev_of_match);
 static void init_cc_cache_params(struct cc_drvdata *drvdata)
 {
 	struct device *dev = drvdata_to_dev(drvdata);
-	u32 cache_params, ace_const, val, mask;
+	u32 cache_params, ace_const, val;
+	u64 mask;
 
 	/* compute CC_AXIM_CACHE_PARAMS */
 	cache_params = cc_ioread(drvdata, CC_REG(AXIM_CACHE_PARAMS));



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux