• Clemens Ladisch's avatar
    firewire: ohci: fix compilation on arches without PAGE_KERNEL_RO · 14271304
    Clemens Ladisch authored
    PAGE_KERNEL_RO is not available on all architectures, so its use
    in the new AR code broke compilation on sparc64.
    
    Because the read-only mapping was just a debugging aid, just use
    PAGE_KERNEL instead.
    Signed-off-by: default avatarClemens Ladisch <clemens@ladisch.de>
    
    James Bottomley wrote:
    > On Thu, 2011-01-13 at 08:27 +0100, Clemens Ladisch wrote:
    >> firewire: ohci: fix compilation on arches without PAGE_KERNEL_RO, e.g. sparc
    >>
    >> PAGE_KERNEL_RO is not available on all architectures, so its use in the
    >> new AR code broke compilation on sparc64.
    >>
    >> Because the R/O mapping is only used to catch drivers that try to write
    >> to the reception buffer and not actually required for correct operation,
    >> we can just use a normal PAGE_KERNEL mapping where _RO is not available.
    [...]
    >> +/*
    >> + * For archs where PAGE_KERNEL_RO is not supported;
    >> + * mapping the AR buffers readonly for the CPU is just a debugging aid.
    >> + */
    >> +#ifndef PAGE_KERNEL_RO
    >> +#define PAGE_KERNEL_RO PAGE_KERNEL
    >> +#endif
    >
    > This might cause interesting issues on sparc64 if it ever acquired a
    > PAGE_KERNEL_RO.  Sparc64 has extern pgprot_t for it's PAGE_KERNEL types
    > rather than #defines, so the #ifdef check wouldn't see this.
    >
    > I think either PAGE_PROT_RO becomes part of our arch API (so all
    > architectures are forced to add it), or, if it's not part of the API,
    > ohci isn't entitled to use it.  The latter seems simplest since you have
    > no real use for write protection anyway.
    Reported-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarStefan Richter <stefanr@s5r6.in-berlin.de>
    14271304
ohci.c 92.4 KB