1. 13 2月, 2017 18 次提交
  2. 16 1月, 2017 1 次提交
  3. 25 12月, 2016 1 次提交
  4. 21 12月, 2016 1 次提交
    • P
      mmc: sd: Meet alignment requirements for raw_ssr DMA · e85baa88
      Paul Burton 提交于
      The mmc_read_ssr() function results in DMA to the raw_ssr member of
      struct mmc_card, which is not guaranteed to be cache line aligned & thus
      might not meet the requirements set out in Documentation/DMA-API.txt:
      
        Warnings:  Memory coherency operates at a granularity called the cache
        line width.  In order for memory mapped by this API to operate
        correctly, the mapped region must begin exactly on a cache line
        boundary and end exactly on one (to prevent two separately mapped
        regions from sharing a single cache line).  Since the cache line size
        may not be known at compile time, the API will not enforce this
        requirement.  Therefore, it is recommended that driver writers who
        don't take special care to determine the cache line size at run time
        only map virtual regions that begin and end on page boundaries (which
        are guaranteed also to be cache line boundaries).
      
      On some systems where DMA is non-coherent this can lead to us losing
      data that shares cache lines with the raw_ssr array.
      
      Fix this by kmalloc'ing a temporary buffer to perform DMA into. kmalloc
      will ensure the buffer is suitably aligned, allowing the DMA to be
      performed without any loss of data.
      Signed-off-by: NPaul Burton <paul.burton@imgtec.com>
      Fixes: 5275a652 ("mmc: sd: Export SD Status via “ssr” device attribute")
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NUlf Hansson <ulf.hansson@linaro.org>
      e85baa88
  5. 20 12月, 2016 1 次提交
    • A
      mmc: core: Further fix thread wake-up · 15520111
      Adrian Hunter 提交于
      Commit e0097cf5 ("mmc: queue: Fix queue thread wake-up") did not go far
      enough. mmc_wait_for_data_req_done() still contains some problems and can
      be further simplified.  First it should not touch
      context_info->is_waiting_last_req because that is a wake-up control used by
      the owner of the context. Secondly, it should always return when one of its
      wake-up conditions is met because, again, that is contolled by the owner of
      the context.
      
      While the current block driver does not have an issue, these problems were
      exposed during testing of the Software Command Queue patches.
      
      Fixes: e0097cf5 ("mmc: queue: Fix queue thread wake-up")
      Signed-off-by: NAdrian Hunter <adrian.hunter@intel.com>
      Tested-by: NHarjani Ritesh <riteshh@codeaurora.org>
      Signed-off-by: NUlf Hansson <ulf.hansson@linaro.org>
      15520111
  6. 12 12月, 2016 1 次提交
    • U
      mmc: block: Move files to core · f397c8d8
      Ulf Hansson 提交于
      Once upon a time it made sense to keep the mmc block device driver and its
      related code, in its own directory called card. Over time, more an more
      functions/structures have become shared through generic mmc header files,
      between the core and the card directory. In other words, the relationship
      between them has become closer.
      
      By sharing functions/structures via generic header files, it becomes easy
      for outside users to abuse them. In a way to avoid that from happen, let's
      move the files from card directory into the core directory, as it enables
      us to move definitions of functions/structures into mmc core specific
      header files.
      
      Note, this is only the first step in providing a cleaner mmc interface for
      outside users. Following changes will do the actual cleanup, as that is not
      part of this change.
      Signed-off-by: NUlf Hansson <ulf.hansson@linaro.org>
      Reviewed-by: NLinus Walleij <linus.walleij@linaro.org>
      f397c8d8
  7. 05 12月, 2016 9 次提交
  8. 29 11月, 2016 8 次提交