Re: linux-next: manual merge of the pci tree with the asm-generic tree

From: Thierry Reding
Date: Fri Sep 26 2014 - 03:00:31 EST


On Fri, Sep 26, 2014 at 01:29:02PM +1000, Stephen Rothwell wrote:
> Hi Bjorn,
>
> Today's linux-next merge of the pci tree got a conflict in
> include/asm-generic/io.h between commit 4005bfe0aa45
> ("asm-generic/io.h: Implement generic {read,write}s*()") from the
> asm-generic tree and commit 3aad9c969c09 ("asm-generic/io.h: Fix
> ioport_map() for !CONFIG_GENERIC_IOMAP") from the pci tree.
>
> I fixed it up (the only difference is that the latter castes the result
> to void __iomem * - see below) and can carry the fix as necessary (no
> action is required).
>
> --
> Cheers,
> Stephen Rothwell sfr@xxxxxxxxxxxxxxxx
>
> diff --cc include/asm-generic/io.h
> index 3e976be3bdd4,2e2161b0c795..000000000000
> --- a/include/asm-generic/io.h
> +++ b/include/asm-generic/io.h
> @@@ -756,16 -329,11 +756,16 @@@ static inline void iounmap(void __iome
>
> #ifdef CONFIG_HAS_IOPORT_MAP
> #ifndef CONFIG_GENERIC_IOMAP
> +#ifndef ioport_map
> +#define ioport_map ioport_map
> static inline void __iomem *ioport_map(unsigned long port, unsigned int nr)
> {
> - return PCI_IOBASE + (port & IO_SPACE_LIMIT);
> + return (void __iomem *)(PCI_IOBASE + (port & IO_SPACE_LIMIT));

I don't think that cast is necessary. All instances of PCI_IOBASE are
already defined to be void __iomem *.

Or at least they were until a few days ago. Commit f3dfddf7bd85 (ARM:
Define PCI_IOBASE as the base of virtual PCI IO space) introduces one
variant for ARM which isn't actually void __iomem *. I think what we
should do is standardize the type of PCI_IOBASE.

So how about we remove commit 3aad9c969c09 (asm-generic/io.h: Fix
ioport_map() for !CONFIG_GENERIC_IOMAP) and move the cast to void
__iomem * to Liviu's definition of PCI_IOBASE for ARM?

Thierry

Attachment: pgpoXNr1gsAEe.pgp
Description: PGP signature