Re: [PATCH] epca iomem annotations + several missing readw()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Gaah.

On Thu, 15 Sep 2005, Al Viro wrote:
>  { /* Begin post_fep_init */
>  
>  	int i;
> -	unsigned char *memaddr;
> -	struct global_data *gd;
> +	unsigned char __iomem *memaddr;
> +	struct global_data __iomem *gd;

Please don't use "[unsigned] char __iomem *".

Why? Two reasons:

 - it's pointless. You can't dereference it anyway, and unlike a struct or 
   an array, it has no addressing capabilities that "void __iomem *"  
   doesn't have (gcc extension that the kernel uses widely).

   Dereferencing needs "read/write[bwl]()" anyway.

 - it results in horrors like this:

	> -	bc = (struct board_chan *)(memaddr + CHANSTRUCT);
	> +	bc = (struct board_chan __iomem *)(memaddr + CHANSTRUCT);

  which could instead be nicely written as

	bc = memaddr + CHANSTRUCT;

  if "memaddr" were just a "void __iomem *".

I bet the patch would look like a nice cleanup if you did that. Hint, 
hint.

		Linus
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]
  Powered by Linux