1. 14 May, 2013 7 commits
    • Li Zhong's avatar
      powerpc: Fix MAX_STACK_TRACE_ENTRIES too low warning again · af945cf4
      Li Zhong authored
      Saw this warning again, and this time from the ret_from_fork path.
      
      It seems we could clear the back chain earlier in copy_thread(), which
      could cover both path, and also fix potential lockdep usage in
      schedule_tail(), or exception occurred before we clear the back chain.
      Signed-off-by: default avatarLi Zhong <zhong@linux.vnet.ibm.com>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      af945cf4
    • Michael Ellerman's avatar
      powerpc: Make CONFIG_RTAS_PROC depend on CONFIG_PROC_FS · b80ec3dc
      Michael Ellerman authored
      We are getting build errors with CONFIG_PROC_FS=n:
      
      arch/powerpc/kernel/rtas_flash.c
         In function 'rtas_flash_init':
        745:33: error: unused variable 'f' [-Werror=unused-variable]
      
      But rtas_flash.c should not be built when CONFIG_PROC_FS=n, beacause all
      it does is provide a /proc interface to the RTAS flash routines.
      
      CONFIG_RTAS_FLASH already depends on CONFIG_RTAS_PROC, to indicate that
      it depends on the RTAS proc support, but CONFIG_RTAS_PROC does not
      depend on CONFIG_PROC_FS. So fix that.
      Signed-off-by: default avatarMichael Ellerman <michael@ellerman.id.au>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      b80ec3dc
    • Robert Jennings's avatar
      powerpc: Bring all threads online prior to migration/hibernation · 120496ac
      Robert Jennings authored
      This patch brings online all threads which are present but not online
      prior to migration/hibernation.  After migration/hibernation those
      threads are taken back offline.
      
      During migration/hibernation all online CPUs must call H_JOIN, this is
      required by the hypervisor.  Without this patch, threads that are offline
      (H_CEDE'd) will not be woken to make the H_JOIN call and the OS will be
      deadlocked (all threads either JOIN'd or CEDE'd).
      
      Cc: <stable@kernel.org>
      Signed-off-by: default avatarRobert Jennings <rcj@linux.vnet.ibm.com>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      120496ac
    • Vasant Hegde's avatar
      powerpc/rtas_flash: Fix validate_flash buffer overflow issue · a94a1472
      Vasant Hegde authored
      ibm,validate-flash-image RTAS call output buffer contains 150 - 200
      bytes of data on latest system. Presently we have output
      buffer size as 64 bytes and we use sprintf to copy data from
      RTAS buffer to local buffer. This causes kernel oops (see below
      call trace).
      
      This patch increases local buffer size to 256 and also uses
      snprintf instead of sprintf to copy data from RTAS buffer.
      
      Kernel call trace :
      -------------------
      Oops: Kernel access of bad area, sig: 11 [#1]
      SMP NR_CPUS=1024 NUMA pSeries
      Modules linked in: nfs fscache lockd auth_rpcgss nfs_acl sunrpc fuse loop dm_mod ipv6 ipv6_lib usb_storage ehea(X) sr_mod qlge ses cdrom enclosure st be2net sg ext3 jbd mbcache usbhid hid ohci_hcd ehci_hcd usbcore qla2xxx usb_common sd_mod crc_t10dif scsi_dh_hp_sw scsi_dh_rdac scsi_dh_alua scsi_dh_emc scsi_dh lpfc scsi_transport_fc scsi_tgt ipr(X) libata scsi_mod
      Supported: Yes
      NIP: 4520323031333130 LR: 4520323031333130 CTR: 0000000000000000
      REGS: c0000001b91779b0 TRAP: 0400   Tainted: G            X  (3.0.13-0.27-ppc64)
      MSR: 8000000040009032 <EE,ME,IR,DR>  CR: 44022488  XER: 20000018
      TASK = c0000001bca1aba0[4736] 'cat' THREAD: c0000001b9174000 CPU: 36
      GPR00: 4520323031333130 c0000001b9177c30 c000000000f87c98 000000000000009b
      GPR04: c0000001b9177c4a 000000000000000b 3520323031333130 2032303133313031
      GPR08: 3133313031350a4d 000000000000009b 0000000000000000 c0000000003664a4
      GPR12: 0000000022022448 c000000003ee6c00 0000000000000002 00000000100e8a90
      GPR16: 00000000100cb9d8 0000000010093370 000000001001d310 0000000000000000
      GPR20: 0000000000008000 00000000100fae60 000000000000005e 0000000000000000
      GPR24: 0000000010129350 46573738302e3030 2046573738302e30 300a4d4720323031
      GPR28: 333130313520554e 4b4e4f574e0a4d47 2032303133313031 3520323031333130
      NIP [4520323031333130] 0x4520323031333130
      LR [4520323031333130] 0x4520323031333130
      Call Trace:
      [c0000001b9177c30] [4520323031333130] 0x4520323031333130 (unreliable)
      Instruction dump:
      XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
      XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
      Signed-off-by: default avatarVasant Hegde <hegdevasant@linux.vnet.ibm.com>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      a94a1472
    • Anton Blanchard's avatar
      powerpc/kexec: Fix kexec when using VMX optimised memcpy · 79c66ce8
      Anton Blanchard authored
      commit b3f271e8 (powerpc: POWER7 optimised memcpy using VMX and
      enhanced prefetch) uses VMX when it is safe to do so (ie not in
      interrupt). It also looks at the task struct to decide if we have to
      save the current tasks' VMX state.
      
      kexec calls memcpy() at a point where the task struct may have been
      overwritten by the new kexec segments. If it has been overwritten
      then when memcpy -> enable_altivec looks up current->thread.regs->msr
      we get a cryptic oops or lockup.
      
      I also notice we aren't initialising thread_info->cpu, which means
      smp_processor_id is broken. Fix that too.
      Signed-off-by: default avatarAnton Blanchard <anton@samba.org>
      Cc: <stable@vger.kernel.org> # 3.6+
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      79c66ce8
    • Aneesh Kumar K.V's avatar
    • Aneesh Kumar K.V's avatar
      powerpc/mm: Use the correct mask value when looking at pgtable address · 613e60a6
      Aneesh Kumar K.V authored
      Our pgtable are 2*sizeof(pte_t)*PTRS_PER_PTE which is PTE_FRAG_SIZE.
      Instead of depending on frag size, mask with PMD_MASKED_BITS.
      Signed-off-by: default avatarAneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      613e60a6
  2. 10 May, 2013 2 commits
  3. 08 May, 2013 1 commit
    • Benjamin Herrenschmidt's avatar
      powerpc/powernv: Properly drop characters if console is closed · 1de1455f
      Benjamin Herrenschmidt authored
      If the firmware returns an error such as "closed" (or hardware
      error), we should drop characters.
      
      Currently we only do that when a firmware compatible with OPAL v2
      APIs is detected, in the code that calls opal_console_write_buffer_space(),
      which didn't exist with OPAL v1 (or didn't work).
      
      However, when enabling early debug consoles, the flag indicating
      that v2 is supported isn't set yet, causing us, in case of errors
      or closed console, to spin forever.
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      1de1455f
  4. 07 May, 2013 2 commits
  5. 06 May, 2013 5 commits
  6. 05 May, 2013 23 commits
    • Benjamin Herrenschmidt's avatar
      powerpc/pnv: Fix "compatible" property for P8 PHB · f3d40c25
      Benjamin Herrenschmidt authored
      The property should be "ibm,power8-pciex", not "ibm,p8-pciex". The latter
      was changed in FW because it was inconsistent with the rest of the nodes.
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      f3d40c25
    • Benjamin Herrenschmidt's avatar
      powerpc/pci: Don't add bogus empty resources to PHBs · a0b8e76f
      Benjamin Herrenschmidt authored
      When converting to use the new pci_add_resource_offset() we didn't
      properly account for empty resources (0 flags) and add those bogons
      to the PHBs. The result is some annoying messages in the log.
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      a0b8e76f
    • Benjamin Herrenschmidt's avatar
      powerpc/powerpnv: Properly handle failure starting CPUs · 4ea9008b
      Benjamin Herrenschmidt authored
      If OPAL returns an error, propagate it upward rather than spinning
      seconds waiting for a CPU that will never show up
      Signed-off-by: default avatarBenjamin Herrenschmidt  <benh@kernel.crashing.org>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      4ea9008b
    • Nishanth Aravamudan's avatar
    • Nishanth Aravamudan's avatar
    • Nishanth Aravamudan's avatar
    • Nishanth Aravamudan's avatar
      powerpc/cputable: Reserve bits in HWCAP2 for new features · cbbc6f1b
      Nishanth Aravamudan authored
      Also, make HTM's presence dependent on the .config option.
      Signed-off-by: default avatarNishanth Aravamudan <nacc@us.ibm.com>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      cbbc6f1b
    • Kleber Sacilotto de Souza's avatar
      powerpc/pseries: Perform proper max_bus_speed detection · d82fb31a
      Kleber Sacilotto de Souza authored
      On pseries machines the detection for max_bus_speed should be done
      through an OpenFirmware property. This patch adds a function to perform
      this detection and a hook to perform dynamic adding of the function only
      for pseries. This is done by overwriting the weak
      pcibios_root_bridge_prepare function which is called by
      pci_create_root_bus().
      
      From: Lucas Kannebley Tavares <lucaskt@linux.vnet.ibm.com>
      Signed-off-by: default avatarKleber Sacilotto de Souza <klebers@linux.vnet.ibm.com>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      d82fb31a
    • Brian King's avatar
      powerpc/pseries: Force 32 bit MSIs for devices that require it · e61133dd
      Brian King authored
      The following patch implements a new PAPR change which allows
      the OS to force the use of 32 bit MSIs, regardless of what
      the PCI capabilities indicate. This is required for some
      devices that advertise support for 64 bit MSIs but don't
      actually support them.
      Signed-off-by: default avatarBrian King <brking@linux.vnet.ibm.com>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      e61133dd
    • Michael Neuling's avatar
      powerpc/tm: Fix null pointer deference in flush_hash_page · c2fd22df
      Michael Neuling authored
      Make sure that current->thread.reg exists before we deference it in
      flush_hash_page.
      Signed-off-by: default avatarMichael Neuling <mikey@neuling.org>
      Reported-by: default avatarJohn J Miller <millerjo@us.ibm.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      c2fd22df
    • Jeremy Kerr's avatar
      powerpc/powernv: Defer OPAL exception handler registration · c4463b37
      Jeremy Kerr authored
      Currently, the OPAL exception vectors are registered before the feature
      fixups are processed. This means that the now-firmware-owned vectors
      will likely be overwritten by the kernel.
      
      This change moves the exception registration code to an early initcall,
      rather than at machine_init time.
      Signed-off-by: default avatarJeremy Kerr <jk@ozlabs.org>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      c4463b37
    • Anton Blanchard's avatar
      powerpc: Emulate non privileged DSCR read and write · 73d2fb75
      Anton Blanchard authored
      POWER8 allows read and write of the DSCR in userspace. We added
      kernel emulation so applications could always use the instructions
      regardless of the CPU type.
      
      Unfortunately there are two SPRs for the DSCR and we only added
      emulation for the privileged one. Add code to match the non
      privileged one.
      
      A simple test was created to verify the fix:
      
      http://ozlabs.org/~anton/junkcode/user_dscr_test.c
      
      Without the patch we get a SIGILL and it passes with the patch.
      Signed-off-by: default avatarAnton Blanchard <anton@samba.org>
      Cc: <stable@kernel.org>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      73d2fb75
    • Linus Torvalds's avatar
      Merge tag 'kvm-3.10-1' of git://git.kernel.org/pub/scm/virt/kvm/kvm · 01227a88
      Linus Torvalds authored
      Pull kvm updates from Gleb Natapov:
       "Highlights of the updates are:
      
        general:
         - new emulated device API
         - legacy device assignment is now optional
         - irqfd interface is more generic and can be shared between arches
      
        x86:
         - VMCS shadow support and other nested VMX improvements
         - APIC virtualization and Posted Interrupt hardware support
         - Optimize mmio spte zapping
      
        ppc:
          - BookE: in-kernel MPIC emulation with irqfd support
          - Book3S: in-kernel XICS emulation (incomplete)
          - Book3S: HV: migration fixes
          - BookE: more debug support preparation
          - BookE: e6500 support
      
        ARM:
         - reworking of Hyp idmaps
      
        s390:
         - ioeventfd for virtio-ccw
      
        And many other bug fixes, cleanups and improvements"
      
      * tag 'kvm-3.10-1' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (204 commits)
        kvm: Add compat_ioctl for device control API
        KVM: x86: Account for failing enable_irq_window for NMI window request
        KVM: PPC: Book3S: Add API for in-kernel XICS emulation
        kvm/ppc/mpic: fix missing unlock in set_base_addr()
        kvm/ppc: Hold srcu lock when calling kvm_io_bus_read/write
        kvm/ppc/mpic: remove users
        kvm/ppc/mpic: fix mmio region lists when multiple guests used
        kvm/ppc/mpic: remove default routes from documentation
        kvm: KVM_CAP_IOMMU only available with device assignment
        ARM: KVM: iterate over all CPUs for CPU compatibility check
        KVM: ARM: Fix spelling in error message
        ARM: KVM: define KVM_ARM_MAX_VCPUS unconditionally
        KVM: ARM: Fix API documentation for ONE_REG encoding
        ARM: KVM: promote vfp_host pointer to generic host cpu context
        ARM: KVM: add architecture specific hook for capabilities
        ARM: KVM: perform HYP initilization for hotplugged CPUs
        ARM: KVM: switch to a dual-step HYP init code
        ARM: KVM: rework HYP page table freeing
        ARM: KVM: enforce maximum size for identity mapped code
        ARM: KVM: move to a KVM provided HYP idmap
        ...
      01227a88
    • David Howells's avatar
      Give the OID registry file module info to avoid kernel tainting · 9e687946
      David Howells authored
      Give the OID registry file module information so that it doesn't taint the
      kernel when compiled as a module and loaded.
      Reported-by: default avatarDros Adamson <Weston.Adamson@netapp.com>
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      cc: Trond Myklebust <Trond.Myklebust@netapp.com>
      cc: stable@vger.kernel.org
      cc: linux-nfs@vger.kernel.org
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      9e687946
    • Linus Torvalds's avatar
      Merge branch 'timers-nohz-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 534c97b0
      Linus Torvalds authored
      Pull 'full dynticks' support from Ingo Molnar:
       "This tree from Frederic Weisbecker adds a new, (exciting! :-) core
        kernel feature to the timer and scheduler subsystems: 'full dynticks',
        or CONFIG_NO_HZ_FULL=y.
      
        This feature extends the nohz variable-size timer tick feature from
        idle to busy CPUs (running at most one task) as well, potentially
        reducing the number of timer interrupts significantly.
      
        This feature got motivated by real-time folks and the -rt tree, but
        the general utility and motivation of full-dynticks runs wider than
        that:
      
         - HPC workloads get faster: CPUs running a single task should be able
           to utilize a maximum amount of CPU power.  A periodic timer tick at
           HZ=1000 can cause a constant overhead of up to 1.0%.  This feature
           removes that overhead - and speeds up the system by 0.5%-1.0% on
           typical distro configs even on modern systems.
      
         - Real-time workload latency reduction: CPUs running critical tasks
           should experience as little jitter as possible.  The last remaining
           source of kernel-related jitter was the periodic timer tick.
      
         - A single task executing on a CPU is a pretty common situation,
           especially with an increasing number of cores/CPUs, so this feature
           helps desktop and mobile workloads as well.
      
        The cost of the feature is mainly related to increased timer
        reprogramming overhead when a CPU switches its tick period, and thus
        slightly longer to-idle and from-idle latency.
      
        Configuration-wise a third mode of operation is added to the existing
        two NOHZ kconfig modes:
      
         - CONFIG_HZ_PERIODIC: [formerly !CONFIG_NO_HZ], now explicitly named
           as a config option.  This is the traditional Linux periodic tick
           design: there's a HZ tick going on all the time, regardless of
           whether a CPU is idle or not.
      
         - CONFIG_NO_HZ_IDLE: [formerly CONFIG_NO_HZ=y], this turns off the
           periodic tick when a CPU enters idle mode.
      
         - CONFIG_NO_HZ_FULL: this new mode, in addition to turning off the
           tick when a CPU is idle, also slows the tick down to 1 Hz (one
           timer interrupt per second) when only a single task is running on a
           CPU.
      
        The .config behavior is compatible: existing !CONFIG_NO_HZ and
        CONFIG_NO_HZ=y settings get translated to the new values, without the
        user having to configure anything.  CONFIG_NO_HZ_FULL is turned off by
        default.
      
        This feature is based on a lot of infrastructure work that has been
        steadily going upstream in the last 2-3 cycles: related RCU support
        and non-periodic cputime support in particular is upstream already.
      
        This tree adds the final pieces and activates the feature.  The pull
        request is marked RFC because:
      
         - it's marked 64-bit only at the moment - the 32-bit support patch is
           small but did not get ready in time.
      
         - it has a number of fresh commits that came in after the merge
           window.  The overwhelming majority of commits are from before the
           merge window, but still some aspects of the tree are fresh and so I
           marked it RFC.
      
         - it's a pretty wide-reaching feature with lots of effects - and
           while the components have been in testing for some time, the full
           combination is still not very widely used.  That it's default-off
           should reduce its regression abilities and obviously there are no
           known regressions with CONFIG_NO_HZ_FULL=y enabled either.
      
         - the feature is not completely idempotent: there is no 100%
           equivalent replacement for a periodic scheduler/timer tick.  In
           particular there's ongoing work to map out and reduce its effects
           on scheduler load-balancing and statistics.  This should not impact
           correctness though, there are no known regressions related to this
           feature at this point.
      
         - it's a pretty ambitious feature that with time will likely be
           enabled by most Linux distros, and we'd like you to make input on
           its design/implementation, if you dislike some aspect we missed.
           Without flaming us to crisp! :-)
      
        Future plans:
      
         - there's ongoing work to reduce 1Hz to 0Hz, to essentially shut off
           the periodic tick altogether when there's a single busy task on a
           CPU.  We'd first like 1 Hz to be exposed more widely before we go
           for the 0 Hz target though.
      
         - once we reach 0 Hz we can remove the periodic tick assumption from
           nr_running>=2 as well, by essentially interrupting busy tasks only
           as frequently as the sched_latency constraints require us to do -
           once every 4-40 msecs, depending on nr_running.
      
        I am personally leaning towards biting the bullet and doing this in
        v3.10, like the -rt tree this effort has been going on for too long -
        but the final word is up to you as usual.
      
        More technical details can be found in Documentation/timers/NO_HZ.txt"
      
      * 'timers-nohz-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (39 commits)
        sched: Keep at least 1 tick per second for active dynticks tasks
        rcu: Fix full dynticks' dependency on wide RCU nocb mode
        nohz: Protect smp_processor_id() in tick_nohz_task_switch()
        nohz_full: Add documentation.
        cputime_nsecs: use math64.h for nsec resolution conversion helpers
        nohz: Select VIRT_CPU_ACCOUNTING_GEN from full dynticks config
        nohz: Reduce overhead under high-freq idling patterns
        nohz: Remove full dynticks' superfluous dependency on RCU tree
        nohz: Fix unavailable tick_stop tracepoint in dynticks idle
        nohz: Add basic tracing
        nohz: Select wide RCU nocb for full dynticks
        nohz: Disable the tick when irq resume in full dynticks CPU
        nohz: Re-evaluate the tick for the new task after a context switch
        nohz: Prepare to stop the tick on irq exit
        nohz: Implement full dynticks kick
        nohz: Re-evaluate the tick from the scheduler IPI
        sched: New helper to prevent from stopping the tick in full dynticks
        sched: Kick full dynticks CPU that have more than one task enqueued.
        perf: New helper to prevent full dynticks CPUs from stopping tick
        perf: Kick full dynticks CPU if events rotation is needed
        ...
      534c97b0
    • Linus Torvalds's avatar
      Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 64049d19
      Linus Torvalds authored
      Pull perf fixes from Ingo Molnar:
       "Misc fixes plus a small hw-enablement patch for Intel IB model 58
        uncore events"
      
      * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        perf/x86/intel/lbr: Demand proper privileges for PERF_SAMPLE_BRANCH_KERNEL
        perf/x86/intel/lbr: Fix LBR filter
        perf/x86: Blacklist all MEM_*_RETIRED events for Ivy Bridge
        perf: Fix vmalloc ring buffer pages handling
        perf/x86/intel: Fix unintended variable name reuse
        perf/x86/intel: Add support for IvyBridge model 58 Uncore
        perf/x86/intel: Fix typo in perf_event_intel_uncore.c
        x86: Eliminate irq_mis_count counted in arch_irq_stat
      64049d19
    • Linus Torvalds's avatar
      Merge tag 'modules-next-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux · f8ce1faf
      Linus Torvalds authored
      Pull mudule updates from Rusty Russell:
       "We get rid of the general module prefix confusion with a binary config
        option, fix a remove/insert race which Never Happens, and (my
        favorite) handle the case when we have too many modules for a single
        commandline.  Seriously, the kernel is full, please go away!"
      
      * tag 'modules-next-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux:
        modpost: fix unwanted VMLINUX_SYMBOL_STR expansion
        X.509: Support parse long form of length octets in Authority Key Identifier
        module: don't unlink the module until we've removed all exposure.
        kernel: kallsyms: memory override issue, need check destination buffer length
        MODSIGN: do not send garbage to stderr when enabling modules signature
        modpost: handle huge numbers of modules.
        modpost: add -T option to read module names from file/stdin.
        modpost: minor cleanup.
        genksyms: pass symbol-prefix instead of arch
        module: fix symbol versioning with symbol prefixes
        CONFIG_SYMBOL_PREFIX: cleanup.
      f8ce1faf
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 24d0c254
      Linus Torvalds authored
      Pull single_open() leak fixes from Al Viro:
       "A bunch of fixes for a moderately common class of bugs: file with
        single_open() done by its ->open() and seq_release as its ->release().
      
        That leaks; fortunately, it's not _too_ common (either people manage
        to RTFM that says "When using single_open(), the programmer should use
        single_release() instead of seq_release() in the file_operations
        structure to avoid a memory leak", or they just copy a correct
        instance), but grepping through the tree has caught quite a pile.
      
        All of that is, AFAICS, -stable fodder, for as far as the patches
        apply.  I tried to carve it up into reasonably-sized pieces (more or
        less "comes from the same tree")"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        rcutrace: single_open() leaks
        gadget: single_open() leaks
        staging: single_open() leaks
        megaraid: single_open() leak
        wireless: single_open() leaks
        input: single_open() leak
        rtc: single_open() leaks
        ds1620: single_open() leak
        sh: single_open() leaks
        parisc: single_open() leaks
        mips: single_open() leaks
        ia64: single_open() leaks
        h8300: single_open() leaks
        cris: single_open() leaks
        arm: single_open() leaks
      24d0c254
    • Linus Torvalds's avatar
      Merge branch 'ipc-cleanups' · 802d0db8
      Linus Torvalds authored
      Merge ipc fixes and cleanups from my IPC branch.
      
      The ipc locking has always been pretty ugly, and the scalability fixes
      to some degree made it even less readable.  We had two cases of double
      unlocks in error paths due to this (one rcu read unlock, one semaphore
      unlock), and this fixes the bugs I found while trying to clean things up
      a bit so that we are less likely to have more.
      
      * ipc-cleanups:
        ipc: simplify rcu_read_lock() in semctl_nolock()
        ipc: simplify semtimedop/semctl_main() common error path handling
        ipc: move sem_obtain_lock() rcu locking into the only caller
        ipc: fix double sem unlock in semctl error path
        ipc: move the rcu_read_lock() from sem_lock_and_putref() into callers
        ipc: sem_putref() does not need the semaphore lock any more
        ipc: move rcu_read_unlock() out of sem_unlock() and into callers
      802d0db8
    • Scott Wood's avatar
      kvm: Add compat_ioctl for device control API · db6ae615
      Scott Wood authored
      This API shouldn't have 32/64-bit issues, but VFS assumes it does
      unless told otherwise.
      Signed-off-by: default avatarScott Wood <scottwood@freescale.com>
      Signed-off-by: default avatarGleb Natapov <gleb@redhat.com>
      db6ae615
    • Peter Zijlstra's avatar
      perf/x86/intel/lbr: Demand proper privileges for PERF_SAMPLE_BRANCH_KERNEL · 7cc23cd6
      Peter Zijlstra authored
      We should always have proper privileges when requesting kernel
      data.
      Signed-off-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: <stable@kernel.org>
      Cc: Andi Kleen <ak@linux.intel.com>
      Cc: eranian@google.com
      Link: http://lkml.kernel.org/r/20130503121256.230745028@chello.nl
      [ Fix build error reported by fengguang.wu@intel.com, propagate error code back. ]
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      Link: http://lkml.kernel.org/n/tip-v0x9ky3ahzr6nm3c6ilwrili@git.kernel.org
      7cc23cd6
    • Al Viro's avatar
      rcutrace: single_open() leaks · 7ee2b9e5
      Al Viro authored
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      7ee2b9e5
    • Al Viro's avatar
      gadget: single_open() leaks · 962a1ab2
      Al Viro authored
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      962a1ab2