1. 01 7月, 2012 13 次提交
  2. 21 6月, 2012 1 次提交
  3. 14 6月, 2012 1 次提交
    • J
      DMA: PL330: Fix racy mutex unlock · fdec53d5
      Javi Merino 提交于
      pl330_update() stores a pointer to the thrd->req that finished, which
      contains a pointer to the corresponding pl330_req.  This is done with
      the pl330_lock held.  Then, it iterates through the req_done list,
      calling the callback for each of the requests that are done.  The
      problem is that the driver releases the lock before calling the
      callback for each of the callbacks.  pl330_submit_req() running in
      another processor can then acquire the lock and insert another request
      in one of the thrd->req that hasn't been processed yet, replacing the
      pointer to pl330_req there.  When the callback returns in
      pl330_update() and the next rqdone is popped from the list, it
      dereferences the pl330_req pointer to the just scheduled pl330_req,
      instead of the one that has finished, calling pl330 with the wrong r.
      
      This patch fixes this by storing the pointer to pl330_req directly in
      the list.
      Signed-off-by: NJavi Merino <javi.merino@arm.com>
      Cc: Jassi Brar <jaswinder.singh@linaro.org>
      Acked-by: NJassi Brar <jaswinder.singh@linaro.org>
      Signed-off-by: NVinod Koul <vinod.koul@linux.intel.com>
      fdec53d5
  4. 07 6月, 2012 3 次提交
  5. 15 5月, 2012 3 次提交
  6. 12 5月, 2012 4 次提交
  7. 11 5月, 2012 8 次提交
  8. 09 5月, 2012 1 次提交
  9. 25 4月, 2012 5 次提交
  10. 23 4月, 2012 1 次提交
    • L
      dma/amba-pl08x: check for terminal count status only · d29bf019
      Linus Walleij 提交于
      For some reason I can't figure out we're reading the PL080_INT_STATUS
      register instead of PL080_TC_STATUS when checking for the terminal
      count. The PL080_INT_STATUS is a logical OR between the error and
      terminal count status register and may not report what we want it
      to, especially if there is an error and a terminal count at the same
      time and the former is not lowered in time for the check in the TC
      register. Make sure we read what we're actually interested in.
      
      Cc: Russell King <linux@arm.linux.org.uk>
      Cc: Viresh Kumar <viresh.kumar@st.com>
      Cc: Alim Akhtar <alim.akhtar@gmail.com>
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      Acked-by: NViresh Kumar <viresh.kumar@st.com>
      Signed-off-by: NVinod Koul <vinod.koul@linux.intel.com>
      d29bf019