[mingo-tip:master 2232/2382] arch/x86/kernel/cpu/mtrr/mtrr.c:570:5: warning: no previous prototype for 'arch_phys_wc_add'

From: kernel test robot
Date: Thu Jan 13 2022 - 21:59:26 EST


tree: git://git.kernel.org/pub/scm/linux/kernel/git/mingo/tip.git master
head: 1a880941a087613ed42f77001229edfcf75ea8a5
commit: a097e96997f0e6b9c840e1de19af68c01be7b12e [2232/2382] headers/deps: mm: Optimize <linux/dmapool.h> dependencies, remove <linux/scatterlist.h> and <asm/io.h> inclusion
config: i386-randconfig-a003 (https://download.01.org/0day-ci/archive/20220114/202201141011.xY2EpZxX-lkp@xxxxxxxxx/config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce (this is a W=1 build):
# https://git.kernel.org/pub/scm/linux/kernel/git/mingo/tip.git/commit/?id=a097e96997f0e6b9c840e1de19af68c01be7b12e
git remote add mingo-tip git://git.kernel.org/pub/scm/linux/kernel/git/mingo/tip.git
git fetch --no-tags mingo-tip master
git checkout a097e96997f0e6b9c840e1de19af68c01be7b12e
# save the config file to linux build tree
mkdir build_dir
make W=1 O=build_dir ARCH=i386 SHELL=/bin/bash arch/x86/entry/vdso/ arch/x86/kernel/cpu/mtrr/ net/ipv6/

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

All warnings (new ones prefixed by >>):

>> arch/x86/kernel/cpu/mtrr/mtrr.c:570:5: warning: no previous prototype for 'arch_phys_wc_add' [-Wmissing-prototypes]
570 | int arch_phys_wc_add(unsigned long base, unsigned long size)
| ^~~~~~~~~~~~~~~~
>> arch/x86/kernel/cpu/mtrr/mtrr.c:596:6: warning: no previous prototype for 'arch_phys_wc_del' [-Wmissing-prototypes]
596 | void arch_phys_wc_del(int handle)
| ^~~~~~~~~~~~~~~~
>> arch/x86/kernel/cpu/mtrr/mtrr.c:616:5: warning: no previous prototype for 'arch_phys_wc_index' [-Wmissing-prototypes]
616 | int arch_phys_wc_index(int handle)
| ^~~~~~~~~~~~~~~~~~


vim +/arch_phys_wc_add +570 arch/x86/kernel/cpu/mtrr/mtrr.c

^1da177e4c3f41 arch/i386/kernel/cpu/mtrr/main.c Linus Torvalds 2005-04-16 554
d0d98eedee2178 arch/x86/kernel/cpu/mtrr/main.c Andy Lutomirski 2013-05-13 555 /**
d0d98eedee2178 arch/x86/kernel/cpu/mtrr/main.c Andy Lutomirski 2013-05-13 556 * arch_phys_wc_add - add a WC MTRR and handle errors if PAT is unavailable
d0d98eedee2178 arch/x86/kernel/cpu/mtrr/main.c Andy Lutomirski 2013-05-13 557 * @base: Physical base address
d0d98eedee2178 arch/x86/kernel/cpu/mtrr/main.c Andy Lutomirski 2013-05-13 558 * @size: Size of region
d0d98eedee2178 arch/x86/kernel/cpu/mtrr/main.c Andy Lutomirski 2013-05-13 559 *
d0d98eedee2178 arch/x86/kernel/cpu/mtrr/main.c Andy Lutomirski 2013-05-13 560 * If PAT is available, this does nothing. If PAT is unavailable, it
d0d98eedee2178 arch/x86/kernel/cpu/mtrr/main.c Andy Lutomirski 2013-05-13 561 * attempts to add a WC MTRR covering size bytes starting at base and
d0d98eedee2178 arch/x86/kernel/cpu/mtrr/main.c Andy Lutomirski 2013-05-13 562 * logs an error if this fails.
d0d98eedee2178 arch/x86/kernel/cpu/mtrr/main.c Andy Lutomirski 2013-05-13 563 *
2f9e897353fcb9 arch/x86/kernel/cpu/mtrr/main.c Luis R. Rodriguez 2015-05-26 564 * The called should provide a power of two size on an equivalent
2f9e897353fcb9 arch/x86/kernel/cpu/mtrr/main.c Luis R. Rodriguez 2015-05-26 565 * power of two boundary.
2f9e897353fcb9 arch/x86/kernel/cpu/mtrr/main.c Luis R. Rodriguez 2015-05-26 566 *
d0d98eedee2178 arch/x86/kernel/cpu/mtrr/main.c Andy Lutomirski 2013-05-13 567 * Drivers must store the return value to pass to mtrr_del_wc_if_needed,
d0d98eedee2178 arch/x86/kernel/cpu/mtrr/main.c Andy Lutomirski 2013-05-13 568 * but drivers should not try to interpret that return value.
d0d98eedee2178 arch/x86/kernel/cpu/mtrr/main.c Andy Lutomirski 2013-05-13 569 */
d0d98eedee2178 arch/x86/kernel/cpu/mtrr/main.c Andy Lutomirski 2013-05-13 @570 int arch_phys_wc_add(unsigned long base, unsigned long size)
d0d98eedee2178 arch/x86/kernel/cpu/mtrr/main.c Andy Lutomirski 2013-05-13 571 {
d0d98eedee2178 arch/x86/kernel/cpu/mtrr/main.c Andy Lutomirski 2013-05-13 572 int ret;
d0d98eedee2178 arch/x86/kernel/cpu/mtrr/main.c Andy Lutomirski 2013-05-13 573
cb32edf65bf219 arch/x86/kernel/cpu/mtrr/main.c Luis R. Rodriguez 2015-05-26 574 if (pat_enabled() || !mtrr_enabled())
d0d98eedee2178 arch/x86/kernel/cpu/mtrr/main.c Andy Lutomirski 2013-05-13 575 return 0; /* Success! (We don't need to do anything.) */
d0d98eedee2178 arch/x86/kernel/cpu/mtrr/main.c Andy Lutomirski 2013-05-13 576
d0d98eedee2178 arch/x86/kernel/cpu/mtrr/main.c Andy Lutomirski 2013-05-13 577 ret = mtrr_add(base, size, MTRR_TYPE_WRCOMB, true);
d0d98eedee2178 arch/x86/kernel/cpu/mtrr/main.c Andy Lutomirski 2013-05-13 578 if (ret < 0) {
d0d98eedee2178 arch/x86/kernel/cpu/mtrr/main.c Andy Lutomirski 2013-05-13 579 pr_warn("Failed to add WC MTRR for [%p-%p]; performance may suffer.",
d0d98eedee2178 arch/x86/kernel/cpu/mtrr/main.c Andy Lutomirski 2013-05-13 580 (void *)base, (void *)(base + size - 1));
d0d98eedee2178 arch/x86/kernel/cpu/mtrr/main.c Andy Lutomirski 2013-05-13 581 return ret;
d0d98eedee2178 arch/x86/kernel/cpu/mtrr/main.c Andy Lutomirski 2013-05-13 582 }
d0d98eedee2178 arch/x86/kernel/cpu/mtrr/main.c Andy Lutomirski 2013-05-13 583 return ret + MTRR_TO_PHYS_WC_OFFSET;
d0d98eedee2178 arch/x86/kernel/cpu/mtrr/main.c Andy Lutomirski 2013-05-13 584 }
d0d98eedee2178 arch/x86/kernel/cpu/mtrr/main.c Andy Lutomirski 2013-05-13 585 EXPORT_SYMBOL(arch_phys_wc_add);
d0d98eedee2178 arch/x86/kernel/cpu/mtrr/main.c Andy Lutomirski 2013-05-13 586
d0d98eedee2178 arch/x86/kernel/cpu/mtrr/main.c Andy Lutomirski 2013-05-13 587 /*
d0d98eedee2178 arch/x86/kernel/cpu/mtrr/main.c Andy Lutomirski 2013-05-13 588 * arch_phys_wc_del - undoes arch_phys_wc_add
d0d98eedee2178 arch/x86/kernel/cpu/mtrr/main.c Andy Lutomirski 2013-05-13 589 * @handle: Return value from arch_phys_wc_add
d0d98eedee2178 arch/x86/kernel/cpu/mtrr/main.c Andy Lutomirski 2013-05-13 590 *
d0d98eedee2178 arch/x86/kernel/cpu/mtrr/main.c Andy Lutomirski 2013-05-13 591 * This cleans up after mtrr_add_wc_if_needed.
d0d98eedee2178 arch/x86/kernel/cpu/mtrr/main.c Andy Lutomirski 2013-05-13 592 *
d0d98eedee2178 arch/x86/kernel/cpu/mtrr/main.c Andy Lutomirski 2013-05-13 593 * The API guarantees that mtrr_del_wc_if_needed(error code) and
d0d98eedee2178 arch/x86/kernel/cpu/mtrr/main.c Andy Lutomirski 2013-05-13 594 * mtrr_del_wc_if_needed(0) do nothing.
d0d98eedee2178 arch/x86/kernel/cpu/mtrr/main.c Andy Lutomirski 2013-05-13 595 */
d0d98eedee2178 arch/x86/kernel/cpu/mtrr/main.c Andy Lutomirski 2013-05-13 @596 void arch_phys_wc_del(int handle)
d0d98eedee2178 arch/x86/kernel/cpu/mtrr/main.c Andy Lutomirski 2013-05-13 597 {
d0d98eedee2178 arch/x86/kernel/cpu/mtrr/main.c Andy Lutomirski 2013-05-13 598 if (handle >= 1) {
d0d98eedee2178 arch/x86/kernel/cpu/mtrr/main.c Andy Lutomirski 2013-05-13 599 WARN_ON(handle < MTRR_TO_PHYS_WC_OFFSET);
d0d98eedee2178 arch/x86/kernel/cpu/mtrr/main.c Andy Lutomirski 2013-05-13 600 mtrr_del(handle - MTRR_TO_PHYS_WC_OFFSET, 0, 0);
d0d98eedee2178 arch/x86/kernel/cpu/mtrr/main.c Andy Lutomirski 2013-05-13 601 }
d0d98eedee2178 arch/x86/kernel/cpu/mtrr/main.c Andy Lutomirski 2013-05-13 602 }
d0d98eedee2178 arch/x86/kernel/cpu/mtrr/main.c Andy Lutomirski 2013-05-13 603 EXPORT_SYMBOL(arch_phys_wc_del);
d0d98eedee2178 arch/x86/kernel/cpu/mtrr/main.c Andy Lutomirski 2013-05-13 604
d0d98eedee2178 arch/x86/kernel/cpu/mtrr/main.c Andy Lutomirski 2013-05-13 605 /*
7d010fdf299929 arch/x86/kernel/cpu/mtrr/main.c Luis R. Rodriguez 2015-05-26 606 * arch_phys_wc_index - translates arch_phys_wc_add's return value
d0d98eedee2178 arch/x86/kernel/cpu/mtrr/main.c Andy Lutomirski 2013-05-13 607 * @handle: Return value from arch_phys_wc_add
d0d98eedee2178 arch/x86/kernel/cpu/mtrr/main.c Andy Lutomirski 2013-05-13 608 *
d0d98eedee2178 arch/x86/kernel/cpu/mtrr/main.c Andy Lutomirski 2013-05-13 609 * This will turn the return value from arch_phys_wc_add into an mtrr
d0d98eedee2178 arch/x86/kernel/cpu/mtrr/main.c Andy Lutomirski 2013-05-13 610 * index suitable for debugging.
d0d98eedee2178 arch/x86/kernel/cpu/mtrr/main.c Andy Lutomirski 2013-05-13 611 *
d0d98eedee2178 arch/x86/kernel/cpu/mtrr/main.c Andy Lutomirski 2013-05-13 612 * Note: There is no legitimate use for this function, except possibly
d0d98eedee2178 arch/x86/kernel/cpu/mtrr/main.c Andy Lutomirski 2013-05-13 613 * in printk line. Alas there is an illegitimate use in some ancient
d0d98eedee2178 arch/x86/kernel/cpu/mtrr/main.c Andy Lutomirski 2013-05-13 614 * drm ioctls.
d0d98eedee2178 arch/x86/kernel/cpu/mtrr/main.c Andy Lutomirski 2013-05-13 615 */
7d010fdf299929 arch/x86/kernel/cpu/mtrr/main.c Luis R. Rodriguez 2015-05-26 @616 int arch_phys_wc_index(int handle)
d0d98eedee2178 arch/x86/kernel/cpu/mtrr/main.c Andy Lutomirski 2013-05-13 617 {
d0d98eedee2178 arch/x86/kernel/cpu/mtrr/main.c Andy Lutomirski 2013-05-13 618 if (handle < MTRR_TO_PHYS_WC_OFFSET)
d0d98eedee2178 arch/x86/kernel/cpu/mtrr/main.c Andy Lutomirski 2013-05-13 619 return -1;
d0d98eedee2178 arch/x86/kernel/cpu/mtrr/main.c Andy Lutomirski 2013-05-13 620 else
d0d98eedee2178 arch/x86/kernel/cpu/mtrr/main.c Andy Lutomirski 2013-05-13 621 return handle - MTRR_TO_PHYS_WC_OFFSET;
d0d98eedee2178 arch/x86/kernel/cpu/mtrr/main.c Andy Lutomirski 2013-05-13 622 }
7d010fdf299929 arch/x86/kernel/cpu/mtrr/main.c Luis R. Rodriguez 2015-05-26 623 EXPORT_SYMBOL_GPL(arch_phys_wc_index);
d0d98eedee2178 arch/x86/kernel/cpu/mtrr/main.c Andy Lutomirski 2013-05-13 624

:::::: The code at line 570 was first introduced by commit
:::::: d0d98eedee2178c803dd824bb09f52b0e2ac1811 Add arch_phys_wc_{add, del} to manipulate WC MTRRs if needed

:::::: TO: Andy Lutomirski <luto@xxxxxxxxxxxxxx>
:::::: CC: Dave Airlie <airlied@xxxxxxxxxx>

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