why not roundup() from src/sys/sys/param.h?
> On 9 Jun 2016, at 09:04, Tom Cosgrove <[email protected]>
> wrote:
>
> If (pktlen & 3) == 0, SXIE_ROUNDUP returns pktlen anyway (that's its job):
> it's defined as
>
> #define SXIE_ROUNDUP(size, unit) (((size) + (unit) - 1) & ~((unit) - 1))
>
> Thanks
>
> Tom
>
>
> Index: sys/arch/armv7/sunxi/sxie.c
> ===================================================================
> RCS file: /home/OpenBSD/cvs/src/sys/arch/armv7/sunxi/sxie.c,v
> retrieving revision 1.14
> diff -u -p -u -r1.14 sxie.c
> --- sys/arch/armv7/sunxi/sxie.c 13 Apr 2016 11:34:00 -0000 1.14
> +++ sys/arch/armv7/sunxi/sxie.c 8 Jun 2016 23:03:46 -0000
> @@ -606,10 +606,7 @@ trynext:
> m_adj(m, ETHER_ALIGN);
>
> /* read the actual packet from fifo XXX through 'align buffer'.. */
> - if (pktlen & 3)
> - rlen = SXIE_ROUNDUP(pktlen, 4);
> - else
> - rlen = pktlen;
> + rlen = SXIE_ROUNDUP(pktlen, 4);
> bus_space_read_multi_4(sc->sc_iot, sc->sc_ioh,
> SXIE_RXIO, (uint32_t *)&rxbuf[0], rlen >> 2);
> memcpy(mtod(m, char *), (char *)&rxbuf[0], pktlen);
>