All of lore.kernel.org
 help / color / mirror / Atom feed
* [android-common:mirror-chromeos-5.10-arcvm 6/6] fs/erofs/decompressor_lzma.c:266:12: error: implicit declaration of function 'xz_dec_microlzma_run'
@ 2026-03-04  5:09 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2026-03-04  5:09 UTC (permalink / raw)
  To: cros-kernel-buildreports; +Cc: oe-kbuild-all

Hi Gao,

FYI, the error/warning still remains.

tree:   https://android.googlesource.com/kernel/common mirror-chromeos-5.10-arcvm
head:   8426c769398ef6f4ac3f61df3f3ec10bd11b0e50
commit: ede603374aab4bb8a612fd3c1c84ceef11435fa1 [6/6] FROMGIT: erofs: lzma compression support
config: x86_64-allmodconfig (https://download.01.org/0day-ci/archive/20260304/202603041345.ew47dBSR-lkp@intel.com/config)
compiler: clang version 23.0.0git (https://github.com/llvm/llvm-project 9a109fbb6e184ec9bcce10615949f598f4c974a9)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260304/202603041345.ew47dBSR-lkp@intel.com/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@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202603041345.ew47dBSR-lkp@intel.com/

All errors (new ones prefixed by >>):

   In file included from <built-in>:2:
   In file included from include/linux/compiler_types.h:69:
   include/linux/compiler-clang.h:34:9: warning: '__SANITIZE_ADDRESS__' macro redefined [-Wmacro-redefined]
      34 | #define __SANITIZE_ADDRESS__
         |         ^
   <built-in>:353:9: note: previous definition is here
     353 | #define __SANITIZE_ADDRESS__ 1
         |         ^
   fs/erofs/decompressor_lzma.c:42:5: error: implicit declaration of function 'xz_dec_microlzma_end' [-Werror,-Wimplicit-function-declaration]
      42 |                                 xz_dec_microlzma_end(strm->state);
         |                                 ^
   fs/erofs/decompressor_lzma.c:135:4: error: implicit declaration of function 'xz_dec_microlzma_end' [-Werror,-Wimplicit-function-declaration]
     135 |                         xz_dec_microlzma_end(strm->state);
         |                         ^
   fs/erofs/decompressor_lzma.c:136:17: error: implicit declaration of function 'xz_dec_microlzma_alloc' [-Werror,-Wimplicit-function-declaration]
     136 |                 strm->state = xz_dec_microlzma_alloc(XZ_PREALLOC, dict_size);
         |                               ^
   fs/erofs/decompressor_lzma.c:136:15: error: incompatible integer to pointer conversion assigning to 'struct xz_dec_microlzma *' from 'int' [-Wint-conversion]
     136 |                 strm->state = xz_dec_microlzma_alloc(XZ_PREALLOC, dict_size);
         |                             ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   fs/erofs/decompressor_lzma.c:193:2: error: implicit declaration of function 'xz_dec_microlzma_reset' [-Werror,-Wimplicit-function-declaration]
     193 |         xz_dec_microlzma_reset(strm->state, inlen, outlen,
         |         ^
>> fs/erofs/decompressor_lzma.c:266:12: error: implicit declaration of function 'xz_dec_microlzma_run' [-Werror,-Wimplicit-function-declaration]
     266 |                 xz_err = xz_dec_microlzma_run(strm->state, &strm->buf);
         |                          ^
   1 warning and 6 errors generated.


vim +/xz_dec_microlzma_run +266 fs/erofs/decompressor_lzma.c

   151	
   152	int z_erofs_lzma_decompress(struct z_erofs_decompress_req *rq,
   153				    struct list_head *pagepool)
   154	{
   155		const unsigned int nrpages_out =
   156			PAGE_ALIGN(rq->pageofs_out + rq->outputsize) >> PAGE_SHIFT;
   157		const unsigned int nrpages_in =
   158			PAGE_ALIGN(rq->inputsize) >> PAGE_SHIFT;
   159		unsigned int inputmargin, inlen, outlen, pageofs;
   160		struct z_erofs_lzma *strm;
   161		u8 *kin;
   162		bool bounced = false;
   163		int no, ni, j, err = 0;
   164	
   165		/* 1. get the exact LZMA compressed size */
   166		kin = kmap(*rq->in);
   167		inputmargin = 0;
   168		while (!kin[inputmargin & ~PAGE_MASK])
   169			if (!(++inputmargin & ~PAGE_MASK))
   170				break;
   171	
   172		if (inputmargin >= PAGE_SIZE) {
   173			kunmap(*rq->in);
   174			return -EFSCORRUPTED;
   175		}
   176		rq->inputsize -= inputmargin;
   177	
   178		/* 2. get an available lzma context */
   179	again:
   180		spin_lock(&z_erofs_lzma_lock);
   181		strm = z_erofs_lzma_head;
   182		if (!strm) {
   183			spin_unlock(&z_erofs_lzma_lock);
   184			wait_event(z_erofs_lzma_wq, READ_ONCE(z_erofs_lzma_head));
   185			goto again;
   186		}
   187		z_erofs_lzma_head = strm->next;
   188		spin_unlock(&z_erofs_lzma_lock);
   189	
   190		/* 3. multi-call decompress */
   191		inlen = rq->inputsize;
   192		outlen = rq->outputsize;
   193		xz_dec_microlzma_reset(strm->state, inlen, outlen,
   194				       !rq->partial_decoding);
   195		pageofs = rq->pageofs_out;
   196		strm->buf.in = kin + inputmargin;
   197		strm->buf.in_pos = 0;
   198		strm->buf.in_size = min_t(u32, inlen, PAGE_SIZE - inputmargin);
   199		inlen -= strm->buf.in_size;
   200		strm->buf.out = NULL;
   201		strm->buf.out_pos = 0;
   202		strm->buf.out_size = 0;
   203	
   204		for (ni = 0, no = -1;;) {
   205			enum xz_ret xz_err;
   206	
   207			if (strm->buf.out_pos == strm->buf.out_size) {
   208				if (strm->buf.out) {
   209					kunmap(rq->out[no]);
   210					strm->buf.out = NULL;
   211				}
   212	
   213				if (++no >= nrpages_out || !outlen) {
   214					erofs_err(rq->sb, "decompressed buf out of bound");
   215					err = -EFSCORRUPTED;
   216					break;
   217				}
   218				strm->buf.out_pos = 0;
   219				strm->buf.out_size = min_t(u32, outlen,
   220							   PAGE_SIZE - pageofs);
   221				outlen -= strm->buf.out_size;
   222				if (rq->out[no])
   223					strm->buf.out = kmap(rq->out[no]) + pageofs;
   224				pageofs = 0;
   225			} else if (strm->buf.in_pos == strm->buf.in_size) {
   226				kunmap(rq->in[ni]);
   227	
   228				if (++ni >= nrpages_in || !inlen) {
   229					erofs_err(rq->sb, "compressed buf out of bound");
   230					err = -EFSCORRUPTED;
   231					break;
   232				}
   233				strm->buf.in_pos = 0;
   234				strm->buf.in_size = min_t(u32, inlen, PAGE_SIZE);
   235				inlen -= strm->buf.in_size;
   236				kin = kmap(rq->in[ni]);
   237				strm->buf.in = kin;
   238				bounced = false;
   239			}
   240	
   241			/*
   242			 * Handle overlapping: Use bounced buffer if the compressed
   243			 * data is under processing; Otherwise, Use short-lived pages
   244			 * from the on-stack pagepool where pages share with the same
   245			 * request.
   246			 */
   247			if (!bounced && rq->out[no] == rq->in[ni]) {
   248				memcpy(strm->bounce, strm->buf.in, strm->buf.in_size);
   249				strm->buf.in = strm->bounce;
   250				bounced = true;
   251			}
   252			for (j = ni + 1; j < nrpages_in; ++j) {
   253				struct page *tmppage;
   254	
   255				if (rq->out[no] != rq->in[j])
   256					continue;
   257	
   258				DBG_BUGON(erofs_page_is_managed(EROFS_SB(rq->sb),
   259								rq->in[j]));
   260				tmppage = erofs_allocpage(pagepool,
   261							  GFP_KERNEL | __GFP_NOFAIL);
   262				set_page_private(tmppage, Z_EROFS_SHORTLIVED_PAGE);
   263				copy_highpage(tmppage, rq->in[j]);
   264				rq->in[j] = tmppage;
   265			}
 > 266			xz_err = xz_dec_microlzma_run(strm->state, &strm->buf);

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

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2026-03-04  5:09 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-03-04  5:09 [android-common:mirror-chromeos-5.10-arcvm 6/6] fs/erofs/decompressor_lzma.c:266:12: error: implicit declaration of function 'xz_dec_microlzma_run' kernel test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.