15 Mar, 2013

5 commits


14 Mar, 2013

1 commit


12 Mar, 2013

3 commits

  • In the connection list expansion in hda_codec.c and hda_proc.c, the
    value returned from snd_hda_get_num_raw_conns() is used as the array
    size to store the connection list. However, the function returns
    simply a raw value of the AC_PAR_CONNLIST_LEN parameter, and the
    widget list with ranges isn't considered there. Thus it may return a
    smaller size than the actual list, which results in -ENOSPC in
    snd_hda_get_raw_conections().

    This patch fixes the bug by parsing the connection list correctly also
    for snd_hda_get_num_raw_conns().

    Reported-and-tested-by: David Henningsson
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • The NuForce UDH-100 numbers its interfaces incorrectly, which makes the
    interface associations come out wrong, which results in the driver
    erroring out with the message "Audio class v2 interfaces need an
    interface association".

    Work around this by searching for the interface association descriptor
    also in some other place where it might have ended up.

    Reported-and-tested-by: Dave Helstroom
    Signed-off-by: Clemens Ladisch
    Signed-off-by: Takashi Iwai

    Clemens Ladisch
     
  • The dereference should be moved below the NULL test.

    Signed-off-by: Wei Yongjun
    Signed-off-by: Takashi Iwai

    Wei Yongjun
     

11 Mar, 2013

1 commit

  • snd_seq_timer_open() didn't catch the whole error path but let through
    if the timer id is a slave. This may lead to Oops by accessing the
    uninitialized pointer.

    BUG: unable to handle kernel NULL pointer dereference at 00000000000002ae
    IP: [] snd_seq_timer_open+0xe7/0x130
    PGD 785cd067 PUD 76964067 PMD 0
    Oops: 0002 [#4] SMP
    CPU 0
    Pid: 4288, comm: trinity-child7 Tainted: G D W 3.9.0-rc1+ #100 Bochs Bochs
    RIP: 0010:[] [] snd_seq_timer_open+0xe7/0x130
    RSP: 0018:ffff88006ece7d38 EFLAGS: 00010246
    RAX: 0000000000000286 RBX: ffff88007851b400 RCX: 0000000000000000
    RDX: 000000000000ffff RSI: ffff88006ece7d58 RDI: ffff88006ece7d38
    RBP: ffff88006ece7d98 R08: 000000000000000a R09: 000000000000fffe
    R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000000
    R13: ffff8800792c5400 R14: 0000000000e8f000 R15: 0000000000000007
    FS: 00007f7aaa650700(0000) GS:ffff88007f800000(0000) GS:0000000000000000
    CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 00000000000002ae CR3: 000000006efec000 CR4: 00000000000006f0
    DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
    Process trinity-child7 (pid: 4288, threadinfo ffff88006ece6000, task ffff880076a8a290)
    Stack:
    0000000000000286 ffffffff828f2be0 ffff88006ece7d58 ffffffff810f354d
    65636e6575716573 2065756575712072 ffff8800792c0030 0000000000000000
    ffff88006ece7d98 ffff8800792c5400 ffff88007851b400 ffff8800792c5520
    Call Trace:
    [] ? trace_hardirqs_on+0xd/0x10
    [] snd_seq_queue_timer_open+0x29/0x70
    [] snd_seq_ioctl_set_queue_timer+0xda/0x120
    [] snd_seq_do_ioctl+0x9b/0xd0
    [] snd_seq_ioctl+0x10/0x20
    [] do_vfs_ioctl+0x522/0x570
    [] ? file_has_perm+0x83/0xa0
    [] ? trace_hardirqs_on+0xd/0x10
    [] sys_ioctl+0x5d/0xa0
    [] ? trace_hardirqs_on_thunk+0x3a/0x3f
    [] system_call_fastpath+0x16/0x1b

    Reported-and-tested-by: Tommi Rantala
    Cc:
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

07 Mar, 2013

10 commits


06 Mar, 2013

1 commit


05 Mar, 2013

2 commits

  • When a value of a vmaster slave control is changed, the ctl change
    notification is sometimes ignored. This happens when the master
    control overrides, e.g. when the corresponding master control is
    muted. The reason is that slave_put() returns the value of the actual
    slave put callback, and it doesn't reflect the virtual slave value
    change.

    This patch fixes the function just to return 1 whenever a slave value
    is changed.

    Cc:
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • This register field is 11 bits wide, not 15 bits wide. Given the way
    this value is currently, used, this patch has no practical effect.
    However, it's still best if the value is correct.

    Signed-off-by: Stephen Warren
    Signed-off-by: Mark Brown

    Stephen Warren
     

04 Mar, 2013

1 commit

  • The "dev" variable could be out of bounds. Calling
    snd_seq_oss_synth_is_valid() checks that it is is a valid device
    which has been opened. We check this inside set_note_event() so
    this function can't succeed without a valid "dev". But we need to
    do the check earlier to prevent invalid dereferences and memory
    corruption.

    One call tree where "dev" could be out of bounds is:
    -> snd_seq_oss_oob_user()
    -> snd_seq_oss_process_event()
    -> extended_event()
    -> note_on_event()

    Signed-off-by: Dan Carpenter
    Signed-off-by: Takashi Iwai

    Dan Carpenter
     

03 Mar, 2013

1 commit

  • The delay parameter of schedule_delayed_work() is number of jiffies to wait
    rather than miliseconds.

    Before commit 6d3c26bcb "ASoC: Use delayed work to debounce WM8350 jack IRQs",
    the debounce time is 200 miliseconds in wm8350_hp_jack_handler().
    So I think this is a bug when convert to use delayed work.

    Signed-off-by: Axel Lin
    Signed-off-by: Mark Brown

    Axel Lin
     

01 Mar, 2013

4 commits


28 Feb, 2013

1 commit

  • Pull sound fixes from Takashi Iwai:
    "Nothing serious but just a few regression fixes and quirk additions,
    such as emu1010 firmware loading fixes, M-Audio AP192 SPDIF fix, and
    HD-audio HDMI jack detection fix."

    * tag 'sound-3.9' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
    ALSA: emu10k1: Allow to switch hardware sampe rate on EMU
    ALSA: hda - Enable beep for ASUS EeeBox EBP1501P
    ALSA: emu10k1: Load firmware when it was already cached
    ALSA: ice1724: M-Audio Audiophile192: Fix SPDIF input
    ALSA: bt87x: Make load_all parameter working again
    ALSA: emu10k1: Fix regression in emu1010 firmware loading
    ALSA: hda - hdmi: Make jacks phantom, if they're not detectable

    Linus Torvalds
     

27 Feb, 2013

1 commit

  • Pull vfs pile (part one) from Al Viro:
    "Assorted stuff - cleaning namei.c up a bit, fixing ->d_name/->d_parent
    locking violations, etc.

    The most visible changes here are death of FS_REVAL_DOT (replaced with
    "has ->d_weak_revalidate()") and a new helper getting from struct file
    to inode. Some bits of preparation to xattr method interface changes.

    Misc patches by various people sent this cycle *and* ocfs2 fixes from
    several cycles ago that should've been upstream right then.

    PS: the next vfs pile will be xattr stuff."

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (46 commits)
    saner proc_get_inode() calling conventions
    proc: avoid extra pde_put() in proc_fill_super()
    fs: change return values from -EACCES to -EPERM
    fs/exec.c: make bprm_mm_init() static
    ocfs2/dlm: use GFP_ATOMIC inside a spin_lock
    ocfs2: fix possible use-after-free with AIO
    ocfs2: Fix oops in ocfs2_fast_symlink_readpage() code path
    get_empty_filp()/alloc_file() leave both ->f_pos and ->f_version zero
    target: writev() on single-element vector is pointless
    export kernel_write(), convert open-coded instances
    fs: encode_fh: return FILEID_INVALID if invalid fid_type
    kill f_vfsmnt
    vfs: kill FS_REVAL_DOT by adding a d_weak_revalidate dentry op
    nfsd: handle vfs_getattr errors in acl protocol
    switch vfs_getattr() to struct path
    default SET_PERSONALITY() in linux/elf.h
    ceph: prepopulate inodes only when request is aborted
    d_hash_and_lookup(): export, switch open-coded instances
    9p: switch v9fs_set_create_acl() to inode+fid, do it before d_instantiate()
    9p: split dropping the acls from v9fs_set_create_acl()
    ...

    Linus Torvalds
     

26 Feb, 2013

1 commit

  • Pull module update from Rusty Russell:
    "The sweeping change is to make add_taint() explicitly indicate whether
    to disable lockdep, but it's a mechanical change."

    * tag 'modules-next-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux:
    MODSIGN: Add option to not sign modules during modules_install
    MODSIGN: Add -s option to sign-file
    MODSIGN: Specify the hash algorithm on sign-file command line
    MODSIGN: Simplify Makefile with a Kconfig helper
    module: clean up load_module a little more.
    modpost: Ignore ARC specific non-alloc sections
    module: constify within_module_*
    taint: add explicit flag to show whether lock dep is still OK.
    module: printk message when module signature fail taints kernel.

    Linus Torvalds
     

25 Feb, 2013

5 commits


24 Feb, 2013

1 commit

  • Pull powerpc updates from Benjamin Herrenschmidt:
    "So from the depth of frozen Minnesota, here's the powerpc pull request
    for 3.9. It has a few interesting highlights, in addition to the
    usual bunch of bug fixes, minor updates, embedded device tree updates
    and new boards:

    - Hand tuned asm implementation of SHA1 (by Paulus & Michael
    Ellerman)

    - Support for Doorbell interrupts on Power8 (kind of fast
    thread-thread IPIs) by Ian Munsie

    - Long overdue cleanup of the way we handle relocation of our open
    firmware trampoline (prom_init.c) on 64-bit by Anton Blanchard

    - Support for saving/restoring & context switching the PPR (Processor
    Priority Register) on server processors that support it. This
    allows the kernel to preserve thread priorities established by
    userspace. By Haren Myneni.

    - DAWR (new watchpoint facility) support on Power8 by Michael Neuling

    - Ability to change the DSCR (Data Stream Control Register) which
    controls cache prefetching on a running process via ptrace by
    Alexey Kardashevskiy

    - Support for context switching the TAR register on Power8 (new
    branch target register meant to be used by some new specific
    userspace perf event interrupt facility which is yet to be enabled)
    by Ian Munsie.

    - Improve preservation of the CFAR register (which captures the
    origin of a branch) on various exception conditions by Paulus.

    - Move the Bestcomm DMA driver from arch powerpc to drivers/dma where
    it belongs by Philippe De Muyter

    - Support for Transactional Memory on Power8 by Michael Neuling
    (based on original work by Matt Evans). For those curious about
    the feature, the patch contains a pretty good description."

    (See commit db8ff907027b: "powerpc: Documentation for transactional
    memory on powerpc" for the mentioned description added to the file
    Documentation/powerpc/transactional_memory.txt)

    * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: (140 commits)
    powerpc/kexec: Disable hard IRQ before kexec
    powerpc/85xx: l2sram - Add compatible string for BSC9131 platform
    powerpc/85xx: bsc9131 - Correct typo in SDHC device node
    powerpc/e500/qemu-e500: enable coreint
    powerpc/mpic: allow coreint to be determined by MPIC version
    powerpc/fsl_pci: Store the pci ctlr device ptr in the pci ctlr struct
    powerpc/85xx: Board support for ppa8548
    powerpc/fsl: remove extraneous DIU platform functions
    arch/powerpc/platforms/85xx/p1022_ds.c: adjust duplicate test
    powerpc: Documentation for transactional memory on powerpc
    powerpc: Add transactional memory to pseries and ppc64 defconfigs
    powerpc: Add config option for transactional memory
    powerpc: Add transactional memory to POWER8 cpu features
    powerpc: Add new transactional memory state to the signal context
    powerpc: Hook in new transactional memory code
    powerpc: Routines for FP/VSX/VMX unavailable during a transaction
    powerpc: Add transactional memory unavaliable execption handler
    powerpc: Add reclaim and recheckpoint functions for context switching transactional memory processes
    powerpc: Add FP/VSX and VMX register load functions for transactional memory
    powerpc: Add helper functions for transactional memory context switching
    ...

    Linus Torvalds
     

23 Feb, 2013

1 commit


22 Feb, 2013

1 commit