1. 21 3月, 2009 1 次提交
    • F
      tracing/ring-buffer: don't annotate rb_cpu_notify with __cpuinit · 09c9e84d
      Frederic Weisbecker 提交于
      Impact: remove a section warning
      
      CONFIG_DEBUG_SECTION_MISMATCH raises the following warning on -tip:
      
        WARNING: kernel/trace/built-in.o(.text+0x5bc5): Section mismatch in
        reference from the function ring_buffer_alloc() to the function
        .cpuinit.text:rb_cpu_notify()
        The function ring_buffer_alloc() references
        the function __cpuinit rb_cpu_notify().
      
      This is actually harmless. The code in the ring buffer don't build
      rb_cpu_notify and other cpu hotplug stuffs when !CONFIG_HOTPLUG_CPU
      so we have no risk to reference freed memory here (it would even
      be harmless if we unconditionally build it because register_cpu_notifier
      would do nothing when !CONFIG_HOTPLUG_CPU.
      
      But since ring_buffer_alloc() can be called everytime, we don't want it
      to be annotated with __cpuinit so we drop the __cpuinit from
      rb_cpu_notify.
      
      This is not a waste of memory because it is only defined and used on
      CONFIG_HOTPLUG_CPU.
      Signed-off-by: NFrederic Weisbecker <fweisbec@gmail.com>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      LKML-Reference: <1237606416-22268-1-git-send-email-fweisbec@gmail.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      09c9e84d
  2. 20 3月, 2009 9 次提交
  3. 19 3月, 2009 9 次提交
    • F
      tracing/ring-buffer: fix non cpu hotplug case · 3bf832ce
      Frederic Weisbecker 提交于
      Impact: fix warning with irqsoff tracer
      
      The ring buffer allocates its buffers on pre-smp time (early_initcall).
      It means that, at first, only the boot cpu buffer is allocated and
      the ring-buffer cpumask only has the boot cpu set (cpu_online_mask).
      
      Later, the secondary cpu will show up and the ring-buffer will be notified
      about this event: the appropriate buffer will be allocated and the cpumask
      will be updated.
      
      Unfortunately, if !CONFIG_CPU_HOTPLUG, the ring-buffer will not be
      notified about the secondary cpus, meaning that the cpumask will have
      only the cpu boot set, and only one cpu buffer allocated.
      
      We fix that by using cpu_possible_mask if !CONFIG_CPU_HOTPLUG.
      
      This patch fixes the following warning with irqsoff tracer running:
      
      [  169.317794] WARNING: at kernel/trace/trace.c:466 update_max_tr_single+0xcc/0xf3()
      [  169.318002] Hardware name: AMILO Li 2727
      [  169.318002] Modules linked in:
      [  169.318002] Pid: 5624, comm: bash Not tainted 2.6.29-rc8-tip-02636-g6aafa6c #11
      [  169.318002] Call Trace:
      [  169.318002]  [<ffffffff81036182>] warn_slowpath+0xea/0x13d
      [  169.318002]  [<ffffffff8100b9d6>] ? ftrace_call+0x5/0x2b
      [  169.318002]  [<ffffffff8100b9d6>] ? ftrace_call+0x5/0x2b
      [  169.318002]  [<ffffffff8100b9d1>] ? ftrace_call+0x0/0x2b
      [  169.318002]  [<ffffffff8101ef10>] ? ftrace_modify_code+0xa9/0x108
      [  169.318002]  [<ffffffff8106e27f>] ? trace_hardirqs_off+0x25/0x27
      [  169.318002]  [<ffffffff8149afe7>] ? _spin_unlock_irqrestore+0x1f/0x2d
      [  169.318002]  [<ffffffff81064f52>] ? ring_buffer_reset_cpu+0xf6/0xfb
      [  169.318002]  [<ffffffff8106637c>] ? ring_buffer_reset+0x36/0x48
      [  169.318002]  [<ffffffff8106aeda>] update_max_tr_single+0xcc/0xf3
      [  169.318002]  [<ffffffff8100bc17>] ? sysret_check+0x22/0x5d
      [  169.318002]  [<ffffffff8106e3ea>] stop_critical_timing+0x142/0x204
      [  169.318002]  [<ffffffff8106e4cf>] trace_hardirqs_on_caller+0x23/0x25
      [  169.318002]  [<ffffffff8149ac28>] trace_hardirqs_on_thunk+0x3a/0x3c
      [  169.318002]  [<ffffffff8100bc17>] ? sysret_check+0x22/0x5d
      [  169.318002] ---[ end trace db76cbf775a750cf ]---
      
      Because this tracer may try to swap two cpu ring buffers for an
      unregistered cpu on the ring buffer.
      
      This patch might also fix a fair loss of traces due to unallocated buffers
      for secondary cpus.
      Reported-by: NIngo Molnar <mingo@elte.hu>
      Signed-off-by: NFrederic Weisbecker <fweisbec@gmail.com>
      Acked-b: Steven Rostedt <rostedt@goodmis.org>
      LKML-Reference: <1237470453-5427-1-git-send-email-fweisbec@gmail.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      3bf832ce
    • I
      tracepoints: dont update zero-sized tracepoint sections · ec625cb2
      Ingo Molnar 提交于
      Zero-sized tracepoint sections can occur if tracing is enabled but
      no tracepoint is defined. Do not emit a warning in that case.
      
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Cc: Jaswinder Singh Rajput <jaswinderrajput@gmail.com>
      LKML-Reference: <1237394936.3132.1.camel@localhost.localdomain>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      ec625cb2
    • J
      tracing: fix oops in tracepoint_update_probe_range() · 09933a10
      Jaswinder Singh Rajput 提交于
      Change this crash:
      
       BUG: unable to handle kernel NULL pointer dereference at (null)
       IP: [<ffffffff8107d4de>] tracepoint_update_probe_range+0x1f/0x9b
       PGD 13d5fb067 PUD 13d688067 PMD 0
       Oops: 0000 [#1] SMP
      
      To a more debuggable WARN_ONCE().
      Signed-off-by: NJaswinder Singh Rajput <jaswinderrajput@gmail.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      LKML-Reference: <1237394936.3132.1.camel@localhost.localdomain>
      [ moved the check outside the lock and added a WARN_ON(). ]
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      09933a10
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6 · a1e4ee22
      Linus Torvalds 提交于
      * git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6:
        Staging: benet: remove driver now that it is merged in drivers/net/
      a1e4ee22
    • L
      Merge branch 'for-2.6.29' of git://linux-nfs.org/~bfields/linux · 85bff885
      Linus Torvalds 提交于
      * 'for-2.6.29' of git://linux-nfs.org/~bfields/linux:
        nfsd: nfsd should drop CAP_MKNOD for non-root
        NFSD: provide encode routine for OP_OPENATTR
      85bff885
    • G
      Staging: benet: remove driver now that it is merged in drivers/net/ · d0573fac
      Greg Kroah-Hartman 提交于
      The benet driver is now in the proper place in drivers/net/benet, so we
      can remove the staging version.
      Acked-by: NSathya Perla <sathyap@serverengines.com>
      Cc: David S. Miller <davem@davemloft.net>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      d0573fac
    • L
      Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc · d941d0ed
      Linus Torvalds 提交于
      * 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc:
        powerpc/ps3: ps3_defconfig updates
        powerpc/mm: Respect _PAGE_COHERENT on classic ppc32 SW
        powerpc/5200: Enable CPU_FTR_NEED_COHERENT for MPC52xx
        ps3/block: Replace mtd/ps3vram by block/ps3vram
      d941d0ed
    • L
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6 · 99dbe109
      Linus Torvalds 提交于
      * git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6:
        USB: storage: Unusual USB device Prolific 2507 variation added
        USB: Add device id for Option GTM380 to option driver
        USB: Add Vendor/Product ID for new CDMA U727 to option driver
        USB: Updated unusual-devs entry for USB mass storage on Nokia 6233
        USB: Option: let cdc-acm handle Sony Ericsson F3507g / Dell 5530
        USB: EHCI: expedite unlinks when the root hub is suspended
        USB: EHCI: Fix isochronous URB leak
        USB: option.c: add ZTE 622 modem device
        USB: wusbcore/wa-xfer, fix lock imbalance
        USB: misc/vstusb, fix lock imbalance
        USB: misc/adutux, fix lock imbalance
        USB: image/mdc800, fix lock imbalance
        USB: atm/cxacru, fix lock imbalance
        USB: unusual_devs: Add support for GI 0431 SD-Card interface
        USB: serial: new cp2101 device id
        USB: serial: ftdi: enable UART detection on gnICE JTAG adaptors blacklist interface0
        USB: serial: add FTDI USB/Serial converter devices
        USB: usbfs: keep async URBs until the device file is closed
        USB: usbtmc: add protocol 1 support
        USB: usbtmc: fix stupid bug in open()
      99dbe109
  4. 18 3月, 2009 21 次提交
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6 · bd27e6d3
      Linus Torvalds 提交于
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6:
        ALSA: Fix vunmap and free order in snd_free_sgbuf_pages()
        ALSA: mixart, fix lock imbalance
        ALSA: pcm_oss, fix locking typo
        ALSA: oss-mixer - Fixes recording gain control
        ALSA: hda - Workaround for buggy DMA position on ATI controllers
        ALSA: hda - Fix DMA mask for ATI controllers
        ALSA: opl3sa2 - Fix NULL dereference when suspending snd_opl3sa2
      bd27e6d3
    • M
      [S390] make page table upgrade work again · 0fb1d9bc
      Martin Schwidefsky 提交于
      After TASK_SIZE now gives the current size of the address space the
      upgrade of a 64 bit process from 3 to 4 levels of page table  needs
      to use the arch_mmap_check hook to catch large mmap lengths. The
      get_unmapped_area* functions need to check for -ENOMEM from the
      arch_get_unmapped_area*, upgrade the page table and retry.
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      0fb1d9bc
    • M
      [S390] make page table walking more robust · f481bfaf
      Martin Schwidefsky 提交于
      Make page table walking on s390 more robust. The current code requires
      that the pgd/pud/pmd/pte loop is only done for address ranges that are
      below the end address of the last vma of the address space. But this
      is not always true, e.g. the generic page table walker does not guarantee
      this. Change TASK_SIZE/TASK_SIZE_OF to reflect the current size of the
      address space. This makes the generic page table walker happy but it
      breaks the upgrade of a 3 level page table to a 4 level page table.
      To make the upgrade work again another fix is required.
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      f481bfaf
    • G
      [S390] Dont check for pfn_valid() in uaccess_pt.c · 2887fc5a
      Gerald Schaefer 提交于
      pfn_valid() actually checks for a valid struct page and not for a
      valid pfn. Using xip mappings w/o struct pages, this will result in
      -EFAULT returned by the (page table walk) user copy functions,
      even though there is valid memory. Those user copy functions don't
      need a struct page, so this patch just removes the pfn_valid() check.
      Signed-off-by: NGerald Schaefer <gerald.schaefer@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      2887fc5a
    • H
      [S390] ftrace/mcount: fix kernel stack backchain · cf087343
      Heiko Carstens 提交于
      With packed stack the backchain is at a different location.
      Just use __SF_BACKCHAIN as an offset to store the backchain.
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      cf087343
    • H
      [S390] topology: define SD_MC_INIT to fix performance regression · f55d6385
      Heiko Carstens 提交于
      The default values for SD_MC_INIT cause an additional cpu usage of up
      to 40% on some network benchmarks compared to the plain SD_CPU_INIT
      values. So just define SD_MC_INIT to SD_CPU_INIT.
      More tuning needs to be done.
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      f55d6385
    • M
      [S390] __div64_31 broken for CONFIG_MARCH_G5 · 4fa81ed2
      Martin Schwidefsky 提交于
      The implementation of __div64_31 for G5 machines is broken. The comments
      in __div64_31 are correct, only the code does not do what the comments
      say. The part "If the remainder has overflown subtract base and increase
      the quotient" is only partially realized, the base is subtracted correctly
      but the quotient is only increased if the dividend had the last bit set.
      Using the correct instruction fixes the problem.
      
      Cc: stable@kernel.org
      Reported-by: NFrans Pop <elendil@planet.nl>
      Tested-by: NFrans Pop <elendil@planet.nl>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      4fa81ed2
    • A
      kprobes: Fix locking imbalance in kretprobes · f02b8624
      Ananth N Mavinakayanahalli 提交于
      Fix locking imbalance in kretprobes:
      
      =====================================
      [ BUG: bad unlock balance detected! ]
      -------------------------------------
      kthreadd/2 is trying to release lock (&rp->lock) at:
      [<c06b3080>] pre_handler_kretprobe+0xea/0xf4
      but there are no more locks to release!
      
      other info that might help us debug this:
      1 lock held by kthreadd/2:
       #0:  (rcu_read_lock){..--}, at: [<c06b2b24>] __atomic_notifier_call_chain+0x0/0x5a
      
      stack backtrace:
      Pid: 2, comm: kthreadd Not tainted 2.6.29-rc8 #1
      Call Trace:
       [<c06ae498>] ? printk+0xf/0x17
       [<c06b3080>] ? pre_handler_kretprobe+0xea/0xf4
       [<c044ce6c>] print_unlock_inbalance_bug+0xc3/0xce
       [<c0444d4b>] ? clocksource_read+0x7/0xa
       [<c04450a4>] ? getnstimeofday+0x5f/0xf6
       [<c044a9ca>] ? register_lock_class+0x17/0x293
       [<c044b72c>] ? mark_lock+0x1e/0x30b
       [<c0448956>] ? tick_dev_program_event+0x4a/0xbc
       [<c0498100>] ? __slab_alloc+0xa5/0x415
       [<c06b2fbe>] ? pre_handler_kretprobe+0x28/0xf4
       [<c06b3080>] ? pre_handler_kretprobe+0xea/0xf4
       [<c044cf1b>] lock_release_non_nested+0xa4/0x1a5
       [<c06b3080>] ? pre_handler_kretprobe+0xea/0xf4
       [<c044d15d>] lock_release+0x141/0x166
       [<c06b07dd>] _spin_unlock_irqrestore+0x19/0x50
       [<c06b3080>] pre_handler_kretprobe+0xea/0xf4
       [<c06b20b5>] kprobe_exceptions_notify+0x1c9/0x43e
       [<c06b2b02>] notifier_call_chain+0x26/0x48
       [<c06b2b5b>] __atomic_notifier_call_chain+0x37/0x5a
       [<c06b2b24>] ? __atomic_notifier_call_chain+0x0/0x5a
       [<c06b2b8a>] atomic_notifier_call_chain+0xc/0xe
       [<c0442d0d>] notify_die+0x2d/0x2f
       [<c06b0f9c>] do_int3+0x1f/0x71
       [<c06b0e84>] int3+0x2c/0x34
       [<c042d476>] ? do_fork+0x1/0x288
       [<c040221b>] ? kernel_thread+0x71/0x79
       [<c043ed1b>] ? kthread+0x0/0x60
       [<c043ed1b>] ? kthread+0x0/0x60
       [<c04040b8>] ? kernel_thread_helper+0x0/0x10
       [<c043ec7f>] kthreadd+0xac/0x148
       [<c043ebd3>] ? kthreadd+0x0/0x148
       [<c04040bf>] kernel_thread_helper+0x7/0x10
      Signed-off-by: NAnanth N Mavinakayanahalli <ananth@in.ibm.com>
      Tested-by: NBharata B Rao <bharata@linux.vnet.ibm.com>
      Cc: Masami Hiramatsu <mhiramat@redhat.com>
      Cc: Jim Keniston <jkenisto@us.ibm.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: <stable@kernel.org> [2.6.29.x, 2.6.28.x, 2.6.27.x]
      LKML-Reference: <20090318113621.GB4129@in.ibm.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      f02b8624
    • F
      tracing/ftrace: stop {irqs, preempt}soff tracers when tracing is stopped · 49036200
      Frederic Weisbecker 提交于
      Impact: fix a selftest warning
      
      In some cases, it's possible to see the following warning on irqsoff
      tracer selftest:
      
      [    4.640003] Testing tracer irqsoff: <4>------------[ cut here ]------------
      [    4.653562] WARNING: at kernel/trace/trace.c:458 update_max_tr_single+0x9a/0xc4()
      [    4.660000] Hardware name: System Product Name
      [    4.660000] Modules linked in:
      [    4.660000] Pid: 301, comm: kstop/1 Not tainted 2.6.29-rc8-tip #35837
      [    4.660000] Call Trace:
      [    4.660000]  [<4014b588>] warn_slowpath+0x79/0x8f
      [    4.660000]  [<402d6949>] ? put_dec+0x64/0x6b
      [    4.660000]  [<40162b56>] ? getnstimeofday+0x58/0xdd
      [    4.660000]  [<40162210>] ? clocksource_read+0x3/0xf
      [    4.660000]  [<4015eb44>] ? ktime_set+0x8/0x34
      [    4.660000]  [<4014101a>] ? balance_runtime+0x8/0x56
      [    4.660000]  [<405f6f11>] ? _spin_lock+0x3/0x10
      [    4.660000]  [<4011f643>] ? ftrace_call+0x5/0x8
      [    4.660000]  [<4015d0f1>] ? task_cputime_zero+0x3/0x27
      [    4.660000]  [<40190ee7>] ? cpupri_set+0x90/0xcb
      [    4.660000]  [<405f7208>] ? _spin_lock_irqsave+0x22/0x34
      [    4.660000]  [<40190f12>] ? cpupri_set+0xbb/0xcb
      [    4.660000]  [<405f7151>] ? _spin_unlock_irqrestore+0x23/0x35
      [    4.660000]  [<4018493f>] ? ring_buffer_reset_cpu+0x27/0x51
      [    4.660000]  [<405f7208>] ? _spin_lock_irqsave+0x22/0x34
      [    4.660000]  [<40184962>] ? ring_buffer_reset_cpu+0x4a/0x51
      [    4.660000]  [<405f7151>] ? _spin_unlock_irqrestore+0x23/0x35
      [    4.660000]  [<4018cc29>] ? trace_hardirqs_off+0x1a/0x1c
      [    4.660000]  [<405f7151>] ? _spin_unlock_irqrestore+0x23/0x35
      [    4.660000]  [<40184962>] ? ring_buffer_reset_cpu+0x4a/0x51
      [    4.660000]  [<401850f3>] ? cpumask_next+0x15/0x18
      [    4.660000]  [<4018a41f>] update_max_tr_single+0x9a/0xc4
      [    4.660000]  [<4014e5fe>] ? exit_notify+0x16/0xf2
      [    4.660000]  [<4018cd13>] check_critical_timing+0xcc/0x11e
      [    4.660000]  [<4014e5fe>] ? exit_notify+0x16/0xf2
      [    4.660000]  [<4014e5fe>] ? exit_notify+0x16/0xf2
      [    4.660000]  [<4018cdf1>] stop_critical_timing+0x8c/0x9f
      [    4.660000]  [<4014e5c4>] ? forget_original_parent+0xac/0xd0
      [    4.660000]  [<4018ce3a>] trace_hardirqs_on+0x1a/0x1c
      [    4.660000]  [<4014e5c4>] forget_original_parent+0xac/0xd0
      [    4.660000]  [<4014e5fe>] exit_notify+0x16/0xf2
      [    4.660000]  [<4014e8a5>] do_exit+0x1cb/0x225
      [    4.660000]  [<4015c72b>] ? kthread+0x0/0x69
      [    4.660000]  [<4011f61d>] kernel_thread_helper+0xd/0x10
      [    4.660000] ---[ end trace a7919e7f17c0a725 ]---
      [    4.660164] .. no entries found ..FAILED!
      
      During the selftest of irqsoff tracer, we do that:
      
      	/* disable interrupts for a bit */
      	local_irq_disable();
      	udelay(100);
      	local_irq_enable();
      	/* stop the tracing. */
      	tracing_stop();
      	/* check both trace buffers */
      	ret = trace_test_buffer(tr, NULL);
      
      If a callsite performs a new max delay with irqs off just after
      tracing_stop, update_max_tr_single() -> ring_buffer_swap_cpu()
      will be called with the buffers disabled by tracing_stop(), hence
      the warning, then ring_buffer_swap_cpu() return -EAGAIN and
      update_max_tr_single() complains.
      
      Fix it by also stopping the tracer before stopping the tracing globally.
      A similar situation can happen with preemptoff and preemptirqsoff tracers
      where we apply the same fix.
      Reported-by: NIngo Molnar <mingo@elte.hu>
      Signed-off-by: NFrederic Weisbecker <fweisbec@gmail.com>
      Acked-by: NSteven Rostedt <rostedt@goodmis.org>
      LKML-Reference: <1237325938-5240-1-git-send-email-fweisbec@gmail.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      49036200
    • C
      tracing: fix command line to pid reverse map · a635cf04
      Carsten Emde 提交于
      Impact: fix command line to pid mapping
      
      map_cmdline_to_pid[] is checked in trace_save_cmdline(), but never
      updated. This results in stale pid to command line mappings and the
      tracer output will associate the wrong comm string.
      Signed-off-by: NCarsten Emde <Carsten.Emde@osadl.org>
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      Cc: Steven Rostedt <srostedt@redhat.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      LKML-Reference: <new-submission>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      a635cf04
    • T
      tracing: fix trace_find_cmdline() · 50d88758
      Thomas Gleixner 提交于
      Impact: prevent stale command line output
      
      In case there is no valid command line mapping for a pid
      trace_find_cmdline() returns without updating the comm buffer. The
      trace dump keeps the previous entry which results in confusing trace
      output:
      
           <idle>-0     [000]   280.702056 ....
           <idle>-23456 [000]   280.702080 ....
      
      Update the comm buffer with "<...>" when no mapping is found.
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      Cc: Steven Rostedt <srostedt@redhat.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      LKML-Reference: <new-submission>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      50d88758
    • T
      tracing: replace the crude (unsigned) -1 hackery · 2c7eea4c
      Thomas Gleixner 提交于
      Impact: cleanup
      
      The command line recorder uses (unsigned) -1 to mark non mapped
      entries in the pid to command line maps. The validity check is
      completely unintuitive: idx >= SAVED_CMDLINES
      
      There is no need for such casting games. Use a constant to mark
      unmapped entries and check for that constant to make the code readable
      and understandable.
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      Cc: Steven Rostedt <srostedt@redhat.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      LKML-Reference: <new-submission>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      2c7eea4c
    • T
      tracing: stop command line recording when tracing is disabled · 18aecd36
      Thomas Gleixner 提交于
      Impact: prevent overwrite of command line entries
      
      When the tracer is stopped the command line recording continues to
      record. The check for tracing_is_on() is not sufficient here as the
      ringbuffer status is not affected by setting
      debug/tracing/tracing_enabled to 0. On a non idle system this can
      result in the loss of the command line information for the stopped
      trace, which makes the trace harder to read and analyse.
      
      Check tracer_enabled to allow further recording.
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      Cc: Steven Rostedt <srostedt@redhat.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      LKML-Reference: <new-submission>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      18aecd36
    • T
      Merge branch 'fix/opl3sa2-suspend' into for-linus · f1aa2986
      Takashi Iwai 提交于
      f1aa2986
    • T
      Merge branch 'fix/hda' into for-linus · a232ee66
      Takashi Iwai 提交于
      a232ee66
    • T
      ALSA: Fix vunmap and free order in snd_free_sgbuf_pages() · 6af845e4
      Takashi Iwai 提交于
      In snd_free_sgbuf_pags(), vunmap() is called after releasing the SG
      pages, and it causes errors on Xen as Xen manages the pages
      differently.  Although no significant errors have been reported on
      the actual hardware, this order should be fixed other way round,
      first vunmap() then free pages.
      
      Cc: Jan Beulich <jbeulich@novell.com>
      Cc: <stable@kernel.org>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      6af845e4
    • J
      ALSA: mixart, fix lock imbalance · 82f5d571
      Jiri Slaby 提交于
      There is an omitted unlock in one snd_mixart_hw_params fail path. Fix it.
      Signed-off-by: NJiri Slaby <jirislaby@gmail.com>
      Cc: <stable@kernel.org>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      82f5d571
    • J
      ALSA: pcm_oss, fix locking typo · 91054598
      Jiri Slaby 提交于
      s/mutex_lock/mutex_unlock/ on 2 fail paths in snd_pcm_oss_proc_write.
      Probably a typo, lock should be unlocked when leaving the function.
      Signed-off-by: NJiri Slaby <jirislaby@gmail.com>
      Cc: <stable@kernel.org>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      91054598
    • V
      ALSA: oss-mixer - Fixes recording gain control · 36c7b833
      Viral Mehta 提交于
      At the time of initialization, SNDRV_MIXER_OSS_PRESENT_PVOLUME bit is not
      set for MIC (slot 7).
      So, the same should not be checked when an application tries to do gain
      control for audio recording devices.
      
      Just check slot->present for SNDRV_MIXER_OSS_PRESENT_CVOLUME independently.
      Verified with a simple application which opens /dev/dsp for recording and
      /dev/mixer for volume control.
      
      Have tested two usb audio mic devices.
      Signed-off-by: NViral Mehta <viral.mehta@einfochips.com>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      36c7b833
    • T
      ALSA: hda - Workaround for buggy DMA position on ATI controllers · c673ba1c
      Takashi Iwai 提交于
      The position-buffer on ATI controllers are unreliable as well as
      on VIA chips, thus the same workaround for DMA position reading as
      VIA is useful for ATI.
      
      Cc: <stable@kernel.org>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      c673ba1c
    • T
      ALSA: hda - Fix DMA mask for ATI controllers · 09240cf4
      Takashi Iwai 提交于
      ATI controllers (at least some SB0600 models) appear buggy to handle
      64bit DMA.  As a workaround, reset GCAP bit0 and let the driver to
      use only 32bit DMA on these controllers.
      
      Cc: <stable@kernel.org>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      09240cf4