1. 30 5月, 2012 5 次提交
  2. 29 5月, 2012 2 次提交
  3. 27 5月, 2012 1 次提交
  4. 26 5月, 2012 3 次提交
    • S
      perf record: Fix branch_stack type in perf_record_opts · a00dc319
      Stephane Eranian 提交于
      The attr.branch_sample_type field is defined as u64 by the API.  As
      such, we need to ensure the variable holding the value of the branch
      stack filters is also u64 otherwise we may lose bits in the future.
      
      Note also that the bogus definition of the field in perf_record_opts
      caused problems on big-endian PPC systems.  Thanks to Anshuman Khandual
      for tracking the problem on PPC.
      Reported-by: NAnshuman Khandual <khandual@linux.vnet.ibm.com>
      Signed-off-by: NStephane Eranian <eranian@google.com>
      Cc: Anshuman Khandual <khandual@linux.vnet.ibm.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Link: http://lkml.kernel.org/r/20120525211344.GA7729@quadSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      a00dc319
    • A
      perf tools: Reconstruct event with modifiers from perf_event_attr · c410431c
      Arnaldo Carvalho de Melo 提交于
      The modifiers:
      
        k		kernel space
        u		user space
        h		hypervisor
        G		guest
        H		host
        p, pp, ppp    precision level (PEBS)
      
      that can be suffixed to an event were lost when tools used event_name()
      to reconstruct them from the perf_event_attr entries in a perf.data
      file.
      
      Fix it by following the defaults used for these modifiers in the current
      codebase, so:
      
       $ perf record -e instructions:u usleep 1 2> /dev/null
       $ perf evlist
       instructions:u
       $ perf record -e cycles:k usleep 1 2> /dev/null
       $ perf evlist
       cycles:k
       $ perf record -e cycles:kh usleep 1 2> /dev/null
       $ perf evlist
       cycles:kh
       $ perf record -e cache-misses:G usleep 1 2> /dev/null
       $ perf evlist
       cache-misses:G
       $ perf record -e cycles:ppk usleep 1 2> /dev/null
       $ perf evlist
       cycles:kpp
       $
      
      Also works with 'top', 'report', etc.
      
      More work needed to cover tracepoints and software events while not
      dragging lots of baggage to the python binding, this is a minimal fix
      for v3.5.
      
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Namhyung Kim <namhyung@gmail.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Stephane Eranian <eranian@google.com>
      Link: http://lkml.kernel.org/n/tip-4hl5glle0hxlklw4usva1mkt@git.kernel.orgSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      c410431c
    • A
      perf top: Fix counter name fixup when fallbacking to cpu-clock · 895d9766
      Arnaldo Carvalho de Melo 提交于
      In 40491eaa "perf top: Update event name when falling back to cpu-clock"
      we freed counter->name but didn't reset it to NULL, then when setting it
      to the result of event_name(), event_name() would use the cached value,
      which by now was overwritten and thus we got garbage or a zero lenght
      string.
      
      Fix it by just freeing and setting counter->name to NULL, this way
      event_name() when called afterwards, will find the right counter name
      and cache it again.
      
      Found while trying 'cycles:pp' on a machine were :pp couldn't be
      honoured. Probably the best fallback here is to tell the user that that
      level of precision is not available on the PMU and then go removing 'p',
      levels of precision till we get to play 'cycles' and if even that fails,
      _then_ get to 'cpu-clock'.
      
      But that is the matter for another patch, this one just needs to fix the
      caching issue, which in the end will show 'cpu-clock' when tools ask for
      the event name being used, which clarifies things for the user, that
      will see that 'cycles:pp' or whatever not support event is not being
      used, some sort of fallback happened.
      
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Namhyung Kim <namhyung@gmail.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Stephane Eranian <eranian@google.com>
      Link: http://lkml.kernel.org/n/tip-w1neie2dqli89we1bzwkf4id@git.kernel.orgSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      895d9766
  5. 25 5月, 2012 2 次提交
  6. 24 5月, 2012 27 次提交
    • N
      tools lib traceevent: Fix signature of create_arg_item() · eaec12d7
      Namhyung Kim 提交于
      The @type should be a type of enum event_type not enum filter_arg_type.
      
      This fixes following warning:
      
       $ make
        COMPILE FPIC           parse-events.o
        COMPILE FPIC           parse-filter.o
      /home/namhyung/project/trace-cmd/parse-filter.c: In function ‘create_arg_item’:
      /home/namhyung/project/trace-cmd/parse-filter.c:343:9: warning: comparison between ‘enum filter_arg_type’ and ‘enum event_type’ [-Wenum-compare]
      /home/namhyung/project/trace-cmd/parse-filter.c:339:2: warning: case value ‘8’ not in enumerated type ‘enum filter_arg_type’ [-Wswitch]
        BUILD STATIC LIB       libparsevent.a
        BUILD STATIC LIB       libtracecmd.a
        BUILD                  trace-cmd
      /usr/bin/make -C /home/namhyung/project/trace-cmd/Documentation all
      make[1]: Nothing to be done for `all'.
      Note: to build the gui, type "make gui"
      
      Cc: Borislav Petkov <bp@alien8.de>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Ingo Molnar <mingo@kernel.org>
      Cc: Namhyung Kim <namhyung@gmail.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Link: http://lkml.kernel.org/r/1337740619-27925-20-git-send-email-namhyung.kim@lge.comSigned-off-by: NNamhyung Kim <namhyung.kim@lge.com>
      Signed-off-by: NSteven Rostedt <rostedt@goodmis.org>
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      eaec12d7
    • N
      tools lib traceevent: Use proper function parameter type · 21c69e72
      Namhyung Kim 提交于
      The param needs to be updated when setting args up so that
      the loop in process_defined_func() can see the correct
      param->type for the farg.
      
      Cc: Borislav Petkov <bp@alien8.de>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Ingo Molnar <mingo@kernel.org>
      Cc: Namhyung Kim <namhyung@gmail.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Link: http://lkml.kernel.org/r/1337740619-27925-15-git-send-email-namhyung.kim@lge.comSigned-off-by: NNamhyung Kim <namhyung.kim@lge.com>
      Signed-off-by: NSteven Rostedt <rostedt@goodmis.org>
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      21c69e72
    • N
      tools lib traceevent: Fix freeing arg on process_dynamic_array() · b3511d05
      Namhyung Kim 提交于
      The @arg paremeter should not be freed inside of process_XXX(),
      because it'd be freed from the caller of process_arg(). We can
      free it only after it was reused for local usage.
      
      Cc: Borislav Petkov <bp@alien8.de>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Ingo Molnar <mingo@kernel.org>
      Cc: Namhyung Kim <namhyung@gmail.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Link: http://lkml.kernel.org/r/1337740619-27925-14-git-send-email-namhyung.kim@lge.comSigned-off-by: NNamhyung Kim <namhyung.kim@lge.com>
      Signed-off-by: NSteven Rostedt <rostedt@goodmis.org>
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      b3511d05
    • N
      tools lib traceevent: Fix a possibly wrong memory dereference · d1de1087
      Namhyung Kim 提交于
      If set_op_prio() failed, the token will be freed at out_free,
      then arg->op.op would turn out to be a dangle pointer. After
      returning EVENT_ERROR from process_op(), free_arg() will be
      called and then it will finally see the dangling pointer.
      
      Cc: Borislav Petkov <bp@alien8.de>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Ingo Molnar <mingo@kernel.org>
      Cc: Namhyung Kim <namhyung@gmail.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Link: http://lkml.kernel.org/r/1337740619-27925-13-git-send-email-namhyung.kim@lge.comSigned-off-by: NNamhyung Kim <namhyung.kim@lge.com>
      Signed-off-by: NSteven Rostedt <rostedt@goodmis.org>
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      d1de1087
    • N
      tools lib traceevent: Fix a possible memory leak · 57d34dc5
      Namhyung Kim 提交于
      If event_read_fields failed in the middle, each member of
      struct format_field should be freed also.
      
      Cc: Borislav Petkov <bp@alien8.de>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Ingo Molnar <mingo@kernel.org>
      Cc: Namhyung Kim <namhyung@gmail.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Link: http://lkml.kernel.org/r/1337740619-27925-11-git-send-email-namhyung.kim@lge.comSigned-off-by: NNamhyung Kim <namhyung.kim@lge.com>
      Signed-off-by: NSteven Rostedt <rostedt@goodmis.org>
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      57d34dc5
    • S
      tools lib traceevent: Allow expressions in __print_symbolic() fields · 00b9da72
      Stefan Hajnoczi 提交于
      The __print_symbolic() function takes a sequence of key-value pairs for
      pretty-printing a constant.  The new kvm:kvm_exit print fmt uses the
      expression:
      
        __print_symbolic(..., { 0x040 + 1, "DB excp" }, ...)
      
      Currently only atoms are supported and this print fmt fails to parse.
      This patch adds support for expressions instead of just atoms so that
      0x040 + 1 is parsed successfully.
      
      Cc: Avi Kivity <avi@redhat.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Namhyung Kim <namhyung@gmail.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Link: http://lkml.kernel.org/r/1337740619-27925-6-git-send-email-namhyung.kim@lge.comSigned-off-by: NNamhyung Kim <namhyung.kim@lge.com>
      Signed-off-by: NStefan Hajnoczi <stefanha@linux.vnet.ibm.com>
      Signed-off-by: NSteven Rostedt <rostedt@goodmis.org>
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      00b9da72
    • I
      Merge branch 'perf/core' of... · e76df19b
      Ingo Molnar 提交于
      Merge branch 'perf/core' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent
      
      Pull a 'perf evlist' fix from Arnaldo Carvalho de Melo.
      Signed-off-by: NIngo Molnar <mingo@kernel.org>
      e76df19b
    • I
      Merge branch 'tip/perf/urgent' of... · 9ba05414
      Ingo Molnar 提交于
      Merge branch 'tip/perf/urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace into perf/urgent
      
      Pull an ftrace ring-buffer fix from Steve Rostedt:
      
       * fix kernel crash when changing the size of the ring-buffer on
         boxes where possible_cpus != online_cpus.
      Signed-off-by: NIngo Molnar <mingo@kernel.org>
      9ba05414
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal · f9369910
      Linus Torvalds 提交于
      Pull first series of signal handling cleanups from Al Viro:
       "This is just the first part of the queue (about a half of it);
        assorted fixes all over the place in signal handling.
      
        This one ends with all sigsuspend() implementations switched to
        generic one (->saved_sigmask-based).
      
        With this, a bunch of assorted old buglets are fixed and most of the
        missing bits of NOTIFY_RESUME hookup are in place.  Two more fixes sit
        in arm and um trees respectively, and there's a couple of broken ones
        that need obvious fixes - parisc and avr32 check TIF_NOTIFY_RESUME
        only on one of two codepaths; fixes for that will happen in the next
        series"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal: (55 commits)
        unicore32: if there's no handler we need to restore sigmask, syscall or no syscall
        xtensa: add handling of TIF_NOTIFY_RESUME
        microblaze: drop 'oldset' argument of do_notify_resume()
        microblaze: handle TIF_NOTIFY_RESUME
        score: add handling of NOTIFY_RESUME to do_notify_resume()
        m68k: add TIF_NOTIFY_RESUME and handle it.
        sparc: kill ancient comment in sparc_sigaction()
        h8300: missing checks of __get_user()/__put_user() return values
        frv: missing checks of __get_user()/__put_user() return values
        cris: missing checks of __get_user()/__put_user() return values
        powerpc: missing checks of __get_user()/__put_user() return values
        sh: missing checks of __get_user()/__put_user() return values
        sparc: missing checks of __get_user()/__put_user() return values
        avr32: struct old_sigaction is never used
        m32r: struct old_sigaction is never used
        xtensa: xtensa_sigaction doesn't exist
        alpha: tidy signal delivery up
        score: don't open-code force_sigsegv()
        cris: don't open-code force_sigsegv()
        blackfin: don't open-code force_sigsegv()
        ...
      f9369910
    • M
      mm: mempolicy: Let vma_merge and vma_split handle vma->vm_policy linkages · 05f144a0
      Mel Gorman 提交于
      Dave Jones' system call fuzz testing tool "trinity" triggered the
      following bug error with slab debugging enabled
      
          =============================================================================
          BUG numa_policy (Not tainted): Poison overwritten
          -----------------------------------------------------------------------------
      
          INFO: 0xffff880146498250-0xffff880146498250. First byte 0x6a instead of 0x6b
          INFO: Allocated in mpol_new+0xa3/0x140 age=46310 cpu=6 pid=32154
           __slab_alloc+0x3d3/0x445
           kmem_cache_alloc+0x29d/0x2b0
           mpol_new+0xa3/0x140
           sys_mbind+0x142/0x620
           system_call_fastpath+0x16/0x1b
          INFO: Freed in __mpol_put+0x27/0x30 age=46268 cpu=6 pid=32154
           __slab_free+0x2e/0x1de
           kmem_cache_free+0x25a/0x260
           __mpol_put+0x27/0x30
           remove_vma+0x68/0x90
           exit_mmap+0x118/0x140
           mmput+0x73/0x110
           exit_mm+0x108/0x130
           do_exit+0x162/0xb90
           do_group_exit+0x4f/0xc0
           sys_exit_group+0x17/0x20
           system_call_fastpath+0x16/0x1b
          INFO: Slab 0xffffea0005192600 objects=27 used=27 fp=0x          (null) flags=0x20000000004080
          INFO: Object 0xffff880146498250 @offset=592 fp=0xffff88014649b9d0
      
      This implied a reference counting bug and the problem happened during
      mbind().
      
      mbind() applies a new memory policy to a range and uses mbind_range() to
      merge existing VMAs or split them as necessary.  In the event of splits,
      mpol_dup() will allocate a new struct mempolicy and maintain existing
      reference counts whose rules are documented in
      Documentation/vm/numa_memory_policy.txt .
      
      The problem occurs with shared memory policies.  The vm_op->set_policy
      increments the reference count if necessary and split_vma() and
      vma_merge() have already handled the existing reference counts.
      However, policy_vma() screws it up by replacing an existing
      vma->vm_policy with one that potentially has the wrong reference count
      leading to a premature free.  This patch removes the damage caused by
      policy_vma().
      
      With this patch applied Dave's trinity tool runs an mbind test for 5
      minutes without error.  /proc/slabinfo reported that there are no
      numa_policy or shared_policy_node objects allocated after the test
      completed and the shared memory region was deleted.
      Signed-off-by: NMel Gorman <mgorman@suse.de>
      Cc: Dave Jones <davej@redhat.com>
      Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
      Cc: Stephen Wilson <wilsons@start.ca>
      Cc: Christoph Lameter <cl@linux.com>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      05f144a0
    • A
      perf evlist: Explicititely initialize input_name · a1d44b9a
      Arnaldo Carvalho de Melo 提交于
      It was a global variable, so it was initialized, implicitely, to zero by
      being placed in the bss.
      
      Now it is just a local variable that is then passed to the __cmd_evlist
      routine, so it must be explicitely set to NULL.
      
      The problem manifested on a Fedora 17 system, using:
      
       gcc version 4.7.0 20120507 (Red Hat 4.7.0-5) (GCC)
      
      But not on several other systems, by luck.
      Reported-by: NIngo Molnar <mingo@kernel.org>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Namhyung Kim <namhyung@gmail.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Stephane Eranian <eranian@google.com>
      Link: http://lkml.kernel.org/n/tip-5e8wolcjs3rgd5i6yi995gfh@git.kernel.orgSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      a1d44b9a
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace · 644473e9
      Linus Torvalds 提交于
      Pull user namespace enhancements from Eric Biederman:
       "This is a course correction for the user namespace, so that we can
        reach an inexpensive, maintainable, and reasonably complete
        implementation.
      
        Highlights:
         - Config guards make it impossible to enable the user namespace and
           code that has not been converted to be user namespace safe.
      
         - Use of the new kuid_t type ensures the if you somehow get past the
           config guards the kernel will encounter type errors if you enable
           user namespaces and attempt to compile in code whose permission
           checks have not been updated to be user namespace safe.
      
         - All uids from child user namespaces are mapped into the initial
           user namespace before they are processed.  Removing the need to add
           an additional check to see if the user namespace of the compared
           uids remains the same.
      
         - With the user namespaces compiled out the performance is as good or
           better than it is today.
      
         - For most operations absolutely nothing changes performance or
           operationally with the user namespace enabled.
      
         - The worst case performance I could come up with was timing 1
           billion cache cold stat operations with the user namespace code
           enabled.  This went from 156s to 164s on my laptop (or 156ns to
           164ns per stat operation).
      
         - (uid_t)-1 and (gid_t)-1 are reserved as an internal error value.
           Most uid/gid setting system calls treat these value specially
           anyway so attempting to use -1 as a uid would likely cause
           entertaining failures in userspace.
      
         - If setuid is called with a uid that can not be mapped setuid fails.
           I have looked at sendmail, login, ssh and every other program I
           could think of that would call setuid and they all check for and
           handle the case where setuid fails.
      
         - If stat or a similar system call is called from a context in which
           we can not map a uid we lie and return overflowuid.  The LFS
           experience suggests not lying and returning an error code might be
           better, but the historical precedent with uids is different and I
           can not think of anything that would break by lying about a uid we
           can't map.
      
         - Capabilities are localized to the current user namespace making it
           safe to give the initial user in a user namespace all capabilities.
      
        My git tree covers all of the modifications needed to convert the core
        kernel and enough changes to make a system bootable to runlevel 1."
      
      Fix up trivial conflicts due to nearby independent changes in fs/stat.c
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace: (46 commits)
        userns:  Silence silly gcc warning.
        cred: use correct cred accessor with regards to rcu read lock
        userns: Convert the move_pages, and migrate_pages permission checks to use uid_eq
        userns: Convert cgroup permission checks to use uid_eq
        userns: Convert tmpfs to use kuid and kgid where appropriate
        userns: Convert sysfs to use kgid/kuid where appropriate
        userns: Convert sysctl permission checks to use kuid and kgids.
        userns: Convert proc to use kuid/kgid where appropriate
        userns: Convert ext4 to user kuid/kgid where appropriate
        userns: Convert ext3 to use kuid/kgid where appropriate
        userns: Convert ext2 to use kuid/kgid where appropriate.
        userns: Convert devpts to use kuid/kgid where appropriate
        userns: Convert binary formats to use kuid/kgid where appropriate
        userns: Add negative depends on entries to avoid building code that is userns unsafe
        userns: signal remove unnecessary map_cred_ns
        userns: Teach inode_capable to understand inodes whose uids map to other namespaces.
        userns: Fail exec for suid and sgid binaries with ids outside our user namespace.
        userns: Convert stat to return values mapped from kuids and kgids
        userns: Convert user specfied uids and gids in chown into kuids and kgid
        userns: Use uid_eq gid_eq helpers when comparing kuids and kgids in the vfs
        ...
      644473e9
    • L
      Merge tag 'module-for-linus' of... · fb827ec6
      Linus Torvalds 提交于
      Merge tag 'module-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus
      
      Pull module patches from Rusty Russell, who really sells them:
       "Three trivial patches of no real utility.  Modules are boring."
      
      But to make things slightly more exciting, he adds:
       "Fortunately David Howells is looking to change this, with his module
        signing patchset.  But that's for next merge window...
      
        Cheers,
        Rusty."
      
      * tag 'module-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus:
        Guard check in module loader against integer overflow
        modpost: use proper kernel style for autogenerated files
        modpost: Stop grab_file() from leaking filedescriptors if fstat() fails
      fb827ec6
    • L
      Merge branch 'delete-mca' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux · d5b4bb4d
      Linus Torvalds 提交于
      Pull the MCA deletion branch from Paul Gortmaker:
       "It was good that we could support MCA machines back in the day, but
        realistically, nobody is using them anymore.  They were mostly limited
        to 386-sx 16MHz CPU and some 486 class machines and never more than
        64MB of RAM.  Even the enthusiast hobbyist community seems to have
        dried up close to ten years ago, based on what you can find searching
        various websites dedicated to the relatively short lived hardware.
      
        So lets remove the support relating to CONFIG_MCA.  There is no point
        carrying this forward, wasting cycles doing routine maintenance on it;
        wasting allyesconfig build time on validating it, wasting I/O on git
        grep'ping over it, and so on."
      
      Let's see if anybody screams.  It generally has compiled, and James
      Bottomley pointed out that there was a MCA extension from NCR that
      allowed for up to 4GB of memory and PPro-class machines.  So in *theory*
      there may be users out there.
      
      But even James (technically listed as a maintainer) doesn't actually
      have a system, and while Alan Cox claims to have a machine in his cellar
      that he offered to anybody who wants to take it off his hands, he didn't
      argue for keeping MCA support either.
      
      So we could bring it back.  But somebody had better speak up and talk
      about how they have actually been using said MCA hardware with modern
      kernels for us to do that.  And David already took the patch to delete
      all the networking driver code (commit a5e371f6: "drivers/net:
      delete all code/drivers depending on CONFIG_MCA").
      
      * 'delete-mca' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux:
        MCA: delete all remaining traces of microchannel bus support.
        scsi: delete the MCA specific drivers and driver code
        serial: delete the MCA specific 8250 support.
        arm: remove ability to select CONFIG_MCA
      d5b4bb4d
    • L
      Merge tag 'md-3.5' of git://neil.brown.name/md · c80ddb52
      Linus Torvalds 提交于
      Pull md updates from NeilBrown:
       "It's been a busy cycle for md - lots of fun stuff here..  if you like
        this kind of thing :-)
      
        Main features:
         - RAID10 arrays can be reshaped - adding and removing devices and
           changing chunks (not 'far' array though)
         - allow RAID5 arrays to be reshaped with a backup file (not tested
           yet, but the priciple works fine for RAID10).
         - arrays can be reshaped while a bitmap is present - you no longer
           need to remove it first
         - SSSE3 support for RAID6 syndrome calculations
      
        and of course a number of minor fixes etc."
      
      * tag 'md-3.5' of git://neil.brown.name/md: (56 commits)
        md/bitmap: record the space available for the bitmap in the superblock.
        md/raid10: Remove extras after reshape to smaller number of devices.
        md/raid5: improve removal of extra devices after reshape.
        md: check the return of mddev_find()
        MD RAID1: Further conditionalize 'fullsync'
        DM RAID: Use md_error() in place of simply setting Faulty bit
        DM RAID: Record and handle missing devices
        DM RAID: Set recovery flags on resume
        md/raid5: Allow reshape while a bitmap is present.
        md/raid10: resize bitmap when required during reshape.
        md: allow array to be resized while bitmap is present.
        md/bitmap: make sure reshape request are reflected in superblock.
        md/bitmap: add bitmap_resize function to allow bitmap resizing.
        md/bitmap: use DIV_ROUND_UP instead of open-code
        md/bitmap: create a 'struct bitmap_counts' substructure of 'struct bitmap'
        md/bitmap: make bitmap bitops atomic.
        md/bitmap: make _page_attr bitops atomic.
        md/bitmap: merge bitmap_file_unmap and bitmap_file_put.
        md/bitmap: remove async freeing of bitmap file.
        md/bitmap: convert some spin_lock_irqsave to spin_lock_irq
        ...
      c80ddb52
    • L
      Merge branch 'sbp-target-merge' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending · 2c13bc0f
      Linus Torvalds 提交于
      Pull sbp-2 (firewire) target mode support from Nicholas Bellinger:
       "The FireWire SBP-2 Target is a driver for using an IEEE-1394
        connection as a SCSI transport.  This module uses the SCSI Target
        framework to expose LUNs to other machines attached to a FireWire bus,
        in effect acting as a FireWire hard disk similar to FireWire Target
        Disk mode on many Apple computers.
      
        Also included are the two drivers/firewire/ patches required by
        sbp-target to access fw_request fabric speed needed for mgt_agent
        TCODE_WRITE_BLOCK_REQUEST ops, and exporting fw_card kref logic used
        when creating/destroying active session references to individual
        endpoints.
      
        A credit goes to Chris in being able to get this code up and running
        so quickly w/o any target core changes, and special thanks goes out to
        Stefan Richter + Clemens Ladisch + Andy Grover for their help in
        getting this driver ready for mainline.  Also, one of Chris's goals
        was to be able to connect sbp-target to a PowerPC based MacOS-X based
        client, that he accomplished along the way in this obligatory
        screenshot:
      
          http://linux-iscsi.org/wiki/File:Linux-fireware-target-bootc-macosx.png
      
        Great work Chris + linux-1394 team !!"
      Acked-by: NStefan Richter <stefanr@s5r6.in-berlin.de>
      
      * 'sbp-target-merge' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending:
        sbp-target: Initial merge of firewire/ieee-1394 target mode support
        firewire: Move fw_card kref functions into linux/firewire.h
        firewire: Add function to get speed from opaque struct fw_request
      2c13bc0f
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 · 0bd3fbd4
      Linus Torvalds 提交于
      Pull crypto updates from Herbert Xu:
       - New cipher/hash driver for ARM ux500.
       - Code clean-up for aesni-intel.
       - Misc fixes.
      
      Fixed up conflicts in arch/arm/mach-ux500/devices-common.h, where quite
      frankly some of it made no sense at all (the pull brought in a
      declaration for the dbx500_add_platform_device_noirq() function, which
      neither exists nor is used anywhere).
      
      Also some trivial add-add context conflicts in the Kconfig file in
      drivers/{char/hw_random,crypto}/
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6:
        crypto: aesni-intel - move more common code to ablk_init_common
        crypto: aesni-intel - use crypto_[un]register_algs
        crypto: ux500 - Cleanup hardware identification
        crypto: ux500 - Update DMA handling for 3.4
        mach-ux500: crypto - core support for CRYP/HASH module.
        crypto: ux500 - Add driver for HASH hardware
        crypto: ux500 - Add driver for CRYP hardware
        hwrng: Kconfig - modify default state for atmel-rng driver
        hwrng: omap - use devm_request_and_ioremap
        crypto: crypto4xx - move up err_request_irq label
        crypto, xor: Sanitize checksumming function selection output
        crypto: caam - add backward compatible string sec4.0
      0bd3fbd4
    • L
      Merge git://www.linux-watchdog.org/linux-watchdog · 0b87da68
      Linus Torvalds 提交于
      Pull first set of watchdog updates from Wim Van Sebroeck:
       "This pull contains:
      
         - The removal of ixp2000_wdt
         - The addition of ie6xx_wdt
         - Some documentation fixes
         - Small fixes and improvements
      
        (Note: Part 2 will contain generic watchdog core changes + conversion
        of some more drivers)"
      
      * git://www.linux-watchdog.org/linux-watchdog:
        Documentation/watchdog: Fix the file descriptor leak when no cmdline arg given
        Documentation/watchdog: close the fd when cmdline arg given
        Documentation/watchdog: Fix a small typo
        watchdog: s3c2410_wdt: Set timeout to actually achieved timeout
        watchdog: wm831x: Convert to gpio_request_one()
        watchdog: via_wdt: depends on PCI
        watchdog: ie6xx_wdt needs io.h
        watchdog: ie6xx_wdt.c: fix printk format warning
        watchdog: Add watchdog driver for Intel Atom E6XX
        watchdog: it87_wdt: Add support for IT8728F watchdog.
        watchdog: i6300esb: don't depend on X86
        watchdog: Use module_pci_driver
        watchdog: sch311x_wdt.c: Remove RESGEN
        watchdog: s3c2410-wdt: Use of_match_ptr().
        watchdog: Device tree support for pnx4008-wdt
        watchdog: ar7_wdt.c: use devm_request_and_ioremap
        watchdog: remove ixp2000 driver
        watchdog: sp5100_tco.c: quiet sparse noise about using plain integer was NULL pointer
      0b87da68
    • L
      Merge tag 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev · 59d0952b
      Linus Torvalds 提交于
      Pull libata update from Jeff Garzik:
       "Changes, all of them boring and minor:
      
        1) Ugly MSFT Hyper-V workaround in ata_piix
      
        2) Fix a longstanding error recovery delay caused by excessive
           re-re-retries, when media errors occur.
      
        3) Minor hw-specific workarounds and quirks
      
        4) New PATA driver for ep93xx"
      
      * tag 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev:
        PATA host controller driver for ep93xx
        [libata] Add " 2GB ATA Flash Disk"/"ADMA428M" to DMA blacklist
        ata_generic: Skip is_intel_ider() check when ata_generic=1 is set
        libata-eh don't waste time retrying media errors (v3)
        ata_piix: defer disks to the Hyper-V drivers by default
        libata: add a host flag to ignore detected ATA devices
      59d0952b
    • L
      Merge tag 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging · 1259f6ee
      Linus Torvalds 提交于
      Pull hwmon updates from Guenter Roeck:
       "New driver for INA219 and INA226, added support for IT8782F and
        IT8783E/F to it87 driver, plus cleanups in a couple of drivers."
      
      * tag 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
        hwmon: (it87) Make temp3 attribute conditional for IT8782F
        hwmon: (it87) Convert to use devm_kzalloc and devm_request_region
        hwmon: INA219 and INA226 support
        hwmon: (it87) Create voltage attributes only if voltage is enabled
        hwmon: (ntc_thermistor) Fix checkpatch warning
        hwmon: (ntc_thermistor) Optimize and fix build warning
        hwmon: (ntc_thermistor) Return error code from hwmon_device_register
        hwmon: (ntc_thermistor) Convert to devm_kzalloc
        hwmon: (ad7314) Remove unused defines, and rename OFFSET to SHIFT
        acpi_power_meter: clean up code around setup_attrs
        acpi_power_meter: drop meter_rw_attrs, use common meter_attrs
        acpi_power_meter: remove duplicate code between register_{ro,rw}_attrs
        acpi_power_meter: use a {RW,RO}_SENSOR_TEMPLATE macro to clean things up
        acpi_power_meter: use the same struct {rw,ro}_sensor_template for both
        hwmon: use module_pci_driver
        hwmon: (it87) Add support for IT8782F and IT8783E/F
      1259f6ee
    • L
      Merge tag 'pm-for-3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 468f4d1a
      Linus Torvalds 提交于
      Pull power management updates from Rafael Wysocki:
      
       - Implementation of opportunistic suspend (autosleep) and user space
         interface for manipulating wakeup sources.
      
       - Hibernate updates from Bojan Smojver and Minho Ban.
      
       - Updates of the runtime PM core and generic PM domains framework
         related to PM QoS.
      
       - Assorted fixes.
      
      * tag 'pm-for-3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (25 commits)
        epoll: Fix user space breakage related to EPOLLWAKEUP
        PM / Domains: Make it possible to add devices to inactive domains
        PM / Hibernate: Use get_gendisk to verify partition if resume_file is integer format
        PM / Domains: Fix computation of maximum domain off time
        PM / Domains: Fix link checking when add subdomain
        PM / Sleep: User space wakeup sources garbage collector Kconfig option
        PM / Sleep: Make the limit of user space wakeup sources configurable
        PM / Documentation: suspend-and-cpuhotplug.txt: Fix typo
        PM / Domains: Cache device stop and domain power off governor results, v3
        PM / Domains: Make device removal more straightforward
        PM / Sleep: Fix a mistake in a conditional in autosleep_store()
        epoll: Add a flag, EPOLLWAKEUP, to prevent suspend while epoll events are ready
        PM / QoS: Create device constraints objects on notifier registration
        PM / Runtime: Remove device fields related to suspend time, v2
        PM / Domains: Rework default domain power off governor function, v2
        PM / Domains: Rework default device stop governor function, v2
        PM / Sleep: Add user space interface for manipulating wakeup sources, v3
        PM / Sleep: Add "prevent autosleep time" statistics to wakeup sources
        PM / Sleep: Implement opportunistic sleep, v2
        PM / Sleep: Add wakeup_source_activate and wakeup_source_deactivate tracepoints
        ...
      468f4d1a
    • L
      Merge tag 'regmap-domain-deps' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap · eb2689e0
      Linus Torvalds 提交于
      Pull a regmap kconfig dependency fix from Mark Brown:
       "Fix the dependency on IRQ_DOMAIN for REGMAP_IRQ in the core
      
        Fixes a missing select from the Palmas driver a bit more throoughly."
      
      * tag 'regmap-domain-deps' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap:
        regmap: Use select .. if to get IRQ_DOMAIN enabled
      eb2689e0
    • L
      Merge tag 'sound-3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 2e341ca6
      Linus Torvalds 提交于
      Pull sound updates from Takashi Iwai:
       "This is the first big chunk for 3.5 merges of sound stuff.
      
        There are a few big changes in different areas.  First off, the
        streaming logic of USB-audio endpoints has been largely rewritten for
        the better support of "implicit feedback".  If anything about USB got
        broken, this change has to be checked.
      
        For HD-audio, the resume procedure was changed; instead of delaying
        the resume of the hardware until the first use, now waking up
        immediately at resume.  This is for buggy BIOS.
      
        For ASoC, dynamic PCM support and the improved support for digital
        links between off-SoC devices are major framework changes.
      
        Some highlights are below:
      
        * HD-audio
         - Avoid accesses of invalid pin-control bits that may stall the codec
         - V-ref setup cleanups
         - Fix the races in power-saving code
         - Fix the races in codec cache hashes and connection lists
         - Split some common codes for BIOS auto-parser to hda_auto_parser.c
         - Changed the PM resume code to wake up immediately for buggy BIOS
         - Creative SoundCore3D support
         - Add Conexant CX20751/2/3/4 codec support
      
        * ASoC
         - Dynamic PCM support, allowing support for SoCs with internal
           routing through components with tight sequencing and formatting
           constraints within their internal paths or where there are multiple
           components connected with CPU managed DMA controllers inside the
           SoC.
         - Greatly improved support for direct digital links between off-SoC
           devices, providing a much simpler way of connecting things like
           digital basebands to CODECs.
         - Much more fine grained and robust locking, cleaning up some of the
           confusion that crept in with multi-component.
         - CPU support for nVidia Tegra 30 I2S and audio hub controllers and
           ST-Ericsson MSP I2S controolers
         - New CODEC drivers for Cirrus CS42L52, LAPIS Semiconductor ML26124,
           Texas Instruments LM49453.
         - Some regmap changes needed by the Tegra I2S driver.
         - mc13783 audio support.
      
        * Misc
         - Rewrite with module_pci_driver()
         - Xonar DGX support for snd-oxygen
         - Improvement of packet handling in snd-firewire driver
         - New USB-endpoint streaming logic
         - Enhanced M-audio FTU quirks and relevant cleanups
         - Increment the support of OSS devices to 256
         - snd-aloop accuracy improvement
      
        There are a few more pending changes for 3.5, but they will be sent
        slightly later as partly depending on the changes of DRM."
      
      Fix up conflicts in regmap (due to duplicate patches, with some further
      updates then having already come in from the regmap tree).  Also some
      fairly trivial context conflicts in the imx and mcx soc drivers.
      
      * tag 'sound-3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (280 commits)
        ALSA: snd-usb: fix stream info output in /proc
        ALSA: pcm - Add proper state checks to snd_pcm_drain()
        ALSA: sh: Fix up namespace collision in sh_dac_audio.
        ALSA: hda/realtek - Fix unused variable compile warning
        ASoC: sh: fsi: enable chip specific data transfer mode
        ASoC: sh: fsi: call fsi_hw_startup/shutdown from fsi_dai_trigger()
        ASoC: sh: fsi: use same format for IN/OUT
        ASoC: sh: fsi: add fsi_version() and removed meaningless version check
        ASoC: sh: fsi: use register field macro name on IN/OUT_DMAC
        ASoC: tegra: Add machine driver for WM8753 codec
        ALSA: hda - Fix possible races of accesses to connection list array
        ASoC: OMAP: HDMI: Introduce codec
        ARM: mx31_3ds: Add sound support
        ASoC: imx-mc13783 cleanup
        mx31moboard: Add sound support
        ASoC: mc13783 codec cleanups
        ASoC: add imx-mc13783 sound support
        ASoC: Add mc13783 codec
        mfd: mc13xxx: add codec platform data
        ASoC: don't flip master of DT-instantiated DAI links
        ...
      2e341ca6
    • L
      Merge tag 'ktest-v3.5-spelling' of... · 927ad551
      Linus Torvalds 提交于
      Merge tag 'ktest-v3.5-spelling' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-ktest
      
      Pull trivial ktest spelling fix from Steven Rostedt:
       "I promised Jesper that I would push this for 3.5, but forgot to add it
        to my queue.  It's just a spelling fix, but it should go in regardless
        to hide my inability to get words in the English language correct."
      
      Becuse gud spealing is impurtunt.
      
      * tag 'ktest-v3.5-spelling' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-ktest:
        ktest: Change singular "paranthesis" to plural "parentheses"
      927ad551
    • S
      ring-buffer: Check for valid buffer before changing size · 6a31e1f1
      Steven Rostedt 提交于
      On some machines the number of possible CPUS is not the same as the
      number of CPUs that is on the machine. Ftrace uses possible_cpus to
      update the tracing structures but the ring buffer only allocates
      per cpu buffers for online CPUs when they come up.
      
      When the wakeup tracer was enabled in such a case, the ftrace code
      enabled all possible cpu buffers, but the code in ring_buffer_resize()
      did not check to see if the buffer in question was allocated. Since
      boot up CPUs did not match possible CPUs it caused the following
      crash:
      
      BUG: unable to handle kernel NULL pointer dereference at 00000020
      IP: [<c1097851>] ring_buffer_resize+0x16a/0x28d
      *pde = 00000000
      Oops: 0000 [#1] PREEMPT SMP
      Dumping ftrace buffer:
         (ftrace buffer empty)
      Modules linked in: [last unloaded: scsi_wait_scan]
      
      Pid: 1387, comm: bash Not tainted 3.4.0-test+ #13                  /DG965MQ
      EIP: 0060:[<c1097851>] EFLAGS: 00010217 CPU: 0
      EIP is at ring_buffer_resize+0x16a/0x28d
      EAX: f5a14340 EBX: f6026b80 ECX: 00000ff4 EDX: 00000ff3
      ESI: 00000000 EDI: 00000002 EBP: f4275ecc ESP: f4275eb0
       DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
      CR0: 80050033 CR2: 00000020 CR3: 34396000 CR4: 000007d0
      DR0: 00000000 DR1: 00000000 DR2: 00000000 DR3: 00000000
      DR6: ffff0ff0 DR7: 00000400
      Process bash (pid: 1387, ti=f4274000 task=f4380cb0 task.ti=f4274000)
      Stack:
       c109cf9a f6026b98 00000162 00160f68 00000006 00160f68 00000002 f4275ef0
       c109d013 f4275ee8 c123b72a c1c0bf00 c1cc81dc 00000005 f4275f98 00000007
       f4275f70 c109d0c7 7700000e 75656b61 00000070 f5e90900 f5c4e198 00000301
      Call Trace:
       [<c109cf9a>] ? tracing_set_tracer+0x115/0x1e9
       [<c109d013>] tracing_set_tracer+0x18e/0x1e9
       [<c123b72a>] ? _copy_from_user+0x30/0x46
       [<c109d0c7>] tracing_set_trace_write+0x59/0x7f
       [<c10ec01e>] ? fput+0x18/0x1c6
       [<c11f8732>] ? security_file_permission+0x27/0x2b
       [<c10eaacd>] ? rw_verify_area+0xcf/0xf2
       [<c10ec01e>] ? fput+0x18/0x1c6
       [<c109d06e>] ? tracing_set_tracer+0x1e9/0x1e9
       [<c10ead77>] vfs_write+0x8b/0xe3
       [<c10ebead>] ? fget_light+0x30/0x81
       [<c10eaf54>] sys_write+0x42/0x63
       [<c1834fbf>] sysenter_do_call+0x12/0x28
      
      This happens with the latency tracer as the ftrace code updates the
      saved max buffer via its cpumask and not with a global setting.
      
      Adding a check in ring_buffer_resize() to make sure the buffer being resized
      exists, fixes the problem.
      
      Cc: Vaibhav Nagarnaik <vnagarnaik@google.com>
      Signed-off-by: NSteven Rostedt <rostedt@goodmis.org>
      6a31e1f1
    • L
      Merge branches 'perf-urgent-for-linus' and 'perf-core-for-linus' of... · 56edab31
      Linus Torvalds 提交于
      Merge branches 'perf-urgent-for-linus' and 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
      
      Pull perf fixes from Ingo Molnar:
      
       - Leftover AMD PMU driver fix fix from the end of the v3.4
         stabilization cycle.
      
       - Late tools/perf/ changes that missed the first round:
          * endianness fixes
          * event parsing improvements
          * libtraceevent fixes factored out from trace-cmd
          * perl scripting engine fixes related to libtraceevent,
          * testcase improvements
          * perf inject / pipe mode fixes
          * plus a kernel side fix
      
      * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        perf/x86: Update event scheduling constraints for AMD family 15h models
      
      * 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        Revert "sched, perf: Use a single callback into the scheduler"
        perf evlist: Show event attribute details
        perf tools: Bump default sample freq to 4 kHz
        perf buildid-list: Work better with pipe mode
        perf tools: Fix piped mode read code
        perf inject: Fix broken perf inject -b
        perf tools: rename HEADER_TRACE_INFO to HEADER_TRACING_DATA
        perf tools: Add union u64_swap type for swapping u64 data
        perf tools: Carry perf_event_attr bitfield throught different endians
        perf record: Fix documentation for branch stack sampling
        perf target: Add cpu flag to sample_type if target has cpu
        perf tools: Always try to build libtraceevent
        perf tools: Rename libparsevent to libtraceevent in Makefile
        perf script: Rename struct event to struct event_format in perl engine
        perf script: Explicitly handle known default print arg type
        perf tools: Add hardcoded name term for pmu events
        perf tools: Separate 'mem:' event scanner bits
        perf tools: Use allocated list for each parsed event
        perf tools: Add support for displaying event parser debug info
        perf test: Move parse event automated tests to separated object
      56edab31
    • L
      Merge tag 'ia64-3.5-merge' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux · 3813d402
      Linus Torvalds 提交于
      Pull Itanium fixes from Tony Luck.
      
      * tag 'ia64-3.5-merge' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux:
        [IA64] Liberate the signal layer from IA64 assembler
        [IA64] Add cmpxchg.h to exported userspace headers
        [IA64] Fix fast syscall version of getcpu()
        [IA64] Removed "task_size" element from thread_struct - it is now constant
      3813d402