On Fri, Sep 23, 2022 at 09:57:47PM -0700, Kees Cook wrote: > On Thu, Sep 22, 2022 at 12:51:27PM -0700, Nathan Chancellor wrote: > > [...] > > To make everything work properly, adjust certain functions to match the > > type of the ->show() and ->store() members in 'struct kobj_attribute'. > > Add a macro to generate functions for that can be called via both > > dev_attr_{show,store}() or kobj_attr_{show,store}() so that they can be > > called through both kobject locations without violating kCFI and adjust > > the attribute groups to account for this. > > This was quite a roller coaster! I think the solution looks good, even > if I'm suspicious of the original design that has the same stuff > available twice in different places. (I have a dim memory of rdma > needing a refactoring like this too?) Right, I noticed this comment in intel_gt_sysfs_register() once I fully saw what was going on: /* * We need to make things right with the * ABI compatibility. The files were originally * generated under the parent directory. * * We generate the files only for gt 0 * to avoid duplicates. */ Makes it seem like there will be userspace breakage if these files do not exist? I figured this was the cleanest solution within those parameters. > Reviewed-by: Kees Cook <keescook@xxxxxxxxxxxx> Thanks for looking it over! Cheers, Nathan