Re: [PATCH v3] PCI: Add pci_iounmap

From: Yang Yingliang
Date: Wed Sep 02 2020 - 04:34:29 EST


Hi,

On 2020/9/2 2:05, George Cherian wrote:
Hi Yang,

-----Original Message-----
From: Yang Yingliang <yangyingliang@xxxxxxxxxx>
Sent: Tuesday, September 1, 2020 6:59 PM
To: George Cherian <gcherian@xxxxxxxxxxx>; linux-kernel@xxxxxxxxxxxxxxx;
linux-arch@xxxxxxxxxxxxxxx; linux-pci@xxxxxxxxxxxxxxx
Cc: kbuild-all@xxxxxxxxxxxx; bhelgaas@xxxxxxxxxx; arnd@xxxxxxxx;
mst@xxxxxxxxxx
Subject: Re: [PATCH v3] PCI: Add pci_iounmap




On 2020/8/25 9:25, kernel test robot wrote:
Hi George,

I love your patch! Yet something to improve:

[auto build test ERROR on pci/next]
[also build test ERROR on linux/master linus/master asm-generic/master
v5.9-rc2 next-20200824] [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://urldefense.proofpoint.com/v2/url?u=https-3A__git-
2Dscm.com_doc
s_git-2Dformat-2Dpatch&d=DwIC-
g&c=nKjWec2b6R0mOyPaz7xtfQ&r=TjMsEFPc7di
rkF6u2D3eSIS0cA8FeYpzRkkMzr4aCbk&m=dvtRkwC273FmalEZE_KonLRWrIV
WLSWfG61
NWTWG5LI&s=ycW6SZOVRuKAm3YwdhyAuSh22oPuengSMVuv-
EwaUew&e= ]
url: https://urldefense.proofpoint.com/v2/url?u=https-
3A__github.com_0day-2Dci_linux_commits_George-2DCherian_PCI-2DAdd-
2Dpci-5Fiounmap_20200824-2D212149&d=DwIC-
g&c=nKjWec2b6R0mOyPaz7xtfQ&r=TjMsEFPc7dirkF6u2D3eSIS0cA8FeYpzRkk
Mzr4aCbk&m=dvtRkwC273FmalEZE_KonLRWrIVWLSWfG61NWTWG5LI&s=6c
UOYHeDOBZ0HaFc2z-vaDgDmbIK4LCBRt9kNkn1sto&e=
base: https://urldefense.proofpoint.com/v2/url?u=https-
3A__git.kernel.org_pub_scm_linux_kernel_git_helgaas_pci.git&d=DwIC-
g&c=nKjWec2b6R0mOyPaz7xtfQ&r=TjMsEFPc7dirkF6u2D3eSIS0cA8FeYpzRkk
Mzr4aCbk&m=dvtRkwC273FmalEZE_KonLRWrIVWLSWfG61NWTWG5LI&s=h-
TMyLlEdAwew-u52q4dgWBUMgm0ys-xKzvOO86e1Lw&e= next
config: powerpc-allyesconfig (attached as .config)
compiler: powerpc64-linux-gcc (GCC) 9.3.0 reproduce (this is a W=1
build):
wget https://urldefense.proofpoint.com/v2/url?u=https-
3A__raw.githubusercontent.com_intel_lkp-
2Dtests_master_sbin_make.cross&d=DwIC-
g&c=nKjWec2b6R0mOyPaz7xtfQ&r=TjMsEFPc7dirkF6u2D3eSIS0cA8FeYpzRkk
Mzr4aCbk&m=dvtRkwC273FmalEZE_KonLRWrIVWLSWfG61NWTWG5LI&s=az
QcL0MQmPpr9UfvyBSSdQiu1UbjJgFrzNJOtcZ_--E&e= -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0
make.cross ARCH=powerpc

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

All errors (new ones prefixed by >>):

powerpc64-linux-ld: lib/pci_iomap.o: in function `__crc_pci_iounmap':
(.rodata+0x10): multiple definition of `__crc_pci_iounmap';
lib/iomap.o:(.rodata+0x68): first defined here
EXPORT_SYMBOL(pci_iounmap) in lib/iomap.c need be removed.
I really don't think that is the way to fix this. I have also seen your other patch
in which iomap being moved out of lib/iomap.c to header file.

There was a reason for moving iomap and its variants to a lib since most of
the arch's implementation of map was similar. Whereas the unmap had multiple
implementation per arch's. So, the lib/iomap never implemented the generic unmap.

I see either of the following solution.
a. Have an arm64 specific implementation for the unmap function.
Or
b. something on the lines of v2[1], which accommodates all the arch's but has the #ifdef
for which Bjorn raised his concerns.
I think 'a' may be better, and I have already make a patch, I can send it after testing.

Bjorn, any comments?

Regards
-George

[1] - https://lkml.org/lkml/2020/8/20/28