lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Thu, 17 Dec 2020 18:53:47 -0800 From: Stephen Boyd <swboyd@...omium.org> To: Doug Anderson <dianders@...omium.org> Cc: Mark Brown <broonie@...nel.org>, msavaliy@....qualcomm.com, Akash Asthana <akashast@...eaurora.org>, Roja Rani Yarubandi <rojay@...eaurora.org>, Alok Chauhan <alokc@...eaurora.org>, Andy Gross <agross@...nel.org>, Bjorn Andersson <bjorn.andersson@...aro.org>, Dilip Kota <dkota@...eaurora.org>, Girish Mahadevan <girishm@...eaurora.org>, linux-arm-msm <linux-arm-msm@...r.kernel.org>, LKML <linux-kernel@...r.kernel.org>, linux-spi <linux-spi@...r.kernel.org> Subject: Re: [PATCH v2 2/4] spi: spi-geni-qcom: Fail new xfers if xfer/cancel/abort pending Quoting Doug Anderson (2020-12-17 13:45:18) > > On Wed, Dec 16, 2020 at 8:21 PM Stephen Boyd <swboyd@...omium.org> wrote: > > > > if (M_CMD_CANCEL_EN || M_CMD_ABORT_EN) /* but not the other irqs like CMD_DONE or refill fifos */ > > writel(M_CMD_CANCEL_EN | M_CMD_ABORT_EN, se->base + SE_GENI_M_IRQ_CLEAR); > > > > This would let us limp along and try to send another transfer in the > > case that we timed out but the transfer went through by servicing our > > own interrupt. > > A few problems: > > 1. The cancel and abort are commands and they generate a "done" > interrupt along with their "cancel" and/or "abort". Clearing the > cancel/abort without the done will leave things in a much more > confused state. Ah I didn't know that the DONE bit was set even for cancel/abort, but that makes sense given that it's a sequencer and everything that goes into the sequencer eventually gets "DONE". I agree if the DONE bit hanging around that really confuses stuff, so best to ignore it and figure out why interrupt latencies are leading to this problem.
Powered by blists - more mailing lists