1. 13 Oct, 2012 11 commits
    • Linus Torvalds's avatar
      Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · ade0899b
      Linus Torvalds authored
      Pull perf updates from Ingo Molnar:
       "This tree includes some late late perf items that missed the first
        round:
      
        tools:
      
         - Bash auto completion improvements, now we can auto complete the
           tools long options, tracepoint event names, etc, from Namhyung Kim.
      
         - Look up thread using tid instead of pid in 'perf sched'.
      
         - Move global variables into a perf_kvm struct, from David Ahern.
      
         - Hists refactorings, preparatory for improved 'diff' command, from
           Jiri Olsa.
      
         - Hists refactorings, preparatory for event group viewieng work, from
           Namhyung Kim.
      
         - Remove double negation on optional feature macro definitions, from
           Namhyung Kim.
      
         - Remove several cases of needless global variables, on most
           builtins.
      
         - misc fixes
      
        kernel:
      
         - sysfs support for IBS on AMD CPUs, from Robert Richter.
      
         - Support for an upcoming Intel CPU, the Xeon-Phi / Knights Corner
           HPC blade PMU, from Vince Weaver.
      
         - misc fixes"
      
      * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (46 commits)
        perf: Fix perf_cgroup_switch for sw-events
        perf: Clarify perf_cpu_context::active_pmu usage by renaming it to ::unique_pmu
        perf/AMD/IBS: Add sysfs support
        perf hists: Add more helpers for hist entry stat
        perf hists: Move he->stat.nr_events initialization to a template
        perf hists: Introduce struct he_stat
        perf diff: Removing the total_period argument from output code
        perf tool: Add hpp interface to enable/disable hpp column
        perf tools: Removing hists pair argument from output path
        perf hists: Separate overhead and baseline columns
        perf diff: Refactor diff displacement possition info
        perf hists: Add struct hists pointer to struct hist_entry
        perf tools: Complete tracepoint event names
        perf/x86: Add support for Intel Xeon-Phi Knights Corner PMU
        perf evlist: Remove some unused methods
        perf evlist: Introduce add_newtp method
        perf kvm: Move global variables into a perf_kvm struct
        perf tools: Convert to BACKTRACE_SUPPORT
        perf tools: Long option completion support for each subcommands
        perf tools: Complete long option names of perf command
        ...
      ade0899b
    • Markus Trippelsdorf's avatar
      perf: Handle new rbtree implementation · 871a0596
      Markus Trippelsdorf authored
      Perf build fails with the new rbtree implementation:
      
        ../../lib/rbtree.c:24:36: fatal error: linux/rbtree_augmented.h: No such file or directory compilation terminated.
      
      Fix by updating the Makefile and adding a btree_augmented.h
      wrapper.
      Reported-and-tested-by: default avatarBorislav Petkov <borislav.petkov@amd.com>
      Signed-off-by: default avatarMarkus Trippelsdorf <markus@trippelsdorf.de>
      Cc: Arnaldo Carvalho de Melo <acme@infradead.org>
      Cc: Borislav Petkov <bp@amd64.org>
      Link: http://lkml.kernel.org/r/20121009180156.GA245@x4Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      871a0596
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal · 4e21fc13
      Linus Torvalds authored
      Pull third pile of kernel_execve() patches from Al Viro:
       "The last bits of infrastructure for kernel_thread() et.al., with
        alpha/arm/x86 use of those.  Plus sanitizing the asm glue and
        do_notify_resume() on alpha, fixing the "disabled irq while running
        task_work stuff" breakage there.
      
        At that point the rest of kernel_thread/kernel_execve/sys_execve work
        can be done independently for different architectures.  The only
        pending bits that do depend on having all architectures converted are
        restrictred to fs/* and kernel/* - that'll obviously have to wait for
        the next cycle.
      
        I thought we'd have to wait for all of them done before we start
        eliminating the longjump-style insanity in kernel_execve(), but it
        turned out there's a very simple way to do that without flagday-style
        changes."
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal:
        alpha: switch to saner kernel_execve() semantics
        arm: switch to saner kernel_execve() semantics
        x86, um: convert to saner kernel_execve() semantics
        infrastructure for saner ret_from_kernel_thread semantics
        make sure that kernel_thread() callbacks call do_exit() themselves
        make sure that we always have a return path from kernel_execve()
        ppc: eeh_event should just use kthread_run()
        don't bother with kernel_thread/kernel_execve for launching linuxrc
        alpha: get rid of switch_stack argument of do_work_pending()
        alpha: don't bother passing switch_stack separately from regs
        alpha: take SIGPENDING/NOTIFY_RESUME loop into signal.c
        alpha: simplify TIF_NEED_RESCHED handling
      4e21fc13
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 8418263e
      Linus Torvalds authored
      Pull third pile of VFS updates from Al Viro:
       "Stuff from Jeff Layton, mostly.  Sanitizing interplay between audit
        and namei, removing a lot of insanity from audit_inode() mess and
        getting things ready for his ESTALE patchset."
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        procfs: don't need a PATH_MAX allocation to hold a string representation of an int
        vfs: embed struct filename inside of names_cache allocation if possible
        audit: make audit_inode take struct filename
        vfs: make path_openat take a struct filename pointer
        vfs: turn do_path_lookup into wrapper around struct filename variant
        audit: allow audit code to satisfy getname requests from its names_list
        vfs: define struct filename and have getname() return it
        vfs: unexport getname and putname symbols
        acct: constify the name arg to acct_on
        vfs: allocate page instead of names_cache buffer in mount_block_root
        audit: overhaul __audit_inode_child to accomodate retrying
        audit: optimize audit_compare_dname_path
        audit: make audit_compare_dname_path use parent_len helper
        audit: remove dirlen argument to audit_compare_dname_path
        audit: set the name_len in audit_inode for parent lookups
        audit: add a new "type" field to audit_names struct
        audit: reverse arguments to audit_inode_child
        audit: no need to walk list in audit_inode if name is NULL
        audit: pass in dentry to audit_copy_inode wherever possible
        audit: remove unnecessary NULL ptr checks from do_path_lookup
      8418263e
    • Jeff Layton's avatar
    • Jeff Layton's avatar
      vfs: embed struct filename inside of names_cache allocation if possible · 7950e385
      Jeff Layton authored
      In the common case where a name is much smaller than PATH_MAX, an extra
      allocation for struct filename is unnecessary. Before allocating a
      separate one, try to embed the struct filename inside the buffer first. If
      it turns out that that's not long enough, then fall back to allocating a
      separate struct filename and redoing the copy.
      Signed-off-by: default avatarJeff Layton <jlayton@redhat.com>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      7950e385
    • Jeff Layton's avatar
      audit: make audit_inode take struct filename · adb5c247
      Jeff Layton authored
      Keep a pointer to the audit_names "slot" in struct filename.
      
      Have all of the audit_inode callers pass a struct filename ponter to
      audit_inode instead of a string pointer. If the aname field is already
      populated, then we can skip walking the list altogether and just use it
      directly.
      Signed-off-by: default avatarJeff Layton <jlayton@redhat.com>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      adb5c247
    • Jeff Layton's avatar
      vfs: make path_openat take a struct filename pointer · 669abf4e
      Jeff Layton authored
      ...and fix up the callers. For do_file_open_root, just declare a
      struct filename on the stack and fill out the .name field. For
      do_filp_open, make it also take a struct filename pointer, and fix up its
      callers to call it appropriately.
      
      For filp_open, add a variant that takes a struct filename pointer and turn
      filp_open into a wrapper around it.
      Signed-off-by: default avatarJeff Layton <jlayton@redhat.com>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      669abf4e
    • Jeff Layton's avatar
      vfs: turn do_path_lookup into wrapper around struct filename variant · 873f1eed
      Jeff Layton authored
      ...and make the user_path callers use that variant instead.
      Signed-off-by: default avatarJeff Layton <jlayton@redhat.com>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      873f1eed
    • Jeff Layton's avatar
      audit: allow audit code to satisfy getname requests from its names_list · 7ac86265
      Jeff Layton authored
      Currently, if we call getname() on a userland string more than once,
      we'll get multiple copies of the string and multiple audit_names
      records.
      
      Add a function that will allow the audit_names code to satisfy getname
      requests using info from the audit_names list, avoiding a new allocation
      and audit_names records.
      Signed-off-by: default avatarJeff Layton <jlayton@redhat.com>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      7ac86265
    • Jeff Layton's avatar
      vfs: define struct filename and have getname() return it · 91a27b2a
      Jeff Layton authored
      getname() is intended to copy pathname strings from userspace into a
      kernel buffer. The result is just a string in kernel space. It would
      however be quite helpful to be able to attach some ancillary info to
      the string.
      
      For instance, we could attach some audit-related info to reduce the
      amount of audit-related processing needed. When auditing is enabled,
      we could also call getname() on the string more than once and not
      need to recopy it from userspace.
      
      This patchset converts the getname()/putname() interfaces to return
      a struct instead of a string. For now, the struct just tracks the
      string in kernel space and the original userland pointer for it.
      
      Later, we'll add other information to the struct as it becomes
      convenient.
      Signed-off-by: default avatarJeff Layton <jlayton@redhat.com>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      91a27b2a
  2. 12 Oct, 2012 29 commits
    • Al Viro's avatar
      5522be6a
    • Al Viro's avatar
      arm: switch to saner kernel_execve() semantics · 9fff2fa0
      Al Viro authored
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      9fff2fa0
    • Al Viro's avatar
      22e2430d
    • Al Viro's avatar
      infrastructure for saner ret_from_kernel_thread semantics · a74fb73c
      Al Viro authored
      * allow kernel_execve() leave the actual return to userland to
      caller (selected by CONFIG_GENERIC_KERNEL_EXECVE).  Callers
      updated accordingly.
      * architecture that does select GENERIC_KERNEL_EXECVE in its
      Kconfig should have its ret_from_kernel_thread() do this:
      	call schedule_tail
      	call the callback left for it by copy_thread(); if it ever
      returns, that's because it has just done successful kernel_execve()
      	jump to return from syscall
      IOW, its only difference from ret_from_fork() is that it does call the
      callback.
      * such an architecture should also get rid of ret_from_kernel_execve()
      and __ARCH_WANT_KERNEL_EXECVE
      
      This is the last part of infrastructure patches in that area - from
      that point on work on different architectures can live independently.
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      a74fb73c
    • Linus Torvalds's avatar
      Merge tag 'stable/for-linus-3.7-rc0-tag' of... · ccff9b1d
      Linus Torvalds authored
      Merge tag 'stable/for-linus-3.7-rc0-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen
      
      Pull Xen fixes from Konrad Rzeszutek Wilk:
       "This has four bug-fixes and one tiny feature that I forgot to put
        initially in my tree due to oversight.
      
        The feature is for kdump kernels to speed up the /proc/vmcore reading.
        There is a ram_is_pfn helper function that the different platforms can
        register for.  We are now doing that.
      
        The bug-fixes cover some embarrassing struct pv_cpu_ops variables
        being set to NULL on Xen (but not baremetal).  We had a similar issue
        in the past with {write|read}_msr_safe and this fills the three
        missing ones.  The other bug-fix is to make the console output (hvc)
        be capable of dealing with misbehaving backends and not fall flat on
        its face.  Lastly, a quirk for older XenBus implementations that came
        with an ancient v3.4 hypervisor (so RHEL5 based) - reading of certain
        non-existent attributes just hangs the guest during bootup - so we
        take precaution of not doing that on such older installations.
      
        Feature:
         - Register a pfn_is_ram helper to speed up reading of /proc/vmcore.
        Bug-fixes:
         - Three pvops call for Xen were undefined causing BUG_ONs.
         - Add a quirk so that the shutdown watches (used by kdump) are not
           used with older Xen (3.4).
         - Fix ungraceful state transition for the HVC console."
      
      * tag 'stable/for-linus-3.7-rc0-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen:
        xen/pv-on-hvm kexec: add quirk for Xen 3.4 and shutdown watches.
        xen/bootup: allow {read|write}_cr8 pvops call.
        xen/bootup: allow read_tscp call for Xen PV guests.
        xen pv-on-hvm: add pfn_is_ram helper for kdump
        xen/hvc: handle backend CLOSED without CLOSING
      ccff9b1d
    • Linus Torvalds's avatar
      Merge branch 'slab/urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/linux · 3dc329ba
      Linus Torvalds authored
      Pull SLAB fix from Pekka Enberg:
       "This contains a lockdep false positive fix from Jiri Kosina I missed
        from the previous pull request."
      
      * 'slab/urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/linux:
        mm, slab: release slab_mutex earlier in kmem_cache_destroy()
      3dc329ba
    • Linus Torvalds's avatar
      Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 03d3602a
      Linus Torvalds authored
      Pull timer core update from Thomas Gleixner:
       - Bug fixes (one for a longstanding dead loop issue)
       - Rework of time related vsyscalls
       - Alarm timer updates
       - Jiffies updates to remove compile time dependencies
      
      * 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        timekeeping: Cast raw_interval to u64 to avoid shift overflow
        timers: Fix endless looping between cascade() and internal_add_timer()
        time/jiffies: bring back unconditional LATCH definition
        time: Convert x86_64 to using new update_vsyscall
        time: Only do nanosecond rounding on GENERIC_TIME_VSYSCALL_OLD systems
        time: Introduce new GENERIC_TIME_VSYSCALL
        time: Convert CONFIG_GENERIC_TIME_VSYSCALL to CONFIG_GENERIC_TIME_VSYSCALL_OLD
        time: Move update_vsyscall definitions to timekeeper_internal.h
        time: Move timekeeper structure to timekeeper_internal.h for vsyscall changes
        jiffies: Remove compile time assumptions about CLOCK_TICK_RATE
        jiffies: Kill unused TICK_USEC_TO_NSEC
        alarmtimer: Rename alarmtimer_remove to alarmtimer_dequeue
        alarmtimer: Remove unused helpers & defines
        alarmtimer: Use hrtimer per-alarm instead of per-base
        alarmtimer: Implement minimum alarm interval for allowing suspend
      03d3602a
    • Linus Torvalds's avatar
      Merge branch 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 0588f1f9
      Linus Torvalds authored
      Pull scheduler fixes from Ingo Molnar:
       "A CPU hotplug related crash fix and a nohz accounting fixlet."
      
      * 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        sched: Update sched_domains_numa_masks[][] when new cpus are onlined
        sched: Ensure 'sched_domains_numa_levels' is safe to use in other functions
        nohz: Fix one jiffy count too far in idle cputime
      0588f1f9
    • Linus Torvalds's avatar
      Merge branch 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 9d55ab71
      Linus Torvalds authored
      Pull RCU fixes from Ingo Molnar:
       "This tree includes a shutdown/cpu-hotplug deadlock fix and a
        documentation fix."
      
      * 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        rcu: Advise most users not to enable RCU user mode
        rcu: Grace-period initialization excludes only RCU notifier
      9d55ab71
    • Konrad Rzeszutek Wilk's avatar
      xen/pv-on-hvm kexec: add quirk for Xen 3.4 and shutdown watches. · cb6b6df1
      Konrad Rzeszutek Wilk authored
      The commit 254d1a3f, titled
      "xen/pv-on-hvm kexec: shutdown watches from old kernel" assumes that the
      XenBus backend can deal with reading of values from:
       "control/platform-feature-xs_reset_watches":
      
          ... a patch for xenstored is required so that it
          accepts the XS_RESET_WATCHES request from a client (see changeset
          23839:42a45baf037d in xen-unstable.hg). Without the patch for xenstored
          the registration of watches will fail and some features of a PVonHVM
          guest are not available. The guest is still able to boot, but repeated
          kexec boots will fail."
      
      Sadly this is not true when using a Xen 3.4 hypervisor and booting a PVHVM
      guest. We end up hanging at:
      
        err = xenbus_scanf(XBT_NIL, "control",
                              "platform-feature-xs_reset_watches", "%d", &supported);
      
      This can easily be seen with guests hanging at xenbus_init:
      
      NX (Execute Disable) protection: active
      SMBIOS 2.4 present.
      DMI: Xen HVM domU, BIOS 3.4.0 05/13/2011
      Hypervisor detected: Xen HVM
      Xen version 3.4.
      Xen Platform PCI: I/O protocol version 1
      ... snip ..
      calling  xenbus_init+0x0/0x27e @ 1
      
      Reverting the commit or using the attached patch fixes the issue. This fix
      checks whether the hypervisor is older than 4.0 and if so does not try to
      perform the read.
      
      Fixes-Oracle-Bug: 14708233
      CC: stable@vger.kernel.org
      Acked-by: default avatarOlaf Hering <olaf@aepfle.de>
      [v2: Added a comment in the source code]
      Signed-off-by: default avatarKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
      cb6b6df1
    • Konrad Rzeszutek Wilk's avatar
      xen/bootup: allow {read|write}_cr8 pvops call. · 1a7bbda5
      Konrad Rzeszutek Wilk authored
      We actually do not do anything about it. Just return a default
      value of zero and if the kernel tries to write anything but 0
      we BUG_ON.
      
      This fixes the case when an user tries to suspend the machine
      and it blows up in save_processor_state b/c 'read_cr8' is set
      to NULL and we get:
      
      kernel BUG at /home/konrad/ssd/linux/arch/x86/include/asm/paravirt.h:100!
      invalid opcode: 0000 [#1] SMP
      Pid: 2687, comm: init.late Tainted: G           O 3.6.0upstream-00002-gac264ac-dirty #4 Bochs Bochs
      RIP: e030:[<ffffffff814d5f42>]  [<ffffffff814d5f42>] save_processor_state+0x212/0x270
      
      .. snip..
      Call Trace:
       [<ffffffff810733bf>] do_suspend_lowlevel+0xf/0xac
       [<ffffffff8107330c>] ? x86_acpi_suspend_lowlevel+0x10c/0x150
       [<ffffffff81342ee2>] acpi_suspend_enter+0x57/0xd5
      
      CC: stable@vger.kernel.org
      Signed-off-by: default avatarKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
      1a7bbda5
    • Konrad Rzeszutek Wilk's avatar
      xen/bootup: allow read_tscp call for Xen PV guests. · cd0608e7
      Konrad Rzeszutek Wilk authored
      The hypervisor will trap it. However without this patch,
      we would crash as the .read_tscp is set to NULL. This patch
      fixes it and sets it to the native_read_tscp call.
      
      CC: stable@vger.kernel.org
      Signed-off-by: default avatarKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
      cd0608e7
    • Ingo Molnar's avatar
      Merge branch 'rcu/urgent' of... · c1f8d901
      Ingo Molnar authored
      Merge branch 'rcu/urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu into core/rcu
      
      Pull RCU fixes from Paul E. McKenney.
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      c1f8d901
    • Jeff Layton's avatar
      vfs: unexport getname and putname symbols · 8e377d15
      Jeff Layton authored
      I see no callers in module code.
      Signed-off-by: default avatarJeff Layton <jlayton@redhat.com>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      8e377d15
    • Jeff Layton's avatar
      acct: constify the name arg to acct_on · cfd4da17
      Jeff Layton authored
      Signed-off-by: default avatarJeff Layton <jlayton@redhat.com>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      cfd4da17
    • Jeff Layton's avatar
      vfs: allocate page instead of names_cache buffer in mount_block_root · a608ca21
      Jeff Layton authored
      First, it's incorrect to call putname() after __getname_gfp() since the
      bare __getname_gfp() call skips the auditing code, while putname()
      doesn't.
      
      mount_block_root allocates a PATH_MAX buffer via __getname_gfp, and then
      calls get_fs_names to fill the buffer. That function can call
      get_filesystem_list which assumes that that buffer is a full page in
      size. On arches where PAGE_SIZE != 4k, then this could potentially
      overrun.
      
      In practice, it's hard to imagine the list of filesystem names even
      approaching 4k, but it's best to be safe. Just allocate a page for this
      purpose instead.
      
      With this, we can also remove the __getname_gfp() definition since there
      are no more callers.
      Signed-off-by: default avatarJeff Layton <jlayton@redhat.com>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      a608ca21
    • Jeff Layton's avatar
      audit: overhaul __audit_inode_child to accomodate retrying · 4fa6b5ec
      Jeff Layton authored
      In order to accomodate retrying path-based syscalls, we need to add a
      new "type" argument to audit_inode_child. This will tell us whether
      we're looking for a child entry that represents a create or a delete.
      
      If we find a parent, don't automatically assume that we need to create a
      new entry. Instead, use the information we have to try to find an
      existing entry first. Update it if one is found and create a new one if
      not.
      Signed-off-by: default avatarJeff Layton <jlayton@redhat.com>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      4fa6b5ec
    • Jeff Layton's avatar
      audit: optimize audit_compare_dname_path · e3d6b07b
      Jeff Layton authored
      In the cases where we already know the length of the parent, pass it as
      a parm so we don't need to recompute it. In the cases where we don't
      know the length, pass in AUDIT_NAME_FULL (-1) to indicate that it should
      be determined.
      Signed-off-by: default avatarJeff Layton <jlayton@redhat.com>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      e3d6b07b
    • Eric Paris's avatar
      29e9a346
    • Jeff Layton's avatar
      audit: remove dirlen argument to audit_compare_dname_path · 563a0d12
      Jeff Layton authored
      All the callers set this to NULL now.
      Signed-off-by: default avatarJeff Layton <jlayton@redhat.com>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      563a0d12
    • Jeff Layton's avatar
      audit: set the name_len in audit_inode for parent lookups · bfcec708
      Jeff Layton authored
      Currently, this gets set mostly by happenstance when we call into
      audit_inode_child. While that might be a little more efficient, it seems
      wrong. If the syscall ends up failing before audit_inode_child ever gets
      called, then you'll have an audit_names record that shows the full path
      but has the parent inode info attached.
      
      Fix this by passing in a parent flag when we call audit_inode that gets
      set to the value of LOOKUP_PARENT. We can then fix up the pathname for
      the audit entry correctly from the get-go.
      
      While we're at it, clean up the no-op macro for audit_inode in the
      !CONFIG_AUDITSYSCALL case.
      Signed-off-by: default avatarJeff Layton <jlayton@redhat.com>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      bfcec708
    • Jeff Layton's avatar
      audit: add a new "type" field to audit_names struct · 78e2e802
      Jeff Layton authored
      For now, we just have two possibilities:
      
      UNKNOWN: for a new audit_names record that we don't know anything about yet
      NORMAL: for everything else
      
      In later patches, we'll add other types so we can distinguish and update
      records created under different circumstances.
      Signed-off-by: default avatarJeff Layton <jlayton@redhat.com>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      78e2e802
    • Jeff Layton's avatar
      audit: reverse arguments to audit_inode_child · c43a25ab
      Jeff Layton authored
      Most of the callers get called with an inode and dentry in the reverse
      order. The compiler then has to reshuffle the arg registers and/or
      stack in order to pass them on to audit_inode_child.
      
      Reverse those arguments for a micro-optimization.
      Reported-by: default avatarEric Paris <eparis@redhat.com>
      Signed-off-by: default avatarJeff Layton <jlayton@redhat.com>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      c43a25ab
    • Jeff Layton's avatar
      audit: no need to walk list in audit_inode if name is NULL · 9cec9d68
      Jeff Layton authored
      If name is NULL then the condition in the loop will never be true. Also,
      with this change, we can eliminate the check for n->name == NULL since
      the equivalence check will never be true if it is.
      Signed-off-by: default avatarJeff Layton <jlayton@redhat.com>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      9cec9d68
    • Jeff Layton's avatar
      audit: pass in dentry to audit_copy_inode wherever possible · 1c2e51e8
      Jeff Layton authored
      In some cases, we were passing in NULL even when we have a dentry.
      Reported-by: default avatarEric Paris <eparis@redhat.com>
      Signed-off-by: default avatarJeff Layton <jlayton@redhat.com>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      1c2e51e8
    • Jeff Layton's avatar
      audit: remove unnecessary NULL ptr checks from do_path_lookup · f78570dd
      Jeff Layton authored
      As best I can tell, whenever retval == 0, nd->path.dentry and nd->inode
      are also non-NULL. Eliminate those checks and the superfluous
      audit_context check.
      Signed-off-by: default avatarEric Paris <eparis@redhat.com>
      Signed-off-by: default avatarJeff Layton <jlayton@redhat.com>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      f78570dd
    • Linus Torvalds's avatar
      Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media · 4f1cd914
      Linus Torvalds authored
      Pull second set of media updates from Mauro Carvalho Chehab:
       "Despite its size, most of the stuff here is trivial.  This series
        contains:
      
         - s5p-mfc: additions at the driver and at the core to support H.264
           hardware codec;
         - Some improvements at s5p and davinci embedded drivers;
         - Some V4L2 compliance fixes applied on a few drivers;
         - Several random trivial patches, including several fixes and a few
           new board support additions;
      
        Notes:
      
         1) Some Exynos media patches were dependent on some -arm fixes that
            got merged on changeset 782cd9ee.  That's why this pull request is
            based that changeset.
      
         2) As promised, I reviewed the pending VB2 DMABUF series.
      
            While setting a test environment, it was noticed that the upstream
            support for Samsung Exynos 4 boards (smdk310 and Origen) are
            broken upstream, likely due to regressions: both defconfigs are
            wrong and regulator settings for both boards are broken.  That,
            allied with some bug at the dummy regulator driver, causes OOPSes
            during boot time.
      
            Long story short: even fixing the above, the proposed patches
            OOPSed when running the DMABUF test.  Not sure yet if the OOPSes
            are due to some other undetected regressions, or due to some bug
            on the patches.
      
            Due to the above, DMABUF patches for vb2 got NACKed for 3.7."
      
      * 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (109 commits)
        [media] m5mols: Add missing #include <linux/sizes.h>
        [media] stk1160: Add support for S-Video input
        Revert "[media] omap3isp: Replace cpu_is_omap3630() with ISP revision check"
        [media]  dvb: LNA implementation changes
        [media] v4l2-ioctl: fix W=1 warnings
        [media] v4l2-ioctl: add blocks check for VIDIOC_SUBDEV_G/S_EDID
        [media] omap3isp: Fix compilation error in ispreg.h
        [media] rc-msi-digivox-ii: Add full scan keycodes
        [media] cx25821: testing the wrong variable
        [media] tda18271-common: hold the I2C adapter during write transfers
        [media] ds3000: add module parameter to force firmware upload
        [media] drivers/media: Remove unnecessary semicolon
        [media] winbond: remove space from driver name
        [media] iguanair: cannot send data from the stack
        [media] omap3isp: Replace cpu_is_omap3630() with ISP revision check
        [media] dvb-usb: print small buffers via %*ph
        [media] uvc: Add return code check at vb2_queue_init()
        [media] em28xx: Replace memcpy with struct assignment
        [media] bt8xx: Add video4linux control V4L2_CID_COLOR_KILLER
        [media] mem2mem_testdev: Use devm_kzalloc() in probe
        ...
      
      Conflicts:
      	arch/arm/mach-davinci/include/mach/da8xx.h
      4f1cd914
    • Linus Torvalds's avatar
      Merge tag 'pinctrl-for-3.7-late' of... · 759e00b8
      Linus Torvalds authored
      Merge tag 'pinctrl-for-3.7-late' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl
      
      Pull second set of pinctrl patches from Linus Walleij:
       "Here is a late pinctrl pull request with stuff that wasn't quite
        tested at the first pull request.
      
        The main reason to not hold off is that the modifications to
        irq_domain_add_simple() as reviewed by Rob Herring introduce new
        infrastructure for irqdomains that will be useful for the next cycle:
        instead of sprinkling irq descriptor allocation all over the kernel
        wherever a "legacy" domain is registered, which is necessary for any
        platform using sparse IRQs, and many irq chips are say GPIO
        controllers which may be used with several systems, some with sparse
        IRQs some not, we push this into the irq_domain_add_simple() so we can
        atleast do mistakes in one place.
      
        The irq_domain_add_simple() is currently unused in the kernel, so I
        need to provide a user.  The Nomadik stuff that goes with are changes
        to the driver I use day-to-day to make use of this facility (and a
        dependency), so see it as a way to eat my own dogfood: if this blows
        up the egg hits my face.
      
        A second round of pinctrl patches for v3.7:
         - Complement the Nomadik pinctrl driver with alternate Cx functions
           so it handles all oddities.
         - A patch to the IRQdomain to reform the simple irqdomain to handle
           IRQ descriptor allocation dynamically.
         - Use the above feature in the Nomadik pin controller."
      
      * tag 'pinctrl-for-3.7-late' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl:
        pinctrl/nomadik: use simple or linear IRQ domain
        irqdomain: augment add_simple() to allocate descs
        pinctrl/nomadik: support other alternate-C functions
      759e00b8
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.linaro.org/people/rmk/linux-arm · 5cea24c5
      Linus Torvalds authored
      Pull second set of ARM updates from Russell King:
       "This is the second set of ARM updates for this merge window.
      
        Contained within are changes to allow the kernel to boot in hypervisor
        mode on CPUs supporting virtualization, and cache flushing support to
        the point of inner sharable unification, which are used by the
        suspend/resume code to avoid having to do a full cache flush.
      
        Also included is one fix for VFP code identified by Michael Olbrich."
      
      * 'for-linus' of git://git.linaro.org/people/rmk/linux-arm:
        ARM: vfp: fix saving d16-d31 vfp registers on v6+ kernels
        ARM: 7549/1: HYP: fix boot on some ARM1136 cores
        ARM: 7542/1: mm: fix cache LoUIS API for xscale and feroceon
        ARM: mm: update __v7_setup() to the new LoUIS cache maintenance API
        ARM: kernel: update __cpu_disable to use cache LoUIS maintenance API
        ARM: kernel: update cpu_suspend code to use cache LoUIS operations
        ARM: mm: rename jump labels in v7_flush_dcache_all function
        ARM: mm: implement LoUIS API for cache maintenance ops
        ARM: virt: arch_timers: enable access to physical timers
        ARM: virt: Add CONFIG_ARM_VIRT_EXT option
        ARM: virt: Add boot-time diagnostics
        ARM: virt: Update documentation for hyp mode entry support
        ARM: zImage/virt: hyp mode entry support for the zImage loader
        ARM: virt: allow the kernel to be entered in HYP mode
        ARM: opcodes: add __ERET/__MSR_ELR_HYP instruction encoding
      5cea24c5