On Fri, 2008-02-15 at 08:39 +0900, Tejun Heo wrote: > Harvey Harrison wrote: > > This patch may be too ugly to live, it suppresses a lot of > > sparse warnings in the libata build and produces slightly > > tighter code. (4 instructions vs 5 and a few bytes saved). > > > > include/linux/libata.h:1214:13: warning: potentially expensive pointer subtraction > > --- > > I know it's ugly, but I had it done anyways. The one real problem I have > > with it is that if link and ap->pmp_link ever get changed to different types > > the compiler will not even warn as we cast away to (char *). To make it > > a bit more robust, a BUILD_BUG_ON checking the pointer types may be a > > good idea. > > Sorry, but Nacked-by: Tejun Heo <htejun@xxxxxxxxx> > Can't say I really blame you, other than this one error, drivers/ata builds almost sparse-clean, and I had it done anyways. I wonder if a helper similar in spirit would be any better. This doesn't have any typechecking, but perhaps that could be dealt with too. Ran into a similar problem with mmzone.h, akpm has the patch, but maybe a helper (kernel.h?) would be cleaner. Or maybe it's just better to live with the sparse warnings.... /* * return the offset of the ptr from the base, in bytes. */ #define PTR_OFF(base, ptr) \ ((char *)ptr - (char *)base) if (PTR_OFF(ap->pmp_link, ++link) < ap->nr_pmp_links * sizeof(*link)) return link; Cheers, Harvey - To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html