From: Gavin Shan <[email protected]> commit b13460b92093b29347e99d6c3242e350052b62cd upstream.
The macro offsetofend() introduces unnecessary temporary variable "tmp". The patch avoids that and saves a bit memory in stack. Signed-off-by: Gavin Shan <[email protected]> Signed-off-by: Alex Williamson <[email protected]> [wt: backported only for ipv6 out-of-bounds fix] Signed-off-by: Willy Tarreau <[email protected]> --- include/linux/vfio.h | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/include/linux/vfio.h b/include/linux/vfio.h index ac8d488..1a7f0ac 100644 --- a/include/linux/vfio.h +++ b/include/linux/vfio.h @@ -86,8 +86,7 @@ extern void vfio_unregister_iommu_driver( * from user space. This allows us to easily determine if the provided * structure is sized to include various fields. */ -#define offsetofend(TYPE, MEMBER) ({ \ - TYPE tmp; \ - offsetof(TYPE, MEMBER) + sizeof(tmp.MEMBER); }) \ +#define offsetofend(TYPE, MEMBER) \ + (offsetof(TYPE, MEMBER) + sizeof(((TYPE *)0)->MEMBER)) #endif /* VFIO_H */ -- 2.8.0.rc2.1.gbe9624a

