Permalink
Commits on Mar 7, 2017
  1. ville: defconfig: Enable CONFIG_INET_DIAG_DESTROY

    boscogh authored and intervigilium committed Feb 27, 2017
    this enables administrative socket destroy,
    which was backported from net-next by previous commits
    
    also enable CONFIG_INET_TCP_DIAG and CONFIG_INET_DIAG to
    include respective files into build.
    
    we do not enable CONFIG_INET_UDP_DIAG for the moment,
    because relevant upstream patches were not yet merged into
    udp_diag.c
    
    Change-Id: I7ad13645b1ebd1785fbc394194bd29981f822ca8
Commits on Mar 2, 2017
  1. Revert "msm: kgsl: fix sync file error handling"

    Sean McCreary authored and mdmower committed Feb 28, 2017
    With this change applied, if copy_to_user() fails the result
    is a call to put_unused_fd() before a file has been installed
    with sync_fence_install().  This is the opposite of the
    intent of the original upstream patch:
    
    Commit:	3e3866a5fced40ccf9ca442675cf915961efe4d9
    Author: Jeremy Gebben <jgebben@codeaurora.org>
    Date:	2015-02-27 11:32:29 -0700
    
    	msm: kgsl: fix sync file error handling
    
    	We need to call put_unused_fd() on failure, but only if
    	a file hasn't been stored into the fd yet. This function
    	wasn't called from kgsl_ioctl_syncsource_create_fence()
    	and was called incorrectly from kgsl_add_fence_event().
    	Reorder our sync_fence_install() calls to happen after
    	all possible failures so that error cleanup will be
    	correct.
    
    	Change-Id: I0e7bb459f2acc010446ac5e5b3b72c8b16cce079
    	Signed-off-by: Jeremy Gebben <jgebben@codeaurora.org>
    	Signed-off-by: Kevin F. Haggerty <kevin.f.haggerty@gmail.com>
    	haggertk: Backport to 3.4
    
    This reverts commit 63e27da
    
    Change-Id: I3a77de147e1098f2cd275a8ade090a4e1099e306
Commits on Feb 27, 2017
  1. net/unix: sk_socket can disappear when state is unlocked

    Mark Salyzyn authored and boscogh committed May 21, 2015
    got a rare NULL pointer dereference in clear_bit
    
    Signed-off-by: Mark Salyzyn <salyzyn@google.com>
    Bug: 21252747
    
    [cherry-picked from https://review.lineageos.org/#/c/160491/
    fixed a typo to compile, typo wasn't exist in upstream]
    Signed-off-by: Pavel Malyutin <pavel.malyutin@gmail.com>
    
    Change-Id: I27e70f2543034097c8a590a212c2c6fa846fe694
  2. BACKPORT: signal: allow to send any siginfo to itself

    avagin authored and boscogh committed Feb 28, 2013
    (cherry picked from commit 66dd34a)
    
    The idea is simple.  We need to get the siginfo for each signal on
    checkpointing dump, and then return it back on restore.
    
    The first problem is that the kernel doesn't report complete siginfos to
    userspace.  In a signal handler the kernel strips SI_CODE from siginfo.
    When a siginfo is received from signalfd, it has a different format with
    fixed sizes of fields.  The interface of signalfd was extended.  If a
    signalfd is created with the flag SFD_RAW, it returns siginfo in a raw
    format.
    
    rt_sigqueueinfo looks suitable for restoring signals, but it can't send
    siginfo with a positive si_code, because these codes are reserved for
    the kernel.  In the real world each person has right to do anything with
    himself, so I think a process should able to send any siginfo to itself.
    
    This patch:
    
    The kernel prevents sending of siginfo with positive si_code, because
    these codes are reserved for kernel.  I think we can allow a task to
    send such a siginfo to itself.  This operation should not be dangerous.
    
    This functionality is required for restoring signals in
    checkpoint/restart.
    
    Change-Id: I40101d87eeb53ae05cfa0949439577a8f3f58f94
    Signed-off-by: Andrey Vagin <avagin@openvz.org>
    Cc: Serge Hallyn <serge.hallyn@canonical.com>
    Cc: "Eric W. Biederman" <ebiederm@xmission.com>
    Cc: Al Viro <viro@zeniv.linux.org.uk>
    Cc: Michael Kerrisk <mtk.manpages@gmail.com>
    Cc: Pavel Emelyanov <xemul@parallels.com>
    Cc: Cyrill Gorcunov <gorcunov@openvz.org>
    Cc: Michael Kerrisk <mtk.manpages@gmail.com>
    Reviewed-by: Oleg Nesterov <oleg@redhat.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Commits on Feb 26, 2017
  1. Set the iif for IPv6 packets as well.

    lcolitti authored and boscogh committed Mar 2, 2015
    This was fixed upstream in a more comprehensive way by 1fb9489,
    but this one-line fix is consistent with the rest of the 3.4
    networking code.
    
    Change-Id: I342ca90c6d0213a7aeac9a2b18283530998f81d7
    Signed-off-by: Lorenzo Colitti <lorenzo@google.com>
  2. net: tcp: fix rtable leak in tcp_is_local[6]

    liping.zhang authored and boscogh committed Feb 18, 2016
    ip_rt_put/ip6_rt_put call is missed after route lookup routine.
    So if lookup returns ok, rtable leak will happen.
    
    Change-Id: Ica137043879b4305b70401cf7e8efda24405e3ff
    Signed-off-by: Liping Zhang <liping.zhang@spreadtrum.com>
  3. net: diag: support v4mapped sockets in inet_diag_find_one_icsk()

    Eric Dumazet authored and boscogh committed Jan 21, 2016
    Lorenzo reported that we could not properly find v4mapped sockets
    in inet_diag_find_one_icsk(). This patch fixes the issue.
    
    [Backport of net 7c1306723ee916ea9f1fa7d9e4c7a6d029ca7aaf]
    [lorenzo@google.com: changed init_net to net]
    
    Change-Id: I632b21e9e590cd0ebd38a09d8405140dcf942591
    Reported-by: Lorenzo Colitti <lorenzo@google.com>
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Acked-by: Lorenzo Colitti <lorenzo@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
  4. net: tcp: deal with listen sockets properly in tcp_abort.

    lcolitti authored and boscogh committed Dec 19, 2015
    When closing a listen socket, tcp_abort currently calls
    tcp_done without clearing the request queue. If the socket has a
    child socket that is established but not yet accepted, the child
    socket is then left without a parent, causing a leak.
    
    Fix this by setting the socket state to TCP_CLOSE and calling
    inet_csk_listen_stop with the socket lock held, like tcp_close
    does.
    
    Tested using net_test. With this patch, calling SOCK_DESTROY on a
    listen socket that has an established but not yet accepted child
    socket results in the parent and the child being closed, such
    that they no longer appear in sock_diag dumps.
    
    [Backport of net-next 2010b93e9317cc12acd20c4aed385af7f9d1681e]
    
    Change-Id: Iaccc56465f159144566b579dbebbbb6e1e943bc7
    Reported-by: Eric Dumazet <eric.dumazet@gmail.com>
    Signed-off-by: Lorenzo Colitti <lorenzo@google.com>
    Acked-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
  5. net: diag: Support destroying TCP sockets.

    lcolitti authored and boscogh committed Dec 16, 2015
    This implements SOCK_DESTROY for TCP sockets. It causes all
    blocking calls on the socket to fail fast with ECONNABORTED and
    causes a protocol close of the socket. It informs the other end
    of the connection by sending a RST, i.e., initiating a TCP ABORT
    as per RFC 793. ECONNABORTED was chosen for consistency with
    FreeBSD.
    
    [Backport of net-next c1e64e298b8cad309091b95d8436a0255c84f54a]
    
    Change-Id: Ic5410d3a2f39db28a322c30f4b3b2bffd35ec2de
    Signed-off-by: Lorenzo Colitti <lorenzo@google.com>
    Acked-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
  6. net: diag: Support SOCK_DESTROY for inet sockets.

    lcolitti authored and boscogh committed Dec 16, 2015
    This passes the SOCK_DESTROY operation to the underlying protocol
    diag handler, or returns -EOPNOTSUPP if that handler does not
    define a destroy operation.
    
    Most of this patch is just renaming functions. This is not
    strictly necessary, but it would be fairly counterintuitive to
    have the code to destroy inet sockets be in a function whose name
    starts with inet_diag_get.
    
    [Backport of net-next 6eb5d2e08f071c05ecbe135369c9ad418826cab2]
    
    Change-Id: I70a700ec66e0ea8526a17137ba6cb5a3f2dce45f
    Signed-off-by: Lorenzo Colitti <lorenzo@google.com>
    Acked-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
  7. net: diag: split inet_diag_dump_one_icsk into two

    lcolitti authored and boscogh committed Dec 16, 2015
    Currently, inet_diag_dump_one_icsk finds a socket and then dumps
    its information to userspace. Split it into a part that finds the
    socket and a part that dumps the information.
    
    [Backport of net-next b613f56ec9baf30edf5d9d607b822532a273dad7]
    
    Change-Id: I6b570c35a4928ea072de3e31f9f3ca89668a5244
    Signed-off-by: Lorenzo Colitti <lorenzo@google.com>
    Acked-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
  8. rfkill: prevent unnecessary event generation

    Vitaly Wool authored and boscogh committed Sep 6, 2012
    Prevent unnecessary rfkill event generation when the state has
    not actually changed. These events have to be delivered to
    relevant userspace processes, causing these processes to wake
    up and do something while they could as well have slept. This
    obviously results in more CPU usage, longer time-to-sleep-again
    and therefore higher power consumption.
    
    Signed-off-by: Vitaly Wool <vitalywool@gmail.com>
    Signed-off-by: Mykyta Iziumtsev <nikita.izyumtsev@gmail.com>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    
    [cherry-picked from linux kernel]
    Change-Id: I6b3060c7aa7d1e0c1d86f2e38079967bc3620fa4
    Signed-off-by: Pavel Malyutin <pavel.malyutin@gmail.com>
Commits on Feb 21, 2017
  1. proc: actually make proc_fd_permission() thread-friendly

    utrace authored and mdmower committed Nov 7, 2015
    upstream cherry-pick from
    https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=54708d2858e79a2bdda10bf8a20c80eb96c20613
    
    The commit 96d0df7 ("proc: make proc_fd_permission() thread-friendly")
    fixed the access to /proc/self/fd from sub-threads, but introduced another
    problem: a sub-thread can't access /proc/<tid>/fd/ or /proc/thread-self/fd
    if generic_permission() fails.
    
    Change proc_fd_permission() to check same_thread_group(pid_task(), current).
    
    Change-Id: Ib34b9f4c318a9b1da029710659d554a58b16fb45
    Fixes: 96d0df7 ("proc: make proc_fd_permission() thread-friendly")
    Reported-by: "Jin, Yihua" <yihua.jin@intel.com>
    Signed-off-by: Oleg Nesterov <oleg@redhat.com>
    Cc: "Eric W. Biederman" <ebiederm@xmission.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  2. proc: make proc_fd_permission() thread-friendly

    utrace authored and mdmower committed Sep 11, 2013
    upstream cherry-pick from
    https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=96d0df79f2644fc823f26c06491e182d87a90c2a
    
    proc_fd_permission() says "process can still access /proc/self/fd after it
    has executed a setuid()", but the "task_pid() = proc_pid() check only
    helps if the task is group leader, /proc/self points to
    /proc/<leader-pid>.
    
    Change this check to use task_tgid() so that the whole thread group can
    access its /proc/self/fd or /proc/<tid-of-sub-thread>/fd.
    
    Notes:
    	- CLONE_THREAD does not require CLONE_FILES so task->files
    	  can differ, but I don't think this can lead to any security
    	  problem. And this matches same_thread_group() in
    	  __ptrace_may_access().
    
    	- /proc/self should probably point to /proc/<thread-tid>, but
    	  it is too late to change the rules. Perhaps it makes sense
    	  to add /proc/thread though.
    
    Test-case:
    
    	void *tfunc(void *arg)
    	{
    		assert(opendir("/proc/self/fd"));
    		return NULL;
    	}
    
    	int main(void)
    	{
    		pthread_t t;
    		pthread_create(&t, NULL, tfunc, NULL);
    		pthread_join(t, NULL);
    		return 0;
    	}
    
    fails if, say, this executable is not readable and suid_dumpable = 0.
    
    Change-Id: I45adad32665ff6f8d392817c6e97c2acc0eeac05
    Signed-off-by: Oleg Nesterov <oleg@redhat.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Commits on Feb 19, 2017
  1. elite: Clean up defconfig

    intervigilium authored and mdmower committed Jan 22, 2017
    * Enable QSEECOM
    * Enable various netfilter options
    * Disable various debug options
    * Enable USB HID device options
    * Bring more in line with m7
    
    Change-Id: I46967fda6a2ef6be8bbaf73212ffe7028ab32b8f
  2. msm: HTC: elite: Add qseecom device items

    intervigilium authored and mdmower committed Jan 22, 2017
    Change-Id: I30052069fa4e83139384d039607e37be03673a7c
  3. jet: Clean up defconfig

    intervigilium authored and mdmower committed Jan 22, 2017
    * Enable QSEECOM
    * Enable various netfilter options
    * Disable various debug options
    * Enable USB HID device options
    * Bring more in line with m7
    
    Change-Id: I3f74de42d47cd07a5791d653b6b633afb3f694f6
Commits on Feb 7, 2017
  1. ipv4, fib: pass LOOPBACK_IFINDEX instead of 0 to flowi4_iif

    congwang1986 authored and mdmower committed Apr 15, 2014
    As suggested by Julian:
    
    	Simply, flowi4_iif must not contain 0, it does not
    	look logical to ignore all ip rules with specified iif.
    
    because in fib_rule_match() we do:
    
            if (rule->iifindex && (rule->iifindex != fl->flowi_iif))
                    goto out;
    
    flowi4_iif should be LOOPBACK_IFINDEX by default.
    
    We need to move LOOPBACK_IFINDEX to include/net/flow.h:
    
    1) It is mostly used by flowi_iif
    
    2) Fix the following compile error if we use it in flow.h
    by the patches latter:
    
    In file included from include/linux/netfilter.h:277:0,
                     from include/net/netns/netfilter.h:5,
                     from include/net/net_namespace.h:21,
                     from include/linux/netdevice.h:43,
                     from include/linux/icmpv6.h:12,
                     from include/linux/ipv6.h:61,
                     from include/net/ipv6.h:16,
                     from include/linux/sunrpc/clnt.h:27,
                     from include/linux/nfs_fs.h:30,
                     from init/do_mounts.c:32:
    include/net/flow.h: In function ‘flowi4_init_output’:
    include/net/flow.h:84:32: error: ‘LOOPBACK_IFINDEX’ undeclared (first use in this function)
    
    [Backport of net-next 6a66271]
    
    Change-Id: Ib7a0a08d78c03800488afa1b2c170cb70e34cfd9
    Cc: Eric Biederman <ebiederm@xmission.com>
    Cc: Julian Anastasov <ja@ssi.bg>
    Cc: David S. Miller <davem@davemloft.net>
    Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com>
    Signed-off-by: Cong Wang <cwang@twopensource.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Lorenzo Colitti <lorenzo@google.com>
  2. netfilter: xt_rpfilter: skip locally generated broadcast/multicast, too

    Florian Westphal authored and mdmower committed Apr 17, 2013
    Alex Efros reported rpfilter module doesn't match following packets:
    IN=br.qemu SRC=192.168.2.1 DST=192.168.2.255 [ .. ]
    (netfilter bugzilla #814).
    
    Problem is that network stack arranges for the locally generated broadcasts
    to appear on the interface they were sent out, so the IFF_LOOPBACK check
    doesn't trigger.
    
    As -m rpfilter is restricted to PREROUTING, we can check for existing
    rtable instead, it catches locally-generated broad/multicast case, too.
    
    Change-Id: I2d921ac4d53e5b1ca9a5249e489c33e4fa4a4b3a
    Signed-off-by: Florian Westphal <fw@strlen.de>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
  3. net: Loopback ifindex is constant now

    xemul authored and mdmower committed Aug 8, 2012
    As pointed out, there are places, that access net->loopback_dev->ifindex
    and after ifindex generation is made per-net this value becomes constant
    equals 1. So go ahead and introduce the LOOPBACK_IFINDEX constant and use
    it where appropriate.
    
    Change-Id: I29fd08fa01a9522240ab654d436b02a577bb610c
    Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
    Acked-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
  4. msm: HTC: m7: Delay before display_on for Renesas

    mdmower committed Feb 5, 2017
    * m7gpe-gd08e956-6.04.1700.16
    * Delay 120ms before writing display-on commands for Renesas panels
    
    BUGBASH-64
    Change-Id: I3bb287b8b3214733e3b140be0f636aa31230dce3
Commits on Feb 3, 2017
  1. net: wireless: bcmdhd_4335_mcc: Enable p2p support bits for p2p device

    Dmitry Shmidt authored and mdmower committed Jul 23, 2013
    Change-Id: I62102ead0e72be41d591f9562f3ac27c41b9e395
    Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
  2. net: wireless: bcmdhd_4335_mcc: Fix country checking

    Dmitry Shmidt authored and mdmower committed Oct 22, 2013
    Bug: 11319610
    
    Change-Id: I5c52ed594614d8039f167de3c98bd9f802b521df
    Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
Commits on Feb 2, 2017
  1. net: usb: rmnet_usb_data: Disable too much logspam

    Guang Jian Zeng authored and mdmower committed Feb 27, 2014
    Many "rmnet_usb 1-1:1.6: [rmnet_usb0] error: rmnet_ioct
    called for unsupported cmd" messages are output when doing
    Embedded Rmnet communication. It is caused by receiving
    unsupported commands in rmnet_ioctl function. This is not
    an error condition, so downgrade to debug log level to quiet
    messages appearing on console. Moreover, Change %d to %x
    in this dev_dbg function call. %x will make it easier to
    identify ioctl code since they are usually defined in hex
    format in the header files.
    
    Change-Id: I776e9ced0a8a042331d73ab0cfebacc33f61dfc6
    CRs-fixed: 622875
    Signed-off-by: Guang Jian Zeng <gzeng@codeaurora.org>
Commits on Feb 1, 2017
  1. ANDROID: trace: net: use %pK for kernel pointers

    mukesh agrawal authored and mdmower committed Jul 12, 2016
    We want to use network trace events in production
    builds, to help diagnose Wifi problems. However, we
    don't want to expose raw kernel pointers in such
    builds.
    
    Change the format specifier for the skbaddr field,
    so that, if kptr_restrict is enabled, the pointers
    will be reported as 0.
    
    Bug: 30090733
    Change-Id: Ic4bd583d37af6637343601feca875ee24479ddff
    Signed-off-by: mukesh agrawal <quiche@google.com>
Commits on Jan 29, 2017
  1. nf: IDLETIMER: Adds the uid field in the msg

    Ruchi Kandoi authored and mdmower committed Apr 23, 2015
    Message notifications contains an additional uid field. This field
    represents the uid that was responsible for waking the radio. And hence
    it is present only in notifications stating that the radio is now
    active.
    
    Change-Id: I18fc73eada512e370d7ab24fc9f890845037b729
    Signed-off-by: Ruchi Kandoi <kandoiruchi@google.com>
    Bug: 20264396
Commits on Jan 28, 2017
  1. m7: Re-add support for Qualcomm USB serial

    intervigilium committed Jan 28, 2017
    * Required for modem support
    
    Change-Id: Id2d38b770ee145999e4d4e8dc3cd4ab663d683a9
Commits on Jan 27, 2017
  1. msm: HTC: s4: Remove duplicate MultiMedia5 stream

    mdmower committed Jan 27, 2017
    Low latency audio playback was added in commit 'ASoc: msm: Add low
    latency playback and recording support.' but HTC had already
    implemented LPA playback at stream MultiMedia5. Remove HTC's LPA since
    it is already associated with MultiMedia3.
    
    Change-Id: I2317eee008ef0ba1cba40c12ffb7a7e65d94efc5
Commits on Jan 24, 2017
  1. msm: HTC: jet: Add qseecom device items

    intervigilium authored and mdmower committed Jan 22, 2017
    Change-Id: Ib509006d1758ad7c1790e77ffba73ed9959dbfc0
  2. jet/elite: disable HTC_HEADSET_ONE_WIRE

    duud authored and mdmower committed Apr 29, 2016
    This driver is unstable and isn't used anyway.
    
    Change-Id: I24794594514d393975182ba2632540594dc95fb2
Commits on Jan 23, 2017
  1. m7: Clean up defconfig

    intervigilium committed Jan 22, 2017
    * Bring in line with ville
    * Disable various unused items
    * Disable various debug items
    
    Change-Id: Ic532d25bed0f4c4c72032ce14b62b9dd4b8b6b2b
  2. fighter: Clean up defconfig

    intervigilium committed Jan 22, 2017
    * Enable QSEECOM
    * Enable various netfilter options
    * Disable various debug options
    * Enable USB HID device options
    * Bring more in line with m7
    
    Change-Id: I8caf5f6534f91ad5aaae4ac2a09eea1715f04ff7
  3. ville: Clean up defconfig

    intervigilium committed Jan 22, 2017
    * Enable QSEECOM
    * Enable various netfilter options
    * Disable various debug options
    * Enable USB HID device options
    * Bring more in line with m7
    
    Change-Id: Icfbcb14d4b68943b27bbfef162c95e4cb0ed2c7c
  4. netlink: Fix dump skb leak/double free

    herbertx authored and mdmower committed May 16, 2016
    When we free cb->skb after a dump, we do it after releasing the
    lock.  This means that a new dump could have started in the time
    being and we'll end up freeing their skb instead of ours.
    
    This patch saves the skb and module before we unlock so we free
    the right memory.
    
    Change-Id: I78a8064e9844db8a1d82c58c8a9f542df5bfc1bb
    Fixes: 16b304f ("netlink: Eliminate kmalloc in netlink dump operation.")
    Reported-by: Baozeng Ding <sploving1@gmail.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Acked-by: Cong Wang <xiyou.wangcong@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
  5. ALSA: pcm : Call kill_fasync() in stream lock

    tiwai authored and mdmower committed Apr 14, 2016
    Currently kill_fasync() is called outside the stream lock in
    snd_pcm_period_elapsed().  This is potentially racy, since the stream
    may get released even during the irq handler is running.  Although
    snd_pcm_release_substream() calls snd_pcm_drop(), this doesn't
    guarantee that the irq handler finishes, thus the kill_fasync() call
    outside the stream spin lock may be invoked after the substream is
    detached, as recently reported by KASAN.
    
    As a quick workaround, move kill_fasync() call inside the stream
    lock.  The fasync is rarely used interface, so this shouldn't have a
    big impact from the performance POV.
    
    Ideally, we should implement some sync mechanism for the proper finish
    of stream and irq handler.  But this oneliner should suffice for most
    cases, so far.
    
    Change-Id: Ic46180a52731f8670026d71f67bf063bffcfd44f
    Reported-by: Baozeng Ding <sploving1@gmail.com>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>