Re: Re: [PATCH v3] PCI: Add pci_iounmap

From: George Cherian
Date: Tue Sep 01 2020 - 14:05:57 EST


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.

Bjorn, any comments?

Regards
-George

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