Hi Yael, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on crypto/master] [also build test WARNING on v4.19-rc8 next-20181018] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/Yael-Chemla/crypto-ccree-add-SM3-support/20181019-042354 base: https://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6.git master config: i386-randconfig-x019-201841 (attached as .config) compiler: gcc-7 (Debian 7.3.0-1) 7.3.0 reproduce: # save the attached .config to linux build tree make ARCH=i386 All warnings (new ones prefixed by >>): drivers/crypto/ccree/cc_hash.c:1729:17: error: 'CC_HW_REV_713' undeclared here (not in a function); did you mean 'CC_HW_REV_712'? .min_hw_rev = CC_HW_REV_713, ^~~~~~~~~~~~~ CC_HW_REV_712 drivers/crypto/ccree/cc_hash.c: In function 'cc_init_hash_sram': drivers/crypto/ccree/cc_hash.c:1832:40: warning: comparison between pointer and integer bool sm3_supported = (drvdata->hw_rev >= CC_HW_REV_713); ^~ In file included from include/linux/kernel.h:10:0, from drivers/crypto/ccree/cc_hash.c:4: drivers/crypto/ccree/cc_hash.c: In function 'cc_hash_alloc': drivers/crypto/ccree/cc_hash.c:1975:22: warning: comparison between pointer and integer if (drvdata->hw_rev >= CC_HW_REV_713) ^ include/linux/compiler.h:58:30: note: in definition of macro '__trace_if' if (__builtin_constant_p(!!(cond)) ? !!(cond) : \ ^~~~ >> drivers/crypto/ccree/cc_hash.c:1975:2: note: in expansion of macro 'if' if (drvdata->hw_rev >= CC_HW_REV_713) ^~ drivers/crypto/ccree/cc_hash.c:1975:22: warning: comparison between pointer and integer if (drvdata->hw_rev >= CC_HW_REV_713) ^ include/linux/compiler.h:58:42: note: in definition of macro '__trace_if' if (__builtin_constant_p(!!(cond)) ? !!(cond) : \ ^~~~ >> drivers/crypto/ccree/cc_hash.c:1975:2: note: in expansion of macro 'if' if (drvdata->hw_rev >= CC_HW_REV_713) ^~ drivers/crypto/ccree/cc_hash.c:1975:22: warning: comparison between pointer and integer if (drvdata->hw_rev >= CC_HW_REV_713) ^ include/linux/compiler.h:69:16: note: in definition of macro '__trace_if' ______r = !!(cond); \ ^~~~ >> drivers/crypto/ccree/cc_hash.c:1975:2: note: in expansion of macro 'if' if (drvdata->hw_rev >= CC_HW_REV_713) ^~ drivers/crypto/ccree/cc_hash.c: In function 'cc_larval_digest_addr': drivers/crypto/ccree/cc_hash.c:2252:41: warning: comparison between pointer and integer bool sm3_supported = (_drvdata->hw_rev >= CC_HW_REV_713); ^~ vim +/if +1975 drivers/crypto/ccree/cc_hash.c 1952 1953 int cc_hash_alloc(struct cc_drvdata *drvdata) 1954 { 1955 struct cc_hash_handle *hash_handle; 1956 cc_sram_addr_t sram_buff; 1957 u32 sram_size_to_alloc; 1958 struct device *dev = drvdata_to_dev(drvdata); 1959 int rc = 0; 1960 int alg; 1961 1962 hash_handle = kzalloc(sizeof(*hash_handle), GFP_KERNEL); 1963 if (!hash_handle) 1964 return -ENOMEM; 1965 1966 INIT_LIST_HEAD(&hash_handle->hash_list); 1967 drvdata->hash_handle = hash_handle; 1968 1969 sram_size_to_alloc = sizeof(digest_len_init) + 1970 sizeof(md5_init) + 1971 sizeof(sha1_init) + 1972 sizeof(sha224_init) + 1973 sizeof(sha256_init); 1974 > 1975 if (drvdata->hw_rev >= CC_HW_REV_713) 1976 sram_size_to_alloc += sizeof(sm3_init); 1977 1978 if (drvdata->hw_rev >= CC_HW_REV_712) 1979 sram_size_to_alloc += sizeof(digest_len_sha512_init) + 1980 sizeof(sha384_init) + sizeof(sha512_init); 1981 1982 sram_buff = cc_sram_alloc(drvdata, sram_size_to_alloc); 1983 if (sram_buff == NULL_SRAM_ADDR) { 1984 dev_err(dev, "SRAM pool exhausted\n"); 1985 rc = -ENOMEM; 1986 goto fail; 1987 } 1988 1989 /* The initial digest-len offset */ 1990 hash_handle->digest_len_sram_addr = sram_buff; 1991 1992 /*must be set before the alg registration as it is being used there*/ 1993 rc = cc_init_hash_sram(drvdata); 1994 if (rc) { 1995 dev_err(dev, "Init digest CONST failed (rc=%d)\n", rc); 1996 goto fail; 1997 } 1998 1999 /* ahash registration */ 2000 for (alg = 0; alg < ARRAY_SIZE(driver_hash); alg++) { 2001 struct cc_hash_alg *t_alg; 2002 int hw_mode = driver_hash[alg].hw_mode; 2003 2004 /* We either support both HASH and MAC or none */ 2005 if (driver_hash[alg].min_hw_rev > drvdata->hw_rev) 2006 continue; 2007 if (driver_hash[alg].is_mac) { 2008 /* register hmac version */ 2009 t_alg = cc_alloc_hash_alg(&driver_hash[alg], dev, true); 2010 if (IS_ERR(t_alg)) { 2011 rc = PTR_ERR(t_alg); 2012 dev_err(dev, "%s alg allocation failed\n", 2013 driver_hash[alg].driver_name); 2014 goto fail; 2015 } 2016 t_alg->drvdata = drvdata; 2017 2018 rc = crypto_register_ahash(&t_alg->ahash_alg); 2019 if (rc) { 2020 dev_err(dev, "%s alg registration failed\n", 2021 driver_hash[alg].driver_name); 2022 kfree(t_alg); 2023 goto fail; 2024 } else { 2025 list_add_tail(&t_alg->entry, 2026 &hash_handle->hash_list); 2027 } 2028 } 2029 if (hw_mode == DRV_CIPHER_XCBC_MAC || 2030 hw_mode == DRV_CIPHER_CMAC) 2031 continue; 2032 2033 /* register hash version */ 2034 t_alg = cc_alloc_hash_alg(&driver_hash[alg], dev, false); 2035 if (IS_ERR(t_alg)) { 2036 rc = PTR_ERR(t_alg); 2037 dev_err(dev, "%s alg allocation failed\n", 2038 driver_hash[alg].driver_name); 2039 goto fail; 2040 } 2041 t_alg->drvdata = drvdata; 2042 2043 rc = crypto_register_ahash(&t_alg->ahash_alg); 2044 if (rc) { 2045 dev_err(dev, "%s alg registration failed\n", 2046 driver_hash[alg].driver_name); 2047 kfree(t_alg); 2048 goto fail; 2049 } else { 2050 list_add_tail(&t_alg->entry, &hash_handle->hash_list); 2051 } 2052 } 2053 2054 return 0; 2055 2056 fail: 2057 kfree(drvdata->hash_handle); 2058 drvdata->hash_handle = NULL; 2059 return rc; 2060 } 2061 --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation