]> git.droids-corp.org - dpdk.git/blobdiff - lib/librte_eal/common/include/rte_common.h
eal: fix container_of macro for const members
[dpdk.git] / lib / librte_eal / common / include / rte_common.h
index 8dda3e2944605a4576e41f50b74ba4d76ff3e4a9..c4217082c9dd4c94e891ac048f769cdc9fb2d816 100644 (file)
@@ -347,8 +347,9 @@ rte_bsf32(uint32_t v)
  */
 #ifndef container_of
 #define container_of(ptr, type, member)        __extension__ ({                \
  */
 #ifndef container_of
 #define container_of(ptr, type, member)        __extension__ ({                \
-                       typeof(((type *)0)->member) *_ptr = (ptr);      \
-                       (type *)(((char *)_ptr) - offsetof(type, member)); })
+                       const typeof(((type *)0)->member) *_ptr = (ptr); \
+                       (type *)(((uintptr_t)_ptr) - offsetof(type, member)); \
+               })
 #endif
 
 #define _RTE_STR(x) #x
 #endif
 
 #define _RTE_STR(x) #x