On Tue, Oct 18, 2022 at 01:57:28AM +0200, Lino Sanfilippo wrote: > From: Lino Sanfilippo <l.sanfilippo@xxxxxxxxxx> > > After driver initialization tpm_tis_data->locality may only be modified in > case of a LOCALITY CHANGE interrupt. In this case the interrupt handler > iterates over all localities only to assign the active one to > tpm_tis_data->locality. > > However this information is never used any more, so the assignment is not > needed. > Furthermore without the assignment tpm_tis_data->locality cannot change any > more at driver runtime, and thus no protection against concurrent > modification is required when the variable is read at other places. > > So remove this iteration entirely. > > Signed-off-by: Lino Sanfilippo <l.sanfilippo@xxxxxxxxxx> Acked-by: Jarkko Sakkinen <jarkko@xxxxxxxxxx> > --- > drivers/char/tpm/tpm_tis_core.c | 7 ++----- > 1 file changed, 2 insertions(+), 5 deletions(-) > > diff --git a/drivers/char/tpm/tpm_tis_core.c b/drivers/char/tpm/tpm_tis_core.c > index 181c291b0bb8..4336f7ea8c2b 100644 > --- a/drivers/char/tpm/tpm_tis_core.c > +++ b/drivers/char/tpm/tpm_tis_core.c > @@ -728,7 +728,7 @@ static irqreturn_t tis_int_handler(int dummy, void *dev_id) > struct tpm_chip *chip = dev_id; > struct tpm_tis_data *priv = dev_get_drvdata(&chip->dev); > u32 interrupt; > - int i, rc; > + int rc; > > rc = tpm_tis_read32(priv, TPM_INT_STATUS(priv->locality), &interrupt); > if (rc < 0) > @@ -740,10 +740,7 @@ static irqreturn_t tis_int_handler(int dummy, void *dev_id) > set_bit(TPM_TIS_IRQ_TESTED, &priv->flags); > if (interrupt & TPM_INTF_DATA_AVAIL_INT) > wake_up_interruptible(&priv->read_queue); > - if (interrupt & TPM_INTF_LOCALITY_CHANGE_INT) > - for (i = 0; i < 5; i++) > - if (check_locality(chip, i)) > - break; > + > if (interrupt & > (TPM_INTF_LOCALITY_CHANGE_INT | TPM_INTF_STS_VALID_INT | > TPM_INTF_CMD_READY_INT)) > -- > 2.36.1 > BR, Jarkko