On Fri, Jan 26, 2024, at 03:36, Joe Damato wrote: > On Thu, Jan 25, 2024 at 04:23:58PM -0800, Greg Kroah-Hartman wrote: >> On Thu, Jan 25, 2024 at 04:11:28PM -0800, Joe Damato wrote: >> > On Thu, Jan 25, 2024 at 03:21:46PM -0800, Greg Kroah-Hartman wrote: >> > > On Thu, Jan 25, 2024 at 10:56:59PM +0000, Joe Damato wrote: >> > > > +struct epoll_params { >> > > > + u64 busy_poll_usecs; >> > > > + u16 busy_poll_budget; >> > > > + >> > > > + /* for future fields */ >> > > > + u8 data[118]; >> > > > +} EPOLL_PACKED; >> > > > > Sure, that makes sense to me. I'll remove it in the v4 alongside the other > changes you've requested. > > Thanks for your time and patience reviewing my code. I greatly appreciate > your helpful comments and feedback. Note that you should still pad the structure to its normal alignment. On non-x86 targets this would currently mean a multiple of 64 bits. I would suggest dropping the EPOLL_PACKED here entirely and just using a fully aligned structure on all architectures, like struct epoll_params { __aligned_u64 busy_poll_usecs; __u16 busy_poll_budget; __u8 __pad[6]; }; The explicit padding can help avoid leaking stack data when a structure is copied back from kernel to userspace, so I would just always use it in ioctl data structures. Arnd