Received: by 10.223.185.116 with SMTP id b49csp570900wrg; Wed, 21 Feb 2018 03:23:14 -0800 (PST) X-Google-Smtp-Source: AH8x226mPwar8FKLXvigp1VpRz5J7z4nPjG2bpTXdS6wFQRE+JLb9Vi7D05VKtjHLSqvSiPQ092U X-Received: by 2002:a17:902:2bc5:: with SMTP id l63-v6mr2897445plb.108.1519212194233; Wed, 21 Feb 2018 03:23:14 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1519212194; cv=none; d=google.com; s=arc-20160816; b=cavBWly8ThkulMeJCwz4AdF+ks0AMCUWxFR5IBsqIho7J6QYgnY84+eKBrtJjLL33C u9a5HcRTqB8fvIoK4gEFIrcfB8KWixWOIBxlu5mRFH5eL3wTwgjCILym4d5NvPlZbxaB VRsGau6VzsYZM9lhVtj+UhCRDqfsMiYCP7OM8Lw4+UUzLKi6uxrYLIIZ9/P1ZLYpEpNU dDDXFrIsvuuwvCOY9YnXjU8algDOFYJWSBlAdP/590f12RBOBvakmI0YJy/1olc/RoUM HuvIZjyMARqeuCi+6VAMrhVVn6+VQxrk+QU+1galAFpTan7wZIIdylLvu9uCy93zUzPU cjGQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :references:in-reply-to:mime-version:dkim-signature :arc-authentication-results; bh=rYDjOJhocn55SjPoBaJRbP/epMA+HQ2jIxn9zTVB2m8=; b=KB173pLX+Z/kBY1GY9rX/zwwkdRqLtcqUjVklwplIyeetNgcYL10Eca8C35DN4o1sR o4EcUDc65pJ+KcnSpqeTrovxN5KtWkpsqElcenj65kCfY4i5+5x0FplBArQE/kyszXVu 5SYgs3wkujWM0S5hW3Co9s1N57Djk7ys0ngZXKhL8HWWhiO0WgdLoSGYxMSgLPCJLId2 8tHNBFIbAvVLtule0dqymV8+DrBG1/jH5bu/G5Z6AEncP2imfTfWYsqYySTepmz+3EwP vaUTZbIJZ1T71KnKglQ1uuYrsyJty//IymEQjBQXq7zpxqw6Ia8ZQQU5PGH4HMNrMexz K13w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=pP1CS261; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id u19-v6si1049308plq.120.2018.02.21.03.22.59; Wed, 21 Feb 2018 03:23:14 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=pP1CS261; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753175AbeBULWH (ORCPT + 99 others); Wed, 21 Feb 2018 06:22:07 -0500 Received: from mail-vk0-f66.google.com ([209.85.213.66]:39940 "EHLO mail-vk0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932182AbeBULWC (ORCPT ); Wed, 21 Feb 2018 06:22:02 -0500 Received: by mail-vk0-f66.google.com with SMTP id o17so711090vke.7; Wed, 21 Feb 2018 03:22:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=rYDjOJhocn55SjPoBaJRbP/epMA+HQ2jIxn9zTVB2m8=; b=pP1CS261P96Fol6Jqclm46CKuUeI9GPG9hgidQ64CFnwqcWDVALlZAcH1SG0sLLHSQ 2L4T1LdDHSTYc7s4DTJJPqd/ndEgUvdm4nDpk1wxx3NyEzTAI3RiabevUBHnUHoxgb2J 8EJOdv1zwX4Dki28v4WnlatzYEOV4L9z0zHHWRcsPxVUVzn9wwbRM7ZLlDWkED8/5BoU vBhN9IJwOGUlUAlzcHcNVT72vMB3TsFfxAZeLUpFsMsbQtKDjCvgf0cUoENANEGhvtcG CJxb4Ga10ltjNNkqIv2jLBjhZrio2Dz5FYRPFmmloeAPfD4TNBmSaGsWoHhvzNfqkyVg /zBA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=rYDjOJhocn55SjPoBaJRbP/epMA+HQ2jIxn9zTVB2m8=; b=hvywpD/sXpgoQEdZoqejt1hs11+uz8WLJmI2ufT4JKdVsN2U3EmKw0a6gSGdsuKf3v uTxjlI9ZB22J8JHZIE33I5XZbasLrrlkdb80ILNHCLlP8/MrP5L3qR+HTic6MMd1PZKm elECzZp/V2c5iZnBbEyI0t628NCA9kQGrkExKb44FiTapa+P6rFM7vlrWWYzyjmJaEFH z0tDkSbAPmzmQCFIMUIfOEfNKVxRpCYovxeluCwAlWvRqXx23y1+e/ZaU5R9/vQFQqaJ e6dDPgvB2lSRWPll5wWiAMN5uhiC2XBR9oc+qPRSBwhVA0MCDZLq+RsBOI0S46vsOZjC a/fQ== X-Gm-Message-State: APf1xPCKhhZjOi7DGV1d6twQLY+c2AXcVBSWVnBzVHZzr9kjAbJkiiS9 FAQNYcuNgm0wJ/lBoE3X4Y/15BRi3bAsSmJoN3o= X-Received: by 10.31.209.69 with SMTP id i66mr2027258vkg.95.1519212120528; Wed, 21 Feb 2018 03:22:00 -0800 (PST) MIME-Version: 1.0 Received: by 10.159.49.66 with HTTP; Wed, 21 Feb 2018 03:21:20 -0800 (PST) In-Reply-To: <201802161853.FKQRlYLX%fengguang.wu@intel.com> References: <201802161853.FKQRlYLX%fengguang.wu@intel.com> From: Greentime Hu Date: Wed, 21 Feb 2018 19:21:20 +0800 Message-ID: Subject: Re: [PATCH v7 02/37] asm-generic/io.h: move ioremap_nocache/ioremap_uc/ioremap_wc/ioremap_wt out of ifndef CONFIG_MMU To: kbuild test robot Cc: kbuild-all@01.org, Greentime , Linux Kernel Mailing List , Arnd Bergmann , linux-arch , Thomas Gleixner , Jason Cooper , Marc Zyngier , Rob Herring , netdev , Vincent Chen , DTML , Al Viro , David Howells , Will Deacon , Daniel Lezcano , linux-serial@vger.kernel.org, Geert Uytterhoeven , Linus Walleij , Mark Rutland , Greg KH , Guo Ren , Randy Dunlap , David Miller , Jonas Bonn , Stefan Kristiansson , Stafford Horne , Vincent Chen Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 2018-02-16 18:47 GMT+08:00 kbuild test robot : > Hi Greentime, > > Thank you for the patch! Yet something to improve: > > [auto build test ERROR on linus/master] > [also build test ERROR on v4.16-rc1 next-20180216] > [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] > > url: https://github.com/0day-ci/linux/commits/Greentime-Hu/Andes-nds32-Linux-Kernel-Port/20180216-155013 > config: xtensa-allmodconfig (attached as .config) > compiler: xtensa-linux-gcc (GCC) 7.2.0 > reproduce: > wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross > chmod +x ~/bin/make.cross > # save the attached .config to linux build tree > make.cross ARCH=xtensa > > All error/warnings (new ones prefixed by >>): > > In file included from /kbuild/src/consumer/arch/xtensa/include/asm/io.h:82:0, > from /kbuild/src/consumer/include/linux/io.h:25, > from /kbuild/src/consumer/drivers//staging/comedi/drivers/comedi_8254.c:118: >>> /kbuild/src/consumer/include/asm-generic/io.h:864:15: error: conflicting types for 'ioremap' > void __iomem *ioremap(phys_addr_t phys_addr, size_t size); > ^~~~~~~ > In file included from /kbuild/src/consumer/include/linux/io.h:25:0, > from /kbuild/src/consumer/drivers//staging/comedi/drivers/comedi_8254.c:118: > /kbuild/src/consumer/arch/xtensa/include/asm/io.h:59:29: note: previous definition of 'ioremap' was here > static inline void __iomem *ioremap(unsigned long offset, unsigned long size) > ^~~~~~~ > In file included from /kbuild/src/consumer/arch/xtensa/include/asm/io.h:82:0, > from /kbuild/src/consumer/include/linux/io.h:25, > from /kbuild/src/consumer/drivers//staging/comedi/drivers/comedi_8254.c:118: >>> /kbuild/src/consumer/include/asm-generic/io.h:865:25: error: conflicting types for 'ioremap_nocache' > #define ioremap_nocache ioremap_nocache > ^ >>> /kbuild/src/consumer/include/asm-generic/io.h:866:29: note: in expansion of macro 'ioremap_nocache' > static inline void __iomem *ioremap_nocache(phys_addr_t offset, size_t size) > ^~~~~~~~~~~~~~~ > In file included from /kbuild/src/consumer/include/linux/io.h:25:0, > from /kbuild/src/consumer/drivers//staging/comedi/drivers/comedi_8254.c:118: > /kbuild/src/consumer/arch/xtensa/include/asm/io.h:35:29: note: previous definition of 'ioremap_nocache' was here > static inline void __iomem *ioremap_nocache(unsigned long offset, > ^~~~~~~~~~~~~~~ > -- > In file included from /kbuild/src/consumer/arch/xtensa/include/asm/io.h:82:0, > from /kbuild/src/consumer/include/linux/io.h:25, > from /kbuild/src/consumer/include/linux/irq.h:25, > from /kbuild/src/consumer/include/asm-generic/hardirq.h:13, > from ./arch/xtensa/include/generated/asm/hardirq.h:1, > from /kbuild/src/consumer/include/linux/hardirq.h:9, > from /kbuild/src/consumer/include/linux/interrupt.h:13, > from /kbuild/src/consumer/drivers//scsi/sym53c8xx_2/sym_glue.h:45, > from /kbuild/src/consumer/drivers//scsi/sym53c8xx_2/sym_fw.c:40: >>> /kbuild/src/consumer/include/asm-generic/io.h:864:15: error: conflicting types for 'ioremap' > void __iomem *ioremap(phys_addr_t phys_addr, size_t size); > ^~~~~~~ > In file included from /kbuild/src/consumer/include/linux/io.h:25:0, > from /kbuild/src/consumer/include/linux/irq.h:25, > from /kbuild/src/consumer/include/asm-generic/hardirq.h:13, > from ./arch/xtensa/include/generated/asm/hardirq.h:1, > from /kbuild/src/consumer/include/linux/hardirq.h:9, > from /kbuild/src/consumer/include/linux/interrupt.h:13, > from /kbuild/src/consumer/drivers//scsi/sym53c8xx_2/sym_glue.h:45, > from /kbuild/src/consumer/drivers//scsi/sym53c8xx_2/sym_fw.c:40: > /kbuild/src/consumer/arch/xtensa/include/asm/io.h:59:29: note: previous definition of 'ioremap' was here > static inline void __iomem *ioremap(unsigned long offset, unsigned long size) > ^~~~~~~ > In file included from /kbuild/src/consumer/arch/xtensa/include/asm/io.h:82:0, > from /kbuild/src/consumer/include/linux/io.h:25, > from /kbuild/src/consumer/include/linux/irq.h:25, > from /kbuild/src/consumer/include/asm-generic/hardirq.h:13, > from ./arch/xtensa/include/generated/asm/hardirq.h:1, > from /kbuild/src/consumer/include/linux/hardirq.h:9, > from /kbuild/src/consumer/include/linux/interrupt.h:13, > from /kbuild/src/consumer/drivers//scsi/sym53c8xx_2/sym_glue.h:45, > from /kbuild/src/consumer/drivers//scsi/sym53c8xx_2/sym_fw.c:40: >>> /kbuild/src/consumer/include/asm-generic/io.h:865:25: error: conflicting types for 'ioremap_nocache' > #define ioremap_nocache ioremap_nocache > ^ >>> /kbuild/src/consumer/include/asm-generic/io.h:866:29: note: in expansion of macro 'ioremap_nocache' > static inline void __iomem *ioremap_nocache(phys_addr_t offset, size_t size) > ^~~~~~~~~~~~~~~ > In file included from /kbuild/src/consumer/include/linux/io.h:25:0, > from /kbuild/src/consumer/include/linux/irq.h:25, > from /kbuild/src/consumer/include/asm-generic/hardirq.h:13, > from ./arch/xtensa/include/generated/asm/hardirq.h:1, > from /kbuild/src/consumer/include/linux/hardirq.h:9, > from /kbuild/src/consumer/include/linux/interrupt.h:13, > from /kbuild/src/consumer/drivers//scsi/sym53c8xx_2/sym_glue.h:45, > from /kbuild/src/consumer/drivers//scsi/sym53c8xx_2/sym_fw.c:40: > /kbuild/src/consumer/arch/xtensa/include/asm/io.h:35:29: note: previous definition of 'ioremap_nocache' was here > static inline void __iomem *ioremap_nocache(unsigned long offset, > ^~~~~~~~~~~~~~~ > In file included from /kbuild/src/consumer/drivers//scsi/sym53c8xx_2/sym_glue.h:64:0, > from /kbuild/src/consumer/drivers//scsi/sym53c8xx_2/sym_fw.c:40: > /kbuild/src/consumer/drivers//scsi/sym53c8xx_2/sym_defs.h:109:0: warning: "WSR" redefined > #define WSR 0x01 /* sta: wide scsi received [W]*/ > > In file included from /kbuild/src/consumer/arch/xtensa/include/asm/bitops.h:22:0, > from /kbuild/src/consumer/include/linux/bitops.h:38, > from /kbuild/src/consumer/include/linux/kernel.h:11, > from /kbuild/src/consumer/include/linux/list.h:9, > from /kbuild/src/consumer/include/linux/wait.h:7, > from /kbuild/src/consumer/include/linux/completion.h:12, > from /kbuild/src/consumer/drivers//scsi/sym53c8xx_2/sym_glue.h:43, > from /kbuild/src/consumer/drivers//scsi/sym53c8xx_2/sym_fw.c:40: > /kbuild/src/consumer/arch/xtensa/include/asm/processor.h:220:0: note: this is the location of the previous definition > #define WSR(v,sr) __asm__ __volatile__ ("wsr %0,"__stringify(sr) :: "a"(v)); > > -- > In file included from /kbuild/src/consumer/arch/xtensa/include/asm/io.h:82:0, > from /kbuild/src/consumer/include/linux/io.h:25, > from /kbuild/src/consumer/include/linux/irq.h:25, > from /kbuild/src/consumer/include/asm-generic/hardirq.h:13, > from ./arch/xtensa/include/generated/asm/hardirq.h:1, > from /kbuild/src/consumer/include/linux/hardirq.h:9, > from /kbuild/src/consumer/include/linux/interrupt.h:13, > from /kbuild/src/consumer/include/linux/pci.h:32, > from /kbuild/src/consumer/drivers//net/ethernet/intel/ixgbe/ixgbe_main.c:31: >>> /kbuild/src/consumer/include/asm-generic/io.h:864:15: error: conflicting types for 'ioremap' > void __iomem *ioremap(phys_addr_t phys_addr, size_t size); > ^~~~~~~ > In file included from /kbuild/src/consumer/include/linux/io.h:25:0, > from /kbuild/src/consumer/include/linux/irq.h:25, > from /kbuild/src/consumer/include/asm-generic/hardirq.h:13, > from ./arch/xtensa/include/generated/asm/hardirq.h:1, > from /kbuild/src/consumer/include/linux/hardirq.h:9, > from /kbuild/src/consumer/include/linux/interrupt.h:13, > from /kbuild/src/consumer/include/linux/pci.h:32, > from /kbuild/src/consumer/drivers//net/ethernet/intel/ixgbe/ixgbe_main.c:31: > /kbuild/src/consumer/arch/xtensa/include/asm/io.h:59:29: note: previous definition of 'ioremap' was here > static inline void __iomem *ioremap(unsigned long offset, unsigned long size) > ^~~~~~~ > In file included from /kbuild/src/consumer/arch/xtensa/include/asm/io.h:82:0, > from /kbuild/src/consumer/include/linux/io.h:25, > from /kbuild/src/consumer/include/linux/irq.h:25, > from /kbuild/src/consumer/include/asm-generic/hardirq.h:13, > from ./arch/xtensa/include/generated/asm/hardirq.h:1, > from /kbuild/src/consumer/include/linux/hardirq.h:9, > from /kbuild/src/consumer/include/linux/interrupt.h:13, > from /kbuild/src/consumer/include/linux/pci.h:32, > from /kbuild/src/consumer/drivers//net/ethernet/intel/ixgbe/ixgbe_main.c:31: >>> /kbuild/src/consumer/include/asm-generic/io.h:865:25: error: conflicting types for 'ioremap_nocache' > #define ioremap_nocache ioremap_nocache > ^ >>> /kbuild/src/consumer/include/asm-generic/io.h:866:29: note: in expansion of macro 'ioremap_nocache' > static inline void __iomem *ioremap_nocache(phys_addr_t offset, size_t size) > ^~~~~~~~~~~~~~~ > In file included from /kbuild/src/consumer/include/linux/io.h:25:0, > from /kbuild/src/consumer/include/linux/irq.h:25, > from /kbuild/src/consumer/include/asm-generic/hardirq.h:13, > from ./arch/xtensa/include/generated/asm/hardirq.h:1, > from /kbuild/src/consumer/include/linux/hardirq.h:9, > from /kbuild/src/consumer/include/linux/interrupt.h:13, > from /kbuild/src/consumer/include/linux/pci.h:32, > from /kbuild/src/consumer/drivers//net/ethernet/intel/ixgbe/ixgbe_main.c:31: > /kbuild/src/consumer/arch/xtensa/include/asm/io.h:35:29: note: previous definition of 'ioremap_nocache' was here > static inline void __iomem *ioremap_nocache(unsigned long offset, > ^~~~~~~~~~~~~~~ > In file included from /kbuild/src/consumer/arch/xtensa/include/asm/atomic.h:21:0, > from /kbuild/src/consumer/include/linux/atomic.h:5, > from /kbuild/src/consumer/include/linux/debug_locks.h:6, > from /kbuild/src/consumer/include/linux/lockdep.h:28, > from /kbuild/src/consumer/include/linux/spinlock_types.h:18, > from /kbuild/src/consumer/include/linux/spinlock.h:82, > from /kbuild/src/consumer/include/linux/seqlock.h:36, > from /kbuild/src/consumer/include/linux/time.h:6, > from /kbuild/src/consumer/include/linux/stat.h:19, > from /kbuild/src/consumer/include/linux/module.h:10, > from /kbuild/src/consumer/drivers//net/ethernet/intel/ixgbe/ixgbe_main.c:30: > /kbuild/src/consumer/drivers//net/ethernet/intel/ixgbe/ixgbe_main.c: In function 'ixgbe_xdp_setup': > /kbuild/src/consumer/arch/xtensa/include/asm/cmpxchg.h:139:3: warning: value computed is not used [-Wunused-value] > ((__typeof__(*(ptr)))__xchg((unsigned long)(x),(ptr),sizeof(*(ptr)))) > ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > /kbuild/src/consumer/drivers//net/ethernet/intel/ixgbe/ixgbe_main.c:9949:4: note: in expansion of macro 'xchg' > xchg(&adapter->rx_ring[i]->xdp_prog, adapter->xdp_prog); > ^~~~ > -- > In file included from /kbuild/src/consumer/arch/xtensa/include/asm/io.h:82:0, > from /kbuild/src/consumer/include/linux/gameport.h:11, > from /kbuild/src/consumer/drivers//input/joystick/analog.c:36: >>> /kbuild/src/consumer/include/asm-generic/io.h:864:15: error: conflicting types for 'ioremap' > void __iomem *ioremap(phys_addr_t phys_addr, size_t size); > ^~~~~~~ > In file included from /kbuild/src/consumer/include/linux/gameport.h:11:0, > from /kbuild/src/consumer/drivers//input/joystick/analog.c:36: > /kbuild/src/consumer/arch/xtensa/include/asm/io.h:59:29: note: previous definition of 'ioremap' was here > static inline void __iomem *ioremap(unsigned long offset, unsigned long size) > ^~~~~~~ > In file included from /kbuild/src/consumer/arch/xtensa/include/asm/io.h:82:0, > from /kbuild/src/consumer/include/linux/gameport.h:11, > from /kbuild/src/consumer/drivers//input/joystick/analog.c:36: >>> /kbuild/src/consumer/include/asm-generic/io.h:865:25: error: conflicting types for 'ioremap_nocache' > #define ioremap_nocache ioremap_nocache > ^ >>> /kbuild/src/consumer/include/asm-generic/io.h:866:29: note: in expansion of macro 'ioremap_nocache' > static inline void __iomem *ioremap_nocache(phys_addr_t offset, size_t size) > ^~~~~~~~~~~~~~~ > In file included from /kbuild/src/consumer/include/linux/gameport.h:11:0, > from /kbuild/src/consumer/drivers//input/joystick/analog.c:36: > /kbuild/src/consumer/arch/xtensa/include/asm/io.h:35:29: note: previous definition of 'ioremap_nocache' was here > static inline void __iomem *ioremap_nocache(unsigned long offset, > ^~~~~~~~~~~~~~~ > /kbuild/src/consumer/drivers//input/joystick/analog.c:176:2: warning: #warning Precise timer not defined for this architecture. [-Wcpp] > #warning Precise timer not defined for this architecture. > ^~~~~~~ > -- > In file included from /kbuild/src/consumer/arch/xtensa/include/asm/io.h:82:0, > from /kbuild/src/consumer/include/linux/io.h:25, > from /kbuild/src/consumer/include/linux/irq.h:25, > from /kbuild/src/consumer/include/asm-generic/hardirq.h:13, > from ./arch/xtensa/include/generated/asm/hardirq.h:1, > from /kbuild/src/consumer/include/linux/hardirq.h:9, > from /kbuild/src/consumer/include/linux/interrupt.h:13, > from /kbuild/src/consumer/drivers//infiniband/hw/bnxt_re/ib_verbs.c:39: >>> /kbuild/src/consumer/include/asm-generic/io.h:864:15: error: conflicting types for 'ioremap' > void __iomem *ioremap(phys_addr_t phys_addr, size_t size); > ^~~~~~~ > In file included from /kbuild/src/consumer/include/linux/io.h:25:0, > from /kbuild/src/consumer/include/linux/irq.h:25, > from /kbuild/src/consumer/include/asm-generic/hardirq.h:13, > from ./arch/xtensa/include/generated/asm/hardirq.h:1, > from /kbuild/src/consumer/include/linux/hardirq.h:9, > from /kbuild/src/consumer/include/linux/interrupt.h:13, > from /kbuild/src/consumer/drivers//infiniband/hw/bnxt_re/ib_verbs.c:39: > /kbuild/src/consumer/arch/xtensa/include/asm/io.h:59:29: note: previous definition of 'ioremap' was here > static inline void __iomem *ioremap(unsigned long offset, unsigned long size) > ^~~~~~~ > In file included from /kbuild/src/consumer/arch/xtensa/include/asm/io.h:82:0, > from /kbuild/src/consumer/include/linux/io.h:25, > from /kbuild/src/consumer/include/linux/irq.h:25, > from /kbuild/src/consumer/include/asm-generic/hardirq.h:13, > from ./arch/xtensa/include/generated/asm/hardirq.h:1, > from /kbuild/src/consumer/include/linux/hardirq.h:9, > from /kbuild/src/consumer/include/linux/interrupt.h:13, > from /kbuild/src/consumer/drivers//infiniband/hw/bnxt_re/ib_verbs.c:39: >>> /kbuild/src/consumer/include/asm-generic/io.h:865:25: error: conflicting types for 'ioremap_nocache' > #define ioremap_nocache ioremap_nocache > ^ >>> /kbuild/src/consumer/include/asm-generic/io.h:866:29: note: in expansion of macro 'ioremap_nocache' > static inline void __iomem *ioremap_nocache(phys_addr_t offset, size_t size) > ^~~~~~~~~~~~~~~ > In file included from /kbuild/src/consumer/include/linux/io.h:25:0, > from /kbuild/src/consumer/include/linux/irq.h:25, > from /kbuild/src/consumer/include/asm-generic/hardirq.h:13, > from ./arch/xtensa/include/generated/asm/hardirq.h:1, > from /kbuild/src/consumer/include/linux/hardirq.h:9, > from /kbuild/src/consumer/include/linux/interrupt.h:13, > from /kbuild/src/consumer/drivers//infiniband/hw/bnxt_re/ib_verbs.c:39: > /kbuild/src/consumer/arch/xtensa/include/asm/io.h:35:29: note: previous definition of 'ioremap_nocache' was here > static inline void __iomem *ioremap_nocache(unsigned long offset, > ^~~~~~~~~~~~~~~ > In file included from /kbuild/src/consumer/include/linux/kernel.h:11:0, > from /kbuild/src/consumer/include/linux/interrupt.h:6, > from /kbuild/src/consumer/drivers//infiniband/hw/bnxt_re/ib_verbs.c:39: > /kbuild/src/consumer/drivers//infiniband/hw/bnxt_re/ib_verbs.c: In function 'bnxt_re_query_device': > /kbuild/src/consumer/include/linux/bitops.h:7:24: warning: left shift count >= width of type [-Wshift-count-overflow] > #define BIT(nr) (1UL << (nr)) > ^ > /kbuild/src/consumer/drivers//infiniband/hw/bnxt_re/bnxt_re.h:61:34: note: in expansion of macro 'BIT' > #define BNXT_RE_MAX_MR_SIZE_HIGH BIT(39) > ^~~ > /kbuild/src/consumer/drivers//infiniband/hw/bnxt_re/bnxt_re.h:62:30: note: in expansion of macro 'BNXT_RE_MAX_MR_SIZE_HIGH' > #define BNXT_RE_MAX_MR_SIZE BNXT_RE_MAX_MR_SIZE_HIGH > ^~~~~~~~~~~~~~~~~~~~~~~~ > /kbuild/src/consumer/drivers//infiniband/hw/bnxt_re/ib_verbs.c:149:25: note: in expansion of macro 'BNXT_RE_MAX_MR_SIZE' > ib_attr->max_mr_size = BNXT_RE_MAX_MR_SIZE; > ^~~~~~~~~~~~~~~~~~~ > /kbuild/src/consumer/drivers//infiniband/hw/bnxt_re/ib_verbs.c: In function 'bnxt_re_reg_user_mr': > /kbuild/src/consumer/include/linux/bitops.h:7:24: warning: left shift count >= width of type [-Wshift-count-overflow] > #define BIT(nr) (1UL << (nr)) > ^ > /kbuild/src/consumer/drivers//infiniband/hw/bnxt_re/bnxt_re.h:61:34: note: in expansion of macro 'BIT' > #define BNXT_RE_MAX_MR_SIZE_HIGH BIT(39) > ^~~ > /kbuild/src/consumer/drivers//infiniband/hw/bnxt_re/bnxt_re.h:62:30: note: in expansion of macro 'BNXT_RE_MAX_MR_SIZE_HIGH' > #define BNXT_RE_MAX_MR_SIZE BNXT_RE_MAX_MR_SIZE_HIGH > ^~~~~~~~~~~~~~~~~~~~~~~~ > /kbuild/src/consumer/drivers//infiniband/hw/bnxt_re/ib_verbs.c:3553:15: note: in expansion of macro 'BNXT_RE_MAX_MR_SIZE' > if (length > BNXT_RE_MAX_MR_SIZE) { > ^~~~~~~~~~~~~~~~~~~ > /kbuild/src/consumer/include/linux/bitops.h:7:24: warning: left shift count >= width of type [-Wshift-count-overflow] > #define BIT(nr) (1UL << (nr)) > ^ > /kbuild/src/consumer/drivers//infiniband/hw/bnxt_re/bnxt_re.h:61:34: note: in expansion of macro 'BIT' > #define BNXT_RE_MAX_MR_SIZE_HIGH BIT(39) > ^~~ > /kbuild/src/consumer/drivers//infiniband/hw/bnxt_re/bnxt_re.h:62:30: note: in expansion of macro 'BNXT_RE_MAX_MR_SIZE_HIGH' > #define BNXT_RE_MAX_MR_SIZE BNXT_RE_MAX_MR_SIZE_HIGH > ^~~~~~~~~~~~~~~~~~~~~~~~ > /kbuild/src/consumer/drivers//infiniband/hw/bnxt_re/ib_verbs.c:3555:12: note: in expansion of macro 'BNXT_RE_MAX_MR_SIZE' > length, BNXT_RE_MAX_MR_SIZE); > ^~~~~~~~~~~~~~~~~~~ > -- > In file included from /kbuild/src/consumer/arch/xtensa/include/asm/io.h:82:0, > from /kbuild/src/consumer/include/linux/io.h:25, > from /kbuild/src/consumer/include/linux/irq.h:25, > from /kbuild/src/consumer/include/asm-generic/hardirq.h:13, > from ./arch/xtensa/include/generated/asm/hardirq.h:1, > from /kbuild/src/consumer/include/linux/hardirq.h:9, > from /kbuild/src/consumer/include/linux/interrupt.h:13, > from /kbuild/src/consumer/drivers//infiniband/hw/bnxt_re/qplib_fp.c:39: >>> /kbuild/src/consumer/include/asm-generic/io.h:864:15: error: conflicting types for 'ioremap' > void __iomem *ioremap(phys_addr_t phys_addr, size_t size); > ^~~~~~~ > In file included from /kbuild/src/consumer/include/linux/io.h:25:0, > from /kbuild/src/consumer/include/linux/irq.h:25, > from /kbuild/src/consumer/include/asm-generic/hardirq.h:13, > from ./arch/xtensa/include/generated/asm/hardirq.h:1, > from /kbuild/src/consumer/include/linux/hardirq.h:9, > from /kbuild/src/consumer/include/linux/interrupt.h:13, > from /kbuild/src/consumer/drivers//infiniband/hw/bnxt_re/qplib_fp.c:39: > /kbuild/src/consumer/arch/xtensa/include/asm/io.h:59:29: note: previous definition of 'ioremap' was here > static inline void __iomem *ioremap(unsigned long offset, unsigned long size) > ^~~~~~~ > In file included from /kbuild/src/consumer/arch/xtensa/include/asm/io.h:82:0, > from /kbuild/src/consumer/include/linux/io.h:25, > from /kbuild/src/consumer/include/linux/irq.h:25, > from /kbuild/src/consumer/include/asm-generic/hardirq.h:13, > from ./arch/xtensa/include/generated/asm/hardirq.h:1, > from /kbuild/src/consumer/include/linux/hardirq.h:9, > from /kbuild/src/consumer/include/linux/interrupt.h:13, > from /kbuild/src/consumer/drivers//infiniband/hw/bnxt_re/qplib_fp.c:39: >>> /kbuild/src/consumer/include/asm-generic/io.h:865:25: error: conflicting types for 'ioremap_nocache' > #define ioremap_nocache ioremap_nocache > ^ >>> /kbuild/src/consumer/include/asm-generic/io.h:866:29: note: in expansion of macro 'ioremap_nocache' > static inline void __iomem *ioremap_nocache(phys_addr_t offset, size_t size) > ^~~~~~~~~~~~~~~ > In file included from /kbuild/src/consumer/include/linux/io.h:25:0, > from /kbuild/src/consumer/include/linux/irq.h:25, > from /kbuild/src/consumer/include/asm-generic/hardirq.h:13, > from ./arch/xtensa/include/generated/asm/hardirq.h:1, > from /kbuild/src/consumer/include/linux/hardirq.h:9, > from /kbuild/src/consumer/include/linux/interrupt.h:13, > from /kbuild/src/consumer/drivers//infiniband/hw/bnxt_re/qplib_fp.c:39: > /kbuild/src/consumer/arch/xtensa/include/asm/io.h:35:29: note: previous definition of 'ioremap_nocache' was here > static inline void __iomem *ioremap_nocache(unsigned long offset, > ^~~~~~~~~~~~~~~ > /kbuild/src/consumer/drivers//infiniband/hw/bnxt_re/qplib_fp.c: In function 'bnxt_qplib_service_nq': > /kbuild/src/consumer/drivers//infiniband/hw/bnxt_re/qplib_fp.c:333:23: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] > bnxt_qplib_arm_srq((struct bnxt_qplib_srq *)q_handle, > ^ > /kbuild/src/consumer/drivers//infiniband/hw/bnxt_re/qplib_fp.c:336:12: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] > (struct bnxt_qplib_srq *)q_handle, > ^ > In file included from /kbuild/src/consumer/include/linux/swab.h:5:0, > from /kbuild/src/consumer/include/uapi/linux/byteorder/big_endian.h:13, > from /kbuild/src/consumer/include/linux/byteorder/big_endian.h:5, > from /kbuild/src/consumer/arch/xtensa/include/uapi/asm/byteorder.h:8, > from /kbuild/src/consumer/arch/xtensa/include/asm/bitops.h:23, > from /kbuild/src/consumer/include/linux/bitops.h:38, > from /kbuild/src/consumer/include/linux/kernel.h:11, > from /kbuild/src/consumer/include/linux/interrupt.h:6, > from /kbuild/src/consumer/drivers//infiniband/hw/bnxt_re/qplib_fp.c:39: > /kbuild/src/consumer/drivers//infiniband/hw/bnxt_re/qplib_fp.c: In function 'bnxt_qplib_create_srq': > /kbuild/src/consumer/include/uapi/linux/swab.h:130:24: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] > (__builtin_constant_p((__u64)(x)) ? \ > ^ > /kbuild/src/consumer/include/uapi/linux/byteorder/big_endian.h:31:43: note: in expansion of macro '__swab64' > #define __cpu_to_le64(x) ((__force __le64)__swab64((x))) > ^~~~~~~~ > /kbuild/src/consumer/include/linux/byteorder/generic.h:86:21: note: in expansion of macro '__cpu_to_le64' > #define cpu_to_le64 __cpu_to_le64 > ^~~~~~~~~~~~~ > /kbuild/src/consumer/drivers//infiniband/hw/bnxt_re/qplib_fp.c:567:19: note: in expansion of macro 'cpu_to_le64' > req.srq_handle = cpu_to_le64(srq); > ^~~~~~~~~~~ > /kbuild/src/consumer/include/uapi/linux/swab.h:24:4: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] > (((__u64)(x) & (__u64)0x00000000000000ffULL) << 56) | \ > ^ > /kbuild/src/consumer/include/uapi/linux/swab.h:131:2: note: in expansion of macro '___constant_swab64' > ___constant_swab64(x) : \ > ^~~~~~~~~~~~~~~~~~ > /kbuild/src/consumer/include/uapi/linux/byteorder/big_endian.h:31:43: note: in expansion of macro '__swab64' > #define __cpu_to_le64(x) ((__force __le64)__swab64((x))) > ^~~~~~~~ > /kbuild/src/consumer/include/linux/byteorder/generic.h:86:21: note: in expansion of macro '__cpu_to_le64' > #define cpu_to_le64 __cpu_to_le64 > ^~~~~~~~~~~~~ > /kbuild/src/consumer/drivers//infiniband/hw/bnxt_re/qplib_fp.c:567:19: note: in expansion of macro 'cpu_to_le64' > req.srq_handle = cpu_to_le64(srq); > ^~~~~~~~~~~ > /kbuild/src/consumer/include/uapi/linux/swab.h:25:4: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] > (((__u64)(x) & (__u64)0x000000000000ff00ULL) << 40) | \ > ^ > /kbuild/src/consumer/include/uapi/linux/swab.h:131:2: note: in expansion of macro '___constant_swab64' > ___constant_swab64(x) : \ > ^~~~~~~~~~~~~~~~~~ > /kbuild/src/consumer/include/uapi/linux/byteorder/big_endian.h:31:43: note: in expansion of macro '__swab64' > #define __cpu_to_le64(x) ((__force __le64)__swab64((x))) > ^~~~~~~~ > /kbuild/src/consumer/include/linux/byteorder/generic.h:86:21: note: in expansion of macro '__cpu_to_le64' > #define cpu_to_le64 __cpu_to_le64 > ^~~~~~~~~~~~~ > /kbuild/src/consumer/drivers//infiniband/hw/bnxt_re/qplib_fp.c:567:19: note: in expansion of macro 'cpu_to_le64' > req.srq_handle = cpu_to_le64(srq); > ^~~~~~~~~~~ > /kbuild/src/consumer/include/uapi/linux/swab.h:26:4: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] > (((__u64)(x) & (__u64)0x0000000000ff0000ULL) << 24) | \ > ^ > /kbuild/src/consumer/include/uapi/linux/swab.h:131:2: note: in expansion of macro '___constant_swab64' > ___constant_swab64(x) : \ > ^~~~~~~~~~~~~~~~~~ > /kbuild/src/consumer/include/uapi/linux/byteorder/big_endian.h:31:43: note: in expansion of macro '__swab64' > #define __cpu_to_le64(x) ((__force __le64)__swab64((x))) > ^~~~~~~~ > /kbuild/src/consumer/include/linux/byteorder/generic.h:86:21: note: in expansion of macro '__cpu_to_le64' > #define cpu_to_le64 __cpu_to_le64 > ^~~~~~~~~~~~~ > /kbuild/src/consumer/drivers//infiniband/hw/bnxt_re/qplib_fp.c:567:19: note: in expansion of macro 'cpu_to_le64' > req.srq_handle = cpu_to_le64(srq); > ^~~~~~~~~~~ > /kbuild/src/consumer/include/uapi/linux/swab.h:27:4: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] > (((__u64)(x) & (__u64)0x00000000ff000000ULL) << 8) | \ > ^ > /kbuild/src/consumer/include/uapi/linux/swab.h:131:2: note: in expansion of macro '___constant_swab64' > ___constant_swab64(x) : \ > ^~~~~~~~~~~~~~~~~~ > /kbuild/src/consumer/include/uapi/linux/byteorder/big_endian.h:31:43: note: in expansion of macro '__swab64' > #define __cpu_to_le64(x) ((__force __le64)__swab64((x))) > ^~~~~~~~ > /kbuild/src/consumer/include/linux/byteorder/generic.h:86:21: note: in expansion of macro '__cpu_to_le64' > #define cpu_to_le64 __cpu_to_le64 > ^~~~~~~~~~~~~ > /kbuild/src/consumer/drivers//infiniband/hw/bnxt_re/qplib_fp.c:567:19: note: in expansion of macro 'cpu_to_le64' > req.srq_handle = cpu_to_le64(srq); > .. I will add this patch to the nds32 port series. From: Greentime Hu Date: Wed, 21 Feb 2018 14:21:23 +0800 Subject: [PATCH] xtensa: add ioremap_nocache declaration before include asm-generic/io.h. A future commit for the nds32 architecture bootstrap("asm-generic/io.h: move ioremap_nocache/ioremap_uc/ioremap_wc/ioremap_wt out of ifndef CONFIG_MMU") will move the ioremap_nocache out of the CONFIG_MMU ifdef. This means that in order to suppress re-definition errors we need to setup #define's before importing asm-generic/io.h. Signed-off-by: Greentime Hu --- arch/xtensa/include/asm/io.h | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/xtensa/include/asm/io.h b/arch/xtensa/include/asm/io.h index c38e5a732d86..acc5bb2cf1c7 100644 --- a/arch/xtensa/include/asm/io.h +++ b/arch/xtensa/include/asm/io.h @@ -52,6 +52,7 @@ static inline void __iomem *ioremap_cache(unsigned long offset, return xtensa_ioremap_cache(offset, size); } #define ioremap_cache ioremap_cache +#define ioremap_nocache ioremap_nocache #define ioremap_wc ioremap_nocache