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 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id D05D3EB64D9 for ; Mon, 10 Jul 2023 08:25:16 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 226D56B0072; Mon, 10 Jul 2023 04:25:16 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 1AEAD6B0074; Mon, 10 Jul 2023 04:25:16 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 000EB6B0075; Mon, 10 Jul 2023 04:25:15 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id E263D6B0072 for ; Mon, 10 Jul 2023 04:25:15 -0400 (EDT) Received: from smtpin27.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id B54401202C7 for ; Mon, 10 Jul 2023 08:25:15 +0000 (UTC) X-FDA: 80995017390.27.85D8B7F Received: from mail-yw1-f174.google.com (mail-yw1-f174.google.com [209.85.128.174]) by imf20.hostedemail.com (Postfix) with ESMTP id 9FFED1C0015 for ; Mon, 10 Jul 2023 08:25:13 +0000 (UTC) Authentication-Results: imf20.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf20.hostedemail.com: domain of geert.uytterhoeven@gmail.com designates 209.85.128.174 as permitted sender) smtp.mailfrom=geert.uytterhoeven@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1688977513; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=1ddf+hOcnMiZLTkfIYCWGkgO+7MGNJqpDEJg97NUU18=; b=NbxPMbAGz1/Beii+57EL2b4THWbhcL6UsXPvYKs1xfJogMWC6VOnDEjdpak22wPj3NG/IT lj5PRAqJS2pHsFJpIaWeHyiRwEDub95IgWNEDux3g5y3JrPMOsiU5OwczqXA2+277lNXeb q5hDo5nA32WzqHRyBm2j/uQsPIVtLRY= ARC-Authentication-Results: i=1; imf20.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf20.hostedemail.com: domain of geert.uytterhoeven@gmail.com designates 209.85.128.174 as permitted sender) smtp.mailfrom=geert.uytterhoeven@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1688977513; a=rsa-sha256; cv=none; b=cXAaXlw6zNAHVrntYWAMgQz/NMgJmUVkFEd7J35t9N9oN7MGOZY7liTrTSo7Bm8FTgAUzv jjyokSdEohLuznYXZ6jOyc98PMCTjKtnbinGC3RxvAMGwMA0uEbkLmd9bc7GQYlldM5g9E DNgOhF+fbYMYsmII79ji3YvODr+pHtg= Received: by mail-yw1-f174.google.com with SMTP id 00721157ae682-577ddda6ab1so61086997b3.0 for ; Mon, 10 Jul 2023 01:25:13 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1688977512; x=1691569512; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=1ddf+hOcnMiZLTkfIYCWGkgO+7MGNJqpDEJg97NUU18=; b=Yc1kVswvGV3i3vAqKS3tJTcfQTlsgpnqK36k/Eka3BN5Pe4U0P2vPlSrUni84XNMxt tHkAmXNCtqWmJCZpTTRMMHlcyMYIOG6oxPe82zcP52vwRst/cq9Z885FXbyFpkw7TW88 GT7ht2RhBOLWa+HmoPeX/wHFB+rrBRb3vOzghCplpsQxFn6RcEdbYd5gOxzr5OAbmBEX Q8x7xKLrV2rhrvSXMpKFQYBoFJjUgqZAH2puknI5VYjydY0zo5HgLQJ/B3G/crd2Znys hkAWcMf1yzW2aQDqadF+3miv0sjIofLs+/sGXNb/C19Mw4/IBYIOE/sMTyuYUsbEUIJA 6cNA== X-Gm-Message-State: ABy/qLaYmaHCJK4WO4DjV4WRs5uVZnP8ffEQ3rCL5Dybf0qz4qUxB/5i TJRLul8u89+CTKGrym2gJdNuEG6dlJK8gQ== X-Google-Smtp-Source: APBJJlFIGYUK2vcaJphEoLUwoKnAP6DQ9bAQPicqJe/a2zLNVpZDteJfBYibP1ktJWEEA83Pe5G8Bg== X-Received: by 2002:a0d:e84e:0:b0:56d:278a:d19a with SMTP id r75-20020a0de84e000000b0056d278ad19amr11023321ywe.20.1688977512116; Mon, 10 Jul 2023 01:25:12 -0700 (PDT) Received: from mail-yw1-f180.google.com (mail-yw1-f180.google.com. [209.85.128.180]) by smtp.gmail.com with ESMTPSA id f10-20020a816a0a000000b0057a8de72338sm160576ywc.68.2023.07.10.01.25.11 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 10 Jul 2023 01:25:11 -0700 (PDT) Received: by mail-yw1-f180.google.com with SMTP id 00721157ae682-577ddda6ab1so61086737b3.0 for ; Mon, 10 Jul 2023 01:25:11 -0700 (PDT) X-Received: by 2002:a25:5502:0:b0:bcf:d645:bd9 with SMTP id j2-20020a255502000000b00bcfd6450bd9mr9812800ybb.3.1688977042708; Mon, 10 Jul 2023 01:17:22 -0700 (PDT) MIME-Version: 1.0 References: <20230706154520.11257-1-bhe@redhat.com> <20230706154520.11257-12-bhe@redhat.com> In-Reply-To: <20230706154520.11257-12-bhe@redhat.com> From: Geert Uytterhoeven Date: Mon, 10 Jul 2023 10:17:10 +0200 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH v8 11/19] sh: add including To: Baoquan He Cc: linux-kernel@vger.kernel.org, akpm@linux-foundation.org, linux-mm@kvack.org, arnd@arndb.de, hch@lst.de, christophe.leroy@csgroup.eu, rppt@kernel.org, willy@infradead.org, agordeev@linux.ibm.com, wangkefeng.wang@huawei.com, schnelle@linux.ibm.com, shorne@gmail.com, David.Laight@aculab.com, deller@gmx.de, nathan@kernel.org, glaubitz@physik.fu-berlin.de, Yoshinori Sato , Rich Felker , linux-sh@vger.kernel.org, Guenter Roeck Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: 9FFED1C0015 X-Stat-Signature: zpragax7e73n1p6fhgxp1xdax86bmsra X-Rspam-User: X-HE-Tag: 1688977513-76471 X-HE-Meta: U2FsdGVkX19rz6PMXcqXHUoR0ZbLOAcuWkndP1HuhZkja9kZgRQc5MUXp879ho8VY6pfPUWAj0VTee5+zKE1miNKPLZAA3a+p3mBz4X8/eyqpyjYd2eFFYjZlNVkWhub3+eLlyU2Emo2Wycyca5ihRtUjHGEx+7OhJ5RplIZv6uW6nRD5zKU3q0dYj1Kc3hF9zPd5tfygOzFHiz02vCuYZCFCRKR31cp30NRtKwh7QueHaLvo2wXIl0dKVZiMOfMNnYWFkYXGZaEArZOD+JKaM6VlGzf5fYuYdKFkSiQQsw4Kl6MvidPUMcLoD1/Q4uWCl7BY445eZPUnG6Adh7Yy47Kzuy8/w4cKuBP0055+5eLlV28S1R9pgk6pq49pwHudmAuYSgJPCHhXms2LTQBZFV+21yK1o/3cb94dZLT5RYGspLwYEviehmac59ahhUSkGS2lF5GRoMOxQBCeFsTcBF/7ct8AZxkfek7TkzIie5I503M6fKL28RvL/V1HsN0dwIEcLx+GIYm9kLd+dhOFywSFknHgpKMV+Pj93Ovj+dIWxyNcCQLHekRec7w8WkQhbs0GchyTHNxGcYSKemIklfkQWFnjbMqVhzi6nSaW2ODmtnx5mDfw1LmCsJS3UYMBUaOLFTM0hbQ2KW3gWvTAk4bWc0kzjw0hHgfDNRd/V6CWJHhLFvWMIXSb23KLM7etVT9urSdNAVytusslk4JnlevsPGCteT/p+tYCgc8JlcngpBBvVKAN4BIoJWZ73/pW2c60E1y+cOtsC4CmfVHxIfGxNvzJWstHaQQ08hfPAz8w6TPqw2k934gIGrdzRv7029j93o2vBiVmX14YM2zGyjcJcclW/y/SYgS4hnGGF/0wO8cBH91QJOiUpO7RQdV0qIkiZsXmEmXSFMgJOJynAaXFiugA3ho6S0EGOZetpKnhLG7xlHJ/K+ZlF/PZPFhDS+II8gF1JpywXcFSwH JuHw8pwn h+Q1icxlic37jg3Df10m8M7eS/WLk7Aj444x5tpzmuZ69fKGd6SRELJoTjJutKLN+O7BYnqHgKeN5r4qyLvkTgy3LA2MCZTpz/Oq2n0Soyoz2ynq320GcMUuhhqr6vWZaFRmGR0bMf0NkYfiX6fP/3rIdSjbmn5aYbGzbxka0NpNbSQfLF9twvBQloLrfbi2RWOgHJTS5BMUC/L4bEeBIbbErdrjzg0wQNS70dGzyB2jEOTtrZbdYjGUUoXXxivV+IMPp/sf7NoYt+kY4bdrQx6IoJVi+JviuV2fXPcfbQiSzph1p9klUw0nbDuoAOzOge3PiCVQOw//Qgna8JsAOMOVZO/35AuoQ1ySkTVEbI5ke9KkFXHKKh3DqrfVZ7sPjOL+P7QibbX9UQ73YB10PIK8UwRWooNxb3kaKZuM+ohZOPToZtFUQE4TVm9dbPWPPVefXN/Y5AsCdOdzAMAcvclJiX93L7zAMSS+U0je2rTnBZI4= 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: Hi Baoquan, On Thu, Jul 6, 2023 at 5:49=E2=80=AFPM Baoquan He wrote: > In , it provides a generic implementation of all > I/O accessors. > > For some port|mm io functions, SuperH has its own implementation > in arch/sh/kernel/iomap.c and arch/sh/include/asm/io_noioport.h. > These will conflict with those in and cause compiling > error. Hence add macro definitions to ensure that the SuperH version > of them will override the generic version. > > Signed-off-by: Baoquan He Thanks for your patch, which is now commit edad4470b45298ba ("sh: add including") in next-20230710. This break dreamcast_defconfig: CC arch/sh/kernel/asm-offsets.s In file included from ./arch/sh/include/asm/io.h:290, from ./include/linux/io.h:13, from ./include/linux/irq.h:20, from ./include/asm-generic/hardirq.h:17, from ./arch/sh/include/asm/hardirq.h:9, from ./include/linux/hardirq.h:11, from ./include/linux/interrupt.h:11, from ./include/linux/kernel_stat.h:9, from ./include/linux/cgroup.h:26, from ./include/linux/memcontrol.h:13, from ./include/linux/swap.h:9, from ./include/linux/suspend.h:5, from arch/sh/kernel/asm-offsets.c:16: ./include/asm-generic/io.h:636:15: error: redefinition of =E2=80=98inb_p=E2= =80=99 636 | #define inb_p inb_p | ^~~~~ ./include/asm-generic/io.h:637:18: note: in expansion of macro =E2=80=98inb= _p=E2=80=99 637 | static inline u8 inb_p(unsigned long addr) | ^~~~~ In file included from ./include/linux/io.h:13, from ./include/linux/irq.h:20, from ./include/asm-generic/hardirq.h:17, from ./arch/sh/include/asm/hardirq.h:9, from ./include/linux/hardirq.h:11, from ./include/linux/interrupt.h:11, from ./include/linux/kernel_stat.h:9, from ./include/linux/cgroup.h:26, from ./include/linux/memcontrol.h:13, from ./include/linux/swap.h:9, from ./include/linux/suspend.h:5, from arch/sh/kernel/asm-offsets.c:16: ./arch/sh/include/asm/io.h:185:25: note: previous definition of =E2=80=98inb_p=E2=80=99 with type =E2=80=98u8(long unsigned int)=E2=80=99 {= aka =E2=80=98unsigned char(long unsigned int)=E2=80=99} 185 | static inline type pfx##in##bwlq##p(unsigned long port) \ | ^~ ./arch/sh/include/asm/io.h:199:9: note: in expansion of macro =E2=80=98__BUILD_IOPORT_SINGLE=E2=80=99 199 | __BUILD_IOPORT_SINGLE(bus, bwlq, type, _p, SLOW_DOWN_IO) | ^~~~~~~~~~~~~~~~~~~~~ ./arch/sh/include/asm/io.h:202:9: note: in expansion of macro =E2=80=98__BUILD_IOPORT_PFX=E2=80=99 202 | __BUILD_IOPORT_PFX(, bwlq, type) | ^~~~~~~~~~~~~~~~~~ ./arch/sh/include/asm/io.h:204:1: note: in expansion of macro =E2=80=98BUIL= DIO_IOPORT=E2=80=99 204 | BUILDIO_IOPORT(b, u8) | ^~~~~~~~~~~~~~ In file included from ./arch/sh/include/asm/io.h:290, from ./include/linux/io.h:13, from ./include/linux/irq.h:20, from ./include/asm-generic/hardirq.h:17, from ./arch/sh/include/asm/hardirq.h:9, from ./include/linux/hardirq.h:11, from ./include/linux/interrupt.h:11, from ./include/linux/kernel_stat.h:9, from ./include/linux/cgroup.h:26, from ./include/linux/memcontrol.h:13, from ./include/linux/swap.h:9, from ./include/linux/suspend.h:5, from arch/sh/kernel/asm-offsets.c:16: ./include/asm-generic/io.h:644:15: error: redefinition of =E2=80=98inw_p=E2= =80=99 644 | #define inw_p inw_p | ^~~~~ ./include/asm-generic/io.h:645:19: note: in expansion of macro =E2=80=98inw= _p=E2=80=99 645 | static inline u16 inw_p(unsigned long addr) | ^~~~~ In file included from ./include/linux/io.h:13, from ./include/linux/irq.h:20, from ./include/asm-generic/hardirq.h:17, from ./arch/sh/include/asm/hardirq.h:9, from ./include/linux/hardirq.h:11, from ./include/linux/interrupt.h:11, from ./include/linux/kernel_stat.h:9, from ./include/linux/cgroup.h:26, from ./include/linux/memcontrol.h:13, from ./include/linux/swap.h:9, from ./include/linux/suspend.h:5, from arch/sh/kernel/asm-offsets.c:16: ./arch/sh/include/asm/io.h:185:25: note: previous definition of =E2=80=98inw_p=E2=80=99 with type =E2=80=98u16(long unsigned int)=E2=80=99 = {aka =E2=80=98short unsigned int(long unsigned int)=E2=80=99} 185 | static inline type pfx##in##bwlq##p(unsigned long port) \ | ^~ ./arch/sh/include/asm/io.h:199:9: note: in expansion of macro =E2=80=98__BUILD_IOPORT_SINGLE=E2=80=99 199 | __BUILD_IOPORT_SINGLE(bus, bwlq, type, _p, SLOW_DOWN_IO) | ^~~~~~~~~~~~~~~~~~~~~ ./arch/sh/include/asm/io.h:202:9: note: in expansion of macro =E2=80=98__BUILD_IOPORT_PFX=E2=80=99 202 | __BUILD_IOPORT_PFX(, bwlq, type) | ^~~~~~~~~~~~~~~~~~ ./arch/sh/include/asm/io.h:205:1: note: in expansion of macro =E2=80=98BUIL= DIO_IOPORT=E2=80=99 205 | BUILDIO_IOPORT(w, u16) | ^~~~~~~~~~~~~~ In file included from ./arch/sh/include/asm/io.h:290, from ./include/linux/io.h:13, from ./include/linux/irq.h:20, from ./include/asm-generic/hardirq.h:17, from ./arch/sh/include/asm/hardirq.h:9, from ./include/linux/hardirq.h:11, from ./include/linux/interrupt.h:11, from ./include/linux/kernel_stat.h:9, from ./include/linux/cgroup.h:26, from ./include/linux/memcontrol.h:13, from ./include/linux/swap.h:9, from ./include/linux/suspend.h:5, from arch/sh/kernel/asm-offsets.c:16: ./include/asm-generic/io.h:652:15: error: redefinition of =E2=80=98inl_p=E2= =80=99 652 | #define inl_p inl_p | ^~~~~ ./include/asm-generic/io.h:653:19: note: in expansion of macro =E2=80=98inl= _p=E2=80=99 653 | static inline u32 inl_p(unsigned long addr) | ^~~~~ In file included from ./include/linux/io.h:13, from ./include/linux/irq.h:20, from ./include/asm-generic/hardirq.h:17, from ./arch/sh/include/asm/hardirq.h:9, from ./include/linux/hardirq.h:11, from ./include/linux/interrupt.h:11, from ./include/linux/kernel_stat.h:9, from ./include/linux/cgroup.h:26, from ./include/linux/memcontrol.h:13, from ./include/linux/swap.h:9, from ./include/linux/suspend.h:5, from arch/sh/kernel/asm-offsets.c:16: ./arch/sh/include/asm/io.h:185:25: note: previous definition of =E2=80=98inl_p=E2=80=99 with type =E2=80=98u32(long unsigned int)=E2=80=99 = {aka =E2=80=98unsigned int(long unsigned int)=E2=80=99} 185 | static inline type pfx##in##bwlq##p(unsigned long port) \ | ^~ ./arch/sh/include/asm/io.h:199:9: note: in expansion of macro =E2=80=98__BUILD_IOPORT_SINGLE=E2=80=99 199 | __BUILD_IOPORT_SINGLE(bus, bwlq, type, _p, SLOW_DOWN_IO) | ^~~~~~~~~~~~~~~~~~~~~ ./arch/sh/include/asm/io.h:202:9: note: in expansion of macro =E2=80=98__BUILD_IOPORT_PFX=E2=80=99 202 | __BUILD_IOPORT_PFX(, bwlq, type) | ^~~~~~~~~~~~~~~~~~ ./arch/sh/include/asm/io.h:206:1: note: in expansion of macro =E2=80=98BUIL= DIO_IOPORT=E2=80=99 206 | BUILDIO_IOPORT(l, u32) | ^~~~~~~~~~~~~~ In file included from ./arch/sh/include/asm/io.h:290, from ./include/linux/io.h:13, from ./include/linux/irq.h:20, from ./include/asm-generic/hardirq.h:17, from ./arch/sh/include/asm/hardirq.h:9, from ./include/linux/hardirq.h:11, from ./include/linux/interrupt.h:11, from ./include/linux/kernel_stat.h:9, from ./include/linux/cgroup.h:26, from ./include/linux/memcontrol.h:13, from ./include/linux/swap.h:9, from ./include/linux/suspend.h:5, from arch/sh/kernel/asm-offsets.c:16: ./include/asm-generic/io.h:660:16: error: redefinition of =E2=80=98outb_p= =E2=80=99 660 | #define outb_p outb_p | ^~~~~~ ./include/asm-generic/io.h:661:20: note: in expansion of macro =E2=80=98out= b_p=E2=80=99 661 | static inline void outb_p(u8 value, unsigned long addr) | ^~~~~~ In file included from ./include/linux/io.h:13, from ./include/linux/irq.h:20, from ./include/asm-generic/hardirq.h:17, from ./arch/sh/include/asm/hardirq.h:9, from ./include/linux/hardirq.h:11, from ./include/linux/interrupt.h:11, from ./include/linux/kernel_stat.h:9, from ./include/linux/cgroup.h:26, from ./include/linux/memcontrol.h:13, from ./include/linux/swap.h:9, from ./include/linux/suspend.h:5, from arch/sh/kernel/asm-offsets.c:16: ./arch/sh/include/asm/io.h:176:25: note: previous definition of =E2=80=98outb_p=E2=80=99 with type =E2=80=98void(u8, long unsigned int)=E2= =80=99 {aka =E2=80=98void(unsigned char, long unsigned int)=E2=80=99} 176 | static inline void pfx##out##bwlq##p(type val, unsigned long port) \ | ^~~ ./arch/sh/include/asm/io.h:199:9: note: in expansion of macro =E2=80=98__BUILD_IOPORT_SINGLE=E2=80=99 199 | __BUILD_IOPORT_SINGLE(bus, bwlq, type, _p, SLOW_DOWN_IO) | ^~~~~~~~~~~~~~~~~~~~~ ./arch/sh/include/asm/io.h:202:9: note: in expansion of macro =E2=80=98__BUILD_IOPORT_PFX=E2=80=99 202 | __BUILD_IOPORT_PFX(, bwlq, type) | ^~~~~~~~~~~~~~~~~~ ./arch/sh/include/asm/io.h:204:1: note: in expansion of macro =E2=80=98BUIL= DIO_IOPORT=E2=80=99 204 | BUILDIO_IOPORT(b, u8) | ^~~~~~~~~~~~~~ In file included from ./arch/sh/include/asm/io.h:290, from ./include/linux/io.h:13, from ./include/linux/irq.h:20, from ./include/asm-generic/hardirq.h:17, from ./arch/sh/include/asm/hardirq.h:9, from ./include/linux/hardirq.h:11, from ./include/linux/interrupt.h:11, from ./include/linux/kernel_stat.h:9, from ./include/linux/cgroup.h:26, from ./include/linux/memcontrol.h:13, from ./include/linux/swap.h:9, from ./include/linux/suspend.h:5, from arch/sh/kernel/asm-offsets.c:16: ./include/asm-generic/io.h:668:16: error: redefinition of =E2=80=98outw_p= =E2=80=99 668 | #define outw_p outw_p | ^~~~~~ ./include/asm-generic/io.h:669:20: note: in expansion of macro =E2=80=98out= w_p=E2=80=99 669 | static inline void outw_p(u16 value, unsigned long addr) | ^~~~~~ In file included from ./include/linux/io.h:13, from ./include/linux/irq.h:20, from ./include/asm-generic/hardirq.h:17, from ./arch/sh/include/asm/hardirq.h:9, from ./include/linux/hardirq.h:11, from ./include/linux/interrupt.h:11, from ./include/linux/kernel_stat.h:9, from ./include/linux/cgroup.h:26, from ./include/linux/memcontrol.h:13, from ./include/linux/swap.h:9, from ./include/linux/suspend.h:5, from arch/sh/kernel/asm-offsets.c:16: ./arch/sh/include/asm/io.h:176:25: note: previous definition of =E2=80=98outw_p=E2=80=99 with type =E2=80=98void(u16, long unsigned int)= =E2=80=99 {aka =E2=80=98void(short unsigned int, long unsigned int)=E2=80=99} 176 | static inline void pfx##out##bwlq##p(type val, unsigned long port) \ | ^~~ ./arch/sh/include/asm/io.h:199:9: note: in expansion of macro =E2=80=98__BUILD_IOPORT_SINGLE=E2=80=99 199 | __BUILD_IOPORT_SINGLE(bus, bwlq, type, _p, SLOW_DOWN_IO) | ^~~~~~~~~~~~~~~~~~~~~ ./arch/sh/include/asm/io.h:202:9: note: in expansion of macro =E2=80=98__BUILD_IOPORT_PFX=E2=80=99 202 | __BUILD_IOPORT_PFX(, bwlq, type) | ^~~~~~~~~~~~~~~~~~ ./arch/sh/include/asm/io.h:205:1: note: in expansion of macro =E2=80=98BUIL= DIO_IOPORT=E2=80=99 205 | BUILDIO_IOPORT(w, u16) | ^~~~~~~~~~~~~~ In file included from ./arch/sh/include/asm/io.h:290, from ./include/linux/io.h:13, from ./include/linux/irq.h:20, from ./include/asm-generic/hardirq.h:17, from ./arch/sh/include/asm/hardirq.h:9, from ./include/linux/hardirq.h:11, from ./include/linux/interrupt.h:11, from ./include/linux/kernel_stat.h:9, from ./include/linux/cgroup.h:26, from ./include/linux/memcontrol.h:13, from ./include/linux/swap.h:9, from ./include/linux/suspend.h:5, from arch/sh/kernel/asm-offsets.c:16: ./include/asm-generic/io.h:676:16: error: redefinition of =E2=80=98outl_p= =E2=80=99 676 | #define outl_p outl_p | ^~~~~~ ./include/asm-generic/io.h:677:20: note: in expansion of macro =E2=80=98out= l_p=E2=80=99 677 | static inline void outl_p(u32 value, unsigned long addr) | ^~~~~~ In file included from ./include/linux/io.h:13, from ./include/linux/irq.h:20, from ./include/asm-generic/hardirq.h:17, from ./arch/sh/include/asm/hardirq.h:9, from ./include/linux/hardirq.h:11, from ./include/linux/interrupt.h:11, from ./include/linux/kernel_stat.h:9, from ./include/linux/cgroup.h:26, from ./include/linux/memcontrol.h:13, from ./include/linux/swap.h:9, from ./include/linux/suspend.h:5, from arch/sh/kernel/asm-offsets.c:16: ./arch/sh/include/asm/io.h:176:25: note: previous definition of =E2=80=98outl_p=E2=80=99 with type =E2=80=98void(u32, long unsigned int)= =E2=80=99 {aka =E2=80=98void(unsigned int, long unsigned int)=E2=80=99} 176 | static inline void pfx##out##bwlq##p(type val, unsigned long port) \ | ^~~ ./arch/sh/include/asm/io.h:199:9: note: in expansion of macro =E2=80=98__BUILD_IOPORT_SINGLE=E2=80=99 199 | __BUILD_IOPORT_SINGLE(bus, bwlq, type, _p, SLOW_DOWN_IO) | ^~~~~~~~~~~~~~~~~~~~~ ./arch/sh/include/asm/io.h:202:9: note: in expansion of macro =E2=80=98__BUILD_IOPORT_PFX=E2=80=99 202 | __BUILD_IOPORT_PFX(, bwlq, type) | ^~~~~~~~~~~~~~~~~~ ./arch/sh/include/asm/io.h:206:1: note: in expansion of macro =E2=80=98BUIL= DIO_IOPORT=E2=80=99 206 | BUILDIO_IOPORT(l, u32) | ^~~~~~~~~~~~~~ In file included from ./arch/sh/include/asm/io.h:290, from ./include/linux/io.h:13, from ./include/linux/irq.h:20, from ./include/asm-generic/hardirq.h:17, from ./arch/sh/include/asm/hardirq.h:9, from ./include/linux/hardirq.h:11, from ./include/linux/interrupt.h:11, from ./include/linux/kernel_stat.h:9, from ./include/linux/cgroup.h:26, from ./include/linux/memcontrol.h:13, from ./include/linux/swap.h:9, from ./include/linux/suspend.h:5, from arch/sh/kernel/asm-offsets.c:16: ./include/asm-generic/io.h:689:14: error: redefinition of =E2=80=98insb=E2= =80=99 689 | #define insb insb | ^~~~ ./include/asm-generic/io.h:690:20: note: in expansion of macro =E2=80=98ins= b=E2=80=99 690 | static inline void insb(unsigned long addr, void *buffer, unsigned int count) | ^~~~ In file included from ./include/linux/io.h:13, from ./include/linux/irq.h:20, from ./include/asm-generic/hardirq.h:17, from ./arch/sh/include/asm/hardirq.h:9, from ./include/linux/hardirq.h:11, from ./include/linux/interrupt.h:11, from ./include/linux/kernel_stat.h:9, from ./include/linux/cgroup.h:26, from ./include/linux/memcontrol.h:13, from ./include/linux/swap.h:9, from ./include/linux/suspend.h:5, from arch/sh/kernel/asm-offsets.c:16: ./arch/sh/include/asm/io.h:222:20: note: previous definition of =E2=80=98in= sb=E2=80=99 with type =E2=80=98void(long unsigned int, void *, unsigned int)=E2=80=99 222 | static inline void ins##bwlq(unsigned long port, void *addr, \ | ^~~ ./arch/sh/include/asm/io.h:233:1: note: in expansion of macro =E2=80=98__BUILD_IOPORT_STRING=E2=80=99 233 | __BUILD_IOPORT_STRING(b, u8) | ^~~~~~~~~~~~~~~~~~~~~ In file included from ./arch/sh/include/asm/io.h:290, from ./include/linux/io.h:13, from ./include/linux/irq.h:20, from ./include/asm-generic/hardirq.h:17, from ./arch/sh/include/asm/hardirq.h:9, from ./include/linux/hardirq.h:11, from ./include/linux/interrupt.h:11, from ./include/linux/kernel_stat.h:9, from ./include/linux/cgroup.h:26, from ./include/linux/memcontrol.h:13, from ./include/linux/swap.h:9, from ./include/linux/suspend.h:5, from arch/sh/kernel/asm-offsets.c:16: ./include/asm-generic/io.h:697:14: error: redefinition of =E2=80=98insw=E2= =80=99 697 | #define insw insw | ^~~~ ./include/asm-generic/io.h:698:20: note: in expansion of macro =E2=80=98ins= w=E2=80=99 698 | static inline void insw(unsigned long addr, void *buffer, unsigned int count) | ^~~~ In file included from ./include/linux/io.h:13, from ./include/linux/irq.h:20, from ./include/asm-generic/hardirq.h:17, from ./arch/sh/include/asm/hardirq.h:9, from ./include/linux/hardirq.h:11, from ./include/linux/interrupt.h:11, from ./include/linux/kernel_stat.h:9, from ./include/linux/cgroup.h:26, from ./include/linux/memcontrol.h:13, from ./include/linux/swap.h:9, from ./include/linux/suspend.h:5, from arch/sh/kernel/asm-offsets.c:16: ./arch/sh/include/asm/io.h:222:20: note: previous definition of =E2=80=98in= sw=E2=80=99 with type =E2=80=98void(long unsigned int, void *, unsigned int)=E2=80=99 222 | static inline void ins##bwlq(unsigned long port, void *addr, \ | ^~~ ./arch/sh/include/asm/io.h:234:1: note: in expansion of macro =E2=80=98__BUILD_IOPORT_STRING=E2=80=99 234 | __BUILD_IOPORT_STRING(w, u16) | ^~~~~~~~~~~~~~~~~~~~~ In file included from ./arch/sh/include/asm/io.h:290, from ./include/linux/io.h:13, from ./include/linux/irq.h:20, from ./include/asm-generic/hardirq.h:17, from ./arch/sh/include/asm/hardirq.h:9, from ./include/linux/hardirq.h:11, from ./include/linux/interrupt.h:11, from ./include/linux/kernel_stat.h:9, from ./include/linux/cgroup.h:26, from ./include/linux/memcontrol.h:13, from ./include/linux/swap.h:9, from ./include/linux/suspend.h:5, from arch/sh/kernel/asm-offsets.c:16: ./include/asm-generic/io.h:705:14: error: redefinition of =E2=80=98insl=E2= =80=99 705 | #define insl insl | ^~~~ ./include/asm-generic/io.h:706:20: note: in expansion of macro =E2=80=98ins= l=E2=80=99 706 | static inline void insl(unsigned long addr, void *buffer, unsigned int count) | ^~~~ In file included from ./include/linux/io.h:13, from ./include/linux/irq.h:20, from ./include/asm-generic/hardirq.h:17, from ./arch/sh/include/asm/hardirq.h:9, from ./include/linux/hardirq.h:11, from ./include/linux/interrupt.h:11, from ./include/linux/kernel_stat.h:9, from ./include/linux/cgroup.h:26, from ./include/linux/memcontrol.h:13, from ./include/linux/swap.h:9, from ./include/linux/suspend.h:5, from arch/sh/kernel/asm-offsets.c:16: ./arch/sh/include/asm/io.h:222:20: note: previous definition of =E2=80=98in= sl=E2=80=99 with type =E2=80=98void(long unsigned int, void *, unsigned int)=E2=80=99 222 | static inline void ins##bwlq(unsigned long port, void *addr, \ | ^~~ ./arch/sh/include/asm/io.h:235:1: note: in expansion of macro =E2=80=98__BUILD_IOPORT_STRING=E2=80=99 235 | __BUILD_IOPORT_STRING(l, u32) | ^~~~~~~~~~~~~~~~~~~~~ In file included from ./arch/sh/include/asm/io.h:290, from ./include/linux/io.h:13, from ./include/linux/irq.h:20, from ./include/asm-generic/hardirq.h:17, from ./arch/sh/include/asm/hardirq.h:9, from ./include/linux/hardirq.h:11, from ./include/linux/interrupt.h:11, from ./include/linux/kernel_stat.h:9, from ./include/linux/cgroup.h:26, from ./include/linux/memcontrol.h:13, from ./include/linux/swap.h:9, from ./include/linux/suspend.h:5, from arch/sh/kernel/asm-offsets.c:16: ./include/asm-generic/io.h:713:15: error: redefinition of =E2=80=98outsb=E2= =80=99 713 | #define outsb outsb | ^~~~~ ./include/asm-generic/io.h:714:20: note: in expansion of macro =E2=80=98out= sb=E2=80=99 714 | static inline void outsb(unsigned long addr, const void *buffer, | ^~~~~ In file included from ./include/linux/io.h:13, from ./include/linux/irq.h:20, from ./include/asm-generic/hardirq.h:17, from ./arch/sh/include/asm/hardirq.h:9, from ./include/linux/hardirq.h:11, from ./include/linux/interrupt.h:11, from ./include/linux/kernel_stat.h:9, from ./include/linux/cgroup.h:26, from ./include/linux/memcontrol.h:13, from ./include/linux/swap.h:9, from ./include/linux/suspend.h:5, from arch/sh/kernel/asm-offsets.c:16: ./arch/sh/include/asm/io.h:211:20: note: previous definition of =E2=80=98outsb=E2=80=99 with type =E2=80=98void(long unsigned int, const v= oid *, unsigned int)=E2=80=99 211 | static inline void outs##bwlq(unsigned long port, const void *addr, \ | ^~~~ ./arch/sh/include/asm/io.h:233:1: note: in expansion of macro =E2=80=98__BUILD_IOPORT_STRING=E2=80=99 233 | __BUILD_IOPORT_STRING(b, u8) | ^~~~~~~~~~~~~~~~~~~~~ In file included from ./arch/sh/include/asm/io.h:290, from ./include/linux/io.h:13, from ./include/linux/irq.h:20, from ./include/asm-generic/hardirq.h:17, from ./arch/sh/include/asm/hardirq.h:9, from ./include/linux/hardirq.h:11, from ./include/linux/interrupt.h:11, from ./include/linux/kernel_stat.h:9, from ./include/linux/cgroup.h:26, from ./include/linux/memcontrol.h:13, from ./include/linux/swap.h:9, from ./include/linux/suspend.h:5, from arch/sh/kernel/asm-offsets.c:16: ./include/asm-generic/io.h:722:15: error: redefinition of =E2=80=98outsw=E2= =80=99 722 | #define outsw outsw | ^~~~~ ./include/asm-generic/io.h:723:20: note: in expansion of macro =E2=80=98out= sw=E2=80=99 723 | static inline void outsw(unsigned long addr, const void *buffer, | ^~~~~ In file included from ./include/linux/io.h:13, from ./include/linux/irq.h:20, from ./include/asm-generic/hardirq.h:17, from ./arch/sh/include/asm/hardirq.h:9, from ./include/linux/hardirq.h:11, from ./include/linux/interrupt.h:11, from ./include/linux/kernel_stat.h:9, from ./include/linux/cgroup.h:26, from ./include/linux/memcontrol.h:13, from ./include/linux/swap.h:9, from ./include/linux/suspend.h:5, from arch/sh/kernel/asm-offsets.c:16: ./arch/sh/include/asm/io.h:211:20: note: previous definition of =E2=80=98outsw=E2=80=99 with type =E2=80=98void(long unsigned int, const v= oid *, unsigned int)=E2=80=99 211 | static inline void outs##bwlq(unsigned long port, const void *addr, \ | ^~~~ ./arch/sh/include/asm/io.h:234:1: note: in expansion of macro =E2=80=98__BUILD_IOPORT_STRING=E2=80=99 234 | __BUILD_IOPORT_STRING(w, u16) | ^~~~~~~~~~~~~~~~~~~~~ In file included from ./arch/sh/include/asm/io.h:290, from ./include/linux/io.h:13, from ./include/linux/irq.h:20, from ./include/asm-generic/hardirq.h:17, from ./arch/sh/include/asm/hardirq.h:9, from ./include/linux/hardirq.h:11, from ./include/linux/interrupt.h:11, from ./include/linux/kernel_stat.h:9, from ./include/linux/cgroup.h:26, from ./include/linux/memcontrol.h:13, from ./include/linux/swap.h:9, from ./include/linux/suspend.h:5, from arch/sh/kernel/asm-offsets.c:16: ./include/asm-generic/io.h:731:15: error: redefinition of =E2=80=98outsl=E2= =80=99 731 | #define outsl outsl | ^~~~~ ./include/asm-generic/io.h:732:20: note: in expansion of macro =E2=80=98out= sl=E2=80=99 732 | static inline void outsl(unsigned long addr, const void *buffer, | ^~~~~ In file included from ./include/linux/io.h:13, from ./include/linux/irq.h:20, from ./include/asm-generic/hardirq.h:17, from ./arch/sh/include/asm/hardirq.h:9, from ./include/linux/hardirq.h:11, from ./include/linux/interrupt.h:11, from ./include/linux/kernel_stat.h:9, from ./include/linux/cgroup.h:26, from ./include/linux/memcontrol.h:13, from ./include/linux/swap.h:9, from ./include/linux/suspend.h:5, from arch/sh/kernel/asm-offsets.c:16: ./arch/sh/include/asm/io.h:211:20: note: previous definition of =E2=80=98outsl=E2=80=99 with type =E2=80=98void(long unsigned int, const v= oid *, unsigned int)=E2=80=99 211 | static inline void outs##bwlq(unsigned long port, const void *addr, \ | ^~~~ ./arch/sh/include/asm/io.h:235:1: note: in expansion of macro =E2=80=98__BUILD_IOPORT_STRING=E2=80=99 235 | __BUILD_IOPORT_STRING(l, u32) | ^~~~~~~~~~~~~~~~~~~~~ In file included from ./arch/sh/include/asm/io.h:290, from ./include/linux/io.h:13, from ./include/linux/irq.h:20, from ./include/asm-generic/hardirq.h:17, from ./arch/sh/include/asm/hardirq.h:9, from ./include/linux/hardirq.h:11, from ./include/linux/interrupt.h:11, from ./include/linux/kernel_stat.h:9, from ./include/linux/cgroup.h:26, from ./include/linux/memcontrol.h:13, from ./include/linux/swap.h:9, from ./include/linux/suspend.h:5, from arch/sh/kernel/asm-offsets.c:16: ./include/asm-generic/io.h:1111:20: error: static declaration of =E2=80=98ioport_map=E2=80=99 follows non-static declaration 1111 | #define ioport_map ioport_map | ^~~~~~~~~~ ./include/asm-generic/io.h:1112:29: note: in expansion of macro =E2=80=98io= port_map=E2=80=99 1112 | static inline void __iomem *ioport_map(unsigned long port, unsigned int nr) | ^~~~~~~~~~ In file included from ./arch/sh/include/asm/io.h:22, from ./include/linux/io.h:13, from ./include/linux/irq.h:20, from ./include/asm-generic/hardirq.h:17, from ./arch/sh/include/asm/hardirq.h:9, from ./include/linux/hardirq.h:11, from ./include/linux/interrupt.h:11, from ./include/linux/kernel_stat.h:9, from ./include/linux/cgroup.h:26, from ./include/linux/memcontrol.h:13, from ./include/linux/swap.h:9, from ./include/linux/suspend.h:5, from arch/sh/kernel/asm-offsets.c:16: ./include/asm-generic/iomap.h:92:22: note: previous declaration of =E2=80=98ioport_map=E2=80=99 with type =E2=80=98void *(long unsigned int, = unsigned int)=E2=80=99 92 | extern void __iomem *ioport_map(unsigned long port, unsigned int nr= ); | ^~~~~~~~~~ In file included from ./arch/sh/include/asm/io.h:290, from ./include/linux/io.h:13, from ./include/linux/irq.h:20, from ./include/asm-generic/hardirq.h:17, from ./arch/sh/include/asm/hardirq.h:9, from ./include/linux/hardirq.h:11, from ./include/linux/interrupt.h:11, from ./include/linux/kernel_stat.h:9, from ./include/linux/cgroup.h:26, from ./include/linux/memcontrol.h:13, from ./include/linux/swap.h:9, from ./include/linux/suspend.h:5, from arch/sh/kernel/asm-offsets.c:16: ./include/asm-generic/io.h:1121:22: error: static declaration of =E2=80=98ioport_unmap=E2=80=99 follows non-static declaration 1121 | #define ioport_unmap ioport_unmap | ^~~~~~~~~~~~ ./include/asm-generic/io.h:1122:20: note: in expansion of macro =E2=80=98io= port_unmap=E2=80=99 1122 | static inline void ioport_unmap(void __iomem *p) | ^~~~~~~~~~~~ In file included from ./arch/sh/include/asm/io.h:22, from ./include/linux/io.h:13, from ./include/linux/irq.h:20, from ./include/asm-generic/hardirq.h:17, from ./arch/sh/include/asm/hardirq.h:9, from ./include/linux/hardirq.h:11, from ./include/linux/interrupt.h:11, from ./include/linux/kernel_stat.h:9, from ./include/linux/cgroup.h:26, from ./include/linux/memcontrol.h:13, from ./include/linux/swap.h:9, from ./include/linux/suspend.h:5, from arch/sh/kernel/asm-offsets.c:16: ./include/asm-generic/iomap.h:93:13: note: previous declaration of =E2=80=98ioport_unmap=E2=80=99 with type =E2=80=98void(void *)=E2=80=99 93 | extern void ioport_unmap(void __iomem *); | ^~~~~~~~~~~~ make[2]: *** [scripts/Makefile.build:116: arch/sh/kernel/asm-offsets.s] Err= or 1 make[1]: *** [Makefile:1275: prepare0] Error 2 make: *** [Makefile:234: __sub-make] Error 2 > --- a/arch/sh/include/asm/io.h > +++ b/arch/sh/include/asm/io.h > @@ -119,6 +119,26 @@ void __raw_readsl(const void __iomem *addr, void *da= ta, int longlen); > > __BUILD_MEMORY_STRING(__raw_, q, u64) > > +#define ioread8 ioread8 > +#define ioread16 ioread16 > +#define ioread16be ioread16be > +#define ioread32 ioread32 > +#define ioread32be ioread32be > + > +#define iowrite8 iowrite8 > +#define iowrite16 iowrite16 > +#define iowrite16be iowrite16be > +#define iowrite32 iowrite32 > +#define iowrite32be iowrite32be > + > +#define ioread8_rep ioread8_rep > +#define ioread16_rep ioread16_rep > +#define ioread32_rep ioread32_rep > + > +#define iowrite8_rep iowrite8_rep > +#define iowrite16_rep iowrite16_rep > +#define iowrite32_rep iowrite32_rep > + > #ifdef CONFIG_HAS_IOPORT_MAP > > /* > @@ -225,6 +245,9 @@ __BUILD_IOPORT_STRING(q, u64) > #define IO_SPACE_LIMIT 0xffffffff > > /* We really want to try and get these to memcpy etc */ > +#define memset_io memset_io > +#define memcpy_fromio memcpy_fromio > +#define memcpy_toio memcpy_toio > void memcpy_fromio(void *, const volatile void __iomem *, unsigned long)= ; > void memcpy_toio(volatile void __iomem *, const void *, unsigned long); > void memset_io(volatile void __iomem *, int, unsigned long); > @@ -287,6 +310,8 @@ static inline void iounmap(volatile void __iomem *add= r) { } > */ > #define xlate_dev_mem_ptr(p) __va(p) > > +#include > + > #define ARCH_HAS_VALID_PHYS_ADDR_RANGE > int valid_phys_addr_range(phys_addr_t addr, size_t size); > int valid_mmap_phys_addr_range(unsigned long pfn, size_t size); > diff --git a/arch/sh/include/asm/io_noioport.h b/arch/sh/include/asm/io_n= oioport.h > index f7938fe0f911..5ba4116b4265 100644 > --- a/arch/sh/include/asm/io_noioport.h > +++ b/arch/sh/include/asm/io_noioport.h > @@ -53,6 +53,13 @@ static inline void ioport_unmap(void __iomem *addr) > #define outw_p(x, addr) outw((x), (addr)) > #define outl_p(x, addr) outl((x), (addr)) > > +#define insb insb > +#define insw insw > +#define insl insl > +#define outsb outsb > +#define outsw outsw > +#define outsl outsl > + > static inline void insb(unsigned long port, void *dst, unsigned long cou= nt) > { > BUG(); > -- > 2.34.1 > --=20 Gr{oetje,eeting}s, Geert --=20 Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k= .org In personal conversations with technical people, I call myself a hacker. Bu= t when I'm talking to journalists I just say "programmer" or something like t= hat. -- Linus Torvalds