1. 14 1月, 2014 3 次提交
    • B
      mtd: nand: support Micron READ RETRY · 8429bb39
      Brian Norris 提交于
      Micron provides READ RETRY support via the ONFI vendor-specific
      parameter block (to indicate how many read-retry modes are available)
      and the ONFI {GET,SET}_FEATURES commands with a vendor-specific feature
      address (to support reading/switching the current read-retry mode).
      
      The recommended sequence is as follows:
      
        1. Perform PAGE_READ operation
        2. If no ECC error, we are done
        3. Run SET_FEATURES with feature address 89h, mode 1
        4. Retry PAGE_READ operation
        5. If ECC error and there are remaining supported modes, increment the
           mode and return to step 3. Otherwise, this is a true ECC error.
        6. Run SET_FEATURES with feature address 89h, mode 0, to return to the
           default state.
      
      This patch implements the chip->setup_read_retry() callback for
      Micron and fills in the chip->read_retries.
      
      Tested on Micron MT29F32G08CBADA, which supports 8 read-retry modes.
      
      The Micron vendor-specific table was checked against the datasheets for
      the following Micron NAND:
      
      Needs retry   Cell-type    Part number          Vendor revision    Byte 180
      -----------   ---------    ----------------     ---------------    ------------
      No            SLC          MT29F16G08ABABA      1                  Reserved (0)
      No            MLC          MT29F32G08CBABA      1                  Reserved (0)
      No            SLC          MT29F1G08AACWP       1                  0
      Yes           MLC          MT29F32G08CBADA      1                  08h
      Yes           MLC          MT29F64G08CBABA      2                  08h
      Signed-off-by: NBrian Norris <computersforpeace@gmail.com>
      Acked-by: NHuang Shijie <b32955@freescale.com>
      8429bb39
    • B
      mtd: nand: add generic READ RETRY support · ba84fb59
      Brian Norris 提交于
      Modern MLC (and even SLC?) NAND can experience a large number of
      bitflips (beyond the recommended correctability capacity) due to drifts
      in the voltage threshold (Vt). These bitflips can cause ECC errors to
      occur well within the expected lifetime of the flash. To account for
      this, some manufacturers provide a mechanism for shifting the Vt
      threshold after a corrupted read.
      
      The generic pattern seems to be that a particular flash has N read retry
      modes (where N = 0, traditionally), and after an ECC failure, the host
      should reconfigure the flash to use the next available mode, then retry
      the read operation. This process repeats until all bitfips can be
      corrected or until the host has tried all available retry modes.
      
      This patch adds the infrastructure support for a
      vendor-specific/flash-specific callback, used for setting the read-retry
      mode (i.e., voltage threshold).
      
      For now, this patch always returns the flash to mode 0 (the default
      mode) after a successful read-retry, according to the flowchart found in
      Micron's datasheets. This may need to change in the future if it is
      determined that eventually, mode 0 is insufficient for the majority of
      the flash cells (and so for performance reasons, we should leave the
      flash in mode 1, 2, etc.).
      Signed-off-by: NBrian Norris <computersforpeace@gmail.com>
      Acked-by: NHuang Shijie <b32955@freescale.com>
      ba84fb59
    • B
      6f0065b0
  2. 12 1月, 2014 2 次提交
  3. 04 1月, 2014 6 次提交
  4. 25 12月, 2013 1 次提交
  5. 22 12月, 2013 1 次提交
    • B
      aio/migratepages: make aio migrate pages sane · 8e321fef
      Benjamin LaHaise 提交于
      The arbitrary restriction on page counts offered by the core
      migrate_page_move_mapping() code results in rather suspicious looking
      fiddling with page reference counts in the aio_migratepage() operation.
      To fix this, make migrate_page_move_mapping() take an extra_count parameter
      that allows aio to tell the code about its own reference count on the page
      being migrated.
      
      While cleaning up aio_migratepage(), make it validate that the old page
      being passed in is actually what aio_migratepage() expects to prevent
      misbehaviour in the case of races.
      Signed-off-by: NBenjamin LaHaise <bcrl@kvack.org>
      8e321fef
  6. 21 12月, 2013 2 次提交
  7. 19 12月, 2013 4 次提交
  8. 17 12月, 2013 1 次提交
  9. 13 12月, 2013 5 次提交
  10. 12 12月, 2013 1 次提交
  11. 11 12月, 2013 5 次提交
  12. 08 12月, 2013 2 次提交
  13. 06 12月, 2013 2 次提交
    • P
      xen-netback: fix fragment detection in checksum setup · 1431fb31
      Paul Durrant 提交于
      The code to detect fragments in checksum_setup() was missing for IPv4 and
      too eager for IPv6. (It transpires that Windows seems to send IPv6 packets
      with a fragment header even if they are not a fragment - i.e. offset is zero,
      and M bit is not set).
      
      This patch also incorporates a fix to callers of maybe_pull_tail() where
      skb->network_header was being erroneously added to the length argument.
      Signed-off-by: NPaul Durrant <paul.durrant@citrix.com>
      Signed-off-by: NZoltan Kiss <zoltan.kiss@citrix.com>
      Cc: Wei Liu <wei.liu2@citrix.com>
      Cc: Ian Campbell <ian.campbell@citrix.com>
      Cc: David Vrabel <david.vrabel@citrix.com>
      cc: David Miller <davem@davemloft.net>
      Acked-by: NWei Liu <wei.liu2@citrix.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      1431fb31
    • T
      percpu: fix spurious sparse warnings from DEFINE_PER_CPU() · b1a0fbfd
      Tejun Heo 提交于
      When CONFIG_DEBUG_FORCE_WEAK_PER_CPU or CONFIG_ARCH_NEEDS_WEAK_PER_CPU
      is set, DEFINE_PER_CPU() explodes into cryptic series of definitions
      to still allow using "static" for percpu variables while keeping all
      per-cpu symbols unique in the kernel image which is required for weak
      symbols.  This ultimately converts the actual symbol to global whether
      DEFINE_PER_CPU() is prefixed with static or not.
      
      Unfortunately, the macro forgot to add explicit extern declartion of
      the actual symbol ending up defining global symbol without preceding
      declaration for static definitions which naturally don't have matching
      DECLARE_PER_CPU().  The only ill effect is triggering of the following
      warnings.
      
       fs/inode.c:74:8: warning: symbol 'nr_inodes' was not declared. Should it be static?
       fs/inode.c:75:8: warning: symbol 'nr_unused' was not declared. Should it be static?
      
      Fix it by adding extern declaration in the DEFINE_PER_CPU() macro.
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Reported-by: NWanlong Gao <gaowanlong@cn.fujitsu.com>
      Tested-by: NWanlong Gao <gaowanlong@cn.fujitsu.com>
      b1a0fbfd
  14. 03 12月, 2013 5 次提交