Re: [v2 PATCH 07/11] crypto: testmgr - Add multibuffer hash testing

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

 



Hi Herbert,

kernel test robot noticed the following build errors:

[auto build test ERROR on herbert-cryptodev-2.6/master]
[also build test ERROR on next-20250214]
[cannot apply to herbert-crypto-2.6/master brauner-vfs/vfs.all linus/master v6.14-rc2]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Herbert-Xu/crypto-ahash-Only-save-callback-and-data-in-ahash_save_req/20250216-150941
base:   https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git master
patch link:    https://lore.kernel.org/r/bb74b3f54e24308bef2def8d25ed917d13590921.1739674648.git.herbert%40gondor.apana.org.au
patch subject: [v2 PATCH 07/11] crypto: testmgr - Add multibuffer hash testing
config: arc-randconfig-001-20250216 (https://download.01.org/0day-ci/archive/20250216/202502161754.b1Fy95ZS-lkp@xxxxxxxxx/config)
compiler: arceb-elf-gcc (GCC) 13.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250216/202502161754.b1Fy95ZS-lkp@xxxxxxxxx/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202502161754.b1Fy95ZS-lkp@xxxxxxxxx/

All errors (new ones prefixed by >>):

   crypto/testmgr.c: In function '__alg_test_hash':
>> crypto/testmgr.c:2072:69: error: passing argument 3 of 'test_hash_vs_generic_impl' from incompatible pointer type [-Werror=incompatible-pointer-types]
    2072 |         err = test_hash_vs_generic_impl(generic_driver, maxkeysize, reqs,
         |                                                                     ^~~~
         |                                                                     |
         |                                                                     struct ahash_request **
   crypto/testmgr.c:1952:60: note: expected 'struct ahash_request *' but argument is of type 'struct ahash_request **'
    1952 |                                      struct ahash_request *req,
         |                                      ~~~~~~~~~~~~~~~~~~~~~~^~~
   cc1: some warnings being treated as errors


vim +/test_hash_vs_generic_impl +2072 crypto/testmgr.c

  1993	
  1994	static int __alg_test_hash(const struct hash_testvec *vecs,
  1995				   unsigned int num_vecs, const char *driver,
  1996				   u32 type, u32 mask,
  1997				   const char *generic_driver, unsigned int maxkeysize)
  1998	{
  1999		struct ahash_request *reqs[HASH_TEST_MAX_MB_MSGS] = {};
  2000		struct crypto_ahash *atfm = NULL;
  2001		struct crypto_shash *stfm = NULL;
  2002		struct shash_desc *desc = NULL;
  2003		struct test_sglist *tsgl = NULL;
  2004		u8 *hashstate = NULL;
  2005		unsigned int statesize;
  2006		unsigned int i;
  2007		int err;
  2008	
  2009		/*
  2010		 * Always test the ahash API.  This works regardless of whether the
  2011		 * algorithm is implemented as ahash or shash.
  2012		 */
  2013	
  2014		atfm = crypto_alloc_ahash(driver, type, mask);
  2015		if (IS_ERR(atfm)) {
  2016			if (PTR_ERR(atfm) == -ENOENT)
  2017				return 0;
  2018			pr_err("alg: hash: failed to allocate transform for %s: %ld\n",
  2019			       driver, PTR_ERR(atfm));
  2020			return PTR_ERR(atfm);
  2021		}
  2022		driver = crypto_ahash_driver_name(atfm);
  2023	
  2024		for (i = 0; i < HASH_TEST_MAX_MB_MSGS; i++) {
  2025			reqs[i] = ahash_request_alloc(atfm, GFP_KERNEL);
  2026			if (!reqs[i]) {
  2027				pr_err("alg: hash: failed to allocate request for %s\n",
  2028				       driver);
  2029				err = -ENOMEM;
  2030				goto out;
  2031			}
  2032		}
  2033	
  2034		/*
  2035		 * If available also test the shash API, to cover corner cases that may
  2036		 * be missed by testing the ahash API only.
  2037		 */
  2038		err = alloc_shash(driver, type, mask, &stfm, &desc);
  2039		if (err)
  2040			goto out;
  2041	
  2042		tsgl = kmalloc(sizeof(*tsgl), GFP_KERNEL);
  2043		if (!tsgl || init_test_sglist(tsgl) != 0) {
  2044			pr_err("alg: hash: failed to allocate test buffers for %s\n",
  2045			       driver);
  2046			kfree(tsgl);
  2047			tsgl = NULL;
  2048			err = -ENOMEM;
  2049			goto out;
  2050		}
  2051	
  2052		statesize = crypto_ahash_statesize(atfm);
  2053		if (stfm)
  2054			statesize = max(statesize, crypto_shash_statesize(stfm));
  2055		hashstate = kmalloc(statesize + TESTMGR_POISON_LEN, GFP_KERNEL);
  2056		if (!hashstate) {
  2057			pr_err("alg: hash: failed to allocate hash state buffer for %s\n",
  2058			       driver);
  2059			err = -ENOMEM;
  2060			goto out;
  2061		}
  2062	
  2063		for (i = 0; i < num_vecs; i++) {
  2064			if (fips_enabled && vecs[i].fips_skip)
  2065				continue;
  2066	
  2067			err = test_hash_vec(&vecs[i], i, reqs, desc, tsgl, hashstate);
  2068			if (err)
  2069				goto out;
  2070			cond_resched();
  2071		}
> 2072		err = test_hash_vs_generic_impl(generic_driver, maxkeysize, reqs,
  2073						desc, tsgl, hashstate);
  2074	out:
  2075		kfree(hashstate);
  2076		if (tsgl) {
  2077			destroy_test_sglist(tsgl);
  2078			kfree(tsgl);
  2079		}
  2080		kfree(desc);
  2081		crypto_free_shash(stfm);
  2082		if (reqs[0]) {
  2083			ahash_request_set_callback(reqs[0], 0, NULL, NULL);
  2084			for (i = 1; i < HASH_TEST_MAX_MB_MSGS && reqs[i]; i++)
  2085				ahash_request_chain(reqs[i], reqs[0]);
  2086			ahash_request_free(reqs[0]);
  2087		}
  2088		crypto_free_ahash(atfm);
  2089		return err;
  2090	}
  2091	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki




[Index of Archives]     [Kernel]     [Gnu Classpath]     [Gnu Crypto]     [DM Crypt]     [Netfilter]     [Bugtraq]
  Powered by Linux