1. 25 7月, 2016 5 次提交
  2. 28 5月, 2016 1 次提交
    • A
      remove lots of IS_ERR_VALUE abuses · 287980e4
      Arnd Bergmann 提交于
      Most users of IS_ERR_VALUE() in the kernel are wrong, as they
      pass an 'int' into a function that takes an 'unsigned long'
      argument. This happens to work because the type is sign-extended
      on 64-bit architectures before it gets converted into an
      unsigned type.
      
      However, anything that passes an 'unsigned short' or 'unsigned int'
      argument into IS_ERR_VALUE() is guaranteed to be broken, as are
      8-bit integers and types that are wider than 'unsigned long'.
      
      Andrzej Hajda has already fixed a lot of the worst abusers that
      were causing actual bugs, but it would be nice to prevent any
      users that are not passing 'unsigned long' arguments.
      
      This patch changes all users of IS_ERR_VALUE() that I could find
      on 32-bit ARM randconfig builds and x86 allmodconfig. For the
      moment, this doesn't change the definition of IS_ERR_VALUE()
      because there are probably still architecture specific users
      elsewhere.
      
      Almost all the warnings I got are for files that are better off
      using 'if (err)' or 'if (err < 0)'.
      The only legitimate user I could find that we get a warning for
      is the (32-bit only) freescale fman driver, so I did not remove
      the IS_ERR_VALUE() there but changed the type to 'unsigned long'.
      For 9pfs, I just worked around one user whose calling conventions
      are so obscure that I did not dare change the behavior.
      
      I was using this definition for testing:
      
       #define IS_ERR_VALUE(x) ((unsigned long*)NULL == (typeof (x)*)NULL && \
             unlikely((unsigned long long)(x) >= (unsigned long long)(typeof(x))-MAX_ERRNO))
      
      which ends up making all 16-bit or wider types work correctly with
      the most plausible interpretation of what IS_ERR_VALUE() was supposed
      to return according to its users, but also causes a compile-time
      warning for any users that do not pass an 'unsigned long' argument.
      
      I suggested this approach earlier this year, but back then we ended
      up deciding to just fix the users that are obviously broken. After
      the initial warning that caused me to get involved in the discussion
      (fs/gfs2/dir.c) showed up again in the mainline kernel, Linus
      asked me to send the whole thing again.
      
      [ Updated the 9p parts as per Al Viro  - Linus ]
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Cc: Andrzej Hajda <a.hajda@samsung.com>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Link: https://lkml.org/lkml/2016/1/7/363
      Link: https://lkml.org/lkml/2016/5/27/486
      Acked-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> # For nvmem part
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      287980e4
  3. 29 2月, 2016 1 次提交
  4. 22 12月, 2015 1 次提交
  5. 27 10月, 2015 1 次提交
    • C
      mmc: mmc: extend the mmc_send_tuning() · 9979dbe5
      Chaotian Jing 提交于
      The mmc_execute_tuning() has already prepared the opcode,
      there is no need to prepare it again at mmc_send_tuning(),
      and, there is a BUG of mmc_send_tuning() to determine the opcode
      by bus width, assume eMMC was running at HS200, 4bit mode,
      then the mmc_send_tuning() will overwrite the opcode from CMD21
      to CMD19, then got error.
      
      in addition, extend an argument of "cmd_error" to allow getting
      if there was cmd error when tune response.
      Signed-off-by: NChaotian Jing <chaotian.jing@mediatek.com>
      [Ulf: Rebased patch]
      Signed-off-by: NUlf Hansson <ulf.hansson@linaro.org>
      9979dbe5
  6. 27 8月, 2015 4 次提交
  7. 24 7月, 2015 4 次提交
  8. 01 6月, 2015 8 次提交
  9. 25 5月, 2015 1 次提交
  10. 09 4月, 2015 1 次提交
    • F
      mmc: sdhci-esdhc-imx: Call mmc_of_parse() · 8d86e4fc
      Fabio Estevam 提交于
      Currently it is not possible to use 'mmc-pwrseq-simple' property with this
      driver because mmc_of_parse() is never called.
      
      mmc_of_parse() calls mmc_pwrseq_alloc() that manages MMC power sequence and
      allows passing GPIOs in the devicetree to properly power/reset the Wifi
      chipset.
      
      When using mmc_of_parse() we no longer need to have custom code to request
      card-detect and write-protect pins, as this can now be handled by the mmc
      core.
      
      Tested on a imx6sl-warp board where BT/Wifi is functional and also on a
      imx6q-sabresd.
      Signed-off-by: NFabio Estevam <fabio.estevam@freescale.com>
      Signed-off-by: NUlf Hansson <ulf.hansson@linaro.org>
      8d86e4fc
  11. 25 3月, 2015 1 次提交
  12. 23 3月, 2015 1 次提交
  13. 19 1月, 2015 2 次提交
    • U
      mmc: sdhci-esdhc-imx: Fixup runtime PM conditions during ->probe() · 77903c01
      Ulf Hansson 提交于
      By configure runtime PM prior we enable the use of it, we close the gap
      for strange and unhandled conditions. Moreover it makes us rely on the
      driver core, after finalized ->probe(), to request an inactive device
      to become runtime PM idle/suspended, which earlier potentially could
      happen already at pm_runtime_set_autosuspend_delay().
      Signed-off-by: NUlf Hansson <ulf.hansson@linaro.org>
      77903c01
    • U
      mmc: sdhci-esdhc-imx: Fixup ->remove() · 0b414368
      Ulf Hansson 提交于
      Since sdhci_remove_host() access the device, we need to make sure it's
      runtime PM resumed.
      
      To handle clock gating properly in remove, we first have to make sure
      the clocks are ungated.
      
      To fix both these issues, by invoking pm_runtime_get_sync() early in
      ->remove() callback. Later once we disabled runtime PM, we can restore
      the usage count.
      Signed-off-by: NUlf Hansson <ulf.hansson@linaro.org>
      0b414368
  14. 08 12月, 2014 1 次提交
  15. 05 12月, 2014 1 次提交
  16. 10 11月, 2014 1 次提交
  17. 09 9月, 2014 3 次提交
  18. 22 5月, 2014 3 次提交