[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <202111101939.NkDoXl6y-lkp@intel.com>
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