1. 31 8月, 2015 1 次提交
  2. 30 8月, 2015 1 次提交
  3. 29 8月, 2015 3 次提交
  4. 28 8月, 2015 1 次提交
  5. 27 8月, 2015 1 次提交
  6. 26 8月, 2015 5 次提交
  7. 22 8月, 2015 3 次提交
    • M
      mm: make page pfmemalloc check more robust · 2f064f34
      Michal Hocko 提交于
      Commit c48a11c7 ("netvm: propagate page->pfmemalloc to skb") added
      checks for page->pfmemalloc to __skb_fill_page_desc():
      
              if (page->pfmemalloc && !page->mapping)
                      skb->pfmemalloc = true;
      
      It assumes page->mapping == NULL implies that page->pfmemalloc can be
      trusted.  However, __delete_from_page_cache() can set set page->mapping
      to NULL and leave page->index value alone.  Due to being in union, a
      non-zero page->index will be interpreted as true page->pfmemalloc.
      
      So the assumption is invalid if the networking code can see such a page.
      And it seems it can.  We have encountered this with a NFS over loopback
      setup when such a page is attached to a new skbuf.  There is no copying
      going on in this case so the page confuses __skb_fill_page_desc which
      interprets the index as pfmemalloc flag and the network stack drops
      packets that have been allocated using the reserves unless they are to
      be queued on sockets handling the swapping which is the case here and
      that leads to hangs when the nfs client waits for a response from the
      server which has been dropped and thus never arrive.
      
      The struct page is already heavily packed so rather than finding another
      hole to put it in, let's do a trick instead.  We can reuse the index
      again but define it to an impossible value (-1UL).  This is the page
      index so it should never see the value that large.  Replace all direct
      users of page->pfmemalloc by page_is_pfmemalloc which will hide this
      nastiness from unspoiled eyes.
      
      The information will get lost if somebody wants to use page->index
      obviously but that was the case before and the original code expected
      that the information should be persisted somewhere else if that is
      really needed (e.g.  what SLAB and SLUB do).
      
      [akpm@linux-foundation.org: fix blooper in slub]
      Fixes: c48a11c7 ("netvm: propagate page->pfmemalloc to skb")
      Signed-off-by: NMichal Hocko <mhocko@suse.com>
      Debugged-by: NVlastimil Babka <vbabka@suse.com>
      Debugged-by: NJiri Bohac <jbohac@suse.com>
      Cc: Eric Dumazet <eric.dumazet@gmail.com>
      Cc: David Miller <davem@davemloft.net>
      Acked-by: NMel Gorman <mgorman@suse.de>
      Cc: <stable@vger.kernel.org>	[3.6+]
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      2f064f34
    • M
      spi: dw: Allow interface drivers to limit data I/O to word sizes · c4fe57f7
      Michael van der Westhuizen 提交于
      The commit dd114443 ("spi: dw-spi: Convert 16bit accesses to 32bit
      accesses") changed all 16bit accesses in the DW_apb_ssi driver to 32bit.
      This, unfortunately, breaks data register access on picoXcell, where the
      DW IP needs data register accesses to be word accesses (all other
      accesses appear to be OK).
      
      This change introduces a new master variable to allow interface drivers
      to specify that 16bit data transfer I/O is required.  This change also
      introduces the ability to set this variable via device tree bindings in
      the MMIO interface driver.  Both the core and the MMIO interface driver
      default to the current 32bit behaviour.
      
      Before this change, on a picoXcell pc3x3:
       spi_master spi32766: interrupt_transfer: fifo overrun/underrun
       m25p80 spi32766.0: error -5 reading 9f
       m25p80: probe of spi32766.0 failed with error -5
      
      After this change:
       m25p80 spi32766.0: m25p40 (512 Kbytes)
      
      Fixes: dd114443 ("spi: dw-spi: Convert 16bit accesses to 32bit accesses")
      Signed-off-by: NMichael van der Westhuizen <michael@smart-africa.com>
      Reviewed-by: NAndy Shevchenko <andriy.shevchenko@linux.intel.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      c4fe57f7
    • M
      spi: Fall back to master maximum speed if no slave speed specified · 7dc9fbc3
      Mark Brown 提交于
      If a slave appears with no maximum transfer speed specified fall back to
      using the maximum for the master instead.  It's questionable if we
      should let slaves do this but let's be defensive.
      Signed-off-by: NMark Brown <broonie@kernel.org>
      7dc9fbc3
  8. 21 8月, 2015 6 次提交
  9. 20 8月, 2015 6 次提交
  10. 19 8月, 2015 13 次提交