LKML Archive on lore.kernel.org
 help / color / Atom feed
From: kernel test robot <lkp@intel.com>
To: Konstantin Komarov <almaz.alexandrovich@paragon-software.com>,
	linux-fsdevel@vger.kernel.org
Cc: kbuild-all@lists.01.org, viro@zeniv.linux.org.uk,
	linux-kernel@vger.kernel.org, pali@kernel.org, dsterba@suse.cz,
	aaptel@suse.com, willy@infradead.org, rdunlap@infradead.org,
	joe@perches.com, mark@harmstone.com
Subject: Re: [PATCH v14 09/10] fs/ntfs3: Add NTFS3 in fs/Kconfig and fs/Makefile
Date: Sat, 5 Dec 2020 02:51:41 +0800
Message-ID: <202012050214.Cot1Fk27-lkp@intel.com> (raw)
In-Reply-To: <20201204154600.1546096-10-almaz.alexandrovich@paragon-software.com>


[-- Attachment #1: Type: text/plain, Size: 11855 bytes --]

Hi Konstantin,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on linus/master]
[also build test WARNING on v5.10-rc6 next-20201204]
[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/Konstantin-Komarov/NTFS-read-write-driver-GPL-implementation-by-Paragon-Software/20201204-235247
base:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git bbe2ba04c5a92a49db8a42c850a5a2f6481e47eb
config: sh-allmodconfig (attached as .config)
compiler: sh4-linux-gcc (GCC) 9.3.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/90b3182a8c96b7a5e9a59ed7a9c9b2d3e22c7ee1
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Konstantin-Komarov/NTFS-read-write-driver-GPL-implementation-by-Paragon-Software/20201204-235247
        git checkout 90b3182a8c96b7a5e9a59ed7a9c9b2d3e22c7ee1
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=sh 

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

All warnings (new ones prefixed by >>):

>> fs/ntfs3/lib/lzx_decompress.c:441:1: warning: no previous prototype for 'lzx_decompress' [-Wmissing-prototypes]
     441 | lzx_decompress(struct lzx_decompressor *__restrict d,
         | ^~~~~~~~~~~~~~
>> fs/ntfs3/lib/lzx_decompress.c:509:1: warning: no previous prototype for 'lzx_allocate_decompressor' [-Wmissing-prototypes]
     509 | lzx_allocate_decompressor(size_t max_block_size)
         | ^~~~~~~~~~~~~~~~~~~~~~~~~
>> fs/ntfs3/lib/lzx_decompress.c:550:1: warning: no previous prototype for 'lzx_free_decompressor' [-Wmissing-prototypes]
     550 | lzx_free_decompressor(struct lzx_decompressor *d)
         | ^~~~~~~~~~~~~~~~~~~~~
--
>> fs/ntfs3/lib/xpress_decompress.c:84:1: warning: no previous prototype for 'xpress_decompress' [-Wmissing-prototypes]
      84 | xpress_decompress(struct xpress_decompressor *__restrict d,
         | ^~~~~~~~~~~~~~~~~
>> fs/ntfs3/lib/xpress_decompress.c:155:1: warning: no previous prototype for 'xpress_allocate_decompressor' [-Wmissing-prototypes]
     155 | xpress_allocate_decompressor(void)
         | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> fs/ntfs3/lib/xpress_decompress.c:162:1: warning: no previous prototype for 'xpress_free_decompressor' [-Wmissing-prototypes]
     162 | xpress_free_decompressor(struct xpress_decompressor *d)
         | ^~~~~~~~~~~~~~~~~~~~~~~~

vim +/lzx_decompress +441 fs/ntfs3/lib/lzx_decompress.c

f08c356f4019dd Konstantin Komarov 2020-12-04  439  
f08c356f4019dd Konstantin Komarov 2020-12-04  440  int
f08c356f4019dd Konstantin Komarov 2020-12-04 @441  lzx_decompress(struct lzx_decompressor *__restrict d,
f08c356f4019dd Konstantin Komarov 2020-12-04  442  	       const void *__restrict compressed_data, size_t compressed_size,
f08c356f4019dd Konstantin Komarov 2020-12-04  443  	       void *__restrict uncompressed_data, size_t uncompressed_size)
f08c356f4019dd Konstantin Komarov 2020-12-04  444  {
f08c356f4019dd Konstantin Komarov 2020-12-04  445  	u8 * const out_begin = uncompressed_data;
f08c356f4019dd Konstantin Komarov 2020-12-04  446  	u8 *out_next = out_begin;
f08c356f4019dd Konstantin Komarov 2020-12-04  447  	u8 * const out_end = out_begin + uncompressed_size;
f08c356f4019dd Konstantin Komarov 2020-12-04  448  	struct input_bitstream is;
f08c356f4019dd Konstantin Komarov 2020-12-04  449  	u32 recent_offsets[LZX_NUM_RECENT_OFFSETS] = {1, 1, 1};
f08c356f4019dd Konstantin Komarov 2020-12-04  450  	u32 may_have_e8_byte = 0;
f08c356f4019dd Konstantin Komarov 2020-12-04  451  
f08c356f4019dd Konstantin Komarov 2020-12-04  452  	STATIC_ASSERT(LZX_NUM_RECENT_OFFSETS == 3);
f08c356f4019dd Konstantin Komarov 2020-12-04  453  
f08c356f4019dd Konstantin Komarov 2020-12-04  454  	init_input_bitstream(&is, compressed_data, compressed_size);
f08c356f4019dd Konstantin Komarov 2020-12-04  455  
f08c356f4019dd Konstantin Komarov 2020-12-04  456  	/* Codeword lengths begin as all 0's for delta encoding purposes. */
f08c356f4019dd Konstantin Komarov 2020-12-04  457  	memset(d->maincode_lens, 0, d->num_main_syms);
f08c356f4019dd Konstantin Komarov 2020-12-04  458  	memset(d->lencode_lens, 0, LZX_LENCODE_NUM_SYMBOLS);
f08c356f4019dd Konstantin Komarov 2020-12-04  459  
f08c356f4019dd Konstantin Komarov 2020-12-04  460  	/* Decompress blocks until we have all the uncompressed data. */
f08c356f4019dd Konstantin Komarov 2020-12-04  461  
f08c356f4019dd Konstantin Komarov 2020-12-04  462  	while (out_next != out_end) {
f08c356f4019dd Konstantin Komarov 2020-12-04  463  		int block_type;
f08c356f4019dd Konstantin Komarov 2020-12-04  464  		u32 block_size;
f08c356f4019dd Konstantin Komarov 2020-12-04  465  
f08c356f4019dd Konstantin Komarov 2020-12-04  466  		if (lzx_read_block_header(d, &is, recent_offsets,
f08c356f4019dd Konstantin Komarov 2020-12-04  467  					  &block_type, &block_size))
f08c356f4019dd Konstantin Komarov 2020-12-04  468  			return -1;
f08c356f4019dd Konstantin Komarov 2020-12-04  469  
f08c356f4019dd Konstantin Komarov 2020-12-04  470  		if (block_size < 1 || block_size > out_end - out_next)
f08c356f4019dd Konstantin Komarov 2020-12-04  471  			return -1;
f08c356f4019dd Konstantin Komarov 2020-12-04  472  
f08c356f4019dd Konstantin Komarov 2020-12-04  473  		if (likely(block_type != LZX_BLOCKTYPE_UNCOMPRESSED)) {
f08c356f4019dd Konstantin Komarov 2020-12-04  474  
f08c356f4019dd Konstantin Komarov 2020-12-04  475  			/* Compressed block */
f08c356f4019dd Konstantin Komarov 2020-12-04  476  			if (lzx_decompress_block(d, &is, block_type, block_size,
f08c356f4019dd Konstantin Komarov 2020-12-04  477  						 out_begin, out_next,
f08c356f4019dd Konstantin Komarov 2020-12-04  478  						 recent_offsets))
f08c356f4019dd Konstantin Komarov 2020-12-04  479  				return -1;
f08c356f4019dd Konstantin Komarov 2020-12-04  480  
f08c356f4019dd Konstantin Komarov 2020-12-04  481  			/* If the first E8 byte was in this block, then it must
f08c356f4019dd Konstantin Komarov 2020-12-04  482  			 * have been encoded as a literal using mainsym E8.
f08c356f4019dd Konstantin Komarov 2020-12-04  483  			 */
f08c356f4019dd Konstantin Komarov 2020-12-04  484  			may_have_e8_byte |= d->maincode_lens[0xE8];
f08c356f4019dd Konstantin Komarov 2020-12-04  485  		} else {
f08c356f4019dd Konstantin Komarov 2020-12-04  486  
f08c356f4019dd Konstantin Komarov 2020-12-04  487  			/* Uncompressed block */
f08c356f4019dd Konstantin Komarov 2020-12-04  488  			if (bitstream_read_bytes(&is, out_next, block_size))
f08c356f4019dd Konstantin Komarov 2020-12-04  489  				return -1;
f08c356f4019dd Konstantin Komarov 2020-12-04  490  
f08c356f4019dd Konstantin Komarov 2020-12-04  491  			/* Re-align the bitstream if needed. */
f08c356f4019dd Konstantin Komarov 2020-12-04  492  			if (block_size & 1)
f08c356f4019dd Konstantin Komarov 2020-12-04  493  				bitstream_read_byte(&is);
f08c356f4019dd Konstantin Komarov 2020-12-04  494  
f08c356f4019dd Konstantin Komarov 2020-12-04  495  			/* There may have been an E8 byte in the block. */
f08c356f4019dd Konstantin Komarov 2020-12-04  496  			may_have_e8_byte = 1;
f08c356f4019dd Konstantin Komarov 2020-12-04  497  		}
f08c356f4019dd Konstantin Komarov 2020-12-04  498  		out_next += block_size;
f08c356f4019dd Konstantin Komarov 2020-12-04  499  	}
f08c356f4019dd Konstantin Komarov 2020-12-04  500  
f08c356f4019dd Konstantin Komarov 2020-12-04  501  	/* Postprocess the data unless it cannot possibly contain E8 bytes. */
f08c356f4019dd Konstantin Komarov 2020-12-04  502  	if (may_have_e8_byte)
f08c356f4019dd Konstantin Komarov 2020-12-04  503  		lzx_postprocess(uncompressed_data, uncompressed_size);
f08c356f4019dd Konstantin Komarov 2020-12-04  504  
f08c356f4019dd Konstantin Komarov 2020-12-04  505  	return 0;
f08c356f4019dd Konstantin Komarov 2020-12-04  506  }
f08c356f4019dd Konstantin Komarov 2020-12-04  507  
f08c356f4019dd Konstantin Komarov 2020-12-04  508  struct lzx_decompressor *
f08c356f4019dd Konstantin Komarov 2020-12-04 @509  lzx_allocate_decompressor(size_t max_block_size)
f08c356f4019dd Konstantin Komarov 2020-12-04  510  {
f08c356f4019dd Konstantin Komarov 2020-12-04  511  	u32 window_order;
f08c356f4019dd Konstantin Komarov 2020-12-04  512  	struct lzx_decompressor *d;
f08c356f4019dd Konstantin Komarov 2020-12-04  513  	u32 offset_slot;
f08c356f4019dd Konstantin Komarov 2020-12-04  514  
f08c356f4019dd Konstantin Komarov 2020-12-04  515  	/*
f08c356f4019dd Konstantin Komarov 2020-12-04  516  	 * ntfs uses lzx only as max_block_size == 0x8000
f08c356f4019dd Konstantin Komarov 2020-12-04  517  	 * this value certainly will not fail
f08c356f4019dd Konstantin Komarov 2020-12-04  518  	 * we can remove lzx_get_window_order + ilog2_ceil + bsrw
f08c356f4019dd Konstantin Komarov 2020-12-04  519  	 */
f08c356f4019dd Konstantin Komarov 2020-12-04  520  	WARN_ON(max_block_size != 0x8000);
f08c356f4019dd Konstantin Komarov 2020-12-04  521  
f08c356f4019dd Konstantin Komarov 2020-12-04  522  	window_order = lzx_get_window_order(max_block_size);
f08c356f4019dd Konstantin Komarov 2020-12-04  523  	if (window_order == 0)
f08c356f4019dd Konstantin Komarov 2020-12-04  524  		return ERR_PTR(-EINVAL);
f08c356f4019dd Konstantin Komarov 2020-12-04  525  
f08c356f4019dd Konstantin Komarov 2020-12-04  526  	d = aligned_malloc(sizeof(*d), DECODE_TABLE_ALIGNMENT);
f08c356f4019dd Konstantin Komarov 2020-12-04  527  	if (!d)
f08c356f4019dd Konstantin Komarov 2020-12-04  528  		return NULL;
f08c356f4019dd Konstantin Komarov 2020-12-04  529  
f08c356f4019dd Konstantin Komarov 2020-12-04  530  	d->window_order = window_order;
f08c356f4019dd Konstantin Komarov 2020-12-04  531  	d->num_main_syms = lzx_get_num_main_syms(window_order);
f08c356f4019dd Konstantin Komarov 2020-12-04  532  
f08c356f4019dd Konstantin Komarov 2020-12-04  533  	/* Initialize 'd->extra_offset_bits_minus_aligned'. */
f08c356f4019dd Konstantin Komarov 2020-12-04  534  	STATIC_ASSERT(sizeof(d->extra_offset_bits_minus_aligned) ==
f08c356f4019dd Konstantin Komarov 2020-12-04  535  		      sizeof(lzx_extra_offset_bits));
f08c356f4019dd Konstantin Komarov 2020-12-04  536  	STATIC_ASSERT(sizeof(d->extra_offset_bits) ==
f08c356f4019dd Konstantin Komarov 2020-12-04  537  		      sizeof(lzx_extra_offset_bits));
f08c356f4019dd Konstantin Komarov 2020-12-04  538  	memcpy(d->extra_offset_bits_minus_aligned, lzx_extra_offset_bits,
f08c356f4019dd Konstantin Komarov 2020-12-04  539  	       sizeof(lzx_extra_offset_bits));
f08c356f4019dd Konstantin Komarov 2020-12-04  540  	for (offset_slot = LZX_MIN_ALIGNED_OFFSET_SLOT;
f08c356f4019dd Konstantin Komarov 2020-12-04  541  	     offset_slot < LZX_MAX_OFFSET_SLOTS; offset_slot++) {
f08c356f4019dd Konstantin Komarov 2020-12-04  542  		d->extra_offset_bits_minus_aligned[offset_slot] -=
f08c356f4019dd Konstantin Komarov 2020-12-04  543  				LZX_NUM_ALIGNED_OFFSET_BITS;
f08c356f4019dd Konstantin Komarov 2020-12-04  544  	}
f08c356f4019dd Konstantin Komarov 2020-12-04  545  
f08c356f4019dd Konstantin Komarov 2020-12-04  546  	return d;
f08c356f4019dd Konstantin Komarov 2020-12-04  547  }
f08c356f4019dd Konstantin Komarov 2020-12-04  548  
f08c356f4019dd Konstantin Komarov 2020-12-04  549  void
f08c356f4019dd Konstantin Komarov 2020-12-04 @550  lzx_free_decompressor(struct lzx_decompressor *d)

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

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 53580 bytes --]

  reply index

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-12-04 15:45 [PATCH v14 00/10] NTFS read-write driver GPL implementation by Paragon Software Konstantin Komarov
2020-12-04 15:45 ` [PATCH v14 01/10] fs/ntfs3: Add headers and misc files Konstantin Komarov
2020-12-04 15:45 ` [PATCH v14 02/10] fs/ntfs3: Add initialization of super block Konstantin Komarov
2020-12-04 15:45 ` [PATCH v14 03/10] fs/ntfs3: Add bitmap Konstantin Komarov
2020-12-04 15:45 ` [PATCH v14 04/10] fs/ntfs3: Add file operations and implementation Konstantin Komarov
2020-12-04 18:41   ` Eric Biggers
2020-12-11 16:31     ` Konstantin Komarov
2020-12-25 14:27       ` Konstantin Komarov
2020-12-04 15:45 ` [PATCH v14 05/10] fs/ntfs3: Add attrib operations Konstantin Komarov
2020-12-04 15:45 ` [PATCH v14 06/10] fs/ntfs3: Add compression Konstantin Komarov
2020-12-04 18:38   ` Eric Biggers
2020-12-11 16:28     ` Konstantin Komarov
2020-12-25 14:29       ` Konstantin Komarov
2020-12-04 15:45 ` [PATCH v14 07/10] fs/ntfs3: Add NTFS journal Konstantin Komarov
2020-12-04 15:45 ` [PATCH v14 08/10] fs/ntfs3: Add Kconfig, Makefile and doc Konstantin Komarov
2020-12-04 15:45 ` [PATCH v14 09/10] fs/ntfs3: Add NTFS3 in fs/Kconfig and fs/Makefile Konstantin Komarov
2020-12-04 18:51   ` kernel test robot [this message]
2020-12-05  0:41   ` kernel test robot
2020-12-04 15:46 ` [PATCH v14 10/10] fs/ntfs3: Add MAINTAINERS Konstantin Komarov

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=202012050214.Cot1Fk27-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=aaptel@suse.com \
    --cc=almaz.alexandrovich@paragon-software.com \
    --cc=dsterba@suse.cz \
    --cc=joe@perches.com \
    --cc=kbuild-all@lists.01.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mark@harmstone.com \
    --cc=pali@kernel.org \
    --cc=rdunlap@infradead.org \
    --cc=viro@zeniv.linux.org.uk \
    --cc=willy@infradead.org \
    /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

LKML Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/lkml/0 lkml/git/0.git
	git clone --mirror https://lore.kernel.org/lkml/1 lkml/git/1.git
	git clone --mirror https://lore.kernel.org/lkml/2 lkml/git/2.git
	git clone --mirror https://lore.kernel.org/lkml/3 lkml/git/3.git
	git clone --mirror https://lore.kernel.org/lkml/4 lkml/git/4.git
	git clone --mirror https://lore.kernel.org/lkml/5 lkml/git/5.git
	git clone --mirror https://lore.kernel.org/lkml/6 lkml/git/6.git
	git clone --mirror https://lore.kernel.org/lkml/7 lkml/git/7.git
	git clone --mirror https://lore.kernel.org/lkml/8 lkml/git/8.git
	git clone --mirror https://lore.kernel.org/lkml/9 lkml/git/9.git
	git clone --mirror https://lore.kernel.org/lkml/10 lkml/git/10.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 lkml lkml/ https://lore.kernel.org/lkml \
		linux-kernel@vger.kernel.org
	public-inbox-index lkml

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.linux-kernel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git