I would like to remove the 'ioff' argument from pool_init() and friends, documented as 'align_offset' in the man page. This parameter allows the caller to specify that the alignment given in 'align' is to be applied at the offset 'ioff' within the buffer.
The two users I could find are: * sys/arch/arm/xscale/iopaau.c: iopaau_desc_4_cache and iopaau_desc_8_cache. * sys/arch/arm/arm32/pmap.c: pmap_l2ptp_cache, at a time, and it was actually a bug, the arguments were inverted... I think we're better-off with hard-aligned structures, ie with __aligned(32) in the case of XSCALE. Then we just pass align=32 in the pool, and that's it. I would prefer to avoid any confusion in the pool initializers and drop ioff, rather than having this kind of marginal and not-well-defined features that add complexity with no real good reason. Note also that, as far as I can tell, our policy in the kernel has always been to hard-align the structures, and then pass the same alignment in the allocators.