• Jarkko Sakkinen's avatar
    tpm: fix: sanitized code paths in tpm_chip_register() · 34d47b63
    Jarkko Sakkinen authored
    I started to work with PPI interface so that it would be available
    under character device sysfs directory and realized that chip
    registeration was still too messy.
    
    In TPM 1.x in some rare scenarios (errors that almost never occur)
    wrong order in deinitialization steps was taken in teardown. I
    reproduced these scenarios by manually inserting error codes in the
    place of the corresponding function calls.
    
    The key problem is that the teardown is messy with two separate code
    paths (this was inherited when moving code from tpm-interface.c).
    
    Moved TPM 1.x specific register/unregister functionality to own helper
    functions and added single code path for teardown in tpm_chip_register().
    Now the code paths have been fixed and it should be easier to review
    later on this part of the code.
    
    Cc: <stable@vger.kernel.org>
    Fixes: 7a1d7e6d ("tpm: TPM 2.0 baseline support")
    Signed-off-by: default avatarJarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
    Tested-by: default avatarScot Doyle <lkml14@scotdoyle.com>
    Reviewed-by: default avatarPeter Huewe <peterhuewe@gmx.de>
    Signed-off-by: default avatarPeter Huewe <peterhuewe@gmx.de>
    34d47b63
tpm-chip.c 5.98 KB