1. 18 11月, 2014 1 次提交
    • D
      x86: Remove arbitrary instruction size limit in instruction decoder · 6ba48ff4
      Dave Hansen 提交于
      The current x86 instruction decoder steps along through the
      instruction stream but always ensures that it never steps farther
      than the largest possible instruction size (MAX_INSN_SIZE).
      
      The MPX code is now going to be doing some decoding of userspace
      instructions.  We copy those from userspace in to the kernel and
      they're obviously completely untrusted coming from userspace.  In
      addition to the constraint that instructions can only be so long,
      we also have to be aware of how long the buffer is that came in
      from userspace.  This _looks_ to be similar to what the perf and
      kprobes is doing, but it's unclear to me whether they are
      affected.
      
      The whole reason we need this is that it is perfectly valid to be
      executing an instruction within MAX_INSN_SIZE bytes of an
      unreadable page. We should be able to gracefully handle short
      reads in those cases.
      
      This adds support to the decoder to record how long the buffer
      being decoded is and to refuse to "validate" the instruction if
      we would have gone over the end of the buffer to decode it.
      
      The kprobes code probably needs to be looked at here a bit more
      carefully.  This patch still respects the MAX_INSN_SIZE limit
      there but the kprobes code does look like it might be able to
      be a bit more strict than it currently is.
      Signed-off-by: NDave Hansen <dave.hansen@linux.intel.com>
      Acked-by: NJim Keniston <jkenisto@us.ibm.com>
      Acked-by: NMasami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
      Cc: x86@kernel.org
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
      Cc: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
      Cc: Ananth N Mavinakayanahalli <ananth@in.ibm.com>
      Cc: Anil S Keshavamurthy <anil.s.keshavamurthy@intel.com>
      Cc: "David S. Miller" <davem@davemloft.net>
      Link: http://lkml.kernel.org/r/20141114153957.E6B01535@viggo.jf.intel.comSigned-off-by: NThomas Gleixner <tglx@linutronix.de>
      6ba48ff4
  2. 10 11月, 2014 9 次提交
  3. 09 11月, 2014 4 次提交
  4. 08 11月, 2014 11 次提交
    • L
      Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus · 6ac94d3a
      Linus Torvalds 提交于
      Pull MIPS updates from Ralf Baechle:
       "This weeks' round of MIPS bug fixes for 3.18:
      
         - wire up the bpf syscall
         - fix TLB dump output for R3000 class TLBs
         - fix strnlen_user return value if no NUL character was found.
         - fix build with binutils 2.24.51+.  While there is no binutils 2.25
           release yet, toolchains derived from binutils 2.24.51+ are already
           in common use.
         - the Octeon GPIO code forgot to offline GPIO IRQs.
         - fix build error for XLP.
         - fix possible BUG assertion with EVA for CMA"
      
      * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus:
        MIPS: Fix build with binutils 2.24.51+
        MIPS: R3000: Fix debug output for Virtual page number
        MIPS: Fix strnlen_user() return value in case of overlong strings.
        MIPS: CMA: Do not reserve memory if not required
        MIPS: Wire up bpf syscall.
        MIPS/Xlp: Remove the dead function destroy_irq() to fix build error
        MIPS: Octeon: Make Octeon GPIO IRQ chip CPU hotplug-aware
      6ac94d3a
    • L
      Merge tag 'xfs-for-linus-3.18-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/dgc/linux-xfs · 661b99e9
      Linus Torvalds 提交于
      Pull xfs fixes from Dave Chinner:
       "This update fixes a warning in the new pagecache_isize_extended() and
        updates some related comments, another fix for zero-range
        misbehaviour, and an unforntuately large set of fixes for regressions
        in the bulkstat code.
      
        The bulkstat fixes are large but necessary.  I wouldn't normally push
        such a rework for a -rcX update, but right now xfsdump can silently
        create incomplete dumps on 3.17 and it's possible that even xfsrestore
        won't notice that the dumps were incomplete.  Hence we need to get
        this update into 3.17-stable kernels ASAP.
      
        In more detail, the refactoring work I committed in 3.17 has exposed a
        major hole in our QA coverage.  With both xfsdump (the major user of
        bulkstat) and xfsrestore silently ignoring missing files in the
        dump/restore process, incomplete dumps were going unnoticed if they
        were being triggered.  Many of the dump/restore filesets were so small
        that they didn't evenhave a chance of triggering the loop iteration
        bugs we introduced in 3.17, so we didn't exercise the code
        sufficiently, either.
      
        We have already taken steps to improve QA coverage in xfstests to
        avoid this happening again, and I've done a lot of manual verification
        of dump/restore on very large data sets (tens of millions of inodes)
        of the past week to verify this patch set results in bulkstat behaving
        the same way as it does on 3.16.
      
        Unfortunately, the fixes are not exactly simple - in tracking down the
        problem historic API warts were discovered (e.g xfsdump has been
        working around a 20 year old bug in the bulkstat API for the past 10
        years) and so that complicated the process of diagnosing and fixing
        the problems.  i.e. we had to fix bugs in the code as well as
        discover and re-introduce the userspace visible API bugs that we
        unwittingly "fixed" in 3.17 that xfsdump relied on to work correctly.
      
        Summary:
      
         - incorrect warnings about i_mutex locking in pagecache_isize_extended()
           and updates comments to match expected locking
         - another zero-range bug fix for stray file size updates
         - a bunch of fixes for regression in the bulkstat code introduced in
           3.17"
      
      * tag 'xfs-for-linus-3.18-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/dgc/linux-xfs:
        xfs: track bulkstat progress by agino
        xfs: bulkstat error handling is broken
        xfs: bulkstat main loop logic is a mess
        xfs: bulkstat chunk-formatter has issues
        xfs: bulkstat chunk formatting cursor is broken
        xfs: bulkstat btree walk doesn't terminate
        mm: Fix comment before truncate_setsize()
        xfs: rework zero range to prevent invalid i_size updates
        mm: Remove false WARN_ON from pagecache_isize_extended()
        xfs: Check error during inode btree iteration in xfs_bulkstat()
        xfs: bulkstat doesn't release AGI buffer on error
      661b99e9
    • L
      Merge tag 'regulator-v3.18-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator · 51f83ef0
      Linus Torvalds 提交于
      Pull regulator fixes from Mark Brown:
       "More changes than I'd like here, most of them for a single bug
        repeated in a bunch of drivers with data not being initialized
        correctly, plus a fix to lower the severity of a warning introduced in
        the last merge window which can legitimately go off so we don't want
        to alarm users excessively"
      
      * tag 'regulator-v3.18-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator:
        regulator: s2mpa01: zero-initialize regulator match table array
        regulator: max8660: zero-initialize regulator match table array
        regulator: max77802: zero-initialize regulator match table
        regulator: max77686: zero-initialize regulator match table
        regulator: max1586: zero-initialize regulator match table array
        regulator: max77693: Fix use of uninitialized regulator config
        regulator: of: Lower the severity of the error with no container
      51f83ef0
    • L
      Merge tag 'spi-v3.18-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi · 1395b9cf
      Linus Torvalds 提交于
      Pull spi bugfixes from Mark Brown:
       "A couple of small driver fixes for v3.18, both quite problematic if
        you hit a use case that's affected"
      
      * tag 'spi-v3.18-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi:
        spi: pxa2xx: toggle clocks on suspend if not disabled by runtime PM
        spi: fsl-dspi: Fix CTAR selection
      1395b9cf
    • J
      tiny: rename ENABLE_DEV_COREDUMP to ALLOW_DEV_COREDUMP · cd3d9ea1
      Johannes Berg 提交于
      The ENABLE_DEV_COREDUMP option is misleading as it implies that
      it gets the framework enabled, this isn't true it just allows it
      to get enabled if a driver needs it.
      
      Rename it to ALLOW_DEV_COREDUMP to better capture its semantics.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      Reviewed-by: NJosh Triplett <josh@joshtriplett.org>
      Acked-by: NAristeu Rozanski <aris@redhat.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      cd3d9ea1
    • A
      tiny: reverse logic for DISABLE_DEV_COREDUMP · 9c602699
      Aristeu Rozanski 提交于
      It's desirable for allnconfig and tinyconfig targets to result in the
      least amount of code possible. DISABLE_DEV_COREDUMP exists as a way to
      switch off DEV_COREDUMP regardless if any drivers select
      WANT_DEV_COREDUMP.
      
      This patch renames the option to ENABLE_DEV_COREDUMP and setting it to
      'n' (as in allnconfig or tinyconfig) will effectively disable device
      coredump.
      
      Cc: Josh Triplett <josh@joshtriplett.org>
      Reviewed-by: NJosh Triplett <josh@joshtriplett.org>
      Signed-off-by: NAristeu Rozanski <arozansk@redhat.com>
      Reviewed-by: NJohannes Berg <johannes@sipsolutions.net>
      Acked-by: NJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      9c602699
    • L
      i2c: core: Dispose OF IRQ mapping at client removal time · e4df3a0b
      Laurent Pinchart 提交于
      Clients instantiated from OF get an IRQ mapping created at device
      registration time. Dispose the mapping when the client is removed.
      Signed-off-by: NLaurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
      Signed-off-by: NWolfram Sang <wsa@the-dreams.de>
      Cc: stable@kernel.org
      e4df3a0b
    • W
      i2c: at91: don't account as iowait · 11cfbfb0
      Wolfram Sang 提交于
      iowait is for blkio [1]. I2C shouldn't use it.
      
      [1] https://lkml.org/lkml/2014/11/3/317Signed-off-by: NWolfram Sang <wsa@the-dreams.de>
      Acked-by: NLudovic Desroches <ludovic.desroches@atmel.com>
      Cc: stable@kernel.org
      11cfbfb0
    • W
      i2c: remove FSF address · ca1f8da9
      Wolfram Sang 提交于
      We have a central copy of the GPL for that. Some addresses were already
      outdated.
      Signed-off-by: NWolfram Sang <wsa+renesas@sang-engineering.com>
      ca1f8da9
    • M
      USB: Update default usb-storage delay_use value in kernel-parameters.txt · 19101954
      Mark Knibbs 提交于
      Back in 2010 the default usb-storage delay_use time was reduced from 5 to 1
      second (commit a4a47bc0), but
      kernel-parameters.txt wasn't updated to reflect that.
      Signed-off-by: NMark Knibbs <markk@clara.co.uk>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      19101954
    • Y
      sysfs: driver core: Fix glue dir race condition by gdp_mutex · e4a60d13
      Yijing Wang 提交于
      There is a race condition when removing glue directory.
      It can be reproduced in following test:
      
      path 1: Add first child device
      device_add()
          get_device_parent()
                  /*find parent from glue_dirs.list*/
                  list_for_each_entry(k, &dev->class->p->glue_dirs.list, entry)
                          if (k->parent == parent_kobj) {
                                  kobj = kobject_get(k);
                                  break;
                          }
                  ....
                  class_dir_create_and_add()
      
      path2: Remove last child device under glue dir
      device_del()
          cleanup_device_parent()
                  cleanup_glue_dir()
                          kobject_put(glue_dir);
      
      If path2 has been called cleanup_glue_dir(), but not
      call kobject_put(glue_dir), the glue dir is still
      in parent's kset list. Meanwhile, path1 find the glue
      dir from the glue_dirs.list. Path2 may release glue dir
      before path1 call kobject_get(). So kernel will report
      the warning and bug_on.
      
      This is a "classic" problem we have of a kref in a list
      that can be found while the last instance could be removed
      at the same time.
      
      This patch reuse gdp_mutex to fix this race condition.
      
      The following calltrace is captured in kernel 3.4, but
      the latest kernel still has this bug.
      
      -----------------------------------------------------
      <4>[ 3965.441471] WARNING: at ...include/linux/kref.h:41 kobject_get+0x33/0x40()
      <4>[ 3965.441474] Hardware name: Romley
      <4>[ 3965.441475] Modules linked in: isd_iop(O) isd_xda(O)...
      ...
      <4>[ 3965.441605] Call Trace:
      <4>[ 3965.441611]  [<ffffffff8103717a>] warn_slowpath_common+0x7a/0xb0
      <4>[ 3965.441615]  [<ffffffff810371c5>] warn_slowpath_null+0x15/0x20
      <4>[ 3965.441618]  [<ffffffff81215963>] kobject_get+0x33/0x40
      <4>[ 3965.441624]  [<ffffffff812d1e45>] get_device_parent.isra.11+0x135/0x1f0
      <4>[ 3965.441627]  [<ffffffff812d22d4>] device_add+0xd4/0x6d0
      <4>[ 3965.441631]  [<ffffffff812d0dbc>] ? dev_set_name+0x3c/0x40
      ....
      <2>[ 3965.441912] kernel BUG at ..../fs/sysfs/group.c:65!
      <4>[ 3965.441915] invalid opcode: 0000 [#1] SMP
      ...
      <4>[ 3965.686743]  [<ffffffff811a677e>] sysfs_create_group+0xe/0x10
      <4>[ 3965.686748]  [<ffffffff810cfb04>] blk_trace_init_sysfs+0x14/0x20
      <4>[ 3965.686753]  [<ffffffff811fcabb>] blk_register_queue+0x3b/0x120
      <4>[ 3965.686756]  [<ffffffff812030bc>] add_disk+0x1cc/0x490
      ....
      -------------------------------------------------------
      Signed-off-by: NYijing Wang <wangyijing@huawei.com>
      Signed-off-by: NWeng Meiling <wengmeiling.weng@huawei.com>
      Cc: <stable@vger.kernel.org> #3.4+
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      e4a60d13
  5. 07 11月, 2014 15 次提交
    • M
      MIPS: Fix build with binutils 2.24.51+ · 842dfc11
      Manuel Lauss 提交于
      Starting with version 2.24.51.20140728 MIPS binutils complain loudly
      about mixing soft-float and hard-float object files, leading to this
      build failure since GCC is invoked with "-msoft-float" on MIPS:
      
      {standard input}: Warning: .gnu_attribute 4,3 requires `softfloat'
        LD      arch/mips/alchemy/common/built-in.o
      mipsel-softfloat-linux-gnu-ld: Warning: arch/mips/alchemy/common/built-in.o
       uses -msoft-float (set by arch/mips/alchemy/common/prom.o),
       arch/mips/alchemy/common/sleeper.o uses -mhard-float
      
      To fix this, we detect if GAS is new enough to support "-msoft-float" command
      option, and if it does, we can let GCC pass it to GAS;  but then we also need
      to sprinkle the files which make use of floating point registers with the
      necessary ".set hardfloat" directives.
      Signed-off-by: NManuel Lauss <manuel.lauss@gmail.com>
      Cc: Linux-MIPS <linux-mips@linux-mips.org>
      Cc: Matthew Fortune <Matthew.Fortune@imgtec.com>
      Cc: Markos Chandras <Markos.Chandras@imgtec.com>
      Cc: Maciej W. Rozycki <macro@linux-mips.org>
      Patchwork: https://patchwork.linux-mips.org/patch/8355/Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      842dfc11
    • D
      xfs: track bulkstat progress by agino · 00275899
      Dave Chinner 提交于
      The bulkstat main loop progress is tracked by the "lastino"
      variable, which is a full 64 bit inode. However, the loop actually
      works on agno/agino pairs, and so there's a significant disconnect
      between the rest of the loop and the main cursor. Convert this to
      use the agino, and pass the agino into the chunk formatting function
      and convert it too.
      
      This gets rid of the inconsistency in the loop processing, and
      finally makes it simple for us to skip inodes at any point in the
      loop simply by incrementing the agino cursor.
      
      cc: <stable@vger.kernel.org> # 3.17
      Signed-off-by: NDave Chinner <dchinner@redhat.com>
      Reviewed-by: NBrian Foster <bfoster@redhat.com>
      Signed-off-by: NDave Chinner <david@fromorbit.com>
      00275899
    • D
      xfs: bulkstat error handling is broken · febe3cbe
      Dave Chinner 提交于
      The error propagation is a horror - xfs_bulkstat() returns
      a rval variable which is only set if there are formatter errors. Any
      sort of btree walk error or corruption will cause the bulkstat walk
      to terminate but will not pass an error back to userspace. Worse
      is the fact that formatter errors will also be ignored if any inodes
      were correctly formatted into the user buffer.
      
      Hence bulkstat can fail badly yet still report success to userspace.
      This causes significant issues with xfsdump not dumping everything
      in the filesystem yet reporting success. It's not until a restore
      fails that there is any indication that the dump was bad and tha
      bulkstat failed. This patch now triggers xfsdump to fail with
      bulkstat errors rather than silently missing files in the dump.
      
      This now causes bulkstat to fail when the lastino cookie does not
      fall inside an existing inode chunk. The pre-3.17 code tolerated
      that error by allowing the code to move to the next inode chunk
      as the agino target is guaranteed to fall into the next btree
      record.
      
      With the fixes up to this point in the series, xfsdump now passes on
      the troublesome filesystem image that exposes all these bugs.
      
      cc: <stable@vger.kernel.org>
      Signed-off-by: NDave Chinner <dchinner@redhat.com>
      Reviewed-by: NBrian Foster <bfoster@redhat.com>
      febe3cbe
    • D
      xfs: bulkstat main loop logic is a mess · 6e57c542
      Dave Chinner 提交于
      There are a bunch of variables tha tare more wildy scoped than they
      need to be, obfuscated user buffer checks and tortured "next inode"
      tracking. This all needs cleaning up to expose the real issues that
      need fixing.
      
      cc: <stable@vger.kernel.org> # 3.17
      Signed-off-by: NDave Chinner <dchinner@redhat.com>
      Reviewed-by: NBrian Foster <bfoster@redhat.com>
      Signed-off-by: NDave Chinner <david@fromorbit.com>
      6e57c542
    • D
      xfs: bulkstat chunk-formatter has issues · 2b831ac6
      Dave Chinner 提交于
      The loop construct has issues:
      	- clustidx is completely unused, so remove it.
      	- the loop tries to be smart by terminating when the
      	  "freecount" tells it that all inodes are free. Just drop
      	  it as in most cases we have to scan all inodes in the
      	  chunk anyway.
      	- move the "user buffer left" condition check to the only
      	  point where we consume space int eh user buffer.
      	- move the initialisation of agino out of the loop, leaving
      	  just a simple loop control logic using the clusteridx.
      
      Also, double handling of the user buffer variables leads to problems
      tracking the current state - use the cursor variables directly
      rather than keeping local copies and then having to update the
      cursor before returning.
      
      cc: <stable@vger.kernel.org> # 3.17
      Signed-off-by: NDave Chinner <dchinner@redhat.com>
      Reviewed-by: NBrian Foster <bfoster@redhat.com>
      Signed-off-by: NDave Chinner <david@fromorbit.com>
      2b831ac6
    • D
      xfs: bulkstat chunk formatting cursor is broken · bf4a5af2
      Dave Chinner 提交于
      The xfs_bulkstat_agichunk formatting cursor takes buffer values from
      the main loop and passes them via the structure to the chunk
      formatter, and the writes the changed values back into the main loop
      local variables. Unfortunately, this complex dance is full of corner
      cases that aren't handled correctly.
      
      The biggest problem is that it is double handling the information in
      both the main loop and the chunk formatting function, leading to
      inconsistent updates and endless loops where progress is not made.
      
      To fix this, push the struct xfs_bulkstat_agichunk outwards to be
      the primary holder of user buffer information. this removes the
      double handling in the main loop.
      
      Also, pass the last inode processed by the chunk formatter as a
      separate parameter as it purely an output variable and is not
      related to the user buffer consumption cursor.
      
      Finally, the chunk formatting code is not shared by anyone, so make
      it local to xfs_itable.c.
      
      cc: <stable@vger.kernel.org> # 3.17
      Signed-off-by: NDave Chinner <dchinner@redhat.com>
      Reviewed-by: NBrian Foster <bfoster@redhat.com>
      Signed-off-by: NDave Chinner <david@fromorbit.com>
      bf4a5af2
    • D
      xfs: bulkstat btree walk doesn't terminate · afa947cb
      Dave Chinner 提交于
      The bulkstat code has several different ways of detecting the end of
      an AG when doing a walk. They are not consistently detected, and the
      code that checks for the end of AG conditions is not consistently
      coded. Hence the are conditions where the walk code can get stuck in
      an endless loop making no progress and not triggering any
      termination conditions.
      
      Convert all the "tmp/i" status return codes from btree operations
      to a common name (stat) and apply end-of-ag detection to these
      operations consistently.
      
      cc: <stable@vger.kernel.org> # 3.17
      Signed-off-by: NDave Chinner <dchinner@redhat.com>
      Reviewed-by: NBrian Foster <bfoster@redhat.com>
      Signed-off-by: NDave Chinner <david@fromorbit.com>
      afa947cb
    • J
      mm: Fix comment before truncate_setsize() · 77783d06
      Jan Kara 提交于
      XFS doesn't always hold i_mutex when calling truncate_setsize() and it
      uses a different lock to serialize truncates and writes. So fix the
      comment before truncate_setsize().
      Reported-by: NJan Beulich <JBeulich@suse.com>
      Signed-off-by: NJan Kara <jack@suse.cz>
      Signed-off-by: NDave Chinner <david@fromorbit.com>
      77783d06
    • J
      USB: cdc-acm: add quirk for control-line state requests · 2a8cdfde
      Johan Hovold 提交于
      Add new quirk for devices that cannot handle control-line state
      requests.
      
      Note that we currently send these requests to all devices, regardless of
      whether they claim to support it, but that errors are only logged if
      support is claimed.
      
      Since commit 0943d8ea ("USB: cdc-acm: use tty-port dtr_rts"), which
      only changed the timings for these requests slightly, this has been
      reported to cause occasional firmware crashes on Simtec Electronics
      Entropy Key devices after re-enumeration. Enable the quirk for this
      device.
      Reported-by: NNix <nix@esperi.org.uk>
      Tested-by: NNix <nix@esperi.org.uk>
      Cc: stable <stable@vger.kernel.org>	# v3.16
      Signed-off-by: NJohan Hovold <johan@kernel.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      2a8cdfde
    • G
      Merge tag 'fixes-for-v3.18-rc4' of... · e5452dd4
      Greg Kroah-Hartman 提交于
      Merge tag 'fixes-for-v3.18-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb into usb-linus
      
      Felipe writes:
      
      usb: fixes for v3.18-rc4
      
      A single fix this for dwc2 this time. Because of
      excessive debugging messages, dwc2 would sometimes
      fail enumeration. The fix is simple, just converting
      a dev_info() into dev_dbg().
      Signed-off-by: NFelipe Balbi <balbi@ti.com>
      e5452dd4
    • F
      tty: Fix pty master poll() after slave closes v2 · c4dc3046
      Francesco Ruggeri 提交于
      Commit f95499c3 ("n_tty: Don't wait for buffer work in read() loop")
      introduces a race window where a pty master can be signalled that the pty
      slave was closed before all the data that the slave wrote is delivered.
      Commit f8747d4a ("tty: Fix pty master read() after slave closes") fixed the
      problem in case of n_tty_read, but the problem still exists for n_tty_poll.
      This can be seen by running 'for ((i=0; i<100;i++));do ./test.py ;done'
      where test.py is:
      
      import os, select, pty
      
      (pid, pty_fd) = pty.fork()
      
      if pid == 0:
         os.write(1, 'This string should be received by parent')
      else:
         poller = select.epoll()
         poller.register( pty_fd, select.EPOLLIN )
         ready = poller.poll( 1 * 1000 )
         for fd, events in ready:
            if not events & select.EPOLLIN:
               print 'missed POLLIN event'
            else:
               print os.read(fd, 100)
         poller.close()
      
      The string from the slave is missed several times.
      This patch takes the same approach as the fix for read and special cases
      this condition for poll.
      Tested on 3.16.
      Signed-off-by: NFrancesco Ruggeri <fruggeri@arista.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      c4dc3046
    • G
      Merge tag 'usb-serial-3.18-rc4' of... · 50029214
      Greg Kroah-Hartman 提交于
      Merge tag 'usb-serial-3.18-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/johan/usb-serial into usb-linus
      
      Johan writes:
      
      USB-serial fixes for v3.18-rc4
      
      Two fixes of non-atomic allocations in write paths.
      Signed-off-by: NJohan Hovold <johan@kernel.org>
      50029214
    • L
      Merge tag 'pci-v3.18-fixes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci · ed78bb84
      Linus Torvalds 提交于
      Pull PCI fix from Bjorn Helgaas:
       "This fixes an oops when enabling SR-IOV VF devices.  The oops is a
        regression I added by configuring all devices during enumeration.
      
          - Don't oops on virtual buses in acpi_pci_get_bridge_handle() (Yinghai Lu)"
      
      * tag 'pci-v3.18-fixes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci:
        PCI: Don't oops on virtual buses in acpi_pci_get_bridge_handle()
      ed78bb84
    • L
      Merge tag 'sound-3.18-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 3d5a0863
      Linus Torvalds 提交于
      Pull sound fixes from Takashi Iwai:
       "This update contains mostly only fixes for Realtek HD-audio codec
        driver in addition to a long-standing sysfs warning bug fix for
        USB-audio.
      
        One significant fix for Realtek codecs is the update of EAPD init
        codes.  This avoids invalid COEF setups for some codec models and may
        fix "lost sound" in some cases.
      
        The rest are a bit high volume but only new quirks and ALC668-specific
        COEF tables"
      
      * tag 'sound-3.18-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
        ALSA: hda/realtek - Restore default value for ALC668
        ALSA: usb-audio: Fix device_del() sysfs warnings at disconnect
        ALSA: hda - fix mute led problem for three HP laptops
        ALSA: hda/realtek - Update Initial AMP for EAPD control
        ALSA: hda - change three SSID quirks to one pin quirk
        ALSA: hda - Set GPIO 4 low for a few HP machines
        ALSA: hda - Add ultra dock support for Thinkpad X240.
      3d5a0863
    • L
      Merge tag 'mmc-v3.18-2' of git://git.linaro.org/people/ulf.hansson/mmc · 381e3554
      Linus Torvalds 提交于
      Pull MMC fix from Ulf Hansson:
       "Fix card detection regression in the MMC core.
      
        The MMC_CAP2_CD_ACTIVE_HIGH and MMC_CAP2_RO_ACTIVE_HIGH could under
        some circumstances be set incorrectly, causing the card detection to
        fail"
      
      * tag 'mmc-v3.18-2' of git://git.linaro.org/people/ulf.hansson/mmc:
        mmc: core: fix card detection regression
      381e3554