1. 25 7月, 2020 26 次提交
  2. 24 7月, 2020 5 次提交
    • L
      Merge tag 's390-5.8-6' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux into master · f37e99ac
      Linus Torvalds 提交于
      Pull s390 fixes from Heiko Carstens:
      
       - Change cpum_cf/perf counter name from DFLT_CCERROR to DFLT_CCFINISH
         to reflect reality and avoid further confusion. This is a user space
         visible change therefore the commit has also a stable tag for 5.7,
         where this counter was introduced.
      
       - Add Matthew Rosato as s390 IOMMU maintainer.
      
      * tag 's390-5.8-6' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
        MAINTAINERS: add Matthew for s390 IOMMU
        s390/cpum_cf,perf: change DFLT_CCERROR counter name
      f37e99ac
    • D
      i2c: i2c-qcom-geni: Fix DMA transfer race · 02b9aec5
      Douglas Anderson 提交于
      When I have KASAN enabled on my kernel and I start stressing the
      touchscreen my system tends to hang.  The touchscreen is one of the
      only things that does a lot of big i2c transfers and ends up hitting
      the DMA paths in the geni i2c driver.  It appears that KASAN adds
      enough delay in my system to tickle a race condition in the DMA setup
      code.
      
      When the system hangs, I found that it was running the geni_i2c_irq()
      over and over again.  It had these:
      
      m_stat   = 0x04000080
      rx_st    = 0x30000011
      dm_tx_st = 0x00000000
      dm_rx_st = 0x00000000
      dma      = 0x00000001
      
      Notably we're in DMA mode but are getting M_RX_IRQ_EN and
      M_RX_FIFO_WATERMARK_EN over and over again.
      
      Putting some traces in geni_i2c_rx_one_msg() showed that when we
      failed we were getting to the start of geni_i2c_rx_one_msg() but were
      never executing geni_se_rx_dma_prep().
      
      I believe that the problem here is that we are starting the geni
      command before we run geni_se_rx_dma_prep().  If a transfer makes it
      far enough before we do that then we get into the state I have
      observed.  Let's change the order, which seems to work fine.
      
      Although problems were seen on the RX path, code inspection suggests
      that the TX should be changed too.  Change it as well.
      
      Fixes: 37692de5 ("i2c: i2c-qcom-geni: Add bus driver for the Qualcomm GENI I2C controller")
      Signed-off-by: NDouglas Anderson <dianders@chromium.org>
      Tested-by: NSai Prakash Ranjan <saiprakash.ranjan@codeaurora.org>
      Reviewed-by: NAkash Asthana <akashast@codeaurora.org>
      Reviewed-by: NStephen Boyd <swboyd@chromium.org>
      Reviewed-by: NMukesh Kumar Savaliya <msavaliy@codeaurora.org>
      Signed-off-by: NWolfram Sang <wsa@kernel.org>
      02b9aec5
    • W
      i2c: rcar: always clear ICSAR to avoid side effects · eb015971
      Wolfram Sang 提交于
      On R-Car Gen2, we get a timeout when reading from the address set in
      ICSAR, even though the slave interface is disabled. Clearing it fixes
      this situation. Note that Gen3 is not affected.
      
      To reproduce: bind and undbind an I2C slave on some bus, run
      'i2cdetect' on that bus.
      
      Fixes: de20d185 ("i2c: rcar: add slave support")
      Signed-off-by: NWolfram Sang <wsa+renesas@sang-engineering.com>
      Signed-off-by: NWolfram Sang <wsa@kernel.org>
      eb015971
    • M
      dm integrity: fix integrity recalculation that is improperly skipped · 5df96f2b
      Mikulas Patocka 提交于
      Commit adc0daad ("dm: report suspended
      device during destroy") broke integrity recalculation.
      
      The problem is dm_suspended() returns true not only during suspend,
      but also during resume. So this race condition could occur:
      1. dm_integrity_resume calls queue_work(ic->recalc_wq, &ic->recalc_work)
      2. integrity_recalc (&ic->recalc_work) preempts the current thread
      3. integrity_recalc calls if (unlikely(dm_suspended(ic->ti))) goto unlock_ret;
      4. integrity_recalc exits and no recalculating is done.
      
      To fix this race condition, add a function dm_post_suspending that is
      only true during the postsuspend phase and use it instead of
      dm_suspended().
      
      Signed-off-by: Mikulas Patocka <mpatocka redhat com>
      Fixes: adc0daad ("dm: report suspended device during destroy")
      Cc: stable vger kernel org # v4.18+
      Signed-off-by: NMike Snitzer <snitzer@redhat.com>
      5df96f2b
    • P
      io_uring: missed req_init_async() for IOSQE_ASYNC · 3e863ea3
      Pavel Begunkov 提交于
      IOSQE_ASYNC branch of io_queue_sqe() is another place where an
      unitialised req->work can be accessed (i.e. prior io_req_init_async()).
      Nothing really bad though, it just looses IO_WQ_WORK_CONCURRENT flag.
      Signed-off-by: NPavel Begunkov <asml.silence@gmail.com>
      Signed-off-by: NJens Axboe <axboe@kernel.dk>
      3e863ea3
  3. 23 7月, 2020 5 次提交
  4. 22 7月, 2020 4 次提交