2015-06-23 17:36, Olivier MATZ: > On 06/22/2015 08:34 PM, Cyril Chemparathy wrote: > > This series contains a few improvements that allow the DPDK code base > > to build properly on machines that enforce strict pointer cast > > alignment constraints. > > > > When dealing with packet data which could be arbitrarily aligned, we > > get the compiler to do the right thing by (a) making sure that header > > types are packed, and (b) introducing and using > > unaligned_uint(16|32|64)_t types when upcasting from byte pointers. > > > > In a few other instances, we know apriori that the pointer cast cannot > > possibly break alignment. This applies to the changes in mempool, > > hash, mbuf, and the ethdev stats code. Here, we simply silence the > > compiler by casting through (void *) using the RTE_PTR_(ADD|SUB) > > macros. > > > > Finally, we introduce a new rte_pktmbuf_mtod_offset() helper to return > > a type casted pointer to an offset within the packet data. This > > replaces the following commonly used pattern: > > (struct foo *)(rte_pktmbuf_mtod(m, char *) + offset) > > with: > > rte_pktmbuf_mtod_offset(m, struct foo *, offset) > > > > To ensure consistency, the above transform was applied throughout the > > code base using the coccinelle semantic patching tool. > > Series > Acked-by: Olivier Matz <olivier.matz at 6wind.com>
Applied, thanks