08 Apr, 2015

12 commits

  • Document the use of TRACE_DEFINE_ENUM() by adding enums to the
    trace-event-sample.h and using this macro to convert them in the format
    files.

    Also update the comments and sho the use of __print_symbolic() and
    __print_flags() as well as adding comments abount __print_array().

    Link: http://lkml.kernel.org/r/20150403013802.220157513@goodmis.org

    Reviewed-by: Masami Hiramatsu
    Tested-by: Masami Hiramatsu
    Signed-off-by: Steven Rostedt

    Steven Rostedt (Red Hat)
     
  • Update the infrastructure such that modules that declare TRACE_DEFINE_ENUM()
    will have those enums converted into their values in the tracepoint
    print fmt strings.

    Link: http://lkml.kernel.org/r/87vbhjp74q.fsf@rustcorp.com.au

    Acked-by: Rusty Russell
    Reviewed-by: Masami Hiramatsu
    Tested-by: Masami Hiramatsu
    Signed-off-by: Steven Rostedt

    Steven Rostedt (Red Hat)
     
  • Several tracepoints use the helper functions __print_symbolic() or
    __print_flags() and pass in enums that do the mapping between the
    binary data stored and the value to print. This works well for reading
    the ASCII trace files, but when the data is read via userspace tools
    such as perf and trace-cmd, the conversion of the binary value to a
    human string format is lost if an enum is used, as userspace does not
    have access to what the ENUM is.

    For example, the tracepoint trace_tlb_flush() has:

    __print_symbolic(REC->reason,
    { TLB_FLUSH_ON_TASK_SWITCH, "flush on task switch" },
    { TLB_REMOTE_SHOOTDOWN, "remote shootdown" },
    { TLB_LOCAL_SHOOTDOWN, "local shootdown" },
    { TLB_LOCAL_MM_SHOOTDOWN, "local mm shootdown" })

    Which maps the enum values to the strings they represent. But perf and
    trace-cmd do no know what value TLB_LOCAL_MM_SHOOTDOWN is, and would
    not be able to map it.

    With TRACE_DEFINE_ENUM(), developers can place these in the event header
    files and ftrace will convert the enums to their values:

    By adding:

    TRACE_DEFINE_ENUM(TLB_FLUSH_ON_TASK_SWITCH);
    TRACE_DEFINE_ENUM(TLB_REMOTE_SHOOTDOWN);
    TRACE_DEFINE_ENUM(TLB_LOCAL_SHOOTDOWN);
    TRACE_DEFINE_ENUM(TLB_LOCAL_MM_SHOOTDOWN);

    $ cat /sys/kernel/debug/tracing/events/tlb/tlb_flush/format
    [...]
    __print_symbolic(REC->reason,
    { 0, "flush on task switch" },
    { 1, "remote shootdown" },
    { 2, "local shootdown" },
    { 3, "local mm shootdown" })

    The above is what userspace expects to see, and tools do not need to
    be modified to parse them.

    Link: http://lkml.kernel.org/r/20150403013802.220157513@goodmis.org

    Cc: Guilherme Cox
    Cc: Tony Luck
    Cc: Xie XiuQi
    Acked-by: Namhyung Kim
    Reviewed-by: Masami Hiramatsu
    Tested-by: Masami Hiramatsu
    Signed-off-by: Steven Rostedt

    Steven Rostedt (Red Hat)
     
  • Add documentation about TRACE_SYSTEM needing to be alpha-numeric or with
    underscores, and that if it is not, then the use of TRACE_SYSTEM_VAR is
    required to make something that is.

    An example of this is shown in samples/trace_events/trace-events-sample.h

    Link: http://lkml.kernel.org/r/20150403013802.220157513@goodmis.org

    Reviewed-by: Masami Hiramatsu
    Tested-by: Masami Hiramatsu
    Signed-off-by: Steven Rostedt

    Steven Rostedt (Red Hat)
     
  • Normally the compiler will use the same pointer for a string throughout
    the file. But there's no guarantee of that happening. Later changes will
    require that all events have the same pointer to the system string.

    Name the system string and have all events point to it.

    Testing this, it did not increases the size of the text, except for the
    notes section, which should not harm the real size any.

    Link: http://lkml.kernel.org/r/20150403013802.220157513@goodmis.org

    Reviewed-by: Masami Hiramatsu
    Tested-by: Masami Hiramatsu
    Signed-off-by: Steven Rostedt

    Steven Rostedt (Red Hat)
     
  • Every tracing file must have its own TRACE_SYSTEM defined.
    The brcmsmac tracepoint header broke this and added in the middle
    of the file:

    #undef TRACE_SYSTEM
    #define TRACE_SYSTEM brcmsmac

    #undef TRACE_SYSTEM
    #define TRACE_SYSTEM brcmsmac_tx

    #undef TRACE_SYSTEM
    #define TRACE_SYSTEM brcmsmac_msg

    Unfortunately, this broke new code in the ftrace infrastructure.
    Moving each of these TRACE_SYSTEMs into their own trace file with
    just one TRACE_SYSTEM per file fixes the issue.

    Link: http://lkml.kernel.org/r/5524D99C.1050902@broadcom.com

    Acked-by: Arend van Spriel
    Signed-off-by: Steven Rostedt

    Steven Rostedt (Red Hat)
     
  • Every tracing file must have its own TRACE_SYSTEM defined.
    The iwlwifi tracepoint header broke this and added in the middle
    of the file:

    #undef TRACE_SYSTEM
    #define TRACE_SYSTEM iwlwifi_io

    #undef TRACE_SYSTEM
    #define TRACE_SYSTEM iwlwifi_ucode

    #undef TRACE_SYSTEM
    #define TRACE_SYSTEM iwlwifi_msg

    #undef TRACE_SYSTEM
    #define TRACE_SYSTEM iwlwifi_data

    #undef TRACE_SYSTEM
    #define TRACE_SYSTEM iwlwifi

    Unfortunately, this broke new code in the ftrace infrastructure.
    Moving each of these TRACE_SYSTEMs into their own trace file with
    just one TRACE_SYSTEM per file fixes the issue.

    Link: http://lkml.kernel.org/r/1428479094.2809.3.camel@sipsolutions.net

    Reviewed-by: Johannes Berg
    Signed-off-by: Steven Rostedt

    Steven Rostedt (Red Hat)
     
  • Every tracing file must have its own TRACE_SYSTEM defined.
    The mac80211 tracepoint header broke this and add in the middle
    of the file had:

    #undef TRACE_SYSTEM
    #define TRACE_SYSTEM mac80211_msg

    Unfortunately, this broke new code in the ftrace infrastructure.
    Moving the mac80211_msg into its own trace file with its own
    TRACE_SYSTEM defined fixes the issue.

    Link: http://lkml.kernel.org/r/1428389938.1841.1.camel@sipsolutions.net

    Reviewed-by: Johannes Berg
    Signed-off-by: Steven Rostedt

    Steven Rostedt (Red Hat)
     
  • New code will require TRACE_SYSTEM to be a valid C variable name,
    but some tracepoints have TRACE_SYSTEM with '-' and not '_', so
    it can not be used. Instead, add a TRACE_SYSTEM_VAR that can
    give the tracing infrastructure a unique name for the trace system.

    Cc: Xenia Ragiadakou
    Cc: Sarah Sharp
    Reviewed-by: Masami Hiramatsu
    Tested-by: Masami Hiramatsu
    Signed-off-by: Steven Rostedt

    Steven Rostedt (Red Hat)
     
  • New code will require TRACE_SYSTEM to be a valid C variable name,
    but some tracepoints have TRACE_SYSTEM with '-' and not '_', so
    it can not be used. Instead, add a TRACE_SYSTEM_VAR that can
    give the tracing infrastructure a unique name for the trace system.

    Link: http://lkml.kernel.org/r/20150402111500.5e52c1ed.cornelia.huck@de.ibm.com

    Cc: Martin Schwidefsky
    Cc: Heiko Carstens
    Cc: David Hildenbrand
    Cc: Christian Borntraeger
    Acked-by: Cornelia Huck
    Reviewed-by: Masami Hiramatsu
    Tested-by: Masami Hiramatsu
    Signed-off-by: Steven Rostedt

    Steven Rostedt (Red Hat)
     
  • New code will require TRACE_SYSTEM to be a valid C variable name,
    but some tracepoints have TRACE_SYSTEM with '-' and not '_', so
    it can not be used. Instead, add a TRACE_SYSTEM_VAR that can
    give the tracing infrastructure a unique name for the trace system.

    Link: http://lkml.kernel.org/r/20150402142831.GT6023@sirena.org.uk

    Acked-by: Mark Brown
    Reviewed-by: Masami Hiramatsu
    Tested-by: Masami Hiramatsu
    Signed-off-by: Steven Rostedt

    Steven Rostedt (Red Hat)
     
  • The tracing infrastructure is adding a macro TRACE_SYSTEM_STRING, and
    hit the following build failure:

    In file included from include/trace/define_trace.h:90:0,
    from drivers/gpu/drm/.//radeon/radeon_trace.h:209,
    from drivers/gpu/drm/.//radeon/radeon_trace_points.c:9:
    >> include/trace/ftrace.h:28:0: warning: "TRACE_SYSTEM_STRING" redefined
    #define TRACE_SYSTEM_STRING __app(TRACE_SYSTEM_VAR,__trace_system_name)

    Seems that the DRM folks have added their own use to the
    TRACE_SYSTEM_STRING, with:

    #define TRACE_SYSTEM_STRING __stringify(TRACE_SYSTEM)

    Although, I can not find its use anywhere. I could simply use another
    name, but if this macro is not being used, it should be removed.

    Link: http://lkml.kernel.org/r/20150402123736.01eda052@gandalf.local.home

    Cc: Alex Deucher
    Cc: Christian König
    Cc: David Airlie
    Cc: Daniel Vetter
    Cc: Jani Nikula
    Reviewed-by: Masami Hiramatsu
    Tested-by: Masami Hiramatsu
    Reported-by: kbuild test robot
    Signed-off-by: Steven Rostedt

    Steven Rostedt
     

03 Apr, 2015

1 commit

  • Dynamically allocated trampolines call ftrace_ops_get_func to get the
    function which they should call. For dynamic fops (FTRACE_OPS_FL_DYNAMIC
    flag is set) ftrace_ops_list_func is always returned. This is reasonable
    for static trampolines but goes against the main advantage of dynamic
    ones, that is avoidance of going through the list of all registered
    callbacks for functions that are only being traced by a single callback.

    We can fix it by returning ops->func (or recursion safe version) from
    ftrace_ops_get_func whenever it is possible for dynamic trampolines.

    Note that dynamic trampolines are not allowed for dynamic fops if
    CONFIG_PREEMPT=y.

    Link: http://lkml.kernel.org/r/alpine.LNX.2.00.1501291023000.25445@pobox.suse.cz
    Link: http://lkml.kernel.org/r/1424357773-13536-1-git-send-email-mbenes@suse.cz

    Reported-by: Miroslav Benes
    Signed-off-by: Steven Rostedt

    Steven Rostedt (Red Hat)
     

31 Mar, 2015

1 commit

  • A clean up of the recursive protection code changed

    val = this_cpu_read(current_context);
    val--;
    val &= this_cpu_read(current_context);

    to

    val = this_cpu_read(current_context);
    val &= val & (val - 1);

    Which has a duplicate use of '&' as the above is the same as

    val = val & (val - 1);

    Actually, it would be best to remove that line altogether and
    just add it to where it is used.

    And Christoph even mentioned that it can be further compacted to
    just a single line:

    __this_cpu_and(current_context, __this_cpu_read(current_context) - 1);

    Link: http://lkml.kernel.org/alpine.DEB.2.11.1503271423580.23114@gentwo.org

    Suggested-by: Christoph Lameter
    Signed-off-by: Steven Rostedt

    Steven Rostedt (Red Hat)
     

25 Mar, 2015

4 commits

  • The commit that added a check for this to checkpatch says:

    "Using weak declarations can have unintended link defects. The __weak on
    the declaration causes non-weak definitions to become weak."

    In this case, when a PowerPC kernel is built with CONFIG_KPROBE_EVENT
    but not CONFIG_UPROBE_EVENT, it generates the following warning:

    WARNING: 1 bad relocations
    c0000000014f2190 R_PPC64_ADDR64 uprobes_fetch_type_table

    This is fixed by passing the fetch_table arrays to
    traceprobe_parse_probe_arg() which also means that they can never be NULL.

    Link: http://lkml.kernel.org/r/20150312165834.4482cb48@canb.auug.org.au

    Acked-by: Masami Hiramatsu
    Signed-off-by: Stephen Rothwell
    Signed-off-by: Steven Rostedt

    Stephen Rothwell
     
  • TRACE_EVENT_FL_USE_CALL_FILTER flag in ftrace:functon event can be
    removed. This flag was first introduced in commit
    f306cc82a93d ("tracing: Update event filters for multibuffer").

    Now, the only place uses this flag is ftrace:function, but the filter of
    ftrace:function has a different code path with events/syscalls and
    events/tracepoints. It uses ftrace_filter_write() and perf's
    ftrace_profile_set_filter() to set the filter, the functionality of file
    'tracing/events/ftrace/function/filter' is bypassed in function
    init_pred(), in which case, neither call->filter nor file->filter is
    used.

    So we can safely remove TRACE_EVENT_FL_USE_CALL_FILTER flag from
    ftrace:function events.

    Link: http://lkml.kernel.org/r/1425367294-27852-1-git-send-email-hekuang@huawei.com

    Signed-off-by: He Kuang
    Signed-off-by: Steven Rostedt

    He Kuang
     
  • Use %pS for actual addresses, otherwise you'll get bad output
    on arches like ppc64 where %pF expects a function descriptor.

    Link: http://lkml.kernel.org/r/1426130037-17956-22-git-send-email-scottwood@freescale.com

    Signed-off-by: Scott Wood
    Signed-off-by: Steven Rostedt

    Scott Wood
     
  • It has come to my attention that this_cpu_read/write are horrible on
    architectures other than x86. Worse yet, they actually disable
    preemption or interrupts! This caused some unexpected tracing results
    on ARM.

    101.356868: preempt_count_add
    Reported-by: Uwe Kleine-Koenig
    Tested-by: Uwe Kleine-Koenig
    Signed-off-by: Steven Rostedt

    Steven Rostedt
     

16 Mar, 2015

6 commits

  • Linus Torvalds
     
  • Pull drm fix from Dave Airlie:
    "An oops snuck in in an -rc3 patch, this fixes it"

    * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux:
    [PATCH] drm/mm: Fix support 4 GiB and larger ranges

    Linus Torvalds
     
  • Pull clock framework fixes from Michael Turquette:
    "The clk fixes for 4.0-rc4 comprise three themes.

    First are the usual driver fixes for new regressions since v3.19.

    Second are fixes to the common clock divider type caused by recent
    changes to how we round clock rates. This affects many clock drivers
    that use this common code.

    Finally there are fixes for drivers that improperly compared struct
    clk pointers (drivers must not deref these pointers). While some of
    these drivers have done this for a long time, this did not cause a
    problem until we started generating unique struct clk pointers for
    every consumer. A new function, clk_is_match was introduced to get
    these drivers working again and they are fixed up to no longer deref
    the pointers themselves"

    * tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux:
    ASoC: kirkwood: fix struct clk pointer comparing
    ASoC: fsl_spdif: fix struct clk pointer comparing
    ARM: imx: fix struct clk pointer comparing
    clk: introduce clk_is_match
    clk: don't export static symbol
    clk: divider: fix calculation of initial best divider when rounding to closest
    clk: divider: fix selection of divider when rounding to closest
    clk: divider: fix calculation of maximal parent rate for a given divider
    clk: divider: return real rate instead of divider value
    clk: qcom: fix platform_no_drv_owner.cocci warnings
    clk: qcom: fix platform_no_drv_owner.cocci warnings
    clk: qcom: Add PLL4 vote clock
    clk: qcom: lcc-msm8960: Fix PLL rate detection
    clk: qcom: Fix slimbus n and m val offsets
    clk: ti: Fix FAPLL parent enable bit handling

    Linus Torvalds
     
  • bad argument if(tmp)... in check_free_hole

    fix oops: kernel BUG at drivers/gpu/drm/drm_mm.c:305!

    [airlied: excellent, this was my task for today].

    Signed-off-by: Krzysztof Kolasa
    Reviewed-by: Chris wilson
    Signed-off-by: Dave Airlie

    Krzysztof Kolasa
     
  • Pull ARM SoC fixes from Arnd Bergmann:
    "This is a rather unpleasantly large set of bug fixes for arm-soc, Most
    of them because of cross-tree dependencies for Exynos where we should
    have figured out the right path to merge things before the merge
    window, and then the maintainer being unable to sort things out in
    time during a business trip.

    The other changes contained here are the usual collection:

    MAINTAINERS file updates
    - Gregory Clement is now a co-maintainer for the legacy Marvell EBU
    platforms
    - A MAINTAINERS entry for the Freescale Vybrid platform that was
    added last year
    - Matt Porter no longer works as a maintainer on Broadcom SoCs

    Build-time issues
    - A compile-time error for at91
    - Several minor DT fixes on at91, imx, exynos, socfpga, and omap
    - The new digicolor platform was not correctly enabled at all

    Configuration issues
    - Two defconfig fix for regressions using USB on versatile express
    and on OMAP3
    - Enabling all 8 CPUs on Allwinner/SUNxi
    - Enabling the new STiH410 platform to be usable

    Bug fixes in platform code
    - A missing barrier for socfpga
    - Fixing LPDDR1 self-refresh mode on at91
    - Fixing RTC interrupt numbers on Exynos3250
    - Fixing a cache-coherency issues in CPU power-down on Exynos5
    - Multiple small OMAP power management fixes"

    * tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (69 commits)
    MAINTAINERS: Add myself as co-maintainer to the legacy support of the mvebu SoCs
    ARM: at91: pm_slowclock: fix the compilation error
    ARM: at91/dt: fix USB high-speed clock to select UTMI
    ARM: at91/dt: fix at91 udc compatible strings
    ARM: at91/dt: declare matrix node as a syscon device
    ARM: vexpress: update CONFIG_USB_ISP1760 option
    ARM: digicolor: add the machine directory to Makefile
    ARM: STi: Add STiH410 SoC support
    MAINTAINERS: add Freescale Vybrid SoC
    MAINTAINERS: Remove self as ARM mach-bcm co-maintainer
    ARM: imx6sl-evk: set swbst_reg as vbus's parent reg
    ARM: imx6qdl-sabresd: set swbst_reg as vbus's parent reg
    ARM: at91/dt: at91sam9261: fix clocks and clock-names in udc definition
    ARM: OMAP2+: Fix wl12xx on dm3730-evm with mainline u-boot
    ARM: OMAP: enable TWL4030_USB in omap2plus_defconfig
    ARM: dts: dra7x-evm: avoid possible contention while muxing on CAN lines
    ARM: dts: dra7x-evm: Don't use dcan1_rx.gpio1_15 in DCAN pinctrl
    ARM: dts: am43xx: fix SLEWCTRL_FAST pinctrl binding
    ARM: dts: am33xx: fix SLEWCTRL_FAST pinctrl binding
    ARM: dts: OMAP5: fix polling intervals for thermal zones
    ...

    Linus Torvalds
     
  • Pull irqchip fixes from Jason Cooper:
    "armada-370-xp:
    - Chained per-cpu interrupts

    gic{,-v3,v3-its}"
    - Various fixes for safer operation"

    * tag 'irqchip-fixes-4.0' of git://git.infradead.org/users/jcooper/linux:
    irqchip: gicv3-its: Support safe initialization
    irqchip: gicv3-its: Define macros for GITS_CTLR fields
    irqchip: gicv3-its: Add limitation to page order
    irqchip: gicv3-its: Use 64KB page as default granule
    irqchip: gicv3-its: Zero itt before handling to hardware
    irqchip: gic-v3: Fix out of bounds access to cpu_logical_map
    irqchip: gic: Fix unsafe locking reported by lockdep
    irqchip: gicv3-its: Fix unsafe locking reported by lockdep
    irqchip: gicv3-its: Iterate over PCI aliases to generate ITS configuration
    irqchip: gicv3-its: Allocate enough memory for the full range of DeviceID
    irqchip: gicv3-its: Fix ITS CPU init
    irqchip: armada-370-xp: Fix chained per-cpu interrupts

    Linus Torvalds
     

15 Mar, 2015

7 commits


14 Mar, 2015

9 commits

  • It's possible that "fl" won't point at a valid lock at this point, so
    use "victim" instead which is either a valid lock or NULL.

    Signed-off-by: Jeff Layton

    Jeff Layton
     
  • Another one for the big head.S spring cleaning: the label should
    be after the .align or it may point to the padding.

    Signed-off-by: Ard Biesheuvel
    Signed-off-by: Catalin Marinas

    Ard Biesheuvel
     
  • If UEFI Runtime Services are available, they are preferred over direct
    PSCI calls or other methods to reset the system.

    For the reset case, we need to hook into machine_restart(), as the
    arm_pm_restart function pointer may be overwritten by modules.

    Tested-by: Mark Rutland
    Reviewed-by: Mark Rutland
    Reviewed-by: Matt Fleming
    Signed-off-by: Ard Biesheuvel
    Signed-off-by: Catalin Marinas

    Ard Biesheuvel
     
  • The ARM architecture allows the caching of intermediate page table
    levels and page table freeing requires a sequence like:

    pmd_clear()
    TLB invalidation
    pte page freeing

    With commit 5e5f6dc10546 (arm64: mm: enable HAVE_RCU_TABLE_FREE logic),
    the page table freeing batching was moved from tlb_remove_page() to
    tlb_remove_table(). The former takes care of TLB invalidation as this is
    also shared with pte clearing and page cache page freeing. The latter,
    however, does not invalidate the TLBs for intermediate page table levels
    as it probably relies on the architecture code to do it if required.
    When the mm->mm_users < 2, tlb_remove_table() does not do any batching
    and page table pages are freed before tlb_finish_mmu() which performs
    the actual TLB invalidation.

    This patch introduces __tlb_flush_pgtable() for arm64 and calls it from
    the {pte,pmd,pud}_free_tlb() directly without relying on deferred page
    table freeing.

    Fixes: 5e5f6dc10546 arm64: mm: enable HAVE_RCU_TABLE_FREE logic
    Reported-by: Jon Masters
    Tested-by: Jon Masters
    Tested-by: Steve Capper
    Signed-off-by: Catalin Marinas

    Catalin Marinas
     
  • Pull power management and ACPI fixes from Rafael Wysocki:
    "Just two fixes, one for an ACPI LPSS driver issue introduced during
    the 3.17 cycle and one revert of a recent commit that sort of broke
    the cpupower tool.

    Specifics:

    - Fix an ACPI LPSS (Low-Power Subsystem) driver issue causing the
    8250_dw driver to confuse an LPSS clock with another one it is
    supposed to handle due to the lack of identification allowing it to
    tell those clocks apart (Heikki Krogerus).

    - Revert a recent commit that was supposed to improve the usability
    of the cpupower tool, but clearly did the opposite (Josh Boyer)"

    * tag 'pm+acpi-4.0-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
    Revert "cpupower Makefile change to help run the tool without 'make install'"
    ACPI / LPSS: provide con_id for the clkdev

    Linus Torvalds
     
  • I will also take care of the legacy support(not fully converted to DT)
    of the mvebu SoCs.

    Signed-off-by: Gregory CLEMENT
    Acked-by: Andrew Lunn
    Acked-by: Jason Cooper
    Signed-off-by: Arnd Bergmann

    Gregory CLEMENT
     
  • * pm-tools:
    Revert "cpupower Makefile change to help run the tool without 'make install'"

    Rafael J. Wysocki
     
  • Pull xen bug fixes from David Vrabel:

    - fix a PV regression in 3.19.

    - fix a dom0 crash on hosts with large numbers of PIRQs.

    - prevent pcifront from disabling memory or I/O port access, which may
    trigger host crashes.

    * tag 'stable/for-linus-4.0-rc3-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
    xen-pciback: limit guest control of command register
    xen/events: avoid NULL pointer dereference in dom0 on large machines
    xen: Remove trailing semicolon from xenbus_register_frontend() definition
    x86/xen: correct bug in p2m list initialization

    Linus Torvalds
     
  • Pull sound fixes from Takashi Iwai:
    "This is a round of HD-audio fixes: there are a long-standing
    regression fix and a few more device/codec-specific quirks.

    In addition, a couple of FireWire regression fixes, a USB-audio quirk
    for Roland UA-22 and a sanity check in API for user-defined control
    elements"

    * tag 'sound-4.0-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
    ALSA: hda - Don't access stereo amps for mono channel widgets
    ALSA: hda - Add workaround for MacBook Air 5,2 built-in mic
    ALSA: hda - Set single_adc_amp flag for CS420x codecs
    ALSA: snd-usb: add quirks for Roland UA-22
    ALSA: control: Add sanity checks for user ctl id name string
    ALSA: hda - Fix built-in mic on Compaq Presario CQ60
    ALSA: firewire-lib: leave unit reference counting completely
    Revert "ALSA: dice: fix wrong offsets for Dice interface"
    ALSA: hda - Fix regression of HD-audio controller fallback modes

    Linus Torvalds