All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: cros-kernel-buildreports@googlegroups.com
Cc: oe-kbuild-all@lists.linux.dev
Subject: [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'
Date: Wed, 04 Mar 2026 13:09:11 +0800	[thread overview]
Message-ID: <202603041345.ew47dBSR-lkp@intel.com> (raw)

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

                 reply	other threads:[~2026-03-04  5:09 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202603041345.ew47dBSR-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=cros-kernel-buildreports@googlegroups.com \
    --cc=oe-kbuild-all@lists.linux.dev \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.