lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date:   Wed, 10 Nov 2021 19:32:16 +0800
From:   kernel test robot <lkp@...el.com>
To:     Yihao Han <hanyihao@...o.com>,
        Randy Dunlap <rdunlap@...radead.org>,
        Andrew Morton <akpm@...ux-foundation.org>,
        Bhaskar Chowdhury <unixbhaskar@...il.com>,
        linux-kernel@...r.kernel.org
Cc:     kbuild-all@...ts.01.org,
        Linux Memory Management List <linux-mm@...ck.org>,
        kernel@...o.com
Subject: Re: [PATCH] lib/bch:using swap() instead of tmp variable

Hi Yihao,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on linus/master]
[also build test ERROR on v5.15 next-20211110]
[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]

url:    https://github.com/0day-ci/linux/commits/Yihao-Han/lib-bch-using-swap-instead-of-tmp-variable/20211109-143502
base:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git d2f38a3c6507b2520101f9a3807ed98f1bdc545a
config: arc-allyesconfig (attached as .config)
compiler: arceb-elf-gcc (GCC) 11.2.0
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://github.com/0day-ci/linux/commit/67120a42a5dc4e4a08d998ae4dc41d9bf31946b5
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Yihao-Han/lib-bch-using-swap-instead-of-tmp-variable/20211109-143502
        git checkout 67120a42a5dc4e4a08d998ae4dc41d9bf31946b5
        # save the attached .config to linux build tree
        mkdir build_dir
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=arc SHELL=/bin/bash

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@...el.com>

All errors (new ones prefixed by >>):

   lib/bch.c: In function 'solve_linear_system':
>> lib/bch.c:525:25: error: 'tmp' undeclared (first use in this function); did you mean 'tm'?
     525 |                         tmp = rows[p];
         |                         ^~~
         |                         tm
   lib/bch.c:525:25: note: each undeclared identifier is reported only once for each function it appears in


vim +525 lib/bch.c

437aa565e265677 Ivan Djelic 2011-03-11  494  
437aa565e265677 Ivan Djelic 2011-03-11  495  /*
437aa565e265677 Ivan Djelic 2011-03-11  496   * solve a m x m linear system in GF(2) with an expected number of solutions,
437aa565e265677 Ivan Djelic 2011-03-11  497   * and return the number of found solutions
437aa565e265677 Ivan Djelic 2011-03-11  498   */
437aa565e265677 Ivan Djelic 2011-03-11  499  static int solve_linear_system(struct bch_control *bch, unsigned int *rows,
437aa565e265677 Ivan Djelic 2011-03-11  500  			       unsigned int *sol, int nsol)
437aa565e265677 Ivan Djelic 2011-03-11  501  {
437aa565e265677 Ivan Djelic 2011-03-11  502  	const int m = GF_M(bch);
67120a42a5dc4e4 Yihao Han   2021-11-08  503  	unsigned int mask;
02361bc7788852f Kees Cook   2018-05-31  504  	int rem, c, r, p, k, param[BCH_MAX_M];
437aa565e265677 Ivan Djelic 2011-03-11  505  
437aa565e265677 Ivan Djelic 2011-03-11  506  	k = 0;
437aa565e265677 Ivan Djelic 2011-03-11  507  	mask = 1 << m;
437aa565e265677 Ivan Djelic 2011-03-11  508  
437aa565e265677 Ivan Djelic 2011-03-11  509  	/* Gaussian elimination */
437aa565e265677 Ivan Djelic 2011-03-11  510  	for (c = 0; c < m; c++) {
437aa565e265677 Ivan Djelic 2011-03-11  511  		rem = 0;
437aa565e265677 Ivan Djelic 2011-03-11  512  		p = c-k;
437aa565e265677 Ivan Djelic 2011-03-11  513  		/* find suitable row for elimination */
437aa565e265677 Ivan Djelic 2011-03-11  514  		for (r = p; r < m; r++) {
437aa565e265677 Ivan Djelic 2011-03-11  515  			if (rows[r] & mask) {
437aa565e265677 Ivan Djelic 2011-03-11  516  				if (r != p) {
67120a42a5dc4e4 Yihao Han   2021-11-08  517  					swap(rows[r], rows[p]);
437aa565e265677 Ivan Djelic 2011-03-11  518  				}
437aa565e265677 Ivan Djelic 2011-03-11  519  				rem = r+1;
437aa565e265677 Ivan Djelic 2011-03-11  520  				break;
437aa565e265677 Ivan Djelic 2011-03-11  521  			}
437aa565e265677 Ivan Djelic 2011-03-11  522  		}
437aa565e265677 Ivan Djelic 2011-03-11  523  		if (rem) {
437aa565e265677 Ivan Djelic 2011-03-11  524  			/* perform elimination on remaining rows */
437aa565e265677 Ivan Djelic 2011-03-11 @525  			tmp = rows[p];
437aa565e265677 Ivan Djelic 2011-03-11  526  			for (r = rem; r < m; r++) {
437aa565e265677 Ivan Djelic 2011-03-11  527  				if (rows[r] & mask)
437aa565e265677 Ivan Djelic 2011-03-11  528  					rows[r] ^= tmp;
437aa565e265677 Ivan Djelic 2011-03-11  529  			}
437aa565e265677 Ivan Djelic 2011-03-11  530  		} else {
437aa565e265677 Ivan Djelic 2011-03-11  531  			/* elimination not needed, store defective row index */
437aa565e265677 Ivan Djelic 2011-03-11  532  			param[k++] = c;
437aa565e265677 Ivan Djelic 2011-03-11  533  		}
437aa565e265677 Ivan Djelic 2011-03-11  534  		mask >>= 1;
437aa565e265677 Ivan Djelic 2011-03-11  535  	}
437aa565e265677 Ivan Djelic 2011-03-11  536  	/* rewrite system, inserting fake parameter rows */
437aa565e265677 Ivan Djelic 2011-03-11  537  	if (k > 0) {
437aa565e265677 Ivan Djelic 2011-03-11  538  		p = k;
437aa565e265677 Ivan Djelic 2011-03-11  539  		for (r = m-1; r >= 0; r--) {
437aa565e265677 Ivan Djelic 2011-03-11  540  			if ((r > m-1-k) && rows[r])
437aa565e265677 Ivan Djelic 2011-03-11  541  				/* system has no solution */
437aa565e265677 Ivan Djelic 2011-03-11  542  				return 0;
437aa565e265677 Ivan Djelic 2011-03-11  543  
437aa565e265677 Ivan Djelic 2011-03-11  544  			rows[r] = (p && (r == param[p-1])) ?
437aa565e265677 Ivan Djelic 2011-03-11  545  				p--, 1u << (m-r) : rows[r-p];
437aa565e265677 Ivan Djelic 2011-03-11  546  		}
437aa565e265677 Ivan Djelic 2011-03-11  547  	}
437aa565e265677 Ivan Djelic 2011-03-11  548  
437aa565e265677 Ivan Djelic 2011-03-11  549  	if (nsol != (1 << k))
437aa565e265677 Ivan Djelic 2011-03-11  550  		/* unexpected number of solutions */
437aa565e265677 Ivan Djelic 2011-03-11  551  		return 0;
437aa565e265677 Ivan Djelic 2011-03-11  552  
437aa565e265677 Ivan Djelic 2011-03-11  553  	for (p = 0; p < nsol; p++) {
437aa565e265677 Ivan Djelic 2011-03-11  554  		/* set parameters for p-th solution */
437aa565e265677 Ivan Djelic 2011-03-11  555  		for (c = 0; c < k; c++)
437aa565e265677 Ivan Djelic 2011-03-11  556  			rows[param[c]] = (rows[param[c]] & ~1)|((p >> c) & 1);
437aa565e265677 Ivan Djelic 2011-03-11  557  
437aa565e265677 Ivan Djelic 2011-03-11  558  		/* compute unique solution */
437aa565e265677 Ivan Djelic 2011-03-11  559  		tmp = 0;
437aa565e265677 Ivan Djelic 2011-03-11  560  		for (r = m-1; r >= 0; r--) {
437aa565e265677 Ivan Djelic 2011-03-11  561  			mask = rows[r] & (tmp|1);
437aa565e265677 Ivan Djelic 2011-03-11  562  			tmp |= parity(mask) << (m-r);
437aa565e265677 Ivan Djelic 2011-03-11  563  		}
437aa565e265677 Ivan Djelic 2011-03-11  564  		sol[p] = tmp >> 1;
437aa565e265677 Ivan Djelic 2011-03-11  565  	}
437aa565e265677 Ivan Djelic 2011-03-11  566  	return nsol;
437aa565e265677 Ivan Djelic 2011-03-11  567  }
437aa565e265677 Ivan Djelic 2011-03-11  568  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

Download attachment ".config.gz" of type "application/gzip" (70007 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ