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=-7.2 required=3.0 tests=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 03FBAC432C0 for ; Sat, 30 Nov 2019 22:51:53 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 8B4D02075C for ; Sat, 30 Nov 2019 22:51:52 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 8B4D02075C 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 DD3DE6B0003; Sat, 30 Nov 2019 17:51:51 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id D5D4F6B0005; Sat, 30 Nov 2019 17:51:51 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C25C86B0006; Sat, 30 Nov 2019 17:51:51 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0220.hostedemail.com [216.40.44.220]) by kanga.kvack.org (Postfix) with ESMTP id A2E8C6B0003 for ; Sat, 30 Nov 2019 17:51:51 -0500 (EST) Received: from smtpin21.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay03.hostedemail.com (Postfix) with SMTP id 46500824999B for ; Sat, 30 Nov 2019 22:51:51 +0000 (UTC) X-FDA: 76214442822.21.sock83_2d1cf2aa76604 X-HE-Tag: sock83_2d1cf2aa76604 X-Filterd-Recvd-Size: 21828 Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by imf27.hostedemail.com (Postfix) with ESMTP for ; Sat, 30 Nov 2019 22:51:49 +0000 (UTC) X-Amp-Result: UNKNOWN X-Amp-Original-Verdict: FILE UNKNOWN X-Amp-File-Uploaded: False Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by orsmga106.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 30 Nov 2019 14:51:47 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.69,263,1571727600"; d="gz'50?scan'50,208,50";a="411320467" Received: from lkp-server01.sh.intel.com (HELO lkp-server01) ([10.239.97.150]) by fmsmga006.fm.intel.com with ESMTP; 30 Nov 2019 14:51:46 -0800 Received: from kbuild by lkp-server01 with local (Exim 4.89) (envelope-from ) id 1ibBab-000CVC-Oe; Sun, 01 Dec 2019 06:51:45 +0800 Date: Sun, 1 Dec 2019 06:50:43 +0800 From: kbuild test robot To: Mike Rapoport Cc: kbuild-all@lists.01.org, Andrew Morton , Linux Memory Management List Subject: [linux-next:master 14297/14311] arch/m68k/mm/kmap.c:80:28: error: 'pmd_t {aka struct }' has no member named 'pmd'; did you mean 'pud'? Message-ID: <201912010600.qwNGTrbl%lkp@intel.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="34twbelm2qba62h2" Content-Disposition: inline User-Agent: NeoMutt/20170113 (1.7.2) 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: --34twbelm2qba62h2 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master head: 419593dad8439007452bb6f267861863b572c520 commit: 982c4ee0826df509856a178ae6dac80c3708323c [14297/14311] m68k: mm: use pgtable-nopXd instead of 4level-fixup config: m68k-m5475evb_defconfig (attached as .config) compiler: m68k-linux-gcc (GCC) 7.4.0 reproduce: wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross git checkout 982c4ee0826df509856a178ae6dac80c3708323c # save the attached .config to linux build tree GCC_VERSION=7.4.0 make.cross ARCH=m68k If you fix the issue, kindly add following tag Reported-by: kbuild test robot All errors (new ones prefixed by >>): arch/m68k/mm/kmap.c: In function '__free_io_area': arch/m68k/mm/kmap.c:76:24: error: passing argument 1 of 'pmd_offset' from incompatible pointer type [-Werror=incompatible-pointer-types] pmd_dir = pmd_offset(pgd_dir, virtaddr); ^~~~~~~ In file included from arch/m68k/include/asm/pgtable_mm.h:7:0, from arch/m68k/include/asm/pgtable.h:5, from include/linux/mm.h:99, from arch/m68k/mm/kmap.c:12: include/asm-generic/pgtable-nopmd.h:44:23: note: expected 'pud_t * {aka struct *}' but argument is of type 'pgd_t * {aka struct *}' static inline pmd_t * pmd_offset(pud_t * pud, unsigned long address) ^~~~~~~~~~ >> arch/m68k/mm/kmap.c:80:28: error: 'pmd_t {aka struct }' has no member named 'pmd'; did you mean 'pud'? int pmd_type = pmd_dir->pmd[pmd_off] & _DESCTYPE_MASK; ^~~ pud arch/m68k/mm/kmap.c:83:14: error: 'pmd_t {aka struct }' has no member named 'pmd'; did you mean 'pud'? pmd_dir->pmd[pmd_off] = 0; ^~~ pud arch/m68k/mm/kmap.c: In function 'kernel_set_cachemode': arch/m68k/mm/kmap.c:348:2: error: #endif without #if #endif ^~~~~ arch/m68k/mm/kmap.c:352:3: error: 'p4d_dir' undeclared (first use in this function); did you mean 'pmd_dir'? p4d_dir = p4d_offset(pgd_dir, virtaddr); ^~~~~~~ pmd_dir arch/m68k/mm/kmap.c:352:3: note: each undeclared identifier is reported only once for each function it appears in arch/m68k/mm/kmap.c:353:3: error: 'pud_dir' undeclared (first use in this function); did you mean 'p4d_dir'? pud_dir = pud_offset(p4d_dir, virtaddr); ^~~~~~~ p4d_dir cc1: some warnings being treated as errors vim +80 arch/m68k/mm/kmap.c 1bccc43c1010f2 Greg Ungerer 2011-03-28 @12 #include 1bccc43c1010f2 Greg Ungerer 2011-03-28 13 #include 1bccc43c1010f2 Greg Ungerer 2011-03-28 14 #include 1bccc43c1010f2 Greg Ungerer 2011-03-28 15 #include 1bccc43c1010f2 Greg Ungerer 2011-03-28 16 #include 1bccc43c1010f2 Greg Ungerer 2011-03-28 17 #include 1bccc43c1010f2 Greg Ungerer 2011-03-28 18 1bccc43c1010f2 Greg Ungerer 2011-03-28 19 #include 1bccc43c1010f2 Greg Ungerer 2011-03-28 20 #include 1bccc43c1010f2 Greg Ungerer 2011-03-28 21 #include 1bccc43c1010f2 Greg Ungerer 2011-03-28 22 #include 1bccc43c1010f2 Greg Ungerer 2011-03-28 23 #include 1bccc43c1010f2 Greg Ungerer 2011-03-28 24 1bccc43c1010f2 Greg Ungerer 2011-03-28 25 #undef DEBUG 1bccc43c1010f2 Greg Ungerer 2011-03-28 26 1bccc43c1010f2 Greg Ungerer 2011-03-28 27 #define PTRTREESIZE (256*1024) 1bccc43c1010f2 Greg Ungerer 2011-03-28 28 1bccc43c1010f2 Greg Ungerer 2011-03-28 29 /* 1bccc43c1010f2 Greg Ungerer 2011-03-28 30 * For 040/060 we can use the virtual memory area like other architectures, f6fc30dbb720e3 Geert Uytterhoeven 2013-12-17 31 * but for 020/030 we want to use early termination page descriptors and we 1bccc43c1010f2 Greg Ungerer 2011-03-28 32 * can't mix this with normal page descriptors, so we have to copy that code f6fc30dbb720e3 Geert Uytterhoeven 2013-12-17 33 * (mm/vmalloc.c) and return appropriately aligned addresses. 1bccc43c1010f2 Greg Ungerer 2011-03-28 34 */ 1bccc43c1010f2 Greg Ungerer 2011-03-28 35 1bccc43c1010f2 Greg Ungerer 2011-03-28 36 #ifdef CPU_M68040_OR_M68060_ONLY 1bccc43c1010f2 Greg Ungerer 2011-03-28 37 1bccc43c1010f2 Greg Ungerer 2011-03-28 38 #define IO_SIZE PAGE_SIZE 1bccc43c1010f2 Greg Ungerer 2011-03-28 39 1bccc43c1010f2 Greg Ungerer 2011-03-28 40 static inline struct vm_struct *get_io_area(unsigned long size) 1bccc43c1010f2 Greg Ungerer 2011-03-28 41 { 1bccc43c1010f2 Greg Ungerer 2011-03-28 42 return get_vm_area(size, VM_IOREMAP); 1bccc43c1010f2 Greg Ungerer 2011-03-28 43 } 1bccc43c1010f2 Greg Ungerer 2011-03-28 44 1bccc43c1010f2 Greg Ungerer 2011-03-28 45 1bccc43c1010f2 Greg Ungerer 2011-03-28 46 static inline void free_io_area(void *addr) 1bccc43c1010f2 Greg Ungerer 2011-03-28 47 { 1bccc43c1010f2 Greg Ungerer 2011-03-28 48 vfree((void *)(PAGE_MASK & (unsigned long)addr)); 1bccc43c1010f2 Greg Ungerer 2011-03-28 49 } 1bccc43c1010f2 Greg Ungerer 2011-03-28 50 ^1da177e4c3f41 Linus Torvalds 2005-04-16 51 #else 1bccc43c1010f2 Greg Ungerer 2011-03-28 52 1bccc43c1010f2 Greg Ungerer 2011-03-28 53 #define IO_SIZE (256*1024) 1bccc43c1010f2 Greg Ungerer 2011-03-28 54 1bccc43c1010f2 Greg Ungerer 2011-03-28 55 static struct vm_struct *iolist; 1bccc43c1010f2 Greg Ungerer 2011-03-28 56 076863473c0cdb Christoph Hellwig 2019-08-13 57 /* 076863473c0cdb Christoph Hellwig 2019-08-13 58 * __free_io_area unmaps nearly everything, so be careful 076863473c0cdb Christoph Hellwig 2019-08-13 59 * Currently it doesn't free pointer/page tables anymore but this 076863473c0cdb Christoph Hellwig 2019-08-13 60 * wasn't used anyway and might be added later. 076863473c0cdb Christoph Hellwig 2019-08-13 61 */ 076863473c0cdb Christoph Hellwig 2019-08-13 62 static void __free_io_area(void *addr, unsigned long size) 076863473c0cdb Christoph Hellwig 2019-08-13 63 { 076863473c0cdb Christoph Hellwig 2019-08-13 64 unsigned long virtaddr = (unsigned long)addr; 076863473c0cdb Christoph Hellwig 2019-08-13 65 pgd_t *pgd_dir; 076863473c0cdb Christoph Hellwig 2019-08-13 66 pmd_t *pmd_dir; 076863473c0cdb Christoph Hellwig 2019-08-13 67 pte_t *pte_dir; 076863473c0cdb Christoph Hellwig 2019-08-13 68 076863473c0cdb Christoph Hellwig 2019-08-13 69 while ((long)size > 0) { 076863473c0cdb Christoph Hellwig 2019-08-13 70 pgd_dir = pgd_offset_k(virtaddr); 076863473c0cdb Christoph Hellwig 2019-08-13 71 if (pgd_bad(*pgd_dir)) { 076863473c0cdb Christoph Hellwig 2019-08-13 72 printk("iounmap: bad pgd(%08lx)\n", pgd_val(*pgd_dir)); 076863473c0cdb Christoph Hellwig 2019-08-13 73 pgd_clear(pgd_dir); 076863473c0cdb Christoph Hellwig 2019-08-13 74 return; 076863473c0cdb Christoph Hellwig 2019-08-13 75 } 076863473c0cdb Christoph Hellwig 2019-08-13 76 pmd_dir = pmd_offset(pgd_dir, virtaddr); 076863473c0cdb Christoph Hellwig 2019-08-13 77 076863473c0cdb Christoph Hellwig 2019-08-13 78 if (CPU_IS_020_OR_030) { 076863473c0cdb Christoph Hellwig 2019-08-13 79 int pmd_off = (virtaddr/PTRTREESIZE) & 15; 076863473c0cdb Christoph Hellwig 2019-08-13 @80 int pmd_type = pmd_dir->pmd[pmd_off] & _DESCTYPE_MASK; 076863473c0cdb Christoph Hellwig 2019-08-13 81 076863473c0cdb Christoph Hellwig 2019-08-13 82 if (pmd_type == _PAGE_PRESENT) { 076863473c0cdb Christoph Hellwig 2019-08-13 83 pmd_dir->pmd[pmd_off] = 0; 076863473c0cdb Christoph Hellwig 2019-08-13 84 virtaddr += PTRTREESIZE; 076863473c0cdb Christoph Hellwig 2019-08-13 85 size -= PTRTREESIZE; 076863473c0cdb Christoph Hellwig 2019-08-13 86 continue; 076863473c0cdb Christoph Hellwig 2019-08-13 87 } else if (pmd_type == 0) 076863473c0cdb Christoph Hellwig 2019-08-13 88 continue; 076863473c0cdb Christoph Hellwig 2019-08-13 89 } 076863473c0cdb Christoph Hellwig 2019-08-13 90 076863473c0cdb Christoph Hellwig 2019-08-13 91 if (pmd_bad(*pmd_dir)) { 076863473c0cdb Christoph Hellwig 2019-08-13 92 printk("iounmap: bad pmd (%08lx)\n", pmd_val(*pmd_dir)); 076863473c0cdb Christoph Hellwig 2019-08-13 93 pmd_clear(pmd_dir); 076863473c0cdb Christoph Hellwig 2019-08-13 94 return; 076863473c0cdb Christoph Hellwig 2019-08-13 95 } 076863473c0cdb Christoph Hellwig 2019-08-13 96 pte_dir = pte_offset_kernel(pmd_dir, virtaddr); 076863473c0cdb Christoph Hellwig 2019-08-13 97 076863473c0cdb Christoph Hellwig 2019-08-13 98 pte_val(*pte_dir) = 0; 076863473c0cdb Christoph Hellwig 2019-08-13 99 virtaddr += PAGE_SIZE; 076863473c0cdb Christoph Hellwig 2019-08-13 100 size -= PAGE_SIZE; 076863473c0cdb Christoph Hellwig 2019-08-13 101 } 076863473c0cdb Christoph Hellwig 2019-08-13 102 076863473c0cdb Christoph Hellwig 2019-08-13 103 flush_tlb_all(); 076863473c0cdb Christoph Hellwig 2019-08-13 104 } 076863473c0cdb Christoph Hellwig 2019-08-13 105 :::::: The code at line 80 was first introduced by commit :::::: 076863473c0cdbf7fdcbf97e1878028ccde3b4ec m68k: rename __iounmap and mark it static :::::: TO: Christoph Hellwig :::::: CC: Christoph Hellwig --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org Intel Corporation --34twbelm2qba62h2 Content-Type: application/gzip Content-Disposition: attachment; filename=".config.gz" Content-Transfer-Encoding: base64 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 --34twbelm2qba62h2--