1. 13 3月, 2013 13 次提交
  2. 12 3月, 2013 11 次提交
    • A
      vfs: fix pipe counter breakage · a930d879
      Al Viro 提交于
      If you open a pipe for neither read nor write, the pipe code will not
      add any usage counters to the pipe, causing the 'struct pipe_inode_info"
      to be potentially released early.
      
      That doesn't normally matter, since you cannot actually use the pipe,
      but the pipe release code - particularly fasync handling - still expects
      the actual pipe infrastructure to all be there.  And rather than adding
      NULL pointer checks, let's just disallow this case, the same way we
      already do for the named pipe ("fifo") case.
      
      This is ancient going back to pre-2.4 days, and until trinity, nobody
      naver noticed.
      Reported-by: NDave Jones <davej@redhat.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      a930d879
    • A
      ARM: spear3xx: Use correct pl080 header file · 27f423fe
      Arnd Bergmann 提交于
      The definitions have move around recently, causing build errors
      in spear3xx for all configurations:
      
      spear3xx.c:47:5: error: 'PL080_BSIZE_16' undeclared here (not in a function)
      spear3xx.c:47:23: error: 'PL080_CONTROL_SB_SIZE_SHIFT' undeclared here (not in a function)
      spear3xx.c:48:22: error: 'PL080_CONTROL_DB_SIZE_SHIFT' undeclared here (not in a function)
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Cc: Alessandro Rubini <rubini@gnudd.com>
      Cc: Viresh Kumar <viresh.kumar@linaro.org>
      27f423fe
    • D
      keys: fix race with concurrent install_user_keyrings() · 0da9dfdd
      David Howells 提交于
      This fixes CVE-2013-1792.
      
      There is a race in install_user_keyrings() that can cause a NULL pointer
      dereference when called concurrently for the same user if the uid and
      uid-session keyrings are not yet created.  It might be possible for an
      unprivileged user to trigger this by calling keyctl() from userspace in
      parallel immediately after logging in.
      
      Assume that we have two threads both executing lookup_user_key(), both
      looking for KEY_SPEC_USER_SESSION_KEYRING.
      
      	THREAD A			THREAD B
      	===============================	===============================
      					==>call install_user_keyrings();
      	if (!cred->user->session_keyring)
      	==>call install_user_keyrings()
      					...
      					user->uid_keyring = uid_keyring;
      	if (user->uid_keyring)
      		return 0;
      	<==
      	key = cred->user->session_keyring [== NULL]
      					user->session_keyring = session_keyring;
      	atomic_inc(&key->usage); [oops]
      
      At the point thread A dereferences cred->user->session_keyring, thread B
      hasn't updated user->session_keyring yet, but thread A assumes it is
      populated because install_user_keyrings() returned ok.
      
      The race window is really small but can be exploited if, for example,
      thread B is interrupted or preempted after initializing uid_keyring, but
      before doing setting session_keyring.
      
      This couldn't be reproduced on a stock kernel.  However, after placing
      systemtap probe on 'user->session_keyring = session_keyring;' that
      introduced some delay, the kernel could be crashed reliably.
      
      Fix this by checking both pointers before deciding whether to return.
      Alternatively, the test could be done away with entirely as it is checked
      inside the mutex - but since the mutex is global, that may not be the best
      way.
      Signed-off-by: NDavid Howells <dhowells@redhat.com>
      Reported-by: NMateusz Guzik <mguzik@redhat.com>
      Cc: <stable@kernel.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NJames Morris <james.l.morris@oracle.com>
      0da9dfdd
    • S
      libceph: fix decoding of pgids · d6c0dd6b
      Sage Weil 提交于
      In 4f6a7e5e we effectively dropped support
      for the legacy encoding for the OSDMap and incremental.  However, we didn't
      fix the decoding for the pgid.
      Signed-off-by: NSage Weil <sage@inktank.com>
      Reviewed-by: NYehuda Sadeh <yehuda@inktank.com>
      d6c0dd6b
    • P
      Arm: socfpga: pl330: Add #dma-cells for generic dma binding support · 0d8abbfd
      Padmavathi Venna 提交于
      This patch adds #dma-cells property to PL330 DMA controller nodes for
      supporting generic dma dt bindings on SOCFPGA platform. #dma-channels
      and #dma-requests are not required now but added in advance.
      Signed-off-by: NPadmavathi Venna <padma.v@samsung.com>
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      0d8abbfd
    • A
      Merge tag 'mvebu_fixes_for_v3.9' of git://git.infradead.org/users/jcooper/linux into fixes · 75461523
      Arnd Bergmann 提交于
      mvebu fixes for v3.9 from Jason Cooper <jason@lakedaemon.net>:
      
      The first four patches:
      
        89c58c19 rtc: rtc-mv: Add support for clk to avoid lockups
        de88747f gpio: mvebu: Add clk support to prevent lockup
        7bf5b408 ARM: kirkwood: fix to retain gbe MAC addresses for DT kernels
        93fff4ce ARM: kirkwood: of_serial: fix clock gating by removing clock-frequency
      
      are Cc'd to stable since they were held over from the previous merge window.
      
      The rest are a small collection of fixes and a couple of devicetree conversion
      catchups.
      
      * tag 'mvebu_fixes_for_v3.9' of git://git.infradead.org/users/jcooper/linux:
        arm: mach-orion5x: fix typo in compatible string of a .dts file
        arm: mvebu: fix address-cells in mpic DT node
        arm: plat-orion: fix address decoding when > 4GB is used
        arm: mvebu: Reduce reg-io-width with UARTs
        ARM: Dove: add RTC device node
        arm: mvebu: enable the USB ports on Armada 370 Reference Design board
        ARM: dove: drop "select COMMON_CLK_DOVE"
        rtc: rtc-mv: Add support for clk to avoid lockups
        gpio: mvebu: Add clk support to prevent lockup
        ARM: kirkwood: fix to retain gbe MAC addresses for DT kernels
        ARM: kirkwood: of_serial: fix clock gating by removing clock-frequency
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      75461523
    • A
      Merge tag 'imx-fixes-3.9-2' of git://git.linaro.org/people/shawnguo/linux-2.6 into fixes · 769aca03
      Arnd Bergmann 提交于
      From Shawn Guo <shawn.guo@linaro.org>:
      
      The 2nd take of imx fixes for 3.9:
       - Fix pll1_sys clk initial status
       - Fix a typo in imx DEBUG_LL Kconfig
      
      * tag 'imx-fixes-3.9-2' of git://git.linaro.org/people/shawnguo/linux-2.6:
        ARM: imx: fix typo "DEBUG_IMX50_IMX53_UART"
        ARM: imx: pll1_sys should be an initial on clk
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      769aca03
    • A
      Merge tag 'mxs-fixes-3.9-2' of git://git.linaro.org/people/shawnguo/linux-2.6 into fixes · fc77b0e9
      Arnd Bergmann 提交于
      From Shawn Guo <shawn.guo@linaro.org>:
      
      The 2nd mxs fixes for 3.9:
       - Fix an error caused by incorrect conflict resolution when
         applying the patch
      
      * tag 'mxs-fixes-3.9-2' of git://git.linaro.org/people/shawnguo/linux-2.6:
        ARM: mxs: cfa10049: Fix fb initialisation function
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      fc77b0e9
    • M
      ARM: multiplatform: Sort the max gpio numbers. · 2a6ad871
      Maxime Ripard 提交于
      When building a multiplatform kernel, we could end up with a smaller
      number of GPIOs than the one required by the platform the kernel was
      running on.
      
      Sort the max GPIO number by descending order so that we always take the
      highest number required.
      Signed-off-by: NMaxime Ripard <maxime.ripard@free-electrons.com>
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      2a6ad871
    • L
      xen/acpi: remove redundant acpi/acpi_drivers.h include · d2e0bca3
      Liu Jinsong 提交于
      It's redundant since linux/acpi.h has include it when CONFIG_ACPI enabled,
      and when CONFIG_ACPI disabled it will trigger compiling warning
      
      In file included from drivers/xen/xen-stub.c:28:0:
      include/acpi/acpi_drivers.h:103:31:
      warning: 'struct acpi_device' declared inside parameter list [enabled by default]
      include/acpi/acpi_drivers.h:103:31:
      warning: its scope is only this definition or declaration, which is probably not what you want [enabled by default]
      include/acpi/acpi_drivers.h:107:43:
      warning: 'struct acpi_pci_root' declared inside parameter list [enabled by default]
      Reported-by: NWu Fengguang <fengguang.wu@intel.com>
      Signed-off-by: NLiu Jinsong <jinsong.liu@intel.com>
      Signed-off-by: NKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
      d2e0bca3
    • I
      xen: arm: mandate EABI and use generic atomic operations. · 85323a99
      Ian Campbell 提交于
      Rob Herring has observed that c81611c4 "xen: event channel arrays are
      xen_ulong_t and not unsigned long" introduced a compile failure when building
      without CONFIG_AEABI:
      
      /tmp/ccJaIZOW.s: Assembler messages:
      /tmp/ccJaIZOW.s:831: Error: even register required -- `ldrexd r5,r6,[r4]'
      
      Will Deacon pointed out that this is because OABI does not require even base
      registers for 64-bit values. We can avoid this by simply using the existing
      atomic64_xchg operation and the same containerof trick as used by the cmpxchg
      macros. However since this code is used on memory which is shared with the
      hypervisor we require proper atomic instructions and cannot use the generic
      atomic64 callbacks (which are based on spinlocks), therefore add a dependency
      on !GENERIC_ATOMIC64. Since we already depend on !CPU_V6 there isn't much
      downside to this.
      
      While thinking about this we also observed that OABI has different struct
      alignment requirements to EABI, which is a problem for hypercall argument
      structs which are shared with the hypervisor and which must be in EABI layout.
      Since I don't expect people to want to run OABI kernels on Xen depend on
      CONFIG_AEABI explicitly too (although it also happens to be enforced by the
      !GENERIC_ATOMIC64 requirement too).
      Signed-off-by: NIan Campbell <ian.campbell@citrix.com>
      Cc: Will Deacon <will.deacon@arm.com>
      Cc: Rob Herring <robherring2@gmail.com>
      Acked-by: NStefano Stabellini <Stefano.Stabellini@eu.citrix.com>
      Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
      Signed-off-by: NKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
      85323a99
  3. 11 3月, 2013 16 次提交
    • L
      Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 7c6baa30
      Linus Torvalds 提交于
      Pull perf fixes from Ingo Molnar:
       "Misc minor fixes mostly related to tracing"
      
      * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        s390: Fix a header dependencies related build error
        tracing: update documentation of snapshot utility
        tracing: Do not return EINVAL in snapshot when not allocated
        tracing: Add help of snapshot feature when snapshot is empty
        ftrace: Update the kconfig for DYNAMIC_FTRACE
      7c6baa30
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · 0cb77508
      Linus Torvalds 提交于
      Pull networking fixes from David Miller:
      
       1) Missing cancel of work items in mac80211 MLME, from Ben Greear.
      
       2) Fix DMA mapping handling in iwlwifi by using coherent DMA for
          command headers, from Johannes Berg.
      
       3) Decrease the amount of pressure on the page allocator by using order
          1 pages less in iwlwifi, from Emmanuel Grumbach.
      
       4) Fix mesh PS broadcast OOPS in mac80211, from Marco Porsch.
      
       5) Don't forget to recalculate idle state in mac80211 monitor
          interface, from Felix Fietkau.
      
       6) Fix varargs in netfilter conntrack handler, from Joe Perches.
      
       7) Need to reset entire chip when command queue fills up in iwlwifi,
          from Emmanuel Grumbach.
      
       8) The TX antenna value must be valid when calibrations are performed
          in iwlwifi, fix from Dor Shaish.
      
       9) Don't generate netfilter audit log entries when audit is disabled,
          from Gao Feng.
      
      10) Deal with DMA unit hang on e1000e during power state transitions,
          from Bruce Allan.
      
      11) Remove BUILD_BUG_ON check from igb driver, from Alexander Duyck.
      
      12) Fix lockdep warning on i2c handling of igb driver, from Carolyn
          Wyborny.
      
      13) Fix several TTY handling issues in IRDA ircomm tty driver, from
          Peter Hurley.
      
      14) Several QFQ packet scheduler fixes from Paolo Valente.
      
      15) When VXLAN encapsulates on transmit, we have to reset the netfilter
          state.  From Zang MingJie.
      
      16) Fix jiffie check in net_rx_action() so that we really cap the
          processing at 2HZ.  From Eric Dumazet.
      
      17) Fix erroneous trigger of IP option space exhaustion, when routers
          are pre-specified and we are looking to see if we can insert a
          timestamp, we will have the space.  From David Ward.
      
      18) Fix various issues in benet driver wrt waiting for firmware to
          finish POST after resets or errors.  From Gavin Shan and Sathya
          Perla.
      
      19) Fix TX locking in SFC driver, from Ben Hutchings.
      
      20) Like the VXLAN fix above, when we encap in a TUN device we have to
          reset the netfilter state.  This should fix several strange crashes
          reported by Dave Jones and others.  From Eric Dumazet.
      
      21) Don't forget to clean up MAC address resources when shutting down a
          port in mlx4 driver, from Yan Burman.
      
      22) Fix divide by zero in vmxnet3 driver, from Bhavesh Davda.
      
      23) Fix device statistic regression in tg3 when the driver is using
          phylib, from Nithin Sujir.
      
      24) Fix info leak in several netlink handlers, from Mathias Krause.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (79 commits)
        6lowpan: Fix endianness issue in is_addr_link_local().
        rrunner.c: fix possible memory leak in rr_init_one()
        dcbnl: fix various netlink info leaks
        rtnl: fix info leak on RTM_GETLINK request for VF devices
        bridge: fix mdb info leaks
        tg3: Update link_up flag for phylib devices
        ipv6: stop multicast forwarding to process interface scoped addresses
        bridging: fix rx_handlers return code
        netlabel: fix build problems when CONFIG_IPV6=n
        drivers/isdn: checkng length to be sure not memory overflow
        net/rds: zero last byte for strncpy
        bnx2x: Fix SFP+ misconfiguration in iSCSI boot scenario
        bnx2x: Fix intermittent long KR2 link up time
        macvlan: Set IFF_UNICAST_FLT flag to prevent unnecessary promisc mode.
        team: unsyc the devices addresses when port is removed
        bridge: add missing vid to br_mdb_get()
        Fix: sparse warning in inet_csk_prepare_forced_close
        afkey: fix a typo
        MAINTAINERS: Update qlcnic maintainers list
        netlabel: correctly list all the static label mappings
        ...
      0cb77508
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml · ffb6a445
      Linus Torvalds 提交于
      Pull UML fixes from Richard Weinberger:
       "This update brings various fixes.
        Nothing special...
      
        In my local queue I have some more fixes which will be sent later to
        you.  3.9 uncovered strange UML issues.  :("
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml:
        um: Use tty_port in SIGWINCH handler
        um: Use tty_port_operations->destruct
        um: fix build failure due to mess-up of sig_info protorype
        um: add missing declaration of 'getrlimit()' and friends
        net : enable tx time stamping in the vde driver.
        hostfs: fix a not needed double check
      ffb6a445
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input · 152fcb27
      Linus Torvalds 提交于
      Pull input updates from Dmitry Torokhov:
       "Except for the largish change to the ALPS driver adding "Dolphin V1"
        support and Wacom getting a new signature of yet another device, the
        rest are straightforward driver fixes."
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
        Input: mms114 - Fix regulator enable and disable paths
        Input: ads7864 - check return value of regulator enable
        Input: tc3589x-keypad - fix keymap size
        Input: wacom - add support for 0x10d
        Input: ALPS - update documentation for recent touchpad driver mods
        Input: ALPS - add "Dolphin V1" touchpad support
        Input: ALPS - remove unused argument to alps_enter_command_mode()
        Input: cypress_ps2 - fix trackpadi found in Dell XPS12
      152fcb27
    • P
      ARM: imx: fix typo "DEBUG_IMX50_IMX53_UART" · 0c52db7e
      Paul Bolle 提交于
      Commit f8c95fe6 (ARM: imx: support DEBUG_LL uart port selection for all
      i.MX SoCs) had a typo that DEBUG_IMX50_IMX53_UART should be
      DEBUG_IMX53_UART.
      Signed-off-by: NPaul Bolle <pebolle@tiscali.nl>
      Signed-off-by: NShawn Guo <shawn.guo@linaro.org>
      0c52db7e
    • L
      s390: Fix a header dependencies related build error · cb16b91a
      Li Zefan 提交于
      Commit 877c6856
      ("perf: Remove include of cgroup.h from perf_event.h") caused
      this build failure if PERF_EVENTS is enabled:
      
         In file included from arch/s390/include/asm/perf_event.h:9:0,
                          from include/linux/perf_event.h:24,
                          from kernel/events/ring_buffer.c:12:
         arch/s390/include/asm/cpu_mf.h: In function 'qctri':
         arch/s390/include/asm/cpu_mf.h:61:12: error: 'EINVAL' undeclared (first use in this function)
      
      cpu_mf.h had an implicit errno.h dependency, which was added
      indirectly via cgroups.h but not anymore. Add it explicitly.
      Reported-by: NFengguang Wu <fengguang.wu@intel.com>
      Tested-by: NFengguang Wu <fengguang.wu@intel.com>
      Signed-off-by: NLi Zefan <lizefan@huawei.com>
      Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
      Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
      Link: http://lkml.kernel.org/r/51385F79.7000106@huawei.comSigned-off-by: NIngo Molnar <mingo@kernel.org>
      cb16b91a
    • R
      um: Use tty_port in SIGWINCH handler · 2116bda6
      Richard Weinberger 提交于
      The tty below tty_port might get destroyed by the tty layer
      while we hold a reference to it.
      So we have to carry tty_port around...
      Signed-off-by: NRichard Weinberger <richard@nod.at>
      2116bda6
    • R
      um: Use tty_port_operations->destruct · cc4f0248
      Richard Weinberger 提交于
      As we setup the SIGWINCH handler in tty_port_operations->activate
      it makes sense to tear down it in ->destruct.
      Signed-off-by: NRichard Weinberger <richard@nod.at>
      cc4f0248
    • S
      um: fix build failure due to mess-up of sig_info protorype · 72383d43
      Sergei Trofimovich 提交于
      arch/um/os-Linux/signal.c:18:8: error: conflicting types for 'sig_info'
      In file included from /home/slyfox/linux-2.6/arch/um/os-Linux/signal.c:12:0:
      arch/um/include/shared/as-layout.h:64:15: note: previous declaration of 'sig_info' was here
      Signed-off-by: NSergei Trofimovich <slyfox@gentoo.org>
      CC: Jeff Dike <jdike@addtoit.com>
      CC: Richard Weinberger <richard@nod.at>
      CC: "Martin Pärtel" <martin.partel@gmail.com>
      CC: Al Viro <viro@zeniv.linux.org.uk>
      CC: user-mode-linux-devel@lists.sourceforge.net
      CC: user-mode-linux-user@lists.sourceforge.net
      CC: linux-kernel@vger.kernel.org
      Signed-off-by: NRichard Weinberger <richard@nod.at>
      72383d43
    • S
      um: add missing declaration of 'getrlimit()' and friends · fdfa4c95
      Sergei Trofimovich 提交于
      arch/um/os-Linux/start_up.c: In function 'check_coredump_limit':
      arch/um/os-Linux/start_up.c:338:16: error: storage size of 'lim' isn't known
      arch/um/os-Linux/start_up.c:339:2: error: implicit declaration of function 'getrlimit' [-Werror=implicit-function-declaration]
      Signed-off-by: NSergei Trofimovich <slyfox@gentoo.org>
      CC: Jeff Dike <jdike@addtoit.com>
      CC: Richard Weinberger <richard@nod.at>
      CC: Al Viro <viro@zeniv.linux.org.uk>
      CC: user-mode-linux-devel@lists.sourceforge.net
      CC: user-mode-linux-user@lists.sourceforge.net
      CC: linux-kernel@vger.kernel.org
      Signed-off-by: NRichard Weinberger <richard@nod.at>
      fdfa4c95
    • P
      net : enable tx time stamping in the vde driver. · 55ea1cfa
      Paul Chavent 提交于
      This new version moves the skb_tx_timestamp in the main uml
      driver. This should avoid the need to call this function in each
      transport (vde, slirp, tuntap, ...). It also add support for ethtool
      get_ts_info.
      Signed-off-by: NPaul Chavent <paul.chavent@onera.fr>
      Acked-by: NRichard Cochran <richardcochran@gmail.com>
      Signed-off-by: NRichard Weinberger <richard@nod.at>
      55ea1cfa
    • M
      hostfs: fix a not needed double check · bc077320
      Marco Stornelli 提交于
      With the commit 3be2be0a we removed vmtruncate,
      but actaully there is no need to call inode_newsize_ok() because the checks are
      already done in inode_change_ok() at the begin of the function.
      Signed-off-by: NMarco Stornelli <marco.stornelli@gmail.com>
      Signed-off-by: NRichard Weinberger <richard@nod.at>
      bc077320
    • D
      Merge branch 'drm-nouveau-fixes-3.9' of... · 8698080e
      Dave Airlie 提交于
      Merge branch 'drm-nouveau-fixes-3.9' of git://anongit.freedesktop.org/git/nouveau/linux-2.6 into drm-next
      
      Regression fixes and oops fixes for nouveau.
      
      * 'drm-nouveau-fixes-3.9' of git://anongit.freedesktop.org/git/nouveau/linux-2.6:
        drm/nv50: use correct tiling methods for m2mf buffer moves
        drm/nouveau: idle channel before releasing notify object
        drm/nouveau: fix regression in vblanking
        drm/nv50: encoder creation failure doesn't mean full init failure
      8698080e
    • S
      ARM: imx: pll1_sys should be an initial on clk · 39581662
      Shawn Guo 提交于
      We always boot from PLL1, so let's have pll1_sys in the clks_init_on
      list to have clk prepare/enable use count match the hardware status,
      so that drivers managing pll1_sys like cpufreq can get the use count
      right from the start.
      Reported-by: NDirk Behme <dirk.behme@de.bosch.com>
      Signed-off-by: NShawn Guo <shawn.guo@linaro.org>
      39581662
    • M
      Input: mms114 - Fix regulator enable and disable paths · 4b7d293c
      Mark Brown 提交于
      When it uses regulators the mms114 driver checks to see if it managed to
      acquire regulators and ignores errors. This is not the intended usage and
      not great style in general.
      
      Since the driver already refuses to probe if it fails to allocate the
      regulators simply make the enable and disable calls unconditional and
      add appropriate error handling, including adding cleanup of the
      regulators if setup_reg() fails.
      Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      Acked-by: NJoonyoung Shim <jy0922.shim@samsung.com>
      Signed-off-by: NDmitry Torokhov <dmitry.torokhov@gmail.com>
      4b7d293c
    • M
      Input: ads7864 - check return value of regulator enable · f94352f8
      Mark Brown 提交于
      At least print a warning if we can't power the device up.
      Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      Signed-off-by: NDmitry Torokhov <dmitry.torokhov@gmail.com>
      f94352f8