LSM_HOOK(void, LSM_RET_VOID, d_instantiate, struct dentry *dentry,
         struct inode *inode)
 LSM_HOOK(int, -EOPNOTSUPP, getselfattr, unsigned int attr,
-        struct lsm_ctx __user *ctx, size_t *size, u32 flags)
+        struct lsm_ctx __user *ctx, u32 *size, u32 flags)
 LSM_HOOK(int, -EOPNOTSUPP, setselfattr, unsigned int attr,
-        struct lsm_ctx *ctx, size_t size, u32 flags)
+        struct lsm_ctx *ctx, u32 size, u32 flags)
 LSM_HOOK(int, -EINVAL, getprocattr, struct task_struct *p, const char *name,
         char **value)
 LSM_HOOK(int, -EINVAL, setprocattr, const char *name, void *value, size_t size)
 
                        unsigned nsops, int alter);
 void security_d_instantiate(struct dentry *dentry, struct inode *inode);
 int security_getselfattr(unsigned int attr, struct lsm_ctx __user *ctx,
-                        size_t __user *size, u32 flags);
+                        u32 __user *size, u32 flags);
 int security_setselfattr(unsigned int attr, struct lsm_ctx __user *ctx,
-                        size_t size, u32 flags);
+                        u32 size, u32 flags);
 int security_getprocattr(struct task_struct *p, int lsmid, const char *name,
                         char **value);
 int security_setprocattr(int lsmid, const char *name, void *value, size_t size);
 int security_inode_setsecctx(struct dentry *dentry, void *ctx, u32 ctxlen);
 int security_inode_getsecctx(struct inode *inode, void **ctx, u32 *ctxlen);
 int security_locked_down(enum lockdown_reason what);
-int lsm_fill_user_ctx(struct lsm_ctx __user *uctx, size_t *uctx_len,
+int lsm_fill_user_ctx(struct lsm_ctx __user *uctx, u32 *uctx_len,
                      void *val, size_t val_len, u64 id, u64 flags);
 #else /* CONFIG_SECURITY */
 
        return 0;
 }
 static inline int lsm_fill_user_ctx(struct lsm_ctx __user *uctx,
-                                   size_t *uctx_len, void *val, size_t val_len,
+                                   u32 *uctx_len, void *val, size_t val_len,
                                    u64 id, u64 flags)
 {
        return -EOPNOTSUPP;
 
                struct cachestat __user *cstat, unsigned int flags);
 asmlinkage long sys_map_shadow_stack(unsigned long addr, unsigned long size, unsigned int flags);
 asmlinkage long sys_lsm_get_self_attr(unsigned int attr, struct lsm_ctx *ctx,
-                                     size_t *size, __u32 flags);
+                                     u32 *size, u32 flags);
 asmlinkage long sys_lsm_set_self_attr(unsigned int attr, struct lsm_ctx *ctx,
-                                     size_t size, __u32 flags);
-asmlinkage long sys_lsm_list_modules(u64 *ids, size_t *size, u32 flags);
+                                     u32 size, u32 flags);
+asmlinkage long sys_lsm_list_modules(u64 *ids, u32 *size, u32 flags);
 
 /*
  * Architecture-specific system calls
 
 }
 
 static int apparmor_getselfattr(unsigned int attr, struct lsm_ctx __user *lx,
-                               size_t *size, u32 flags)
+                               u32 *size, u32 flags)
 {
        int error = -ENOENT;
        struct aa_task_ctx *ctx = task_ctx(current);
 }
 
 static int apparmor_setselfattr(unsigned int attr, struct lsm_ctx *ctx,
-                               size_t size, u32 flags)
+                               u32 size, u32 flags)
 {
        int rc;
 
 
  * value indicating the reason for the error is returned.
  */
 SYSCALL_DEFINE4(lsm_set_self_attr, unsigned int, attr, struct lsm_ctx __user *,
-               ctx, size_t, size, u32, flags)
+               ctx, u32, size, u32, flags)
 {
        return security_setselfattr(attr, ctx, size, flags);
 }
  * a negative value indicating the error is returned.
  */
 SYSCALL_DEFINE4(lsm_get_self_attr, unsigned int, attr, struct lsm_ctx __user *,
-               ctx, size_t __user *, size, u32, flags)
+               ctx, u32 __user *, size, u32, flags)
 {
        return security_getselfattr(attr, ctx, size, flags);
 }
  * required size. In all other cases a negative value indicating the
  * error is returned.
  */
-SYSCALL_DEFINE3(lsm_list_modules, u64 __user *, ids, size_t __user *, size,
+SYSCALL_DEFINE3(lsm_list_modules, u64 __user *, ids, u32 __user *, size,
                u32, flags)
 {
-       size_t total_size = lsm_active_cnt * sizeof(*ids);
-       size_t usize;
+       u32 total_size = lsm_active_cnt * sizeof(*ids);
+       u32 usize;
        int i;
 
        if (flags)
 
  * Returns 0 on success, -E2BIG if userspace buffer is not large enough,
  * -EFAULT on a copyout error, -ENOMEM if memory can't be allocated.
  */
-int lsm_fill_user_ctx(struct lsm_ctx __user *uctx, size_t *uctx_len,
+int lsm_fill_user_ctx(struct lsm_ctx __user *uctx, u32 *uctx_len,
                      void *val, size_t val_len,
                      u64 id, u64 flags)
 {
  * If @size is insufficient to contain the data -E2BIG is returned.
  */
 int security_getselfattr(unsigned int attr, struct lsm_ctx __user *uctx,
-                        size_t __user *size, u32 flags)
+                        u32 __user *size, u32 flags)
 {
        struct security_hook_list *hp;
        struct lsm_ctx lctx = { .id = LSM_ID_UNDEF, };
        u8 __user *base = (u8 __user *)uctx;
-       size_t total = 0;
-       size_t entrysize;
-       size_t left;
+       u32 entrysize;
+       u32 total = 0;
+       u32 left;
        bool toobig = false;
        bool single = false;
        int count = 0;
  * LSM specific failure.
  */
 int security_setselfattr(unsigned int attr, struct lsm_ctx __user *uctx,
-                        size_t size, u32 flags)
+                        u32 size, u32 flags)
 {
        struct security_hook_list *hp;
        struct lsm_ctx *lctx;
 
  * There will only ever be one attribute.
  */
 static int selinux_getselfattr(unsigned int attr, struct lsm_ctx __user *ctx,
-                              size_t *size, u32 flags)
+                              u32 *size, u32 flags)
 {
        int rc;
        char *val = NULL;
 }
 
 static int selinux_setselfattr(unsigned int attr, struct lsm_ctx *ctx,
-                              size_t size, u32 flags)
+                              u32 size, u32 flags)
 {
        int rc;
 
 
  * There will only ever be one attribute.
  */
 static int smack_getselfattr(unsigned int attr, struct lsm_ctx __user *ctx,
-                            size_t *size, u32 flags)
+                            u32 *size, u32 flags)
 {
        int rc;
        struct smack_known *skp;
  * Returns 0 on success, an error code otherwise.
  */
 static int smack_setselfattr(unsigned int attr, struct lsm_ctx *ctx,
-                            size_t size, u32 flags)
+                            u32 size, u32 flags)
 {
        int rc;
 
 
 
 #ifndef lsm_get_self_attr
 static inline int lsm_get_self_attr(unsigned int attr, struct lsm_ctx *ctx,
-                                   size_t *size, __u32 flags)
+                                   __u32 *size, __u32 flags)
 {
        return syscall(__NR_lsm_get_self_attr, attr, ctx, size, flags);
 }
 
 #ifndef lsm_set_self_attr
 static inline int lsm_set_self_attr(unsigned int attr, struct lsm_ctx *ctx,
-                                   size_t size, __u32 flags)
+                                   __u32 size, __u32 flags)
 {
        return syscall(__NR_lsm_set_self_attr, attr, ctx, size, flags);
 }
 #endif
 
 #ifndef lsm_list_modules
-static inline int lsm_list_modules(__u64 *ids, size_t *size, __u32 flags)
+static inline int lsm_list_modules(__u64 *ids, __u32 *size, __u32 flags)
 {
        return syscall(__NR_lsm_list_modules, ids, size, flags);
 }
 
 TEST(ctx_null_lsm_get_self_attr)
 {
        const long page_size = sysconf(_SC_PAGESIZE);
-       size_t size = page_size;
+       __u32 size = page_size;
        int rc;
 
        rc = lsm_get_self_attr(LSM_ATTR_CURRENT, NULL, &size, 0);
 {
        const long page_size = sysconf(_SC_PAGESIZE);
        struct lsm_ctx *ctx = calloc(page_size, 1);
-       size_t size = 1;
+       __u32 size = 1;
 
        ASSERT_NE(NULL, ctx);
        errno = 0;
        const long page_size = sysconf(_SC_PAGESIZE);
        struct lsm_ctx *ctx = calloc(page_size, 1);
        __u64 *syscall_lsms = calloc(page_size, 1);
-       size_t size;
+       __u32 size;
        int lsmcount;
        int i;
 
 {
        const long page_size = sysconf(_SC_PAGESIZE);
        struct lsm_ctx *ctx = calloc(page_size, 1);
-       size_t size;
+       __u32 size;
 
        ASSERT_NE(NULL, ctx);
 
 TEST(basic_lsm_get_self_attr)
 {
        const long page_size = sysconf(_SC_PAGESIZE);
-       size_t size = page_size;
+       __u32 size = page_size;
        struct lsm_ctx *ctx = calloc(page_size, 1);
        struct lsm_ctx *tctx = NULL;
        __u64 *syscall_lsms = calloc(page_size, 1);
 
 TEST(ids_null_lsm_list_modules)
 {
        const long page_size = sysconf(_SC_PAGESIZE);
-       size_t size = page_size;
+       __u32 size = page_size;
 
        errno = 0;
        ASSERT_EQ(-1, lsm_list_modules(NULL, &size, 0));
 {
        const long page_size = sysconf(_SC_PAGESIZE);
        __u64 *syscall_lsms = calloc(page_size, 1);
-       size_t size = 1;
+       __u32 size = 1;
 
        ASSERT_NE(NULL, syscall_lsms);
        errno = 0;
 {
        const long page_size = sysconf(_SC_PAGESIZE);
        __u64 *syscall_lsms = calloc(page_size, 1);
-       size_t size = page_size;
+       __u32 size = page_size;
 
        ASSERT_NE(NULL, syscall_lsms);
        errno = 0;
 TEST(correct_lsm_list_modules)
 {
        const long page_size = sysconf(_SC_PAGESIZE);
-       size_t size = page_size;
+       __u32 size = page_size;
        __u64 *syscall_lsms = calloc(page_size, 1);
        char *sysfs_lsms = calloc(page_size, 1);
        char *name;
 
 {
        const long page_size = sysconf(_SC_PAGESIZE);
        struct lsm_ctx *ctx = calloc(page_size, 1);
-       size_t size = page_size;
+       __u32 size = page_size;
 
        ASSERT_NE(NULL, ctx);
        if (attr_lsm_count()) {
 {
        const long page_size = sysconf(_SC_PAGESIZE);
        struct lsm_ctx *ctx = calloc(page_size, 1);
-       size_t size = page_size;
+       __u32 size = page_size;
 
        ASSERT_NE(NULL, ctx);
        if (attr_lsm_count()) {
 {
        const long page_size = sysconf(_SC_PAGESIZE);
        char *ctx = calloc(page_size, 1);
-       size_t size = page_size;
+       __u32 size = page_size;
        struct lsm_ctx *tctx = (struct lsm_ctx *)ctx;
 
        ASSERT_NE(NULL, ctx);