From: kbuild test robot <lkp@intel.com>
To: Maninder Singh <maninder1.s@samsung.com>
Cc: kbuild-all@01.org, Roman Gushchin <guro@fb.com>,
Johannes Weiner <hannes@cmpxchg.org>,
Vaneet Narang <v.narang@samsung.com>,
Joe Perches <joe@perches.com>,
Andrew Morton <akpm@linux-foundation.org>,
Linux Memory Management List <linux-mm@kvack.org>
Subject: [rgushchin:kmem_reparent.6 16/236] fs/btrfs/zstd.c:396:28: error: incompatible type for argument 1 of 'ZSTD_initCStream'
Date: Wed, 5 Jun 2019 06:31:35 +0800 [thread overview]
Message-ID: <201906050632.nJ0WheQd%lkp@intel.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 13061 bytes --]
tree: https://github.com/rgushchin/linux.git kmem_reparent.6
head: 8e4d7c939f45c5d285469aee9e02777da23b582f
commit: 96d3001e2f61722b7e3d26456133ff2779de268b [16/236] zstd: pass pointer rathen than structure to functions
config: x86_64-lkp (attached as .config)
compiler: gcc-7 (Debian 7.3.0-1) 7.3.0
reproduce:
git checkout 96d3001e2f61722b7e3d26456133ff2779de268b
# save the attached .config to linux build tree
make ARCH=x86_64
If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
fs/btrfs/zstd.c: In function 'zstd_compress_pages':
>> fs/btrfs/zstd.c:396:28: error: incompatible type for argument 1 of 'ZSTD_initCStream'
stream = ZSTD_initCStream(params, len, workspace->mem,
^~~~~~
In file included from fs/btrfs/zstd.c:19:0:
include/linux/zstd.h:555:15: note: expected 'const ZSTD_parameters * {aka const struct <anonymous> *}' but argument is of type 'ZSTD_parameters {aka struct <anonymous>}'
ZSTD_CStream *ZSTD_initCStream(const ZSTD_parameters *params,
^~~~~~~~~~~~~~~~
vim +/ZSTD_initCStream +396 fs/btrfs/zstd.c
5c1aab1d Nick Terrell 2017-08-09 368
5c1aab1d Nick Terrell 2017-08-09 369 static int zstd_compress_pages(struct list_head *ws,
5c1aab1d Nick Terrell 2017-08-09 370 struct address_space *mapping,
5c1aab1d Nick Terrell 2017-08-09 371 u64 start,
5c1aab1d Nick Terrell 2017-08-09 372 struct page **pages,
5c1aab1d Nick Terrell 2017-08-09 373 unsigned long *out_pages,
5c1aab1d Nick Terrell 2017-08-09 374 unsigned long *total_in,
5c1aab1d Nick Terrell 2017-08-09 375 unsigned long *total_out)
5c1aab1d Nick Terrell 2017-08-09 376 {
5c1aab1d Nick Terrell 2017-08-09 377 struct workspace *workspace = list_entry(ws, struct workspace, list);
5c1aab1d Nick Terrell 2017-08-09 378 ZSTD_CStream *stream;
5c1aab1d Nick Terrell 2017-08-09 379 int ret = 0;
5c1aab1d Nick Terrell 2017-08-09 380 int nr_pages = 0;
5c1aab1d Nick Terrell 2017-08-09 381 struct page *in_page = NULL; /* The current page to read */
5c1aab1d Nick Terrell 2017-08-09 382 struct page *out_page = NULL; /* The current page to write to */
5c1aab1d Nick Terrell 2017-08-09 383 unsigned long tot_in = 0;
5c1aab1d Nick Terrell 2017-08-09 384 unsigned long tot_out = 0;
5c1aab1d Nick Terrell 2017-08-09 385 unsigned long len = *total_out;
5c1aab1d Nick Terrell 2017-08-09 386 const unsigned long nr_dest_pages = *out_pages;
5c1aab1d Nick Terrell 2017-08-09 387 unsigned long max_out = nr_dest_pages * PAGE_SIZE;
e0dc87af Dennis Zhou 2019-02-04 388 ZSTD_parameters params = zstd_get_btrfs_parameters(workspace->req_level,
e0dc87af Dennis Zhou 2019-02-04 389 len);
5c1aab1d Nick Terrell 2017-08-09 390
5c1aab1d Nick Terrell 2017-08-09 391 *out_pages = 0;
5c1aab1d Nick Terrell 2017-08-09 392 *total_out = 0;
5c1aab1d Nick Terrell 2017-08-09 393 *total_in = 0;
5c1aab1d Nick Terrell 2017-08-09 394
5c1aab1d Nick Terrell 2017-08-09 395 /* Initialize the stream */
5c1aab1d Nick Terrell 2017-08-09 @396 stream = ZSTD_initCStream(params, len, workspace->mem,
5c1aab1d Nick Terrell 2017-08-09 397 workspace->size);
5c1aab1d Nick Terrell 2017-08-09 398 if (!stream) {
5c1aab1d Nick Terrell 2017-08-09 399 pr_warn("BTRFS: ZSTD_initCStream failed\n");
5c1aab1d Nick Terrell 2017-08-09 400 ret = -EIO;
5c1aab1d Nick Terrell 2017-08-09 401 goto out;
5c1aab1d Nick Terrell 2017-08-09 402 }
5c1aab1d Nick Terrell 2017-08-09 403
5c1aab1d Nick Terrell 2017-08-09 404 /* map in the first page of input data */
5c1aab1d Nick Terrell 2017-08-09 405 in_page = find_get_page(mapping, start >> PAGE_SHIFT);
431e9822 David Sterba 2017-11-15 406 workspace->in_buf.src = kmap(in_page);
431e9822 David Sterba 2017-11-15 407 workspace->in_buf.pos = 0;
431e9822 David Sterba 2017-11-15 408 workspace->in_buf.size = min_t(size_t, len, PAGE_SIZE);
5c1aab1d Nick Terrell 2017-08-09 409
5c1aab1d Nick Terrell 2017-08-09 410
5c1aab1d Nick Terrell 2017-08-09 411 /* Allocate and map in the output buffer */
5c1aab1d Nick Terrell 2017-08-09 412 out_page = alloc_page(GFP_NOFS | __GFP_HIGHMEM);
5c1aab1d Nick Terrell 2017-08-09 413 if (out_page == NULL) {
5c1aab1d Nick Terrell 2017-08-09 414 ret = -ENOMEM;
5c1aab1d Nick Terrell 2017-08-09 415 goto out;
5c1aab1d Nick Terrell 2017-08-09 416 }
5c1aab1d Nick Terrell 2017-08-09 417 pages[nr_pages++] = out_page;
431e9822 David Sterba 2017-11-15 418 workspace->out_buf.dst = kmap(out_page);
431e9822 David Sterba 2017-11-15 419 workspace->out_buf.pos = 0;
431e9822 David Sterba 2017-11-15 420 workspace->out_buf.size = min_t(size_t, max_out, PAGE_SIZE);
5c1aab1d Nick Terrell 2017-08-09 421
5c1aab1d Nick Terrell 2017-08-09 422 while (1) {
5c1aab1d Nick Terrell 2017-08-09 423 size_t ret2;
5c1aab1d Nick Terrell 2017-08-09 424
431e9822 David Sterba 2017-11-15 425 ret2 = ZSTD_compressStream(stream, &workspace->out_buf,
431e9822 David Sterba 2017-11-15 426 &workspace->in_buf);
5c1aab1d Nick Terrell 2017-08-09 427 if (ZSTD_isError(ret2)) {
5c1aab1d Nick Terrell 2017-08-09 428 pr_debug("BTRFS: ZSTD_compressStream returned %d\n",
5c1aab1d Nick Terrell 2017-08-09 429 ZSTD_getErrorCode(ret2));
5c1aab1d Nick Terrell 2017-08-09 430 ret = -EIO;
5c1aab1d Nick Terrell 2017-08-09 431 goto out;
5c1aab1d Nick Terrell 2017-08-09 432 }
5c1aab1d Nick Terrell 2017-08-09 433
5c1aab1d Nick Terrell 2017-08-09 434 /* Check to see if we are making it bigger */
431e9822 David Sterba 2017-11-15 435 if (tot_in + workspace->in_buf.pos > 8192 &&
431e9822 David Sterba 2017-11-15 436 tot_in + workspace->in_buf.pos <
431e9822 David Sterba 2017-11-15 437 tot_out + workspace->out_buf.pos) {
5c1aab1d Nick Terrell 2017-08-09 438 ret = -E2BIG;
5c1aab1d Nick Terrell 2017-08-09 439 goto out;
5c1aab1d Nick Terrell 2017-08-09 440 }
5c1aab1d Nick Terrell 2017-08-09 441
5c1aab1d Nick Terrell 2017-08-09 442 /* We've reached the end of our output range */
431e9822 David Sterba 2017-11-15 443 if (workspace->out_buf.pos >= max_out) {
431e9822 David Sterba 2017-11-15 444 tot_out += workspace->out_buf.pos;
5c1aab1d Nick Terrell 2017-08-09 445 ret = -E2BIG;
5c1aab1d Nick Terrell 2017-08-09 446 goto out;
5c1aab1d Nick Terrell 2017-08-09 447 }
5c1aab1d Nick Terrell 2017-08-09 448
5c1aab1d Nick Terrell 2017-08-09 449 /* Check if we need more output space */
431e9822 David Sterba 2017-11-15 450 if (workspace->out_buf.pos == workspace->out_buf.size) {
5c1aab1d Nick Terrell 2017-08-09 451 tot_out += PAGE_SIZE;
5c1aab1d Nick Terrell 2017-08-09 452 max_out -= PAGE_SIZE;
5c1aab1d Nick Terrell 2017-08-09 453 kunmap(out_page);
5c1aab1d Nick Terrell 2017-08-09 454 if (nr_pages == nr_dest_pages) {
5c1aab1d Nick Terrell 2017-08-09 455 out_page = NULL;
5c1aab1d Nick Terrell 2017-08-09 456 ret = -E2BIG;
5c1aab1d Nick Terrell 2017-08-09 457 goto out;
5c1aab1d Nick Terrell 2017-08-09 458 }
5c1aab1d Nick Terrell 2017-08-09 459 out_page = alloc_page(GFP_NOFS | __GFP_HIGHMEM);
5c1aab1d Nick Terrell 2017-08-09 460 if (out_page == NULL) {
5c1aab1d Nick Terrell 2017-08-09 461 ret = -ENOMEM;
5c1aab1d Nick Terrell 2017-08-09 462 goto out;
5c1aab1d Nick Terrell 2017-08-09 463 }
5c1aab1d Nick Terrell 2017-08-09 464 pages[nr_pages++] = out_page;
431e9822 David Sterba 2017-11-15 465 workspace->out_buf.dst = kmap(out_page);
431e9822 David Sterba 2017-11-15 466 workspace->out_buf.pos = 0;
431e9822 David Sterba 2017-11-15 467 workspace->out_buf.size = min_t(size_t, max_out,
431e9822 David Sterba 2017-11-15 468 PAGE_SIZE);
5c1aab1d Nick Terrell 2017-08-09 469 }
5c1aab1d Nick Terrell 2017-08-09 470
5c1aab1d Nick Terrell 2017-08-09 471 /* We've reached the end of the input */
431e9822 David Sterba 2017-11-15 472 if (workspace->in_buf.pos >= len) {
431e9822 David Sterba 2017-11-15 473 tot_in += workspace->in_buf.pos;
5c1aab1d Nick Terrell 2017-08-09 474 break;
5c1aab1d Nick Terrell 2017-08-09 475 }
5c1aab1d Nick Terrell 2017-08-09 476
5c1aab1d Nick Terrell 2017-08-09 477 /* Check if we need more input */
431e9822 David Sterba 2017-11-15 478 if (workspace->in_buf.pos == workspace->in_buf.size) {
5c1aab1d Nick Terrell 2017-08-09 479 tot_in += PAGE_SIZE;
5c1aab1d Nick Terrell 2017-08-09 480 kunmap(in_page);
5c1aab1d Nick Terrell 2017-08-09 481 put_page(in_page);
5c1aab1d Nick Terrell 2017-08-09 482
5c1aab1d Nick Terrell 2017-08-09 483 start += PAGE_SIZE;
5c1aab1d Nick Terrell 2017-08-09 484 len -= PAGE_SIZE;
5c1aab1d Nick Terrell 2017-08-09 485 in_page = find_get_page(mapping, start >> PAGE_SHIFT);
431e9822 David Sterba 2017-11-15 486 workspace->in_buf.src = kmap(in_page);
431e9822 David Sterba 2017-11-15 487 workspace->in_buf.pos = 0;
431e9822 David Sterba 2017-11-15 488 workspace->in_buf.size = min_t(size_t, len, PAGE_SIZE);
5c1aab1d Nick Terrell 2017-08-09 489 }
5c1aab1d Nick Terrell 2017-08-09 490 }
5c1aab1d Nick Terrell 2017-08-09 491 while (1) {
5c1aab1d Nick Terrell 2017-08-09 492 size_t ret2;
5c1aab1d Nick Terrell 2017-08-09 493
431e9822 David Sterba 2017-11-15 494 ret2 = ZSTD_endStream(stream, &workspace->out_buf);
5c1aab1d Nick Terrell 2017-08-09 495 if (ZSTD_isError(ret2)) {
5c1aab1d Nick Terrell 2017-08-09 496 pr_debug("BTRFS: ZSTD_endStream returned %d\n",
5c1aab1d Nick Terrell 2017-08-09 497 ZSTD_getErrorCode(ret2));
5c1aab1d Nick Terrell 2017-08-09 498 ret = -EIO;
5c1aab1d Nick Terrell 2017-08-09 499 goto out;
5c1aab1d Nick Terrell 2017-08-09 500 }
5c1aab1d Nick Terrell 2017-08-09 501 if (ret2 == 0) {
431e9822 David Sterba 2017-11-15 502 tot_out += workspace->out_buf.pos;
5c1aab1d Nick Terrell 2017-08-09 503 break;
5c1aab1d Nick Terrell 2017-08-09 504 }
431e9822 David Sterba 2017-11-15 505 if (workspace->out_buf.pos >= max_out) {
431e9822 David Sterba 2017-11-15 506 tot_out += workspace->out_buf.pos;
5c1aab1d Nick Terrell 2017-08-09 507 ret = -E2BIG;
5c1aab1d Nick Terrell 2017-08-09 508 goto out;
5c1aab1d Nick Terrell 2017-08-09 509 }
5c1aab1d Nick Terrell 2017-08-09 510
5c1aab1d Nick Terrell 2017-08-09 511 tot_out += PAGE_SIZE;
5c1aab1d Nick Terrell 2017-08-09 512 max_out -= PAGE_SIZE;
5c1aab1d Nick Terrell 2017-08-09 513 kunmap(out_page);
5c1aab1d Nick Terrell 2017-08-09 514 if (nr_pages == nr_dest_pages) {
5c1aab1d Nick Terrell 2017-08-09 515 out_page = NULL;
5c1aab1d Nick Terrell 2017-08-09 516 ret = -E2BIG;
5c1aab1d Nick Terrell 2017-08-09 517 goto out;
5c1aab1d Nick Terrell 2017-08-09 518 }
5c1aab1d Nick Terrell 2017-08-09 519 out_page = alloc_page(GFP_NOFS | __GFP_HIGHMEM);
5c1aab1d Nick Terrell 2017-08-09 520 if (out_page == NULL) {
5c1aab1d Nick Terrell 2017-08-09 521 ret = -ENOMEM;
5c1aab1d Nick Terrell 2017-08-09 522 goto out;
5c1aab1d Nick Terrell 2017-08-09 523 }
5c1aab1d Nick Terrell 2017-08-09 524 pages[nr_pages++] = out_page;
431e9822 David Sterba 2017-11-15 525 workspace->out_buf.dst = kmap(out_page);
431e9822 David Sterba 2017-11-15 526 workspace->out_buf.pos = 0;
431e9822 David Sterba 2017-11-15 527 workspace->out_buf.size = min_t(size_t, max_out, PAGE_SIZE);
5c1aab1d Nick Terrell 2017-08-09 528 }
5c1aab1d Nick Terrell 2017-08-09 529
5c1aab1d Nick Terrell 2017-08-09 530 if (tot_out >= tot_in) {
5c1aab1d Nick Terrell 2017-08-09 531 ret = -E2BIG;
5c1aab1d Nick Terrell 2017-08-09 532 goto out;
5c1aab1d Nick Terrell 2017-08-09 533 }
5c1aab1d Nick Terrell 2017-08-09 534
5c1aab1d Nick Terrell 2017-08-09 535 ret = 0;
5c1aab1d Nick Terrell 2017-08-09 536 *total_in = tot_in;
5c1aab1d Nick Terrell 2017-08-09 537 *total_out = tot_out;
5c1aab1d Nick Terrell 2017-08-09 538 out:
5c1aab1d Nick Terrell 2017-08-09 539 *out_pages = nr_pages;
5c1aab1d Nick Terrell 2017-08-09 540 /* Cleanup */
5c1aab1d Nick Terrell 2017-08-09 541 if (in_page) {
5c1aab1d Nick Terrell 2017-08-09 542 kunmap(in_page);
5c1aab1d Nick Terrell 2017-08-09 543 put_page(in_page);
5c1aab1d Nick Terrell 2017-08-09 544 }
5c1aab1d Nick Terrell 2017-08-09 545 if (out_page)
5c1aab1d Nick Terrell 2017-08-09 546 kunmap(out_page);
5c1aab1d Nick Terrell 2017-08-09 547 return ret;
5c1aab1d Nick Terrell 2017-08-09 548 }
5c1aab1d Nick Terrell 2017-08-09 549
:::::: The code at line 396 was first introduced by commit
:::::: 5c1aab1dd5445ed8bdcdbb575abc1b0d7ee5b2e7 btrfs: Add zstd support
:::::: TO: Nick Terrell <terrelln@fb.com>
:::::: CC: Chris Mason <clm@fb.com>
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 27483 bytes --]
reply other threads:[~2019-06-04 22:31 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=201906050632.nJ0WheQd%lkp@intel.com \
--to=lkp@intel.com \
--cc=akpm@linux-foundation.org \
--cc=guro@fb.com \
--cc=hannes@cmpxchg.org \
--cc=joe@perches.com \
--cc=kbuild-all@01.org \
--cc=linux-mm@kvack.org \
--cc=maninder1.s@samsung.com \
--cc=v.narang@samsung.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).