[PATCH 07/15] dma/ioat: pack structures when building with MSVC
Tyler Retzlaff
roretzla at linux.microsoft.com
Wed Mar 27 23:51:41 CET 2024
On Thu, Mar 21, 2024 at 04:13:32PM +0000, Bruce Richardson wrote:
> On Wed, Mar 20, 2024 at 02:06:03PM -0700, Tyler Retzlaff wrote:
> > Add __rte_msvc_pushpack(1) to all __rte_packed structs to cause packing
> > when building with MSVC.
> >
> > Signed-off-by: Tyler Retzlaff <roretzla at linux.microsoft.com>
> > ---
> > drivers/dma/ioat/ioat_hw_defs.h | 1 +
> > 1 file changed, 1 insertion(+)
> >
> > diff --git a/drivers/dma/ioat/ioat_hw_defs.h b/drivers/dma/ioat/ioat_hw_defs.h
> > index dc3493a..6e32807 100644
> > --- a/drivers/dma/ioat/ioat_hw_defs.h
> > +++ b/drivers/dma/ioat/ioat_hw_defs.h
> > @@ -52,6 +52,7 @@
> > #define IOAT_DMACAP_PQ (1 << 9)
> > #define IOAT_DMACAP_DMA_DIF (1 << 10)
> >
> > +__rte_msvc_pack
> > struct ioat_registers {
> > uint8_t chancnt;
> > uint8_t xfercap;
>
> This struct has all gaps explicitly filled, so packed should not be
> necessary. Struct has same size with and without the attribute.
just eyeballing it i think
uint32_t dmacapability; /* 0x10 */
with packing will not be aligned on a 4-byte boundary.
maybe i miscounted though.
>
> /Bruce
More information about the dev
mailing list