Re: [PATCH 0/5] mfd: replace IORESOURCE_IO by IORESOURCE_MEM

Russell King
2012-08-07T14:42:01Z

On Tue, Aug 07, 2012 at 02:28:15PM +0000, Arnd Bergmann wrote:
> On Tuesday 07 August 2012, Mark Brown wrote:
> > On Tue, Aug 07, 2012 at 01:11:57PM +0100, Russell King wrote:
> > > index 589e0e7..bfee885 100644
> > > --- a/include/linux/ioport.h
> > > +++ b/include/linux/ioport.h
> > > @@ -31,6 +31,7 @@ struct resource {
> > > #define IORESOURCE_TYPE_BITS 0x00001f00 /* Resource type */
> > > #define IORESOURCE_IO 0x00000100
> > > #define IORESOURCE_MEM 0x00000200
> > > +#define IORESOURCE_REG 0x00000300 /* Register offsets */
> > > #define IORESOURCE_IRQ 0x00000400
> > > #define IORESOURCE_DMA 0x00000800
> > > #define IORESOURCE_BUS 0x00001000
> >
> > As I've said before I'm fine with the driver changes. I do feel that it
> > would be better to also renumber all the existing resource types while
> > we're at it in order to make it clear that these are just plain numbers,
> > that's the reason nobody wrote this patch previously. This will avoid
> > any future confusion.
>
> This gets into a lot more tricky territory: We have a bunch of drivers
> doing their own bitmask operations on these, like drivers/video/offb.c
> testing
>
> if ((flags & (IORESOURCE_IO | IORESOURCE_MEM)) == 0)
> return NULL;
>
> or drivers/scsi/gdth.c doing
>
> if (!(base0 & IORESOURCE_MEM) ||
> !(base2 & IORESOURCE_MEM) ||
> !(base1 & IORESOURCE_IO))
> return -ENODEV;
>
> Now I've looked at the three drivers with the immediate problem of
> IORESOURCE_IO abuse (max8925, wm831x, 88pm860x) and none of them are
> doing such bitmask operations, so I'm reasonably sure we are fine
> for those drivers. I also agree that renumbering the resources in a
> way that makes it impossible to use bitmasks is a good idea, but
> that would actually be pretty invasive because then we have to rewrite
> all the functions that currently do it.

Don't feed the troll :)

None of the code you list above would be affected in any way by the
changes I propose; we're not changing the existing values, and these
drivers would not see the new IORESOURCE_REG type.

That's not to say that they wouldn't need fixing (they do), but they
are not a reason to reject my proposal, even for -stable trees.

--
Russell King
Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/