On Tue Nov 12 19, Stefan Berger wrote:
On 11/11/19 10:36 PM, Jerry Snitselaar wrote:
Question about 1ea32c83c699 ("tpm_tis_core: Set TPM_CHIP_FLAG_IRQ
before probing for interrupts").
Doesn't tpm_tis_send set this flag, and setting it here in
tpm_tis_core_init short circuits what
tpm_tis_send was doing before? There is a bug report of an interrupt
storm from a tpm on a t490s laptop
with the Fedora 31 kernel (5.3), and I'm wondering if this change
could cause that. Before they got
the warning about interrupts not working, and using polling instead.
I set this flag for the TIS because it wasn't set anywhere else.
tpm_tis_send() wouldn't set the flag but go via the path:
if (!(chip->flags & TPM_CHIP_FLAG_IRQ) || priv->irq_tested)
return tpm_tis_send_main(chip, buf, len);
the only other line for the TIS to set the IRQ flag was in the same
function further below, though that wouldn't be reached due to the
above:
[...]
priv->irq = irq;
chip->flags |= TPM_CHIP_FLAG_IRQ;
Stefan
Ugh, you're right I was reading that as ! around both the flag and priv->irq_tested.
Should the flag be cleared if tpm_tis_probe_irq_single fails prior to calling
tpm_tis_gen_interrupt?