Quoting Tvrtko Ursulin (2019-05-01 16:51:28) > > On 01/05/2019 12:55, Chris Wilson wrote: > > Quoting Tvrtko Ursulin (2019-05-01 12:45:36) > >> Hmm.. probably manual check for no holes _and_ alignment is good enough > >> for uAPI since once it's in it's in. Will triple-check. > > > > Yeah, we actually need something more like > > offsetofend(previous_field) == offsetof(next_field) > > > > BUILD_BUG_ON(check_user_struct(info, previous_field, next_field)) ? > > How would you logistically do it? List all struct members for each uapi > struct you want to check? > > Maybe a variadic macro like: > > CHECK_USER_STRUCT_FUNCTION(type, member0, ... memberN); > > Which expands to a dedicated function to check this type, using > va_start/va_end to iterate all members checking for holes. So somewhere > in code we would also need: > > CHECK_USER_STRUCT(type); > > Which would call the function. But thats not build time.. Could be under > debug and selftests I guess. Could even be IGT in this case. > > But I am not to keen in listing each struct member with a > prev/next_field BUILD_BUG_ON. > > Perhaps IGT is indeed a better place to start testing for this. Since we > anyway require each new uAPI to have good IGT coverage. Definitely don't like the idea of doing it manually, I could have just about accepted it if we could have rolled it into a get_user wrapper. We should just go annoy Jani to whip up some Makefile magic to call pahole and check the structs defined in uapi.h -Chris _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx