]> git.proxmox.com Git - mirror_ubuntu-eoan-kernel.git/commitdiff
Merge tag 'for-3.7' of git://openrisc.net/jonas/linux
authorLinus Torvalds <torvalds@linux-foundation.org>
Sat, 13 Oct 2012 02:25:41 +0000 (11:25 +0900)
committerLinus Torvalds <torvalds@linux-foundation.org>
Sat, 13 Oct 2012 02:25:41 +0000 (11:25 +0900)
Pull OpenRISC updates from Jonas Bonn:
 "Fixups for some corner cases, build issues, and some obvious bugs in
  IRQ handling.  No major changes."

* tag 'for-3.7' of git://openrisc.net/jonas/linux:
  openrisc: mask interrupts in irq_mask_ack function
  openrisc: fix typos in comments and warnings
  openrisc: PIC should act on domain-local irqs
  openrisc: Make cpu_relax() invoke barrier()
  audit: define AUDIT_ARCH_OPENRISC
  openrisc: delay: fix handling of counter overflow
  openrisc: delay: fix loops calculation for __const_udelay

1  2 
include/linux/audit.h

diff --combined include/linux/audit.h
index e5884f950b4bac3160b667e44d258bda1e522550,95d98308c06e4b2952cb74e7abccb56b1c7cbc9c..b889fa64b0e0933c73b41f09e0e1006fc0f86f7c
@@@ -337,6 -337,7 +337,7 @@@ enum 
  #define AUDIT_ARCH_MIPSEL     (EM_MIPS|__AUDIT_ARCH_LE)
  #define AUDIT_ARCH_MIPS64     (EM_MIPS|__AUDIT_ARCH_64BIT)
  #define AUDIT_ARCH_MIPSEL64   (EM_MIPS|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE)
+ #define AUDIT_ARCH_OPENRISC   (EM_OPENRISC)
  #define AUDIT_ARCH_PARISC     (EM_PARISC)
  #define AUDIT_ARCH_PARISC64   (EM_PARISC|__AUDIT_ARCH_64BIT)
  #define AUDIT_ARCH_PPC                (EM_PPC)
@@@ -442,8 -443,6 +443,8 @@@ struct audit_krule 
  struct audit_field {
        u32                             type;
        u32                             val;
 +      kuid_t                          uid;
 +      kgid_t                          gid;
        u32                             op;
        char                            *lsm_str;
        void                            *lsm_rule;
  extern int __init audit_register_class(int class, unsigned *list);
  extern int audit_classify_syscall(int abi, unsigned syscall);
  extern int audit_classify_arch(int arch);
 +
 +/* audit_names->type values */
 +#define       AUDIT_TYPE_UNKNOWN      0       /* we don't know yet */
 +#define       AUDIT_TYPE_NORMAL       1       /* a "normal" audit record */
 +#define       AUDIT_TYPE_PARENT       2       /* a parent audit record */
 +#define       AUDIT_TYPE_CHILD_DELETE 3       /* a child being deleted */
 +#define       AUDIT_TYPE_CHILD_CREATE 4       /* a child being created */
 +
 +struct filename;
 +
  #ifdef CONFIG_AUDITSYSCALL
  /* These are defined in auditsc.c */
                                /* Public API */
@@@ -471,14 -460,11 +472,14 @@@ extern void __audit_syscall_entry(int a
                                  int major, unsigned long a0, unsigned long a1,
                                  unsigned long a2, unsigned long a3);
  extern void __audit_syscall_exit(int ret_success, long ret_value);
 -extern void __audit_getname(const char *name);
 -extern void audit_putname(const char *name);
 -extern void __audit_inode(const char *name, const struct dentry *dentry);
 -extern void __audit_inode_child(const struct dentry *dentry,
 -                              const struct inode *parent);
 +extern struct filename *__audit_reusename(const __user char *uptr);
 +extern void __audit_getname(struct filename *name);
 +extern void audit_putname(struct filename *name);
 +extern void __audit_inode(struct filename *name, const struct dentry *dentry,
 +                              unsigned int parent);
 +extern void __audit_inode_child(const struct inode *parent,
 +                              const struct dentry *dentry,
 +                              const unsigned char type);
  extern void __audit_seccomp(unsigned long syscall, long signr, int code);
  extern void __audit_ptrace(struct task_struct *t);
  
@@@ -508,27 -494,19 +509,27 @@@ static inline void audit_syscall_exit(v
                __audit_syscall_exit(success, return_code);
        }
  }
 -static inline void audit_getname(const char *name)
 +static inline struct filename *audit_reusename(const __user char *name)
 +{
 +      if (unlikely(!audit_dummy_context()))
 +              return __audit_reusename(name);
 +      return NULL;
 +}
 +static inline void audit_getname(struct filename *name)
  {
        if (unlikely(!audit_dummy_context()))
                __audit_getname(name);
  }
 -static inline void audit_inode(const char *name, const struct dentry *dentry) {
 +static inline void audit_inode(struct filename *name, const struct dentry *dentry,
 +                              unsigned int parent) {
        if (unlikely(!audit_dummy_context()))
 -              __audit_inode(name, dentry);
 +              __audit_inode(name, dentry, parent);
  }
 -static inline void audit_inode_child(const struct dentry *dentry,
 -                                   const struct inode *parent) {
 +static inline void audit_inode_child(const struct inode *parent,
 +                                   const struct dentry *dentry,
 +                                   const unsigned char type) {
        if (unlikely(!audit_dummy_context()))
 -              __audit_inode_child(dentry, parent);
 +              __audit_inode_child(parent, dentry, type);
  }
  void audit_core_dumps(long signr);
  
@@@ -548,20 -526,10 +549,20 @@@ static inline void audit_ptrace(struct 
  extern unsigned int audit_serial(void);
  extern int auditsc_get_stamp(struct audit_context *ctx,
                              struct timespec *t, unsigned int *serial);
 -extern int  audit_set_loginuid(uid_t loginuid);
 -#define audit_get_loginuid(t) ((t)->loginuid)
 -#define audit_get_sessionid(t) ((t)->sessionid)
 +extern int audit_set_loginuid(kuid_t loginuid);
 +
 +static inline kuid_t audit_get_loginuid(struct task_struct *tsk)
 +{
 +      return tsk->loginuid;
 +}
 +
 +static inline int audit_get_sessionid(struct task_struct *tsk)
 +{
 +      return tsk->sessionid;
 +}
 +
  extern void audit_log_task_context(struct audit_buffer *ab);
 +extern void audit_log_task_info(struct audit_buffer *ab, struct task_struct *tsk);
  extern void __audit_ipc_obj(struct kern_ipc_perm *ipcp);
  extern void __audit_ipc_set_perm(unsigned long qbytes, uid_t uid, gid_t gid, umode_t mode);
  extern int __audit_bprm(struct linux_binprm *bprm);
@@@ -656,111 -624,37 +657,111 @@@ static inline void audit_mmap_fd(int fd
  extern int audit_n_rules;
  extern int audit_signals;
  #else /* CONFIG_AUDITSYSCALL */
 -#define audit_alloc(t) ({ 0; })
 -#define audit_free(t) do { ; } while (0)
 -#define audit_syscall_entry(ta,a,b,c,d,e) do { ; } while (0)
 -#define audit_syscall_exit(r) do { ; } while (0)
 -#define audit_dummy_context() 1
 -#define audit_getname(n) do { ; } while (0)
 -#define audit_putname(n) do { ; } while (0)
 -#define __audit_inode(n,d) do { ; } while (0)
 -#define __audit_inode_child(i,p) do { ; } while (0)
 -#define audit_inode(n,d) do { (void)(d); } while (0)
 -#define audit_inode_child(i,p) do { ; } while (0)
 -#define audit_core_dumps(i) do { ; } while (0)
 -#define audit_seccomp(i,s,c) do { ; } while (0)
 -#define auditsc_get_stamp(c,t,s) (0)
 -#define audit_get_loginuid(t) (-1)
 -#define audit_get_sessionid(t) (-1)
 -#define audit_log_task_context(b) do { ; } while (0)
 -#define audit_ipc_obj(i) ((void)0)
 -#define audit_ipc_set_perm(q,u,g,m) ((void)0)
 -#define audit_bprm(p) ({ 0; })
 -#define audit_socketcall(n,a) ((void)0)
 -#define audit_fd_pair(n,a) ((void)0)
 -#define audit_sockaddr(len, addr) ({ 0; })
 -#define audit_mq_open(o,m,a) ((void)0)
 -#define audit_mq_sendrecv(d,l,p,t) ((void)0)
 -#define audit_mq_notify(d,n) ((void)0)
 -#define audit_mq_getsetattr(d,s) ((void)0)
 -#define audit_log_bprm_fcaps(b, ncr, ocr) ({ 0; })
 -#define audit_log_capset(pid, ncr, ocr) ((void)0)
 -#define audit_mmap_fd(fd, flags) ((void)0)
 -#define audit_ptrace(t) ((void)0)
 +static inline int audit_alloc(struct task_struct *task)
 +{
 +      return 0;
 +}
 +static inline void audit_free(struct task_struct *task)
 +{ }
 +static inline void audit_syscall_entry(int arch, int major, unsigned long a0,
 +                                     unsigned long a1, unsigned long a2,
 +                                     unsigned long a3)
 +{ }
 +static inline void audit_syscall_exit(void *pt_regs)
 +{ }
 +static inline int audit_dummy_context(void)
 +{
 +      return 1;
 +}
 +static inline struct filename *audit_reusename(const __user char *name)
 +{
 +      return NULL;
 +}
 +static inline void audit_getname(struct filename *name)
 +{ }
 +static inline void audit_putname(struct filename *name)
 +{ }
 +static inline void __audit_inode(struct filename *name,
 +                                      const struct dentry *dentry,
 +                                      unsigned int parent)
 +{ }
 +static inline void __audit_inode_child(const struct inode *parent,
 +                                      const struct dentry *dentry,
 +                                      const unsigned char type)
 +{ }
 +static inline void audit_inode(struct filename *name,
 +                              const struct dentry *dentry,
 +                              unsigned int parent)
 +{ }
 +static inline void audit_inode_child(const struct inode *parent,
 +                                   const struct dentry *dentry,
 +                                   const unsigned char type)
 +{ }
 +static inline void audit_core_dumps(long signr)
 +{ }
 +static inline void __audit_seccomp(unsigned long syscall, long signr, int code)
 +{ }
 +static inline void audit_seccomp(unsigned long syscall, long signr, int code)
 +{ }
 +static inline int auditsc_get_stamp(struct audit_context *ctx,
 +                            struct timespec *t, unsigned int *serial)
 +{
 +      return 0;
 +}
 +static inline kuid_t audit_get_loginuid(struct task_struct *tsk)
 +{
 +      return INVALID_UID;
 +}
 +static inline int audit_get_sessionid(struct task_struct *tsk)
 +{
 +      return -1;
 +}
 +static inline void audit_log_task_context(struct audit_buffer *ab)
 +{ }
 +static inline void audit_log_task_info(struct audit_buffer *ab,
 +                                     struct task_struct *tsk)
 +{ }
 +static inline void audit_ipc_obj(struct kern_ipc_perm *ipcp)
 +{ }
 +static inline void audit_ipc_set_perm(unsigned long qbytes, uid_t uid,
 +                                      gid_t gid, umode_t mode)
 +{ }
 +static inline int audit_bprm(struct linux_binprm *bprm)
 +{
 +      return 0;
 +}
 +static inline void audit_socketcall(int nargs, unsigned long *args)
 +{ }
 +static inline void audit_fd_pair(int fd1, int fd2)
 +{ }
 +static inline int audit_sockaddr(int len, void *addr)
 +{
 +      return 0;
 +}
 +static inline void audit_mq_open(int oflag, umode_t mode, struct mq_attr *attr)
 +{ }
 +static inline void audit_mq_sendrecv(mqd_t mqdes, size_t msg_len,
 +                                   unsigned int msg_prio,
 +                                   const struct timespec *abs_timeout)
 +{ }
 +static inline void audit_mq_notify(mqd_t mqdes,
 +                                 const struct sigevent *notification)
 +{ }
 +static inline void audit_mq_getsetattr(mqd_t mqdes, struct mq_attr *mqstat)
 +{ }
 +static inline int audit_log_bprm_fcaps(struct linux_binprm *bprm,
 +                                     const struct cred *new,
 +                                     const struct cred *old)
 +{
 +      return 0;
 +}
 +static inline void audit_log_capset(pid_t pid, const struct cred *new,
 +                                 const struct cred *old)
 +{ }
 +static inline void audit_mmap_fd(int fd, int flags)
 +{ }
 +static inline void audit_ptrace(struct task_struct *t)
 +{ }
  #define audit_n_rules 0
  #define audit_signals 0
  #endif /* CONFIG_AUDITSYSCALL */
@@@ -784,6 -678,7 +785,6 @@@ extern void                    audit_log_n_hex(struc
  extern void               audit_log_n_string(struct audit_buffer *ab,
                                               const char *buf,
                                               size_t n);
 -#define audit_log_string(a,b) audit_log_n_string(a, b, strlen(b));
  extern void               audit_log_n_untrustedstring(struct audit_buffer *ab,
                                                        const char *string,
                                                        size_t n);
@@@ -800,63 -695,34 +801,63 @@@ extern void                 audit_log_lost(const c
  #ifdef CONFIG_SECURITY
  extern void               audit_log_secctx(struct audit_buffer *ab, u32 secid);
  #else
 -#define audit_log_secctx(b,s) do { ; } while (0)
 +static inline void        audit_log_secctx(struct audit_buffer *ab, u32 secid)
 +{ }
  #endif
  
  extern int                audit_update_lsm_rules(void);
  
                                /* Private API (for audit.c only) */
 -extern int audit_filter_user(struct netlink_skb_parms *cb);
 +extern int audit_filter_user(void);
  extern int audit_filter_type(int type);
 -extern int  audit_receive_filter(int type, int pid, int uid, int seq,
 -                              void *data, size_t datasz, uid_t loginuid,
 +extern int  audit_receive_filter(int type, int pid, int seq,
 +                              void *data, size_t datasz, kuid_t loginuid,
                                u32 sessionid, u32 sid);
  extern int audit_enabled;
 -#else
 -#define audit_log(c,g,t,f,...) do { ; } while (0)
 -#define audit_log_start(c,g,t) ({ NULL; })
 -#define audit_log_vformat(b,f,a) do { ; } while (0)
 -#define audit_log_format(b,f,...) do { ; } while (0)
 -#define audit_log_end(b) do { ; } while (0)
 -#define audit_log_n_hex(a,b,l) do { ; } while (0)
 -#define audit_log_n_string(a,c,l) do { ; } while (0)
 -#define audit_log_string(a,c) do { ; } while (0)
 -#define audit_log_n_untrustedstring(a,n,s) do { ; } while (0)
 -#define audit_log_untrustedstring(a,s) do { ; } while (0)
 -#define audit_log_d_path(b, p, d) do { ; } while (0)
 -#define audit_log_key(b, k) do { ; } while (0)
 -#define audit_log_link_denied(o, l) do { ; } while (0)
 -#define audit_log_secctx(b,s) do { ; } while (0)
 +#else /* CONFIG_AUDIT */
 +static inline __printf(4, 5)
 +void audit_log(struct audit_context *ctx, gfp_t gfp_mask, int type,
 +             const char *fmt, ...)
 +{ }
 +static inline struct audit_buffer *audit_log_start(struct audit_context *ctx,
 +                                                 gfp_t gfp_mask, int type)
 +{
 +      return NULL;
 +}
 +static inline __printf(2, 3)
 +void audit_log_format(struct audit_buffer *ab, const char *fmt, ...)
 +{ }
 +static inline void audit_log_end(struct audit_buffer *ab)
 +{ }
 +static inline void audit_log_n_hex(struct audit_buffer *ab,
 +                                 const unsigned char *buf, size_t len)
 +{ }
 +static inline void audit_log_n_string(struct audit_buffer *ab,
 +                                    const char *buf, size_t n)
 +{ }
 +static inline void  audit_log_n_untrustedstring(struct audit_buffer *ab,
 +                                              const char *string, size_t n)
 +{ }
 +static inline void audit_log_untrustedstring(struct audit_buffer *ab,
 +                                           const char *string)
 +{ }
 +static inline void audit_log_d_path(struct audit_buffer *ab,
 +                                  const char *prefix,
 +                                  const struct path *path)
 +{ }
 +static inline void audit_log_key(struct audit_buffer *ab, char *key)
 +{ }
 +static inline void audit_log_link_denied(const char *string,
 +                                       const struct path *link)
 +{ }
 +static inline void audit_log_secctx(struct audit_buffer *ab, u32 secid)
 +{ }
  #define audit_enabled 0
 -#endif
 +#endif /* CONFIG_AUDIT */
 +static inline void audit_log_string(struct audit_buffer *ab, const char *buf)
 +{
 +      audit_log_n_string(ab, buf, strlen(buf));
 +}
 +
  #endif
  #endif