Hmm, this is almost 20 years old code (

I think the original code did a burst write and didn't check for error 
conditions until the very last byte write. I seem to remember that there was 
some text in the original standard to that effect (this may have gone back as 
far as IBM's ESS spec).

The current code does check for error conditions after each write byte(s) so I 
don't think there is any reason for this anymore. Changing the while condition 
to count < len and setting burstcnt = min_t(int, burstcnt, len - count) and 
remove the tpm_tis_write8/wait_for_tpm_stat/tpm_tis_status clauses after the 
while loop should be sufficient.

        Leendert

On 11/26/17, 8:37 AM, "Mimi Zohar" <zo...@linux.vnet.ibm.com> wrote:

    [Cc'ing Dave and Leendeert]
    
    Hi Jarkko,
    
    > > It seems that the last byte was sent from the beginning (27084ef
    > > [PATCH] tpm: driver for next generation TPM chips,), does anyone
    > > remember the reason ?
    > 
    > Sent from the beginning?
    
    I went through the commit logs to see if any of the patch descriptions
    have an explanation for sending the last byte separately. Based on
    commit 27084efee0c3 "[PATCH] tpm: driver for next generation TPM
    chips", it seems it's been there since the beginning.
    
    Dave, Leendert, Do either of you remember the reason for
    tpm_tis_send_data() sending the last byte separately?
    
    thanks,
    
    Mimi
    
    
    

Reply via email to