From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-10.2 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,MENTIONS_GIT_HOSTING, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 93811C4361B for ; Tue, 8 Dec 2020 00:40:38 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 0C3F323A04 for ; Tue, 8 Dec 2020 00:40:37 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 0C3F323A04 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id E3A268D0002; Mon, 7 Dec 2020 19:40:36 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id DEB5F8D0001; Mon, 7 Dec 2020 19:40:36 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id CD94C8D0002; Mon, 7 Dec 2020 19:40:36 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0030.hostedemail.com [216.40.44.30]) by kanga.kvack.org (Postfix) with ESMTP id B43FB8D0001 for ; Mon, 7 Dec 2020 19:40:36 -0500 (EST) Received: from smtpin13.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay05.hostedemail.com (Postfix) with ESMTP id 6B8E2181AEF1E for ; Tue, 8 Dec 2020 00:40:36 +0000 (UTC) X-FDA: 77568259272.13.knee46_360c33c273e2 Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin13.hostedemail.com (Postfix) with ESMTP id 4C87518140B60 for ; Tue, 8 Dec 2020 00:40:36 +0000 (UTC) X-HE-Tag: knee46_360c33c273e2 X-Filterd-Recvd-Size: 22821 Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by imf02.hostedemail.com (Postfix) with ESMTP for ; Tue, 8 Dec 2020 00:40:33 +0000 (UTC) IronPort-SDR: WvyLqdsFABzOpaaC6Bgy1g4MckMX8SVynwAGo5ynf22HP9m+IsQ5KauArGjf+B/9n9s3soHfjf 48jfhhen1cVw== X-IronPort-AV: E=McAfee;i="6000,8403,9828"; a="171236070" X-IronPort-AV: E=Sophos;i="5.78,401,1599548400"; d="gz'50?scan'50,208,50";a="171236070" Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 07 Dec 2020 16:40:32 -0800 IronPort-SDR: wJ8RT+cFKwwZRghxJZFk1iPXkZzOwS4Bm0QywTLDSiGtwfjBjkh60gb3MN0Vr8cr7FivFN7eds 1GiZsD7ydR2Q== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.78,401,1599548400"; d="gz'50?scan'50,208,50";a="375664396" Received: from lkp-server01.sh.intel.com (HELO b44affb74af0) ([10.239.97.150]) by FMSMGA003.fm.intel.com with ESMTP; 07 Dec 2020 16:40:29 -0800 Received: from kbuild by b44affb74af0 with local (Exim 4.92) (envelope-from ) id 1kmR3M-00001B-TE; Tue, 08 Dec 2020 00:40:28 +0000 Date: Tue, 8 Dec 2020 08:40:19 +0800 From: kernel test robot To: ira.weiny@intel.com, Thomas Gleixner , Andrew Morton Cc: kbuild-all@lists.01.org, Linux Memory Management List , Ira Weiny , Dave Hansen , Matthew Wilcox , Christoph Hellwig , Dan Williams , Al Viro , Eric Biggers Subject: Re: [PATCH V2 2/2] mm/highmem: Lift memcpy_[to|from]_page to core Message-ID: <202012080858.DFIzeEHK-lkp@intel.com> References: <20201207225703.2033611-3-ira.weiny@intel.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="pWyiEgJYm5f9v55/" Content-Disposition: inline In-Reply-To: <20201207225703.2033611-3-ira.weiny@intel.com> User-Agent: Mutt/1.10.1 (2018-07-13) X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: --pWyiEgJYm5f9v55/ Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Hi, I love your patch! Perhaps something to improve: [auto build test WARNING on hch-configfs/for-next] [also build test WARNING on linus/master v5.10-rc7] [cannot apply to hnaz-linux-mm/master next-20201207] [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/ira-weiny-intel-com/Lift-memcpy_-to-from-_page-to-core/20201208-070017 base: git://git.infradead.org/users/hch/configfs.git for-next config: riscv-nommu_k210_defconfig (attached as .config) compiler: riscv64-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/23e6d3f08a315c6e70fde3d63a275c91e1dcb0ee git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review ira-weiny-intel-com/Lift-memcpy_-to-from-_page-to-core/20201208-070017 git checkout 23e6d3f08a315c6e70fde3d63a275c91e1dcb0ee # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=riscv If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot All warnings (new ones prefixed by >>): In file included from drivers/char/mem.c:24: include/linux/highmem.h: In function 'clear_user_highpage': include/linux/highmem.h:229:15: error: implicit declaration of function 'kmap_local_page'; did you mean 'kmap_to_page'? [-Werror=implicit-function-declaration] 229 | void *addr = kmap_local_page(page); | ^~~~~~~~~~~~~~~ | kmap_to_page include/linux/highmem.h:229:15: warning: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion] include/linux/highmem.h:231:2: error: implicit declaration of function 'kunmap_local' [-Werror=implicit-function-declaration] 231 | kunmap_local(addr); | ^~~~~~~~~~~~ include/linux/highmem.h: In function 'clear_highpage': include/linux/highmem.h:282:16: warning: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion] 282 | void *kaddr = kmap_local_page(page); | ^~~~~~~~~~~~~~~ include/linux/highmem.h: In function 'zero_user_segments': include/linux/highmem.h:291:16: warning: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion] 291 | void *kaddr = kmap_local_page(page); | ^~~~~~~~~~~~~~~ include/linux/highmem.h: In function 'copy_user_highpage': include/linux/highmem.h:324:8: warning: assignment to 'char *' from 'int' makes pointer from integer without a cast [-Wint-conversion] 324 | vfrom = kmap_local_page(from); | ^ include/linux/highmem.h:325:6: warning: assignment to 'char *' from 'int' makes pointer from integer without a cast [-Wint-conversion] 325 | vto = kmap_local_page(to); | ^ include/linux/highmem.h: In function 'copy_highpage': include/linux/highmem.h:339:8: warning: assignment to 'char *' from 'int' makes pointer from integer without a cast [-Wint-conversion] 339 | vfrom = kmap_local_page(from); | ^ include/linux/highmem.h:340:6: warning: assignment to 'char *' from 'int' makes pointer from integer without a cast [-Wint-conversion] 340 | vto = kmap_local_page(to); | ^ In file included from include/linux/blkdev.h:14, from include/linux/backing-dev.h:15, from drivers/char/mem.c:25: include/linux/pagemap.h: In function 'memcpy_page': >> include/linux/pagemap.h:1036:14: warning: initialization of 'char *' from 'int' makes pointer from integer without a cast [-Wint-conversion] 1036 | char *dst = kmap_local_page(dst_page); | ^~~~~~~~~~~~~~~ include/linux/pagemap.h:1037:14: warning: initialization of 'char *' from 'int' makes pointer from integer without a cast [-Wint-conversion] 1037 | char *src = kmap_local_page(src_page); | ^~~~~~~~~~~~~~~ include/linux/pagemap.h: In function 'memmove_page': include/linux/pagemap.h:1047:14: warning: initialization of 'char *' from 'int' makes pointer from integer without a cast [-Wint-conversion] 1047 | char *dst = kmap_local_page(dst_page); | ^~~~~~~~~~~~~~~ include/linux/pagemap.h:1048:14: warning: initialization of 'char *' from 'int' makes pointer from integer without a cast [-Wint-conversion] 1048 | char *src = kmap_local_page(src_page); | ^~~~~~~~~~~~~~~ include/linux/pagemap.h: In function 'memcpy_from_page': include/linux/pagemap.h:1056:15: warning: initialization of 'char *' from 'int' makes pointer from integer without a cast [-Wint-conversion] 1056 | char *from = kmap_local_page(page); | ^~~~~~~~~~~~~~~ include/linux/pagemap.h: In function 'memcpy_to_page': include/linux/pagemap.h:1063:13: warning: initialization of 'char *' from 'int' makes pointer from integer without a cast [-Wint-conversion] 1063 | char *to = kmap_local_page(page); | ^~~~~~~~~~~~~~~ include/linux/pagemap.h: In function 'memset_page': include/linux/pagemap.h:1070:15: warning: initialization of 'char *' from 'int' makes pointer from integer without a cast [-Wint-conversion] 1070 | char *addr = kmap_local_page(page); | ^~~~~~~~~~~~~~~ cc1: some warnings being treated as errors -- In file included from include/linux/pagemap.h:11, from include/linux/blkdev.h:14, from include/linux/blk-cgroup.h:23, from include/linux/writeback.h:14, from include/trace/events/random.h:8, from drivers/char/random.c:348: include/linux/highmem.h: In function 'clear_user_highpage': include/linux/highmem.h:229:15: error: implicit declaration of function 'kmap_local_page'; did you mean 'kmap_to_page'? [-Werror=implicit-function-declaration] 229 | void *addr = kmap_local_page(page); | ^~~~~~~~~~~~~~~ | kmap_to_page include/linux/highmem.h:229:15: warning: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion] include/linux/highmem.h:231:2: error: implicit declaration of function 'kunmap_local' [-Werror=implicit-function-declaration] 231 | kunmap_local(addr); | ^~~~~~~~~~~~ include/linux/highmem.h: In function 'clear_highpage': include/linux/highmem.h:282:16: warning: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion] 282 | void *kaddr = kmap_local_page(page); | ^~~~~~~~~~~~~~~ include/linux/highmem.h: In function 'zero_user_segments': include/linux/highmem.h:291:16: warning: initialization of 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion] 291 | void *kaddr = kmap_local_page(page); | ^~~~~~~~~~~~~~~ include/linux/highmem.h: In function 'copy_user_highpage': include/linux/highmem.h:324:8: warning: assignment to 'char *' from 'int' makes pointer from integer without a cast [-Wint-conversion] 324 | vfrom = kmap_local_page(from); | ^ include/linux/highmem.h:325:6: warning: assignment to 'char *' from 'int' makes pointer from integer without a cast [-Wint-conversion] 325 | vto = kmap_local_page(to); | ^ include/linux/highmem.h: In function 'copy_highpage': include/linux/highmem.h:339:8: warning: assignment to 'char *' from 'int' makes pointer from integer without a cast [-Wint-conversion] 339 | vfrom = kmap_local_page(from); | ^ include/linux/highmem.h:340:6: warning: assignment to 'char *' from 'int' makes pointer from integer without a cast [-Wint-conversion] 340 | vto = kmap_local_page(to); | ^ In file included from include/linux/blkdev.h:14, from include/linux/blk-cgroup.h:23, from include/linux/writeback.h:14, from include/trace/events/random.h:8, from drivers/char/random.c:348: include/linux/pagemap.h: In function 'memcpy_page': >> include/linux/pagemap.h:1036:14: warning: initialization of 'char *' from 'int' makes pointer from integer without a cast [-Wint-conversion] 1036 | char *dst = kmap_local_page(dst_page); | ^~~~~~~~~~~~~~~ include/linux/pagemap.h:1037:14: warning: initialization of 'char *' from 'int' makes pointer from integer without a cast [-Wint-conversion] 1037 | char *src = kmap_local_page(src_page); | ^~~~~~~~~~~~~~~ include/linux/pagemap.h: In function 'memmove_page': include/linux/pagemap.h:1047:14: warning: initialization of 'char *' from 'int' makes pointer from integer without a cast [-Wint-conversion] 1047 | char *dst = kmap_local_page(dst_page); | ^~~~~~~~~~~~~~~ include/linux/pagemap.h:1048:14: warning: initialization of 'char *' from 'int' makes pointer from integer without a cast [-Wint-conversion] 1048 | char *src = kmap_local_page(src_page); | ^~~~~~~~~~~~~~~ include/linux/pagemap.h: In function 'memcpy_from_page': include/linux/pagemap.h:1056:15: warning: initialization of 'char *' from 'int' makes pointer from integer without a cast [-Wint-conversion] 1056 | char *from = kmap_local_page(page); | ^~~~~~~~~~~~~~~ include/linux/pagemap.h: In function 'memcpy_to_page': include/linux/pagemap.h:1063:13: warning: initialization of 'char *' from 'int' makes pointer from integer without a cast [-Wint-conversion] 1063 | char *to = kmap_local_page(page); | ^~~~~~~~~~~~~~~ include/linux/pagemap.h: In function 'memset_page': include/linux/pagemap.h:1070:15: warning: initialization of 'char *' from 'int' makes pointer from integer without a cast [-Wint-conversion] 1070 | char *addr = kmap_local_page(page); | ^~~~~~~~~~~~~~~ drivers/char/random.c: At top level: drivers/char/random.c:2296:6: warning: no previous prototype for 'add_hwgenerator_randomness' [-Wmissing-prototypes] 2296 | void add_hwgenerator_randomness(const char *buffer, size_t count, | ^~~~~~~~~~~~~~~~~~~~~~~~~~ cc1: some warnings being treated as errors vim +1036 include/linux/pagemap.h 1031 1032 static inline void memcpy_page(struct page *dst_page, size_t dst_off, 1033 struct page *src_page, size_t src_off, 1034 size_t len) 1035 { > 1036 char *dst = kmap_local_page(dst_page); 1037 char *src = kmap_local_page(src_page); 1038 memcpy(dst + dst_off, src + src_off, len); 1039 kunmap_local(src); 1040 kunmap_local(dst); 1041 } 1042 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org --pWyiEgJYm5f9v55/ Content-Type: application/gzip Content-Disposition: attachment; filename=".config.gz" Content-Transfer-Encoding: base64 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 TrFoSkVxYubCKyYrR8vpin9VsJcjC1sAAA== --pWyiEgJYm5f9v55/--