linuxkpi: Clean up linux_shmem_file_setup() a bit

- Free the pointer that was returned by the allocator, instead of the
  address of the first member.  These will be equal in practice, but
  it's sketchy and won't work on CHERI with subobject bounds checking.
- Use an anonymous struct, there's no need to name it.

Reviewed by:	bz, brooks, emaste
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D54673
This commit is contained in:
Mark Johnston
2026-01-15 13:51:29 +00:00
parent aa1eb62338
commit 251662e5ab
@@ -62,11 +62,10 @@ linux_shmem_read_mapping_page_gfp(vm_object_t obj, int pindex, gfp_t gfp)
struct linux_file *
linux_shmem_file_setup(const char *name, loff_t size, unsigned long flags)
{
struct fileobj {
struct {
struct linux_file file __aligned(sizeof(void *));
struct vnode vnode __aligned(sizeof(void *));
};
struct fileobj *fileobj;
} *fileobj;
struct linux_file *filp;
struct vnode *vp;
int error;
@@ -89,7 +88,7 @@ linux_shmem_file_setup(const char *name, loff_t size, unsigned long flags)
}
return (filp);
err_1:
kfree(filp);
kfree(fileobj);
err_0:
return (ERR_PTR(error));
}