Merge tag 'armsoc-dt64' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
[cascardo/linux.git] / include / linux / lsm_hooks.h
index 71969de..cdee11c 100644 (file)
  *     @inode points to the inode to use as a reference.
  *     The current task must be the one that nominated @inode.
  *     Return 0 if successful.
- * @kernel_fw_from_file:
- *     Load firmware from userspace (not called for built-in firmware).
- *     @file contains the file structure pointing to the file containing
- *     the firmware to load. This argument will be NULL if the firmware
- *     was loaded via the uevent-triggered blob-based interface exposed
- *     by CONFIG_FW_LOADER_USER_HELPER.
- *     @buf pointer to buffer containing firmware contents.
- *     @size length of the firmware contents.
- *     Return 0 if permission is granted.
  * @kernel_module_request:
  *     Ability to trigger the kernel to automatically upcall to userspace for
  *     userspace to load a kernel module with the given name.
  *     @kmod_name name of the module requested by the kernel
  *     Return 0 if successful.
- * @kernel_module_from_file:
- *     Load a kernel module from userspace.
- *     @file contains the file structure pointing to the file containing
- *     the kernel module to load. If the module is being loaded from a blob,
- *     this argument will be NULL.
+ * @kernel_read_file:
+ *     Read a file specified by userspace.
+ *     @file contains the file structure pointing to the file being read
+ *     by the kernel.
+ *     @id kernel read file identifier
+ *     Return 0 if permission is granted.
+ * @kernel_post_read_file:
+ *     Read a file specified by userspace.
+ *     @file contains the file structure pointing to the file being read
+ *     by the kernel.
+ *     @buf pointer to buffer containing the file contents.
+ *     @size length of the file contents.
+ *     @id kernel read file identifier
  *     Return 0 if permission is granted.
  * @task_fix_setuid:
  *     Update the module's state after setting one or more of the user
@@ -1454,9 +1453,11 @@ union security_list_options {
        void (*cred_transfer)(struct cred *new, const struct cred *old);
        int (*kernel_act_as)(struct cred *new, u32 secid);
        int (*kernel_create_files_as)(struct cred *new, struct inode *inode);
-       int (*kernel_fw_from_file)(struct file *file, char *buf, size_t size);
        int (*kernel_module_request)(char *kmod_name);
        int (*kernel_module_from_file)(struct file *file);
+       int (*kernel_read_file)(struct file *file, enum kernel_read_file_id id);
+       int (*kernel_post_read_file)(struct file *file, char *buf, loff_t size,
+                                    enum kernel_read_file_id id);
        int (*task_fix_setuid)(struct cred *new, const struct cred *old,
                                int flags);
        int (*task_setpgid)(struct task_struct *p, pid_t pgid);
@@ -1715,9 +1716,9 @@ struct security_hook_heads {
        struct list_head cred_transfer;
        struct list_head kernel_act_as;
        struct list_head kernel_create_files_as;
-       struct list_head kernel_fw_from_file;
+       struct list_head kernel_read_file;
+       struct list_head kernel_post_read_file;
        struct list_head kernel_module_request;
-       struct list_head kernel_module_from_file;
        struct list_head task_fix_setuid;
        struct list_head task_setpgid;
        struct list_head task_getpgid;